一、環境
1.作業系統為CentOS4.4,mdadm軟體為系統內建的,版本1.6.0-3
2.hda安裝的是系統,sda、sdb、sdc、sdd四塊硬碟建立Raid5,其中sdd為熱備。
二、準備
1.首先需要將四塊SCSI硬碟格式化。敲入命令fdisk –l,系統顯示sda、sdb、sdc、sdd的一些資訊,並提示磁碟沒有包含一個有效分區表。
2.[root@centos /]# fdisk /dev/sda
Command (m for help): n #輸入字母n,添加一個新的分區。
Command action
e extended
p primary partition (1-4)
p #建立主要磁碟分割。
Partition number (1-4): 1 #可建立四個主要磁碟分割,此處輸入1,建立第一個。
First cylinder (1-1044, default 1): #因為是將硬碟分為一個區,所以預設斷行符號即可。
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
Using default value 1044
Command (m for help): t #更改分區的檔案系統ID。
Selected partition 1
Hex code (type L to list codes): fd #fd Linux raid auto
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): w #儲存退出
3.按照上步驟處理四塊硬碟,然後可以使用命令fdisk –l再次查看,可以看到四塊硬碟已經完成準備。
三、配置
1.建立raid非常簡單,只需要一條命令即可。
[root@centos /]# mdadm -C -v /dev/md0 -l5 -n3 /dev/sda1 /dev/sdb1 /dev/sdc1 -x1 /dev/sdd1
#參看協助mdadm --create --help
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: size set to 8388544K
mdadm: array /dev/md0 started.
[root@centos /]#
2.建立檔案系統為ext3
[root@centos /]# mkfs.ext3 /dev/md0
建立目錄/mnt/raid,掛載
[root@centos /]# mkdir /mnt/raid
[root@centos /]# mount /dev/md0 /mnt/raid
3.瞭解raid狀況
[root@centos /]# mdadm -D /dev/md0
4.啟動和停止
停止之前需要umount,然後mdadm –S /dev/md0
啟動:[root@centos /]# mdadm -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
如果已經建立了設定檔,啟動可使用命令mdadm –As /dev/md0
5.關於設定檔
系統中包含一個設定檔的範例/usr/share/doc/mdadm-1.6.0/mdadm.conf-example,可以參照建立/dev/mdadm.conf設定檔,也可通過命令mdadm –Ds查看詳情,然後使用vi編輯儲存文字檔
[root@centos /]# vi /etc/mdadm.conf
DEVICE /dev/sd[abcd]1
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=63cb965b:79486986:d389c551:67677f20
為使系統reboot後能夠自動掛載raid目錄,需要修改/etc/fstab檔案,加入如下一行:/dev/md0 /mnt/raid ext3 defaults 0 0
四、故障測試
1.測試前,在/mnt/radi下建立一個檔案使用
[root@centos raid]# ll / |tee ./ls.txt
mdadm內建命令可以標記某塊硬碟為損壞,參看協助mdadm --manage –h。
故障測試中,標記sda硬碟損壞
[root@centos /]# mdadm /dev/md0 -f /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
2.查看狀態
[root@centos /]# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdd1[3] sdc1[2] sdb1[1] sda1[4](F)
16771584 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
[====>................] recovery = 22.8% (1916928/8385792) finish=1.9min speed=55892K/sec
unused devices:
[root@centos /]#
因為sdd硬碟為熱備,系統顯示raid重構中,進度22.8%,且sda1標記(F)。
稍等再次查看:
[root@centos/]# more /proc/mdstat
Personalities : [raid5]
md0 : active raid5 sdd1[0] sdc1[2] sdb1[1] sda1[3](F)
16771584 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
unused devices:
[root@centos /]# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Fri Jun 1 13:00:31 2007
Raid Level : raid5
Array Size : 16771584 (15.99 GiB 17.17 GB)
Device Size : 8385792 (7.100 GiB 8.59 GB)
Raid Devices : 3