In each new ESXi release, VMware updates the VM version and, consequently, the parameters of virtual hardware. As a rule, in the new VM version new features appear, old bugs are fixed, etc. So when moving to a newer ESXi version it is recommended to upgrade virtual hardware version for all virtual machines. It’s better to use older VM versions only for compatibility purposes. In this article, we’ll consider how to upgrade virtual hardware version of a VM running on a VMWare ESXi host.
The compatibility of ESXi and VM versions is shown in the table below.
|Hypervisor Version||VM Version|
You can see the current virtual machine (virtual hardware) version in the Summary tab of the virtual machine. The screenshot below shows that VM version 8 (ESXI 5.0 and later) is being used.
Before upgrading the VM version, it is recommended to:
- Create a VM snapshot
- Update VMware Tools version
To upgrade the Virtual Hardware version, the virtual machine has to be stopped. After that right-click the VM to access Upgrade Virtual Hardware (Compatibility > Upgrade VM Compatibility in vSphere Web Client).
When upgrading the virtual hardware version to 10 or 11 from earlier versions, you will be able to edit VM settings only in vSphere Web Client interface. If you try to change them in vSphere Client, the following error appears:
You can schedule an automatic upgrade of VM version after the next correct VM restart.
- To do it, go to VM settings, switch to the Virtual Hardware tab and expand Upgrade.
- Check Schedule VM Compatibility Upgrade option and select the upgrade version.
- It’s better to check Only upgrade after normal guest OS shutdown option.
Also, you can upgrade VM Hardware Version using PowerCLI:
Set-VM -VM lon-fs03 -Version v11 -Confirm:$false
If you are using a free ESXi version (VMware vSphere Hypervisor), you won’t be able to upgrade it in PowerCLI due to some API restrictions. But you can use vim-cmd command in ESXi shell:
Get the list of VMs on the server:
Remember VMID to be upgraded:
vim-cmd vmsvc/upgrade vmid vmx-11
Start VM and make sure that it has been upgraded to VM version 11.