RAID(冗余硬盘阵列)

一. RAID定义  

      RAID( Redundant Array of Independent Disk 独立冗余磁盘阵列 )技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。

二. RAID的几种工作模式 

1. RAID 0 
  即Data Stripping数据分条技术。RAID 0 可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁盘的性能和吞吐量RAID 0 没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数据安全性要求不高的情况下才被使用。 

(1)RAID 0 最简单方式 
     就是把x块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起,形成一个独立的逻辑驱动器,容量是单独硬盘的x倍,在电脑数据写时被依次写入到各磁盘中,当一块磁盘的空间用尽时,数据就会被自动写入到下一块

磁盘中,它的好处是可以增加磁盘的容量。速度与其中任何一块磁盘的速度相同,如果其中的任何一块磁盘出现故障,整个系统将会受到破坏,可靠性是单独使用一块硬盘的1/n。 

(2)RAID 0 的另一方式——Stripe条带模式 
     是用n块硬盘选择合理的带区大小创建带区集,最好是为每一块硬盘都配备一个专门的磁盘控制器,在电脑数据读写时同时向n块磁盘读写数据,速度提升n倍。提高系统的性能。 

 

2. RAID 1 
   RAID 1 称为磁盘镜像:把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,具有很高的数据冗余能力,但磁盘利用率为50%,故成本最高,多用在保存关键性的重要数据的场合。RAID 1 有以下特点:   
  (1)RAID 1的每一个磁盘都具有一个对应的镜像盘,任何时候数据都同步镜像,系统可以从一组镜像盘中的任何一个磁盘读取数据。 

  (2)磁盘所能使用的空间只有磁盘容量总和的一半,系统成本高。 

  (3)只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行。 

  (4)出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。 

  (5)更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。 

  (6)RAID 1磁盘控制器的负载相当大,用多个磁盘控制器可以提高数据的安全性和可用性。 

 

3.(1)RAID 0+1

  先做条带(0),再做镜像(1)。

  先对数据进行RAID 0条带化,然后将Stripe后的数据进行备份。

  RAID01几乎不会在实际环境中应用,因为RAID0+1和RAID1+0在读取效率上没有差异,但是RAID0+1在安全性和可靠性低。

      优点:兼顾了RAID0和RAID1的优点,在可靠性和I/O性能上有保证。只要不是数据盘和对应的镜像盘同时出现损坏,数据就能保证完整性,写功能不会受到影响。如果损坏了其中一块比如HDD0时,读性能可能会稍微降低(读取数据时可以并行操作)。

  缺点:从上图可以看出,需要分出一半的磁盘组作为Mirror,因此空间利用率只有50%,成本大

(2)RAID 1+0

  先做镜像(1),再做条带(0)。

  比如,有HDD0~HDD7共7个磁盘,其中HDD0~HDD3是数据盘,HDD4~HDD7是对应的镜像盘。同时,有”ABCD”四个数据的磁盘写请求。

  当数据A的写请求在磁盘HDD0上执行时,就在对应的镜像盘HDD4中进行镜像A’。与此同时,按照与数据A类似的步骤,并行在相应磁盘中写入数据B、数据C和数据D。

 

4. RAID 2 

      可以认为是RAID0的改进版,加入了汉明码(Hanmming Code)错误校验。电脑在写入数据时在一个磁盘上保存数据的各个位,同时把一个数据不同的位运算得到的海明校验码保存另一组校验磁盘上,使用校验磁盘作为错误检查和纠正ECC(Error Correcting Code)

盘。如下图,A0-A3四个盘是数据盘,Ax-Az三个盘是校验盘。由于海明码可以在数据发生错误的情况下将错误校正,以保证输出的正确。但海明码使用数据冗余技术,使得输出数据的速率取决于驱动器组中速度最慢的磁盘。RAID 2控制器的设计简单。 

      RAID2技术过于极端,目前基本已经被淘汰了。根据原理,RAID2需要在IO数据到来之后,控制器将数据按Bit分开,顺序并同时在每个数据盘和相应校验盘中存放1Bit,而磁盘上的IO最小单位是扇区512B,那么如何确保写入1Bit并且不至于浪费过多空间的算法就很复

