1、RAID簡介
redundant Arrays of Inexpensive Disks Independent
早期提高硬碟IO,主要通過 提高rpm,
scsi:達到15000轉
為多塊硬碟:提供獨立的控制器
1.提高IO能力
2.提高其耐用性
raid實作的方式
外接式磁盤陣列:通過擴充卡提供适配能力
内接式raid:主機闆內建raid控制器
配置在bios的raid控制器上的
software RAID:軟體方式實作的raid
//可以先安裝os獨立磁盤,後配置raid
//或者os安裝在raid上
提高IO能力:
磁盤并行讀寫;
為raid控制器額外添加記憶體,額外供電UPS
提高耐用性:
磁盤備援來實作
2、raid級别
raid-0,條帶卷,strio
raid-1,鏡像卷,mirror
...
raid-4 //4,5都是3塊以上,0,1是2塊以上
raid-5
raid-6
raid10
raid01
raid0:多塊硬碟平行組織,100%使用,無備份,n塊
一個資料分成n塊,然後分别存儲
讀寫性能提升
可用空間:N*min(disk1,disk2,disk3...) //最小的那塊決定
沒有冗錯能力
最少磁盤數:2,2+
<a href="https://s1.51cto.com/wyfs02/M00/9C/A4/wKioL1lz-iThht8yAAApNhZrfno929.png" target="_blank"></a>
raid1:2n塊磁盤,資料複制為兩份,分别分割為n分,分别存儲
讀性能提升,寫性能沒有提升/同一個資料存儲兩份
可用空間:2n/2*min(disk1,disk2...diskn)
有備援能力
<a href="https://s5.51cto.com/wyfs02/M00/9C/A4/wKioL1lz-kLjqIqZAABEpH7CPUo659.png" target="_blank"></a>
raid:4: 3塊以上的硬碟組織成raid,存儲資料時,一塊盤存儲校驗碼,其他存儲資料
校驗碼:異或存儲// 1101 0110 ,1011,
不允許2塊硬碟以上壞
假如一塊硬碟壞了以後仍然能夠工作:降級模式,讀取的時候需要換算恢複資料,比較慢,是以應立即添加新的硬碟恢複
//獨立一塊盤用于做集中校驗盤,壓力較大:缺陷
//但是可以降級工作,也可以
//raid可以做熱備,自動頂上去,raid控制器做的
<a href="https://s4.51cto.com/wyfs02/M01/9C/A4/wKioL1lz-sSSw9K_AAEiJYnOZOA669.png" target="_blank"></a>
raid:5 //輪流做校驗盤
可用空間:(N-1)*min(disk1,disk2,...)
有容錯能力,最多1塊磁盤
最小磁盤數:3
<a href="https://s1.51cto.com/wyfs02/M02/9C/A4/wKiom1lz-lqBi7mFAAEZFrD5VhE928.png" target="_blank"></a>
RAID-6://兩塊盤做校驗,循環校驗
可用空間:(N-2)*min(disk1,disk2,...)
有容錯能力,允許壞兩塊磁盤,
最少:4塊
<a href="https://s2.51cto.com/wyfs02/M02/9C/A4/wKiom1lz-xXDBQLxAAL88zE821Q741.png" target="_blank"></a>
raid10:先兩個一組做成raid1,然後做raid0//一對對10
可用空間:N*min(s1,s2...)/2
有容錯能力:每組鏡像最多隻能壞一塊
最少磁盤數:4,4+
raid01:先做0,再做1//一邊為0,一遍為0,整體為1
raid10:
0 0 0 //一個資料分成3份,3個chunk,一個chunk複制兩份,分别存儲
【】[] 【】[] 【】[]
raid01://中繼資料先複制成兩份,再分割成chunk
—————————— ————————————
[] [] [] 【】【】【】
<a href="https://s4.51cto.com/wyfs02/M02/9C/A4/wKioL1lz-9DzUIPyAATGKh65L7k409.png" target="_blank"></a>
raid7:為某公司的私有産品
JBOD:just a Bunch of Disks
//将多塊硬碟的空間合并為一個大的連續空間使用
可用空間:sum(s1,s2...)
//例如隻有1t的硬碟4個,檔案大小為2T
//
常用級别:raid-0,raid-1,raid-5,raid-10,raid-01,JBOD
實作方式:
硬體實作方式:
軟體實作方式:
Centos6 上的軟體RAID的實作
結合核心總的md(multi device)
3、軟體方式的raid實作
mdadm(multi device)模式化工具
指令的文法格式:mdadm [mode] 裝置名 [options] 成員裝置
支援的raid級别:LINEAR(JBOD),0,1,4,5,6,10,
裝置名:/dev/md#,
模式:
建立:create -C
裝配:Assemble -A
監控:Fllow or Monitor -F
管理:Manage -f,-r,-a
Grow:改變裝置的數目,不能改變陣列屬性,一般不用
Misc:查詢或修改陣列中裝置資訊,一般不用
-C 建立模式
-n # :使用多少裝置來建立RAID
-l # :raid級别
-a {yse|no} //自動建立raid裝置的裝置檔案
-c //CHUNK_SIZE 指定塊大小,預設是64M
-x //指定空閑盤的個數,不支援備援能力的級别,空閑盤是沒有任何意義的
示例:建立10G空間可用的raid5
fdisk /dev/sdb //建立4個5G的分區,調整為linux raid:fd,一個作為備份
parted -a /dev/sdb
mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sdb[1,2,3,5]
cat /proc/mdstat
mke2fs -t ext4 /dev/md0
mount /dev/md0 /mnt
mdadm -D /dev/md0 //顯示詳細資訊
State : clean, degraded //degraded:降級使用
mdadm /dev/md0 -f /dev/sdb2 //模拟損壞
watch -n 1 'mdadm -D /dev/md0' //每1s檢視一次
//會自動重組
mdadm /dev/md0 -f /dev/sdb1 //再次模拟一塊損壞,會降級使用
mdadm /dev/md0 -r /dev/sdb{1,2} //移除損壞的盤
mdadm /dev/md0 -a /dev/sdb{1,2} //再次添加硬碟
mdadm /dev/md0 -a /dev/sdb6 //新加一塊硬碟,隻會作為空閑盤使用,要想增加raid盤數量,智能使用mdadm grow模式
管理模式:
-f 标記指定磁盤為損壞
-a 添加磁盤
-r 移除磁盤
-S 停止裝置
mdadm -S /dev/md#
觀察md的狀态
cat /proc/mdstat
watch -n 1 'mdadm -D /dev/md0' //動态檢視
-n 重新整理間隔,機關是秒
練習1:建立一個可用空間為10G的RAID裝置,要求其chunk大小為128k,fs為ext4,開機自動挂載
(1)建立20G分區,
(2)格式化
mke2fs -t ext4 -b 2048 -L ’test' /dev/DEVICE
(3)fstab
LABEL='TEST' /test ext4 defaults,acl 0 0
(4)mount
練習2:建立一個可用空間為10G的RAID0裝置,chunk為256k,fs為ext4,開機自動挂載至/mydata
注意:
raid的備援,隻能保證裝置的損壞,而導緻的問題有所解決,而不能決定認為損壞的裝置
注意:JBOD也是一種硬體組合的實作方式,大家有興趣,也可以了解一下
本文轉自MT_IT51CTO部落格,原文連結:http://blog.51cto.com/hmtk520/1950135,如需轉載請自行聯系原作者