浅谈ceph之数据均衡

ceph之数据均衡

在loongarch架构的3c5000龙芯服务器上使用ceph集群时,观察到所有节点的osd数据不均衡问题,根据此现象查找解决问题。

查看集群状态

lsblk

[root@controller1 ~]# lsblk
NAME                                                                                                    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                                                                                                       8:0    0 238.5G  0 disk 
├─sda1                                                                                                    8:1    0     3G  0 part /boot
├─sda2                                                                                                    8:2    0    16G  0 part [SWAP]
├─sda3                                                                                                    8:3    0  39.1G  0 part /
└─sda4                                                                                                    8:4    0 180.4G  0 part 
  └─ceph--df8bc3d5--827e--4ff4--91a2--ab47f147bc49-osd--block--57378063--d5b3--4528--9a48--905fb4c3f931 253:1    0 180.4G  0 lvm  
sdb                                                                                                       8:16   0 238.5G  0 disk 
├─sdb1                                                                                                    8:17   0     3G  0 part 
├─sdb2                                                                                                    8:18   0 172.5G  0 part 
├─sdb3                                                                                                    8:19   0    47G  0 part 
└─sdb4                                                                                                    8:20   0    16G  0 part 
  └─ceph--f786b0f8--7ae1--437d--8281--5011f74e2cc1-osd--block--2dceb423--a93c--4022--9f4d--ec9be3e2eebc 253:0    0    16G  0 lvm  

ceph osd df

ceph osd df 命令用于显示 Ceph 存储集群中每个 OSD(对象存储守护进程)的磁盘使用情况和容量信息。这个命令可以帮助您监视集群中不同 OSD 的空间利用情况,以便及时进行容量规划和故障排查。

可以观察到osd.0的使用率高达94%而其他的却只有不到40%甚至有5%
第二天osd.0超过95%,根据官方文档,集群中出现一个超过95%的osd时,集群将不再接收写入数据。

[root@controller1 ~]# ceph osd df
ID CLASS WEIGHT  REWEIGHT SIZE    RAW USE DATA    OMAP    META     AVAIL   %USE  VAR  PGS STATUS 
 0   ssd 0.01559  1.00000 180 GiB 171 GiB 5.2 GiB   8 KiB 1024 MiB 9.8 GiB 94.55 1.99 221     up 
 1   ssd 0.01559  1.00000  16 GiB 6.2 GiB 5.2 GiB 160 KiB 1024 MiB 9.8 GiB 38.86 0.82 195     up 
 2   ssd 0.17569  1.00000 180 GiB  10 GiB 9.3 GiB  94 KiB 1024 MiB 170 GiB  5.71 0.12 385     up 
 3   ssd 0.01559  1.00000  16 GiB 2.1 GiB 1.1 GiB     0 B    1 GiB  14 GiB 13.14 0.28  31     up 
 4   ssd 0.01559  1.00000  16 GiB 5.4 GiB 4.4 GiB 117 KiB 1024 MiB  11 GiB 33.77 0.71 192     up 
 5   ssd 0.01559  1.00000  16 GiB 7.0 GiB 6.0 GiB 112 KiB 1024 MiB 9.0 GiB 43.64 0.92 224     up 
                    TOTAL 424 GiB 202 GiB  31 GiB 493 KiB  6.0 GiB 223 GiB 47.50                 
MIN/MAX VAR: 0.12/1.99  STDDEV: 30.05
  • ID:每个 OSD 的唯一标识符。
  • CLASS:OSD 的类别,通常表示存储介质的类型(例如,ssd 表示固态硬盘)。
  • WEIGHT:OSD 的权重,影响数据分布和负载均衡。
  • REWEIGHT:OSD 的重新权重,如果 OSD 处于维护模式,可以手动调整该值。
  • SIZE:OSD 的总容量。
  • USE:OSD 已经使用的容量。
  • AVAIL:OSD 可用的容量。
  • %USE:已使用容量的百分比。
  • VAR:方差,表示数据在 OSD 之间的分布均衡度。
  • PGS:关联到该 OSD 的 PG(Placement Group)数量。

针对这种情况查阅资料,调整osd.0的权重变小让数据像其他设备迁移。

ceph osd crush rewight 0 0.001 

ID CLASS WEIGHT  REWEIGHT SIZE    RAW USE DATA    OMAP   META     AVAIL   %USE  VAR  PGS STATUS 
 0   ssd 0.00099  1.00000 180 GiB 166 GiB 832 MiB  8 KiB 1024 MiB  14 GiB 92.14 1.95  35     up 
 1   ssd 0.01559  1.00000  16 GiB 8.6 GiB 7.6 GiB  8 KiB 1024 MiB 7.4 GiB 53.67 1.14 382     up 
 2   ssd 0.17569  1.00000 180 GiB 8.5 GiB 7.5 GiB  8 KiB 1024 MiB 171 GiB  4.75 0.10 382     up 
 3   ssd 0.01559  1.00000  16 GiB 1.9 GiB 872 MiB  8 KiB 1024 MiB  14 GiB 11.57 0.25  34     up 
 4   ssd 0.01559        0     0 B     0 B     0 B    0 B      0 B     0 B     0    0   0   down 
 5   ssd 0.01559        0     0 B     0 B     0 B    0 B      0 B     0 B     0    0   0   down 
                    TOTAL 392 GiB 185 GiB  17 GiB 32 KiB  4.0 GiB 207 GiB 47.21                 
