При вычислении Failover Capacity (текущего уровня отказоустойчивости) служба HA определяет слот - максимальные параметры Reservation для процессора и памяти среди всех виртуальных машин запущенных на данный момент в кластере. Например, если в кластере запущено две виртуальные машины с параметрами Reservation для первой 1ГГц и 1Гб, а для второй 2ГГц и 512MB, то слот будет иметь параметры 2 ГГц и 1 Гб.
Затем служба HA определяет, сколько слотов доступно на одном хосте кластера. Для этого выбирается хост с минимальным количеством ресурсов процессора и хост с минимальным количеством оперативной памяти. Определяется количество слотов на каждом из этих хостов и выбирается минимальное значение.
После этого служба HA определяет, какое максимальное количество хостов может выйти из строя, чтобы при этом в кластере осталось слотов не меньше, чем запущенных виртуальных машин. Для этого из количества хостов вычитается количество виртуальных машин поделенное на количество слотов одного хоста (если при делении получается нецелое число, то оно округляется в большую сторону). Получившееся число является текущим уровнем отказоустойчивости. На рисунке 1 показаны кластеры HA с Failover Capacity, равными 1 и 2.
Рисунок 1 - Кластеры HA с failover capacity, равными 1 и 2.
Параметр Number of host failures allowed.
Number of host failures allowed– число, определяющее минимальный уровень отказоустойчивости кластера. По умолчанию установлен в значение 1.
Параметр Admission Control.
Выбирается из двух опций: «Do not power on virtual machines if they violate availability constraints» и «Allow virtual machine to be started even if they violate availability constraints».
Когда выбрана опция «Do not power on virtual machines if they violate availability constraints», служба HA не позволит включать виртуальные машины в кластере, если это приведет к тому, что Failover Capacity станет меньше предопределенного Number of host failures allowed. В этом случае также будут запрещены операции миграции виртуальных машин находящихся вне кластера в кластер и изменения параметров Reservation работающих виртуальных машин в кластере.
Когда выбрана опция «Allow virtual machine to be started even if they violate availability constraints», служба HA позволяет совершать операции, приводящие к тому, что текущий уровень отказоустойчивости становится меньше предопределенного.
Параметр Restart Priority.
Служба HA позволяет задать параметры приоритета восстановления виртуальных машин в случае отказа хоста. Виртуальные машины с большим приоритетом запускаются первыми. Приоритет виртуальных машин на восстановление действует в пределах хоста, на котором они запущены. В случае отказа нескольких хостов служба HA сначала восстановит виртуальные машины хостов отказавших раньше.
Параметр Restart Priority может быть установлен для всего кластера и для каждой виртуальной машины и задается как значение из набора High, Medium, Low и Disabled. По умолчанию устанавливается в значение Medium. Если параметр установлен в значение Disabled, то служба HA отключена для данной виртуальной машины.
Параметр Isolation Response.
В HA кластере может возникнуть ситуация, при которой хост станет изолирован от сети сервисной консоли. В этом случае он не может больше обмениваться сигналами heartbeats с другими хостами кластера. Служба HA расценивает это как отказ хоста и пытается восстановить его виртуальные машины на других хостах кластера. Однако, при использовании SAN механизм блокировки VMFS не позволяет получить доступ к файлам этих виртуальных машин так, как они продолжают работать.
Параметр «Isolation response» определяет действия хоста по отношению к его виртуальным машинам в таком случае. Если параметр «Isolation response» установлен в значение «Power off» (по умолчанию), агент службы HA останавливает виртуальные машины на хосте, и они могут быть восстановлены в кластере. Если параметр «Isolation response» установлен в значение «Leave powered on», виртуальные машины продолжат работать на изолированном от HA кластера хосте. Параметр «Isolation response» может быть установлен для всего кластера и для каждой виртуальной машины.
Если возникает отказ хоста, или он становится изолирован от сети сервисной консоли, остальные хосты HA кластера ждут пятнадцать секунд (по умолчанию), после чего хост объявляется отказавшим и начинаются операции восстановления. Если в течение двенадцати секунд хост восстановит соединение, то он продолжает нормально функционировать в HA кластере. После двенадцатой секунды хост, изолированный от сети сервисной консоли, начинает останавливать свои виртуальные машины с параметром «Isolation response» установленным в значение «Power off». Если до четырнадцатой секунды соединение будет восстановлено, то может возникнуть ситуация, когда хост продолжит нормально работать в HA кластере, а некоторые виртуальные машины на нем будут остановлены.
Параметры расширенной настройки службы HA.
das.isolationaddress задает адреса (до десяти адресов), которые пингуются для определения хостом его изоляции от сети сервисной консоли. Если ни один адрес не задан то используется шлюз по умолчанию, используемый сетью сервисной консоли. По умолчанию не задан.
Для задания нескольких адресов необходимо использовать параметры
das.isolationaddress1, das.isolationaddress2 и т.д. до десяти адресов.
das.defaultfailoverhost задает хост в кластере, который всегда рассматривается в первую очередь как целевой при восстановлении виртуальных машин. Задается как IP-адрес хоста. По умолчанию не задан.
das.failuredetectiontime задает время в миллисекундах, после которого не посылающий сигналы heartbeats хост считается отказавшим. По умолчанию установлен в значение 15000 миллисекунд.
das.failuredetectioninverval задает интервал обмена сигналами heartbeats в секундах. По умолчанию установлен в значение 1 секунда.
das.vmMemoryMinMB задает минимальный объем оперативной памяти, для виртуальных машин кластера, для которых не задан параметр Reservation. По умолчанию установлен в значение 256 Мб.
das.vmCpuMinMHz задает минимальное количество процессорных ресурсов для виртуальных машин кластера, для которых не задан параметр Reservation. По умолчанию установлен в значение 256 МГц.
Два последних параметра используются при вычислении Failover Capacity
HA кластеры в режиме обслуживания (maintenance mode).
Когда хост переключен в режим обслуживания, на нем нельзя запускать виртуальные машины. В случае отказа хоста кластера служба HA не восстанавливает виртуальные машины на хостах, находящихся в режиме обслуживания. Соответственно хост не учитывается при определении текущего уровня отказоустойчивости. Когда хост выходит из режима обслуживания, служба HA вновь начинает учитывать его как целевой хост для восстановления виртуальных машин.
Требования для создания кластеров, поддерживающих службу HA.
Для кластеров, поддерживающих службу HA, все файлы виртуальных машин должны храниться в общей системе хранения (например, SAN).
Хосты должны располагаться в одной физической подсети.
Хосты должны иметь группы портов с одинаковыми именами (имена групп портов чувствительны к регистру) и VLAN ID.
Для кластеров, поддерживающих службу HA каждый хост должен разрешать все имена других хостов кластера в IP-адреса. Для этого на каждом хосте устанавливается служба DNS либо все имена хостов разрешаются в IP-адреса вручную в файле /etc/hosts.
При использовании службы DNS необходимо активировать клиентскую службу NIS на каждом хосте.
Для службы HA строго рекомендуется дублировать сеть сервисной консоли. Для этого два сетевых адаптера на каждом хосте подключаются к сети сервисной консоли.
Для службы HA рекомендуется (но не обязательно) выполнение требований, которые предъявляет служба VMotion.