1、存储池pg数计算方法
参考官方文档说明:Ceph PGs per Pool Calculator
计算公式如下:
(Target PGs per OSD)x(OSD#)x(%Data)
Suggest PG Count = ---------------------------------------------
(Size)
- 参数说明
参数 | 说明 | 备注 |
---|---|---|
Suggest PG Count | 存储池建议PG数 | |
Target PGs per OSD | 每个OSD的pg数 | 1、如果未来集群的OSD数量基本不再增长,Target PGs per OSD=100 2、如果未来集群的OSD数量可能增长到目前规模的2倍以内,Target PGs per OSD=200 3、如果未来集群的OSD数量可能增长到大于目前规模的2倍且小于3倍,Target PGs per OSD=300 |
OSD# | 存储池包含osd个数 | 默认情况下为集群所有osd的个数,可根据对应crush rule所包含的osd个数进行计算 |
%Data | 存储池写入数据占总OSD容量百分比 | 集群所有存储池%Data值之和为100% |
Size | 存储池冗余数 | 1、如果存储池为副本池,则此处为副本数 2、如果存储池为纠删池,则此处为k+m |
- 相关说明
- 存储池pg数建议取最接近2次幂的数值,这可以小幅提高crush算法效率。如果最接近2次幂的数值比原计算值小于25%,则使用2的下一个更大的次幂
- 存储池pg数计算是为了整个集群有足够的pg来均匀存放数据,同时避免单一osd的pg数过高,影响recovery和backfill操作
- 参考示例