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

服務器數據恢復—如何讓ZFS文件系統數據“起死回生”?

服務器數據恢復—Lustre分布式文件系統數據恢復案例

評論