当前位置:首页检测中心基础知识 │ 磁盘阵列模式详解

磁盘阵列模式详解

  • 浏览次数:754次
  • 发布时间:2016/10/14 14:35:27
  • 作者:量值溯源

  RAID是英文Redundant Array of Inexpensive Disks的缩写,中文译作廉价冗余磁盘阵列,简称磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高 的存储性能和提供数据冗余的技术。在这一组硬盘中,数据按照不同的算法分别存储于每块硬盘上从而达到不同的效果这样就形成了不同的RAID级别(RAID LEVEL)。

  按照RAID级别划分,常见的有RAID0,RAID1,RAID3,RAID5, RAID10,RAID50还有不常用的RAID2, RAID4,RAID6,RAID7以及硬件厂商自己定义的RAID如惠普Smart Array阵列卡实现的RAID ADG和IBM的RAID 5E。

常用磁盘阵列模式

01RAID 0

  RAID 0是由一块以上的硬盘组成,每块硬盘被等分成容量相同的条带集,数据也被分割成条带,在同一时间内向多块磁盘写入。

  优势:读写性能快,弱点:数据安全性差。

  如果是四块硬盘做RAID0,系统向逻辑设备发出的I/O指令会被转化为4项操作,其中的每一项操作都对应于一块硬盘,通过建立带区集,原先顺序写入的数据被分散到所有的四块硬盘中同时进行读写。四块硬盘的并行操作使同一时间内磁盘读写的速度提升了4倍。四块硬盘组合在一起形成一个独立的逻辑驱动器,容量相当于任何一块单独硬盘的4倍。

  需要注意的是:这种 RAID 级别不具有容错性能,如果阵列中的任何一块磁盘出现故障,整个阵列中的数据都将会受到破坏,无法继续使用。从上面这个例子来说,此时使用RAID 0方式的安全性仅相当于单独使用一块硬盘的1/4(因为本例中RAID 0使用了4块硬盘)。

02RAID 1

  RAID 1又被称为磁盘镜像,由两个以上偶数个硬盘组成,每一个磁盘都具有一个对应的镜像盘,对写入任何一个磁盘的数据都会被复制镜像盘中,同时系统可以从这一组镜像盘中的任何一个磁盘读取数据。

  优势:数据安全性高,弱点:磁盘利用率较低。

  RAID 1下,任何一块硬盘的故障都不会影响到系统的正常运行,而且只要能够保证任何一对镜像盘中至少有一块磁盘可以使用,RAID 1甚至可以在一半数量的硬盘出现问题时不间断的工作。当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据。

  显然,磁盘镜像肯定会提高系统成本。因为我们所能使用的空间只是所有磁盘容量总和的一半。

03RAID 3

  RAID3至少由三块以上硬盘组成,以其中一块特定的硬盘来存放数据的奇偶校验位(由真实数据通过一定的算法得出),真实数据则分段存储于其余硬盘中。

  优势:有冗余,硬盘利用率高,弱点:读写性能差。

  如果数据盘(物理)损坏,只要将坏硬盘换掉,RAID控制系统则会根据校验盘的数据校验位在新盘中重建坏盘上的数据。利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为(N-1)/N 其中N为RAID中硬盘的个数。

  当向RAID 3写入数据时,情况会变得复杂一些。即使我们只是向一个磁盘写入一个数据块,也必须计算与该数据块同处一个带区的所有数据块的校验值,并将新值重新写入到校验块中。由此我们可以看出,一个写入操作事实上包含了数据读取(读取带区中的关联数据块),校验值计算,数据块写入和校验块写入四个过程。读写性能尤其是写性能大大降低。

  RAID 3所存在的最大一个不足同时也是导致RAID 3很少被人们采用的原因就是校验盘很容易成为整个系统的瓶颈。我们已经知道RAID 3会把数据的写入操作分散到多个磁盘上进行,然而不管是向哪一个数据盘写入数据,都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降。鉴于这种原因,RAID 3更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如数据库和WEB服务器等。

04RAID 5

  RAID5是在RAID 3的基础上进行了一些改进,同样也是由三块以上的硬盘组成,也是以数据的校验位来保证数据的安全,但它不是以特定硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。

  优势:克服RAID3校验盘性能问题,有冗余,硬盘利用率高,弱点:读写性能差。

  如果数据盘(物理)损坏,只要将坏硬盘换掉,RAID控制系统则会根据校验盘的数据校验位在新盘中重建坏盘上的数据。利用单独的校验盘来保护数据,虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为(N-1)/N 其中N为RAID中硬盘的个数。

  当向RAID 5写入数据时,情况会变得复杂一些。即使我们只是向一个磁盘写入一个数据块,也必须计算与该数据块同处一个带区的所有数据块的校验值,并将新值重新写入到校验块中。由此我们可以看出,一个写入操作事实上包含了数据读取(读取带区中的关联数据块),校验值计算,数据块写入和校验块写入四个过程,读写性能尤其是写性能大大降低。

不常用磁盘阵列模式

01RAID 10

  RAID10也被称为镜像阵列条带,由至少四块硬盘组成,像RAID0一样,数据被分割成条带,在同一时间内向多块磁盘写入;像RAID1一样,每个磁盘都有一个镜像磁盘。其目的是在保证数据安全的情况下,提高数据的读写性能。

02RAID 50

  RAID50也被称为镜像阵列条带由至少六块硬盘组成,像RAID0一样,数据被分割成条带,在同一时间内向多块磁盘写入;像RAID5一样,也是以数据的校验位来保证数据的安全。其目的在于提高RAID5的读写性能。

03RAID 2

  RAID2又被称为带海明码校验磁盘阵列,是为大型机和超级计算机开发的。磁盘驱动器组中的第一个、第二个、第四个……第2的n次幂个磁盘驱动器是专门的校验盘,用于校验和纠错,例如七个磁盘驱动器的RAID2,第一、二、四个磁盘驱动器是纠错盘,其余的用于存放数据。使用的磁盘驱动器越多,校验盘在其中占的百分比越少。RAID2对大数据量的输入输出有很高的性能,但少量数据的输入输出时性能不好。RAID2很少实际使用。

  由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。它的数据传送速率相当高,如果希望达到比较理想的速度,那最好提高保存校验码ECC码的硬盘,对于控制器的设计来说,它又比RAID3,4或5要简单。但是利用海明码校验必须要付出数据冗余的代价。

04RAID 4

  RAID4和RAID3很相似,不同的是RAID4对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。 RAID3是一次一横条,而RAID4一次一竖条。所以RAID3常须访问阵列中所有的硬盘驱动器,而RAID4只须访问有用的硬盘驱动器。这样读数据的速度大大提高了,但在写数据方面,需将从数据硬盘驱动器和校验硬盘驱动器中恢复出的旧数据与新数据通过异或运算,然后再将更新后的数据和检验位写入硬盘驱动器,所以处理时间较RAID3长。

05RAID 6

  几乎没有进行商用,它使用一种分配在不同的驱动器上的第二种奇偶方案,扩展了RAID 5。它能承受多个驱动器同时出现故障,但是,性能尤其是写操作却很差,而且,系统需要一个极为复杂的控制器。当然由于引入了第二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了不必要的负载。

自定义阵列模式

01IBM RAID 5E

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

原文:http://www.vfe.cc/NewsDetail-1994.aspx转载务必带链接注明出处,未注明必追究责任!