Hi, On Fri, Mar 28, 2008 at 06:14:10PM +0100, Martin Oswald wrote: > Thomas Glanzmann schrieb: >> Hello Martin, >> it is pure luck that I am so bored that I read this list, next time CC >> me. :-) >> >> >>> I have read several postings in the mail archive about the >>> external/ipmi configuration but there are still some questions that >>> bother me. The last posting from Thomas: did this cib-configuration >>> worked with your 2-node cluster? I have to configure also 2 nodes and >>> would like to use the ipmi-plugin but I am unsure if I understand what >>> the plugin really does. >>> >> >> I have the following configuration on two systems and I verified that >> this configuration works as it should be. Someone on this list told me >> that I can drop the location constraints, however I decided to keep them >> until I verified that. >> >> <configuration> >> <crm_config> >> <cluster_property_set id="cib-bootstrap-options"> >> <attributes> >> <nvpair name="stonith-enabled" >> value="true" id="stonith-enabled"/> >> <nvpair name="stonith-action" >> value="reboot" id="stonith-action"/> >> </attributes> >> </cluster_property_set> >> </crm_config> >> >> <resources> >> <primitive id="apache-01-fencing" class="stonith" >> type="external/ipmi" provider="heartbeat"> >> <operations> >> <op id="apache-01-fencing-monitor" >> name="monitor" interval="60s" timeout="20s" prereq="nothing"/> >> <op id="apache-01-fencing-start" >> name="start" timeout="20s" prereq="nothing"/> >> </operations> >> >> <instance_attributes id="ia-apache-01-fencing"> >> <attributes> >> <nvpair >> id="apache-01-fencing-hostname" name="hostname" value="apache-01"/> >> <nvpair >> id="apache-01-fencing-ipaddr" name="ipaddr" value="172.18.0.101"/> >> <nvpair >> id="apache-01-fencing-userid" name="userid" value="Administrator"/> >> <nvpair >> id="apache-01-fencing-passwd" name="passwd" value="whatever"/> >> </attributes> >> </instance_attributes> >> </primitive> >> >> <primitive id="apache-02-fencing" class="stonith" >> type="external/ipmi" provider="heartbeat"> >> <operations> >> <op id="apache-02-fencing-monitor" >> name="monitor" interval="60s" timeout="20s" prereq="nothing"/> >> <op id="apache-02-fencing-start" >> name="start" timeout="20s" prereq="nothing"/> >> </operations> >> >> <instance_attributes id="ia-apache-02-fencing"> >> <attributes> >> <nvpair >> id="apache-02-fencing-hostname" name="hostname" value="apache-02"/> >> <nvpair >> id="apache-02-fencing-ipaddr" name="ipaddr" value="172.18.0.102"/> >> <nvpair >> id="apache-02-fencing-userid" name="userid" value="Administrator"/> >> <nvpair >> id="apache-02-fencing-passwd" name="passwd" value="whatever"/> >> </attributes> >> </instance_attributes> >> </primitive> >> </resources> >> >> <constraints> >> <rsc_location id="apache-01-fencing-placement" >> rsc="apache-01-fencing"> >> <rule id="apache-01-fencing-placement-rule-1" >> score="-INFINITY"> >> <expression >> id="apache-01-fencing-placement-exp-02" value="apache-02" >> attribute="#uname" operation="ne"/> >> </rule> >> </rsc_location> >> >> <rsc_location id="apache-02-fencing-placement" >> rsc="apache-02-fencing"> >> <rule id="apache-02-fencing-placement-rule-1" >> score="-INFINITY"> >> <expression >> id="apache-02-fencing-placement-exp-02" value="apache-01" >> attribute="#uname" operation="ne"/> >> </rule> >> </rsc_location> >> </constraints> >> </configuration> >> >> I killed heartbeat with -9 to simulate a node failure. >> >> >> >>> To configure the plugin, I will create a resource for every node. This >>> means, two additional resources in my cib.xml because I have two >>> cluster-nodes. >>> >> >> Correct. >> >> >>> The attributes (nvpair) define variables for the ipmi-script, e.g. >>> hostname... But what does the constraints tell me? If "#uname" is not >>> equal to"value" then the score ist -INFINITY, i.e. the resource will >>> never be started on that node? >>> >> >> you pin ,,apache-01-fencing'' on apache-02 and ,,apache-02-fencing'' on >> apache-01. So that the resource that can stonith apache-01 runs on >> apache-02 >> and vice versa. Someone stated that heartbeat is able to do a suicide >> (stonith itself) but that isn't true at least not via stonith and not in >> version 2.1.3. The location constraints seems to be unneccessary because >> if the fencing is running on the wrong node and that node misbehaves, it >> is restartet on the remainding node and than shoots the misbehaving. >> However they don't hurt either. So I leave it exactly in the above >> configuration because it proofed to work reliable in real live. >> >> >>> In summary, how does the fencing work? The heartbeat-process gets >>> killed on one node, so all resources of that node are failed over to >>> the other node. So far so good, but what role plays the new resource >>> in the failover? Is this resource also failed over to the other node >>> an therefore executes the ipmi-script with a "reset"-option to its >>> "origin"-node? >>> >> >> Nope. The location constraints makes it impossible to fail over the >> stonith resource, so it won't be started until the dead node returns to >> live. But all other resources migrate over. >> >> >>> I still do not know how this stonith-plugin works exactly, so I have >>> some problems configuring heartbeat. I hope someone can help me with >>> these questions, because I want to understand how the STONITH works >>> instead of just copy and paste some code-snippets. >>> >> >> If a node is misbehaving eg. stop talking to me without saying ,,bye'' >> it gets shot in the head to make sure it is really dead. After that the >> resources that were running before on the other node migrate over. >> >> Thomas >> >> > > > Ok, I just implemented the external/ipmi STONITH-plugin and it worked fine, > thank you very much for the help. > But I encountered the following problem: my STONITH-resources don't start > anymore and as long as they are not running, STONITH won't work. > They exit with returncode 1, which isn't really helpful. > node2-fencing_start_0 (node=node1, call=29, rc=1): Error > Is the returncode coming from the ipmi-script?
Yes. > How can I initiate a start of the resource via command line, with > crm_resource I can only change the value of the resource or am I wrong? You can do crm_resource -C -r rsc once you fixed the problem. You should try to execute ipmitool by hand to see if it works. You can also try with stonith the program: stonith -t external/ipmi ... Use -d to turn on debugging. Thanks, Dejan > > Greetings, > Martin > > _______________________________________________ > Linux-HA mailing list > [email protected] > http://lists.linux-ha.org/mailman/listinfo/linux-ha > See also: http://linux-ha.org/ReportingProblems _______________________________________________ Linux-HA mailing list [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha See also: http://linux-ha.org/ReportingProblems
