在ESXi主机上关闭无响应的虚拟机

简介:

ESXi主机上关闭无响应的虚拟机

适用情况

该方法适用于以下情况:

  • ESXi主机上的虚拟机不能关闭。
  • 虚拟机无响应且不能停止。



目的

这篇文章描述在ESXi环境中如何正确的关闭一台无响应的虚拟机。

注意: 这篇文章只适用于ESXi主机,不适用于ESX主机。对于ESX主机,请参考 Powering off an unresponsive virtual machine on an ESX host (1004340).

注意: 如果你尝试查找造成虚拟机无响应的原因,首先应当收集性能变化规律,然后中止虚拟机运行,从而收集更多的故障信息。要获得更多信息,请参考 Troubleshooting a virtual machine that has stopped responding: VMM and Guest CPU usage comparison (1017926) 或者 Troubleshooting a virtual machine that has stopped responding (1007819).


解决方案

警告: 请严格按照文章中的步骤操作。每一步操作对虚拟机都有一定的影响,所以请不要跳过其中任何一步!

vSphere Client关闭虚拟机

用客户端尝试顺利关闭虚拟机:

1.     vSphere Client或者 VI Client连接 VMware vCenter ServerVirtualCenter Server

2.     右键单击要关闭的虚拟机,从弹出的快捷菜单中选择“电源->关闭客户机”。如果操作失败并提示“正在处理另一个任务”,请等待任务完成,或者参考 Powering off a virtual machine fails with the error: Cannot power Off: Another task is already in progress (1027040)  vCenter operation times out with the error: Operation failed since another task is in progress (1004790).

3.     如果虚拟机依然在运行,请尝试在主机上进行相同的操作。

4.     vSphere Client或者 VI Client 直接连接ESXi主机来运行虚拟机。

5.     右键单击要关闭的虚拟机,从弹出的快捷菜单中选择“电源->关闭客户机”。

如果虚拟机使用客户端不能正常关机,请选用以下任一种命令行模式。

安装 vSphere Command-Line Interface 工具

vSphere Command-Line Interface (vCLI) 会在本文的某些步骤中用到,所以在使用前请确保你已经正确的安装了它。

注意: 对于ESXi 4.x  ESX 5.0主机,远程命令行接口程序会通过vSphere Management Assistant (vMA) 访问。 如果你偏爱这个工具,请在 vSphere Command-Line Interface Installation and Reference Guide中参考 Installing vMA and Running Commands from vMA 

确认虚拟机的位置

请确认虚拟机是在哪个主机上运行。你可以通过vSphere Client中虚拟机的“摘要”选项卡来查看相关信息。随后将在虚拟机所在的主机上运行相关命令来关闭虚拟机。

使用ESXi 5.0 主机的esxcli 命令来关闭虚拟机

esxcli 命令能够在本地或远程来关闭运行在ESXi 5.0主机上的虚拟机。要获得更多信息,请参考 vSphere Command-Line Interface Referenceesxcli vm Commands 章节。

1.     打开ESXi ShellvSphere Management Assistant (vMA)vSphere Command-Line Interface (vCLI) 客户端,只要esxcli工具能够运行即可。

2.     使用如下命令获取正在运行的虚拟机清单,该清单由World IDUUIDDisplay Name .vmx 配置文件所在路径构成:

esxcli vm process list

3.     用如下命令关闭一台虚拟机:

esxcli vm process kill --type=[soft,hard,force] --world-id=WorldNumber

注意: 有三种关闭虚拟机的方法,Soft 程度最低,hard 为立即执行,如果依然不能关闭,则可以使用force 模式。

4.     执行步骤2来检查虚拟机是否已不再运行。

使用 ESXi 命令行工具 vim-cmd 来关闭虚拟机

1.      ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).

2.     使用如下命令获取正在运行的虚拟机清单,该清单由VMIDDisplay Name .vmx 配置文件所在路径构成:

vim-cmd vmsvc/getallvms

3.     获取虚拟机的当前状态:

vim-cmd vmsvc/power.getstate VMID

4.     使用第2步获取的VMID 来关闭虚拟机:

vim-cmd vmsvc/power.shutdown VMID

Note:
 如果虚拟机还是不能关闭,请尝试以下命令:

vim-cmd vmsvc/power.off VMID

ESXi主机上发送信号来关闭虚拟机

虚拟机能够在命令行模式下停止相关进程从而关闭。

警告:这个操作对ESXi 主机有潜在的危险。 如果你不能正确的辨别进程ID,而误杀了其它进程,这极有可能引起不可预知的结果。如果你不能有把握的执行以下操作,请给VMware 技术支持部门发送支持请求,并在问题描述中说明本知识库的文档编号(1014165)。要获取更多信息,请参考How to Submit a Support Request

 ESXi 3.5-5.0主机中, 你可以使用 kill 命令来中止一个虚拟机进程。

