HP EVA4400/6400/8400/P6000數(shù)據(jù)恢復方法歸類整理

【引言】?
本文檔建立在針對HP EVA的大量測試×××基礎上,所有的細節(jié)幾乎均為對EVA的破譯型研究,目前全球范圍內(nèi)尚未發(fā)現(xiàn)類似資料,故可能表述方式和結(jié)論并不精確,僅為參考之用。?
我們公司為研究HP EVA系列算法,花費了大量的人力物力,目前應為全國唯一的研究此項技術(shù)的公司,轉(zhuǎn)載請注明來源。?
【前因】?
HP EVA4400/6400/8400因接近退役,已進入高故障區(qū)間,用戶往往會認為花費幾十萬甚至上百萬購買的eva系列應該是非常穩(wěn)定的,但實際上無論多么昂貴的存儲設備,使用的磁盤是相同或相似的。正如eva上銷量極大的部件號為454414-001的1T FATA磁盤,其實就是臭名昭彰的希捷7200.11?系列的FC版,雖然前者正品售價仍高達近4K,后者卻不足400,但兩者的性能和穩(wěn)定性表現(xiàn)幾乎是相同的。這些1T FATA磁盤在經(jīng)歷2-3年的運行后,總會出現(xiàn)大批量的損壞,而且往往一旦損壞,幾乎很難修復。一個我遇到的最夸張的案例,108塊1T FATA的EVA6400,在半年內(nèi)先后損壞50多塊,這是讓人驚訝的,實則也是正常的(緣于希捷這款產(chǎn)品的設計缺陷)。?
即便是使用15000rpm或10000rpm的FC磁盤,其實盤體也等同于希捷、日立等廠商的SAS磁盤(目前的EVA系列磁盤已經(jīng)全部基于SAS了,即使是FC,也是通過轉(zhuǎn)換電路實現(xiàn)SAS到FC的轉(zhuǎn)換,如671148-001)。EVA是虛擬化的存儲設備,平時數(shù)據(jù)會不斷的遷移,加上應用通常較為繁重,所以磁盤的負載相對是較重的,也是很容易出現(xiàn)故障的。EVA是依靠大量磁盤的冗余空間,以及故障后rss冗余磁盤動態(tài)遷移來實現(xiàn)整個存儲的數(shù)據(jù)保護,但隨著越來越多的磁盤掉線,這種保護會接近臨界,直至崩潰。?
通過eva command view下的?fieldservice執(zhí)行強制激活命令,一則會導致cache dirty、數(shù)據(jù)塊結(jié)構(gòu)不一致導致數(shù)據(jù)出現(xiàn)損壞。二則修復只能建立在繞開壞道區(qū)域的基礎上,如果壞道無法繞開,也是徒勞。?
另有一些情況:主機無法與擴展柜相連導致數(shù)據(jù)丟失,誤刪除vdisk等,也需要有切實的解決方案。?
HP P6000系列控制器與EVA系列內(nèi)部算法完全相同,不再單獨提及。?
【eva系列存儲結(jié)構(gòu)原理概述】?
EVA系列存儲是一款以虛擬化存儲為實現(xiàn)目的的HP中高端存儲設備,內(nèi)部的結(jié)構(gòu)組成完全不同于普通的基于簡單RAID的存儲,EVA內(nèi)部稱之為VRAID。包括一些資深的HP工程師,對EVA的理解其實是有誤區(qū)的(也可能是HP官方的宏觀描述)?
EVA會對每個物理磁盤(簡稱為PV)進行簽名(寫在每個磁盤的0扇區(qū)),簽名后即分配進不同的DISK GROUP。在disk group中,類似于aix?的卷管理,或HP LVM的卷管理一樣,每個PV會按一定大小劃分為若干存儲單元(按AIX的說法,暫且稱為PP吧),PP的大小為2的整數(shù)次冪,且應該在2-16M之間。?
每個PV中有有限數(shù)量的PP,這些PP合起來形成整個DISK GROUP的可用空間。所有的PV按5-15組成若干組RSS(HP的官方資料中講最小的RSS磁盤數(shù)量是6,最大應不到15,但對底層的分析得知,存在5和15個PV的RSS情況),每個RSS就是一個所謂常規(guī)RAID的冗余組,但這個冗余組不等同于常規(guī)RAID,與常規(guī)RAID相似的是,常規(guī)RAID是以磁盤為單位的RAID算法,而RSS是基于PP的RAID算法。?
為提高性能,HP EVA會有傾向地輪流分配不同的RSS組,但這些RSS之間的數(shù)據(jù)存儲是基于JBOD的(HP官方和很多資料上稱是RAID0,或許是宏觀的概念),每個RSS組成的stripe?的成員其實是不同PV中不同位置的PP。?
無論RSS中成員數(shù)量有多少個,對于VRAID5,一個stripe中的PV數(shù)總是5個。對于VRAID6,一個stripe中的PV數(shù)總是6個。例如,對于VRAID5,EVA會盡可能在N個磁盤中做C(N,5)的組合情況,以期實現(xiàn)IO?負載均衡。?
當一個RSS中某個PV離線,控制器會從同一個RSS組中其他磁盤(同一條帶中已存在的PV之外)中尋找可用的PP,在邏輯上實現(xiàn)每個stripe的rebuild,從而保證整個存儲的安全性。?
當一個RSS中損壞的磁盤數(shù)量足夠少時(少于等于6個),這個RSS的安全性就非常低了,這時候,EVA會合并此RSS到另一個RSS中,這樣可用的冗余空間就是共享的了,空間就可以從另一個較安全的RSS中遷移過來。?
為了保證有足夠的空間提供冗余保護,在創(chuàng)建disk group時,EVA會提供一個Protection Level的保護級別,single表示用2個磁盤的空間做冗余 ,double表示用4個磁盤的空間做冗余。但這個冗余不同于hotspare,這個冗余空間僅會預留到每個PV的尾部,一則,多個磁盤,IO會更均勻,更快;二則,尾部的空間通常是質(zhì)量較差的空間。?
【EVA系列常見故障】?
1、RSS中多個磁盤掉線,超過冗余保護級別。?
2、加入新磁盤,進行數(shù)據(jù)遷移時,新磁盤存在物理故障(此時無法回退,也無法前進)。?
3、VDISK?刪除或EVA initialize。?
4、突發(fā)性主機與存儲無法連接。無法discover到存儲。?
【數(shù)據(jù)恢復解決原理】?
eva系列最核心的結(jié)構(gòu)部分來自于所有vdisk的運算pp表,這個pp map表會因為磁盤的不斷遷移而遷移。所有的故障均可基于此map進行恢復。?
當pp map不存在時,根據(jù)不同的條帶之間的冗余關(guān)系,可有優(yōu)化算法對所有PP進行條帶性集合,從而形成若干組正確的條帶數(shù)據(jù),再基于文件系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)等特征,重組若干條帶。?
【數(shù)據(jù)恢復解決過程】?
1、原始磁盤鏡像,將EVA主機一端的連線拔出,直接連入主機hba卡上,就可以認到所有物理硬盤,之后通過專業(yè)手段(Linux下的dd,windows下的winhex等)進行磁盤鏡像。因eva主機與擴展柜之間多是銅線連接,故而,可能需要在擴展柜上增加光纖收發(fā)模塊,再通過光鏈路接入fc hba卡上。當然,也可以把所有硬盤拆下來后,放入其他光纖通道柜中進行鏡像。?
使用EVA擴展柜進行鏡像的連接圖如下:?
2、通過frombyte recovery for hp eva程序進行vdisk重組,直接寫入成鏡像文件或目標物理磁盤。?
3、按常規(guī)方式解釋鏡像文件或目標磁盤,遷移鏡像或?qū)С鰞?nèi)部文件。
了解更多網(wǎng)絡知識關(guān)注:http://www.vecloud.com/