主頁 > 知識(shí)庫 > Linux中使用mdadm命令來操作RAID的基本教程

Linux中使用mdadm命令來操作RAID的基本教程

熱門標(biāo)簽:高德地圖標(biāo)注技術(shù) 天地圖標(biāo)注線 辦理400電話怎么申請(qǐng) 如何在地圖標(biāo)注多個(gè)位置 大眾點(diǎn)評(píng)公寓式酒店地圖標(biāo)注 滴滴洗衣店地圖標(biāo)注 靈圖uu電子服務(wù)區(qū)地圖標(biāo)注 微信地圖標(biāo)注在哪 慶陽便宜外呼系統(tǒng)報(bào)價(jià)

mdadm 用于建設(shè),管理和監(jiān)控RAID陣列

用法:

mdadm --create device options...
    用未使用的設(shè)備,創(chuàng)建raid選項(xiàng),
mdadm --assemble device options...
    合并先前創(chuàng)建的raid陣列。
mdadm --build device options...
    創(chuàng)建或合并沒有元數(shù)據(jù)的一個(gè)raid。
mdadm --manage device options...
    對(duì)現(xiàn)有陣列進(jìn)行更改
mdadm --misc options... devices
    報(bào)告或修改各種MD相關(guān)設(shè)備的。
mdadm --grow options device
    調(diào)整以激活的raid陣列
mdadm --incremental device
    從一個(gè)raid中,添加/刪除設(shè)備
mdadm --monitor options...
    監(jiān)視一個(gè)或多個(gè)raid陣列的變化
mdadm device options...
    --manage的簡(jiǎn)寫


mdadm --create 主要參數(shù)

    --auto=yes :決定建立后面接的軟體磁盤陣列設(shè)備,亦即/ dev/md0的,/ dev/md1上...
    --raid-devices=N :使用幾個(gè)磁盤 (partition) 作為磁盤陣列的設(shè)備
    --spare-devices=N :使用幾個(gè)磁盤作用磁盤陣列的備用設(shè)備
    --level=[015] :設(shè)置磁盤陣列的等級(jí),常用0,1,5

mdadm --manage 主要參數(shù)

    --add    :會(huì)將后面的設(shè)備加入到這個(gè)MD中!
    --remove :會(huì)將后面的設(shè)備由這個(gè)MD中移除
    --fail   :會(huì)將后面的設(shè)備設(shè)定成為出錯(cuò)的狀態(tài)

一、在linux系統(tǒng)中目前以MD(Multiple Devices)虛擬塊設(shè)備的方式實(shí)現(xiàn)軟件RAID,利用多個(gè)底層的塊設(shè)備虛擬出一個(gè)新的虛擬設(shè)備,并且利用條帶化(stripping)技術(shù)將數(shù)據(jù)塊均勻分布到多個(gè)磁盤上來提高虛擬設(shè)備的讀寫性能,利用不同的數(shù)據(jù)冗祭算法來保護(hù)用戶數(shù)據(jù)不會(huì)因?yàn)槟硞€(gè)塊設(shè)備的故障而完全丟失,而且還能在設(shè)備被替換后將丟失的數(shù)據(jù)恢復(fù)到新的設(shè)備上.
目前MD支持linear,multipath,raid0(stripping),raid1(mirror),raid4,raid5,raid6,raid10等不同的冗余級(jí)別和級(jí)成方式,當(dāng)然也能支持多個(gè)RAID陳列的層疊組成raid1 0,raid5 1等類型的陳列,
本文主要講解用戶層mdadm如何管理軟件RAID及使用中經(jīng)常遇到的問題及解決辦法.現(xiàn)流行的系統(tǒng)中一般已經(jīng)將MD驅(qū)動(dòng)模塊直接編譯到內(nèi)核中或編譯為可動(dòng)態(tài)加載的驅(qū)動(dòng)模塊,我們可以在機(jī)器啟動(dòng)后通過cat /proc/mdstat看內(nèi)核是否已經(jīng)加載MD驅(qū)動(dòng)或者cat /proc/devices是否有md塊設(shè)備,并且可以使用lsmod看MD是否可以模塊加載到系統(tǒng)中.

復(fù)制代碼
代碼如下:

