我们有三台服务器运行在同一个 ESX 主机上,所有虚拟磁盘都来自远程 SAN 存储控制器。几天前,这些服务器挂起并重新启动,今天 DB 服务器又发生了这种情况。奇怪的是,问题发生时没有任何 panic 日志、崩溃日志和错误日志。
服务器 1. Web 服务器 FreeBSD Meduna 8.1-RELEASE-p2 FreeBSD 8.1-RELEASE-p2 #2:2011 年 2 月 14 日星期一 12:57:36 MYT hailang@Meduna:/usr/obj/usr/src/sys/Meduna amd64
Meduna# cat /var/log/messages | grep panic
Meduna# bzcat /var/log/messages.?.bz2 | grep panic
Meduna# cat /var/log/messages | grep 错误
Meduna# bzcat /var/log/messages.?.bz2 | grep 错误
5月28日 16:05:04 Meduna 内核:/var:挂载挂起错误:阻止 4 个文件 1
Server2. 数据库服务器 FreeBSD Moncalvo 8.1-RELEASE-p2 FreeBSD 8.1-RELEASE-p2 #1: 2011 年 1 月 10 日星期一 13:02:48 MYT hailang@Moncalve:/usr/obj/usr/src/sys/Moncalve amd64
蒙卡尔沃# cat /var/log/messages | grep panic
蒙卡尔沃# cat /var/log/messages | grep panic
Moncalvo# bzcat /var/log/messages.?.bz2 | grep panic
Moncalvo# cat /var/log/messages | grep 错误
Moncalvo# bzcat /var/log/messages.?.bz2 | grep 错误
5月28日 16:17:17 Moncalvo 内核:/var:挂载挂起错误:阻止 -32 文件 0
服务器 3。未使用 FreeBSD Mecure 8.1-RELEASE-p2 FreeBSD 8.1-RELEASE-p2 #0:2011 年 2 月 11 日星期五 14:45:55 MYT hailang@ServerX:/usr/obj/usr/src/sys/Mecure amd64
Mecure# cat /var/log/messages | grep panic
Mecure# bzcat /var/log/messages.?.bz2 | grep panic
Mecure# bzcat /var/log/messages.?.bz2 | grep 错误
Mecure# cat /var/log/messages | grep 错误
5月28日 15:42:41 Mecure 内核:g_vfs_done():da0s1d[WRITE(offset=3275046912, length=16384)]error = 5
5月28日 15:42:41 Mecure 内核:g_vfs_done():da0s1d[READ(offset=4062199808, length=16384)]error = 5
5月28日 15:42:41 Mecure 内核:g_vfs_done():da0s1d[WRITE(offset=3281371136, length=10240)]error = 5
问题发生时 /var/log/messages 的样子如下
5月28日 13:06:26 Meduna 内核:icmp 从 10.16.10.250 重定向:113.23.142.94 => 10.16.10.18
5月28日 13:07:01 Meduna 内核:icmp 重定向来自 10.16.10.250:202.186.13.232 => 10.16.10.18
5月28日 13:15:00 Meduna 内核:icmp 从 10.16.10.250 重定向:113.23.142.94 => 10.16.10.18
5月28日 13:15:35 Meduna 内核:icmp 重定向来自 10.16.10.250:202.186.13.232 => 10.16.10.18
5月28日 13:41:36 Meduna syslogd:内核启动文件为 /boot/kernel/kernel
5 月 28 日 13:41:36 Meduna 内核:版权所有 (c) 1992-2010 FreeBSD 项目。
5月28日 13:41:36 Meduna 内核:版权所有 (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
[!]它只是挂了大约半个小时然后重新启动,没有任何错误。
5月28日 13:13:14 Moncalvo 内核:icmp 从 10.16.10.250 重定向:60.49.152.98 => 10.16.10.18
5月28日 13:14:25 Moncalvo 内核:icmp 从 10.16.10.250 重定向:210.48.150.200 => 10.16.10.18
5月28日 13:16:58 Moncalvo 内核:icmp 从 10.16.10.250 重定向:183.78.169.57 => 10.16.10.18
5月28日 15:59:06 Moncalvo syslogd:内核启动文件为 /boot/kernel/kernel
5 月 28 日 15:59:06 Moncalvo 内核:版权所有 (c) 1992-2010 FreeBSD 项目。
5 月 28 日 15:59:06 Moncalvo 内核:版权所有 (c) 1979、1980、1983、1986、1988、1989、1991、1992、1993、1994
[!]并且该服务器挂了2个多小时才重新启动
我怀疑这可能是存储问题,但没有任何证据。您能否给我一些建议来解决/挖掘这个问题。任何帮助都非常感谢!
此致,
海浪
答案1
问题很可能是由 SAN 故障引起的。当 FreeBSD 丢失磁盘时,几乎没有办法留下恐慌日志条目。但在 VM 环境中(以及极少数主板中),重启后可能会dmesg
留下 msgbuf()。您可以尝试检查它。
为了进行调试,您可以尝试使用DDB
而不是在崩溃后重新启动。
PS. 如果你身边有系统程序员,你可以请他写一些类似 Linux 的netconsole
对于 FreeBSD