RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。简单地解释,就是将N台硬盘经过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提升传输速率和提供容错功能是最大的优势。前端
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不一样的方式组合起来造成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不一样组合方式,能够将RAID分为不一样的级别。数据库
磁盘阵列中针对不一样的应用使用的不一样技术,称为RAID level,而每一level都表明着不一样技术,目前业界公认的标准是RAID 0~RAID 5。这个level并不表明技术的高低,level 5并不高于level 3,level 1也不低过level 4,至于要选择那一种RAID level的产品,纯视用户的操做环境(operating environment)及应用(application)而定与level的高低没有必然的关系。安全
在RAID有一基本概念称为EDAP(Extended Data Availability and Protection),其强调扩充性及容错机制,也是各家厂商如:Mylex,IBM,HP,Compaq,Adaptec,Infortrend等诉求的重点,包括在不须停机状况下可处理如下动做:服务器
RAID 0:无差错控制的带区组app
要实现RAID0必需要有两个以上硬盘驱动器,RAID0实现了带区组,数据并非保存在一个硬盘上,而是分红数据块保存在不一样驱动器上。由于将数据分布在不一样驱动器上,因此数据吞吐率大大提升,驱动器的负载也比较平衡。若是恰好所须要的数据在不一样的驱动器上效率最好。它不须要计算校验码,实现容易。它的缺点是它没有数据差错控制,若是一个驱动器中的数据发生错误,即便其它盘上的数据正确也无济于事了。不该该将它用于对数据稳定性要求高的场合。若是用户进行图象(包括动画)编辑和其它要求传输比较大的场合使用RAID0比较合适。同时,RAID能够提升数据传输速率,好比所需读取的文件分布在两个硬盘上,这两个硬盘能够同时读取。那么原来读取一样文件的时间被缩短为1/2。在全部的级别中,RAID 0的速度是最快的。可是RAID 0没有冗余功能的,若是一个磁盘(物理)损坏,则全部的数据都没法使用。分布式
若是两块硬盘:160G+120G=240G性能
RAID 1:镜象结构优化
对于使用这种RAID1结构的设备来讲,RAID控制器必须可以同时对两个盘进行读操做和对两个镜象盘进行写操做。经过下面的结构图您也能够看到必须有两个驱动器。由于是镜象结构在一组盘出现问题时,可使用镜象,提升系统的容错能力。它比较容易设计和实现。每读一次盘只能读出一块数据,也就是说数据块传送速率与单独的盘的读取速率相同。由于RAID1的校验十分完备,所以对系统的处理能力有很大的影响,一般的RAID功能由软件实现,而这样的实现方法在服务器负载比较重的时候会大大影响服务器效率。当您的系统须要极高的可靠性时,如进行数据统计,那么使用RAID1比较合适。并且RAID1技术支持“热替换”,即不断电的状况下对故障磁盘进行更换,更换完毕只要从镜像盘上恢复数据便可。当主硬盘损坏时,镜像硬盘就能够代替主硬盘工做。镜像硬盘至关于一个备份盘,可想而知,这种硬盘模式的安全性是很是高的,RAID 1的数据安全性在全部的RAID级别上来讲是最好的。可是其磁盘的利用率却只有50%,是全部RAID级别中最低的。动画
若是两块硬盘:160G+120G=120G编码
RAID2:带海明码校验
从概念上讲,RAID 2 同RAID 3相似,二者都是将数据条块化分布于不一样的硬盘上, 条块单位为位或字 节。然而RAID 2 使用必定的编码技术来提供错误检查及恢复。这种编码技术须要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂。所以,在商业环境中不多使用。上图右边的各个磁盘上是数据的各个位,由一个数据不一样的位运算获得的海明校验码能够保存另外一组磁盘上,具体状况请见下图。因为海明码的特色,它能够在数据发生错误的状况下将错误校订,以保证输出的正确。它的数据传送速率至关高,若是但愿达到比较理想的速度,那最好提升保存校验码ECC码的硬盘,对于控制器的设计来讲,它又比RAID3,4或5要简单。没有免费的午饭,这里也同样,要利用海明码,必需要付出数据冗余的代价。输出数据的速率与驱动器组中速度最慢的相等。
RAID3:带奇偶校验码的并行传送
RAID3这种校验码与RAID2不一样,只能查错不能纠错。它访问数据时一次处理一个带区,这样能够提升读取和写入速度,它像RAID 0同样以并行的方式来存放数据,但速度没有RAID 0快。校验码在写入数据时产生并保存在另外一个磁盘上。须要实现时用户必需要有三个以上的驱动器,写入速率与读出速率都很高,由于校验位比较少,所以计算时间相对而言比较少。用软件实现RAID控制将是十分困难的,控制器的实现也不是很容易。它主要用于图形(包括动画)等要求吞吐率比较高的场合。不一样于RAID 2,RAID 3使用单块磁盘存放奇偶校验信息。若是一块磁盘失效,奇偶盘及其余数据盘能够从新产生数据。若是奇偶盘失效,则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操做的瓶颈。利用单独的校验盘来保护数据虽然没有镜像的安全性高,可是硬盘利用率获得了很大的提升,为(n-1)/n。
RAID4:带奇偶校验码的独立磁盘结构
RAID4和RAID3很像,不一样的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。在图上能够这么看,RAID3是一次一横条,而RAID4一次一竖条。它的特色和RAID3也挺像,不过在失败恢复时,它的难度可要比RAID3大得多了,控制器的设计难度也要大许多,并且访问数据的效率不怎么好。
RAID5:分布式奇偶校验的独立磁盘结构
从它的示意图上能够看到,它的奇偶校验码存在于全部磁盘上,其中的p0表明第0带区的奇偶校验值,其它的意思也相同。RAID5的读出效率很高,写入效率通常,块式的集体访问效率不错。由于奇偶校验码在不一样的磁盘上,因此提升了可靠性,容许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,均可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为n-1。可是它对数据传输的并行性解决很差,并且控制器的设计也至关困难。RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到全部的阵列盘。而对于RAID 5来讲,大部分数据传输只对一块磁盘操做,可进行并行操做。在RAID 5中有“写损失”,即每一次写操做,将产生四个实际的读/写操做,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。RAID-5的话,优势是提供了冗余性(支持一块盘掉线后仍然正常运行),磁盘空间利用率较高(N-1/N),读写速度较快(N-1倍)。RAID5最大的好处是在一块盘掉线的状况下,RAID照常工做,相对于RAID0必须每一块盘都正常才能够正常工做的情况容错性能好多了。所以RAID5是RAID级别中最多见的一个类型。RAID5校验位即P位是经过其它条带数据作异或(xor)求得的。计算公式为P=D0xorD1xorD2…xorDn,其中p表明校验块,Dn表明相应的数据块,xor是数学运算符号异或。
RAID6:两种存储的奇偶校验码的磁盘结构
名字很长,可是若是看到图,你们马上会明白是为何,请注意p0表明第0带区的奇偶校验值,而pA表明数据块A的奇偶校验值。它是对RAID5的扩展,主要是用于要求数据绝对不能出错的场合。固然了,因为引入了第二种奇偶校验值,因此须要N+2个磁盘,同时对控制器的设计变得十分复杂,写入速度也很差,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,形成了没必要须的负载。我想除了军队没有人用得起这种东西。
RAID7:优化的高速数据传送磁盘结构
RAID7全部的I/O传送均是同步进行的,能够分别控制,这样提升了系统的并行性,提升系统访问数据的速度;每一个磁盘都带有高速缓冲存储器,实时操做系统可使用任何实时操做芯片,达到不一样实时系统的须要。容许使用SNMP协议进行管理和监视,能够对校验区指定独立的传送信道以提升效率。能够链接多台主机,由于加入高速缓冲存储器,当多用户访问系统时,访问时间几乎接近于0。因为采用并行结构,所以数据访问效率大大提升。须要注意的是它引入了一个高速缓冲存储器,这有利有弊,由于一旦系统断电,在高速缓冲存储器内的数据就会所有丢失,所以须要和UPS一块儿工做。固然了,这么快的东西,价格也很是昂贵。
RAID10/01:高可靠性与高效磁盘结构
这种结构无非是一个带区结构加一个镜象结构,由于两种结构各有优缺点,所以能够相互补充,达到既高效又高速还能够互为镜像的目的。你们能够结合两种结构的优势和缺点来理解这种新结构。这种新结构的价格高,可扩充性很差。主要用于容量不大,但要求速度和差错控制的数据库中。
其中可分为两种组合:RAID10和RAID01
RAID 10是先镜射再分区数据。是将全部硬盘分为两组,视为是RAID 0的最低组合,而后将这两组各自视为RAID 1运做。RAID 10有着不错的读取速度,并且拥有比RAID 0更高的数据保护性。
RAID 01则是跟RAID 10的程序相反,是先分区再将数据镜射到两组硬盘。它将全部的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运做。RAID 01比起RAID 10有着更快的读写速度,不过也多了一些会让整个硬盘组中止运转的机率;由于只要同一组的硬盘所有损毁,RAID 01就会中止运做,而RAID 10则能够在牺牲RAID 0的优点下正常运做。
RAID 10巧妙的利用了RAID 0的速度以及RAID 1的保护两种特性,不过它的缺点是须要的硬盘数较多,由于至少必须拥有四个以上的偶数硬盘才能使用。
RAID 50:被称为分布奇偶位阵列条带
同RAID 10相仿的,它具备RAID 5和RAID 0的共同特性。它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0,实验跨磁盘抽取数据。RAID 50提供可靠的数据存储和优秀的总体性能,并支持更大的卷尺寸。即便两个物理磁盘发生故障(每一个阵列中一个),数据也能够顺利恢复过来。
RAID 50最少须要6个驱动器,它最适合须要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。
RAID 53:称为高效数据传送磁盘结构
结构的实施同Level 0数据条阵列,其中,每一段都是一个RAID 3阵列。它的冗余与容错能力同RAID 3。这对须要具备高数据传输率的RAID 3配置的系统有益,可是它价格昂贵、效率偏低。
RAID 1.5:一个新生的磁盘阵列方式
它具备RAID 0+1的特性,而不一样的是,它的实现只须要2个硬盘。从表面上来看,组建RAID 1.5后的磁盘,两个都具备相同的数据。固然,RAID 1.5也是一种不能彻底利用磁盘空间的磁盘阵列模式,所以,两个80GB的硬盘在组建RAID 1.5后,和RAID 1是同样的,即只有80GB的实际使用空间,另外80GB是它的备份数据。若是把两个硬盘分开,分别把他们运行在原系统,也是畅通无阻的。但经过实际应用,咱们发现若是两个硬盘在分开运行后,其数据的轻微改变都会引发再次重组后的磁盘阵列,无法实现彻底的数据恢复,而是以数据较少的磁盘为准。
JBOD
严格的说,JBOD并不属于RAID的范畴,只是将多个磁盘空间合并成一个大的逻辑磁盘,不具备错误冗余机制。资料的存放机制是由第一颗磁盘开始依序日后存放,即操做系统看到的是一个大磁盘(由许多小磁盘组成)。但若是磁盘损毁,则该颗硬盘上的全部资料将没法救回。若第一颗硬盘损坏,一般没法做救援(因大部分档案系统将档案表存在磁盘前端,即第一颗),失去档案表即失去一切资料。
若是两块硬盘:160G+120G=280G
在实际的应用中,RAID2~4并不存在,由于RAID5已经涵盖了所需的功能。所以RAID2~4目前只有在研究领域有实做,而在实际应用上则以RAID 0、一、0+一、5或RAID6为主。可是对于咱们普通用户来讲,用的最多的也就是RAID 0、一、0+1和RAID 5。