天天看点

raid知识

RAID 级别

   NRAID:

   硬盘连续使用。NRAID 意思是不使用RAID功能。它使用硬盘的总容量组成逻辑碟(不使用条块读写)。换句话说,它生成的逻辑碟容量就是物理碟容量的总和。此外,NRAID 不提供资料的备余。

JBOD:

   JBOD 的含意是控制器将机器上每颗硬盘都当作单独的硬盘处理,因此每颗硬盘都被当作单颗独立的逻辑碟使用。此外,JBOD并不提供资料备余的功能。   RAID0:RAID 0 - Disk Stripping without parity (常用)

   又称数据分块,即把数据分成若干相等大小的小块,并把它们写到阵列上不同的硬盘上,这种技术又称“Stripping”(即将数据条带化),这种把数据分布在多个盘上,在读写时是以并行的方式对各硬盘同时进行操作。从理论上讲,其容量和数据传输率是单个硬盘的N倍。N为构成RAID0的硬盘总数。当然,若阵列控制器有多个硬盘通道时,对多个通道上的硬盘进行RAID0操作,I/O性能会更高。因此常用于图象,视频等领域,RAID0 I/O传输率较高,但平均故障时间MTTF只有单盘的N分之一,因此RAID0可靠性最差。

   RAID1:RAID 1 - Disk Mirroring(较常用)

   又称镜像。即每个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时只从工作盘读出,一旦工作盘发生故障立即转入镜像盘,从镜像盘中读出数据。当更换故障盘后,数据可以重构,恢复工作盘正确数据,这种阵列可靠性很高,但其有效容量减小到总容量一半以下,因此RAID1常用于对容错要求极严的应用场合,如财政、金融等领域。

   RAID (0+1):

   结合了RAID 0 和 RAID 1 — 条块化读写的同时使用镜像操作。 RAID (0+1) 允许多个硬盘损坏,因为它完全使用硬盘来实现资料备余。如果有超过两个硬盘做RAID 1,系统会自动实现RAID (0+1)。

   RAID2:

   又称位交叉,它采用汉明码作盘错校验,采用按位交叉存取,运用于大数据的读写,但冗余信息开销太大(校验盘为多个),已被淘汰。

   RAID3:RAID 3 - Parallel Disk Array

   为单盘容错并行传输。即采用Stripping技术将数据分块,对这些块进行异或校验,校验数据写到最后一个硬盘上。它的特点是有一个盘为校验盘,数据以位或字节的方式存于各盘(分散记录在组内相同扇区的各个硬盘上)。当一个硬盘发生故障,除故障盘外,写操作将继续对数据盘和校验盘进行操作。而读操作是通过对剩余数据盘和校验盘的异或计算重构故障盘上应有的数据来进行的。RAID3的优点是并行I/O传输和单盘容错,具有很高可靠性。缺点:每次读写要牵动整个组,每次只能完成一次I/O。

   RAID4:

   与RAID3相似,区别是:RAID3是按位或字节交叉存取,而RAID4是按块(扇区)存取,可以单独地对某个盘进行操作,无须像RAID3那样,哪怕每一次小I/O操作也要涉及全组,只需涉及组中两块硬盘(一块数据盘,一块校验盘)即可,从而提高了小量数据I/O速度。缺点:对于随机分散的小数据量I/O,固定的校验盘又成为I/O瓶颈,例如:事务处理。作两个很小的写操作,一个写在drive2的stripe1 上,一个写在drive3的stripe2上,它们都要往校验盘上写,所以发生争用校验盘的问题。

   RAID5:RAID 5 - Striping with floating parity drive(最常用)

   是一种旋转奇偶校验独立存取的阵列方式,它与RAID3,RAID4不同的是没有固定的校验盘,而是按某种规则把奇偶校验信息均匀地分布在阵列所属的硬盘上,所以在每块硬盘上,既有数据信息也有校验信息。这一改变解决了争用校验盘的问题,使得在同一组内并发进行多个写操作。所以RAID5即适用于大数据量的操作,也适用于各种事务处理,它是一种快速、大容量和容错分布合理的磁盘阵列。当有N块阵列盘时,用户空间为N-1块盘容量。 RAID3、RAID5中,在一块硬盘发生故障后,RAID组从ONLINE变为DEGRADED方式,但I/O读写不受影响,直到故障盘恢复。但如果DEGRADED状态下,又有第二块盘故障,整个RAID组的数据将丢失。

