認識RAID磁碟陣列

tolywang發表於2009-02-23
廉價冗磁碟陣列(Redundant Array of Inexpensive Disks, 簡稱RAID)

一、功能

1 對磁碟高速存取(提速): RAID將普通硬碟組成一個磁碟陣列,在主機寫入資料,RAID控制器把主機要寫入的資料分解為多個資料塊,然後並行寫入磁碟陣列;主機讀取資料時,RAID控制器並行讀取分散在磁碟陣列中各個硬碟上的資料,把它們重新組合後提供給主機。由於採用並行讀寫操作,從而提高了儲存系統的存取系統的存取速度。

2 擴容

3 資料冗餘

二、分類

RAID可分為級別0到級別6,通常稱為:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6。

RAID0:RAID0並不是真正的RAID結構,沒有資料冗餘,RAID0連續地分割資料並並行地讀/寫於多個磁碟上。因此具有很高的資料傳輸率,但RAID0在提高效能的同時,並沒有提供資料可靠性,如果一個磁碟失效,將影響整個資料。因此RAID0不可應用於需要資料高可用性的關鍵應用。

RAID1:RAID1透過資料映象實現資料冗餘,在兩對分離的磁碟上產生互為備份的資料。RAID1可以提高讀的效能,當原始資料繁忙時,可直接從映象中讀取資料。RAID1是磁碟陣列中費用最高的,但提供了最高的資料可用率。當一個磁碟失效,系統可以自動地交換到映象磁碟上,而不需要重組失效的資料。

RAID2:從概念上講,RAID2同RAID3類似,兩者都是將資料條塊化分佈於不同的硬碟上,條塊單位為位或位元組。然而RAID2使用稱為“加重平均糾錯碼”的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁碟存放檢查及恢復資訊,使得RAID2技術實施更復雜。因此,在商業環境中很少使用。

RAID3:不同於RAID2,RAID3使用單塊磁碟存放奇偶校驗資訊。如果一塊磁碟失效,奇偶盤及其他資料盤可以重新產生資料。如果奇偶盤失效,則不影響資料使用。RAID3對於大量的連續資料可提供很好的傳輸率,但對於隨機資料,奇偶盤會成為寫操作的瓶頸。

RAID4:同RAID2和RAID3一樣,RAID4和RAID5也同樣將資料條塊化並分佈於不同的磁碟上,但條塊單位為塊或記錄。RAID4使用一塊磁碟作為奇偶校驗盤,每次寫操作都需要訪問奇偶盤,成為寫操作的瓶頸。在商業應用中很少使用。

RAID5:RAID5沒有單獨指定的奇偶盤,而是交叉地存取資料及奇偶校驗資訊於所有磁碟上。在RAID5上,讀/寫指標可同時對陣列裝置進行操作,提供了更高的資料流量。RAID5更適合於小資料塊,隨機讀寫的資料。RAID3與RAID5相比,重要的區別在於RAID3每進行一次資料傳輸,需涉及到所有的陣列盤。而對於RAID5來說,大部分資料傳輸只對一塊磁碟操作,可進行並行操作。在RAID5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的資料及奇偶資訊,兩次寫新的資料及奇偶資訊。

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

三、詳細介紹

RAID0是具有提速和擴容的目的

在RAID0模式中,資料被分割為一定數量的資料塊(Chunk)交叉寫在多個硬碟上,一般的來說在RAID0系統中資料被分割的數量同RAID陣列所使用的硬碟的數量是有關的,比如RAID0中採用了3塊硬碟,那麼資料將會被分為三份依次的寫入三個硬碟,通俗的說這種模式其實就是利用RAID技術讓系統認為三塊硬碟組成一個容量更大的硬碟,因為這個過程沒有資料校驗所以這種RAID模式是讀寫速度最快的一種。

