Что надо для работы Pacemaker?
Сегодня в IT-системах уровня «business critical» на первое место выходит не широкая функциональность, а повышенная надежность ИТ-систем. Для обеспечения нужной степени отказоустойчивости надо вводить избыточность компонентов. Ими управляет специальное ПО, примером которого является Pacemaker.
Pacemaker – решение от ClusterLabs, которое позволит организовать отказоустойчивый кластер (ОУК). Работает это решение под управлением широкого спектра операционных Unix-систем – CentOS, Debian, RHEL, Ubuntu.
Для обеспечения правильной работы ОУК надо, чтобы выполнялся ряд требований: • синхронизация времени между узлами в кластере; • стабильность сетевых подключений; • разрешение имен узлов в кластере; • наличие у узлов кластера функции по управлению питанием/перезагрузкой посредством IPMI (ILO), что необходимо для организации «фенсинга» узла (fencing – изоляция); • разрешение прохождения трафика по портам и протоколам.
Пожалуй, следует рассмотреть вышеупомянутые требования подробнее.
Синхронизация времени
Важно, чтобы все узлы имели одно и то же время. Как правило, это реализуется путем инсталляции в локальной сети сервера времени (ntpd).
Стабильность сетевых соединений
Не менее важно избавиться от ложных срабатываний. Допустим, у нас есть нестабильная локальная сеть, где каждые 5-10 секунд происходит потеря линка между коммутатором и узлами кластера. В итоге Pacemaker станет считать сбоем пропадание линка больше, чем на 5 секунд. Раз пропал линк, значит ваши ресурсы «переехали». Далее линк восстанавливается, однако Pacemaker уже считает данный узел «сбойнувшим», то есть он уже «перенес» ресурсы на другой узел. Когда возникает очередной сбой, Pacemaker «перенесет» ресурсы на следующий узел, и т. д. и т. п., пока не закончатся все узлы. Итог — отказ в обслуживании. В результате по причине ложных срабатываний весь кластер может перестать работать.
Разрешение имен
Разрешение реализуется путем инсталляции сервера DNS в локальной сети. Когда отсутствует возможность установить DNS-сервер, надо на всех узлах кластера внести записи в файл /etc/hosts с IP-адресами и именами хостов.
Наличие функции управления питанием/перезагрузкой с помощью IPMI (ILO)
Это важно для того, чтобы в случае сбоя узла можно было изолировать его от остальных узлов. Таким образом «фенсинг» исключит ситуацию возникновения split-brain (одновременное появление двух узлов, выполняющих роль Мастера СУБД).
Разрешение прохождения трафика по портам и протоколам
Тоже важное требование, т. к. в разных компаниях службы безопасности нередко устанавливают ограничения на прохождение трафика между подсетями либо ограничения на уровне коммутаторов.
Ниже приведен список протоколов и портов, необходимых для работы отказоустойчивого кластера.
Данные приводятся для ОУК из трех узлов – node1, node2, node3. При этом подразумевается, что узлы кластера, как и интерфейсы управления питанием узлов (IPMI), располагаются в разных подсетях.
Из таблицы видно, что надо обеспечить и доступность соседних узлов в локальной сети, и доступность узлов в сети IPMI.
Хотите узнать больше о кластеризации сервисов на базе Pacemaker? Добро пожаловать на курс «Администратор Linux. Виртуализация и кластеризация»!