我在运行于 Dell R630 服务器的 ESXi 6.0U2 集群上遇到了一个非常顽固的虚拟机(2008R2,VMware 工具略微过时,5.5U3a 附带的工具)。从外部看,虚拟机在一段时间后变得无响应 - 可能是一天,也可能是一周 - 并且它不再响应 ping、连接请求等(它运行一个工业应用程序和一些 MSSQL)。不过,当集群运行 5.5U3a 时,已经可以观察到这种行为。
因此,我尝试通过 Web 客户端或胖客户端重新启动虚拟机。什么也没发生。就像几个小时一样。下一步升级步骤:
esxcli vm process kill -w <worldID> -t soft
没有反应,没有变化。跳过 -t 并直接转到
esxcli vm process kill -w <worldID> -t force
也没有响应。虚拟机一直在运行,但没有任何响应,但整个系统就是不肯被杀死。也没有错误消息。重新启动带有虚拟机的主机是最后的手段。
我如何才能找出这种非常奇怪行为的根本原因?
答案1
在使用确定正确的进程后
ps | grep vmx
,您可以通过以下方式突然终止它kill -9 <pid>
一定要小心选择(并终止)正确的进程。有关更多信息,请查看这里
如果什么都不起作用,根据 VmWare 自己的文档,您必须重新启动 ESX 主机
答案2
我如何才能找出这种非常奇怪行为的根本原因?
科学的方法是你的朋友。
定义您要解决的问题。看起来您有 2 个(可能相互关联的)问题。虚拟机变得无响应,ESXi 无法将其杀死。
收集数据。查看日志、监控等以获取相关信息。
分析数据。
根据您的分析做出更改。
验证更改是否有效。如果没有,则返回 2 或 3 并收集更多数据/重新分析。
记录你的发现。