转载:http://www.ttlsa.com/database/openldap-mirrormode-cluster/
MirrorMode(镜像同步)两个节点都可读可写,当线上使用的主节点宕机之后,可以立即切换到从节点上。从节点大部分情况下是openldap的实时备份节点。如果想实现故障转移,还需要程序的配合。但是对于系统管理员来说,会在ip层面上来实现故障转移, 这时需要安装keepalived, 最后说下,其实openldap的镜像同步类似于mysql的主主.
环境
节点1:192.168.1.201
节点2:192.168.1.202
安装openldap
参考:http://www.ttlsa.com/html/757.html
节点1(node1)配置
slapd.conf配置文件的最后一行追加如下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
index
objectclass
,
entryCSN
,
entryUUID
eq
overlay
syncprov
syncprov
-
checkpoint
100
10
syncprov
-
sessionlog
100
serverID
2
syncrepl
rid
=
123
provider
=
ldap
:
//192.168.1.202
bindmethod
=
simple
binddn
=
"cn=admin,dc=ttlsa,dc=com"
credentials
=
123456
searchbase
=
"dc=ttlsa,dc=com"
schemachecking
=
off
type
=
refreshAndPersist
retry
=
"60 +"
mirrormode
on
|
节点2(node2)配置
slapd.conf配置文件的最后一行追加如下配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
index
objectclass
,
entryCSN
,
entryUUID
eq
# 新增索引,提高同步速度,同步需要使用到这三个字段
overlay
syncprov
# 复制引擎
syncprov
-
checkpoint
100
10
# 操作100次同步一次,或者1分钟同步一次
syncprov
-
sessionlog
100
serverID
1
# 节点ID,唯一
syncrepl
rid
=
123
provider
=
ldap
:
//192.168.1.201 # 对端IP地址
bindmethod
=
simple
binddn
=
"cn=admin,dc=ttlsa,dc=com"
# Bind DN
credentials
=
123456
# 密码
searchbase
=
"dc=ttlsa,dc=com"
# 起始域
schemachecking
=
off
type
=
refreshAndPersist
retry
=
"60 +"
mirrormode
on
# 开启mirrormode模式
|
测试
具体测试过程我就不演示了,大家可以安装Apache Directory Studio 在节点1修改数据,查看节点2是否同步修改. 反之节点2修改,查看节点1是否同步修改了。
最后
openldap读取速度大概有mysql的10倍,但是写入速度相对较慢,比较实用用于读取频繁的应用中. openldap和mysql是两类东西没有多大的可比性.
转载请注明出处:http://www.ttlsa.com/html/3059.html