如何確認虛擬機被哪臺主機鎖定以及如何解鎖

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

在 VMware ESXi 5.5 P05 環境中執行操作期間,您遇到以下問題:
無法對 ESXi 主機執行任何虛擬機操作,例如,打開電源或 vMotion。

該主機上運行的虛擬機所使用的文件被其他進程或主機鎖定。

=========================================
Purpose

在某些 VMware ESXi 主機故障場景(例如,PSOD 和 SAN 故障以及停電)中,在該主機上註冊的虛擬機所使用的文件已鎖定並且不可供其他進程或主機使用。 這會阻止更改虛擬機文件狀態的操作(例如,啓動或 vMotion),此時便需要在條件允許的情況下跟蹤鎖定所有者。 本文介紹使用新工具 vmfsfilelockinfo 在 ESXi 5.5 P05 中跟蹤鎖定所有者的步驟。


Cause

當某個 VMware ESXi 主機鎖定一個文件,而另一個遇到問題的主機正在使用該文件或需要使用該文件時,將發生此問題。


Resolution

1、運行 /bin/vmfsfilelockinfo Python 腳本,查找持有鎖定的主機的 IP 地址。 該腳本採用以下參數:
要測試的文件。
訪問 VMware vCenter Server 的用戶名和密碼(跟蹤 ESX 主機 上 的 MAC 地址)例如:
運行以下命令:

~ # vmfsfilelockinfo -p /vmfs/volumes/iscsi-lefthand-2/VM1/VM1_1-000001-delta.vmdk -v 192.168.1.10 -u [email protected]

您將看到類似以下內容的輸出:
vmfsflelockinfo Version 1.0
Looking for lock owners on "VM1_1-000001-delta.vmdk"
"VM1_1-000001-delta.vmdk" is locked in Exclusive mode by host having mac address ['xx:xx:xx:xx:xx:xx']
Trying to make use of Fault Domain Manager

Found 0 ESX hosts using Fault Domain Manager.

Could not get information from Fault domain manager
Connecting to 192.168.1.10 with user [email protected]
Password: xXxXxXxXxXx

Found 3 ESX hosts from Virtual Center Server.

Searching on Host 192.168.1.178
Searching on Host 192.168.1.179
Searching on Host 192.168.1.180
MAC Address : xx:xx:xx:xx:xx:xx

Host owning the lock on the vmdk is 192.168.1.180, lockMode : Exclusive

Total time taken : 0.27 seconds.
注意:
在啓動的虛擬機生命週期期間,它的多個文件將在不同的合法鎖定狀態之間轉換。鎖定狀態模式表示對文件的鎖定類型。鎖定模式列表如下所示:

模式 0 = 未鎖定
模式 1 = 獨佔鎖定(已啓動的虛擬的 VMX 文件、當前使用的磁盤(flat 或 delta)、*vswp 等)
模式 2 = 只讀鎖定(例如正在運行的虛擬機的 ..-flat.vmdk(帶有快照))
模式 3 = 多寫入器鎖定(例如用於 MSCS 羣集磁盤或 FT 虛擬機)。
在持有鎖定的主機上運行 lsof 命令並從輸出中篩選出相關文件名,以獲取持有鎖定的進程的名稱:

2、 ~ # lsof | egrep 'Cartel|VM1_1-000001-delta.vmdk'

此命令將顯示類似以下內容的消息:

Cartel | World name | Type | fd | Description
36202 vmx FILE 80 /vmfs/volumes/556ce175-7f7bed3f-eb72-000c2998c47d/VM1/VM1_1-000001-delta.vmdk

該消息表明文件由 Cartel ID 爲 36202 的虛擬機鎖定。 現在,通過執行以下命令顯示活動 Cartel ID 的列表:

~ # esxcli vm process list

此命令將顯示按虛擬機名稱分組的活動虛擬機信息,其格式類似於以下示例:

Alternate_VM27
World ID: 36205
Process ID: 0
VMX Cartel ID: 36202
UUID: 56 4d bd a1 1d 10 98 0f-c1 41 85 ea a9 dc 9f bf
Display Name: Alternate_VM27
Config File: /vmfs/volumes/556ce175-7f7bed3f-eb72-000c2998c47d/Alternate_VM27/Alternate_VM27.vmx
Alternate_VM20
World ID: 36207
Process ID: 0
VMX Cartel ID: 36206
UUID: 56 4d bd a1 1d 10 98 0f-c1 41 85 ea a5 dc 94 5f
Display Name: Alternate_VM20
Config File: /vmfs/volumes/556ce175-7f7bed3f-eb72-000c2998c47d/Alternate_VM20/Alternate_VM20.vmx
...

VMX Cartel ID 爲 36202 的虛擬機條目顯示了持有對文件 VM1_1-000001-delta.vmdk 的鎖定的虛擬機的顯示名稱(在本示例中爲 Alternate_VM27)。

3、 關閉持有鎖定的虛擬機以解除該鎖定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章