从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 关系
想要脚本的同学们 请留言!!