天天看點

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

作者:北亞資料恢複中心

伺服器資料恢複環境:

IBM X系列伺服器+柏科某型号存儲。伺服器上部署VMware ESXi虛拟主機,存儲上存放虛拟機檔案。

虛拟主機采用的Windows Server作業系統,部署宏橋和索菲2套應用,資料庫是SQL Server。

虛拟磁盤:資料盤(精簡模式)+ 快照資料盤。

伺服器故障:

機房異常斷電導緻伺服器上某台虛拟機無法正常啟動。管理者檢視虛拟機配置檔案,發現此虛拟機的配置檔案除了磁盤檔案外其他的配置檔案全部丢失,xxx-flat.vmdk磁盤檔案和xxx-000001-delta.vmdk快照檔案還在。聯系VMware原廠工程師,VMware工程師需要建立一個虛拟機來解決故障問題,但發現ESXi存儲空間不足。于是管理者将故障虛拟機下的xxx-flat.vmdk磁盤檔案删除,然後VMware工程師重建了一個虛拟機并且配置設定了固定大小的虛拟磁盤。

伺服器資料恢複過程:

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

2、基于鏡像檔案分析VMFS卷的底層,發現異常斷電導緻故障虛拟機目錄下的目錄項被破壞,但是不影響虛拟機的重要資料,可以通過人工進行修複。

如果人為删除某個檔案,目錄項對應的資料區索引也會被同時清掉,但是不會影響删除檔案的實際資料。可以根據被删除的虛拟磁盤檔案中的檔案系統以及虛拟磁盤中的檔案類型在VMFS卷自由空間中進行碎片的比對和合并這種方式來恢複删除的虛拟磁盤檔案。

但是本案例是在上述的兩個問題同時發生的情況下又建立一台虛拟機并且配置設定了虛拟磁盤。

經過分析發現新配置設定的虛拟磁盤已經全部清零了(在建立虛拟磁盤的時候會選擇建立磁盤的類型),這個建立的虛拟機所占用的磁盤空間全部被清零。如果新配置設定的虛拟磁盤占用了删除虛拟機磁盤所釋放的空間,那麼此部分空間的資料是無法恢複的。

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

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

3、經過北亞企安資料恢複工程師團隊的會診,最終确認伺服器資料恢複方案:

方案a、恢複删除的VMDK檔案。根據删除虛拟磁盤檔案中的檔案系統以及虛拟磁盤中的檔案類型在VMFS卷的自由空間中進行碎片比對和合并,恢複删除的虛拟磁盤檔案。将快照檔案和恢複的虛拟磁盤檔案合并成一個完整的虛拟磁盤檔案,然後利用檔案系統解釋工具解釋虛拟磁盤檔案中的所有檔案。

方案b、恢複MSSQL資料庫檔案。如果方案a實施效果不理想,可以根據SQL Server資料庫檔案結構對VMFS卷自由空間中符合SQL Server頁結構的資料區域進行統計、分析和聚合,生成一個可以正常使用的.MDF格式的檔案。

方案c、恢複MSSQL資料庫備份檔案。由于資料庫每天都在做備份。如果上述2種方案實施過後還有一些資料庫沒有恢複出來,就隻能使用備份檔案來恢複資料庫了。根據掌握的備份檔案.bak的結構,對VMFS卷自由空間中符合SQL Server備份檔案結構的資料區域進行統計、分析和聚合,生成一個可以正常導入到SQL Server資料庫中.BAK格式的檔案。

4、伺服器資料恢複實施過程:

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

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

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

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

導入.BAK檔案報錯資訊:

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

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

根據SQL Server資料庫的結構去自由空間中找到資料庫的開始位置。根據SQL Server資料庫的結構特征,資料庫的第9個頁會記錄本資料庫的資料庫名。根據這個特征核對該資料庫的頭部頁是否是正在查找的。SQL Server資料庫的每個頁都會記錄資料庫頁編号和檔案号,根據這些特征北亞企安資料恢複工程師編寫資料

庫掃描程式在底層掃描所有符合資料庫頁的資料碎片。将掃描出來的碎片按順序重組成一個完整MDF檔案,通過MDF校驗程式檢測整個MDF檔案的完整性。校檢完成後發現隻有cl_system3.dbf和erp42_jck.dbf這2個檔案沒有找到外,其餘資料庫均校驗成功。

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

cl_system3.dbf和erp42_jck.dbf因為底層有很多碎片沒有找到(可能被覆寫),是以校驗不通過。

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

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

方案c實施過程:

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

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

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

驗證資料:

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

資料庫成功挂載:

【伺服器資料恢複】斷電導緻虛拟虛拟機檔案丢失的資料恢複案例

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

伺服器資料恢複總結:

本案例先是斷電導緻伺服器中部分檔案丢失;然後人為删掉部分資料,又重新寫入部分資料,導緻部分資料被覆寫;又因為資料庫備份機制導緻部分資料庫的備份不可用;是以本案例恢複難度系數很高。因為北亞企安資料恢複工程師團隊對SQL Server資料庫底層結構有深入的研究,并且有處理類似故障類型的經驗,

是以才能順利恢複出使用者需要的資料。

繼續閱讀