自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

RAID(獨立冗余磁盤陣列)技術(shù)淺析

存儲
RAID作為一種磁盤冗余陣列,能夠提供一個獨立的大型存儲設(shè)備解決方案。將幾個物理磁盤合并成一個更大的虛擬設(shè)備,在提高硬盤容量的同時,還能夠充分提高硬盤的速度,使數(shù)據(jù)更加安全,更加易于磁盤的管理。

RAID技術(shù)的由來

人類自有活動以來,就伴隨著信息的記錄和保存。原始社會的刻痕和結(jié)繩,到中國古代的竹簡和紙張,以及20世紀中期出現(xiàn)的磁帶,軟盤和硬盤。到了20世紀后期,隨著集成電路的飛速發(fā)展,固態(tài)硅芯片的出現(xiàn),代表有RAM芯片,F(xiàn)lash芯片,CPU芯片等。技術(shù)在不斷進步,其中一個大的趨勢是單位體積的存儲量越來越大。不過,隨著21世紀的到來,網(wǎng)絡(luò)日益發(fā)達和全球的一體化導(dǎo)致信息的大爆炸,對存儲量和存儲的速度有了更大的要求??v然,如今的單碟SATA(Serial ATA)硬盤已經(jīng)可以達到幾個TB的容量,但是也遠遠無法滿足容量和速度上的需求。

要解決這個問題,除了提高單碟的容量和存取速度以外,還可以將多個磁盤進行組合,這就是RAID技術(shù),即Redundant Array of Idependent Disks,中文名是由獨立的磁盤組成的具有冗余特性的陣列——磁盤陣列。RAID作為一種磁盤冗余陣列,能夠提供一個獨立的大型存儲設(shè)備解決方案。將幾個物理磁盤合并成一個更大的虛擬設(shè)備,在提高硬盤容量的同時,還能夠充分提高硬盤的速度,使數(shù)據(jù)更加安全,更加易于磁盤的管理。

引言

如果我們有一個需要很大容量,一塊硬盤存儲不了的數(shù)據(jù),只能存儲到多個硬盤上,最簡單的思維是:一塊硬盤一塊硬盤的讀取/存儲。

很顯然,這樣單純的堆積法雖然解決了容量的問題,但是也帶來的浪費,因為一次只是從一塊硬盤上進行讀/寫,同時,單塊硬盤的讀取速度,也是整個磁盤組合的讀取速度。

因為CPU和緩存的速度遠遠大于磁盤的讀取數(shù)據(jù),因此我們可以將CPU數(shù)據(jù)讀/取請求按照順序給不同的磁盤,讓磁盤“同時”讀/寫數(shù)據(jù),也就是下面的RAID 0.

RAID 0

將連續(xù)的數(shù)據(jù)拆分成block,分散將數(shù)據(jù)block的讀/寫請求給各個磁盤,達到“同時”讀/寫的目的。

也叫Stripe條帶模式。

  • 優(yōu)點:這種數(shù)據(jù)上的并行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能。因為讀取和寫入是在設(shè)備上并行完成的,讀取和寫入性能將會增加,
  • 缺點:沒有數(shù)據(jù)冗余,如果其中一個磁盤Disk出現(xiàn)錯誤,將影響所有的讀/寫操作,并且不能從錯誤中恢復(fù)數(shù)據(jù)。

P.S.磁盤上只有實實在在的扇區(qū)結(jié)構(gòu),并沒有什么Stripe結(jié)構(gòu),Stripe只是一種邏輯上由程序根據(jù)某種算法實現(xiàn)的一種的概念。Stripe后的多個硬盤,數(shù)據(jù)是被并行寫入磁盤的,而不是只有寫滿了一個磁盤的Stripe區(qū)域后,再寫下個磁盤的Stripe區(qū)域。

 

RAID 1

又稱為鏡像(Mirroring),一個具有全冗余的模式。

  • 優(yōu)點:需要極高的可靠性和安全性。支持"熱替換",即不斷電的情況下對故障磁盤進行更換。
  • 缺點:其磁盤的利用率卻只有50%,是所有RAID級別中***的。

 

RAID 1+0

先做鏡像(1),再做條帶(0)。

