raid5壞硬盤后數據,raid怎么恢復
瀏覽量: 次 發布日期:2019-01-06 20:59:33
RAID5當一塊硬盤離線后,處理降級狀態,這時候正常的建議是馬上更換硬盤做REBUILD以恢復完整的數據狀態,如果有熱備盤的話,就會自動做REBUILD,這樣做合適嗎?
一組RAID卷在工作很長時間以后也很少會讀到物理硬盤的所有磁盤空間,同一時間更是不可能。部分情況下,硬盤會在沒有讀到的區域或者以前讀取是良好的區域產生壞道,這類壞道因為沒有讀寫過,所以在控制器看來是好的。產生這種壞磁道的最直接危害是在REBUILD過程中。當一塊物理硬盤離線后,通常所有的技術人員及官方資料都會寫盡快做REBUILD,但如果其他硬盤存在這類平常不知的壞磁道,REBUILD又都是對全盤做全面同步,就一定會讀寫到那些壞道,這時候REBUILD沒完成,新盤無法上線,因舊盤里又發現了壞道,便會導致RAID又多出一些下線的硬盤,這樣就可能會導致RAID出現故障,無法自行進行數據恢復了。
所以,當RAID處理降級狀態時,如重要數據容量不大,建議先做備份,當然這種備份應該是異機的,不可備份至當前已降級的RAID中。
如果在REBUILD當中出現另外硬盤離線的情況導致RAID卷OFFLINE,切不可重建RAID,如確定后離線的硬盤,可通過強制上線恢復數據(有些控制器沒有選項,就沒辦法了),也可咨詢數據恢復公司進行處理。
[問題]
當RAID損壞,出現數據丟失的情況下,能否通過重建RAID結構來恢復raid數據?
磁盤陣列環境出現的數據災難中RAID信息丟失的情況占很大比例,很多工程師都有過這樣的經歷:按原來的RAID結構重建一下RAID,數據就恢復出來了。這種方式可行嗎?
[回答]
RAID的重建大致有幾種方式:只創建RAID信息(RAID元信息)、創建RAID時只重新生成校驗(只做同步)、創建RAID時填充初始化。
如果重建的結構與原先的結構不相同(涉及控制器固件、RAID級別、塊大小、校驗方式、盤序),重建好的RAID LOGICAL DRIVER一定和原先是不一樣的,這樣貿然加載文件系統,會破壞文件系統結構,導致數據丟失。
以下假設重建的結構與原先的結構是相同的:
如果控制器的重建方法是只創建RAID信息,那要看之前的RAID結構是正常的還是降級的,如果是降過級的(已有硬盤下過線),重建好后,因數據是由新數據與部分舊數據組合而成的,文件系統會破壞,且不可逆向恢復。如果之前的RAID結構是完好的,重建RAID不會影響數據,可以將原來的數據完全原樣的恢復出來。
如果控制器的重建方法是創建RAID重新生成校驗(即使是后臺的),和上面的情況相同,如果硬盤之前就有離線的,這樣的重建會破壞數據的一致性。如果之前的RAID狀態是ONLINE(GOOD)的,那么這樣的重建不會影響數據。
如果控制器的重建方法是填充數據重建(通常是清0),那無論如何都會破壞數據。
這樣看來,當RAID損壞后重建RAID可以恢復數據的前提是:控制器的設計是不破壞數據的,而且之前的RAID狀態是良好的,同時重建的結構和原先的要完全一致。除此之外的重建都有數據風險。
實際上,多數RAID損壞并不是從良好 一下子到癱瘓的,大多數會通過降級這一步,所以實際上強行重建文件系統無論如何都不是很好的做法,只是降級到癱瘓這段時間內如果數據寫入不多,可能重建后修復文件系統只影星降級到癱瘓這段時間內做的改動。
早期很多基于SCSI的磁盤陣列都會在重建時至少清0前面部分扇區(比如1M,10M等)。目前基于LSI的SAS控制器市場占有率很高,其控制器在重建時往往不會清除數據,但會在后臺重新同步數據,也是有風險的。
一組RAID卷在工作很長時間以后也很少會讀到物理硬盤的所有磁盤空間,同一時間更是不可能。部分情況下,硬盤會在沒有讀到的區域或者以前讀取是良好的區域產生壞道,這類壞道因為沒有讀寫過,所以在控制器看來是好的。產生這種壞磁道的最直接危害是在REBUILD過程中。當一塊物理硬盤離線后,通常所有的技術人員及官方資料都會寫盡快做REBUILD,但如果其他硬盤存在這類平常不知的壞磁道,REBUILD又都是對全盤做全面同步,就一定會讀寫到那些壞道,這時候REBUILD沒完成,新盤無法上線,因舊盤里又發現了壞道,便會導致RAID又多出一些下線的硬盤,這樣就可能會導致RAID出現故障,無法自行進行數據恢復了。

如果在REBUILD當中出現另外硬盤離線的情況導致RAID卷OFFLINE,切不可重建RAID,如確定后離線的硬盤,可通過強制上線恢復數據(有些控制器沒有選項,就沒辦法了),也可咨詢數據恢復公司進行處理。
[問題]
當RAID損壞,出現數據丟失的情況下,能否通過重建RAID結構來恢復raid數據?
磁盤陣列環境出現的數據災難中RAID信息丟失的情況占很大比例,很多工程師都有過這樣的經歷:按原來的RAID結構重建一下RAID,數據就恢復出來了。這種方式可行嗎?
[回答]
RAID的重建大致有幾種方式:只創建RAID信息(RAID元信息)、創建RAID時只重新生成校驗(只做同步)、創建RAID時填充初始化。
如果重建的結構與原先的結構不相同(涉及控制器固件、RAID級別、塊大小、校驗方式、盤序),重建好的RAID LOGICAL DRIVER一定和原先是不一樣的,這樣貿然加載文件系統,會破壞文件系統結構,導致數據丟失。

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