суббота, 6 октября 2007 г.

настройка VMware HA cluster

Для начинающих, что надо знать про VMware HA Cluster.

Во первых, что он умеет - сводить к минимуму время простоя ВМ, в случае падения хоста. Есть несколько хостов, включенных в HA кластер, есть ВМ на них. Падает какой то хост - ВМ на нем умирают. Но сразу же включаются на других хостах кластера.













Для него необходим VC и соответствующие лицензии. В консоли VC создаем кластер(напомню, что в контексте VMware "кластер" - просто группа хостов). Создали кластер, перетащили туда хотя бы 2(max 16) хостов. В свойствах кластера поставили галочку "HA".
Теперь на хостах начнется конфигурирование HA агента. Чтобы это конифгурирование закончилось успешно, должны быть выполнены следующие условия:
  1. Интерфейсы SC должны находиться в одной подсети, т.е. из консоли каждого ESX вы должны пинговать все другие.
  2. Должно быть настроено разрешение имен - т.е. должны ходить пинги и по именам. Для этого используем DNS, или добавляем в /etc/hosts соответствующие записи .
  3. Названия групп портов для ВМ должны называться одинаково на всех хостах кластера. Т.е. вот ВМ1 работает на хосте "ESX1", и ее виртуальный сетевой контроллер смотрит в группу портов "VM_network". Вот на ESX2 должна быть группа портов для ВМ с тем же названием. И, само собой, через нее должна быть доступна та же физическая сеть, что и на ESX1.
  4. Само собой, те ВМ, которые мы хотим защитить с помощью HA, должны лежать на общем(shared) LUN на внешней СХД. Т.е. чтобы с каждого хоста в кластере все файлы этих ВМ были видны.
Как работает HA кластер:
когда мы перетаскивам хосты в кластер в консоли VC, то VC настраивает HA агенты на этих хостах. Будучи настроенными, агенты не требуют(!) VC для своей работы. Т.е. VC может находиться даже на виртуалке, и даже если эта виртуалка сдохнет вместе со сдохшим хостом - HA все равно отработает, и поднимет эту ВМ на другом хосте. Достигается это тем, что HA агенты на хостах образуют между собой децентрализованную систему, управляемую самими агентами.

Агенты друг друга пингуют. Для какого то хоста пропажа пингов означает одно из двух - или умер неотзывающийся хост, или умерла сеть для этого хоста. Второй случай называется изоляцией, и должен обрабатываться особым образом:
Вот у нас 3 хоста. У одного становиться недоступен интерфейс SC(напр. выгорает порт на коммутаторе). Остальные думают что он умер(т.к. пинги к нему не ходят) и пытаются запустить те ВМ, которые работали на нем. Но эти ВМ продолжаются работать, и их файлы заблокированны как открытые. Это создает проблему.

Поэтому каждый хост умеет проверять, не изолирован ли он. Делается это пингованием IP, по умолчанию это шлюз SC. Или произвольный. Или два произвольных - подробнее про это я писал тут. Предпологается, что эти IP будут отзываться 24\7.

Итак, хост перестал получать отклики от проверочного IP и понял, что оказался изолирован. Мы в настройках можем указать - что делать с каждой ВМ в случае изоляции - выключать или оставлять. Т.е. в вышеприведенном примере с выгоранием порта, изолированный ESX выключает свои ВМ, они поднимаются на других хостах кластера. Или не выключает и не поднимаются - это как настроим.

И для максимального предотвращения такой ситуации рекомендуется избавиться от единых точек отказа - чтобы интерфейс SC не зависел от единственного физического адаптера, и\или чтобы интерфейсов SC было больше одного, на разных физических сетевушках ,разумеется.

Что еще мы можем настроить:
Number of hosts failures allowed - смерть какого кол-ва хостов должен пережить наш кластер. Чем большая тут цифирка - тем больше ресурсов резервируется на случай сбоя. Например - у нас 6 хостов, на каждом по 10 ВМ. Если хотим защититься от сбоя одновременно 2 хостов - значит на любых 4х надо мочь запустить все 60 ВМ. Если хотим защититься от падения одновременно 3х - значит на любых 3 надо мочь запустить все 60. "Смочь" - имеется в виду ,что ресурсов должно хватить.
Admissions control - можно ли запускать ВМ, если ее запуск потребует использования заначки ресурсов из предыдущей настройки.

Для траблшутинга HA - соответствующие логи следует искать в
/opt/LGTOaam512/log/*
/opt/LGTOaam512/vmsupport/*

Вопросы?

0 коммент.:

Отправить комментарий