RAID存储设备的发展及其应用
2009-07-20
作者:胡劲草 陈金树
摘 要:介绍了近年来计算机用于RAID的存储设备接口的发展,陈述了RAID设备应用中应当考虑的因素,并在最后指出了目前许多客户在使用RAID盘阵列时存在的误区。
关键词:廉价的冗余磁盘阵列(RAID) 小型计算机系统接口总线(SCSI) 串行存储结构总线(SSA) 光纤通道 I/O
随着数字化革命的推进,对计算机存储系统在存储数据量、可靠性和存取速度上都提出了严峻的挑战。外存储设备成为多媒体、CAD、数据库等应用不可避免的瓶颈。虽然SLED(Single Large Expensive Disk)在数据存储容量和读写速度上有较大幅度的提高,但是与CPU以及内存的发展速度相比较,其性能的提高却显得很有限。从PC机磁盘技术上发展起来的RAID(廉价冗余磁盘阵列)提供了另一个解决方案。和SLED相比,其存储速度,数据可靠性,低功耗和可扩展性等都有很大的优势,因而已经成为目前高速、大容量、关键数据存储解决方案的主流。而正是由于RAID的诸多优点,工业界在这十几年中开发出了一系列可应用于RAID的存储设备接口。本文按照技术的发展顺序,对各种RAID应用存储设备接口作了综合性的介绍。最后,作者分析了现在用户挑选RAID存储设备中存在的误区。
1 存储设备接口
1.1 并行SCSI和SCSI2
并行SCSI(SCSI1)标准是在1986年建立的。时至今日,一些高端服务器和工作站所采用的存储设备接口多数仍然使用的是SCSI。它支持最多可达7个8位设备,最大传输速度可以达到5MB/s。诞生于1992年的SCSI2实际上在并行SCSI基础上进行了改善,目前的标准实现有两种,Fast(传输峰值速度为10MB/s)和Wide(20MB/s)。虽然它可以进行32位的传输,但到目前只用16位进行传输。它支持同步传输模式,差分信号,命令队列和奇偶校验。与SCSI1相比较,它的接头也要小的多。图1为其逻辑框图。
从图1可见,构成一个并行SCSI系统的关键部分是SCSI接口适配卡、数据线,采用菊花链模式连接的驱动器以及端接器(并行SCSI总线要求在总线两端有端接器)。
在此类系统中,要求每个组成设备(包括接口卡和磁盘驱动等)都有一个0~7的唯一ID。为了提高扩展性能,使之可以用于规模更大的系统,SCSI2的LUN支持使之能允许多个逻辑或虚拟设备共享一个物理ID号,而每个逻辑或虚拟设备则通过一个唯一的子地址来标识。
虽然此类SCSI存储设备多用于单一主机的访问,但采用一定的设置技巧,它也可以被用于集群系统中。
由于传输过程中不可避免地存在着噪声和信号衰减,使并行SCSI总线的传输距离不可能太长,通常来说它只能用于传输距离小于3m的应用。为了提高传输距离,业界在系统中引入高电压信号差分(HVD)以增大抗干扰能力,从而使总线的传输距离可以进一步扩展至25m左右,但是差分信号的引入使接口的引脚数目增大了一倍。
由于并行SCSI总线应用的广泛性,在一定时期内其不可能被完全淘汰。而新一代的存储设备接口为了提供对这些SCSI设备的后向兼容,一般都提供了和SCSI总线进行转换的接口桥。
1.2 SCSI3
SCSI3进一步在SCSI2的功能上进行了完善,力图使之有更好的兼容性以拓展其应用空间。和SCSI2相比较,SCSI3支持Ultra SCSI和光纤通道,SCAM支持(一种即插即用的系统自动配置协议)。它支持SCA(Single Connector Attachment)接口,SCA2接口(也就是有热插拔功能的SCA接口)和VHDCI(Very High Density Cable Interface)接口。
1.3 Ultra SCSI(Fast 20)
Ultra SCSI在实现SCSI3协议的基础上将总线的传输带宽增至40MB/s。为了达到更高的传输速度,Ultra SCSI采用了新的信号和时钟技术。为了最大程度的兼容已在应用领域中占主导地位的SCSI2设备,Ultra SCSI的设计使之能和SCSI2设备一块使用,但这种混合使用是以峰值速度下降为总线上所挂最慢设备的传输速度为代价的。
1.4 Ultra2 SCSI
Ultra2 SCSI是在Ultra SCSI基础上迈出的很自然又很重要的一步。它采用LVD(低电平差分信号)技术以及其它的一些改良将总线传输速度进一步提高至80MB/s。同时,Ultra2 SCSI每个通道支持多达16个设备,传输距离可达12m。同时,由于它是在并行SCSI的技术上发展起来的,使之有很好的后向兼容性,价格相对也比较便宜,因此成为目前解决新一代大容量存储系统IO瓶颈的很有竞争力的一个方案,并且也得到了许多存储设备生产厂家的大力支持。
1.5 SSA(Serial Storage Architecture)
为了替代那些陈旧而且慢速的并行SCSI总线接口, IBM牵头联合多个制造商建立了一个新的开放式存储接口标准SSA(ANSI X3T0.1)。SSA的关键技术是所谓的“空间复用技术”,这一技术允许传输在总线上并发进行从而增大传输带宽。和并行SCSI的链接模式相比,SSA采用了不同的拓扑结构:环形拓扑结构,其基本构成框架可如图2所示。每个SSA环可以支持多达127个设备,传输长度可达到15m。
在图2中,SSA控制卡可以同时控制两个数据传输环路,而每个环路上峰值传输速度可以达到80MB/s。
图2的每一环路事实上是一个双环结构,传输指令在这个环路上挨个传递直到到达目的存储器。由于SSA的“空间复用”技术,各个存储器之间可以以最多为20MB/s的速度进行相互备份,从而依靠这种复用达到传输速度总和的增长。但是采用这种技术,当系统需要从存储设备中读或写时,其速度却只能达到20MB/s,低于Ultra SCSI和Ultra2 SCSI。因而这种系统主要应用于集群环境。
双环结构使其有良好的容错性能(这类似于通信中的自愈环的概念)。比如说图2中的磁盘3由于故障不能正常工作,如果磁盘2和4想进行传输,则此时传输就不能通过3来进行。在这种情况下,系统将检测到此故障而将磁盘2和4的路由改至经过控制卡。当环中的某一段磁盘出现故障,比如上图中的3和5同时出现故障,SSA会标志3、4、5不可用,从而形成一个新的单环结构。
1.6 光纤通道仲裁环(FC-AL)
光纤通道是又一种开放式标准,是由ANSI和OSI定义的,它是一种串行的高速数据传输技术,支持许多重要的高层协议,如IP、ATM、IEEE902、HIPPI(High Performance Parallel Interface)、SCSI等。FC并没有它自己的指令集,而仅仅是用来实现在各个FC设备间传输数据。同时,FC并不如它的名字所说局限于用光纤作为其传输介质,事实上它允许采用廉价的铜缆(比如双绞线或者同轴线)按照协议规范来传输(当然此时传输的是电信号)。总之,它是一种规范而非实现的定义。
FC的诸多优点是有目共睹的。它可以有高达100MB/s的传输速度,可以支持多达16兆个设备,传输距离可大于一万米。对多种拓扑结构的支持使它有很好的灵活性,应用范围广阔,结构简单(串行缆线,没有端结器,能够自动分配ID),内置的校验算法使之格外可靠,而对众多协议的支持使它的集成尤为容易。
FC支持的数据包的长度是可变的,从0字节到2048字节。这使它特别适用于象数据库那样IO块较小的应用。同时由于它所引入的额外数据并不多,使之也能很好地用于象视频这样的场合。
FC支持多种拓扑结构,包括点对点结构,仲裁环结构和交换式结构。当用FC来架构存储系统时,一般采用的是仲裁环式的拓扑结构。因此这里有必要了解一下仲裁环拓扑结构。
仲裁环(AL)结构如图3所示,它最多可以菊花链的方式支持达127个端口。在这种结构下,数据在这条链上从一个设备传送到下一个相邻设备。AL上的每个端口被标识为NL端口,在一个链中同一时刻只能有两个当前活动端口,而其它的端口只是为中继器简单地将信号传送到下一个端口。这就是说100MB/s的传输速度实际上为环上的所有设备所共享的。和令牌环一样,环上的所有端口检测经过自己的所有消息,留取属于自己的部分,然后将所有不属于自己的消息传递给下一个端口。
FC-AL的RAID控制卡一般采用单端口控制卡或双端口控制卡的形式。前者提供了一条光纤通道,而后者采用双通道的形式来提高数据传输的可靠性。图4、图5依次给出了单端口和双端口控制卡挂接磁盘存储器的基本框图。
单端口系统成本较低,但是由于它只由单环组成,因而可靠性不高。当缆线或其它连接构件出现故障时,FC控制卡就不能正常地与FC磁盘进行通信。双端口控制卡的结构在一定程度上减少了这种不可靠。由下图可见,在一条缆线出现故障时,双环结构允许用另一条缆线进行所有通信,从而增加了系统的可靠性。
FC硬盘驱动器使用40针的SCA接口,这使之可以无需转换就能直接插入配有SCA插槽的外置式硬盘笼子中。但是SCA接口又使得FC硬盘无法直接挂接到FC控制卡上,而必须通过一个专用的FC-SCA到DB9的适配器进行接口转换。
FC硬盘的笼子并不仅仅简单地提供一个固定FC硬盘的框架,同时它在一定程度上提供了功率和温度的控制。对于那些提供热插拔功能的硬盘笼子,内置有端口旁路电路,用来在环路上的某个硬盘出现故障时将此硬盘旁路,从而保证整个环路仍然畅通。
为了向某些应用提供最高的数据安全,一些硬盘笼子上配备有两条完全独立的环路,以备在一条通路出现故障时系统能够照常运作。同时高档的硬盘笼子必须提供一个管理接口用来和主机进行控制信息的通信,如向主机报告风扇和电源故障,以及当主机检测到有一硬盘出现用指示灯标识此硬盘。由于通常情况下每个FC存储设备间的距离不是很大,因而在此类系统中一般采用铜缆,如屏蔽双绞线,代替昂贵的光缆来作为传输介质。利用铜缆在100MB/s的码率下可以达到25m的传输距离。
如果各个FC存储设备间距超过了25m,则应用光纤替代铜缆作为传输介质。在上述码率下,采用62.5μm的多模光纤传输距离可达175m,用50μm多模光纤传输距离可达500m,而用9μm的单模光纤更可以将传输距离增至10km。为了采用光纤作为传输介质,FC控制卡和硬盘笼子必须配置有MIA(Media Interface Adapter)来实现光电信号的转换。
2 RAID应用中应注意的一些方面
RAID的一个很诱人的特点是它能将数据同时分散到数个磁盘中进行读写,从而可以几倍于单一磁盘的速度进行数据传输。由于FC-AL能够轻而易举地将传输速度提高至100Mbyte/s,而Ultra 2 SCSI的峰值传输速度也可以达到80MB/s,Ultra Wide SCSI-3的数据传输速度则为40MB/s。与这些速度相比,实际物理硬盘的读写速度则要慢的多了。7200转的Ultra Wide SCSI-3读写速度只有不到10MB/s。为了进一步提高速度,制造商们费力地加快磁盘转速,并且为针对RAID应用制造了转速高达10000转的磁盘,但其读写速度仍然只能达到12MB/s。同时,伴随高转速而来的诸如功耗,散热等问题不可避免地导致了制造成本的大幅度提高,使速度上的突破相对成本来说似乎有些得不偿失。这就不难解释为什么在大多数应用方案中用户都尽可能多地在阵列控制卡上挂接磁盘,以求最大限度的利用总线带宽了。
但是增加磁盘的速度并不能无限制地增大传输速度。以Ultra Wide SCSI-3为例,理论上在挂接了4个7200转的硬盘后总线带宽就已经饱和了。此时总线带宽就成为了整个IO系统的瓶颈。为了进一步提高传输速度,不少硬件RAID控制卡提供了同时利用多条内部SCSI总线的方法来增加传输带宽。
在对传输速度需要求进行精确估计的时候,除了上面所说的一些数据外还需考虑IO块大小以及传输SCSI指令所需额外带宽的因素。通常情况下传输1M的数据,需要传送大约320K的SCSI指令数据。仍以上面所说的Ultra Wide SCSI-3为例,在理想情况下,如果每个Ultra Wide SCSI-3硬盘以10MB/s的速度进行读写,那么在挂接3个硬盘时,SCSI指令所引入的额外数据将达到30MB/s×320K=9.6MB/s,也就是说在挂接3个硬盘时,总线带宽就已经饱和了。虽然在同步突发传输方式下,指令数据比较明显地下降,但是由于多数应用并不是持续地工作在突发方式,因此在传输速度要求很高的情况下,这种额外数据的引入对传输速度的影响是不容忽视的。FC-AL采用了一种特殊的处理方法,它在传输SCSI指令时首先将所有的指令打成一个包,将此包在数据传输开始前进行传送。通过这种处理,很大程度地压缩了指令的额外数据,从而可以使其总线上的持续传输速度达到90MB/s。
RAID系统处理数据传输的时间可以分为以下三部分:操作系统产生IO请求包的时间,RAID控制卡及磁盘驱动器处理IO请求的时间以及磁盘用于实际读写数据块的时间。和前两个速度相比较,磁盘的实际读写速度成为了瓶颈。为了提高系统的性能,一般的RAID控制器上都配有大量的缓存用来暂时转储数据。由于RAID控制卡能快速地将CPU要写的数据首先存储到缓存中作为过渡,因此大幅度地减少了在写盘过程中消耗的CPU资源。而新一代的智能型控制卡更有超前读的缓存,使读盘时的CPU资源也在一定程度上得到了节约。因此在选择存储设备时,用户也应根据自己的应用确认系统所应采用的缓存策略。
3 用户选购RAID系统时的误区
在各RAID生产、销售商大张旗鼓地鼓吹各自产品传输速度的今天,大家似乎都忘了RAID的另一个重要角色:通过数据冗余来实现对关键数据的保护。传输速度成为各家公司推销其产品的叫卖点,这造成了不少用户不从自身应用的特殊性(例如应用中数据的可靠性要求,平均IO的数据块大小以及设备的软件支持)考虑,在购买RAID系统时盲目地追求厂商的标称传输速度。
事实上,由于应用的差异,不可能存在一种对所有应用而言都是最优的方案。用户在购买RAID系统时,应该从自己的应用出发,通过分析实际的IO负载和主机配置对应用有一个清楚的认识。这就意味着用户必须了解应用中典型IO块的大小,对数据容错性能的要求确定自己所应采用的RAID级别。同时根据所需要达到的峰值速度以及平均速度,数据共享等一系列指标,在考虑到各个RAID生产厂商在对系统定义上的差异(如有些厂商使用每秒能进行的IO请求数而不是用MB/s来衡量系统速度,有些厂商对RAID级别的定义又有可能和工业标准不通等等)下,通过仔细的分析和市场调研来决定最后的解决方案。
参考文献
1 Andreas Koepf.Fibre Channel Technology.USA:ICP Cor-poration,1998
2 Andreas Koepf.New Mass Storage Interfaces:Ultra 2SCSI and Fibre Channel.USA:ICP Corporation,1999
3 Brian R. Sorby.Throughput And I/O's Within RAID Applications.USA:Computer Technology Review
4 David A. Patterson,Garth Gibson,et al. A Case for Redundant Arrays of Inexpensive Disks (RAID).USA:University of California Berkeley,1987
5 David N.Reilly.New Technologies Put MoreIntelligence on RAID Controllers.Computer Technology Review.July 1997
6 Eric Ridedel,Catharine Van Ingen,Jim Gray.A Perfor-mance Study of Sequential IO on Windows NTTM 4.0.USA:Microsoft Research,September 1997
7 Grey P.Schulz.New Storage Interfaces.USA:Computer Technology Review,July 1997
8 Greg P. Schulz.SSA and Fibre Channel-Myths and Realities.USA:Computer Technology Review.August 1997
9 Greg P. Schulz.Fibre Channel and Storage Area Net-works.USA:Computer Technology Review.October 1999
10 Jim Gray.Prashant Shenoy.Rules of Thumb in Data Engineering.USA:Microsoft Research,February 2000
11 Stephen Ferrari.PCI-to-SCSI RAID vs SCSI-to-SCSI RAID - An Application Discussion.USA:Computer Technology Review,June 1999
12 Serial Storage Architecture - A High-Performance Open Storage Interface.IBM WWW, 1997
13 RAID definitions.Adjile Systems WWW