I/O fencing on Windows = Persistent Group Reservation (PGR)
Hi all,
I have seen quite a few posts on VCS and I/O fencing support on Windows, and most threads ends with the conclusion it is not supported.
That is perhaps correct, at least if we look at it in how it is solved in UNIX/Linux. To my knowledge, in Windows, and if the array is SCSI-3 compatible, SFW/HA can reserve the disk group by the means of Persistent Group Reservation (PGR). This, in my book, provides the same functionality from a VCS perspective as vxfen. I'm wrong in this assumption?
All it takes is to enable it on Windows 2003. On Windows 2008 it is by default enabled. Also, by using PGR, we can use DMP with more than one path.
/A
Keep in mind that A is asking about SFW-HA (Windows) there is no coordinator diskgroup or configurable I/O Fencing on Windows.
SCSI-2 reservations place a reservation down a single path to the disk. No other path can access the disk without breaking the reservation from the path that initially reserved it. By other path I mean any other path on the same or different node - AKA Active/Passive only when reservations are used.
SCSI-3 reservations place a reservation on the disks from one node down 1 path. This process generates a PGR key which the reserving node places in its registry. Any path to the storage that knows the PGR key can access the disk. Since remote nodes do not know what the PGR key they can not use the disk without breaking the reservation. However, any path on the same node that initiated the reservation has access to the PGR key and therefore can use the path - AKA Active/Active.
Now the process for preventing split brain is the same with SCSI-2 and SCSI-3 and is the same process the Microsoft Cluster Server/Windows 2008 Failover Cluster uses. It is call a Challenge/Defence process.
The node (defending node) that has the disk group imported runs a reservation thread that maintain the reservation on the disks in the disk group. The reservation thread lets say confirms that the disks are reserved once a second. If the disk does not have the reservation on it then the thread places the reservation on the disk again.
Other nodes (challenging node) that try to import the disk group sees that there is a reservation on the disks in the disk group and they clear the reservation and then wait lets say 3 seconds. After the three seconds pass then it checks the disks again to see if the reservation has returned. If the reservation has returned then it know the disks are under an active nodes control and it stops the import operation of the disk group. However, if the reservation was not replaced on the disk, then this node knows that there is a problem with the formally active node and it continues to import the disk group and places its own reservation thread to maintain its reservations on the disks in the disk group.
As I mentioned before SFW by default will not import the disk group if there is not more than 50% of the disks in a disk group available. In addition, an imported disk group will stay imported as long as it has access to at least 50% of the disks in the disk group.
Thanks,
Wally