当阵列没有文件系统或者其他存储应用以及高级设备使用的话,可以使用--stop(或者其缩写-S)停止阵列;如果命令返回设备或者资源忙类型的错误,说明/dev/md0 正在被上层应用使用,暂时不能停止,必须要首先停止上层的应用,这样也能保证阵列上数据的一致性。
模式--assemble 或者其缩写(-A)主要是检查底层设备的元数据信息,然后再组装为活跃的阵列。如果我们已经知道阵列由那些设备组成,可以指定使用那些设备来启动阵列。
/etc/mdadm.conf 作为默认的配置文件,主要作用是方便跟踪软 RAID 的配置,尤其是可以配置监视和事件上报选项。Assemble 命令也可以使用--config(或者其缩写-c)来指定配置文件。我们通常可以如下命令来建立配置文件。
我们可以通过 cat /proc/mdstat 信息查看所有运行的 RAID 阵列的状态,在第一行中首先是MD的设备名,active 和 inactive 选项表示阵列是否能读写,接着是阵列的 RAID 级别,后面是属于阵列的块设备,方括号[]里的数字表示设备在阵列中的序号,(S)表示其是热备盘,(F)表示这个磁盘是 faulty 状态。在第二行中首先是阵列的大小,单位是 KB,接着是 chunk-size 的大小,然后是 layout 类型,不同 RAID 级别的 layout 类型不同,[6/6]和[UUUUUU]表示阵列有 6 个磁盘并且 6 个磁盘都是正常运行的,而[5/6]和[_UUUUU] 表示阵列有 6 个磁盘中 5 个都是正常运行的,下划线对应的那个位置的磁盘是 faulty 状态的。
#cat /proc/mdstat
4.5.4.4 管理阵列
mdadm 可以在 Manage 模式下,对运行中的阵列进行添加及删除磁盘。常用于标识 failed 磁盘,增加 spare(热备)磁盘,以及从阵列中移走已经失效的磁盘等等。使用--fail(或者其缩写-f)指定磁盘损坏。
# mdadm /dev/md0 --fail /dev/sdb
当磁盘已经损坏时,使用--remove(或者其缩写--f)参数将这个磁盘从磁盘阵列中移走;但如果设备还正在被阵列使用,则不能从阵列中移走。
# mdadm /dev/md0 --remove /dev/sdb
4.5.4.5 监控阵列
可以使用 mdadm 对 RAID 阵列进行监控,监控程序定时查询指定的事件是否发生,然后根据配置来妥善处理。
#mdadm --monitor --mail=root@localhost --program=/root/md.sh
--syslog --delay=300 /dev/md0 --daemonise
查看系统日志信息,可以看到哪个阵列或者阵列中的哪个设备发生过的哪些事件。
#mdadm -f /dev/md0 /dev/sdb
4.5.4.6 扩展阵列
如果在创建阵列时不想使用整个块设备,可以指定用于创建 RAID 阵列每个块设备使用的设备大小。
#dadm -CR /dev/md0 -l5 -n6 /dev/sd[b-g] -x1 /dev/sdh --size=102400
然后在阵列需要扩展大小时,使用模式--grow(或者其缩写-Q)以及--size 参数(或者其缩写-z) 在加上合适的大小数值就能分别扩展阵列所使用每个块设备的大小。
[root@fc5 mdadm-2.6.3]#./mdadm -Q /dev/md0
/dev/md0: 500.00MiB raid5 6 devices, 1 spare. Use mdadm --detail for more detail.
[root@fc5 mdadm-2.6.3]#./mdadm --grow /dev/md0 --size=204800
[root@fc5 mdadm-2.6.3]#cat /proc/mdstat
Personalities : [raid0] [raid10] [raid6] [raid5] [raid4]
md0 : active raid5 sdh[6](S) sdg[5] sdf[4] sde[3] sdd[2] sdc[1] sdb[0]
1024000 blocks level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU]
[============>......] resync = 69.6% (144188/204800) finish=0.0min speed=10447K/sec
unused devices: <none>
[root@fc5 mdadm-2.6.3]#./mdadm -Q /dev/md0
/dev/md0: 1000.00MiB raid5 6 devices, 1 spare. Use mdadm --detail for more detail.
4.5.4.7 Bitmap 记录
使用 bitmap 模式记录 RAID 阵列有多少个块已经同步(resync)。参数--bitmap(或者其缩写-b)指定记录 bitmap 信息的文件名,如果是 interval 参数表示 bitmap 记录在每个设备的元数据区。--bitmap-chunk 表示每个 bit 位代表 RAID 设备多大的数据块,单位是 KB;而--delay(或者其缩写-d)指定多长事件同步 bitmap 信息到文件或者设备上,单位是秒,默认是 5 秒。--force(或者其缩写)表示覆盖掉已经存在 bitmap 文件。而且使用参数--examine-bitmap(或者其缩写-X)能够查看存储在文件或者设备元数据中的 bitmap 记录的信息。
#mdadm -CR /dev/md1 -l1 -n2 /dev/sdi1 /dev/sdj1 --bitmap=internal