1. 程式人生 > >別高估了raid陣列的安全性-/-記raid陣列資料失而復得的全過程

別高估了raid陣列的安全性-/-記raid陣列資料失而復得的全過程

一.故障描述

客戶裝置品牌為昆騰系列儲存,共10個磁碟櫃,每個磁碟櫃滿配24塊硬碟。其9個儲存櫃用作資料儲存使用,另外1個儲存櫃用作元資料儲存使用。

元資料儲存中共24塊146G硬碟,其中設定了9組RAID 1陣列,1組4盤位RAID 10陣列,4個全域性熱備硬碟。

資料儲存中,每6塊硬碟設定一組RAID 5陣列,共36組RAID,這36組RAID陣列中,又分為2個儲存系統。其中1個儲存系統中,一組RAID由於2塊硬碟先後故障離線,導致RAID陣列失效,整個儲存系統崩潰,無法使用。
儲存及檔案系統架構大致如下圖一:

注:Meta_LUN(元資料卷)    Data_LUN(使用者資料卷)

二.磁碟備份

為防止資料恢復過程中由於誤操作對原始磁碟造成二次破壞, 首先使用WinHex軟體對客戶的儲存環境進行備份。
備份過程如下圖二所示:

對故障RAID中的6塊成員盤進行編號標記,將硬碟從儲存櫃中拔出,接入到準備好的備份平臺上,對6塊硬碟進行全盤備份。

對其餘沒有出現故障的RAID陣列,進行儲存層面的備份。使用光纖線纜將備份平臺和儲存裝置連線,進入昆騰儲存裝置管理介面配置備份平臺和儲存裝置可以正常通訊,使用WinHex軟體對RAID中的LUN進行映象備份。

在備份過程中發現故障RAID中的1塊故障硬碟存在大量的壞道區域,在備份的過程出現故障,無法繼續備份。對故障硬碟進行開盤更換韌體,並使用PC3000工具進行修復後,硬碟可以繼續備份,但壞道仍然存在。部分映象檔案如下圖三:

三.資料分析

首先對故障的RAID陣列進行分析,獲取到相關的RAID資訊,使用WinHex軟體對RAID陣列進行虛擬重組,並將RAID中的LUN恢復成映象檔案。在分析過程中發現,損壞較嚴重的硬碟為後離線硬碟,由於此硬碟存在大量壞道,可能對最後的恢復結果產生一定的影響。登陸昆騰儲存裝置的管理介面,獲取到StorNext檔案系統中卷相關的一些基本資訊,如下圖四:

繼續對StorNext檔案系統中的Meta卷和Data捲進行分析,客戶的StorNext檔案系統中,包含2個Data卷,每一個完整的Data卷都是由多組RAID中的LUN組成的,對這些LUN進行分析,得到LUN之間組合的演算法規律,虛擬重組出完整的Data卷。圖五:

分析Meta卷,對Meta卷中的節點資訊和目錄項資訊,以及Meta卷和Data之間的對應關係進行分析,針對一個Meta卷管理多個Data卷的情況,研究得到Meta捲到Data卷的索引演算法。檔案節點如下圖六:

目錄塊如下圖七:

四.資料恢復

通過分析研究我們已經獲取到了恢復工作所需全部資訊,開始編寫程式,掃描Meta卷中的節點資訊和目錄項資訊,同時對目錄項和節點進行解析,獲取完整的檔案系統目錄結構,解析每一個節點中的指標資訊,將這些資訊記錄在資料庫中。檔案資訊如下圖八:

編寫檔案提取程式,讀取資料庫,根據解析出的資訊以及兩個Data卷之間的聚合演算法對資料進行提取。

五.恢復結果

對生成出的資料進行隨機抽樣檢測,資料沒有問題。將客戶所需全部檔案提取到本地,確認提取完成後,到客戶執行緒進行資料移交。資料移交完成,客戶對資料恢復結果表示滿意。雖然故障硬碟存在有壞道的情況,但萬幸核心資料沒有遭到破壞,資料恢復工作圓滿完成。