如果不小心誤刪除了 VMFS卷,使用partedUtil命令恢復即可。partedUtil是VMware ESXi的命令行實用程序,可以在ESXi上直接操作本地和遠程 SAN磁盤的分區表。
說明:只有ESXi 5.x上的磁盤分區才支持使用partedUtil命令行。命令行實用程序fdisk不能用于采用VMFS5格式的LUN。本文用于VMware ESXi 5.x、VMware ESXi 6.0格式化為VMFS 5的卷。
當前有一臺DELLR 730XD的服務器,其中10塊硬盤使用RAID-50劃分為2個卷,第1個卷30GB,安裝ESXi 6.5.0系統,第2個卷使用剩余空間,大小29.08TB,如圖1所示。
從圖1中可以看到,這個29.08TB的設備名稱為naa.61866da07cda65002094 30db1f953ce5;30GB的設備名稱是61866da07cda650020 942f720a174f8c。

圖1 VMFS卷

圖2 刪除數據存儲

圖3 無29TB存儲

圖4 存儲設備查看名稱

圖5 查看磁盤列表
下面我們模擬該操作:
注意,當前是測試機器,請勿在生產機器、有重要數據機器實驗,以免造成損失!
(1)在“存儲設備”中右擊29.08TB的存儲,右擊選擇“刪除數據存儲”,如圖2所示。
(2)在彈出的“確認刪除數據存儲”對話框中,單擊“是”按鈕。
(3)此時在“數據存儲”列表中已經沒有該存儲,如圖3所示。
(4)但在“存儲設備”列表中仍然可以看到該存儲容量及設備名稱,如圖4所示。
使用SSH登錄到ESXi主機,通過命令查看磁盤列表、查看分區信息然、創建分區表。下面一一介紹。
(1)查看磁盤列表,在命令提示符中執行:

命令結果如圖5所示。此時可看到設備名為“na a.61866da07cda6500209430d b1f953ce5”已經無分區表。
如果有分區表,例如設備 名“naa.61866da07cda65 0020942f720a174f8c”(這是ESXi系統卷,該卷有多個分區),后面會有:1的分區數目及vlm的名稱。如果我們要恢復分區表,只要為這個29TB創建分區表即可恢復。
說明:在圖5中看到的“naa.500080dc004ff330”是圖1中的大小為447GB的SSD磁盤, 而“naa.500080dc004ff330:1”表示這個磁盤的第1個分區,對應圖3中的data-ssd01卷。圖5中的磁盤列表、分區列表與圖1、圖3的對應關系如表1所示。
設備名為naa.61866da0 7cda650020942f720a174f8c的30GB的卷一共劃分了8個分區(沒有:4的分區),這是安裝ESXi 的過程中創建的多個分區,有Linux引導分區、VMware 診斷分區,這些大約占用7556MB,而剩余的空間則劃分為VMFS文件系統卷,剩余的卷在第3個分區,剩余容量大約22.5GB。
(2) 使 用 partedUtil getptbl分別查看447GB、4TB、29TB 磁盤的分區信息,對比差別。命令分別如下:

表1設備標識符、設備名稱、數據存儲名稱說明

查看分區信息,如圖6、圖7所示。
對比圖6、圖7可以看 出,“naa.61866da07cd a6500209430db1f953ce5”(29TB卷)已無分區表。
(3)為29TB的卷創建分區表,命令及參數為:

上述命令中的1表示第一個分區,是主分區。2048表示vmfs-5分區開始扇區。AA31E02A400F11DB959000 0C2911D1B8 是VMFSGUI D, 而 62440603648是29.08TB卷的扇區數即圖7中的62440603648再減去34得到。

圖6 有分區表的兩個卷

圖7 29TB卷已經無分區表

圖8 創建分區

圖9 掛載非活動存儲

圖10 被刪除的VMFS卷恢復

圖11 存儲恢復成功
命令及命令執行結果如圖8所示。
說明:在本示例中,VMware ESXi卷被格式化為VMFS-5。對于VMFS6的卷,其扇區差異可能不全是34,也可能是1713,這些需要進一步查參數。
(4)然后在vSphere Client中重新掃描存儲,可以看到原來被刪除的存儲已經出現,只是顯示為“灰色”,右擊該存儲選擇“掛載”,如圖9所示。
(5)存儲掛載完成,并且可以看到存儲的信息,如圖10所示。
(6)瀏覽存儲,可以看到數據仍然存在,如圖11所示。至此存儲恢復完成。
vSphere的用戶,在管理ESXi與vCenter Server服務器的時候,在對虛擬機、存儲進行操作,例如擴容、刪除這些有一定“危險性”的操作時,一定要多次確認,只有確認虛擬機不再使用時,才可刪除。只有確認存儲上的數據已遷移完成并且沒有有用數據時,才能刪除。但如果誤操作刪除了存儲或虛擬機,第一時間用正確的方法恢復,數據一般不會丟失。