比如,有HDD0~HDD7共7個磁盤,其中HDD0~HDD3是數(shù)據(jù)盤,HDD4~HDD7是對應(yīng)的鏡像盤。同時,有”ABCD”四個數(shù)據(jù)的磁盤寫請求。

當數(shù)據(jù)A的寫請求在磁盤HDD0上執(zhí)行時,就在對應(yīng)的鏡像盤HDD4中進行鏡像A’。與此同時,按照與數(shù)據(jù)A類似的步驟,并行在相應(yīng)磁盤中寫入數(shù)據(jù)B、數(shù)據(jù)C和數(shù)據(jù)D。

 

 

  • 優(yōu)點:兼顧了RAID0和RAID1的優(yōu)點,在可靠性和I/O性能上有保證。只要不是數(shù)據(jù)盤和對應(yīng)的鏡像盤同時出現(xiàn)損壞,數(shù)據(jù)就能保證完整性,寫功能不會受到影響。如果損壞了其中一塊比如HDD0時,讀性能可能會稍微降低(讀取數(shù)據(jù)時可以并行操作)。
  • 缺點:從上圖可以看出,需要分出一半的磁盤組作為Mirror,因此空間利用率只有50%,成本大。

RAID1+0 由于兼具可靠性和好的性能, 在商業(yè)應(yīng)用中很廣泛,常應(yīng)用于數(shù)據(jù)庫等要求安全性,小數(shù)據(jù)頻繁寫的場合。

RAID 0+1

先做條帶(0),再做鏡像(1)。

先對數(shù)據(jù)進行RAID 0條帶化,然后將Stripe后的數(shù)據(jù)進行備份。

RAID01幾乎不會在實際環(huán)境中應(yīng)用,因為RAID0+1和RAID1+0在讀取效率上沒有差異,但是RAID0+1在安全性和可靠性低。

 

RAID 2

可以認為是RAID0的改進版,加入了漢明碼(Hanmming Code)錯誤校驗。

漢明碼(Hamming Code)是一種能夠自動檢測并糾正一位錯碼的線性糾錯碼,即SEC(Single Error Correcting)碼。漢明碼通過在要傳輸?shù)臄?shù)據(jù)位中增加一些bit作為校驗位,可以驗證數(shù)據(jù)的有效性。

漢明碼的原理舉例說明,如果傳輸?shù)臄?shù)據(jù)位數(shù)為k,使用的校驗位的位數(shù)為r,組成一個n=k+r位數(shù)的漢明碼。為了能夠發(fā)現(xiàn)這n位數(shù)的數(shù)據(jù)在傳輸給后端時是否出錯,并且能夠指明是那一位數(shù)據(jù)出錯,那么r位的校驗位至少能夠代表k+r+1個狀態(tài)(k+r表明出錯的位置,其中多出來的1表示數(shù)據(jù)傳輸正確)。那么關(guān)系式如下:

 

也是就是說,如果要傳輸k=4位數(shù)據(jù)位,根據(jù)算式(1) 必須則校驗位r≥3,如果用r=3作為校驗位數(shù),那么總共傳輸?shù)臄?shù)據(jù)位數(shù)n=k+r=7。

RAID就是利用了漢明碼的原理,使用校驗磁盤作為錯誤檢查和糾正ECC(Error Correcting Code)盤。如下圖,A0-A3四個盤是數(shù)據(jù)盤,Ax-Az三個盤是校驗盤。

 

根據(jù)原理,漢明碼有且僅能糾正一個Bit的錯誤,并且因為校驗的原因,校驗位和數(shù)據(jù)位需要一同并行寫人或讀取(例如,A0-A3,Ax-Az的磁盤需要并行聯(lián)動)

RAID2技術(shù)過于極端,目前基本已經(jīng)被淘汰了。根據(jù)原理,RAID2需要在IO數(shù)據(jù)到來之后,控制器將數(shù)據(jù)按Bit分開,順序并同時在每個數(shù)據(jù)盤和相應(yīng)校驗盤中存放1Bit,而磁盤上的IO最小單位是扇區(qū)512B,那么如何確保寫入1Bit并且不至于浪費過多空間的算法就很復(fù)雜。此外,需要占用相對較多的校驗盤也是原因之一,雖然隨著數(shù)據(jù)盤的增加,校驗盤的數(shù)量會呈指數(shù)下降。