RAID,为Redundant Arrays of Independent Disks的简称,中文为廉价冗余磁盘阵列。在1987年由美国柏克莱大学提出RAID(Redundant Arrayof Inexpensive Disks)理论,作为高性能的存储系统,巳经得到了越来越广泛的应用。RAID的级别从RAID概念的提出到现在,巳经发展了多个级别,有明确标准级别分别是0、1、2、3、4、5等。但是最常用的是0、1、3、5四个级别。其他还有6、7、10、30、50等。RAID为使用者降低了成本、增加了执行效率,并提供了系统运行的稳定性。

   标准的RAID写操作,包括如:RAID4或RAID5中所必需的校验计算,需包括以下几个步骤:

   (1)以校验盘中读取数据

   (2)以目标数据盘中读取数据

   (3)以旧校验数据,新数据及已存在数据,生成新的校验数据

   (4)将新校验数据写入校验盘

   (5)将新数据写入目标数据盘

   当主机将一个待写入阵列RAID组中的数据发送到阵列时,阵列控制器将该数据保存在缓存中并立即报告主机该数据的写入工作已完成。该数据写入到阵列硬盘的工作由阵列控制器完成,该数据可继续存放在Cache中直到Cache满,而且要为新数据腾出空间而必须刷新时或阵列需停机时,控制器会及时将该数据从Cache写入阵列硬盘中。 这种缓存回写技术使得主机不必等待RAID校验计算过程的完成,即可处理下一个读写任务,这样,主机的读写效率大为增加。当主机命令将一个数据写入硬盘,则阵列控制器将该数据写入缓存最上面的位置,只有新数据才会被控制器按Write-Back Cache的方式最后写入硬盘。

 在 IBM 新的阵列卡产品中,加入了对一个新的 RAID 级别的支持 ---- RAID 5EE。以前,我们可能听的比较多的是RAID 0,RAID 1,RAID 5 以及 RAID 5E,下面,我们将介绍一下RAID 5EE与其它几种常用RAID级别的不同。

RAID 0:把多个磁盘合并成一个大的磁盘,不具有冗余功能,并行I/O,速度最快。它是将多个磁盘并列起来,成为一个大硬盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些磁盘中。所以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

RAID 1:两组相同的磁盘系统互作镜像,速度没有提高,但是允许单个磁盘出错,可靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID上磁盘利用率最低的一个级别。

RAID 3 存放数据的原理和RAID 0、RAID 1不同。RAID 3是以一个硬盘来存放数据的奇偶校验位,数据则分段存储于其余硬盘中。它象RAID 0一样以并行的方式来存放数,但速度没有RAID 0快。如果数据盘(物理)损坏,只要将坏硬盘换掉,RAID控制系统则会根据校验盘的数据校验位在新盘中重建坏盘上的数据。利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为n-1。但缺点是作为存放校验位的硬盘,工作负荷会很大,因为每次写操作,都会把生成的校验信息写入该磁盘,而其它磁盘的负荷相对较小,这会对性能有一定的影响。

RAID 5:RAID 5是在RAID 3的基础上进行了一些改进,当向阵列中的磁盘写数据,奇偶校验数据均匀存放在阵列中的各个盘上,允许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率也是n-1,要求至少要有3块硬盘才能实现。

RAID 5E(RAID 5 Enhencement): RAID 5E是在 RAID 5级别基础上的改进,与RAID 5类似,数据的校验信息均匀分布在各硬盘上,但是,在每个硬盘上都保留了一部分未使用的空间,这部分空间没有进行条带化,最多允许两块物理硬盘出现故障。看起来,RAID 5E和RAID 5加一块热备盘好象差不多,其实由于RAID 5E是把数据分布在所有的硬盘上,性能会与RAID5 加一块热备盘要好。当一块硬盘出现故障时,有故障硬盘上的数据会被压缩到其它硬盘上未使用的空间,逻辑盘保持RAID 5级别。

RAID 5EE: 与RAID 5E相比,RAID 5EE的数据分布更有效率,每个硬盘的一部分空间被用作分布的热备盘,它们是阵列的一部分,当阵列中一个物理硬盘出现故障时,数据重建的速度会更快。

继续阅读