这是Ceph开发每周谈的第一百零二篇文章,记录从17年12月03号到17年12月08号的社区开发情况。
一句话消息
Mimic 的第一个版本开发版本已经释出。
PG Merging
目前 Ceph 创建 Pool 后,使用固定数目的 PG 来进行数据负载均衡,但是在扩容后,有可能 PG 在每个 OSD 数目不足,导致一些性能和容量的不均衡。因此 PG Split 功能用来支持动态的分裂 PG,使得能够在 Pool 扩容后,每个 OSD 仍然能够获得足够多的 PG。既然有了 PG 分裂以后,那么 PG 合并就自然而来了。主要是因为缩容以后过多的 PG 会带来过多的资源消耗。而且 PG 分裂后有可能数目过多,希望去撤销该操作,那么 PG Merge 就需要来支撑。
那么 PG Merging 主要需要首先减小 pgp_num,保证 pgp_num < pg_num,使得需要合并的 PG 处于同一个 OSD。其次,需要保证 pg log 在最终合并后不能在版本上冲突,osd 和 pg 也需要一些回馈机制来决定如果 pg log 并不是连续的时候也能处理。这类工作已经开始展开(https://github.com/ceph/ceph/pull/19245)。另一方面,Monitor 需要在 PG Merge 前保证 PG 都是 clean 状态,而且 pg log 处于非重叠状态。
在准备工作之后,monitor 就可以调小 pg_num,然后 OSD 获得新的 OSDMap,进行合并操作,包括统计信息。
领取专属 10元无门槛券
私享最新 技术干货