RAID磁盘阵列实验小结

  1. 云栖社区>
  2. 博客>
  3. 正文

RAID磁盘阵列实验小结

余二五 2017-11-08 00:07:00 浏览1056
展开阅读全文
RAID磁盘阵列实验小结
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列),主要应用于大型企业和中小企业在数据保护方面。各个公司依靠不同级别的RAID所提供的冗余来保护他们的磁盘驱动器。其应用还是很广泛的。
RAID 还分为硬件RAID 和软件RAID,硬件RAID是通过RAID 卡来实现的,而软件RAID是通过软件来实现的;在企业级应用领域,大部份都是硬件RAID。而软件RAID由于性价比高,大多被中小型企业所采用。
硬件RAID是通过RAID卡把若干同等容量大小的硬盘,根据使用方向的不同,聚合起来成为一个大的虚拟RAID设备(或RAID0,或RAID1,或者RAID5,或RAID10……),如果每个硬盘容量不一致,以最小容量的硬盘为基础;它的成员是整个硬盘。
RAID是软把若干同等容量大小的硬盘或分区,根据使用方向的不同,聚合起来成为一个大的虚拟RAID设备(或RAID0,或RAID1,或者RAID5,或RAID10……),如果每个硬盘或分区容量不一致,以最小容量的硬盘或分区为基础。软RAID的成员是整个硬盘或分区。
由于硬件RAID价格昂贵,因此我们都是基于软件RAID来实验的。
OK,开始今天就说下经常见到的RAID0RAID1RAID5的基本操作。
RAID0 是把两个或两个以上的容量相同的硬盘或分区,通过RAID控制器,合为一个在容量上是RAID0下成员的容量的总和,在写入时,要向每个硬盘或分区同时写入数据。
RAID0 在读写速度上是比较快的,是普通不做RAID的两倍左右(注:实际速度和机器的硬件配置有关),所以RAID0常被用于对存储效率要求较高,但对数据安全性要求不高的应用解决方案中。
安全性:RAID0中有任何一个成员出现故障,整个RAID0就不能被激活。数据不能保障;
在虚拟机下新加三块磁盘,分别为sdbsdcsdd。大小为默认值20G,在sdb上做raid0的实验,在sdc上做raid1的实验,在sdd上做raid5的实验。好了,实验环境已经准备就绪,开始吧?
第一个要做的是RAID0的基本操作。
划分好sdb磁盘之后,要记得把sdb1sdb2的磁盘类型改为fd型,因为只有fd型的磁盘才能设置RAID磁盘阵列。设置好后保存退出。下一步是用partprobe命令对刚刚划分的磁盘进行重新读取。如图所示:    
   
磁盘阵列的命令为mdadm,其主要参数为命令中各参数分别表示如下作用:“-C”指创建一个新的阵列;“/dev/md0”表示阵列设备名称;“-l 0”表示设置阵列模式,可以选择01456,其分别对应RAID0RAID1RAID4RAID5RAID6,这里设为RAID0模式;“-n  2”指设置阵列中活动设备的数目,该数目加上备用设备的数目应等于阵列中的总设备数;“-x1”设置阵列中备份设备的数目,当前阵列中含有1个备份设备(在后面的RAID5的实验中会用到);“-c 64”指设置块的尺寸为64K,缺省为64K“/dev/sd{12}”指当前阵列中包含的设备名称,也可以分开来写,中间用空格分开。
注:在mdadm之前不需要格式化磁盘,直接mdadm即可。
mdadm –V -c –a yes –l 1 –n 2 –c 64 / d e v / s d c { 1 , 2 }
创建完成后,RAID也就立即启动了。会出现如下一行的提示信息:
mdadm: array /dev/md0 started.
 
命令执行完毕后,可以用cat /proc/mdstat命令来查看一下md0阵列的参数。
 
接着格式化/dev/md0,并在root目录下创建raid0文件,之后挂载/dev/md0
 
