什么是Raid?Raid分类有哪些?彼此的区别是什么?请参考:, ,
notice:软Raid是建立在kernel基础上,故/boot不能放在软Raid 0上
在RHEL5下通过使用mdadm工具来操作和管理软Raid,常用的参数有:
mdadm --create device options...
Create a new array from unused devices.
mdadm --assemble device options...
Assemble a previously created array.
mdadm --build device options...
Create or assemble an array without metadata.
mdadm --manage device options...
make changes to an existing array.
mdadm --misc options... devices
report on or modify various md related devices.
mdadm --grow options device
resize/reshape an active array
mdadm --incremental device
add a device to an array as appropriate
mdadm --monitor options...
Monitor one or more array for significant changes.
1.如何创建软Raid
mdadm --create /dev/md1 -l1 -n2 /dev/sdb /dev/sdc
--create /dev/md1:创建软Raid -- /dev/md1
-l1:等级是0,就是说创建Raid 0(前一个字符是字母l,后一个字符是数字1)
-n2 /dev/sdb /dev/sdc:有2块硬盘,sdb和sdc
同理,创建Raid 1, Raid 5……只需要把-l参数改变一下,注意磁盘数量的匹配
notice:linux默认只支持Raid 0, 1, 4, 5, 6, 10(aka. 1+0或0+1)
2.如何从软Raid中移除某块硬盘
mdadm /dev/md1 -f /dev/sdb -r /dev/sdb
/dev/md1:是对指定的软Raid进行操作
-f /dev/sdb:人为让/dev/sdb变成faulty状态
-r /dev/sdb:将/dev/sdb热拔出
3.如何添加硬盘到软Raid
mdadm /dev/md1 -a /dev/sdb
notice:如果现有Raid中的磁盘数量低于创建时设定的-n参数数量时,则是将硬盘加入到现有Raid中;如果现有Raid中的磁盘数量大于或等于创建时设定的-n参数数量时,则是将硬盘作为备份盘,standby状态,以实现自动替换损坏的硬盘(本人只测试了现有Raid中的磁盘数量等于创建时设定的-n参数数量的情况,大于的情况未经实践,仅为个人分析和猜测)
4.如何设置软Raid的bitmap
mdadm -G --bitmap=internal
--bitmap=internal:设定bitmap位为internal
那么以后的同步只是从bitmap位开始同步,以减少同步的数据量,加快同步速度
notice:Raid 0没有bitmap这个功能
5.如何开启事件通知服务
默认情况下,/etc/mdadm.conf是不存在的,需要手动创建,添加“MAILADDR $USER@$DOMAIN”即可,然后“service mdmonitor start”可启动mdadm的监控服务,并将事件通过邮件发送到$USER@$DOMAIN
6.如何创建备份盘组
备份盘组可以实现动态监控多个软Raid的状态,使用少量硬盘实现动态替换监控中软Raid损坏的硬盘
首先需要有多个软Raid,并且有备份盘,开启mdmonitor服务,先将当前的软Raid状态写入到/etc/mdadm.conf中“mdadm --examine --scan >> /etc/mdadm.conf”。
显示/etc/mdadm.conf,会看到有一个spares的项,说明备份盘是在相应的软Raid中呈现standby状态,如果要实现备份盘组,让其他软Raid实现共享该standby硬盘,可追加“spare-group=$VALUE”,凡是相同$VALUE的spare-group可共享相同的standby硬盘
疑问:(期待大牛解答,以下仅为个人分析和猜测)
软Raid 1会实现100%的镜像吗?尤其是MBR和分区表,如何去证明?
选择两块一模一样的硬盘,或者在VMware里建立相同的两块硬盘
cat /dev/zero > /dev/sdb
cat /dev/zero > /dev/sdc
实现两块硬盘的数据统一
理论上
dd if=/dev/sdb of=sdb.img
dd if=/dev/sdc of=sdc.img
这两个img文件的MD5值应该相同
然后对sdb和sdc创建软Raid 1, 随意放入一些数据到软Raid 1中,再通过dd导出sdb和sdc的前面一小部分,再比对MD5
还有一种通过实践的办法来证明,在软Raid 1中加入启动信息,这样MBR和分区表就有了数据,然后分别拔除其中的硬盘,看能否成功启动
阅读(1432) | 评论(0) | 转发(0) |