RAID0並沒有從安全性角度考慮,實際上,如果RAID0當中的一塊硬碟壞了,所有資料都會損壞,並且沒有辦法恢復。這使得RAID0的安全效能非常差,所以很多使用者出於安全考慮沒有使用RAID0模式。雖然如此,RAID0畢竟是所有RAID方式當中速度最快的一種模式,如果RAID0模式當中有兩塊硬碟的話,那麼RAID0的儲存讀取資料的速度會是單個硬碟雙倍。,如果使用6塊硬碟的話,那¹ˆ理論速率就是單個硬碟的6倍。如果在RAID0模式當中使用不同的硬碟會造成兩方面的問題,首先,RAID0的有效硬碟容量會是最小的硬碟的容量乘上硬碟的個數,這是因為如果容量的最小的硬碟存滿了之後,RAID0依然會將檔案平均分配到各個硬碟當中,此時便不能完成儲存任務了;其次,如果RAID0當中的硬碟速度不同,那麼整體的速度會是速度最慢的硬碟的速度乘上硬碟的個數,這是因為RAID0模式是需要將上一部的儲存任務完成之後才能進行下一步的程式,這樣,其它的速度快的硬碟會停下來等待速度慢的硬碟完成儲存或者讀取任務,使得整體效能有所下降。所以,在這裡建議使用RAID0模式的使用者最好選擇容量和速度相同的硬碟,最好是同一品牌的同種產品。

因此RAID0在嚴格意義上說不是“冗餘獨立磁碟陣列”。RAID0模式一般用於需要快速處理資料但是對於資料的安全性要求不高的場合。這種RAID模式的特點是簡單,而且並不需要複雜和昂貴的控制器。採用RAID0模式至少需要2塊硬碟,最終得到的儲存容量也是這兩塊硬碟的和。

RAID0的隨機讀取效能:很好
RAID0的隨機寫入效能:很好
RAID0的持續讀取效能:很好
RAID0的持續寫入效能:很好

RAID0的優點:最快的讀寫效能,如果每塊硬碟擁有獨立的控制器效能將會更好。

RAID0的缺點:任何一塊硬碟出現故障所有的資料都會丟失,大部分的控制器都是透過軟體實現的,所以效能並不好。

RAID1

RAID1模式是讓組成RAID1模式的硬碟互為映象,當你向硬碟中寫入資料的時候,兩個硬碟同時儲存相同的資料,這樣即使其中一個硬碟出現了故障,系統利用另外一個硬碟一樣可以正常執行。RAID1相對於單塊硬碟來說它的資料讀取效能會更好一些,因為當一塊硬碟處於忙的狀態時,RAID控制器可以去讀取另一塊硬碟中同樣的資料,但是寫入資料效能不但沒有增長而且可能會有輕微下降。當其中一塊硬碟出現故障之後,新的資料可以寫入仍然能夠正常工作的硬碟,當使用新的硬碟替換掉原來的硬碟之後,RAID控制器會自動的把資料複製到新的硬碟上。RAID1模式的最大特點就是冗餘性高,但是由於大部分的功能是利用軟體來實現的,所以它會增加處理器的負擔。這種RAID模式非常適合對資料的安全性有極高要求的人。

在RAID1模式當中,所使用的硬碟最好是相同的,否則會出現浪費硬碟空間的情況。由於RAID1模式是將相同的資訊寫入到不同的硬碟當中,所以RAID1模式的有效硬碟容量是陣列當中容量最小的硬碟的容量。舉例來說,如果RAID1模式中有一塊容量為20GB的硬碟和一塊容量為30GB的硬碟,那麼總體的RAID1的有效容量是20GB,從此那塊30GB硬碟上剩下的10GB容量就會被浪費。同時,如果兩塊硬碟的速度不同的話,那麼速度較快的那塊硬碟依然會停下來等待速度較慢的那塊硬碟完成任務之後再進行下一步行動。

RAID1的隨機讀取效能:好
RAID1的隨機寫入效能:好
RAID1的持續讀取效能:一般
RAID1的持續寫入效能:好

RAID1的優點:資料高可靠性,易於實現,設計簡單。

RAID1的缺點:比RAID0相比速度較慢,特別是寫入速度,另外就是我們僅僅能使用一半的硬碟容量。

RAID0+1