[root@testggv ~]# cat /proc/mdstat
Personalities :
unused devices:
[root@testggv ~]#
[root@testggv ~]# cat /proc/devices | grep md
1 ramdisk
9 md
254 mdp
[root@testggv ~]#mdadm --version
[root@testggv ~]# mdadm --version
mdadm - v2.5.4 - 13 October 2006
[root@testggv ~]#

二、mdadm管理軟raid陳列
mdadm程序是一個(gè)獨(dú)立的程序,能完成所有的軟件raid管理功能,主要有7種使用模式:
Create
使用空閑的設(shè)備創(chuàng)建一個(gè)新的陣列,每個(gè)設(shè)備具有元數(shù)據(jù)塊
Assemble
將原來屬于一個(gè)陣列的每個(gè)塊設(shè)備組裝為陣列
Build
創(chuàng)建或組裝不需要元數(shù)據(jù)的陣列,每個(gè)設(shè)備沒有元數(shù)據(jù)塊
Manage
管理已經(jīng)存儲(chǔ)陣列中的設(shè)備,比如增加熱備磁盤或者設(shè)置某個(gè)磁盤失效,然后從陣列中刪除這個(gè)磁盤
Misc
報(bào)告或者修改陣列中相關(guān)設(shè)備的信息,比如查詢陣列或者設(shè)備的狀態(tài)信息
Grow
改變陣列中每個(gè)設(shè)備被使用的容量或陣列中的設(shè)備的數(shù)目
Monitor
監(jiān)控一個(gè)或多個(gè)陣列,上報(bào)指定的事件
如果MD驅(qū)動(dòng)被編譯到內(nèi)核中,當(dāng)內(nèi)核調(diào)用執(zhí)行MD驅(qū)動(dòng)時(shí),會(huì)自動(dòng)查找分區(qū)為FD(linux raid autodetect格式的磁盤。所以一般會(huì)使用fdisk工具將HD磁盤或者SD磁盤分區(qū),再設(shè)置為FD的磁盤。

復(fù)制代碼
代碼如下:

[root@testggv ~]# fdisk /dev/hdc
The number of cylinders for this disk is set to 25232.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-25232, default 1):
Using default value 1
Last cylinder or size or sizeM or sizeK (1-25232, default 25232):
Using default value 25232
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or
busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@testggv ~]#

如果MD驅(qū)動(dòng)是模塊形式加載,需要在系統(tǒng)運(yùn)行時(shí)由用戶層腳本控制RAID陳列啟動(dòng)運(yùn)行,如在FedoraCore系統(tǒng)中在/etc/rc.d/rc.sysinit文件中有啟動(dòng)軟RAID陣列的指令,若RAID的配置文件mdadm.conf存在,則調(diào)用mdadm檢查配置文件里的選項(xiàng),然后啟動(dòng)RAID陣列。

復(fù)制代碼
代碼如下:

echo "raidautorun /dev/md0" | nash --quiet
if [ -f /etc/mdadm.conf]; then
/sbin/mdadm -A -s

fi -A:指裝載一個(gè)已存在的陳列 -s: 指查找mdadm.conf文件中的配置信息。
手工停止盤陳:
復(fù)制代碼
代碼如下:
#mdadm -S /dev/md0

創(chuàng)建新的陳列
mdadm使用--create(或其縮寫-C)參數(shù)來創(chuàng)建新的陳列并且將一些重要陣列的標(biāo)識(shí)信息作為元數(shù)據(jù)可以寫在每一個(gè)底層設(shè)備的指定區(qū)間
--level(或者其縮寫-l)表示陣列的RAID級(jí)別
--chunk(或者其縮寫-c)表示每個(gè)條帶單元的大小,以KB為單位,默認(rèn)為64KB,條帶單元的大小配置對(duì)不同負(fù)載下的陣列讀寫性能有很大影響
--raid-devices(或者其縮寫-n)表示陣列中活躍的設(shè)備個(gè)數(shù)
--spare-devices(或者其縮寫-x)表示陣列中熱備盤的個(gè)數(shù),一旦陣列中的某個(gè)磁盤失效,MD內(nèi)核驅(qū)動(dòng)程序自動(dòng)用將熱備磁盤加入到陣列,然后重構(gòu)丟失磁盤上的數(shù)據(jù)到熱備磁盤上。

創(chuàng)建一個(gè)RAID 0設(shè)備:

復(fù)制代碼
代碼如下:

mdadm --create /dev/md0 --level=0 --chunk=32 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

