ceph 数据均衡调整

情况一:ceph osd full - osd磁盘满的处理

根据Ceph官方文档中的描述,当一个OSD full比例达到95%时,集群将不接受任何Ceph Client端的读写数据的请求。所以导致虚拟机在重启时,无法启动的情况。

 

解决方法

方法一:

  根据官方的建议,首选的方案是添加osd磁盘,添加后将触发数据的重新均衡,full的osd使用率降到95%以下后err状态自然会清除。

 

方法二:

  调整每个osd的weigh值,使数据重新分布

  语法:ceph osd  crush reweight  osd名称  新的比重值

  ceph osd crush reweight osd.4 0.0099

[root@rook-ceph-tools-6f44db7c58-zw47s /]# ceph osd df
ID  CLASS  WEIGHT   REWEIGHT  SIZE    RAW USE  DATA     OMAP     META      AVAIL    %USE   VAR   PGS  STATUS
 0    sas  0.00969   1.00000  10 GiB  1.1 GiB   92 MiB  152 KiB  1024 MiB  8.9 GiB  10.91  1.01   99      up
 5    ssd  0.00980   1.00000  10 GiB  1.1 GiB   60 MiB   65 KiB  1024 MiB  8.9 GiB  10.59  0.99   94      up
 1    sas  0.00980   1.00000  10 GiB  1.1 GiB   93 MiB  133 KiB  1024 MiB  8.9 GiB  10.92  1.02   98      up
 2    ssd  0.00980   1.00000  10 GiB  1.1 GiB   59 MiB   89 KiB  1024 MiB  8.9 GiB  10.58  0.98   95      up
 3    sas  0.00989   1.00000  10 GiB  1.1 GiB   89 MiB  115 KiB  1024 MiB  8.9 GiB  10.88  1.01  100      up
 4    ssd  0.00980   1.00000  10 GiB  1.1 GiB   63 MiB  113 KiB  1024 MiB  8.9 GiB  10.62  0.99   93      up
                       TOTAL  60 GiB  6.4 GiB  458 MiB  668 KiB   6.0 GiB   54 GiB  10.75
[root@rook-ceph-tools-6f44db7c58-zw47s /]# ceph osd crush reweight osd.4 0.0099
reweighted item id 4 name 'osd.4' to 0.0099 in crush map
[root@rook-ceph-tools-6f44db7c58-zw47s /]#
[root@rook-ceph-tools-6f44db7c58-zw47s /]# ceph osd df
ID  CLASS  WEIGHT   REWEIGHT  SIZE    RAW USE  DATA     OMAP     META      AVAIL    %USE   VAR   PGS  STATUS
 0    sas  0.00969   1.00000  10 GiB  1.1 GiB   93 MiB  152 KiB  1024 MiB  8.9 GiB  10.91  1.01   99      up
 5    ssd  0.00980   1.00000  10 GiB  1.1 GiB   60 MiB   65 KiB  1024 MiB  8.9 GiB  10.59  0.99   94      up
 1    sas  0.00980   1.00000  10 GiB  1.1 GiB   93 MiB  133 KiB  1024 MiB  8.9 GiB  10.92  1.02   98      up
 2    ssd  0.00980   1.00000  10 GiB  1.1 GiB   60 MiB   89 KiB  1024 MiB  8.9 GiB  10.59  0.98   95      up
 3    sas  0.00989   1.00000  10 GiB  1.1 GiB   89 MiB  115 KiB  1024 MiB  8.9 GiB  10.88  1.01  100      up
 4    ssd  0.00989   1.00000  10 GiB  1.1 GiB   64 MiB  113 KiB  1024 MiB  8.9 GiB  10.62  0.99   93      up
                       TOTAL  60 GiB  6.4 GiB  459 MiB  668 KiB   6.0 GiB   54 GiB  10.75

 

情况二:ceph 数据不一致时,可以对ceph pg的数据进行平衡

1:检查数据分布是否均衡

查看osd_id,PGS, %USE,status

出现部分osd使用率高,部分很低的情况,就可以考虑进行数据平衡

