共计 3679 个字符,预计需要花费 10 分钟才能阅读完成。
这篇文章将为大家详细讲解有关 vsphere6.0 VM 虚机文件被锁怎么办,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
vsphere6.0 上一台数据库虚拟机假死,强行关机后无法 POWER ON。在启动时报虚拟机文件被锁定,此时对虚机进行迁移、快照、克隆等,发现操作都不可用。查看虚机状态,发现其在集群内的 8 台物理主机上来回飘。
解决方法:
1、首先将 cluster 中的 HA 功能关闭。如果该功能不关闭,容易造成死锁,,VM 不断跳动,,不断的在同一集群内不同的 ESXI 主机间循环被锁,徒劳而无功。
2、虚机磁盘文件被锁,必须要知道到底是哪台 ESXI 把他给锁住了,这是关键。
3、在 VCenter 中,把被锁的 VM 从 Inventory 中 remove 掉。原因很简单,这是一个 unregister 的过程。找到目标主机后,当然是杀死他锁住 VM 的进程。之所以会被锁,原因就是 HA 把 VM 从别的 HOST 迁移过来,但是又没有 unregister 和 register 的过程,所以在你查看 VM 的 Summary 的时候,host ip 还是属于出问题的 host。但是 VM 又被新的 host 强行 power on,这样自然不能启动。
解决办法:
打开集群内所有 EXSI 主机的 SSH 登陆功能
然后在每台机子上执行
~ # vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version Annotation
10 C5cpyPdb1 [W56021_SY07_CP07PV1C16] C5cpyPdb1/C5cpyPdb1.vmx rhel6_64Guest vmx-08
17 C5ioAdm1 [W56021_SY01_CP07PV1C16] C5ioAdm1/C5ioAdm1.vmx windows8Server64Guest vmx-08
20 C5jkhyPdb1 [W56021_SY01_CP07PV1C16] C5jkhyPdb1/C5jkhyPdb1.vmx rhel6_64Guest vmx-08
找到被锁的主机 C5jkhyPdb1
查询这台虚机的状态
~ # vim-cmd vmsvc/power.getstate 20
Retrieved runtime info
Powered off
如果虚机状态为 ON,可以执行如下命令
~ # esxcli vm process list
C5jkhyPdb1
World ID: 109052730
Process ID: 0
VMX Cartel ID: 109052727
UUID: 42 0b d6 eb 00 13 b6 26-a2 c4 86 4e 2d ba 17 db
Display Name: C5jkhyPdb1
Config File: /vmfs/volumes/56823cb8-c8a37260-f48f-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1.vmx
~ # esxcli vm process kill –type=hard –world-id=109052730
在集群内每台 esxi 主机上执行如下命令,找到虚机被锁的文件
# vmkfstools -D /vmfs/volumes/56823cb8-c8a37260-f48f-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1.vmx
Lock [type 10c00001 offset 233738240 v 114, hb offset 3780608
gen 85, mode 0, owner 00000000-00000000-0000-000000000000 mtime 46362574
num 0 gblnum 0 gblgen 0 gblbrk 0]
Addr 4, 528, 18 , gen 52, links 1, type reg, flags 0, uid 0, gid 0, mode 100755
len 3706, nb 1 tbz 0, cow 0, newSinceEpoch 1, zla 2, bs 8192
~ # vmkvsitools lsof | grep C5jkhyPdb1
131169563 vmx FILE 4 /vmfs/volumes/56823cb8-c8a37260-f48f-6c0b84629718/C5jkhyPdb1/vmware.log
131169563 vmx FILE 49 /vmfs/volumes/56823cb8-c8a37260-f48f-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1.vmx.lck
131169563 vmx FILE 50 /vmfs/volumes/56823cb8-c8a37260-f48f-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1.vmx
131169563 vmx FILE 51 /vmfs/volumes/56823cb8-c8a37260-f48f-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1.vmx~
131169563 vmx FILE 94 /vmfs/volumes/56823cb8-c8a37260-f48f-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1-flat.vmdk
131169563 vmx FILE 96 /vmfs/volumes/56824c84-3e3e868c-5468-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1-flat.vmdk
131169563 vmx FILE 97 /vmfs/volumes/56824c84-3e3e868c-5468-6c0b84629718/C5jkhyPdb1/C5jkhyPdb1_1-flat.vmdk
131169563 vmx FILE 123 C5jkhyPdb1.nvram
# ps|grep C5jkhyPdb1
131136798 vmm0:C5jkhyPdb1
131169568 vmm1:C5jkhyPdb1
131169569 vmm2:C5jkhyPdb1
131136802 vmm3:C5jkhyPdb1
131169652 131169563 vmx-vthread-7:C5jkhyPdb1 /bin/vmx
131169653 131169563 vmx-vthread-8:C5jkhyPdb1 /bin/vmx
131169654 131169563 vmx-vthread-9:C5jkhyPdb1 /bin/vmx
131104119 131169563 vmx-mks:C5jkhyPdb1 /bin/vmx
131169656 131169563 vmx-svga:C5jkhyPdb1 /bin/vmx
131169658 131169563 vmx-vcpu-0:C5jkhyPdb1 /bin/vmx
131136891 131169563 vmx-vcpu-1:C5jkhyPdb1 /bin/vmx
131169660 131169563 vmx-vcpu-2:C5jkhyPdb1 /bin/vmx
131169661 131169563 vmx-vcpu-3:C5jkhyPdb1 /bin/vmx
然后杀死被锁文件的进程
#kill -9 131169563
解除后被锁后登录 vcenter,从清单移除原虚机名称(备注:虚机即使关机了,这时还可看到虚机在集群中不同主机跳跃注册,需要从清单中移除可能多次,名称为 UNKNOWN 的样子。
最后从存储中添加该虚机的 VMX,启动时选择移动至不要使用复制至)。在 vmx 添加虚机到清单后开机成功。
备注:
依据 VMware KB 2088157
ESXi 5.5 Patch 4 Release ESXi550-201501001(2015-01-27)之前的版本,存在虚机无响应,状态变灰为不可访问和操作虚拟机,vc 控制台黑屏无法操作,网络不可访问,虚机进程锁死无法重置等等问题。
vSphere HA 重置虚拟机失败问题是由于 ESXi 软件本身的 BUG 导致的,需
要升级 ESXi 版本至 ESXi5.5 Patch 4(build-2403361)或更高。但实际上在 6.0 的版本中依然存在此问题。
关于“vsphere6.0 VM 虚机文件被锁怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。