【服務(wù)器數(shù)據(jù)恢復(fù)】虛擬機文件丟失導(dǎo)致Hyper-V服務(wù)癱瘓的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
WinServer操作系統(tǒng)服務(wù)器,部署Hyper-V虛擬機環(huán)境;
虛擬機的硬盤文件和配置文件存儲在一臺存儲設(shè)備中;
該存儲設(shè)備配置:一組4盤raid5陣列存放虛擬機數(shù)據(jù)+單塊盤存放虛擬機數(shù)據(jù)備份。
服務(wù)器故障:
由于MD3200存儲中虛擬機的數(shù)據(jù)文件丟失,導(dǎo)致整個Hyper-V服務(wù)癱瘓,虛擬機無法使用。
服務(wù)器故障檢測:
1、檢測物理故障,結(jié)果沒有發(fā)現(xiàn)物理故障問題,所有硬盤均正常。
2、檢測操作系統(tǒng):操作系統(tǒng)正常運行,未發(fā)現(xiàn)錯誤進程。
3、檢測丟失數(shù)據(jù)硬盤的文件系統(tǒng):打開正常,檢測無病毒,排除病毒破壞。繼續(xù)分析丟失數(shù)據(jù)硬盤的文件系統(tǒng),發(fā)現(xiàn)文件系統(tǒng)的元文件創(chuàng)建時間(即文件系統(tǒng)的創(chuàng)建時間)與數(shù)據(jù)丟失的時間相同。這種情況意味著文件系統(tǒng)被人為重寫,即分區(qū)被格式化了。
4、檢查系統(tǒng)日志:系統(tǒng)日志數(shù)據(jù)丟失之前及當(dāng)天的系統(tǒng)日志已被清空,但是審核日志和服務(wù)日志還在,恰巧格式化分區(qū)的操作只記錄在系統(tǒng)日志中。這種情況再次印證這次數(shù)據(jù)災(zāi)難是人為導(dǎo)致的。
5、嘗試恢復(fù)系統(tǒng)日志,從底層數(shù)據(jù)查看發(fā)現(xiàn)需要恢復(fù)的系統(tǒng)日志已被新的日志記錄覆蓋,無法恢復(fù)。
6、分析所有分區(qū),發(fā)現(xiàn)只有兩個分區(qū)的文件系統(tǒng)被重新寫入新的文件系統(tǒng)。因為兩個分區(qū)的格式化需要有兩個獨立的過程,這種針對性的操作再次證明本次數(shù)據(jù)災(zāi)難由人為操作導(dǎo)致。
服務(wù)器數(shù)據(jù)恢復(fù)過程:
1、將故障存儲設(shè)備中所有的硬盤編號取出,以只讀方式對所有硬盤做全盤鏡像,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進行,避免對原始數(shù)據(jù)造成二次破壞。
備份所有硬盤數(shù)據(jù):

2、鏡像完成后,基于鏡像文件分析RAID5磁盤陣列相關(guān)信息如條帶大小、條帶走向等。根據(jù)這些信息重組raid5磁盤陣列。
重組RAID5磁盤陣列:

打開RAID5磁盤陣列:

3、分析硬盤底層數(shù)據(jù)發(fā)現(xiàn)還殘留著許多以前文件系統(tǒng)的目錄項及文件索引。經(jīng)過核對發(fā)現(xiàn)這些文件索引指向的數(shù)據(jù)都是用戶丟失的文件內(nèi)容。北亞企安數(shù)據(jù)恢復(fù)工程師編寫提取文件索引項的小程序掃描并提取所有文件的文件索引項。
4、分析提取出來的文件索引項,發(fā)現(xiàn)這些索引項都是不連續(xù)的,大多數(shù)都是以16K或8K對齊的。正常情況下文件索引項是連續(xù)的,大小為固定的1K,每個文件索引項對應(yīng)一個文件或目錄。而掃描出來的這些不連續(xù)并且不完整的文件索引項是無法正常索引到文件內(nèi)容的,因此需要處理這些掃描出來的文件索引項。
在掃描出來的文件索引項中搜索” .VHD”,能找到一個” .VHD”的文件記錄,然后將這個片連續(xù)的文件索引項提取出來。
接著再查看這段提取出來的文件索引項中是否有指向下一段文件索引項的記錄或者H20屬性。如果有則根據(jù)文件索引項中的特征去匹配下一段文件索引項,如果沒有則跳過這段文件索引項。
根據(jù)以上方法能找到了大多數(shù)的文件索引項片段,而缺失的文件索引項片段有可能被破壞了,可以從數(shù)據(jù)備份盤中去查找缺失的文件索引項片段,最終可以找到大部分的文件索引項。
文件索引項截圖:

5、找到所有能找到的文件索引項之后,根據(jù)文件索引項的編號將其拼接成整個目錄項結(jié)構(gòu)。以下是搜索到的部分文件索引項,雖然小部分文件索引項被破壞,但這些找到的文件索引項已經(jīng)足夠拼接整個目錄結(jié)構(gòu)。
掃描到的文件索引項碎片:

6、將重建好的目錄結(jié)構(gòu)替換現(xiàn)有文件系統(tǒng)中的目錄結(jié)構(gòu)并修改部分校驗值,然后解釋這個目錄結(jié)構(gòu)就可以看到丟失的數(shù)據(jù)了。
解釋出來的目錄結(jié)構(gòu):


為了驗證數(shù)據(jù)是否正確,將其中一個最新的VHD文件拷貝到一臺支持附加VHD的服務(wù)器上,嘗試附加此VHD,結(jié)果附加成功。檢查VHD中最新的數(shù)據(jù)的完整度,沒有發(fā)現(xiàn)問題后將所有數(shù)據(jù)恢復(fù)到一塊硬盤中。
恢復(fù)出來的所有虛擬機數(shù)據(jù)文件:

7、在一臺測試服務(wù)器上搭建Hyper-V環(huán)境,將恢復(fù)出來的虛擬機文件連接到這臺服務(wù)器上,通過導(dǎo)入虛擬機的方式將恢復(fù)出來的數(shù)據(jù)都遷移到新的Hyper-V環(huán)境,然后讓用戶親自驗證所有虛擬機。
虛擬機導(dǎo)入的過程:

8、用戶驗證所有虛擬機沒有問題后,將所有數(shù)據(jù)拷貝至用戶準備好的服務(wù)器中。用導(dǎo)入的方式將虛擬機導(dǎo)入到用戶準備好的Hyper-V環(huán)境中。導(dǎo)入過程中和導(dǎo)入后都沒有報錯,嘗試啟動所有虛擬機都沒有發(fā)現(xiàn)問題。本次數(shù)據(jù)恢復(fù)工作完成。


