Raid磁碟陣列真的是100%的安全嗎?Raid有哪些常見的故障?

2021-02-13 Python編程棧

問:
數據恢復既然是數據災難的一種補救措施,那設計安全的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、其他我暫時想不起來的原因。
這些災難原因除人為原因外,大多數很難直接避免,只能通過結合備份,構建整體存儲安全方案來解決。其他文章會提到原因,以及拋開數據恢復話題的安全建議。

相關焦點

  • 【概念科普】三分鐘了解常見RAID磁碟陣列(多見於伺服器、NAS)
    RAID(Redundant Arrays of Independent Disks)獨立磁碟冗餘陣列,簡稱磁碟陣列。就是將多塊獨立的硬碟組合成一個硬碟組,以達到提升硬碟數據讀寫效能,或者增加容錯能力提升數據安全性的目的。
  • 一、雲計算系列-RAID磁碟陣列
    1、模擬故障磁碟假設其中的「/dev/sdb2」設備出現故障時,更換一個新的磁碟,整個過程的詳細說明如下:在實際中,當軟 RAID 檢測到某個磁碟有故障時,會自動標記該磁碟為故障磁碟,並停止對故障磁碟的讀寫操作,所以這裡需要將/dev/sdb2標記為出現故障的磁碟,命令如下:[root@localhost ~]# mdadm
  • RAID磁碟陣列介紹
    RAID概念RAID(Redundant Array of Independent Disks,獨立磁碟冗餘陣列)可以提供較普通磁碟更高的速度、
  • Linux雲計算架構師:RAID磁碟陣列的原理與搭建
    磁碟陣列還能利用同位檢查(Parity Check)的觀念,在陣列中任意一個硬碟故障時,仍可讀出數據,在數據重構時,將數據經計算後重新置入新硬碟中(也就是壞了一塊盤,拔掉,插入新盤,數據還能恢復到新盤,利用奇偶校驗)註:RAID可以預防數據丟失,但是它並不能完全保證你的數據不會丟失,所以大家使用RAID的同時還是注意備份重要的數據RAID的創建有兩種方式:軟
  • 有關RAID 5磁碟陣列數據恢復的問題集錦
    Raid 5是最常見的raid方式之一,它本身也具有一定的數據保護機制,如果其中的一塊盤壞了,插上新磁碟後,將會自動通過其他磁碟上的校驗碼實現數據恢復
  • RAID磁碟陣列數據災難恢復指南
    4、一旦出現問題,可以撥打專業數據恢復中心的諮詢電話找專業工程師進行諮詢,切忌自己試圖進行修復,除非你確信自己有足夠的技術和經驗來處理數據風險。  常見Raid 故障及可恢復性分析  1、軟體故障:  a.突然斷電造成RAID磁碟陣列卡信息的丟失的數據恢復。
  • 磁碟陣列模擬實踐-raid{0,1,5,10}
    磁碟陣列(Redundant Arrays of Independent Disks,RAID),即「獨立磁碟構成的具有冗餘能力的陣列」之意。磁碟陣列是利用多塊廉價且獨立的磁碟組合成一個大容量的磁碟組,從而實現將個別磁碟提供數據所產生加成效果用以提升整個磁碟系統效能的目的,可以利用這種技術將數據切割成許多區段,分別存放在各個硬碟上,實現數據備份冗餘的功能。
  • 磁碟陣列 RAID 技術原理詳解 圖文
    如果其中一塊磁碟出現故障,那麼由於有校驗信息,所以所有數據仍然可以保持不變。如果可以使用備用磁碟,那麼在設備出現故障之後,將立即開始同步數據。如果兩塊磁碟同時出現故障,那麼所有數據都會丟失。RAID5 可以經受一塊磁碟故障,但不能經受兩塊或多塊磁碟故障。
  • raid1 raid2 raid5 raid6 raid10如何選擇使用?各需要幾塊硬碟?
    raid1 raid2 raid5 raid6 raid10各有什麼優勢?本期我們來看下。1、什麼是Raidraid就是冗餘磁碟陣列,把多個硬磁碟驅動器按照一定的要求使整個磁碟陣列由陣列控制器管理組成一個儲存系統。
  • linux中如何查看Raid磁碟陣列信息
    原文:https://www.jb51.net/article/72939.htmLinux下查看Raid磁碟陣列信息的方法以下是組建伺服器raid時查到的資料,做下筆記,沒興趣的朋友請無視。-a04.3 刪除陣列MegaCli -CfgLdDel -L1 -a04.4 在線添加磁碟MegaCli -LDRecon -Start -r5 -Add -PhysDrv[1:4] -L1 -a0意思是,重建邏輯磁碟組1,raid級別是5,添加物理磁碟號:1:4。
  • 實用技能:軟RAID陣列
    mdadm工具先檢查系統是否有安裝執行命令rpm –qa |grep mdadm,有輸出代表安裝;無則代表沒有安裝,即可執行下一步,安裝命令  yum install mdadm -y組成raid陣列參數說明
  • 常見的raid比較
    相關的問題,由於之前並沒有什麼儲備,因此場面一度非常尷尬,本文簡單羅列了一些常見的raid以及raid10和raid01的區別和比較,起碼可以幫助度過面試難關,哈哈哈1、三種常見raidRAID0RAID0 是一種簡單的、無數據校驗的數據條帶化技術。
  • Linux之磁碟陣列(RAID)
    RAID(Redundant Array of Independent Disks)是廉價磁碟冗餘陣列技術的英文縮寫,它的原理就是通過多個磁碟並行運行來提高整個計算機的I/O存儲性能。RAID的評判標準有如下三個: ①速度:讀寫速度的提升②磁碟使用率:多磁碟的空間使用率③冗餘性: 能夠支持幾塊磁碟損壞而不丟失數據 所以,基於以上三個評判標準,RAID分為很多種類,稱之為RAID級別,
  • Linux系統安全 | Linux下邏輯卷LVM的管理和RAID磁碟陣列
    >縮小邏輯卷 lvresize -L 100M /dev/myvg/mylv重新掛載 mount -a註:xfs文件系統的邏輯卷不能縮小RAID技術可以通過軟體或硬體實現,將多個磁碟整合成為一個較大的磁碟裝置,該裝置不僅有存儲功能,還具有數據保護的功能。RAID具有多個不同的等級,每個等級的對整合後的磁碟實現不同的功能。常用等級有RAID5
  • 簡述RAID磁碟陣列技術
    磁碟陣列中,數據分散在多個磁碟中,然而對於計算機系統來說,就像一個單獨的磁碟。通過把相同數據同時寫入到多塊磁碟(典型地如鏡像),或者將計算的校驗數據寫入陣列中來獲得冗餘能力,當單塊磁碟出現故障時可以保證不會導致數據丟失。有些 RAID 等級允許更多地 磁碟同時發生故障,比如 RAID6 ,可以是兩塊磁碟同時損壞。
  • Linux | 實戰分享RAID磁碟陣列的原理與搭建
    1)創建RAID12)添加1個熱備盤3)模擬磁碟故障,自動頂替故障盤4)從raid1中移出故障盤[root@xuegod63 ~]#  mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sd[d,e,f]  將RADI信息保存到配置文件[root@xuegod63 ~]
  • 【技術分享】RAID磁碟陣列你了解多少?
    其原理是由多塊小容量的硬碟組合成一個大型的磁碟組,配合數據分散存儲的設計提高了數據讀寫的速度。同時在數據寫入陣列後,會生成冗餘校驗(raid 0不具有)提高了整體的安全性。(磁碟陣列)磁碟陣列一般都採用機械硬碟,大多使用SAS接口的硬碟,SAS接口也稱之為「串口」。
  • 在 Linux 下使用 RAID(九):如何使用 'Mdadm' 工具管理軟體 RAID
    在本教程中,我們會再介紹此工具提供的功能,這樣當你需要它,就可以派上用場。RAID 測試方案在本系列的最後一篇文章中,我們將使用一個簡單的 RAID 1(鏡像)陣列,它由兩個 8GB 的磁碟(/dev/sdb 和 /dev/sdc)和一個備用設備(/dev/sdd)來演示,但在此使用的方法也適用於其他類型的配置。
  • 淺談幾種常見 RAID 的異同
    理論上從 3 個硬碟的 RAID 0 陣列讀取數據比從一個硬碟讀取要快 3 倍,換言之,使用 RAID 0 讀數據的能力跟磁碟數量成正比。RAID 0 也有缺點:如果其中一個磁碟出現故障,從其他磁碟上的數據拼起來就不再是一個完整的數據了。另外,磁碟越多,則發生磁碟故障的可能性也越高。所以如果磁碟陣列裡包含著對您來說很重要的數據,則最好創建頻繁的備份。
  • 磁碟陣列 RAID 技術
    比如, RAID1 存儲空間利用率僅有 50% , RAID5 會損失其中一個磁碟的存儲容量,空間利用率為 (n-1)/n 。  磁碟陣列可以在部分磁碟(單塊或多塊,根據實現而論)損壞的情況下,仍能保證系統不中斷地連續運行。在重建故障磁碟數據至新磁碟的過程中,系統可以繼續正常運行,但是性能方面會有一定程度上的降低。