logo
关于我们

技术分享

技术分享 VMWare:无法关闭 ESXi 主机上的虚拟机

VMWare:无法关闭 ESXi 主机上的虚拟机

2018-07-19

无法关闭 ESXi 主机上的虚拟机 




 

  • 无法关闭 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 主机或其支持硬件)存在问题。


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 其他

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载