A manditory subsection of \fIcluster\fP is \fIfencedevices\fP. It contains
all of the I/O fencing devices at the disposal of the cluster. The I/O
fencing devices are listed as entities designated as \fIfencedevice\fP and have
attributes that describe the particular fencing device. For example:
<fencedevices>
<fencedevice name="apc" agent="fence_apc"
ipaddr="apc_1" login="apc" passwd="apc"/>
</fencedevices>
Concerning the \fIfencedevice\fP entity, the \fIname\fP and \fIagent\fP attributes
must be specified for all I/O fence devices. The remaining attributes are
device specific and are used to specify the neccessary information to
access the device. The \fIname\fP attribute must be unique and is used to
reference the I/O fence device in other sections of the \fBcluster.conf\fP file. The \fIagent\fP attribute is used to specify the binary fence agent program used to communicate with the particular device. Your \fBcluster.conf\fP file might now look something like:
<cluster name="alpha" config_version="1">
<fencedevices>
<fencedevice name="apc" agent="fence_apc"
ipaddr="apc_1" login="apc" passwd="apc"/>
<fencedevice name="brocade" agent="fence_brocade"
ipaddr="brocade_1" login="bro" passwd="bro"/>
<!-- The WTI fence device requires no login name -->
The final manditory subsection of \fIcluster\fP is \fIclusternodes\fP. It contains
the individual specification of all the machines (members) in the cluster.
Each machine has it's own section, \fIclusternode\fP, which has the \fIname\fP
attribute - this should be the name of the machine. The \fIclusternode\fP section
also contains the \fIfence\fP section. Not to be confused with \fIfencedevices\fP the \fIfence\fP section is used to specify all the possible "methods" for
fencing a particular machine, as well as the device used to perform that method
and the machine specific parameters neccessary. By example, the \fIclusternodes\fP
section may look as follows:
<!-- This example only contains one machine -->
<clusternodes>
<clusternode name="nd01">
<fence>
<!-- "power" method is tried before all others -->
<method name="power">
<device name="apc" port="1:1"/>
</method>
<!-- If the "power" method fails,
try fencing through the "fabric" -->
<method name="fabric">
<device name="brocade" port="1"/>
</method>
<!-- If all else fails,
make someone do it manually -->
<method name="human">
<device name="last_resort" ipaddr="nd01"/>
</method>
</fence>
</clusternode>
</clusternodes>
Putting it all together, a three node cluster's \fBcluster.conf\fP file
might look like:
<cluster name="example" config_version="1">
<clusternodes>
<clusternode name="nd01">
<fence>
<!-- "power" method is tried before all others -->
<method name="power">
<device name="apc" port="1:1"/>
</method>
<!-- If the "power" method fails,
try fencing through the "fabric" -->
<method name="fabric">
<device name="brocade" port="1"/>
</method>
<!-- If all else fails,
make someone do it manually -->
<method name="human">
<device name="last_resort" ipaddr="nd01"/>
</method>
</fence>
</clusternode>
<clusternode name="nd02">
<fence>
<!-- "power" method is tried before all others -->
<method name="power">
<device name="apc" port="1:2"/>
</method>
<!-- If the "power" method fails,
try fencing through the "fabric" -->
<method name="fabric">
<device name="brocade" port="2"/>
</method>
<!-- If all else fails,
make someone do it manually -->
<method name="human">
<device name="last_resort" ipaddr="nd02"/>
</method>
</fence>
</clusternode>
<clusternode name="nd11">
<fence>
<!-- "power" method is tried before all others -->
<method name="power">
<!-- This machine has 2 power supplies -->
<device name="apc" port="2:1"/>
<device name="wti" port="1"/>
</method>
<!-- If the "power" method fails,
try fencing through the "fabric" -->
<method name="fabric">
<device name="brocade" port="11"/>
</method>
<!-- If all else fails,
make someone do it manually -->
<method name="human">
<device name="last_resort" ipaddr="nd11"/>
</method>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
<fencedevice name="apc" agent="fence_apc"
ipaddr="apc_1" login="apc" passwd="apc"/>
<fencedevice name="brocade" agent="fence_brocade"
ipaddr="brocade_1" login="bro" passwd="bro"/>
<!-- The WTI fence device requires no login name -->