1.      ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).

2.     要知道ESXi 主机上是否有虚拟机进程在运行,可使用如下命令:

ps | grep vmx

输出如下所示:

7662 7662 vmx /bin/vmx
7667  7662 vmx /bin/vmx
7668  7662 mks:VirtualMachineName /bin/vmx
7669  7662 vcpu-0:VirtualMachineName /bin/vmx

每一个vmx进程都会返回一行。 请仔细辨别目标虚拟机的vmx父进程。第一列为进程ID(PID),第二列即为父进程ID parent's PID)。 请确保你只中止了父进程。 父进程ID (PID)在每一行的第二列, 在本例中都用粗体标识。请记住这个号码,它将在下面的步骤中用到。

警告: 请确保你已经确认了要修复的虚拟机所在的行。如果你是对除了有问题的虚拟机以外的虚拟机进行这些操作,那么极有可能引起这些机器宕机。

3.     如果 vmx 进程在列表中,使用如下命令即可终止该进程: 

kill ProcessID

4.     等待30秒然后重复步骤2来检查进程是否已终止。

5.     如果进程依然没有终止,可使用以下命令:

kill -9 ProcessID

6.     等待30秒然后重复检查进程是否已终止。

ESXi 4.1-ESXi 5.0主机中,你可以使用 esxtop中的 k 命令来终止一个正在运行中的虚拟机进程。

1.      ESXi 控制台,进入技术支持模式,用root用户登录。 更多信息请参考 Tech Support Mode for Emergency Support (1003677).

2.     使用以下命令来运行 esxtop 工具:

esxtop

3.      c 选择 CPU 资源利用界面。

4.      f 显示信息列表。

5.      c 添加 Leader World ID列。

6.     通过虚拟机名称和Leader World ID (LWID)确认我们要修复的虚拟机。

7.      k

8.      World to kill 提醒后面,输入第6步确认的Leader World ID,然后按Enter

9.     等待30秒然后验证进程是否已经结束。

附加信息

如果使用以上方法均不能关闭虚拟机,则说明问题可能是由于ESXi主机或者它的硬件问题所引起的。

如果怀疑是由于ESXi主机问题引起的虚拟机不能关闭, 请使用vMotion将所有未受影响的虚拟机迁移到其它主机,然后强制关闭主机并使用硬件诊断工具检测问题。 更多信息请参考 Using hardware NMI facilities to troubleshoot unresponsive hosts (1014767).










本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/1105045,如需转载请自行联系原作者
目录
相关文章
|
29天前
|
Linux 网络安全
Linux虚拟机与主机和Xshell的连接问题解决
Linux虚拟机与主机和Xshell的连接问题解决
63 1
|
2月前
|
虚拟化
虚拟机系统Win7与主机之间不能实现拖放的问题及解决方法
虚拟机系统Win7与主机之间不能实现拖放的问题及解决方法
|
3月前
|
虚拟化
vmware虚拟机使用主机代理访问谷歌
vmware虚拟机使用主机代理访问谷歌
|
5月前
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
|
6月前
|
Shell Linux 开发工具
Vmware 虚拟机挂起恢复后发现无法 Ping 通,无法连接到主机
在Linux主机上,以`root`用户停止NetworkManager服务并重启网络: ```shell systemctl stop NetworkManager systemctl restart network ``` 或修改网卡配置文件`ifcfg-ens33`,添加`NM_CONTROLLED="no"`,然后重启`network`服务: ```shell vim /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network ```
193 6
|
5月前
|
安全 Linux 网络安全
NAT模式下主机连接虚拟机
NAT模式下主机连接虚拟机,VMware虚拟机系统以CentOS7为例。
148 0
|
6月前
|
存储 SQL 数据库
虚拟化数据恢复—ESXI虚拟机误还原快照的数据恢复案例
虚拟化技术原理是将硬件虚拟化给不同的虚拟机使用,利用虚拟化技术可以在一台物理机上安装多台虚拟机。误操作或者物理机器出现故障都会导致虚拟机不可用,虚拟机中的数据丢失。 虚拟化数据恢复环境: 有一台虚拟机是由物理机迁移到ESXI上面的,迁移完成后为该虚拟机做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了5年左右的数据。 该ESXI上共有二十几台虚拟机,EXSI连接一台某品牌EVA存储,所有的虚拟机(包括故障虚拟机)都存放在该EVA存储上。
|
2天前
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
68 50
|
22天前
|
安全 虚拟化 数据中心
Xshell 连接 VMware虚拟机操作 截图和使用
Xshell 连接 VMware虚拟机操作 截图和使用
40 4

热门文章

最新文章