MIN/MAX VAR: 0.10/1.95  STDDEV: 35.82

发现调整让其变小只能让小幅度的让使用率变小,并不能解决问题,使用ceph -s命令显示如下

[root@controller1 dev]# ceph -s
  cluster:
    id:     b6793217-68bd-4f06-8123-f03be36d97fe
    health: HEALTH_WARN
            1 backfillfull osd(s)
            4 pool(s) backfillfull
            Reduced data availability: 1 pg inactive
            Low space hindering backfill (add storage if this doesn't resolve itself): 4 pgs backfill_toofull
            Degraded data redundancy: 992/3279 objects degraded (30.253%), 165 pgs degraded, 414 pgs undersized
            3 pools have too many placement groups
            1/3 mons down, quorum controller1,controller2
 
  services:
    mon: 3 daemons, quorum controller1,controller2 (age 73m), out of quorum: controller3
    mgr: controller1(active, since 44h)
    osd: 6 osds: 4 up (since 72m), 4 in (since 62m); 37 remapped pgs
 
  data:
    pools:   4 pools, 416 pgs
    objects: 1.09k objects, 8.4 GiB
    usage:   185 GiB used, 207 GiB / 392 GiB avail
    pgs:     0.240% pgs not active
             992/3279 objects degraded (30.253%)
             204/3279 objects misplaced (6.221%)
             214 active+undersized
             164 active+undersized+degraded
             31  active+undersized+remapped
             3   active+undersized+remapped+backfill_toofull
             2   active+clean+remapped
             1   undersized+peered
             1   active+undersized+degraded+remapped+backfill_toofull
 
  io:
    client:   0 B/s rd, 0 B/s wr, 0 op/s rd, 0 op/s wr

很困惑为何osd0和osd4的使用率这么高,于是停掉这两个服务,让osd均衡一晚上发现其余四个osd均衡正常,并无高额的数据,于是准备重建osd0和osd4,先重建一个osd0,发现有如下变化

[root@controller3 ~]# ceph -s
  cluster:
    id:     b6793217-68bd-4f06-8123-f03be36d97fe
    health: HEALTH_WARN
            3 pools have too many placement groups
 
  services:
    mon: 3 daemons, quorum controller1,controller2,controller3 (age 5h)
    mgr: controller1(active, since 12m)
    osd: 6 osds: 5 up (since 5h), 5 in (since 5h); 76 remapped pgs
 
  data:
    pools:   4 pools, 400 pgs
    objects: 1.13k objects, 8.6 GiB
    usage:   31 GiB used, 377 GiB / 408 GiB avail
    pgs:     203/3390 objects misplaced (5.988%)
             324 active+clean
             76  active+clean+remapped
 
  io:
    client:   4.5 KiB/s rd, 5 op/s rd, 0 op/s wr

[root@controller3 ~]# ceph osd df
ID CLASS WEIGHT  REWEIGHT SIZE    RAW USE DATA    OMAP   META     AVAIL   %USE  VAR  PGS STATUS 
 0   ssd 0.17619  1.00000 180 GiB 9.1 GiB 8.1 GiB    0 B    1 GiB 171 GiB  5.06 0.67 375     up 
 1   ssd 0.01599  1.00000  16 GiB 2.6 GiB 1.6 GiB 16 KiB 1024 MiB  13 GiB 16.22 2.14  52     up 
 2   ssd 0.17168  1.00000 180 GiB 8.8 GiB 7.8 GiB 16 KiB 1024 MiB 171 GiB  4.87 0.64 373     up 
 3   ssd 0.01599  1.00000  16 GiB 2.1 GiB 1.1 GiB  8 KiB 1024 MiB  14 GiB 13.39 1.77  44     up 
 4   ssd 0.17168        0     0 B     0 B     0 B    0 B      0 B     0 B     0    0   0   down 
 5   ssd 0.01599  1.00000  16 GiB 8.3 GiB 7.3 GiB  8 KiB 1024 MiB 7.7 GiB 51.72 6.84 356     up 
                    TOTAL 408 GiB  31 GiB  26 GiB 49 KiB  5.0 GiB 377 GiB  7.57                 

查询资料 得知可能与osd分布的不均匀有关系,一般部署osd时要保证节点间的osd分布是一致的,所以再重新新建osd4之后集群恢复到正常状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白白白头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值