RAID(磁碟陣列) 介紹

由 Derek 發表於 六月 15, 2011 / 尚無評論

 

RAID是什麼 (Redundant Array of Inexpensive Disks) :

 

什麼是「RAID」?RAID又稱「磁碟陣列」,英文為「Redundant Array of Independent Disks」,意思就是把多個硬碟集合起來,組成一個磁碟群組,透過不同RAID機制,讓RAID磁碟陣列可以達到儲存更快速或更運作更安全等目的

 

一般來說,RAID把多個硬碟組合成為一個邏輯磁區,RAID的應用大部分會在比較重要的伺服器、網路主機或執行重要工作的電腦中,並且常使用完全相同的硬碟作為組合,一般使用者的電腦比較少會用到RAID磁碟陣列。不過由於近年來硬碟價格越來越低與RAID功能更加有效地與主機板整合,一般使用者在替CPU超頻之外,也開始會希望能增加磁碟的儲存速度或者安全性,所以也常會接觸到RAID等等相關應用與設定。

 

RAID (獨立磁碟多重陣列) 的構想最先是由加州柏克萊大學的 David A. PattersonGarth Gibson Randy H. Katz 1988 年所提出的。RAID 的目的在於將相同的資料儲存在多個磁碟機中不同的地方,並且改善儲存子系統的效能。RAID 的優點為提供更好的生產力效能及/或資料錯誤容忍度。透過將工作量平行分散到多個實體磁碟機中可以達到較好的效能。而藉由資料多重操作,當一個 (或多個) 磁碟機或磁區發生問題時,可以在另一個磁碟機中找到資料的映射拷貝,則可達到錯誤容忍度

 

磁碟陣列是由2個以上的硬碟,模擬一個邏輯硬碟出現在系統中;使用磁碟陣列控制器以達成其存在,利用不同陣列形式,模擬各種層級。

以下就是各階層RAID的介紹

 

 

首先RAID目前可分為以下幾種

 


JBOD

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

 

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

           

 

 

RAID 0

Striping/Span (切分/延展) RAID 0,它是將資料儲存在2個以上的硬碟機,其將全部磁碟機的儲存容量合併,藉由將資料切分到全部的磁碟機上,進行平行讀寫,而達到提高效能增加容量。但是缺點是完全沒有容錯能力,只要有一個磁碟故障,就會導致陣列磁碟的所有資料,毀 於一旦無法挽回。

理論上越多的磁碟效能就等於[單一磁碟效能]×[磁碟數],但實際上受限於匯流排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}          

 

優點 : 提高效能增加容量,速度是最快的

缺點 : 沒有容錯的能力

讀取資料 : 容易處理許多個同時讀取。

寫入資料 : 容易處理多個同時寫入。

備份功能 :

: 非常合理(空間完全利用)

  

參考資料http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel0-c.html

 

 

RAID 1

RAID 1,必須由2個以上的硬碟所組成,由磁碟陣列(RAID)來控制,將資料同時寫入第1個與第2個硬碟,其2組硬碟上的資料完全相同,也就是其中一個硬碟是用來作備份用途;當其中有一個硬碟故障時,系統照常運作正常。RAID 1是所有RAID階層 上,經濟效益最好,效能很高,極佳的資料安全性。是所有階層中使用最多最廣最符合當初RAID設計概念的一種。唯一小缺點是,其陣列磁碟容量是全部硬碟容量的一半。是所有RAID上磁碟利用率最低的一個級別。

優點 : 經濟效益最好、效能很高、資料安全性極佳。

缺點 : 容量為全部硬碟的一半、另外寫入速度有微小的降低。

讀取資料 : 較快,因為其中的任何一個硬碟都有資料。

寫入資料 : 較慢,因為需要寫入多顆硬碟。

備份功能 : 安全性最高

: 較高,由於硬碟機使用率只有50%

    

參考資料http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel1-c.html

 

 

RAID 2

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

 

但不同於前者,RAID 2 分散至各磁碟機的資料單位為位元,而非 RAID 0 的大區塊式,意即,RAID 2 將資料的第一個位 元存放於陣列的第一顆磁碟機,第二個位元存放於陣列的第二顆磁碟機,餘依此類推,此 同樣可提昇資料的存取效率,和 RAID 0 相較下,由於 RAID 2 是以位元為分散單位所以 每此讀寫動作都將牽引陣列內所有的磁碟機同時讀寫

 

   

參考資料http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel2-c.html

 

 

RAID 3

