我们有一个 LAMP 服务器大约 6 个月了。CentOS 7.0
在前 3 个月它一直运行而没有重新启动,然后就挂了。
然后它运行了接下来的 2 个月(也是不间断运行且无需重启)然后它再次挂起。
然后它运行了 14 天然后挂起。
然后它运行了 14 天然后挂起。
每次挂起后我们都必须重新启动服务器。我们没有添加或更新任何系统软件。
在所有这些情况下,挂起症状都是相同的:
写入(和读取)磁盘完全停止。
Web 服务器和 MySQL 数据库停止工作。我们无法通过物理控制台或通过 ssh 远程登录。
然而,当发生此挂起时,我已经打开了远程 ssh shell 会话,并运行了 linux“top”和“mytop”命令,并且这些命令一直正常工作(刷新),直到服务器重新启动。
所以这证明服务器并没有完全冻结。一些软件仍然在运行。
服务器无法正常重启。
我在日志中什么也没找到。所有日志同时停止。
挂起时物理控制台 (KVM) 上的最后条目提到了 Adaptec RAID 控制器的错误。请参见以下内容:
00001
[1143965.194144) 0000000000000246 000000014423ecb4 1111880869b6b740 ffff880000c 00040
00040
[1143965.194786] Call Trace:
[1143965.195044] [<Ifffffffa007f46b>] aac_fib_send+0x3db/8x510 [aacraid]
[1143965.195307] [<ffffffffa00794d8>] aac_get_adapter_info+0xc8/8xb70 [aacraid] [1143965.195573] [<ffffffffa007e990>] _aac_reset_adapter+0x430/0x620 [aacraid]
[1143965.195573] [<ffffffffa007e990>] _aac_reset_adapter+0x430/0x620 [aacraid]
[1143965.195838] [<ffffffffa0071a79>] aac_reset_adapter+0xa9/0x290 [aacraid]
[1143965.196101] [<ffffffffa0076214>] aac_eh_reset+Oxla4/0xle0 [aacraid]
[1143965.196368] [<ffffffff813d6d83>] scsi_try_host_reset+0x43/0x100
[1143965.196628] [<ffffffff813d812,17>] scsi_eh_ready_devs+0x887/0xc20
[1143965.196889] [<ffffffff813da43c>] scsi_error_handler+0x52c/8x820
[1143965.197151] [<ffffffff813d9110>] ? scsi_eh_get_sense+0x2a0/0x2a0
[1143965.197415] [<1111111181085aff>] kthread+0xcf/8xe0
[1143965.197675] [<1111111181085a30>] ? kthread_create_on_node+0x140/0x140
[1143965.197939] [<111111118151316c>] ret_from_fork+Ox7c/OxbO
[1143965.198200] [<1111111181085a30>] ? kthread_create_on_node+0x140/0x140
[1143965.198461] Code: 48 c? 87 b8 00 00 00 00 30 08 a0 5d c3 Al 11 84 00 00 00 00 00 Of 11 44 00 00 55 48 8b 87 90 01 00 00 48 89 e5 8b 80 be 00 00 00 <a8> 04 75 14 f6 c4 01 75 14 25 80 00 00 00 83 f8 01 19 c0 83 e0
00 00 Of 11 44 00 00 55 48 8b 87 90 01 00 00 48 89 e5 8b 80 be 00 00 00 <a8> 04 75 14 f6 c4 01 75 14 25 80 00 00 00 83 f8 01 19 c0 83 e0
75 14 f6 c4 01 75 14 25 80 00 00 00 83 f8 01 19 c0 83 e0
[1143974.082729] aacraid: aac_fib_send: first asynchronous command timed out.
[1143974.082729] Usually a result of a PCI interrupt routing problem;
[1143974.082729] update mother board BIOS or consider utilizing one of
[1143974.082729] the SAFE mode kernel options (acpi, apic etc)
我们已经更换了 RAID 控制卡,但问题并没有解决,服务器再次挂起,并出现同样的症状。
我现在有一个远程 ssh shell 一直运行“dmesg -wH”,希望当再次发生挂起时能够捕获更多的 dmesg 日志。
该服务器配有 Adaptec RAID 卡,其中 RAID 1 中有两块 SATA SSD 960GB,RAID 1 中有两块 SATA 500 GB HDD。
所有驱动器的 SMART 属性均正常。
有什么建议吗?
编辑 #1 2015 年 9 月 13 日:
所有分区上都有足够的可用空间。
日志正在正确旋转。
编辑 #2 2015 年 9 月 13 日:
RAID 控制器:Adaptec ASR71605
BIOS:7.5-0(32069)
固件:7.5-0(32069)
驱动程序:1.2-0(30300)
启动闪存:7.5-0(32069)
答案1
解决方案是使用 Adaptec 自己的驱动程序(可从其网站下载),而不是 CentOS 附带的开源驱动程序。使用 Adaptec 驱动程序,服务器运行了大约 11 个月(然后服务器因未知原因挂起),与使用开源驱动程序的 14 天正常运行时间相比,这是一个巨大的进步。