Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11677105
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-12-05 11:16:27

   不久之前,RAID-6这个RAID层仅仅存在于教科书之中,厂商们还没有实现它。RAID价格昂贵,增加一个附加的奇偶驱动器的价格也颇为可观。既然RAID改造速度相对比较快,如果拿磁盘的性能与密度相比(后面还将详细讨论这一点),RAID-6就不是一个大问题了。
 
SATA硬盘的密度非常高,但是错误率也比较高,性能比较低,RAID-6设计很快就能够解决这些问题,使其能够适用于高端和高性能要求的环境之中。
 
RAID-6变得越来越流行,所以在评估RAID控制器的时候,除了考虑其他一些因素,最好还要考虑一下它和RAID-5的异同。
 
找到问题所在
如下图所示,读取单一驱动器的时间随着时间的推移出现了明显的增长:
RAID-6渐行渐近
 
造成这种情况的主要原因是磁盘驱动器的密度的增长远比性能的提升要快。从1991年以来,企业磁盘(SCSI和FC)已经从500MB发展到了300GB,增长了600倍。而在同一时期内,最高性能仅仅从4MB/s提高到了125MB/s,只增长了31.25倍。如果磁盘驱动器的性能可以和密度同步提高的话,我们就可以拥有2.4GB/s性能的磁盘驱动器了。这听起来很不错,不是么?但是不太可能在短期内实现。
 
显而易见,重建RAID LUN(Logical Unit Number,逻辑单元号)的时间显著地增加了。另一个值得关注的问题是:让我们回到1996年,当时即将推出1Gb半双工的FC。磁盘驱动器的传输速度是16MB/s,密度为9GB。从1996年到今天,驱动器的最大性能增长了7.8倍,而密度却增长了33.33倍,单个驱动器只增长了4倍。是的,我们实现了全双工传输,但是在1996年,单一FC通道最多可以支持6.25个驱动器全速读写。今天的能支持的数量是3.2。我认为企业级驱动器还没有任何显著的改变,能够扭转这种趋势。使用SATA驱动器只是更加恶化了这一问题,因为驱动器密度更大了,但是传输速度却在下降。我相信这将是RAID-6的推动因素之一,因为随着密度的增加,RAID-5丢失数据的风险也明显地增加了。
 
RAID控制器性能
既然如此,我们可以预言,至少在可以预见的未来,对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硬盘的差别,因为我已经在以前的文章里介绍过这些内容了
 
 
检查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,并使用可以写入原设备的、多线程的程序,例如从 现在对你所有的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-6渐行渐近
上面描述的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技术的时候,也需要认真考虑所需要的配置。

 
 
 
 
阅读(562) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~