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信号的处理是直接中断服务的。