Поиск по сайту:

Как обновить версию оборудования виртуальной машины в VMware ESXi


В каждом новом выпуске ESXi VMware обновляет версию виртуальной машины и виртуального оборудования. В новых версиях ВМ VMware появляется новый функционал, добавляются новые виртуальные устройства, увеличиваются лимиты ресурсов (слоты PCI, ОЗУ, виртуальные ЦП), исправляются ошибки и т. д. Поэтому при переходе на более новую версию ESXi желательно обновить версия виртуального оборудования на всех виртуальных машинах. Старые версии ВМ лучше использовать только в целях совместимости. В этой статье мы рассмотрим, как обновить версию виртуального оборудования виртуальной машины, работающей на хосте VMWare ESXi.

Совместимость версий оборудования ESXi и VM показана в таблице ниже.

Hypervisor Version

Версия виртуальной машины

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 (7.0.0)

17

ESXi 7.0 U1 (7.0.1)

18

ESXi 7.0 U2 (7.0.2)

19

Текущую версию виртуальной машины (виртуального оборудования) можно проверить на вкладке Сводка виртуальной машины в разделе Совместимость. На снимке экрана ниже видно, что ВМ версии 18 (

ESXI 7.0 U1 and later

) используется.

VMware не рекомендует обновлять версию виртуального оборудования, если вам не нужны новые функции, предоставляемые новым аппаратным обеспечением.

Вы не сможете запустить виртуальную машину на хосте ESXi, который не поддерживает новую версию оборудования виртуальной машины. При попытке миграции такой ВМ на хост со старой версией ESXi с помощью VMotion появится ошибка:

The virtual machine version is not compatible with the version of the host munexi1.

Перед обновлением версии ВМ рекомендуется:

  • Создать снимок виртуальной машины

  • Обновите инструменты VMware. Если вы обновите оборудование виртуальной машины до установки последней версии VMware Tools, настройки сети можно будет сбросить на гостевой виртуальной машине Windows.

Чтобы обновить версию виртуального оборудования, виртуальную машину необходимо остановить. После этого щелкните правой кнопкой мыши виртуальную машину и выберите Совместимость -> Обновить совместимость виртуальной машины.

Подтвердите обновление виртуального оборудования и выберите версию оборудования виртуальной машины. В этом примере я выбрал последнюю версию ESXi 7.0 U1 и более поздних версий, доступную на моем хосте.

Вы можете запланировать автоматическое обновление аппаратной версии виртуальной машины при следующем корректном перезапуске виртуальной машины.

  1. В контекстном меню виртуальной машины выберите Совместимость -> Запланировать обновление совместимости виртуальной машины;

  2. В раскрывающемся списке Совместимо с выберите версию аппаратного обеспечения виртуальной машины, до которой вы хотите выполнить обновление;

  3. Включите параметр Обновлять только после обычного завершения работы гостевой ОС;

  4. Версия виртуального оборудования виртуальной машины будет обновлена при следующей перезагрузке виртуальной машины.

Вы также можете обновить версию оборудования виртуальной машины с помощью командлетов PowerShell из модуля VMware PowerCLI. Подключитесь к хосту vCenter или ESXi:

Connect-VIServer esxi_hostname

Перечислите версии виртуального оборудования ваших виртуальных машин:

Get-VM | select Name, hardwareversion, PowerState

В более новых версиях VMware ESXi вместо атрибута Version виртуальной машины необходимо использовать HardwareVersion. При использовании старого имени атрибута появляется предупреждение:

WARNING: The 'Version' property of VirtualMachine type is deprecated. Use the 'HardwareVersion' property instead.

Чтобы обновить версию оборудования виртуальной машины с помощью PoweShell, выполните команду:

Set-VM -VM lon-fs03 -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.

Вы можете перечислить виртуальные машины, которые необходимо обновить, с помощью командлета Out-GridView:

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

Вы увидите графическую таблицу, в которой вам нужно выбрать виртуальные машины, которые вы хотите обновить (используйте клавишу CTRL, чтобы выбрать несколько виртуальных машин).

Вы можете запланировать автоматическое обновление оборудования на всех виртуальных машинах на хосте с помощью простого сценария PowerShell:

$AllVMs = Get-VM
Foreach ($VM in ($AllVMs)) {
$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)
}

Все виртуальные машины будут автоматически обновлены до указанной версии оборудования виртуальной машины при следующей перезагрузке.

Для централизованного обновления оборудования и инструментов ВМ в корпоративных сетях лучше использовать vCenter Update Manager или vSphere Lifecycle Manager (VLCM) в vSphere 7+.

Если вы используете бесплатную версию ESXi (гипервизор VMware vSphere), вы не сможете использовать аппаратную версию виртуальной машины через PowerCLI из-за ограничений API. Но вы можете использовать команду vim-cmd в оболочке ESXi:

Получите список виртуальных машин на сервере:

vim-cmd vmsvc/getallvms

Найдите VMID виртуальной машины, которую вы хотите обновить, и укажите его в следующей команде:

vim-cmd vmsvc/upgrade vmid vmx-17

Запустите виртуальную машину и убедитесь, что она обновлена до версии виртуальной машины 17.

Существует также другой, неподдерживаемый вариант обновления аппаратной версии ВМ путем непосредственного редактирования файла конфигурации ВМ (VMX).

Подключитесь к хосту ESXi по SSH и перейдите в каталог с виртуальной машиной:

cd /vmfs/volumes/datastore_name/test_vm

Отредактируйте файл test_vm.vmx:

vi myvm.vmx

Найдите строку конфигурации:

virtualHW.version = "12"

И измените на:

virtualHW.version = "17"

Сохраните и закройте файл VMX (

Esc

,

:

,

w

,

q

).

Статьи по данной тематике