Назад | Перейти на главную страницу

LDAP (служба каталогов 389) и кардиостимулятор с несколькими мастерами

Я пытаюсь настроить пару серверов LDAP под управлением 389 (ранее Fedora DS) в режиме высокой доступности с помощью Pacemaker с плавающим IP-адресом. Кроме того, 389 поддерживает репликацию с несколькими мастерами, при которой все изменения на одном узле автоматически реплицируются на один или несколько других узлов.

Я довольно близок к тому, чтобы все заработало. Отказоустойчивость работает нормально. И репликация с несколькими мастерами работает нормально. Однако моя текущая конфигурация Pacemaker останавливает службу каталогов на неактивном узле. Это означает, что резервный узел не получает данные репликации от другого узла.

Как правильно настроить Pacemaker, чтобы:

  1. Службы каталогов LDAP всегда работает на обоих узлах
  2. Плавающий IP назначается одному из узлов
  3. Аварийное переключение происходит, если главный узел умирает или Служба LDAP перестает работать на главном устройстве

Изначально конфигурация моего кардиостимулятора выглядела следующим образом:

property stonith-enabled=false
property no-quorum-policy=ignore

rsc_defaults resource-stickiness=100

primitive elastic_ip lsb:elastic-ip op monitor interval="10s"
primitive dirsrv lsb:dirsrv op monitor interval="10s"
order dirsrv-after-eip inf: elastic_ip dirsrv
colocation dirsrv-with-eip inf: dirsrv elastic_ip

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

property stonith-enabled=false
property no-quorum-policy=ignore

rsc_defaults resource-stickiness=100

primitive elastic_ip lsb:elastic-ip op monitor interval="10s"
primitive ldap lsb:dirsrv op monitor interval="15s" role="Slave" timeout="10s" op monitor interval="16s" role="Master" timeout="10s"

ms ldap-clone ldap meta master-max=1 master-node-max=1 clone-max=3 clone-node-max=1 notify-true

colocation ldap-with-eip inf: elastic_ip ldap-clone:Master
order eip-after-promote inf: ldap-clone:promote elastic_ip:start
order ldap-after-eip inf: elastic_ip ldap-clone

К сожалению, это не совсем работает. pengine жалуется, что «ldap-clone: ​​повышено 0 экземпляров из 1 возможного для управления», а затем останавливает службу LDAP.

Благодаря списку рассылки Pacemaker у нас есть решение. Проблема в том, что LSB-скрипт для 389 не понимает концепции master / slave. Самое простое решение - использовать простой клон, а не клон ведущий / ведомый. Новая конфигурация кардиостимулятора выглядит следующим образом:

property stonith-enabled=false
property no-quorum-policy=ignore

rsc_defaults resource-stickiness=100

primitive elastic_ip lsb:elastic-ip op monitor interval="10s"
primitive dirsrv lsb:dirsrv op monitor interval="15s" role="Slave" timeout="10s" op monitor interval="16s" role="Master" timeout="10s"
clone ldap-clone dirsrv
order ldap-after-eip inf: elastic_ip ldap-clone
colocation ldap-with-eip inf: elastic_ip ldap-clone