ViPR Controller: Datastore unmount fails with message "com.vmware.vim25.QuiesceDatastoreIOForHAFailed"
Summary: When deleting or unmounting a VMware Datastore, the VIPR Controller order fails when trying to unmount the datastore.
Symptoms
A ViPR Controller order to delete a VMware datastore fails.
VIPR Controller UI log
[ERROR] Mon Jan 20 15:07:18 UTC 2020 Maximum number of retries exceeded for Unmount Vmfs Datastore
[ERROR] Mon Jan 20 15:07:18 UTC 2020 Unmount Vmfs Datastore failed with error: 'com.vmware.vim25.QuiesceDatastoreIOForHAFailed'
[ERROR] Mon Jan 20 15:07:18 UTC 2020 com.iwave.ext.vmware.VMWareException
Cause
If the datastore being unmounted or removed is used for heartbeating, vCenter Server excludes it from heartbeating and chooses a new one
The error generated is caused when the HA agent on the ESXi hosts cannot receive the updated heartbeat datastores.
Unmounting the datastore (outside of ViPR Controller) in the vSphere client produces the error:
Resolution
The issue described in this article is related to VMware and is not a ViPR Controller issue.
For more detail, review the VMware article:
https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.troubleshooting.doc/GUID-E325DFF9-5CFF-4E17-AFF1-36BFA467D098.html
Additional Information
[ERROR] Mon Jan 20 15:07:18 UTC 2020 Maximum number of retries exceeded for Unmount Vmfs Datastore
[ERROR] Mon Jan 20 15:07:18 UTC 2020 Unmount Vmfs Datastore failed with error: 'com.vmware.vim25.QuiesceDatastoreIOForHAFailed'
[ERROR] Mon Jan 20 15:07:18 UTC 2020 com.iwave.ext.vmware.VMWareException
com.iwave.ext.vmware.VMWareException
at com.emc.sa.service.vmware.block.tasks.UnmountVmfsDatastore.tryExecute(UnmountVmfsDatastore.java:51)
at com.emc.sa.service.vmware.block.tasks.UnmountVmfsDatastore.tryExecute(UnmountVmfsDatastore.java:20)
at com.emc.sa.service.vmware.tasks.RetryableTask.tryOnce(RetryableTask.java:62)
at com.emc.sa.service.vmware.tasks.RetryableTask.executeTask(RetryableTask.java:55)
at com.emc.sa.engine.ExecutionUtils.execute(ExecutionUtils.java:92)
at com.emc.sa.engine.ExecutionUtils.execute(ExecutionUtils.java:83)
at com.emc.sa.service.vipr.ViPRExecutionUtils.execute(ViPRExecutionUtils.java:41)
at com.emc.sa.service.vmware.VMwareSupport.unmountVmfsDatastore(VMwareSupport.java:304)
at com.emc.sa.service.vmware.VMwareSupport$1.exec(VMwareSupport.java:443)
at com.emc.sa.service.vmware.VMwareSupport.executeOnHosts(VMwareSupport.java:493)
at com.emc.sa.service.vmware.VMwareSupport.deleteVmfsDatastore(VMwareSupport.java:439)
at com.emc.sa.service.vmware.block.DeleteVmfsDatastoreAndVolumeService.execute(DeleteVmfsDatastoreAndVolumeService.java:57)
at com.emc.sa.engine.ExecutionEngineImpl.execute(ExecutionEngineImpl.java:191)
at com.emc.sa.engine.ExecutionEngineImpl.runService(ExecutionEngineImpl.java:129)
at com.emc.sa.engine.ExecutionEngineImpl.executeOrder(ExecutionEngineImpl.java:72)
at com.emc.sa.engine.ExecutionEngineDispatcher.processOrder(ExecutionEngineDispatcher.java:50)
at com.emc.sa.engine.ExecutionEngineDispatcher$Consumer.consumeItem(ExecutionEngineDispatcher.java:91)
at com.emc.sa.engine.ExecutionEngineDispatcher$Consumer.consumeItem(ExecutionEngineDispatcher.java:85)
at com.emc.storageos.coordinator.client.service.impl.DistributedQueueConsumer$1.run(DistributedQueueConsumer.java:80)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.vmware.vim25.QuiesceDatastoreIOForHAFailed
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)