Перейти к содержанию

Связанность и ограждение

Общая информация

Настройки связности и ограждения -- определение механизмов контроля доступности сервера и управления его питанием.

Для обеспечения целостности данных ВМ может работать только на одном узле или любой другой службе кластера в одно и то же время. Применение в конфигурации оборудования выключателей электропитания дает возможность выполнять цикл выключения-включения питания другого узла до перезапуска служб высокой доступности этого узла во время процесса отказов. Это предотвращает от одновременного доступа 2 узлов к одним и тем же данным и к их разрушению. Ограждающие (fence) устройства используются для обеспечения гарантии целостности данных при сбоях в любых условиях.

В окне Серверы – <имя сервера> – Настройки связности можно получить информацию о текущих настройках:

  • тип ограждения;

  • тип связности;

  • пулы данных.

Также существует возможность изменения настроек. При нажатии на кнопку Изменить настройки в открывшемся окне выбрать из раскрывающегося списка тип ограждения и тип связности, после чего подтвердить операцию, нажав кнопку ОК.

Дополнительно можно и рекомендуется изменять настройки целиком на весь кластер во вкладке Кластеры – <имя кластера> – Настройки связности.

Связность

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

  • KERNEL – контролирует исполнение модулей системы управления на сервере. Контроллер открывает поток данных (grpc stream) до каждого узла по его UUID (hostname) и отправляет узлу свой IPv4-адрес. Узел при открытом потоке данных сверяет присланный ему адрес контроллера с адресом из его конфигурации и при совпадении раз в 1 секунду посылает через поток данных heartbeat. Контроллер при каждом получении heartbeat обновляет 2 метки с временем жизни 30 секунд (error label) и 60 секунд (hermit label) о доступности узла;

  • KERNEL_IPMI – дополнительно раз в 5 секунд проверяется доступность IPMI интерфейса сервера с контроллера;

  • KERNEL_STORAGE – дополнительно раз в 5 секунд проверяется метаданные пула данных сервера на общем с контроллером файловом сетевом хранилище;

  • AUTO – кроме проверки KERNEL связи при наличии настроек IPMI проверяется его доступность, при наличии общего пула данных проверяется и последний.

Ограждение

Ограждение - процесс получения подтверждения того, что аварийный сервер перешел в состояние, не допускающее повреждения ВМ (по умолчанию - выключен). Тип ограждения может принимать несколько значений и, в соответствии с этим, определяется каким образом система управления будет пытаться оградить сервер при обнаружении аварии. Сервис ограждения циклически пытается оградить узлы, находящиеся в статусе HERMIT (Ограждается) в соответствии с настройками.

Тип ограждения узла может быть следующим:

  • IPMI: использует управляющие команды ВМС для выключения;

  • VIRTUAL: признает сервер выключенным через 30 с после наступления аварии (по умолчанию);

  • SSH: использует подключение SSH для передачи команды выключения;

  • NODE: использует вызов управляющих команд через систему управления кластером;

  • AUTO: использует все возможные варианты последовательно.

В окне НастройкиКонтроллер в Настройках ограждения есть редактируемые поля:

  • начальный тайм-аут между попытками ограждения узлов (по умолчанию - 15 секунд);

  • максимальный тайм-аут между попытками ограждения узлов (по умолчанию - 600 секунд);

  • множитель увеличения тайм-аута между попытками (по умолчанию - 2).

  • перевод узла в статус Failed при достижении максимального таймаута (по умолчанию - выкл).

Пример ограждения. Тип ограждения узла IPMI. Настройки ограждения контроллера по умолчанию.

Сразу после перехода узла в статус HERMIT (Ограждается) производится первая попытка ограждения узла с контроллера. В случае удачного выключения узла он переходит в статус FAILED (Ошибка). Если первая попытка не удалась, то через 15 секунд (начальный тайм-аут между попытками ограждения узлов) попытка повторяется. Если вторая попытка не удалась, то через 15 секунд * 2 (2 - множитель увеличения тайм-аута между попытками) попытка повторяется. Если третья попытка не удалась, то через 15 секунд * 4 попытка повторяется. Тайм-аут будет увеличиваться до 600 секунд (максимальный тайм-аут между попытками ограждения узлов) и продолжаться до бесконечности, пока оператор либо не оградит узел вручную, либо ограждение закончится успешно.

Оптимальный выбор типов связности и ограждения

Оптимальным считается использование типа ограждения IPMI и типа связности AUTO. Тип ограждения IPMI позволяет получить однозначное подтверждение о том, что сервер был огражден, а контроль модулей управления сервером реагирует также на проблемы в работе гипервизора.

Статусы узла и переходы между ними

Статусы узла:

  • CREATING (Создается) - узел находится в процессе инсталляции;

  • ACTIVE (Исправно) - узел активен и работает;

  • FAILED (Ошибка) - узел был недоступен и его оградили (fence), виртуальные машины могут быть перезапущены на других узлах;

  • ERROR (Ошибка) - узел недоступен;

  • HERMIT (Ограждается) - узел недоступен продолжительное время и его необходимо оградить для перезапуска виртуальных машин на других узлах;

  • DELETING (Удаляется) - узел находится в процессе удаления из кластера;

  • SERVICE (Сервисный режим) - узел находится на техобслуживании.

При установке узел сначала находится в статусе CREATING (Создается) и после успешного добавления переходит в статус ACTIVE (Исправно). В случае неуспешного добавления переходит в статус FAILED (Ошибка). В этом случае рекомендуется посмотреть в журнале задач ошибку задачи добавления, разобраться с ошибкой, форсированно удалить узел и добавить его снова.

При потере связи контроллера с узлом последний переходит из статуса ACTIVE (Исправно) сначала в статус ERROR (Ошибка), далее по истечению дополнительного времени и отсутствии связи в статус FAILED (Ошибка), если узел на контроллере, или в статус HERMIT (Ограждается) для всех остальных узлов. Подробности ограждения описаны выше. При переходе узла в статус ERROR (Ошибка) контроллер пытается подключиться по SSH к узлу и перезапустить супервизор контроллера.

Контроллер постоянно циклически пытается опросить все известные ему узлы. Если узел НЕ ACTIVE и НЕ SERVICE и связь с ним появляется, то он переходит автоматически в статус ACTIVE (Исправно).

Пользователь для перевода узла на техобслуживание должен перевести узел в статус SERVICE (Сервисный режим). При этом все принадлежащие узлам сущности и связи узла переходят в статус FAILED (Ошибка). ВМ узла перед переводом должны быть выключены.

При запуске задачи удаления узел сначала переходит в статус DELETING (Удаляется), далее после успешного последовательного выполнения всех внутренних операций очистки узла от привязок к контроллеру он удаляется из базы системы управления. После неуспешного удаления переходит в статус FAILED (Ошибка). В этом случае рекомендуется посмотреть в журнале задач ошибку задачи удаления, разобраться с ошибкой на будущее и форсированно удалить узел. В случае, если узел не находится в статусе ACTIVE (Исправно), его можно удалить форсированно, то есть исключительно из базы системы управления.