Linux系統中實現RAID卷詳解
在Linux系統中做RAID,磁碟陣列的裝置可以是一塊磁碟中的三個以上的分割槽,也可以是三塊或以上的磁碟。本文主要以幾塊磁碟為例,來實現在RAID5。
實驗環境:
系統中有一塊磁碟sda,新新增6塊SCSI磁碟,分別為sdb,sdc,sdd,sde,sdf,sdg,其中4塊作為磁碟陣列的裝置,1塊作為預備(spare)磁碟,還有1塊留作備用(用於擴充套件RAID)。
建立RAID5:
1.先檢視一下系統中磁碟裝置:fdisk -l
...顯示結果省略
2.接下來開始建立RAID了,主要會應用到mdadm命令,使用此命令需要先安裝RHEL6安裝光碟中自帶的mdadm包,如果沒有安裝,先進行安裝。
建立RAID5,命令如下:
[[email protected] /]# mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sd[b-f]
引數說明:
--create //表示要建立raid
--auto=yes /dev/md0 //新建立的軟體磁碟陣列裝置為md0,md序號可以為0-9
--level=5 //磁碟陣列的等級,這裡表示建立是的raid5
--raid-devices //新增作為磁碟陣列用的磁碟的塊數
--spare-devices //
/dev/sd[b-f] //磁碟陣列所使用的裝置,還可寫成/dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
另外這條命令也可以簡寫:
[[email protected] /]#mdadm -C /dev/md0 -l5 -n4 -x1 /dev/sd[b-f]
3.檢視RAID是否成功建立及是否正常執行,有兩種方法(當磁碟容量越大時,磁碟陣列構建的時間越長,所以可能需要等待很長時間才能看到以下資訊):
執行mdadm --detail/dev/md0 命令檢視RAID的詳細資訊:
檢視/proc/mdstat檔案,可以比較簡單明瞭的檢視RAID建立和執行的情況:
[[email protected] ~]#cat /proc/mdstat
S代表預備(spare)磁碟,4個U代表正常,出現_表示不正常
確認新建的RAID裝置
執行 mdadm -Q /dev/md0 //-Q用來查詢裝置資訊。
[[email protected] ~]#mdadm -Q /dev/md0
4.格式化並且掛載和使用建立的RAID:
[[email protected] ~]# mkfs.ext4 /dev/md0 [[email protected] ~]# mkdir /raid5 [[email protected] ~]# mount /dev/md0 /mnt/raid5
檢視一下新掛的RAID是否可以使用
5.設定開機自動啟動RAID以及自動掛載:
先建立/etc/mdadm.conf這個配置檔案
[[email protected] ~]# mdadm --detail /dev/md0 |grep UUID > /etc/mdadm.conf [[email protected] ~]# vi/etc/mdadm.conf ARRAY/dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805
然後再修改/etc/fstab檔案,設定開機自動掛載:
[[email protected] ~]# vi/etc/fstab /dev/md0 /mnt/raid5 ext4 defaults 0 0
然後再修改/etc/fstab檔案,設定開機自動掛載:
重啟一下系統,就可以檢查開機自動掛載有沒有設定成功了!
擴容raid磁碟陣列:
顯示磁碟陣列的組成情況,4個塊裝置組成,:
[[email protected] /]# cat /proc/mdstat
把/dev/sdg增加進陣列/dev/md0:
[[email protected] /]#mdadm --add /dev/md0 /dev/sdg
把raid5陣列/dev/md0修改為5個塊裝置:
[[email protected] /]#mdadm --grow/dev/md0 -n5
再顯示一下磁碟陣列的組成情況,現在/dev/md1是6個塊裝置組成,完成擴容,還需要7.7分鐘。
[[email protected] /]#cat /proc/mdstat
等待擴容完成.....
執行下列命令:
[[email protected] /]#resize2fs -f /dev/md0
驗證是否已經擴大容量:
[[email protected] /]#df -hT
驗證預備磁碟是否能正常工作:
模擬RAID5中一塊磁碟損壞,檢驗spare磁碟的功能(raid5中允許一塊磁碟損壞,我們所設定的那1塊spare磁碟會立即替代損壞的磁碟,進行RAID的重建,保障資料的安全):
先檢視一下/dev/md0當前的狀態
[[email protected] /]#mdadm --detail /dev/md0 [[email protected] /]#cat /proc/mdstat
使用以下命令設定磁碟sdd成為出錯狀態
[[email protected] ~]#mdadm --manage /dev/md0 --fail /dev/sdd
接下來再來檢視一下/dev/md0當前的狀態
[[email protected] /]#mdadm --detail /dev/md0 [[email protected] /]#cat /proc/mdstat
進入到RAID掛載的目錄raid5目錄下,發現raid還可以使用,說明預備磁碟工作正常。
[[email protected] /]#cd /raid5 [[email protected] /]#touch 1.txt [[email protected] /]#
將出錯的磁碟刪除並加入新的磁碟:
先刪除損壞的磁碟sdd,命令如下:
[[email protected] raid5]#mdadm --manage /dev/md0 --remove/dev/sdd
再新增一塊新的磁碟作為spare磁碟,命令如下:
[[email protected] raid5]#mdadm --manage /dev/md0 --add /dev/sdg
OK,再來執行以下命令檢視一下:
[[email protected] /]#mdadm --detail /dev/md0
關閉軟體RAID的方法:
當你不再需要已經設定的RAID的時候,可以用以下方法關閉RAID:
1、解除安裝/dev/md0,並且刪除或註釋掉/etc/fstab檔案中的配置:
[[email protected] ~]#umount /dev/md0 [[email protected] ~]#vi /etc/fstab #/dev/md0 /mnt/raid5 ext4 defaults 00
2、註釋掉或刪除/etc/mdadm.conf中的設定
[[email protected] ~]#vi /etc/mdadm.conf #ARRAY /dev/md0 UUID=d58ed27d:00ce5cf5:b26ed1e9:879d0805
3、停止raid裝置
[[email protected] ~]#mdadm --stop/dev/md0
4)刪除raid中的所有磁碟
[[email protected] ~]#mdadm --misc --zero-superblock /dev/sd[b-f]
這時候raid中的磁碟就刪除了,重啟後也不會有raid了。
RAID0和RAID1實同於RAID5
RAID0:並行讀寫資料(帶區卷)
RAID1:映象磁碟陣列(映象卷)