Как обновить версию виртуальной машины ESXI
- Что такое версия виртуальной машину (hardware version)?
- Версии виртуальных машин ESXI
- Как посмотреть версию виртуальной машины ESXI
- Параметры совместимости виртуальных машин
- При обновлении виртуального оборудования учитывайте следующие моменты
- Обновление версии виртуальной машины в ESXi через веб интерфейс
- Обновление версии виртуальной машины в ESXi через PowerCLI
- Включение автоматического обновления инструментов при перезагрузке в web-клиенте
- Включение автоматического обновления инструментов через CLI
- Как настроить совместимость по умолчанию для создаваемых виртуальных машин
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в России Pyatilistnik.org. В прошлый раз мы с вами научились ремонтировать USB флешку, когда она писала "диск защищен от записи" и не могла уже быть использована для работы. В сегодняшней публикации я хочу вам показать методы позволяющие произвести обновление версии виртуальной машины в VMWare ESXi и vCenter, его еще называют "Upgrade hardware version". Расскажу зачем это вообще нужно.
Что такое версия виртуальной машину (hardware version)?
Когда вы создаете виртуальную машину или обновляете существующую виртуальную машину, вы используете параметр совместимости виртуальной машины, чтобы выбрать версии хоста ESXi, на которых может работать виртуальная машина.
Параметр совместимости определяет виртуальное оборудование, доступное виртуальной машине, которое соответствует физическому оборудованию, доступному на хосте. Виртуальное оборудование включает:
- BIOS и EFI
- доступные виртуальные слоты PCI
- максимальное количество процессоров
- максимальную конфигурацию памяти и другие характеристики
Новые возможности виртуального оборудования обычно выпускаются один раз в год вместе с основными или второстепенными выпусками vSphere. Каждый уровень совместимости виртуальных машин поддерживает не менее пяти основных или дополнительных выпусков vSphere.
Например, виртуальная машина с совместимостью с ESXi 5.5 и более поздними версиями может работать на ESXi 5.5, ESXi 6.0, ESXi 6.5, ESXi 6.7, ESXi 6.7 с обновлением 2, ESXi 7.0, ESXi 7.0 с обновлением 1, ESXi 7.0 с обновлением 2.
Версии виртуальных машин ESXI
На момент написания статьи май 2021 года самой последней версией виртуальной машины ESXI является 17 версия. Вот текущий список версий и совместимостей.
Как посмотреть версию виртуальной машины ESXI
Для того. чтобы уточнить какая у вашей виртуальной машины версия совместимости оборудования (Compatibility hardware version) вам нужно выбрать ее и на вкладке "Summary" найти пункт "Compatibility", в моем примере это ESXI 6.5 and later (VM version 13).
Параметры совместимости виртуальных машин
Ниже я привел таблицу, где отображается, как будет себя вести виртуальная машина с не самой последней версией оборудования на последней версии гипервизора ESXI.
Параметр совместимости, отображаемый в раскрывающемся меню "Compatible with", является значением по умолчанию для виртуальной машины, которую вы создаете. Следующие факторы определяют совместимость виртуальных машин по умолчанию:
- Версия хоста ESXi, на котором создана виртуальная машина.
- Объект инвентаризации, для которого установлена совместимость виртуальных машин по умолчанию, включая хост, кластер или центр обработки данных.
Вы можете поменять совместимость по умолчанию или выбрать другую настройку. Не всегда необходимо выбирать последнюю версию хоста ESXi. Выбор более ранней версии может обеспечить большую гибкость и полезен в следующих ситуациях:
- Для стандартизации тестирования и развертывания в вашей виртуальной среде.
- Если вам не нужны возможности последней версии хоста.
- Для обеспечения совместимости со старыми хостами.
При создании виртуальной машины учитывайте среду, в которой она работает, и взвешивайте преимущества различных стратегий совместимости. Рассмотрите свои варианты для этих сценариев, которые демонстрируют гибкость, присущую каждому выбору совместимости виртуальной машины.
При обновлении виртуального оборудования учитывайте следующие моменты
- Модификация версии виртуального оборудования на vCenter Server Appliance не поддерживается. Точно так же не следует вручную устанавливать какие-либо дополнительные версии VMware Tools в гостевой ОС vCenter Server Appliance.
- Обновление виртуальной машины до последней версии оборудования - это физический эквивалент замены диска из одной системы в новую. Его успех будет зависеть от устойчивости гостевой операционной системы к изменениям оборудования. VMware не рекомендует обновлять версию виртуального оборудования, если вам не нужны новые функции, представленные в новой версии.
- Перед обновлением версии виртуального оборудования виртуальной машины создайте моментальный снимок (Снапшот) или резервную копию виртуальной машины на случай, если после обновления возникнут проблемы.
- Чтобы автоматизировать этот процесс, рассмотрите возможность использования vCenter Update Manager для обновления виртуальных машин.
- vCenter Update Manager делает автоматические снимки перед обновлением виртуальных машин.
- При обновлении виртуального оборудования не требуется простоя для vCenter Server или хостов ESXi/ESX. Для виртуальных машин единственным значительным временем простоя является время выключения и перезапуска гостевых операционных систем.
Обновление версии виртуальной машины в ESXi через веб интерфейс
Данный метод самый простой. вам необходимо:
- Выключить виртуальную машину
- Далее вызвать через правый клик контекстное меню и выбрать пункт "Compatibility - Upgrade VM Compatibility"
Подтверждаем апгрейд виртуального оборудования
Выбираем нужную вам версию виртуального оборудования. Я выберу последнюю ESXI 7.0 U1 and later.
Через пару мгновений в описании "Compatibility" будет красоваться выбранная вами версия виртуального оборудования.
Обновление версии виртуальной машины в ESXi через PowerCLI
Если вы любите автоматизацию и командную строку, то для вас PowerCli это лучший вариант.
Подключаемся к вашему vCenter через команду:
Первое, что вы должны сделать. это посмотреть текущую версию виртуальной машины или списка:
- Вывод версии для определенной виртуальной машины
В моем примере, это будет 13 версия.
- Вывод версии для папки с виртуальными машинами
Тут test-upgrade, это папка в которой у меня лежат виртуальные машины. обычно папки используют для группировки серверов.
Теперь зная список машинок, я обновлю их до 18 версии, для этого можно использовать скрипт:
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-18”
$VMConfig.ReconfigVM($vmConfigSpec)
Это не приведет к автоматическому обновлению совместимости виртуальной машины, в отличие от VMware Tools, это невозможно сделать с включенной виртуальной машиной. В следующий раз, когда виртуальная машина будет перезагружена, она выключится, совместимость будет обновлена, а затем снова включится. Получается, у вас в планировщике будет стоять задание, проверить это можно увидев, что стал доступен пункт меню "Compatibility - Cancel Scheduled VP Upgrade"
Запустив виртуальную машину я сразу вижу, что у нее "Compatibility hardware version" теперь имеет статус (VM version 18). Чем хорошо скриптом можно обновлять пачками сервера.
Включение автоматического обновления инструментов при перезагрузке в web-клиенте
Использование параметров виртуальных машин для обновления VMware Tools, также является еще одним методом автоматического обновления оборудования у виртуальных машин. Включение расширенного параметра “Check and upgrade VMware Tools before each power on” нельзя использовать из-за дополнительной перезагрузки виртуальных машин. Помните, что с Windows Server 2016, VMware Tools больше не требует перезагрузки при обновлении, можно безопасно включить этот параметр, и виртуальные машины будут обновляться при каждой перезагрузке. Однако это может быть применимо не ко всем ситуациям, поэтому еще одна рекомендация - включить это для лабораторной среды или некритических рабочих нагрузок. Самый простой способ включить эту опцию - войти в vSphere Client, отредактировать настройки виртуальной машины и включить настройку.
При следующем включении ваша версия виртуального оборудования будет обновлена до последней версии.
У нас пост об автоматизации, так что давайте посмотрим, сможем ли мы найти способ использовать PowerCLI для изменения настроек виртуальной машины, чтобы это стало проще, когда у нас есть большая среда. Задача выставить списку серверов галку “Check and upgrade VMware Tools before each power on”. Для начала возьмем список виртуальных серверов из папки и посмотрим текущие статусы.
Здесь мы можем увидеть, для каких виртуальных машин установлено автоматическое обновление, а для каких - вручную. Используя фильтр, мы можем искать объекты, которые настроены вручную, а затем настраивать их для установки на upgradeAtPowerCycle. Теперь давайте зададим те кто был вручную, сделать все автоматически.
Foreach ($VM in ($ManualUpdateVMs)) {
$VMConfig = Get-View -VIObject $VM.Name
$vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec
$vmConfigSpec.Tools = New-Object VMware.Vim.ToolsConfigInfo
$vmConfigSpec.Tools.ToolsUpgradePolicy = "UpgradeAtPowerCycle"
$VMConfig.ReconfigVM($vmConfigSpec)
}
Проверим, что теперь у всех выставлен статус в "ToolsUpgradePolicy" как "UpgradeAtPowerCycle".
Включение автоматического обновления инструментов через CLI
У самого сервера ESXI есть встроенный CLI язык и команды, которые можно использовать для того, чтобы обновить версию виртуальной машины. Подключитесь по ssh к нужному хосту и введите:
vim-cmd vmsvc/getallvms
Запомните VMID ВМ, которую нужно обновить:
vim-cmd vmsvc/upgrade vmid vmx-18
Как настроить совместимость по умолчанию для создаваемых виртуальных машин
Вы можете установить совместимость по умолчанию для создания виртуальных машин на хосте, кластере или в центре обработки данных. Эти параметры гарантируют, что при добавлении виртуальных машин в существующую среду vSphere они будут совместимы с версиями хоста, которые там находятся.
- Чтобы установить совместимость по умолчанию в кластере, кластер должен содержать подключенные узлы, не находящиеся в режиме обслуживания.
- Параметр совместимости по умолчанию на узле переопределяет параметр кластера или центра обработки данных по умолчанию.
- Параметр совместимости по умолчанию в кластере переопределяет параметр центра обработки данных по умолчанию.
Я для примера покажу. где это делается для кластера. Выберите кластер и перейдите на вкладку "Configure - Configuration - General". Нажмите кнопку "Edit"
Из выпадающего списка выберите нужную для вас версию совместимости оборудования для виртуальных машин ESXI.
На уровне хоста выбрать режим совместимости можно по пути "Configure - Virtual Machines - Default VM Compatibility" (Вы можете установить совместимость только на хостах, которые не являются частью кластера.)
На этом у меня все, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.