一、RAID的基本原理 1、什么是RAID? RAID是指磁盘阵列(Redundant Arrays of Independent Drives,RAID),其是由多个价格便宜的磁盘组合成一个容量巨大的磁盘组,以此来提升磁盘的系统效能。

2、作用及优点 第一、提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量。 原因:在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器。 第二、通过数据校验提供容错功能。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。 在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。

3、常用RAID的级别 RAID0 至少需要两块硬盘。在读写数据时,将数据分开写到各块硬盘上,以此来提高读写功能。 例子:假设有两块硬盘Disk1、Disk2,数据为A={A1,A2,A3...}则有

	 优点:成本低、最易实现,读写性能都提升
	 缺点:没有冗余性能,任何一块磁盘损坏这所有数据都不能访问。
** RAID1(磁盘镜像)**
	需要俩块硬盘。在读写数据时,先将硬盘分成两组,将数据分别写到每一组中。以便提供冗余性。同时从俩组硬盘上读写数据能提高其性能。
	例子:假设有两块硬盘Disk1、Disk2,数据为A={A1,A2,A3...}则有
	![](http://i2.51cto.com/images/blog/201811/22/2eb9dc196b537a5f890388144a9ab550.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
	优点:具有冗余性,一块磁盘损坏仍可继续使用,较安全。读性能提升,写性能下降。
	缺点:但磁盘利用率很低,只有50%,另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。

** RAID4** 至少需要3块硬盘。使用校验信息技术在磁盘上存取数据。在丢失一块磁盘的时候可以通过校验信息与剩余磁盘数据恢复丢失的数据。但丢失两块时则无法恢复 例子:假设有四块硬盘Disk1、Disk2、Disk3、Disk4,数据为A、B、C...

	优点:具有一定冗余性,磁盘利用率为1/(n-1),可进行并行操作。
	缺点:若损失磁盘超过一块或者修复数据时再损坏就数据永久损失了,并且在恢复数据时系统效率变低,校验码盘压力大容易形成瓶颈。

** RAID5** 至少需要3块硬盘。使用校验信息技术在磁盘上交叉存取数据。在丢失一块磁盘的时候可以通过校验信息与剩余磁盘数据恢复丢失的数据。但丢失两块时则无法恢复 例子:假设有四块硬盘Disk1、Disk2、Disk3、Disk4,数据为A、B、C...

	优点:具有一定冗余性,磁盘利用率为1/(n-1),可进行并行操作。读写性能提升
	缺点:若损失磁盘超过一块或者修复数据时再损坏就数据永久损失了,并且在恢复数据时系统效率变低
	
**RAID0+1**
	至少需要偶数块磁盘。在读写数据时,先将硬盘分成两组,将数据镜像写到每一组中。每组数据在进行分布式读写。
	例子:假设有四块硬盘Disk1、Disk2、Disk3、Disk4,数据为A
	![](http://i2.51cto.com/images/blog/201811/22/2bc709a17705f4980dba9f72b3f6d5e8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
	优点:读写性能提升、具有冗余性
	缺点:RAID 0+1 只要有一个硬盘受损,同组RAID 0的所有硬盘亦会停止运作,可靠性较低。价格不菲,空间利用率为50%
	
**RAID1+0**
	至少需要偶数块磁盘。在读写数据时,先将硬盘分成n/2组,将数据分布式镜像写到每一组中。
	例子:假设有六块硬盘Disk1、Disk2、Disk3、Disk4、Disk5、Disk6,数据为A
	![](http://i2.51cto.com/images/blog/201811/22/2354355a2f44584fcf79a6456bf02839.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
	
	优点:读写性能提升、具有冗余性,相较0+1可靠性更高
	缺点:价格不菲,空间利用率为50%

4、能组合的盘 SATA SAS SCSI

二、软RAID的实现 内核中有个md模块,用其将/dev/sd模拟成一个逻辑raid(软设备),在/dev/md#下(#为数字,raid的标志) mdadm:md管理器,使用这个命令来创建raid。在linux中支持将任何块设备做成raid。 演示:此次创建软raid是在一块磁盘上创建。实际中在一块磁盘上创建raid没有任何意义。

mdadm:(为一种模式化命令) -C:创建模式 -F:监控模式 -G:增长模式 -A:装配模式 --add、--fail、--remove:管理模式 模式中的专用选项: -C /dev/md#下(#为数字) -l 级别 -n 设备(硬盘)个数 -a 是否自动为其创建设备文件{yes|no} -c CHUNK(数据块)大小 -D /dev/md#(#为数字) 显示md#的详细信息(--detail)

测试: 如何创建一个2G大小的raid? 注意:可以用四个512M大小或者两个1G大小分区。其大小一定要相同 。 在/dev/sdb的逻辑分区上创建磁盘分区/dev/sdb5、/dev/sdb6,类型为fd,大小分别为1G #partprobe /dev/sdb //读取分区 #cat /proc/partitions //查看分区读取是否成功

#mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{5,6} //创建md0文件设备,级别为0,个数为2,分别为/dev/sdb5、6

#cat /proc/mdstat //显示当前系统下已启用的raid设备 从中可以看到md0已经启用

#mke2fs -j /dev/md0 //格式化设备 #fdisk -l //查看设备 #mount /dev/md0 /mnt //将设备挂载到/mnt目录下 #ls /mnt //ls /mnt目录查看 此时,这个raid设备启用成功。可用mdadm命令查看详情 #mdadm -D /dev/md0

创建一个2G大小的raid1? 答:在/dev/sdb的逻辑分区上创建磁盘分区/dev/sdb7、/dev/sdb8,类型为fd,大小分别为2G(再次另外再创建一个/dev/sdb9,大小为2G)

如何添加移除设备以及停止阵列? 先手动模拟使/dev/sdb7损坏 #mdadm /dev/md1 --fail /dev/sdb7 #mdadm -D /dev/md1 从图中可以看到/dev/sdb7设备已损坏 移除损坏设备 /dev/sdb7 #mdadm /dev/md1 --remove /dev/sdb7 #mdadm -D /dev/md1

新添设备 /dev/sdb9*(新添的设备大小一定要和以前的大小相等)* #mdadm /dev/md1 --add /dev/sdb9 #mdadm -D /dev/md1

可以看到原来损坏的/dev/sdb7被新的/dev/sdb9所替代了。再替代之后会有一段时间的镜像复制过程。将/dev/sdb8的数据复制到/dev/sdb9上面。

如何停止阵列? 先将raid设备卸载: #umount /media 再停止设备 #mdadm -S /dev/md1 #mdadm -S /dev/md1 #rm -rf /dev/md1 //彻底删除md1设备

如何装备raid的配置文件? #mdadm -D --scan > /etc/mdadm.conf //将其保存至配置文件中以便以后进行装配

*注:这只是我的各人心得,若您觉得有参考价值本人深感荣幸;若有不恰之处,请指出,谢谢!!!