/ 中存储网

热门存储技术分析之SAS简介篇(三)

2013-10-17 09:21:00 来源:中存储网

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磁盘特地开辟出一条隧道。 

前面只是简单的罗列出设备、端口和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存储产品的读者,可能此时会心存疑惑。为什么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虚拟电路单元,大大增加了性能扩展空间。