什么是mdadmmdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具。
创建 Raid 5 软队列 创建5个磁盘分区(hda8,hda9,hda10,hda11,hda12),并更改 ID 号为 fd ,保存退出。 不要格式化这四个分区。 应用分区 #partprobe /dev/hda 创建三个磁盘的Raid5 #mdadm –Cv /dev/md0 -l5 –n3 /dev/hda8 /dev/hda9 /dev/hda10 -X1 /dev/hda11 创建 Raid级别 分区数量 热备 格式化分区 #mkfs.ext3 /dev/md0 挂载使用 软Raid 的维护 查看Raid运行状态 #mdadm --detail /dev/md0 [root@rhel1 mnt]# mdadm --detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Thu Sep 16 13:02:34 2010 Raid Level : raid5 Array Size : 112256 (109.64 MiB 114.95 MB) Used Dev Size : 56128 (54.82 MiB 57.48 MB) Raid Devices : 3 Total Devices : 5 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Sep 16 13:39:33 2010 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 64K UUID : 6a436bf5:c60469fc:e8b3f3e4:49f306e5 Events : 0.20 Number Major Minor RaidDevice State 0 3 8 0 active sync /dev/hda8 1 3 9 1 active sync /dev/hda9 2 3 11 2 active sync /dev/hda11 3 3 10 - spare /dev/hda10 4 3 12 - faulty spare /dev/hda12 我们可以查看RAID的版本、创建的时间、RAID级别、阵列容量、可用空间、设备数量、超级块、更新时间、各个设备的状态、RAID算法以及块大小等信息。 我们还可以用下面的方式实时查看: watch命令每个30秒刷新一下查看的进度: # watch -n 30 'cat /proc/mdstat' 配置mdadm.conf( #mdadm –-detail –-scan >/etc/mdadm.conf 启动停止RAID 使用--stop或-S命令选项可以停止运行的阵列(注意: 停止前必须先umount): # umount /mnt/md0 # mdadm -S /dev/md0 (或mdadm --stop /dev/md0) mdadm: stopped /dev/md0 重新启动可以使用(必须先配置好mdadm.conf): # mdadm -As /dev/md0 如果未配置mdadm.conf 就要指明分区 #mdadm –A /dev/md0 /dev/hda{8,9,10,11,12} 如果具体不知道某个设备或分区属于哪个阵列 可使用如下方式来测试查找: #mdadm –E /dev/hda12 添加或删除设备/分区 常用于标识failed 磁盘,增加spare磁盘,以及替换磁盘等。 标识坏磁盘--fail ,并移走—remove #mdadm /dev/md0 –-fail /dev/hda8 --remove /dev/hda8 注意Raid 0 是不能这样做的。 增加一个新的陈列磁盘 #mdadm /dev/md0 –add /dev/hda8 实时监控 在monitor状态下: nohup mdadm –monitor --mail=root --delay=100 /dev/md0 & 上述定义:每100秒监控一次,当陈列出现错误时,会发送邮件给root用户。 由于monitor 启动后是不会自动退出的,所以需要加上nohup 和&,使之持续在后台运行。 在Follow模式下,是允许共享冗余磁盘的。 例如,我们有两个阵列:/dev/md0、/dev/md1,而/dev/md0里面有一个spare磁盘。当我们在/etc/mdadm.conf中定义类似: DEVICE /dev/sd* ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=database UUID=410a299e:4cdd535e:169d3df4:48b7144a ARRAY /dev/md1 level=raid1 num-device=2 spare-group=database UUID=59b6e564:739d4d28:ae0aa308:71147fe7 也就是定义一个spare-group组。并运行上面的monitor模式命令。这样,当组成/dev/md1的其中一个磁盘出现问题的时候,mdadm会自动从/dev/md0上移走spare磁盘,并加入/dev/md1中,而不需要人工干预 。(请注意,能实现这样工作的,只有在该阵列支持冗余的情况下才能实现,如raid1、raid5等。而对于raid0等阵列模式,是无效的) 增加spare磁盘 可以通过在创建的时候指定冗余磁盘: mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd{b,c,d}1 -x(--spare-devices)参数用于指定冗余磁盘的数量 另外,对于full的阵列(例如已经有2个磁盘的RAID1),则直接使用- -add参数,mdadm会自动把冗余的磁盘作为spare disk。 删除阵列 mdadm -S /dev/md0 或 rm /dev/md0 修改/etc/mdadm.conf、/etc/fstab等配置文件,把相关的地方去掉; 最后,用fdisk对磁盘进行重新分区即可。