分类: LINUX
2010-04-18 23:23:57
以往的openldap版本并未提供双向复制功能,只有简单的通过slurpd提供单向的数据复制,对于邮件系统做大型分布式架构带来不便,openldap也成为超大用户量邮件系统的一个瓶颈。openldap的研发组可能也意识到了这一点,于是在最新的大版本2.4版后特增加了可以支持双向复制的模块syncprov。
这个双向复制功能被openldap称作N-Way Multi-Master,从字面上理解显然要比我们需要的双向复制强大的多。经我测试,的确如此。它基本考虑到了负载均衡容灾的各项可能,包括两台ldap主机的实时同步、一台主机宕机后另一台主机还会照常的提供服务、宕机主机重启后会自动同步另一台主机的数据等,操作完全的自动化,给我们维护带来了很多的便利。它最大的优点就是配置很简单。下面介绍一下N-Way Multi-Master是如何配置的。
首先我们需要的是openldap2.4以上版本,我们的417邮件openldap是2.3.39版本,如果要在417上做的话,就需要重新编译安装openldap了,记得要加上参数--enable-syncprov。
417vip版本的openldap是2.4.11的,所以我们用vip就可以直接实现双向复制了。相比平常的openldap需要修改的只有slapd.conf这个文件。
假设两台主机分别为mail1(172.16.100.98)和mail2(172.16.103.80):
mail1的slapd.conf中添加:
serverID 001 \\主机id
syncrepl rid=000 号,两台机器一致
provider=ldap://172.16.103.80 的ip
type=refreshAndPersist \\同步机制
retry="5 5 300 +"
searchbase="o=bjczy.com"
attrs="*,+"
bindmethod=simple
binddn="cn=eYouAdmin,o=bjczy.com" \\根用户
credentials=aaaaa \\密码
mirrormode on \\镜像模式打开
overlay syncprov \\同步方式
syncprov-checkpoint 100 10 \\同步检查,每10分钟或者是每更新100条数据
mail2的slapd.conf中信息基本与mail1相同,除了server ID和ip地址外。剩下的工作就是启动slapd,当然不要加后面的参数。
参考文献: