Ceph开发每周谈 Vol 64 | OSDMap 显式指定 PG 分布

2017年03月 · 麦子迈

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

  • 一句话消息

上周 CDM: http://tracker.ceph.com/projects/ceph/wiki/CDM_01-MAR-2017

  • OSDMap 显式指定 PG 分布

目前 Ceph 集群在规模较大,存在异构设备时有可能出现百分比很小的不均匀,因为在规模较大时,1%的不平衡都有可能造成几百 TB 空间的浪费,因此,如何让 Ceph 的 OSD 数据尽可能平衡是一个一直持续的话题。

目前可采用的方法是 reweight-by-utilization:

通过让 Monitor 根据现有 OSD 空间利用情况来调整权重使得少部分 PG 能够被自动重新映射。这个可以解决一些明显的不一致,但是某些 PG 仍然有可能导致一些不平衡。

在这次 CDM 上,Sage 提出一个显式的 OSDMap 映射方式,允许指定特定 PG 重映射。

这样,用户可以在一些使用空间明显较大的 OSD 上选择几个 PG 去重映射到少的 OSD 上。

目前主要的困难是什么时候去把旧的映射删除,比如如果 CRUSH 映射变化较大,这些修改的映射应该如何去删掉。同时,这会引入更多的结果在 OSDMap,增加 Peering 的时候内存和结构损耗。