RAID存儲器

RAID存儲器

冗餘磁碟陣列技術誕生於1987年,由美國加州大學伯克利分校提出。初衷是為了將較廉價的多個小磁碟進行組合來替代價格昂貴的大容量磁碟,希望單個磁碟損壞後不會影響到其它磁碟的繼續使用,使數據更加的安全。RAID作為一種廉價的磁碟冗餘陣列,能夠提供一個獨立的大型存儲設備解決方案。在提高硬碟容量的同時,還能夠充分提高硬碟的速度,使數據更加安全,更加易於磁碟的管理。

概況

RAID存儲器磁碟序列
主要技術:
1.分塊技術:把數據分塊寫到陣列中的磁碟上;
2.交叉技術:對分散式的數據採用交叉式進行讀寫,提高訪問速度
3.重聚技術:對多個磁碟空間重新編址,數據按照編址後的空間存放;

RAID技術規範簡介:冗餘磁碟陣列技術最初的研製目的是為了組合小的廉價磁碟來代替大的昂貴磁碟,以降低大批量數據存儲的費用,同時也希望採用冗餘信息的方式,使得磁碟失效時不會使對數據的訪問受損失,從而開發出一定水平的數據保護技術,並且能適當的提升數據傳輸速度。過去RAID一直是高檔伺服器才有緣享用,一直作為高檔SCSI硬碟配套技術作套用。隨著技術的發展和產品成本的不斷下降,IDE硬碟性能有了很大提升,加之RAID晶片的普及,使得RAID也逐漸在個人電腦上得到套用。

主要特點如下:
1.物理上多個磁碟,但作業系統看是一個邏輯磁碟
2.數據分布在磁碟陣列中的磁碟存儲器上;
3.採用冗餘技術校驗技術提高可靠性,可恢複數據;
4.RAID速度快、容量大、功耗低、價格便宜、容易擴展。

RAID存儲器3.5寸硬碟
RAID規範:
主要包含RAID0~raid7等數個規範,它們的側重點各不相同,常見的規範有如下幾種:
RAID0:無差錯控制的帶區組
RAID0:無冗餘、無校驗,具有最高的I/O性能和最高的磁碟空間利用率
RAID1:磁碟鏡像、磁碟利用率50%,具有較高的安全性
RAID2海明碼糾錯、數據分塊、並行訪問、適合大批量數據、已很少使用
RAID3:奇偶校驗、數據分塊、並行訪問、單獨校驗盤
raid4:奇偶校驗、獨立存取、單獨校驗盤、適合訪問頻繁、傳輸率低
RAID5:獨立存取、無單獨校驗盤、適合訪問頻繁、傳輸率低

RAID的工作原理
RAID按照實現原理的不同分為不同的級別,不同的級別之間工作模式是有區別的。整個的RAID結構是一些磁碟結構,通過對磁碟進行組合達到提高效率,減少錯誤的目的。

磁碟陣列

RAID存儲器模型
簡單地解釋,就是將N台硬碟通過RAIDController(分Hardware,Software)結合成虛擬單台大容量的硬碟使用,其特色是N台硬碟同時讀取速度加快及提供容錯性FaultTolerant,所以RAID是當成平時主要訪問Data的Storage不是BackupSolution。在RAID有一基本概念稱為EDAP(ExtendedDataAvailabilityandProtection),其強調擴充性及容錯機制,也是各家廠商如:MylexIBMHPCompaqAdaptecInfortrend等訴求的重點,包括在不須停機情況下可處理以下動作:
RAID磁碟陣列支援自動檢測故障硬碟;
RAID磁碟陣列支援重建硬碟壞軌的資料;
RAID磁碟陣列支援支持不須停機的硬碟備援HotSpare;
RAID磁碟陣列支援支持不須停機的硬碟替換HotSwap;
RAID磁碟陣列支援擴充硬碟容量等。

一旦RAID陣列出現故障,硬體服務商只能給客戶重新初始化或者REBUILD,這樣客戶數據就會無法挽回。因此對RAID0、RAID1、RAID5以及組合型的RAID系列磁碟陣列數據恢復,出現故障以後只要不對陣列作初始化操作,就有機會恢復出故障RAID磁碟陣列的數據。

工作模式

RAID存儲器RAID存儲器內部結構圖
RAID0
RAID0是最早出現的RAID模式,即DataStripping數據分條技術。RAID0是組建磁碟陣列中最簡單的一種形式,只需要2塊以上的硬碟即可,成本低,可以提高整個磁碟的性能和吞吐量。RAID0沒有提供冗餘或錯誤修復能力,是實現成本是最低的。

RAID0最簡單的實現方式就是把N塊同樣的硬碟用硬體的形式通過智慧型磁碟控制器或用作業系統中的磁碟驅動程式以軟體的方式串聯在一起創建一個大的卷集。在使用中電腦數據依次寫入到各塊硬碟中,它的最大優點就是可以整倍的提高硬碟的容量。如使用了三塊80GB的硬碟組建成RAID0模式,那么磁碟容量就會是240GB。其速度方面,各單獨一塊硬碟的速度完全相同。最大的缺點在於任何一塊硬碟出現故障,整個系統將會受到破壞,可靠性僅為單獨一塊硬碟的1/N。

