独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(RAID, Redundant Array of Inexpensive Disks),简称硬盘阵列。由伯克利大学一位教授提出,其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不一样,RAID比单颗硬盘有如下一个或多个方面的好处:加强数据集成度,加强容错功能,增长处理量或容量。但也有可能下降安全性、下降性能等多种缺点。另外,磁盘阵列对于计算机来讲,看起来就像一个单独的硬盘或逻辑存储单元。根据不一样的RAID级别,基础RAID级别能够分为RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-7(存储计算机公司独有技术),JBOD。根据基础RAID级别,能够进行进一步组合,实现使用者本身想要的方案。html
简而言之,RAID就是针对硬盘提供一种虚拟化方案,将多个物理硬盘组合成一个逻辑硬盘,操做系统只会把这个逻辑硬盘看成“一个硬盘”。RAID常被用在服务器计算机上,而且使用彻底相同的硬盘做为组合。因为硬盘价格的不断降低(机械硬盘,基于TLC和QLC的固态硬盘)而且RAID功能更多的集成到主板上,于是电脑组装爱好者也热衷于给本身的数据存储模块加入RAID技术。面试
加入RAID技术主要是为了增长如下一项或多项功能:算法
1.增长数据可靠性安全
2.增长存储器读写性能服务器
3.增长容量性能
如下依次介绍部分主流RAID基本级别。spa
1、RAID0 又称Strip,条带化模式操作系统
原理:数据交付给RAID控制单元,切割成若干条带,并行写入阵列3d
得失:理论上最高可提高读写速度为原来N倍,存储容量扩充为单块硬盘N倍,N为阵列内硬盘个数,数据安全性下降为原来的1/N,阵列内任意一块硬盘故障,整个阵列崩溃!并且从实际状况来看,因为自己切割数据也须要耗费计算资源,因此实际读写提高将略小于理论值,而且会随着硬盘个数增长而提高愈来愈少。htm
应用状况:适用于对读写要求高,成本控制严格,安全性要求不高的场合,单独RAID0笔者本人原来组准系统的时候用过,主要是为了提高跑分好看。通常都是采用其余组合的方案。
原理图示:
2、RAID-1 又称Mirror,镜像模式
原理:数据交付给RAID控制单元,对阵列内全部磁盘写入相同数据。读取时,与RAID0相仿,能够同时从阵列中全部可用硬盘内读取所需数据。
得失:理论上数据安全性提高N倍,写能力不受影响,读取数据能力提高为原来N倍(性能基准与单块硬盘比较,N为硬盘个数)。实际状况中,数据安全性提高比率更大(要镜像阵列中全部盘坏才会定义为崩溃,因此崩溃概率是相乘,会成倍减少),读取数据能力提高不足N倍(受控制器影响,和控制策略算法影响),写能力微弱降低(控制单元损耗)
应用状况:适用于对数据安全性要求高,读多写极少的状况,故也不适合单独拿来大规模应用。
原理图示:
3、RAID3 带专用校验盘的数据条带
原理:数据交付给RAID控制单元,控制单元将向阵列中一块固定的磁盘写入校验信息,同时将数据信息写入其他磁盘。校验信息为异或值(Xor),若是任意一块硬盘发生错误,那么均可以经过其他磁盘信息异或后重建。
得失:当整个阵列健康时,可以提供接近RAID0的性能(倍数要排除掉校验盘),同时提供必定的容灾能力(容许一块硬盘故障)。但一旦出现坏盘进入降级模式,每一次读写坏区块的信息都要经过计算其他盘的内容,性能会大大降低
应用状况:因为RAID5可以更好的代替RAID3,因此基本上RAID3应用很少。
原理图示:
4、RAID5 分散校验盘的数据条带
原理:校验数据分布在阵列中的全部磁盘上,而没有采用专门的校验磁盘。对于数据和校验数据,它们的写操做能够同时发生在彻底不一样的磁盘上。
得失:读取速度接近RAID0(倍数要排除掉校验盘),同时提供必定的容灾能力(容许一块硬盘故障)。但RAID5还提供良好的扩展性,磁盘数量增长,能提供更高的容量和更快的速度。固然,对替换盘重建数据时,性能依然会受到较大影响。RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它能够理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。
应用状况:RAID5 基本上能够知足大部分的存储应用需求,数据中心大多采用它做为应用数据的保护方案。但实际的应用中,也一般不单使用RAID5,而是有其余多种的组合方案。
原理图示:
固然,还有其余的诸如RAID2,RAID4,RAID6及7等非主流基本阵列模式,这种阵列模式通常商用产品都是不支持的,仅供理论了解,这里也贴一篇很好的博文,供你们参考。
5、RAID的常见基础组合,raid10和raid01
原理:RAID10又称RAID1+0,是先将买来的硬盘分红两组,作镜像,再对每组硬盘作条带化。而RAID01则偏偏相反,是先将买来的硬盘分红两组,作条带化,再对每组硬盘作镜像。
得失:在对每一个子组保持基本RAID等级的特性下,RAID10比RAID01有更好的容错能力,可以容许多个子RAID1都有坏盘,只要不是一个RAID1组中硬盘所有坏掉就OK。然而RAID01只能容许在其中一个RAID0组中有坏盘。成组至少四块硬盘,因为都有RAID1,因此磁盘利用率50%
应用状况:鉴于RAID10和01都至少四块硬盘,而且磁盘利用率在彻底健康下都一致,基于RAID10数据更强的容灾能力,于是主流的磁盘阵列产品都只支持RAID10。
原理图示:
还有其余更多的组合,但都不经常使用。读者能够在我以前贴出的那个连接里去查阅,那篇文章很详细。
看完我这篇文章,应付通常面试都是没有问题的了。并且列举的阵列模式都是经常使用/支持商业化的,因此你们也能够灵活利用这些经常使用阵列,提高本身的硬盘效能和数据安全性。
Intel的SRT技术也能够当作是RAID的一种,只不过是Intel独有,这里就不放在这里介绍拉,有机会的话,我本身也会写一篇博客。
感谢观看。