【伺服器資料恢復】infortrend ESDS系列儲存資料恢復案例

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

伺服器資料恢復環境:

infortrend某型號儲存;

12塊硬碟組成RAID6,一個GPT分割槽檔案系統為NTFS。


伺服器故障:

3塊硬碟離線後強制啟用並做了REBUILD,資料出錯。


伺服器資料恢復過程:

1、在一臺WINDOWS Server伺服器上用一張陣列卡接2組磁碟陣列。A組陣列連線12塊源盤,B組陣列連線12塊目標盤。

2、保持A組所有磁碟在WINDOWS Server中離線並啟用所有B組硬碟。用工具把A組12塊硬碟一對一映象到B組12塊硬碟。

3、映象完成後,關機並將A組源盤全部取出,後續的資料恢復操作全部在映象盤上進行,避免對原始資料造成二次傷害。

4、分析12塊映象盤結構,發現每塊硬碟前部都有明顯的RAID資訊的痕跡,查詢並確定RAID中LUN的起始分配位置。

5、推斷RAID6演算法,經過檢測分析發現故障RAID6是基於標準P與另一個未知演算法法則Q的右非同步。基於現有資料分析,基於

PQ均等螺旋分佈的RAID6只有裡德-所羅門(Reed-solomon)演算法 ,懷疑本案例中的RAID6為Reed-solomon演算法 的變種,但

由於在同一條帶全0位置發現非全0的情況,故此演算法推斷不成立。北亞資料恢復工程師結合對控制器的測試,發現故障RAID6

的Q校驗基於一種隨機的xor(如同Park編碼),演算法完全隨機,但校驗分佈和Park完全不同,所以即使思路相似,但演算法不

一樣。

6、因為需要找到所有12塊盤缺2塊盤時的完整演算法,共有C(12,2)=66種缺盤情況,每一種至少需要16種運算規則,經程式運

行後發現為了得到一個單元大約要運算30-50次xor。用程式生成的運算公式並引入可以簡化演算法的中間變數層,最佳化演算法模

塊。

7、針對一個明顯不同步的資料塊區,北亞資料恢復工程師專門編寫了一段程式。計算所有C(12,2)並比較計算後的結果與預想

結果,最後確定掉線盤0號盤與3號盤。

8、二進位制最佳化演算法,所有運算放棄STL,改用陣列,並使用bitmap的理念表示表示式中的所有成員,實現演算法的最大效能優

化。按照演算法和分析出來的結構對資料進行初步分析,沒有發現明顯的資料異常。

9、生成資料到另一個準備好的目標儲存。到此步,資料恢復工作已經完成。


資料恢復總結:

本案例資料恢復工作斷斷續續一共耗費了2個月的時間。在整個資料恢復的過程中我們編寫了近萬行程式碼進行判斷、分析、

化、測試、恢復。

資料恢復完成後,使用者抽查驗證的資料全部正常,但不排除有部分資料有少許的損壞。


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

相關文章