天天看點

EMC FC AX-4存儲崩潰,raid5硬碟損壞的資料恢複過程

故障描述:

   北京某醫院EMC FC AX-4存儲崩潰,由于RAID5陣列中出現2塊硬碟損壞,而此時隻有一塊熱備盤成功激活,是以導緻RAID5陣列癱瘓,上層LUN無法正常使用,整個存儲空間由12塊1TB STAT的硬碟組成的,其中10塊硬碟組成一個RAID5的陣列,其餘兩塊做成熱備盤使用。

  由于前兩個步驟并沒有檢測到磁盤有實體故障或者是壞道,由此推斷可能是由于某些磁盤讀寫不穩定導緻故障發生。因為EMC控制器檢查磁盤的政策很嚴格,一旦某些磁盤性能不穩定,EMC控制器就認為是壞盤,就将認為是壞盤的磁盤踢出RAID組。而一旦RAID組中掉線的盤到達到RAID級别允許掉盤的極限,那麼這個RAID組将變的不可用,上層基于RAID組的LUN也将變的不可用。目前初步了解的情況為基于RAID組的LUN隻有一個,配置設定給SUN小機使用,上層檔案系統為ZFS。

解決過程

1、硬碟檢測

2、備份資料

  考慮到資料的安全性以及可還原性,在做資料恢複之前需要對所有源資料做備份,以防萬一其他原因導緻資料無法再次恢複。使用winhex将所有磁盤都鏡像成檔案,由于源磁盤的扇區大小為520位元組,是以還需要使用特殊工具将所有備份的資料再做520 to 512位元組的轉換。

3、分析RAID組結構

  EMC存儲的LUN都是基于RAID組的,是以需要先分析底層RAID組的資訊,然後根據分析的資訊重構原始的RAID組。分析每一塊資料盤,發現8号盤和11号盤完全沒有資料,從管理界面上可以看到8号盤和11号盤都屬于Hot Spare,但8号盤的Hot Spare替換了5号盤的壞盤。是以可以判斷雖然8号盤的Hot Spare雖然成功激活,但由于RAID級别為RAID5,此時RAID組中還缺失一塊硬碟,是以導緻資料沒有同步到8号硬碟中。繼續分析其他10塊硬碟,分析資料在硬碟中分布的規律,RAID條帶的大小,以及每塊磁盤的順序。

4、分析RAID組掉線盤

  根據上述分析的RAID資訊,嘗試通過北亞自主開發的RAID虛拟程式将原始的RAID組虛拟出來。但由于整個RAID組中一共掉線兩塊盤,是以需要分析這兩塊硬碟掉線的順序。仔細分析每一塊硬碟中的資料,發現有一塊硬碟在同一個條帶上的資料和其他硬碟明顯不一樣,是以初步判斷此硬碟可能是最先掉線的,通過北亞自主開發的RAID校驗程式對這個條帶做校驗,發現除掉剛才分析的那塊硬碟得出的資料是最好的,是以可以明确最先掉線的硬碟了。

5、分析RAID組中的LUN資訊

  由于LUN是基于RAID組的,是以需要根據上述分析的資訊将RAID組重組出來。然後分析LUN在RAID組中的配置設定資訊,以及LUN配置設定的資料塊MAP。由于底層隻有一個LUN,是以隻需要分析一份LUN資訊就OK了。然後根據這些資訊使用北亞raid恢複(datahf.net)程式,解釋LUN的資料MAP并導出LUN的所有資料。

6、解釋ZFS檔案系統并修複

  利用北亞資料恢複(datahf.net自主開發的ZFS檔案系統解釋程式對生成的LUN做檔案系統解釋,發現程式在解釋某些檔案系統元檔案的時候報錯。迅速安排開發工程師對程式做debug調試,分析程式報錯原因。接着安排檔案系統工程師分析ZFS檔案系統是否因為版本原因,導緻程式不支援。經過長達7小時的分析與調試,發現ZFS檔案系統因存儲突然癱瘓導緻其中某些元檔案損壞,進而導緻解釋ZFS檔案系統的程式無法正常解釋。

  上述分析明确了ZFS檔案系統因存儲癱瘓導緻部分檔案系統元檔案損壞,是以需要對這些損壞的檔案系統元檔案做修複,才能正常解析ZFS檔案系統。分析損壞的元檔案發現,因當初ZFS檔案正在進行IO操作的同時存儲癱瘓,導緻部分檔案系統元檔案沒有更新以及損壞。人工對這些損壞的元檔案進行手工修複,保證ZFS檔案系統能夠正常解析。

7、導出所有資料

  利用程式對修複好的ZFS檔案系統做解析,解析所有檔案節點及目錄結構。部分檔案目錄截圖如下:

  由于資料都是文本類型及DCM圖檔,需要搭建太多的環境。由使用者方工程師指點某些資料進行驗證,驗證結果都沒有問題,資料均完整。部分檔案驗證如下:

<a href="http://s5.51cto.com/wyfs02/M01/8C/79/wKiom1htr3bRmjfAAASkq9QHEF4516.jpg-wh_500x0-wm_3-wmp_4-s_136357263.jpg" target="_blank"></a>

<a href="http://s5.51cto.com/wyfs02/M02/8C/79/wKiom1htr3eT6HBbAAET7rHNJvk820.jpg-wh_500x0-wm_3-wmp_4-s_3982947558.jpg" target="_blank"></a>

本文轉自 宋國建 51CTO部落格,原文連結:http://blog.51cto.com/sun510/1889181,如需轉載請自行聯系原作者