炎炎夏夜客戶機房空調意外故障,前端ESXI實體伺服器由于溫度過高都自保關機,存儲和SAN沒有自保關機。上班修複空調後,檢查存儲,檢查SAN無異常。開始開機ESXI主機,開機完後發現存儲映射的兩個LUN全部消失,重新開機存儲,重新開機ESXI都無效。
經過檢查,在ESXI上新增存儲可以看見兩個LUN,但是新增提示需要格式化LUN,此處絕對不能選擇新增然後格式化,否則資料就沒了。根據官方KB判斷應該是分區表丢失了。
https://kb.vmware.com/s/article/2046610?lang=zh_CN 此連結已經失效
下面根據官方KB進行修複:
1,開啟ESXI SSH ,檢視所有硬碟分區資訊 ,執行下面指令。
ls -lh /vmfs/devices/disks/
如下圖,存儲映射的兩個17T的LUN,無分區表
剛開始做的時候上圖是比較難了解的
這裡我們需要記下的是缺少挂載的卷的naa(根據實際情況),這裡舉例:
naa.604338910030fb67000b599800000000
naa.604338910030fb67000b59fd00000001
2,繼續運作partedUtil 指令,并驗證輸出是否類似于以下内容,分别對兩個LUN進行驗證:
partedUtil getptbl /vmfs/devices/disks/naa.604338910030fb67000b599800000000
partedUtil getptbl /vmfs/devices/disks/naa.604338910030fb67000b59fd00000001
驗證該指令的輸出是否類似于以下内容:(下面的内容為分區表不缺少的情況下查詢到的内容)
gpt
52216 255 63 838860800 1 2048 838850039 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
如果輸出類似于以下内容,則說明缺少分區,如下圖缺少分區。這種情況下,必須重新建立丢失的 VMFS 分區表的資訊。
52216 255 63 838860800
3, 擷取分區的結束塊,運作以下指令:
partedUtil getUsableSectors /vmfs/devices/disks/naa.604338910030fb67000b599800000000
partedUtilgetUsableSectors /vmfs/devices/disks/naa.604338910030fb67000b59fd00000001
你會看到以下輸出:
34 36805017566

4,運作以下指令,為最後一個可用塊設定正确的值,注意:確定根據您的環境在該指令中使用适當的值。
partedUtil setptbl /vmfs/devices/disks/naa.604338910030fb67000b599800000000 gpt "1 2048 36805017566 AA31E02A400F11DB9590000C2911D1B8 0"
partedUtil setptbl /vmfs/devices/disks/naa.604338910030fb67000b59fd00000001 gpt "1 2048 36805017566 AA31E02A400F11DB9590000C2911D1B8 0"
紅色數字表示最後一個可用塊,替換為你環境中的值。
這裡說明下:1 2048 是固定格式 網上說的和實際生産環境中都驗證可行
AA31E02A400F11DB9590000C2911D1B8 也是固定格式,可以在 getptbl 指令查詢正常分區的時候得到該值
36805017566為分區表的結束塊
5, 運作vmkfstools –V指令以嘗試挂載 VMFS 資料存儲,運作完後,就能在前端看到存儲,如上圖。
vmkfstools –V
PS: 以上為比較順利的情況,如有其它不同資訊,請根據官方KB中的其它方式進行處理。
注意:第五步可以不用執行,直接在ESXI上重新整理分區,丢失的lun找回!!1