首頁 > 軟體

Linux基礎教學:獨立硬碟冗餘陣列-RAID

2020-06-16 17:07:49

獨立硬碟冗餘陣列(RAID,Redundant Array of Independant Disks),舊稱為廉價磁碟冗餘陣列(Redundant Array of Inexpensive Disks)。1987年美國加州伯克利分校的一篇名為《A Case for Redundant Arrays of Inexpensive Disk(RAID)》論文誕生,這標誌著RAID技術的開始。

那麼什麼是RAID呢?簡單的來講就是把多個硬碟組合起來,成為一個硬碟陣列組,作業系統會把它當做是一個硬碟,其效能能夠達到甚至超過單個昂貴容量大的硬碟。RAID提供了多種硬碟組合的方式,相比單個硬碟來說,提高了硬碟得I/O能力。多個磁碟之間相互冗餘,提高了耐用性。
RAID的硬碟組合方式有:RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-7,RAID10,RAID-01,RAID-50,RAID-53,RAID-60,JBOD。
 

RAID的實現模式

Software RAID:

軟體磁碟陣列,由CPU處理和協調一個RAID裡面各個硬碟的作業,這樣就會給CPU帶來較多的運算壓力,分為3種:

1)基於主機板的的磁碟陣列:通常上是由主機板上的晶片組提供RAID功能。

2)硬體輔助磁碟陣列:需要RAID卡和相關廠商提供的驅動程式,RAID功能是由驅動程式和CPU運算來提供

3)作業系統的RAID功能:Linux、windows Server等作業系統內建的RAID功能

雖然軟RAID實現的有多種,但是在生產環境還是不建議使用的。

Hardware RAID:
硬體磁碟陣列,在RAID卡上內建了CPU處理器,這樣就不佔用伺服器的CPU了。一般硬體磁碟陣列都會有備份的電源模組和NVRAM(非易失性記憶體),當系統斷掉後,備份電源開始供電,將硬碟讀寫的紀錄檔儲存在記憶體中,當系統恢復,備份電源關閉供電,再在NVRAM讀取紀錄檔資料,繼續完成上次斷電前沒有完成的作業。

 

常用RAID介紹

常用的RAID有:RAID0,RAID-1,RAID-5,RAID6,RAID-10,RAID50。

 

RAID0

RAID0,也稱條帶卷(striping)。在RAID0中,資料會被切成片,按一定順序會被寫到所有的磁碟裡面,如下圖:

若一片資料被切割成了A1-A8,將儲存在一個由2塊Disk組成的RAID0,那麼第一段資料塊A1會被儲存在Disk0中,第二段資料塊A2會被儲存在Disk1中,第三段資料塊會被儲存在Disk0中,以此類推,這一片資料會被均分到2塊磁碟上。

RAID0的優缺點:

1)速度快,寫和讀的能力得到了提高;

2)RAID0沒有冗餘的能力,一旦一塊磁碟出現了故障,則所有的資料都將不會恢復;

3)RAID0需要N塊磁碟才能實現(N>=2);

4)能夠儲存資料的大小為N*min(S1,S2,S3,S4....)

在RAID0中有兩個重要的引數:

條頻寬度:stripe width,它指的是可以被並行寫入的資料塊的個數,也就是實現RAID0中磁碟的個數;

條帶大小:stripe size,它指的是每次寫入磁碟的資料塊的大小,大小一般為2KB或者512KB甚至更大,size越小,資料被分割的次數就越多。stripe size對效能是有一定的影響的,在生產環境中,需要調整好。

 

 RAID1

RAID1,映象化,在RAID1中,資料會被複製成多份,儲存在多個磁碟上,如下圖:

若一片資料將要被儲存,資料會被複製成多份(取決RAID1的磁碟個數),然後儲存到每一個磁碟上。

 

 RAID1的優缺點:

1)冗餘性和資料的可靠性最高,只要不是磁碟同時損壞了,一般都不會帶來資料丟失的問題;

