2019年6月1日 星期六

磁碟陣列 ( RAID )

磁碟陣列 ( RAID ) 

磁碟陣列 ( Redundant Array of Inexpensive Disks,RAID ) 

把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使性能達到甚至超過一個價格昂貴、容量巨大的硬碟 

根據選擇的版本不同,RAID 比單顆硬碟有以下一個或多個方面的好處:增強資料整合度,增強容錯功能,增加處理量或容量 

磁碟陣列對於電腦來說, 看起來就像一個單獨的硬碟或邏輯存儲單元,分為 RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50

RAID 把多個硬碟組合成為一個邏輯磁區,因此,作業系統只會把它當作一個硬碟,RAID 常被用在伺服器電腦上且常使用完全相同的硬碟作為組合 

由於硬碟價格的不斷下降與 RAID 功能更加有效地與主機板整合,它也成為了玩家的一個選擇,特別是需要大容量儲存空間的工作 

最初的 RAID 分成了不同的等級,每種等級都有其理論上的優缺點,不同的等級在兩個目標間取得平衡,分別是增加資料可靠性以及增加存儲器 ( 群 ) 讀寫效能

RAID 0 

RAID 0 亦稱為帶區集 ,是將多個磁碟並列起來,成為一個大磁碟,在存放數據時,其將數據按磁碟的個數來進行分段,然後同時將這些數據寫進這些盤中,所以在所有的級別中,速度是最快的

RAID 0 沒有冗餘功能,如一個磁碟 ( 物理 ) 損壞,則所有的數據都會丟失 理論上越多的磁碟效能就等於 [ 單一磁碟效能 ] x [ 磁碟數 ],但實際上受限於匯流排 I / O 瓶頸及其它因素的影響,RAID 效能會隨邊際遞減 

假設一個磁碟的效能是 50 MB 每秒,兩個磁碟的 RAID 0 效能約 96 MB 每秒,三個磁碟的 RAID 0 也許是 130 MB 每秒而不是 150 MB 每秒,所以兩個磁碟的 RAID 0 最能明顯感受到效能的提升

 Size = 2 x min ( S1,S2 )

 但如是以軟體方式來實作 RAID,則磁碟的空間則不見得受限於此 ( 例:Linux Software RAID ),透過軟體實作可經由不同的組合而善用所有的磁碟空間

 Size = sum of all disk



RAID 1 

RAID 1 就是鏡像,其原理為在主硬碟上存放數據的同時也在鏡像硬碟上寫一樣的數據 

當主硬碟 ( 物理 ) 損壞時,鏡像硬碟則代替主硬碟的工作,因為有鏡像硬碟做數據備份,所以 RAID 1 的數據安全性在所有的 RAID 級別上來說是最好的 

但無論用多少磁碟做 RAID 1,僅算一個磁碟的容量,是所有 RAID上 磁碟利用率最低的一個級別 

兩組以上的 N 個磁碟相互作鏡像,在一些多執行緒作業系統中能有很好的讀取速度,另外寫入速度有微小的降低,除非擁有相同資料的主磁碟與鏡像同時損壞,否則只要一個磁碟正常即可維持運作,可靠性最高

 Size = min ( S1,S2 )



RAID 5

RAID 5 使用的是 Disk Striping ( 硬碟分割 ) 技術

RAID 5 可理解為是 RAID 0 和 RAID 1 的折衷方案,是一種儲存性能、數據安全和存儲成本兼顧的存儲解決方案,可為系統提供數據安全保障,但保障程度要比鏡像低而磁碟空間利用率要比鏡像高

RAID 5 具有和 RAID 0 相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度相當的慢,若使用 [ 回寫快取 ] 可讓效能改善不少,同時由於多個數據對應一個奇偶校驗信息 

RAID 5 至少需要三顆硬碟,不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成 RAID5 的各個磁碟上且奇偶校驗信息和相對應的數據分別存儲於不同的磁碟上

當 RAID5 的一個磁碟數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據

 Size = ( N - 1 ) x min ( S1,S2,.....,Sn )



RAID 10 / 01

RAID 10 / 01 細分為 RAID 1 + 0 或 RAID 0 + 1

效能上,RAID 0 + 1 比 RAID 1 + 0 有著更快的讀寫速度 

可靠性上,當 RAID 1 + 0 有一個硬碟受損,其餘三個硬碟會繼續運作,RAID 0 + 1 只要有一個硬碟受損,同組 RAID 0 的另一硬碟亦會停止運作,只剩下兩個硬碟運作,可靠性較低 

RAID 1 + 0 

RAID 1+ 0 是先鏡射再分割資料,再將所有硬碟分為兩組,視為是 RAID 0 的最低組合,然後將這兩組各自視為 RAID 1 運作

RAID 0 + 1

RAID 0 + 1 是先分割再將資料鏡射到兩組硬碟,它將所有的硬碟分為兩組,變成 RAID 1 的最低組合,然後將兩組硬碟各自視為 RAID 0 運作

Reference:
http://www.cas.idv.tw/Documents/System/RAID/RAID.asp