近接手一個HP服務器4塊盤的RAID5,其中一塊盤物理上識別不了,于是用其余3塊盤組合恢復數(shù)據(jù),發(fā)現(xiàn)恢復出來的數(shù)據(jù)不正常,于是想辦法修復那塊物理故障的硬盤,幸好修好了這塊物理故障的硬盤,把鏡像做好了.于是按照下面的步驟來:
1、采用故障硬盤的鏡像參與RAID5組合,分3次缺不同的硬盤組合數(shù)據(jù);
2、導出原先覺得有問題的數(shù)據(jù),嘗試打開,看看文件是否正常。
結果是:無論缺哪一塊盤,組合出來的數(shù)據(jù)都是異常的,打開都有問題。用“護航艦”檢測4塊盤的冗余情況,都出現(xiàn)不符合raid5冗余信息的數(shù)據(jù)。按照以往的經(jīng)驗,可能就直接宣布恢復失敗。忽然想起我很久以前恢復過的一個案例,跟這個案例類似。于是按照不缺盤的方式組合,結果出人意料:恢復出來的數(shù)據(jù)都能打開!
從這個案例來講,一開始的思路就是掉入Raid5 缺盤排除異常硬盤的組合就一定能判斷出哪塊盤不新鮮的陷阱。我們來分析一下:
1、4塊盤的Raid5,如果4塊盤都是好的,用4塊盤組合數(shù)據(jù)肯定沒問題,缺任意一塊盤組合數(shù)據(jù)也是沒問題的;
2、4塊盤的Raid5,如果其中有一塊盤數(shù)據(jù)不新鮮,那么我們通過缺盤組合驗證數(shù)據(jù),就能判斷出哪塊盤數(shù)據(jù)不新鮮;
3、如果挨個缺盤組合,數(shù)據(jù)都不對,那么我們往往會放棄下一步恢復(這種情況會出現(xiàn)在一開始接手的時候有一塊盤出現(xiàn)物理問題,我們先嘗試用其余的硬盤來組合恢復數(shù)據(jù),如果數(shù)據(jù)不對,我們就認為肯定有一塊盤數(shù)據(jù)不新鮮,而且數(shù)據(jù)不新鮮的硬盤就在這正常的硬盤中,當我們把原來壞掉的硬盤修復好以后,我們采取的思路就是用這個原來的壞盤參與組合,缺原來好盤中的一個,而不是采用所有的硬盤來組合,正是我們忽略了這一步)
在4個盤組成的Raid5的陣列中,為什么我們缺任何一塊盤組合數(shù)據(jù)都不對呢?而用所有的硬盤組合數(shù)據(jù)就對呢?也許在數(shù)據(jù)恢復行業(yè)里,有人碰到過這個問題,可能也沒想明白是什么回事。我經(jīng)過了一番思考得出以下結論:
由于RAID卡的XOR運算模塊不起作用或者出現(xiàn)異常,導致往磁盤陣列中寫數(shù)據(jù)時,數(shù)據(jù)塊寫入成功,但是冗余(校驗)塊沒有寫入成功或者XOR運算出錯得到一個錯誤的結果寫入校驗塊位置,這樣我們用工具運算4塊盤的XOR結果時得到一個錯誤的結果,我們就認為其中有壞盤。因為數(shù)據(jù)塊寫入正常,而校驗塊錯誤,所以我們不能用缺盤的方式來組合,一定要用所有的硬盤來組合才能恢復出正常的數(shù)據(jù)。