RAID 3,最少須3個硬碟或以上,這個階層的磁碟陣列具備了同位元高階智慧型演算法,利用一個硬碟來儲存其運算出來的同位元值的資料。當陣列磁碟中有一個硬碟發生故障時(當然不能是同位元碟),只要換上新硬碟後,磁碟陣列控制器就能利用同位元碟的資料,重新演算得到其舊有資料並回寫建立。因為其同位元檢查資料是將資料切割成數個區段,利用XOR演算法計算 出同位元資料;而其區段以Bytes計算時,稱為RAID 3,如果是以Block計算時,就稱為RAID 4。所以RAID 3在整體讀寫效能會 較慢較差,但在成本上會比RAID 0+1還省一點,其陣列磁碟整體容量計算公式為N-1

優勢的功能是 : 允許 "重疊讀取" Overlapped Read Operation.

  

參考資料http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel3-c.html

 

 

RAID 4

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

RAID 4 集合 RAID 0 2 3 的優點,將分散於各磁碟機 的資料區塊長度提昇為作業系統層次的傳輸單位,如磁區或磁串,如此,每次寫入任一部磁碟機的區塊長度即是一整個磁區或磁串,RAID 4 也另外設置一部專職的磁碟機儲存錯誤修正資訊

   

參考資料http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel4-c.html

 

 

RAID 5

RAID Level 5 是一種儲存效能、資料安全和儲存成本兼顧的儲存解決方案。它使用的是Disk Striping(硬碟分割)技術。RAID 5 至少需要三顆硬碟, RAID 5不對儲存的資料進行備份,而是把資料和相對應的奇偶校驗資訊儲存到組成RAID5的各個磁碟上,並且奇偶校驗資訊和相對應的資料分別儲存於不同的磁碟上。當RAID5的一個磁碟資料發生損壞後,利用剩下的資料和相應的奇偶校驗資訊去恢復被損壞的資料。 RAID 5可以理解為是RAID 0RAID 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 5 可允許同時進行多個寫入的動作,可增加效率,但在存取大檔案及連續的資料時,必需重新計算同位檢測資訊,會降低執行效率。RAID 5的容錯能力很高。

讀取資料 : 正常速度。

寫入資料 : 較慢,由於Parity 的計算(包含讀與寫)。

備份功能 : 很好。

: 合理,硬碟機使用率為 n-1 ( RAID 3)

    

參考資料http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel5-c.html

 

 

RAID 6

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

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

  

參考資料http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel6-c.html

 

RAID 7

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

 

參考資料: http://www.pcguide.com/ref/hdd/perf/raid/levels/singleLevel7-c.html

 

RAID 10/01

RAID 10/01其實可細分為RAID 1+0RAID 0+1

RAID 1+0是先鏡射再分割資料。是將所有硬碟分為兩組,視為是RAID 0的最低組合,然後將這兩組各自視為RAID 1運作。RAID 1+0有著不錯的讀取速度,而且擁有比RAID 0更高的資料保護性。

RAID 0+1則是跟RAID 1+0的程式相反,是先分割再將資料鏡射到兩組硬碟。它將所有的硬碟分為兩組,變成RAID 1的最低組合,而將兩組硬碟各自視為RAID 0運作。RAID 0+1比起RAID 1+0有著更快的讀寫速度,不過也多了一些會讓整個硬碟組停止運轉的機率;因為只要同一組的硬碟全部損毀,RAID 0+1就會停止運作,而RAID 1+0則可以在犧牲RAID 0的優勢下正常運作。

RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保護兩種特性,不過它的缺點是需要的硬碟數較多,因為至少必須擁有四個以上的偶數硬碟才能使用。

              

  

RAID 50

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


RAID 53

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


 


 

以下是幾項比較常用到的RAID圖表說明


RAID種類

簡述

硬碟有無容錯

N顆硬碟可用容量

RAID 0

Stripe / Span

NO

N

RAID 1

Mirror

YES

N/2

RAID 3

Parallel with Parity

YES

N-1

RAID 4

Parallel with Parity

YES

N-1

RAID 5

Striped with Rotating

Parity

YES

N-1

RAID 0+1 or 1+ 0 (10)

Mirror + Stripe

YES

N/2

 

 

 

熱備份是什麼

RAID levels 1, 3,5 的組態下,都可以包含一個作為熱備份的硬碟。熱備份硬

碟隨時處在運作與待命的情況下,當控制器偵測到有其他的硬碟毀損時,便立即

用熱備份硬碟來取代,如此的方式可以更增強Raid 的容錯能力。

 

 

 

關於作者

一個半路殺出來的傻小子,憑著一股傻勁努力的學習、嘗試、分享。希望能用自己微薄之力,替IT界和資訊界盡一點心力。單憑一己之力始終還是有限,歡迎和我有相同理念的夥伴一同加入一同努力。

評論

此文章尚無評論。

發表評論

*