Mdadm详解

1.1 mdadm定义

     mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown。众所周知,raidtools是Linux下一款经典的用于管理软件RAID的工具,但是因为配置/etc/raidtab比较繁琐,而且其功能有限,所以现在越来越多的人选择mdadm。和 raidtools 相比,mdadm是一个单独集成化的程序而不是一些分散程序的集合,因此对不同RAID管理命令有共通的语法 ,不仅能够诊断、监控和收集详细的阵列信息 ,而且能够执行几乎所有的功能而不需要配置文件(也没有默认的配置文件)。当然,如果需要一个配置文件,mdadm将帮助管理它的内容。

1.2  mdadm用法

基本语法: mdadm [mode] <raid-device> [options] <component-devices>

目前支持: LINEAR, RAID0(striping), RAID1(mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH和FAULTY

1.3 mdadm的工作模式:

Assemble:加入一个以前定义的阵列

Build:创建一个没有超级块的阵列

Create:创建一个新的阵列,每个设备具有超级块

Manage: 管理阵列(如添加和删除)

Misc:允许单独对阵列中的某个设备进行操作(如停止阵列)

Follow or Monitor:监控RAID的状态

Grow:改变RAID的容量或阵列中的设备数目

选项:
-A, --assemble:加入一个以前定义的阵列
-B, --build:创建一个没有超级块的阵列(Build a legacy array without superblocks.)
-C, --create:创建一个新的阵列
-F, --follow, --monitor:选择监控(Monitor)模式
-G, --grow:改变激活阵列的大小或形态
-I, --incremental:添加一个单独的设备到合适的阵列,并可能启动阵列
--auto-detect:请求内核启动任何自动检测到的阵列
-h, --help:帮助信息,用在以上选项后,则显示该选项信息
--help-options:显示更详细的帮助
-V, --version:打印mdadm的版本信息
-v, --verbose:显示细节
-b, --brief:较少的细节。用于 --detail 和 --examine 选项
-Q, --query:查看一个device,判断它为一个 md device 或是 一个 md 阵列的一部分
-D, --detail:打印一个或多个 md device 的详细信息
-E, --examine:打印 device 上的 md superblock 的内容
-c, --config= :指定配置文件,缺省为 /etc/mdadm.conf
-s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息。配置文件/etc/mdadm.conf

- n, raid设备=指定数组中活动设备的数量1.4 mdadm创建RAID 5


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

# mdadm --create --verbose /dev/md0 --level=raid5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde --spare-devices=1 /dev/sdf
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

接下来我们使用cat /proc/mdstat命令来查看一下RAID的状态,我们也可以利用watch命令来每隔一段时间刷新/proc/mdstat的输出。使用CTRL+C可以取消。

[root@localhost mdadm-2.6.2]# watch -n 0.5 'cat /proc/mdstat'

cat /proc/mdstat

1.5 创建文件系统:

# mkfs.ext3 /dev/md0

挂载  mount /dev/md0 /mnt/md0

起动自动运行文件 /etc/fstab,使用mdadm --detail /dev/md0(或mdadm -D /dev/md0)命令以及cat /proc/mdstat命令可以查看RAID设备的状态

# mdadm -D /dev/md0  (或mdadm --detail /dev/md0)
/dev/md0:
自动创建/etc/mdadm.conf文件。没有该文件在激活阵列时我们就得指定更详细的信息,为方便,我们使用下列命令:

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

# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=4b15050e:7d0c477d:98ed7d00:0f3c29e4

1.6 启动停止RAID

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

# umount /mnt/md0
# mdadm -S /dev/md0  (或mdadm --stop /dev/md0)
mdadm: stopped /dev/md0

重新启动可以使用:

# mdadm -As /dev/md0