這種RAID模式其實是RAID0和RAID1模式的組合,至少需要4塊硬碟。其中任何兩塊組成一個RAID0磁碟陣列,然後兩個RAID0磁碟陣列可以看成兩個容量更大、速度更快的硬碟,它們再組成一個RAID1磁碟陣列。這樣的系統保證了較高的磁碟效能和較高的資料安全性。當然缺點也是顯而易見的就是成本較高,構造比較複雜。RAID0+1在容錯效能方面僅次於RAID5,一般用於檔案伺服器等方面。

RAID0+1的隨機讀取效能:很好
RAID0+1的隨機寫入效能:好
RAID0+1的持續讀取效能:很好
RAID0+1的持續寫入效能:好

RAID0+1的優點:相對於單塊硬碟具有更高的讀寫效能,而且大大提高了資料的安全性。

RAID0+1的缺點:成本較高,至少需要4塊硬碟。

RAID2

RAID2模式也相當的複雜,用於儲存資料的硬碟以RAID0的模式來組合,加上專門存放海明ECC校驗碼的硬碟,當然為了提高校驗碼資料的安全,校驗碼硬碟至少是兩個組成RAID1模式。這樣即使儲存資料的其中一個硬碟損壞,RAID控制器可以透過海明碼來恢復資料到新的硬碟上。RAID2一般針對大資料量操作和超級計算機應用等方面,但是並不適於普通使用者。因為要在資料儲存的過程中生成校驗碼,所以這種磁碟陣列的效能並不高。由於各種原因這種磁碟陣列模式並沒有投入到實際的商業應用中去。因為價格不菲,當然也不會為普通使用者所接受了。

RAID2的隨機讀取效能:一般
RAID2的隨機寫入效能:差,主要因為所有的操作都要經過ECC運算
RAID2的持續讀取效能:很好
RAID2的持續寫入效能:一般

RAID2的優點:資料安全性高,只要存放校驗碼的硬碟沒有故障就能恢復資料。

RAID2的缺點:昂貴、需要專門的硬碟存放校驗碼、效率不高、沒有商業應用的支援。

RAID3

同RAID2模式一樣,RAID3的資料也是被分成資料塊依次儲存到多個硬碟上的。只是RAID3把資料以bit為單位來分割並且儲存到各個硬碟上。它的優點就是具有高速的讀寫能力,當然寫入效能因為在寫入過程中需要生成奇偶校驗碼所以速度會受到一定的影響——它也需要一個專用的硬碟來儲存奇偶校驗碼。當其中一個儲存資料的硬碟出現故障之後,系統依然能夠正常執行,但是效能會受到影響,如果在更換壞硬碟之前又有一塊硬碟出現故障,那麼這個磁碟陣列的資料將會全部丟失,無法恢復。在這種磁碟陣列模式下,要求所有硬碟的轉速要同步,這個要求在實際應用中難度不小。RAID3至少需要3塊硬碟,其中一塊用於存放奇偶校驗碼——奇偶校驗碼是透過異或運算得到的。

這種RAID模式如果使用軟體控制器來實現將會明顯的影響效能,因為這種組合比較複雜,不過同RAID0+1模式相比它最少只要3個硬碟就可以實現——所以成本有所下降,總的來說這種磁碟陣列比較適合影片處理和編輯等方面的應用。

RAID3的隨機讀取效能:好
RAID3的隨機寫入效能:很差
RAID3的持續讀取效能:很好
RAID3的持續寫入效能:一般

RAID3的優點:比較適合影片編輯等需要大資料量呼叫的場合。

RAID3的缺點:實現各個驅動器的轉速同步非常困難(目前大部分的硬碟都不支援這個功能),需要複雜的控制器。

RAID4

RAID4模式同RAID3幾乎是一樣的,資料都是分成小的資料塊依次儲存在多個硬碟之上,奇偶校驗碼存放在獨立的奇偶校驗盤上。唯一不同的是,在資料分割上RAID3是以bit為單位而RAID4是以Byte為單位。這樣可以使得RAID4同RAID3具有一樣的讀取速度,當然寫入效能因為需要在寫入過程中產生校驗碼並且儲存到校驗盤而受到了影響。

