RAID各種級別詳細介紹


獨立硬盤冗余陣列RAIDRedundant Array of Independent Disks),舊稱廉價磁盤冗余陣列RAIDRedundant Array of Inexpensive Disks),簡稱硬盤陣列。其基本思想就是把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、容量巨大的硬盤。根據選擇的版本不同,RAID比單顆硬盤有以下一個或多個方面的好處:增強數據集成度,增強容錯功能,增加處理量或容量。另外,磁盤陣列對於計算機來說,看起來就像一個單獨的硬盤或邏輯存儲單元。分為RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。我們這里只介紹最常用的幾種。

簡單來說,RAID把多個硬盤組合成為一個邏輯扇區,因此,操作系統只會把它當作一個硬盤。RAID常被用在服務器計算機上,並且常使用完全相同的硬盤作為組合。由於硬盤價格的不斷下降與RAID功能更加有效地與主板集成,它也成為了玩家的一個選擇,特別是需要大容量存儲空間的工作,如:視頻與音頻制作。

最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點,不同的等級在兩個目標間取得平衡,分別是增加數據可靠性以及增加存儲器(群)讀寫性能。這些年來,出現了對於RAID觀念不同的應用。

 

RAID 0

將多個磁盤合並成一個大的磁盤,不具有冗余,並行I/O,速度最快。RAID 0亦稱為帶區集。它是將多個磁盤並列起來,成為一個大磁盤。在存放數據時,其將數據按磁盤的個數來進行分段,然后同時將這些數據寫進這些盤中,所以在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗余功能,如果一個磁盤(物理)損壞,則所有的數據都會丟失,危險程度與JBOD相當。

理論上越多的磁盤性能就等於“單一磁盤性能”ד磁盤數”,但實際上受限於總線I/O瓶頸及其它因素的影響,RAID性能會隨邊際遞減,也就是說,假設一個磁盤的性能是50MB每秒,兩個磁盤的RAID 0性能約96MB每秒,三個磁盤的RAID 0也許是130MB每秒而不是150MB每秒,所以兩個磁盤的RAID 0最能明顯感受到性能的提升。

\begin{align}Size & = 2 \times \min \left(S_1, S_2\right)\end{align}

但如果是以軟件方式來實現RAID,則磁盤的空間則不見得受限於此(例如Linux Software RAID),通過軟件實現可以經由不同的組合而善用所有的磁盤空間。

\begin{align}\text{Size} & = \text{sum of all disk}\end{align}

 RAID 1

 

兩組以上的N個磁盤相互作鏡像,在一些多線程操作系統中能有很好的讀取速度,理論上讀取速度等於硬盤數量的倍數,另外寫入速度有微小的降低。只要一個磁盤正常即可維持運作,可靠性最高。RAID 1就是鏡像,其原理為在主硬盤上存放數據的同時也在鏡像硬盤上寫一樣的數據。當主硬盤(物理)損壞時,鏡像硬盤則代替主硬盤的工作。因為有鏡像硬盤做數據備份,所以RAID 1的數據安全性在所有的RAID級別上來說是最好的。但無論用多少磁盤做RAID 1,僅算一個磁盤的容量,是所有RAID中磁盤利用率最低的一個級別。

如果用兩個不同大小的磁盤建RAID 1,可用空間為較小的那個磁盤,較大的磁盤多出來的空間也可以分區成一個區來使用,不會造成浪費。

\begin{align}Size & = \min \left(S_1, S_2, S_3 \dots \right)\end{align}
RAID 5

RAID Level 5是一種儲存性能、數據安全和存儲成本兼顧的存儲解決方案。它使用的是Disk Striping(硬盤分區)技術。RAID 5至少需要三顆硬盤,RAID 5不是對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上。當RAID5的一個磁盤數據發生損壞后,可以利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統提供數據安全保障,但保障程度要比鏡像低而磁盤空間利用率要比鏡像高。RAID 5具有和RAID 0相近似的數據讀取速度,只是因為多了一個奇偶校驗信息,寫入數據的速度相對單獨寫入一塊硬盤的速度略慢,若使用“回寫高速緩存”可以讓性能改善不少。同時由於多個數據對應一個奇偶校驗信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲成本相對較便宜。

\begin{align}Size & = (N - 1) \times \min \left(S_1, S_2, \dots, S_N\right)\end{align}
RAID 10 / RAID 01

RAID 10是先鏡射再分區數據,再將所有硬盤分為兩組,視為是RAID 0的最低組合,然后將這兩組各自視為RAID 1運作。

RAID 01則是跟RAID 10的程序相反,是先分區再將數據鏡射到兩組硬盤。它將所有的硬盤分為兩組,變成RAID 1的最低組合,而將兩組硬盤各自視為RAID 0運作。

當RAID 10有一個硬盤受損,其余硬盤會繼續運作。RAID 01只要有一個硬盤受損,同組RAID 0的所有硬盤都會停止運作,只剩下其他組的硬盤運作,可靠性較低。如果以六個硬盤建RAID 01,鏡射再用三個建RAID 0,那么壞一個硬盤便會有三個硬盤脫機。因此,RAID 10遠較RAID 01常用,零售主板絕大部份支持RAID 0/1/5/10,但不支持RAID 01。

最后說說為什么RAID10比RAID 01好且靠譜:

RAID0+1是先做兩個RAID0,然后再做RAID1,因此RAID0+1允許壞多個盤,但只能在壞在同一個RAID0中,不允許兩個RAID0都有壞盤。
RAID1+0是先做RAID1,然后再做RAID0,因此RAID1+0允許壞多個盤,只要不是一對磁盤壞就可以啦。
因此說RAID1+0比RAID0+1安全得多,因為在同一對磁盤中,兩塊磁盤都壞掉的概率很低。
RAID 0和RAID 1分別用於增強存儲性能(RAID 0 條帶)和數據安全性(RAID 1 鏡像),而RAID 0+1和RAID 10兼顧了RAID 0和RAID 1的優點,它在提供RAID 1一樣的數據安全保證的同時,也提供了與RAID 0近似的存儲性能。雖然RAID 0+1和RAID 10基本原理相近,都是RAID0和RAID1的結合,不過還是有些區別。

在MySQL數據庫中,通常我們選用RAID 10。

 

 

參考文獻:

http://zh.wikipedia.org/wiki/RAID  (需要梯子)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM