ceph支持两个存储集群之间的RBD mirroring,实际上和灾备有关
该机制使用异步机制做一主一从的两个集群
如果包含主RBD映像的集群变得不可用,那么可以从远程集群故障转移到辅助RBD映像
mirror配置参数
复制模式
1.One-way/active-passive单向模式(主备)
其中一个集群的RBD是读写模式,mirror代理在远端集群运行,可以有多从集群
2.Two-way/active-active双向模式(双活)
ceph同步目标源和目标对,只允许在两个集群中复制
镜像单位—pool模式/image模式
以pool或者image为单位进行mirror
镜像异步模式
1.journal-based mirror
使用日志镜像特性来保证一致性,根据日志进行恢复
2.snapshot-based mirror
基于快照的镜像,使用定期调度或手动创建的RBD镜像快照
管理复制
1 2 3 4 5 6 7 8 9 10 11 12
| 1.镜像同步 如果集群状态不一致,rbd-mirror守护进程不会尝试同步不一样的镜像 需要使用命令重新同步镜像 rbd mirror image resync mypool/myimage
2.开启或关闭镜像mirror特性(整个pool) rbd mirror image enable rbd mirror image disable
3.使用基于快照的mirror snapshot-based mirror rbd mirror image disable mypool/myimage rbd mirror image enable mypool/myimage
|
配置复制—单向异步mirror
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 为了实现RBDmirror并开启rbd-mirror守护进程来发现邻居集群 必须要有一个注册的peer并创建一个用户账号 rbd mirror pool peer bootstrap create
配置过程: 1.在A和B两个集群中创建同名的池 2.创建或修改启用了exclusivce-lock和日志记录功能的RBD镜像 3.在池上启用pool-mode/image-mode mirror 4.在A集群中使用bootstrap存储集群注册,并保存bootstrap token 5.部署rbd-mirror 单向复制: 只在备份集群上运行 双向复制:在两个集群上都运行 6.在备份集群中导入bootstrap token 单向复制:使用--direction rx-only参数
主节点: ceph osd pool create rbd 32 32 ceph osd pool application enable rbd rbd rbd pool init -p rbd
rbd create my-image --size 1024 --pool rbd \ --image-featrue=exclusive-lock,journaling
rbd mirror pool enable rbd pool
rbd mirror pool peer bootstrap create --site-name prod \ rbd > /mnt/bootstrap_token_prod
从节点: ceph osd pool create rbd 32 32 ceph osd pool application enable rbd rbd rbd pool init -p rbd
ceph orch apply rbd-mirror --placement=backup-node.example.com
ceph orch apply rbd-mirror --placement=backup-node.example.com rbd mirror pool peer bootstrap import --site-name backup \ --direction rx-only rbd /mnt/bootstrap_token_prod
|
故障切换流程
1 2 3 4 5 6 7 8 9 10
| 如果主mirror已经不可用了,需要重新启用对RBD的访问
1.停止对主RBD的访问 2.降级RBD主镜像 rbd mirror image demote pool-name/image-name 3.提升RBD从镜像 rbd mirror image promote pool-name/image-name 4.恢复对RBD镜像的访问,重新启动应用程序和虚机
如果遇到断电等意外情况,必须备份集群中的ceph mon提升非主镜像,使用--force参数
|