服務器存儲數據恢復環境:
華為OceanStor 5800存儲,該存儲中有一組由10塊硬盤組建的raid6磁盤陣列,供企業內部使用,服務器安裝linux操作系統+EXT3文件系統,劃分2個lun。
服務器存儲故障:
管理員發現存儲中raid6磁盤陣列不可用,于是將原raid6陣列中的磁盤作為成員盤重新分配raid,并對raid進行初始化。初始化進行到40%左右時,管理員意識到問題,于是強行終止初始化,部分數據已經被破壞,而且不可逆。
導致服務器存儲中數據丟失的原因是raid失效,管理員將raid6陣列中的9塊硬盤作為成員盤來重新分配riad5陣列,并進行了長時間的初始化操作,這個過程對原始數據造成了不可逆的損壞。
服務器存儲數據恢復過程:
1、將故障服務器存儲中所有磁盤編號后取出,硬件工程師對所有磁盤進行檢測后沒有發現有磁盤存在硬件故障。將所有磁盤以只讀方式進行扇區級全盤鏡像,鏡像完成后將所有磁盤按照編號還原到原存儲中。后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
2、基于鏡像文件分析服務器存儲中原RAID6磁盤陣列的組織結構,分析重新分配的RAID5磁盤陣列的組織結構。由于重新分配RAID導致底層RAID6陣列的信息和RAID5陣列的信息大量重合,對這些數據進行分析、區別非常困難。
3、在分析出原始raid6陣列和重新分配后的raid5陣列信息后,北亞企安數據恢復工程師開始對數據恢復算法進行研究。基于算法編寫程序&測試并校正算法,并將原raid6陣列中的第一和第二個LUN分別鏡像到準備好的存儲上。
4、服務器數據恢復工程師對這2個LUN的數據進行驗證,經過驗證發現第二個LUN數據正常,但第一個LUN的前10MB左右的數據被破壞。這前10MB數據極其重要,因為EXT3的根目錄和第一個塊組的I節點全在這前10MB里面。
5、在這種情況下,數據恢復工程師開始著手對損壞的EXT3文件系統進行修復。北亞企安數據恢復工程師編寫一個小程序對EXT3文件系統進行孤目錄查找,在根目錄下發現子目錄3個。
6、重建根目錄和I節點,用EXT3文件系統解析程序打開正常。用戶對恢復出來的數據進行檢測后,認可數據恢復結果。本次數據恢復工作完成。