SAS (Serial Attached SCSI) 技术详解

(一)什么是SAS

SAS(Serial Attached SCSI)即串行SCSI技术,是一种磁盘连接技术,它综合了并行SCSI和串行连接技术(如FC、SSA、IEEE1394等)的优势,以串行通讯协议为协议基础架构,采用SCSI-3扩展指令集,并兼容SATA设备,是多层次的存储设备连接协议栈。

说到SAS,自然会联想到在存储上广泛使用的另外一种磁盘通道连接技术:FC(光纤通道),这里将2种磁盘通道连接技术做一个简单的对比:。

FC:

优点:基于Fabric Channel环路协议基础上的串行技术,通过给后端磁盘提供带宽2.0Gbit/s或者4.0Gbit/s的FC环路来进行磁盘的连接;FC线缆的连接距离远,比较容易扩展,是目前广泛采用的磁盘通道连接技术之一;

缺点:FC接口速率虽然能到2.0Gbit/s或者4.0Gbit/s,但由于FC磁盘通道工作于环路模式下,一个光纤环路在同一时间只能实现单个磁盘的IO,导致FC带宽不能被充分利用,并且影响到磁盘并行访问的性能。

SAS::

优点:SAS具备目前磁盘通道技术里面的最高接口速率,通过采用通道合并技术,SAS支持将多个phy合入一个port,可提供高达几十G的通道带宽,比如常用的4*SAS宽端口,带宽可达12Gbit/s;SAS的交换构架支持多个设备的扩展,一个SAS域理论上最多可接16128个设备,同时SAS设备支持24×7的多线程设计,可满足多任务的应用;SAS设备基于目前存储领域最成熟的SCSI技术,可兼容SATA,这使得SAS通道技术具备广泛的适用范围和良好兼容性。

缺点:由于与SAS通道技术配合的SAS磁盘价格偏高,目前主要应用于企业级场合。

小结:SAS作为磁盘通道技术,在接口带宽、工作性能、可扩展性、组网应用、可靠性等方面,有着突出的优势,尤其适合应用于企业级系统。

(二)SAS的交换构架

要了解SAS的构架,先弄清几个概念:

SAS Phy:一个phy即是一个transceiver,每个phy都有一个SAS addresss,和一个唯一的identifier;

SAS Port:一个port包含一个或一组phy,每个SAS PORT有一个唯一的SAS地址,同一个Port中的所有phy共用一个address,即一个port只有一个SAS address;

SAS device:一个SAS device可以包括一个或多个SAS port,device里的每个phy有一个独立的identifier;

图1 SAS device,SAS port,SAS phy关系示意图

End device:是一种SAS device,SAS物理连接的末端设备,例如HBA卡、Disk driver都是end device;

Expander device:包括Edge expander device和Fanout expander device Fanout expander device:起中心交换作用,既可以直接连接到end device,也可以连接到edge expander device; Edge expander device:一般用于连接fanout expander device和end device,也可以连接其它的edge expander device,一个edge expander set中只能包含128个SAS address。

图2 SAS Expander拓扑构图

Domain:即整个SAS交换构架,由SAS device和SAS expander device组成,其中Device又区分为Initiator和Target,它们可以直接对接起来,也可以经过Expander进行连接,Expander起到通道交换或者端口扩展的作用,如下图所示:

图3 SAS交换构架示意图

每一个SAS initiator port和SAS target port都有一个单独的SAS address,expander device也有自己单独的一个SAS address,SAS的交换比较简单,直接用port的SAS address作为交换路由表的内容,没有任何转换过程,一般的交换方法有如下三种:

Routing Method

Function

Direct Routing

Routes connection requests to attached devices with the specific SAS address.

Subtractive Routing

The method the expander connection manager uses to route connection requests not resolved using the direct routing method or table routing method.

Table Routing

The method the expander connection manager uses to route connection requests using an expander route table.

理论上,每个"Edge Expander Set"可以支持128个port,每个SAS Domain可以有128 个"Edge Expander Set",这样每个SAS Domain中最多可以有128 x 128 = 16384 个port。当然,这并不是说每个SAS Domain可以连接16384 个磁盘和SAS适配器,因为"Fanout Expander"与"Edge Expander"相连接时,会占用一部分port。如果128 个"Edge Expander"全部连接到"Fanout Expander",内部互联至少要占用256个port。也就是说,一个SAS域理论上可以连接16384 – 256 = 16128个SAS End Device。对比光纤环路126 个device的上限,16128 这个数字仍然是非常可观。

(三)SAS宽端口技术

SAS port可根据使用情况不同,分为窄端口和宽端口,窄端口是指只包含一个SAS phy的端口,宽端口包含N个SAS phy,这些phy共用一个SAS地址,N的取值一般在2~8之间。

图4 SAS port示意图

一个宽端口和对端端口建立wide link,通过将几个物理链接捆绑起来,提供一个更高带宽的SAS通路,目前普遍使用到的4*SAS宽端口带宽可达12Gbps。

宽端口在使用中,一般有两种方式:

a) 一个N-wide port和另一个N-wide port直接连接,N个phy同时连接建立一个N-wide link,比如常用的两个4*SAS宽端口通过线缆直接对接;

b) 一个N-wide port接到多个narrow port或者M-wide port,分别建立起多条连接,比如一个4*SAS的端口,可以分别接到4个窄端口,也可以接到2个2*SAS的宽端口,还可以接到2个窄端口和一个2*SAS宽端口。

SAS在IX3000产品中的应用

在H3C公司自主开发的新一代中端存储系统IX3000中,完全支持SAS技术标准,同时支持SAS和SATA II硬盘,对硬盘种类的识别和硬盘速率的检测完全是自动地。如下图所示,在IX3000 SCU里,IO处理器通过1个8*SAS的宽端口,接到SAS fanout expander模块,fanout expander对外又提供3路4*SAS的宽端口(下面的图中只画出1路),用以挂接IX3000 DEU磁盘柜。SCU为双主控,对外最多可提供6个4*SAS宽端口。DEU就是SAS edge expander的功能,同样采用双控模式,下面挂接16个SATA/SAS磁盘,对外各提供两个4*SAS宽端口,一个接到SCU,一个用以扩展下级的DEU,具体的组网请参见下图:

图5 SAS在IX3000产品中的应用

按照上述的组网方式,SCU的双主控里任何一个控制模块都能访问到下面挂接的所有磁盘,其中一个主控板故障的情况下,可保证业务不中断;同样,DEU采用双控模式,采用上述组网,对下面挂接的每个磁盘的访问都提供了两条可用的通道,在其一个expander故障的情况下,仍能保证磁盘正常访问,从而实现较高的可靠性。

每个SCU控制器可以对外提供3个x4 SAS磁盘柜端口,每一个SAS端口下面可以级连7个DEU,因此系统最大可以连接21个DEU,配备以高性能的15000RPM SAS硬盘,完全可以满足各种高可靠性、高性能的存储应用需求。