服務器數(shù)據(jù)恢復環(huán)境&故障:
某單位同友存儲設備,該存儲有大于5臺的虛擬機,其中有3臺linux系統(tǒng)虛擬機存儲重要數(shù)據(jù)。存儲設備中組建的raid5由于未知原因崩潰導致存儲無法啟動。
存儲結構:
北亞企安數(shù)據(jù)恢復——raid5數(shù)據(jù)恢復
服務器數(shù)據(jù)恢復過程:
1、對故障存儲raid5磁盤陣列中所有磁盤數(shù)據(jù)以只讀方式做鏡像備份,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復操作都基于鏡像文件進行,避免對原始數(shù)據(jù)造成二次破壞。
2、通過底層數(shù)據(jù)分析故障raid5結構相關信息,根據(jù)分析獲取到的raid信息重組raid。重組raid過程中發(fā)現(xiàn)該raid5有2塊磁盤缺失(第1塊掉線盤掉線后由熱備盤頂替,第二塊磁盤掉線導致RAID5處于降級狀態(tài),第三塊磁盤盤片劃傷掉線最終導致RAID5崩潰),無法通過校驗直接獲取缺失磁盤的數(shù)據(jù),只能使用磁盤同等大小的全0鏡像進行重組(此方法只可用于緊急情況,因為依賴空鏡像組建的raid文件系統(tǒng)結構會嚴重損壞,即每個條帶都會缺失兩個塊的數(shù)據(jù))。
重建raid:
北亞企安數(shù)據(jù)恢復——raid5數(shù)據(jù)恢復
3、分析故障存儲的結構,獲取存儲劃分的MAP塊。在找到MAP塊之后通過解析獲取各個LUN的數(shù)據(jù)塊指針,北亞企安數(shù)據(jù)恢復工程師編寫數(shù)據(jù)提取程序提取LUN碎片。提取完成后通過碎片拼接方式組成完整LUN。
提取LUN:
北亞企安數(shù)據(jù)恢復——raid5數(shù)據(jù)恢復
4、導出LUN內所有虛擬機并嘗試啟動,但是由于操作系統(tǒng)被嚴重破壞,虛擬機無法啟動。
5、提取虛擬機內文件。提取完所有文件后對提取出來的文件進行測試,測試后發(fā)現(xiàn)大多數(shù)文件有不同程度的損壞,只有部分小文件可以正常打開。
6、與用戶溝通后得知虛擬機內有mysql數(shù)據(jù)庫,由于mysql數(shù)據(jù)庫底層存儲的特殊性,可以通過掃描數(shù)據(jù)頁進行數(shù)據(jù)提取。在找到有mysql數(shù)據(jù)庫的虛擬機后發(fā)現(xiàn)此虛擬機已經(jīng)啟用快照,父盤和快照文件都破壞的情況下無法進行常規(guī)合并操作,只能使用北亞企安自主研發(fā)的VMFS快照合并程序進行快照合并。
北亞企安數(shù)據(jù)恢復——raid5數(shù)據(jù)恢復
7、根據(jù)mysql數(shù)據(jù)頁特征進行數(shù)據(jù)頁掃描并導出(僅innodb引擎可使用此方案),分析系統(tǒng)表獲取各用戶表信息并根據(jù)各個表的id進行數(shù)據(jù)頁分割。
8、由于該mysql數(shù)據(jù)庫已經(jīng)使用很長一段時間了,表結構也經(jīng)過多次變更,在存儲損壞后系統(tǒng)表也有部分數(shù)據(jù)丟失,在提取記錄的過程碰到很多問題。
首先獲取最初版本數(shù)據(jù)庫各個表的表結構:合并快照前的父盤因為寫入較早,使用第一塊掉線盤進行校驗獲取到這個文件的完整數(shù)據(jù),然后提取出其中數(shù)據(jù)庫各個表的表結構,之后用戶方提供了最新版的數(shù)據(jù)庫建表腳本。
9、分別使用兩組不同表結構提取數(shù)據(jù)記錄并導入到搭建好的mysql數(shù)據(jù)庫內,剔除各個表中因為表結構變更造成的亂碼數(shù)據(jù),然后將兩組數(shù)據(jù)分別導出為.sql文件。
10、聯(lián)系用戶方應用工程師進行調試,把恢復出來的數(shù)據(jù)導入平臺后調試成功,數(shù)據(jù)恢復完成。
審核編輯:湯梓紅
-
服務器
+關注
關注
12文章
8701瀏覽量
84549 -
數(shù)據(jù)恢復
+關注
關注
10文章
507瀏覽量
17203 -
RAID5
+關注
關注
0文章
103瀏覽量
12678
發(fā)布評論請先 登錄
相關推薦
評論