2)RAID1的容量取決容量最小的那個磁碟,寫入速度也是取決於最小的那個磁碟,較大的磁碟的剩餘空間可       以分割區使用,不會造成浪費;

3)RAID1的讀取速度理論上來說是磁碟個數的倍數;

4)RAID1需要N塊磁碟才能實現(N>=2)

5)能夠儲存資料的大小為min(S1,S2,S3...)

 

 RAID3

RAID3,資料類似於RAID0,被條帶化的儲存在多個磁碟中,資料以位元組為單位,與RAID0不同的是,RAID3單獨使用了一塊獨立的磁碟用來儲存資料的奇偶校驗值,如下圖所示:

資料被切片儲存在Disk0-2上,同時計算處奇偶校驗值儲存在Disk3上,這樣即使Disk0-2中損壞一塊磁碟,也能根據奇偶校驗值得到損壞磁碟的資料。

 

RAID3的優缺點:
1.較高的容錯能力;

2.不適合寫入操作較多的情景,會給校驗盤帶來一定的負載,適合讀取操作較多的應用環境;

3.RAID3需要N塊磁碟(N>=3);

4.能夠儲存資料的大小為(N-1)*min(S1,S2,S3,S4....)。

 
 RAID4

和RAID3類似,RAID4不是以位元組為存取單位,RAID4的資料以塊(一般為512位元組)為單位,如下圖:

以塊為單位帶來的好處就是,減少了奇偶檢驗的次數,比如,如果一段資料的大小為10個位元組,在RAID3上可能需要計算2次奇偶檢驗值了,但是在RAID4上,10個位元組都會被放在第一個磁碟上,並不需要計算。

 

 RAID4的優缺點:

1.較高的容錯能力;

2.提高了小量資料的I/O能力;

3.RAID4需要N塊磁碟(N>=3);

4.能夠儲存資料的大小為(N-1)*min(S1,S2,S3,S4....)。

 
RAID5

RAID5可以理解成是RAID0和RAID1的折中方案,把資料條帶化後儲存,並且將資料奇偶檢驗值儲存在所有的硬碟上,如下圖:

資料被條帶化儲存到了磁碟上,並且每個磁碟上都能夠儲存奇偶檢驗值,其讀寫速度和RAID0差不多,可能寫的時候要慢一點,比較要計算奇偶檢驗,這樣,即使壞掉一塊磁碟,只需要更換上好的磁碟,RAID會利用剩下奇偶檢驗去重建磁碟上的資料。

 

 RAID5的優缺點:

1)較高的容錯能力;

2)讀寫速度快;

3)RAID4需要N塊磁碟(N>=3);

4)能夠儲存資料的大小為(N-1)*min(S1,S2,S3,S4....)。

 

 RAID6

與RAID5類似,只是增加了第二個獨立的奇偶檢驗資訊塊,使用了兩種不同的奇偶檢驗演算法,如下圖所示:

資料仍然是被條帶化得儲存在磁碟上,但是會計算出兩個獨立的奇偶檢驗值,相對於RAID5來說有更多的I/O操作和計算量,所以RAID6通常不會以軟體來實現,一般會使用硬體實現,RAID6也是最常見的磁碟陣列。

 

 RAID6的優缺點:

1)較高的容錯能力

2)同一RAID6中最多執行同時損壞2塊磁碟,更換磁碟後,資料將被重新計算寫入;

3)RAID6需要N個磁碟(N>=4);

4)RAID容量為(N-2)*min(s1,s2,s3,...)

 
 RAID 01

RAID 01是一種混合的磁碟陣列,即是RAID0和RAID1的混合,先做條帶,再做映象:

RAID01中,同組RAID0只要出現一個磁碟損壞,那麼這個RAID 0就不能你使用了,值剩下其他組的磁碟運作,可靠性較低。

 

 RAID01的優缺點:

1)資料可靠性低

2)RAID01需要N個磁碟(N>=4)

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2017-09/146900p2.htm


IT145.com E-mail:sddin#qq.com