RAID0和RAID1的區(qū)別
RAID0和RAID1的區(qū)別
相信很多電腦愛好者對RAID這個詞一定不陌生,但目前RAID并不是很普遍,很多人不懂RAID是什么意思?RAID0和RAID1有什么區(qū)別?這里學(xué)習(xí)啦小編給大家介紹下,一起來看看。
RAID0和RAID1的區(qū)別
RAID是什么意思?
RAID英文全稱“Redundant Array of Inexpensive Disks”中文稱之為獨立冗余磁盤陣列,也就是我們常說的磁盤陣列,類似將多塊硬盤串聯(lián),主要用于提升硬盤性能與存儲。
RAID是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能。RAID包括RAID 0~RAID 50等數(shù)個規(guī)范,我們常使用主要是RAID 0,RAID 1兩種,下面我們再來說說RAID0和RAID1的區(qū)別。
磁盤
RAID0和RAID1有什么區(qū)別?
RAID 0連續(xù)以位或字節(jié)為單位分割數(shù)據(jù),并行讀/寫于多個磁盤上,具有很高的數(shù)據(jù)傳輸率,但它沒有數(shù)據(jù)冗余,并不能算是真正的RAID結(jié)構(gòu)。RAID 0只是單純地提高性能,并沒有為數(shù)據(jù)的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數(shù)據(jù),這也是為什么RAID 0不能應(yīng)用于數(shù)據(jù)安全性要求高的場合的原因。
RAID 1又稱鏡像盤,把一個磁盤的數(shù)據(jù)鏡像到另一個磁盤上,采用鏡像容錯來提高可靠性,具有raid中最高的數(shù)據(jù)冗余能力。存數(shù)據(jù)時會將數(shù)據(jù)同時寫入鏡像盤內(nèi),讀取數(shù)據(jù)則只從工作盤讀出(電腦百事網(wǎng)PC841.COM)。發(fā)生故障時,系統(tǒng)將從鏡像盤讀取數(shù)據(jù),然后再恢復(fù)工作盤正確數(shù)據(jù)。這種陣列方式可靠性極高,但是其容量會減去一半。廣泛用于數(shù)據(jù)要求極嚴(yán)的應(yīng)用場合,如商業(yè)金融、檔案管理等領(lǐng)域。只允許一顆硬盤出故障。
鑒于RAID 0和RAID 1各有特點,其中RAID 0主要用于提升硬盤性能,但數(shù)據(jù)安全性不強,而RAID 1兼顧性能與數(shù)據(jù)安全,但容量減半,因此將RAID 0和RAID 1組合使用無疑是更完美的方案,因此又有了Raid0+1組合,以及還有流行的Raid5。
關(guān)于RAID
磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構(gòu)成的具有冗余能力的陣列”之意。
磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數(shù)據(jù)所產(chǎn)生加成效果提升整個磁盤系統(tǒng)效能。利用這項技術(shù),將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個硬盤上。[1]
磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數(shù)組中任意一個硬盤故障時,仍可讀出數(shù)據(jù),在數(shù)據(jù)重構(gòu)時,將數(shù)據(jù)經(jīng)計算后重新置入新硬盤中。
簡介
由加利福尼亞大學(xué)伯克利分校(University of California-Berkeley)在1988年,發(fā)表的文章:“A Case for Redundant Arrays of Inexpensive Disks”。文章中,談到了RAID這個詞匯,而且定義了RAID的5層級。伯克利大學(xué)研究目的是反應(yīng)當(dāng)時CPU快速的性能。CPU效能每年大約成長30~50%,而硬磁機只能成長約7%。研究小組希望能找出一種新的技術(shù),在短期內(nèi),立即提升效能來平衡計算機的運算能力。在當(dāng)時,柏克萊研究小組的主要研究目的是效能與成本。
另外,研究小組也設(shè)計出容錯(fault-tolerance),邏輯數(shù)據(jù)備份(logical data redundancy),而產(chǎn)生了RAID理論。研究初期,便宜(Inexpensive)的磁盤也是主要的重點,但后來發(fā)現(xiàn),大量便宜磁盤組合并不能適用于現(xiàn)實的生產(chǎn)環(huán)境,后來Inexpensive被改為independent,許多獨立的磁盤組。
獨立磁盤冗余陣列(RAID,redundant array of independent disks)是把相同的數(shù)據(jù)存儲在多個硬盤的不同的地方(因此,冗余地)的方法。通過把數(shù)據(jù)放在多個硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。因為多個硬盤增加了平均故障間隔時間(MTBF),儲存冗余數(shù)據(jù)也增加了容錯。
分類
磁盤陣列其樣式有三種,一是外接式磁盤陣列柜、二是內(nèi)接式磁盤陣列卡,三是利用軟件來仿真。
外接式磁盤陣列柜最常被使用大型服務(wù)器上,具可熱交換(Hot Swap)的特性,不過這類產(chǎn)品的價格都很貴。
內(nèi)接式磁盤陣列卡,因為價格便宜,但需要較高的安裝技術(shù),適合技術(shù)人員使用操作。硬件陣列能夠提供在線擴容、動態(tài)修改陣列級別、自動數(shù)據(jù)恢復(fù)、驅(qū)動器漫游、超高速緩沖等功能。它能提供性能、數(shù)據(jù)保護(hù)、可靠性、可用性和可管理性的解決方案。陣列卡專用的處理單元來進(jìn)行操作。
利用軟件仿真的方式,是指通過網(wǎng)絡(luò)操作系統(tǒng)自身提供的磁盤管理功能將連接的普通SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。軟件陣列可以提供數(shù)據(jù)冗余功能,但是磁盤子系統(tǒng)的性能會有所降低,有的降低幅度還比較大,達(dá)30%左右。因此會拖累機器的速度,不適合大數(shù)據(jù)流量的服務(wù)器。
原理
磁盤陣列作為獨立系統(tǒng)在主機外直連或通過網(wǎng)絡(luò)與主機相連。磁盤陣列有多個端口可以被不同主機或不同端口連接。一個主機連接陣列的不同端口可提升傳輸速度。
和當(dāng)時PC用單磁盤內(nèi)部集成緩存一樣,在磁盤陣列內(nèi)部為加快與主機交互速度,都帶有一定量的緩沖存儲器。主機與磁盤陣列的緩存交互,緩存與具體的磁盤交互數(shù)據(jù)。
在應(yīng)用中,有部分常用的數(shù)據(jù)是需要經(jīng)常讀取的,磁盤陣列根據(jù)內(nèi)部的算法,查找出這些經(jīng)常讀取的數(shù)據(jù),存儲在緩存中,加快主機讀取這些數(shù)據(jù)的速度,而對于其他緩存中沒有的數(shù)據(jù),主機要讀取,則由陣列從磁盤上直接讀取傳輸給主機。對于主機寫入的數(shù)據(jù),只寫在緩存中,主機可以立即完成寫操作。然后由緩存再慢慢寫入磁盤。
優(yōu)缺點
優(yōu)點
提高傳輸速率。RAID通過在多個磁盤上同時存儲和讀取數(shù)據(jù)來大幅提高存儲系統(tǒng)的數(shù)據(jù)吞吐量(Throughput)。在RAID中,可以讓很多磁盤驅(qū)動器同時傳輸數(shù)據(jù),而這些磁盤驅(qū)動器在邏輯上又是一個磁盤驅(qū)動器,所以使用RAID可以達(dá)到單個磁盤驅(qū)動器幾倍、幾十倍甚至上百倍的速率。這也是RAID最初想要解決的問題。因為當(dāng)時CPU的速度增長很快,而磁盤驅(qū)動器的數(shù)據(jù)傳輸速率無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID最后成功了。
通過數(shù)據(jù)校驗提供容錯功能。普通磁盤驅(qū)動器無法提供容錯功能,如果不包括寫在磁盤上的CRC(循環(huán)冗余校驗)碼的話。RAID容錯是建立在每個磁盤驅(qū)動器的硬件容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復(fù)的措施,甚至是直接相互的鏡像備份,從而大大提高了RAID系統(tǒng)的容錯度,提高了系統(tǒng)的穩(wěn)定冗余性。
缺點
RAID0沒有冗余功能,如果一個磁盤(物理)損壞,則所有的數(shù)據(jù)都無法使用。
RAID1磁盤的利用率最高只能達(dá)到50%(使用兩塊盤的情況下),是所有RAID級別中最低的。
RAID0+1以理解為是RAID 0和RAID 1的折中方案。RAID 0+1可以為系統(tǒng)提供數(shù)據(jù)安全保障,但保障程度要比 Mirror低而磁盤空間利用率要比Mirror高。
RAID級別
1、RAID 0
RAID 0是最早出現(xiàn)的RAID模式,即Data Stripping數(shù)據(jù)分條技術(shù)。RAID 0是組建磁盤陣列中最簡單的一種形式,只需要2塊以上的硬盤即可,成本低,可以提高整個磁盤的性能和吞吐量。RAID 0沒有提供冗余或錯誤修復(fù)能力,但實現(xiàn)成本是最低的。
RAID 0最簡單的實現(xiàn)方式就是把N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統(tǒng)中的磁盤驅(qū)動程序以軟件的方式串聯(lián)在一起創(chuàng)建一個大的卷集。在使用中電腦數(shù)據(jù)依次寫入到各塊硬盤中,它的最大優(yōu)點就是可以整倍的提高硬盤的容量。如使用了三塊80GB的硬盤組建成RAID 0模式,那么磁盤容量就會是240GB。其速度方面,各單獨一塊硬盤的速度完全相同。最大的缺點在于任何一塊硬盤出現(xiàn)故障,整個系統(tǒng)將會受到破壞,可靠性僅為單獨一塊硬盤的1/N。
為了解決這一問題,便出現(xiàn)了RAID 0的另一種模式。即在N塊硬盤上選擇合理的帶區(qū)來創(chuàng)建帶區(qū)集。其原理就是將原先順序?qū)懭氲臄?shù)據(jù)被分散到所有的四塊硬盤中同時進(jìn)行讀寫。四塊硬盤的并行操作使同一時間內(nèi)磁盤讀寫的速度提升了4倍。
在創(chuàng)建帶區(qū)集時,合理的選擇帶區(qū)的大小非常重要。如果帶區(qū)過大,可能一塊磁盤上的帶區(qū)空間就可以滿足大部分的I/O操作,使數(shù)據(jù)的讀寫仍然只局限在少數(shù)的一、兩塊硬盤上,不能充分的發(fā)揮出并行操作的優(yōu)勢。另一方面,如果帶區(qū)過小,任何I/O指令都可能引發(fā)大量的讀寫操作,占用過多的控制器總線帶寬。因此,在創(chuàng)建帶區(qū)集時,我們應(yīng)當(dāng)根據(jù)實際應(yīng)用的需要,慎重的選擇帶區(qū)的大小。
帶區(qū)集雖然可以把數(shù)據(jù)均勻的分配到所有的磁盤上進(jìn)行讀寫。但如果我們把所有的硬盤都連接到一個控制器上的話,可能會帶來潛在的危害。這是因為當(dāng)我們頻繁進(jìn)行讀寫操作時,很容易使控制器或總線的負(fù)荷 超載。為了避免出現(xiàn)上述問題,建議用戶可以使用多個磁盤控制器。最好解決方法還是為每一塊硬盤都配備一個專門的磁盤控制器。
雖然RAID 0可以提供更多的空間和更好的性能,但是整個系統(tǒng)是非常不可靠的,如果出現(xiàn)故障,無法進(jìn)行任何補救。所以,RAID 0一般只是在那些對數(shù)據(jù)安全性要求不高的情況下才被人們使用。[1]
2、RAID 1
RAID 1稱為磁盤鏡像,原理是把一個磁盤的數(shù)據(jù)鏡像到另一個磁盤上,也就是說數(shù)據(jù)在寫入一塊磁盤的同時,會在另一塊閑置的磁盤上生成鏡像文件,在不影響性能情況下最大限度的保證系統(tǒng)的可靠性和可修復(fù)性上,只要系統(tǒng)中任何一對鏡像盤中至少有一塊磁盤可以使用,甚至可以在一半數(shù)量的硬盤出現(xiàn)問題時系統(tǒng)都可以正常運行,當(dāng)一塊硬盤失效時,系統(tǒng)會忽略該硬盤,轉(zhuǎn)而使用剩余的鏡像盤讀寫數(shù)據(jù),具備很好的磁盤冗余能力。雖然這樣對數(shù)據(jù)來講絕對安全,但是成本也會明顯增加,磁盤利用率為50%,以四塊80GB容量的硬盤來講,可利用的磁盤空間僅為160GB。另外,出現(xiàn)硬盤故障的RAID系統(tǒng)不再可靠,應(yīng)當(dāng)及時的更換損壞的硬盤,否則剩余的鏡像盤也出現(xiàn)問題,那么整個系統(tǒng)就會崩潰。更換新盤后原有數(shù)據(jù)會需要很長時間同步鏡像,外界對數(shù)據(jù)的訪問不會受到影響,只是這時整個系統(tǒng)的性能有所下降。因此,RAID 1多用在保存關(guān)鍵性的重要數(shù)據(jù)的場合。
RAID 1主要是通過二次讀寫實現(xiàn)磁盤鏡像,所以磁盤控制器的負(fù)載也相當(dāng)大,尤其是在需要頻繁寫入數(shù)據(jù)的環(huán)境中。為了避免出現(xiàn)性能瓶頸,使用多個磁盤控制器就顯得很有必要。
3、RAID0+1
從RAID 0+1名稱上我們便可以看出是RAID0與RAID1的結(jié)合體。在我們單獨使用RAID 1也會出現(xiàn)類似單獨使用RAID 0那樣的問題,即在同一時間內(nèi)只能向一塊磁盤寫入數(shù)據(jù),不能充分利用所有的資源。為了解決這一問題,我們可以在磁盤鏡像中建立帶區(qū)集。因為這種配置方式綜合了帶區(qū)集和鏡像的優(yōu)勢,所以被稱為RAID 0+1。把RAID0和RAID1技術(shù)結(jié)合起來,數(shù)據(jù)除分布在多個盤上外,每個盤都有其物理鏡像盤,提供全冗余能力,允許一個以下磁盤故障,而不影響數(shù)據(jù)可用性,并具有快速讀/寫能力。RAID0+1要在磁盤鏡像中建立帶區(qū)集至少4個硬盤。
4、RAID: LSI MegaRAID、Nytro和Syncro
MegaRAID、Nytro和Syncro都是LSI 針對RAID而推出的解決方案,并且一直在創(chuàng)造更新。
LSI MegaRAID的主要定位是保護(hù)數(shù)據(jù),通過高性能、高可靠的RAID控制器功能,為數(shù)據(jù)提供高級別的保護(hù)。LSI MegaRAID在業(yè)界有口皆碑。
LSI Nytro的主要定位是數(shù)據(jù)加速,它充分利用當(dāng)今備受追捧的閃存技術(shù),極大地提高數(shù)據(jù)I/O速度。LSI Nytro包括三個系列:LSI Nytro WarpDrive加速卡、LSI Nytro XD 應(yīng)用加速存儲解決方案和LSI Nytro MegaRAID 應(yīng)用加速卡。Nytro MegaRAID主要用于DAS環(huán)境,Nytro WarpDrive加速卡主要用于SAN和NAS環(huán)境,Nytro XD解決方案由Nytro WarpDrive加速卡和Nytro XD 智能高速緩存軟件兩部分構(gòu)成。
LSI Syncro的定位主要用于數(shù)據(jù)共享,提高系統(tǒng)的可用性、可擴展性,降低成本。
LSI通過MegaRAID提供基本的可靠性保障;通過Nytro實現(xiàn)加速;通過Syncro突破容量瓶頸,讓價格低廉的存儲解決方案可以大規(guī)模擴展,并且進(jìn)一步提高可靠性。
5、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ū)動器組中速度最慢的相等。
6 、RAID3:帶奇偶校驗碼的并行傳送
這種校驗碼與RAID2不同,只能查錯不能糾錯。它訪問數(shù)據(jù)時一次處理一個帶區(qū),這樣可以提高讀取和寫入速度。校驗碼在寫入數(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ù),奇偶盤會成為寫操作的瓶頸。
7、RAID4:帶奇偶校驗碼的獨立磁盤結(jié)構(gòu)
RAID4和RAID3很象,不同的是,它對數(shù)據(jù)的訪問是按數(shù)據(jù)塊進(jìn)行的,也就是按磁盤進(jìn)行的,每次是一個盤。在圖上可以這么看,RAID3是一次一橫條,而RAID4一次一豎條。它的特點和RAID3也挺象,不過在失敗恢復(fù)時,它的難度可要比RAID3大得多了,控制器的設(shè)計難度也要大許多,而且訪問數(shù)據(jù)的效率不怎么好。
8、RAID5:分布式奇偶校驗的獨立磁盤結(jié)構(gòu)
從它的示意圖上可以看到,它的奇偶校驗碼存在于所有磁盤上,其中的p0代表第0帶區(qū)的奇偶校驗值,其它的意思也相同。RAID5的讀出效率很高,寫入效率一般,塊式的集體訪問效率不錯。因為奇偶校驗碼在不同的磁盤上,所以提高了可靠性。但是它對數(shù)據(jù)傳輸?shù)牟⑿行越鉀Q不好,而且控制器的設(shè)計也相當(dāng)困難。RAID 3 與RAID 5相比,重要的區(qū)別在于RAID 3每進(jìn)行一次數(shù)據(jù)傳輸,需涉及到所有的陣列盤。而對于RAID 5來說,大部分?jǐn)?shù)據(jù)傳輸只對一塊磁盤操作,可進(jìn)行并行操作。在RAID 5中有“寫損失”,即每一次寫操作,將產(chǎn)生四個實際的讀/寫操作,其中兩次讀舊的數(shù)據(jù)及奇偶信息,兩次寫新的數(shù)據(jù)及奇偶信息。
9、RAID6:帶有兩種分布存儲的奇偶校驗碼的獨立磁盤結(jié)構(gòu)
名字很長,但是如果看到圖,大家立刻會明白是為什么,請注意p0代表第0帶區(qū)的奇偶校驗值,而pA代表數(shù)據(jù)塊A的奇偶校驗值。它是對RAID5的擴展,主要是用于要求數(shù)據(jù)絕對不能出錯的場合。當(dāng)然了,由于引入了第二種奇偶校驗值,所以需要N+2個磁盤,同時對控制器的設(shè)計變得十分復(fù)雜,寫入速度也不好,用于計算奇偶校驗值和驗證數(shù)據(jù)正確性所花費的時間比較多,造成了不必須的負(fù)載。我想除了軍隊沒有人用得起這種東西。
10、RAID7:優(yōu)化的高速數(shù)據(jù)傳送磁盤結(jié)構(gòu)
RAID7所有的I/O傳送均是同步進(jìn)行的,可以分別控制,這樣提高了系統(tǒng)的并行性,提高系統(tǒng)訪問數(shù)據(jù)的速度;每個磁盤都帶有高速緩沖存儲器,實時操作系統(tǒng)可以使用任何實時操作芯片,達(dá)到不同實時系統(tǒng)的需要。允許使用SNMP協(xié)議進(jìn)行管理和監(jiān)視,可以對校驗區(qū)指定獨立的傳送信道以提高效率??梢赃B接多臺主機,因為加入高速緩沖存儲器,當(dāng)多用戶訪問系統(tǒng)時,訪問時間幾乎接近于0。由于采用并行結(jié)構(gòu),因此數(shù)據(jù)訪問效率大大提高。需要注意的是它引入了一個高速緩沖存儲器,這有利有弊,因為一旦系統(tǒng)斷電,在高速緩沖存儲器內(nèi)的數(shù)據(jù)就會全部丟失,因此需要和UPS一起工作。當(dāng)然了,這么快的東西,價格也非常昂貴。
11、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ù)容量不大,但要求速度和差錯控制的數(shù)據(jù)庫中。
12、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ū)和按位存儲兩種方法,在考慮到效率的情況下,要求這些磁盤同步真是不容易。