RAID的安全效能

來源:互聯網
上載者:User

問題:

資料恢複既然是資料災難的一種補救措施,那設計得絕對安全的RAID磁碟陣列系統也會出現資料災難嗎?為什嗎?在RAID資料恢複領域裡常見的故障類型有哪些?

回答

RAID設計的初衷大約有3個原因:解決容量問題、解決IO效能問題與解決儲存安全(冗餘)問題。從資料恢複的角度看,我們暫不討論容量與IO效能方面,僅討論儲存安全。

RAID中可以起到儲存安全的組織方案常見的為RAID1、RAID5及其變形,基本設計思路是相似的,都是能過一定的演算法,用多塊硬碟之間的演算法維護來保證當部分資料異常時,可通過特定演算法還原出來。拿RAID5的設計方式來看,舉個簡單的例子說明一下,如果我們要記錄兩個數字,那麼可以通過再多記錄他們的和來達到記錄的冗餘性,就像我們記錄3和5,同時再記錄一下8(為3+5的和),那麼如果我們不記得到底是幾和5,只需要用8-5就可以算出這個丟失的數字了,其餘情況依此。在磁碟陣列裡同樣是以某種演算法來達到保全資料的目的,當一組3塊盤的RAID5正常工作時,所有寫入RAID裡的資料都正確地寫到特定磁碟地址,同時再產生一個特定的計算值(通常稱為校正和),這個時候的讀寫效率是最好的。但當其中一塊盤出現故障時,儲存在這塊故障盤上的原有資料就要通過其他硬碟的資料恢複出來,當然這個過程中控制器(硬RAID為RAID卡,軟RAID實際上是個驅動)會負責這個工作,同時為了保證不宕機,控制器也會保證儲存的正常化,不會讓作業系統認為硬碟系統出了問題。

從上面的原理來看,RAID提供的儲存安全還有一些不太容易避免的漏洞,雖然可能性不大,但儲存在RAID上的資料價值可能無法評估,出絲毫的故障都可能會導致一場大的資訊災難。

轉入正題,RAID通常出現的故障可能性有:

1、處於降級狀態時,未及時rebuild:RAID是通過多出來的部分儲存空間來提供演算法上的資料安全冗餘的,但當某些盤出現故障下線後,RAID便不能再提供這種儲存冗餘,如果管理員不及時更換盤,REBUILD整個卷,這時候其餘工作中的硬碟再出現故障,RAID卷便無法正常工作了。這類故障在RAID資料恢複中比例相當高,伺服器維護管理跟不上很容易發生。

2、控制器故障:控制器是串連物理硬碟與作業系統之間的資料存放區紐帶,同時因RAID的組成方式並非自然約定(特定),硬碟容量的大小,硬碟數量的多少,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就又是好硬碟了。但實際上,這類情況卻是不可避免的,原因是:一組RAID卷在工作很長時間以後也很少會讀到物理硬碟的所有磁碟空間,同一時間更是不可能。部分情況下,硬碟會在沒有讀到的地區或者以前讀取是良好的地區產生壞道,這類壞道因為沒有讀寫過,所以在控制器看來是好的。產生這種壞磁軌的最直接危害是在REBUILD過程中。當一塊物理硬碟離線後,通常所有的技術人員及官方資料都會寫儘快做REBUILD,但如果其他硬碟存在這類平常不知的壞磁軌,REBUILD又都是對全盤做全面同步,就一定會讀寫到那些壞道,這時候REBUILD沒完成,新盤無法上線,因舊盤裡又發現了壞道,便會導致RAID又多出一些下線的硬碟,這樣就可能會導致RAID出現故障,無法自行進行資料恢複了。

7、人為誤操作:涉及資料恢複的資料災難有相當一部分也是可以避免的,但總會有這樣的情況:無關人員誤拔RAID裡的硬碟、沒準備備件盤、不及時換盤、給RAID除塵時忘了原來的順序、不小心刪除了原RAID配置等。

8、其他我暫時想不起來的原因。

這些災難原因除人為原因外,大多數很難直接避免,只能通過結合備份,構建整體儲存安全方案來解決。其他文章會提到原因,以及拋開資料恢複話題的安全建議。

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。