无法关闭 ESXi 主机上的虚拟机 (1014165)

https://kb.vmware.com/s/article/1014165?lang=zh_CN

  


Last Updated: 4/17/2019Categories: How to
 Symptoms

免责声明: 本文是 Unable to power off a virtual machine on an ESXi host (1014165) 的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。


  • 无法关闭 ESXi 主机上的虚拟机电源
  • 虚拟机无响应,且无法停止或终止
 
 Purpose

本文提供了在 ESXi 环境中停止虚拟机的信息。

注意: 本文仅适用于 ESXi,不适用于 ESX。 对于 ESX 主机,请参见 Powering off an unresponsive virtual machine on an ESX host (1004340)

注意: 如果尝试对虚拟机无响应的原因进行故障排除,通常情况下,最好先收集性能衡量指标,然后使虚拟机挂起或崩溃,以便收集更多故障排除信息。

有关详细信息,请参见:

 
 Resolution
警告: 请按顺序执行本文各节及各步骤中的操作。 请勿跳过其中的某节或某步骤,因为每个步骤可能都会对虚拟机产生影响。
 

使用 vSphere Client/vSphere Web Client 关闭虚拟机

请尝试使用客户端正常关闭虚拟机:

  1. 将 vSphere Client 或 vSphere Web Client 连接到 VMware vCenter Server 或 VirtualCenter Server。
  2. 右键单击虚拟机,然后单击关闭电源。 如果电源操作失败并出现错误“其他任务已在进行中 (Another task is already in progress)”,请等待该任务完成,或者参见 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 或 VMware Host Client 直接连接到运行该虚拟机的 ESXi 主机。
  5. 右键单击虚拟机,然后选择关闭电源。

注意:从 vSphere 6.5,您可以启用虚拟机加密来保护虚拟机以及其文件。

在虚拟机上如果加密已启用,您必须有一组加密操作权限,否则你将无法关闭虚拟机的电源。

有关权限的详细信息,请参见 ESXi and vCenter Server 6.5 Documentation 中的"加密任务的前提条件和所需的特权"部分。

如果使用此客户端无法正常关闭该虚拟机的电源,请使用以下命令行选项之一。
 

安装 vSphere Command-Line Interface 工具

本文中某些过程使用 vSphere Command-Line Interface (vCLI)。 请确保已安装 vCLI,然后再继续操作。
注意: 对于 ESXi 4.x、ESXi 5.x 和 ESXi 6.0,可以从 vSphere Management Assistant (vMA) 访问远程命令行界面。 如果您首选使用此工具,请参见 vSphere Command-Line Interface Installation and Reference Guide 中的“安装 vMA 并从 vMA 运行命令”。
 

确定虚拟机的位置

确定虚拟机在哪个主机上运行。 在 VI Client 中虚拟机的摘要选项卡上提供了此信息。 后续命令将在当前运行该虚拟机的 ESXi 主机上执行或者会远程引用该主机。

使用 ESXi esxcli 命令关闭虚拟机电源

可以在本地或远程使用 esxcli 命令关闭 ESXi 5.x 或更高版本上运行的虚拟机电源。 有关详细信息,请参见 vSphere Command-Line Interface Reference 中的“esxcli vm 命令”部分。

  1. 在提供 esxcli 工具的位置打开一个控制台会话,该位置可以是 ESXi Shell、vSphere Management Assistant (vMA) 或 vSphere Command-Line Interface (vCLI) 的安装位置。
  2. 运行以下命令获取正在运行的虚拟机的列表(虚拟机由 World ID、UUID、显示名称和 .vmx 配置文件的路径标识):

    esxcli vm process list

  3. 运行以下命令关闭列表中虚拟机的电源:

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

    注意:
    有三种关机方法可供使用。 软关机是正常关机,硬关机是立即关机,强制关机则应在不得已的情况下使用。

    关机命令的替代语法为: esxcli vm process kill -t [ soft,hard,force] -w WorldNumber

  4. 重复步骤 2,验证该虚拟机已不再运行。

对于 ESXi 4.1:

  1. 运行以下命令获取正在运行的虚拟机的列表(虚拟机由 World ID、UUID、显示名称和 .vmx 配置文件的路径标识):

    esxcli vms vm list

  2. 运行以下命令关闭此列表中某个虚拟机的电源:

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

