安装程式实现软件RAID代替硬件RAID的方法,今天再进一步谈谈手动建立软RAID和平常维护的方法。
mdadm使用的也是md驱动,因为其拥有多种模式,并且单一工具,不依赖全部设置文件,是替代raidtools的好工具。目前几乎全部发行版本使用的都是该工具。
1、安装和编译
×××:
http://www.cse.unsw.edu.au/~neilb/source/mdadm/
编译:
tar xzvf ./mdadm-1.6.0.tgz
cd mdadm-1.6.0
make install
rpm安装:
rpm -ivh mdadm-1.6.0-3.rpm
※源码最新版本是2.5,因为我使用的1.6.0的rpm包,因此仍是以该版本为例。
2、模式
mdadm 有6种模式,前两种模式:Create、Assemble用于设置和激活阵列;Manage模式用于操做在活动阵列中的设备;Follow或 Monitor模式容许管理员对活动阵列设置事件提醒和动做;Build模式用于对旧阵列使用旧版本的md驱动;更有Grow模式能扩展阵列;剩下的是 Misc模式,他包括对多种内部的任务和没有指定特别模式的一些操做。
系统平台: 红旗 DC Server for x86
硬件平台: Intel Xeon 3.0G DP、1个系统硬盘,3个组成阵列磁盘
3、部署
一、准备磁盘
只能使用Sofware RAID格式的磁盘才能组成阵列,因此,首先咱们要把作好磁盘格式。正如上面提到的,除了系统盘sda外,咱们须要对sdb、sdc、sdd进行操做
a)对sdb进行分区
fdisk /dev/sdb
分区前状态:
n,划分区:
t,修改分区格式为fd:
w,保存:
b)一样的方法,对sdc、sdd进行分区和保存
最后状态以下:
二、建立阵列
mdadm能支持LINEAR、RAID0 (striping)、 RAID1(mirroring)、 RAID四、RAID五、RAID6和MULTIPATH的阵列模式。
建立命令格式以下:
mdadm [mode] [options]
例如:建立一个RAID 0设备:
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
--level表示建立的阵列模式,--raid-devices表示参和阵列的磁盘数量。
也能这样表达,意思是相同的:
mdadm -Cv /dev/md0 -l0 -n3 /dev/sd[bcd]1
还能增长-c128参数,指定chunk size为128K(默认64K)
三、设置文件
mdadm不采用/etc/mdadm.conf做为主要设置文件,他能彻底不依赖该文件而不会影响阵列的正常工做。
该设置文件的主要做用是方便跟踪软RAID的设置。对该设置文件进行设置是有好处的,但不是必须的。推荐对该文件进行设置。
一般能这样来创建:
echo DEVICE /dev/sd[bcd]1 > /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
四、格式化阵列
后续,只要你把/dev/md0做为一个独立的设备来进行操做便可:
mkfs.ext3 /dev/md0
mkdir /mnt/test
mount /dev/md0 /mnt/test
五、若要开机自动挂载,请加入/etc/fstab中:
/dev/md0 /mnt/tes auto defaults 0 0
4、监视和管理
mdadm能很是方便的对阵列进行监视和管理的操做,也包括了中止和启动阵列等经常使用维护。
一、查看
cat /proc/mdstat
能查看全部使用md驱动的阵列的状态:
mdadm --detail /dev/md0
查看指定阵列的周详信息(-D):
二、中止
mdadm -S /dev/md0
中止指定阵列,并释放磁盘(--stop):
※注意:中止后,原组成阵列的磁盘将处于空闲状态,一旦吾操做这些磁盘,将不能再重启激活原阵列。
三、启动
mdadm -A /dev/md0 /dev/sd[bcd]1
启动指定的阵列,也可理解为讲一个新阵列装配到系统中(--assemble):
若你已在上面设置了/etc/mdadm.conf文件,也可用-s查找:
mdadm -As /dev/md0
四、测试
若是你没有设置/etc/mdadm.conf文件,并且又忘了某磁盘属于那个阵列,则你能使用检测:(--examine)
mdadm -E /dev/sdb1
得到UUID后,也能这样激活阵列:
mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 /dev/sd*
能看到,只要磁盘没有损坏,这样装配是很是方便的:
五、添加及删除磁盘
mdadm能在Manage模式下,对运行中的阵列进行添加及删除磁盘。经常使用于标识failed磁盘,增长spare(冗余)磁盘,及替换磁盘等。
例如:原来状态是:
则能使用--fail指定坏磁盘,并--remove走:
mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1
等待同步完成后,结果:
※须要注意的是,对于某些阵列模式,如RAID0等,是不能用--fail和--remove的。
增长一个新的阵列用磁盘
mdadm /dev/md0 --add /dev/sdc1
※须要注意的是,对于某些阵列模式,如RAID0等,是不能用--add的。
六、监视
在Follow或Monitor状态下,能使用mdadm对阵列进行监视,例如当阵列出现问题的时候,发送邮件给管理员;或当磁盘出现问题的时候进行自动的磁盘替换。
nohup mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 &
上述定义:没300秒监视一次,当阵列出现错误,会发送邮件给sysadmin用户。因为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中,而没必要人工干预。(请注意,能实现这样工做的,只有在该阵列支持冗余的状况下才能实现,如raid一、raid5等。而对于raid0等阵列模式,是无效的)
5、其余
一、增长spare磁盘
能经过在建立的时候指定冗余磁盘:
mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd[bcd]1
-x(--spare-devices)参数用于指定冗余磁盘的数量,结果:
另外,对于full的阵列(例如已有2个磁盘的RAID1),则直接使用-add参数,mdadm会自动把冗余的磁盘做为spare disk。
二、删除阵列
mdadm -S /dev/md0
或
rm /dev/md0
修改/etc/mdadm.conf、/etc/fstab等设置文件,把相关的地方去掉;
最后,用fdisk对磁盘进行从新分区便可。
三、重建阵列
咱们也能在没有fdisk的状况下把使用过,但目前没有属于全部阵列的磁盘划分到新阵列中:
确认后便可。ide