Ceph开发每周谈 Vol 87 | Rados Level Replication From 360

2017年08月 · 麦子迈

这是Ceph开发每周谈的第八十六篇文章,记录从17年8月7号到17年8月13号的社区开发情况。笔者从前年开始做Ceph的技术模块分析到今年中告一段落,想必有挺多人期待下一篇Ceph技术分析。考虑到Ceph的发展已经从前年的一穷二白到现在的如火如荼,但对于社区的方向和实况仍有所脱节,笔者考虑开始Ceph开发每周谈这个系列。每篇文章都会综述上周技术更新,围绕几个热点进行深度解析,如果正好有产业届新闻的话就进行解读,最后有读者反馈问题的话并且值得一聊的话,就附上答疑部分。

  • 一句话消息

上周 12.1.3 tag 发布,不过由于存在升级问题,这周 12.1.4 也发布了。

BlueStore 修改了默认空间分配策略为 Stupid,从之前的 Bitmap 方式。

  • Rados Level Replication

在上上周的 CDM 上,360 Xuehan Xu 介绍了他们设计的 Rados Level Replication(http://tracker.ceph.com/attachments/download/2903/ceph_rados-level_replication.pdf)

目前 Ceph RBD 和 RGW 分别具有 RBD Mirror 和 RGW Multisite 来实现多集群数据持久化,360 期望在 Rados 实现一个集群层面的站点复制功能,来解决所有的 Rados 数据可用性问题。

实际上就是在 OSD 层实现双写,以及数据一致性保护,然后利用已有的单集群恢复流程去增加 Recovery Journal 来实现跨集群的数据一致性问题。这个方案需要让底下 OSD 的整个流程增加对于 Transfer node 的感知,同时保证数据的一致性,改动的量会相当的大。

实际上,如果纯同步复制的化,使用单个集群,多个机房分布 OSD 也能达到一样的效果,唯一的区别就是 Mon 集群是拆开了。