SCSI tiebreaker setup for a two-node cluster

Set up an SCSI tiebreaker on Linux on System x or Linux on POWER.

This SCSI tiebreaker type is specific for Linux on System x, and Linux on POWER. If you want to create a SCSI tiebreaker object, you must specify the SCSI device with the DeviceInfo persistent resource attribute. If the SCSI configuration is different on different nodes in the cluster, you can also use the NodeInfo persistent resource attribute to reflect those differences. This type of tiebreaker uses a reserve/release mechanism and must be re-reserved periodically to hold the reservation. When you create a tiebreaker of this type, you can also specify the HeartbeatPeriod persistent resource attribute. The HeartbeatPeriod persistent resource attribute defines the interval at which the reservation request is reissued.

SCSI devices on Linux® can be identified by four integer values for the attributes HOST, CHAN, ID, and LUN:
node1:~# dmesg | grep "Attached scsi disk" 
Normally these parameters are identical on each cluster node. For example, for node1 and node2 the parameters are HOST=0 CHAN=0 ID=4 LUN=0.
In this case use the following command to create the tiebreaker object:
mkrsrc IBM.TieBreaker Name=myTieBreaker Type=SCSI DeviceInfo=" HOST=0 CHAN=0
 ID=4 LUN=0"
The four values can also be different for different nodes (even if the target device is same). In that case, use the NodeInfo field in addition to the DeviceInfo field.
Use the four integer values from the command output:
# dmesg | grep "Attached scsi disk"
Attached scsi disk sdf at scsi2, channel 2, id 4, lun 0 
For disk sdf the values of the SCSI identifier attributes are HOST=2, CHAN=2, ID=4, LUN=0. For example, a SCSI device is connected to two nodes that are named node1 and node2 and has the following SCSI identifiers:
node1:  HOST=0 CHAN=0 ID=4 LUN=0
node2:  HOST=2 CHAN=2 ID=4 LUN=0
Create the tiebreaker object by using DeviceInfo to specify common attribute values and NodeInfo to specify node-specific attribute values:
# mkrsrc IBM.TieBreaker Name=scsi Type=SCSI DeviceInfo="ID=4 LUN=0"
NodeInfo='{["node1", "HOST=0 CHAN=0"], ["node2", "HOST=2 CHAN=2"]}'
System Automation for Multiplatforms handles DeviceInfo and NodeInfo in such a way that it merges the two strings, DeviceInfo first and then NodeInfo. For example, for node1 the merged string is:
"ID=4 LUN=0 HOST=0 CHAN=0"
This string is parsed.
Also, any duplicated keywords are allowed and the last one is used. Therefore, the same command can be specified as
# mkrsrc IBM.TieBreaker Name=myTieBreaker Type=SCSI DeviceInfo="ID=4 LUN=0
HOST=0,CHAN=0"  NodeInfo='{["node2", "HOST=2 CHAN=2"]}'
This simplification can be useful as in most cases the SCSI id is the same for many nodes.

Manually breaking a disk reservation

If the node that reserves a tie breaker is down and cannot be rebooted, manual access to the healthy node is needed to release the SCSI tiebreaker disk. To release a disk, run the tb_break [–f] HOST CHAN ID LUN command, for example
/usr/sbin/rsct/bin/tb_break –f HOST=0 CHAN=0 ID=4 LUN=0