這種模式的最大好處就是不需要各個硬碟之間在轉速上保持同步,這就使得控制器不需要那麼複雜。它的寫入效能是所有RAID模式中最差的。同RAID3模式一樣,當其中一塊硬碟損壞,資料並不會丟失,如果在故障盤被替換之前,第二塊硬碟也發盤故障將會導致所有的資料都丟失。相對其它的RAID模式,恢復故障硬碟中的資料的效率相當低。

這種磁碟陣列模式也是至少需要3塊硬碟才能搭建而成。奇偶校驗碼是透過異或運算來得到的。它適於一般的應用程式,包括影片處理等應用。它的造價也不算高,因為只要一塊硬碟作為校驗碼磁碟就可以了。

RAID4的隨機讀取效能:很好
RAID4的隨機寫入效能:一般,主要因為要向奇偶校驗磁碟寫入校驗碼
RAID4的持續讀取效能:好
RAID4的持續寫入效能:一般

RAID4的優點:除了RAID3的優點之外,它並不需要同步驅動器轉速。

RAID4的缺點:寫入效能很差,控制器的要求較高。

RAID5

RAID5使用至少三塊硬碟來實現陣列,它既能實現RAID0的加速功能也能實現RAID1的備份資料功能,在陣列當中有三塊硬碟的時候,它將會把所需要的儲存的資料按照使用者定義的分割大小分割成檔案碎片儲存到兩塊硬碟當中,此時,陣列當中的第三塊硬碟不接收檔案碎片,它接收到的是用來校驗儲存在另外兩塊硬碟當中資料的一部分資料,這部分校驗資料是透過一定的演算法產生的,可以透過這部分資料來恢復儲存在另外兩個硬碟上的資料。另外,這三塊硬碟的任務並不是一成不變的,也就是說在這次儲存當中可能是1號硬碟和2號硬碟用來儲存分割後的檔案碎片,那麼在下次儲存的時候可能就是2號硬碟和3號硬碟來完成這個任務了。可以說,在每次儲存操作當中,每塊硬碟的任務是隨機分配的,不過,肯定是兩塊硬碟用來儲存分割後的檔案碎片另一塊硬碟用來儲存校驗資訊。

這個校驗資訊一般是透過RAID控制器運算得出的,通常這些資訊是需要一個RAID控制器上有一個單獨的晶片來運算並決定將此資訊傳送到哪塊硬碟儲存。RAID5同時會實現RAID0的高速儲存讀取並且也會實現RAID1的資料恢復功能,也就是說在上面所說的情況下,RAID5能夠利用三塊硬碟同時實現RAID0的速度加倍功能也會實現RAID1的資料備份功能,並且當RAID5當中的一塊硬碟損壞之後,加入一塊新的硬碟同樣可以實現資料的還原。

RAID5是截止到目前我們所介紹的幾款RAID模式中控制器設計最複雜的一種。RAID5可以應用在大部分的領域中,比如多使用者和多工環境中。目前的很多Web伺服器和其它的Internet伺服器都是採用這種形式的磁碟陣列,比如最近推出的Quantum Snap伺服器就採用了外接式的RAID5磁碟陣列的設計。奇偶校驗一般會佔據大約33%的磁碟空間的容量,所以對於一個總容量為120GB的RAID5磁碟陣列而言,可用的空間將是80GB左右。不過這種磁碟陣列模式在一般的主機板程式的RAID控制器中都不提供支援,比如Abit KR7A-RAID主機板僅僅支援RAID0、RAID1、RAID0+1。當然只要採用校驗碼的方式,就會一定程度上影響寫入效能,因此很多磁碟陣列廠商都在磁碟陣列中加入了寫快取來提高寫入效能。

RAID5模式並不是一切都好,如果陣列當中某塊硬碟上的資訊發生了改變的話,那麼就需要重新計算檔案分割碎片,並且,校驗資訊也需要重新計算,這時,三個硬碟都需要重新呼叫。同樣,如果要做RAID5陣列的話,最好使用相同容量相同速度的硬碟,RAID5模式的有效容量是陣列中容量最小的硬碟容量乘上陣列中硬碟的數目減去一後的數,這裡硬碟數目要減去一是因為其中有一塊硬碟用來存放校驗資訊。

