SAS与SATA-Ⅱ专题[@more@]
尽管
SATA与(并行)SCSI相比仍存在全方位的差距,但已不像PATA那么明显,SCSI阵营对此焉能视而不见?何况
并行SCSI继续发展的潜力也很有限,步ATA的后尘转向串行是迟早的事。Serial Attached
SCSI(SAS)吸纳SATA的物理层设计是一大妙招,然而怎样运用同样的串行点对点连接营造出比SATA更为复杂的拓扑结构,从而满足企业级存储系统
对性能、可靠性和可用性的要求,难度也是显而易见的。
SAS不仅是在SATA的物理层上执行SCSI命令集那么简单,它还具备FC(Fibre Channel)的某些特性,这使其超越了SATA和(并行)SCSI的范畴(表1)。
表
1:SATA、SAS和FC-AL主要特性对比
双端口
SAS的数据帧基于FCP(FC Protocol),还对SATA的物理层进行了增强——(在外围设备端)添加第二端口支持,形成符合高可用性要求的双端口(dual port)。
全双工
并行ATA和SCSI都是发送和接收共用一组数据线,因此发送和接收不能同时进行,即所谓的半双工(half duplex
);
SATA数据线由两条传送方向相反的差分信号对(LVDS,共4根)组成,发送(Tx
)和接收(
Rx
)各走一路,为全双工(
full duplex
)提供了物理上的可能。不过,
SATA在一对信号线上传送数据的同时需要用另一对信号线返回流控(flow control)信息,所以仍然是半双工;SAS则将一路数据所需的流控信息与反向传送的数据混合在一起,从而能在同样的数据线上实现全双工(下图)。
SAS的全双工工作示意图
宽链接
物理链接(physical link)是SAS中的一个基础概念,一条物理链接包括两对差分信号线(Tx
和
Rx
,即一条
SATA
线缆),传输方向相反,在两个物理Phy之间形成通路。两个SAS端口之间可以建立起由多个物理链接构成的wide
link(图4),相应的端口也被称做wide port,可以表示为N-wide link和N-wide
port,N取值在1~4之间,代表物理链接的数量。1-wide link/port即narrow
link/port,这方面的典型例子是硬盘,双端口意味着两个独立的narrow
port(虽然规格中并没有将硬盘端口严格限定在1-wide,但单个物理链接所能提供的带宽已经明显超出硬盘的内部传输率,还可以降低成本和设计复杂
性),不能配置成一个2-wide port(2宽度端口)。
宽链接和宽端口
类似于
PCI Express(×1~×32),SAS支持宽链接的主要出发点是获得成倍的带宽,这种并联的方便性显然要拜串行技术所赐。
或许是考虑到2004年第一批SAS产品问世时SATA很可能已推出3.0Gb/s的第二代规格,SAS
1.0/1.1采取了直接支持3.0Gb/s并向下兼容1.5Gb/s的策略。Marty Czekalski承认,包括7月8日T10会议上LSI
Logic与Maxtor联合演示系统在内的某些初期原型产品的确运行在1.5Gb/s,但都是在FPGA和现货供应PHY(物理层)芯片基础上开发的,
预计2003年年底将会有采用完全集成3Gb/s PHY芯片和ASIC设计的设备出现,并逐渐被业内接受。
量产的
SAS设备会具有每端口3Gb/s的数据速率,SAS协议还允许全双工操作,这意味着一台双端口驱动器能够达到12Gb/s的峰
值吞吐率(理论上限,持续时间取决于驱动器内部结构和缓存带宽),而4-wide
port(4宽度端口)更可以获得24Gb/s(合2.4GB/s)的带宽——超过PCI-X 2.0。
为了提高连接距离,SAS发送和接收信号的电压范围都比SATA大为提高(表2)。在具体的连接距离指标上,最初宣称是10米,新的资料则是大于6米(外
部线缆),似乎与信号速率从1.5Gb/s提高到3.0Gb/s有关。需要指出的是SAS规范里面并没有严格限定线缆长度,而是靠发送水平和接收敏感度来
考察,(制造商)通过检测线缆特性来判定其所能达到的距离——高质量线缆可以连接得更远,当然成本也更高。现在SAS线缆连接距离的要求已经提高到8米
(制造商仍可以花费更多,用更高质量的线缆求得更长的距离),通过3个扩展器(Expander)之后,SAS的连接距离能够超过32米,与
Ultra160/320
SCSI的12米(15个设备)或25米(点对点)相比虽没有明显优势,但也足以应付机内存储设备连接和近距离DAS的要求了。
表
2:SAS和SATA物理层的兼容性
演变——SATA-Ⅱ和SAS 1.1
Serial ATA 1.0定义了Serial
ATA接口的连接器、线缆、物理层和协议,桌面计算平台是其主要应用目标。在2002年春季IDF上,Serial ATA
1.0的发起者APT、Dell、Intel、Maxtor和Seagate又牵头成立了Serial ATA
Ⅱ工作组,负责开发具备服务器和网络存储设备所需功能及下一代信号速率的Serial ATA Ⅱ规范,而紧随其后的Serial Attached
SCSI也没有满足于1.0版。
Serial ATA Ⅱ两步走
Serial ATA Ⅱ规范分为两个阶段,第一阶段是在Serial ATA
1.0的基础上增加服务器和网络存储设备所需功能,即“Serial ATA Ⅱ: Extensions to Serial ATA
1.0”(简称Extensions to SATA 1.0),已经于2002年10月16日完成1.0修订本,是Serial ATA
Ⅱ工作组开发的众多规范中第一个亮相的。Extensions to SATA
1.0的所有功能(下表)都是可选的(非强制性),只要具备任何一个功能都可以声明“Supports SATA
Extensions”(支持SATA扩展),相应的产品则被称为“SATA 1.5 Gb/s product x supports SATA
Extensions”或“SATA 1.5 Gb/s product x supports SATA Extensions a, b,
&c”。根据Serial ATA命名规则,产品不能叫做“SATA 1.0”或“SATA Ⅱ”——“SATA 1.5
Gb/s”或“SATA 3.0 Gb/s”既表明了是哪一代SATA规范,还可以避免引起混淆。
第二阶段的主要目标是将信号速率翻倍为
3.0Gb/s,按计划应该在2003年下半年定义,2004年下半年进入产品研发。其他最初赋
予第二阶段的任务,不是已经公布规范(“有效连接大量设备的能力”,包括Serial ATA Ⅱ: Port Multiplier和Ganged
connector),就是与SAS关系密切(“拓扑支持双主机失效保护”),详细介绍参见后文。
Serial ATA Ⅱ: Extensions to Serial ATA 1.0的新增功能
×——需要改进以支持相应功能
Serial Attached SCSI内外皆修
2002年10月23日,Intel向T10委员会递交了让SAS支持Serial ATA Ⅱ: Extensions to
Serial ATA 1.0的提议。11月7日,T10开始考虑自己的下一代——Serial Attached SCSI -
2(SAS-2),并计划于2004年12月对外公布草案。
然而,进入
2003年后不久,“SAS-2”的字样就从T10网站的工作草案文档区消失了——被Serial Attached
SCSI-1.1(SAS-1.1)取而代之。对此STA(SCSI商业协会)常务董事Michael T.
LoBue的解释是,那个“SAS-2”与SAS 1.0相比变化不是很大,用“SAS-1.1”表达更符合实际。
2003年7月10日,T10公布了SAS 1.1工作草案的第一个版本(00修订本),它的绝大部分内容与SAS 1.0的05修订本相同,只有少量改进,信号速率不变。改进之处包括:
1.增加4-wide内部连接器(对应SATA Ⅱ的Ganged connector);
2.简化的第一次突发(可选功能,不利用它对硬盘和磁带机等设备没有影响);
3.链路/传输层重试:在SAS
1.0中,如果传输数据到设备的过程中发生错误,将导致整个传输终止,传输重试,这种机制与硬盘的行为相匹配,很少甚至根本不会影响整个系统的性能。然
而,对流式磁带驱动器来说,重发数据却会因磁带回卷而造成性能显著下降。为了获得一个基本稳定的规范并加快SAS系统推向市场的速度,制订SAS
1.0时没有过多考虑这个问题。SAS 1.1增加了链路/传输层重试,可以改善使用磁带驱动器时的性能。
4.改正了在SAS 1.0中发现的所有错误。
预计
SAS 1.1将在SAS 1.0之后9个月左右通过标准审查,SAS 2.0的时间表目前还不清楚,惟一确定的是其数据速率将达到6Gb/s。Marty Czekalski估计大约还要等上两年,不会早于SAS 1.1。
也许作为
SAS象征的标志(logo)改变更为显著。最初的标志(
上
图)是在工作组初期设计的,描绘了一个
连接着多个设备的扩展器(Expander),当时工作组只有5个成员,主要精力都放在开发技术规范上,标志的挑选程序没有过多考虑市场宣传的要求。在
2002年5月规范草案转交T10开发之后,代替工作组推广SAS的STA认为,最初的标志在颜色和风格上不能与STA或SATA的标志形成互补,有必要
改用一种与所有标志同时在介绍材料中出现时仍清晰可见的风格。于是,经过更换颜色和部分变形之后,SAS标志就成了今天这个样子(见下图)。
包容有道——SAS环境中的SATA设备
SAS兼容SATA的能力非常重要,系统集成商和用户可以根据实际需要在大容量/高性价比的SATA硬盘与高性能/高可用性的SAS硬盘之间自由选择。不过,串行互连技术促进存储接口融合说起来容易,但真正实现起来要解决的问题还是很多的。
SAS对SATA的支持可以从软件和硬件两个层面来讨论,其中双端口格外值得我们关注。
STP铺路 OOB识别
SAS定义了3个协议:串行SCSI协议(Serial SCSI
Protocol,SSP),全双工,让SCSI运行在增强的SATA物理层上;串行ATA隧道协议(Serial ATA Tunneled
Protocol,STP),为SATA增加多目标寻址和多发起者访问,以适应SAS环境的需要;串行管理协议(Serial Management
Protocol,SMP),用于发现和管理扩展器(Expander)。
扩展器把
SATA的点对点连接扩展至SAS的多发起者/多目标,然而SATA协议仅支持单发起者/单目标,STP的任务就是让发起者能
够通过扩展器访问SATA目标。STP在发起者与最远的、也就是连接SATA设备的扩展器端口(STP目标端口)之间建立起一条通路(隧道),传输标准的
1.0帧,因此在SATA设备看来,自己连接的就是SATA主机适配器。如果发起者端口识别出与其直接相连的是一台SATA设备,则只使用SATA协议通
发起者端口怎么知道自己连接的是
SATA设备或SAS设备呢?在连接初始化时,发起者送出OOB(Out of
band)慢速脉冲信号,检测目标对COMSAS脉冲的响应情况——如果目标也返回COMSAS脉冲,就是SAS设备,反之即为SATA设备。需要注意的
是,由于在SAS协议中发起者和目标是对等的,外围设备(如硬盘)也可以作为发起者,主动送出COMSAS脉冲,向目标(主机适配器)表明自己的身份。以
硬盘为例,能否生成COMSAS脉冲即辨别SAS与SATA的依据。
STP发起者端口经过OOB协商确认与自己相连的是SATA设备后即进入SATA模式,严格遵循SATA主机适配器的行为规范。STP
并不关心SATA FIS(Frame Information
Structure,帧信息结构)的内容,SATA命令排队可以在FIS中传输——前提当然是STP发起者端口和SATA设备必须支持命令排队功能。不
过,SATA Ⅱ中的其他扩展功能不是被STP排除在外,就是以另外的方式实现。
传输完成后由
SAS主机适配器或扩展器决定是否用STP断开与SATA设备的连接,以后需要时再重新连接。整个过程中该SATA设备始
终以为自己通过正常的流控机制直接连在某个SATA主机适配器上,实际情况却是SAS主机适配器进行了SATA“翻译”工作。在Windows操作系统
中,这个SAS主机适配器将与使用Miniport驱动程序的SATA主机适配器一样被归类为SCSI控制器。
背侧添丁 双口防患
从时间上看,
SAS连接器(包括设备端插头及背板和内部线缆插座)的设计方案要滞后于线缆——第二端口的安放位置似乎比并联数据线更费思量。
SAS与SATA连接器示意图
难者不会,会者不难。
SFF-8482内部附属连接器规范将原本分离的SATA端口和电源插头相连,SAS第二端口位于连接处的背侧
(插座则是对侧,见上图)。第二端口比这块跨接区域略宽,但也只有SATA端口(也即SAS第一端口)的2/3,因此其7个接脚及间距均明显变窄(下
图)。与SAS插头的“铁板一块”相对应,SAS插座也“全线贯通”(SATA插座在SAS第二端口的位置有一突起),这样既可以保证SATA设备插入
SAS插座,又能避免误将SAS设备插入SATA插座。
SAS连接器就是SATA连接器背面加上第二端口
由于单端口的带宽(
3.0Gb/s,甚至1.5Gb/s)已经能够满足硬盘的要求,SAS硬盘增加第二端口并不是为了支持宽链接(2-wide),而是通过给它们赋予不同的SAS地址(WWN),让双端口分属两个(冗余的)域以防系统出现单点故障,从而提高可用性。
在
SAS环境中,SATA设备同样有高可用性需求,即允许两个主机适配器连接到一台SATA硬盘上,避免主机适配器成为单点故障源(图
3)。与SAS的双端口不同,在任何时刻都只能由一个主机适配器独享此SATA硬盘的控制权(由系统软件检测哪个主机适配器处于“活动”状态)。这种通路
切换机制由两端口到单端口的适配器——端口选择器(Port Selector,PS)——实现,SATA
Ⅱ工作组负责开发规范,工作草案已经递交T10网站供参考。在任何时刻只有一个端口处于活动状态,在切换端口之前硬盘的所有行为都必须停止(队列中无请
求)。端口选择器的设计取决于子系统厂商,可以两边分别是SAS(双端口)和SATA连接器,也有可能把端口选择器放在背板上,或者干脆将其集成到硬盘上
配合统一的背板连接器使用。SATA
Ⅱ工作组还有意将端口选择器用于静态负载均衡。不过,这样一来也对该SATA硬盘的工作周期(7×24)和平均无故障时间(MTBF)提出了更高的要求。
防止单点失效的典型SAS配置
为了更好地兼容
SATA,SAS的物理层也提供了对时钟频谱扩展(Spread Spectrum
Clocking)的支持。时钟频谱扩展通过将时钟发生器脉冲波的尖峰衰减为相对平滑的曲线来降低EMI(ElectroMagnetic
Interference,电磁干扰),SATA加入这项功能是为了满足PC对电磁辐射的严格要求;SAS所面向的服务器和网络存储设备辐射标准没有那么
苛刻,SAS设备并不需要它,但SAS系统却必须能接收来自SATA设备的时钟频谱扩展信号。
SCSI的问世时间早于ATA,规格也更为完善,但并不意味着在新技术的应用上总是SCSI走在前面。这方面比较典型的例子是双沿传输
(DT,原理相当于DDR)和CRC校验,1996年出台的Ultra ATA/33(又称Ultra
DMA/33)就已经具备,比SCSI早了整整两年(Ultra3 SCSI)。
某些功能则是难分伯仲。仍以
CRC校验为例,最初只有数据相(Data
Phase)能够享受这个待遇,后来ATA和SCSI不约而同地将其增强为对包括命令和状态在内的全部传输内容提供保护(下图)——从标准制订到产品
化,Serial ATA 1.0和Ultra320 SCSI在时间上都相差无几。
CRC范围的变迁
然而在最基本的底层架构上,先天不足的
ATA怎么努力也无法缩小与SCSI的差距。LVD(Low Voltage
Differential,低电压差分),一项不算复杂但却需要双倍数据线(分别传输正、负电压信号)的技术,成为了决定SCSI和并行
ATA(Parallel
ATA,PATA)发展空间的重要因素。LVD增强了信号的抗干扰、抗衰减能力,有助于延长连接距离,保证高频传输的可靠性。站在LVD的角度来考虑问
题,就容易理解为何SCSI不急于采用双沿传输和CRC校验了。
如果不采用双沿传输,
PATA要实现33MB/s的带宽,运行频率就会达到16.6MHz,可是PATA的40根数据线在运行频率逼近
11.1MHz的时候就已无法保证传输质量,而双沿传输使Ultra
ATA/33无需提高运行频率(8.3MHz)即可达到同样的目的,CRC校验的引入则有利于维护数据完整性。不过,随着带宽的再次翻倍(66MB
/s),11.1MHz终被突破,因此Ultra
ATA/66不得已搬出了增加40根地线的设计,效果虽不能与LVD相提并论,但总算能够将寿命延长至Ultra
ATA/133(运行频率33.3MHz)。
反观
Ultra2
Wide(U2W)SCSI,80MB/s的带宽都不需要双沿传输,因为LVD线缆足以应付40MHz的运行频率,没有CRC校验数据质量也不差。
Ultra160 SCSI采用了双沿传输和CRC校验,所以运行频率保持不变,线缆也不用更换;Ultra320
SCSI的运行频率提高到了80MHz,理论上要求用专门的线缆,但由于线缆的结构并没有实质性改变,因此质量较好的LVD线缆仍然可以使用(只是连接距
离可能会受到一些影响)。
从连接距离、设备数目到多任务操作能力,
SCSI建筑在底层架构上的优势是PATA无法追赶的,LVD不过是其中一例。
变法:强者愈强
PC处理能力的增强带来了其应用范围的扩大,对存储设备接口的要求也水涨船高——至少,仅靠廉价是不行了。
Serial
ATA(SATA)的串行点对点连接在保持廉价特色的同时突破了PATA的局限:简直是串行接口必备的LVDS(低电压差分信号)技术将连接距离提高了一
倍,1米的长度完全能够满足PC机内存储的要求;每个端口可连接的设备数目虽然从2个减少为1个,但小巧的连接器却让同样面积所能容纳的端口数量成倍增
加,结局不言自明;点对点连接构成相对先进的星形拓扑,可以显著改善并发操作能力。在发展空间上,令PATA难以逾越的150MB/s(1.5Gb
/s,8b/10b编码)只是SATA的起步带宽,后续将会提高到300MB/s和600MB/s(下图)。
SAS和SATA的发展路线图
尽管
SATA与(并行)SCSI相比仍存在全方位的差距,但已不像PATA那么明显,SCSI阵营对此焉能视而不见?何况并行SCSI
继续发展的潜力也很有限,步ATA的后尘转向串行是迟早的事。Serial Attached
SCSI(SAS)吸纳SATA的物理层设计是一大妙招,然而怎样运用同样的串行点对点连接营造出比SATA更为复杂的拓扑结构,从而满足企业级存储系统
对性能、可靠性和可用性的要求,难度也是显而易见的。
SAS不仅是在SATA的物理层上执行SCSI命令集那么简单,它还具备FC(Fibre Channel)的某些特性,这使其超越了SATA和(并行)SCSI的范畴(表1)。
表
1:SATA、SAS和FC-AL主要特性对比
双端口
SAS的数据帧基于FCP(FC Protocol),还对SATA的物理层进行了增强——(在外围设备端)添加第二端口支持,形成符合高可用性要求的双端口(dual port)。
全双工
并行ATA和SCSI都是发送和接收共用一组数据线,因此发送和接收不能同时进行,即所谓的半双工(half duplex
);
SATA数据线由两条传送方向相反的差分信号对(LVDS,共4根)组成,发送(Tx
)和接收(
Rx
)各走一路,为全双工(
full duplex
)提供了物理上的可能。不过,
SATA在一对信号线上传送数据的同时需要用另一对信号线返回流控(flow control)信息,所以仍然是半双工;SAS则将一路数据所需的流控信息与反向传送的数据混合在一起,从而能在同样的数据线上实现全双工(下图)。
SAS的全双工工作示意图
宽链接
物理链接(physical link)是SAS中的一个基础概念,一条物理链接包括两对差分信号线(Tx
和
Rx
,即一条
SATA
线缆),传输方向相反,在两个物理Phy之间形成通路。两个SAS端口之间可以建立起由多个物理链接构成的wide
link(图4),相应的端口也被称做wide port,可以表示为N-wide link和N-wide
port,N取值在1~4之间,代表物理链接的数量。1-wide link/port即narrow
link/port,这方面的典型例子是硬盘,双端口意味着两个独立的narrow
port(虽然规格中并没有将硬盘端口严格限定在1-wide,但单个物理链接所能提供的带宽已经明显超出硬盘的内部传输率,还可以降低成本和设计复杂
性),不能配置成一个2-wide port(2宽度端口)。
宽链接和宽端口
类似于
PCI Express(×1~×32),SAS支持宽链接的主要出发点是获得成倍的带宽,这种并联的方便性显然要拜串行技术所赐。
或许是考虑到2004年第一批SAS产品问世时SATA很可能已推出3.0Gb/s的第二代规格,SAS
1.0/1.1采取了直接支持3.0Gb/s并向下兼容1.5Gb/s的策略。Marty Czekalski承认,包括7月8日T10会议上LSI
Logic与Maxtor联合演示系统在内的某些初期原型产品的确运行在1.5Gb/s,但都是在FPGA和现货供应PHY(物理层)芯片基础上开发的,
预计2003年年底将会有采用完全集成3Gb/s PHY芯片和ASIC设计的设备出现,并逐渐被业内接受。
量产的
SAS设备会具有每端口3Gb/s的数据速率,SAS协议还允许全双工操作,这意味着一台双端口驱动器能够达到12Gb/s的峰
值吞吐率(理论上限,持续时间取决于驱动器内部结构和缓存带宽),而4-wide
port(4宽度端口)更可以获得24Gb/s(合2.4GB/s)的带宽——超过PCI-X 2.0。
为了提高连接距离,SAS发送和接收信号的电压范围都比SATA大为提高(表2)。在具体的连接距离指标上,最初宣称是10米,新的资料则是大于6米(外
部线缆),似乎与信号速率从1.5Gb/s提高到3.0Gb/s有关。需要指出的是SAS规范里面并没有严格限定线缆长度,而是靠发送水平和接收敏感度来
考察,(制造商)通过检测线缆特性来判定其所能达到的距离——高质量线缆可以连接得更远,当然成本也更高。现在SAS线缆连接距离的要求已经提高到8米
(制造商仍可以花费更多,用更高质量的线缆求得更长的距离),通过3个扩展器(Expander)之后,SAS的连接距离能够超过32米,与
Ultra160/320
SCSI的12米(15个设备)或25米(点对点)相比虽没有明显优势,但也足以应付机内存储设备连接和近距离DAS的要求了。
表
2:SAS和SATA物理层的兼容性
演变——SATA-Ⅱ和SAS 1.1
Serial ATA 1.0定义了Serial
ATA接口的连接器、线缆、物理层和协议,桌面计算平台是其主要应用目标。在2002年春季IDF上,Serial ATA
1.0的发起者APT、Dell、Intel、Maxtor和Seagate又牵头成立了Serial ATA
Ⅱ工作组,负责开发具备服务器和网络存储设备所需功能及下一代信号速率的Serial ATA Ⅱ规范,而紧随其后的Serial Attached
SCSI也没有满足于1.0版。
Serial ATA Ⅱ两步走
Serial ATA Ⅱ规范分为两个阶段,第一阶段是在Serial ATA
1.0的基础上增加服务器和网络存储设备所需功能,即“Serial ATA Ⅱ: Extensions to Serial ATA
1.0”(简称Extensions to SATA 1.0),已经于2002年10月16日完成1.0修订本,是Serial ATA
Ⅱ工作组开发的众多规范中第一个亮相的。Extensions to SATA
1.0的所有功能(下表)都是可选的(非强制性),只要具备任何一个功能都可以声明“Supports SATA
Extensions”(支持SATA扩展),相应的产品则被称为“SATA 1.5 Gb/s product x supports SATA
Extensions”或“SATA 1.5 Gb/s product x supports SATA Extensions a, b,
&c”。根据Serial ATA命名规则,产品不能叫做“SATA 1.0”或“SATA Ⅱ”——“SATA 1.5
Gb/s”或“SATA 3.0 Gb/s”既表明了是哪一代SATA规范,还可以避免引起混淆。
第二阶段的主要目标是将信号速率翻倍为
3.0Gb/s,按计划应该在2003年下半年定义,2004年下半年进入产品研发。其他最初赋
予第二阶段的任务,不是已经公布规范(“有效连接大量设备的能力”,包括Serial ATA Ⅱ: Port Multiplier和Ganged
connector),就是与SAS关系密切(“拓扑支持双主机失效保护”),详细介绍参见后文。
Serial ATA Ⅱ: Extensions to Serial ATA 1.0的新增功能
×——需要改进以支持相应功能
Serial Attached SCSI内外皆修
2002年10月23日,Intel向T10委员会递交了让SAS支持Serial ATA Ⅱ: Extensions to
Serial ATA 1.0的提议。11月7日,T10开始考虑自己的下一代——Serial Attached SCSI -
2(SAS-2),并计划于2004年12月对外公布草案。
然而,进入
2003年后不久,“SAS-2”的字样就从T10网站的工作草案文档区消失了——被Serial Attached
SCSI-1.1(SAS-1.1)取而代之。对此STA(SCSI商业协会)常务董事Michael T.
LoBue的解释是,那个“SAS-2”与SAS 1.0相比变化不是很大,用“SAS-1.1”表达更符合实际。
2003年7月10日,T10公布了SAS 1.1工作草案的第一个版本(00修订本),它的绝大部分内容与SAS 1.0的05修订本相同,只有少量改进,信号速率不变。改进之处包括:
1.增加4-wide内部连接器(对应SATA Ⅱ的Ganged connector);
2.简化的第一次突发(可选功能,不利用它对硬盘和磁带机等设备没有影响);
3.链路/传输层重试:在SAS
1.0中,如果传输数据到设备的过程中发生错误,将导致整个传输终止,传输重试,这种机制与硬盘的行为相匹配,很少甚至根本不会影响整个系统的性能。然
而,对流式磁带驱动器来说,重发数据却会因磁带回卷而造成性能显著下降。为了获得一个基本稳定的规范并加快SAS系统推向市场的速度,制订SAS
1.0时没有过多考虑这个问题。SAS 1.1增加了链路/传输层重试,可以改善使用磁带驱动器时的性能。
4.改正了在SAS 1.0中发现的所有错误。
预计
SAS 1.1将在SAS 1.0之后9个月左右通过标准审查,SAS 2.0的时间表目前还不清楚,惟一确定的是其数据速率将达到6Gb/s。Marty Czekalski估计大约还要等上两年,不会早于SAS 1.1。
也许作为
SAS象征的标志(logo)改变更为显著。最初的标志(
上
图)是在工作组初期设计的,描绘了一个
连接着多个设备的扩展器(Expander),当时工作组只有5个成员,主要精力都放在开发技术规范上,标志的挑选程序没有过多考虑市场宣传的要求。在
2002年5月规范草案转交T10开发之后,代替工作组推广SAS的STA认为,最初的标志在颜色和风格上不能与STA或SATA的标志形成互补,有必要
改用一种与所有标志同时在介绍材料中出现时仍清晰可见的风格。于是,经过更换颜色和部分变形之后,SAS标志就成了今天这个样子(见下图)。
包容有道——SAS环境中的SATA设备
SAS兼容SATA的能力非常重要,系统集成商和用户可以根据实际需要在大容量/高性价比的SATA硬盘与高性能/高可用性的SAS硬盘之间自由选择。不过,串行互连技术促进存储接口融合说起来容易,但真正实现起来要解决的问题还是很多的。
SAS对SATA的支持可以从软件和硬件两个层面来讨论,其中双端口格外值得我们关注。
STP铺路 OOB识别
SAS定义了3个协议:串行SCSI协议(Serial SCSI
Protocol,SSP),全双工,让SCSI运行在增强的SATA物理层上;串行ATA隧道协议(Serial ATA Tunneled
Protocol,STP),为SATA增加多目标寻址和多发起者访问,以适应SAS环境的需要;串行管理协议(Serial Management
Protocol,SMP),用于发现和管理扩展器(Expander)。
扩展器把
SATA的点对点连接扩展至SAS的多发起者/多目标,然而SATA协议仅支持单发起者/单目标,STP的任务就是让发起者能
够通过扩展器访问SATA目标。STP在发起者与最远的、也就是连接SATA设备的扩展器端口(STP目标端口)之间建立起一条通路(隧道),传输标准的
1.0帧,因此在SATA设备看来,自己连接的就是SATA主机适配器。如果发起者端口识别出与其直接相连的是一台SATA设备,则只使用SATA协议通
发起者端口怎么知道自己连接的是
SATA设备或SAS设备呢?在连接初始化时,发起者送出OOB(Out of
band)慢速脉冲信号,检测目标对COMSAS脉冲的响应情况——如果目标也返回COMSAS脉冲,就是SAS设备,反之即为SATA设备。需要注意的
是,由于在SAS协议中发起者和目标是对等的,外围设备(如硬盘)也可以作为发起者,主动送出COMSAS脉冲,向目标(主机适配器)表明自己的身份。以
硬盘为例,能否生成COMSAS脉冲即辨别SAS与SATA的依据。
STP发起者端口经过OOB协商确认与自己相连的是SATA设备后即进入SATA模式,严格遵循SATA主机适配器的行为规范。STP
并不关心SATA FIS(Frame Information
Structure,帧信息结构)的内容,SATA命令排队可以在FIS中传输——前提当然是STP发起者端口和SATA设备必须支持命令排队功能。不
过,SATA Ⅱ中的其他扩展功能不是被STP排除在外,就是以另外的方式实现。
传输完成后由
SAS主机适配器或扩展器决定是否用STP断开与SATA设备的连接,以后需要时再重新连接。整个过程中该SATA设备始
终以为自己通过正常的流控机制直接连在某个SATA主机适配器上,实际情况却是SAS主机适配器进行了SATA“翻译”工作。在Windows操作系统
中,这个SAS主机适配器将与使用Miniport驱动程序的SATA主机适配器一样被归类为SCSI控制器。
背侧添丁 双口防患
从时间上看,
SAS连接器(包括设备端插头及背板和内部线缆插座)的设计方案要滞后于线缆——第二端口的安放位置似乎比并联数据线更费思量。
SAS与SATA连接器示意图
难者不会,会者不难。
SFF-8482内部附属连接器规范将原本分离的SATA端口和电源插头相连,SAS第二端口位于连接处的背侧
(插座则是对侧,见上图)。第二端口比这块跨接区域略宽,但也只有SATA端口(也即SAS第一端口)的2/3,因此其7个接脚及间距均明显变窄(下
图)。与SAS插头的“铁板一块”相对应,SAS插座也“全线贯通”(SATA插座在SAS第二端口的位置有一突起),这样既可以保证SATA设备插入
SAS插座,又能避免误将SAS设备插入SATA插座。
SAS连接器就是SATA连接器背面加上第二端口
由于单端口的带宽(
3.0Gb/s,甚至1.5Gb/s)已经能够满足硬盘的要求,SAS硬盘增加第二端口并不是为了支持宽链接(2-wide),而是通过给它们赋予不同的SAS地址(WWN),让双端口分属两个(冗余的)域以防系统出现单点故障,从而提高可用性。
在
SAS环境中,SATA设备同样有高可用性需求,即允许两个主机适配器连接到一台SATA硬盘上,避免主机适配器成为单点故障源(图
3)。与SAS的双端口不同,在任何时刻都只能由一个主机适配器独享此SATA硬盘的控制权(由系统软件检测哪个主机适配器处于“活动”状态)。这种通路
切换机制由两端口到单端口的适配器——端口选择器(Port Selector,PS)——实现,SATA
Ⅱ工作组负责开发规范,工作草案已经递交T10网站供参考。在任何时刻只有一个端口处于活动状态,在切换端口之前硬盘的所有行为都必须停止(队列中无请
求)。端口选择器的设计取决于子系统厂商,可以两边分别是SAS(双端口)和SATA连接器,也有可能把端口选择器放在背板上,或者干脆将其集成到硬盘上
配合统一的背板连接器使用。SATA
Ⅱ工作组还有意将端口选择器用于静态负载均衡。不过,这样一来也对该SATA硬盘的工作周期(7×24)和平均无故障时间(MTBF)提出了更高的要求。
防止单点失效的典型SAS配置
为了更好地兼容
SATA,SAS的物理层也提供了对时钟频谱扩展(Spread Spectrum
Clocking)的支持。时钟频谱扩展通过将时钟发生器脉冲波的尖峰衰减为相对平滑的曲线来降低EMI(ElectroMagnetic
Interference,电磁干扰),SATA加入这项功能是为了满足PC对电磁辐射的严格要求;SAS所面向的服务器和网络存储设备辐射标准没有那么
苛刻,SAS设备并不需要它,但SAS系统却必须能接收来自SATA设备的时钟频谱扩展信号。
历史:基础制胜