对已停止响应的虚拟机进行故障处理
Summary: 本文提供了隔离 vSphere 虚拟机无响应的可能原因的步骤。
Instructions
目标
本文提供了隔离 vSphere 虚拟机无响应的可能原因的步骤。
无响应的虚拟机不会响应任何连接尝试,并且可能无法响应任何重启虚拟机的尝试。虚拟机最终处于无响应状态的原因有很多。本文使您能够识别和解决这些常见原因,并在解决后将虚拟机恢复到运行状态。
可以在不对原因进行故障处理的情况下硬关闭虚拟机,但这会阻止收集和分析可帮助确定中断根本原因的信息。
事实
在VMware ESX/ESXi上运行的虚拟机不响应任何外部输入或表现出任何活动。特别是:
-
来宾操作系统不响应控制台上的键盘或鼠标活动
-
来宾操作系统不响应网络通信,包括 ping、RDP、SSH 等。
-
虚拟机控制台屏幕是静态的,不会更改或刷新
-
在虚拟机上执行的任务失败、超时或不启动
-
虚拟机不会产生网络或磁盘流量
解决 方案
虚拟机提供的服务可能会由于多种原因而变得无响应或无法访问,这些原因包括虚拟机中的应用程序或来宾操作系统问题、虚拟机监视器或虚拟设备问题、主机上的资源争用或底层存储或网络基础架构问题。
如果来宾操作系统产生任何活动,则表示活动成功运行。在这种情况下,无响应可能是由于连接问题或资源争用,或者特定于更高级别的组件,例如在来宾操作系统中运行的应用程序或服务。
验证范围:
拥有准确的症状并了解问题的范围非常重要。要确认问题的范围,请完成以下检查:
-
确认虚拟机实际上无响应。虚拟机可能不通过一个接口进行响应,但在其他接口上正常工作。
-
验证虚拟机是否已开机。如果虚拟机已意外关闭,请重新打开电源,然后对意外关闭的原因进行故障处理。
-
确定此问题是影响多个虚拟机还是仅影响一个虚拟机。如果多个虚拟机受到影响,请在尝试缩小潜在范围时考虑受影响的虚拟机之间的相似之处。具体而言,应关注受影响的虚拟机组所依赖的共享基础架构,以及是否所有依赖于该通用基础架构的虚拟机都会受到影响。
-
确定来宾操作系统是否对虚拟机控制台上的交互有响应。如果问题已隔离到来宾操作系统或虚拟机中的应用程序,并且来宾操作系统在控制台上响应,请在控制台上与来宾操作系统交互以解决问题。
-
确定来宾操作系统或其应用程序服务是否对通过网络的交互做出响应。
-
确定来宾操作系统是否已向控制台报告任何严重错误,并处于停止状态。
-
确定 ESX/ESXi 主机是否也无响应。如果主机无响应,则范围比最初假定的要大。
确定原因:
此时,您已确定一个或多个虚拟机在虚拟控制台和网络上均无响应。主机本身是响应式的。资源可访问性或争用、底层存储或网络基础架构可能存在问题。
要确定原因,请执行以下操作:
-
确定问题是否由在虚拟机上执行的操作或任务触发。例如,在通过网络将内存状态复制到磁盘时,快照和 vMotion 操作都会使虚拟机短暂中断。
-
一些常见的配置错误可能会导致虚拟机无响应,例如在等待资源时。查看虚拟机和主机配置。
-
虚拟机依赖于功能支持基础结构。如果虚拟机所依赖的备份存储或网络基础架构存在问题,则虚拟机提供给来宾操作系统的虚拟硬件可能会受到影响。解决底层存储或网络问题。
-
虚拟机依赖于可用的主机资源(CPU、内存),来宾操作系统会使用这些资源。虚拟机内部或外部的资源可用性或计划问题可能会导致虚拟机无响应。虚拟机也可能阻塞不可用的资源或以 100% 的 vCPU 利用率旋转。
行动计划:
此时,您已确定运行虚拟机的主机响应迅速,并且没有遇到任何共享存储或网络基础架构问题。来宾操作系统未出现故障并显示严重错误,但在虚拟机控制台上和网络上仍然无响应。
根据可疑的体系结构层,采取措施恢复或收集有关无响应虚拟机的信息:
-
如果问题被隔离到来宾操作系统,或者
%RUN相对较高,但虚拟机监视器运行正常,请将调查移至虚拟机的来宾操作系统或应用程序中。来宾操作系统在虚拟机内部可能会变得无响应,就像在物理硬件上一样:-
在问题发生时收集性能数据。
-
尝试手动诱使来宾操作系统内的内核崩溃,以收集有关其内部状态的其他信息。如果来宾操作系统生成有用的诊断信息以响应其中一个事件,请联系来宾操作系统供应商进行进一步调查。
-
如果步骤 2 未生成有用的信息,请暂停虚拟机以收集有关其内部状态的信息,并向 VMware 支持部门创建案例:
-
暂停虚拟机并收集
.vmss暂停状态文件。 -
从运行虚拟机的主机收集日志。
-
重新打开虚拟机电源,然后将其重置。
-
联系 VMware 支持,提供在步骤 1、3a 和 3b 中收集的信息。
-
-
-
如果问题已隔离到虚拟机监视器,或
%WAIT相对较高,或尝试暂停虚拟机失败,收集性能数据并强制使虚拟机崩溃以收集有关其内部状态的其他信息:-
在问题发生时收集性能数据。
-
使虚拟机崩溃以收集有关其内部状态的信息。
提醒:如果尝试使虚拟机崩溃失败,请跳到下一部分并尝试使主机崩溃。 -
联系 VMware 支持,提供在步骤 1 和 2 中收集的信息。
-
-
如果问题已隔离到虚拟机监视器,但尝试挂起或使虚拟机崩溃失败,则这反映 VMkernel 存在问题。从主机收集日志包,从主机中清除所有未受影响的虚拟机,然后使用 NMI 有意生成紫色诊断屏幕:
-
在问题发生时收集性能数据。
-
使用 vMotion 将所有未受影响的虚拟机移出主机。如果可能,请使用维护模式来防止在主机上启动其他虚拟机。
-
将主机配置为在收到不可屏蔽中断时死机,然后发出 NMI 以触发死机。
-
在主机生成紫色诊断屏幕并完成诊断信息转储后,拍摄控制台的屏幕截图或照片,然后重新启动主机。
-
从主机收集诊断信息。
-
联系 VMware 支持,提供在步骤 1、4 和 5 中收集的信息。
-
相关文章
VMware 知识库文章1007819:https://kb.vmware.com/kb/1007819 
Additional Information
| VCE体系 | 全部 |
| 组件 | vSphere |