OpenLDAP多主复制

时间:2017-03-16 09:57:34

标签: ldap openldap multi-master-replication

我目前正在四个节点上测试OpenLDAP多主机复制,我几乎没有问题。

我遵循本教程:setup-openldap-multi-master-replication-centos-7我成功完成了四节点多主机复制的配置。

如果我有所有节点都活着,一切正常,数据在所有四个节点之间复制。即使我停止一个/两个/三个节点,仅在生命节点上进行一些更改,数据也会在它们重新启动时复制到节点。

但问题是如果我停止并在节点ldap1,ldap2和ldap3上启动slapd服务,而我做了一些"多个"节点ldap4上的更改。

我的一个场景,我遇到问题: 在一个节点上,我启动脚本,用于在ldap中插入用户

for (( i=1; i<=5000; i++ )); do

> addUser.ldif
echo "
dn: uid=ldaptest$i,ou=People,dc=test,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldaptest
uid: ldaptest
uidNumber: 9988
gidNumber: 100
homeDirectory: /home/ldaptest
loginShell: /bin/bash
gecos: LDAP Replication Test User
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
" >> addUser.ldif

ldapadd -x -w xxxxx-D "cn=Manager,dc=test,dc=com" -f addUser.ldif
done

所有用户现在都在所有数据库中 - 一切都是同步的。

然后在一个节点上我启动删除用户的脚本:

for (( i=1; i<=5000; i++ )); do
        echo $i
        ldapdelete -w xxxxx-D "cn=Manager,dc=test,dc=com" -x "uid=ldaptest$i,ou=People,dc=test,dc=com"
done

并且在那个时间我停止/启动/停止/启动其他三个节点上的slapd服务。脚本完成删除后,ldap数据库不再同步。

命令ldapsearch -x cn=ldaptest -b dc=test,dc=com |grep numEntries返回:

    ldap1: numEntries: 648 
    ldap4: numEntries: 0 (node where script was running)
    ldap3: numEntries: 5
    ldap2  numEntries: 24

这种行为对于LDAP是否正常,或者我的配置可能有问题?

进程与教程相同,我只是添加了其他olcSyncRepl条目进行复制。类似的东西:

[root@ratitovec bkal]# cat ldap04_2.ldif
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcSyncRepl
    olcSyncRepl: rid=004
      provider=ldap://192.168.26.180:389/
      bindmethod=simple
      binddn="cn=Manager,dc=test,dc=com"
      credentials=iskratel
      searchbase="dc=test,dc=com"
      scope=sub
      schemachecking=on
      type=refreshAndPersist
      retry="30 5 300 3"
      interval=00:00:01:00
    -

[root@ratitovec bkal]# ldapadd -Y EXTERNAL -H ldapi:/// -f ldap04_2.ldif

我的第一印象是,如果在我们在ldap db中插入或删除数据时重新启动节点,则ldap多主机复制不是很可靠。

1 个答案:

答案 0 :(得分:2)

我们使用OpenLDAP多主机的经验是,它具有2个ldap节点是可靠的。有3个(可能还有更多的节点)复制在一点压力下出错了。因此,我们可以使用Apache JMeter作为测试工具重现这一点。主要是删除操作给出了问题。

对于2个节点,Apache JMeter测试完全没有问题,复制时最多可以添加,读取,更改和删除多达8000个条目作为测试计划中的操作。