ceph 数据均衡
问题的提出:在ceph集群中,当有新的OSD 添加到集群中,会导致数据移动以达到数据均衡,数据的移动只在旧的OSD和新添加的OSD之间移动,还是旧有的OSD之间也有数据移动?
上次Ceph社区交流,有人提到,当有100个OSD时,添加OSD, 旧有的OSD之间会有剧烈的数据移动
目前做了一个实验,Ceph 集群有6个 OSD(0,1,2,3,4,5),再添加 2个新的OSD(6,7), 观察添加新的OSD之前和之后的PG变化
通过 ceph pg ls | awk '{print $15}' 可以获得所有的PG到OSD的映射
集群中共有pg 169 个
对比结果发现会有这样的迁移:(4,0,1) --> (6,1,3) 也就是旧的OSD之间的迁移
总共有134个PG迁移,这样的内部之间迁移的PG有6个,比例不是太多
结论:
原有的旧的OSD之间内部确实有数据的迁移
最近有人开发了以工具,可以模块pg的分布,这样在迁移时,可以做一些模拟实验,当合适时再迁移:
https://github.com/ceph/ceph/pull/6004