您好,登錄后才能下訂單哦!
【故障描述】
華為S5300,12塊FC硬盤,整個存儲空間由450GB和600G FC的硬盤組成,其中11塊硬盤組成一個RAID5的陣列,剩余1塊做成熱備盤使用。由于RAID5陣列中出現1塊硬盤故障,熱備盤成功激活,在進行同步的過程中又一塊硬盤出現故障,因此導致RAID5陣列癱瘓,上層LUN無法正常使用。
【恢復過程】
一、檢測磁盤
由于存儲是因為RAID陣列中某些磁盤掉線,從而導致整個存儲不可用。因此接收到磁盤以后先對所有磁盤做物理檢測,檢測完后發現一塊硬盤有物理故障,其他硬盤沒有物理故障。
二、備份數據
考慮到,數據的安全性以及可還原性,在做數據恢復之前需要對所有源數據做備份,以防萬一其他原因導致數據無法再次恢復。使用dd命令或winhex工具將所有磁盤都鏡像成文件。
三、故障分析
1、分析故障原因
由于前兩個步驟并檢測到磁盤有物理故障,由此推斷可能是由于某些磁盤讀寫不穩定和物理故障導致故障發生。因為華為S5300控制器檢查磁盤的策略很嚴格,一旦某些磁盤性能不穩定,華為S5300控制器就認為是壞盤,就將認為是壞盤的磁盤踢出RAID組。而一旦RAID組中掉線的盤到達到RAID級別允許掉盤的極限,那么這個RAID組將變的不可用,上層基于RAID組的LUN也將變的不可用,之后又新建RAID,有一塊硬盤在同步的過程中被損壞,目前初步了解的情況為基于RAID組的LUN分配給linux系統使用,重要數據為Oracle數據庫。
2、分析RAID組結構
華為S5300存儲的LUN都是基于RAID組的,因此需要先分析底層RAID組的信息,然后根據分析的信息重構原始的RAID組。分析每一塊數據盤,發現一塊盤的數據同其它數據盤不太一樣,初步認為可能是hot Spare盤。接著分析其他數據盤,分析Oracle數據庫頁在每個磁盤中分布的情況,并根據數據分布的情況得出RAID組的條帶大小,磁盤順序及數據走向等RAID組的重要信息。
3、分析RAID組被同步損壞盤
根據上述分析的RAID信息,嘗試通過北亞自主開發的RAID虛擬程序將原始的RAID組虛擬出來。但由于整個RAID組中掉線兩塊盤并且有一塊硬盤數據被同步損壞。仔細分析每一塊硬盤中的數據,發現有一塊硬盤在同一個條帶上的數據和其他硬盤明顯不一樣,因此初步判斷此硬盤可能是被同步掉損壞的硬盤,通過北亞自主開發的RAID校驗程序對這個條帶做校驗,因此可以明確被同步損壞盤了。
4、分析RAID組中的LUN信息
由于LUN是基于RAID組的,因此需要根據上述分析的信息將RAID組最新的狀態虛擬出來。然后分析LUN在RAID組中的分配情況,以及LUN分配的數據塊MAP。因此只需要將LUN的數據塊分布MAP提取出來。然后針對這些信息編寫相應的程序,LUN的數據MAP做解析,然后根據數據MAP并導出LUN的數據。
四、解析EXT3文件系統
1、解析EXT3文件系統
由于是使用熱備盤虛擬的RAID結構,EXT3文件系統無法正常掛載,所以只能提取oracle數據庫文件,利用自主開發的文件系統解析程序對其進行文件系統的解析,導出oracle數據庫文件,并把數據庫文件移交給數據庫工程師進行校驗和驗證
五、檢測Oracle數據庫文件及修復
1、檢測數據庫文件是否完整
使用Oracle數據庫文件檢測工具檢測每個數據庫文件是否完整,發現有錯誤。再使用北亞自主研發的Oracle數據庫檢測工具(檢驗更嚴格),發現有部分數據庫文件和日志文件錯誤, system 和 sysaux表空間各存在100多壞塊;3個控制文件都存在壞塊許多壞塊,控制文件全部損壞;eschoolspace表空間的3個文件的壞塊更多,達到1000個;undotbs02丟失;數據庫工程師對此類文件進行修復,如下圖:
2、修復Oracle數據庫
我們創建了控制文件,創建undo表空間,啟動數據庫到mount。system數據文件壞塊使得數據庫不能open。各種隱含參數也不能繞過system的壞塊;搭建數據庫環境。使用dmp文件還原數據庫。使用3月9號之后的導入,都報錯,大約只能導入10G左右的數據,如下圖:
六、數據驗證
由用戶方配合,啟動Oracle數據庫,在本地虛擬機安裝OA客戶端。通過OA客戶端對數據記錄進行驗證,并且用戶安排不同部門人員進行遠程驗證。
七、數據恢復結論
由于故障發生后又重建RAID,導致一塊盤的數據被同步損壞,對后期的數據恢復造成了困難。因為熱備盤同步了一段時間寫入了部分數據,所以使用熱備盤里面的數據進行恢復,只能恢復部分數據,只有3月9日之前的數據。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。