創(chuàng)建一個(gè)raid 1設(shè)備:

復(fù)制代碼
代碼如下:

mdadm --create /dev/md0 --level=1 --chunk=128 --raid-devices=2 --spare-devices=1 /dev/sdb1 /dev/sdc1 /dev/sdd1

創(chuàng)建一個(gè)RAID5設(shè)備:

復(fù)制代碼
代碼如下:

mdadm --create /dev/md0 --level=5 --raid-devices=5 /dev/sd[c-g]1 --spare-devices=1 /dev/sdb1

創(chuàng)建一個(gè)RAID 10設(shè)備:

復(fù)制代碼
代碼如下:

mdadm -C /dev/md0 -l10 -n6 /dev/sd[b-g] -x1 /dev/sdh

創(chuàng)建一個(gè)RAID1 0設(shè)備:

復(fù)制代碼
代碼如下:

mdadm -C /dev/md0 -l1 -n2 /dev/sdb /dev/sdc
mdadm -C /dev/md1 -l1 -n2 /dev/sdd /dev/sde
mdadm -C /dev/md2 -l1 -n2 /dev/sdf /dev/sdg
mdadm -C /dev/md3 -l0 -n3 /dev/md0 /dev/md1 /dev/md2

初始化的時(shí)間長(zhǎng)短和磁盤陣列自身性能以及讀寫的應(yīng)用負(fù)載相關(guān),使用cat /proc/mdstat信息查詢RAID陣列當(dāng)前重構(gòu)的速度和預(yù)期的完成時(shí)間。

復(fù)制代碼
代碼如下:

cat /proc/mdstat
[root@fc5 mdadm-2.6.3]# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdh[6](S) sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0]
3145536 blocks 64K chunks 2 near-copies [6/6] [UUUUUU]
[===>...........] resync = 15.3% (483072/3145536) finish=0.3min speed=120768K/sec
unused devices:
[root@fc5 mdadm-2.6.3]# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdh[6](S) sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0]
3145536 blocks 64K chunks 2 near-copies [6/6] [UUUUUU]
unused devices:

使用陳列:
MD設(shè)備可以像普通塊設(shè)備那樣直接讀寫,也可以做文件系統(tǒng)格式化。

復(fù)制代碼
代碼如下:

#mke2fs -j /dev/md0
mkdir -p /mnt/md-test
#mount /dev/md0 /mnt/md-test

停止正在運(yùn)行的陳列:
當(dāng)陣列沒有文件系統(tǒng)或者其他存儲(chǔ)應(yīng)用以及高級(jí)設(shè)備使用的話,可以使用--stop(或者其縮寫-S)停止陣列;如果命令返回設(shè)備或者資源忙類型的錯(cuò)誤,說明/dev/md0正在被上層應(yīng)用使用,暫時(shí)不能停止,必須要首先停止上層的應(yīng)用,這樣也能保證陣列上數(shù)據(jù)的一致性。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm --stop /dev/md0
mdadm: fail to stop array /dev/md0: Device or resource busy
[root@fc5 mdadm-2.6.3]# umount /dev/md0
[root@fc5 mdadm-2.6.3]#./mdadm --stop /dev/md0

mdadm: stopped /dev/md02.3 組裝曾創(chuàng)建過的陣列模式--assemble或者其縮寫(-A)主要是檢查底層設(shè)備的元數(shù)據(jù)信息,然后再組裝為活躍的陣列。如果我們已經(jīng)知道陣列由那些設(shè)備組成,可以指定使用那些設(shè)備來啟動(dòng)陣列。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm -A /dev/md0 /dev/sd[b-h]

mdadm: /dev/md0 has been started with 6 drives and 1 spare.如果有配置文件(/etc/mdadm.conf)可使用命令mdadm -As /dev/md0。mdadm先檢查mdadm.conf中的DEVICE信息,然后從每個(gè)設(shè)備上讀取元數(shù)據(jù)信息,并檢查是否和ARRAY信息一致,如果信息一致則啟動(dòng)陣列。如果沒有配置/etc/mdadm.conf文件,而且又不知道陣列由那些磁盤組成,則可以使用命令--examine(或者其縮寫-E)來檢測(cè)當(dāng)前的塊設(shè)備上是否有陣列的元數(shù)據(jù)信息。[root@fc5 mdadm-2.6.3]# ./mdadm -E /dev/sdi

