Обновление гипервизора VMware ESXi
Руководство по обновлению VMware ESXi: онлайн и офлайн методы
Обновление VMware ESXi — это ключевая процедура для поддержания безопасности, стабильности и производительности виртуальной инфраструктуры. В этой статье представлено подробное пошаговое руководство для самостоятельного обновления через командную строку esxcli, охватывающее как онлайн, так и офлайн сценарии.
Важное примечание: Перед выполнением любых действий создайте резервную копию конфигурации хоста и убедитесь, что ваше оборудование поддерживает целевую версию ESXi, сверившись с VMware Hardware Compatibility List (HCL).
Подготовка и сбор информации
Перед началом обновления необходимо выполнить диагностику.
- Проверка текущей версии и даты установки/обновления
-
Из веб-интерфейса: Информация отображается на главной странице vSphere/ESXi Host Client.
- Из командной строки:
-
vmware -v - Чтобы узнать дату последнего обновления (установки последнего образа или пакета обновлений):
-
esxcli software vib list | grep 'Install\|esx-base' - Обратите внимание, что эта команда покажет дату последнего обновления базового пакета, а не обязательно первоначальной установки ОС.
-
- Проверка текущего профиля образа
- Профиль — это набор пакетов VIB, определяющий версию ESXi. Его важно знать перед обновлением.
-
esxcli software profile get
- Освобождение хоста для обновления
- Для изолированного хоста или перед обновлением в кластере необходимо перевести его в режим обслуживания. Виртуальные машины должны быть остановлены или мигрированы.
- Включение режима обслуживания:
-
esxcli system maintenanceMode set --enable=true # Или альтернативная команда: vim-cmd /hostsvc/maintenance_mode_enter - Выход из режима обслуживания (после успешного обновления и перезагрузки):
-
esxcli system maintenanceMode set --enable=false # Или: vim-cmd /hostsvc/maintenance_mode_exit
Онлайн обновление (через официальный репозиторий VMware)
Этот метод оптимален, если хост имеет выход в интернет.
- Разрешите доступ в интернет
- По умолчанию правило httpClient в файрволе ESXi может быть отключено.
-
esxcli network firewall ruleset set -e true -r httpClient[citation:5][citation:9]
- Найдите доступные обновления в репозитории
- Выведите список всех доступных образов в онлайн-депозитории VMware:
-
esxcli software sources profile list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
- Выполните обновление до выбранного профиля
- Предварительно включите режим обслуживания.
-
esxcli system maintenanceMode set --enable=true - Затем выполните команду, заменив имя профиля на актуальное из списка:
-
esxcli software profile update -p ESXi-8.0U3d-24585383-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml - Если процесс завершится успешно, вы увидите сообщение:
-
The update completed successfully, but the system needs to be rebooted for the changes to be effective
- Завершение обновления
- Отключите доступ в интернет:
-
esxcli network firewall ruleset set -e false -r httpClient - Перезагрузите хост:
-
reboot - После загрузки выйдите из режима обслуживания:
-
esxcli system maintenanceMode set --enable=false - Проверьте результат:
-
esxcli software profile get #и vmware -v
Офлайн обновление (через ZIP-бандл)
Этот метод используется, если хост изолирован от сети или вы используете кастомный образ от вендора (HPE, Dell и др.)
- Подготовка файла обновления
- Скачайте ZIP-бандл (Offline Bundle) для нужной версии ESXi с портала Broadcom или сайта производителя сервера
- Загрузите файл на хранилище данных, доступное хосту (например, через Datastore Browser).
- Укажите путь к локальному депозиторию
- Перед запуском обновления включите режим обслуживания. В команде укажите полный путь к ZIP-файлу на хранилище хоста.
-
esxcli software profile update --depot=/vmfs/volumes/datastore_name/VMware-ESXi-8.0U3d-24585383-depot.zip --profile=ESXi-8.0U3d-24585383-standard - Также можно использовать команду esxcli software vib update --depot=, если требуется обновить только отдельные пакеты.
- Завершение обновления, действия аналогичны онлайн-методу
- Отключите доступ в интернет:
-
esxcli network firewall ruleset set -e false -r httpClient - Перезагрузите хост:
-
reboot - После загрузки выйдите из режима обслуживания:
-
esxcli system maintenanceMode set --enable=false - Проверьте результат:
-
esxcli software profile get #и vmware -v
Офлайн обновление через ISO образ
Этот метод требуется для обновления между мажорными версиями или при проблемах с сетью.
- Скачайте ISO образ обновления
- Загрузите последний ISO образ с официального сайта VMware
- Подготовьте загрузочную USB-флешку или настройте загрузку по сети (iDRAC/iLO)
- Загрузитесь с установочного носителя
- Подключите ISO к серверу
- Перезагрузите оборудование
- Выберите загрузку с установочного носителя
- Выберите режим обновления
- В установщике выберите Upgrade ESXi, preserve VMFS datastore
- Подтвердите сохранение существующих настроек
- Дождитесь завершения процесса
- Установщик скопирует новые файлы и сохранит конфигурацию
- После завершения система перезагрузится автоматически
- Проверьте обновление
-
vmware -v esxcli system version get
-
Сравнение методов обновления
| Параметр | Онлайн обновление | Офлайн обновление |
| Доступность ВМ | ВМ мигрируются или останавливаются | Все ВМ останавливаются |
| Время простоя | Минимальное | 30-60 минут |
| Сложность | Средняя | Низкая |
| Требования | Сетевое подключение | Загрузочный носитель |
| Подходит для | Патчей и минорных обновлений | Мажорных обновлений |
Решение распространенных проблем
Ошибка: "No upgrade candidate was found"
Проверьте доступность репозитория
esxcli network diag ping -H hostupdate.vmware.com
Принудительно обновите из локального файла
esxcli software profile update -p ESXi-7.0U3c-19193900-standard -d /vmfs/volumes/datastore1/update.zip
Восстановление после неудачного обновления
- Загрузитесь с предыдущей версии ESXi (при двойной загрузке)
- Или восстановите из резервной копии:
-
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
-
Прочие проблемы
- Ошибка совместимости CPU: При обновлении на более новую мажорную версию (например, с 7.0 на 8.0) процессор может не поддерживаться. Если вы осознаете риски, используйте флаг --no-hardware-warning.
- Ошибка [MemoryError] в ESXi 8.x: Из-за ограничения памяти ESXCLI может не загрузить большой каталог. Решение — временно увеличить лимит.
- Запрещён доступ в интернет: После обновления не забудьте отключить правило файрвола httpClient для повышения безопасности.
Заключение
Регулярное обновление ESXi — обязательная практика для администраторов виртуальных сред. Онлайн-метод через ESXCLI оптимален для быстрого применения патчей, в то время как офлайн-обновление через ISO обеспечивает надежность при переходе между основными версиями.
Перед любым обновлением всегда:
- Тестируйте в изолированной среде
- Имейте актуальную резервную копию
- Планируйте работы на время наименьшей нагрузки
Следуя этим инструкциям, вы сможете безопасно поддерживать вашу инфраструктуру VMware в актуальном состоянии, обеспечивая максимальную безопасность и производительность для ваших виртуальных машин.