Ceph开发每周谈Vol 90 | CDM Sep.

2017年09月 · 麦子迈

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

一句话消息

目前已知 12.2.0 若干个严重 BUG,需要在 12.2 后续版本解决

CDM

pg log trimming

pglog 是跟着 PG 走,因此如果每个 OSD 占据太多的 PG,会造成显著的 PGLog 负担,同时这块也不太受控制。最近社区开始关注到pg log占用内存过多的问题。sage提出在整个osd内的所有pg上根据时间顺序删除log的想法。但具体细节还有待确定。

tiering+dedup

基本思路是将base pool作为索引,用manifest的方式记录真正的数据保存的地方。manifest保存在对象元数据中。同时数据对象会做chunk,用于做dedup。目前在L版里已经在cache tiering上实现了manifest和redirect,相关的内容会逐渐加入到主线里。

osdmap中移除removed_snaps

现在所有 self managed snapshot 在 ceph 中被删除后,都通过 osdmap 记录里的 RemovedSnaps 这个数据结构,用于保存pool中哪些快照被删除了。最近社区里有用户报告由于删除的快照太多,导致removed_snaps这个结构太大。由于这个结构会保存在osdmap中,这样会导致osdmap变大,集群变慢。