直到不久前RAID-6技术还只是书本上的理论上的一种RAID层次,没有被厂商所施行。实现RAID本身已经很昂贵,而增加额外的奇偶校验磁盘更需要增加不少成本。而且,比较起磁盘性能和磁盘密度(下面将继续谈到),RAID的重建相对来说比较快,因此RAID-6当时没有为人所重视。
而后SATA(串行ATA)驱动器出现,它拥有非常高的磁盘密度,但是故障率也很高,磁盘性能也比较低,随之而来的RAID-6设计却可以保证它们可以在高端和高性能环境下使用。
随着RAID-6越来越受欢迎,在评估RAID控制器的时候,现在我们应该看一下,相对于RAID-5来说,它有什么需要我们考虑的问题。
推动RAID-6的因素
如同下图所示,随着时间,读取单一驱动器的时间迅速增加:
这种情况的主要原因是磁盘驱动器的密度比起磁盘性能的发展要快许多。对企业级磁盘(SCSI和光纤通道驱动器)来说,从1991年以来,其容量已经从500MB发展到300GB,增加了600倍。在同一时期,最高性能从4MB/秒发展到125MB/秒,增加31.25倍。如果磁盘性能的增长速度能够和磁盘密度一样的话,那么驱动器的读写速率要达到大约2.4GB/秒。这是一个很大的数字,但实现它却并不令人乐观。
因此,现在很清楚了,重建RAID LUN的所需时间在迅速增加。还有一点要考虑:举个例子,回到1996年,当时1Gb半双工光纤通道刚刚出现,磁盘驱动器的传输速率是16MB/秒,磁盘密度是9GB。从1996年至今,驱动器的最高性能增长了7.8倍,而磁盘密度则增长了33.33倍。但是在1996年,一条光纤通道的通道最多可以支持6.25个驱动器全速读写。而现在,这个数字是3.2个。现在的企业级驱动器还没有任何明显进展可以改变这种趋势。增加SATA驱动器只会使问题更加恶化,因为这样驱动器的密度就更高,而传输速率更低。相信这也是RAID-6的一个驱动因素,因为随着密度增加,RAID-5的数据损失风险也越大。
RAID控制器性能
有鉴于上述这些理由,我们可以清楚的看到,至少在可预见的未来,对于光纤通道,由于密度越来越高而接口越来越慢的磁盘所导致的重建时间增加,RAID-6将更加普遍。加上SATA驱动器的使用,很清楚,RAID-6已成趋势,除非其他人发明出更好的东西。
问题是RAID-6要求更多的控制器资源来计算额外的奇偶校验,用更多的带宽来写奇偶校验,而且一些厂商的RAID-6要读额外的奇偶校验。需要多少带宽取决于RAID-6的设置。例如,对于8+1 RAID-5,你需要9个驱动器的带宽;对于RAID-6 8+2,你需要多11%的带宽,或10个驱动器的带宽。对4+1 RAID-5,你需要5个驱动器的带宽,但是对RAID-6 4+2,你需要多20%的带宽,或6个驱动器的带宽。也就是说每个逻辑单元需要多20%的带宽,当然,几乎所有RAID控制器都能做到这一点,但是如果所有系统内的逻辑单元都是RAID-6呢?
你的控制器是否有多11%或20%的计算能力来计算奇偶校验,而且还有更多的控制器带宽来给所有的磁盘托架吗?你需要拥有应付RAID重建的潜在能力,且你需要想办法让RAID控制器运行得比它所设计的还要快。对于所有考虑RAID-6的人,理解RAID控制器的一些设计问题有助于更好的理解你所购买的控制器是否符合你的性能需求,这一点十分重要。
检验RAID性能
当评估RAID控制器的时候,需要考虑两个部分,以便确保相对于RAID-5来说它们更能够满足你的RAID-6的性能需求,因为几乎所有的中等RAID厂商都是围绕RAID-5的性能要求,而不是RAID-6的性能要求来设计其控制器的。这两个部分一个是计算奇偶校验的处理器的性能,第二个是后端通道的性能。
处理器的性能应该很容易衡量:
首先让一个厂商提供一个磁盘托架或最多四个磁盘托架,在开始前,你需要知道后端连接的数目以及这些连接的性能。举个例子,如果你有四个后端4GbFC连接,你将需要将这四个连接和光纤通道HBA以及能够全速运行这些HBA的一个或多个系统匹配起来。你需要确保前端性能(从服务器到RAID的性能),和后端性能(从RAID控制到到磁盘托架的性能)都能匹配。建立一个4+1的LUN和4+2的LUN,使用一个能够多线程写入裸设备的程序,例如来自此处的xdd。4+1的写入必须和4+2的写入相同。
现在对你所有的逻辑单元号进行同样的性能测试,并按全速运行。假定全速有两种方式。通过外部柱面,获得该LUN的磁盘驱动器的最高性能;询问该厂商RAID到磁盘托架的最高性能是多少。取这两个数值的最小值。重复,使用8+1和8+2的逻辑单元号,全速运行。写入性能中奇偶校验性能是关键。写入性能必须一致。如果不一致,要么是该奇偶校验处理器不够快,要么是RAID的后端性能没有设计好,或者两者都是。
由于高性能处理器的性价比非常好,出于处理器的原因而导致性能下降比较难,所以,在今时今日不太可能。另一方面,设计RAID后端是很复杂的,因此很可能它是主要原因。现在大部分的RAID控制器支持FC光纤连接到每个磁盘托架,而且在托架内还可以有FC-Al,SATA 或SAS连接。第一个需要理解的事情是从RAID控制器到主机的性能比去从RAID控制器到高速缓存的性能所得的比值。中端控制器的这一比值经常是在1:1到1:4之间,有些时候更多(控制器有更多带宽到磁盘托架)。记住,对于RAID-6,你要使用更多的带宽以供第二个奇偶校验驱动器的写入----而且,许多厂商还需要读出。
看下面例子。比如说前端有4个4GB光纤通道,而有6个通道是从高速缓存到磁盘托架(1比1.5)。
RAID设置 |
逻辑单元号数量 |
RAID控制器所要求的总带宽(MB/秒) |
磁盘需要的总带宽(MB/秒) |
4+1 |
4 |
1600 |
2000 |
4+2 |
4 |
1600 |
2400 |
8+1 |
4 |
1600 |
1800 |
8+2 |
4 |
1600 |
2000 |
上面所述的RAID控制器需要使用最大带宽给4个4+2逻辑单元号。这既不好也不坏,只是说明RAID-6需要比RAID-5使用更多带宽。一些厂商解决读取带宽的问题方法是不读取所有奇偶校验驱动器,因此这个问题仅限于写入带宽;其他厂商采取其他方法。当然,这对于优化输入/输出来说是最坏的情况,但是对IOPS来说也有同样的概念,只不过问题从带宽变成了IOPS寻找和延迟时间。
提前规划
RAID-6比起RAID-5需要更多的带宽,而且会影响到你的RAID控制器的性能。笔者所提供的写入问题的例子不仅可能是因为来自主机的用户写入,还可能是因为控制器要求重建一个LUN。理解RAID控制器的后端性能并将其联系到计划的LUN设置中去很重要,尤其是对RAID-6。对中端产品来说,从高速缓存到主机的控制器性能总是低于从高速缓存到磁盘的性能,对于企业级产品来说,现在也是这种情况。
所有这些的意思就是企业在购买任何RAID控制器之前,需要理解规划设置以及主机需要多少I/O,并为潜在的重建增加额外I/O。,由于RAID-6将比RAID-5需要更多的带宽用于高速缓存和磁盘托架之间的数据传输,因此,企业必须认真考虑RAID-6的设置。