RAID:Redundant Arrays of Independent Disks,英翻中的意思爲:獨立容錯式磁盤陣列,舊稱爲容錯式廉價磁盤陣列。安全
RAID 能夠經過一個技術(軟件或硬件),將多個較小的磁盤整合成爲一個較大的磁盤設備; 而這個較大的磁盤功能可不止是儲存而已,他還具備數據保護的功能呢。整個 RAID 因爲選擇的等級 (level) 不一樣,而使得整合後的磁盤具備不一樣的功能,基本常見的 level 有這幾種:服務器
RAID0spa
等量模式,須要至少兩塊磁盤組成。這種模式若是使用相同型號與容量的磁盤組成時,效果較佳。這種模式的RAID會將磁盤先切出等量的區塊 (名爲chunk,通常可設置 4K~1M 之間), 而後當一個文件要寫入 RAID 時,該文件會依據 chunk 的大小切割好,以後再依序放到各個磁盤裏面去。因爲每一個磁盤會交錯的存放數據, 所以當你的數據要寫入 RAID 時,數據會被等量的放置在各個磁盤上面。舉例來講,你有兩塊磁盤組成 RAID-0 , 當你有 100MB 的數據要寫入時,每一個磁盤會各被分配到 50MB 的儲存量。ip
RAID1md5
映像模式,完整備份。這種模式也是須要相同磁盤容量的,最好是如出一轍的磁盤,若是是不一樣容量的磁盤組成RAID1,那麼總容量將以最小的那一塊磁盤爲主!這種模式主要是讓同一份數據,完整的保存在兩塊磁盤上。舉例來講,若是我有一個 100MB 的文件,且我僅有兩塊磁盤組成 RAID-1 時, 那麼這兩塊磁盤將會同步寫入 100MB 到他們的儲存空間去。 所以,總體 RAID 的容量幾乎少了 50%。因爲兩塊硬盤內容如出一轍,好像鏡子映照出來同樣, 因此咱們也稱他爲 mirror 模式。ci
RAID5同步
效能與數據備份的均衡考慮。RAID-5 至少須要三塊以上的磁盤纔可以組成這種類型的磁盤陣列。這種磁盤陣列的數據寫入有點相似 RAID-0 , 不過每一個循環的寫入過程當中 (striping),在每塊磁盤還加入一個同位檢查數據 (Parity) ,這個數據會記錄其餘磁盤的備份數據, 用於當有磁盤損毀時的救援。每一個循環寫入時,都會有部分的同位檢查碼(parity)被記錄起來,而且記錄的同位檢查碼每次都記錄在不一樣的磁盤, 所以,任何一個磁盤損毀時都可以藉由其餘磁盤的檢查碼來重建本來磁盤內的數據!不過須要注意的是, 因爲有同位檢查碼,所以 RAID 5 的總容量會是總體磁盤數量減一塊。本來的 3 塊磁盤只會剩下 (3-1)=2 塊磁盤的容量。並且當損毀的磁盤數量大於等於兩塊時,這整組 RAID 5 的資料就損毀了。 由於 RAID 5 默認僅能支持一塊磁盤的損毀狀況。it
RAID10table
RAID0的效能佳可是數據不安全,RAID1 的數據安全可是效能不佳,那麼能不能將這二者整合起來設置 RAID 呢? 能夠!那就是 RAID 1+0 或 RAID 0+1。所謂的 RAID 1+0 就是: (1)先讓兩塊磁盤組成 RAID 1,而且這樣的設置共有兩組; (2)將這兩組 RAID1 再組成一組 RAID0。這就是 RAID10 !反過來講,RAID01 就是先組成 RAID-0 再組成 RAID-1 的意思。軟件
各類RAID的優缺點:
項目 |
RAID0 |
RAID1 |
RAID10 |
RAID5 |
最少磁盤數 |
2 |
2 |
4 |
3 |
最大容錯磁盤數(1) |
無 |
n-1 |
n/2 |
1 |
數據安全性(1) |
徹底沒有 |
最佳 |
最佳 |
好 |
理論寫入效能(2) |
n |
1 |
n/2 |
<n-1 |
理論讀出效能(2) |
n |
n |
n |
<n-1 |
可用容量(3) |
n |
1 |
n/2 |
n-1 |
通常應用 |
強調效能但數據不重要的環境 |
資料與備份 |
服務器、雲系統經常使用 |
資料與備份 |
磁盤列陣的管理(以軟件爲例)
mdadm
建立RAID
語法:mdadm -c raid設備名 -l raid等級 -n磁盤數量 實體設備名
示例:mdadm -c /dev/md5 -l 5 -n 3 /dev/sdb{5,6,7},建立RAID5
建立RAID後,編輯/etc/mdadm.conf,將RAID的UUID信息記錄到配置文件裏去
ARRAY /dev/md5 UUID=xxxxxxxxxxxxxxxxxx
選項
-X 建立備份盤
-S 中止RAID
-A 再次啓用RAID
-a 添加一塊磁盤到RAID中
-r 將設備從RAID中移除
查看RAID狀態
mdadm -D raid名或者cat /proc/mdstat
格式化
mkfs.ext4 /dev/md5
掛載
mount /dev/md5 /mnt/md5