為了解決這一問題,便出一了RAID0的另一種模式。即在N塊硬碟上選擇合理的帶區來創建帶區集。其原理就是將原先順序寫入的數據被分散到所有的四塊硬碟中同時進行讀寫。四塊硬碟的並行操作使同一時間內磁碟讀寫的速度提升了4倍。

在創建帶區集時,合理的選擇帶區的大小非常重要。如果帶區過大,可能一塊磁碟上的帶區空間就可以滿足大部分的I/O操作,使數據的讀寫仍然只局限在少數的一、兩塊硬碟上,不能充分的發揮出並行操作的優勢。另一方面,如果帶區過小,任何I/O指令都可能引發大量的讀寫操作,占用過多的控制器匯流排頻寬。因此,在創建帶區集時,應當根據實際套用的需要,慎重的選擇帶區的大小。

帶區集雖然可以把數據均勻的分配到所有的磁碟上進行讀寫。但如果把所有的硬碟都連線到一個控制器上的話,可能會帶來潛在的危害。這是因為當頻繁進行讀寫操作時,很容易使控制器或匯流排的負荷超載。為了避免出現上述問題,建議可以使用多個磁碟控制器。最好解決方法還是為每一塊硬碟都配備一個專門的磁碟控制器。雖然RAID0可以提供更多的空間和更好的性能,但是整個系統是非常不可靠的,如果出現故障,無法進行任何補救。RAID0一般只是在那些對數據安全性要求不高的情況下才被使用。

RAID存儲器共享存儲器
RAID1
RAID1稱為磁碟鏡像,原理是把一個磁碟的數據鏡像到另一個磁碟上,也就是說數據在寫入一塊磁碟的同時,會在另一塊閒置的磁碟上生成鏡像檔案,在不影響性能情況下最大限度的保證系統的可靠性和可修復性上,只要系統中任何一對鏡像盤中至少有一塊磁碟可以使用,甚至可以在一半數量的硬碟出現問題時系統都可以正常運行,當一塊硬碟失效時,系統會忽略該硬碟,轉而使用剩餘的鏡像盤讀寫數據,具備很好的磁碟冗餘能力。雖然這樣對數據來講絕對安全,但是成本也會明顯增加,磁碟利用率為50%,以四塊80GB容量的硬碟來講,可利用的磁碟空間僅為160GB。另外,出現硬碟故障的RAID系統不再可靠,應當及時的更換損壞的硬碟,否則剩餘的鏡像盤也出現問題,那么整個系統就會崩潰。更換新盤後原有數據會需要很長時間同步鏡像,外界對數據的訪問不會受到影響,只是這時整個系統的性能有所下降。因此,RAID1多用在保存關鍵性的重要數據的場合。

RAID1主要是通過二次讀寫實現磁碟鏡像,所以磁碟控制器的負載也相當大,尤其是在需要頻繁寫入數據的環境中。為了避免出現性能瓶頸,使用多個磁碟控制器就顯得很有必要。

RAID0+1
RAID0+1是RAID0與RAID1的結合體。在單獨使用RAID1也會出現類似單獨使用RAID0那樣的問題,即在同一時間內只能向一塊磁碟寫入數據,不能充分利用所有的資源。為了解決這一問題,可以在磁碟鏡像中建立帶區集。因為這種配置方式綜合了帶區集和鏡像的優勢,所以被稱為RAID0+1。把RAID0和RAID1技術結合起來,數據除分布在多個盤上外,每個盤都有其物理鏡像盤,提供全冗餘能力,允許一個以下磁碟故障,而不影響數據可用性,並具有快速讀/寫能力。RAID0+1要在磁碟鏡像中建立帶區集至少4個硬碟。

組建模式

RAID存儲器RAID2
下面幾種有的技術已經被淘汰或不被使用,有些只被用在伺服器上,如RAID5:

RAID2
將數據條塊化地分布於不同的硬碟上,條塊單位為位或位元組,並使用稱為“加重平均糾錯碼(海明碼)”的編碼技術來提供錯誤檢查及恢復。這種編碼技術需要多個磁碟存放檢查及恢覆信息,使得RAID2技術實施更複雜,因此在商業環境中也很少使用。

RAID3
它同RAID2非常類似,都是將數據條塊化分布於不同的硬碟上,區別在於RAID3使用簡單的奇偶校驗,並用單塊磁碟存放奇偶校驗信息。如果一塊磁碟失效,奇偶盤及其他數據盤可以重新產生數據;如果奇偶盤失效則不影響數據使用。RAID3對於大量的連續數據可提供很好的傳輸率,但對於隨機數據來說,奇偶盤會成為寫操作的瓶頸

RAID4
RAID4同樣也將數據條塊化並分布於不同的磁碟上,但條塊單位為塊或記錄。RAID4使用一塊磁碟作為奇偶校驗盤,每次寫操作都需要訪問奇偶盤,這時奇偶校驗盤會成為寫操作的瓶頸,因此RAID4在商業環境中也很少使用。

