Problem
This error can occur due to a mismatch in virtual machine (VM) hardware versions between the protected site and the recovery site. Each VMware ESXi version supports a specific VM hardware version. When versions are not compatible between sites the failover operation will not be able to locate a valid host to run the VM.
Understanding VM Hardware Versions
VM hardware versions define the virtual hardware features and capabilities that a VM can utilize. They correspond to specific VMware ESXi versions. Refer to this article for more information: Virtual Machine Compatibility.
A mismatch between the hardware version of a VM on the protected site and the capabilities of hosts on the recovery site can lead to the failure of the failover process.
Example Error Reported During Failover
Status : Failed to create final VM.
Details : A component of the virtual machine is not accessible on the host.com.vmware.vim25.CannotAccessVmComponent@1d4fb674[dynamicProperty=,dynamicType=,faultCause=,faultMessage={com.vmware.vim25.LocalizableMessage@6840c83e[arg={com.vmware.vim25.KeyAnyValue@4ae77d3[key=hwversion,value=vmx-19,dynamicProperty=,dynamicType=]},key=com.vmware.vim.vm.error.NoValidHostDueToHwVersion,message=No valid hosts could be found due to hardware version 'vmx-19'.,dynamicProperty=,dynamicType=]},detail=,cause=,detailMessage=,stackTrace={},suppressedExceptions=java.util.Collections$UnmodifiableRandomAccessList@68fcded9{}]No valid hosts could be found due to hardware version 'vmx-19'
Solution
Ensure the VM hardware versions are compatible between the protected site and the recovery site. This involves verifying the VM hardware version on the protected site can be supported by capabilities available at the recovery site.
- Log in to vCenter at the protected site.
- Use the vSphere Client or vSphere Web Client to access the vCenter Server where the VM is being managed.
- Identify the VM hardware version.
Check Hardware Version From vCenter UI
- Select the VM in question at protected site.
- Under the Summary tab, check the VM Hardware Compatibility field to identify the current hardware version (e.g., vmx-14).
Check Hardware Version Using ESXi CLI
- Connect to the ESXi host via SSH.
- Check the hardware version of all VMs under the host using the command:
vim-cmd vmsvc/getallvms - Check a specific VM’s hardware version using the command:
vim-cmd vmsvc/get.summary | grep "hardware.version"
- Check the hardware version of all VMs under the host using the command:
Check Hardware Version Using VMware PowerCLI
- Connect to the desired VCenter via PowerShell.
- Check the hardware version of all VMs using the command:
Get-VM | Select Name, HardwareVersion - Check a specific VM’s hardware version using the command:
Get-VM -Name "" | Select Name, HardwareVersion
- Check the hardware version of all VMs using the command: