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

服務(wù)器數(shù)據(jù)恢復(fù)—Raid5陣列熱備盤上線失敗的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—RAID5陣列熱備盤同步數(shù)據(jù)失敗的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列崩潰導(dǎo)致上層lun無(wú)法正常使用的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—華為OceanStor存儲(chǔ)中RAID5陣列數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—雙循環(huán)RAID5陣列崩潰,數(shù)據(jù)如何恢復(fù)?
服務(wù)器數(shù)據(jù)恢復(fù)—不當(dāng)操作導(dǎo)致raid5陣列數(shù)據(jù)無(wú)法恢復(fù)的案例
服務(wù)器數(shù)據(jù)恢復(fù)—搬遷導(dǎo)致服務(wù)器無(wú)法識(shí)別raid的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列熱備盤同步失敗的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列熱備盤未完全激活導(dǎo)致陣列崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—EMC存儲(chǔ)中raid5陣列多塊硬盤離線的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列硬盤壞道導(dǎo)致raid崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—磁盤不穩(wěn)定被踢導(dǎo)致raid5陣列崩潰的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—磁盤離線但熱備盤未完全啟用導(dǎo)致raid5陣列崩潰的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—同友存儲(chǔ)raid5陣列崩潰的數(shù)據(jù)恢復(fù)案例

評(píng)論