跳至內容

RAID

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
RAID」的各地常用名稱
中國大陸獨立硬盤冗餘陣列
港澳獨立磁碟冗餘陣列
臺灣容錯式磁碟陣列

容錯式磁碟陣列RAID, Redundant Array of Independent Disks),舊稱容錯式廉價磁碟陣列Redundant Array of Inexpensive Disks),簡稱磁碟陣列。它是一種儲存虛擬化技術,通過將多個獨立的硬碟機組合成一個或多個邏輯單元,以實現資料冗餘、效能提升或兩者的結合。

RAID的工作方式取決於其級別(Level)。資料以多種模式分散儲存在各個硬碟上,RAID級別以「RAID」加上數字的方式命名,例如RAID 0、RAID 1、RAID 5等。不同的級別在資料可靠性和讀寫效能這兩個目標之間取得了不同的平衡。

簡單來說,RAID技術將多個物理硬碟組合成一個邏輯硬碟,因此作業系統只會將其視為一個單一的儲存裝置。RAID常用於伺服器,且通常使用規格完全相同的硬碟來組建。隨著硬碟價格的下降以及RAID功能被更有效地整合到主機板上,它也逐漸成為普通使用者的選擇,特別是在需要大容量儲存空間的應用場景,如影片和音訊製作。

雖然大多數RAID級別可以有效防護硬體缺陷或壞軌(硬錯誤)導致的資料遺失,但它們無法防護因火災、水災等災難性故障,或使用者誤操作、軟體缺陷、惡意軟體感染等軟錯誤造成的資料損失。對於重要資料,RAID僅是資料遺失防護與恢復策略的一部分,不能完全替代備份計劃。

標準RAID級別

[編輯]

RAID 0

[編輯]
RAID 0設定示意圖

RAID 0(也稱為條帶集條帶卷)將資料均勻地分割(「分條」)到兩個或更多磁碟上,但不提供奇偶校驗資訊、冗餘或容錯。由於RAID 0沒有任何冗餘,任何一個驅動器的故障都會導致整個陣列的資料遺失。這種組態通常以追求極致的讀寫速度和最大化儲存容量為目標。[1][2]

一個由n個驅動器組成的RAID 0陣列,其資料讀寫傳輸速率理論上是單個驅動器速率的n倍。RAID 0主要用於對效能要求極高且能容忍較低可靠性的應用,例如科學計算[3]遊戲的臨時檔案儲存。[4]

RAID 1

[編輯]
RAID 1設定示意圖

RAID 1 包含一個資料集在兩個或多個磁碟上的精確副本(或鏡像)。一個經典的RAID 1鏡像對由兩個磁碟組成。此組態不提供奇偶校驗或分條,資料在所有成員磁碟上完全相同。陣列的可用容量等於容量最小的那個成員磁碟。當資料可靠性或讀取效能比寫入效能和儲存成本更重要時,此布局非常有用。[5][6]

只要至少有一個成員驅動器正常工作,陣列就能繼續運作,提供了很高的容錯能力。[7] 任何讀取請求都可以由陣列中的任何驅動器來處理,因此隨機讀取效能理論上最高可達所有成員效能的總和。[a] 而寫入操作需要同時寫入所有成員磁碟,因此寫入效能受限於最慢的那個磁碟。

RAID 2

[編輯]
RAID 2設定示意圖。小寫p表示奇偶校驗位元組。

RAID 2級別上將資料分條到多個磁碟,並使用漢明碼進行錯誤糾正。所有磁碟主軸需要同步旋轉,這使得它一次只能處理一個I/O請求。由於現代硬碟已內建ECC(錯誤糾正碼)功能,RAID 2提供的額外保護顯得冗餘且複雜。因此,RAID 2在商業上從未被廣泛實現,是唯一一個在實踐中已被淘汰的原始RAID級別。[8][9]

RAID 3

[編輯]
RAID 3設定示意圖

RAID 3 採用位元組級分條,並使用一個專用的磁碟儲存奇偶校驗資訊。由於資料按位元組分布在所有資料盤上,任何I/O操作都需要所有磁碟協同工作,這使其不適合處理大量隨機的小型I/O請求。它適用於需要高吞吐率的順序讀寫應用,例如未壓縮影片編輯。RAID 3與RAID 4很快被更靈活的RAID 5所取代。[10]

RAID 4

[編輯]
RAID 4設定示意圖

RAID 4 採用級分條和一個專用的奇偶校驗磁碟。這種設計提供了良好的隨機讀取效能,因為讀取請求可以由單個資料盤獨立完成。然而,由於所有寫入操作都必須更新同一個奇偶校驗盤,該盤很容易成為效能瓶頸,導致隨機寫入效能不佳。[11] NetApp公司的某些NAS系統曾使用基於RAID 4的設計理念。

RAID 5

[編輯]
RAID 5布局示意圖

RAID 5 採用帶分散式奇偶校驗的塊級分條。與RAID 4不同,它的奇偶校驗資訊被交錯地分布在所有成員磁碟上,從而解決了單一奇偶校驗盤的寫入瓶頸問題。RAID 5至少需要三個磁碟,它允許一個磁碟發生故障而資料不遺失。後續的讀取可以通過陣列中剩餘的資料和奇偶校驗塊計算出來。[3]

相比RAID 4,RAID 5的分散式奇偶校驗將寫入負載均勻地分散到所有磁碟上,顯著提升了隨機寫入效能。這使得RAID 5成為效能、容量和可靠性之間的一個良好平衡點,是企業中最常見的資料保護方案之一。但由於奇偶校驗計算是在整個條帶上進行的,對陣列的小資料塊修改會引發「讀-改-寫」操作,產生所謂的「寫放大」問題。

RAID 6

[編輯]
RAID 6示意圖,增加了第二個奇偶校驗塊

RAID 6 通過添加第二個獨立的奇偶校驗塊來擴充RAID 5。它採用帶雙重分散式奇偶校驗的塊級分條。RAID 6至少需要四個磁碟,它可以在任意兩個磁碟同時發生故障的情況下保證資料的完整性。[12]

第二個奇偶校驗塊的計算通常採用里德-所羅門碼糾刪碼演算法,這比RAID 5的單一XOR運算要複雜得多。因此,RAID 6的寫入效能(尤其是小資料塊的隨機寫入)通常低於RAID 5,因為它需要進行兩次奇偶校驗計算和寫入。然而,其讀取效能通常與RAID 5相當。隨著硬碟容量越來越大,重建時間變長,RAID 5陣列在重建過程中發生第二次磁碟故障的風險增加,因此RAID 6在需要高可靠性的關鍵應用中變得越來越流行。

實驗性及非標準級別

[編輯]

除了廣泛採用的標準RAID級別外,學術界和工業界也提出了一些實驗性或非標準的RAID架構,旨在滿足特定的效能、成本或可靠性需求。

RAID 0e (彈性條帶陣列)

[編輯]

`RAID-0e`(Resilient Striping Array)是一種實驗性的磁碟陣列架構,旨在為傳統的 `RAID 0`(條帶化)增加一個低開銷的容錯層。該架構由 Yanzhao Jia 等人在其2025年的概念性論文中首次提出[13]。其核心設計思想是將儲存陣列分為兩個邏輯和物理上獨立的域:一個由 `N` 個驅動器組成的資料域(Data Domain),組態為標準的 `RAID 0` 以實現高效能讀取;以及一個由 `M` 個驅動器組成的奇偶校驗域(Parity Domain),專門用於儲存資料域的奇偶校驗資訊。

這種設計的主要目標是防護常見的、非災難性的媒介故障,例如孤立的壞塊、瞬時讀取錯誤或磁區級損壞,而不是完整的驅動器故障。通過這種方式,`RAID-0e` 試圖在保留 `RAID 0` 的讀取效能優勢的同時,顯著提高資料的可用性和操作彈性。

工作原理

