既然如此,我们可以预言,至少在可以预见的未来,对Fibre Channel(光纤通道,FC)来说,RAID-6将变得更普及,因为使用较慢接口的、密集的驱动器重建需要的时间越来越长。而且SATA驱动器的广泛使用,也会推动RAID-6的普及,直到有更好的技术出现,取代RAID-6为止。
问题是RAID-6需要控制器能够提供更多的资源,来计算附加奇偶,并且需要更大的带宽来进行写操作,对于一些厂商来说,还需要更大的带宽来读取更多的奇偶(parity)。所需要的带宽大小取决于RAID-6的配置。例如,如果是8+1 RAID-5,需要9个硬盘的带宽;而如果是RAID-6 8+2的话,需要的带宽就增加了11%,也就是10个硬盘的带宽。如果是4+1 RAID-5,需要5个硬盘的带宽,但是如果是RAID-6 4+2的话,所需要的带宽就增加了20%,也就是6个硬盘的带宽。如果只是有一个LUN的带宽需求增加了20%的话,那么我相信几乎所有的RAID控制器都能够应付,但是如果系统中所有的LUN都是RAID-6的话,情况会怎样?
你的控制器是否能够有11%或者20%冗余的计算资源来计算多出来的奇偶?而且控制器是否能够提供足够的带宽支持所有这些硬盘?为RAID增加改造的潜力,你也许会让RAID控制器运行的速度超过设计速度。我认为对于每个考虑使用RAID-6的用户来说,理解RAID控制器的设计问题都非常重要,这能够帮助他们更好地理解购买什么样的设备才能够更好地满足自己的性能要求。我不想再详细讲述FC和SATA硬盘的差别,因为我已经在以前的文章里介绍过这些内容了,请参看《使用SATA存储的真实成本》。
检查RAID性能
因为绝大部分中端RAID厂商都是按照RAID-5,而不是RAID-6的性能要求设计RAID控制器的,所以为了确保采购的RAID控制器能够达到RAID-6的性能要求,用户需要考虑RAID控制器的两方面的问题:一是计算奇偶的处理器的性能,另一个是后端通道的性能。
处理器的性能比较容易评估。假设厂商取1个或者最多4个磁盘托架。开始之前,必须知道后端连接的数量和这些连接的性能。例如,如果有4个4Gb的FC后端连接,就需要为这四条连接配备4个FC HBA,以及一个或多个能够充分利用这些HBA的系统。必须确保后端的性能(RAID控制器到磁盘托架的性能)能够和前端的性能(从服务器到RAID的性能)相匹配。创建一个4+1 LUN和一个4+2 LUN,并使用可以写入原设备的、多线程的程序,例如从ioperformance.com下载的xdd。对4+1的写入应该和对4+2的写入是一样的。
现在对你所有的LUN进行同样的操作,并且充分利用其全部的性能。假设有以下两种方法。采用LUN中磁盘驱动器最外圈的柱面以获得最大性能,并且向厂商咨询磁盘托架的最大性能。在这两个值中,取较低的一个值。对你所拥有的所有的LUN重复进行8+1和8+2操作,使用其全部的性能。对于非常重视奇偶性能的写操作来说,性能也应该是一样的。如果不是这样,那么奇偶处理器速度就不够快,或者是RAID的后端性能设计不好,也可能是两者兼而有之。
既然高性能处理器性价比非常高,要确定是否是处理器的问题非常困难,在现在这个年代,几乎是不可能的。另一方面,RAID控制器后端的设计非常复杂,所以它通常是问题所在。今天,绝大部分的RAID控制器都支持使用一个FC fabric连接把每个磁盘托架连接起来,在托架内部可能使用FC-AL(光纤通道仲裁环路)、SATA或者SAS连接。需要理解的第一个问题是从RAID控制器到主机的性能和从RAID控制器到缓存之间的性能比。对于中端控制器,这个比例通常在1:1到1:4之间,有时候会更高(从控制器到磁盘托架之间的带宽更高)。请注意,如果你使用的是RAID-6的话,就需要更多的带宽,这是因为要对第二个奇偶驱动器进行写操作,对于一些厂商的产品来说,可能还有读操作。
看看下面这个例子。比如说,你在前端拥有4个4Gb的FC,以及6个从缓存到磁盘托架的通道(1到1.5)。
上面描述的RAID控制器将为这4个4+2 LUN提供最大的带宽。这一点无所谓好坏,但是却说明了一个事实:RAID-6比RAID-5所耗占的带宽更多。一些厂商为了解决读取的带宽问题,采用了不读取所有奇偶驱动器的做法,所以就只剩下写的问题了;其他一些厂商却采取了其他的方法。当然,最糟糕的做法是流式(streaming)I/O,但是同样的问题也存在于IOPS之中,只不过IOPS的问题是寻址和响应时间,而不是带宽。
事先做好计划
RAID-6比RAID-5需要更多的带宽,并且能够影响RAID控制器的性能。在前文所举的例子中,写入的问题不仅仅出现在用户从主机上进行写入的时候,控制器需要重建一个LUN的时候也可能遇到这种问题。了解这一点,对于理解RAID控制器的后端性能,以及相关的、计划中的LUN配置非常重要。尤其对于RAID-6来说更是如此。对中端产品来说,从缓存到主机的控制器性能通常会低于从缓存到磁盘的控制器性能。目前,对于企业产品来说,情况亦是如此。
该文章的主要目的在于让客户在购买任何一款RAID控制器之前,对设置好的配置有所了解,同时对主机需要的I/O有大概的估计,增加重建的潜力。既然RAID-6需要在缓存与磁盘 tray 与RAID-5之间占用更多的带宽,在考虑使用RAID-6技术的时候,也需要认真考虑所需要的配置。