RAID 主要概念

[size=large]一、RAID技術名詞解釋[/size]

RAID技術主要包含RAID 0~RAID 7等數個規範,它們的側重點各不相同,常見的規範有如下幾種:

[b]RAID 0[/b]:RAID 0連續以位或字節爲單位分割數據,並行讀/寫於多個磁盤上,因此具有很高的數據傳輸率,但它沒有數據冗餘,因此並不能算是真正的RAID結構。RAID 0只是單純地提高性能,並沒有爲數據的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數據。因此,RAID 0不能應用於數據安全性要求高的場合。

[b]RAID 1[/b]:它是通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID 1可以提高讀取性能。RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據。

[b]RAID 0+1[/b]: 也被稱爲RAID 10標準,實際是將RAID 0和RAID 1標準結合的產物,在連續地以位或字節爲單位分割數據並且並行讀/寫多個磁盤的同時,爲每一塊磁盤作磁盤鏡像進行冗餘。它的優點是同時擁有RAID 0的超凡速度和RAID 1的數據高可靠性,但是CPU佔用率同樣也更高,而且磁盤的利用率比較低。

[b]RAID 2[/b]:將數據條塊化地分佈於不同的硬盤上,條塊單位爲位或字節,並使用稱爲“加重平均糾錯碼(海明碼)”的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁盤存放檢查及恢復信息,使得RAID 2技術實施更復雜,因此在商業環境中很少使用。

[b]RAID 3[/b]:它同RAID 2非常類似,都是將數據條塊化分佈於不同的硬盤上,區別在於RAID 3使用簡單的奇偶校驗,並用單塊磁盤存放奇偶校驗信息。如果一塊磁盤失效,奇偶盤及其他數據盤可以重新產生數據;如果奇偶盤失效則不影響數據使用。 RAID 3對於大量的連續數據可提供很好的傳輸率,但對於隨機數據來說,奇偶盤會成爲寫操作的瓶頸。

[b]RAID 4[/b]:RAID 4同樣也將數據條塊化並分佈於不同的磁盤上,但條塊單位爲塊或記錄。RAID 4使用一塊磁盤作爲奇偶校驗盤,每次寫操作都需要訪問奇偶盤,這時奇偶校驗盤會成爲寫操作的瓶頸,因此RAID 4在商業環境中也很少使用。

[b]RAID 5[/b]:RAID 5不單獨指定的奇偶盤,而是在所有磁盤上交叉地存取數據及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設備進行操作,提供了更高的數據流量。RAID 5更適合於小數據塊和隨機讀寫的數據。RAID 3與RAID 5相比,最主要的區別在於RAID 3每進行一次數據傳輸就需涉及到所有的陣列盤;而對於RAID 5來說,大部分數據傳輸只對一塊磁盤操作,並可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

[b]RAID 6[/b]:與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊磁盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁盤空間,相對於RAID 5有更大的“寫損失”,因此“寫性能”非常差。較差的性能和複雜的實施方式使得RAID 6很少得到實際應用。

[b]RAID 7[/b]:這是一種新的RAID標準,其自身帶有智能化實時操作系統和用於存儲管理的軟件工具,可完全獨立於主機運行,不佔用主機CPU資源。RAID 7可以看作是一種存儲計算機(Storage Computer),它與其他RAID標準有明顯區別。除了以上的各種標準(如表1),我們可以如RAID 0+1那樣結合多種RAID規範來構築所需的RAID陣列,例如RAID 5+3(RAID 53)就是一種應用較爲廣泛的陣列形式。用戶一般可以通過靈活配置磁盤陣列來獲得更加符合其要求的磁盤存儲系統。

開始時RAID 方案主要針對SCSI硬盤系統,系統成本比較昂貴。1993年,HighPoint公司推出了第一款IDE-RAID控制芯片,能夠利用相對廉價的IDE 硬盤來組建RAID系統,從而大大降低了RAID的“門檻”。從此,個人用戶也開始關注這項技術,因爲硬盤是現代個人計算機中發展最爲“緩慢”和最缺少安全性的設備,而用戶存儲在其中的數據卻常常遠超計算機的本身價格。在花費相對較少的情況下,RAID技術可以使個人用戶也享受到成倍的磁盤速度提升和更高的數據安全性,現在個人電腦市場上的IDE-RAID控制芯片主要出自HighPoint和Promise公司,此外還有一部分來自AMI公司(如表 2)。