復(fù)制代碼
代碼如下:

mdadm: No md superblock detected on /dev/sdi.
[root@fc5 mdadm-2.6.3]# ./mdadm -E /dev/sdb
/dev/sdb:
Magic : a92b4efc
Version : 00.90.00
UUID : 0cabc5e5:842d4baa:e3f6261b:a17a477a
Creation Time : Sun Aug 22 17:49:53 1999
Raid Level : raid10
Used Dev Size : 1048512 (1024.11 MiB 1073.68 MB)
Array Size : 3145536 (3.00 GiB 3.22 GB)
Raid Devices : 6
Total Devices : 7
Preferred Minor : 0
Update Time : Sun Aug 22 18:05:56 1999
State : clean
Active Devices : 6
Working Devices : 7
Failed Devices : 0
Spare Devices : 1
Checksum : 2f056516 - correct
Events : 0.4
Layout : near=2, far=1
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 8 16 0 active sync /dev/sdb
0 0 8 16 0 active sync /dev/sdb
1 1 8 32 1 active sync /dev/sdc
2 2 8 48 2 active sync /dev/sdd
3 3 8 64 3 active sync /dev/sde
4 4 8 80 4 active sync /dev/sdf
5 5 8 96 5 active sync /dev/sdg
6 6 8 112 6 spare /dev/sdh

從上面命令結(jié)果可以找到陣列的唯一標(biāo)識(shí)UUID和陣列包含的設(shè)備名字,然后再使用上面的命令來組裝陣列,也可以使用UUID標(biāo)識(shí)來組裝陣列。沒有一致的元數(shù)據(jù)的信息設(shè)備(例如/dev/sda和/dev/sda1等)mdadm程序會(huì)自動(dòng)跳過。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm -Av --uuid=0cabc5e5:842d4baa:e3f6261b:a17a477a
/dev/md0 /dev/sd*
mdadm: looking for devices for /dev/md0
mdadm: no recogniseable superblock on /dev/sda
mdadm: /dev/sda has wrong uuid.
mdadm: no recogniseable superblock on /dev/sda1
mdadm: /dev/sda1 has wrong uuid.
mdadm: no RAID superblock on /dev/sdi
mdadm: /dev/sdi has wrong uuid.
mdadm: /dev/sdi1 has wrong uuid.
mdadm: no RAID superblock on /dev/sdj
mdadm: /dev/sdj has wrong uuid.
mdadm: /dev/sdj1 has wrong uuid.
mdadm: no RAID superblock on /dev/sdk
mdadm: /dev/sdk has wrong uuid.
mdadm: /dev/sdk1 has wrong uuid.
mdadm: /dev/sdb is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdc is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdd is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sde is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdf is identified as a member of /dev/md0, slot 4.
mdadm: /dev/sdg is identified as a member of /dev/md0, slot 5.
mdadm: /dev/sdh is identified as a member of /dev/md0, slot 6.
mdadm: added /dev/sdc to /dev/md0 as 1
mdadm: added /dev/sdd to /dev/md0 as 2
mdadm: added /dev/sde to /dev/md0 as 3
mdadm: added /dev/sdf to /dev/md0 as 4
mdadm: added /dev/sdg to /dev/md0 as 5
mdadm: added /dev/sdh to /dev/md0 as 6
mdadm: added /dev/sdb to /dev/md0 as 0
mdadm: /dev/md0 has been started with 6 drives and 1 spare.

配置文件:
/etc/mdadm.conf作為默認(rèn)的配置文件,主要作用是方便跟蹤軟RAID的配置,尤其是可以配置監(jiān)視和事件上報(bào)選項(xiàng)。Assemble命令也可以使用--config(或者其縮寫-c)來指定配置文件。我們通??梢匀缦旅顏斫?立配置文件

復(fù)制代碼
代碼如下:

#echo DEVICE /dev/sdc1 /dev/sdb1 /dev/sdd1 > /etc/mdadm.conf
#mdadm --detail --scan >> /etc/mdadm.conf

