Ceph开发每周谈Vol 44 | K版前瞻: RBD 场景支持 EC | Cinder Replication 整合 RBD Mirror

2016年10月 · 麦子迈

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

  • 上周综述

  • RBD 支持 EC

Erasue Code 是大规模分布式存储降低成本的最主要手段,因此,众多 Ceph 用户不仅仅希望能够让 EC 在对象存储场景下使用,更能够支持 RBD 场景。但是 RBD 场景使用 EC 主要有两个问题:

1、RBD 的卷元数据使用 attr 和 omap 存储,同时大量的 cls 也适用 omap 方法,但是 EC 目前不支持 omap

2、EC 目前仅支持对象整读整写,不支持部分读写

这两个问题在 K 版中被社区的两拨人同时进行解决,第一是 RBD 模块的 Jason 实现了 RBD 卷可以跨越两个池子,即元数据存储在副本池,数据存储在 EC 池中(https://github.com/ceph/ceph/pull/11353)。

另外,Sammul Just 一直在实现 EC 的 Overwrite 功能,目前已经完成大部分功能的实现,进入测试阶段了。见 http://tracker.ceph.com/issues/14031

可以预见,RBD 支持 EC 后,Ceph 会成为第一个在块存储场景下实现跨主机的 EC 实现(不同于 VSAN 的 RAID 5/6 方式哦~~)

  • Cinder’s Ceph Replication

Ceph 在 Jewel 完成了 RBD Mirror 功能的技术预览,可用于开发测试环境的功能评估。而 OpenStack Cinder 较早就支持了 Volume Replication 的设置,但是这部分代码一直还没有进入主线并成功演示过。

可以通过 http://gorka.eguileor.com/ceph-replication/ 来了解如何整合 OpenStack Replication 和 Ceph RBD Mirror。这又是一个开源之间众多特性整合的突破!