1. 程式人生 > >Hyper-V虛擬機器檔案丟失的資料恢復全過程

Hyper-V虛擬機器檔案丟失的資料恢復全過程

簡介:
   由於MD3200儲存中虛擬機器的資料檔案丟失,導致整個Hyper-V服務癱瘓,虛擬機器無法使用,故障環境為Windows Server 2012伺服器,系統中部署了Hyper-V虛擬機器環境,虛擬機器的硬碟檔案和配置檔案放在朝陽區某託管中心託管的DELL MD3200儲存中(注:硬碟600G*4,4T*1)。MD3200儲存是由4塊600G硬碟組成的陣列,用作儲存虛擬機器的資料檔案。單塊4T硬碟用作虛擬機器資料檔案的備份。
故障:
   由於MD3200儲存中虛擬機器的資料檔案丟失,導致整個Hyper-V服務癱瘓,虛擬機器無法使用。以如下流程進行資料檢測:
1、對MD3200儲存伺服器進行物理檢測,發現儲存並未出現物理故障,涉事硬碟均正常工作
2、檢查作業系統:工作正常中,未發現出錯程序,排除因作業系統BUG導致的資料丟失。
3、分析丟失資料硬碟的檔案系統:開啟正常,不符合病毒破壞的表現特徵,同時經防毒軟體檢測無病毒。再仔細分析硬碟的檔案系統,發現此檔案系統的元檔案建立時間為11月28日,表明檔案系統的建立時間為11月28日,與資料丟失的時間相吻合。通常這種故障表明:檔案系統被人為重寫了,即分割槽被格式化了。
4、檢查系統日誌:發現系統日誌11月28號之前以及當天的系統日誌已被清空,稽核日誌和服務日誌卻並未清空。通常情況下,此操作應該由人為導致。而格式化分割槽的操作只記錄在系統日誌中,這與上述人為破壞的表現相符。
5、嘗試恢復系統日誌:仔細分析硬碟底層資料,發現硬碟底層中需要恢復的系統日誌已被新的日誌記錄覆蓋,無法恢復。
6、分析作業系統中的所有分割槽:發現只有MD3200儲存中的兩個分割槽的檔案系統被重新寫入檔案系統了。通常情況下,對兩個分割槽的格式化需要有兩個獨立的過程,因此這種針對性的操作應該由人為導致。

解決方案
1、備份使用者資料
   由於資料全部都放Dell M3200儲存中,因此只需要恢復Dell M3200儲存中的資料即可。將Dell M3200儲存中所有的硬碟標上編號,然後後從儲存中拔下來交給硬體部門檢測硬碟是否存在物理故障。經檢測沒問題後對每塊硬碟做全盤映象,使用專用工具(Winhex)將硬碟中所有扇區映象到一塊備份硬碟中。
如下圖1.:使用專業工具備份所有硬碟資料
 

2、重組磁碟陣列
   映象完所RAID 5的相關資訊,如:條帶大小,條帶走向等資訊。根據這些資訊即可重組有硬碟後,分析每塊硬碟上的資料。分析後發現4塊600G硬碟做了一個RAID5,另一塊4T硬碟是做為資料備份使用。仔細分析4塊600G硬碟中的資料結構,可以得出這個此RAID。
如下圖2.:使用專業工具重組RAID
 
如下圖3.:是用專業工具開啟硬碟陣列的情況
 

3、掃描舊的檔案索引項

   仔細分析硬碟底層資料,發現硬碟底層中還殘留著許多以前檔案系統的目錄項及檔案索引。經過仔細核對發現這些檔案索引指向的資料都是使用者丟失的檔案內容。但由於整個硬碟太大,人工去搜索檔案索引會很慢,因此編寫一個提取檔案索引項的小程式,對整個硬碟中所有存在的檔案索引項做掃描,提取所有檔案的檔案索引項。


4、分析掃描到檔案索引項
   對掃描到的所有檔案索引項做詳細的分析,發現其索引項都是不連續的,並且大多都是以16K或8K對齊的。正常情況下的檔案索引項是連續的,大小為固定的1K,每個檔案索引項對應一個檔案或目錄。而掃描出來的這些不連續,並且不完整的檔案索引項是無法正常索引到檔案的內容。因此需要對掃描出來的檔案索引項做加工處理。在掃描出來的檔案索引項中搜索” .VHD”,能找到一個” .VHD”的檔案記錄。然後將這個片連續的檔案索引項提取出來。接著再檢視這段提取出來的檔案索引項中是否有指向下一段檔案索引項的記錄或者是H20屬性。如果有則根據檔案索引項中的特徵去匹配下一段檔案索引項,如果沒有則跳過這段檔案索引項。根據以上方法基本能查到大多數的檔案索引項片段。而缺失的檔案索引項片段有可能被破壞了,但是可以從資料備份盤中去查詢缺失的檔案索引項片段,因此基本可以搜尋到大部分的檔案索引項。
如下圖4.:是檔案索引項截圖
 


5、將檔案索引項組成完整的目錄結構
   根據上述方法找到所有的檔案索引項,然後根據檔案索引項的編號將其拼接成整個目錄項結構。以下是搜尋到的部分檔案索引項,由於有部分檔案索引項被破壞,因此只能找到大部分檔案索引項,但這些檔案索引項已經足以拼接成整個目錄結構了。
如下圖5.:是掃描到的檔案索引項碎片 


6:修復檔案系統
   將重建好的目錄結構和現有檔案系統中的目錄結構進行替換,然後使用專業工具修改部分校驗值。再使用專業的工具解釋這個目錄結構即可看到原有丟失的資料了。
如下圖6.:是用專業工具解釋出來的目錄結構


如下圖7
 
   為了確定資料是否正確,將其中一個最新的VHD檔案恢復出來。然後將其拷貝到一臺支援附加VHD的伺服器上,嘗試附加此VHD。結果附加成功,檢查VHD中最新的資料是否完整。一切檢查完整後將所有資料恢復到一塊硬碟中。
如下圖8:是恢復出來的所有虛擬機器資料檔案
 

7、驗證所有資料
   在一臺測試伺服器上搭建Hyper-V的環境,將恢復的虛擬機器檔案連線到這臺伺服器上。然後通過匯入虛擬機器的方式,將恢復的資料都遷移到新的Hyper-V環境。然後讓客戶來驗證所有虛擬機器是否完整。
如下圖9.:是虛擬機器匯入的過程 


如下圖10. 


8、遷移所有資料
   在客戶驗證所有虛擬機器沒問題後,將所有資料拷貝至客戶伺服器中。然後利用匯入的方式將虛擬機器匯入到客戶的Hyper-V環境中,需要以下面的方式匯入虛擬機器,匯入後沒有報錯,嘗試啟動所有虛擬機器,所有虛擬機器啟動都沒問題