In a disk-based I/O fencing implementation, the vxfen driver handles various SCSI-3 PR based arbitration operations completely within the driver. I/O fencing also provides a framework referred to as customized fencing wherein arbitration operations are implemented in custom scripts. The vxfen driver invokes the custom scripts.
The CP server-based coordination point uses a customized fencing framework. Note that SCSI-3 PR based fencing arbitration can also be enabled using customized fencing framework. This allows the user to specify a combination of SCSI-3 LUNs and CP servers as coordination points using customized fencing. Customized fencing can be enabled by specifying vxfen_mode=customized and vxfen_mechanism=cps in the /etc/vxfenmode
file.
Moreover, both /etc/vxfenmode
and /etc/vxfentab
files contain additional parameter "security" which indicates if communication between CP server and SFCFSHA cluster nodes is secure.
Figure: Customized fencing displays a schematic of the customized fencing options.
A user level daemon vxfend interacts with the vxfen driver, which in turn interacts with GAB to get the node membership update. Upon receiving membership updates, vxfend invokes various scripts to race for the coordination point and fence off data disks. The vxfend daemon manages various fencing agents. The customized fencing scripts are located in the /opt/VRTSvcs/vxfen/bin/customized/cps
directory.
The scripts that are involved include the following:
generate_snapshot.sh : Retrieves the SCSI ID's of the coordinator disks and/or UUID ID's of the CP servers
CP server uses the UUID stored in /etc/VRTScps/db/current/cps_uuid
.
For information about the UUID (Universally Unique Identifier), see the Veritas Cluster Server Administrator's Guide.
join_local_node.sh: Registers the keys with the coordinator disks or CP servers
race_for_coordination_point.sh: Races to determine a winner after cluster reconfiguration
unjoin_local_node.sh: Removes the keys that are registered in join_local_node.sh
fence_data_disks.sh: Fences the data disks from access by the losing nodes.
local_info.sh: Lists local node's configuration parameters and coordination points, which are used by the vxfen driver.