当前位置: 首页 > 工具软件 > Asthma Health > 使用案例 >

Ceph,health HEALTH_ERR错误

寇坚成
2023-12-01

本来头一天晚上还是正常的ceph存储集群,经历了一个不明真相的夜晚之后启动机器发现集群的健康检查状态已经是HEALTH_ERR了:

[root@node1 ~]# ceph -s
    cluster 056c396d-639c-4312-9ea0-794c92e57329
     health HEALTH_ERR
            38 pgs are stuck inactive for more than 300 seconds
            64 pgs degraded
            38 pgs stuck inactive
            26 pgs stuck unclean
            64 pgs undersized
     monmap e1: 3 mons at {node1=192.168.4.1:6789/0,node2=192.168.4.2:6789/0,node3=192.168.4.3:6789/0}
            election epoch 16, quorum 0,1,2 node1,node2,node3
     osdmap e53: 6 osds: 2 up, 2 in; 64 remapped pgs
            flags sortbitwise
      pgmap v122: 64 pgs, 1 pools, 0 bytes data, 0 objects
            69636 kB used, 20389 MB / 20457 MB avail
                  38 undersized+degraded+peered
                  26 active+undersized+degraded

于是查看了集群内的机器中被使用于集群中的硬盘的所有者和所属组:

[root@node1 ~]# for host in node{1..3}; do ssh $host ls -ld /dev/vdb?; done
brw-rw----. 1 root disk 252, 17 6月  21 08:47 /dev/vdb1
brw-rw----. 1 root disk 252, 18 6月  21 08:47 /dev/vdb2
brw-rw----. 1 root disk 252, 17 6月  21 08:47 /dev/vdb1
brw-rw----. 1 root disk 252, 18 6月  21 08:47 /dev/vdb2
brw-rw----. 1 root disk 252, 17 6月  21 09:23 /dev/vdb1
brw-rw----. 1 root disk 252, 18 6月  21 09:23 /dev/vdb2

果然,是硬盘的所有者和所属组出了问题,虽然设置了所有者和所属组,但是在机器重启之后会变回原来的所有者和所属组。

先用命令修改一下集群的所有硬盘:

[root@node1 ~]# for host in node{1..3}; do ssh $host chown ceph.ceph /dev/vdb?; done
[root@node1 ~]# for host in node{1..3}; do ssh $host ls -ld /dev/vdb?; done
brw-rw----. 1 ceph ceph 252, 17 6月  21 08:47 /dev/vdb1
brw-rw----. 1 ceph ceph 252, 18 6月  21 08:47 /dev/vdb2
brw-rw----. 1 ceph ceph 252, 17 6月  21 08:47 /dev/vdb1
brw-rw----. 1 ceph ceph 252, 18 6月  21 08:47 /dev/vdb2
brw-rw----. 1 ceph ceph 252, 17 6月  21 09:23 /dev/vdb1
brw-rw----. 1 ceph ceph 252, 18 6月  21 09:23 /dev/vdb2

添加配置文件,让硬盘的所有者和所属组在机器重启后不会恢复成默认:

[root@node1 ~]# vim /etc/udev/rules.d/90-mydisk.rules
ACTION=="add", KERNEL=="vdb[12]", OWNER="ceph", GROUP="ceph"
[root@node2~]# vim /etc/udev/rules.d/90-mydisk.rules
ACTION=="add", KERNEL=="vdb[12]", OWNER="ceph", GROUP="ceph"
[root@node3~]# vim /etc/udev/rules.d/90-mydisk.rules
ACTION=="add", KERNEL=="vdb[12]", OWNER="ceph", GROUP="ceph"

重启ceph:

[root@node1 ~]# for host in node{1..3}; do ssh  $host  systemctl restart ceph\*.service  ceph\*.target ; done

再查看健康检查:

[root@node1 ~]# ceph -s
    cluster 056c396d-639c-4312-9ea0-794c92e57329
     health HEALTH_OK
     monmap e1: 3 mons at {node1=192.168.4.1:6789/0,node2=192.168.4.2:6789/0,node3=192.168.4.3:6789/0}
            election epoch 22, quorum 0,1,2 node1,node2,node3
     osdmap e61: 6 osds: 6 up, 6 in
            flags sortbitwise
      pgmap v137: 64 pgs, 1 pools, 0 bytes data, 0 objects
            205 MB used, 61168 MB / 61373 MB avail
                  64 active+clean

问题解决。

 类似资料: