炎炎夏夜客戶機房空調意外故障,前端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 分區表的信息。
gpt
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
https://blog.csdn.net/weixin_39938269/article/details/111131657 (原文出處)