面向個人用戶的IDE-RAID芯片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID規範的支持,雖然它們在技術上無法與商用系統相提並論,但是對普通用戶來說其提供的速度提升和安全保證已經足夠了。隨着硬盤接口傳輸率的不斷提高,IDE-RAID芯片也不斷地更新換代,芯片市場上的主流芯片已經全部支持ATA 100標準,而HighPoint公司新推出的HPT 372芯片和Promise最新的PDC20276芯片,甚至已經可以支持ATA 133標準的IDE硬盤。在主板廠商競爭加劇、個人電腦用戶要求逐漸提高的今天,在主板上板載RAID芯片的廠商已經不在少數,用戶完全可以不用購置 RAID卡,直接組建自己的磁盤陣列,感受磁盤狂飆的速度。


[size=large]二、RAID進階[/size]
RAID 代表Redundant Array of Inexpensive (or Independent) Drive。它通過將多個相對比較便宜的磁盤組合起來,並相互連接,同時都連到一個或多個計算機上,以組成一個磁盤組,使其性能和容量達到或超過一個價格更昂貴的大型磁盤。RAID是1988年由美國加州大學的Berkeley分校的David Patterson等幾人提出來的。從那以後,磁盤陣列技術發展很快,並逐漸走向成熟。

RAID的優點在於三個方面即可用性(Availability)、大容量(Capacity)及高性能(Performance)。

根據實際情況選擇適當的RAID級別可以滿足用戶對存儲系統可用性、性能和容量的要求。常用的RAID級別有以下幾種:NRAID,JBOD,RAID0,RAID1,RAID0+1,RAID3,RAID5,RAID6,RAIDS,RAID7等。爲提高可靠性和性能,常使用RAID5和RAID0+1。下面分別簡要介紹各自的原理及特點:

NRAID - 即Non-RAID,所有磁盤的容量組合成一個邏輯盤,沒有數據塊分條(no block stripping)。NRAID不提供數據冗餘。要求至少一個磁盤。

JBOD - 代表Just a Bunch of Drives,磁盤控制器把每個物理磁盤看作獨立的磁盤,因此每個磁盤都是獨立的邏輯盤。JBOD也不提供數據冗餘。要求至少一個磁盤。

RAID0 - 即Data Stripping數據條帶化技術。整個邏輯盤的數據是被分條(stripped)分佈在多個物理磁盤上,可以並行讀/寫,提供最快的速度,但沒有冗餘能力。要求至少兩個磁盤。RAID0代表了RAID系統的高性能,成本最低的方案。由於沒有容錯功能,RAID0適用於低成本,低可靠性的臺式系統,在這裏,高速的數據吞吐比可靠性更重要。

RAID1 -把一個磁盤的數據鏡像到另一個磁盤上,只能在兩個磁盤上實施,具有最高的數據冗餘能力, RAID1又稱鏡像(Mirror)盤,採用鏡像容錯來提高可靠性。即每一個工作盤都有一個鏡像盤,每次寫數據時必須同時寫入鏡像盤,讀數據時只從工作盤讀出。一旦工作盤發生故障立即轉入鏡像盤,從鏡像盤中讀出數據,然後由系統再恢復工作盤正確數據。因此這種方式數據可以重構,但工作盤和鏡像盤必須保持一一對應關係。這種盤陣列可靠性很高,但其有效容量減小到總容量一半以下。因此RAID1常用於對出錯率要求極嚴的應用場合,如財政、金融等領域。只允許一顆硬盤失敗。

RAID0+1 - 把RAID0和RAID1技術結合起來,即Mirroring + Stripping。數據除分佈在多個盤上外,每個盤都有其物理鏡像盤,提供全冗餘能力,允許一個以下磁盤故障,而不影響數據可用性,並具有快速讀/寫能力。要求至少4個硬盤才能作成RAID0+1。只允許一顆硬盤失敗。

