在centos6.9上實現軟RAID
在centos6.9上實現軟RAID
什麽是RAID?
RAID,全稱Redundant Arrays of Inexpensive(Independent)Disks。簡單翻譯叫磁盤陣列。
通俗一點講就是多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供。
目的有兩個:一個是提高磁盤的IO能力,提高耐用性。
實現方式有3種:
1、外接式磁盤陣列:通過擴展卡提供適配能力
2、內接式RAID:主板集成RAID控制器—安裝OS前在BIOS裏配置
3、軟件RAID:通過OS實現
實際生產場景中大部分是使用硬RAID,在教室試驗環境我們用軟RAID
常見的RAID級別
軟RAID管理工具
mdadm
-C:創建模式
-n:定義創建RAID設備個數
-l:指明要創建的RAID的級別
-c CHUNK_SIZE: 指明塊大小
-x : 指明空閑盤的個數
-A:裝配
-D:顯示RAID的詳細信息
-f:標記指定磁盤為損壞
-r:移除磁盤
-a:添加磁盤
觀察md的狀態:cat /proc/mdstat
RAID前的配置
1、檢查mdadm,我這裏已經安裝了mdadm的rpm包。如果沒安裝,使用yum -y install mdadm進行安裝。
2、磁盤準備,想要RAID必須使用相同容量的磁盤或者分區,我這裏先添加了7塊5G的磁盤
創建RAID0
1、創建RAID0最少只需要2塊硬盤,我們這裏選擇/dev/sdb和/dev/sdc,首先新建分區,更改分區ID為fd Linux raid auto。分完區需要partx -a /dev/sdb 同步一下。
2、創建RAID-0
-C /dev/md0 —–創建
-a yes —–同意一次性創建
-l 0 —–指定創建的級別
-n 2 —–指定磁盤數目
3、兩條查看狀態的命令
4、創建配置文件
mdadm -Ds /dev/md0 > /etc/mdadm.conf
5、格式化磁盤、掛載
mkfs.ext4 /dev/md0
mount /dev/md0 /mnt/raid0、
可以看到/dev/md0容量大小是9.7G,實際為10G,允許有些許誤差。
刪除raid-0
[[email protected] ~]#umount /mnt/raid0 <==取消掛載
[[email protected] ~]#mdadm -S /dev/md0 <==停止設備
mdadm: stopped /dev/md0
[[email protected] ~]#mdadm –zero-superblock /dev/sdb1 <==刪除raid信息
[[email protected] ~]#mdadm –zero-superblock /dev/sdc1
RAID-1
RAID1的步驟和方式與1相同(配置省略),但是由於RAID0並沒有容錯能力,其中一塊磁盤損壞,陣列就癱瘓。RAID1有相對的冗余能力,但是成本相對較高。
通過下圖看到/dev/md1的容量為5.2G,和RAID0相比少了一半。
RAID-5
1、創建raid5
mdadm -C /dev/md5 -a yes -n 3 -l 5 -x 1 /dev/sd[b,c,d,e]1 <==-x1 表示留一塊備用
mdadm -Ds /dev/md5 > /etc/mdadm.conf
mkdir /mnt/raid5
mount /dev/md5 /mnt/raid5
[[email protected] ~]#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 48G 4.9G 41G 11% /
tmpfs 491M 76K 491M 1% /dev/shm
/dev/sda3 39G 48M 37G 1% /app
/dev/sda1 969M 35M 885M 4% /boot
/dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.9_Final
/dev/md5 9.7G 23M 9.2G 1% /mnt/raid5 <==raid5的容量為(3-1)*5G
模擬磁盤損壞
之前的狀態
模擬sdb1損壞
mdadm /dev/md5 -f /dev/sdb1
/dev/sdb1損壞後,備用的/dev/sde1會自動補上,我們來看下狀態。重啟後會丟失。
mdadm /dev/md5 -a /dev/sdb1 <==重新添加進raid,多加的變成備用
比較一下RAID5上面的寫入能力,發現從63.3MB/s提升到317 MB/s,效果明顯。
[[email protected] ~]#dd if=/dev/zero of=/app/f1 bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 3.31538 s, 63.3 MB/s
[[email protected] ~]#dd if=/dev/zero of=/mnt/raid5/f1 bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 0.661708 s, 317 MB/s
在centos6.9上實現軟RAID