
簡單來說,RAID(磁盤陣列)把多個硬碟組合成為一個邏輯扇區,是以,作業系統隻會把它當作一個硬碟。RAID常被用在伺服器電腦上,并且常使用完全相同的硬碟作為組合。最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點。更多内容參考:RAID
陣列可以有陣列卡實作的硬陣列,也可以由作業系統提供支援的軟陣列。linux下的軟陣列用mdadm來管理。以下是針對CentOS的基本操作:
一、建立軟陣列一般分為3個步驟
1、産生組成單元
linux中軟陣列的組成單元是分區,且這個分區的系統識别碼必須設定成“fd linux raid autodetect”。可以用fdisk或pareted分區工具分區。
Device Boot Start End Blocks Id System
/dev/hdb1 1 195 98248+ fd Linux raid autodetect
/dev/hdb2 196 390 98280 fd Linux raid autodetect
2、建立磁盤陣列
mdadm -C /dev/md0 -l 1 -n 4 /dev/hd[bd][12]
#-C /dev/md0 建立名為md0的磁盤陣列裝置
#-l 1 陣列等級是raid1,可以建立0,5等其他磁盤陣列
#-n 4 組成單元有4個分區
#/dev/hd[bd][12] 組成單元是/dev/hdb1、/dev/hdb2、/dev/hdd1、/dev/hdd2
#格式化該磁盤陣列
mkfs -t ext3 /dev/md0
#挂載并設定/etc/fstab
mount /dev/md0 /data
echo "/dev/md0 /data ext3 defaults 1 2" >> /etc/fstab
3、mdadm.conf配置
/etc/mdadm.conf是centos下mdadm的預設配置檔案,系統啟動時會根據此配置檔案激活磁盤陣列及啟動陣列監控服務。此配置檔案可以參考/usr/share/doc/mdadm-2.6.9/mdadm.conf-example。配置很簡單,可以根據已經建立的磁盤陣列使用以下指令建立此檔案。
mdadm -Ds >> /etc/mdadm.conf
echo "MAILADDR [email protected]" >> /etc/mdadm.conf
#MAILADDR是管理者email,磁盤陣列出問題時會發郵件通知管理者。
cat /etc/mdadm.conf
#内容如下
ARRAY /dev/md0 level=raid1 num-devices=4 metadata=0.90 UUID=40d32084:7be6bc73:071b21a9:4d8afc12
MAILADDR [email protected]
二、管理磁盤陣列
1、檢視磁盤陣列資訊
#直接檢視/proc/mdstat
cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hdd2[3] hdd1[2] hdb2[1] hdb1[0]
98176 blocks [4/4] [UUUU]
#使用mdadm檢視
mdadm -D /dev/md0
2、處理硬碟故障
對于raid1,raid5這樣有容災能力的磁盤陣列來說,硬碟的故障不用太擔心。以下是處理硬碟故障一般步驟:
a.使用mdadm /dev/md0 -r /dev/hdb1 線上解除安裝故障硬碟的組成單元
b.實體拆除故障硬碟
c.安裝正常的硬碟并分區産生新的組成單元
d.使用mdadm /dev/md0 -a /dev/hdd3 線上加入新組成單元
#-f參數可以模拟磁盤故障
mdadm /dev/md0 -f /dev/hdb1
mdadm -D /dev/md0 |tail
UUID : 40d32084:7be6bc73:071b21a9:4d8afc12
Events : 0.4
Number Major Minor RaidDevice State
0 0 0 0 removed
1 3 66 1 active sync /dev/hdb2
2 22 65 2 active sync /dev/hdd1
3 22 66 3 active sync /dev/hdd2
4 3 65 - faulty spare /dev/hdb1
#線上解除安裝故障硬碟的組成單元
mdadm /dev/md0 -r /dev/hdb1
#線上加入新組成單元
mdadm /dev/md0 -a /dev/hdd3
mdadm -D /dev/md0 |tail
Spare Devices : 0
UUID : 40d32084:7be6bc73:071b21a9:4d8afc12
Events : 0.26
Number Major Minor RaidDevice State
0 22 67 0 active sync /dev/hdd3
1 3 66 1 active sync /dev/hdb2
2 22 65 2 active sync /dev/hdd1
3 22 66 3 active sync /dev/hdd2
3、啟用、停用磁盤陣列
#啟用
mdadm -A -s [MD_DEVICE]
#停用
mdadm --stop -s [MD_DEVICE]
4、監控磁盤陣列
啟動mdmonitor服務監控磁盤陣列,當磁盤陣列出現故障時會發郵件通知管理者,郵件儲存在/etc/mdadm.conf裡。
/etc/init.d/mdmonitor start
chkconfig mdmonitor on
#報警内容示例
This is an automatically generated mail message from mdadm
running on localhost.localdomain
A Fail event had been detected on md device /dev/md0.
It could be related to component device /dev/hdb1.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1]
md0 : active raid1 hdd2[3] hdd1[2] hdb2[1] hdb1[4](F)
98176 blocks [4/3] [_UUU]
unused devices:
5、删除磁盤陣列
删除磁盤陣列前必需做好備份。
umount /dev/md0
mdadm --stop -s /dev/md0
mdadm --zero-superblock /dev/hd[bd][123]
rm /etc/mdadm.conf
#删除磁盤陣列後必須修改/etc/fstab,以免開機無法挂載分區而無法啟動。