码迷,mamicode.com
首页 > 其他好文 > 详细

【RAID技术】RAID入门级——RAID级别、原理

时间:2014-12-13 19:25:26      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:raid   存储   

序言

       RAID是“Redundant Array of Independent Disks“的缩写,称为"独立磁盘冗余阵列",通常简称为”磁盘阵列(DiskArray)“。通常简单来说,RAID技术就是将多个硬盘按照一定方式有机的组合在一起,形成一个大的硬盘阵列,从而提高硬盘数据的存储性能和数据备份技术。对于用户而言,操作磁盘阵列就像操作一般的单个硬盘一样,而且这样比操作单个硬盘的数据存储速度更快,并具有数据自动备份的机制。根据组成硬盘的不同方式成为RAID级别(RAID Levels),目前主要的RAID级别有六种(RAID0,RAID1,RAID2,RAID3,RAID4,RAID5),而且还有其中的各种组合,如:RAID10(RAID0和RIAD1的组合),RAID50(RIAD0和RAID5的组合)等等。

      为何有RAID技术的存在呢?在数据化快速发展的时代,数据的存储速度,数据的安全性是至关重要的,因此,RAID技术显著的特点是:速度、安全采用RAID技术,最吸引人的地方还是其数据的备份能力,数据备份能力是指数据一旦发生丢失或者损坏后,利用备份数据能够快速地进行数据的恢复,从而保障数据的安全性。

      目前RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。在Linux环境下,就可以通过系统自带的软件实现RAID功能,这样就可以替代了购买昂贵的RAID硬件控制器。(PS:通常可以采用虚拟机在Linux环境下来体验RAID技术)。由于是用软件去实现的RAID功能,所以它配置灵活、管理方便。同时使用软件RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。当然基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。

1、RAID级别

       按照硬盘的不同方式组合及数据存放顺序,RAID级别也就不同,因此其优缺点也不尽相同。

RAID级别 优点 缺点
RAID 0 存取速度快 没有容错能力
RAID 1 完全容错 成本高
RAID 2 海明码校验 数据冗余多、速度慢
RAID 3 写入性能最好 没有多任务能力
RAID 4 具备多任务及容错能力  
RAID 5 具备多任务及容错能力  
RAID 0+1/RAID 10 速度快、完全容错 成本高

2、RAID 0原理

      RAID 0也成为条带(stripe)存储,即把数据连续依次的分布存储到每个硬盘上,形成条带状,如下图所示。当系统有数据请求时,就可以被多个硬盘并行的处理,每个硬盘只需处理自己盘上的那部分数据,这种数据的并行操作,充分的提高了系统总线的负荷,从而提高了阵列整体的性能。是目前存储速度最快的一种,一旦某个硬盘发生了故障损坏,所有数据将无法恢复。

                                      bubuko.com,布布扣


       实现RAID0必须要有2个以上的硬盘,数据将分成数据块依次保存到各个硬盘上。因为数据是分布到各个硬盘上的,所有数据的读写负荷也就分布在不同的硬盘上了,其负荷就比较平衡。由于没有进行数据容错处理,一旦其中一个盘的数据发送了损坏,即使其他盘完好无损,其所有数据也是无法恢复的。RAID0不适合用于对数据稳定性要求高的数据存储,一般可以用来存储一些视频监控等数据,从而提高了数据的存储速度。

3、RAID 1原理

      RAID又称为镜像存储,一种具有完全冗余的方式。可以使用2个或者2N个硬盘,一个盘用来作为数据盘,另一个或者多个盘作为镜像盘,在数据读写的过程中,同时百分之一百的将数据盘的数据也写入一份到镜像盘中,如下图所示。这种方式的数据可靠性很高,但数据的有效容量只有总容量的一半。在配备上应选择容量大小相同的硬盘,否则有效容量只有最小硬盘容量的大小。

                                                bubuko.com,布布扣

       RAID 1技术支持”热替换“机制,即在不需要断电的情况下,可以对故障盘进行替换,更换完毕只要从镜像盘上恢复数据即可。当主硬盘损坏时,镜像硬盘就可以代替主硬盘工作。镜像硬盘相当于一个备份盘,可想而知,这种硬盘模式的安全性是非常高的,RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。

3、RAID 2原理

      RAID 2又称为带海明码校验的RAID技术,和RAID 3比较相似,都是将数据条带化,分不到不同的硬盘上,然后RAID 2却应用了海明码校验来提供数据错误检查及恢复机制,如下图所示。这种校验技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更为复杂。因此,在商业环境中很少使用。下图的各个磁盘上是数据的各个位,由一个数据不同的位运算得到的海明校验码可以保存另一组磁盘上,具体情况请见下图。由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。它的数据传送速率相当高,如果希望达到比较理想的速度,那最好提高保存校验码ECC码的硬盘,对于控制器的设计来说,它又比RAID3,4或5要简单。没有免费的午餐,这里也一样,要利用海明码,必须要付出数据冗余的代价。输出数据的速率与驱动器组中速度最慢的相等。

                                         bubuko.com,布布扣

