Перейти к основному содержанию

VMware ESXi — обновление версии VM

VMware vSphere 8

VMware обновляет версию виртуальной машины с каждой новой версией гипервизора ESXi. В новых версиях появляется новый функционал и поддержка новых устройств. При изменении версии ESXi и vCenter виртуальные машины старых версий могут больше не поддерживаться. В этом случае версию VM нужно обновить.

Гипервизор Версия VM
ESX/ESXi 4.X 7
ESXi 5.0 8
ESXi 5.1 9
ESXi 5.5 10
ESXi 6.0 11
ESXi 6.5 13
ESXi 6.7 14
ESXi 6.7 U2 15
ESXi 7.0 17
ESXi 7.0 U1 18
ESXi 7.0 U2 19
ESXi 8.0 20

Версию можно увидеть на вкладке Summary виртуальной машины в секции Compatibility.

vmware

Эту машину я только что накатил из OVA шаблона. Если гипервизор не поддерживает данную версию VM то при попытке запуска или миграции мы получим ошибку.

No host is compatible with the virtual machine.

vmware

Потребуется обновление версии VM. Перед обновлением версии рекомендуется создать резервную копию или снапшот. Для выполнения обновления версии виртуальную машину нужно выключить, у меня и так выключена.

vmware

Actions → Compatibility → Upgrade VM Compatibility.

vmware

Подтверждаем обновление версии VM. YES.

vmware

Выбираем версию VM. Можно выбрать последнюю доступную.

vmware

А можно какую-то другую. Понизить версию таким способом нельзя. А повысить — пожалуйста. OK.

vm

Версия VM изменилась.

Таким же образом можно выбрать обновление версии VM при следующей перезагрузке с помощью опции Actions → Compatibility → Schedule VM Compatibility.

Для централизованного обновления версий VMможно использовать vCenter Update Manager или vSphere Lifecycle Manager.

Обновление версии VM через PowerShell

Обновить версию VM:

Set-VM -VM vmname -HardwareVersion vmx-19 -Confirm:$false

Если ESXi не поддерживает эту версию, то получим ошибку:

The operation for the entity mytestVM1 failed with the following message: The operation is not supported on the object.

Список ВМ, которые нужно обновить:

Get-VM |Where-object {$_.powerstate -eq "poweredoff"} | Out-GridView -PassThru | Set-VM -HardwareVersion vmx-19 -Confirm:$false

Запланировать обновление всех VM после перезагрузки:

$HardwareUpdateVMs = Get-VM
Foreach ($VM in ($HardwareUpdateVMs)) {
$VMConfig = Get-View -VIObject $VM.Name
$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$vmConfigSpec.ScheduledHardwareUpgradeInfo = New-Object -TypeName VMware.Vim.ScheduledHardwareUpgradeInfo
$vmConfigSpec.ScheduledHardwareUpgradeInfo.UpgradePolicy = “always”
$vmConfigSpec.ScheduledHardwareUpgradeInfo.VersionKey = “vmx-19”
$VMConfig.ReconfigVM($vmConfigSpec)

Обновление версии VM редактированием конфигурационного VMX файла

Таким образом можно не только повысить версию VM, но и понизить. Этот способ используйте на свой страх и риск, не факт что VM потом корректно заработает.

В хранилище редактируем файл vmname.vmx:

cd /vmfs/volumes/datastore1/vmname
vi vmname.vmx

Находим строку:

virtualHW.version = "10"

И меняем в ней версию:

virtualHW.version = "11"
 

Похожие материалы