【北亞企安資料恢復】RAIDZ多塊磁碟離線導致崩潰的資料恢復案例

北亞資料恢復發表於2024-01-17

伺服器資料恢復環境:

ORACLE SUN ZFS某型號儲存,共40塊磁碟組建儲存池,其中的36塊磁碟分為三組,每組12塊,單個組使用ZFS特有的RAIDZ管理所有磁碟,RAIDZ級別為2;另外的4塊磁碟作為全域性熱備。儲存池內劃分出若干空間對映到伺服器使用。


伺服器故障:

伺服器正常執行過程中崩潰,伺服器管理員重啟裝置後無法進入系統。透過對伺服器和儲存的初步檢測以及和管理人員的溝通,排除了斷電、進水、異常操作等外部因素。


伺服器資料恢復過程:

1、將儲存中所有磁碟編號後取出,硬體工程師檢測後沒有發現有硬碟存在硬體故障。以只讀方式將所有磁碟進行扇區級全盤映象,映象完成後按照編號將所有磁碟還原到原儲存中。後續的資料分析和資料恢復操作都基於映象檔案進行,避免對原始磁碟資料造成二次破壞。

2、基於磁碟映象檔案分析底層資料,發現全域性熱備盤全部啟用。

在ZFS檔案系統中,ZPOOL(池)的子裝置有很多種類:塊裝置、檔案、磁碟等,本案例中三組RAIDZ作為子裝置。

分析底層資料發現,三組RAIDZ中的兩組RAIDZ分別啟用的熱備盤個數為1和3。北亞企安資料恢復工程師基於獲取到的資訊推斷故障過程:熱備盤啟用後,在熱備盤無冗餘狀態下,第一組RAIDZ中又有一塊磁碟離線,第二組RAIDZ中則又有兩塊磁碟離線,ZPOOL進入高負荷狀態;直到第二組RAIDZ中第三塊盤離線,RAIDZ崩潰,ZPOOL下線,伺服器崩潰。

ZFS管理的儲存池中所有磁碟都由ZFS進行管理。常規RAID按照特定的規則組建池,並不關心檔案在子裝置上的位置;而ZFS會為每次寫入的資料分配適當大小的空間,並計算得到指向子裝置的資料指標。RAIDZ這種特性導致RAIDZ缺盤時無法直接透過校驗得到資料,而必須將整個ZPOOL作為一個整體進行解析。

3、手工擷取事務塊資料,北亞企安資料恢復工程師編寫程式獲取最大事務號入口。

獲取檔案系統入口:

獲取到檔案系統入口後,北亞企安資料恢復工程師編寫資料指標解析程式解析地址。

解析資料指標:

4、獲取到檔案系統入口點在各磁碟分佈情況後,北亞企安資料恢復工程師手動擷取&分析檔案系統內部結構。由於入口分佈所在的磁碟組無缺失盤,可直接提取資訊。根據ZFS的資料儲存結構順利找到對映的LUN名稱,然後找到其節點。

5、北亞企安資料恢復工程師編寫解析程式解析ZFS&提取資料。

編輯配置檔案,提取ZVOL卷:

6、由於磁碟組內缺盤數目較多,每個IO流都需要透過校驗得到,提取進度極為緩慢。透過和使用者溝通後得知使用者需要恢復的資料在一個vhd內,經過分析發現這個vhd在ZVOL卷的尾部,計算其起始位置後從此位置開始提取資料。

7、Vhd提取完畢後,驗證其內部的壓縮包、圖片、影片等檔案,均可正常開啟。

8、使用者方對資料進行驗證,經過驗證發現恢復出來的檔案數量與系統自動記錄的檔案數量基本一致,檔案全部可以正常開啟。本次伺服器資料恢復工作完成。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/31380569/viewspace-3004183/,如需轉載,請註明出處,否則將追究法律責任。

相關文章