167
6.9 Отказоустойчивый кластер (High Availability) на основе Pacemaker
Pacemaker – менеджер ресурсов кластера (Cluster Resource Manager), задачей которого яв-
ляется достижение максимальной доступности управляемых им ресурсов и защита их от сбоев,
как на уровне самих ресурсов, так и на уровне целых узлов кластера. Ключевые особенности
Pacemaker:
обнаружение и восстановление сбоев на уровне узлов и сервисов;
возможность гарантировать целостность данных путем ограждения неисправных узлов;
поддержка одного или нескольких узлов на кластер;
поддержка нескольких стандартов интерфейса ресурсов (все, что может быть написано
сценарием, может быть кластеризовано);
независимость от подсистемы хранения – общий диск не требуется;
поддержка и кворумных и ресурсозависимых кластеров;
автоматически реплицируемая конфигурация, которую можно обновлять с любого узла;
возможность задания порядка запуска ресурсов, а также их совместимости на одном узле;
поддерживает расширенные типы ресурсов: клоны (когда ресурс запущен на множестве уз-
лов) и дополнительные состояния (master/slave и подобное);
единые инструменты управления кластером с поддержкой сценариев.
Архитектура Pacemaker представляет собой три уровня:
кластеронезависимый уровень – на этом уровне располагаются ресурсы и их скрипты, ко-
торыми они управляются и локальный демон, который скрывает от других уровней разли-
чия в стандартах, использованных в скриптах;
менеджер ресурсов (Pacemaker) – реагирует на события, происходящие в кластере: отказ
или присоединение узлов, ресурсов, переход узлов в сервисный режим и другие админи-
стративные действия. Pacemaker, исходя из сложившейся ситуации, делает расчет наиболее
оптимального состояния кластера и дает команды на выполнение действий для достижения
этого состояния (остановка/перенос ресурсов или узлов);
информационный уровень (Corosync) – на этом уровне осуществляется сетевое взаимодей-
ствие узлов, т.е. передача сервисных команд (запуск/остановка ресурсов, узлов и т.д.), об-
мен информацией о полноте состава кластера (quorum) и т.д.
Узел (node) кластера представляет собой физический сервер или виртуальную машину с
установленным Pacemaker. Узлы, предназначенные для предоставления одинаковых сервисов,
должны иметь одинаковую конфигурацию.
Ресурсы, с точки зрения кластера, это все используемые сущности – сервисы, службы, точ-
ки монтирования, тома и разделы. При создании ресурса потребуется задать его класс, тип, про-