RAID3 -帶有一個專門的校驗盤的分條技術。數據被分佈在多個磁盤上以提高讀/寫速度,並用一個專門的校驗盤來存儲校驗信息,當一個成員盤故障時,控制器可以從校驗盤重新恢復/生成丟失的數據。RAID3要求至少3個盤,且其中一個爲專職校驗盤。它的優點是支持陣列中多硬盤的同步訪問,整個陣列的帶寬可以充分利用,在要求大塊數據順序傳送時較理想,如:圖形、圖象、科學計算等應用。其缺點是每次讀寫要牽動整個組,每次只能完成一次I/O,所以作爲文件服務器共享時性能不好。只允許一顆硬盤失敗。

RAID5 - RAID5是一種循環偶校驗獨立存取的陣列。類似於RAID3,但校驗數據不是存儲在一個專職的校驗盤上,而是分佈在多個盤上。當一個磁盤故障時,控制器可以從其他尚存的磁盤上重新恢復/生成丟失的數據而不影響數據的可用性。RAID5要求至少3個磁盤,容量是(N-1)/N。這一改變解決了爭用校驗盤的問題,因此DAID5內允許在同一組內併發進行多個寫操作。所以RAID5即適於大數據量的操作,也適於各種事務處理。它是一種快速,大容量和容錯分佈合理的磁盤陣列。只允許一顆硬盤失敗。

RAIDS - 是EMC公司的RAID5的實施方案,它和純粹的RAID5存在以下區別:
(1) 它條帶化奇偶校驗,但不條帶化數據;
(2) 它與一個帶有寫緩存的異步硬件環境合併。這個緩存主要是一種延遲寫的機制,因此它能讓系統在相對不忙的時候計算和寫奇偶校驗信息。

RAID6 - 是RAID家族中的新技術,是在RAID 5基礎上擴展而來的。所以同RAID 5一樣,數據和校驗碼都是被分成數據塊然後分別存儲到磁盤陣列的各個硬盤上。RAID 6加入了一個獨立的校驗磁盤,它把分佈在各個磁盤上的校驗碼都備份在一起,這樣RAID 6磁盤陣列就允許多個磁盤同時故障,這對於數據安全要求很高的應用場合是非常的必要的。這樣搭建一個RAID 6磁盤陣列最少需要4塊硬盤。但是RAID 6並沒有改善RAID 5寫入性能不佳的情況,寫入緩存的應用僅僅能對於這個缺點進行一定程度的彌補但是並不能從根本上解決。因爲RAID 5和RAID 6都可以根據應用程序來更改數據塊的大小,所以它的實際性能還會受到這個因素的影響。允許兩顆硬盤失敗。

RAID7 - 也同樣引入了緩存機制,這個緩存是被一個內嵌式操作系統控制。但是,RAID-7中數據是被條帶化的,而奇偶校驗不被條帶化。奇偶校驗信息被存放在一個或者多個專門的磁盤上。

RAID3與RAID5的區別:

RAID3 是所謂的同步訪問SynchronousAccess陣列,在執行IO的時候,R3內所有的成員磁盤會進行磁頭同步,共同完成一個IO 操作,IO內的數據會分散寫入每一個成員磁盤的stripe內,適用於順序讀寫,如OLAP;而RAID5是所謂的獨立訪問陣列 IndependentAccess,執行IO時不需要同步磁頭,不同的磁盤可以分別執行不同的IO,適用於隨機讀寫,如OLTP,這樣,對於R5,把 stripe size設置的大一些,會方便多個IO的同時執行;而對於R3,stripe size小一些是因爲一次IO覆蓋的磁盤數量多所以也不需要設置得很大

Raid 3 在第N+1個硬盤上存儲的數據是校驗容錯信息,而每次修改數據的時候都需要往這個硬盤上寫數據,這就出現了瓶頸。

RAID 5 不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。

Raid5能保證每次修改數據每塊硬盤都在工作,因此性能比Raid3能高一些。所以Raid5比Raid3更適合服務器應用。

兩者都有錯誤校檢,都是比較穩定的Raid解決方案。

raid3的條帶深度是最小的:1bit;而raid4、raid5的條帶深度都會相對更大
發佈了19 篇原創文章 · 獲贊 0 · 訪問量 2922
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章