存储 频道

揭开SATA和SCSI之间的恩怨情仇(2)

     二、企业级磁盘:SCSI面临多重挑战

    目前硬盘其实只有两种:以SCSI命令工作和以(S)ATA命令工作。但SCSI命令可以通过三种磁盘接口进行传输:

16位并行SCSI(SCSI-320)
串行连接SCSI(SAS)
光线通道(FC)

    光纤通道其实不仅仅是一种接口,它跟TCP/IP一样,是一种完整的网络协议。但由于本文所讨论的是磁盘,所以我们不妨把它当作接口来看待——SCSI命令通过这一接口进行传输。当前,在企业级市场上,FC磁盘已经占据了近20%的份额,而且绝大多数是用在高端领域。SCSI-320大约占据了70%的份额,但正被SAS快速地取代。有些厂商预计SAS硬盘已经占到了近40%的企业市场份额。SATA在企业级磁盘市场上的份额不是很清楚,估计在20%左右。

1)SATA会取代SCSI吗?

     看一下企业级磁盘的价格就知道——无论是SCSI、FC或SAS,每GB所花费的成本比(S)ATA要高出5倍甚至10倍。但用户花这么多钱却并不能获得线性增加的性能——访问时间(寻道时间+延迟)只能减少2-2.5倍,最大传输率只能提高20-50%。

    过去,ATA硬盘和SCSI硬盘之间的巨大价差很容易被人接受,因为在面对大量随机并发访问请求时,PATA磁盘慢得可怜,很容易发生堵塞。但实践证明,随着全速命令排队(NCQ)技术的引入,当前的SATA硬盘完全能够胜任企业级工作负载。采用NCQ技术后,每秒并发I/O访问次数轻易就能提升50%,比如,在一个典型的I/O密集型文件服务应用中,即使在最糟糕的情况下,SATA磁盘也能获得SCSI一半快的速度。

    更重要的是,阻碍SATA进入企业级市场的少数几个障碍也有望被清除。SATA一个最大的问题就是点对点特性:每块磁盘都需要有单独的线缆连接到控制器。这无疑会导致大量的线缆管理问题,使得SATA-I不适合部署在服务器或存储的机柜环境中。

    但有两种方法可以解决这个问题。第一种是采用带有SATA端口集合器(Port multiplier)的底板。一个端口集合器相当于一个交换机,一个SATA的点对点连接至多可以对应15块硬盘。在实际应用中,端口集合器的每个端口可以连接4-8块硬盘。尽管最好的SATA硬盘在外部区域只能维持40-80MB/s的速率,但一个有着四个磁盘端口的集合器已经能够用于流计算(streaming)领域。对于更多的随机性应用来说,连接8块或15块300 MB/s的SATA硬盘也不会导致瓶颈产生。如下图所示,端口集合器大多用在服务器背板或者存储架的底板上。



    第二种方法是在SAS机箱环境中使用SATA硬盘,下文会讨论。

2)并行SCSI的麻烦

    就象P-ATA的速率被限制在133MB/s一样,各种各样的问题导致并行SCSI也无法采用160 MHz的时钟频率。但对于速率可达到640 MB/s的下一代并行SCSI——SCSI-640而言,160 MHz的时钟频率又是必须的。这样一来,就导致SCSI-640胎死腹中。

    因为我们可以在一个共享的SCSI总线上使用多达14块磁盘,而且最快的SCSI硬盘速率只有100MB/s,这样一来,在许多文件服务应用中,320 MB/s的传输速率开始成为瓶颈。在设计上,SCSI在原始带宽方面并不是很有效。测试表明,2 Gb/s或200 MB/s的FC可以比SCSI 320提供更大的原始带宽。当然,在运行一个OLTP数据库负载时,14块SCSI磁盘每秒并不需要传输数百MB的数据。

    另外,由于SCSI-320为了向后兼容早期的SCSI版本,命令是以5 MB/s发送——这可是上世纪八十年代的速率了。这么低的速率浪费掉了SCSI总线多达30%的性能。还有一个大问题就是,在一个主机总线适配器上只能连接14块硬盘,这大大限制了DAS存储的扩展性。

3)SAS带来的新特性

    SAS不仅仅是SCSI-320的串行版。在这里讨论SAS协议的新特性可能有些枯燥,让我们来看看SAS产品和应用带来了哪些新功能。下图是LSI Logic公司的SAS产品——3442X-R 。


LSI Logic SAS3442X-R: a 8-port 3Gb/s SAS, PCI-X HBA

    如上图所示,LSI Logic SAS3442X-R提供了两种内部硬盘接口:一个SATA口和一个SAS口。SAS HBA卡上的接口(阳)可以连接SATA和SAS线缆的接口(阴)。一般来说,SAS HBA同时支持SAS和SATA两种磁盘,而SATA HBA仅支持SATA磁盘。


上面的接口可以将内置SATA硬盘连接到HBA卡,下面的接口可以连接SAS硬盘

    跟TCP/IP或FC一样,SAS也是一种分层协议。在SAS传输层,有三种协议均采用相同的物理层和链路层协议:

1. 串行SCSI协议(SSP),通过链路层传输SCSI命令(类似于FC协议)
2. 串行ATA管道协议(STP),把SATA桢传输到SATA磁盘驱动器
3. 串行管理协议 (SMP),该协议用于扩展存储和获取诊断信息,如确定硬盘是否在工作,硬盘是否已经接好等等。

    SAS的分层模型如下图所示:


    串行管理协议(SMP)使得SAS具有很高的灵活性和可扩展性。“端口层”允许宽端口提供比SCSI-320和640更大的带宽。串行SCSI协议(SSP)和串行ATA管道协议(STP)使用的是同样的链路层和物理层,这使得SATA和SAS均可以实现扩展。

0
相关文章