Мы немного рассказывали о новой функции технологии VMware HA, которая появилась в vSphere 6.5 - Orchestrated Restart (она же VM Restart Dependency). С помощью нее можно сделать так, чтобы виртуальные машины (или группы ВМ) могли запускаться после того, как предварительно будет запущена указанная ВМ или группа.
На практике это работает так. В vSphere Web Client идем на вкладку Configure для выбранного кластера HA и в разделе VM/Host Groups добавляем группу ВМ:
Далее в группу добавлем одну или несколько виртуальных машин:
Например, мы создали 3 группы (в данном случае, это классическая трехзвенная архитектура - серверы БД, серверы приложений и веб-серверы):
После этого можно задать правила запуска групп виртуальных машин в разделе VM/Host Rules, указав предварительное условие для запуска некоторой группы:
В данном случае мы запускаем серверы приложений только после запуска серверов баз данных. Очевидно, что нужно создать такое же правило для веб-серверов, которые будут запускаться после серверов приложений. Это и создаст требуемые зависимости ВМ для их запуска в случае сбоя одного или нескольких хостов в кластере VMware HA. Это и называется VMware HA Orchestrated Restart.
В то же время, у виртуальных машин в кластере HA есть параметр VM Restart Priority, который определяет приоритет запуска виртуальных машин в случае их восстановления после сбоя:
Этот вопрос затрагивает Дункан в своей заметке о настройке VM dependency restart condition timeout. Оказывается, она задает задержку между стартом виртуальных машин разного приоритета (а не для групп зависимостей, как может показаться из названия) и по умолчанию выставлена в 600 секунд.
Так вот, возвращаясь к Restart Priority и VM Dependency, Вова в комментариях к статье об HA Orchestrated Restart спросил: а что важнее - приоритет или зависимости? Опираясь на слова Дункана ("Restart Dependency is a rule, a hard rule, a must rule, which means there’s no time-out. We wait until all VMs are restarted when you use restart dependency"), можно сказать, что зависимости важнее - сначала будут подняты все машины первичной группы (между которыми будет соблюдаться порядок запуска в рамках приоритета), а потом уже те, которые от них зависят.
Таким образом, ответ на вопрос Вовы ("Допустим ВМ1 имеет приоритет high, но зависит от ВМ2 которая имеет приоритет low. Какая будет последовательность запуска?") - сначала запустится ВМ2.