Saturday, April 25, 2015

VM Component Protection (VMCP)

VM Component Protection (VMCP) is a new feature in vSphere 6.0. As discussed in my previous post, there are two distinct states a device can be in when storage connectivity is lost; All Paths Down (APD) or Permanent Device Loss (PDL). VMCP will respond to both conditions, and the configuration is rather simple.



If you have had the pleasure of losing a datastore on you vSphere host, you know all too well that the virtual machine can become orphaned and unusable until the datastore is back online. VM Component Protection (VMCP) can help eliminate that issue if there is another host in the cluster that has access to the datastore. When a datastore accessibility failure occurs, the affected host can no longer access the storage path for a specific datastore. You can determine the response that vSphere HA will make to such a failure, ranging from the creation of events to virtual machine restarts on other hosts.

To enable VMCP, you check off Protect against Storage Connectivity Loss.


For an APD, if the PDL SCSI sense codes are not returned from a device, then the device is in an All Paths Down state; we don't know if it is going to return or not. As mentioned in my previous post, with vSphere 5.1 some changes were introduced to the way an APD was handled by the hypervisor. When an APD occurs a timer starts. After the timer expires, the datastore will be identified as APD Timeout, pending non-VM I/O will be aborted and hostd will mark the datastore as inaccessible with an APD Timout reason. Any further non-VM I/O will be fast failed with a status of NO_Connect. 

When the 140 seconds has passed, HA will start counting. After the user-configured delay for VM failover for APD period has elapsed (3 minutes), the actions taken depend on the policy you select. For instance, you could specify that Response for a Datastore with Permanent Device Loss (PDL) is disabled, issues an event, or power off and restart VMs. The same is true for Response for a Datastore with All Paths Down (APD); except you have power off and restart VMs (conservative) and power off and restart VMs (aggressive).

When it is set to ConservativeHA is more methodical when protecting VM from component failures and will try to keep the VM state if the possibility of a successful restart is unknown. If you set it to Aggressive, HA protects VMs from component failures forcefully. In some cases, VM current state may be lost or FT redundancy may be sacrificed in favor of component protection.

If the settings are set to Disabled, there is no component health monitoring and no VM restart.


For transient storage access failure, if the failure recovers before a VM gets terminated but after APD timeout, the VM might be left running in a flaky state without retrying failed guest IOs. Resetting the VM in this case will make sure that guest applications restore their services. This is configured on the Response for APD recovery after APD timeout.

VM Component Protection (VMCP) has the following interoperability issues and limitations:

  • VMCP does not support vSphere Fault Tolerance. If VMCP is enabled for a cluster using Fault Tolerance, the affected FT virtual machines will automatically receive overrides that disable VMCP.
  • VMCP does not detect or respond to accessibility issues for files located on Virtual SAN datastores. If a virtual machine's configuration and VMDK files are located only on Virtual SAN datastores, they are not protected by VMCP.
  • VMCP does not detect or respond to accessibility issues for files located on Virtual Volume datastores. If a virtual machine's configuration and VMDK files are located only on Virtual Volume datastores, they are not protected by VMCP.
  • VMCP does not protect against inaccessible Raw Device Mapping (RDM)s.
One thing to keep in mind, all of these features are only found in the vSphere Web Client. Duncan Epping did a great write-up on Yellow-Bricks called What's New for HA in vSphere 6.0 that helped me with this post.
News: Top vBlog 2016 Trending: DRS Advanced Settings