杂。此外,需要占用相对较多的校验盘也是原因之一。

 

5. RAID 3带奇偶校验码的并行传送 

      RAID 2的缺点主要是将数据以bit位作为单位来分割,将原本物理连续的扇区转变成了物理不连续、逻辑连续的,这样导致效率低下。RAID3 就准备从根本上就绝这个问题。

      在一个磁盘阵列中,一般情况下多于一个磁盘出现故障的几率是很小的,所有一般情况下,RAID3的安全性还是有保障的。

  同RAID2一样,由于需要多磁盘同时联动,同时还需要校验。显然,RAID3不适用于有大量写操作的情况,因为这样会使得校验盘的负荷较大,降低RAID系统的性能。RAID3 常用于写操作较少,读操作较多的应用环境,比如数据库和WEB服务器。

校验算法只能判断数据是否有误,不能判断出有那一位有误,更不能更正错误

 

6. RAID 4 
  RAID4即带奇偶校验码的独立磁盘结构,RAID 4和RAID 3很象,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘,RAID 4的特点和RAID 3也挺象,不过在失败恢复时,它的难度可要比RAID 3大得多了,控制器的设计难度也要大许多,而且访问

数据的效率不怎么好。 

 

7. RAID 5 
  RAID 5把校验块分散到所有的数据盘中。RAID 5使用了一种特殊的算法,可以计算出任何一个带区校验块的存放位置。这样就可以确保任何对校验块进行的读写操作都会在所有的RAID磁盘中进行均衡,从而消除了产生瓶颈的可能。RAID 5的读出效率很高,写入效率一

般,块式的集体访问效率不错。RAID 5提高了系统可靠性,但对数据传输的并行性解决不好,而且控制器的设计也相当困难。 

 

8. RAID 6 
  RAID 6即带有两种分布存储的奇偶校验码的独立磁盘结构,它是对RAID 5的扩展,主要是用于要求数据绝对不能出错的场合,使用了二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,写入速度也不好,用于计算奇偶校验值和验证数据正确性

所花费的时间比较多,造成了不必须的负载,很少人用。 

 

9. RAID 7 
  RAID 7即优化的高速数据传送磁盘结构,它所有的I/O传送均是同步进行的,可以分别控制,这样提高了系统的并行性和系统访问数据的速度;每个磁盘都带有高速缓冲存储器,实时操作系统可以使用任何实时操作芯片,达到不同实时系统的需要。允许使用SNMP协议

进行管理和监视,可以对校验区指定独立的传送信道以提高效率。可以连接多台主机,当多用户访问系统时,访问时间几乎接近于0。但如果系统断电,在高速缓冲存储器内的数据就会全部丢失,因此需要和UPS一起工作,RAID 7系统成本很高。 

 

10. RAID 10 
     RAID 10即高可靠性与高效磁盘结构它是一个带区结构加一个镜象结构,可以达到既高效又高速的目的。这种新结构的价格高,可扩充性不好。 

 

三、应用RAID技术  

     要使用磁盘RAID主要有两种方式,第一种就是RAID适配卡,通过RAID适配卡插入PCI插槽再接上硬盘实现硬盘的RAID功能。第二种方式就是直接在主板上集成RAID控制芯片,让主板能直接实现磁盘RAID。这种方式成本比专用的RAID适配卡低很多。此外还可以用Windows 2000 /xp 或 linux系统做成软RAID 。个人使用磁盘RAID主要是用RAID 0、 RAID 1或RAID 0+1工作模式。


参考一:https://www.cnblogs.com/emanlee/archive/2011/08/27/2155766.html

参考二:http://storage.chinabyte.com/296/13892796.shtml

 

posted @ 2017-12-19 22:35  一只敲码的猫  阅读(1915)  评论(0编辑  收藏  举报