• 在 ESXi 主机上关闭无响应的虚拟机电源 (1004340)


    • 无法在 ESXi 主机上关闭虚拟机电源。
    • 虚拟机无响应,且无法强制关闭或停止。
    • 无法访问或解锁虚拟机上的文件。
    • 在关闭虚拟机后,vCenter Server 显示虚拟机正在运行。
    • 不指示虚拟机已关闭。
    • 无法在虚拟机中编辑属性。
    • 会显示以下错误中的一个或多个:
      • Soap error 999. The operation is not allowed in current state.
      • The attempted operation cannot be performed in the current state (Powered Off).
      • The request refers to an object that no longer exists or has never existed
     
     Purpose

    本文提供了关闭或必要时强制启动无响应的虚拟机的步骤。
     
     
     Resolution

    如果从 vSphere Web Client 或 Host Client 关闭虚拟机电源不起作用,则必须使用命令行方法。
     

    确定虚拟机的位置

    确定虚拟机运行所在的主机。在 vCenter Web Client 中查看时,此信息在虚拟机的摘要选项卡中。
     
    有如下两种方法使用命令行关闭无响应的虚拟机电源:  
    警告:请按顺序执行本文各节及各步骤中的操作。
     

    使用 ESXi 命令行

    1. 使用 SSH 以 root 身份登录到 ESXi。
    2. 通过运行以下命令获取所有已注册虚拟机的列表,由其 VMID 和显示名称标识:
    vim-cmd vmsvc/getallvms
    1. 记下受影响的虚拟机 ID VMID
    2. 通过运行以下命令获取虚拟机当前的状态:
    vim-cmd vmsvc/power.getstate VMID
    1. 通过运行以下命令检查受影响的虚拟机上是否有挂起的任务阻止了机器开机:
    vim-cmd vmsvc/get.tasklist VMID
    输出示例:
     
    (ManagedObjectReference) [
    'vim.Task:haTask-2-vim.VirtualMachine.createSnapshot-182550283',
    'vim.Task:haTask-2-vim.VirtualMachine.consolidateDisks-182550274'
    ]
     
    1. 运行 vim-cmd vimsvc/task_info task_id 命令查看任务的更多信息。
    例如使用第 5 步中数据:

    vim-cmd vimsvc/task_info haTask-2-vim.VirtualMachine.createSnapshot-182550283
     
    vim.TaskInfo) {
    dynamicType = <unset>,
    key = "haTask-2-vim.VirtualMachine.createSnapshot-182550283",
    task = 'vim.Task:haTask-2-vim.VirtualMachine.createSnapshot-182550283',
    description = (vmodl.LocalizableMessage) null,
    name = "vim.VirtualMachine.createSnapshot",
    descriptionId = "VirtualMachine.createSnapshot",
    entity = 'vim.VirtualMachine:2',
    entityName = "VMware vCenter Server Appliance5-1",
    state = "running",
    cancelled = false,
    cancelable = false,
    error = (vmodl.MethodFault) null,
    result = <unset>,
    progress = 50,
    reason = (vim.TaskReasonUser) {
    dynamicType = <unset>,
    userName = "vpxuser",
    },
    queueTime = "2014-11-09T17:49:01.171933Z",
    startTime = "2014-11-09T17:49:01.175521Z",
    completeTime = <unset>,
    eventChainId = 182550283,
    changeTag = <unset>,
    parentTaskKey = <unset>,
    rootTaskKey = <unset>,
    }
             
    1. 任务挂起,需要取消,使用如下命令:
    vim-cmd vimsvc/task_cancel task_id
     
    注意:并非所有任务都可以取消。例如在上面的示例中,可以看到快照任务的可取消标志设置为 false (cancelable = false)。
    1. 使用在步骤 3 中找到的 VMID 并运行以下命令关闭虚拟机:
    vim-cmd vmsvc/power.shutdown VMID

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

    vim-cmd vmsvc/power.off VMID

    使用 ESXi esxcli 命令

    1. 使用 SSH 以 root 身份登录到 ESXi。
    2. 通过运行以下命令获取正在运行的虚拟机列表,由其 World ID 和显示名称标识:
    esxcli vm process list
    1. 记下无响应虚拟机的 World ID。例如,在第 3 步中,World ID 是 750434。
    2. 通过运行以下命令之一关闭列表中的虚拟机:
    • esxcli vm process kill -t=soft -w=WorldID
    • esxcli vm process kill -t=hard -w=WorldID
    • esxcli vm process kill -t=force -w=WorldID
    注意:这些命令提供了虚拟机强制停止的不同级别的:
    • Soft 是最安全的
    • Hard 是立即关闭
    • Force 是最后的手段

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

  • 相关阅读:
    设计模式之美学习-接口隔离原则(七)
    设计模式之美学习-里式替换原则(六)
    设计模式之美学习-开闭原则(五)
    设计模式之美学习-设计原则之单一职责(四)
    设计模式之美学习-如何进行面向对象设计(三)
    ffmpeg 从内存中读取数据(或将数据输出到内存)
    CImage 对话框初始化时候显示透明 PNG
    RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)
    RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
    RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)
  • 原文地址:https://www.cnblogs.com/TImeroot/p/15832462.html
Copyright © 2020-2023  润新知