服務器數據恢複環境:
某品牌服務器中4塊SAS硬盤組建RAID5。
boot分區 LVM卷 swap分區(按照先後順序),LVM卷中劃分了一個reiserfs文件系統,作為根分區。
北亞數據恢複——reiserfs文件系統恢複
服務器故障:
服務器在運行過程中系統由于未知原因癱瘓,用戶重裝服務器系統後發現整個RAID邏輯卷變成了:boot分區 swap分區 LVM卷(按照先後順序),LVM卷中文件系統位置有個空的reiserfs超級塊。用戶聯系我們數據恢複中心,要求恢複的數據就是原來LVM卷中reiserfs文件系統裡的所有的數據:數據庫、網站程序與網頁、OA系統内的辦公文檔。
北亞數據恢複——reiserfs文件系統恢複
服務器數據恢複過程:
1、通過對全盤reiserfs樹節點之間的關聯确定原來reiserfs分區的位置。經過檢測發現原來存儲數據的reiserfs文件系統的前2G數據已經被覆蓋,北亞數據恢複工程師推斷這種情況應該是管理員重裝系統時錯誤地初始化了分區結構,系統安裝後無法導入LVM卷,于是就執行了reiserfsck操作試圖進行修複。
因為reiserfs文件系統對文件系統裡所有的文件(含目錄)線性化後,再以文件key生成B 樹,樹不斷增加節點,導緻樹的結構整體拉展後向整個磁盤的數據區做平滑遷移,所以頂級節點通常不會放在文件系統的最前面。因為根目錄的文件KEY号通常是最小的,所以從空間上看,reiserfs文件系統的前2G數據存儲的應該是從根起始路徑最近的key節點,由于用戶數據目錄層次較深,節點存在的可能性很高。由于前2G數據已經被覆蓋無法恢複,希望用戶數據不要也被覆蓋。因為reiserfs文件系統前面對整個樹的索引全丢失,加上reiserfs的樹概念設計抽象,重搭建樹會很困難。
北亞數據恢複——reiserfs文件系統恢複
2、通過北亞自主研發程序對原文件系統所在區域進行key節點掃描并将所有節點導出。
3、然後通過北亞自主研發工具對所有葉節點重新排序、過濾(去掉之前删除文件丢棄的節點),重新生成二級、三級、四級等葉節點。
4、選擇分區前面2G空間作為新樹的結構區并生成對應地址信息。
5、目錄命名問題解決方法:如遇到原樹路徑某節點丢失的情況,對其使用自定義的key節點編号命名;如無法确定其父目錄,暫加入到/otherfiles下。生成樹索引信息并寫入特定位置,再根據這些信息生成超級塊并設置clear标志。
6、在suse虛拟機下創建快照并挂載修複好的卷,已經可以看到文件了。在修複用的suse虛拟機下,挂載用于copy數據的目标硬盤,mkfs後将所有數據cp到目标盤。
7、用戶通過find命令整理所需數據,修正部分目錄文件位置與名稱。
8、按大小與文件頭标志查找部分丢失的散文件,找到後移動及重命名。
由于reiserfs的樹的抽象和程序調試,整個恢複工作異常複雜。但是經過數據恢複工程師和用戶的努力,所有重要數據都被找到。
北亞數據恢複——reiserfs文件系統恢複
,