分布式存储Ceph RBD-Mirror 灾备实践

本文详细介绍了Ceph RBD-Mirror的灾备实践,包括基本原理、工作流程、单向与双向备份的区别。通过启用journaling,实现了异地备份,减少了数据丢失风险。文中还对比了单主集群与主备集群的性能,测试显示启用rbd-mirror可能导致主集群性能下降。最后讨论了优化策略和官方待改进的地方,如引入一致性组和并行写优化。
摘要由CSDN通过智能技术生成

1.说明介绍

继上次分享的《分布式存储系统 Ceph 架构及使用场景解析》 和 《分布式存储Ceph之PG状态详解》 ,这次分享《分布式存储Ceph 块存储灾备方案》。

1.1 基本原理

\"image.png\"

RBD Mirror原理其实和MySQL的主从同步原理非常类似,前者基于journaling,后者基于binlog,简单地说就是利用日志进行回放(replay):通过在存储系统中增加Mirror组件,采用异步复制的方式,实现异地备份。(此处的journal是指Ceph RBD的journal,而不是OSD的journal)

该能力利用了 RBD image 的日志特性,以确保集群间的副本崩溃一致性。镜像功能需要在同伴集群( peer clusters )中的每一个对应的 pool 上进行配置,可设定自动备份某个存储池内的所有 images 或仅备份 images 的一个特定子集。 rbd-mirror 守护进程负责从远端集群拉取 image 的更新,并写入本地集群的对应 image 中。

当RBD Journal功能打开后,所有的数据更新请求会先写入RBD Journal,然后后台线程再把数据从Journal区域刷新到对应的image区域。RBD journal提供了比较完整的日志记录、读取、变更通知以及日志回收和空间释放等功能,可以认为是一个分布式的日志系统。

1.2 工作流程

\"image.png\"

1、当接收到一个写入请求后,I/O会先写入主集群的Image Journal
2、Journal写入成功后,通知客户端
3、客户端得到响应后,开始写入image
3、备份集群的mirror进程发现主集群的Journal有更新后,从主集群的Journal读取数据,写入备份集群(和上面序号一样,是因为这两个过程同时发生)
4、备份集群写入成功后,会更新主集群Journal中的元数据,表示该I/O的Journal已经同步完成
5、主集群会定期检查,删除已经写入备份集群的Journal数据。
以上就是一个rbd-mirror工作周期内的流程,在现有的Jewel版本中30s为一次工作周期,暂时不能改变这个周期时间。

1.3 优点

1、当副本在异地的情况下,减少了单个集群不同节点间的数据写入延时;

2、减少本地集群或异地集群由于意外断电导致的数据丢失。

1.4 单向备份与双向备份

双向备份:两个集群之间互相同步,两个集群都要运行rbd-mirror进程。
单向备份:分为主集群和从集群,只在从集群运行rbd-mirror进程,主集群的修改会自动同步到从集群。

1.5 安装须知

  • RBD 镜像功能需要 Ceph Jewel 或更新的发行版本。
  • 目前Jewel版本只支持一对一,不支持一对多。
  • 两个集群 (local和remote) 需要能够互通。
  • RBD需要开启journal特性, 启动后会记录image的事件。

2. mirroring 模式

mirroring是基于存储池进行的peer,ceph支持两种模式的镜像,根据镜像来划分有:

存储池模式

  • 一个存储池内的所有镜像都会进行备份

镜像模式

  • 只有指定的镜像才会进行备份

2.1 存储池模式

2.1.1 创建存储池

创建一个用于测试的存储池:

#local集群ceph osd pool create test_pool 100 100 replicated --cluster=localpool 'test_pool' created #remote集群ceph osd pool create test_pool 100 100 replicated
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值