跳到主要內容

硬碟陣列

廉價磁碟冗餘陣列RAID, Redundant Array of Inexpensive Disks)簡稱硬碟陣列, 其基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使性能達到甚至超過一個價格昂貴、容量巨大的硬碟。根據選擇的版本不同,RAID比單 顆硬碟有以下一個或多個方面的好處:增強資料整合度,增強容錯功能,增加處理量或容量。另外,磁碟陣列對於電腦來說, 看起來就像一個單獨的硬碟或邏輯存儲單元。分為RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID- 10,RAID-50。
簡單來說,RAID把多個硬碟組合成為一個邏輯磁區,因此,作業系統只會把它當作一個硬碟。RAID常被用在伺服器電腦上,並且常使用完全相同的硬碟作為組合。由於硬碟價格的不斷下降與RAID功能更加有效地與主機板整合,它也成為了玩家的一個選擇,特別是需要大容量儲存空間的工作,如:視訊與音訊製作。
最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點,不同的等級在兩個目標間取得平衡,分別是增加資料可靠性以及增加存儲器(群)讀寫效能。這些年來,出現了對於RAID觀念不同的應用。

目錄

基本RAID分類

JBOD

JBOD
(JBOD, Just a Bunch Of Disks)在某些分類上,JBOD並不算是RAID的等級。只是將多個磁碟空間合併成一個大的邏輯磁碟,不具有錯誤備援機制。資料的存放機制是由第一顆 磁碟開始依序往後存放,即作業系統看到的是一個大磁碟(由許多小磁碟組成)。但如果磁碟損毀,則該顆硬碟上的所有數據將無法救回。若第一顆硬碟損壞,通常 無法作救援(因大部分文件系統將文件表存在磁碟前端,即第一顆),失去文件表即失去一切數據。
\begin{align}Size & = sum  of  all  disk\end{align}

RAID 0

RAID 0
將多個磁碟合併成一個大的磁碟,不具有冗餘,並行I/O, 速度最快。RAID 0亦稱為帶區集。它是將多個磁碟並列起來,成為一個大磁碟。在存放數據時,其將數據按磁碟的個數來進行分段,然後同時將這些數據寫進這些盤中,所以在所有 的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗餘功能,如果一個磁碟(物理)損壞,則所有的數據都會丟失。
理論上越多的磁碟效能就等於「單一磁碟效能」×「磁碟數」,但實際上受限於匯流排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}Size & = sum  of  all  disk\end{align}

RAID 1

RAID 1
兩組以上的N個磁碟相互作鏡像, 在一些多執行緒作業系統中能有很好的讀取速度,另外寫入速度有微小的降低。除非擁有相同資料的主磁碟與鏡像同時損壞,否則只要一個磁碟正常即可維持運作, 可靠性最高。RAID 1就是鏡像。其原理為在主硬碟上存放數據的同時也在鏡像硬碟上寫一樣的數據。當主硬碟(物理)損壞時,鏡像硬碟則代替主硬碟的工作。因為有鏡像硬碟做數據 備份,所以RAID 1的數據安全性在所有的RAID級別上來說是最好的。但無論用多少磁碟做RAID 1,僅算一個磁碟的容量,是所有RAID上磁碟利用率最低的一個級別。
\begin{align}Size & = \min \left(S_1, S_2\right)\end{align}

RAID 2

RAID 2
這是RAID 0的改良版,以漢明碼(Hamming Code)的方式將數據進行編碼後分割為獨立的位元,並將數據分別寫入硬碟中。因為在數據中加入了錯誤修正碼(ECC,Error Correction Code),所以數據整體的容量會比原始數據大一些,RAID2最少要三台磁碟機方能運作。

RAID 3

RAID 3
採用Bit-interleaving(數據交錯儲存)技術,它需要通過編碼再將數據位元分割後分別存在硬碟中,而將同位元檢查後單獨存在一個硬碟 中,但由於數據內的位元分散在不同的硬碟上,因此就算要讀取一小段數據資料都可能需要所有的硬碟進行工作,所以這種規格比較適於讀取大量數據時使用。

RAID 4

RAID 4
它與RAID 3不同的是它在分割時是以區塊為單位分別存在硬碟中,但每次的數據存取都必須從同位元檢查的那個硬碟中取出對應的同位元數據進行核對,由於過於頻繁的使用,所以對硬碟的損耗可能會提高。(Block interleaving)

RAID 5

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 6

RAID 6
與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的演算法,數據的可靠性非常高,即使兩塊磁碟同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的磁碟空間,相對於RAID 5有更大的「寫損失」,因此「寫性能」非常差。較差的性能和複雜的實作方式使得RAID 6很少得到實際應用。
同一陣列中最多容許兩個磁碟損壞。更換新磁碟後,資料將會重新算出並寫入新的磁碟中。依照設計理論,RAID 6必須具備四個以上的磁碟才能生效。

RAID 7

RAID 7並非公開的RAID標準,而是Storage Computer Corporation的專利硬體產品名稱,RAID 7是以RAID 3及RAID 4為基礎所發展,但是經過強化以解決原來的一些限制。另外,在實作中使用大量的快取記憶體以及用以實現非同步陣列管理的專用即時處理器,使得RAID 7可以同時處理大量的IO要求,所以效能甚至超越了許多其他RAID標準的實做產品。但也因為如此,在價格方面非常的高昂。[1]

RAID 10/01

RAID 1+0
RAID 0+1
RAID 10/01細分為RAID 1+0或RAID 0+1。
RAID 1+0是先鏡射再分割資料,再將所有硬碟分為兩組,視為是RAID 0的最低組合,然後將這兩組各自視為RAID 1運作。
RAID 0+1則是跟RAID 1+0的程序相反,是先分割再將資料鏡射到兩組硬碟。它將所有的硬碟分為兩組,變成RAID 1的最低組合,而將兩組硬碟各自視為RAID 0運作。
效能上,RAID 0+1比RAID 1+0有著更快的讀寫速度。
可靠性上,當RAID 1+0有一個硬碟受損,其餘三個硬碟會繼續運作。RAID 0+1隻要有一個硬碟受損,同組RAID 0的另一隻硬碟亦會停止運作,只剩下兩個硬碟運作,可靠性較低。
因此,RAID 10遠較RAID 01常用,零售主機板絕大部份支援RAID 0/1/5/10,但不支援RAID 01。

RAID 50

RAID50也被稱為鏡象陣列條帶,由至少六塊硬碟組成,像RAID0一樣,數據被分割成條帶,在同一時間內向多塊磁碟寫入;像RAID5一樣,也是以數據的校驗位來保證數據的安全,且校驗條帶均勻分布在各個磁碟上。其目的在於提高RAID5的讀寫性能。

RAID 53

它擁有一個鏡射條帶陣列,硬碟裡其中一個條帶就是一個是由3組以上的RAID 5組成RAID 3硬碟陣列。

應用

RAID2、3、4較少實際應用,因為RAID5已經涵蓋了所需的功能,因此RAID2、3、4大多只在研究領域有實作,而實際應用上則以RAID5或RAID6為主。
RAID4有應用在某些商用機器上,像是NetApp公司設計的NAS系統就是使用RAID4的設計概念

留言

這個網誌中的熱門文章

17分鐘波段策略

使用中 觀察中 待修正 TXF_17min_1 TXF_17min_2 TXF_17min_3 TXF_17min_4 TXF_17min_5 TXF_17min_6 TXF_17min_7 TXF_17min_8 TXF_17min_9 TXF_17min_10 * TXF_17min_11 TXF_17min_12 TXF_17min_13 TXF_17min_14 * TXF_17min_15