標籤:raid 工作原理
我們知道單個磁碟儲存資料的容量是有限的,為了讓磁碟的容量增大,我們可以將多個較小的磁碟組合在一起,形成一個較大的磁碟裝置,這就是RAID(獨立式磁碟陣列),RAID不僅可以提高資料的儲存容量,也可以提高資料保護功能,不同層級的RAID,所提供的的功能各不一樣。
RAID常見的層級有RAID0,RAID1,RAID5,RAID10,RAID01,RAID5,RAID50
下面逐個介紹這些層級的工作原理。
RAID0:首先將磁碟分成等量的資料區塊(CHUNK),然後在將儲存的資料切分成符合CHUNK大小的塊,依次放在每一個磁碟上。以條帶的形式均勻的儲存在陣列中的每一個磁碟上。
儲存方式:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/39/53/wKiom1O4tHSzK2kTAADdaYl5Sbc482.jpg" title="r0.png" alt="wKiom1O4tHSzK2kTAADdaYl5Sbc482.jpg" />
所謂條帶的大小就是通過CHUNK的大小除以block的大小得到的。預設CHUNK為64k。
RAID0具有以下特性:
1、至少有2塊磁碟才能組合成RAID,最好相同的磁碟
2、資料被均勻的儲存在每一個磁碟上,因此讀寫效能提升
3、這樣儲存的資料不具有冗餘性,因此其中任意一個磁碟損壞,資料就壞了。
4、磁碟的利用率為100%
RAID1:由於RAID0沒有提供資料的冗餘機制,因此當其中一個磁碟損壞了,資料就恢複不了了。而RAID1的儲存機制與RAID不同,RAID1則是通過鏡像冗餘的方式,將一份資料同時儲存在兩個磁碟上。這樣當其中一塊磁碟損壞了,還可以通過另一個磁碟來工作。
儲存方式如下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/39/53/wKioL1O4uNTSo_oeAACFMZ6XG1k404.jpg" title="r1.png" alt="wKioL1O4uNTSo_oeAACFMZ6XG1k404.jpg" />
RAID1將具有以下特性:
1、至少有2塊磁碟組合成RAID1,最好磁碟相同
2、由於資料時儲存在每一個磁碟上的,因此磁碟的寫效能下降,讀效能提升
3、這種儲存方式具有冗餘性
4、磁碟的空間利用率為50%
從上面知道,RAID0不具有冗餘性,當一個磁碟損壞,所有資料也就損壞了。而RAID1雖然具有冗餘性,但是磁碟的利用率下降了,磁碟的寫效能也下降了。那麼可不可以將RAID0和RAID1組合起來使用,同時具有RAID0和RAID1的特性呢?
將RAID0和RAID1組合起來的整列有2中RAID10和RAID01
RAID10:就是先將磁碟組合成RAID1,再講RAID0組合成RAID0。
儲存方式如下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/39/53/wKioL1O4v_DDkXPAAAECB5Gonxk164.jpg" title="r10.png" alt="wKioL1O4v_DDkXPAAAECB5Gonxk164.jpg" />
RAID10具有以下的特性:
1、至少4顆磁碟才能組成。,因為RAID1和RAID0至少要兩個磁碟才能組成。
2、因為RAID1的原因,因此效能下降,讀效能提升
3、由於RAID1的原因,因此這樣組合具有冗餘性
4、磁碟利用率為50%
RAID01:現將磁碟組合成RAID0,再將RAID0組合成RAID1
儲存方式如下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/39/53/wKiom1O4wzbDCLDjAAECA9D5Iuc142.jpg" title="r01.png" alt="wKiom1O4wzbDCLDjAAECA9D5Iuc142.jpg" />
RAID5:將至少需要三個磁碟才能組合成RAID5,其中一個磁碟用來存放同位檢查碼的,且以輪循的方式存放在每一個磁碟上。而資料則是均勻等量的依次存放在其他磁碟上。
當其中某一個磁碟損壞了,可以利用同位檢查碼來恢複另一個磁碟的資料。
儲存方式為如下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/39/54/wKiom1O4yiaQoBduAAD5EiNz2X8771.jpg" title="r5.png" alt="wKiom1O4yiaQoBduAAD5EiNz2X8771.jpg" />
RAID5具有以下特性:
1、由於其中一個磁碟要存放同位檢查碼,因此至少需要三個磁碟才能形成RADI5
2、由於同位檢查碼的存在,因此磁碟的寫效能下降,讀效能提升
3、由於可以用同位檢查碼來恢複磁碟的資料,因此具有冗餘性
4、磁碟的空間利用率為(n-1)/n
RAID50:將磁碟先組合成RAID5,再將組合成的RAID5組合成RAID0
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/39/54/wKiom1O4zeWC7bOvAAFAg9dhsA0435.jpg" title="r50.png" alt="wKiom1O4zeWC7bOvAAFAg9dhsA0435.jpg" />
RAID50將具有以下特性:
1、由於RAID5的原因,因此需要至少6顆磁碟才能組合成RAID50
2、由於有同位檢查碼,因此磁碟寫效能下降,讀效能提升
3、具有冗餘功能
4、磁碟利用率為(n-2)/n
另外還有一種磁碟組合機制jobd技術
jbod:就是將多個磁碟堆疊形成一個大的邏輯磁碟,且當第一個磁碟容量用完時,才使用第二個磁碟。
因此jbod具有以下特性:
1、至少需要2顆磁碟才可以組合成jbod
2、資料是從第一個磁碟依次儲存的,因此讀寫效能沒有提升
3、沒有提供冗餘機制,當其中一塊磁碟損壞時,資料就會損壞
4、磁碟利用率為100%
上面主要介紹了幾種常見層級的RAID原理,RAID可以通過硬體和軟體來組合成,那麼硬體RAID和軟體RAID有什麼區別呢?
本文出自 “linux學習之路” 部落格,謝絕轉載!