Многие администраторы платформы VMware vSphere заметили, что в версии VMware vSphere 6.5 несколько поменялся механизм запуска виртуальных машин в случае сбоя в кластере HA. Об этом интересно недавно написал Дункан Эппинг.
Напомним, что приоритет HA Restart Priority нужен для того, чтобы виртуальные машины могли запуститься в определенном порядке, и их сервисы корректно подхватили уже работающие приложения, запущенные предыдущей очередью ВМ. Всего один хост VMware ESXi может одновременно начать запуск до 32 виртуальных машин, поэтому в большом кластере с большим числом ВМ это действие нужно приоритизировать.
С точки зрения наступления момента запуска следующей очереди набора ВМ есть 4 таких события:
Resources are allocated - это дефолтная настройка в кластере HA. Ресурсы аллоцируются в тот момент, когда master-хост выбрал хосты для восстановления и запуска ВМ. Это занимает совсем небольшое время (миллисекунды).
VMs are powered on - это означает, что машина запустилась, и ESXi считает ее запущенной (но не гостевую ОС). Это занимает иногда 10-20 секунд, а иногда и несколько минут.
Guest heartbeat is detected - это когда от гостевой ОС VMware получает отклик, например, через VMware Tools.
App heartbeat is detected - это когда получен отклик от определенного приложения. В этом случае у вас должен быть настроен VM/Application Monitoring, который позволит оповестить о том, что приложение запустилось, и можно его использовать.
Если вам нужно убедиться, что работает сервис (то есть гостевая ОС и приложения), так как ВМ следующей очереди должны его использовать - то нужно опираться на последние два события.
Теперь приоритет восстановления ВМ (Restart Priority) содержит 5 уровней вместо трех, которые были в vSphere 6.0:
Lowest
Low
Medium
High
Highest
Такие странные названия сделаны в целях совместимости с прошлой классификацией - Low, Medium и High.
Чтобы начать настройку Restart Priority, в vSphere Web Client нужно выбрать кластер HA и перейти на вкладку Configure, после чего выбираем раздел VM Overrides и нажимаем кнопку "Add":
Далее выбираем виртуальные машины, для которых мы хотим задать приоритет запуска:
И здесь главное - это выбор нужного приоритета из пяти уровней и выставление условия "Start next priority VMs when", то есть триггера запуска следующей очереди приоритета:
Все эти настройки применяются и для кластера, в котором не работает vCenter (в случае большого сбоя). Ну и посмотреть текущие настройки приоритетов запуска ВМ в кластере HA можно следующей командой:
/opt/vmware/fdm/fdm/prettyPrint.sh clusterconfig
Вывод будет очень большим, так что ищите в нем текст "restartPriority".