1. 程式人生 > >RAID 0,RAID 1,RAID 10,RAID 5各需幾塊盤才可組建另附各個raid的結構

RAID 0,RAID 1,RAID 10,RAID 5各需幾塊盤才可組建另附各個raid的結構

RAID是“Redundant Array of Independent Disk”的縮寫,中文意思是獨立冗餘磁碟陣列。簡單地解釋,就是將N臺硬碟通過RAID Controller(分Hardware,Software)結合成虛擬單臺大容量的硬碟使用。RAID的採用為儲存系統(或者伺服器的內建儲存)帶來巨大利益,其中提高傳輸速率和提供容錯功能是最大的優點。

簡單的說,RAID是一種把多塊獨立的硬碟(物理硬碟)按不同的方式組合起來形成一個硬碟組(邏輯硬碟),從而提供比單個硬碟更高的儲存效能和提供資料備份技術。根據磁碟陳列的不同組合方式,可以將RAID分為不同的級別。

磁碟陣列中針對不同的應用使用的不同技術,稱為RAID level,而每一level都代表著不同技術,目前業界公認的標準是RAID 0~RAID 5。這個level並不代表技術的高低,level 5並不高於level 3,level 1也不低過level 4,至於要選擇那一種RAID level的產品,純視使用者的操作環境(operating environment)及應用(application)而定與level的高低沒有必然的關係。

在RAID有一基本概念稱為EDAP(Extended Data Availability and Protection),其強調擴充性及容錯機制,也是各家廠商如:Mylex,IBM,HP,Compaq,Adaptec,Infortrend等訴求的重點,包括在不須停機情況下可處理以下動作:

  • RAID 磁碟陣列支援自動檢測故障硬碟
  • RAID 磁碟陣列支援重建硬碟壞軌的資料
  • RAID 磁碟陣列支援不須停機的硬碟備援Hot Spare
  • RAID 磁碟陣列支援支援不須停機的硬碟替換Hot Swap
  • RAID 磁碟陣列支援擴充硬碟容量等

RAID 0:無差錯控制的帶區組

要實現RAID0必須要有兩個以上硬碟驅動器,RAID0實現了帶區組,資料並不是儲存在一個硬碟上,而是分成資料塊儲存在不同驅動器上。因為將資料分佈在不同驅動器上,所以資料吞吐率大大提高,驅動器的負載也比較平衡。如果剛好所需要的資料在不同的驅動器上效率最好。它不需要計算校驗碼,實現容易。它的缺點是它沒有資料差錯控制,如果一個驅動器中的資料發生錯誤,即使其它盤上的資料正確也無濟於事了。不應該將它用於對資料穩定性要求高的場合。如果使用者進行圖象(包括動畫)編輯和其它要求傳輸比較大的場合使用RAID0比較合適。同時,RAID可以提高資料傳輸速率,比如所需讀取的檔案分佈在兩個硬碟上,這兩個硬碟可以同時讀取。那麼原來讀取同樣檔案的時間被縮短為1/2。在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗餘功能的,如果一個磁碟(物理)損壞,則所有的資料都無法使用。

如果兩塊硬碟:160G+120G=240G

RAID 1:鏡象結構

對於使用這種RAID1結構的裝置來說,RAID控制器必須能夠同時對兩個盤進行讀操作和對兩個鏡象盤進行寫操作。通過下面的結構圖您也可以看到必須有兩個驅動器。因為是鏡象結構在一組盤出現問題時,可以使用鏡象,提高系統的容錯能力。它比較容易設計和實現。每讀一次盤只能讀出一塊資料,也就是說資料塊傳送速率與單獨的盤的讀取速率相同。因為RAID1的校驗十分完備,因此對系統的處理能力有很大的影響,通常的RAID功能由軟體實現,而這樣的實現方法在伺服器負載比較重的時候會大大影響伺服器效率。當您的系統需要極高的可靠性時,如進行資料統計,那麼使用RAID1比較合適。而且RAID1技術支援“熱替換”,即不斷電的情況下對故障磁碟進行更換,更換完畢只要從映象盤上恢復資料即可。當主硬碟損壞時,映象硬碟就可以代替主硬碟工作。映象硬碟相當於一個備份盤,可想而知,這種硬碟模式的安全性是非常高的,RAID 1的資料安全性在所有的RAID級別上來說是最好的。但是其磁碟的利用率卻只有50%,是所有RAID級別中最低的。