[編輯]
  • 讀取操作(健康狀態):讀取請求僅由資料域並列處理,理論效能與標準 `RAID 0` 相同。此時,奇偶校驗域保持空閒。
  • 寫入操作:當寫入資料時,資料被條帶化地寫入資料域的所有 `N` 個驅動器。同時,控制器計算該資料條帶的奇偶校驗塊(通過對所有資料塊進行按位元互斥或運算),並將該奇偶校驗塊寫入奇偶校驗域。
   
   由于所有写入操作都需要更新奇偶校验域,因此写入性能会受到影响,特别是对于小型的随机写入,会引发“读取-修改-写入”(Read-Modify-Write)惩罚。
  • 故障恢復(即時恢復):如果資料域中的某個資料塊(例如 `Dᵢ`)發生讀取錯誤,控制器會立即啟動一個透明的恢復程式。它會並行地從資料域讀取該條帶中所有其他的健康資料塊(`Dⱼ` 其中 `j ≠ i`),並從奇偶校驗域讀取對應的奇偶校驗塊(`Pₛ`)。通過對這些資料塊進行互斥或運算,控制器可以在主記憶體中重建出遺失的資料塊 `Dᵢ` 並返回給主機。
   
   这个过程对应用程序是透明的,仅表现为该次 I/O 操作的延迟增加。

局限性

[編輯]

`RAID-0e` 旨在提供「增強的可用性」,而非「絕對的冗餘」。它主要針對單一、局部的媒介錯誤,但無法防護並行故障、奇偶校驗域故障或「寫洞」(Write Hole)問題。

巢狀RAID(混合RAID)

[編輯]

巢狀RAID是將兩種或多種標準RAID級別組合起來,以獲得各級別之長。

  • RAID 10 (RAID 1+0):先將磁碟成對做RAID 1鏡像,然後對這些鏡像對做RAID 0分條。它兼具RAID 1的冗餘性和RAID 0的高效能,尤其在隨機寫入效能上遠超RAID 5/6。至少需要4個磁碟。
  • RAID 01 (RAID 0+1):先將磁碟做RAID 0分條,然後對這些條帶集進行鏡像。其可靠性不如RAID 10,因為只要一個條帶集中的單個磁碟損壞,另一組鏡像就必須完整無缺。
  • RAID 50 (RAID 5+0):由多個RAID 5子陣列組成一個RAID 0分條。它比單一RAID 5陣列有更高的寫入效能和更好的容錯能力。至少需要6個磁碟。
  • RAID 60 (RAID 6+0):由多個RAID 6子陣列組成一個RAID 0分條。提供了極高的容錯能力(每個RAID 6子陣列都能容忍兩個磁碟故障)和強大的效能。至少需要8個磁碟。

磁碟陣列比較

[編輯]
RAID等級 最少硬碟 最大容錯(磁碟數) 可用容量(n=硬碟數, s=單盤容量) 讀效能(倍率) 寫效能(倍率) 安全性 目的
JBOD 1 0 n × s 1 1 無(風險同RAID 0) 簡單地增加容量
0 2 0 n × s n n 低,一個硬碟損壞,全部資料遺失 追求最大容量與速度
1 2 n-1 s n 1 高,只要有一個硬碟正常即可 追求最大安全性
5 3 1 (n-1) × s n-1 n-1 中,允許單個硬碟故障 容量、效能和安全的平衡
6 4 2 (n-2) × s n-2 n-2 中高,允許兩個硬碟故障 比RAID 5更安全
10 (1+0) 4 (偶數) 每個鏡像組n/2中可壞1個 (n/2) × s n n/2 高,只要每個鏡像組至少有一個正常 兼顧高效能與高安全性
50 (5+0) 6 每個RAID 5子組可壞1個 (n-k) × s (k=子組數) n-k n-k 高,提升寫入效能和安全性 大型陣列的效能與安全
60 (6+0) 8 每個RAID 6子組可壞2個 (n-2k) × s (k=子組數) n-2k n-2k 非常高,極佳的容錯能力 關鍵業務的終極資料保護

  • 註:上表中的效能倍率僅為理論值,實際效能受RAID控制器、快取、硬碟類型和工作負載等多種因素影響。

實現方式

[編輯]

根據實現模式,分為軟體和硬體兩種:[14]

軟體磁碟陣列(Software RAID):
主要由CPU處理陣列儲存作業,優點是成本極低(若使用作業系統內建功能則無需額外花費),缺點是會消耗CPU資源,可能影響系統效能。
  • 作業系統內建功能:如Linux的mdadm、FreeBSD的ZFS、以及Windows Server和電腦版Windows(通過「儲存空間」或「磁碟管理」)提供的RAID功能。
  • 硬體輔助磁碟陣列(或稱Fake RAID):RAID功能由主機板晶片組提供,需要特定驅動程式才能工作。它仍然依賴CPU進行大部分計算,效能介於純軟體和硬體RAID之間。
