制作人:wqmsl
博客地址:http://wqmsl.blog.51cto.com
说明:RAID分为软RAID和硬件RAID
软件RAID是基于系统的软件工作
不稳定,如果系统坏了,RAID整列也就损坏,容易造成数据丢失
下面我们要讲的基于LINUX系统的软件RAID
在LINUX下管理RAID阵列的工具是mdadm工具
mdadm程序是一个独立的程序,能完成所有的软RAID管理功能
主要有7种使用模式:
Create 使用空闲的设备创建一个新的阵列,每个设备具有元数据块
Assemble 将原来属于一个阵列的每个块设备组装为阵列
Build 创建或组装不需要元数据的阵列,每个设备没有元数据块
Manage 管理已经存储阵列中的设备,比如增加热备磁盘或者设置某个磁盘失效,然后从阵列中删除这个磁盘
Misc 报告或者修改阵列中相关设备的信息,比如查询阵列或者设备的状态信息
Grow 改变阵列中每个设备被使用的容量或阵列中的设备的数目
Monitor 监控一个或多个阵列,上报指定的事件
由于这个工具太强大,不能一一为大家讲解
我们今天主要讲创建任意级别的RAID,和如何删除这个RAID
至于管理就只有您自己下来找资料研究了
往往廉价的东西,用的人都多
RAID分区的ID是 fd 请大家记住
(以上说明部分来自互联网,省的自己写了哈)
创建raid的流程就是:
第一步:创建分区
现在我们先来做几个分区来做软raid哦
查看一下创建的分区
由于分区默认的格式是83(Linux),需要我们修改一下id,依次修改5―9分区的格式
修改id后,查看一下
保存分区退出
第二步:创建RAID
分区创建完后,现在我们来做软raid,需要使用mdadm这个命令来创建raid
下面创建raid 5, 用4个分区做raid,用1个分区来做热备分区,-n和-x都可以指定多个
注:系统默认有个md0可以给我们用,如果我要多个raid的话,就需要自己创建设备了,创建raid设备块的命令 mknod /dev/md01 b 9 1
注释:
man帮助中的例子:mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1
-C 代表创建
-l 代表创建的级别
-n 代表活动的分区,也就是你要给这个级别多少个分区
-x 就是热备份的分区
解释图:-x:是热备分区,raid至少需要3个分区
第三步:查看创建好RAID的状态
命令:mdadm --detail /dev/md0、mdadm -D /dev/md0
sdb5、sdb6、sdb7、sdb8是raid的成员,激活状态;sdb9 是热备分区
第四步:格式化并挂载RAID设备
创建目录并挂载raid阵列设备,在raid里面创建文件
第五步:故障模拟和恢复
模拟一个raid故障
状态如下图:sdb5已经不在raid成员内了
然后我们从raid里删除掉sdb5
再看一下状态,sdb5已经不在列表中了,原热备分区sdb9已经到raid成员中并激活
看看数据还是没有错
其他额外知识补充:
1、查看/dev/md0 设备是否存在,以及它的容量;
fdisk -l /dev/md0
df -lh /dev/md0
注:如果您想要用分区操作,用fdisk /dev/md0
2、向一个既已存在RAID 中添加或移除一个硬盘或分区,要用mdadm 工具的-f -r -a参数
mdadm /dev/mdX -f RAID成员
mdadm /dev/mdX -r RAID成员
mdadm /dev/mdX -a RAID成员
注:
-f 同 --fail 表示把一个设备列为有问题的设备,以便用-r 或--remove参数移除;
-r 同 --remove 表示把RAID 中的一个成员移出RAID;
-a 同 --add 表示向一个RAID中添加一个成员;
--re-add 重新把最近移除的RAID成员重新添加到RAID 中;
值得一提的是,这些参数的运用,必须是在RAID 正常运行的情况下进行。其中RAID 设备是/dev/mdX,X是一个大于0的整数,RAID 成员是一个硬盘或分区。添加设备并不会把RAID 的容量扩大,仅仅是为了添加备用成员,比如在RAID1、RAID5和RAID10中有用。当一个RAID 成员发生故障的时候,要用这种办法来让新成员顶替工作(后面讲扩容了);
3、为RAID 进行扩充容量;
在这里我们要用到RAID 的Grow模式,也就是增长模式。扩充模式,极为简单,有--size参数,-n参数 --size是指大定RAID的大小,这个可以省略,具体由你所做的RAID 级别而定。 -n 代表RAID 真正成员的个数。在这个例子中,RAID5真正成员是3个,后来我们又添加了一个备用成员/dev/sdb2进去。我们所做的就是把这个备用成员“推”到真正成员的位置上。也就是说RAID 的真正成员由3个变成4个。只是这一简单的指令,就可以让RAID5容量增加起来。
我单纯的使用-a的参数并不能使容量增大,默认是添加到了热备分区上面
下面来解决这个问题
mdadm -G /dev/md0 -n4 ――――>这样就把热备的分区添加到了raid成员中了,容量也扩大了哦
4、清除一个 RAID 成员的超级块存储存的 RAID 信息;
RAID 成员在 superblock中所存储的RAID 信息是极为重要的,我们可以根据这个信息轻松恢复RAID。
mdadm --zero-superblock RAID成员;
如果你确认RAID 成员这个成员对你没任何用处,你已经把这个成员移除RAID,并且您想把这个设备另作他用。这时你可以清除其 superblock的信息。比如;
# mdadm --zero-superblock /dev/sdb12
这个示例就是清除/dev/sdd3中的超级块中所存储的RAID 信息;