天天看點

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

虛拟化資料恢複環境:

某品牌伺服器(部署VMware EXSI虛拟機)+同品牌存儲(存放虛拟機檔案)。

虛拟化故障:

意外斷電導緻伺服器上某台虛拟機無法正常啟動。檢視虛拟機配置檔案發現這台故障虛拟機除了磁盤檔案以外其他配置檔案全部丢失,xxx-flat.vmdk磁盤檔案和xxx-000001-delta.vmdk快照檔案還在。管理者聯系VMware工程師尋求幫助。VMware工程師嘗試建立一個虛拟機來解決故障,但發現ESXi存儲空間不足。于是将故障虛拟機下的xxx-flat.vmdk磁盤檔案删除,然後重建一個虛拟機并且配置設定固定大小的虛拟磁盤。建立虛拟機安裝Windows Server作業系統,部署SQL Server資料庫環境(管理宏橋和索菲兩套應用資料庫)。

虛拟化資料恢複過程:

1、在VMware vSphere Client上将挂載的存儲上的VMFS卷以正常方式解除安裝,然後将存儲上的VMFS卷通過網線的方式連接配接到備份伺服器上。使用工具将整個VMFS卷以扇區的方式鏡像到備份空間上,以確定資料安全。之後的資料分析和資料恢複操作均在備份資料上進行,避免對原始資料造成二次破壞。

2、基于備份資料分析VMFS卷的底層資料,發現異常斷電導緻故障虛拟機目錄下的目錄項被破壞。這種破壞不會影響虛拟機的重要資料,可以通過人工修複。如果是人為删除某個檔案,目錄項對應的資料區索引會被清掉,但是也不會影響被删除檔案的實際資料。這種情況可根據删除虛拟磁盤檔案中的檔案系統以及虛拟磁盤中的檔案類型,在VMFS卷自由空間中進行碎片比對和合并來恢複删除的虛拟磁盤檔案。但是在上述兩種情況之下又建立了一台虛拟機,并且配置設定了虛拟磁盤。經過分析發現配置設定的虛拟磁盤已經全部清零(在建立虛拟磁盤的時候會選擇建立磁盤的類型),也就是這個建立的虛拟機所占用的磁盤空間全部被清零。 如果建立虛拟磁盤占用了被删除虛拟機磁盤檔案所釋放的空間,那麼此部分空間中的資料将無法恢複。

故障虛拟機的目錄項區域:

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

3、方案a:

根據VMFS卷的結構以及删除虛拟磁盤的檔案系統資訊,在底層的自由空間中掃描符合删除虛拟機磁盤的區域,并統計其數量和大小是否符合删除虛拟磁盤的大小。根據虛拟磁盤中檔案系統的資訊将這些掃描到的碎片進行排列組合,結果發現很多碎片缺失。重新掃描也沒有找到這些缺失的碎片。将掃描到的碎片按照虛拟磁盤原本的順序進行重組,對于沒有找到的碎片暫且留白。使用虛拟磁盤快照程式将重組好的父盤和快照盤進行合并,生成一個新的虛拟磁盤,然後解釋虛拟磁盤中的檔案系統。因為資料缺失,檔案系統解釋過程中出現大量報錯,提示某些檔案損壞。

解釋完的檔案系統:

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

解析完檔案系統後發現沒有找到原始的資料庫檔案。雖然宏橋備份和索菲備份這兩個目錄的目錄結構正常,但是将備份導入資料庫中時,資料庫導入程式報錯。

宏橋備份和索菲備份的部分目錄結構:

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

導入.BAK檔案報錯:

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

4、方案b:

由于方案a并沒有将原始的資料庫檔案恢複出來,并且好多備份檔案都無法正常使用。是以采用方案b來恢複尚未恢複出來的資料庫檔案。

根據SQL Server資料庫的結構去自由空間中找到資料庫的開始位置。根據SQLServer資料庫結構,資料庫的第9個頁會記錄資料庫的資料庫名。根據這個特征可以核對此資料庫的頭部頁是否是正在查找的。SQL Server資料庫的每個頁中都會記錄資料庫頁編号以及檔案号。根據SQL Server資料庫的上述那些特征,

北亞企安資料恢複工程師編寫資料庫掃描程式。利用該程式去底層掃描所有符合資料庫頁的資料碎片,然後将掃描出來的碎片按照順序重組成一個完整MDF檔案。通過MDF校驗程式檢測MDF檔案的完整性。在校驗過程中,隻有cl_system3.dbf和erp42_jck.dbf因有部分碎片沒有找到外,其餘資料庫檔案均校驗成功。

校驗完的MDF檔案:

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

cl_system3.dbf檔案中某個碎片丢失的區域:

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

5、方案c:

上述兩個方案實施完後并沒有将所有的資料庫檔案恢複出來。cl_system3.dbf和erp42_jck.dbf這2個檔案因缺失部分頁導緻無法正常使用,是以需要采用備份來恢複這兩個資料庫檔案。在檢查完這兩個檔案的備份後發現cl_system3.dbf的全部備份因備份機制故障沒有備出來,而erp42_jck.dbf隻有增量備份。

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

由于erp42_jck.dbf檔案中隻缺失少量的頁,是以可以根據缺失的頁号在增量備份中查找缺失的頁,然後補到erp42_jck.dbf檔案中。這樣可以恢複一部分丢失的資料庫頁。雖然補完後還是缺失部分頁,但是通過北亞企安自主開發的資料庫解析程式将erp42_jck.dbf檔案中比較重要的幾十張表成功導出,并成功導入到建立的資料庫中。

6、驗證資料

在本地伺服器中搭建和原始環境一樣的資料庫環境。由使用者方通過遠端工具連接配接到驗證伺服器,并安裝上層宏橋應用軟體驗證資料庫是否完整。經過仔細驗證,使用者确認資料庫基本沒問題,上層應用可以正常運作,資料記錄也基本沒有缺失,資料庫成功挂載。

虛拟化資料恢複—誤删除VMware虛拟機vmdk檔案的資料恢複案例

北亞企安資料恢複—虛拟機資料恢複

繼續閱讀