LDAP(389 目录服务)和具有多主控的 Pacemaker

LDAP(389 目录服务)和具有多主控的 Pacemaker

我正在尝试使用具有浮动 IP 的 Pacemaker 设置一对运行 389(以前称为 Fedora DS)的高可用性 LDAP 服务器。此外,389 支持多主复制,其中一个节点上的所有更改都会自动复制到一个或多个其他节点上。

我几乎已经让所有东西都正常工作了。故障转移工作正常。多主复制工作正常。但是,我当前的 Pacemaker 配置会停止非活动节点上的目录服务。这意味着备份节点不会从其他节点接收复制数据。

设置Pacemaker的正确方法是什么:

  1. LDAP 目录服务总是在两个节点上运行
  2. 浮动 IP 被分配给其中一个节点
  3. 如果主节点死亡,则发生故障转移或者LDAP 服务在主服务器上停止运行

最初,我的 Pacemaker 配置如下所示:

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

然后我尝试使用 Pacemaker克隆

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:将可能的 1 个实例中的 0 个实例提升为主”​​,然后停止 LDAP 服务。

答案1

感谢 Pacemaker 邮件列表,我们找到了解决方案。问题是 389 的 LSB 脚本不理解主/从概念。最简单的解决方案是使用简单克隆,而不是主/从克隆。新的 Pacemaker 配置如下所示:

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

相关内容