串行时代
串行技术的先驱者USB和IEEE 1394已经先后取得了极大的成功,更进一步的无线USB、无线IEEE 1394的标准也在制定当中,而和USB这些外设串行技术相对应的PCI Express内部串行总线也正如日中天,雄心勃勃的Intel正打算推行速度更快、更强的PCI Express 2.0规格,这真是一个串行的时代。
|
Hi-SPEED USB可以达到每控制器480Mbps的传输速率,中央的为Wireless USB,离实用仍有些距离
|
FireWire,或者IEEE1394,目前最高可以提供800Mbps的速率,主要用于高速数码设备,IEEE1394的无线后继UWB技术目前尚不明朗
|
当前显卡的主流串行接口技术:PCI Express,最常见的PCIE x16可以提供8GB/s的双向带宽
潮流不可阻挡,DAS(Direct Attached Storage,直接附加存储)的串行华也不能避免,低端的PATA向SATA的 转变早已经修成正果,要不是光存储方面还有不少遗留,现下的人可能已经不怎么记得PATA是个什么东西了,而面向高端的SCSI向Serial Attached SCSI转变虽然起步略慢,但是通过和Serial ATA工作组的紧密合作,Serial Attached SCSI的发展却也不慢,2007年,SAS市场已经初具规模。
|
SATA 3Gbps已经是时下的标准配置,最新的SATA规范版本是2.6
SAS和SATA技术上有着很深的联系,关于并行技术的劣势和串行技术的优势,以及SAS技术的各方面技术细节、相关产品的实际性能测试,我们IT168已经有了一个很大的专题《串行SCSI深入技术分析和专题评测》,本篇文章试图从SAS和SATA之间的技术联系以及互相兼容方面入手,期望对SAS架构兼容SATA的灵活性做出一些描述,这对规划中小型企业的存储结构无疑是不无裨益的。
SAS呢?
Parallel ATA(并行ATA)在达到PATA 100之后已经差不多达到了极限,Intel早已经意识到了,因此并没有加入之后的PATA 133的行列,而是在2000年2月15日的春季IDF上公布了Serial ATA接口的开发计划,这种新型接口采用串行的点对点连接,细而长的串行线缆可以有效地改善系统布线,传输速率从比PATA更高的1.5Gbps(8bit/10bit编码,合150MB/s)起步,保持先进的架构和强劲的发展潜力的同时,还跟PATA保持着软件级别的兼容,是一个非常理想的替代方案。
随后Serial ATA工作组成立了,包括控制卡(APT Technologies)、硬盘(Maxtor、Quantum及Seagate)及系统(Dell、IBM)方面的多个主要厂商。时至今日,其中一些厂商到现在已经成为它人旗下了。
|
在2001年8月29日,Intel如约在IDF上发表了SATA 1.0规范,随后各大硬盘厂商开始推出SATA产品,其中以2002年6月24日宣布的首款量产产品——Seagate Barracuda VS为首。第一代SATA硬盘采用了将PATA硬盘通过转接芯片转换为SATA硬盘的方法。
之后SATA变开始茁壮成长,时至今日,SATA已经发展到了3Gbps的接口速率,市面上SATA 1.5Gbps界面的产品已经很稀少了。
很多人会将SATA 3Gbps和SATA II两个名称相混淆,尽管SATA-IO(Serial ATA International Organization,SATA国际组织,原SATA工作组)一再声称“SATA II并不意味着3Gb/s”,却无法阻止SATA设备提供商在市场宣传中滥用“SATA II”——如“SATA II硬盘”——的现象愈演愈烈。随着SATA 3Gb/s硬盘的逐渐普及,SATA-IO终于下定决心,决定把“SATA II”和“SATA 2.0”都抛到一边,于2006年8月23日在美国旧金山举行的IDF(Intel开发者论坛)上宣布完成了SATA 2.5版本规范。
SATA II不是某个单一的规范,而是一组规范的集合——NCQ和 3Gb/s等都包括在内,这也是SATA-IO不希望以“SATA II”来给具体的产品冠名的主要原因。随着SATA 3Gb/s逐渐深入民心,SATA-IO终于将大多数当前关于SATA架构的可用信息都整理进一个单一的文档,形成了SATA 2.5规范,希望能以正视听。
SATA 2.5规范收录了原先SATA II所辖的大部分功能——从3Gb/s和NCQ到交错启动(Staggered Spin-up)、热插拔(Hot Plug)、端口复用器(Port Multiplier)以及比较新的外部SATA接口(eSATA)。在www.sata-io.org,用户可以很方便地获得SATA 2.5规范的PDF文档。
最新的消息:
SATA-IO(SATA国际组织)于2007年3月6日公布了最新的Serial ATA 2.6规范,这个比SATA 2.5规范更新了1个子步进的规范主要是加入了新的功能定义以及和增强,比较主要的改进包括:
1。增强了的连接功能,包括内部细线电缆和连接器,以及用于1.8英寸硬盘的内部微型SATA连接器,以及用于高带宽背板设计的小型SATA内部/外部多路线缆和连接器;
2。强化的NCQ(Native Command Queuing,本地命令排队),包括NCQ优先级增强和NCQ卸载增强。
按照SATA-IO的传统,SATA 2.6规范可以在SATA-IO的网站上获取,SATA-IO会员可以直接得到,非会员的免费下载则仍需要再经过一段时间。
服务器行业的SCSI总线疲态已露,虽然SCSI U640的规格可解燃眉之急,然而看到先行者SATA的潜力,未雨绸缪另寻道路无疑是更为明智的,2001年11月26日,Compaq、IBM、LSI Logic、Maxtor和Seagate宣布成立了Serial Attached SCSI工作组,目的是克服并行SCSI技术的缺点,将并行SCSI与Serial ATA的优点相结合,定义一个新型的串行点对点的企业级存储设备接口。
紧接着的12月,STA(The SCSI Trade Association,SCSI商业协会)的董事会一致决定接纳Serial Attached SCSI并全力支持SAS的发展和推广。并在稍后的时间内(2002年初)决定了由STA负责SAS规格的市场需求和工业推广。同时SAS工作组的成员还加入了如Dell等这样的大公司。
SAS的最终Logo,样式与老版本不太一样
2002年4月25日,SAS的第一个草案问世了,5月6日ANSI T10技术委员会就同意接受该草案并立即展开SAS标准的制订工作。SAS工作组和T10技术委员会的工作速度确实非常之快。
2002年10月23日,SATA市场初露端倪的时候,Intel向 T10委员会递交了让SAS支持Serial ATA II : Extensions to Serial ATA 1.0的提议(Serial ATA II : Extensions to Serial ATA 1.0的1.0修订版本在过几天,即10月26日正式发布),这直接地导致了本文的出现。
到了2003年1月20日,STA在Server I/O 2003上正式宣布与SATA II工作组达成合作,共同致力于SAS与SATA硬盘的系统级兼容。SAS的设计上使用了Serial ATA II : Extensions to Serial ATA 1.0定义的增强型的物理接口设计,并在其基础上运行SCSI指令集,因此SAS的起步速率就从3Gbps开始(SATA II属于SATA 1.0规范的扩展,原始的SATA 1.0设计时就考虑到了3Gbps的传输速率)。
2003年7月10日,T10技术委员会公布了SAS 1.1工作草案的第一个修订本,主要增加了4宽度的内部连接器(对应SATA II的Ganged Connector,后面会介绍一下其应用),并增加了链路/传输层重试特性以加速流式磁带驱动器等的性能。SAS 1.1出现之后,SAS进入产品设计阶段。
1.1也是现在主流的SAS版本,其下一代——单向传输速率达到6Gb/s的SAS 2.0出现的时间还不是很清楚。
SAS要兼容SATA驱动器,假如接口方面需要互相转换的话,那这样的兼容意义就不大,因此,它们的接口就必须要有一定的物理兼容性。
上面是SATA插头/插座示意图,我们都很了解了。SATA插座并不多见,通常我们都是使用分离的SATA数据线和SATA电源线联接。
SAS的插头/插座跟SATA的很相似,不过SAS天生就具有双端口操作能力,在插头上这么细小的空间内如何多设计出一个端口呢?
仔细看看就很清楚了,SAS采用了很巧妙的设计:SAS的插头是一整条的横梁,数据端口跟电源端口是连在一起,第二个SAS端口就在之间的Notch的背后,而在SATA插头上,数据端口跟电源端口是分开的。
SAS采用了整条横梁的设计,不仅仅多出了一个安放第二个端口的空间,还可以保证SAS驱动器无法插入SATA背板插座(Notch部分会被顶住而无法插入),而相应地SATA驱动器则可以安全地插入SAS背板插座,真是非常巧妙!
为了提升在入门SATA企业应用,提升SATA的背板工作能力,较新版本的SATA增加了多宽度连接器的概念,用于同时提供多个SATA端口带宽。
Ganged Plug就是这么个东西,不过,SATA并不支持多个端口组成一个端口这样的特性。
实际上,SAS和SATA的4宽度接口都是一样的,毕竟这个不是直接用于连接驱动器端的接口,然而SATA只能获得4个SATA链路,而SAS则能获得4、2+2、3+1等非常自由的组合。
eSATA(External SATA,外部SATA)是时下比较热门的概念,eSATA主要用于连接外部SATA设备,eSATA的物理层、协议等都和通常所用的iSATA无二致, 不过电气参数不太一样:eSATA的信号电压范围要高出iSATA一倍,和SAS的信号电压很相似,因此eSATA的传输距离能比iSATA高出一倍,即 达到了2米。
虽然SAS也能兼容eSATA的插头/线缆,不过eSATA只具有1个宽度的设计,而SAS能提供4个宽度的设计,这可以大大提升带宽,基本上SAS外置端口都是4宽度的。
4宽度SAS外置接口实物。
SAS使用了SATA的物理层,因此线缆等的实质是很相似的,不过电气上有所不同,通常的内置SATA信号电压是SAS信号电压的一半还少,因此点对点的SAS可以达到8米的距离(当前SAS版本要求的最低距离),而SATA则只能达到1米(eSATA是两米)。
SAS和SATA在相同的两对LVD传输线中,SAS同时使用两对数据线,一路上行一路下行,而虽然SATA也同时使用了两对数据线,然而在其中一路传输数据的时候,另一路传送的是控制信号,因此实质上SATA是一个半双工的结构,而每一路都包含数据和控制信号的SAS则是真正的全双工结构,这样单个端口上SAS的吞吐量就天生达到SATA的两倍。
基本上SATA不存在什么拓扑结构的概念,不过我们可以考虑SATA的Port Multiplier(端口复用器)这样的东西:
SATA的Port Multiplier允许单个SATA端口连接最多15个SATA设备,然而Port Multiplier的上行和下行速率都是单个SATA端口的速率,当然当前3Gbps的速率联接4、5个SATA硬盘是没有问题的。Port Multiplier不允许级联,只允许一个主机。
这种外置的SATA价格不菲,可以提供4个SATA的背板联接,提供热插拔等功能。这种设备通常使用内置的Port Multiplier实现功能。
假如SATA Port Multiplier可以看作是一个简单的Hub集线器的话,SAS的Expander扩展器则相对于更高级的网络设备,如图所示,Expander分为Edge Expander边缘扩展器和Fanout Expander扇出扩展器(也称为输出扩展器),边缘扩展器相当于一个交换机,扇出扩展器相当于路由器。
使用了Expander之后,SAS就相当于一个网络了。每一个Expander扩展器可以连接128个SAS或者SATA Phy端口,每个Edge Expander只允许联接一个数量的Expander,只有Fanout Expander允许联接最大数量(128个)的Edge Expander。可见Fanout Expander处于很核心的地位,生产难度也是挺高的。
一个SAS域中只允许存在一个Fanout Expander扇出扩展器,这样一个SAS支持的端口数量为128x128=16384个设备,这个数量已经很大了,而且具有不同Phy端口的设备可以建立多个SAS域,形成一个庞大的点对点交换式SAS网络。实际上,现在的Expander产品还带有类似VLAN这样的功能。
为了让一个可能多达16384个Phy端口的SAS域顺利地运作,必须有一个足够大的地址分配空间以区分Phy端口。SAS使用WWN(World Wide Name,全局名)作为SAS设备地址来解决这一个问题。每一个SAS端口都存在一个8字节的WWN,WWN由24位的IEEE公司ID和40位制造商标识符组成,因此任意两个设备的WWN都是不同的,这一点上跟每个以太网卡的MAC地址都不同的做法一样。
对SATA的点对点连接而言,并没有什么Initiator(发起者)和Target(目标)的概念,控制器联接存储设备,就这么简单,SATA是单主机架构,控制器是固定的发起者,外围设备则是目标。
SAS则不同,发起者和目标都是对等的,每一个设备都可以成为发起者,每一个设备也都可以成为目标,如硬盘可以发起指令,RAID卡可以被动接受数据。SAS中还可以同时存在多个发起者和多个目标,并行工作,SAS的交换式网络结构保证了大规模并行传输的效率。
这种结构可以实现很多有趣及有用的功能,如SAS允许一块硬盘直接与其他硬盘建立连接(好吧,不仅仅是硬盘,光存储也是可能的),在没有主机控制器参与的情况下发送SCSI命令,并传输数据。这在备份等工作上显得很有用。
此外,两个RAID卡之间也可以直接传输数据,一个不存在硬盘等的真正SAS网络理论上也是可行的!相应地就可以实现RAID卡之间的端口聚合/负载均衡这样奥妙的应用,虽然更为常见的应用应该是容错备份,即两块SAS RAID卡同时连接到同一SAS域中,使用SAS路径互相通信,实现冗余操作。
相比之下,多发起者这样的功能是ATA协议这样的单主机结构上无法实现的,因此SAS环境中的SATA硬盘不能实现上述的这些功能。甚至在这样的游戏中参与担当目标的角色也很困难,虽然SAS规范并没有限制SAS硬盘担当发起者控制SATA硬盘并与其进行通信的能力,不过这样SAS硬盘就要内置STP、SATA发起者协议的支持,从当前看来是可行性和必要性都不高的。
如前面所述,SAS环境是支持多发起者、多目标的,而SATA只支持单发起者/单目标,除了硬件上的兼容之外,还要在软件层次上转化这个发起者、目标的差别。
在提供SCSI和ATA/ATAPI命令运行的基础之上,SAS定义了SSP、STP、SMP(上图并没有显示出来)这3个协议:
1。SSP(Serial SCSI Protocol,串行SCSI协议),让SCSI运行在增强的SATA物理层上。
2。STP(Serial ATA Tunneling Protocol,SATA隧道协议),封装SATA命令,让SAS发起者能通过扩展器与SATA设备通信,并为SATA增加多目标寻址和多发起者访问功能。
3。SMP(Serial Management Protocol,串行管理协议),用于发现和管理Expander扩展器以及背板设备。
在这三个协议中,对SAS/SATA兼容性之中其关键作用的自然是STP(SATA隧道协议),它的任务就是让多发起者能够直接地,或者通过扩展器访问SATA目标。STP在发起者及与连接SATA设备的扩展器端口(STP目标端口)之间建立起一条隧道,传输标准的SATA 1.0帧,当SAS控制器直接连接SATA设备的时候,控制器发起者可以直接使用SATA协议。
在建立STP隧道之后,在 SATA设备看来,自己连接的就是一个SATA主机适配器,STP隧道相关设备并不关心传输的SATA帧的内部内容,只需要知道STP目标端口的WWN即 可。为了支持多发起者,STP目标端口就需要保存多个STP发起者/SAS WWN地址,以便将SATA设备发来的数据返回到正确的STP发起者。
为了知道连接的设备是SATA还是SAS,在连接初始化的时候,SAS发起者(SAS控制器或者扩展器,当然一个SAS硬盘也是可能的)发送一个OOB(Out of band)慢速脉冲信号,检测目标对COMSAS脉冲的响应情况——如果目标也返回COMSAS脉冲,就是SAS设备,反之即为SATA设备,因此能否生成COMSAS脉冲就是判断SAS还是SATA的依据。在SAS协议中任何设备都可以作为发起者,主动送出COMSAS脉冲,向目标(主机适配器)表明身份,SATA硬盘不支持COMSAS脉冲,当然,也不支持作为发起者。
在整个系统中,与SATA设备连接的SAS主机适配器或者SAS扩展器进行了SATA的隧道操作,SATA设备始终以为自己通过正常的流控机制直接连接到某个SATA主机适配器上,而主机的上层应用程序并无须理会自己使用的是SATA硬盘还是SAS硬盘,从而实现了无缝的集成。
我们已经看到,SAS具有的多级交换架构十分优秀,具有的多种优点,让其成为了并行SCSI成功的继任者,在近距离的DAS内,可以顺利替代并行SCSI和高端的FC(Fibre Channel,光纤),兼容SATA的特性也让其可以延伸到几乎接近桌面系统的程度,这给企业存储带来了一种新的前景。
由于FC仍然具有稳定高速、传输距离大(10公里)的优势,因此在高端存储市场上,将会有SAS和FC并存的现象,在中低端市场,SAS可以获得很广泛的应用范围。
SAS与SATA在企业级市场共存前景
机会来自于一些低端的存储系统其实对性能的要求并不高,和一些系统对备份参考数据应用的需求。所谓参考数据,是指重要但不频繁访问的归档/备份 等数据,这种应用强调每兆字节最低购置成本以及可扩展性,如一些国家法律要求的企业需要保存数年的数据来备查。随着近年Near Line系列SATA硬盘的产生(WD的Caiver RE/RE2系列以及Seagate的NL系列),SATA硬盘的可靠性也得到了提升,应付一部分的企业需求不成问题。
还有一种情形是,一些刚具雏形的企业,初期并不需要昂贵、快速的SAS RAID存储系统,这时,通过先考虑在SAS环境中部署入门级的SATA,并可以根据需要随时扩展、过渡至SAS。SAS良好的扩展性、可伸缩性使得存储系统可能随着企业的增长而发展。
当前业界也反映出在同一阵列中混合高性能SAS和低成本SATA的趋势,这从2007年第一季度,SAS领先者LSI科技收购SiliconStor可见一斑。SiliconStor提供SAS和SATA联接的多路复用芯片。
从应用上来看,SAS硬盘的性能和功能更强,而SATA硬盘的容量和性价比更优,在SAS环境中可以同时使用SATA硬盘,而SATA环境中则不然,因此部署SAS环境,并同时使用SAS和SATA设备,建立分层存储,依靠着SAS灵活、强大的扩展能力(16384个设备),对各种层次的企业应用都是一个很好的解决方案。