服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
某品牌服務(wù)器由4塊SAS硬盤組成RAID5,Linux操作系統(tǒng);
存儲分區(qū)結(jié)構(gòu):boot分區(qū)+LVM卷(劃分了一個reiserfs文件系統(tǒng),作為根分區(qū))+swap分區(qū)。
服務(wù)器故障:
服務(wù)器在正常運行中由于未知原因?qū)е孪到y(tǒng)癱瘓,管理員重新安裝系統(tǒng)以后發(fā)現(xiàn)整個RAID邏輯卷變成:boot分區(qū)+swap分區(qū)+LVM卷,LVM卷中文件系統(tǒng)位置有個空的reiserfs超級塊。
需要恢復(fù)的就是原reiserfs文件系統(tǒng)中的所有數(shù)據(jù),包含數(shù)據(jù)庫、網(wǎng)站程序、網(wǎng)頁、OA系統(tǒng)的所有辦公文檔。
服務(wù)器數(shù)據(jù)恢復(fù)過程:
1、服務(wù)器數(shù)據(jù)恢復(fù)工程師首先對故障服務(wù)器中所有硬盤以只讀方式做扇區(qū)級別的鏡像備份,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進行,避免對原始數(shù)據(jù)造成二次破壞。
2、基于鏡像文件分析底層數(shù)據(jù),通過對全盤reiserfs樹節(jié)點之間的關(guān)聯(lián)來確定原reiserfs分區(qū)位置,發(fā)現(xiàn)原reiserfs文件系統(tǒng)前面部分數(shù)據(jù)被覆蓋,應(yīng)該是管理員在重裝系統(tǒng)時錯誤地初始化分區(qū)結(jié)構(gòu),裝好系統(tǒng)后無法導(dǎo)入LVM卷,試圖通過reiserfsck進行修復(fù)。
3、reiserfs文件系統(tǒng)對文件系統(tǒng)中所有的文件(含目錄)線性化后會以文件key生成B+樹,樹不斷增加節(jié)點,樹的結(jié)構(gòu)整體拉展后會向磁盤的數(shù)據(jù)區(qū)平滑遷移,所以頂級節(jié)點一般不會被放在文件系統(tǒng)的最前面。
4、根目錄的文件KEY號通常是最小的,從空間上看,reiserfs文件系統(tǒng)前面的部分數(shù)據(jù)中存儲的應(yīng)該是從根起始路徑最近的key節(jié)點。該案例的數(shù)據(jù)目錄層次較深,節(jié)點很大可能還存在。原reiserfs文件系統(tǒng)前面部分被覆蓋的數(shù)據(jù)已經(jīng)無法恢復(fù),位于reiserfs文件系統(tǒng)前面部分的整個樹的索引全部丟失,加上reiserfs的樹概念設(shè)計抽象,重搭建樹行不通。
5、通過北亞企安自主開發(fā)程序掃描整個原reiserfs文件系統(tǒng)區(qū)域的key節(jié)點,將所有節(jié)點導(dǎo)出。然后通過北亞企安自研程序?qū)λ腥~節(jié)點進行重新排序、過濾(去掉之前刪除文件丟棄的節(jié)點),重新生成二級、三級、四級等葉節(jié)點。選擇分區(qū)前面被覆蓋的空間作為新樹的結(jié)構(gòu)區(qū),生成對應(yīng)地址信息。
6、對目錄命名:如果原樹路徑某節(jié)點丟失,則使用自定義的key節(jié)點編號命名;如果無法確定其父目錄,暫加入到/otherfiles目錄下。
7、根據(jù)上面對生成樹索引信息并寫入特定位置,再根據(jù)這些信息生成超級塊,設(shè)置clear標志。
8、在suse虛擬機下創(chuàng)建快照,掛載修復(fù)好的卷,這時候已經(jīng)可以看到文件了。
9、在用于修復(fù)的suse虛擬機下掛載用來copy數(shù)據(jù)的目標硬盤,mkfs后將所有數(shù)據(jù)cp到目標盤。
10、用戶使用find命令整理所需數(shù)據(jù),修正部分目錄文件位置與名稱。對于部分丟失的散文件則按照文件大小與文件頭標志查找,找到后移動并重命名。
11、通過上述步驟,將所有需要恢復(fù)的數(shù)據(jù)都找到了,經(jīng)過用戶的反復(fù)驗證,確認恢復(fù)出來的數(shù)據(jù)完整可用。
審核編輯黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9251瀏覽量
85739 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
583瀏覽量
17546
發(fā)布評論請先 登錄
相關(guān)推薦
評論