[Linux-cluster] how to add user-defined fence device to cluster.conf?
bergman at merctech.com
bergman at merctech.com
Sat Dec 13 00:31:42 UTC 2008
I've written a perl script, modeled after the fence_drac script, to control
outlets on a TrippLite PDUMH15ATNET PDU, and I'd like to contribute it to the
community.
What do I need to do to make the cluster software (RHCS 5.2, under
CentOS 5.2, cman version 2.0.84) aware of the new agent so that I can
complete testing?
I've tried adding fencing methods and new fencedevice entries to
my cluster configuration, and there are no typos ("xmllint --noout
/etc/cluster/cluster.conf" runs cleanly).
There are no errors on the command-line or in log files when I use
"ccs_tool update /etc/cluster/cluster.conf" and "cman_tool version"
to update and propagate the new cluster configuration.
However, when I run "xmllint --relaxng /usr/share/system-config-cluster/misc/cluster.ng /etc/cluster/cluster.conf 1> /dev/null" I get the following errors:
Relax-NG validity error : Extra element fencedevices in interleave
/etc/cluster/cluster.conf:2: element cluster: Relax-NG validity error : Element cluster failed to validate content
/etc/cluster/cluster.conf:15: element device: validity error : IDREF attribute name references an unknown ID "sbia-infr2-tripplite"
/etc/cluster/cluster.conf fails to validate
Here's an subset of /etc/cluster.conf:
=================================================================
<?xml version="1.0"?>
<cluster alias="cluster" config_version="108" name="cluster>
<fence_daemon clean_start="1" post_fail_delay="0" post_join_delay="30"/>
<clusternodes>
<clusternode name="infr2" nodeid="1" votes="1">
<fence>
<method name="1">
<device modulename="" name="infr2-drac"/>
</method>
<method name="2">
<device name="sphereon" port="2"/>
<device name="sphereon" port="6"/>
</method>
<method name="3">
<device name="infr2-tripplite"/>
</method>
</fence>
</clusternode>
<clusternode name="infr1" nodeid="2" votes="1">
<fence>
<method name="1">
<device modulename="" name="infr1-drac"/>
</method>
<method name="2">
<device name="sphereon" port="0"/>
<device name="sphereon" port="4"/>
</method>
<method name="3">
<device name="infr1-tripplite"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="2" two_node="0"/>
<fencedevices>
<fencedevice agent="fence_mcdata" ipaddr="192.168.110.11" login="Administrator" name="sphereon" passwd_script="getpw_sphereon"/>
<fencedevice agent="fence_drac" ipaddr="192.168.110.202" login="root" name="infr1-drac" passwd_script="getpw_infr1-drac"/>
<fencedevice agent="fence_drac" ipaddr="192.168.110.203" login="root" name="infr2-drac" passwd_script="getpw_infr2-drac"/>
<fencedevice agent="fence_tripplite" name="infr1-tripplite" ipaddr="pdu1" passwd_script="getpw_infr2-drac" operation="off" receptacle1="1" receptacle2="3"/>
<fencedevice agent="fence_tripplite" name="infr2-tripplite" ipaddr="pdu1" passwd_script="getpw_infr2-drac" operation="off" receptacle1="2" receptacle2="4"/>
</fencedevices>
=================================================================
Finally, I'd like to warn people away from using the TrippLite PDU model
PDUMH15ATNET as a fencing device. While it seems to have nice features, it
has a design choice that is a serious problem with fencing--when a command
is given to power down an outlet, there is a "random" delay (observed
to be about 17 to 35 seconds) before that command is executed. This has
been acknowledged by TrippLite support as a design choice, with no option
or setting to override this behavior.
Thanks,
Mark
More information about the Linux-cluster
mailing list