title: EXSI虚拟机卡死
date: 2022-10-19
tags:
- EXSI
- 卡死
- 重启
categories:
- 运维
- EXSI
- 重启
keywords: 'Exsi,重启'
cover: https://qiufuqi.gitee.io/img/hexo/20221019100146.png
abbrlink: exsi_reboot
comments: false
在 ESXi 主机上关闭虚拟机电源时,会遇到以下症状:
- 无法关闭 ESXi 托管的虚拟机的电源
- 虚拟机无响应,且无法停止或终止
使用 SSH 以 root 身份登录到 ESXi
普通关机
获取所有已注册虚拟机的列表,由其 VMID 和显示名称标识
vim-cmd vmsvc/getallvms
~ # vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version Annotation
1424 sap-router [datastore1 (4)] sap-router/win2k8x64.vmx winLonghorn64Guest vmx-07
1440 RAS-3.250 [datastore1 (4)] RAS/win2k8x64.vmx winLonghorn64Guest vmx-07
获取虚拟机当前的状态
vim-cmd vmsvc/power.getstate VMID
~ # vim-cmd vmsvc/power.getstate 1440
Retrieved runtime info
Powered on
检查受影响的虚拟机上是否有挂起的任务阻止了机器开机
vim-cmd vmsvc/get.tasklist VMID
~ # vim-cmd vmsvc/get.tasklist 1440
(ManagedObjectReference) [
'vim.Task:haTask-2-vim.VirtualMachine.createSnapshot-182550283',
'vim.Task:haTask-2-vim.VirtualMachine.consolidateDisks-182550274'
]
查看任务的更多信息
vim-cmd vimsvc/task_info task_id
# vim-cmd vimsvc/task_info haTask-2-vim.VirtualMachine.createSnapshot-182550283
·········
任务挂起,需要取消,使用如下命令
vim-cmd vimsvc/task_cancel task_id
使用命令关闭虚拟机
vim-cmd vmsvc/power.shutdown VMID
# 无法关闭时使用以下命令
vim-cmd vmsvc/power.off VMID
至此一般能成功关机,如果无法关机则参考以下:强制关机
强制关机
5.5以上版本
以下命令适合5.5以上版本
- 确认虚拟机运行在哪个esxi主机上,使用SSH登陆到该主机(这个应该是esxi运维最基本的操作了,不会自行百度)
- 通过命令找到虚拟机运行的worldID(和进程ID相似,一台虚拟机有一个唯一的ID)
[root@localhost:~] esxcli vm process list
RH236_3.1
World ID: 68762
Process ID: 0
VMX Cartel ID: 68761
UUID: 56 4d 70 ad 43 f1 5e 25-8a 12 a0 e2 18 2e 38 ec
Display Name: RH236_3.1
Config File: /vmfs/volumes/5cce4874-40c5c88e-a836-003048fc4ffe/RH236_3.1/RH236_3.1.vmx
Server 2016 Vcenter
World ID: 68982
Process ID: 0
VMX Cartel ID: 68981
UUID: 56 4d d5 80 19 b2 b9 a1-ea 0b cd 89 a6 05 e9 48
Display Name: Server 2016 Vcenter
Config File: /vmfs/volumes/5cce65ea-ab8c59fa-82c7-003048fc4ffe/Server 2016 Vcenter/Server 2016 Vcenter.vmx
记下world id ,执行强制关机命令
esxcli vm process kill --type= [soft,hard,force] --world-id= WorldNumber
esxcli vm process kill -t [ soft,hard,force] -w WorldNumber
例如:
esxcli vm process kill --type=force --world-id=68762
esxcli vm process kill -t force -w 68762
-t,--type 执行类型
soft: 执行正常关机,调用vmearetool执行关机
hard: 执行立即关机
force:强制断电关机
-w,--world-id
这里指定虚拟机的World ID号了
5.5以下版本
- 运行以下命令获取正在运行的虚拟机的列表(虚拟机由 World ID、UUID、显示名称和 .vmx 配置文件的路径标识):
- 运行以下命令关闭此列表中某个虚拟机的电源:
esxcli vms vm list
esxcli vms vm kill --type= [soft,hard,force] --world-id= WorldNumber
标签:关机,vmsvc,虚拟机,cmd,vim,卡死,EXSI,ID
From: https://www.cnblogs.com/qiufuqi/p/17248080.html