Virtual Volumes (VVols), vSphere HA and Heartbeat Datastores

VVolsI 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):

1. ha disabledNow 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).

3. config-vvolAnd 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:

heartbeat datastoresAnd vSphere HA works, as expected when a failure occurs. In the following screenshots, the VM, located on the VVol datastores, is running on host 11. It is protected by HA.

6. VM on host 11That host has a failure, and agent is reported as not reachable.

7. HA failureOn a failure, vSphere HA does its thing with the VM. We can see this from the events:

8. HA eventsAnd the VM is restarted on the other host in the vSphere HA cluster, host 09.

9. vm on host 9To close, full support for vSphere HA with Virtual Volumes, including the use of the VVol datastore for vSphere HA datastore heartbeating.

3 Replies to “Virtual Volumes (VVols), vSphere HA and Heartbeat Datastores”

  1. Great post! Can we also use vvols for scratchconfig and syslog.global.logdir? In our set up we redirect them all to folders on one vmfs datastore .locker-esxihostname.

Comments are closed.