HP EVA系列儲存結構原理研究

北亞資料恢復發表於2018-05-18

【引言】

本文件建立在針對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 FA他的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系列儲存raid結構原理概述】

  • 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擴充套件櫃進行映象的連線圖如下
HP EVA系列儲存結構原理研究
2.透過"frombyte recovery for hp eva"程式進行vdisk重組,直接寫入成映象檔案或目標物理磁碟。
3、按常規方式解釋映象檔案或目標磁碟,遷移映象或匯出內部檔案

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

相關文章