鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Ceph OSD偶尔收到SIGHUP信号的解决方法

问题现象描述

环境配置:

硬件配置

鲲鹏服务器(25*2.5英寸硬盘EXP机箱,2*鲲鹏920处理器,32 Core@2.6GHz)

通用硬盘-2400GB-SAS 12Gb/s-10K rpm-256MB-2.5英寸(2.5英寸托架)*20

固态硬盘-1920GB-SATA 6Gb/s-读写混合型-SM883系列-2.5英寸(2.5英寸托架)*4

操作系统

CentOS 7.6 (Kernel 4.14)

问题描述:Ceph OSD偶尔收到SIGHUP信号,Ceph OSD日志中显示“Hangup from PID: 142000 task name: killall -q -1 ceph-mon ceph-mgr ceph-mds ceph-osd ceph-fuse radosgw” 。

关键过程、根本原因分析

Ceph日志是保留7天;每天做一次压缩、转储;SIGHUP信号的处理是直接中断服务的。

结论、解决方案及效果

“/etc/logrotate.d/ceph”中配置的用于切换日志文件的,没有其他影响。

从logrotate配置中,可以看出:Ceph日志是保留7天;每天做一次压缩、转储。

其中命令:

postrotate
    killall -q -1 ceph-mon ceph-mds ceph-osd ceph-fuse radosgw || true

乍一看这条命令,为什么是向ceph的那些进程发送信号呢,岂不是关掉那些进程吗?

killall的命令中-1就是具体的信号,通过man 7 SIGNAL可以看到信号1就是SIGHUB信号,默认SIGHUP信号的处理是直接中断服务的。