
我運行 ESXI 5.1,所有虛擬機器都位於由 iSCI 資料儲存映射的 NAS 中。
我的路由器壞了,顯然所有虛擬機器的磁碟都被切斷了。
我的理解是,當發生此類事件時,esxi 會停止來自虛擬機器的所有 I/O 並嘗試重新連接到資料儲存。如果在一段時間後還不能,它會卸載資料存儲,因為它可能已經永遠消失了...
我插入了一個新交換機,然後重新啟動我的 esxi。我可以看到數據存儲在vCenter 的數據中心視圖中在線顯示(但是當我瀏覽它時什麼也沒有出現,我什至無法創建新文件夾...)並且在我的主機的存儲視圖中數據存儲沒有出現。
此外,在 NAS(Synology)上,我可以看到我的 LUN 上沒有活動連接...
所以最大的問題是:如何恢復我的資料儲存和所有虛擬機器?
答案1
使用 SSH/本機控制台連接到 ESX,然後嘗試以下操作:
esxcfg-volume -l
esxcfg-volume -m <datastorename>
第一個列出了您的資料儲存及其狀態,第二個則安裝它
答案2
儘管網路配置導致了這種情況,但這仍然是一個合法的問題:讓 ESXi 主機在不重新啟動的情況下再次查看其 iSCSI 儲存的最佳方法是什麼?
注意:我實際上無法讓它工作,因為我的整個網路堆疊都是 FUBAR,我需要重新啟動 ESXi 才能將其恢復。我將其發佈為答案,因為我發現的內容可能對將來發現此問題的人有用。
最有用的連結是這篇 VMware 知識庫文章,標題為意外永久設備遺失 (PDL) 後無法重新裝載資料儲存 (2014155)
「不會回來」似乎是一個旨在保護資料的功能。任何使用消失儲存空間的虛擬機器都已完成,無論「永久」設備遺失可能是暫時的。任何正在使用消失的儲存的虛擬機器都必須關閉(如果可能)或斷電(更有可能)。
在嘗試讓 ESXi 伺服器再次查看儲存之前,請透過標題為 VMware 知識庫文章中的程序確保它確實存在對 ESX/ESXi 主機上的 iSCSI LUN 連線問題進行故障排除 (1003681)您可能會發現整個網路堆疊在此過程中都受到了 FUBARed 的影響。我知道我做了...
來自第一篇 VMware 知識庫文章:
(注意:對於 iSCSI,設備可能不是“naa”ID,而是看起來像“t10.IET_”。我強烈建議剪切和粘貼,而不是嘗試手動輸入這些怪物。)
查找 ID 的命令毫無幫助地隱藏在原始文章的中間——這裡是為了您的方便,因為您無疑需要它來找到以下選項的正確-d
參數esxcli storage core device world list -d <ID>
:
#esxcfg-scsidevs --uids
這顯示了“t10”ID,如下所示:
主要 UID 其他 UID mpx.vmhba45:C0:T0:L0 vml.0005000000766d68626135353a313a31 naa.60022190becbe0003b3e818108cdf2d5 vml.0200000000600221c0becce0001b3b918108cdf2c550455e4320c6 t10.IET_____0001000000000000000000000000000000000000000000 vml.010c0000002020202020202020202020202020202020202020 0202020626561663e30436e6e7f726f t10.IET_____0001000100000000000000000000000000000000000000 vml.010001000020202020202020202020202020202020202020 0202020626561693131464952545541
執行以下命令可查看為 LUN 開啟設備的環境:
#
esxcli storage core device world list -d <t10_id>
例如:
#
esxcli storage core device world list -d t10.IET_____000100010000000000000000000000000000000000000000
您會看到類似以下內容的輸出:
設備世界 ID 開放計數世界名稱-------------------------------------------------- ---------- -------- ---------- ----------t10.IET_____00010001000000000000000000000000000000000000000 2060 1 空閒0如果 VMFS 磁碟區間接使用該設備,則全域名稱包含字串idle0。如果虛擬機器將該裝置用作 RDM,則會顯示虛擬機器的 World ID。如果有其他進程正在使用裸設備,則會顯示相應的資訊。
筆記:
如果主機沒有回應,請執行該指令
esxcfg-scsidevs –-list
以取得對應的資料儲存名稱。確保在磁碟區上註冊的所有處於 PDL 狀態的虛擬機器不需要任何進一步的步驟。如果您的虛擬機器處於該狀態,嘗試重試或取消操作將不會傳回虛擬機器世界 ID。按一下取消,因為除非重新安裝卷,否則重試操作無法成功。執行下列命令可列出 ESXi 5.x 主機上執行的所有虛擬機器並識別在該 LUN 上註冊的虛擬機器:
#
esxcli vm process list
若要終止虛擬機器 World ID,請執行下列命令:
#
esxcli vm process kill --type=force --world-id=World ID
例如:
#
esxcli vm process kill --type=force --world-id=12131
使用以下命令重新掃描儲存:
#
esxcfg-rescan -u vmhba#
執行以下命令查看設備狀態:
#
esxcli storage core device list -d <t10-id>
如果問題仍然存在,請重新開機註冊虛擬機器的 ESXi 5.x 主機。