LoveUnix » PC Server & HPC » [新手上路] SAS环境中的SATA设备
让LU留住您的每

一天 让LU博客留住您的每一天
2007-5-24 12:51 蓝色虫
[新手上路] SAS环境中的SATA设备

SAS兼容SATA的能力非常重要,系统集成商和用户可以根据实际需要在大容量/高性价比的SATA硬盘与高性能/高可用性的SAS硬盘之间自由选择。不过,串行互连技术促进存储接口融合说起来容易,但真正实现起来要解决的问题还是很多的。

SAS对SATA的支持可以从软件和硬件两个层面来讨论,其中双端口格外值得我们关注。

[b]STP铺路 OOB识别[/b]

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目标端口)之间建立起一条通路(隧道),传输标准的SATA 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控制器。

[b]背侧添丁 双口防患[/b]

从时间上看,SAS连接器(包括设备端插头及背板和内部线缆插座)的设计方案要滞后于线缆——第二端口的安放位置似乎比并联数据线更费思量。

[align=center][img]http://www.net130.com/CMS/Files/Uploadimages/1751340.jpg[/img]

SAS与SATA连接器示意图
[/align]
难者不会,会者不难。SFF-8482内部附属连接器规范将原本分离的SATA端口和电源插头相连,SAS第二端口位于连接处的背侧(插座则是对侧,见上图)。第二端口比这块跨接区域略宽,但也只有SATA端口(也即SAS第一端口)的2/3,因此其7个接脚及间距均明显变窄(下图)。与SAS插头的“铁板一块”相对应,SAS插座也“全线贯通”(SATA插座在SAS第二端口的位置有一突起),这样既可以保证SATA设备插入SAS插座,又能避免误将SAS设备插入SATA插座。

[align=center][img]http://www.net130.com/CMS/Files/Uploadimages/1751341.jpg[/img]

SAS连接器就是SATA连接器背面加上第二端口
[/align]
由于单端口的带宽(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)提出了更高的要求。

[align=center][img]http://www.net130.com/CMS/Files/Uploadimages/1751342.jpg[/img]

防止单点失效的典型SAS配置
[/align]
为了更好地兼容SATA,SAS的物理层也提供了对时钟频谱扩展(Spread Spectrum Clocking)的支持。时钟频谱扩展通过将时钟发生器脉冲波的尖峰衰减为相对平滑的曲线来降低EMI(ElectroMagnetic Interference,电磁干扰),SATA加入这项功能是为了满足PC对电磁辐射的严格要求;SAS所面向的服务器和网络存储设备辐射标准没有那么苛刻,SAS设备并不需要它,但SAS系统却必须能接收来自SATA设备的时钟频谱扩展信号。

[b]发起者和目标[/b]

对SATA来说,发起者(initiator)必须是主机控制器,目标(target)只能是外围(存储)设备;SAS却灵活许多,外围设备同样能够成为发起者,主机控制器也可以当做目标。

造成这种差别的根源在于SAS继承了SCSI对等(peer-to-peer)的传统,即发起者和目标地位平等,在建立连接和传输数据时没有主从之分。对等是SAS很容易地就能在单个物理链接上实现全双工的主要原因,但它的优点并不限于此。

SAS硬盘执行SCSI扩展拷贝命令时,(SSP)协议允许一块硬盘直接与其他硬盘建立连接,在没有主机参与的情况下发送SCSI命令并传输数据。

另一个对等的例子是RAID卡。SAS允许两块(冗余的)RAID卡连接到同一SAS域中互相通信,这个通信路径将两块RAID卡联系在一起,如果其中一块RAID卡发生故障,另一块就会接替它的动作而不用担心数据损坏。

相比之下,SATA和PATA一样由主机起控制作用,外围设备只是被动地响应请求,即所谓“非对等”。也就是说,SATA协议没有允许两块主机适配器相互沟通或在两块硬盘间建立直接通信路径的机制。

SAS规范并没有限制SAS硬盘作为发起者与SATA硬盘通信的能力,然而实际设计中不会出现这种情况,因为SAS硬盘要为此提供对STP和SATA发起者协议的支持,从而提高复杂性和成本。

2007-5-24 20:58 kettyalx
:lu4: 路过先踩一脚

2007-5-24 23:17 视频会议
:lu11: :lu11: 不错,版主很努力。

2007-5-25 09:21 brucewoo
不错,学习一下

2007-5-27 10:12 dacoit
现在最大的SATA盘子是750G的吧

2007-5-29 21:33 larryh
不错,学到新知,看来SAS=SCSI over Expanded SATA

2007-5-29 22:53 yurual
好东西

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.