中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

PG分布调优

目的

调整每个OSD上承载的PG数量,使每个OSD的负载更加均衡。

方法

Ceph默认为每个存储池分配8个“pg/pgp”,在创建存储池的时候使用ceph osd pool create {pool-name} {pg-num} {pgp-num}指定“pg/pgp”数量,或者使用ceph osd pool set {pool_name} pg_num {pg-num}ceph osd pool set {pool_name} pgp_num {pgp-num}修改已创建好的存储池的“pg/pgp”数量。修改完成后使用ceph osd pool get {pool_name} pg_num/pgp_num查看存储池的“pg/pgp”数量。

“ceph balancer mode”默认为“none”,用ceph balancer mode upmap命令调整为“upmap”“ceph balancer”功能默认不打开,ceph balancer on/off用来打开/关闭“ceph balancer”功能。

PG分布参数配置如表1所示:

表1 PG分布参数配置

参数名称

参数说明

优化建议

pg_num

Total PGs = (Total_number_of_OSD * 100) / max_replication_count,得出的结果向上取到最近2的整数次幂。

默认值:8

现象:PG数量太少会有warning提示。

修改建议:根据计算公式具体计算得到的值。

pgp_num

pgp数量设置为与pg相同。

默认值:8

修改建议:根据计算公式具体计算得到的值,pgp数量建议与pg数量相同。

ceph_balancer_mode

使能balancer均衡器插件,并设置均衡器插件模式为“upmap”

默认值:none

现象:若PG数量不均衡会出现个别OSD负载较大而成为瓶颈。

修改建议:upmap

  • 每个OSD上承载的PG数量应相同或非常接近,否则容易出现个别OSD压力较大成为瓶颈,运用balancer插件可以实现PG分布优化,可通过ceph balancer evalceph pg dump随时查看当前PG分布情况。
  • 通过ceph balancer mode upmap以及ceph balancer on使Ceph PG自动均衡优化,Ceph每隔60秒会调整少量PG分布。通过ceph balancer evalceph pg dump随时查看当前PG分布情况,若PG分布情况不再变化,则说明分布已达到最佳。
  • 上述每个OSD对应的PG分布主要影响写入的负载均衡。除了每个OSD对应的PG数量优化外,主PG的分布情况也需要视情况优化,即尽可能地将主PG均匀分布到各个OSD上。