RAID5的隨機讀取效能:非常好(當使用大資料塊時)
RAID5的隨機寫入效能:一般,但是優於RAID3或都RAID4
RAID5的持續讀取效能:好(當使用小資料塊時)
RAID5的持續寫入效能:一般

RAID5的優點:不需要專門的校驗碼磁碟,讀取速度快,而且解決了寫入速度相對較慢的問題。

RAID5的缺點:寫入效能依然不盡如人意。

RAID6

RAID6是RAID家族中的新技術,是在RAID5基礎上擴充套件而來的。所以同RAID5一樣,資料和校驗碼都是被分成資料塊然後分別儲存到磁碟陣列的各個硬碟上。RAID6加入了一個獨立的校驗磁碟,它把分佈在各個磁碟上的校驗碼都備份在一起,這樣RAID6磁碟陣列就允許多個磁碟同時出現故障,這對於資料安全要求很高的應用場合是非常必要的。這樣搭建一個RAID6磁碟陣列最少需要4塊硬碟。但是RAID6並沒有改善RAID5寫入效能不佳的情況,寫入快取的應用僅僅能對於這個缺點進行一定程度的彌補但是並不能從根本上解決問題。因為RAID5和RAID6都可以根據應用程式來更改資料塊的大小,所以它的實際效能還會受到這個因素的影響。

在實際應用中RAID6的應用範圍並沒有其它的RAID模式那麼廣泛。如果實現這個功能一般需要設計更加複雜、造價更昂貴的RAID控制器,所以它一般也不會整合在主機板上。

RAID6的隨機讀取效能:很好(當使用大資料塊時)
RAID6的隨機寫入效能:差,因為不但要在每硬碟上寫入校驗資料而且要在專門的校驗硬碟上寫入資料
RAID6的持續讀取效能:好(當使用小資料塊時)
RAID6的持續寫入效能:一般

RAID6的優點:快速的讀取效能,更高的容錯能力。

RAID6的缺點:很慢的寫入速度,RAID控制器在設計上更加複雜,成本更高。

熱交換和熱冗餘

在RAID系統中一般都具有熱交換和熱冗餘能力。熱交換允許在不關閉系統或電源的前提下更換故障硬碟,當然更換上的新硬碟也可以被系統動態的識別出來並且正確的配置和新增,而這些都不需要重新啟動計算機。這樣做的好處是勿庸置疑的,對於維護人員來說非常的簡單,而對於很多應用場合,比如Web伺服器等,使用者並不希望伺服器停機,這樣造成的損失將是不可估量的。很多HP/DELL伺服器產品和RAID磁碟陣列都具有熱交換的能力。

熱冗餘一般用於不適於熱交換的場合。這種設計一般是在故障出現之前就在計算機中配置了額外的硬碟,當有硬碟出現故障的時候,這塊冗餘的就可以自動替代故障的硬碟的位置,對於這樣的系統在系統關閉之前是不能把損壞的硬碟拔下來的。熱冗餘雖然不如熱交換方便,但是總比沒有好一些。

小結

其實磁碟陣列的種類非常多,我們今天介紹的是部分基本的應用模式,在實際應用為了達到足夠的效能和穩定,可以把各種RAID模式搭配使用,當然這樣對於RAID控制器的要求會更高,磁碟陣列系統的成本也就更高。

伺服器所採用的RAID一般是基於SCSI的,所以這樣RAID系統的成本將會更加高昂。其實這個功能對於我們個人的應用還具有一定的距離,即使你擁有了一張整合了RAID控制器的主機板,也需要至少2塊硬碟(一般的要求這兩塊硬碟在容量、品牌、轉速上都是一樣的),對於個人使用者來說這是一筆不小的開支。當然如果你有特殊的需要,比如需要假設一個工作站或者Web伺服器,但是又不想花費太多的資金,那麼IDE RAID還是一個不錯的選擇。這裡需要提醒大家的是,一般的板載IDE RAID的處理器佔用率較高,並且IDE RAID在部分應用中還不如SCSI硬碟。

 

 

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

相關文章