Управление высокой доступностью кластера
В данном разделе описывается настройка Высокой доступности (далее «ВД») для кластера. Настройка высокой доступности, применяемая на весь кластер, выполняется в разделе Кластеры основного меню. Для разных кластеров могут быть применены индивидуальные настройки. ВД может применяться как для всего кластера целиком (для всех ВМ кластера), так и выборочно для конкретной виртуальной машины (машин).
Примечание
Необходимо учитывать, что индивидуальные настройки ВМ перекрывают настройки кластера. Настройка ВД для виртуальных машин описана в разделе Виртуальные машины - Высокая доступность.
Включение (отключение) высокой доступности
Для включения или отключения ВД необходимо перевести переключатель Высокая доступность в соответствующее положение. По умолчанию - Выключено.
Включение ВД для кластера будет означать, что для всех ВМ, параметры которых позволяют применить к ним Высокую доступность, будет активирована данная опция.
Включение (отключение) автоматического выбора сервера
Для включения или отключения автоматического выбора сервера необходимо перевести переключатель Автоматический выбор сервера для восстановления ВМ в соответствующее положение. По умолчанию - Выключено.
Включение автоматического выбора сервера для кластера будет означать, что автоматическое восстановление ВМ будет осуществлено на наименее загруженный сервер кластера. Определяется на основе параметра DRS Тип собираемых метрик. Подробнее в разделе DRS - Настройка DRS.
Количество попыток автоматического восстановления ВМ
В некоторых случаях запуск ВМ не удается. Причин может быть множество - к примеру нет доступа к виртуальному диску или сбой СХД. Количество попыток - это изменяемое число попыток запуска ВМ, по истечении которых система считает, что восстановление ВМ невозможно, прекращает попытки запуска ВМ и выключает ВД для этой ВМ. По умолчанию - 5.
Интервал между попытками восстановления ВМ
Интервал перезапуска - это пауза (в секундах), применяемая между попытками автоматического восстановления ВМ. По умолчанию - 60 секунд.
Признаки полной загрузки (готовности) ВМ
Для обеспечения правильной очередности включения ВМ (например, до полной загрузки ВМ, обеспечивающей сервис DNS, нет смысла включать другие ВМ, которые не могут работать без DNS) в SpaceVM предусмотрены два настраиваемых признака:
Истечение заданного времени - время (в секундах), по истечению которого, предполагается, что ВМ будет способна осуществлять свои функции. Очередь автоматического восстановления ВМ приостанавливается (другие ВМ не запускаются) на время ожидания. По умолчанию - 0 секунд.
Запуск гостевого агента ВМ - очередь автоматического восстановления ВМ приостанавливается на время ожидания ответа от гостевого агента ВМ. В случае, если агент по каким-либо причинам не отвечает, предусмотрено максимальное время ожидания (в секундах), по истечению которого, очередь восстановления будет продолжена, вне зависимости от того, получен ли ответ от гостевого агента. Нулевое значение признака означает, что наличие ответа гостевого агента не требуется. По умолчанию - 0 секунд.
Примеры значений и их значения:
- ответ от гостевого агента ВМ не требуется. Значение 0 (задержка очереди составляет 0 секунд);
- требуется ответ от гостевого агента и максимальное время ожидания 2 минуты. Значение 120.
Существует два основных варианта развития событий:
- гостевой агент дал ответ через 50 (к примеру) секунд после включения ВМ и очередь восстановление немедленно продолжена (задержка очереди составляет 50 секунд);
- ответ от гостевого агента не получен за 2 минуты и очередь восстановления продолжена (задержка очереди составляет 2 минуты).
Примечание
Если задать оба признака готовности ВМ, то приоритет будет у того признака, у которого время ожидания больше.
Синхронизация с кластером
Синхронизация конфигурации высокой доступности с кластера на выбранную виртуальную машину осуществляется включением функции Синхронизация с кластером (имя кластера).
Таблица серверов
Данный функционал позволяет ограничить список серверов, на которых будут восстанавливаться ВМ. Опция будет недоступна при включенном автоматическом выборе целевого сервера для восстановления ВМ.
Примечание
При использовании ограниченного списка серверов, участвующих в ВД, добавляемые в кластер новые серверы попадут в список Нераспределенные серверы.
Сохранение настроек
Если были внесены изменения в настройки ВД, то становится доступна кнопка Сохранить.
Примечание
После изменений настроек ВД важно их сохранить. В противном случае все изменения будут утеряны!
Примечание
В случае успешного сохранения настроек функции ВД будут реализованы вне зависимости от состояния контроллера.
Редактирование очереди автоматического восстановления и настроек ВД всех ВМ кластера
По нажатию кнопки Групповая настройка ВМ открывается диалоговое окно с таблицей всех ВМ кластера.
Для редактирования параметров ВД ВМ необходимо в таблице выделить нужные ВМ и в верхней части заполнить форму настроек.
Пример использования групповой настройки ВД кластера:
- По нажатию кнопки Групповая настройка ВМ откроется диалоговое окно с текущими настройками каждой ВМ кластера;
- В таблице отметить необходимые ВМ (если выбрано несколько ВМ, и у них совпадают параметры, то они будут отображены в соответсвующих полях формы, если параметры выбранных BM отличаются, то поле в котором параметры различны будет пустым);
- Изменить/вписать необходимые настройки (для сохранения индивидуальных значений несовпадающих параметров необходимо оставить их поля незаполненными);
- Нажать кнопку Сохранить.
Пример использования высокой доступности ВМ кластера
Сотрудники организации используют виртуальные рабочие столы, службу каталогов (LDAP) и сервер доменных имен (DNS). Служба каталогов, сервер доменных имен и все ВМ сотрудников расположены на сервере А, а сервер Б - резервный. Серверы объединены в кластер В. Высокая доступность кластера В включена с настройками по умолчанию и автоматическим выбором сервера для восстановления ВМ. Выполнены все условия для успешной миграции и восстановления ВМ в рамках кластера В (см. Методику демонстрации работы Высокой Доступности). Все виртуальные машины подлежат восстановлению в случае аварийной остановки любого сервера.
Для корректного восстановления работы данной инфраструктуры следует в первую очередь перезапустить сервер доменных имен, так как и служба каталогов, и ВМ сотрудников используют этот сервис. Следующей ВМ в очереди на восстановление должна быть служба каталогов, так как сотрудники должны пройти аутентификацию на своих ВМ через LDAP. Далее, одновременно, должны быть восстановлены все ВМ сотрудников. Таким образом, очередь восстановления должна быть следующей:
- сервер доменных имен;
- служба каталогов;
- все ВМ сотрудников (999 - номер в очереди по умолчанию).
Далее следует настроить признак готовности для сервера DNS и службы LDAP. Предположим, опытным путем выяснено, что ВМ с сервером DNS запускается 2 минуты, а служба каталогов 3 минуты. В данном случае удобно использовать признак готовности Истечение заданного времени - для сервера DNS 120 сек., а для службы LDAP 180 сек.
Примечание
Как правило, признак Истечение заданного времени используется для тяжелых сервисов, загрузка которых занимает некоторое время уже после старта операционной системы. Если необходима полная загрузка только операционной системы ВМ, то следует использовать признак Запуск гостевого агента ВМ - при получении ответа от агента, очередь восстановления будет продолжена немедленно.
Теперь, в случае потери связи между контроллером и сервером А, будет запущено автоматическое восстановление ВМ на сервере Б в следующем порядке:
- запуск сервера доменных имен;
- ожидание загрузки сервера доменных имен 120 секунд;
- запуск службы каталогов;
- ожидание загрузки службы каталогов 180 секунд;
- параллельный запуск всех ВМ сотрудников.
Примечание
Если контроллер недоступен в рамках кластера, список задач и событий (связанных с восстановлением ВМ) можно посмотреть на вкладке кластера в веб-интерфейсе любого сервера, входящего в кворум данного кластера.
Высокая доступность без контроллера
Описанный выше пример использования ВД кластера подразумевает отказ одного из серверов с последующей реализацией функций ВД контроллером. Это наиболее вероятный сценарий развития событий. Но возможен случай, когда отказ происходит на сервере с контроллером. В этом варианте для сохранения функций ВД кластера необходимо соблюдение нескольких условий, а именно - параметр "Кворум кластера" должен быть включен.
Помимо этого, для интересующих нас ВМ должны быть включены все функции ВД описанные выше. Например, для ВМ "ВД_Демо" включена ВД и выбран конкретный сервер для восстановления.
Включение кворума кластера подразумевает запуск ПО HashiCorp Consul, требующее как минимум три работоспособных узла. Согласованное состояние всего множества активных узлов в Consul достигается за счет использования алгоритма Raft. К ключевым особенностям которого и относится создание кворума с последующим выбором одного узла в качестве лидера. Именно на этом узле происходит запуск всех функций ВД, аналогично тому как это происходит на контроллере при условии его работоспособности. Какой именно узел в текущий момент является лидером кворума в текущий момент можно увидеть на вкладке Кворум кластера.
Вне зависимости от того, какая ВМ выбрана в качестве лидера кворума дочерний демон RecoveryDaemon функционирующий на этой ВМ производит постоянный мониторинг встроенного key-value хранилища HashiCorp Consul. По мере обнаружения ВМ, требующих восстановления и запуска функций ВД, в логах узлов(доступных для чтения через cli или через web-интерфейс узла) есть возможность отслеживать процесс восстановления, количество попыток восстановления и т.д.
Пример использования высокой доступности ВМ кластера без контроллера
Допустим, серверы организации объединены в кластер. Высокая доступность кластера включена с настройками по умолчанию и автоматическим выбором сервера для восстановления ВМ. Выполнены все условия для успешной миграции и восстановления ВМ в рамках этого кластера (см. Методику демонстрации работы Высокой Доступности).
С целью демонстрации функций ВД создадим несколько ВМ. Для одной из них настроим ВД с выбором конкретных нод восстановления и зададим ей наименование ВМ_Демо. Вторую создадим на той же ноде без функций ВД, присвоив название ВМ_без_ВД. Цель создания ВМ_без_ВД это демонстрация того, что сервер отключался и машины на нем были выключены. Создание ВМ_без_ВД не является обязательным шагом. Так как кворум кластера включен - все данные, требуемые для восстановления ВМ (такие как параметры ВМ, характеристики кластера, нод, уровень загруженности серверов) выгружаются в HashiCorp Consul. Где происходит постоянный мониторинг в рамках демона RecoveryDaemon.
Далее, для воспроизведения условий работы без контроллера, произведем его отключение через вкладку Настройки
Через небольшой промежуток времени контроллер будет остановлен, что гарантирует реализацию функций ВД через кворум, т.е. функции восстановления будут выполнены демоном RecoveryDaemon, запущенным на ноде.
После всех подготовительных операций можно отключить сервер с ВМ, у которой включены функции ВД. В примере это сервер 192.168.20.121. Выключение сервера приведет к модификации данных, читаемых из базы HashiCorp Consul. На основании модифицированных данных происходит выбор ВМ и запуск функций восстановления. Запустив веб-интерфейс ноды, являющейся лидером кворума, и перейдя на вкладку Кворум кластера, можно увидеть, что выключенный сервер пропал из списка кворума.
Процесс восстановления можно отслеживать по задачам в веб-интерфейсе ноды и сопутствующим им событиям.
Так как сервер 192.168.20.121 отключен, задача удаления файла ВМ с него будет иметь статус FAILED.
После завершения процесса восстановления ВМ с включенной функций ВД будут отображаться на одной из нод, выбранных для миграции в вкладке Виртуальные машины, что и требовалось продемонстрировать.
Включив контроллер можно обнаружить, что ВМ ВМ_Демо будет отображена на одном из выбранных для миграции серверов.
Примечание
При восстановлении сервера (при условии отключенного контроллера), на котором изначально располагалась ВМ, в списке ВМ сервера непродолжительный период времени будет присутствовать ВМ, перенесенная через функции ВД на другой сервер. После, будет повторна выполнена операция удаления файла ВМ, что приведет кластер в согласованное состояние.