Cetph状态警告”daemons have recently crashed”

在Ceph的日常维护中,难免会遇到服务crash的情况,此时使用 ceph -s 检查状态,会看到虽然当前服务都正常,但是有一个状态告警显示 X daemons have recently crashed :

ceph -s 显示近期有daemons出现crash
  cluster:
    id:     0e6c8b6f-0d32-4cdb-a45d-85f8c7997c17
    health: HEALTH_WARN
            2 daemons have recently crashed

  services:
    mon: 3 daemons, quorum z-b-data-1,z-b-data-2,z-b-data-3 (age 73s)
    mgr: z-b-data-1(active, since 4m)
    osd: 3 osds: 3 up (since 74s), 3 in (since 4M)

  data:
    pools:   2 pools, 33 pgs
    objects: 62.75k objects, 244 GiB
    usage:   732 GiB used, 665 GiB / 1.4 TiB avail
    pgs:     33 active+clean

不要怕,是技术性调整

../../_images/dingxie.jpg

上述状态警告标识最近(默认是 2周 内)出现过Ceph服务crash,并且这个crash尚未被归档(archived),也就是尚未被管理员标记为”已知”(acknowledged)。

这标识了一个软件bug,或者硬件问题(例如故障的磁盘),也可能是其他问题。总之,需要检查一下。

  • 检查最新的crash记录:

检查最新ceph crash记录
ceph crash ls-new

输出可能类似:

检查最新ceph crash记录案例
ID                                                                ENTITY  NEW
2023-04-01T13:01:11.675093Z_7818c049-110a-49d3-a6e7-fec1c026ac1b  osd.2    *
2023-05-16T08:06:39.429237Z_f670f1f5-23f2-47a6-a4b7-f111b1dd512d  osd.2    *
2023-05-16T08:06:42.717203Z_19133ccd-9334-457e-b691-3463b02980e4  osd.1    *
  • 检查crash记录的详情:

检查指定ceph crash记录详情
ceph crash info <crash-id>
  • 检查以后(排查完)就可以将crash记录归档(标识为管理员已经检查过),这样后续就不会再出现该条crash记录对应的警告信息:

指定ceph crash记录归档(消除对应告警信息)
ceph crash archive <crash-id>

或者直接将所有crash告警信息归档:

所有ceph crash记录归档(消除对应告警信息)
ceph crash archive-all
  • 归档以后, ceph crah ls 仍然可以看到所有crash记录,不过 ceph crash ls-new 则不会显示

  • 默认 recent 是两周,这个参数可以通过 mgr/crash/warn_recent_interval 修改

检查ceph crash配置的recent间隔值
ceph config get mgr mgr/crash/warn_recent_interval

默认输出是:

1209600
  • 也可以完全关闭crash记录告警:

彻底关闭ceph crash记录近期告警
ceph config set mgr mgr/crash/warn_recent_interval 0

参考