如果兩塊硬碟:160G+120G=120G

RAID2:帶海明碼校驗

從概念上講,RAID 2 同RAID 3類似,兩者都是將資料條塊化分佈於不同的硬碟上, 條塊單位為位或字 節。然而RAID 2 使用一定的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁碟存放檢查及恢復資訊,使得RAID 2技術實施更復雜。因此,在商業環境中很少使用。上圖右邊的各個磁碟上是資料的各個位,由一個數據不同的位運算得到的海明校驗碼可以儲存另一組磁碟上,具體情況請見下圖。由於海明碼的特點,它可以在資料發生錯誤的情況下將錯誤校正,以保證輸出的正確。它的資料傳送速率相當高,如果希望達到比較理想的速度,那最好提高儲存校驗碼ECC碼的硬碟,對於控制器的設計來說,它又比RAID3,4或5要簡單。沒有免費的午餐,這裡也一樣,要利用海明碼,必須要付出資料冗餘的代價。輸出資料的速率與驅動器組中速度最慢的相等。

RAID3:帶奇偶校驗碼的並行傳送

RAID3這種校驗碼與RAID2不同,只能查錯不能糾錯。它訪問資料時一次處理一個帶區,這樣可以提高讀取和寫入速度,它像RAID 0一樣以並行的方式來存放資料,但速度沒有RAID 0快。校驗碼在寫入資料時產生並儲存在另一個磁碟上。需要實現時使用者必須要有三個以上的驅動器,寫入速率與讀出速率都很高,因為校驗位比較少,因此計算時間相對而言比較少。用軟體實現RAID控制將是十分困難的,控制器的實現也不是很容易。它主要用於圖形(包括動畫)等要求吞吐率比較高的場合。不同於RAID 2,RAID 3使用單塊磁碟存放奇偶校驗資訊。如果一塊磁碟失效,奇偶盤及其他資料盤可以重新產生資料。如果奇偶盤失效,則不影響資料使用。RAID 3對於大量的連續資料可提供很好的傳輸率,但對於隨機資料,奇偶盤會成為寫操作的瓶頸。利用單獨的校驗盤來保護資料雖然沒有映象的安全性高,但是硬碟利用率得到了很大的提高,為(n-1)/n。

RAID4:帶奇偶校驗碼的獨立磁碟結構

RAID4和RAID3很像,不同的是,它對資料的訪問是按資料塊進行的,也就是按磁碟進行的,每次是一個盤。在圖上可以這麼看,RAID3是一次一橫條,而RAID4一次一豎條。它的特點和RAID3也挺像,不過在失敗恢復時,它的難度可要比RAID3大得多了,控制器的設計難度也要大許多,而且訪問資料的效率不怎麼好。

RAID5:分散式奇偶校驗的獨立磁碟結構

從它的示意圖上可以看到,它的奇偶校驗碼存在於所有磁碟上,其中的p0代表第0帶區的奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁碟上,所以提高了可靠性,允許單個磁碟出錯。RAID 5也是以資料的校驗位來保證資料的安全,但它不是以單獨硬碟來存放資料的校驗位,而是將資料段的校驗位互動存放於各個硬碟上。這樣,任何一個硬碟損壞,都可以根據其它硬碟上的校驗位來重建損壞的資料。硬碟的利用率為n-1。但是它對資料傳輸的並行性解決不好,而且控制器的設計也相當困難。RAID 3 與RAID 5相比,重要的區別在於RAID 3每進行一次資料傳輸,需涉及到所有的陣列盤。而對於RAID 5來說,大部分資料傳輸只對一塊磁碟操作,可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的資料及奇偶資訊,兩次寫新的資料及奇偶資訊。RAID-5的話,優點是提供了冗餘性(支援一塊盤掉線後仍然正常執行),磁碟空間利用率較高(N-1/N),讀寫速度較快(N-1倍)。RAID5最大的好處是在一塊盤掉線的情況下,RAID照常工作,相對於RAID0必須每一塊盤都正常才可以正常工作的狀況容錯效能好多了。因此RAID5是RAID級別中最常見的一個型別。RAID5校驗位即P位是通過其它條帶資料做異或(xor)求得的。計算公式為P=D0xorD1xorD2…xorDn,其中p代表校驗塊,Dn代表相應的資料塊,xor是數學運算子號異或。

