Ceph开发每周谈 Vol 41|EC Overwrite 进展

2016年09月 · 麦子迈

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

上周综述

这周主要是 SINA SDC 召开。

EC Overwrite 进展

目前Sam在着手EC overwrite的工作,主要分为以下几个部分:
1、修改现有的missing set结构用来存放shard缺失的pglog信息,这部分代码已经提交并合并到master中了;
2、修改原来PGBackend中的PGTransaction结构使其支持overwrite操作,这部分测试工作已经结束,准备合并到master中;
3、增加了stripe cache这部分的逻辑,不仅支持overwrite时的read,也支持客户端read的逻辑,进一步提高read的性能,这部分工作刚刚开始,预计下一个版本中会支持;
4、overwrite的RMW(read-modify-write)方式已经大部分实现,相比于PARITY-DELTA-WRITE方式,RMW更容易实现,同时考虑到编码接口的问题,Sam决定先实现RMW的方式,目前代码工作完成了一半。

FileStore Fiemap 和 Splice Bug

目前在 Clone Range 情况下,FileStore Fiemap 会导致原来是空洞的数据区域在 Clone 后没有把空洞迁移过去,在默认情况下 fiemap 是被关闭的。