一.环境搭建
1.创建2个ceph集群。本文将主集群称为local集群,备份集群称为remote集群
2.将主ceph集群中的ceph.conf和ceph.client.admin.keyring改名为local.conf和local.client.admin.keyring;备份 集群的ceph.conf和ceph.client.admin.keyring 改为remote.conf和remote.client.admin.keyring。
3.将主集群的local.conf和local.client.admin.keyring拷贝到备份集群的/etc/ceph 。同样,将备份集群的两个remote*文件拷贝到主集群的/etc/ceph。
4.修改两个集群的rbd特性,在local.conf和remote.conf中设置rbd_default_features=125
二.mirror设置
5.启动rbd镜像进程,主力--setuser和--setgroup参数需要根据local.conf和remote.conf的组和用户属性来确定。
主集群执行:rbd-mirror -f --cluster remote --setuser root --setgroup root
备份集群执行:rbd-mirror -f --cluster local --setuser root --setgroup root
6.rbd-mirror支持对单个rbd或整个pool进行镜像,这里开启pool名为rbd的池镜像功能。注意,两个集群的rbd或pool的名字必须一致
主集群执行:rbd --cluster local mirror pool enable rbd pool
备份集群执行:rbd --cluster remote mirror pool enable rbd pool
7.增加peer对
主集群执行: rbd --cluster local mirror pool peer add rbd client.admin@remote
备份集群执行: rbd --cluster remote mirror pool peer add rbd client.admin@local
8.查询是否连接好
主集群执行: rbd --cluster local mirror pool info
备份集群执行: rbd --cluster remote mirror pool info
三.验证镜像功能及数据一致性:
1.在主集群执行 rbd create testrbd --size 40000。备份集群执行rbd --cluster remote ls可以看到创建的镜像。
2.在主集群上挂载rbd并写入数据
主集群执行:mkdir /mnt/rbd
mkdir /mnt/testrbd
rbd-fuse -c /etc/local.conf -p rbd /mnt/rbd
mkfs.ext4 /mnt/rbd/testrbd
mount /mnt/rbd/testrbd /mnt/testrbd
dd if=/dev/zero of=/mnt/testrbd/testfile bs=1M count=1000
sync
md5sum /mnt/testrbd/testfile
umount /mnt/testrbd/
umount /mnt/rbd
3.将主集群pool降级,并升级备份集群pool,再挂载备份集群的rbd查看数据一致性(如果不升级备份集群,无法获取独占锁并使用rbd)。
主集群执行:rbd --cluster local mirror image demote rbd/testrbd
备份集群执行:rbd --cluster remote mirror image promote rbd/testrbd
rbd-fuse -c /etc/remote.conf -p rbd /mnt/rbd
mount /mnt/rbd/testrbd /mnt/testrbd
md5sum /mnt/testrbd/testfile
四.其他有用的命令
1.关闭pool的镜像功能
rbd --cluster local mirror pool disable rbd
rbd --cluster remote mirror pool disable rbd
2.删除peer关系
先用rbd-mirror查看UUID
rbd --cluster local mirror pool info
rbd --cluster remote mirror pool info
然后删除peer关系
rbd --cluster local mirror pool peer remove image-pool remote-uuid号
rbd --cluster remote mirror pool peer remove image-pool local-uuid号
五.性能及稳定性测试相关
1.测试没开mirror功能及开mirror功能的性能是否有区别。
由于集群规模较小,测试过程中没发现rbd mirror开启与关闭对读写性能有影响。
2.测试开启mirror功能后持续写入数据是否对集群有影响。
测试没发现异常现象。