The components of membership arbitration are the fencing module and the coordinator disks.
Each system in the cluster runs a kernel module called vxfen, or the fencing module. This module is responsible for ensuring valid and current cluster membership on a membership change through the process of membership arbitration. vxfen performs the following actions:
Coordinator disks are a number of special purpose disks that act together as a global lock device. Racing for control of these disks is used to determine cluster membership. Control is won by the system that gains control of a majority of the coordinator disks, so there must always be an odd number of disks, with three disks recommended.
Coordinator disks cannot be used for any other purpose in the cluster configuration, such as data storage or inclusion in a disk group for user data. Any disks that support SCSI-3 Persistent Reservation can be coordinator disks. Best practice is to select the smallest possible LUNs for use as coordinator disks.
You can configure coordinator disks to use Veritas Volume Manager Dynamic Multipathing (DMP) feature. For more information on using DMP, see the Veritas Volume Manager Administrator's Guide.
The fencing module starts up as follows:
This allows the fencing start up script to use Veritas Volume Manager (VxVM) commands to easily determine which disks are coordinator disks, and what paths exist to those disks. This disk group is never imported, and is not used for any other purpose.
For example, if the user has configured 3 coordinator disks with 2 paths to each disk, the /etc/vxfentab file will contain 6 individual lines, representing the path name to each disk, such as
The fencing driver examines GAB port B for membership information. If no other systems are up and running, it is the first system up and is considered the correct coordinator disk configuration. When a new member joins, it requests a coordinator disks configuration. The system with the lowest LLT ID will respond with a list of the coordinator disk serial numbers. If there is a match, the new member joins the cluster. If there is not a match, vxfen enters an error state and the new member is not allowed to join. This process ensures all systems communicate with the same coordinator disks.
This is done by verifying that any system that has keys on the coordinator disks can also be seen in the current GAB membership. If this verification fails, the fencing driver prints a warning to the console and system log and does not start.
Topology of coordinator disks in the cluster
Click the thumbnail above to view full-sized image.
Upon startup of the cluster, all systems register a unique key on the coordinator disks. (The key is based on the LLT system ID, for example LLT ID 0 = A.) When there is a perceived change in membership, membership arbitration works as follows:
The preempt and abort command allows only a registered system with a valid key to eject the key of another system. This ensures that even when multiple systems attempt to eject other, each race will have only one winner. The first system to issue a preempt and abort command will win and eject the key of the other system. When the second system issues a preempt and abort command, it can not perform the key eject because it is no longer a registered system with a valid key.
Each system will repeat this race to all the coordinator disks. The race is won by, and control is attained by, the system that ejects the other system's registration keys from a majority of the coordinator disks.
Note Forcing a manual seed at this point will allow the cluster to seed. However, when the fencing module checks the GAB membership against the systems that have keys on the coordinator disks, a mismatch will occur. vxfen will detect a possible split brain condition, print a warning, and will not start. In turn, HAD will not start. Administrative intervention is required.