路由技术 交换技术
   无线技术 综合技术 解决方案
   网络管理 网络协议 网络设备
   考试认证 juniper专题
3G纵览 数据通信
   光通信 智能网 WIMAX VOIP
   IPTV NGN
安全产品 病毒防治
    防火墙 安全方案 IDS/IPS    DOS/DDOS
存储技术 存储设备
   存储方案 服务器专区

Google
 
作者:董唯元 发布时间:2007-07-15 12:51:43 来源:51cto.com
 

SAS(Serial Attached SCSI)即串行SCSI技术,正逐步走入我们的视线。按照行业预期,SAS磁盘很快将取代目前的SCSI磁盘甚至FC磁盘而成为主流磁盘类型。可惜现在对SAS技术的讨论大多集中在应用层面,很少有具体的技术介绍。有鉴于此,笔者搜集整理了一些资料,权做抛砖引玉吧。
什么是SAS?简单的说,SAS是一种磁盘连接技术。它综合了现有并行SCSI和串行连接技术(光纤通道、SSA、IEEE1394及InfiniBand等)的优势,以串行通讯为协议基础架构,采用SCSI-3扩展指令集并兼容SATA设备,是多层次的存储设备连接协议栈。

为了更好的了解SAS技术,我们先回顾一下几个相关技术的发展过程。为了简明,这里只以表格形式体现。
首先是并行 SCSI 的发展过程。

名称

标准规范

出现年份

理论带宽

关键特性

SASI

1979

SCSI 雏形

SCSI-1

SCSI-1

1986

~2MB/s

异步; 8 位

SCSI-2

SCSI-2

1989

10MB/s

同步; 16 位

SCSI-3

分离指令集,传输协议与物理接口脱离,成为独立标准

Fast-Wide

SPI/SIP

1992

20MB/s

Ultra

Fast-20 附加标准

1995

40MB/s

Ultra2

SPI-2

1997

80MB/s

低压差分机制

Ultra3

SPI-3

1999

160MB/s

附加校验

Ultra320

SPI-4

2001

320MB/s

分包机制; QAS

正是 SCSI-3 指令集的出现,使得 SCSI 通讯出现了分层结构,并使 SCSI 指令通过其他物理媒介传输成为可能。事实上, SCSI-3 指令自诞生之日就被一批新技术相中,此后出现的光纤通道技术、 SSA 技术、 IEEE1394 火线技术等,均受益于这一进步。

这些串行技术虽然从名字上看与 SCSI 毫不相干,但其实它们都支持 SCSI-3 作为应用层逻辑指令。下面是这些串行技术的简要回顾。

名称

标准规范

出现年份

理论带宽

关键特性

光纤通道

FCP

1995

100MB/s

支持光介质

SSA

SSA-S2P/TL1/PL1

1996

20MB/s

IBM 独有技术

SSA

SSA-S3P/TL2/PL2

1997

40MB/s

IBM 独有技术

火线( IEEE1394 )

SBP-2

1998

50MB/s

光纤通道

FCP-2

2002

200MB/s

InfiniBand

SRP

2002

250MB/s

4 倍速和 12 倍速

iSCSI

iSCSI

2003

~100MB/s

除了并行 SCSI 和几种应用 SCSI-3 指令集的串行技术,我们再简单回顾一下 ATA 技术的历史。

名称

标准规范

出现年份

理论带宽

关键特性

IDE

1986

未标准化

ATA

1994

PIO 模式 0/1/2

E-IDE

ATA-2

1996

16MB/s

PIO 模式 3/4 , LBA

ATA-3

1997

16MB/s

S.M.A.R.T. 技术

ATA/ATAPI-4

1998

33MB/s

冗余校验

UltraDMA66

ATA/ATAPI-5

2000

66MB/s

UltraDMA 模式 3/4

UltraDMA100

ATA/ATAPI-6

2002

100MB/s

UltraDMA 模式 5 , 48 位 LBA

UltraDMA133

ATA/ATAPI-7

2003

133MB/s

UltraDMA 模式 6

SATA

ATA/ATAPI-7

2002

150MB/s

串行 ATA

SATA-II

ATA/ATAPI-8

2004

300MB/s

优化指令队列

之所以罗列出以上三个表格,是因为 SAS 技术正是以串行机制为基础,同时支持 SCSI 和 SATA 的协议 栈 。了解以上三个方面的历史,有助于更方便的理解 SAS 技术的特点。为了增强感性认识,我们先从外观入手,慢慢走进 SAS 技术内部。

