瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          日歷

          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          公告

          公眾號:
          QQjava交流群:51374316



          相冊

          搜索

          •  

          積分與排名

          • 積分 - 2843139
          • 排名 - 2

          最新隨筆

          raid技術(shù)

          Posted on 2011-06-21 17:07 瘋狂 閱讀(462) 評論(0)  編輯  收藏 所屬分類: 架構(gòu)

          RAID 0:無差錯控制的帶區(qū)組

            

          要實現(xiàn)RAID0必須要有兩個以上硬盤驅(qū)動器,RAID0實現(xiàn)了帶區(qū)組,數(shù)據(jù)并不是保存在一個硬盤上,而是分成數(shù)據(jù)塊保存在不同驅(qū)動器上。因為將數(shù)據(jù)分布在不同驅(qū)動器上,所以數(shù)據(jù)吞吐率大大提高,驅(qū)動器的負載也比較平衡。如果剛好所需要的數(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ù)都無法使用。

          RAID0又稱為StripeStriping,它代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續(xù)的數(shù)據(jù)分散到多個磁盤上存取,這樣,系統(tǒng)有數(shù)據(jù)請求就可以被多個磁盤并行的執(zhí)行,每個磁盤執(zhí)行屬于它自己的那部分數(shù)據(jù)請求。這種數(shù)據(jù)上的并行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能。

            如圖所示:系統(tǒng)向三個磁盤組成的邏輯硬盤(RADI 0 磁盤組)發(fā)出的I/O數(shù)據(jù)請求被轉(zhuǎn)化為3項操作,其中的每一項操作都對應(yīng)于一塊物理硬盤。我們從圖中可以清楚的看到通過建立RAID 0,原先順序的數(shù)據(jù)請求被分散到所有的三塊硬盤中同時執(zhí)行。

            從理論上講,三塊硬盤的并行操作使同一時間內(nèi)磁盤讀寫速度提升了3倍。 但由于總線帶寬等多種因素的影響,實際的提升速率肯定會低于理論值,但是,大量數(shù)據(jù)并行傳輸與串行傳輸比較,提速效果顯著顯然毋庸置疑。

            RAID 0的缺點是不提供數(shù)據(jù)冗余,因此一旦用戶數(shù)據(jù)損壞,損壞的數(shù)據(jù)將無法得到恢復(fù)。

            RAID 0具有的特點,使其特別適用于對性能要求較高,而對數(shù)據(jù)安全不太在乎的領(lǐng)域,如圖形工作站等。對于個人用戶,RAID 0也是提高硬盤存儲性能的絕佳選擇。

           

          RAID 1:鏡象結(jié)構(gòu)

            

          對于使用這種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ù)器負載比較重的時候會大大影響服務(wù)器效率。當您的系統(tǒng)需要極高的可靠性時,如進行數(shù)據(jù)統(tǒng)計,那么使用RAID1比較合適。而且RAID1技術(shù)支持熱替換,即不斷電的情況下對故障磁盤進行更換,更換完畢只要從鏡像盤上恢復(fù)數(shù)據(jù)即可。當主硬盤損壞時,鏡像硬盤就可以代替主硬盤工作。鏡像硬盤相當于一個備份盤,可想而知,這種硬盤模式的安全性是非常高的,RAID 1的數(shù)據(jù)安全性在所有的RAID級別上來說是最好的。但是其磁盤的利用率卻只有50%,是所有RAID級別中最低的。

           RAID1又稱為MirrorMirroring,它的宗旨是最大限度的保證用戶數(shù)據(jù)的可用性和可修復(fù)性。 RAID 1的操作方式是把用戶寫入硬盤的數(shù)據(jù)百分之百地自動復(fù)制到另外一個硬盤上。

            當讀取數(shù)據(jù)時,系統(tǒng)先從RAID 0的源盤讀取數(shù)據(jù),如果讀取數(shù)據(jù)成功,則系統(tǒng)不去管備份盤上的數(shù)據(jù);如果讀取源盤數(shù)據(jù)失敗,則系統(tǒng)自動轉(zhuǎn)而讀取備份盤上的數(shù)據(jù),不會造成用戶工作任務(wù)的中斷。當然,我們應(yīng)當及時地更換損壞的硬盤并利用備份數(shù)據(jù)重新建立Mirror,避免備份盤在發(fā)生損壞時,造成不可挽回的數(shù)據(jù)損失。

            由于對存儲的數(shù)據(jù)進行百分之百的備份,在所有RAID級別中,RAID 1提供最高的數(shù)據(jù)安全保障。同樣,由于數(shù)據(jù)的百分之百備份,備份數(shù)據(jù)占了總存儲空間的一半,因而,Mirror的磁盤空間利用率低,存儲成本高。

            Mirror雖不能提高存儲性能,但由于其具有的高數(shù)據(jù)安全性,使其尤其適用于存放重要數(shù)據(jù),如服務(wù)器和數(shù)據(jù)庫存儲等領(lǐng)域。

           

          RAID 0+1

          RAID 0+1:正如其名字一樣RAID 0+1RAID 0RAID 1的組合形式,也稱為RAID 10

            以四個磁盤組成的RAID 0+1為例,其數(shù)據(jù)存儲方式如圖所示:RAID 0+1是存儲性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1一樣的數(shù)據(jù)安全保障的同時,也提供了與RAID 0近似的存儲性能。

            由于RAID 0+1也通過數(shù)據(jù)的100%備份提供數(shù)據(jù)安全保障,因此RAID 0+1的磁盤空間利用率與RAID 1相同,存儲成本高。

          RAID 0+1的特點使其特別適用于既有大量數(shù)據(jù)需要存取,同時又對數(shù)據(jù)安全性要求嚴格的領(lǐng)域,如銀行、金融、商業(yè)超市、倉儲庫房、各種檔案管理等。

          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ù)傳送速率相當高,如果希望達到比較理想的速度,那最好提高保存校驗碼ECC碼的硬盤,對于控制器的設(shè)計來說,它又比RAID345要簡單。沒有免費的午餐,這里也一樣,要利用海明碼,必須要付出數(shù)據(jù)冗余的代價。輸出數(shù)據(jù)的速率與驅(qū)動器組中速度最慢的相等。

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

           

          這種校驗碼與RAID2不同,只能查錯不能糾錯。它訪問數(shù)據(jù)時一次處理一個帶區(qū),這樣可以提高讀取和寫入速度,它像RAID 0一樣以并行的方式來存放數(shù)據(jù),但速度沒有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)/n。

          RAID4:帶奇偶校驗碼的獨立磁盤結(jié)構(gòu)

            

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

          RAID5:分布式奇偶校驗的獨立磁盤結(jié)構(gòu)

            

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

            RAID5校驗位算法詳解

            P=D1 xor D2 xor D3 … xor Dn D1,D2,D3 … Dn為數(shù)據(jù)塊,P為校驗,xor為異或運算)

            XOR(Exclusive OR)的校驗原理如下表:

            

          A

          B

          Xor結(jié)果

          0

          0

          0

          1

          0

          1

          0

          1

          1

          1

          1

          0

            這里的AB值就代表了兩個位,從中可以發(fā)現(xiàn),AB一樣時,XOR(非或又稱"非異或")結(jié)果為0AB不一樣時,XOR結(jié)果就是1,如果知道XOR結(jié)果,AB中的任何兩個數(shù)值,就可以反推出剩下的一個數(shù)值。比如A1XOR結(jié)果為1,那么B肯定為0,如果XOR結(jié)果為0,那么B肯定為1。這就是XOR編碼與校驗的基本原理。

          RAID 5是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案。 以四個硬盤組成的RAID 5為例,其數(shù)據(jù)存儲方式如下圖所示:

            

          圖中,P0為D0,D1和D2的奇偶校驗信息,其它以此類推。

            由圖中可以看出,RAID 5不對存儲的數(shù)據(jù)進行備份,而是把數(shù)據(jù)和相對應(yīng)的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和相對應(yīng)的數(shù)據(jù)分別存儲于不同的磁盤上。當RAID5的一個磁盤數(shù)據(jù)發(fā)生損壞后,利用剩下的數(shù)據(jù)和相應(yīng)的奇偶校驗信息去恢復(fù)被損壞的數(shù)據(jù)。

          RAID 5可以理解為是RAID 0RAID 1的折衷方案。RAID 5可以為系統(tǒng)提供數(shù)據(jù)安全保障,但保障程度要比Mirror低而磁盤空間利用率要比Mirror高。RAID 5具有和RAID 0相近似的數(shù)據(jù)讀取速度,只是多了一個奇偶校驗信息,寫入數(shù)據(jù)的速度比對單個磁盤進行寫入操作稍慢。同時由于多個數(shù)據(jù)對應(yīng)一個奇偶校驗信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲成本相對較低。

          數(shù)據(jù)恢復(fù)

          一旦RAID陣列出現(xiàn)故障,硬件服務(wù)商只能給客戶重新初始化或者REBUILD,這樣客戶數(shù)據(jù)就會無法挽回。出現(xiàn)故障以后只要不對陣列作初始化操作,就有機會恢復(fù)出故障RAID磁盤陣列的數(shù)據(jù)。

          由于RAID數(shù)據(jù)恢復(fù)的復(fù)雜性和技術(shù)難度較高,在RAID陣列出現(xiàn)故障時,一定要找有經(jīng)驗的專業(yè)數(shù)據(jù)恢復(fù)中心提供數(shù)據(jù)恢復(fù)幫助。判斷專業(yè)數(shù)據(jù)恢復(fù)中心的標準包括數(shù)據(jù)恢復(fù)中心所使用的RAID數(shù)據(jù)恢復(fù)工具、數(shù)據(jù)恢復(fù)工程師從業(yè)經(jīng)驗等。因為RAID陣列中存儲的數(shù)據(jù)一般都比較重要,一旦被徹底損壞,將造成無法挽回的損失。

          目前常用的RAID陣列數(shù)據(jù)恢復(fù)工具包括效率源HD Doctor、數(shù)據(jù)恢復(fù)指南針Data Compass、硬盤復(fù)制機Data Copy King等。

           

          主站蜘蛛池模板: 城固县| 瑞金市| 开化县| 肥东县| 丰城市| 安达市| 麟游县| 东山县| 霍州市| 东丰县| 汉川市| 新龙县| 井陉县| 达日县| 晋州市| 白水县| 鹤庆县| 枣阳市| 阳城县| 南陵县| 元朗区| 江华| 灵山县| 双鸭山市| 朝阳县| 凤山市| 泰和县| 永济市| 綦江县| 抚远县| 垫江县| 泽库县| 龙南县| 桂平市| 汽车| 社会| 曲周县| 湾仔区| 高淳县| 杨浦区| 阳泉市|