Как понизить версию виртуальной машины Vmware ESXI
Добрый день! Многие компании сейчас все чаще переносят свои ресурсы и сервисы к облачным провайдерам, таким как AWS, Azure или vCLoud Director. Сама миграция может происходить как создание в облаке нового сервера и ручной перенос сервисов, либо же миграция виртуальной машины, после P2V конвертирования. В момент переноса виртуальной машины в облако VMware vCLoud Director, я получал ошибку " The OVF package requires hardware version 13 but the selected VDC only supports hardware version 11". Из ошибки следовало, что моя версию виртуальной машины, более новая, чем поддерживает провайдер. Тут вариантов было несколько, увеличить версию поддержки, либо же понизить версию виртуального аппаратного обеспечения (Virtual Hardware Version / VM version). В данной заметке, я вам покажу, как можно быстро изменить версию VM version, на нужную вам.
Что такое уровень виртуального аппаратного обеспечения
Virtual Hardware Version или VM version - это версия виртуальной машины с поддержкой нового физического оборудования. Каждая версия виртуального оборудования имеет свою поддержку функционала, в самых свежих версиях исправляются различные баги и ошибки.
Еще в старых версиях VMware ESXI 5.5 вы могли сталкиваться с ситуацией, когда вы не могли управлять из толстого клиента vCenter, виртуальными машинами, у которых версия виртуального аппаратного обеспечения была 10-й и вы видели сообщение:
Администраторам уже тогда, в некоторых случаях, требовался откат версии виртуального оборудования, до 9-й или 8-й. Хотя компанию Vmware понять можно, она семимильными шагами загоняла всех в vSphere Web Client.
Как посмотреть версию виртуального оборудования, я вам уже показывал, можете ознакомиться. В моем примере есть тестовая виртуальная машина с Windows Server 2012 R2, как видите, у нее версия виртуальной машины (VM version) 13-я.
Методы понижения (downgrade) версии виртуального оборудования
Существует несколько методов, которые вам помогут уменьшить версию "VM version" у нужной вам виртуальной машины, среди них есть как официальные. так и не очень:
- Редактирование в файле название виртуалки.vmx параметра virtualHW.version, это самый быстрый способ, но он официально VMware не озвучивался.
- Создание новой виртуальной машины и подсовывание ей нужных виртуальных дисков от старой виртуалки.
- Конвертирование, через VMware vCenter Converter Standalone
Downgrade через редактирование virtualHW.version
Так как мне дорого мое время, то я использую для понижения версии виртуального оборудования на ESXI хостах, метод с редактированием параметра virtualHW.version в конфигурационном файле виртуальной машины. Вы скачиваете либо, через vSphere Web Client, либо через ssh конфигурационный файл формата *.vmx.
В веб-интерфейсе откройте вкладку "Datastores", и выберите там пункт "Browse Files", для просмотра содержимого на данном хранилище.
Найдите на вашем хранилище папку с вашей виртуальной машиной, откройте ее и найдите конфигурационный файл в формате .vmx и загрузите его, через кнопку "Download from Datastore". Как только внесете нужные настройки, через кнопку "Upload a file to the Datastore" с заменой.
Второй метод добраться до конфигурационного файла, это включить ssh доступ на ESXI хосте и подключиться, через WInSCP. Пройти по пути /vmfs/volumes/ваш датастор/имя вашей виртуальной машины. Скачиваете от туда файл .vmx.
Далее, когда вы получили конфиг-файл, вы редактируете его любым текстовым редактором. В файле находите параметр virtualHW.version = "13", в моем случае VM version имеет 13 версию, я поменяю ее на 11. Копируете фал обратно с заменой оригинального и проверяете результат, у вас при включении виртуальной машины должна понизиться версия виртуального оборудования.
В итоге когда я включил свой сервер, то лицезрел цифру 11.
Изменение версии оборудования, через VMware vCenter Converter Standalone
Этот метод, гораздо более время затратный, и потребует установки конвертера VMware vCenter Converter.
Открываете его и нажимаете кнопку "Convert machine".
Производите подключение к вашему vCenter серверу или Vmware ESXI хосту, убедитесь, что у вас стоит пункт "Power Off", означающий, что виртуальная машина отключена.
В пункте "Specify machine with" поставьте значение "VMs and Templates", в структуре датацентров, найдите вашу виртуальную машину.
Далее вам нужно подключиться к Vcenter серверу или ESXI хосту, куда будет конвертироваться виртуальная машина, у которой будет понижена версия VM version.
Задаете новое имя виртуальной машине и нажимаете "Next".
На следующем шаге выберите на каком ESXI хосте у вас будет располагаться ваша виртуалка и задайте ей нужную версию "Virtual machine version". После того, как задание будет выполнено, вы получите downgrade виртуального аппаратного обеспечения.
Пересоздание виртуальной машины
Тоже так себе метод, так как вам придется восстановить конфигурацию в первозданном виде, хорошо если у вас нет привязок по mac адресам или другим аппаратным GUID, а если есть, то придется выполнить дополнительные действия. Щелкаем по нужному серверу и выбираем из контекстного меню пункт "Remove from inventory". В итоге у вас ваша машинка не удалится с дисков, а просто исчезнет из списка зарегистрированных на vCenter сервере.
Далее вы создаете новую виртуальную машину, задаете ей другое имя отличное от старой. На шаге 2d Select compatibility вы выбираете версию виртуалки. Таблицу версий можно посмотреть вот тут.
На шаге 2f удалите все виртуальные диски и выберите пункт существующие диски "Exsisting Hard Disk".
Найдите ваши виртуальные диски на вашем датасторе и добавьте их.
Как видите данный метод, не менее трудоемкий, чем второй. Вы сами вправе выбирать любой из методов, подходящих именно вам. Если вы знаете другие, то напишите их в комментариях, буду вам признателен. Остались вопросы, так же готов их с вами обсудить, а пока вы пишите, я перевожу сервисы и ресурсы в VMware vCLoud Director.