服務器數(shù)據(jù)恢復環(huán)境:
服務器中有32塊硬盤,組建了3組RAIDZ,部分磁盤作為熱備盤。zfs文件系統(tǒng)。
服務器故障:
服務器運行中突然崩潰,排除斷電、進水、異常操作等外部因素。工作人員將服務器重啟后發(fā)現(xiàn)無法進入操作系統(tǒng)。
將故障服務器中所有硬盤編號后取出,經(jīng)過硬件工程師檢測沒有發(fā)現(xiàn)有硬盤存在硬件故障。將所有磁盤以只讀方式進行扇區(qū)級鏡像,鏡像完成后將所有磁盤按照編號還原到故障服務器。基于鏡像文件分析底層數(shù)據(jù),發(fā)現(xiàn)熱備盤全部啟用。
ZFS文件系統(tǒng)中,池被稱為ZPOOL。ZPOOL的子設備包括:塊設備、文件、磁盤等等,本案例中將3組RAIDZ作為子設備。
經(jīng)過分析發(fā)現(xiàn),三組RAIDZ中的兩組RAIDZ分別啟用熱備盤個數(shù)為1和3。在啟用熱備盤后,一組RAIDZ仍出現(xiàn)一塊離線盤,另外一組RAIDZ內則出現(xiàn)兩塊。
故障現(xiàn)場模擬:三組RAIDZ中的兩組RAIDZ出現(xiàn)離線盤,熱備盤及時上線進行替換;熱備盤無冗余狀態(tài)下一組RAIDZ又出現(xiàn)一塊離線盤,另外一組RAIDZ則又出現(xiàn)兩塊離線盤,ZPOOL進入高負荷狀態(tài)(每次讀取數(shù)據(jù)都需要進行校驗獲取正確數(shù)據(jù));當另外一組RAIDZ出現(xiàn)第三塊離線盤時,RAIDZ崩潰、ZPOOL下線、服務器崩潰。
ZFS管理的存儲池與常規(guī)存儲不同,所有磁盤都由ZFS進行管理。常規(guī)RAID存儲數(shù)據(jù)時按照特定的規(guī)則組建池,不關心文件在子設備上的位置。ZFS在存儲數(shù)據(jù)時會為每次寫入的數(shù)據(jù)分配適當大小的空間,并計算出指向子設備的數(shù)據(jù)指針。ZFS的這個特性使得RAIDZ缺盤時無法直接通過校驗獲取數(shù)據(jù),必須將整個ZPOOL作為一個整體進行解析。
服務器數(shù)據(jù)恢復過程:
1、手工截取事務塊數(shù)據(jù),北亞企安數(shù)據(jù)恢復工程師編寫程序獲取最大事務號入口。
獲取文件系統(tǒng)入口:
北亞企安數(shù)據(jù)恢復——zfs數(shù)據(jù)恢復
2、獲取到文件系統(tǒng)入口后,北亞企安數(shù)據(jù)恢復工程師編寫數(shù)據(jù)指針解析程序進行地址解析。
解析數(shù)據(jù)指針:
北亞企安數(shù)據(jù)恢復——zfs數(shù)據(jù)恢復
3、獲取到文件系統(tǒng)入口點在各磁盤上的分布情況后,北亞企安數(shù)據(jù)恢復工程師手工截取&分析文件系統(tǒng)內部結構。文件系統(tǒng)入口點所在的磁盤組無缺失盤,可直接提取信息。
4、根據(jù)ZFS文件系統(tǒng)的數(shù)據(jù)存儲結構找到映射的LUN名稱,從而找到其節(jié)點。
5、根據(jù)ZFS版本編寫數(shù)據(jù)提取程序提取數(shù)據(jù)。
北亞企安數(shù)據(jù)恢復——zfs數(shù)據(jù)恢復
由于磁盤組內缺盤個數(shù)較多,每個IO流都需要通過校驗得到,提取速度緩慢。與用戶方溝通后得知ZVOL卷映射到XenServer作為存儲設備,需要恢復的文件在一個vhd內。
6、提取ZVOL卷頭部信息,按照XenStore卷存儲結構進行分析,發(fā)現(xiàn)該vhd在整個卷的尾部,計算出其起始位置并從此位置開始提取數(shù)據(jù)。
7、Vhd提取完成后,驗證其內部的壓縮包、圖片、視頻等文件,均可正常打開。
8、聯(lián)系用戶方驗證數(shù)據(jù),驗證后確認文件數(shù)量與系統(tǒng)自動記錄的文件個數(shù)完全一致,文件可正常打開。本次服務器數(shù)據(jù)恢復工作完成。
審核編輯 黃宇
-
服務器
+關注
關注
12文章
9123瀏覽量
85324 -
RAID
+關注
關注
0文章
277瀏覽量
35084 -
數(shù)據(jù)恢復
+關注
關注
10文章
568瀏覽量
17432
發(fā)布評論請先 登錄
相關推薦
評論