存储 频道

RAID6连载(四):实现方式与未来前景

    【IT168 专稿】由于RAID6要计算P+Q两层校验,如果全部由CPU来处理该计算,显然相当影响系统性能;因此可以设计专门的硬件模块来完成校验计算,比如Intel就专门设计了Xscale IOP芯片,来处理存储应用,下面就以IOP333为例进行讲解。

图-1 IOP333模块图

    IOP333是基于ARM架构的处理器,它支持多功能设备,最有特色的是加入了应用加速器单元(Application Accelerator Unit),如图-1中红框部分。该模块主要完成校验计算,其内部模块如图-2所示:

图-2 应用加速器模块图

    它通过其控制寄存器,提供给系统软件操作AAU的接口;而其中的数据队列、布尔运算单元,以及填充/不填充单元来处理数据,并通过总线接口单元来和整个系统总线进行数据的交换和传输。

    很多RAID厂商都采用Xscale来设计硬件RAID,从而提供高性能、高可靠性的存储产品。

非主流的软件方案
    除了上述的硬件解决方案之外,在Linux下的MD (Linux下的Software RAID)也支持软件的RAID6解决方案,它通过系统CPU来完成RAID6的P+Q校验计算,从而会影响到系统性能;但是通过和Linux下的存储模块紧密结合,并采用一定的优化策略,它也可以达到一定的性能需求,满足大部分的应用。

    目前,MD已经被放到大部分2.6.x系列内核中,并提供和RAID5类似的一些算法,如:
    a) 左对称算法(LEFT_SYMMETRIC);
    b) 左不对称算法(LEFT_ASYMMETRIC);
    c) 右对称算法(RIGHT_SYMMETRIC);
    d) 右不对称算法(RIGHT_ASYMMETRIC);
    通过下面图-3和图-4进行对比。

图-3 左对称和左不对称算法

    通过图-3的对比,可以看出在左对称和左不对称中,D3的存放位置是有差别的。也就是说,在左对称时D3是立即放在校验数据后的那个磁盘中,而左不对称是还是放在整个RAID的第一个逻辑磁盘中。

图-4 右对称和右不对称算法

    右对称和左对称的最大差别就是在于P和Q校验的存放位置,通过对比图-3和图-4很容易找到两者的差别。而对称与不对称仍然采用上面图-3中的数据放置原理。

    MD驱动是集成到Linux内核的一个模块,管理员可以通过mdadm应用程序来进行管理和配置。

未来发展前景
    RAID技术是为了防止存储系统因为磁盘故障而丢失数据而研发出来的。对于容错技术来说,RAID6相对于RAID 5,其不同之处在于RAID 6有两份校验数据,可以保证同一RAID组中两块磁盘同时故障而不丢失数据。然而,由于要进行两次数据校验的计算,并且当出现磁盘故障重建RAID系统时也需做大量的恢复计算,对其I/O性能的影响相当大。尽管已经开发出相关的硬件加速器,但是由于各个厂商对高性能的理解,和对相关应用的分析和处理,RAID6并没有得到全面的接受。

    像EMC在新近发布的产品里没有RAID6支持,EMC认为其他的高可用性功能,比如metaLUNs、媒介扫描、故障隔离、以及其他更好的技术,都比RAID6能带来更多好处;同样,IBM也推出了RAID5E和RAID5EE来支持相关的高性能功能。

    但是由于SATA和SAS技术的推广并被市场接受,并被用于性能要求不是很高的“近线存储”领域;同时考虑到该类型接口磁盘的平均故障时间,相对于SCSI和FC硬盘来说较低,因此提供RAID6技术会带来更好的可靠性。

    从而HDS采用了与EMC不同的策略,它的TagmaStore全线存储系统可以支持RAID 6;其他厂商,比如Adaptec、Promise Technology、HighPoint Technologies都在最近推出了RAID6系统;另外,Dot Hill、Infortrend、SGI、Xyratex也表示即将推出RAID6系统。

    从上面的分析,可以看出众多厂商都在加大对RAID6的支持,相信这种高级的容错技术一定能够找到合适它的应用场景。

0
相关文章