Watchdog超时未自动复位服务器

发布时间:  2014-09-20 浏览次数:  1206 下载次数:  0
问题描述
硬件配置: RH2285服务器   OS:SLES 11.1
RH2285 OS启动后,调用初始化狗的命令“ipmitool raw 0x06 0x24 0x44 0x01 0x00 0x10 0x70 0x17”,以后每隔两分钟调用“ipmitool raw 0x06 0x22”命令来喂狗。确保OS死机时,喂狗命令不执行,硬件狗超时触发服务器复位。但实际情况是OS死机时,Watchdog超时未自动复位服务器。
告警信息
处理过程
结论
客户在OS运行过程中人为关闭了Watchdog,导致Watchdog的超时动作修改成No action,即Watchdog超时不会触发机器自动复位。
解决方案
客户在OS运行过程中人为关闭Watchdog之后,须再次执行初始化狗的命令“ipmitool raw 0x06 0x24 0x44 0x01 0x00 0x10 0x70 0x17”,初始化狗之后必须用“ipmitool raw 0x06 0x22”激活狗和喂狗。
根因
排查步骤如下:
1. 检查BMC日志,发现有watchdog超时日志,如图1-1所示。
图1-1 watchdog超时日志


从“timer use:SMS/OS”可以看出watchdog timer 应用于OS下超时,从日志级别是正常和“Timer expired”可以看出超时动作是no action,即watchdog超时但不执行任何动作,BMC也不告警,所以服务器不会自动复位。
2. 手动复位服务器,服务器能正常启动。查看Watchdog的状态,Watchdog Timer正常开启并应用于OS下,超时动作是Hard Reset(硬复位)。如图1-2所示。
图1-2 Watchdog状态


3. 分析watchdog no action触发的原因。在Linux下执行命令行history | grep “ipmitool”检查历史命令行是否有人为操作Watchdog的命令。查到关闭Watchdog的命令,如图1-3所示。
图1-3 Watchdog的历史操作记录


4. Watchdog关闭后的状态如图1-4所示。Watchdog Timer应用于OS下但已经停止,超时动作是No action,初始倒计时恢复为300s。此时系统仍旧执行每隔2分钟执行喂狗命令“ipmitool raw 0x06 0x22”,但执行后的watchdog Timer超时动作依旧是No action,初始倒计时依旧是300s。如图1-5所示。这就导致了OS死机时,Watchdog超时动作是No action,即Watchdog超时硬件狗不会有任何动作,也就不会自动复位服务器。此时就产生了如图1-1所示的BMC日志。
图1-4 关闭Watchdog



图1-5 关闭Watchdog后再喂狗


根本原因分析:客户在OS运行过程中人为关闭了Watchdog。而后虽然继续定时喂狗,但此时的喂狗只能开启watchdog并定时重置当前倒计时(Present Countdown),而Watchdog的超时动作仍然是No action,即Watchdog超时不会触发机器自动复位。
建议与总结
建议客户修改设置狗喂狗的方案:定时判断Watchdog的超时动作是否Hard Reset,若不是Hard Reset就自动执行初始化狗的命令“ipmitool raw 0x06 0x24 0x44 0x01 0x00 0x10 0x70 0x17”,再继续每隔两分钟执行喂狗命令“ipmitool raw 0x06 0x22”。

END