服務(wù)器存儲(chǔ)數(shù)據(jù)恢復(fù)環(huán)境&故障:
某存儲(chǔ)設(shè)備中一共有40塊磁盤組建存儲(chǔ)池,其中4塊磁盤作為全局熱備盤使用。存儲(chǔ)池內(nèi)劃分出若干空間映射到服務(wù)器使用。
服務(wù)器存儲(chǔ)設(shè)備在沒有斷電、進(jìn)水、異常操作、供電不穩(wěn)定等外部因素的情況下突然崩潰。管理員重啟服務(wù)器后無法進(jìn)入操作系統(tǒng),數(shù)據(jù)丟失。
服務(wù)器存儲(chǔ)數(shù)據(jù)恢復(fù)過程:
1、將故障存儲(chǔ)中所有硬盤做好標(biāo)記后取出,以只讀方式進(jìn)行完整硬盤鏡像。鏡像完后把所有磁盤按照編號(hào)還原到原存儲(chǔ)設(shè)備中,后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行,避免對(duì)原始磁盤數(shù)據(jù)造成二次破壞。
2、基于鏡像文件分析所有磁盤的底層數(shù)據(jù),北亞企安數(shù)據(jù)恢復(fù)工程師發(fā)現(xiàn)所有磁盤是通過ZFS進(jìn)行管理,磁盤內(nèi)記錄系統(tǒng)元信息的NVLIST較為混亂。需要恢復(fù)數(shù)據(jù)的磁盤分為三組,每組12塊;單個(gè)組使用ZFS特有的RAIDZ管理所有磁盤;RAIDZ級(jí)別為2,即每個(gè)組內(nèi)可缺失磁盤個(gè)數(shù)最大為2;全局熱備盤全部啟用。
Tips:在ZFS文件系統(tǒng)中,池被稱為ZPOOL。ZPOOL的子設(shè)備可以有很多種類:塊設(shè)備、文件、磁盤等。本案例中的子設(shè)備為三組RAIDZ。
經(jīng)過分析發(fā)現(xiàn),三組RAIDZ中的兩組RAIDZ啟用熱備盤個(gè)數(shù)分別為1和3。啟用熱備盤后,第一組RAIDZ又有一塊離線盤,第二組RAIDZ內(nèi)則又有兩塊盤離線。
故障模擬:三組RAIDZ內(nèi)第一和二組RAIDZ中有磁盤離線,熱備盤自動(dòng)上線進(jìn)行替換;熱備盤無冗余情況下第一組RAIDZ中有一塊盤離線,第二組RAIDZ中有兩塊盤離線,ZPOOL進(jìn)入高負(fù)荷狀態(tài)(每次讀取數(shù)據(jù)都需要進(jìn)行校驗(yàn)得到正確數(shù)據(jù));由于第二組RAIDZ內(nèi)有三塊盤離線,該組RAIDZ崩潰、ZPOOL下線、服務(wù)崩潰。
3、ZFS管理的存儲(chǔ)池與常規(guī)存儲(chǔ)不同。ZFS管理的存儲(chǔ)池中所有磁盤都由ZFS進(jìn)行管理。常規(guī)RAID在存儲(chǔ)數(shù)據(jù)時(shí),只按照特定的規(guī)則組建池,不關(guān)心文件在子設(shè)備上的位置;而ZFS在存儲(chǔ)數(shù)據(jù)時(shí)會(huì)為每次寫入的數(shù)據(jù)分配適當(dāng)大小的空間,并通過計(jì)算得到指向子設(shè)備的數(shù)據(jù)指針。這種特性決定了RAIDZ缺盤時(shí)無法直接通過校驗(yàn)得到數(shù)據(jù),必須將整個(gè)ZPOOL作為一個(gè)整體進(jìn)行解析。
北亞企安數(shù)據(jù)恢復(fù)工程師手工截取事務(wù)塊數(shù)據(jù),并編寫程序獲取最大事務(wù)號(hào)入口。
北亞企安數(shù)據(jù)恢復(fù)—RAIDZ數(shù)據(jù)恢復(fù)
4、獲取到文件系統(tǒng)入口后,北亞企安數(shù)據(jù)恢復(fù)工程師編寫數(shù)據(jù)指針解析程序進(jìn)行地址解析。
北亞企安數(shù)據(jù)恢復(fù)—RAIDZ數(shù)據(jù)恢復(fù)
5、獲取到文件系統(tǒng)入口點(diǎn)在各磁盤分布情況后,北亞企安數(shù)據(jù)恢復(fù)工程師手工截取并分析文件系統(tǒng)內(nèi)部結(jié)構(gòu)。入口分布所在的磁盤組無缺失盤,可直接提取信息。數(shù)據(jù)恢復(fù)工程師根據(jù)ZFS文件系統(tǒng)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)找到映射的LUN名稱,從而找到其節(jié)點(diǎn)。
6、經(jīng)過分析,數(shù)據(jù)恢復(fù)工程師發(fā)現(xiàn)在此存儲(chǔ)中的ZFS版本與開源版本有較大差別,無法使用以前開發(fā)的解析程序解析,所以北亞企安數(shù)據(jù)恢復(fù)工程師重新編寫了數(shù)據(jù)提取程序提取數(shù)據(jù)。
北亞企安數(shù)據(jù)恢復(fù)—RAIDZ數(shù)據(jù)恢復(fù)
由于磁盤組內(nèi)缺盤個(gè)數(shù)較多,每個(gè)IO流都需要通過校驗(yàn)得到,提取進(jìn)度極為緩慢。與用戶方溝通后得知,此ZVOL卷映射到XenServer作為存儲(chǔ)設(shè)備,需要恢復(fù)的文件在其中一個(gè)vhd內(nèi)。提取ZVOL卷頭部信息,按照XenStore卷存儲(chǔ)結(jié)構(gòu)進(jìn)行分析,發(fā)現(xiàn)該vhd在整個(gè)卷的尾部,計(jì)算得到其起始位置后從此位置開始提取數(shù)據(jù)。
7、Vhd提取完畢后,驗(yàn)證其內(nèi)部的壓縮包及圖片、視頻等文件,均可正常打開。
8、用戶方驗(yàn)證數(shù)據(jù)后,確定恢復(fù)出來的文件數(shù)量與系統(tǒng)自動(dòng)記錄的文件個(gè)數(shù)基本一致,文件全部可正常打開。本次數(shù)據(jù)恢復(fù)工作完成。
審核編輯 黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
14文章
10270瀏覽量
91553 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
714瀏覽量
18995
發(fā)布評(píng)論請(qǐng)先 登錄
【服務(wù)器數(shù)據(jù)恢復(fù)】從崩潰到重生:16盤服務(wù)器RAID與EXT4文件系統(tǒng)深度修復(fù)實(shí)錄
【服務(wù)器數(shù)據(jù)恢復(fù)】多盤掉線RAID6數(shù)據(jù)恢復(fù):基于Reed-Solomon算法的修復(fù)
【服務(wù)器數(shù)據(jù)恢復(fù)】服務(wù)器raid5陣列raid模塊損壞的數(shù)據(jù)恢復(fù)案例
【服務(wù)器數(shù)據(jù)恢復(fù)】服務(wù)器“泡水”硬盤掉線,數(shù)據(jù)竟這樣恢復(fù)
服務(wù)器數(shù)據(jù)恢復(fù)—一文讀懂服務(wù)器高頻故障排查+標(biāo)準(zhǔn)數(shù)據(jù)恢復(fù)流程
服務(wù)器數(shù)據(jù)恢復(fù)—意外斷電!Linux服務(wù)器數(shù)據(jù)恢復(fù)大揭秘
服務(wù)器數(shù)據(jù)恢復(fù)—硬盤離線致raid5陣列崩潰,數(shù)據(jù)恢復(fù)大揭秘
服務(wù)器數(shù)據(jù)恢復(fù)—RAIDZ多塊硬盤離線導(dǎo)致服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器斷電導(dǎo)致raid模塊損壞的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—服務(wù)器上的卷被誤刪數(shù)據(jù)如何恢復(fù)?
服務(wù)器數(shù)據(jù)恢復(fù)—壞道“突襲”Raid5陣列,數(shù)據(jù)恢復(fù)大揭秘
服務(wù)器數(shù)據(jù)恢復(fù)—硬盤離線導(dǎo)致raid上層的卷無法掛載的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列多塊硬盤離線導(dǎo)致raid崩潰的數(shù)據(jù)恢復(fù)
服務(wù)器數(shù)據(jù)恢復(fù)—Linux系統(tǒng)服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列中硬盤壞道導(dǎo)致陣列崩潰的數(shù)據(jù)恢復(fù)案例
服務(wù)器數(shù)據(jù)恢復(fù)—RAIDZ多盤離線導(dǎo)致服務(wù)器崩潰的數(shù)據(jù)恢復(fù)案例
評(píng)論