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