使用配置文件啟動(dòng)陣列時(shí),mdadm會(huì)查詢配置文件中的設(shè)備和陣列內(nèi)容,然后啟動(dòng)運(yùn)行所有能運(yùn)行RAID陣列。如果指定陣列的設(shè)備名字,則只啟動(dòng)對(duì)應(yīng)的陣列。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm -As
mdadm: /dev/md1 has been started with 3 drives.
mdadm: /dev/md0 has been started with 6 drives and 1 spare.
[root@fc5 mdadm-2.6.3]# cat /proc/mdstat
Personalities : [raid0] [raid10]
md0 : active raid10 sdb[0] sdh[6](S) sdg[5] sdf[4] sde[3] sdd[2] sdc[1]
3145536 blocks 64K chunks 2 near-copies [6/6] [UUUUUU]
md1 : active raid0 sdi1[0] sdk1[2] sdj1[1]
7337664 blocks 32k chunks
unused devices:
[root@fc5 mdadm-2.6.3]# ./mdadm -S /dev/md0 /dev/md1
mdadm: stopped /dev/md0
mdadm: stopped /dev/md1
[root@fc5 mdadm-2.6.3]# ./mdadm -As /dev/md0
mdadm: /dev/md0 has been started with 6 drives and 1 spare.
[root@fc5 mdadm-2.6.3]# cat /proc/mdstat
Personalities : [raid0] [raid10]
md0 : active raid10 sdb[0] sdh[6](S) sdg[5] sdf[4] sde[3] sdd[2] sdc[1]
3145536 blocks 64K chunks 2 near-copies [6/6] [UUUUUU]
unused devices:

查詢陣列的狀態(tài)
我們可以通過cat /proc/mdstat信息查看所有運(yùn)行的RAID陣列的狀態(tài),在第一行中首先是MD的設(shè)備名,active和inactive選項(xiàng)表示陣列是否能讀寫,接著是陣列的RAID級(jí)別,后面是屬于陣列的塊設(shè)備,方括號(hào)[]里的數(shù)字表示設(shè)備在陣列中的序號(hào),(S)表示其是熱備盤,(F)表示這個(gè)磁盤是faulty狀態(tài)。在第二行中首先是陣列的大小,單位是KB,接著是chunk-size的大小,然后是layout類型,不同RAID級(jí)別的layout類型不同,[6/6]和[UUUUUU]表示陣列有6個(gè)磁盤并且6個(gè)磁盤都是正常運(yùn)行的,而[5/6]和[_UUUUU] 表示陣列有6個(gè)磁盤中5個(gè)都是正常運(yùn)行的,下劃線對(duì)應(yīng)的那個(gè)位置的磁盤是faulty狀態(tài)的。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid1]
md0 : active raid5 sdh[6](S) sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0]
5242560 blocks level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU]
unused devices:
[root@fc5 mdadm-2.6.3]# ./mdadm /dev/md0 -f /dev/sdh /dev/sdb
mdadm: set /dev/sdh faulty in /dev/md0
mdadm: set /dev/sdb faulty in /dev/md0
[root@fc5 mdadm-2.6.3]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid1]
md0 : active raid5 sdh[6](F) sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[7](F)
5242560 blocks level 5, 64k chunk, algorithm 2 [6/5] [_UUUUU]
unused devices:

我們也可以通過mdadm命令查看指定陣列的簡(jiǎn)要信息(使用--query或者其縮寫-Q)和詳細(xì)信息(使用--detail或者其縮寫-D) 詳細(xì)信息包括RAID的版本、創(chuàng)建的時(shí)間、RAID級(jí)別、陣列容量、可用空間、設(shè)備數(shù)量、超級(jí)塊狀態(tài)、更新時(shí)間、UUID信息、各個(gè)設(shè)備的狀態(tài)、RAID算法級(jí)別類型和布局方式以及塊大小等信息。設(shè)備狀態(tài)信息分為active, sync, spare, faulty, rebuilding, removing等等。

復(fù)制代碼
代碼如下:

root@fc5 mdadm-2.6.3]# ./mdadm --query /dev/md0
/dev/md0: 2.100GiB raid10 6 devices, 1 spare. Use mdadm --detail for more detail.
[root@fc5 mdadm-2.6.3]# ./mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Sun Aug 22 17:49:53 1999
Raid Level : raid10
Array Size : 3145536 (3.00 GiB 3.22 GB)
Used Dev Size : 1048512 (1024.11 MiB 1073.68 MB)
Raid Devices : 6
Total Devices : 7
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Sun Aug 22 21:55:02 1999
State : clean
Active Devices : 6
Working Devices : 7
Failed Devices : 0
Spare Devices : 1
Layout : near=2, far=1
Chunk Size : 64K
UUID : 0cabc5e5:842d4baa:e3f6261b:a17a477a
Events : 0.122
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
4 8 80 4 active sync /dev/sdf
5 8 96 5 active sync /dev/sdg
6 8 112 - spare /dev/sdh

