IBM x3850 RAID5崩潰數(shù)據(jù)恢復(fù)及操作系統(tǒng)復(fù)原教程
IBM X3850服務(wù)器,5塊73G SAS硬盤,其中4塊組成一個RAID5,另一塊作為熱備盤(Hot-Spare),3號盤早已經(jīng)離線,但熱備盤未自動激活rebuild(原因不明),之后2號盤離線,RAID崩潰。 操作系統(tǒng)為linux redhat 5.3,應(yīng)用系統(tǒng)為構(gòu)架于oracle的一個oa,數(shù)據(jù)重要,時間很急。因oracle已經(jīng)不再對本oa系統(tǒng)提供后續(xù)支持,用戶要求盡可能數(shù)據(jù)恢復(fù)+操作系統(tǒng)復(fù)原。

【初檢及恢復(fù)方案】經(jīng)工程師檢測熱備盤完全無啟用,硬盤無明顯物理故障,無明顯同步表現(xiàn)。
數(shù)據(jù)通??苫謴?fù),工程師給出了解決方案: 1、保護(hù)原環(huán)境,關(guān)閉服務(wù)器,確保在恢復(fù)過程中不再開啟服務(wù)器。
2、將故障硬盤標(biāo)好序號,確保在拿出槽位后可以完全復(fù)原。
3、將故障硬盤掛載至只讀環(huán)境,對所有故障硬盤做完全鏡像。備份完成后交回原故障盤,之后的恢復(fù)操作直到數(shù)據(jù)確認(rèn)無誤前不再涉及原故障盤。 4、對備份盤進(jìn)行RAID結(jié)構(gòu)分析,得到其原來的RAID級別,條帶規(guī)則,條帶大小,校驗(yàn)方向,META區(qū)域等。
5、根據(jù)得到的RAID信息搭建一組虛擬的RAID5環(huán)境。進(jìn)行虛擬磁盤及文件系統(tǒng)解釋。
6、檢測虛擬結(jié)構(gòu)是否正確,如不正確,重復(fù)4-7過程。確定數(shù)據(jù)無誤后,按用戶要求回遷數(shù)據(jù)。如果仍然使用原盤,需確定已經(jīng)完全對原盤做過備份后,重建RAID,再做回遷?;剡w操作系統(tǒng)時,可以使用linux livecd或win pe(通常不支持)等進(jìn)行,也可以在故障服務(wù)器上用另外硬盤安裝一個回遷用的操作系統(tǒng),再進(jìn)行扇區(qū)級別的回遷。
【數(shù)據(jù)恢復(fù)過程】 1、對原硬盤進(jìn)行完整鏡像,鏡像后發(fā)現(xiàn)2號盤有10-20個壞扇區(qū),其余磁盤,均無壞道。
2、分析結(jié)構(gòu):得到的最佳結(jié)構(gòu)為0,1,2,3盤序,缺3號盤。
3、組好后數(shù)據(jù)驗(yàn)證,200M以上的最新壓縮包解壓無報錯,確定結(jié)構(gòu)正確。 4、直接按此結(jié)構(gòu)生成虛擬RAID到一塊單硬盤上,打開文件系統(tǒng)無明顯報錯。
5、確定備份包安全的情況下,經(jīng)客戶同意后,對原盤重建RAID,重建時已經(jīng)用全新硬盤更換損壞的2號盤。將恢復(fù)好的單盤用USB方式接入故障服務(wù)器,再用linux SystemRescueCd啟動故障服務(wù)器,之后通過dd命令進(jìn)行全盤回寫。
6、回寫后,啟動操作系統(tǒng)。【系統(tǒng)復(fù)原過程】 dd所有數(shù)據(jù)后,啟動操作系統(tǒng),無法進(jìn)入,報錯信息為:/etc/rc.d/rc.sysinit:Line 1:/sbin/pidof:Permission denied 懷疑此文件權(quán)限有問題,用SystemRescueCd重啟后檢查,此文件時間,權(quán)限,大小均有明顯錯誤,顯然節(jié)點(diǎn)損壞。 重新分析重組數(shù)據(jù)中的根分區(qū),定位出錯的/sbin/pidof,發(fā)現(xiàn)問題因2號盤壞道引起。 使用0,1,3這3塊盤,針對2號盤的損壞區(qū)域進(jìn)行xor補(bǔ)齊。補(bǔ)齊后重新校驗(yàn)文件系統(tǒng),依然有錯誤,再次檢查inode表,發(fā)現(xiàn)2號盤損壞區(qū)域有部分節(jié)點(diǎn)。很明顯,雖然節(jié)點(diǎn)中描述的uid還正常存在,但屬性,大小,以最初的分配塊全部是錯誤的。按照所有可能進(jìn)行分析,確定無任何辦法找回此損壞節(jié)點(diǎn)。只能希望修復(fù)此節(jié)點(diǎn),或復(fù)制一個相同的文件過來。 對所有可能有錯的文件,均通過日志確定原節(jié)點(diǎn)塊的節(jié)點(diǎn)信息,再做修正。 修正后重新dd根分區(qū),執(zhí)行fsck -fn /dev/sda5,進(jìn)行檢測,依然有報錯。
下一篇:linux安裝oracle