手动解决pg分布不均衡

从Luminous v12.2.z开始,OSDMap中有一个新的pg-upmap异常表,允许集群将特定的PG显式映射到特定的OSD。

 

ceph features #查看ceph特征

ceph osd set-require-min-compat-client luminous --yes-i-really-mean-it #设置集群仅支持 Luminous(或者L之后的)客户端

 

ceph osd getmap -o {osdmap_filename} #获取集群当前的osdmap信息

例子:ceph osd getmap -o osd.map

 

osdmaptool {osdmap_filename} --upmap out.txt [--upmap-pool <pool>] [--upmap-max <max-count>] [--upmap-deviation <max-deviation>] #获取当前集群数据均衡后的优化信息

例子:osdmaptool osd.map --upmap out.txt --upmap-pool volumes

说明

upmap-pool :指定需要优化均衡的存储池名

upmap-max:指定一次优化的数据条目,默认100,可根据环境业务情况调整该值,一次调整的条目越多,数据迁移会越多,可能对环境业务造成影响。

max-deviation:最大偏差值,默认为0.01(即1%)。如果OSD利用率与平均值之间的差异小于此值,则将被视为完美。

 

cat out.txt

source out.txt #执行优化

http://docs.ceph.com/docs/master/rados/operations/upmap/?highlight=osdmaptool

 

其他操作

osdmaptool osd.map --import-crush cm --test-map-pgs --pool 1 #获取pool->pg->osd 关系

 

想要脚本的同学们  请留言!!

上一篇:BlueStore checksum机制


下一篇:SDNLAB技术分享(十七):Ceph在云英的实践