热门问题
时间线
聊天
视角

RAID

電腦儲存技術 来自维基百科,自由的百科全书

RAID
Remove ads

獨立硬盤冗餘陣列RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗餘陣列Redundant Array of Inexpensive Disks),簡稱磁盤陣列。它是一種存儲虛擬化技術,通過將多個獨立的硬盤驅動器組合成一個或多個邏輯單元,以實現數據冗餘、性能提升或兩者的結合。

事实速览 「RAID」的各地常用名稱, 中國大陸 ...
Thumb

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

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

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

Remove ads

標準RAID級別

RAID 0

Thumb
RAID 0設置示意圖

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

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

RAID 1

Thumb
RAID 1設置示意圖

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

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

RAID 2

Thumb
RAID 2設置示意圖。小寫p表示奇偶校驗字節。

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

RAID 3

Thumb
RAID 3設置示意圖

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

RAID 4

Thumb
RAID 4設置示意圖

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

RAID 5

Thumb
RAID 5布局示意圖

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

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

RAID 6

Thumb
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` 的讀取性能優勢的同時,顯著提高數據的可用性和操作彈性。

Remove ads

工作原理

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

局限性

`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等級, 最少硬盤 ...

  • 註:上表中的性能倍率僅為理論值,實際性能受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. 此為理論最大值,實踐中可能低至單盤性能。

參考文獻

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads