[Pacemaker] Question on ILO stonith resource config and restarting
Takenaka Kazuhiro
takenaka.kazuhiro at oss.ntt.co.jp
Wed Nov 5 03:24:44 CET 2008
Hi Aaron.
First of all, what I say in this message is bases on my experiences
when I dealt with Heartbeat 2.1.3 and external/igmrsa-telnet
several months ago. So you should be careful in the case you apply
what I say to your problems.
> What I am confused about is this:
> the external/riloe stonith plugin only knows how to shoot one node so
> why would you want to run it as a clone since each external/riloe is
> configured differently.
...
> I then noticed that my ILO clones were starting on the 'wrong' nodes.
> As in the stonith resource to kill node 2 was actually running on node
> 2; which is pointless if node 2 locks up. So I added resource
> constraints to force the stonith clone to stay on a node that was not
> the one to be shot. This seemed to work well.
I think external/riloe isn't made to run as a clone resource
just same as external/ibmrsa-telnet. They are made to run in
a similar way to usual resource agents.
See the attached sample configuration.
> The next issue I have is that when I disconnect the LAN cable on a
> single node that connects it to the rest of the network the clone
> stonith monitor will fail since it can't connect to the other nodes ILO
> for status. After some time (minutes let's say) I reconnect the LAN
> cable but never see the clone stonith come back to life, just stays
> failed. What should I be looking at to make sure that the clone stonith
> restarts properly.
I presume you want to know how to recover a monitor failure of
a stonith plugin. Is my guess write? If so, what you must do is
run the following commands.
# crm_failcount -D -r prmStonithN2 -U node01
# crm_resource -C -r prmStonithN2 -H node02
!!! Caution !!!
Some options might be changed in the latest Pacemaker.
Aaron Bush wrote:
> I have a 0.6 pacemaker/heartbeat cluster setup in a lab with resources
> as follows:
> =
> Group-lvs(ordered): two primitives -> ocf/IPddr2 and ocf/ldirectord.
> Clone-pingd: set to monitor a couple of Ips and used to set a weight for
> where to run the LVS group.
> =
> -- This is the area that I have a question on --
> Clone-stonith-node1: HP ILO to shoot node1
> Clone-stonith-node2: HP ILO to shoot node2
> =
> I read on the old linux-ha site that using a clone for ILO/stonith was
> the way to go. I'm not sure I see how this would work correctly and be
> preferred over a standard resource. What I am confused about is this:
> the external/riloe stonith plugin only knows how to shoot one node so
> why would you want to run it as a clone since each external/riloe is
> configured differently. I went ahead and configured the riloe's as
> clones feeling that the docs are correct and that the reason would
> become obvious to me later. (I also saw a similar post with no
> response:
> http://www.gossamer-threads.com/lists/linuxha/users/35685?nohighlight=3D1#
> 35685)
> =
> I then noticed that my ILO clones were starting on the 'wrong' nodes.
> As in the stonith resource to kill node 2 was actually running on node
> 2; which is pointless if node 2 locks up. So I added resource
> constraints to force the stonith clone to stay on a node that was not
> the one to be shot. This seemed to work well.
> =
> The next issue I have is that when I disconnect the LAN cable on a
> single node that connects it to the rest of the network the clone
> stonith monitor will fail since it can't connect to the other nodes ILO
> for status. After some time (minutes let's say) I reconnect the LAN
> cable but never see the clone stonith come back to life, just stays
> failed. What should I be looking at to make sure that the clone stonith
> restarts properly.
> =
> Any advice on how to more properly setup an HP ILO stonith in this
> scenario would be greatly appreciated. (I can see where a clone stonith
> would be useful in a large cluster of n>2 nodes since all nodes could
> have a chance to shoot a failed node and maybe this is the reason for
> cloned stonith with ILO? Basically in a cluster of N nodes each node
> would be running N-1 stonith resources, ready to shoot a dead node.)
> =
> Thanks in advance,
> -ab
> =
> =
> _______________________________________________
> Pacemaker mailing list
> Pacemaker at clusterlabs.org
> http://list.clusterlabs.org/mailman/listinfo/pacemaker
> =
-- =
Takenaka Kazuhiro <takenaka.kazuhiro at oss.ntt.co.jp>
NTT Open Source Software Center
-------------- next part --------------
<cib admin_epoch=3D"0" epoch=3D"0" num_updates=3D"0">
<configuration>
<crm_config>
... snip ...
<resources>
... write configurations for resources that you really want to use ...
<!-- the configurations for the stonith plugin that shoots node01 from node=
02 -->
<primitive id=3D"prmStonithN1" class=3D"stonith" type=3D"external/ib=
mrsa-telnet" provider=3D"heartbeat" resource_stickiness=3D"INFINITY">
<operations>
<op name=3D"monitor" interval=3D"20" timeout=3D"300" prereq=3D"n=
othing" id=3D"prmStonithN1:monitor"/>
<op name=3D"start" timeout=3D"180" id=3D"prmStonithN1:start"/>
<op name=3D"stop" timeout=3D"180" id=3D"prmStonithN1:stop"/>
</operations>
<instance_attributes id=3D"prmStonithN1:attr">
<attributes>
<nvpair id=3D"prmStonithN1:nodename" name=3D"nodename" value=
=3D"node01"/>
<nvpair id=3D"prmStonithN1:ipaddr" name=3D"ip_address" value=
=3D"192.168.16.126"/>
<nvpair id=3D"prmStonithN1:userid" name=3D"username" value=3D"=
USERID"/>
<nvpair id=3D"prmStonithN1:passwd" name=3D"password" value=3D"=
***"/>
</attributes>
</instance_attributes>
</primitive>
<!-- the configurations for the stonith plugin that shoots node02 from node=
01 -->
<primitive id=3D"prmStonithN2" class=3D"stonith" type=3D"external/ib=
mrsa-telnet" provider=3D"heartbeat" resource_stickiness=3D"INFINITY">
<operations>
<op name=3D"monitor" interval=3D"20" timeout=3D"300" prereq=3D"n=
othing" id=3D"prmStonithN2:monitor"/>
<op name=3D"start" timeout=3D"180" id=3D"prmStonithN2:start"/>
<op name=3D"stop" timeout=3D"180" id=3D"prmStonithN2:stop"/>
</operations>
<instance_attributes id=3D"prmStonithN2:attr">
<attributes>
<nvpair id=3D"prmStonithN2:nodename" name=3D"nodename" value=
=3D"node02"/>
<nvpair id=3D"prmStonithN2:ipaddr" name=3D"ip_address" value=
=3D"192.168.16.127"/>
<nvpair id=3D"prmStonithN2:userid" name=3D"username" value=3D"=
USERID"/>
<nvpair id=3D"prmStonithN2:passwd" name=3D"password" value=3D"=
###"/>
</attributes>
</instance_attributes>
</primitive>
</resources>
<constraints>
... write constraints for resources that you really want to use ...
<!-- the constraints to keep the stonith plugin that shoots node01 at node0=
2 -->
<rsc_location id=3D"prmStonithN1_hates_node01" rsc=3D"prmStonithN1">
<rule id=3D"prmStonithN1_hates_node01_rule" score=3D"-INFINITY">
<expression attribute=3D"#uname" operation=3D"eq" value=3D"node0=
1" id=3D"prmStonithN1_hates_N1_expr"/>
</rule>
</rsc_location>
<!-- the constraints to keep the stonith plugin that shoots node02 at node0=
1 -->
<rsc_location id=3D"prmStonithN2_hates_node02" rsc=3D"prmStonithN2">
<rule id=3D"prmStonithN2_hates_node02_rule" score=3D"-INFINITY">
<expression attribute=3D"#uname" operation=3D"eq" value=3D"node0=
2" id=3D"prmStonithN2_hates_N2_expr"/>
</rule>
</rsc_location>
</constraints>
</configuration>
<status/>
</cib>
More information about the Pacemaker
mailing list