четверг, 17 июня 2010 г.

HA Deepdive: Host Selection

  1. Slots
  2. Primary nodes
  3. Isolation
  4. Host selection
При разговоре об HA возникает резонный вопрос: как HA выбирает хост(ы) для перезапуска ВМ с умершего хоста? Именно этот вопрос я задал Данкану Эппингу (Duncan Epping).

Все достаточно просто и вместе с тем немного сложно. HA мониторит незарезервированные ресурсы каждого хоста в кластере, и соотв. хост с наибольшими незарезервированными ресурсами становится первым на очереди. Необходимо отдельно подчеркнуть, что мониторингом занимаются HA-агенты, а не DRS. Как известно, DRS - это часть vCenter, в то время как HA работает независимо от vCenter.
Арифметика, связанная со слотами, в данном случае также не при чем, слоты используются только для контроля ресурсов кластера и работы Admission Control.

Также необходимо добавить, что HA проверяет совместимость хоста с виртуальной машиной, а именно наличие на хосте требуемой портгруппы и доступа к соответствующем datastore, и лишь потом запускает ВМ на хосте.

В общем виде процесс выглядит так:
  1. Упорядочить доступные хосты по количеству незарезервированных ресурсов
  2. Проверить совместимость (сеть / datastore)
  3. Старт!
  4. Upd: Уточнение. Для каждой ВМ HA выбирает хост независимо, причем в 4.0 выбирался хост с наибольшим количеством незаразервированных ресурсов, а в 4.1 в алгоритм выбора хоста добавился критерий "с наименьшим количеством ВМ, подлежащих рестарту", чтобы обеспечить лучшее распределение ВМ по хостам. Разумеется, данный алгоритм выбора работает только для кластеров, в которых не указан конкретный failover хост.

2 комментария:

  1. Антон, я правильно понимаю что если у меня в кластере лишь 2 узла имеют доступ к ДМЗ_сети то НА будет лишь между этими 2мя узлами кластера???

    ОтветитьУдалить
  2. Для машин, привязанных к DMZ портгруппе, HA будет работать только в рамках этих двух хостов.

    ОтветитьУдалить