硬體磁碟陣列(Hardware RAID)
通過專門的RAID控制器卡實現,該卡擁有獨立的處理器(稱作ROC, RAID-on-Chip)、快取記憶體和BIOS。
  • 優點:效能最佳,因為它不占用主機CPU資源。通常帶有備用電池模組(BBU)或電容,能在斷電時保護快取中的資料,確保資料一致性。獨立於作業系統,遷移和管理更方便。
  • 缺點:成本最高,且卡的效能與價格直接相關。

應用

[編輯]

RAID技術應用廣泛,尤其是在對資料可靠性、可用性和效能有較高要求的環境中:

  • 企業級應用資料庫伺服器、企業資源計劃(ERP)系統、虛擬化平台。
  • 儲存系統網路附加儲存(NAS)和儲存區域網路(SAN)。
  • 媒體與內容創作:電視台、廣播電台、影視後期製作工作室,需要高速、大容量的儲存來處理高畫質影片和音訊檔。
  • 資料密集型行業:金融、證券行業用於保管客戶資料;安防監控領域用於儲存大量的影片錄影。

注釋

[編輯]
  1. ^ 此為理論最大值,實踐中可能低至單盤效能。

參考文獻

[編輯]
  1. ^ RAID 0 Data Recovery. ADA. United States: Ace Data Recovery. [September 1, 2025]. 
  2. ^ Understanding RAID. Data Protection Topics. Washington, United States: CRU. [April 30, 2015]. (原始內容存檔於January 30, 2015). 
  3. ^ 3.0 3.1 Chen, Peter; Lee, Edward; Gibson, Garth; Katz, Randy; Patterson, David. RAID: High-Performance, Reliable Secondary Storage. ACM Computing Surveys. 1994, 26 (2): 145–185. CiteSeerX 10.1.1.41.3889可免費查閱. S2CID 207178693. doi:10.1145/176979.176981. 
  4. ^ de Kooter, Sebastiaan. Gaming storage shootout 2015: SSD, HDD or RAID 0, which is best?. GamePlayInside.com. 2015-04-13 [2015-09-22]. 
  5. ^ FreeBSD Handbook: 19.3. RAID 1 – Mirroring. FreeBSD.org. 2014-03-23 [2014-06-11]. 
  6. ^ Which RAID Level is Right for Me?: RAID 1 (Mirroring). Adaptec.com. Adaptec. [2014-01-02]. 
  7. ^ Selecting the Best RAID Level: RAID 1 Arrays (Sun StorageTek SAS RAID HBA Installation Guide). Docs.Oracle.com. Oracle Corporation. 2010-12-23 [2014-01-02]. 
  8. ^ Vadala, Derek. Managing RAID on Linux. O'Reilly Series illustrated. O'Reilly. 2003: 6. ISBN 9781565927308. 
  9. ^ Marcus, Evan; Stern, Hal. Blueprints for High Availability 2nd, illustrated. John Wiley and Sons. 2003: 167. ISBN 9780471430261. 
  10. ^ Meyers, Michael; Jernigan, Scott. Mike Meyers' A+ Guide to Managing and Troubleshooting PCs illustrated. McGraw-Hill Professional. 2003: 321. ISBN 9780072231465. 
  11. ^ Natarajan, Ramesh. RAID 2, RAID 3, RAID 4 and RAID 6 Explained with Diagrams. TheGeekStuff.com. 2011-11-21 [2015-01-02]. 
  12. ^ Sun StorageTek SAS RAID HBA Installation Guide, Appendix F: Selecting the Best RAID Level: RAID 6 Arrays. Docs.Oracle.com. 2010-12-23 [2015-08-27]. 
  13. ^ Jia, Yanzhao; Wu, Zhaobo; Cao, Zheyi; Ji, Shihao; Tianhao, Xu; Song, Zihui. RAID-0e: A Resilient Striping Array Architecture for Balanced Performance and Availability. figshare. 2025-09-20 [2025-10-26]. 
  14. ^ Hardware RAID vs. Software RAID: Which Implementation is Best for my Application? [軟體磁碟陣列與硬體磁碟陣列:哪種實作更好?] (PDF). Adaptec公司. [2019-03-17]. (原始內容存檔 (PDF)於2019-03-15). 

外部連結

[編輯]