手动解决ceph中pg不平衡

一、在从事ceph的小伙伴们,一定有遇到在搭建ceph完成,使用一段时间之后发现。pg分布不均衡导致osd上的数据有的多,有的少。从而性能方面也下降,比如数据丢失等。

那怎样才能解决以上问题呢。在官网上就有人对此问题做了回复,在原有的基础上把pg再次做均衡,也就是说每个osd上的pg数之间相差不到0.05%。

二、如何实现呢?往下看


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 ] [--upmap-max ] [--upmap-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        #执行优化

你可能感兴趣的:(笔记)