SAS接口互连完全指南ZDNet存储频道时间:2008-12-25作者:存储时代——张广彬来源:|Stor-Age.com本文关键词:SAS硬盘磁盘阵列服务器SATA内容导航栏第01页:前言:SAS线缆为什么这样多第02页:SAS驱动器连接(上):兼容SATA第03页:SAS驱动器连接(下):双端口实现第04页:内部连接器(上):SAS4i整合并塑身第05页:内部连接器(下):MiniSAS4i完成小型化第06页:磁盘背板:兼收并蓄集大成第07页:外部连接器(上):SAS4x偷师InfiniBand第08页:外部连接器(下):MiniSAS4x扬长避短第09页:化繁为简:MiniSAS4i至关重要前言:SAS线缆为什么这样多罗马并非一日建成,一个规范从诞生到发展逐步走向成熟也远非一日之功。特别在IT行业里,任何技术都在不断完善自我进化,SAS(SerialAttachedSCSI,串行SCSI)规范亦是如此。作为并行SCSI的接班人,SAS规范出现在人们的视野中已有些时间了。在SAS走过的这些年之中,其规范一直在改进,虽然底层协议得以保留,基本没有太多的变化,但是外部接口连接器的规格却经历了多次变迁,这是SAS为适应市场环境而做出的调整,有了这些“积跬步而至千里”的不断改进,SAS规范才日益成熟,而不同规格的接口连接器则堪称SAS发展历史的见证人。本文作者张广彬推荐SAS相关背景资料了解SAS——SAS技术详解(点击阅读)完整的生态环境——SAS产品大观(点击阅读)为什么会有SAS?(点击阅读)10款SAS硬盘驱动器横向评测(点击阅读)在这里我们有必要区分一下“端口”(port)与“接口连接器”(connector)的概念。硬件设备的端口又称接口,其电气信号由接口规范定义,而数量则取决于控制芯片(ControllerIC,也包括RoC)的设计。但接口也好,端口也好,都必须要依托一个实体的表现形式——主要是引脚和接插件,才可以起到连接的作用,进而组成数据通路。因此,就有了接口连接器,它们总是成对使用:在硬盘驱动器、HBA、RAID卡或背板上的一方,与位于线缆(Cable)一端的另一方“咬合”在一起。至于哪一方是“插座”(receptacleconnector,插座连接器),哪一方是“插头”(plugconnector,插头连接器),视具体的连接器规范而定。各种SAS线缆和连接器,要让人眼花缭乱实在是太容易了……你见过几种呢?在SATA问世之初,线缆和连接器的情况相对简单——毕竟SATA不支持端口聚合,一个端口对应一个接口连接器,线缆也就只有单路连接。SAS则不同:一开始便支持4路的宽链接(widelink),允许多达4个窄端口(narrowlink)聚合为一个宽端口(wideport),并制订了相应的连接器规范。这样一来,SAS的接口连接器至少有两种了,再加上内外之别,各种可行的组合使得SAS线缆的类型多达10种以上,因此,出现“手中虽有SAS线缆,却无法将两端的SAS设备连接起来”的情况是常有的事儿。目前与SAS有关的线缆端连接器已经有6种之多,再加上配对使用的设备端连接器……不考虑最右侧的2种,内部SAS线缆也有7种之多外部SAS线缆有3种,算在一起至少10种如此多种SAS线缆的由来和用途是怎样的呢?本文马上为您送上详细介绍。SAS驱动器连接(上):兼容SATASAS首先定义了硬盘驱动器的接口连接器,其规范即SFF-8482。由于SAS兼容SATA,既要向下兼容SATA硬盘驱动器,又不能让SATA的数据线连接到SAS硬盘驱动器上,SFF-8482规范的制订者们很是下了一番心思。SFF-8482规范定义的SAS线缆端插座,引脚S1-S7是主端口,另一侧的S8-S14是从端口,而P1-P15的供电部分在SATA是分离的SFF-8482定义了SAS硬盘驱动器的双端口(dualport)插头,SATA数据线无法与之相连,而符合SFF-8482规范的插座(位于SAS线缆和背板)却可以随意接纳SAS硬盘驱动器或SATA硬盘驱动器。SAS硬盘驱动器的双端口连接器(上-中)与SATA硬盘驱动器的连接器(下)对比众所周知,SATA硬盘驱动器的SATA端口和电源供应是分离的,两个连接器之间有大约2个(SATA或电源)引脚宽度的间隙。SAS的做法是打掉“隔断”,将双方连为一体,第二端口就位于这个4~5个SATA信号引脚宽度的“桥”的背面。虽然空间利用得很充分,可毕竟也要布置7个信号引脚,所以从端口(SecondaryPort,SAS②)和主端口(PrimaryPort,SAS①)的“个头”在上面的实物对比图中看起来就像武大郎和武松一样差别明显——当然,仅是针对宽度而言,引脚定义及传递信号的能力是没有区别的。SAS(上)和SATA(下)硬盘驱动器的连接器在这个投影方向上的主要区别是有无隔断,前者的轮廓包容了后者,使它们共用SAS线缆连接器成为可能由于SAS硬盘驱动器的接口连接器只是比SATA(加电源)多出来一个从端口,所以SAS线缆连接器很自然地就能兼容SATA硬盘驱动器,反之(SATA线缆配SAS硬盘驱动器)则因受到从端口的阻隔而行不通。这种设计能够避免SATAHBA/RAID卡(不支持后者所需的STP协议)访问SAS硬盘驱动器,从而满足了“防呆”的要求。SAS线缆既可以连接SAS硬盘驱动器(左),也能够连接SATA硬盘驱动器(右)——注意红色箭头所指处缺口的有无,以及硬盘驱动器接口连接器上引脚数量的差异如上图所示,将主端口、从端口和电源供应融为一体的SAS线缆连接器(共29个引脚),与SAS硬盘驱动器的接口连接器一同由小型化委员会(SFFCommittee)制订的SFF-8482规范(非屏蔽双端口串行附加连接器)定义,也被称为“SAS样式连接器”;与之相对应,原来用于连接SATA硬盘驱动器的信号电缆,其连接器只有7个数据引脚,被称为“SATA样式连接器”。SATA数据线缆(左)与SAS线缆的SFF-8482端对比(想了解更多关于双端口的资料请点击这里)SATA样式的线缆是数据与电源供应相分离的设计,而SFF-8482规范定义的SAS插头连接器和插座连接器却不得不把主/从两个端口和供应电源的针脚整合在一起,上图中很清楚地体现出了两者的区别。需要强调的是,无论SAS还是SATA,驱动器上的都是“插头”,相配合的“插座”位于线缆一端,切记不要搞反了……SAS驱动器连接(下):双端口实现SAS样式连接器的好处当然是用起来方便,但在连接SAS硬盘驱动器时,却也有个潜在的问题——并不是用SAS样式(SFF-8482规范)的插座与SAS硬盘/磁带驱动器的插头相连就可以实现双端口功能。SAS驱动器上的双端口分别连接到两个SASHBA/RAID卡,以提高可用性我们必须明确,SAS设备端(device,主要指驱动器)设计双端口功能,初衷不是为了提高带宽,而是要防止主机端出现单点故障,提高SAS驱动器的可用性。因此,SAS驱动器连接插头上的两个端口,不能连接到同一个SAS主机控制器设备(SASIC/HBA/RAID卡)乃至同一台主机上(SAShost),而是有主、从(Primary和Secondary)之分,分别连接到两个SASHBA或RAID卡上,采用Active-Active(双活)模式,确保任何一个SASHBA/RAID卡出故障时,SAS硬盘/磁带驱动器仍能被另一个SASHBA/RAID所在的主机访问,如上图所示。SAS线缆直连的典型状况——无法实现双端口然而,多数情况下,配合SASHBA/RAID卡使用的SAS线缆,无法同时连接到两个SASHBA/RAID卡上。在SASHBA/RAID卡通过SAS线缆直接与SAS硬盘/磁带驱动器相连的时候,因为SAS规范不允许SAS硬盘驱动器的两个端口连接到同一HBA/RAID卡(前面已经说过,双端口设计不是为了增加带宽,而是高可用性和容灾的需要),所以这些SAS线缆上每一个用于连接SAS硬盘/磁带驱动器的SAS样式连接器只分配了一根单端口的连接线,如上图所示。换句话说,这样的SAS样式连接器受对外(主机端)为单路连接的限制,实际上仅有主端口是可用的,但在插入后却无法避免地将SAS硬盘/磁带驱动器的从端口一并占据,反而令双端口功能形同虚设。ADP-4000SAS热插拔背板适配器上的SAS样式连接器,用于连接SAS硬盘驱动器所以,若想要双端口发挥作用,SAS样式连接器通常应该出现在磁盘背板上,接纳SAS硬盘驱动器的插入,而另一侧可以是一对SATA样式连接器(分别对应SAS样式连接器的主、从端口),迎接来自两个HBA/RAID卡上的SAS线缆,实现高可用性。CSElectronics出品的ADP-4000SAS热插拔背板适配器,可以把它当作一个“迷你背板”正因如此,某些SASHBA/RAID卡配套的SAS线缆,在设备一端用的不是SAS样式连接器,而是利于实现双端口的SATA样式连接器。然而,前面已经介绍过,SATA样式连接器不能插入SAS硬盘驱动器。在这种情况下,可以使用上图所示的SAS-SATA适配器:一端为SAS样式连接器,用来插入SAS硬盘驱动器;另一端(也就是面对我们的)有两个分为主、从的SATA样式连接器,对应SAS硬盘驱动器的两个端口,采用SATA样式连接器的SAS线缆插入标有“主信号”(Signal-Primary)的连接器,便可通过SAS硬盘驱动器的主端口访问,另一个(Signal-Secondary)同理类推。如果两者各连一个SASHBA/RAID卡,还能组成高可用性配置。红色椭圆圈内可以作为一个在SAS背板上实现双端口的范例——主机侧两个SATA样式连接器(上),分别对应SAS样式连接器(下)的主、从端口,如红色箭头所示为了进一步展示双端口在SAS背板上的实现,不妨以SuperMicro的SAS825TQ背板来加以说明,如上图。需要强调的是,作为一款主要用于服务器的磁盘背板,SAS825TQ并不支持双端口,其上的每一个SAS样式连接器只对应主机侧的一个SATA样式连接器,除非去掉半数的SAS样式连接器,否则红色椭圆圈内的情况不会出现。当然,将SATA样式连接器的数量增加一倍也可以,但过多孤立的连接器又会带来占地面积过大和不利于布线的问题,下一页将为您献上解决之道。内部连接器(上):SAS4i整合并塑身与主机端和驱动器(硬盘/光盘)端通吃的SATA样式连接器不同,遵循SFF-8482规范的SAS样式连接器专为硬盘/磁带驱动器等存储端设备量身定制,增加了一个从端口并整合供电引脚——都是SASHBA/RAID卡等主机端设备所不需要的。因此,在构成SAS线缆时,另一端必须要有可以与SAS主机端设备(如HBA/RAID卡)相匹配的连接器。不通过背板或扩展器等“中间人”,由线缆直连驱动器是典型的机箱内部应用,因此和SFF-8482连接器隔着线缆相望的主机端连接器被称为“内部连接器”,它们除了栖身于SASHBA/RAID卡,也会在背板上出现。从2004年至今,SAS内部连接器已经历了从SATA样式连接器到SFF-8484,乃至SFF-8087的变迁……同样是4个内部SAS端口,采用SATA样式连接器(上,2004年)比SFF-8484连接器(下,2005年)消耗的PCB面积更大,而且前者分散的放置也不利于布线往简单里说,从硬件的层面上看,SAS可以被理解为支持双端口的SATA。但是,我们知道,双端口是硬盘/磁带驱动器等存储设备的事儿,SASHBA/RAID卡上的端口可以聚合(如4路宽端口),但也可以表现为相对独立的单端口。因此,第一批SASHBA普遍采用了标准的SATA样式连接器。这种“拣现成”的做法好处不言而喻,缺点同样不容回避——如何提供更多的端口?最简单的方式是继续平铺在PCB上,可是PCB的面积终归有限,尤其是还要放置IOP和内存等元件的RAID卡。SATAR