RAID磁盤陣列
*本章重點:了解各RAID級別的原理優缺點及常用級別實現,企業中廠商大多提供了硬RAID方案。
1、什么是RAID?
"RAID"一詞是由David Patterson, Garth A. Gibson, Randy Katz 於1987年在加州大學伯克利分校發明的。在1988年6月SIGMOD會議上提交的論文"A Case for Redundant Arrays of Inexpensive Disks”"中提出,當時性能最好的大型機不斷增長的個人電腦市場開發的一系列廉價驅動器的性能所擊敗。盡管故障與驅動器數量的比例會上升,但通過配置冗余,陣列的可靠性可能遠遠超過任何大型單個驅動器的可靠性
獨立硬盤冗余陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁盤冗余陣列,簡稱磁盤陣列。利用虛擬化存儲技術把多個硬盤組合起來,成為一個或多個硬盤陣列組,目的為提升性能或數據冗余,或是兩者同時提升。
RAID 層級不同,數據會以多種模式分散於各個硬盤,RAID 層級的命名會以 RAID 開頭並帶數字,例如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每種等級都有其理論上的優缺點,不同的等級在兩個目標間獲取平衡,分別是增加數據可靠性以及增加存儲器(群)讀寫性能。
簡單來說,RAID把多個硬盤組合成為一個邏輯硬盤,因此,操作系統只會把它當作一個實體硬盤。RAID常被用在服務器電腦上,並且常使用完全相同的硬盤作為組合。由於硬盤價格的不斷下降與RAID功能更加有效地與主板集成,它也成為普通用戶的一個選擇,特別是需要大容量存儲空間的工作,如:視頻與音頻制作。
2、實現方式?
RAID功能:
- 提高IO能力,磁盤並行讀寫
- 提高耐用性,磁盤冗余算法來實現
實現方式:
- 硬件RAID卡:一種是外接 硬盤卡提供適配;一種是主板自帶RAID控制芯片,燒錄在BIOS里的配置。 企業級實現方式!!
- 軟件RAID:通過OS實現,比如:群暉的NAS 家用實現方式
硬件RAID缺點:根據各個廠商有關,配置方式和界面差別很大。
3、RAID級別
級別:多塊磁盤組織在一起的的工作方式有所不同。
常見的類型如下:
RAID0:條帶卷,strip
RAID1:鏡像卷,mirror
...
RAID5
RAID6
RAID10
RAID50
RAID01
...
3.1 RAID-0:性能最佳
以chunk單位讀寫數據,因為讀寫時都可以並行處理,所以在所有的級別中,RAID0的速度是最快的,但是RAID0既沒有冗余功能,假如一個硬盤損壞,所有是數據都會丟失。

要求:多塊物理盤(至少兩塊)硬盤通過軟件或者硬件方式串聯在一起組成一個集合卷組,並將數據依次寫入到各個物理硬盤中。大小相同,組合后系統只能識別組合后的一個邏輯盤,空間變大(兩個盤之和),如上圖,數據寫入不同的硬盤設備中,即disk0,disk1分別保存數據,最終實現提升讀取、寫入速度的效果。
通俗來說:RIAD0技術能夠有效提升硬盤數據IO速度,但是不具備數據冗余和糾錯能力。
實現:假如一個文件有1G,會分成若干個chunk(單位)可以理解為存放數據的數據塊,假設是64K,如果存放?A1 B2 A3 B4 A5...
A代表硬盤1,B代表硬盤2 ,按順序存放, 兩塊可以同時寫入50%數據,理論上性能提升了50%,所以硬盤越多,同時讀寫的速度較快。致命缺點就是一塊損壞,全部數據丟失。
企業中很少用,沒有容錯冗余性!!!
3.2 RAID-1:完整備份
簡稱:鏡像卷(同步)。針對RAID0的缺陷,RAID1可以解決。
原理:兩組以上的N個磁盤相互做鏡像,在一些多線程操作系統中有很好的讀取速度,理論上讀取速度等於硬盤數量的倍數,與RAID0相同。另外寫入速度有微小降低。

讀性能提升、寫性能略有下降
可用空間:1*min(S1,S2,...)
磁盤利用率 50%
有冗余能力
最少磁盤數:2+
簡單來說:RAID1技術注重安全性,是因為在多塊硬盤設備中寫入了相同的數據,因此硬盤設備的利用率就得以下降。從理論上來說,2塊硬盤的利用率就是50%,3塊硬盤的可用率就是33%,以此類推,無疑是一定程度上增大了系統計算的負載。
代價:空間換冗余。
3.3 RAID1+0,RAID0+1

RAID1+0,即RAID1和RAID0的組合,先把兩組硬盤分別作為RAID1,然后把組合好的兩組RAID1組合成RAID0。
讀、寫性能提升。
可用空間:N/2
有容錯能力:每組鏡像最多只能壞一塊。
最少磁盤數:4,4+
這也是目前存儲廠商最推薦的方法。

RAID0+1,顧名思義就是先把兩組硬盤組合成RAID0之后,再把兩組RAID0組合成RAID1.
同時含有1和0的特性。
讀寫提升,同一時刻,只能壞一組RAID0硬盤(2塊),組1和組2不能同時壞其中一個,否則全部丟失。
無校驗,無容錯。
3.4 RAID4(不常用)
利用率好,有冗余能力,至少3塊硬盤才能實現。
多塊數據盤異或運算值存於專用校驗盤。最后一塊硬盤存放其他幾塊硬盤的校驗位。
4塊硬盤的可用率,就是75%,最后一塊做校驗盤。
N-1/N <==利用率
只能壞一塊硬盤,企業不常用,校驗盤常壞。
3.5 RAID5:性能與數據備份的均衡考慮

改進版的RAID4,計算的校驗位存放在不同的盤上,壞的幾率一樣。
讀寫效率提升了,可用空間也是N-1/N,有容錯能力,允許最多一塊硬盤損壞。
最少磁盤數:>=3
兼顧,成本、安全性、讀寫三大指標。
RAID5的讀寫性能跟RAID0有得比,不過寫的性能就不見得能夠增加,原因為多了一條CRC計算,會占用CPU資源,因此性能方面還需評估。
3.6 RAID6:Raid5的補充級別,兩塊奇偶校驗盤

雙份校驗位,算法更復雜
讀、寫性能提升
可用空間:(N-2)*min(S1,S2,...)
有容錯能力:允許最多2塊磁盤損壞
最少磁盤數:4, 4+
成本就提升了,容錯能力加強。 空間換容錯。
3.7 RAID-50

成本更高。冗余性,安全性更高。利用率低。
最少磁盤數:6
3.8 RAID-60

最少磁盤是8塊。
成本最高,最穩定,安全性最好,利用率最低。
3.9 其他級別

JBOD:Just a Bunch Of Disks 只是一堆磁盤
功能:將多塊磁盤的空間合並在一個大的連續空間使用
第一塊磁盤存放所有磁盤的分段信息,整個陣列會失敗,后續磁盤損壞只會影響本塊磁盤的數據。
可用空間:sum(S1,S2...)
RAID7 非標,專利
非公開標准,性能最好的,RAID7是以RAID3和4為基礎發展,經過強化原來的一些限制。可同時處理大量IO要求,所以性能超越其他級別,成本非常高昂,可以理解為一個獨立存儲計算機,自帶OS及tools,可獨立運行,理論上性能最高的RAID模式,不通用!一般企業不適用。
RAID總結