RAID存儲器RAID5
RAID5
RAID5不單獨指定的奇偶盤,而是在所有磁碟上交叉地存取數據及奇偶校驗信息。在RAID5上,讀/寫指針可同時對陣列設備進行操作,提供了更高的數據流量。RAID5更適合於小數據塊和隨機讀寫的數據。RAID3與RAID5相比,最主要的區別在於RAID3每進行一次數據傳輸就需涉及到所有的陣列盤;而對於RAID5來說,大部分數據傳輸只對一塊磁碟操作,並可進行並行操作。在RAID5中有“寫損失”,即每一次寫操作將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

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

RAID7
這是一種新的RAID標準,其自身帶有智慧型化實時作業系統和用於存儲管理的軟體工具,可完全獨立於主機運行,不占用主機CPU資源。RAID7可以看作是一種存儲計算機(StorageComputer),它與其他RAID標準有明顯區別。除了以上的各種標準(如表1),可以如RAID0+1那樣結合多種RAID規範來構築所需的RAID陣列,例如RAID5+3(RAID53)就是一種套用較為廣泛的陣列形式。用戶一般可以通過靈活配置磁碟陣列來獲得更加符合其要求的磁碟存儲系統

磁碟結構

RAID存儲器RAID0和RAID1
Raid1鏡象結構

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

RAID2:帶海明碼校驗

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

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

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

RAID存儲器RAID4
RAID4:帶奇偶校驗碼的獨立磁碟結構

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

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

它的奇偶校驗碼存在於所有磁碟上,其中的p0代表第0帶區的Raid5奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁碟上,所以提高了可靠性,允許單個磁碟出錯。RAID5也是以數據的校驗位來保證數據的安全,但它不是以單獨硬碟來存放數據的校驗位,而是將數據段的校驗位互動存放於各個硬碟上。這樣,任何一個硬碟損壞,都可以根據其它硬碟上的校驗位來重建損壞的數據。硬碟的利用率為n-1。但是它對數據傳輸的並行性解決不好,而且控制器的設計也相當困難。RAID3與RAID5相比,重要的區別在於RAID3每進行一次數據傳輸,需涉及到所有的陣列盤。而對於RAID5來說,大部分數據傳輸只對一塊磁碟操作,可進行並行操作。在RAID5中有“寫損失”,即每一次寫操作,將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

RAID存儲器RAID存儲器
RAID6:帶有兩種分布存儲的奇偶校驗碼的獨立磁碟結構

Raid6名字很長,注意p0代表第0帶區的奇偶校驗值,而pA代表數據塊A的奇偶校驗值。它是對RAID5的擴展,主要是用於要求數據絕對不能出錯的場合。由於引入了第二種奇偶校驗值,所以需要N+2個磁碟,同時對控制器的設計變得十分複雜,寫入速度也不好,用於計算奇偶校驗值和驗證數據正確性所花費的時間比較多,造成了不必須的負載。

RAID7:最佳化的高速數據傳送磁碟結構

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

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

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

RAID53:高效數據傳送磁碟結構

越到後面的結構就是對前面結構的一種重複和再利用,這種結構就是RAID3和帶區結構的統一,因此它速度比較快,也有容錯功能。但價格十分高,不易於實現。這是因為所有的數據必須經過帶區和按位存儲兩種方法,在考慮到效率的情況下,要求這些磁碟同步真是不容易。

套用

RAID存儲器RAID存儲器
開始時RAID方案主要針對SCSI硬碟系統,系統成本比較昂貴。1993年,HighPoint公司推出了第一款IDE-RAID控制晶片,能夠利用相對廉價的IDE硬碟來組建RAID系統,從而大大降低了RAID的“門檻”。從此,個人用戶也開始關注這項技術,因為硬碟是現代個人計算機中發展最為“緩慢”和最缺少安全性的設備,而用戶存儲在其中的數據卻常常遠超計算機的本身價格。在花費相對較少的情況下,RAID技術可以使個人用戶也享受到成倍的磁碟速度提升和更高的數據安全性,現在個人電腦市場上的IDE-RAID控制晶片主要出自HighPoint和Promise公司,此外還有一部分來自AMI公司

面向個人用戶的IDE-RAID晶片一般只提供了RAID0、RAID1和RAID0+1(RAID10)等RAID規範的支持,雖然它們在技術上無法與商用系統相提並論,但是對普通用戶來說其提供的速度提升和安全保證已經足夠了。隨著硬碟接口傳輸率的不斷提高,IDE-RAID晶片也不斷地更新換代,晶片市場上的主流晶片已經全部支持ATA100標準,而HighPoint公司新推出的HPT372晶片和Promise最新的PDC20276晶片,甚至已經可以支持ATA133標準的IDE硬碟。在主機板廠商競爭加劇、個人電腦用戶要求逐漸提高的今天,在主機板上板載RAID晶片的廠商已經不在少數,用戶完全可以不用購置RAID卡,直接組建自己的磁碟陣列,感受磁碟狂飆的速度。

相關搜尋

熱門詞條

聯絡我們