RAID 3

RAID 2的缺點主要是將數(shù)據(jù)以bit位作為單位來分割,將原本物理連續(xù)的扇區(qū)轉(zhuǎn)變成了物理不連續(xù)、邏輯連續(xù)的,這樣導(dǎo)致效率低下。RAID3 就準備從根本上就絕這個問題。

RAID3保留了RAID2的一些優(yōu)點,比如多磁盤同時聯(lián)動,性能高(利用將一個IO盡量做到能夠分割成小塊,讓每個磁盤能夠參與工作)。不過RAID3放棄了將數(shù)據(jù)分割成Bit這么極端的做法,因為這樣就將磁盤扇區(qū)的物理連續(xù)性打破了。RAID3將數(shù)據(jù)以一個扇區(qū)(512B)或者幾個扇區(qū)(例如4KB)作為單位來分割數(shù)據(jù)。此外,RAID3也放棄了使用漢明碼來校驗,取而代之的是XOR校驗算法。XOR校驗算法只能判斷數(shù)據(jù)是否有誤,不能判斷出有那一位有誤,更不能更正錯誤,但是XOR算法可以只需要一塊校驗盤即可。

 

在一個磁盤陣列中,一般情況下多于一個磁盤出現(xiàn)故障的幾率是很小的,所有一般情況下,RAID3的安全性還是有保障的。

同RAID2一樣,由于需要多磁盤同時聯(lián)動,同時還需要校驗。顯然,RAID3不適用于有大量寫操作的情況,因為這樣會使得校驗盤的負荷較大,降低RAID系統(tǒng)的性能。RAID3 常用于寫操作較少,讀操作較多的應(yīng)用環(huán)境,比如數(shù)據(jù)庫和WEB服務(wù)器。

RAID 4

從RAID2和RAID3的設(shè)計來看,都是為了盡量達到全盤聯(lián)動,也就是說主要都是為了提高數(shù)據(jù)傳輸率而設(shè)計的,但是確無法做到并發(fā)IO。

然而,現(xiàn)實中例如數(shù)據(jù)庫等應(yīng)用的特點就是高頻率隨機IO讀寫,例如每秒產(chǎn)生的IO數(shù)目很大,但是每個IO請求的數(shù)據(jù)長度都很小。這種情況下,如果所有的磁盤同一時刻都被一個IO占用并且不能并發(fā)IO,只能一個IO一個IO的做,必然產(chǎn)生極大的浪費。

那么,要實現(xiàn)并發(fā)IO,就需要保證有空閑的磁盤沒有被IO占用,這樣才能讓其他IO去占有這個磁盤進訪問。要達到有有空閑磁盤的目的,那么就需要增加每次讀/寫的容量,例如按塊(Block)存取。

 

RAID4對于寫IO有個很難克服的問題,那就是校驗盤的爭用。例如上圖A0-A3四個數(shù)據(jù)盤和一個校驗盤構(gòu)成的RAID4系統(tǒng)中,某一時刻一個IO只占用了A0和A1兩個磁盤和校驗盤,此時雖然后面兩塊磁盤是空閑的,可以同時接受新的IO請求,但是接受了新的IO請求,則新的IO請求也要使用校驗盤。這樣就導(dǎo)致了校驗盤的爭用成為并發(fā)的瓶頸。(動畫演示見http://storage-system.fujitsu...)

基于這個原因,需要特別優(yōu)化請求的IO數(shù)據(jù),才能高效使用RAID4。然而,要優(yōu)化到并發(fā)幾率很高很不容易,目前只有NetApp的WAFL文件系統(tǒng)還在使用RAID4,其他產(chǎn)品均未使用了。

RAID4面臨淘汰,取而代之的是擁有高盲并發(fā)幾率的RAID5系統(tǒng)。所謂的高盲并發(fā)幾率,就是上層文件系統(tǒng)不用感知下層磁盤的結(jié)構(gòu),即可增加并發(fā)的幾率。

RAID 5

 

RAID 5+0

 

RAID 6

 

備注:

關(guān)于RAID的介紹中動畫的網(wǎng)站http://storage-system.fujitsu...

http://storage-system.fujitsu...

責任編輯:龐桂玉 來源: segmentfault
點贊
收藏

51CTO技術(shù)棧公眾號