无法关闭 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使用配置文件

    通过配置文件将变量暴露给用户修改 标准库模块configparser,从而可在配置文件中使用标准格式. 必须使用[files].[colors]等标题将配置文件分成几部分(section).标题的名称 ...

  2. Codeforces Round #325 (Div. 2) A. Alena's Schedule 暴力枚举 字符串

    A. Alena's Schedule time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. [LOJ3119][CTS2019|CTSC2019]随机立方体:组合数学+二项式反演

    分析 感觉这道题的计数方法好厉害.. 一个直观的思路是,把题目转化为求至少有\(k\)个极大的数的概率. 考虑这样一个事实,如果钦定\((1,1,1),(2,2,2),...,(k,k,k)\)是那\ ...

  4. JS框架_(Laydate.js)简单实现日期日历

    百度云盘 传送门 密码:71hf JavaScript日期与时间组件_____laydate.js 日期日历效果: <!DOCTYPE html> <html> <hea ...

  5. mysql 将时间戳与日期时间的转换

    from_unixtime()是MySQL里的时间函数 mysql>SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' )  ->20071120 mys ...

  6. Java NIO学习

    Java NIO(转自:http://www.iteye.com/magazines/132-Java-NIO#585) Java NIO提供了与标准IO不同的IO工作方式: Channels,Buf ...

  7. C#操作WMI文章汇总

    http://blog.csdn.net/linux7985/article/details/5698932 http://www.cnblogs.com/ocean2000/archive/2008 ...

  8. springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版)

    一.引入相应的maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  9. DeepFaceLab620稳定版使用过程详解!

    网站上的小白入门系列教程是基于2019.3.13的版本而编写,有部分内容已经发生了变化.而目前比较稳定的版本为620,这个版本保持了很长一段时间,并没有发现什么大问题,用着挺好.所以我决定针对这个版本 ...

  10. React之父子组件之间传值

    1.新增知识点 /** React中的组件: 解决html 标签构建应用的不足. 使用组件的好处:把公共的功能单独抽离成一个文件作为一个组件,哪里里使用哪里引入. 父子组件:组件的相互调用中,我们把调 ...