1. 程式人生 > >7種導致陣列資料丟失的原因/不可不防

7種導致陣列資料丟失的原因/不可不防

在資料恢復工作中經常能遇到伺服器磁碟陣列資料恢復的案例,本文為大家介紹一下不同raid磁碟陣列資料恢復的型別和原因分析。

1、磁碟陣列處於降級狀態時未及時rebuild磁碟陣列:

RAID磁碟陣列的資料安全冗餘原理是利用空餘出的部分空間實現的,當陣列中有成員盤下線後便無法繼續提供冗餘儲存。如果此時未能及時更換新磁碟並rebuild整個卷的話一旦raid陣列中其他成員盤發生離線行為將導致整個raid卷無法工作,這也是在資料恢復工作中遇到較多的故障型別。

2、raid陣列控制器故障:

控制器在磁碟陣列中充當著作業系統與物理硬碟之間的連結紐帶,並且每組不同的磁碟陣列中的硬碟數量、容量大小、raid級別、校驗方式等raid資訊都各有不同,這些資訊有的儲存於硬碟,有的儲存於陣列卡或者二者都有儲存。如果控制器出現故障一般情況下無法進行raid資訊的還原,即使能夠還原raid結構再次重建raid陣列也無法進行資料恢復。

3、韌體演算法缺陷:

RAID的建立、重建、降級、保護等工作在控制器的實現上是非常複雜的演算法,當然這裡面的複雜更多地是提供儘可能萬無一失的無漏洞演算法,儘管廠商不會輕易承認控制器的BUG,但毫無疑問,這些問題在任何一款控制器上都無法避免。因為韌體演算法上BUG,可能會產生很多無法解釋的故障。比如在部分伺服器資料恢復案例中,有一些早期生產的DELL 2950伺服器,會有RAID一塊盤OFFLINE後故障盤與報警燈不一致的情況,導致客戶在更換故障盤REBUILD時拔錯盤,整個RAID組崩潰。

4、IO通道受阻導致RAID掉盤:

RAID控制器在設計時為了資料的絕對安全,會盡可能避免寫資料到不穩定的儲存介質上,這樣,當控制器與物理硬碟進行IO時,如果時間超過某個閥值,或不滿足校驗關係,便會認為對應的儲存裝置已不具備持續工作的能力,但會讓其強制下線,通知管理員儘快解決問題。這種設計的初衷很好,同時也是正確的設計方式,但對於如物理連結線路鬆動,或因硬碟機械工作時反應超時(可能硬碟還是完好的)等隨機原因對控制器而言無法分辨裝置是否具備和之前一樣的穩定狀態,所以很不在意的某些小環節,便會導致RAID卷出現故障,此類故障的發生概率極大,而且無法避免。這也是大多數RAID出現故障後,硬碟並未有故障的原因,我們好多資料恢復服務的客戶會因此質疑伺服器廠商,實際上是有苦難言的,一定程度上,越是設計安全的控制器,越會發生此類現象。

5、控制器的穩定性:

RAID的控制器在ONLINE狀態下(無離線盤)工作是最穩定的,相對而言,當部分硬碟損壞(可能是邏輯故障)後離線,控制器便會工作在一個比較吃力的狀態,這也是好多中低端的RAID控制器在一塊盤離線後讀寫效能急速下降的原因。控制器的負載太重便會極大地增加資料吞吐時出現IO滯留的可能性,從而導致如上面第4點提及的RAID離線。一個不具備高速硬體處理晶片,不具備高速緩衝的控制器發生這類故障的概率要高得多。為了避免出現故障後資料恢復帶來的業務停頓與額外開銷,還是儘量不要選擇這類磁碟陣列控制器。

6、陣列中硬碟故障:

多數管理員認為只要正常工作的磁碟陣列中就不會存在損壞的硬碟,因為raid陣列中一旦有硬碟損壞後陣列會踢損壞硬碟下線,然而實際上並非如此。一組RAID卷在工作很長時間以後也很少會讀到物理硬碟的所有磁碟空間,同一時間更是不可能。部分情況下,硬碟會在沒有讀到的區域或者以前讀取是良好的區域產生壞道,這類壞道因為沒有讀寫過,所以在控制器看來是好的。產生這種壞磁軌的最直接危害是在REBUILD過程中。當一塊物理硬碟離線後,通常所有的技術人員及官方資料都會寫儘快做REBUILD,但如果其他硬碟存在這類平常不知的壞磁軌,REBUILD又都是對全盤做全面同步,就一定會讀寫到那些壞道,這時候REBUILD沒完成,新盤無法上線,因舊盤裡又發現了壞道,便會導致RAID又多出一些下線的硬碟,這樣就可能會導致RAID出現故障,無法自行進行資料恢復了。

7、人為誤操作:

涉及資料恢復的資料災難有相當一部分也是可以避免的,例如操作失誤導致誤拔了RAID裡的硬碟、更換壞盤不及時、給RAID陣列除塵時忘了原來的順序、不小心刪除了原RAID配置等。