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