虚拟机状态混乱,esxi虚拟机无法关机以及开机操作

  • A+
所属分类:云计算

故障背景:

由于存储发生故障,存储恢复时,esxi上的虚拟机都时只读模式,一般情况,重启下虚拟机就能恢复正常,

当然也会遇到个例,例如系统启动报错,着很大的原因时磁盘有坏块,我们修复下就好了,而我遇到了一个极端的状况,虚拟机在控制台上无法做任何操作了,从web 上查看所有的操作都是灰色的。

 
 

故障原因:

在存储故障期间,人为操作发出了很多状态改变事件(客户自己通过API),当然故障期间关机操作是失败的,最后导致虚拟机的状态混乱,无法操作

 
 

解决办法:

当出现无法操作时候,控制台、包括API都无法使用了,我们需要使用vmware底层命令来设置虚拟机的状态

 

以下命令适合5.5以上版本

①确认虚拟机运行在哪个esxi主机上,使用SSH登陆到该主机(这个应该是esxi运维最基本的操作了,不会自行百度)

②通过命令找到虚拟机运行的worldID(和进程ID相似,一台虚拟机有一个唯一的ID)

062818 0129 esxi1 - 虚拟机状态混乱,esxi虚拟机无法关机以及开机操作

 

~ # esxcli vm process list

Centos7

World ID: 35511

Process ID: 0

VMX Cartel ID: 35508

UUID: 56 4d da c9 eb 9d 10 ab-b0 3e 95 bd 8f 19 e0 29

Display Name: Centos7

Config File: /vmfs/volumes/5ad9bf80-b7d925e0-8c44-000c295222b0/Centos7/Centos7.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=35511

esxcli vm process kill -t force -w 35511

 
 

-t,--type 执行类型

soft: 执行正常关机,调用vmearetool执行关机

hard: 执行立即关机

force:强制断电关机

 
 

-w,--world-id

这里指定虚拟机的World ID号了

 
 

这样虚拟机就可以在控制台上进行操作了,问题处理完毕

 
 

以下是官方的KB说明,还有其他的方式进行虚拟机结束

https://kb.vmware.com/s/article/1014165

 
 

 
 

 
 

头像

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: