RH2285 SUSE11.1持续运行208天后死机

发布时间:  2014-09-19 浏览次数:  1755 下载次数:  0
问题描述
硬件配置: RH2285服务器(2个SATA硬盘做RAID1)
软件配置:SUSE11.1(kernel:2.6.32.36)
RH2285在上电状态,但BMC远程控制无输出,业务网口也无法ping通。
告警信息
处理过程
两种方法:
一、 升级内核至2.6.32.54-0.3;
二、 在不能升级内核的环境中,系统持续运行208天前进行冷复位;
根因
排查步骤如下:
1. 检查BMC日志,发现有watchdog超时日志,如图1-1所示。
图1-1 watchdog超时日志

该日志表示watchdog timer 应用于OS下超时,超时动作是no action,即watchdog超时但不执行任何动作,BMC也不告警。所以服务器不会自动复位。
2. 进入BMC的/tmp目录收集最后一屏,图片不存在。
3. 用硬盘检测工具检测硬盘,2个硬盘都是100分,排除硬盘问题。
4. 复位系统,系统能正常启动。收集OS和BMC时间差,如图1-2所示。OS时间与BMC时间相差8.5个小时。即OS的死机时间应该在11:50(OS时间)左右。
图1-2 OS和BMC时间
    
5. 收集Linux的message日志,发现死机时间点有如下日志。
May 20 11:15:27 linux kernel: [18446744020.655876] update_group_power: cpu_power = 2747391703
May 20 11:15:27 linux kernel: [18446744020.657287] update_group_power: cpu_power = 2751090506
……
May 20 11:17:21 linux kernel: [18446744023.433677] WARNING: at /usr/src/packages/BUILD/kernel-default-2.6.32.36/linux-2.6.32/kernel/sched.c:3847 update_cpu_power+0x151/0x160()
……
May 20 11:17:21 linux kernel: [18446744023.433758] Call Trace:
May 20 11:17:21 linux kernel: [18446744023.433774]  [<ffffffff810061dc>] dump_trace+0x6c/0x2d0
May 20 11:17:21 linux kernel: [18446744023.433780]  [<ffffffff81397d88>] dump_stack+0x69/0x71
May 20 11:17:21 linux kernel: [18446744023.433786]  [<ffffffff8104d804>] warn_slowpath_common+0x74/0xd0
May 20 11:17:21 linux kernel: [18446744023.433792]  [<ffffffff8103d771>] update_cpu_power+0x151/0x160
May 20 11:17:21 linux kernel: [18446744023.433797]  [<ffffffff8103e3b3>] find_busiest_group+0xa83/0xce0
May 20 11:17:21 linux kernel: [18446744023.433801]  [<ffffffff810460dd>] load_balance_newidle+0xcd/0x380
May 20 11:17:21 linux kernel: [18446744023.433806]  [<ffffffff81398b7b>] thread_return+0x2a7/0x34c
May 20 11:17:21 linux kernel: [18446744023.433812]  [<ffffffff81074955>] futex_wait_queue_me+0xb5/0x100
May 20 11:17:21 linux kernel: [18446744023.433817]  [<ffffffff81074add>] futex_wait+0x13d/0x2c0
May 20 11:17:21 linux kernel: [18446744023.433821]  [<ffffffff810774b5>] do_futex+0xc5/0x1b0
May 20 11:17:21 linux kernel: [18446744023.433825]  [<ffffffff810777c2>] compat_sys_futex+0x82/0x160
May 20 11:17:21 linux kernel: [18446744023.433831]  [<ffffffff81033c19>] sysenter_dispatch+0x7/0x27
May 20 11:17:21 linux kernel: [18446744023.433839]  [<00000000ffffe430>] 0xffffe430
May 20 11:17:21 linux kernel: [18446744023.433841] ---[ end trace 695a76d84b00f5e4 ]---
……
May 20 11:47:31 linux kernel: [ 1793.655316] update_group_power: cpu_power = 3821885122
May 20 11:47:31 linux kernel: [ 1793.656681] update_group_power: cpu_power = 3823014029
May 21 07:48:39 linux syslog-ng[3951]: syslog-ng starting up; version='2.0.9'
May 21 07:48:40 linux sshd[4199]: Server listening on 0.0.0.0 port 22.

从上述日志可以看出,Message在2012/05/20 11:47:31至2012/05/21 7:48:39时间段没有任何日志,即2012/05/20 11:47:31系统死机,2012/05/21 7:48:39系统复位,符合排查步骤4的判断。Novell官网的知识库找到相同的message信息,如图1-3所示。
图1-3 Novell官网对该问题的描述

6. 用last命令查看系统上次启动时2011-10-24,系统死机是在2012-05-20,期间相差209天,和官网的“System freezes after more than 208 days uptime”描述完全匹配。
7. 官网提到的问题发生的以下四个条件也完全满足。
条件一:CPU是Intel的;
条件二:/proc/cpuinfo包含constant_tsc和nonstop_tsc 这2个标记;
条件三:dmesg或/var/log/boot.msg不包含字符串 Marking TSC unstable;
条件四:非运行在xen上。
8. 官网提供的解决方案:一是在不能升级内核的环境中,建议在系统持续运行208天前进行冷复位;二是升级内核至2.6.32.54-0.3,如图1-4所示。
图1-4 官网提供的解决方案

----结束
根本原因分析:在内核版本为2.6.32.54之前的版本的SUSE系统都存在该bug,可能导致系统持续运行208天后死机。
建议与总结

END