服務器數據恢復環境:
一臺服務器中有一組由4塊SAS硬盤組建的RAID5陣列,上層安裝linux操作系統統。分區結構:boot分區+LVM卷+swap分區(按照順序),LVM卷中劃分了一個reiserfs文件系統作為根分區。
服務器故障:
服務器操作系統在運行過程中由于未知原因崩潰,管理員重裝操作系統后發現分區結構變為:boot分區+swap分區+LVM卷(按照順序),LVM卷中文件系統位置有個空的reiserfs超級塊。
用戶方需要恢復reiserfs文件系統中所有數據,包含數據庫、網站程序與網頁、OA系統中所有辦公文檔。
服務器數據恢復過程:
1、將故障服務器中所有磁盤做好標記后取出,硬件工程師檢測后沒有發現有硬盤存在硬件故障。以只讀方式將所有硬盤進行扇區級全盤鏡像,鏡像過程中也沒有發現有硬盤存在大量壞道。鏡像完成后將所有磁盤按照原樣還原到原服務器中,后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
2、基于鏡像文件分析所有磁盤底層數據。通過對全盤reiserfs樹節點之間的關聯確定原來的reiserfs分區位置,發現原來存放數據的reiserfs文件系統前幾G數據已經被覆蓋,應該是在安裝系統時錯誤地初始化了分區結構。管理員在裝好操作系統后發現無法導入LVM卷,于是使用reiserfsck工具試圖修復文件系統。
reiserfs文件系統對文件系統里所有的文件(含目錄)線性化后,再以文件key生成B+樹。隨著樹不斷增加節點,樹的結構會整體拉展,然后向整個磁盤的數據區做平滑遷移,所以頂級節點通常不會處于文件系統的最前面。根目錄的文件KEY號通常是最小的,所以,從空間上看,被覆蓋的前幾G的空間中存放的應該是離根起始路徑最近的key節點。用戶的數據因目錄層次較深,所以節點存在的可能性很高。
3、使用北亞企安自主開發程序在整個原文件系統區域掃描key節點并將所有節點導出,然后重新排序和過濾(去掉之前刪除文件丟棄的節點)所有葉節點,重新生成二級、三級、四級等葉節點。選擇分區前面幾G空間作為新樹的結構區,并生成對應地址信息。
應對目錄命名問題,如遇到原樹路徑某節點丟失的情況,對其用自定義的key節點編號命名。如無法確定其父目錄,暫加入/otherfiles下。根據上面對生成樹索引信息并寫入特定位置,再根據這些信息生成超級塊和設置clear標志。在suse虛擬機下創建快照并掛載修復好的卷,這時已經可以看到文件了。
4、在修復用的suse虛擬機下,掛載用于拷貝數據的目標硬盤,mkfs后將所有數據cp到目標盤。
5、用戶通過find命令整理所需數據,修正部分目錄文件位置與名稱。
6、針對部分丟失的散文件,按照大小與文件頭標志查找,找到后移動及重命名。
7、經過工程師努力,最終將所有數據恢復出來。經過用戶方驗證,確認數據完整有效,認可數據恢復結果。
審核編輯 黃宇
-
服務器
+關注
關注
12文章
9293瀏覽量
85850 -
數據恢復
+關注
關注
10文章
585瀏覽量
17580 -
RAID5
+關注
關注
0文章
122瀏覽量
12751
發布評論請先 登錄
相關推薦
評論