天天看點

linux 軟陣列管理:mdadm howto

linux 軟陣列管理:mdadm howto

       簡單來說,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,以免開機無法挂載分區而無法啟動。