Raid 技術簡介

張衝andy發表於2017-08-19

獨立硬碟冗餘陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁碟冗餘陣列,簡稱硬碟陣列。其基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使效能達到甚至超過一個價格昂貴、容量巨大的硬碟。根據選擇的版本不同,RAID比單顆硬碟有以下一個或多個方面的好處:增強資料整合度,增強容錯功能,增加處理量或容量。另外,磁碟陣列對於計算機來說,看起來就像一個單獨的硬碟或邏輯儲存單元。

簡單來說,RAID把多個物理硬碟組合成為一個邏輯磁碟,因此,作業系統只會把一個raid陣列當作一個硬碟。RAID常被用在伺服器計算機上,並且常使用完全相同的硬碟作為組合。由於硬碟價格的不斷下降與RAID功能更加有效地與主機板整合,它也成為了玩家的一個選擇,特別是需要大容量儲存空間的工作。

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

各級別RAID簡介

RAID0

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

理論上越多的磁碟效能就等於“單一磁碟效能”ד磁碟數”,但實際上受限於匯流排I/O瓶頸及其它因素的影響,RAID效能會隨邊際遞減,也就是說,假設一個磁碟的效能是50MB每秒,兩個磁碟的RAID 0效能約96MB每秒,三個磁碟的RAID 0也許是130MB每秒而不是150MB每秒。 可使用容量是硬碟總數乘以單塊硬碟的最小容量:Size=(N)*min(S1,S2,S3...Sn)

RAID1

Raid1.jpg
RAID1是將一個兩塊硬碟所構成RAID磁碟陣列,其容量僅等於一塊硬碟的容量,因為另一塊只是當作資料“映象”。RAID 1磁碟陣列顯然是最可靠的一種陣列,因為它總是保持一份完整的資料備份。它的效能自然沒有RAID 0磁碟陣列那樣好,但其資料讀取確實較單一硬碟來的快,因為資料會從兩塊硬碟中較快的一塊中讀出。RAID 1磁碟陣列的寫入速度通常較慢,因為資料得分別寫入兩塊硬碟中並做比較。RAID 1磁碟陣列一般支援“熱交換”,就是說陣列中硬碟的移除或替換可以在系統執行時進行,無須中斷退出系統。RAID 1磁碟陣列是十分安全的,不過也是較貴一種RAID磁碟陣列解決方案,因為兩塊硬碟僅能提供一塊硬碟的容量。RAID 1磁碟陣列主要用在資料安全性很高,而且要求能夠快速恢復被破壞的資料的場合。

RAID5

Raid5.jpg
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高,儲存成本相對較便宜。
可使用的容量為硬碟總數減去1的差,乘以單塊硬碟的最小容量,公式為Size=(N-1)*min(S1,S2,S3...Sn)

RAID6

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

同一陣列中最多容許兩個磁碟損壞。更換新磁碟後,資料將會重新算出並寫入新的磁碟中。依照設計理論,RAID 6必須具備四個以上的磁碟才能生效。

可使用的容量為硬碟總數減去2的差,乘以單塊硬碟的最小容量,公式為Size=(N-2)*min(S1,S2,S3...Sn)

 

RAID10

Raid10.jpg
RAID 1與RAID 0的組合,先作RAID 1,再作RAID 0,也就是對多組RAID 1彼此構成Stripe訪問。由於RAID 10是以RAID 1為基礎,而RAID 1至少需要2塊硬碟,因此要以多組RAID 1構成RAID 10,至少需要4塊硬碟。以RAID 10最小的4臺硬碟組態為例,先把4臺硬碟分為2組,每組2臺構成RAID 1,如此就得到兩組RAID 1,然後再把兩組RAID 1構成RAID 0。

RAID 10在底層的任一組或多組RAID 1中出現1臺硬碟損壞時,仍能維持運作,不過如果任一組RAID 1中的兩塊硬碟損毀,整組RAID10就會失效。

RAID 10由於在上層把多組RAID 1構成Stripe,容量利用率是50%,例如:4塊硬碟做的raid10的總容量是兩塊硬碟的容量。

RAID50

Raid50.jpg

RAID 5與RAID 0的組合,先作RAID 5,再作RAID 0,也就是對多組RAID 5彼此構成Stripe訪問。由於RAID 50是以RAID 5為基礎,而RAID 5至少需要3臺硬碟,因此要以多組RAID 5構成RAID 50,至少需要6臺硬碟。以RAID 50最小的6臺硬碟組態為例,先把6臺硬碟分為2組,每組3臺構成RAID 5,如此就得到兩組RAID 5,然後再把兩組RAID 5構成RAID 0。

RAID 50在底層的任一組或多組RAID 5中出現1臺硬碟損壞時,仍能維持運作,不過如果任一組RAID 5中出現2臺或兩臺以上硬碟損毀,整組RAID 50就會失效。

RAID 50由於在上層把多組RAID 5構成Stripe,效能比起單純的RAID 5高,容量利用率比RAID5要低。比如同樣9塊硬碟,RAID 50則3個RAID 5組成RAID 0,每個RAID 5會損失一塊硬碟的容量,利用率為(1-3/9),RAID 5則為(1-1/9)。

RAID60

Raid60.jpg
RAID 6與RAID 0的組合:先作RAID 6,再作RAID 0。換句話說,就是對兩組以上的RAID 6作Stripe訪問。RAID 6至少需具備4塊硬碟,所以RAID 60的最小需求是8塊硬碟。

由於底層是以RAID 6組成,所以RAID 60可以容許任一組RAID 6中損毀最多2塊硬碟,而系統仍能維持運作;不過只要底層任一組RAID 6中損毀3塊硬碟,整組RAID 60就會失效,當然這種情況的機率相當低。

比起單純的RAID 6,RAID 60的上層通過結合多組RAID 6構成Stripe訪問,因此效能較高。不過使用門檻高,而且容量利用率低是較大的問題

RAID級別對比

Raidvs.jpg

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2143807/,如需轉載,請註明出處,否則將追究法律責任。

相關文章