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