1.环境要求
集群名称 |
集群版本 |
storage01 |
v17 |
storage02 |
v17 |
2.创建存储池
ceph osd pool create rbd 64 64
ceph osd pool application enable rbd rbd
3.开启mirror功能
ceph orch apply rbd-mirror --placement=storage01/2
ceph orch ps | grep mirror
rbd mirror pool enable rbd image
4.建立配对
# 创建token
rbd mirror pool peer bootstrap create --site-name site-a rbd > /root/bootstrap_token_site-a
# 拷贝token到storage02集群节点
scp bootstrap_token_site-a storage02:/root/
- storage02集群操作导入token并定义同步类型
- 注意参数rx-only,rx-tx
- rx-only:从节点只负责收,不负责发,单向复制
- rx-tx:从节点负责收也负责发,双向复制
# rbd mirror pool peer bootstrap import --site-name site-b --direction rx-only rbd /root/bootstrap_token_site-a
# 使用双向复制
rbd mirror pool peer bootstrap import --site-name site-b --direction rx-tx rbd /root/bootstrap_token_site-a
rbd mirror pool info rbd
5.配置块设备出发复制功能
rbd create --size 10G rbd/disk1
- 配置触发,配置基于快照复制,如果不写,那么就是集群日志(storage02集群操作)
rbd mirror image enable rbd/disk1 snapshot
rbd mirror image status rbd/disk1
6.实战使用
rbd map rbd/disk1
mkfs.xfs /dev/rbd0
mount /dev/rbd0 /mnt/
cd /mnt
echo 12345 > test.txt
dd if=/dev/zero of=x1 bs=1M count=200
# 手动生成快照触发同步
rbd mirror image snapshot rbd/disk1
7.故障切换(failover failback)
umount /mnt
rbd unmap rbd/disk1
# 对块设备进行降级
rbd mirror image demote rbd/disk1
rbd mirror image status rbd/disk1
# 对块设备进行升级
rbd mirror image promote rbd/disk1
rbd mirror image status rbd/disk1
# 到现在即可使用
rbd map rbd/disk1
mount /dev/rbd0 /mnt/
cd /mnt/
dd if=/dev/zero of=x2 bs=1M count=300
# 触发快照
rbd mirror image snapshot rbd/disk1
8.定义快照自动触发
- storage01集群操作(d天 h小时 m分钟)
rbd mirror snapshot schedule add --pool rbd --image disk1 2m
rbd mirror snapshot schedule ls --pool rbd --image disk1