While upgrading VMware Cloud Foundation (VCF) you might observe ESXi hosts upgrade failure in a VSAN Cluster with below symptoms :
VUM Remediation (installation) of an ESXi host failed" in SDDC UI Tasks pane./var/log/vmware/vcf/lcm/lcm-debug.log' shows errors similar to below snippets :ERROR [vcf_lcm,45b1...................,upgradeId=4c8d####-####-####-####-########790a,resourceType=ESX_HOST,resourceId=46a4####-####-####-####-########c9d,bundleElementId=3742####-####-####-####-########6b5]
[c.v.e.s.l.p.i.e.EsxVumUpdateStageRunnerImpl,Async-10] Failed to install update due to unexpected error: VUM Remediate task failed: (vim.TaskInfo) {
key = task-######,
task = ManagedObjectReference: type = Task, value = task-######, serverGuid = 77c7####-####-####-####-########634,
descriptionId = com.vmware.vcIntegrity.RemediateTask,
entity = ManagedObjectReference: type = HostSystem, value = host-##, serverGuid = 77c7####-####-####-####-########634,
entityName = <fqdn>,
state = error,
error = (vim.fault.ExtendedFault) {
faultTypeId = com.vmware.vcIntegrity.HostPatchVsanHealthCheckFailureBeforeExitMM,
data = (vim.KeyValue) [
},
(vim.KeyValue) {
key = faultMessage,
value =
},
(vim.KeyValue) {
key = healthCheckStatus,
value = vSAN cluster is not healthy because vSAN health check(s): com.vmware.vsan.health.test.nvmeonhcl failed
}
]
},
/var/log/vmware/vmware-updatemgr/vum-server/vmware-vum-server.log' on vCenter Server shows errors similar to below snippets :info vmware-vum-server[#####] [Originator@#### sub=VciRemediateTask.RemediateTask{###}] [vciTaskBase ####] SerializeToVimFault fault:
--> (integrity.fault.HostPatchVsanHealthCheckFailureBeforeExitMM) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = <unset>,
--> healthCheckStatus = "vSAN cluster is not healthy because vSAN health check(s): com.vmware.vsan.health.test.nvmeonhcl failed"
--> msg = ""
--> }
--> Converted fault:
--> (vim.fault.ExtendedFault) {
--> faultCause = (vmodl.MethodFault) null,
--> faultMessage = <unset>,
--> faultTypeId = "com.vmware.vcIntegrity.HostPatchVsanHealthCheckFailureBeforeExitMM",
--> data = (vim.KeyValue) [
--> (vim.KeyValue) {
--> key = "faultCause",
--> value = ""
--> },
--> (vim.KeyValue) {
--> key = "faultMessage",
--> value = ""
--> },
--> (vim.KeyValue) {
--> key = "healthCheckStatus",
--> value = "vSAN cluster is not healthy because vSAN health check(s): com.vmware.vsan.health.test.nvmeonhcl failed"
--> }This is a known issue affecting VMware Cloud Foundation environments.
Workaround:
To work around the issue, please follow any of the below methods:
Follow the below steps (either using vSphere Client UI or using RVC CLI) to temporarily disable the VSAN Health Check for NVMe Controllers during the upgrade and Enable it back once the upgrade is complete.
IMPORTANT NOTES:
rvc localhostvsan.health.silent_health_check_configure -a 'nvmeonhcl' [clusterPath]
Replace [clusterPath] with full path to the Cluster. In below example, Cluster Name 'VSAN-Cluster' in Datacenter 'VSAN-DC' is used.
Sample:
root@<hostname> [ ~ ]# rvc localhost
Warning: Permanently added 'localhost' (vim) to the list of known hosts
Using default username "administrator@vsphere.local".
password:
Welcome to RVC. Try the 'help' command.
0 /
1 localhost/
vsan.health.silent_health_check_configure -a 'nvmeonhcl' localhost/VSAN-DC/computers/VSAN-Cluster/
Successfully update silent health check list for VSAN-Clustervsan.health.silent_health_check_configure -r 'nvmeonhcl' [clusterPath]vsan.health.silent_health_check_configure -r 'nvmeonhcl' localhost/VSAN-DC/computers/VSAN-Cluster/
Select the correct controller with the PCI ID by following below steps :
Manually Exit the ESXi host from maintenance mode by following below steps: