【伺服器資料恢復】raidz熱備盤啟用後又有硬碟離線的資料恢復案例

北亞資料恢復發表於2022-11-24

伺服器資料恢復環境:

一臺採用zfs檔案系統的伺服器,配備32塊硬碟。


伺服器故障:

伺服器在執行過程中崩潰,經過初步檢測沒有發現伺服器有物理故障,重啟伺服器後故障依舊,使用者聯絡我們中心要求恢復

伺服器資料。


伺服器資料恢復過程:

1、伺服器資料恢復工程師對故障伺服器中所有硬碟進行了扇區級映象備份,後續的資料恢復操作都在映象檔案上進行,避免

了可能對原始資料造成的二次破壞。

2、透過對映象檔案的分析,伺服器資料恢復工程師獲取關於故障伺服器一些資訊:伺服器作業系統採用的zfs檔案系統,總共

組建了4組raidz。4組raidz中的2組raidz的熱備盤已經啟用,其中第一組啟用了1塊熱備盤,第二組啟用了3塊熱備盤。第一組

啟動了一塊熱備盤後又有一塊正常硬碟掉線,第二組中有2塊硬碟掉線。

兩組raidz均在有硬碟離線的情況下啟用了熱備盤進行了壞盤的替換,熱備盤上線後第這兩組raidz又有其他的硬碟離線。

zpool在每次讀取資料時候都需要進行校驗獲取到正確資料,緊接著第二組raidz又有硬碟離線,伺服器因此崩潰。

3、重組ZPOOL,追蹤資料入口。zfs檔案系統管理的儲存池與常規儲存不同,所有磁碟都由ZFS進行管理。常規RAID在儲存

資料時,只按照特定的規則組建池,不關心檔案在子裝置上的位置。而ZFS在資料儲存時會為每次寫入的資料分配適當大小的

空間,並計算得到指向子裝置的資料指標。ZFS這種特性使得RAIDZ缺盤時無法直接透過校驗獲取到資料,必須將整個ZPOOL

作為一個整體進行解析。


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


獲取檔案系統入口


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


解析資料指標


6、獲取到檔案系統入口點在各磁碟的分佈情況後,北亞資料恢復工程師手工擷取並分析檔案系統內部結構,發現入口分佈所

在的磁碟組無缺失盤,可直接提取資訊。根據ZFS檔案系統的資料儲存結構順利找到對映的LUN名稱,最終找到其節點。


7、經過分析發現在此故障伺服器採用的ZFS檔案系統版本與開源版本有較大差別,北亞資料恢復工程師重新編寫了資料提取

程式。由於磁碟組內缺盤數目比較多,每個IO流都需要透過校驗得到,提取進度極為緩慢。



8、與使用者溝通得知ZVOL卷對映到XenServer作為儲存裝置,使用者所需的檔案在其中一個大小約為2T的vhd內。提取ZVOL卷

頭部資訊,按照XenStore卷儲存結構進行分析後發現這個2T的vhd在整個卷的尾部,透過計算找到這個2T的vhd的起始位置,

然後從此位置開始提取資料。


9、Vhd提取完畢後對其內部的壓縮包、圖片、影片等檔案進行驗證,均可正常開啟。讓使用者親自驗證資料,結果發現恢復出

來的檔案數量與系統自動記錄的檔案數量幾乎相同,丟失的極小數量的檔案可能是因為是最新生成還未重新整理到磁碟。檔案全

部可正常開啟,本次資料恢復完成。


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

相關文章