百科解釋
RAID是“Redundant Array of Independent Disk”的縮寫,中文意思是獨立冗余磁盤陣列。冗余磁盤陣列技術(shù)誕生于1987年,由美國加州大學(xué)伯克利分校提出。
RAID磁盤陣列(Redundant Array of Independent Disks)
簡單地解釋,就是將N臺硬盤通過RAID Controller(分Hardware,Software)結(jié)合成虛擬單臺大容量的硬盤使用,其特色是N臺硬盤同時讀取速度加快及提供容錯性Fault Tolerant,所以RAID是當(dāng)成平時主要訪問Data的Storage不是Backup Solution。
在RAID有一基本概念稱為EDAP(Extended Data Availability and Protection),其強調(diào)擴充性及容錯機制, 也是各家廠商如:Mylex,IBM,HP,Compaq,Adaptec,Infortrend等訴求的重點,包括在不須停機情況下可處理以下動作:
RAID 磁盤陣列支援自動檢測故障硬盤;
RAID 磁盤陣列支援重建硬盤壞軌的資料;
RAID 磁盤陣列支援支持不須停機的硬盤備援 Hot Spare;
RAID 磁盤陣列支援支持不須停機的硬盤替換 Hot Swap;
RAID 磁盤陣列支援?dāng)U充硬盤容量等。
一旦RAID陣列出現(xiàn)故障,硬件服務(wù)商只能給客戶重新初始化或者REBUILD,這樣客戶數(shù)據(jù)就會無法挽回。因此對RAID0、RAID1、RAID5以及組合型的RAID系列磁盤陣列數(shù)據(jù)恢復(fù),出現(xiàn)故障以后只要不對陣列作初始化操作,就有機會恢復(fù)出故障RAID磁盤陣列的數(shù)據(jù)。 。1)RAID技術(shù)規(guī)范簡介
冗余磁盤陣列技術(shù)最初的研制目的是為了組合小的廉價磁盤來代替大的昂貴磁盤,以降低大批量數(shù)據(jù)存儲的費用,同時也希望采用冗余信息的方式,使得磁盤失效時不會使對數(shù)據(jù)的訪問受損失,從而開發(fā)出一定水平的數(shù)據(jù)保護技術(shù),并且能適當(dāng)?shù)奶嵘龜?shù)據(jù)傳輸速度。
過去RAID一直是高檔服務(wù)器才有緣享用,一直作為高檔SCSI硬盤配套技術(shù)作應(yīng)用。近來隨著技術(shù)的發(fā)展和產(chǎn)品成本的不斷下降,IDE硬盤性能有了很大提升,加之RAID芯片的普及,使得RAID也逐漸在個人電腦上得到應(yīng)用。
那么為何叫做冗余磁盤陣列呢?冗余的漢語意思即多余,重復(fù)。而磁盤陣列說明不僅僅是一個磁盤,而是一組磁盤。這時你應(yīng)該明白了,它是利用重復(fù)的磁盤來處理數(shù)據(jù),使得數(shù)據(jù)的穩(wěn)定性得到提高。
。2)RAID的工作原理
RAID如何實現(xiàn)數(shù)據(jù)存儲的高穩(wěn)定性呢?我們不妨來看一下它的工作原理。RAID按照實現(xiàn)原理的不同分為不同的級別,不同的級別之間工作模式是有區(qū)別的。整個的RAID結(jié)構(gòu)是一些磁盤結(jié)構(gòu),通過對磁盤進行組合達(dá)到提高效率,減少錯誤的目的,不要因為這么多名詞而被嚇壞了,它們的原理實際上十分簡單。問了便于說明,下面示意圖中的每個方塊代表一個磁盤,豎的叫塊或磁盤陣列,橫稱之為帶區(qū)。
(3)RAID規(guī)范
主要包含RAID 0~RAID 7等數(shù)個規(guī)范,它們的側(cè)重點各不相同,常見的規(guī)范有如下幾種:
RAID 0:無差錯控制的帶區(qū)組
Raid 0
要實現(xiàn)RAID0必須要有兩個以上硬盤驅(qū)動器,RAID0實現(xiàn)了帶區(qū)組,數(shù)據(jù)并不是保存在一個硬盤上,而是分成數(shù)據(jù)塊保存在不同驅(qū)動器上。因為將數(shù)據(jù)分布在不同驅(qū)動器上,所以數(shù)據(jù)吞吐率大大提高,驅(qū)動器的負(fù)載也比較平衡。如果剛好所需要的數(shù)據(jù)在不同的驅(qū)動器上效率最好。它不需要計算校驗碼,實現(xiàn)容易。它的缺點是它沒有數(shù)據(jù)差錯控制,如果一個驅(qū)動器中的數(shù)據(jù)發(fā)生錯誤,即使其它盤上的數(shù)據(jù)正確也無濟于事了。不應(yīng)該將它用于對數(shù)據(jù)穩(wěn)定性要求高的場合。如果用戶進行圖象(包括動畫)編輯和其它要求傳輸比較大的場合使用RAID0比較合適。同時,RAID可以提高數(shù)據(jù)傳輸速率,比如所需讀取的文件分布在兩個硬盤上,這兩個硬盤可以同時讀取。那么原來讀取同樣文件的時間被縮短為1/2。在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗余功能的,如果一個磁盤(物理)損壞,則所有的數(shù)據(jù)都無法使用。
RAID 1:鏡象結(jié)構(gòu)
Raid 1對于使用這種RAID1結(jié)構(gòu)的設(shè)備來說,RAID控制器必須能夠同時對兩個盤進行讀操作和對兩個鏡象盤進行寫操作。通過下面的結(jié)構(gòu)圖您也可以看到必須有兩個驅(qū)動器。因為是鏡象結(jié)構(gòu)在一組盤出現(xiàn)問題時,可以使用鏡象,提高系統(tǒng)的容錯能力。它比較容易設(shè)計和實現(xiàn)。每讀一次盤只能讀出一塊數(shù)據(jù),也就是說數(shù)據(jù)塊傳送速率與單獨的盤的讀取速率相同。因為RAID1的校驗十分完備,因此對系統(tǒng)的處理能力有很大的影響,通常的RAID功能由軟件實現(xiàn),而這樣的實現(xiàn)方法在服務(wù)器負(fù)載比較重的時候會大大影響服務(wù)器效率。當(dāng)您的系統(tǒng)需要極高的可靠性時,如進行數(shù)據(jù)統(tǒng)計,那么使用RAID1比較合適。而且RAID1技術(shù)支持“熱替換”,即不斷電的情況下對故障磁盤進行更換,更換完畢只要從鏡像盤上恢復(fù)數(shù)據(jù)即可。當(dāng)主硬盤損壞時,鏡像硬盤就可以代替主硬盤工作。鏡像硬盤相當(dāng)于一個備份盤,可想而知,這種硬盤模式的安全性是非常高的,RAID 1的數(shù)據(jù)安全性在所有的RAID級別上來說是最好的。但是其磁盤的利用率卻只有50%,是所有RAID級別中最低的。
RAID2:帶海明碼校驗
從概念上講,RAID 2 同RAID 3類似, 兩者都是將數(shù)據(jù)條塊化分布于不同的硬盤上, 條塊單位為位或字節(jié)。然而RAID 2 使用一定的編碼技術(shù)來提供錯誤檢查及恢復(fù)。這種編碼技術(shù)需要多個磁盤存放檢查及恢復(fù)信息,使得RAID 2技術(shù)實施更復(fù)雜。因此,在商業(yè)環(huán)境中很少使用。下圖左邊的各個磁盤上是數(shù)據(jù)的各個位,由一個數(shù)據(jù)不同的位運算得到的海明校驗碼可以保存另一組磁盤上,具體情況請見下圖。由于海明碼的特點,它可以在數(shù)據(jù)發(fā)生錯誤的情況下將錯誤校正,以保證輸出的正確。它的數(shù)據(jù)傳送速率相當(dāng)高,如果希望達(dá)到比較理想的速度,那最好提高保存校驗碼ECC碼的硬盤,對于控制器的設(shè)計來說,它又比RAID3,4或5要簡單。沒有免費的午餐,這里也一樣,要利用海明碼,必須要付出數(shù)據(jù)冗余的代價。輸出數(shù)據(jù)的速率與驅(qū)動器組中速度最慢的相等。
RAID3:帶奇偶校驗碼的并行傳送
Raid 3這種校驗碼與RAID2不同,只能查錯不能糾錯。它訪問數(shù)據(jù)時一次處理一個帶區(qū),這樣可以提高讀取和寫入速度,它象RAID 0一樣以并行的方式來存放數(shù),但速度沒有RAID 0快。校驗碼在寫入數(shù)據(jù)時產(chǎn)生并保存在另一個磁盤上。需要實現(xiàn)時用戶必須要有三個以上的驅(qū)動器,寫入速率與讀出速率都很高,因為校驗位比較少,因此計算時間相對而言比較少。用軟件實現(xiàn)RAID控制將是十分困難的,控制器的實現(xiàn)也不是很容易。它主要用于圖形(包括動畫)等要求吞吐率比較高的場合。不同于RAID 2,RAID 3使用單塊磁盤存放奇偶校驗信息。如果一塊磁盤失效,奇偶盤及其他數(shù)據(jù)盤可以重新產(chǎn)生數(shù)據(jù)。 如果奇偶盤失效,則不影響數(shù)據(jù)使用。RAID 3對于大量的連續(xù)數(shù)據(jù)可提供很好的傳輸率,但對于隨機數(shù)據(jù),奇偶盤會成為寫操作的瓶頸。 利用單獨的校驗盤來保護數(shù)據(jù)雖然沒有鏡像的安全性高,但是硬盤利用率得到了很大的提高,為n-1。
RAID4:帶奇偶校驗碼的獨立磁盤結(jié)構(gòu)
Raid 4RAID4和RAID3很象,不同的是,它對數(shù)據(jù)的訪問是按數(shù)據(jù)塊進行的,也就是按磁盤進行的,每次是一個盤。在圖上可以這么看,RAID3是一次一橫條,而RAID4一次一豎條。它的特點的RAID3也挺象,不過在失敗恢復(fù)時,它的難度可要比RAID3大得多了,控制器的設(shè)計難度也要大許多,而且訪問數(shù)據(jù)的效率不怎么好。
RAID5:分布式奇偶校驗的獨立磁盤結(jié)構(gòu)
從它的示意圖上可以看到,它的奇偶校驗碼存在于所有磁盤上,其中的p0代表第0帶區(qū)的Raid 5奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁盤上,所以提高了可靠性,允許單個磁盤出錯。RAID 5也是以數(shù)據(jù)的校驗位來保證數(shù)據(jù)的安全,但它不是以單獨硬盤來存放數(shù)據(jù)的校驗位,而是將數(shù)據(jù)段的校驗位交互存放于各個硬盤上。這樣,任何一個硬盤損壞,都可以根據(jù)其它硬盤上的校驗位來重建損壞的數(shù)據(jù)。硬盤的利用率為n-1。 但是它對數(shù)據(jù)傳輸?shù)牟⑿行越鉀Q不好,而且控制器的設(shè)計也相當(dāng)困難。RAID 3 與RAID 5相比,重要的區(qū)別在于RAID 3每進行一次數(shù)據(jù)傳輸,需涉及到所有的陣列盤。而對于RAID 5來說,大部分?jǐn)?shù)據(jù)傳輸只對一塊磁盤操作,可進行并行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產(chǎn)生四個實際的讀/寫操作,其中兩次讀舊的數(shù)據(jù)及奇偶信息,兩次寫新的數(shù)據(jù)及奇偶信息。
RAID6:帶有兩種分布存儲的奇偶校驗碼的獨立磁盤結(jié)構(gòu)
Raid 6名字很長,但是如果看到圖,大家立刻會明白是為什么,請注意p0代表第0帶區(qū)的奇偶校驗值,而pA代表數(shù)據(jù)塊A的奇偶校驗值。它是對RAID5的擴展,主要是用于要求數(shù)據(jù)絕對不能出錯的場合。當(dāng)然了,由于引入了第二種奇偶校驗值,所以需要N+2個磁盤,同時對控制器的設(shè)計變得十分復(fù)雜,寫入速度也不好,用于計算奇偶校驗值和驗證數(shù)據(jù)正確性所花費的時間比較多,造成了不必須的負(fù)載。我想除了軍隊沒有人用得起這種東西。
RAID7:優(yōu)化的高速數(shù)據(jù)傳送磁盤結(jié)構(gòu)
RAID7所有的I/O傳送均是同步進行的,可以分別控制,這樣提高了系統(tǒng)的并行性,提高系統(tǒng)訪問數(shù)據(jù)的速度;每個磁盤都帶有高速緩沖存儲器,實時操作系統(tǒng)可以使用任何實時操作芯片,達(dá)到不同實時系統(tǒng)的需要。允許使用SNMP協(xié)議進行管理和監(jiān)視,可以對校驗區(qū)指定獨立的傳送信道以提高效率?梢赃B接多臺主機,因為加入高速緩沖存儲器,當(dāng)多用戶訪問系統(tǒng)時,訪問時間幾乎接近于0。由于采用并行結(jié)構(gòu),因此數(shù)據(jù)訪問效率大大提高。需要注意的是它引入了一個高速緩沖存儲器,這有利有弊,因為一旦系統(tǒng)斷電,在高速緩沖存儲器內(nèi)的數(shù)據(jù)就會全部丟失,因此需要和UPS一起工作。當(dāng)然了,這么快的東西,價格也非常昂貴。
RAID10:高可靠性與高效磁盤結(jié)構(gòu)
這種結(jié)構(gòu)無非是一個帶區(qū)結(jié)構(gòu)加一個鏡象結(jié)構(gòu),因為兩種結(jié)構(gòu)各有優(yōu)缺點,因此可以相互補充,達(dá)到既高效又高速還可以的目的。大家可以結(jié)合兩種結(jié)構(gòu)的優(yōu)點和缺點來理解這種新結(jié)構(gòu)。這種新結(jié)構(gòu)的價格高,可擴充性不好。主要用于容量不大,但要求速度和差錯控制的數(shù)據(jù)庫中。
RAID53:高效數(shù)據(jù)傳送磁盤結(jié)構(gòu)
越到后面的結(jié)構(gòu)就是對前面結(jié)構(gòu)的一種重復(fù)和再利用,這種結(jié)構(gòu)就是RAID3和帶區(qū)結(jié)構(gòu)的統(tǒng)一,因此它速度比較快,也有容錯功能。但價格十分高,不易于實現(xiàn)。這是因為所有的數(shù)據(jù)必須經(jīng)過帶區(qū)和按位存儲兩種方法,在考慮到效率的情況下,要求這些磁盤同步真是不容易。
RAID0+1:
把RAID0和RAID1技術(shù)結(jié)合起來,即RAID0+1。數(shù)據(jù)除分布在多個盤上外,每個盤都有其物理鏡像盤,提供全冗余能力,允許一個以下磁盤故障,而不影響數(shù)據(jù)可用性,并具有快速讀/寫能力。要求至少4個硬盤才能作成RAID0+1。
(3)JBOD模式
JBOD通常又稱為Span。它是在邏輯上將幾個物理磁盤一個接一個連起來, 組成一個大的邏輯磁盤。JBOD不提供容錯,該陣列的容量等于組成Span的所有磁盤的容量的總和。JBOD嚴(yán)格意義上說,不屬于RAID的范圍。不過現(xiàn)在很多IDE RAID控制芯片都帶著種模式,JBOD就是簡單的硬盤容量疊加,但系統(tǒng)處理時并沒有采用并行的方式,寫入數(shù)據(jù)的時候就是先寫的一塊硬盤,寫滿了再寫第二塊硬盤……
實際應(yīng)用中最常見的是RAID0 RAID1 RAID5 和RAID10 由于在大多數(shù)場合,RAID5包含了RAID2-4的優(yōu)點,所以RAID2-4基本退出市場
現(xiàn)在,一般認(rèn)為RAID2-4只用于RAID開發(fā)研究
。4)我們能夠用得上的IDE RAID
上面是對RAID原理的敘述,而我們Pcfans最關(guān)心的是RAID的應(yīng)用。我們?nèi)粘J褂肐DE硬盤,而且很容易買到IDE RAID卡和集成RAID芯片的主板。所以跟我們最貼近的是IDE RAID。限于應(yīng)用級別很低,IDE RAID多數(shù)只支持RAID 0,RAID 1,RAID 0+1,JBOD模式。 開始時RAID 方案主要針對SCSI硬盤系統(tǒng),系統(tǒng)成本比較昂貴。1993年,HighPoint公司推出了第一款I(lǐng)DE-RAID控制芯片,能夠利用相對廉價的IDE 硬盤來組建RAID系統(tǒng),從而大大降低了RAID的“門檻”。從此,個人用戶也開始關(guān)注這項技術(shù),因為硬盤是現(xiàn)代個人計算機中發(fā)展最為“緩慢”和最缺少安全性的設(shè)備,而用戶存儲在其中的數(shù)據(jù)卻常常遠(yuǎn)超計算機的本身價格。在花費相對較少的情況下,RAID技術(shù)可以使個人用戶也享受到成倍的磁盤速度提升和更高的數(shù)據(jù)安全性,現(xiàn)在個人電腦市場上的IDE-RAID控制芯片主要出自HighPoint和Promise公司,此外還有一部分來自AMI公司(如表 2)。
面向個人用戶的IDE-RAID芯片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID規(guī)范的支持,雖然它們在技術(shù)上無法與商用系統(tǒng)相提并論,但是對普通用戶來說其提供的速度提升和安全保證已經(jīng)足夠了。隨著硬盤接口傳輸率的不斷提高,IDE-RAID芯片也不斷地更新?lián)Q代,芯片市場上的主流芯片已經(jīng)全部支持ATA 100標(biāo)準(zhǔn),而HighPoint公司新推出的HPT 372芯片和Promise最新的PDC20276芯片,甚至已經(jīng)可以支持ATA 133標(biāo)準(zhǔn)的IDE硬盤。在主板廠商競爭加劇、個人電腦用戶要求逐漸提高的今天,在主板上板載RAID芯片的廠商已經(jīng)不在少數(shù),用戶完全可以不用購置 RAID卡,直接組建自己的磁盤陣列,感受磁盤狂飆的速度。 魔獸世界以及其他MMORPG中的定義:由一群玩家在某一地區(qū)進行的大規(guī)模作戰(zhàn)被稱為Raid。
例如:魔獸世界的副本。
燃燒遠(yuǎn)征前多為40人raid,燃燒遠(yuǎn)征后為25人raid