本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《python运维脚本》: python运维脚本实践
《shell》:shell学习
《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战
《k8》暂未更新
《docker学习》暂未更新
《ceph学习》ceph日常问题解决分享
《日志收集》ELK+各种中间件
《运维日常》运维日常
《linux》运维面试100问
【ceph】ceph如何排查哪个osd曾经down过,超级实用
背景:
在巡检ceph集群的时候,发现osd的时间发生了变化
osd: 186 osds: 186 up (since 30m), 185 in (since 15h)
需要查看是哪个osd发生过被集群mark out 过
操作:
一、查看osd的日志:
for i in `cat osd-num`;do cat /var/log/ceph/ceph-osd.$i.log | egrep "Monitor daemon marked" ; done
二、直接查看mon的日志:
cat ceph-mon.xxx.log | grep "we have enough reporters to mark"
这里附加一下:集群是如何将一个osd进行mark out的:
判断原理:
osd之间都会进行心跳检查,都会向mon打小报告如果检查到某个osd不行,
这个小报告的数量达到某个阈值之后集群就会进行mark out操作
相关日志:
相关日志:
2024-01-24 10:11:26.601 7f5aee043700 0 log_channel(cluster) log [DBG] : osd.114 reported failed by osd.64
2024-01-24 10:12:30.897 7f5aee043700 1 mon.xxx@0(leader).osd e8511 we have enough reporters to mark osd.78 down
与下面这两个参数有关:
参数:
mon_osd_down_out_interval
mon_osd_min_down_reporters
查看命令:
# ceph daemon osd.0 config show | grep mon_osd_down_out_interval
"mon_osd_down_out_interval": "600",
# ceph daemon osd.0 config show | grep mon_osd_min_down_reporters
"mon_osd_min_down_reporters": "2",
参考: