从SASI到SAS:SCSI走过25年

来源:互联网 发布:qq飞车鸿黎耀世数据 编辑:程序博客网 时间:2024/06/05 10:23

转载:http://blog.chinaunix.net/uid-21795529-id-1815097.html

25年过去,标准变迁人已老

今年对存储行业来说似乎是个用于纪念的年份——既是硬盘(驱动器)诞生50周年,又是 SCSI(Small Computer System Interface,小型计算机系统接口)诞生25周年。硬盘的50周年纪念日还没有来到,而SCSI的25周年纪念日刚过去没多久,现在差不多处于两者 之间。硬盘的接口不止SCSI一种,而SCSI的应用范围更远超过硬盘的领地,但这并不妨碍两者之间的紧密关系。

扯远了,还是先说说SCSI的纪念日吧。由厂商成员运行建立的支持和推广SCSI技术的工业协会SCSI商业协会(SCSI Trade Association,STA)今年6月5日庆祝了SCSI诞生25周年。 1981年,NCR与Shugart Associates两家公司协力提出由Shugart开发的早期I/O技术SASI,于1981年10月在ANSI X3T9.3委员会会议上作为一份预期的ANSI(美国国家标准局)标准草案。随着ANSI的接受和其他存储公司加入该新技术的开发,SASI被更名为 SCSI并成为存储I/O的传奇。

NCR现在主要以ATM(自动取款机)和旗下的Teradata数据仓库业务分部而知名,影响力与昔日 相比已经差了很多,但当时该公司负责SASI提案的John Lohmeyer继续在行业中耕耘,于ANSI负责SCSI标准制定和管理的T10技术委员会担任主席多年至今。后被Xerox(施乐)收购的 Shugart Associates先后走出了Seagate(希捷)和Conner的创始人,由于该公司无意继续发展SASI,负责的一班工程师离开并创建了 Adaptec。

笔者有幸于2004年10月下旬在LSI Logic公司总部见到John Lohmeyer,背后的专利墙上有他的两项专利

本站希望以我们的方式来纪念SCSI走过的25年,笔者想起了自己刊登在《计算机世界》2002年第 28期(2002年7月29日)B1~B11版上的专题文章《ATA串起SCSI——存储接口世纪联姻》。这组文章从SASI一直讲到Serial Attached SCSI(SAS)开始草案制订,虽然距今已有4年,但配上笔者在一年后写的《光大祖业 奉子成婚——SAS与SATA-Ⅱ专题》(下面简称“光大祖业”),已经可以较为完整地反映整个SCSI的发展史,因此将其翻出重新编辑刊登于此,供所有对SCSI技术感兴趣的读者参考,聊作纪念。

正如上面所说,笔者在介绍SCSI的时候总是忘不了ATA,这一方面是由于两种接口技术前后脚来到世 上,互相印衬,了解ATA(IDE)有助于深入理解SCSI的思想,更因为Serial ATA直接引发了并行SCSI向SAS的转变。有鉴于此,本文没有用过多的篇幅描述SCSI的具体规范,也没有搜罗各种连接器的图片,而是把重点放在了历 史发展和对设计思想的理解上。

John Lohmeyer亲自负责ANSI T10网站的更新,后面的屏幕上是SCSI-3架构模型图

另外,本文在对SAS的介绍上,与“光大祖业”专题的差距十分明显,且有一些冲突之处。这主要是因为当 时距Serial Attached SCSI工作组宣布成立仅有不到8个月的时间,T10刚开始标准草案的制订工作,存储业内听说过的人都不多,笔者作为一个媒体从业人员要获得信息就更加困 难。标准制订初期的草案往往会有大幅度的修改,直接造成了笔者时隔一年所写两篇文章中部分信息的不一致。虽然是重新刊登,但笔者没有修改文章的内容——包 括当时业内对SAS时间表的乐观展望——就是希望能够忠实地反映原貌。

好了,就交待到这里,接下来——正文开始

以下内容刊登于《计算机世界》2002年第28期产品与技术版

USB和IEEE 1394已经基本统治了外设接口,串行化的浪潮正在向机内存储设备接口涌来。

串行?是说Serial ATA吗?地球人都知道!Seagate基于Serial ATA接口的Barracuda ATA Ⅴ硬盘不久即会上市,Serial ATA控制卡/RAID卡也将随之杀到,串行接口不是马上就要成为现实了吗?

然而,仅有ATA参与的串行化是不全面的,SCSI不应成为被我们遗忘的角落。笔者一直密切关注着这一 技术的发展脉络。在征求了Maxtor美国总部高端存储部门市场推广副总裁John Joseph先生和Adaptec中国区业务发展经理吴刚先生对Serial Attached SCSI的看法之后,更加坚定了我们将其介绍给读者的想法。

Serial Attached SCSI得名于在Serial ATA的电气和物理层接口上运行SCSI命令集,但实际上可不止这么简单。此外,Serial ATA Ⅱ的进展也值得我们关注。

并不是只有ATA向SCSI学习,SCSI也可以将ATA的最新成果为自己所用。很多时候,技术没有好坏之分,只有适合与否,尤其是在应用需求日趋多元化的今天。

鉴于这些话题已经超出了Serial ATA和Serial Attached SCSI本身的范畴,我们用很大篇幅回顾了ATA与SCSI的历史,相信这会有助于读者理解今天向串行的转变。如果您确信自己不需要了解这些,也可以直接 翻到后面介绍Serial Attached SCSI的章节。

还等什么呢?马上开始吧!在这个专题里,听我们为您讲述这两个接口的变迁……

一个名字的传奇:何止软驱和硬驱?

如果存储业也像NBA那样为其历史上的传奇人物设立一个名人堂,Alan F. Shugart肯定将毫无争议地入选。抛开Maverick等充满感情色彩的昵称,Spin Doctor(旋转博士)和Disk Drive King(磁盘驱动器之王)应该是业内对这位Computer Pioneer(计算机先驱)最贴切的评价。

1951年Shugart大学毕业进入IBM任现场工程师,1955年参与了世界第一台磁盘驱动器 RAMAC 305的开发。在担任IBM 2321数据单元驱动器(data cell drive)和IBM 1301“高级磁盘文件存储器”(Advanced Disk File,世界上第一台采用滑动空气轴承的磁盘驱动器)等多个项目的经理之后,Shugart被提升为负责所有内存产品的经理,最后位居系统开发分部工程 主任。发明软盘驱动器是Shugart在IBM末期的一大功绩——1967年他手下的资深工程师David Noble实际上提出了8英寸的软介质和布衬护套,并在1973年成为工业标准。

1969年Shugart从IBM辞职,来到Memorex任产品开发副总裁。在现代硬盘驱动器的始祖 IBM 3340“温彻斯特”问世的1973年,Shugart以共同创办人的身份进入Shugart Associates,但很快又在1974年底离开了这家以自己姓氏命名的公司。处于上升势头的Shugart Associates则于1976年推出了5.25英寸的SA-400软盘驱动器,电气设计和接口规范仍基于最初的Shugart设计,在成为IBM PC的标准配置后迅速取代了8英寸驱动器,其接口也被包括3.5英寸在内的所有PC软驱所沿用。

以技术工业私人顾问的身份过了几年闲云野鹤的生活后,难耐寂寞的Shugart在1979年卷土重来, 与Finis Conner创立了Shugart Technology公司。1980年6月,Shugart Technology推出了世界上第一台5.25英寸硬盘驱动器ST-506,全高(3.2英寸厚度)5MB容量,虽然在3.5英寸硬盘(驱动器)就有 200GB容量的今天看来它简直就是一辆坦克,但与先前的8英寸乃至14英寸规格相比却无疑是个巨大的飞跃!第二年该公司又推出了容量翻番的ST-412 并在1983年被IBM PC/XT采用,硬盘业就此进入了开放市场的超车道。

产品相互兼容是开放市场最基本的游戏规则,因此制定统一的标准势在必行,而Shugart参与创立的两 个公司分别起到了至关重要的引导作用:Shugart Associates开发了SASI接口,后来发展为人所共知的SCSI;Shugart Technology的ST-506/412不仅将曾经高不可攀的硬盘驱动器带入个人电脑领域,也间接催生了广为应用的ATA(作为企业级和个人存储设备 的标准接口,SCSI和ATA是贯穿本次专题的两位主角,详情见后叙)。

1985年,为了避免与已经被Xerox收购的Shugart Associates相混淆,Shugart Technology更名为Seagate Technology(也就是今天人所共知的希捷)。同年,Finis Conner因为与Alan Shugart发生意见分歧而离开Seagate Technology,并于1986年创立了Conner Peripherals——一家在硬盘驱动器进入3.5英寸时代后风光一时的公司。

不过,Alan Shugart并没有在Conner Peripherals的迅速崛起面前迷茫,在他的领导下,Seagate Technology于1989年10月购并了CDC的硬盘驱动器生产事业部门Imprimis Technology,成功打入高容量硬盘驱动器市场——在那个时代,高容量几乎就是高性能的代名词。自此Seagate Technology便以高转速硬盘驱动器领先业界:1990年推出全球第一台5400RPM的5.25英寸硬盘驱动器,1992年更将业界带入 7200RPM时代。随着Seagate Technology的步步高升,Alan Shugart的个人声望也达到了顶峰,从1993年~1998年连续6年被DataStorage评为“最值得景仰的业界领导人”。

然而,1996年对Conner Peripherals的并购成了Alan Shugart的滑铁卢。由于消化不良,Seagate Technology在市场上节节败退,两年内占有率就损失了10%,终于在1998年被迫放弃2.5英寸硬盘驱动器业务并裁员达1万名之多,难辞其咎的 Alan Shugart只好在董事会的要求下退休。

从那以后Alan Shugart就逐渐远离了我们的视线。尽管如此,笔者仍然会时常记起这个名字——不仅是因为他缔造了有史以来最为成功的独立硬盘供应商,更感念两个 “Shugart公司”把软盘驱动器和硬盘驱动器带入了普通人的生活、对存储设备接口统一做出的贡献……尤其是在这个想到软盘驱动器正走向消亡,而 SCSI和ATA也行将告别并行时代的仲夏之夜!

从SASI到SCSI

Shugart Associates早在1979年就已意识到统一硬盘接口的必要性,于是着手开发了一个8位并行智能外部设备接口,名为SASI(Shugart Associates System Interface)。1980年Shugart Associates向ANSI(美国国家标准协会)要求将SASI列为ANSI的正式标准但未获批准。

经过与NCR合作进行规格修正,SASI于1981年晚些时候被再次提交给ANSI,1982年被 ANSI下属的X3T9.2委员会接受。到了1986年,已经更名为SCSI(Small Computer System Interface)的接口规格正式成为ANSI X3.131-1986标准(SCSI-1),不过早在1984年草案提交审批的时候,市场上已经有很多特性超出或少于该提议的设备了,而最为著名的就是 Apple在1985年推出的Macintosh将SCSI选为外部设备标准接口。

初具规模——SCSI-1

SCSI-1定义了8位(并行)数据总线,使用50针数据线(或25对双绞线电缆),其主要规格摘要如下:

  • 同一总线上可以连接8台SCSI装置(包括计算机主机),提供总线优先权仲裁功能,地址最高者(ID7,通常为SCSI适配器)拥有最高优先权;
  • 提供同步和异步两种传输方式,同步最高传输速率为5MB/s;
  • 采用逻辑块寻址(Logical Block Addressing,LBA)方式,LBA的大小通常默认设定为512字节但可以根据需要更改,在驱动器容量支持上明显优于传统的柱面/磁头/扇区(Cylinder/Head/Sector,CHS)寻址方式;
  • 提供两种电气规格数据线配置,单端(Single-End,SE)型数据线最长可达6米,差动(Differential)型可达25米,两种配置的装置不能同时串接到同一总线上,也不能互换连接;
  • 提供多重I/O连接配置——从单一启动/目标装置到多重启动/(多重)目标装置,在PC系统中启始装置通常为SCSI适配卡,而目标装置则可视为硬盘驱动器、磁带机和光驱等存储设备。

由于在原始SCSI-1文本中很多命令和特性是可选的,而且很少或不能保证一个特定的外设支持预期的命 令,这使得整个业界定义了18条基本SCSI命令组成的公共命令集(Common Command Set,CCS),成为所有外设支持的最小命令集,并构成了SCSI-2规范的基础。

成长岁月——SCSI-2

其实在SCSI-1推出后不久,作为其后续版本的SCSI-2就被提出,硬盘驱动器厂商也在1988年 即开始根据SCSI-2的规格草案来设计新一代SCSI接口产品;而X3T9委员会虽然在1990年8月以X3.131-1990批准了SCSI-2,但 却在同年12月ANSI出版前收回文档进行修改——尽管对1990年版本的改动很少,最后通过的时候也已是1994年1月了(ANSI X3.131-1994)。

除了CCS之外,SCSI-2比SCSI-1新增的主要功能包括:

  • 在8位数据总线情况下传输速率为10MB/s的Fast SCSI-2;
  • 数据总线拓宽至16位的Wide SCSI,采用68针连接器和线缆,Fast Wide SCSI-2的传输速率可达20MB/s;
  • Command Queuing即指令队列,使一个设备可同时接受多个指令(就SCSI而言可达256条)且以其认为效率最高的次序执行,这对可能同时有几个请求送到SCSI总线上的多任务操作系统特别有利;
  • 尺寸缩小一半的高密度连接器,让小型周边设备得以使用,并且改用由启动设备提供电源的主动式终结器,提高了Fast SCSI传输时的信号稳定性;
  • 工作站厂商Sun Microsystems和磁盘驱动器厂商Seagate Technology、Conner Peripheral共同提出的单一连接器附属装置(Single Connector Attachment,SCA),通过将50针或68针的接口及电源、SCSI ID、LED、主轴马达同步等功能连接器一起集成在(最初)由AMP公司出品的80针D形接口中,提供适用于背板环境的热插拔能力。

枝繁叶茂——SCSI-3

与前几个标准的制订过程类似,在SCSI-2规格还没有正式成为ANSI标准之前的1993 年,SCSI-3规格标准的草拟工作已经展开,但与SCSI-1和SCSI-2不同的是,SCSI-3并非是包含SCSI所有内容的一份文档,而是涵盖了 物理连接、电气接口、主要命令集和具体协议的文档集。简称为SAM(SCSI-3 Architecture Model)的SCSI-3架构模型采用了层级(Layer)的概念,在协议和互连方面增加了光纤通道(Fibre Channel,FC)、IEEE 1394、SSA等串行接口,原来SCSI-1和SCSI-2所围绕的并行接口被称为SPI(SCSI-3 Parallel Interface),我们现在所说的SCSI通常即指这个SCSI-3体系结构中的并行分支。

最初的SCSI-3架构模型(SCSI-3 Architecture Model,SAM)

SPI支持的设备数量达到了16个(减去SCSI适配器还有15个),新引入的低电压差动(Low Voltage Differential,LVD)信号传输模式将数据线长度由SE的4个(装置)3米/ 8个1.5米增加至点到点25米/16个12米,让Wide SCSI的连接能力不再只是规格上的数字。需要注意的是,LVD虽然也支持8位数据总线,但并没有任何一家硬盘驱动器厂商推出过相应的产品。

SPI还有一个通俗的名字Ultra SCSI,其开发者DEC称之为Fast 20——时钟频率20MHz,8位Ultra SCSI最高数据传输速率20MB/s,16位的Ultra Wide SCSI可达40MB/s。SPI-2即Ultra2 SCSI或Fast 40,频率和最高数据传输速率在Ultra SCSI的基础上翻番。不过,Ultra3 SCSI可就不仅仅是Fast 80这么简单了。

ATA——集成出来的标准

在硬盘驱动器与其控制器相分离的20世纪80年代初,ST-506/412的出现确立了两者互连的标 准,即任何ST-506/412驱动器可用任何ST-506/412控制器工作。不过,PC/XT系统对硬盘接口的支持是由控制器上的BIOS芯片提供 的,AT系统才开始在主板BIOS中集成ST-506/412接口支持。

由于驱动器与控制器之间需要电缆连接,所带来的定时和噪声问题限制了硬盘所能达到的性能、容量及可靠 性,1983年Maxtor(迈拓)带头推出了ESDI(Enhanced Small Device Interface,增强的小型设备接口),通过将原本位于控制器上的编解码器(endec,负责数/模转换)内建在驱动器一侧,性能与可靠性明显增强, 作为继承ST-506/412的高性能标准。80年代末,ESDI曾在高端系统中得到普遍应用——直至SCSI入主。

1985年,出于对驱动器与控制卡相分离的高成本不满,Compaq试图以IBM PC/AT兼容系统为基本架构开发一个既经济又有相当性能保障的硬盘驱动器解决方案,便委托当时PC硬盘驱动器控制卡的领导厂商Western Digital(WD,西部数据)为硬盘驱动器控制器设计一个接口控制芯片,然后将其交给CDC生产高容量硬盘著称的子公司MPI(后更名为 Imprimis Technology,1989年被Seagate收购),在原CDC的Wren Ⅱ半高型5.25英寸硬盘驱动器基础上推出了世界第一台AT接口硬盘驱动器CDC-94204-74,于1986年随首台Compaq 386系统销售。

IDE与ATA

不过,真正让AT接口迅速攻占市场并被广泛接受的却是Miniscribe(1991年被Maxtor 并购)和Conner Peripheral分别出品的3.5英寸40MB硬盘驱动器。因为采用了不同于ST-506/412和ESDI的硬盘驱动器电路板集成控制器设计,这些 AT接口硬盘驱动器也被称为IDE(Integrated Drive Electronics,集成驱动器电子)设备。随着AT接口取代ST-506/412和ESDI的趋势逐渐显露,制订业界统一的规格标准势在必行。

1988年10月,成立的最初目的是将SCSI用最简单的软件接口(驱动程序)移植到IBM PC兼容系统上的CAM(Common Access Method,公共访问方法)委员会开始制订后来为人熟知的CAM规格,在被ANSI X3T9委员会接受后正式定名为ATA(AT Attachment,AT附加装置)。ATA的第一个版本是迟至1994年才正式出版的ASNI X3.221-1994,即ATA-1,其主要特色为:

  • ATA是一个单纯的硬盘驱动器接口,不支持除此以外的接口设备(譬如光盘驱动器);
  • 16位并行传输,采用40针连接器和电缆,数据线长度不得超过0.46米(18英寸),最多只能接两个硬盘驱动器,遵守主/从配置;
  • 最高突发数据传输率为8.33MB/s(PIO模式2),但受PC/AT系统ISA总线的性能限制,其最大数据传输速率为4MB/s;
  • 受限于PC/AT系统的BIOS,每台硬盘驱动器的最高容量为528MB。

双重身份的ATA-2

1992年ANSI X3T10委员会开始草拟ATA-2规格,不过在此之前ATA接口与PC/AT系统BIOS留下的容量限制已经开始制约硬盘驱动器的发展,于是通过收购 Tandon而变身为硬盘供应商的Western Digital联合一些生产抽取式媒体(如CD-ROM)的存储设备厂商提出了Enhance IDE(E-IDE)规格,而Seagate则提出了大同小异的Fast ATA(后来是Fast ATA-2)规格,两者都被1996年通过的ATA-2标准(ANSI X3.279-1996)所采纳。ATA-2与原ATA标准相比增加的主要功能包括:

  • 支持4台存储装置,包括CD-ROM等抽取式媒体存储设备而不再局限于硬盘驱动器;
  • 取消3针电源连接器,代之以2.5英寸驱动器的44针信号/电源连接器;
  • PCMCIA设备支持(68针);
  • 由于有了更快的VESA局部总线(VL-Bus),定义了最高突发数据传输率达16.6MB/s的PIO模式4(PIO-4)和多字DMA模式2(Multi-word DMA-2);
  • 定义驱动器容量支持高达137.4GB(也就是2001年被突破的137GB容量限制),对容量达8.4GB的驱动器定义了标准CHS/LBA变换方法。

1995年X3T10委员会就开始酝酿ATA-3规格,到1996年4月转交X3T13委员会负责,最 终版本号为X3.298-1997。ATA-3与ATA-2的性能规格完全相同,但增加了著名的自我监视分析及报告系统(Self-Monitoring Analysis and Reporting Technology,即S.M.A.R.T.)。

Ultra ATA时代

为了将CD-ROM驱动器和磁带机等传统的SCSI设备移植到ATA接口上,ATA-4定义了包命令, 即现在常说的ATAPI(AT Attachment with Packet Interface,带有包接口的AT附加装置),整个标准的全称则是ATA/ATAPI-4(NCITS 317-1998)。从此ATAPI不再只是ATA的一个辅助接口,而是完全融入进来,这提升了ATA用作许多其他设备接口的地位。

ATA/ATAPI-4最重大的改变是率先引入了时钟信号上升沿和下降沿都触发数据传输的双沿传输 (DT,原理与我们现在熟知的DDR相同)技术,得以在运行频率不变的情况下将传输速率提高到33MB/s,即我们常说的Ultra ATA/33或Ultra DMA/33。由于PIO模式已不能达到如此高的传输速率,快速的DMA模式开始占据主导地位。为适应传输速率的提升,CRC校验也得到了采用。

此外ATA/ATAPI-4还增加了命令重叠和命令队列以提高设备的处理能力,而Format Track等过时的命令则被抛弃。

ATA/ATAPI-5的主要变动是加入了传输速率达66MB/s的Ultra ATA/66,由于运行频率提高了一倍,在ATA/ATAPI-4中定义为可选的40针-80线电缆成为了必备。

ATA/ATAPI-6除了将传输速率提高到100MB/s(Ultra ATA/100)之外,还支持48位LBA寻址,从而使ATA硬盘能够突破137GB的容量限制,达到惊人的144PB。

SCSI vs. ATA:不平等的较量

在硬盘接口的层面上,SCSI与ATA孰优孰劣多年来一直是各自的拥护者热衷讨论的话题。虽然两种技术具有很强的互补性,彼此不能完全替代,但在二者重叠的中间区域(譬如低端SCSI硬盘与高端IDE硬盘),还是经常会有究竟哪个更好的疑问。

最早的SASI规格书只有短短20页,以现在的标准来看当然是非常简陋,但与几年后AT接口问世时的“ 偷工减料”(据说当初WD仅用三天时间就完成了接口规范的设计)相比还是显得完善许多。从缔造者的初衷来看这并不难理解——前者定位于高性能的系统级接 口,后者则以降低硬盘系统成本为首要目标。

SCSI从一开始就采用了独立的总线设计,而不仅是硬盘的接口;最初的ATA则仅有基本的总线逻辑—— 简单的取自ISA总线,直到更为复杂的PCI总线出现之后才逐渐丰富起来,但其接口特性仍无法与同期的SCSI相提并论——尤其是SCSI在SCSI-3 推出后更上层楼,所涉及的范围已远非ATA能够比拟。不过,如果将讨论范围限制在机内(In-box)存储的硬盘级接口,Ultra ATA与并行SCSI(SPI)还是具有一定可比性的。

接口

在接口的层面上SCSI可谓占尽优势。

  • 连接能力 进入Ultra3时代之后,作为硬盘接口的SCSI总线宽度固定为16位,单一通道所能连接的设备数量也达到了15个;而ATA接口的位宽虽然从一开始就 是16位,但每通道所能连接的设备只有2个——这意味着即便是双通道的ATA也无法与单通道的SCSI相提并论,双通道SCSI的30个设备更是想也不敢 想的。 此外,ATA的连接距离不足半米,尚不及SCSI的十分之一。
  • 适配器 最初的ATA采用PIO(Programmed Input Output,可编程输入输出)传输模式,每一个I/O操作都要在CPU控制下进行,CPU占用率极高——在硬盘读写数据时整个系统几乎停止响应;而 Ultra ATA的出现不仅提高了接口传输率,还标志着DMA(Direct Memory Access,直接内存访问)模式一统天下——系统通过DMA控制器与接口设备沟通,从而大幅度降低了对CPU的占用。相比之下SCSI得益于总线控制能 力较强的适配器,对CPU的依赖程度始终很小。
  • 线缆 很多技术都是SCSI首先采用,但ATA也有走在前面的时候,双沿传输和CRC校验就是一例——1997年的Ultra ATA/33比1998年的Ultra160 SCSI整整早了一年。不过,后来的事实表明如果不使用双沿传输,在传统的40线ATA电缆上基本上得不到33MB/s的传输速率,而最终运行频率提高至 16.6MHz的Ultra ATA/66还是改用了增加40根地线的设计;反观SCSI,运行频率很轻易地就能达到40MHz,应付80MB/s的传输速率根本无需双沿传输,归根结 底还是LVD线缆的潜力更大。至于CRC校验,也是出于保证数据传输完整性考虑的设计 (Ultra ATA出错的风险较大,所以先采用)。

硬盘

对硬盘而言,SCSI和ATA不过是两种接口逻辑而已,与决定其性能表现的HDA(磁头/盘片组件)和控制器设计没有必然联系。

在1998年以前,很多硬盘产品都有ATA和SCSI两个版本——HDA和控制器是一样的,只是接口逻辑(电路)不同而已。由于ATA的接口逻辑明显比SCSI来得简单,因此就单个硬盘的性能表现而言,ATA版本通常要好过SCSI版本。

不过,性能最高的硬盘始终出自SCSI一方,再好的ATA硬盘也只能在低端SCSI硬盘面前耍耍威风, 这是因为SCSI硬盘(整体上)总是拥有更高的主轴转速、更短的寻道时间和更大容量的缓存,也就是说优势仍然来自于HDA和控制器。而之所以会出现这样的 情况,根源仍然在于SCSI是以性能为主要导向,高端用户愿意为一流的性能付出相应的代价;比较而言,ATA首要考虑的则是成本,即以尽可能低的价格获得 够用的性能。从这个层面上说,就算我们把最快的硬盘(目前是15000RPM)改造成ATA接口并证明这样做能获得更好的单机性能,也不会有多少人买账 (因为顶级转速对应的顶级价格与ATA接口的低成本特性是相背离的)。

多工能力

在DMA传输模式得到广泛应用之后,SCSI设备在CPU占用率上的优势基本不复存在,但ATA设备在很多情况下仍然表现出对系统性能的拖累,而且与存储设备本身的速度没有太大关系。

这就涉及到接口的多工操作能力。顾名思义,多工操作能力就是多个(至少2个)设备共同工作的能力。虽说 PC这样的个人系统对多工操作能力的要求不算苛刻,但在光驱早已必不可少的前提下,硬盘和光驱各一台显然是存储子系统的最小配置,而在中高级用户中拥有第 二光驱(譬如刻录机)或硬盘者也不在少数——如果这3或4个设备都采用ATA接口且系统中仅有一个标准的双通道控制器(通常都是如此),那就必然要面对单 通道容纳2个设备的情况。

问题在于ATA通道是独占式的,一条通道内主(Primary)设备具有优先使用权,但不论哪个设备占 据通道,在其完成操作并释放通道控制权之前,另一个设备都不能访问——如果你希望一个ATA设备处于随时可投入使用的状态,那么它所在的通道就不要有其他 设备(这也是我们一再强调ATA设备所在的是“通道”而非“总线”的原因)。

让我们举一个例子来说明SCSI和ATA在多工操作时的区别。上图左侧是连接到主机上的一条并行数据 线,这条总线(SCSI)或通道(ATA)串联着两块硬盘,在主机的控制下从其中一块读取数据,再写入到另一块。数据从源盘的盘片上读入缓存,沿总线或通 道传输至主机的内存,然后再沿总线或通道传输至目标盘的缓存并写入其盘片。

由于盘片到缓存的速度明显低于缓存(沿总线或通道)至主机的速度,因此这两个设备都不可能在总线上形成 持续的数据流。就SCSI而言,源盘把缓存中的数据一次性传送至主机后,总线就被释放出来,在源盘等待缓存被填满的时候,已被读入主机内存的数据就可以通 过总线进入目标盘的缓存,而当目标盘将这些数据写入盘片的时候,总线又被释放出来供源盘使用。因为有了这种调度功能,基本上杜绝了总线空闲但其他设备又不 能使用的浪费现象。

ATA就不同了:源盘一旦接到传输一批数据的指令,就会完全占有通道直至将这批数据全部读入至主机内 存,即使通道因缓存正等待填满而空闲,也不能释放出来供目标盘使用;而到了向目标盘写入数据时,通道也被独占,源盘虽然无所事事但却无法响应主机的其他请 求。这种低效率使用公共资源的方式不仅延长了整个传输的时间,也使主机在此期间表现迟缓(目前的操作系统对硬盘的依赖程度很高),也就是在很多情况下性能 指标较低的SCSI硬盘在实际使用中表现好过ATA硬盘的主要原因。

当两块硬盘各自占有一条总线或通道时,就形成了附图右侧的星形点对点连接模型,这种拓扑方式显然要优于共享总线或通道,因为读和写可以同时进行。不过纵然如此,也还是SCSI的表现更好——ATA硬盘在传输数据时,即使通道暂时处于空闲状态,主机仍然不能向其发送请求。

Ultra3 SCSI与Ultra160、Ultra320

1998年7月31日,SCSI商业协会(SCSI Trade Association,STA)以Ultra3 SCSI的名字批准了SPI-3,与Ultra2 SCSI相比,Ultra3 SCSI新增了5个主要特性。

双沿传输(Double Transition,DT):时钟信号上升沿和下降沿都触发数据传输,而不是以往的只在一端触发,从而在时钟频率不变的情况下将传输速率翻倍,这种双沿 触发技术今天已经广为人知——DDR(Double Data Rate)。DT的应用让Ultra3 SCSI能够以Ultra2 SCSI的时钟频率获得两倍的传输速率(160MB/s,即Fast 80)。

CRC(Cyclic Redundancy Check,循环冗余校验):大家都很熟悉的技术,保证高速数据传输的可靠性。

域验证(Domain Validation):SCSI历史上产生的规范很多,彼此之间又要保持兼容,因此一条SCSI通道内速度规格不同的设备并存是很常见的事情,于是 SCSI适配器在加电之后所要做的第一件事就是轮询通道内所有设备并记录下它们各自声明支持的最高传输速率,留待以后使用,这个过程被称为协商。

协商存在的问题是“纸上谈兵”,即获得的都是标称值,而没有考虑到实际的线路情况,特别是高速信号易受 线缆质量、长度和外部干扰影响而达不到最高速率,导致传输出错。作为解决方案,域验证规定SCSI适配器以设备声明的最高传输速率发送写请求,数据在写入 设备内部缓存后再读出,如果二者不一致则将传输速率降低一档重复该过程,直到获得实际可用的最高传输速率。

QAS(Quick Arbitration and Selection,快速仲裁及选中):当多个设备争夺总线时,SCSI适配器通常根据优先级(ID号)分配控制权,即所谓仲裁。在仲裁过程中总线上没有 数据流动,这种时间开销降低了总线的利用率,加快仲裁速度则可以改善整个SCSI子系统的性能。QAS采用了减少仲裁次数的方法来做到这一点,即等待总线 的设备在上一个占用设备释放总线之后立刻夺取控制权,而不是开始新一轮的仲裁。这种类似于“抢线”的方式比原来的“论资排辈”有了很大进步,低优先级的设 备总是在仲裁中出局(容易导致“饿死”)的情况得以改观。

封包传送(Packetized Transfer,也称Packetization或Packetized SCSI):传统的SCSI将命令、数据和状态信息分别传送,数据以最高的同步传输速率传送(譬如Ultra2 Wide SCSI为80MB/s)是很正常的,问题在于命令和状态信息的传送速率居然始终只有异步的区区5MB/s!也就是说,命令和状态信息的时间开销是一个常 量,而随着SCSI同步传输速率的不断上升,这种传输方式的弊端愈发明显——命令和状态信息开销所占比重越来越大,效率迅速下降,最终会让速度规格的提高 失去实际意义。

封包传送通过将命令和状态信息与数据一起打包(也称为信息单元,即Information Units,IU)传送的方式,大幅度降低了由命令和状态信息产生的时间开销,为同步传输速率的进一步提高创造了条件。此外,封包传送还允许多个I/O过 程通过单个物理连接完成,而无需为每个I/O过程建立/断开连接。

在增加新特性的同时,Ultra3 SCSI(SPI-3)还做了些“清理门户”的工作——废弃了32位总线宽度和SCAM(SCSI自动配置)这两个从未真正实现过的特性,因LVD的出现 而不再具有意义的HVD(高电压差动)被移去,Narrow(8位)模式也因Fast-80的出现而开始成为历史。

Ultra3 SCSI这个名字的继承性很好,应该算是SCSI商业协会的一大贡献。然而,SCSI商业协会居然允许将实现5个新增主要特性的任意子集的设备(包括适配 器)冠以“Ultra3 SCSI”的名号,这意味着不能保证两个“Ultra3 SCSI”设备拥有同样的特性!如此一来,Ultra3 SCSI岂不是形同虚设?

为了避免可能由此引发的混乱,Adaptec和Fujitsu(富士通)、HP(惠普)、LSI Logic(LSI 逻辑)、Mylex、QLogic、Quantum(昆腾)迅速于1998年9月14日共同推出了基于Ultra3 SCSI的Ultra 160/m SCSI规范,顾名思义,双沿传输(160MB/s)肯定是采用了,m取可管理性(manageability)之意——代表CRC和域验证,至于实现难 度较大的QAS和封包传送则没有包括在内。取舍得当和众多厂商的支持使Ultra 160/m SCSI顺利地成为Ultra3 SCSI的标准子集,并从2000年起以Ultra160 SCSI这个更易被人接受的名字统治市场至今。

根据存储接口传输率每两年就要翻番的规律,SPI-4——即Ultra320 SCSI在2000年浮出水面也就顺理成章。Ultra320继承了Ultra160的三大特性,其中速度规格因为时钟频率的翻倍而提高到 320MB/s。新特性当然是不可缺少的:封包传送已成为必备,QAS则仍是可选,此外还增加了ISI(Intersymbol Interference Compensation,码间干扰)补偿等8个必备或可选项,见下表。

Ultra320 SCSI 新增特性表

必备特性可选特性Information unit transfer(IU transfer),即封包传送QAS(Quick Arbitration and Selection)Free-running clock(FRC),即ISI补偿SCSI bus fairness(fairness),即总线公平Training patternFlow Control(流控)Skew compensation of data signals relative to the clock signalAAF(Adaptive Active Filter),也称receiver equalization with filteringTransmitter pre-compensation with cutbackAIP(Asynchronous Information Protection)

根据IBM提供的资料,如果还使用传统方式,Ultra320 SCSI的实际数据输出能力上限也就是200MB/s左右,使用封包传送之后则可以提高至300MB/s,因此该特性必不可少;而对4KB以下的小块数据 传输来说,传送命令、等待仲裁等额外开销占据的比例很大,在前者已经得到解决的情况下,QAS的应用可以进一步提高效率。新增的8项里面,用于管理 (Flow Control和SCSI bus fairness)及纠错(AIP)的只占一半不到,其余5项全都与改善传输质量有关,可见随着运行频率的攀升,并行总线已经难堪其负。

对可选特性的支持取决于设备制造商,譬如Maxtor的Atlas 10K Ⅲ-Ultra320和Atlas 10K Ⅳ就支持包括AAF在内的全部5项可选特性。据Maxtor美国总部高端存储部门市场推广副总裁John Joseph先生介绍,Ultra320 SCSI其实就是Ultra640 SCSI(SPI-5)的降速版本——反过来说,Ultra640 SCSI除了将最大传输速率提高到640MB/s之外,不会再增加新的特性。

Serial ATA引发串行诱惑

20年前,由于各种相关元件的工作频率较低,并行传输成为提供足够带宽的首选方式,而得益于传输能力与 数据宽度的正比关系,SCSI在将数据总线由Narrow(8位)拓宽至Wide(16位)后很轻松地实现了传输速率的翻番。不过数据宽度的提高是通过增 加信号线和连接器插脚来实现的,必然会导致复杂度和成本的上升,典型的例子就是SCSI向32位发展的尝试以失败告终,而ATA从一开始就将数据宽度定为 16位,历史表明这的确是成本与性能两全的选择。

然而随着工作频率的提高,并行传输的弊端开始显露:同步和时序控制的难度越来越大,各传输线之间的相互 干扰也愈发严重——尤其是后者会导致传输距离的缩短。对于ATA来说0.46米的线缆长度限制也许无所谓,但1.5米8个(单端)装置的连接能力显然不能 满足SCSI的要求,好在SCSI一开始就预留下足够多的地线,很容易改造为抗干扰能力较强的差动模式,才有了12米数据线连接16个(LVD)装置的规 格。

串行接口初试莺啼

无论如何,在连接距离、设备数量、热插拔支持等方面具有先天优势的串行接口对“求贤若渴”的SCSI还 是充满了诱惑,SCSI-3架构对IEEE 1394、Fibre Channel(FC,即光纤通道)和SSA(Serial Storage Architecture,串行存储架构)的吸纳就证明了这一点,最终FC-AL(Fibre Channel-Arbitrated Loop,光纤通道仲裁环路)在Seagate的力推之下从竞争中胜出。不过由于FC-AL(系统)的价格高高在上,且其长距离连接的能力对机内(In- box)存储而言也并非必须,传输速率快速翻番的并行SCSI接口(SPI)仍然在市场份额上占据统治地位。

串行的突破口随即转向先天不足的ATA。虽然Ultra ATA/33凭借DDR技术得以在时钟频率不变的情况下将传输速率提高一倍,但再往上发展就必须同步提高时钟频率,传统的40针-40线连接抗干扰能力差 的弱点便凸现出来——传输速率达到44.4MB/s时就会出错,于是Intel想到了IEEE 1394。

IEEE 1394的速度虽然比Ultra ATA/33快不了多少,但还有很大的上升空间,而其连接能力更不是Ultra ATA所能够比拟的。不过以Quantum为首的硬盘厂商才不这么想,它们觉得Ultra ATA尚有相当潜力可挖,于是就在40针-40线的基础上增加了40根地线——变成40针-80线的结构,抗干扰能力得以提高,可以达到66.6MB/s 或更高的传输速率。由于只是线缆发生了改变而连接器得以保全(个别针脚定义的改变除外),付出的代价不大,Ultra ATA/66就这样轻松地断绝了IEEE 1394的磁盘接口之路。

很多时候都是这样:在旧有技术还没到山穷水尽的时候,其所代表的利益集团对于需要另起炉灶的新技术总是 抱有抵触情绪——厂商会从保护现有投资的角度出发去改善旧有技术,多数用户也更喜欢改良而不是变革,在这种情况下新旧之间往往没有绝对的优劣可言—— Ultra ATA与IEEE 1394即是一例。

Serial ATA横空出世

40针-80线的设计至少可以承载133MB/s的传输速率,可再往后呢?类似SCSI的LVD是不可 取的——线缆成本先放在一边,40根针就已不存在改造空间,再说Ultra ATA的架构也不能满足未来应用对连接能力及效率的要求。未雨绸缪,新一代接口的规划就这样展开了。

2000年2月15日,Intel在春季IDF上公布了Serial ATA接口的开发计划,这种新型接口采用串行点对点连接,细而长的线缆可以有效地改善系统内部的气流和布局,传输速率从1.5Gbps(采用8b/10b 编码,折合150MB/s)起步,在架构先进性和发展潜力都优于Ultra ATA的同时还保持软件兼容,是一个理想的替代方案。Serial ATA工作组包括了从控制卡(APT Technologies)、硬盘(Maxtor、Quantum及Seagate)到系统(Dell、IBM)在内的各主要厂商,并预期于2000年下 半年发布详细规格。

SATA连接器示意图,左侧为7针数据,右侧为15针电源

在Serial ATA(简称SATA)的诸多特性中,最有意义的是架构上的革新。并行SCSI和ATA数量繁多的信号线和接脚决定了它们只能采用总线(共享或独占)式的 拓扑结构,而SATA就不同了——仅有2对数据线(一对发送,一对接收,250mV LVD信号)和7根接脚(3根地线),大大节省了板上的布线空间,使点对点连接(每个设备独享全部带宽,没有总线仲裁/冲突的开销,类似于上上页附图右) 的星形拓扑结构成为可能。此外,SATA还具备热插拔能力,成本也比并行ATA更低。

前景虽然美好,但成为现实尚需时日。不甘寂寞的硬盘厂商在Quantum的带领下于2000年年中推出了被很多人看做是最后一代并行ATA规范的Ultra ATA/100,然而SATA并没有很快到来。

波澜过后前景光明

光阴似箭,转眼一年时间过去了,Intel终于在2001年春季IDF上放出话来:秋季IDF发布最终的SATA 1.0规范。

其实2000年11月21日Intel就已发布了SATA 1.0草案,不过SATA走向实用阶段的条件还不具备:

一方面系统总线存在瓶颈。按照Intel的想法,SATA将首先以(PCI)适配卡的形式出现,然后才 会集成到芯片组中去。问题是普通PC的PCI总线仍是带宽只有133MB/s的PCI-32/33,还没有SATA接口的速度快;纵使芯片组集成SATA 接口,少说也得2个吧?Intel芯片组MCH与ICH间Hub-Link 266MB/s的带宽已经不够,更别提(与Ultra ATA相同的)4个了。虽说SATA的星形有总线不能比拟的优势,但在上行带宽不足的情况下被抵消了不少,而且有瓶颈存在的话终归腰杆不硬。

另一方面设备供应商也持观望态度。Seagate在2000年秋季IDF上演示了第一块SATA硬盘, 可大家都知道其实是Ultra ATA/100硬盘加上APT的转换板,有效率损失,还不如纯粹的Ultra ATA/100;再说作为并行ATA的替代者,主板芯片组不集成SATA接口的话怎么能够普及?何况Ultra ATA/100还没到成为瓶颈的时候,也乐得让它发挥余热。

就在SATA进展缓慢之时,Maxtor于2001年7月31日发布了Ultra ATA/133,目标直指Ultra ATA/100与SATA之间的空当——既比前者快,又打了PCI总线的擦边球。

其实要以接口速度倍增的一贯规律来论,Ultra ATA/100的天下本来就该是Ultra ATA/133的。不过作为SATA工作组元老之一的Maxtor本意可不是为Ultra ATA/133讨回公道,而是借此提高自己在业内的影响——反正SATA还没有动真格的不是?Promise、VIA等一些厂商也乐得有个推出新产品的由 头。看清了这个形势,就不难理解其他硬盘厂商和Intel的不为所动——Ultra ATA/100肯定能坚持至SATA赶到,Ultra ATA/133注定是一个厂商标准。

Barracuda ATA ⅤS的SATA连接器

2001年8月29日,Intel果然如约发表了SATA 1.0规范。如同打开了尘封已久的大门,硬盘厂商们积蓄已久的热情立刻爆发出来,到了2002年2月25日春季IDF召开之日,Maxtor、 Samsung、WD和已退出台式机硬盘领域的Fujitsu(富士通)都以本机(Native)SATA接口的硬盘参加了互操作性演示,Seagate 的Barracuda ATA ⅤS更是在6月24日宣布成为第一款量产的本机SATA硬盘,预计在第三季度末上市。

虽然有消息说Samsung将在第三季度推出的单碟80GB产品中采用Ultra ATA/133接口,但SATA的腾飞之势已不可阻挡。毫无疑问,随着Intel等厂商推出集成SATA接口的主板芯片组,SATA必将成为2003年的热门话题。

并行SCSI之总线危机

前面已经说过,总线——从逻辑到线缆——是SCSI相对ATA的优势所在。LVD真是个好东西,不然 Ultra640 SCSI也无从谈起,可再往后怎么办?前途渺茫。尤其是看到行将就木的Ultra ATA,SCSI相关厂商不免有兔死狐悲之感:无论SPI多么完善,毕竟并行总线可供压榨的余地不大了……

虽说只是Ultra3 SCSI的一个子集,但Ultra160 SCSI干净利落地结束了多种并行SCSI规范共存的混乱局面,为SCSI设备(主要是硬盘)的高速发展创造出相当有利的条件。不过,在Ultra160 SCSI的辉煌背后,Ultra320 SCSI继任的步伐却显得格外艰难。

2000年11月2日,Adaptec、LSI Logic和Seagate宣布在各自的产品开发中采用Ultra320 SCSI SPI-4草案规格。2001年3月Seagate推出了支持Ultra320 SCSI的Cheetah X15-36LP硬盘,某些磁盘阵列厂商已经开始计划在8月推出采用Ultra320 SCSI技术的产品。6月4日的“Computex台北2001”上LSI Logic现场演示了Ultra320 SCSI样卡,并计划在2001年第四季度开始供货,而Adaptec的网站上也已经可以查到Ultra320 SCSI控制芯片AIC-7902的资料了,一切看起来都是那么美好。

然而,曾经的诺言没有兑现,目前比较乐观的消息是:Ultra320 SCSI将于2002年8月起进入实用阶段。

Ultra320 SCSI怎么了?

提速势在必行

在2001年,ATA硬盘的持续传输率不超过50MB/s,接口是Ultra ATA/100;SCSI硬盘的持续传输率在60MB/s左右,接口是Ultra160 SCSI。既然实用速度(缓存到控制器的短暂突发不能算)由传输链中最慢的环节决定,在ATA硬盘都不需要Ultra ATA/133的情况下,短期内还有向Ultra320 SCSI升级的必要吗?

先温习一下吧。在ATA独占通道的工作方式中,每个设备要么拥有全部带宽,要么一无所有;SCSI则是共享总线,每条总线内最多可有15个设备,512个LUN(Logical Unit Number,逻辑单元号),带宽在争用总线的设备间分配。

现在回到正题。SCSI总线用满的可能性不大——即便都是低速的扫描仪或磁带机等设备;SCSI总线上 只有一个设备的用法又太过浪费,毕竟多工才是其优势所在。高速SCSI总线上多个设备并存的最典型应用是RAID(Redundant Array of Inexpensive Disk,廉价磁盘冗余阵列),而对于0、1和5这三个最常见的基础RAID级别来说,分配到每块硬盘上的读写任务都是一样的,也即它们要均分总线带宽。

那么一条SCSI总线上连接几块硬盘比较合适呢?业内广为接受的是——至少4块!拿160MB/s除以4,才是每块Ultra160 SCSI硬盘的可用带宽。

Quantum在2000年第四季度发布的Atlas 10K Ⅲ持续传输率可达55MB/s——Ultra160 SCSI应付3块刚刚够,产生对Ultra320 SCSI的需求自然顺理成章。

遭遇多方掣肘

虽然2001年上半年Seagate、Fujitsu和IBM先后发布了支持Ultra320 SCSI的硬盘,但下半年充斥市场的还是Ultra160 SCSI的型号,Ultra320 SCSI型号在2002年年初才陆续出现。

在整个Ultra320 SCSI的生态环境中,硬盘的命是最苦的。支持320MB/s的传输速率不是仅仅把缓存芯片(16位)从8ns换成6ns就能完事的,接口相关的控制电路 也要同步跟上才行。然而与适配器不同的是,Ultra320 SCSI硬盘提高的接口传输能力得不到充分的利用——总线大家都要用,平均每块硬盘只能分配到四分之一(或更少)的时段进行接口传输,远不及Ultra ATA的独占通道来得痛快,不免让人有浪费的感觉。(注:好比一辆时速320公里的跑车,却只能全速开一分钟,然后停三分钟,反而不如一辆始终以80公里时速前进的普通汽车。

接着是对诸多新增特性的支持,硬盘和适配卡都要为此花很大的工夫(譬如测试)以保证兼容 性,Adaptec和LSI Logic的适配器芯片还均采用RISC处理器来负责系统接口与SCSI通道的控制。不过这两家芯片制造商并不认为自己应该对Ultra320 SCSI的延期负责——硬盘和系统总线要先行嘛。

在服务器/工作站中称雄一时的66MHz PCI-64总线的533MB/s带宽仅能满足单条Ultra320 SCSI通道的需求,两条通道就会遭遇瓶颈。可提供1.06GB/s带宽的PCI-X总线倒是没问题,但在2001年的市场上几乎找不到这样的主板(少数 颇为高端的服务器才有)。既然如此,与其勉强改用单通道Ultra320 SCSI,还不如保留效果相当且对硬盘接口要求不高的双通道Ultra160 SCSI。

末路狂花

2001年第一季度末,装备PCI-X插槽的主板和采用Ultra320 SCSI接口的硬盘开始涌现,适配器随之启动,到6月份Adaptec和LSI Logic的Ultra320 SCSI适配卡(或芯片)都已正式亮相,后者还推出了RAID卡,Ultra320 SCSI马上就要从盼望变成现实了。

2002年中期的SCSI-3架构模型,协议层与互连层比初期丰富了许多,Infiniband和iSCSI都加入了进来。不过下一页要介绍的是右下角的SAS,它将要取代左下角的SPI

不过,Ultra320 SCSI毕竟耽搁了一年,这使它在投入使用时就要面对成为瓶颈的危险——Seagate将于第四季度批量供货的Cheetah 15K.3持续传输速率可达75MB/s,4块这样的硬盘需要300MB/s的带宽,已经与Ultra320 SCSI的实际能力相当,因此开发新一代的接口规范迫在眉睫。SCSI商业协会和ANSI T10技术委员会已经就Ultra640 SCSI(SPI-5)工作了一段时间,但这种并行总线架构显然不具备再度带宽翻番的能力,与其坐视其山穷水尽,不如未雨绸缪,着力开发新型接口。从这个 角度上看,Maxtor提前放弃Ultra640 SCSI,转而投入到Serial Attached SCSI开发的决定显然是顺应潮流之举。

SAS——三位一体的杰作

虽然FC-AL已经与Ultra160 SCSI在硬盘的价格上持平,但FC适配器、线缆等相关设备的昂贵使其不适合作为并行SCSI的串行替代者——业界希望获得的是一个性能、可靠性、机外 (outside the box)连接能力和成本均优于并行SCSI,且具有相当发展潜力的机内设备接口。如果说将SCSI的指令集嫁接到Serial ATA(SATA)的物理层上只是走了个捷径,那么对FC-AL的借鉴则充分显示出业界对Serial Attached SCSI寄予厚望。在2004年实现产品化的目标驱动下,SCSI商业协会(SCSI Trade Association,STA)和ANSI T10技术委员会的工作卓有成效。

2002年6月中旬,时任Maxtor公司高端存储部门市场推广副总裁的John Joseph先生向笔者分析SAS的特点

2001年11月26日,Compaq、IBM、LSI Logic、Maxtor和Seagate宣布成立Serial Attached SCSI工作组,目标是将并行SCSI与Serial ATA的优点相结合,定义一个新型串行点对点的企业级存储设备接口。Adaptec、Fujitsu、Hitachi、QLogic、 ServerWorks和Western Digital也主动表示了对Serial Attached SCSI工作组的支持。这条消息获得了广泛的关注,但基本上只能局限于新闻稿所提供的内容。

12月,SCSI商业协会董事会一致决定接纳Serial Attached SCSI并全力支持该技术的发展和推广。2002年1月16日SCSI商业协会年会期间,双方的市场和商业发展团队在休斯顿敲定了合作的细节,即由 SCSI商业协会负责Serial Attached SCSI规格的市场需求和工业推广。到2月4日正式发布时,工作组的成员数量已经因Dell等公司的加入而达到了20个之多。

三人行必有我师

并行SCSI的优点在于完善的命令集,SATA的长处则是串行的物理层,Serial Attached SCSI正是将这二者结合在一起。由于FC、IEEE 1394和SSA的存在,Serial SCSI(串行SCSI)已不能作为专有名词,而加上Attached则不仅解决了这个问题,也可体现出对SATA的尊重。

同样的物理互连部分让Serial Attached SCSI(串行连接SCSI,简称SAS)支持SATA设备成为可能(反之则不行),此外它还吸取了FC的一些优点。Serial Attached SCSI网站上一份14页的PDF文档提供了SAS与SATA、并行SCSI及FC-AL的主要特性对比表(见表),但并未涉及较为深入的技术细节。

Serial Attached SCSI与其他三种接口规格对比

 SATA并行SCSISASFC-AL连接能力寻址(设备数量)116128128(16M)距离(米)1251010k双端口支持拓扑结构点对点共享总线点对点/Expander仲裁环/fabric性能指标传输率(MB/s)150
300
600
320
640
150
300
600
100
200
400
双工(Duplex)半双工半双工全双工全双工运行协议ATASCSISCSISCSI

注:最初SAS以1.5Gbps(150MB/s)起步,2003年后改为3.0Gbps(300MB/s)

Maxtor公司高端存储部门市场推广副总裁John Joseph先生来到北京给记者提供了这样一个机会——SAS的网站上有这位SCSI专家的“语录”,向他请教相关的问题肯定错不了。就在法国队被淘汰出 世界杯的那天下午,John Joseph先生告诉记者:SAS不仅仅是在SATA的物理层上使用SCSI命令集那么简单,它还增加了Dual Port(双端口)、Switch(交换)和WWN这三个从FC引入的特性,即所谓FC Like(SAS规格介绍见下页)。

新接口坐二望一

在SATA的电气接口上建立类似于光纤路径的交换架构,运行的又是SCSI命令集,SAS可谓博采三家之长。那么它是否具备接替并行SCSI的能力?又会对FC-AL产生怎样的影响呢?

干掉并行SCSI

把SCSI命令集传授给SAS的目的就是要让并行SCSI“含笑九泉”,这个任务完成得怎样呢?现在看来,SAS从SATA和FC-AL那里学来的几手还真管用:

  • 点对点连接的距离虽然短了,但在Expander的帮助下连接距离和设备数量都已能满足使用要求,特别是主干带宽可以很容易地达到600MB/s(4个物理连接)——这可是并行SCSI的Expander做不到的;
  • 除了在连接SATA目标设备时需要进行STP到SATA的转换,Expander对SSP和STP只做转发处理,其内部产生的延迟非常短,与并行SCSI花在总线争用、仲裁上的开销相比可以忽略不计;
  • 双端口和多连接路径的设计提高了容错能力;
  • SAS的串行接口在成本和使用方便性上都具有明显优势,对设备接口的要求也没有那么苛刻——带宽都是独享,设备可以根据自身的实际性能决定是否提高接口传输率。

SAS现在已被业内所有的主流厂商认可为并行SCSI的替代者,2004年起接班看来不会有什么问题。

冲击FC-AL

根据Maxtor对企业级硬盘市场的预测,FC-AL的市场份额将从2001年的8%稳步增长至 2004年的17%,然后在2005年降为15%;2004年还是SAS的“好日子”,而2005年其份额将从3%提高至9%。预期的一升一降绝对不是巧 合,“SAS now viewed as viable serial alternative”(现在看来SAS是可行的串行选择),含蓄中蕴含着杀机。

为了说明FC-AL存在的问题,John Joseph先生用铅笔画了一个代表FC-AL的双环路,上面均匀地分布着6块Atlas 10K Ⅲ-Ultra320,以其55MB/s的持续传输率,这个双环路200MB/s的带宽在4块硬盘的时候就不够用了(又是4块)。即使FC-AL的带宽还 有提高余地,但是对于其127个(实际使用要超过40个)设备的连接能力来说还是远远不够的。

FC-AL上面跑的命令集也是SCSI,它在与并行SCSI的高端之争中取胜靠的是连接距离长、容错能 力强(双端口双环路)、设备间平等、全双工和串接数目多,但在SAS面前这诸多优势仅剩一项(10公里的连接距离对硬盘来说似乎也意义不大),拓扑结构、 可用带宽和成本方面还处于劣势,逐渐将硬盘市场让出是可以预期的。

从企业级市场对机内和短距离机外连接的要求来看,草拟中的SAS已经交出了一份令人满意的答卷,FC以后则会更专注于长距离连接。

虽然SAS工作组仍将FC奉为高端的选择,但也提到“(FC)对内部存储来说太昂贵了”。相信从2004年起,即便是FC SAN在硬盘的选择上也会更倾向于SAS——内外都是串行(SCSI),做个转换罢了。

SAS(初期草案)规格简介

Serial Attached SCSI(简称SAS)草案的第一个版本于2002年4月25日问世,5月6日ANSI T10技术委员会同意接受该草案并立即展开SAS标准的制订工作。记者最先看到的sas-r00a已经是SAS草案的第四个版本了,目前参考的则是 sas-r00f。一个多月的时间先后推出6个版本,T10技术委员会的工作效率的确值得钦佩。

sas-r00f的正文部分有240页,sas-r00a也要213页,好在我们关心的主要规格基本都在前50页。

交换架构

SAS的域、设备及端口完全继承了SCSI和ATA的相应概念。虽然接口和线缆的电气规格取自 SATA,但点对点连接的距离延长至10米,而连接对象也不再局限于启动设备(可理解为适配器)或目标设备(可理解为硬盘或光驱等),还可以是 Expander设备。Expander设备可以理解为路由器,它具有至少两个外部端口。根据路由能力复杂程度的不同,Expander设备分为 Fanout(输出)和Edge(边缘)两类:每个SAS域至多有一个Fanout Expander设备,它能连接的Edge Expander、启动端口或目标端口不超过64个;每个Edge Expander设备可连接的Fanout Expander设备不能超过一个,可连接的启动端口或目标端口则可达64个。只有在SAS域里没有其他Expander设备时,才允许两个Edge Expander设备互连。

SAS的拓扑结构

协议

SAS定义了3个协议:SSP(Serial SCSI Protocol,串行SCSI协议)、STP(Serial ATA Tunneled Protocol,SATA管道协议)和SMP(Serial Management Protocol,串行管理协议)。其中STP为SATA增加了多目标寻址和多启动访问(一个目标),使SATA设备能够用在SAS环境中。在SAS域 中,SCSI启动及目标端口均使用SSP,而只有支持STP的启动端口才能够访问SATA目标端口——前提是该目标端口连接的Expander设备要具有 STP转SATA功能。

SAS的协议关系

全双工

SSP是个全双工(Full Duplex)的协议,这对交换架构是必不可少的。单个物理连接(可理解为一条SATA线缆)内部的两对数据线分别用于发送和接收,二者不能同时进行,即 所谓半双工(Half Duplex);不过SAS允许两个设备间建立基于多条(1、2……n)物理连接(可理解为SATA线缆)的宽物理连接,从而使全双工成为可能。

双端口

启动设备具有2个(及以上)的端口是很正常的,但SAS还为目标设备定义了双端口(Dual Port)。启动设备和目标设备的多个端口都可以连接到不同的Expander设备,从而提供更强的容错能力。

WWN

WWN即World Wide Name(全局名),是分配给每个产品的一个8字节标识符,其格式由IEEE定义,并用以为每个产品在其安装网络中提供惟一的标识符,在光纤路径中非常有 用。SAS草案一开始就定义了这个8字节标识符,但名称一再改变——最新的版本是“SAS地址”。WWN被存储在非易失性存储器中,由于8字节可以提供一 个相当大的地址空间,因此通常使用WWN的子集来形成网络地址。Sas-00f的附录部分讲解了怎样在包含128个设备的系统中使用WWN,但这不是我们 要讨论的内容。

SAS的内部连接和外部连接

根据使用环境的不同,SAS连接器与线缆分为内部和外部两种:外部连接器支持4个物理连接(16根数据 线),线缆的物理连接数目则在1~4个之间;内部连接器支持2个物理连接(双端口),15针电源接口也做在一起(共29针),线缆的物理连接数目为1个或 2个(双端口)。背板作为一种特殊的内部连接方式,支持2个物理连接(双端口)并提供电源接口。各种连接器和背板规范由小形状系数委员会(Small Form Factor Committee,SFF)负责。

多元化未来

ATA与SCSI存在竞争关系吗?在PC等个人设备领域,SCSI无法与ATA竞争;可在SCSI专注的服务器和网络存储市场,ATA却总是想从低端打入获得增长。随着ATA抢先进入Serial时代,曾经的梦想就快要成为现实。

作为一种廉价的存储解决方案,Ultra ATA硬盘早在上世纪末就已悄然进军入门级服务器和网络存储市场。服务器中较为常见的是无专用处理器的“IDE RAID”,只有简单的(RAID)0和1这两个级别,以低成本实现基本的数据保护;磁盘阵列则通常要先经过ATA-SCSI的转换,再由专用处理器负责 0、1、5等RAID级别的运算,将SCSI总线的多工能力与ATA硬盘极低的单位容量价格相结合。但无论哪种方式,每条ATA通道只接一块硬盘(即一个 ATA控制器带两块硬盘)都是最基本的原则,在宏观上等效于SATA点对点连接的星形拓扑结构。

在标准制定阶段,对进展过于乐观是业内人士的通病,现在回头来看,SAS也不例外

有Ultra ATA开道,SATA进军服务器和网络存储之路就平坦多了。得益于SATA极少的数据线和接脚数量,LSI Logic推出了可连接6块SATA设备的MegaRAID SATA 150-6,这块卡使用了3颗双SATA端口的SiI 3112芯片,如果换成有4个乃至8个SATA端口的控制芯片(开发中,采用PCI-X接口),其连接能力是并行ATA无法想像的。

不过此时的SATA已不满足于简单地取代并行ATA——它也看到了并行SCSI的不足之处——既然 SCSI阵营能看中SATA,SATA为什么不能在企业级存储领域有更大的作为?终于,2002年2月25日春季IDF上Serial ATA Ⅱ工作组成立的消息表明“他们一直在努力”。

似曾相识的SATA Ⅱ

Serial ATA Ⅱ工作组的任务是开发SATA Ⅱ规范,增强SATA在服务器和网络存储市场的竞争力并提供更高的信号传输率。规范的实施分为两个阶段:

  1. SATA Ⅱ第1阶段(SpecⅡ P1)——当前扩展
    • 改进SATA 1.0以适应服务器和网络存储的要求;
    • 用于热插拔驱动器机架的背板互连方案;
    • 包括风扇控制、驱动器灯、温度控制、新设备通知等在内的机箱管理方案;
    • 本机命令队列、乱序执行/传输、数据分散/收集等性能增强以满足业内要求;
    • (预计)2002年下半年确定服务器和网络存储特性,2003年进入产品研发。
  2. SATA Ⅱ第2阶段(SpecⅡ P2)——未来扩展
    • 目标为300MB/s(3Gbps)的第二代信号传输率,面向桌面和网络存储系统;
    • 针对更高端网络存储市场需求的改进;
    • 拓扑支持双主机主动失效保护(即允许多启动设备);
    • 高效的大量设备连接能力;
    • 2003年下半年定义第二代信号传输率,2004年下半年进入产品研发。

由于Serial ATA Ⅱ工作组亲自负责SATA Ⅱ规范,而不是像Serial Attached SCSI工作组那样将制订权转交给类似于ANSI T10技术委员会的开放性组织(如ANSI T13),因此笔者对SATA Ⅱ的了解都仅限于只言片语:

  1. 春季IDF期间一张SATA Ⅱ扩展连接能力示意图上出现了两个连接在SATA Hub(姑妄称之,作用应与SAS的Expander类似)上的SATA设备,其中一个还是双端口;
  2. 6月份SATA官方网站上的一份PDF介绍了SATA应用于服务器和网络存储的9个模型,其中多处提到了SATA Ⅱ RSM(Routing/Switching/Muxing,路由/交换/混合)连接增强。

级联、路由、交换、双端口……这些都与SAS的规划何其相似!

中间地带成变数

在存储行业被长期看好的大背景下,竞争之火已经从配备61个以上硬盘的大型存储器领域烧向配备 31~60个硬盘的中型和配备6~30个硬盘的小型存储器领域。基于ATA硬盘的低端存储设备在价格上对中小企业客户非常具有吸引力,而SATA Ⅱ的构想可谓正逢其时,也可以看做是EMC与NetApp这两大存储巨头加入SATA Ⅱ工作组的主要原因。

问题是SAS也已经看到了这块市场。由于物理层相同,SAS对SATA设备的支持显得顺理成章,而 STP则让单启动设备/目标设备的SATA具有了多启动设备/目标设备的寻址能力,只要启动设备(适配器)支持STP、Expander设备能将STP转 换为SATA,就可以构建一个完全基于SATA目标设备(硬盘)的SAS域。如果启动设备仅支持STP(而不包括SSP)的话,成本还可以进一步降低。

总之,SAS和SATA Ⅱ都可以让SATA应用于支持级联、路由和交换的(相对)复杂拓扑架构中,然而最终会由谁来占领这块介于传统SCSI与ATA之间的领地尚不很明朗—— SATA Ⅱ在决心和(预期的)产品化时间上略占优势,SAS则在多启动设备/目标设备寻址等技术层面上具有更为丰富的经验,而Adaptec、LSI Logic、Maxtor、Seagate等身兼两个工作组成员的业内领导厂商也会对局势产生微妙的影响。虽然2002年6月10日,Intel、 Dell和HP这三大巨头宣布将与SATA Ⅱ工作组和SCSI商业协会协同工作,推进SAS和SATA这两个互为补充且互相兼容的存储标准,但毕竟没有就二者的“领地”划分发表实质性意见。然而, 最重要的并非哪方最终取胜,关键是不要把SATA搞得过于复杂(譬如硬盘驱动器有单/双端口之分)才好。

奔向新的十年

SAS和SATA的物理层从诞生伊始就宣称其10年的Roadmap,信号传输率也排到了2007年的6Gbps,曾经困扰并行SCSI和ATA多时的发展问题得到了解决,这是全面转向串行时代的最大收获。

在SAS工作组最初的规划书里有这样一个观点:(各种)技术将继续沿着不同的分支前进,既不会统一,也 不能毫无瓜葛。SAS与SATA之间的关系可以算做例证——通用的电气和物理层接口增强了彼此间的联系,但它们所针对的领域仍然存在着很大的差异—— SCSI一直与ATA平行发展,串行化之后也不会改变。

当然在两种技术的接合部总要有新的动态,这回是SATA大张旗鼓地向中低端服务器和网络存储领域进军, 此乃市场需求多元化所导致的必然。上图是SAS阵营对未来机内存储设备接口走势的预期,只是SATA进入主流存储市场的方式还存在变数。SATA和SAS 驱动器旁边的转速标记比较有趣,虽然反映的只是市场现状,但却揭示出了ATA与SCSI的本质区别——成本导向和性能导向。

忘记ATA与SCSI孰优孰劣的无谓争执吧,明白自己的需求并投入到未来十年中去才是我们应该做的。


0 0
原创粉丝点击