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