網路故障後在 ESXI 主機中重新掛載 iSCSI 資料存儲

網路故障後在 ESXI 主機中重新掛載 iSCSI 資料存儲

我運行 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 主機。

相關內容