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