使用 ESXi 命令行实用程序 vim-cmd 关闭虚拟机电源

  1. 在 ESXi 控制台上,进入技术支持模式并以 root 用户身份登录。 有关详细信息,请参见 Tech Support Mode for Emergency Support (1003677)
  2. 运行以下命令获取所有已注册虚拟机的列表(虚拟机由 VMID、显示名称和 .vmx 配置文件的路径标识):

    vim-cmd vmsvc/getallvms

  3. 运行以下命令获取虚拟机的当前状态:

    vim-cmd vmsvc/power.getstate VMID

  4. 使用步骤 2 中获取的 VMID 关闭虚拟机电源,运行以下命令:

    vim-cmd vmsvc/power.shutdown VMID

    注意: 如果虚拟机无法关闭,请运行以下命令:

    vim-cmd vmsvc/power.off VMID

通过在 ESXi 上发送信号来关闭虚拟机

可以从命令行通过向进程发送信号来停止虚拟机。
警告: 该过程可能对 ESXi 主机有潜在危害。 如果您未能识别出正确的进程 ID (PID),并因此而终止了错误的进程,则可能会产生意料不到的结果。 如果您担心下面的过程,请向 VMware 技术支持提交一个支持请求,并在问题描述中注明本知识库文章的 ID (1014165)。 有关详细信息,请参见 How to Submit a Support Request
在 ESXi 3.5 和更高版本中,可以使用 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 进程。 第一列包含的是 PID,第二列则包含该父进程的 PID。 请确保您仅终止父进程。 每个进程的父进程 ID (PID) 在第二列中列出,在本示例中以粗体标识。 记下该数字以便在后面的步骤中使用。

    警告: 请确保您识别的是专门对应于您要修复的虚拟机的行。 如果对该虚拟机以外的虚拟机继续执行此过程,则可能会导致其他虚拟机停机。

  3. 如果列出了 vmx 进程,运行以下命令终止该进程:

    kill ProcessID

  4. 等待 30 秒后重复执行步骤 2 再次检查该进程是否存在。
  5. 如果该进程未终止,运行以下命令:

    kill -9 ProcessID

  6. 等待 30 秒后再次检查该进程。

在 ESXi 4.x 和更高版本中,可以使用 esxtop 中的 k 命令向正在运行的虚拟机进程发送信号并终止该进程。

  1. 在 ESXi 控制台上,进入技术支持模式并以 root 用户身份登录。 有关详细信息,请参见 Tech Support Mode for Emergency Support (1003677)
  2. 运行以下命令可运行 esxtop 实用程序:

    esxtop

  3. 按 c 切换到 CPU 资源利用率屏幕。
  4. 按 Shift+v 将视图限定为虚拟机。 这样会更容易在步骤 7 中找到 Leader World ID。
  5. 按 f 显示字段列表。
  6. 按 c 添加 Leader World ID 列。
  7. 按目标虚拟机的名称和 Leader World ID (LWID) 标识目标虚拟机。
  8. 按 k。
  9. 在 World to kill 提示符处,键入步骤 6 中获取的 Leader World ID,然后按 Enter。
  10. 等待 30 秒后验证该进程是否已不再列出。
注意: 如果上述过程未解决问题,并且 ESX\ESXi 主机有响应,则可能需要重新引导,才能将虚拟机置于关机状态。
 
 Related Information

如果使用上述方法无法关闭虚拟机电源,则通常表明底层基础架构(如 ESXi 主机或其支持硬件)存在问题。

如果怀疑是 ESXi 主机问题导致无法关闭虚拟机,请通过 vMotion 将所有未受影响的虚拟机迁移出该主机,然后强制停止该主机并显示紫色诊断屏幕。 有关详细信息,请参见 Using hardware NMI facilities to troubleshoot unresponsive hosts (1014767)

Unable to power off the virtual machine in an ESXi host

 
 Request a Product Feature
To request a new product feature, please contact your VMware representative.

