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