我有一台专用服务器(Core 2 Duo E4600、2GB DDR2、LSI Raid 1,配备 250GB SATA 存储)。运行 VMware ESXi 3i(3.5.0)和 3 台虚拟机(1x Ubuntu 9.04、1x Ubuntu 9.10、1x Windows 2003 Web Edition)
今天下午它突然停止响应。VMware Infrastructure Client 无法连接,远程桌面无法连接,SSH 无法连接。尝试了不同的互联网连接等。几分钟后,我决定进行远程电源循环,一切恢复正常。
现在我想知道:分析或调试此类服务器崩溃的正确方法是什么?
ESXi 事件日志从一张白纸开始,所以什么都没有。虚拟机(Linux 系统日志、Windows 事件日志)没有报告任何特殊情况,而且机器的整体负载确实很一般。
需要查看哪些地方?我可以在某处启用更多日志记录,以便调查未来可能发生的崩溃吗?
答案1
崩溃后重新启动时,ESX 通常会在 /root 主目录中创建一个 vmkernel-zdump 文件。这是一个压缩文件,其中包含核心映像和 /var/log/vmkernel 日志文件的一块。首先要做的是从此转储文件中获取日志文件
[root] vmkdump -l vmkernel-zdump-101409.14.18.1
created file vmkernel-log.1
并查看最后几行,看看是否可以从最后的日志条目或堆栈跟踪中获得任何提示。
答案2
最明显的说法是“使用您的 VMWare 支持合同”,但当然 ESXi 通常完全免费使用而无需购买支持,所以我假设您没有。
因此,接下来要做的是意识到几乎肯定创建了系统转储,您需要检查是否存在系统转储并学习如何读取它。现在我可以详细说明如何做到这一点,但有人已经创建了一个不错的指导如何去做。
祝你好运。
答案3
您是否能够通过 IP-KVM、远程管理卡等连接到控制台?
检查已分配给控制台应用程序的 RAM 数量。默认值为一个相当低的数字。VMware 支持建议我将最大值设置为 800 MB。