1. 程式人生 > >HP EVA4400/6400/8400/P6000數據恢復方法歸類整理

HP EVA4400/6400/8400/P6000數據恢復方法歸類整理

數據恢復 產品 eva 技術 程序

【引言】

本文檔建立在針對HP EVA的大量測試性研究基礎上,所有的細節幾乎均為對EVA的破譯型研究,目前全球範圍內尚未發現類似資料,故可能表述方式和結論並不精確,僅為參考之用。

我們公司為研究HP EVA系列算法,花費了大量的人力物力,目前應為全國唯一的研究此項技術的公司,轉載請註明來源。

技術分享

【前因】

HP EVA4400/6400/8400因接近退役,已進入高故障區間,用戶往往會認為花費幾十萬甚至上百萬購買的eva系列應該是非常穩定的,但實際上無論多麽昂貴的存儲設備,使用的磁盤是相同或相似的。正如eva上銷量極大的部件號為454414-001的1T FATA磁盤,其實就是臭名昭彰的希捷7200.11 系列的FC版,雖然前者正品售價仍高達近4K,後者卻不足400,但兩者的性能和穩定性表現幾乎是相同的。這些1T FATA磁盤在經歷2-3年的運行後,總會出現大批量的損壞,而且往往一旦損壞,幾乎很難修復。一個我遇到的最誇張的案例,108塊1T FATA的EVA6400,在半年內先後損壞50多塊,這是讓人驚訝的,實則也是正常的(緣於希捷這款產品的設計缺陷)。

即便是使用15000rpm或10000rpm的FC磁盤,其實盤體也等同於希捷、日立等廠商的SAS磁盤(目前的EVA系列磁盤已經全部基於SAS了,即使是FC,也是通過轉換電路實現SAS到FC的轉換,如671148-001)。EVA是虛擬化的存儲設備,平時數據會不斷的遷移,加上應用通常較為繁重,所以磁盤的負載相對是較重的,也是很容易出現故障的。EVA是依靠大量磁盤的冗余空間,以及故障後rss冗余磁盤動態遷移來實現整個存儲的數據保護,但隨著越來越多的磁盤掉線,這種保護會接近臨界,直至崩潰。

通過eva command view下的 fieldservice執行強制激活命令,一則會導致cache dirty、數據塊結構不一致導致數據出現損壞。二則修復只能建立在繞開壞道區域的基礎上,如果壞道無法繞開,也是徒勞。

另有一些情況:主機無法與擴展櫃相連導致數據丟失,誤刪除vdisk等,也需要有切實的解決方案。

HP P6000系列控制器與EVA系列內部算法完全相同,不再單獨提及。

【eva系列存儲結構原理概述】

技術分享

EVA系列存儲是一款以虛擬化存儲為實現目的的HP中高端存儲設備,內部的結構組成完全不同於普通的基於簡單RAID的存儲,EVA內部稱之為VRAID。包括一些資深的HP工程師,對EVA的理解其實是有誤區的(也可能是HP官方的宏觀描述)

EVA會對每個物理磁盤(簡稱為PV)進行簽名(寫在每個磁盤的0扇區),簽名後即分配進不同的DISK GROUP。在disk group中,類似於aix 的卷管理,或HP LVM的卷管理一樣,每個PV會按一定大小劃分為若幹存儲單元(按AIX的說法,暫且稱為PP吧),PP的大小為2的整數次冪,且應該在2-16M之間。

每個PV中有有限數量的PP,這些PP合起來形成整個DISK GROUP的可用空間。所有的PV按5-15組成若幹組RSS(HP的官方資料中講最小的RSS磁盤數量是6,最大應不到15,但對底層的分析得知,存在5和15個PV的RSS情況),每個RSS就是一個所謂常規RAID的冗余組,但這個冗余組不等同於常規RAID,與常規RAID相似的是,常規RAID是以磁盤為單位的RAID算法,而RSS是基於PP的RAID算法。

為提高性能,HP EVA會有傾向地輪流分配不同的RSS組,但這些RSS之間的數據存儲是基於JBOD的(HP官方和很多資料上稱是RAID0,或許是宏觀的概念),每個RSS組成的stripe 的成員其實是不同PV中不同位置的PP。

無論RSS中成員數量有多少個,對於VRAID5,一個stripe中的PV數總是5個。對於VRAID6,一個stripe中的PV數總是6個。例如,對於VRAID5,EVA會盡可能在N個磁盤中做C(N,5)的組合情況,以期實現IO 負載均衡。

當一個RSS中某個PV離線,控制器會從同一個RSS組中其他磁盤(同一條帶中已存在的PV之外)中尋找可用的PP,在邏輯上實現每個stripe的rebuild,從而保證整個存儲的安全性。

當一個RSS中損壞的磁盤數量足夠少時(少於等於6個),這個RSS的安全性就非常低了,這時候,EVA會合並此RSS到另一個RSS中,這樣可用的冗余空間就是共享的了,空間就可以從另一個較安全的RSS中遷移過來。

為了保證有足夠的空間提供冗余保護,在創建disk group時,EVA會提供一個Protection Level的保護級別,single表示用2個磁盤的空間做冗余 ,double表示用4個磁盤的空間做冗余。但這個冗余不同於hotspare,這個冗余空間僅會預留到每個PV的尾部,一則,多個磁盤,IO會更均勻,更快;二則,尾部的空間通常是質量較差的空間。


【EVA系列常見故障】

1、RSS中多個磁盤掉線,超過冗余保護級別。

2、加入新磁盤,進行數據遷移時,新磁盤存在物理故障(此時無法回退,也無法前進)。

3、VDISK 刪除或EVA initialize。

4、突發性主機與存儲無法連接。無法discover到存儲。


【數據恢復解決原理】

eva系列最核心的結構部分來自於所有vdisk的運算pp表,這個pp map表會因為磁盤的不斷遷移而遷移。所有的故障均可基於此map進行恢復。

當pp map不存在時,根據不同的條帶之間的冗余關系,可有優化算法對所有PP進行條帶性集合,從而形成若幹組正確的條帶數據,再基於文件系統結構、數據結構等特征,重組若幹條帶。


【數據恢復解決過程】

1、原始磁盤鏡像,將EVA主機一端的連線拔出,直接連入主機hba卡上,就可以認到所有物理硬盤,之後通過專業手段(Linux下的dd,windows下的winhex等)進行磁盤鏡像。因eva主機與擴展櫃之間多是銅線連接,故而,可能需要在擴展櫃上增加光纖收發模塊,再通過光鏈路接入fc hba卡上。當然,也可以把所有硬盤拆下來後,放入其他光纖通道櫃中進行鏡像。

使用EVA擴展櫃進行鏡像的連接圖如下:

技術分享

2、通過frombyte recovery for hp eva程序進行vdisk重組,直接寫入成鏡像文件或目標物理磁盤。

3、按常規方式解釋鏡像文件或目標磁盤,遷移鏡像或導出內部文件。


本文出自 “SUN” 博客,請務必保留此出處http://sun510.blog.51cto.com/9640486/1928935

HP EVA4400/6400/8400/P6000數據恢復方法歸類整理