很久沒出來寫博客了,過年來了一直很忙,尤爲是最近,忙着作了好幾個大單子。先是一個醫院50TB的HP-EVA4400,接着是一個法院12TB的HP-P4500,前幾天還有作了一個某遊樂城12TB的VMware VMFS虛擬機恢復。雖然忙點,可是學會了好多新的知識,一直想抽點時間把最近的工做整理成文章發表一下,但是家裏沒有聯網,在公司又得忙工做。還好最近工做不是很忙,能夠在公司抽點時間寫寫。好了,言歸正傳,進入主題吧!安全
【故障描述】ide
某法院的一臺HP-P4500的存儲系統,底層是12塊1TB的硬盤組的RAID。其中每6個1TB的盤一組,第一組的前面一部分組了一個RAID0+1,是存放HP-P4500嵌入式系統,接着組了一個RAID5存放數據,第二組組了一個RAID5。在存儲系統上層一共分了兩個卷,卷大小一個爲3TB,一個爲5TB。後來因磁盤故障致使存儲不可用,客戶先請HP的工程作更換磁盤,強制上線,但存儲仍是不可用。最後才聯繫咱們作數據恢復。工具
【硬件檢測】測試
咱們的硬件工程師先對客戶的12塊硬盤作了硬件檢測,發現客戶的硬盤都正常。既排除硬盤硬件故障。既然都正常,咱們就對12塊硬盤作了全盤鏡像。spa
【故障分析】索引
咱們使用專業的工具對備份出來的鏡像作了詳細的分析,發現底層的RAID是一個HP雙循環RAID5。而且第一組RAID是好的,也就是第二組RAID的損壞致使存儲上層的卷不可用,第二RAID也是一個RAID5,若是是其中一個硬盤掉線那麼以RAID5的存儲原理應該不會致使存儲不可用。所以能夠判斷第二組RAID中至少是掉了兩塊磁盤,其中一塊是早就掉線的,裏面的數據都是舊的,咱們需找出早就掉線的那塊磁盤。但是咱們經過硬件檢測發現全部的硬盤都沒有硬件故障,那麼咱們該如何判斷掉線的盤是那一個呢?博客
【解決方案】虛擬機
因爲並不知道RAID中那一塊硬盤是早掉線的,因此沒辦法重組RAID。通過認真思考後肯定有兩種可行方案。it
方案一:窮舉法,即假設其中某一塊磁盤是早就掉線的,踢掉此盤,重組RAID而後生成所有數據,最後將數據掛載到HP-P4500上,看數據是否正確。若是數據不正確,那麼再假設另外一塊盤是掉線的,以此循環。雖然這種方案可行,可是因爲每次重組RAID生成數據的數據時間太長,而且準確性很低。class
方案二:窮舉加校驗,仍是和窮舉法同樣,假設某個磁盤是掉線的,踢掉磁盤後重組RAID,但不是生成所有的數據,而是隻生成前面5G的數據,由於HP-P4500內部存儲的數據的索引表位圖位於RAID的前幾個G以內(由於在這以前咱們已經研究過HP-P4500的內部存儲原理)。咱們只須要查看這個索引表的位圖的信息是否正確就能夠判斷此RAID是否正確。若是正確那麼生成此RAID的數據便可完成RAID的重組。
【實施方案】
採用第二種解決方案,通過幾回測試很快就判斷出正確的RAID。連夜生成此RAID的數據。生成完數據後,將生成的數據和第一組無缺的RAID一同掛載到HP-P4500上。而後啓動存儲,上層的卷由不可用變的可用了。查看了最新的文件發現一切都正常。
【數據恢復成功】
因爲上層的卷直接能夠用了,因此數據也均可見了,可是考慮到安全問題,咱們仍是將卷裏的文件都拷貝出來,而後移交給客戶。通過漫長的底層分析,加上不斷的測試。終於在用戶要求的時間內將數據恢復完成。整個恢復過程一共歷時兩天。之因此能這麼快恢復,仍是在於咱們以前研究過HP-P4500的存儲原理。知道了HP-P4500的存儲原理之後,關於它的全部數據災難均可以進行恢復。
本文全部數據恢復流程及數據恢復技術均來自北亞數據恢復中心。
做者:鄧奇
聯繫方式:18911808630