管理陣列
mdadm可以在Manage模式下,對(duì)運(yùn)行中的陣列進(jìn)行添加及刪除磁盤。常用于標(biāo)識(shí)failed磁盤,增加spare(熱備)磁盤,以及從陣列中移走已經(jīng)失效的磁盤等等。使用--fail(或者其縮寫-f)指定磁盤損壞。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm /dev/md0 --fail /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0

當(dāng)磁盤已經(jīng)損壞時(shí),使用--remove(或者其縮寫--f)參數(shù)將這個(gè)磁盤從磁盤陣列中移走;但如果設(shè)備還正在被陣列使用,則不能從陣列中移走。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm /dev/md0 --remove /dev/sdb
mdadm: hot removed /dev/sdb
[root@fc5 mdadm-2.6.3]# ./mdadm /dev/md0 --remove /dev/sde
mdadm: hot remove failed for /dev/sde: Device or resource busy

如果陣列帶有spare磁盤,那么自動(dòng)將損壞磁盤上的數(shù)據(jù)重構(gòu)到新的spare磁盤上;

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm -f /dev/md0 /dev/sdb ; cat /proc/mdstat
mdadm: set /dev/sdb faulty in /dev/md0
Personalities : [raid0] [raid10]
md0 : active raid10 sdh[6] sdb[7](F) sdc[0] sdg[5] sdf[4] sde[3] sdd[2]
3145536 blocks 64K chunks 2 near-copies [6/5] [U_UUUU]
[=======>........] recovery = 35.6% (373888/1048512) finish=0.1min speed=93472K/sec
unused devices:

如果陣列沒有熱備磁盤,可以使用--add(或者其縮寫-a)參數(shù)增加熱備磁盤

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]# ./mdadm /dev/md0 --add /dev/sdh
mdadm: added /dev/sdh

監(jiān)控陣列
可以使用mdadm對(duì)RAID陣列進(jìn)行監(jiān)控,監(jiān)控程序定時(shí)查詢指定的事件是否發(fā)生,然后根據(jù)配置來妥善處理。例如當(dāng)陣列中的磁盤設(shè)備出現(xiàn)問題的時(shí)候,可以發(fā)送郵件給管理員;或者當(dāng)磁盤出現(xiàn)問題的時(shí)候由回調(diào)程序來進(jìn)行自動(dòng)的磁盤替換,所有監(jiān)控事件都可以記錄到系統(tǒng)日志中。目前mdadm支持的事件有RebuildStarted, RebuildNN(NN is 20, 40, 60, or 80), RebuildFinished, Fail,FailSpare,SpareActive,NewArray, DegradedArray, MoveSpare, SparesMissing, TestMessage。
如果配置每300秒mdadm監(jiān)控進(jìn)程查詢MD設(shè)備一次,當(dāng)陣列出現(xiàn)錯(cuò)誤,會(huì)發(fā)送郵件給指定的用戶,執(zhí)行事件處理的程序并且記錄上報(bào)的事件到系統(tǒng)的日志文件。使用--daemonise參數(shù)(或者其縮寫-f)使程序持續(xù)在后臺(tái)運(yùn)行。如果要發(fā)送郵件需要sendmail程序運(yùn)行,當(dāng)郵件地址被配置為外網(wǎng)地址應(yīng)先測(cè)試是否能發(fā)送出去。

復(fù)制代碼
代碼如下:

[root@fc5 mdadm-2.6.3]#./mdadm --monitor --mail=root@localhost --program=/root/md.sh
--syslog --delay=300 /dev/md0 --daemonise

標(biāo)簽:九江 優(yōu)質(zhì)穩(wěn)定 昌都 海東 孝感 臺(tái)州 哈密 玉樹

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux中使用mdadm命令來操作RAID的基本教程》,本文關(guān)鍵詞  Linux,中,使用,mdadm,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux中使用mdadm命令來操作RAID的基本教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux中使用mdadm命令來操作RAID的基本教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章