LDAP(389目录服务)和多主站起搏器

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

我相当接近一切工作。 故障转移工作得很好。 而多主复制工作正常。 但是,我当前的Pacemakerconfiguration会停止非活动节点上的目录服务。 这意味着备份节点没有从其他节点接收复制数据。

build立起搏器的正确方法是什么?

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

最初,我的Pacemakerconfiguration如下所示:

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到master的0个实例”,然后停止LDAP服务。

感谢Pacemaker邮件列表,我们有一个解决scheme。 问题是389的LSB脚本不了解主/从的概念。 最简单的解决scheme是使用简单的克隆,而不是主/从克隆。 新的起搏器configuration如下所示:

 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