RAID6:兩種儲存的奇偶校驗碼的磁碟結構

名字很長,但是如果看到圖,大家立刻會明白是為什麼,請注意p0代表第0帶區的奇偶校驗值,而pA代表資料塊A的奇偶校驗值。它是對RAID5的擴充套件,主要是用於要求資料絕對不能出錯的場合。當然了,由於引入了第二種奇偶校驗值,所以需要N+2個磁碟,同時對控制器的設計變得十分複雜,寫入速度也不好,用於計算奇偶校驗值和驗證資料正確性所花費的時間比較多,造成了不必須的負載。我想除了軍隊沒有人用得起這種東西。

RAID7:優化的高速資料傳送磁碟結構

RAID7所有的I/O傳送均是同步進行的,可以分別控制,這樣提高了系統的並行性,提高系統訪問資料的速度;每個磁碟都帶有高速緩衝儲存器,實時作業系統可以使用任何實時操作晶片,達到不同實時系統的需要。允許使用SNMP協議進行管理和監視,可以對校驗區指定獨立的傳送通道以提高效率。可以連線多臺主機,因為加入高速緩衝儲存器,當多使用者訪問系統時,訪問時間幾乎接近於0。由於採用並行結構,因此資料訪問效率大大提高。需要注意的是它引入了一個高速緩衝儲存器,這有利有弊,因為一旦系統斷電,在高速緩衝儲存器內的資料就會全部丟失,因此需要和UPS一起工作。當然了,這麼快的東西,價格也非常昂貴。

RAID10/01:高可靠性與高效磁碟結構

這種結構無非是一個帶區結構加一個鏡象結構,因為兩種結構各有優缺點,因此可以相互補充,達到既高效又高速還可以互為映象的目的。大家可以結合兩種結構的優點和缺點來理解這種新結構。這種新結構的價格高,可擴充性不好。主要用於容量不大,但要求速度和差錯控制的資料庫中。

其中可分為兩種組合:RAID10和RAID01

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

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

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

RAID 50:被稱為分佈奇偶位陣列條帶

同RAID 10相仿的,它具有RAID 5和RAID 0的共同特性。它由兩組RAID 5磁碟組成(每組最少3個),每一組都使用了分散式奇偶位,而兩組硬碟再組建成RAID 0,實驗跨磁碟抽取資料。RAID 50提供可靠的資料儲存和優秀的整體效能,並支援更大的捲尺寸。即使兩個物理磁碟發生故障(每個陣列中一個),資料也可以順利恢復過來。

RAID 50最少需要6個驅動器,它最適合需要高可靠性儲存、高讀取速度、高資料傳輸效能的應用。這些應用包括事務處理和有許多使用者存取小檔案的辦公應用程式。

RAID 53:稱為高效資料傳送磁碟結構

結構的實施同Level 0資料條陣列,其中,每一段都是一個RAID 3陣列。它的冗餘與容錯能力同RAID 3。這對需要具有高資料傳輸率的RAID 3配置的系統有益,但是它價格昂貴、效率偏低。

RAID 1.5:一個新生的磁碟陣列方式

它具有RAID 0+1的特性,而不同的是,它的實現只需要2個硬碟。從表面上來看,組建RAID 1.5後的磁碟,兩個都具有相同的資料。當然,RAID 1.5也是一種不能完全利用磁碟空間的磁碟陣列模式,因此,兩個80GB的硬碟在組建RAID 1.5後,和RAID 1是一樣的,即只有80GB的實際使用空間,另外80GB是它的備份資料。如果把兩個硬碟分開,分別把他們執行在原系統,也是暢通無阻的。但通過實際應用,我們發現如果兩個硬碟在分開執行後,其資料的輕微改變都會引起再次重組後的磁碟陣列,沒法實現完全的資料恢復,而是以資料較少的磁碟為準。

JBOD

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

如果兩塊硬碟:160G+120G=280G

在實際的應用中,RAID2~4並不存在,因為RAID5已經涵蓋了所需的功能。因此RAID2~4目前只有在研究領域有實作,而在實際應用上則以RAID 0、1、0+1、5或RAID6為主。但是對於我們普通使用者來說,用的最多的也就是RAID 0、1、0+1和RAID 5。