I had a few queries recently on how Virtual Volumes (VVols) worked with vSphere HA. In particular, I had a number of questions around whether or not VVol datastores could be used as a heartbeat datastore by vSphere HA. The answer is yes, the VVol datastore can be used for vSphere HA datastore heartbeating. If you want to see how, please read on.
I think these queries may have arisen due to the fact that we do not use datastore heartbeating with Virtual SAN (VSAN). Just by way of reminder, the master host in a vSphere HA cluster uses a heartbeat datastore when it can no longer communicate with a slave host over the management network. This allows the master to determine things like whether a slave host has failed and is down, or if it is in a network partition, or if it is network isolated. This then allows the master to make decisions about what to do with the VMs that reside on the slave host. If the slave host has stopped datastore heartbeating, it is considered to have failed and its virtual machines are restarted elsewhere in the cluster.
This isn’t possible in VSAN due to the fact that storage is local to a host, thus if a host is partitioned and it updates heartbeats on its local storage, there is no way for the other others in the VSAN cluster to see it. VVol datastore is shared storage, which is why datastore heartbeating works. Other hosts can see the updates on storage even if the host is off the network.
In my setup, I have two hosts in a vSphere HA cluster. Both hosts have access to the VVol datastore. Initially HA was disabled obviously, but in my testing I enabled and disabled it a few times. The net result is the a Config-VVol is created on the VVol datastore, and this VVol contained the .vSphere-HA folder used by HA. vSphere HA creates this folder and uses it for both datastore heartbeating and for persisting the set of protected virtual machines. Using the file browser facility on the vSphere web client, we can see this folder is present and empty (as HA is currently disabled on the cluster):
Now with HA enabled, we see the heartbeat files and the list of protected VMs populate the .vSphere-HA folder. Because more than one cluster might use a datastore, sub-directories for this directory are created for each cluster (FDM-xxxx).
And to verify that the VVol datastore can indeed be used for datastore heartbeating, we can verify through the vSphere HA settings on the vSphere web client. In this example, an NFS datastore (from an EMC Isilon) and a VVol datastore (called Capacity) are both used as heartbeating datastores: