深谈RAID等级和硬件磁盘阵列

RAID有很多值得学习的地方,我在工作中也很喜欢总结关于RAID等级的经验教训,下面就这个问题来详细说说吧。RAID 2 等级的缺点相信大家已经很明白了,虽然能进行即时的ECC,但成本极为昂贵。为此,一种更为先进的即时ECC 的RAID等级诞生,这就是RAID 3。
RAID 3 是在RAID 2 基础上发展而来的,主要的变化是用相对简单的异或逻辑运算(XOR, eXclusive OR )校验代替了相对复杂的汉明码校验,从而也大幅降低了成本。
这里的A 与B 值就代表了两个位,从中可以发现,A 与B 一样时,XOR 结果为0,A 与B 不一样时,XOR 结果就是1,而且知道XOR 结果和A 与B 中的任何一个数值,就可以反推出另一个数值。比如A 为1,XOR 结果为1,那么B 肯定为0,如果XOR 结果为0,那么B 肯定为1。这就是XOR 编码与校验的基本原理。
校验盘只有一个,而数据与RAID 0 一样是分成条带(Stripe )存入数据阵列中,这个条带的深度的单位为字节而不再是bit 了。在数据存入时,数据阵列中处于同一等级的条带的XOR 校验编码被即时写在校验盘相应的位置,所以彼此不会干扰混乱。读取时,则在调出条带的同时检查校验盘中相应的XOR 编码,进行即时的ECC。由于在读写时与RAID 0 很相似,所以RAID 3 具有很高的数据传输效率。
RAID 3 在RAID 2 基础上成功地进行结构与运算的简化,曾受到广泛的欢迎,并大量应用。直到更为先进高效的RAID 5 出现后,RAID 3 才开始慢慢退出市场。RAID 3 英文定义是Parallel transfer with parity ,即并行传输及校验。与之相比,RAID 4 则是一种相对独立的形式,这也是它与RAID 3 的最大不同。
与RAID 3 相比,存储工程师发现关键之处是把条带改成了“块”。即RAID 4 是按数据块为单位存储的,那么数据块应该怎么理解呢?简单的话,一个数据块是一个完整的数据集合,比如一个文件就是一个典型的数据块。RAID 4 这样按块存储可以保证块的完整,不受因分条带存储在其他硬盘上而可能产生的不利影响(比如当其他多个硬盘损坏时,数据就完了)。
不过,在不同硬盘上的同级数据块也都通过XOR 进行校验,结果保存在单独的校验盘。所谓同级的概念就是指在每个硬盘中同一柱面同一扇区位置的数据算是同级。在写入时,RAID等级就是按这个方法把各硬盘上同级数据的校验统一写入校验盘,等读取时再即时进行校验。因此即使是当前硬盘上的数据块损坏,也可以通过XOR 校验值和其他硬盘上的同级数据进行恢复。由于RAID 4 在写入时要等一个硬盘写完后才能写一下个,并且还要写入校验数据所以写入效率比较差,读取时也是一个硬盘一个硬盘的读,但校验迅速,所以相对速度更快。总之,RAID等级并不为速度而设计。
RAID5 和RAID4 相似但避免了RAID4 的瓶颈,方法是不用校验磁盘而将校验数据以循环的方式放在每一个磁盘中,RAID5 的控制比较复杂,尤其是利用硬件对磁盘阵列的控制,因为这种方式的应用比其他的RAID level 要掌握更多的事情,有更多的输出/入需求,既要速度快,又要处理数据,计算校验值,做错误校正等,所以价格较高,其应用最好是OLTP ,至于用于大型文件,不见得有最佳的性能。
RAID5 在不停机及容错的表现都很好,但如有磁盘故障,对性能的影响较大,大容量的快取内存有助于维持性能,但在OLTP 的应用上,因为每一笔数据或记录(record )都很小,对磁盘的存取频繁,故有一定程度的影响。某一磁盘故障时,读取该磁盘的数据需把共用同一校验值分段的所有数据及校验值读出来,再把故障磁盘的数据计算出来;写入时,除了要重覆读取的程序外,还要再做校验值的计算,然后写入更新的数据及校验值;等换上新的磁盘,系统要计算整个磁盘阵列的数据以回复故障磁盘的数据,时间要很长,如系统的工作负载很重的话,有很多输出/入的需求在排队等候时,会把系统的性能拉下来。
但如使用硬件磁盘阵列的话,其性能就可以得到大幅度的改进,因为硬件磁盘阵列如Arena 系列本身有内置的CPU 与主机系统并行运作,所有存取磁盘的输出入工作都在磁盘阵列本身完成,不花费主机的时间,配合磁盘阵列的快取内存的使用,可以提高系统的整体性能,而优越的SCSI 控制更能增加数据的传输速率,即使在磁盘故障的情况下,主机系统的性能也不会有明显的降低。RAID5 要做的事情太多,所以价格较贵,不适于小系统,但如果是大系统使用大的磁盘阵列的话,RAID5 却是最便宜的方案。

东奔西走  发表于: 2010-01-17

我要回答

电子邮件地址不会被公开。 必填项已用*标注

敬请读者进行回答,本站保留删除与本问题无关和不雅内容的权力。

相关推荐

  • RAID类型详解

    RAID可以实现更好的存储性能,带来更高的可用性。市场上有许多种不同的RAID类型,阅读本篇RAID各类型的详解有助于了解其最适合的场景领域。

  • 揭秘:合适的RAID恢复服务

    当RAID还原需要的技巧超出内部已掌握的时候,RAID还原服务提供商可能就是解决之道,只要选择合适的一家即可。

  • 存储虚拟化优势何在?

    随着虚拟化不断渗透进存储设计和管理,有关于存储虚拟化的优势却并不明显,这么做是为了什么以及如何去做都成了问题。

  • RAID大起底:哪些优势多少类型?

    不同类型的RAID有什么不同以及它们优缺点?使用多于最低要求的驱动器有什么好处?是额外的容量,更多的驱动损耗,还是容错?在什么情况下,RAID类型,特别是RAID 10,能够支持多个硬盘同时故障?在RAID10重建失效驱动器过程中,有何技巧?

  • 融合架构之存储服务

    存储服务是任何基础设施的关键部分,特别是融合架构。许多捆绑的解决方案把传统的共享存储系统用作该架构的存储部分。这需要包含存储网络,但是,由于供应商完成了预先集成的工作,存储网络的复杂性被大大降低了。