[转帖]VMWare官网:无法关闭 ESXi 主机上的虚拟机 (1014165)的更多相关文章

  1. 虚拟机VMware官网最新版附密钥,kali,ubuntu,centos,deepin迅雷下载地址。

    以下全部都是官网的迅雷复制链接 版本都是当前时间可下载的最新版本 VMware官网迅雷下载链接: https://download3.vmware.com/software/wkst/file/VMw ...

  2. ESX/ESXi 主机上的每个插槽中安装了多少内存

    要确定在 ESX/ESXi 主机上的每个插槽中安装了多少内存,请执行以下操作: 1. 启动ssh服务 2. 登陆esxi主机查看 使用 SSH 客户端登录主机,以 root 用户身份运行以下命令之一: ...

  3. 在 ESXi 主机上关闭无响应的虚拟机电源

    使用 ESXi 命令行 使用 SSH 以 root 身份登录到 ESXi. 通过运行以下命令获取所有已注册虚拟机的列表,由其 VMID 和显示名称标识:       vim-cmd vmsvc/get ...

  4. 编写 python 小程序,将LOL官网的皮肤保存下来,上传百度云,记录那些强撸灰飞烟灭的日子

    to 撸的血泪史:大学四年几乎都在宿舍打撸,So,把官网的皮肤都保存下来,存到百度云,就当一种纪念 编辑器:pycharm 用到的包:urllib.request, requests, json, r ...

  5. 【Linux-CentOS】在无互联网-内网环境的Windows7主机上安装CentOS双系统,从安装到放弃

    2018.12.3 日更新:本文仅作为无互联网环境下安装的参考.更推荐在互联网环境下安装软件和使用系统,毕竟会自动安装依赖包,比较方便. 因个人办公电脑装的盗版Win7总是蓝屏,影响工作,加之看到 W ...

  6. VMware要不要装在固态SSD上,虚拟机系统文件要不要放固态SSD上,虚拟机伤不伤固态SSD

    先说结论:VMware建议装在固态上运行快,系统文件最好放在机械硬盘上(有钱除外),虚拟机会伤固态. 今天在学淘淘商城中的搜索项目,克隆了一个虚拟机,这个虚拟机开机贼慢,令人无法忍受,我觉得我再也受不 ...

  7. 通过naa在esxi主机上找到物理磁盘的位置

    因为有一块磁盘告警,需要找到这个块磁盘.通过网络搜索就找到了这个shell脚本. 感谢 Jorluis Perales, VxRail TSE 2 shell脚本: # Script to obtai ...

  8. Esxi主机虚拟机迁移注意事项

    1. Esxi主机上的虚拟机迁移只能是低----->高,或版本一样的才能进行迁移 [如Esxi5.1---->Esxi5.5]ok, 而Esxi5.5----->Esxi5.1 no ...

  9. VMware/Microsoft官网查询参加的培训及认证信息

    如果你参加了VMWare的培训,会要求你拿一个已经注册的邮箱加上一个密码在VMware的系统里面登记,这样你就能在VMWARE官网查到注册,并据此你才能申请VMWare的考试认证. 例如下图,路径为 ...

随机推荐

  1. Python 文件I/OⅢ

    read()方法 read()方法从一个打开的文件中读取一个字符串.需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字. 语法: 在这里,被传递的参数是要从已打开文件中读取的字节计 ...

  2. [大数据] hadoop伪分布式安装

    注意:节点主机的hostname不要带"_"等字符,否则会报错. 一.安装jdk rpm -i jdk-7u80-linux-x64.rpm 配置java环境变量: vi + /e ...

  3. 好多坑的升级 phpStudy 中 MySQL 版本至 5.7.17

      由于本地用的集成环境是 phpStudy 2016,没有找到升级 MySQL 版本的选项,所以自己升级一下. 从官网上下载高版本的 MySQL :https://dev.mysql.com/dow ...

  4. OCWA提高组模拟赛一 Solution

    Problem A RecMin 给出一个$n \times m$的矩阵,其中$1 \leq n,m \leq 3\ times 10^3$ 给出整数$a,b$,求出在矩阵中所有$a\ times b ...

  5. Windows安装MongoDB .zip绿色版

    本文链接:https://blog.csdn.net/HTouying/article/details/88428452 MongoDB官网下载链接:https://www.mongodb.com/d ...

  6. JDK_API剖析之java.util包

    Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构. 一.接口 1.Collection<E> 接口 自1.2开始有 继承Iterable< ...

  7. Latex生成的.pdf 公式之间隔了几行空白

    如题, 解决办法: \vspace{-1.5cm},这个数值根据需要来设置.

  8. 剑指offer:把一个支付算转化为整数

    1:首先,根据课本上的程序,是这样的: #include "stdafx.h" #include "iostream" using namespace std; ...

  9. 套接字之recvmsg系统调用

    recvmsg系统调用允许用户指定msghdr结构来接收数据,可以将数据接收到多个缓冲区中,并且可以接收控制信息:接收信息过程与其他接收系统调用核心一致,都是调用传输层的接收函数进行数据接收: SYS ...

  10. linux设置MySQL开机自动启动

    step1: 通过chkconfig --list命令查看mysqld是否在列表中: step2: 如果列表中没有mysqld这个,需要先用这个命令添加:chkconfig --add mysqld ...