在一個由7塊硬盤組成的RAID5陣列中,出現了存儲故障。管理員在硬盤掉線后僅添加了新硬盤進行重建(rebuild),未移除掉線的舊盤。最終導致存儲系統癱瘓,多個硬盤故障使得數據不可訪問。管理員初步判斷是RAID中某些硬盤掉線,導致存儲無法使用。
硬盤編號與取出:所有硬盤被編號并從存儲中取出。硬件工程師檢測發現硬盤無物理故障,推測問題為邏輯壞道或其他原因。
全盤鏡像:為避免對原始硬盤數據造成破壞,所有硬盤以只讀方式進行了扇區級的全盤鏡像。后續所有恢復操作基于鏡像文件完成。
分析底層數據:鏡像盤中每扇區包含512字節數據和8字節的校驗碼,因此每扇區實際大小為520字節。工程師編寫程序去除8字節校驗,以便后續恢復操作。
舊盤排除:由于存在3塊掉線的舊盤,首先需通過比較磁盤數據來識別并排除舊盤。通過分析,每對數據中有一塊盤的數據量較少,這些盤被識別為舊盤并排除。
識別RAID類型:該陣列為雙循環RAID5,而非普通RAID5,這使得常規恢復軟件(如winhax)無法重組陣列。經過測試,UFS軟件能夠正確重組該RAID結構。
數據完整性測試:初步恢復的RAID中數據并非最新版本。華軍科技工程師判斷,因管理員未及時處理掉線硬盤,導致兩塊硬盤掉線后數據更新不完整。
踢盤測試:通過嘗試踢掉每塊硬盤,反復重組RAID,測試最新數據的可用性。直到找出能夠生成最新數據的組合,恢復操作才告一段落。
數據導出與驗證:導出數據后,經過多輪驗證,工程師確認數據沒有問題,并交由用戶方檢測。
用戶方確認:用戶方對恢復數據進行了仔細核對,確認數據完整有效。
本次數據恢復過程中,關鍵在于:
精確排除舊盤,以確保RAID重組時使用的數據是最新的。
通過踢盤測試和多次RAID重組,找回最新且完整的數據版本。
最終,用戶確認數據恢復完整有效,整個恢復工作圓滿完成。