1. 当pg与pgp数量一样都为6时
由下图可见:
pg数量为8.0~8.5总计6个,所有的object分布在这6个pg中,此时每个pg对应一个osd组合总计为6个组合类型
同时观察到pg8.0和8.4对应的组合[3,5,9]和[5,9,3]虽然osd号相同,但是排列不同,ACTING说明主osd分别对应3和5,且没有重复的主osd
2. 设置pg数量大于pgp数量
由下图可见:
pg数量为8.0~8.5总计6个,所有的object分布在这6个pg中,此时这6个pg对应了[3,5,9],[9,0,3],[2,0,3]这三种组合方式
观察到有部分主osd重复,同时object的分布并没有发生变化
3. 设置pg数量小于pgp数量
发现当将pg设置成3时,pgp也自动变成了3
此时尝试手动将pgp修改回6
ceph报错pgp数量大于pg数量
4. 当同时扩大pg和pgp时
这是object被更分散的分布于12个pg中,同时osd的组合类型数量也增加了
结论:
-
pg数量是指以cephfs_data为例的存储池的组数,而存入的object最终会归属于其中一个组,pg数量变化会引起objects分布的变化;
-
pgp数量指cephfs_data为例的存储池中个osd组合的最大类型数量,pgp数量的变化会引起pg对应osd组合的变化,但不会引起objects分布的变化
-
pgp的数量不能大于pg数量,同时pgp在允许的情况下数量越多,可能使用的osd组合类型最多;这样object就能尽量分散的分不到不同的osd中;同时也尽量分散了主osd的压力
5. 如何确定pg和pgp数量
一般情况下,存储池的pg和pgp的数量设置相等。
pg数量计算参见官方计算器https://ceph.com/pgcalc/
补充
1.当pg和pgp不变 osd减少时会发生什么
2.当pg和pgp不变 osd增加时会发生什么
总结:
osd的增加或减少会改变pg对应的osd组合类型,但不会引起pg对应objects的变化