首页 > 代码库 > mdadm使用详解

mdadm使用详解

★mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown

我们知道raidtools是Linux下一款经典的用于管理软件 RAID 的工具,但是因为配置/etc/raidtab比较繁琐,而且其功能有限,所以现在越来越多的人选择mdadm。

★mdadm 和 raidtools 主要有以下几点不同:

mdadm能够诊断、监控和收集详细的阵列信息
mdadm是一个单独集成化的程序而不是一些分散程序的集合,因此对不同RAID管理命令有共通的语法
mdadm能够执行几乎所有的功能而不需要配置文件(也没有默认的配置文件)
当然,如果需要一个配置文件,mdadm将帮助管理它的内容

★基本语法:

mdadm [mode] <raid-device> [options] <component-devices>

★目前支持:

LINEAR, RAID0(striping), RAID1(mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH和FAULTY

★模式(7种):
Assemble:加入一个以前定义的阵列
Build:创建一个没有超级块的阵列
Create:创建一个新的阵列,每个设备具有超级块
Manage: 管理阵列(如添加和删除)
Misc:允许单独对阵列中的某个设备进行操作(如停止阵列)
Follow or Monitor:监控RAID的状态
Grow:改变RAID的容量或阵列中的设备数目

★接下来我们使用mdadm创建在/dev/md0上创建一个由sdb、sdc、sdd3块盘组成(另外1块盘sde为热备)的RAID5:

# mdadm --create --verbose /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd --spare-devices=1 /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 64K
mdadm: size set to 8388544K
mdadm: array /dev/md0 started.

★每个mdadm的选项都有一个缩写的形式,例如,上面我们创建RAID 5的命令可以使用下列的缩写形式:

# mdadm -Cv /dev/md0 -l5 -n3 /dev/sdb /dev/sdc /dev/sdd -x1 /dev/sde

★查看RAID状态

接下来我们使用cat /proc/mdstat命令来查看一下RAID的状态,我们也可以利用watch命令来每隔一段时间刷新/proc/mdstat的输出。使用CTRL+C可以取消。
# cat /proc/mdstats
# mdadm --detail /dev/md0
# mdadm -D /dev/md0
# watch -n 10 ‘cat /proc/mdstat‘

★接下来我们为阵列创建文件系统:

# mkfs.ext3 /dev/md0

★一般来说,一个新阵列被创建后我们最好创建一个/etc/mdadm.conf文件。没有该文件在激活阵列时我们就得指定更详细的信息,为方便,我们使用下列命令:

# mdadm --detail --scan >> /etc/mdadm.conf
[root@localhost eric4ever]# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=4b15050e:7d0c477d:98ed7d00:0f3c29e4

★启动停止RAID

使用--stop或-S命令选项可以停止运行的阵列(注意: 停止前必须先umount):
# umount /mnt/md0
# mdadm -S /dev/md0 (或mdadm --stop /dev/md0)
mdadm: stopped /dev/md0

★重新启动可以使用:

# mdadm -As /dev/md0
mdadm: /dev/md0 has been started with 3 drives and 1 spare.

★接下来我们模拟/dev/sdb故障:

# mdadm --manage --set-faulty /dev/md0 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
# mdadm --detail /dev/md0
/dev/md0:
Rebuild Status : 3% complete
Number Major Minor RaidDevice State
0 8 16 0 faulty spare /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 spare rebuilding /dev/sde
★这时我们可以从/dev/md0中移除/dev/sdb设备:

# mdadm /dev/md0 -r /dev/sdb
mdadm: hot removed /dev/sdb


★类似地,我们可以使用下列命令向/dev/md0中添加一个设备:

# mdadm /dev/md0 --add /dev/sdf

★监控RAID

mdadm的监控模式提供一些实用的功能,你可以使用下列命令来监控/dev/md0,delay参数意味着检测的时间间隔,这样紧急事件和严重的错误会及时发送给系统管理员:

# mdadm --monitor --mail=eric4ever@localhost --delay=300 /dev/md0