RAID的重建大致有幾種方式:只創(chuàng)建RAID信息(RAID元信息)、創(chuàng)建RAID時(shí)只重新生成校驗(yàn)(只做同步)、創(chuàng)建RAID時(shí)填充初始化。
如果重建的結(jié)構(gòu)與原先的結(jié)構(gòu)不相同(涉及控制器固件、RAID級(jí)別、塊大小、校驗(yàn)方式、盤序),重建好的RAID LOGICAL DRIVER一定和原先是不一樣的,這樣貿(mào)然加載文件系統(tǒng),會(huì)破壞文件系統(tǒng)結(jié)構(gòu),導(dǎo)致數(shù)據(jù)丟失。
以下假設(shè)重建的結(jié)構(gòu)與原先的結(jié)構(gòu)是相同的:
如果控制器的重建方法是只創(chuàng)建RAID信息,那要看之前的RAID結(jié)構(gòu)是正常的還是降級(jí)的,如果是降過(guò)級(jí)的(已有硬盤下過(guò)線),重建好后,因數(shù)據(jù)是由新數(shù)據(jù)與部分舊數(shù)據(jù)組合而成的,文件系統(tǒng)會(huì)破壞,且不可逆向恢復(fù)。如果之前的RAID結(jié)構(gòu)是完好的,重建RAID不會(huì)影響數(shù)據(jù),可以將原來(lái)的數(shù)據(jù)完全原樣的恢復(fù)出來(lái)。
如果控制器的重建方法是創(chuàng)建RAID重新生成校驗(yàn)(即使是后臺(tái)的),和上面的情況相同,如果硬盤之前就有離線的,這樣的重建會(huì)破壞數(shù)據(jù)的一致性。如果之前的RAID狀態(tài)是ONLINE(GOOD)的,那么這樣的重建不會(huì)影響數(shù)據(jù)。
如果控制器的重建方法是填充數(shù)據(jù)重建(通常是清0),那無(wú)論如何都會(huì)破壞數(shù)據(jù)。RAID數(shù)據(jù)恢復(fù)
這樣看來(lái),當(dāng)RAID損壞后重建RAID可以恢復(fù)數(shù)據(jù)的前提是:控制器的設(shè)計(jì)是不破壞數(shù)據(jù)的,而且之前的RAID狀態(tài)是良好的,同時(shí)重建的結(jié)構(gòu)和原先的要完全一致。除此之外的重建都有數(shù)據(jù)風(fēng)險(xiǎn)。
實(shí)際上,多數(shù)RAID損壞并不是從良好一下子到癱瘓的,大多數(shù)會(huì)通過(guò)降級(jí)這一步,所以實(shí)際上強(qiáng)行重建文件系統(tǒng)無(wú)論如何都不是很好的做法,只是降級(jí)到癱瘓這段時(shí)間內(nèi)如果數(shù)據(jù)寫入不多,可能重建后修復(fù)文件系統(tǒng)只影星降級(jí)到癱瘓這段時(shí)間內(nèi)做的改動(dòng)。
早期很多基于SCSI的磁盤陣列都會(huì)在重建時(shí)至少清0前面部分扇區(qū)(比如1M,10M等)。目前基于LSI的SAS控制器市場(chǎng)占有率很高,其控制器在重建時(shí)往往不會(huì)清除數(shù)據(jù),但會(huì)在后臺(tái)重新同步數(shù)據(jù),也是有風(fēng)險(xiǎn)的。