您好,登錄后才能下訂單哦!
【故障描述】
某法院的一臺HP-P4500的存儲系統,底層是12塊1TB的硬盤組的RAID。其中每6個1TB的盤一組,第一組的前面一部分組了一個RAID0+1,是存放HP-P4500嵌入式系統,接著組了一個RAID5存放數據,第二組組了一個RAID5。在存儲系統上層一共分了兩個卷,卷大小一個為3TB,一個為5TB。后來因磁盤故障導致存儲不可用,客戶先請HP的工程做更換磁盤,強制上線,但存儲還是不可用。最后才聯系我們做數據恢復。
【硬件檢測】
我們的硬件工程師先對客戶的12塊硬盤做了硬件檢測,發現客戶的硬盤都正常。既排除硬盤硬件故障。既然都正常,我們就對12塊硬盤做了全盤鏡像。
【故障分析】
我們使用專業的工具對備份出來的鏡像做了詳細的分析,發現底層的RAID是一個HP雙循環RAID5。并且第一組RAID是好的,也就是第二組RAID的損壞導致存儲上層的卷不可用,第二RAID也是一個RAID5,如果是其中一個硬盤掉線那么以RAID5的存儲原理應該不會導致存儲不可用。因此可以判斷第二組RAID中至少是掉了兩塊磁盤,其中一塊是早就掉線的,里面的數據都是舊的,我們需找出早就掉線的那塊磁盤。可是我們通過硬件檢測發現所有的硬盤都沒有硬件故障,那么我們該如何判斷掉線的盤是那一個呢?
【解決方案】
由于并不知道RAID中那一塊硬盤是早掉線的,所以沒辦法重組RAID。經過認真思考后確定有兩種可行方案。
方案一:窮舉法,即假設其中某一塊磁盤是早就掉線的,踢掉此盤,重組RAID然后生成全部數據,最后將數據掛載到HP-P4500上,看數據是否正確。如果數據不正確,那么再假設另一塊盤是掉線的,以此循環。雖然這種方案可行,但是由于每次重組RAID生成數據的數據時間太長,并且準確性很低。
方案二:窮舉加校驗,還是和窮舉法一樣,假設某個磁盤是掉線的,踢掉磁盤后重組RAID,但不是生成全部的數據,而是只生成前面5G的數據,因為HP-P4500內部存儲的數據的索引表位圖位于RAID的前幾個G之內(因為在這之前我們已經研究過HP-P4500的內部存儲原理)。我們只需要查看這個索引表的位圖的信息是否正確就可以判斷此RAID是否正確。如果正確那么生成此RAID的數據即可完成RAID的重組。
【實施方案】
采用第二種解決方案,經過幾次測試很快就判斷出正確的RAID。連夜生成此RAID的數據。生成完數據后,將生成的數據和第一組完好的RAID一同掛載到HP-P4500上。然后啟動存儲,上層的卷由不可用變的可用了。查看了最新的文件發現一切都正常。
【數據恢復成功】
由于上層的卷直接可以用了,所以數據也都可見了,但是考慮到安全問題,我們還是將卷里的文件都拷貝出來,然后移交給客戶。經過漫長的底層分析,加上不斷的測試。終于在用戶要求的時間內將數據恢復完成。整個恢復過程一共歷時兩天。之所以能這么快恢復,還是在于我們之前研究過HP-P4500的存儲原理。知道了HP-P4500的存儲原理以后,關于它的所有數據災難都可以進行恢復。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。