RAID 的基本目的是把多個小型廉價的磁盤驅動器合並成一組陣列來達到大型昂貴的驅動器所無法達到的性能或冗余性。這個驅動器陣列在計算機眼中就如同一個單一的邏輯貯存單元或驅動器。
RAID 是一種在多個磁盤上分散信息的方法。它使用 磁盤分條(disk striping ,RAID 級別 0)、 磁盤鏡像(disk mirroring ,RAID 級別 1)、和 帶有奇偶校驗的磁盤分條(disk striping with parity ,RAID 級別 5)之類的技術來達到冗余性,減低潛伏時間,並且(或者)增加磁盤讀寫的帶寬,提高從硬盤崩潰中恢復的能力。
RAID 的基本原理是,數據必須使用一致的形式被分散到陣列中的驅動器上。要打到這個目的,數據必須被分割成大小一致的“塊”(大小通常是 32K 或 64K,也可使用不同大小)。每一塊都會根據所用的 RAID 級別而寫入其中的一個硬盤驅動器。當數據要被讀取時,這個進程就會反過來進行,造成一個多個驅動器好象是一個大驅動器的假象。
3.2. 誰應該使用 RAID任何需要使大量數據觸手可及的人(如一般的系統管理員)都可以從 RAID 技術中受益。使用 RAID 的主要原因包括:
加快速度
使用一個虛擬磁盤,從而增加貯存容量
減少磁盤失效帶來的不利影響
3.3. 硬件 RAID 和軟件 RAIDRAID 技術有兩種:硬件 RAID 和軟件 RAID。
3.3.1. 硬件 RAID基於硬件的系統獨立於主機之外地來管理 RAID 子系統,並且它在主機處只用一個磁盤來代表每一組 RAID 陣列。
連接到 SCSI 控制器的,把 RAID 陣列表示為單個 SCSI 驅動器的設備就是一個硬件 RAID 的例子。一個外部的 RAID 系統把所有 RAID 處理“智能”都轉移到位於內部磁盤子系統中的控制器中。整個子系統都是通過一個普通的 SCSI 控制器連接到主機上,對主機而言,它就象一個單一的磁盤。
RAID 控制器還以卡的形式出現。它 充當 操作系統的 SCSI 控制器,但卻控制所有驅動器本身的實際通訊。在這些情況下,你把驅動器插入到 RAID 控制器中,就如同 SCSI 控制器一般,但是,在這之後,你把它們添加到 RAID 控制器的配置裡,操作系統決不會知道其中的區別。
3.3.2. 軟件 RAID軟件 RAID 在內核磁盤(塊設備)編碼中實現各類 RAID 級別。 因為它不需要昂貴的磁盤控制器卡或熱交換底盤 ,軟件 RAID 提供了最廉價的解決方法。它還可以用在較便宜的 IDE 磁盤以及 SCSI 磁盤。使用今日的快速 CPU,軟件 RAID 的性能能夠超出硬件 RAID。
Linux 內核的 MD 驅動程序是 RAID 解決方案的一個例子。它完全獨立於硬件。基於軟件的陣列的性能獨立於服務器 CPU 的性能和載量之外。
關於在 Red Hat Linux 安裝程序中配置軟件 RAID 的信息,請參閱>第10章 。
以下為那些對軟件 RAID 功能感興趣的用戶列舉了一些它的最重要的特性:
使用線程的重建進程
基於內核的配置
不必重建而可在 Linux 機器間移植陣列
使用空閒的系統資源在後台重建陣列
對可熱交換的驅動器的支持
對 CPU 的自動檢測以便利用某些 CPU 優化功能
注:熱交換底盤允許你不必給系統斷電而移除硬盤驅動器。
RAID 支持各類配置,包括級別 0、1、4、5、和線形。這些 RAID 類型的定義如下:
級別 0 — RAID 級別 0,經常被稱作“分條”,它是面向性能的分條數據映射技術。這意味著被寫入陣列的數據被分割成條,然後被寫入陣列中的其它磁盤成員,從而允許低費用的高度 I/O 性能,但是它不提供冗余性。級別 0 陣列的貯存能力等於硬件 RAID 所有成員磁盤的總能力或軟件 RAID 中所有成員分區的總能力。
級別 1 — RAID 級別 1,或“鏡像”,被使用的時期長於任何其它形式的 RAID。級別 1 通過在陣列中的每個成員磁盤上寫入相同的數據(在磁盤上留一個“鏡像”副本)來提供冗余性。由於鏡像的簡單性和高度的數據可用性,它目前仍然很流行。使用兩個以上磁盤操作的級別 1 可能會在讀取時使用並行訪問來獲得高速數據傳輸,但是它更常用的是獨立操作以提供高速 I/O 傳輸率。級別 1 提供了極佳的數據可靠性,並提高了讀取任務繁重的程序的執行性能,但是它相對的費用也較高。 級別 1 陣列的貯存能力與硬件 RAID 中鏡像的硬盤之一或軟件 RAID 中鏡像的分區之一的儲存能力相同。
級別 4 — 級別 4 使用集中到單個磁盤驅動器上的奇偶校驗來保護數據。它更適合於事務性的 I/O 而不是大型文件傳輸。由於專職的奇偶校驗磁盤代表了固有瓶頸,級別 4 極少在沒有寫回緩存之類的技術陪同的情況下使用。雖然級別 4 在某些分區方案中是一種可選項目,它在 Red Hat Linux RAID 安裝中卻不是一個允許的選項。硬件級別 4 的貯存能力相對於所有成員磁盤去掉一個後的貯存能力。軟件級別 4 的貯存能力相對於所有成員分區去掉一個後的貯存能力(如果它們的大小相同的話)。
級別 5 — 這是最普遍的 RAID 類型。通過在某些或全部陣列成員磁盤驅動器中分布奇偶校驗,RAID 級別 5 避免了級別 4 中固有的寫入瓶頸。唯一的性能瓶頸是奇偶計算進程。使用現代的 CPU 和軟件 RAID,這種情況通常不是什麼大問題。與級別 4 一樣,其結果是非對稱性能,讀取大大地超過了寫入性能。級別 5 經常與寫回緩存一起使用來減低這種非對稱性。硬件級別 5 的貯存能力相當於所有成員磁盤去掉一個後的貯存能力。軟件 RAID 級別 5 的貯存能力相當於所有成員分區去掉一個後的貯存能力(如果它們的大小相同)。
線形 RAID — 線形 RAID 是一種簡單的驅動器聚組以便創建一個較大的虛擬驅動器。在線形 RAID 中,區塊從一個成員驅動器到另一個成員驅動器被依次分配,只有在第一個驅動器被完全填充後,才轉到下一個驅動器。這種聚組沒有提供任何性能方面的利益,因為 I/O 操作不太可能在成員驅動器間被分開。線形 RAID 也沒有提供任何冗余性,事實上,它降低了可靠性 — 如果任何一個成員驅動器失效了,整個陣列都不能被使用。它的貯存能力是所有成員磁盤的總和。
注意:RAID 級別 1 的代價很高,因為你把相同的信息寫入陣列中的所有磁盤,這浪費了驅動器空間。譬如,如果你設立了 RAID 級別 1,因而你的根分區( / )存在於兩個 40G 的驅動器上,你雖然總共有 80G 空間,卻只能訪問其中的 40G,因為另外的 40G 就如同前 40G 的鏡像一樣。
奇偶校驗的信息是基於陣列中的其它磁盤成員的內容來計算的。當陣列中的某個磁盤上的數據失效時,這則信息就會被用來重建數據。然後,在替換失效磁盤之前,被重建的數據可以用來滿足失敗磁盤上的 I/O 請求;在替換失效磁盤之後,它可以用來在新磁盤上重建數據。
RAID 級別 4 與級別 5 所占空間相同,但是級別 5 卻優於級別 4。由於這個原因,級別 4 不被支持。
RAID 級別 4 與級別 5 所占空間相同,但是級別 5 卻優於級別 4。由於這個原因,級別 4 不被支持。