服務器數據恢復環境:
同友存儲,底層由數塊物理硬盤組建的raid5磁盤陣列,存儲池劃分若干lun,每個lun下有數臺虛擬機。
服務器故障:
未知原因導致存儲崩潰,無法啟動,虛擬機全部丟失,其中一個lun中的3臺虛擬機數據尤為重要,需要恢復其中的數據。
服務器數據恢復過程:
1、將故障存儲中的所有磁盤以只讀方式進行全盤鏡像備份,后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始數據造成二次破壞。
2、基于鏡像文件分析raid5陣列,發現故障存儲中的raid5陣列缺失2塊磁盤,熱備盤已經啟用。通過實際情況可以推斷故障發生的大致過程:第一塊硬盤掉線后raid5啟動熱備盤替換。第二塊硬盤掉線后raid5降級,第三塊硬盤掉線導致raid5陣列崩潰。這種情況下一般是無法通過校驗直接獲取到缺失盤的數據,只能使用磁盤同等大小的全0的空鏡像進行raid重組(依賴空鏡像組建的raid的文件系統結構會嚴重損壞,相當于每個條帶都缺失兩個塊的數據,所以除特殊情況外不建議如此操作)。
重建raid:
北亞企安數據恢復——RAID5數據恢復
3、通過重組出來的raid5陣列提取LUN。通過對存儲結構的進一步分析獲取到存儲劃分的MAP塊,對各個LUN的數據塊指針進行解析并由北亞企安數據恢復工程師編寫程序提取LUN碎片。碎片提取完成后進行碎片拼接,組成完整的LUN。
提取LUN:
北亞企安數據恢復——RAID5數據恢復
4、導出LUN內所有虛擬機并嘗試啟動,結果由于操作系統被破壞,虛擬機無法啟動。
5、提取虛擬機內的文件,但虛擬機內的文件多數損壞嚴重,只有少數文件可用,只能通過其他方案進行恢復。
6、本次需要進行數據恢復的虛擬機內有mysql數據庫,可以根據mysql數據庫底層存儲的特殊性掃描數據頁并提取數據。
數據恢復過程截圖:
北亞企安數據恢復——RAID5數據恢復
7、根據mysql數據頁特征掃描數據頁并導出數據(僅適用于innodb引擎數據庫,myisam引擎數據庫沒有“數據頁”概念),分析系統表獲取各用戶表信息,根據各個表的id分割數據頁。
8、因為該數據庫的表結構變更過多次,存儲故障導致系統表的部分數據丟失,所以記錄提取過程非常痛苦(這里不贅述)。
獲取最早版本數據庫各個表的表結構。由于合并快照前的父盤因為寫入較早,使用第一塊掉線盤進行校驗獲取到完整數據,然后提取出其中數據庫各個表的表結構。用戶方提供了最新版本數據庫的建表腳本。
分別使用兩組不同表結構提取數據記錄并導入到搭建好的環境中的mysql數據庫內,剔除各個表中因為表結構變更所導致的亂碼數據,最后將兩組數據分別導出為.sql文件。
數據驗證:
兩個版本的數據庫表結構不同,先聯系用戶方工程師進行調試,調試完成后導入平臺進行測試,平臺測試成功,本次數據恢復工作完成。
審核編輯:湯梓紅
-
服務器
+關注
關注
12文章
8701瀏覽量
84554 -
數據恢復
+關注
關注
10文章
507瀏覽量
17204 -
RAID5
+關注
關注
0文章
103瀏覽量
12678
發布評論請先 登錄
相關推薦
評論