服務器數據恢復環境:
一臺同友存儲,存儲上有一組raid5磁盤陣列,存儲上層有若干臺虛擬機,其中有3臺linux操作系統虛擬機上存放重要數據。
服務器故障:
同友存儲上的raid5陣列崩潰導致存儲無法啟動。
服務器數據恢復過程:
1、將故障存儲中所有磁盤編號后取出,由硬件工程師檢測硬件故障,發現有一塊盤盤片劃傷,其他磁盤沒有發現明顯的硬件故障。將完好磁盤以只讀方式做扇區級的全盤鏡像,鏡像完成后將所有磁盤按照編號還原到原存儲中,后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
2、與用戶方進行溝通后,北亞企安數據恢復工程師基于鏡像文件查看所有磁盤底層情況,分析本案例中存儲結構。
存儲結構:
北亞企安數據恢復——同友存儲數據恢復
3、根據分析底層數據獲取到的raid5相關信息重組raid5陣列。重組過程中發現本案例中的raid5缺失2塊盤(第一掉線盤掉線后由熱備盤頂替,之后第二塊盤掉線導致RAID5處于降級狀態,第三塊盤盤片劃傷掉線導致RAID崩潰),無法直接獲通過校驗獲取到丟失盤的數據,只能使用與磁盤同等大小的全0鏡像進行重組(此方法除了緊急情況慎用。依賴空鏡像組建raid,文件系統結構會嚴重破壞,相當于每個條帶都會缺失兩個塊的數據)。
重建raid:
北亞企安數據恢復——同友存儲數據恢復
4、分析存儲結構,獲取存儲劃分的MAP塊。解析MAP塊得到各個LUN的數據塊指針。北亞企安數據恢復工程師編寫數據提取程序提取LUN碎片,提取完成后拼接碎片&組成完整LUN。
提取LUN:
北亞企安數據恢復——同友存儲數據恢復
5、導出虛擬機后嘗試啟動,和預計的情況一樣:由于操作系統被破壞,虛擬機無法啟動。
6、在虛擬機無法啟動的情況下提取虛擬機內文件。提取虛擬機內的文件后進行測試,發現大多數文件都被破壞,只有少部分小文件可以打開。
7、與用戶方進行溝通后得知有一臺虛擬機內有mysql數據庫,可以利用mysql數據庫存儲特殊性,通過掃描數據頁提取數據。找到這臺有mysql數據庫的虛擬機,發現該虛擬機啟用了快照。在父盤和快照文件都損壞的情況下,常規合并無法完成,使用北亞企安自主研發VMFS快照合并程序進行快照合并。
北亞企安數據恢復——同友存儲數據恢復
8、根據mysql數據頁特征掃描&導出數據頁(僅采用innodb引擎的mysql數據庫可以使用此方案),分析系統表獲取各用戶表信息,根據各個表的id分割數據頁。
9、該mysql數據庫在長時間的使用過程中曾多次變更表結構,而且存儲損壞后系統表有部分數據丟失,導致記錄提取困難。首先獲取最初版本mysql數據庫各個表的表結構:合并快照前的父盤因為寫入較早,通過使用第一塊掉線盤進行校驗來獲取到這個文件的完整數據,然后提取出數據庫各個表的表結構。和用戶溝通后,用戶方提供了最新版本數據庫的建表腳本。
10、分別使用最初版本mysql數據庫的表結構和最新版本mysql數據庫的表結構提取數據記錄,并導入到恢復環境中的mysql數據庫內。剔除各個表中因為表結構變更而出現的亂碼數據,將兩組數據分別導出為.sql文件。
11、因為兩個版本的mysql數據庫表結構不同,由用戶方應用工程師進行調試后導入平臺,平臺調試成功。本次服務器數據恢復工作完成。
審核編輯 黃宇
-
服務器
+關注
關注
12文章
9303瀏覽量
86061 -
數據恢復
+關注
關注
10文章
585瀏覽量
17630 -
RAID5
+關注
關注
0文章
122瀏覽量
12767
發布評論請先 登錄
相關推薦
評論