ceph-mirror

发布时间 2023-08-21 21:22:13作者: A57

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.建立配对

  • storage01集群操作
# 创建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.配置块设备出发复制功能

  • 创建块设备(storage02集群操作)
rbd create --size 10G rbd/disk1
  • 配置触发,配置基于快照复制,如果不写,那么就是集群日志(storage02集群操作)
rbd mirror image enable rbd/disk1 snapshot
  • 验证查看(所有集群)
rbd mirror image status rbd/disk1

6.实战使用

  • storage01集群操作
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)

  • storage01节点操作降级

umount /mnt

rbd unmap rbd/disk1

# 对块设备进行降级
rbd mirror image demote rbd/disk1

rbd mirror image status rbd/disk1
  • storage02节点操作升级

# 对块设备进行升级
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
  • storage01还原

    • storage02集群操作
    umount /mnt
    
    rbd unmap rbd/disk1
    
    # 降级
    rbd mirror image demote rbd/disk1
    
    • storage01集群操作
    rbd mirror image promote rbd/disk1
    
    rbd map rbd/disk1
    
    mount /dev/rbd0 /mnt/
    
    ll /mnt
    

8.定义快照自动触发

  • storage01集群操作(d天 h小时 m分钟)
    • 这里配置每两分钟一次
rbd mirror snapshot schedule add --pool rbd --image disk1 2m

rbd mirror snapshot schedule ls --pool rbd --image disk1