服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
某市教育局同友存儲,存儲中有一組由數(shù)塊磁盤組建的raid5陣列,存儲空間劃分若干lun。每個(gè)lun中有若干臺虛擬機(jī),其中有數(shù)臺linux操作系統(tǒng)的虛擬機(jī)為重要數(shù)據(jù)。
存儲結(jié)構(gòu):
北亞企安數(shù)據(jù)恢復(fù)——同友存儲數(shù)據(jù)恢復(fù)
服務(wù)器故障:
raid崩潰導(dǎo)致存儲無法啟動。
服務(wù)器數(shù)據(jù)恢復(fù)流程:
1、將存儲中所有磁盤編號后取出,由硬件工程師檢測后沒有發(fā)現(xiàn)有硬盤存在明顯的硬件故障。以只讀方式將所有磁盤進(jìn)行扇區(qū)級全盤鏡像,鏡像完成后將所有磁盤按照編號還原到原存儲中,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行,避免對原始磁盤數(shù)據(jù)造成二次破壞。
2、基于鏡像文件分析所有磁盤底層數(shù)據(jù),獲取重組raid所需要的相關(guān)信息,利用獲取到的raid信息重組raid。在重組raid過程中發(fā)現(xiàn)該raid5缺失2塊盤(還原存儲raid崩潰的過程:第一塊盤掉線后熱備盤頂替,第二塊盤掉線讓RAID5處于降級狀態(tài),第三塊盤掉線RAID崩潰),無法通過校驗(yàn)直接獲取掉線盤的數(shù)據(jù),只能使用與缺失磁盤同等大小的全0鏡像進(jìn)行重組(此方法只可用于緊急情況,通過全0鏡像組建的raid結(jié)構(gòu)會被嚴(yán)重破壞,相當(dāng)于每個(gè)條帶都會缺失兩個(gè)塊的數(shù)據(jù))。
重建raid:
北亞企安數(shù)據(jù)恢復(fù)——同友存儲數(shù)據(jù)恢復(fù)
3、基于組建完成的raid分析存儲結(jié)構(gòu),獲取存儲劃分的MAP塊。找到MAP塊之后通過解析獲取到各個(gè)LUN的數(shù)據(jù)塊指針,北亞企安數(shù)據(jù)恢復(fù)工程師編寫數(shù)據(jù)提取程序提取LUN碎片。碎片提取完成后通過拼接碎片組成完整LUN。
提取LUN:
北亞企安數(shù)據(jù)恢復(fù)——同友存儲數(shù)據(jù)恢復(fù)
4、導(dǎo)出LUN內(nèi)所有虛擬機(jī)后嘗試啟動,由于操作系統(tǒng)被破壞,虛擬機(jī)無法成功啟動。
5、由于虛擬機(jī)無法啟動,數(shù)據(jù)恢復(fù)工程師只能對虛擬機(jī)內(nèi)文件進(jìn)行提取,對提取出的文件進(jìn)行測試后發(fā)現(xiàn)大多數(shù)文件被破壞,只有少量的小文件可以打開。
虛擬機(jī)內(nèi)取出的圖片:
北亞企安數(shù)據(jù)恢復(fù)——同友存儲數(shù)據(jù)恢復(fù)
6、與用戶方溝通后得知有虛擬機(jī)內(nèi)有mysql數(shù)據(jù)庫,基于數(shù)據(jù)庫存儲的特殊性,可以嘗試通過掃描數(shù)據(jù)頁來提取數(shù)據(jù)。找到這臺有數(shù)據(jù)庫的虛擬機(jī)后發(fā)現(xiàn)此虛擬機(jī)啟用快照。在父盤和快照文件都被損壞的情況下,常規(guī)合并操作無法完成,嘗試使用北亞企安自主研發(fā)VMFS快照合并程序進(jìn)行快照合并。
北亞企安數(shù)據(jù)恢復(fù)——同友存儲數(shù)據(jù)恢復(fù)
7、根據(jù)mysql數(shù)據(jù)頁特征掃描&導(dǎo)出數(shù)據(jù)頁。分析系統(tǒng)表獲取各用戶表信息,根據(jù)各個(gè)表的id分割數(shù)據(jù)頁。
8、由于數(shù)據(jù)庫使表結(jié)構(gòu)曾多次變更,系統(tǒng)表也有部分?jǐn)?shù)據(jù)丟失,記錄提取過程充滿坎坷。首先獲取最初版本數(shù)據(jù)庫各個(gè)表的表結(jié)構(gòu):合并快照前的父盤因?yàn)閷懭胼^早,使用第一塊掉線盤進(jìn)行校驗(yàn)獲取到這個(gè)文件的完整數(shù)據(jù),然后提取出其中數(shù)據(jù)庫各個(gè)表的表結(jié)構(gòu)。用戶方提供了最新版的數(shù)據(jù)庫建表腳本。
9、分別使用兩組不同表結(jié)構(gòu)提取數(shù)據(jù)記錄并導(dǎo)入恢復(fù)環(huán)境中的mysql數(shù)據(jù)庫內(nèi),剔除各個(gè)表中因?yàn)楸斫Y(jié)構(gòu)變更導(dǎo)致的亂碼數(shù)據(jù),最后將兩組數(shù)據(jù)分別導(dǎo)出為.sql文件。
10、因?yàn)閮蓚€(gè)版本的數(shù)據(jù)庫表結(jié)構(gòu)不同,所以聯(lián)系了用戶方的應(yīng)用工程師進(jìn)行調(diào)試。調(diào)試完成后導(dǎo)入平臺,經(jīng)過用戶方檢測后確認(rèn)絕大部分?jǐn)?shù)據(jù)已經(jīng)恢復(fù)出來,認(rèn)可數(shù)據(jù)恢復(fù)結(jié)果。本次數(shù)據(jù)恢復(fù)工作完成。
審核編輯 黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9165瀏覽量
85437 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
573瀏覽量
17460 -
RAID5
+關(guān)注
關(guān)注
0文章
120瀏覽量
12727
發(fā)布評論請先 登錄
相關(guān)推薦
評論