知识卡片
PG分裂只做本地数据搬移
内容
当一个 pool 里初始规划的 PG 数量不够用时,可以让 [[pool与PG的抽象关系|PG]] 分裂成 2 的幂次方个子 PG。分裂出的新 PG 和父 PG 位于完全相同的 OSD 列表上,数据迁移只是把已经在本地磁盘上的对象重新划分归属,不需要跨节点搬运,开销远小于普通的数据均衡迁移。这提醒了一个通用原则:调整分片粒度(这里是增加 PG 数量以提升并行度和均衡精度)和调整分片的物理分布位置是两件独立的事,只要分裂后的子分片仍留在原节点上,就能把本该昂贵的”重新分片”操作压缩成廉价的本地元数据调整。
参考来源
《Ceph源码分析》第6章《Ceph的数据读写》