我在 VMWare 的 Hypervisor 上运行着一台 Fedora 13 虚拟机。大约早上 6 点,它莫名其妙地重启了,搞砸了我正在运行的一些长时间运行的数据导入过程。我一直在检查,但很难找出它重启的原因。找出重启原因的最佳方法是什么?
该机器位于一个锁定的服务器机架中,因此不太可能有人手动重启硬件。我是唯一一个可以通过 SSH 访问该机器的人,因此不太可能有人远程重启虚拟机。而且 Hypervisor 上运行的其他虚拟机并未重启,因此不太可能是由电源故障或整个硬件重启引起的。
运行who -b
会告诉我重启的时间:
~$ who -b
system boot 2011-12-22 06:02
运行crontab -l
显示没有会触发重启的 cron 作业。
查看 Hypervisor 的 vSphere 客户端中的历史资源使用情况图表可以发现,在重启之前的几个小时内,该机器的 CPU 使用率最多为 5%,因此没有承受任何异常负载。
不幸的是,在重启时检查 /var/log/messages 仅显示:
Dec 22 03:50:01 myserver pcscd: winscard.c:309:SCardConnect() Reader E-Gate 0 0 Not Found
Dec 22 03:50:01 myserver pcscd: winscard.c:309:SCardConnect() Reader E-Gate 0 0 Not Found
Dec 22 03:50:01 myserver pcscd: winscard.c:309:SCardConnect() Reader E-Gate 0 0 Not Found
Dec 22 03:50:01 myserver pcscd: winscard.c:309:SCardConnect() Reader E-Gate 0 0 Not Found
Dec 22 06:02:38 myserver kernel: imklog 4.4.2, log source = /proc/kmsg started.
Dec 22 06:02:38 myserver rsyslogd: [origin software="rsyslogd" swVersion="4.4.2" x-pid="1138" x-info="http://www.rsyslog.com"] (re)start
Dec 22 06:02:38 myserver kernel: Initializing cgroup subsys cpuset
Dec 22 06:02:38 myserver kernel: Initializing cgroup subsys cpu
Dec 22 06:02:38 myserver kernel: Linux version 2.6.34.7-56.fc13.x86_64 ([email protected]) (gcc version 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC) ) #1 SMP Wed Sep 15 03:36:55 UTC 2010
Dec 22 06:02:38 myserver kernel: Command line: ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us rhgb quiet
Dec 22 06:02:38 myserver kernel: BIOS-provided physical RAM map:
所以基本上,大约 2 个小时都没有发生任何事情,然后机器突然重新启动。
这是否意味着内核崩溃了?我该如何确认这一点?我还应该查看其他日志吗?
答案1
如果存在内核问题,并且您已设置内核转储,那么某个地方应该有一个转储文件。当然,您需要在崩溃之前设置它!您现在可能已经知道 ESX/i 在结构上与 Linux 相似,因此日志文件将位于大致相同的位置。这里有一个很好的概述, http://www.vmwarewolf.com/which-esx-log-file/ 还有各种不同的解析/查看 ESX/i 日志文件的方法。 http://www.simonlong.co.uk/blog/2010/06/03/vmware-esxi-4-log-files/