ceph之查看osd上pg的分布

一、概述

  osd上pg的分布决定了数据分布的均匀与否,所以能直观的看到pg到osd的上分布是很有必要的;

  ceph只身提供了相关的命令:

1 #ceph pg ls-by-osd.{osd_id}
2 #for i in `ceph osd  ls`; do ceph pg ls-by-osd osd.$i |awk '{print $1}' >> /tmp/aaa ;done       #NOTE: 每次osd输出,第一行有一个pg_stat,需要去掉之后,就可以获取pg总数是ceph -s中 pg个数*副本数

  上述方式可以很好的解决问题,但还是另一种方式也可以:

  1、获取map:

# ceph osd getmap -o osdmap
got osdmap epoch 2381

  2、获取crushmap:

#osdmaptool osdmap --export-crush crushmap
osdmaptool: osdmap file 'osdmap'
osdmaptool: exported crush map to crushmap

  也可以使用:

#ceph osd getcrushmap -o crushmap    

  3、获取某个pool在pg上的分布情况

#osdmaptool  osdmap  --import-crush crushmap  --test-map-pgs --pool {pool_id}

  例如:

 osdmaptool osdmap --import-crush crushmap --test-map-pgs --pool 16
osdmaptool: osdmap file 'osdmap'
osdmaptool: imported 864 byte crush map from crushmap
pool 16 pg_num 32
#osd    count    first    primary    c wt    wt
osd.1    14    4    4    0.149994    1
osd.2    5    1    1    0.149994    1
osd.3    7    4    4    0.149994    1
osd.4    6    1    1    0.149994    1
osd.5    6    3    3    0.149994    1
osd.6    5    3    3    0.149994    1
osd.7    9    8    8    0.149994    1
osd.8    6    4    4    0.149994    1
osd.9    6    4    4    0.149994    1
 in 9
 avg 7 stddev 2.68742 (0.383917x) (expected 2.51416 0.359165x))
 min osd.2 5
 max osd.1 14
size 0    0
size 1    0
size 2    32
size 3    0
osdmaptool: writing epoch 2383 to osdmap

可以看出单个pool的pg分布在osd上不是均匀的,我们可以迭代所有的pool来比较;并且通过以下命令来修改:

#ceph osd crush reweight osd.id  {value}
 
 

转载于:https://www.cnblogs.com/chris-cp/p/5755771.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值