Как понизить версию виртуального аппаратного обеспечения (Virtual Hardware Version) с vmx-10 до vmx-09
В VMware vSphere 5.5 появился новый уровень виртуального аппаратного обеспечения (Virtual Hardware Version) vmx-10. После повышения уровня аппаратного обеспечения (Upgrade Virtual Hardware) с vmx-09 до vmx-10 теряется возможность редактирования настроек виртуальных машин через vSphere client.
При попытке отредактировать настройки виртуальной машины с версией 10, vSphere Client выдает окно с ошибкой:
You cannot use the vSphere client to edit the settings of virtual machines of version 10 or higher.
Use the vSphere Web Client to edit the settings of this virtual machine.
Статья VMware KB: Editing virtual machine settings fails with the error: You cannot use the vSphere client to edit the settings of virtual machines of version 10 or higher (2061336) прямо указывает, что это ожидаемое поведение, и требует использовать vSphere Web Client, а если такой возможности нет, то редактировать свойства виртуальных машин при помощи PowerCLI.
Однако иногда проще просто понизить уровень виртуального аппаратного обеспечения.
Официальные способы понизить (downgrade) уровень железа описаны в статье VMware KB: Downgrading the virtual machine hardware version in ESX/ESXi (1028019). Их три:
- Откатите до снапшота созданного перед повышением уровня;
- Используйте VMware vCenter Converter Standalone;
- Создайте новую виртуальную машину, и подключите в нее существующий диск.
Не очень богатый выбор. Если бы у Вас был снапшот, Вы бы эту статью не читали. Создать новую виртуальную машину можно, но будет много головной боли, например из-за смены MAC-адресов, да и точно восстановить конфигурацию виртуальной машины довольно трудоемкий процесс. Использовать конвертер очень и очень долго. Тем более, что есть неофициальный неподдерживаемый, но очень простой способ.
Всё, что делает VMware ESXi при повышении уровня с vmx-09 до vmx-10, это в файле конфигурации виртуальной машины <macine_name>.vmx изменяет значение
virtualHW.version = "9"
на
virtualHW.version = "10"
То есть, всё что нужно сделать, чтобы откатить изменения, это поменять 10 на 9, и сделать так, чтобы хост VMware ESXi узнал об этом изменении.
Способ 1: Virtual Hardware Version уменьшаем загрузкой через vSphere Client на рабочий компьютер, VMware ESXi уведомляем методом удаления/добавления в инвентарь.
- Выключите виртуальную машину, если она включена;
- Удалите виртуальную машину из инвентаря хоста используя команду Remove from Inventory;
- Используя vSphere Client загрузите <machine_name>.vmx к себе на компьютер.
- Найдите в загруженном файле строку virtualHW.version = «10» (обычно третья), и исправьте 10 на 9;
- Загрузите измененный файл обратно используя vSphere Client;
- Добавьте виртуальную машину в инвентарь и запустите при необходимости.
Способ 2. Virtual Hardware Version уменьшаем через SSH, VMware ESXi уведомляем методом его перезагрузки.
- Выключите все виртуальные машины на хосте;
- Подключитесь к хосту через SSH;
- Для каждой виртуальной машины выполните:
- Используя SSH подключение выполните:
cd /vmfs/volumes/<datastore_name>/<machine_name> vi <machine_name>.vmx
- Найдите строку virtualHW.version = «10» (обычно третья), и исправьте 10 на 9;
- Сохраните файл.
- Используя SSH подключение выполните:
- Перезагрузите VMware ESXi.
Естественно, способы можно комбинировать. Главное поменять в файле конфигурации, и уведомить хост об этом. Возможно, вместе танцев с инвентарем или перезагрузками, можно мигрировать виртуальную машину между двумя хостами, но у меня нет возможности это проверить. Напишите пожалуйста в комментариях о результатах, если попробуете.
Не могу найти в vSphere Client как загрузить измененный файл обратно, вытащил то его тоже не через vSphere Client, а через WEB. Подскажите как загрузить его обратно. Спасибо.