磁盘接口是磁盘与主机系统间的连接部件,不同的磁盘接口决定着连接速度,接口的优劣直接影响着程序运行快慢和系统性能好坏。磁盘接口技术主要有两种,即并行和串行,按照目前的情况分析,“串行”大有取代“并行”之势。
我们接触到的磁盘接口技术有很多,在串行技术出现之前,从整体的角度上硬盘接口分为ATA、SCSI和光纤通道三种,ATA磁盘多用于个人产品中,也部分应用于服务器,SCSI硬盘则主要应用于服务器,而光纤通道只应用在高端服务器上,价格昂贵。
ATA和SCSI分别定位于低端、高端应用领域,它们也有一个共同点,那就是并行,因为它们都按照并行的方式来传输数据。
随着时间的推移,这种并行技术的不足逐渐显现:尽管ATA和SCSI均是并行总线接口,但是它们之间却不兼容;ATA现有的传输速率已经逐渐不能满足用户的需求,SCSI磁盘价格昂贵;传输数据和信号的总线是复用的,如果要提高传输的速率,那么传输的数据和信号往往会产生干扰,从而导致错误。
于是串行技术应运而生,与并行技术不同,串行按照串行方式传输数据,它是一种完全崭新的总线架构。去年SATA(Serial ATA)磁盘开始大规模应用,为串行磁盘技术的革命运动拉开了序幕。同ATA和SCSI相对应的是SATA和SAS(Serial Attached SCSI)两种技术,它们克服了原先并行接口技术中的不足。串行技术提高了性能、降低了价格,还采用兼容的架构,在低端(SATA)和高端(SAS)之间架起了沟通的桥梁。
SATA磁盘已经获得了广泛的应用,而SAS的情况却有所不同,其标准虽在几年前就已确定,但是产品却迟迟没有面世。3月31日,迈拓公司推出SAS磁盘,串行技术正式吹响了向高端进军的号角。记者预言,在不久的将来,磁盘世界将是串行一统天下。
现在,网络存储的概念已经深入人心,NAS和SAN、FC和IP之争都是细节问题,关键是大家都明白将磁盘阵列等存储设备直接连到网络上可以提高利用率和效能。不过,对于磁盘阵列内部的状况,了解和关心的人就没有那么多了,但实际上,那些通常被我们当作“黑匣子”看待的钢筋铁骨,其“五脏六腑”的构造也直接影响着容量的利用率和性能的发挥。
拓扑:从总线到星形
近二十年来,与ATA相比,SCSI一直以高端的形象自居。然而,随着2003年Serial ATA(以下简称SATA)Ⅱ工作组先后公布属于SATA Ⅱ第二阶段的Port Multiplier(端口倍增器)和Port Selector(端口选择器)规范,并行SCSI的优势已经不复存在。
请注意,SCSI和并行SCSI不是一个概念,两者之间不应划等号,如果非要划一个标志的话,也应该是大于号。广义的SCSI是一大堆标准的集合,像并行SCSI接口(SCSI Parallel Interface,SPI)、光纤通道协议(Fibre Channel Protocal,FCP)和iSCSI(Internet SCSI)都包括在SCSI标准架构之中。由于最初的SCSI标准(SCSI-1和SCSI-2)确实只有并行这一种实现方式,所以不加前缀的提起SCSI通常是指并行SCSI、SATA与SAS接口。
在串行接口大行其道的今天,并行接口的不是之处简直随便挑,譬如需要的信号线太多导致高频时信号同步困难,从而限制带宽和连接距离,换言之,就是发展空间有限。
同样是受制于信号线过多,并行SCSI只能选择共享传输介质(线缆)的总线型拓扑结构。虽然宽(Wide,16位)SCSI理论上能够连接多达15个设备,但如果真这样做的话每个设备所能分配到的带宽将非常有限,而且总线的仲裁(避免低优先级的设备“饿死”)问题也会十分棘手。因此,实际应用中上一个16位SCSI通道(一条总线)连接的硬盘数量通常不超过4个,从而在性能和连接能力之间取得平衡。
抛开连接器和软件协议都不兼容的表象,在功能上并行ATA可说是并行SCSI的子集—-后者有的毛病前者都有,后者没有的缺点前者也有(精简所以不够完善)。线缆长度不超过半米、同一通道只能连接2个设备(且为独占式访问)、接口带宽达到133MBps就已十分勉强等都是并行ATA明显不及并行SCSI之处。
正是由于并行ATA(Parallel ATA,以下简称PATA)更早地碰到了瓶颈,ATA率先开始了彻底放弃并行、转投串行怀抱的革命。2000年春季IDF上Intel公布了串行SATA接口的开发计划,并在2001年秋季IDF上联合APT、Dell、IBM、Seagate及Maxtor,正式发布了SATA 1.0规范。
与连接器针脚多达40根的PATA相比,SATA仅有2对数据线(一对发送,一对接收,250mV LVD信号),加上3根地线也不过才7个接脚,连接器十分小巧,线缆也柔软易于弯曲,实现了每个设备独享全部带宽、没有总线仲裁/冲突开销的点对点连接。串行接口必备的LVDS(低电压差分信号)技术将连接距离提高了一倍,1米的长度完全能够满足PC机内存储的要求;每个端口可连接的设备数目虽然从2个减少为1个,但同样面积所能容纳的端口数量却成倍增加,何况PATA在实用中每端口连接的硬盘通常也只有1个;点对点连接构成相对先进的星形拓扑,可以显著改善并发操作能力。此外,SATA的带宽从150MBps(1.5Gbps,8b/10b编码)起步,后续将会提高到300MBps和600MBps。
不过,SATA 1.0的先进架构只是全面超越了PATA,在并行SCSI面前却未必能占尽上风。就以连接大量设备的能力来说,一个并行SCSI端口上挂接4块硬盘很稀松平常,SATA达到同样的水准却要耗费4个主机端口。
SATA的缔造者们显然也意识到了这个问题,于是他们在SATA Ⅱ中引入了Port Multiplier的概念。Port Multiplier的作用是把一个活动主机连接多路复用至多个设备连接,它采用4位(bit)宽度的PM端口字段,其中控制端口占用一个地址,因此最多能输出15个设备连接—-与并行SCSI相当。Port Multiplier的上行端口只有1个,在带宽为150MBps的时候容易成为瓶颈,但如果上行端口支持300MBps的带宽,就与Ultra320 SCSI十分接近了。
换句话说,Port Multiplier本身就是星形拓扑架构的体现,对网络略知一二的朋友都明白它比总线拓扑架构更为优秀。遗憾的是,由于ATA的定位是“廉”(价)字当头,其软件(包括指令集)功能有限,Port Multiplier仅处于星形拓扑的初级阶段,只相当于一个SATA的Hub,而且还不是一个好的Hub—-不允许级联。
兼容:师夷长技以制夷
看到SATA Ⅱ不断地扩充功能,不免让人感叹,2001年冬季Compaq、IBM、LSI Logic、Maxtor和Seagate未雨绸缪,宣布开发Serial Attached SCSI(串行连接SCSI,简称SAS)的确是明智之举。
SAS吸纳了SATA的物理层(包括连接器、线缆)设计,增加了第二端口,同时还具备FC的某些特征。与SATA相比,SAS在物理架构上的增强主要包括:
双端口 SAS的数据帧基于FCP(FC Protocol),并在外围设备端添加了第二端口支持,形成符合高可用性要求的双端口(dual port)—-这一点也类似于FC。
全双工 并行ATA和SCSI都是发送和接收共用一组数据线,因此发送和接收不能同时进行,即所谓的半双工。SATA数据线由两条传送方向相反的差分信号对(LVDS,共4根)组成,发送(Tx)和接收(Rx)各走一路,为全双工提供了物理上的可能。不过,由于ATA协议是半双工的,因此SATA在一对信号线上传送数据的同时只是用另一对信号线返回流控信息,仍然是半双工;SCSI协议则是支持全双工的,SAS通过将一路数据所需的流控信息与反向传送的数据混合在一起,从而能在同样的数据线上实现全双工。
宽链接 物理链接是SAS中的一个基础概念,一条物理链接包括两对差分信号线(Tx和Rx,即一条SATA线缆),传输方向相反。两个SAS端口之间可以建立起由多个物理链接构成的wide link(宽链接),相应的端口也被称作wide port(宽端口),可以表示为N-wide link和N-wide port,N取值在1~4之间,代表物理链接的数量。SAS支持宽链接的主要出发点是获得成倍的带宽,而设备端双端口的设计则是为了提供冗余链路,增强可用性。
带宽 或许是考虑到第一批SAS产品问世时SATA很可能已推出3.0Gbps的第二代规格,SAS 1.0/1.1采取了直接支持3.0Gbps并向下兼容1.5Gbps的策略。虽然某些初期原型产品的确运行在1.5Gbps,但都是在FPGA和现货供应PHY(物理层)芯片基础上开发的,目前采用完全集成3Gbps PHY芯片和ASIC设计的设备已经出现,并逐渐被业内接受。
连接距离 为了提高连接距离,SAS发送和接收信号的电压范围都比SATA大为提高。在具体的连接距离指标上,最初宣称是10米,新的资料则是大于6米(外部线缆),似乎与信号速率从1.5Gbps提高到3.0Gbps有关。需要指出的是SAS规范里面并没有严格限定线缆长度,而是靠发送水平和接收敏感度来考察,制造商通过检测线缆特性来判定其所能达到的距离?D?D高质量线缆可以连接得更远,当然成本也更高。现在SAS线缆连接距离的要求已经提高到8米,通过3个扩展器(Expander)之后,SAS的连接距离能够超过32米,与Ultra160/320 SCSI的12米(15个设备)或25米(点对点)相比虽没有明显提高,但也足以应付机内存储设备连接和近距离DAS的要求了。
上述规划都很不错,可是第二端口怎么实现呢?通过将原本分离的SATA端口和电源插头相连,并将SAS第二端口设置在连接处的背侧(插座则是对侧,见图),就得到了SAS连接器。第二端口比这块跨接区域略宽,但也只有SATA端口(也即SAS第一端口)的2/3,因此其7个接脚及间距均明显变窄。与SAS插头的“铁板一块”相对应,SAS插座也“全线贯通”(SATA插座在SAS第二端口的位置有一突起),这样既可以保证SATA设备插入SAS插座,又能避免误将SAS设备插入SATA插座。
升华:交换和路由
与SATA一样,SAS也可以让主机端口与设备端口点对点直接相连,但不同的是,后者从设计之初就引入了类似于Port Multiplier的中间设备,以达成大量设备连接能力并实现更为复杂的拓扑结构。
这个中间设备叫做扩展器(Expander),不过与并行SCSI中的同名设备不是一个概念。如果把SATA的Port Multiplier比做Hub,那么SAS的扩展器就是交换机(Edge Expander,边沿扩展器)和路由器(Fanout Expander,扇出扩展器)。
扩展器利用可多达128个的PHY(发送器和接收器各一、能够接受1个物理链接的最小单元,譬如1个4宽度端口即由4个PHY组成)连接主机/设备或其他扩展器,组成星形拓扑架构。SAS还引入了“域”的概念,扇出扩展器是SAS域的核心,一个SAS域只能有一个扇出扩展器,它可以随意连接边沿扩展器;一个边沿扩展器只能连接到一个扇出扩展器上,而在没有扇出扩展器的情况下最多仅允许两个边沿扩展器互连;在不超过数目上限的前提下,扩展器可以随意连接发起者/目标设备。也就是说,在一个SAS域中,任意两点(主机或设备)之间最多可以有3个扩展器。
SAS制订初期的目标是每个扩展器可连接64个设备,一个SAS域最多4096个(64×64)设备;后来规范制订者们意识到没有必要把扩展器的端口数目限制在64个,于是便改为每个扩展器能够寻址128个PHY,整个SAS域形成一个物理连接数目可达16K(128×128=16384)的点对点交换式拓扑架构。
扩展器强大的连接能力不仅是为设备数量服务的,它还可以用多达4个的物理链接组成宽链接来获得成倍的带宽。以4宽度内部串行附属连接器为例,SATA只能通过4根相互间没有逻辑联系的线缆获得4个独立的SATA链接,SAS却可以得到一个4宽度链接(在一个扩展器上)、两个2宽度链接(在两个扩展器上)、四个1宽度链接(在四个独立的扩展器或设备上),甚至还能够是一个3宽度链接和一个1宽度链接……性能与灵活度都远胜于SATA。
不过,扩展器引入的复杂度也不尽是优点,譬如它将原本直接相连的两个设备分隔开就隐藏着潜在的风险。为此,SAS在链路层引入了速率匹配(rate matching)的概念,即在高速连接一侧(视需要)降低实际数据速率,维持扩展器吞吐量的平衡。这一功能对SAS主机控制器(3.0Gbps)通过扩展器连接SATA外围设备(1.5Gbps)的应用显得尤为重要。
说到SAS主机控制器连接SATA外围设备,我们还得颇费些口舌。SAS支持3种协议,分别是串行SCSI协议(Serial SCSI Protocol,SSP),全双工,让SCSI运行在增强的SATA物理层上;串行ATA隧道协议(Serial ATA Tunneled Protocol,STP),为SATA增加多目标寻址和多发起者访问,以适应SAS环境的需要;串行管理协议(Serial Management Protocol,SMP),用于发现和管理扩展器。’
扩展器把SATA的点对点连接扩展至SAS的多发起者/多目标,然而SATA协议仅支持单发起者/单目标,STP的任务就是让发起者能够通过扩展器访问SATA目标。STP在发起者与最远的、也就是连接SATA设备的扩展器端口(STP目标端口)之间建立起一条通路(隧道),传输标准的SATA 1.0帧,因此在SATA设备看来,自己连接的就是SATA主机适配器。如果发起者端口识别出与其直接相连的是一台SATA设备,则只使用SATA协议通信。
那么SAS主机控制器端口怎么知道自己连接的是SATA设备还是SAS设备呢?这就要借助于带外(Out of band,OOB)信号来识别了。在连接初始化时,主机控制器端口送出OOB慢速脉冲信号,检测目标对COMSAS脉冲的响应情况—-如果目标也返回COMSAS脉冲,就是SAS设备,反之即为SATA设备。需要注意的是,由于在SAS协议中发起者和目标是对等的,外围设备也可以主动送出COMSAS脉冲,向主机适配器表明自己的身份。以硬盘为例,能否生成COMSAS脉冲即是辨别SAS与SATA的依据。
STP发起者端口经过OOB协商确认与自己相连的是SATA设备后即进入SATA模式,严格遵循SATA主机适配器的行为规范。STP并不关心SATA FIS(Frame Information Structure,帧信息结构)的内容,SATA命令排队可以在FIS中传输—-前提当然是STP发起者端口和SATA设备必须支持命令排队功能。
传输完成后由SAS主机适配器或扩展器决定是否用STP断开与SATA设备的连接,以后需要时再重新连接。整个过程中该SATA设备始终以为自己通过正常的流控机制直接连在某个SATA主机适配器上,实际情况却是SAS主机适配器进行了SATA“翻译”工作。在Windows操作系统中,这个SAS主机适配器将与使用Miniport驱动程序的SATA主机适配器一样被归类为SCSI控制器。
结语:融合促进分层存储
由于单端口的带宽(3.0Gbps,甚至1.5Gbps)已经能够满足硬盘的要求,SAS硬盘增加第二端口并不是为了支持宽链接(2-wide),而是通过给它们赋予不同的SAS地址(World Wide Name,WWN),让双端口分属两个(冗余的)域以防系统出现单点故障,从而提高可用性。
在SAS环境中,SATA设备同样有高可用性需求,即允许两个主机适配器连接到一台SATA硬盘上,避免主机适配器成为单点故障源。与SAS的双端口不同,在任何时刻都只能由一个主机适配器独享此SATA硬盘的控制权(由系统软件检测哪个主机适配器处于“活动”状态,即不是active-active的)。这种通路切换机制由两端口到单端口的适配器(也称Port Selector—-端口选择器)实现,目前Port Selector 1.0规范已经公布。在任何时刻只有一个端口处于活动状态,在切换端口之前硬盘的所有行为都必须停止(队列中无请求)。端口选择器的设计取决于子系统厂商,可以两边分别是SAS(双端口)和SATA连接器,也有可能把端口选择器放在背板上,或者干脆将其集成到硬盘上配合统一的背板连接器使用。此外,端口选择器还可以用于静态负载均衡。不过,这样一来也对该SATA硬盘的工作周期(7×24)和平均无故障时间(MTBF)提出了更高的要求。
SAS的整个架构,比同样以串行方式运行SCSI协议的FC-AL更为完善,有望引起高端硬盘接口一场革命。这里我们要着重指出的是SAS兼容SATA的重大意义。长期以来,高端的FC和并行SCSI接口与低端的PATA接口互不兼容,而随着近几年ILM(信息生命周期管理)概念的提出,企业级存储系统对参考数据应用的需求不断增长,PATA及其继承者SATA开始打入企业级存储市场,系统制造商希望能够通过混用高端磁盘和低端磁盘在单个存储设备内部实现分层存储,为应用提供更高的灵活性。这种混用最初是在磁盘柜级别的,即磁盘柜内部全都是一种接口的硬盘,外部统一为FC接口(如EMC CLARiiON),后来FATA(Fibre Attached Technology Adapted)的出现将混用级别推进到了单个磁盘,灵活度大为提高。
然而,作为一种高端接口(FC)与低端盘体相结合的产物,FATA磁盘专为高低端磁盘混用而生,市场空间相对有限,成本和灵活性不会很理想。反观SAS与SATA的兼容,可谓自然而然,SATA在取代PATA之后一统低端市场,SATA硬盘随手可得,与SAS配合起来,相得益彰。
编看编想:谁的寿命更长?
随着SAS磁盘的推出,用户有了更多的选择,同样,用户也就更关心哪种磁盘技术的寿命长的问题。当我们对各种磁盘技术进行比较时,用户首先关心的是它们的故障率,于是有观点认为,谁的故障率最低谁的寿命最长。然而,事情远非如此简单!
由于SAS产品刚刚推出,其各种影响力还没有展现,但是,从SATA磁盘的应用来看,其获得成功的关键并不是更低的故障率,相反,其故障率甚至高于SCSI和光纤通道磁盘。记者认为,用户拥有RAID技术,拥有热插拔技术,它们的结合很大程度上补偿了磁盘肯定会发生的故障。另外,有些公司的特定技术(RAID 6以及类似技术)还做到了同时有两块磁盘发生故障而不丢失数据。
就目前情况来看,还没有一种技术可以完全替代其他所以类型磁盘,但是在用户进行分层次存储选择磁盘时,用户的有些选择已经发生了很大的变化,勿庸置疑,串行技术的优势已经逐渐显现出来,并且会发扬光大。
IT经理应当了解所有这些问题,然后考虑价格、厂商因素以及其他许多问题。选择SATA或者SAS磁盘会更便宜吗?这取决于用户的需要。在大多数问题得到充分了解后,企业IT经理可以根据IT的经济性而不仅仅是技术,做出决定。