1. 程式人生 > >Linux系統中實現RAID卷詳解

Linux系統中實現RAID卷詳解

   在Linux系統中做RAID,磁碟陣列的裝置可以是一塊磁碟中的三個以上的分割槽,也可以是三塊或以上的磁碟。本文主要以幾塊磁碟為例,來實現在RAID5

實驗環境:

   系統中有一塊磁碟sda,新新增6SCSI磁碟,分別為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  //新建立的軟體磁碟陣列裝置為md0md序號可以為0-9

--level=5            //磁碟陣列的等級,這裡表示建立是的raid5

--raid-devices       //新增作為磁碟陣列用的磁碟的塊數

--spare-devices      //

新增作為預備(spare)磁碟的塊數

/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的詳細資訊:

110353744.jpg

檢視/proc/mdstat檔案,可以比較簡單明瞭的檢視RAID建立和執行的情況:

[[email protected] ~]#cat /proc/mdstat

S代表預備(spare)磁碟,4U代表正常,出現_表示不正常

確認新建的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是否可以使用

111248860.jpg

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/md16個塊裝置組成,完成擴容,還需要7.7分鐘。

[[email protected] /]#cat /proc/mdstat

等待擴容完成.....

執行下列命令:

[[email protected] /]#resize2fs -f /dev/md0

驗證是否已經擴大容量:

[[email protected] /]#df -hT

驗證預備磁碟是否能正常工作:

   模擬RAID5中一塊磁碟損壞,檢驗spare磁碟的功能(raid5中允許一塊磁碟損壞,我們所設定的那1spare磁碟會立即替代損壞的磁碟,進行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了。

RAID0RAID1實同於RAID5

RAID0:並行讀寫資料(帶區卷)

RAID1:映象磁碟陣列(映象卷)