磁盤陣列是什么東西,有什么用?
大家好,我是飄渺,今天我們來聊聊架構(gòu)師需要掌握的存儲(chǔ)知識(shí) - 磁盤陣列。
概述
什么是RAID: RAID ( Redundant Array of Independent Disks )即獨(dú)立磁盤冗余陣列,通常簡(jiǎn)稱為磁盤陣列。
簡(jiǎn)單地說, RAID 是由多個(gè)獨(dú)立的高性能磁盤驅(qū)動(dòng)器組成的磁盤子系統(tǒng),從而提供比單個(gè)磁盤更高的存儲(chǔ)性能和數(shù)據(jù)冗余的技術(shù)。
RAID 是一類多磁盤管理技術(shù),其向主機(jī)環(huán)境提供了成本適中、數(shù)據(jù)可靠性高的高性能存儲(chǔ)。
RAID 中主要有三個(gè)關(guān)鍵概念和技術(shù):鏡像( Mirroring )、數(shù)據(jù)條帶( Data Stripping ) 和 數(shù)據(jù)校驗(yàn)( Data parity )。
鏡像:將數(shù)據(jù)復(fù)制到多個(gè)磁盤,一方面可以提高可靠性,另一方面可并發(fā)從兩個(gè)或多個(gè)副本讀取數(shù)據(jù)來提高讀性能。顯而易見,鏡像的寫性能要稍低, 確保數(shù)據(jù)正確地寫到多個(gè)磁盤需要更多的時(shí)間消耗。
數(shù)據(jù)條帶:將數(shù)據(jù)分片保存在多個(gè)不同的磁盤,多個(gè)數(shù)據(jù)分片共同組成一個(gè)完整數(shù)據(jù)副本,這與鏡像的多個(gè)副本是不同的,它通常用于性能考慮。數(shù)據(jù)條帶具有更高的并發(fā)粒度,當(dāng)訪問數(shù)據(jù)時(shí),可以同時(shí)對(duì)位于不同磁盤上數(shù)據(jù)進(jìn)行讀寫操作, 從而獲得非??捎^的 I/O 性能提升 。
數(shù)據(jù)校驗(yàn):利用冗余數(shù)據(jù)進(jìn)行數(shù)據(jù)錯(cuò)誤檢測(cè)和修復(fù),冗余數(shù)據(jù)通常采用海明碼、異或操作等算法來計(jì)算獲得。利用校驗(yàn)功能,可以很大程度上提高磁盤陣列的可靠性、魯棒性和容錯(cuò)能力。不過,數(shù)據(jù)校驗(yàn)需要從多處讀取數(shù)據(jù)并進(jìn)行計(jì)算和對(duì)比,會(huì)影響系統(tǒng)性能。不同等級(jí)的 RAID 采用一個(gè)或多個(gè)以上的三種技術(shù),來獲得不同的數(shù)據(jù)可靠性、可用性和 I/O 性能。
對(duì)于系統(tǒng)需要采用何種模式的 RAID ,需要在深入理解系統(tǒng)需求的前提下進(jìn)行合理選擇,綜合評(píng)估可靠性、性能和成本來進(jìn)行折中的選擇。
常見的RAID等級(jí)有:
- 標(biāo)準(zhǔn)RAID RAID0 、 RAID1 、 RAID2 、 RAID3 、 RAID4 、 RAID5 、RAID6 七個(gè)等級(jí)定為標(biāo)準(zhǔn)的 RAID 等級(jí)
- 混合RAID:RAID10、RAID50、RAID60...
下面我們分別介紹一下各種RAID級(jí)別并做個(gè)簡(jiǎn)單對(duì)比。
RAID0
RAID0
使用N塊磁盤進(jìn)行組合實(shí)現(xiàn)性能翻N倍的效果,寫入數(shù)據(jù)會(huì)分成N部分進(jìn)行,讀取數(shù)據(jù)會(huì)從磁盤中組合起來讀,這樣就實(shí)現(xiàn)了讀寫性能翻倍。
優(yōu)點(diǎn):使用RAID0 可以將磁盤空間利用率最大化,能達(dá)到100%;性能快,磁盤越多性能越強(qiáng)。
缺點(diǎn):沒有數(shù)據(jù)保護(hù),甚至比單盤的風(fēng)險(xiǎn)還大。任意壞了一塊磁盤都會(huì)導(dǎo)致數(shù)據(jù)丟失。
RAID 1
RAID1
RAID 1 中的磁盤互為鏡像,寫入的數(shù)據(jù)會(huì)存放N份,讀取的時(shí)候可以從任意一塊磁盤讀取。實(shí)現(xiàn)了讀性能翻倍,寫性能與單盤一樣的效果。
優(yōu)點(diǎn):安全性依照陣列中的實(shí)體硬盤數(shù)量倍數(shù)成長(zhǎng)。
缺點(diǎn):空間利用率低,是所有陣列中利用率最低的。
RAID 5
RAID5
RAID5 既考慮了空間利用率又考慮了性能的提升,采用校驗(yàn)碼的而非鏡像的方式組合而成,RAID5 陣列需要至少3塊磁盤。
在上圖中使用了4塊磁盤組合而成,任意一份數(shù)據(jù)寫入會(huì)被分成三個(gè)數(shù)據(jù)塊+一個(gè)校驗(yàn)塊分別放入4個(gè)盤,數(shù)據(jù)塊與校驗(yàn)塊之間交叉分布,最終每個(gè)盤上既有數(shù)據(jù)塊又有校驗(yàn)塊。
讀數(shù)據(jù)時(shí)A時(shí)從Disk 0 ,1 ,2 分別讀取到A1,A2,A3然后組合成A;如果此時(shí)有一塊磁盤比如Disk2 損壞,則會(huì)通過讀取到的A1、A2+ 校驗(yàn)碼算出A3,再組合生成數(shù)據(jù)A對(duì)外提供。
RAID 5 可以容忍一塊盤的損壞。
優(yōu)點(diǎn):讀的情況下是單盤數(shù)據(jù)的三倍;有一定的安全性,可以容忍損壞一塊磁盤
缺點(diǎn):由于每次寫數(shù)據(jù)都需要計(jì)算校驗(yàn)塊,導(dǎo)致寫性能下降;僅能容忍壞一塊磁盤損壞
RAID 6
RAID6
RAID6可以靈活設(shè)計(jì)數(shù)據(jù)庫(kù)和校驗(yàn)塊的比例,上圖中被設(shè)計(jì)成3個(gè)數(shù)據(jù)塊+2個(gè)校驗(yàn)塊的組合,增加了數(shù)據(jù)可靠性。RAID 6在備份的數(shù)據(jù)場(chǎng)景使用較多,提供的數(shù)據(jù)可靠性比RAID 5要高很多。
RAID 10
RAID10
首先把兩塊盤做鏡像,再按照RAID0的方式組合,既實(shí)現(xiàn)了數(shù)據(jù)的冗余又實(shí)現(xiàn)了性能翻倍的效果。RAID 1+0多適用于數(shù)據(jù)庫(kù)場(chǎng)景。
RAID 50
RAID50
先做成RAID5的組再組合成RAID0,兼顧RAID5和RAID0的特性。
RAID 60
RAID60
先做成RAID6的組合再組合成RAID0,兼顧RAID6和RAID0的特性。
各種組合之間的對(duì)比
RAID級(jí)別 | 冗余 | 空間利用率 | 讀性能 | 寫性能 | 最少磁盤數(shù) |
---|---|---|---|---|---|
RAID0 | 否 | 100% | *** | *** | 2 |
RAID1 | 是 | 50% | ** | ** | 2 |
RAID5 | 是 | 67-94% | *** | * | 3 |
RAID6 | 是 | 50-88% | ** | * | 4 |
RAID10 | 是 | 50% | ** | ** | 4 |
RAID50 | 是 | 67-94% | *** | * | 6 |
RAID60 | 是 | 50-88% | ** | * | 8 |
好了,今天的文章就到這里了,希望能對(duì)你有所幫助!