上面这张照片就是 SAS 外部接口的样子。使用过 InfiniBand 交换设备的朋友一定觉得眼熟,没错, SAS 外部接口和线缆就是借用了 InfiniBand 线缆的设计。不要小看这个只有并行 SCSI 一半大的接口。这种端口名叫“四路宽端口”,以目前 3Gb 的 SAS 标准,它可以达到 12Gb 的带宽,也就是 4 x 3Gb SAS 通道。 SAS 技术与光纤通道一样,都采用 8 位到 10 位的编码机制, 12Gb 的物理层带宽换算到应用层就是 1.2GB/s ,这一根线就比目前主流的 64 位 133MHz PCI-X 总线还要快。

SAS 磁盘上的端口也与并行 SCSI 有很大区别,倒是跟 SATA 磁盘的端口外观非常像。接脚最多的一组是电源接口,接脚较少的一组是 SAS 磁盘主端口,位置都与 SATA 磁盘电源和通讯端口完全一致。 SAS 磁盘与 SATA 磁盘接口的唯一区别是 SAS 磁盘还有第二个冗余端口,而 SATA 磁盘则只有一个端口。

说到这里,细心的读者会发现一个问题。既然SAS磁盘与SATA磁盘的端口数量都不一致,SAS背板又如何完整的兼容SATA磁盘呢?

不错,如果将SATA磁盘直接插入SAS背板,那么背板上的冗余端口将会悬空,也就是说SATA磁盘只连接在一个控制器上。这样虽然阵列控制器或主机可以使用这些SATA磁盘,但从结构上将无法实现冗余

为此,一些提供 SAS 磁盘阵列的厂商,在兼容 SATA 磁盘时都在 SATA 磁盘托架上附加一个小小的电路板,我们姑且称之为“端口选择器”。其作用就是将 SATA 磁盘上的单端口与两路 SAS 同时连接,从而保证前端控制器或主机故障切换时, SATA 磁盘仍然能保持连接。

当然物理连接的一致,只是 SAS 兼容 SATA 的必要条件。实际上,在整个 SAS 协议 栈 中从物理层到应用层,都贯穿着 一 套用来兼容 SATA 的协议。这套协议被称为 STP ( Serial ATA Tunneling Protocol )即“ SATA 隧道协议”。从这个命名就可以看出, SAS 兼容 SATA 的方式其实就是在从磁盘端到主机端整条链路上,为 SATA 磁盘特地开辟出一条隧道。

除了端口设计, SAS 和 SATA 磁盘的供电接口也可能是读者的疑问。如果 SAS 和 SATA 接口中已经包含有供电接脚,传统的四针式电源是否还有用呢?

对磁盘阵列来说,答案显然是没有。外置磁盘阵列早在 SCSI 和 IDE 年代,就已经不使用四针式电源接口了。但是服务器内部的非热插拔磁盘一般都采用这种接口,而且目前市面上一些 SATA 磁盘也带有这种电源接口。这是因为 SATA 1.0 标准刚刚颁布的时候,还没有完全 取代四 针电源。无法 摆脱四 针式电源,就无法直接支持热插拔,因此 SATA 1.0 在当时被定义为仅主机内部连接的协议,不支持外部连接。不过这些都已经是历史,现在的 SAS 和 SATA II 版本中,四针电源完全没有存在的必要。

看过 SAS 设备外观,我们再看看 SAS 内部的一些工作原理。首先,让我们先搞清楚三个名词——“设备”( Device )、“端口”( Port )和“ phy ”。

“设备”就是指 SAS 连接末端的物理设备,可以是磁盘,也可以是主机里的 SAS 适配器,但不是 Expander 设备。暂时不晓得 Expander 为何物的读者不要着急,后面会介绍到。

“端口”是半物理半逻辑的概念。一方面,每个端口都对应一条实实在在的物理连接线;另一方面,每个 SAS 端口都有一个唯一的 64 位地址。这个地址的格式跟光纤通道里的 WWN (严格的说,应该是 WWPN , WWNN 对应的更像 SAS “设备”名)格式完全相同,由 24 位公司标志和 40 位厂商自定义字段构成。

“ phy ”虽然是个逻辑概念,但功能上很像光纤通道中的 SFP 。它对应的是一组 SAS 协议收发单元,由一个发送器和一个接收器组成。每个 phy 与远端的另外一个 phy 连接,构成一发一收两条链路。 SAS 支持全双工,就是说每个 phy 在以 3Gbps 发送的同时,还可以接收 3Gbps 的流量。

前面只是简单的罗列出设备、端口和 phy 各自的大致含义,很多问题还需要进一步说明一下。

前面我们已经提到,每颗 SAS 磁盘可以提供两个 SAS 连接。那么这两路 SAS 连接是同一个端口的两个 phy ,还是两个独立的 窄 端口呢?答案是后者。每颗 SAS 磁盘上有两个 phy ,这两个 phy 相互独立,被两个不同的端口使用。再明确点说,每颗 SAS 磁盘有两个地址,而不是一个。记住!每个地址,就对应一个端口。

地址和端口的对应关系,还能帮我们辨清 SAS 有效连接。 Phy 之间连通,并不等于端口之间能够正常通讯。只有当一个端口中所有 phy 都与对方端口中的 phy 连通后,两个宽端口的通讯才能正常进行。 目前宽 端口中最常见的,就是前面提到过的四路宽端口,不过一些 SAS 适配器厂商正在设计八路宽端口,未来可能会出现单根线缆 2.4GBps 甚至 4.8GBps 的 SAS 连接。

说到 SAS 适配器,还有个有趣的问题。目前主流 SAS 适配器一般支持 8 个 phy ,那么大家猜猜一般适配器支持多少端口地址呢?答案是可以动态设定。当适配器用来连接外部 SAS 设备时,需要用外部宽端口,这时适配器将 8 个 phy 划分成两个宽端口,支持两个端口地址。而当适配器连接内部 SAS 磁盘时,每个 phy 各自属于自己的端口,适配器将支持 8 个端口地址。

至此,我们虽然明确了一些关于 SAS 的技术概念,但是还不能说对 SAS 技术有所了解。 SAS 技术的重点部分—— Expander 及其工作原理,才是熟悉 SAS 技术的关键。

SAS 的连接模式与光纤通道的 Fabric 交换在很多方面十分相似。每一个 SAS Expander 就像一台光纤通道交换机,整个交换结构被称为“域”( Domain ),其意义跟光纤通道技术中的“域”几乎完全一样。在光纤通道 Fabric 交换结构中,每个域有一个主成员,负责维护整个域的路由信息。在 SAS 域中,起中心交换作用的 Expander 叫做“扇出 Expander ”( Fanout Expander )。 SAS 域中的“扇出 Expander ”既可以直接连接终端设备,也能连接其它“边缘 Expander ”( Edge Expander )。唯一与光纤通道 Fabric 不同的是, SAS 域中可以没有“扇出 Expander ”,而光纤通道 Fabric 域则不能 没有主成员。没有“扇出 Expander ”的 SAS 域,最多只可以有两个“边缘 Expander ”。

理论上,每个“边缘 Expander ”可以支持 128 个端口,每个 SAS 域可以 有 128 个“边缘 Expander ”,这样每个 SAS 域中最多可以有 128 x 128 = 16384 个端口。当然,这并不是说每个 SAS 域可以 连接 16384 个磁盘和 SAS 适配器,因为“扇出 Expander ”与“边缘 Expander ”相连接时,会占用一部分端口。如果 128 个“边缘 Expander ”全部连接到“扇出 Expander ”,内部互联至少要占用 256 个端口。也就是说,一个 SAS 域理论上可以连接 16384 – 256 = 16128 个终端 SAS 设备。对比光纤环路 126 个设备的上限, 16128 这个数字仍然是非常可观。

一些接触过 SAS 存储产品的读者,可能此时会心存疑惑。为什么 SAS 单域就 可以支持如此众多设备,但实际应用中却经常看到多 域模式 的产品呢?这其实跟目前 SAS 芯片的制造工艺有关。如果想制造出一个“扇出 Expander ”来支持 128 个“边缘 Expander ”的连接,那这款“扇出 Expander ”至少要支持 128 个 phy (每端口至少一个 phy )。而 Expander 之间的互联一般应采用至少四路宽端口,那就需要中心的“扇出 Expander ”支持 4 x 128 = 512 个 phy (每端口四个 phy )。而现在的实际情况是 LSI 公司的首款 SAS 芯片只能支持 12 个 phy ,刚刚好是个零头。虽然 SAS 技术支持多个 Expander 芯片组成一个“ Expander 组”( Expander Set )来模拟一个 Expander ,但过多的芯片无疑会在制造工艺和成本方面带来麻烦。正是基于目前 SAS 芯片工艺水平,一些磁盘阵列厂商在设计阵列扩展时,大多采用多域结构。虽然在软件设计上费力多些,但却可以避开单芯片 phy 数量有限的问题。

所谓多域模式,在大多数情况下,其实也只不过是两个域而已,即每个阵列控制器各自属于自己的 SAS 域。因为目前的 SAS 交换技术还不支持域之间的路由,所以要想保证每个阵列控制器都能访问到所有磁盘,最多只能引入两个 SAS 域。

SAS 技术借鉴了很多光纤通道技术的工作原理,对比光纤通道技术可以帮助我们更好的了解 SAS 技术优势。

前面已经提到, SAS 端口地址与光纤通道中的 WWN 格式几乎完全一样,但其使用方式还是略有区别。 SAS 域中,端口地址直接作为交换路由表的内容,没有任何转换过程,而光纤通道的 Fabric 交换中并不直接采用 WWN 地址,而是要经过一个转换过程,由名字服务器对每个设备二次分发路由地址。光纤通道之所以这样设计原因很明显,因为在 Fabric 交换中要支持环路设备,所以不得不兼顾各种编址。实际上在光纤通道交换域中,每个设备要经过三层登陆( FLOGI 、 PLOGI/LOGO 、 PRLI/PRLO )才能接入域中。这颇像一个臃肿的官僚机构,虽然体系庞大,却效率低下。而 SAS 技术舍弃了光纤通道中的仲裁环机制,从而大大简化了交换与地址的关系。在 SAS 域中,再也不需要关心那些恼人的繁文缛节了。

由于交换模式的简化, SAS 设备与 Expander 之间不需要通过复杂的磋商,简单的握手之后就开始正常工作了,这就需要双方事前就很多方面必须达成一致共识。“服务级别”就是共识之一。我们知道光纤通道可以支持五种不同级别的交换服务,分别是 Class 1 、 2 、 3 、 4 和 6 。这其中最常用到的是 Class 3 ,即无确认的帧交换。这种模式 好比不 负责任的邮递员,反正有收信人和发信人互相确认,他自己根本不操心包裹是否完好。由于光纤通道技术中没有 phy 这个层次的设计, Class 3 是效率最高的工作模式。而 SAS 则不然,借由 phy 的底层独占式互联机制, SAS 中的服务级别更像 Class 1 模式,即虚拟电路全带宽连接。这种模式最能够充分保证每一组 SAS 设备之间的通讯带宽,同时数据的误传输概率也降到最低。

由于光纤通道技术中层次臃肿的通讯机制,主机端光纤适配器很难直接察觉到磁盘端设备状态的变化。就好比一个高高在上的官僚,很难知道底层普通市民的住址变迁。为此,光纤通道交换设计了“注册状态变更通知”( RSCN , Registered State Change Notification )机制。就是让每个普通市民在搬家之后,都要主动向政府汇报新地址,政府再将地址 簿 汇总更新,送交各位领导案头,而官僚们就依据案头的记录信息定位每个市民。遗憾的是,这个 RSCN 会打断领导们正在进行的沟通,迫使领导们的工作重新开始,因此严重影响整个政府的办公效率。而在 SAS 域中,由于没有了复杂的沟通层次,每位领导都可以直接掌握市民的住址信息,办公效率自然就提高许多。

SAS 与光纤通道相比,最明显的技术优势在于连接带宽。 简单从 数字上看, 3Gb 的 SAS 似乎不及 4Gb 的光纤通道,但光纤通道技术中端口已经是最基本的逻辑单元,也就是说,两个物理端口间的连接就只可能是 4Gb 带宽。而 SAS 则巧妙的在端口中引入 phy 这个新的逻辑单元,两个 phy 之间的互联带宽为 3Gb ,每端口可以包含 4 个或 8 个 phy 之多,这样两个 SAS 端口之间的连接很容易达到 12Gb 甚至 24Gb 超高带宽。

总之, SAS 在借鉴光纤通道技术特点的同时,一方面大刀阔斧简化交换机制,从而提升了交换效率和可靠性,另一方面增加了 phy 虚拟电路单元,大大增加了性能扩展空间。

※ 相关信息
无相关信息
 

  最新文章

·NetApp将存储虚拟化从硬件
·存储分析 互联网公司为何
·Google 借助免费邮件系统
·趋势科技TMMA方案 减轻企
·存储分析:虚拟存储技术如
·Red Hat 推新版大幅提升虚
·如何利用 SATA 硬盘打造合
·网络存储的信息银行 EMC存
·解析三种远程容灾方式
·绿色节能成趋势 MAID技术
 

  热门文章

·SATA主板BIOS设置方法
·SAS教程
·JFS布局:日志文件系统如何
·存储技术探讨:数据迁移的
·磁盘阵列知识整理
·巧妙将D9格式无损画质分割
·双机热备常见问题及解决方
·存储入门三步曲2——稳定
·深度分析绿色归档存储
·历数iSCSI磁盘阵列的优缺
 
 

 

Copyright ? 2006 All rights reserved