OKRAID0的实验成功了,先来庆贺一下吧!^_^
接下来的实验是配置RAID1。其配置过程和RAID0实验的实验步骤类似。
RAID1就是把若干相同容量的硬盘或分区,成员与成员之间是镜像关系。在容量上,RAID1设备是单个成员的容量。比如两个80G的硬盘做成RAID1,这个RAID1的设备容量仍是80G
因为RAID1存在镜像冗余,所以磁盘利用效率并不高,或者说是“浪费”。这种方案相对来说性价比并不高,一般很少应用。数据读写效率要比RAID0慢。
安全性:RAID1 中只要有一个成员是健康的,RAID1完全可以激活,而且数据绝对是完整安全的。如果所有的成员有故障,RAID1也就报废了。哈哈,这不是废话吗?
好了,开始吧!
划分sdc磁盘,建立sdc1sdc2两个分区,修改分区类型为fd类型,完成后保存退出,执行partprobe命令,重新读取sdc1sdc2分区。接着执行
mdadm –V-c –a yes –l 1 –n 2 –c64 /dev /sdc {1, 2}
创建完成后,RAID也就立即启动了。会出现如下一行的提示信息:
mdadm: array /dev/md1 started.
命令执行完毕后,可以用cat /proc/mdstat命令来查看一下md1阵列的参数。可以观察一下md0md1各自blocks大小有什么不同之处。这要从RAID0RAID1的磁盘阵列的不同之处来考虑了,想起来有什么不同了吗?
 
发散思维一下,RAID都在运行了,那么该如何停止呢?当然,mdadm命令可以停止磁盘阵列啦。命令为:mdadm –stop /dev/md1
 
后面的步骤就是格式化md1,在root目录下建立/raid1目录,然后用mount命令将/dev/md1挂载到/raid1即可,至于验证的命令在这里就不赘述了。
接下来的实验是关于RAID5配置。
RAID5也是冗余安全的,RAID5是把至少三个硬盘或分区通过软件虚拟成为一个大的存储设备。在容量上是(n-1)x单个硬盘(分区)容量。如果是四块磁盘分区做RAID5,那么磁盘利用率就为75% 
由于RAID5在空间上损失比较小,有冗余安全保障,另外写入速度比较快。具有很高的性价比,所以被很多企业采用。
安全性:当RAID5中的成员中有一个发生故障时,RAID5一样能启动和正常运行,只要n-1(注n>3)块硬盘或分区的不出故障,RAID5上的数据就是安全,对于一个文件存到RAID5设备中,只有成员是n-1(注n>3)无故障时,这份文件才是完整的。 比如上图中RAID5由四个分区做的,当一个硬盘或分区挂掉了,并不影响整个RAID5上数据的完整性和安全性。
划分sdc磁盘,建立主分区sdd1、逻辑分区sdd2、扩展分区sdd6sdd7sdd8四个分区,修改分区类型为fd类型,完成后保存退出,执行partprobe命令,重新读取磁盘分区。接着执行
mdadm –v –C /dev/md2 –a yes –l  5 –n 3 –x 1 /de v/s dd {1, 5 ,6, }
创建完成后,RAID也就立即启动了。会出现如下的一行的提示信息:
mdadm: array /dev/md2 started.
 
命令执行完毕后,可以用mdadm –detail /dev/md2命令来查看一下md2阵列的参数。可以看到,sdd分区处于空闲状态哇,
 
为了验证试验RAID5是否具有容错和恢复数据的功能,我们可以模拟这样的环境:在其中任一个处于工作状态的分区出现故障的情况下,阵列中的数据是否还可以读取,数据是否还能恢复到分区出现故障以前的状态。
具体思路为:首先向raid5中拷贝目录/var/log/和文件/etc/inittab,完成后查看一下,验证是否拷贝成功。
 
使用命令mount /edv/md2 –f /dev/sdd7 可以模拟RAID5中处于工作状态的sdd7分区出现故障。(然后运行mdadm /dev/md2  -r  /dev/sdd7 卸载掉,后面的步骤会用到,这里先不考虑) 
当再次执行mdadm –-mdtail /dev/md2时会发现故障出现之前处于空闲状态的sdd1分区自动转变为工作状态。
此时,为了尽快将数据恢复,我们必须重新加载上一块新磁盘,可以把刚刚卸载掉的sdd7重新加载上(实际上sdd7并没有出现故障,刚才只是用命令模拟出现故障)。执行命令为mdadm /dev/md2 –a /dev/sdd7 ,命令正确执行后,会出现mdadmadded /dev/sdd7 的字符提示。用mdadm –-detail /dev/md2 命令查看一下raid5的状态,可以看到,sdd7此时变成空闲状态。
  
 
 
切换到raid5目录下,查看一下数据是否还在。是否还可以正常读取。(其实个人觉得查看数据这个步骤还是在挂载sdd7之前来操作,这样会更有说服力,实际情况就是如此,当卸载掉sdd7后,sdd1很快就会把数据恢复到原来的样子。)
当然喽!我们再次还可以模拟sdd1分区出现故障,然后卸载掉sdd1。重复上面的步骤验证一下喽!
 








本文转自 linuxtro 51CTO博客,原文链接:http://blog.51cto.com/linuxtro/275452,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
余二五
+ 关注