取代FC已成定局 看专家详解SAS连接技术 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
http://www.sina.com.cn 2011年02月15日 05:12 IT168.com | |||||||||||||||||||
取代FC已成定局 看专家详解SAS连接技术 作者: Chinaunix zxc日期: 2011-02-15文章属性:专稿 【IT168 专稿】就像SATA是ATA的串行标准一样,SAS是SCSI总线协议的串行标准,SAS的三个字母是Serial Attached SCSI的缩写,就是我们所说的串行连接SCSI。由于SCSI并行技术在发展过程中已经遇到了种种弊端,为了在技术上获得新的突破,串行技术应运而生。在存储连接技术发展的历史过程中,人们围绕着SAS和FC技术哪个才是未来发展趋势这个问题一直颇有争议。支持SAS技术的人认为,作为SCSI的一种升 级技术,SAS有望在未来取代目前占据强势地位的FC技术。而FC技术的支持者则宣称,FC在技术上的先进性仍然毋庸置疑。 如今,一个显而易见的事实则是,在不同市场定位的存储系统后端连接背板技术上,基本绝大多数厂商都选择SAS技术,因为SAS技术具备性能和经济性两方面的优势。那么什么事SAS技术,SAS技术是如何工作的呢,下面我们将详细介绍SAS的底层工作原理。 什么是SAS SAS是P2P连接,即独享总线,而SCSI则是共享总线,SAS initiator和expander兼容SATA设备。要介绍SAS,需要从SCSI开始说起,SCSI是并行连接标准,由于并行的线路信号会产生干扰,SCSI提速越来越困难,因为时钟控制更加困难。位数增加也会带来数据线不断变宽,而且电磁串扰会更加严重。如下图所示。 SAS既然是单线路串行传输,为什么传输效率会更高呢因为SAS虽然传输位数少,但速率可以非常容易提高。目前,普遍在3Gbit/s速率。传输距离远。可支持128*128个硬盘。容错机制(SCSI总线下一旦某个硬盘坏,可能会导致整个BUS失败)。更小的硬盘接口,降低成本(SCSI为68pin),支持2.5英寸硬盘。支持硬盘2个phy实现冗余备份。 SAS和SCSI架构 SAS支持SCSI命令传输,因此兼容SCSI-3架构,也支持SATA(通过 SATA Tunneled protocol即STP协议传输)。SAS域可由expander、target、initiator一起组成。 在传输协议中一般都存在Initiator和Target的设备,所谓Initiator指的发起者,往往是服务器,或通过专业的HBA卡,或通过网口,获得FC-SAN或者IP-SAN存储设备共享的block设备,HBA卡往往会会包含多个PHY,如LSI1068E芯片。而Target则是目标设备,毫无疑问,肯定是SATA或SAS组合柜或单个硬盘。 Expander:即交换板,可是专业的SAS交换机,也可以是JBOD里面的那个交换背板(含交换芯片,如PM8377,支持36个PHY接入)。 Port:可包含一个或多个PHY接口,每个Port包含一个独一无二的64-bit地址。含多个phy的称为wide port,只含一个phy的为narrow port。wide port可支持链路冗余以及并发操作设备,每个链路为initiator与target的phy之间。像8087 mini sas接口则为含4个PHY的wide port,而连接硬盘终端的则是narrow port。 PHY:每个phy有一个ID,从0 to N-1(第一个PHY为0,范围从00-7Fh)。一个PHY只能接一个硬盘。 SAS协议 下面介绍和SAS协议相关的概念 SMP:SAS设备之间的信息。 SSP:SAS 域中兼容SCSI命令。 STP:SAS 域中兼容SATA命令。 SAS命名和地址 设备必须命名,不管是initiator,target 还是expander,都必须有独一无二的名称(64-bit)。端口、phy也都必须命名,如下图所示:(注意00:00:00:00:00:00:00:00h是不合格的SAS地址)。 SAS结构分层 同OSI七层模型一样,SAS也有分层。 Application layer:使不同协议命令能够被认识,即兼容SMPSSPSTP。 Transport layer:定义传输的各种信息格式和结构,以及任何相关的控制信息,如流控制和acknowledgement。还有就是定义了SSP和SMP的报文格式。说白了就是对各种报文的封装。 Port layer:选择哪个PHY进行通信连接。并进行open/close 连接操作。有点像OIS里面的网络层,即路由。 Link layer:对报文添加/摘除头(SOF)和尾(CRCEOF)。同时也定义了SSP的流控制和acknowledgement。如果是SMP/STP,则流控制和acknowledgement依靠协议自身实现,而不是link layer。有点混乱了,和transport layer的功能比较。 网络分层和报文封装示意图如下所示: SASSCSI BusFibre channel 和SATA之间的关系 SAS其实也是在传输SCSI命令。因为SCSI命令已经相当成熟,没有必要推到重来。事实上,利用SAS进行SCSI操作的报文就像利用Fibre channel接口进行SCSI操作的报文一样,非常相似。 SAS expander仲裁机制 我们知道,SCSI BUS是共享机制,所以必须存在仲裁机制以防止多个设备同时发起请求。 在SAS expan中,仲裁也是需要的。因为存在多个PHY同时去连接某一个PHY。circuit switching 和frame switching SAS有两种通信操作模式,即circuit和frame。 circuit:就是在两个PHY之间建立circuit连接,则paht和resources将会被分配给该连接,无论是否有数据包进行传输。在SAS下,通过OPEN 地址帧在两个PHY之间建立circuit。当通信完成后,就关闭该circuit。 frame:在该模式下,报文可以独立路由。不需要circuit或connection的建立,也不需要path或resources的分配。一旦frame发送出去,它可以路由到available path,只要resources允许。说白了就是路由器的功能。 |