[root@rook-ceph-tools-6f44db7c58-zw47s /]# ceph osd df
ID  CLASS  WEIGHT   REWEIGHT  SIZE    RAW USE  DATA     OMAP     META      AVAIL    %USE   VAR   PGS  STATUS
 0    sas  0.00969   1.00000  10 GiB  1.1 GiB   93 MiB  152 KiB  1024 MiB  8.9 GiB  10.91  1.01   99      up
 5    ssd  0.00980   1.00000  10 GiB  1.1 GiB   60 MiB   65 KiB  1024 MiB  8.9 GiB  10.59  0.99   94      up
 1    sas  0.00980   1.00000  10 GiB  1.1 GiB   93 MiB  133 KiB  1024 MiB  8.9 GiB  10.92  1.02   98      up
 2    ssd  0.00980   1.00000  10 GiB  1.1 GiB   60 MiB   89 KiB  1024 MiB  8.9 GiB  10.59  0.98   95      up
 3    sas  0.00989   1.00000  10 GiB  1.1 GiB   89 MiB  115 KiB  1024 MiB  8.9 GiB  10.88  1.01  100      up
 4    ssd  0.00989   1.00000  10 GiB  1.1 GiB   64 MiB  113 KiB  1024 MiB  8.9 GiB  10.62  0.99   93      up
                       TOTAL  60 GiB  6.4 GiB  459 MiB  668 KiB   6.0 GiB   54 GiB  10.75

2:reweight-by-pg 按归置组分布情况调整 OSD 的权重

[root@rook-ceph-tools-6f44db7c58-zw47s /]# ceph osd reweight-by-pg
no change
moved 0 / 579 (0%)
avg 96.5
stddev 2.62996 -> 2.62996 (expected baseline 8.96753)
min osd.4 with 93 -> 93 pgs (0.963731 -> 0.963731 * mean)
max osd.3 with 100 -> 100 pgs (1.03627 -> 1.03627 * mean)

oload 120
max_change 0.05
max_change_osds 4
average_utilization 9838.0461
overload_utilization 11805.6554

EX:

    $ceph osd reweight-by-pg
    moved 35 / 4032 (0.868056%)                                         #35个PG发送迁移
    avg 115.2                                                           #每个OSD承载的平均PG数目为115.2
    stddev 10.378 -> 9.47418 (expected baseline 10.5787)             #执行本次调整后, 标准方差将由10.378变为9.47418
    min osd.15 with 93 -> 92 pgs (0.807292 -> 0.798611 * mean)            #当前负载最轻的OSD为osd.15,只承载了93个PG, 执行本次调整后,将承载92个PG
    max osd.6 with 141 -> 132 pgs (1.22396 -> 1.14583 * mean)         #当前负载最重的OSD为osd.6, 承载了141个PG, 执行本次调整后,讲承载132个PG
    oload 120
    max_change 0.05
    max_change_osds 4
    average_utilization 21.1365
    overload_utilization 25.3638
    osd.6 weight 1.0000 -> 0.9500                                        #执行本次调整后,对osd.6,osd.23,osd.7,osd.27的reweight进行调整
    osd.23 weight 0.8500 -> 0.9000
    osd.7 weight 0.9000 -> 0.9500
    osd.27 weight 0.8500 -> 0.9000

情况三:ceph 数据不一致时,可以按利用率调整 OSD 的权重

[root@rook-ceph-tools-6f44db7c58-zw47s /]# ceph osd reweight-by-utilization
no change
moved 0 / 579 (0%)
avg 96.5
stddev 2.62996 -> 2.62996 (expected baseline 8.96753)
min osd.4 with 93 -> 93 pgs (0.963731 -> 0.963731 * mean)
max osd.3 with 100 -> 100 pgs (1.03627 -> 1.03627 * mean)

oload 120
max_change 0.05
max_change_osds 4
average_utilization 0.1075
overload_utilization 0.1290

# ceph osd reweight-by-utilization

moved 10 / 843 (1.18624%)                                                                #10个PG发送迁移

avg 140.5                                                                                             #每个OSD承载的平均PG数目为140.5

stddev 8.69387 -> 12.339 (expected baseline 10.8205)                       #执行本次调整后, 标准方差将由8.69387 变为12.339

min osd.3 with 127 -> 127 pgs (0.903915 -> 0.903915 * mean)  #负载最轻的OSD为osd.3,只承载了127个PG, 执行本次调整后,将承载127

max osd.0 with 154 -> 154 pgs (1.09609 -> 1.09609 * mean) #负载最重的OSD为osd.0, 承载了154个PG, 执行本次调整后,讲承载154个PG

oload 120

max_change 0.05

max_change_osds 4

average_utilization 0.0904

overload_utilization 0.1084

osd.4 weight 0.9500 -> 0.9000

检查数据的平衡状态:

# ceph -s

posted @ 2024-10-31 11:22  IT运维成长笔记  阅读(96)  评论(0编辑  收藏  举报