4、RAID 3原理

        RAID 3,这种校验码与RAID2不同,只能查错不能纠错。它访问数据时一次处理一个带区,这样可以提高读取和写入速度,它像RAID 0一样以并行的方式来存放数据,但速度没有RAID 0快。校验码在写入数据时产生并保存在另一个磁盘上。需要实现时用户必须要有三个以上的驱动器,写入速率与读出速率都很高,因为校验位比较少,因此计算时间相对而言比较少。用软件实现RAID控制将是十分困难的,控制器的实现也不是很容易。它主要用于图形(包括动画)等要求吞吐率比较高的场合。不同于RAID 2,RAID 3使用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据。 如果奇偶盘失效,则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操作的瓶颈。 利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为n-1。

      是将数据先做XOR 运算,产生Parity Data后,在将数据和Parity Data 以并行存取模式写入成员磁盘驱动器中,因此具备并行存取模式的优点和缺点。进一步来说,RAID 3每一笔数据传输,都更新整个Stripe﹝即每一个成员磁盘驱动器相对位置的数据都一起更新﹞,因此不会发生需要把部分磁盘驱动器现有的数据读出来,与新数据作XOR运算,再写入的情况发生﹝这个情况在 RAID 4和RAID 5会发生,一般称之为Read、Modify、Write Process,我们姑且译为为读、改、写过程﹞。因此,在所有 RAID级别中,RAID 3的写入性能是最好的。

       RAID 3 的 Parity Data 一般都是存放在一个专属的Parity Disk,但是由于每笔数据都更新整个Stripe,因此,RAID 3的 Parity Disk 并不会如RAID 4的 Parity Disk,会造成存取的瓶颈。

       RAID 3 的并行存取模式,需要RAID 控制器特别功能的支持,才能达到磁盘驱动器同步控制,而且上述写入性能的优点,以目前的Caching 技术,都可以将之取代,因此一般认为RAID 3的应用,将逐渐淡出市场。

       RAID 3 以其优越的写入性能,特别适合用在大型、连续性档案写入为主的应用,例如绘图、影像、视讯编辑、多媒体、数据仓储、高速数据撷取等等。

                                         bubuko.com,布布扣

        

5、RAID 4原理

        创建RAID 4需要三块或更多的磁盘,它在一个驱动器上保存校验信息,并以RAID 0方式将数据写入其它磁盘,如图所示。因为一块磁盘是为校验信息保留的,所以阵列的大小是(N-l)*S,其中S是阵列中最小驱动器的大小。就像在 RAID 1中那样,磁盘的大小应该相等。
                                            bubuko.com,布布扣

        如果一个驱动器出现故障,那么可以使用校验信息来重建所有数据。如果两个驱动器出现故障,那么所有数据都将丢失。不经常使用这个级别的原因是校验信息存储在一个驱动器上。每次写入其它磁盘时,都必须更新这些信息。因此,在大量写入数据时很容易造成校验磁盘的瓶颈,所以目前这个级别的RAID很少使用了。
RAID 4 是采取独立存取模式,同时以单一专属的Parity Disk 来存放Parity Data。RAID 4的每一笔传输﹝Strip﹞资料较长,而且可以执行Overlapped I/O,因此其读取的性能很好。

         但是由于使用单一专属的Parity Disk 来存放Parity Data,因此在写入时,就会造成很大的瓶颈。因此,RAID 4并没有被广泛地应用。

         RAID4和RAID3很象,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。在图上可以这么看,RAID3是一次一横条,而RAID4一次一竖条。它的特点的RAID3也挺象,不过在失败恢复时,它的难度可要比RAID3大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。

6、RAID 5原理

         在希望结合大量物理磁盘并且仍然保留一些冗余时,RAID 5 可能是最有用的 RAID 模式。RAID 5可以用在三块或更多的磁盘上,并使用0块或更多的备用磁盘。就像 RAID 4一样,得到的 RAID5 设备的大小是(N-1)*S。

                                   bubuko.com,布布扣

         RAID5 与 RAID4 之间最大的区别就是校验信息均匀分布在各个驱动器上,如图4所示,这样就避免了RAID 4中出现的瓶颈问题。如果其中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将立即开始同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。RAID5 可以经受一块磁盘故障,但不能经受两块或多块磁盘故障。
         RAID 5也是采取独立存取模式,但是其Parity Data 则是分散写入到各个成员磁盘驱动器,因此,除了具备Overlapped I/O 多任务性能之外,同时也脱离如RAID 4单一专属Parity Disk的写入瓶颈。但是,RAI?D 5在座资料写入时,仍然稍微受到"读、改、写过程"的拖累。

         由于RAID 5 可以执行Overlapped I/O 多任务,因此当RAID 5的成员磁盘驱动器数目越多,其性能也就越高,因为一个磁盘驱动器再一个时间只能执行一个 Thread,所以磁盘驱动器越多,可以Overlapped 的Thread 就越多,当然性能就越高。但是反过来说,磁盘驱动器越多,数组中可能有磁盘驱动器故障的机率就越高,整个数组的可靠度,或MTDL (Mean Time to Data Loss) 就会降低。

       由于RAID 5将Parity Data 分散存在各个磁盘驱动器,因此很符合XOR技术的特性。例如,当同时有好几个写入要求发生时,这些要写入的数据以及Parity Data 可能都分散在不同的成员磁盘驱动器,因此RAID 控制器可以充分利用Overlapped I/O,同时让好几个磁盘驱动器分别作存取工作,如此,数组的整体性能就会提高很多。

【RAID技术】RAID入门级——RAID级别、原理

标签:raid   存储   

原文地址:http://blog.csdn.net/xcbeyond/article/details/41911571

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!