共計 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 虛機文件被鎖怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。