SSA(serial storage architecture,串行存储体系结构)是IBM大力推广的面向新世纪的新型存储体系结构,它支持海量存储,其性能远远超过了传统的SCSI存储体系。
20世纪80年代初,SCSI接口作为磁盘与PC高速连接的技术开始流行时,人们都为它所能提供的外接大容量存储设备的能力而惊叹。如今,一些新的应用程序正吞吐着TB级的存储容量,造成人们对存储器的需求量也爆炸性地增长,而SCSI由于其固有的局限性,显然已经不能满足这种需求了。SCSI将块(block)数据从磁盘并行传送到系统内存,当其总线上连接的驱动器不多时,这是个快速传送数据的好办法,而当连接的磁盘驱动器增多时,其性能就变得恶化了。这是因为SCSI技术所固有的缺陷所致,即需要仲裁总线上每个设备,在同一时间只有一个磁盘驱动器占有总线。当有很多驱动器竞争总线时,将导致在给定时间内的数据传输总量明显减少。
1.串行存储体系结构SSA
SSA定义了一种I/0设备连接的高性能串行连接,它专门为存储应用如硬盘驱动器、主机适配器及阵列控制器而设计。与传统的并行总线SCSI-2相比,SSA克服了SCSI的局限性,具有很大的优势。
SSA的定义分为以下三层:
物理层(SSA-PH1) 定义了接口的电气标准及电缆、连接头。对于STP(屏蔽双绞线)与同轴电缆,其连接速率可以达到40MB(1995年)。
连接层(SSA-TL1) 定义了传输协议、配置及错误恢复。SSA节点是一个可寻址单元,如主机接口卡、开关或硬盘驱动器。在某些情况下,物理单元可能由不止一个SSA节点构成。为了便于寻址,SSA节点被分成单端口节点、双端口节点与交换节点。其中双端口节点最常见。SSA节点之间可以互相连接构成一个仲裁网络。在连接层上传输的最小数据单元为帧,每帧包含 128字节数据,在结尾处有一个由6个字符组成的标志。帧中可以包含数据也可以包含消息。消息用来发送控制信息,如命令与状态。普通帧包含四个域,分别为控制域、地址域、数据域和 CRC域。尤其值得注意的是,SSA-TL1协议中的流量控制功能不仅功能强大而且很简单。在SSA网络中,协议在每个连接中独立工作。而且,这个网络是在系统加电之后自动配置起来的,无需任何开关或者跳线来指定节点的地址。节点和连接可以动态地接通与断开。每个SSA端口有一种环绕模式,它能将串行输出直接导向非串行输入。SSA端口具有独立于电缆和远程节点的上电自检能力。
映像层(SSA-S2P) 是SCSI-2排队模型、命令集、状态字、标识符和检测码的一种映射,用来实现现存固件从并行SCSI-2环境到SSA的迁移。实际上,它保留了SCSI-2的排队模型、命令集、状态字、标识符和检测码,因此,已有的SCSI应用和第三方软件不必做移植。SSA-S2P的主要任务是将SCSI-2的总线阶段与消息映射到SSA-PH传输层。SSA-S2P的性能比并行SCSI-2强得多。在 SSA中,帧多路复用取代了SCSI-2中的仲裁、失连与再选。这样在大批量数据传输过程中系统还能处理一个新命令,而不会带来性能损失。SSA-S2P 允许对同一个设备同时发送多个命令,如对Cache的读操作可以和写操作同时发出。
SSA系统系统支持全双工与空间复用。“空间复用”指的是在一条连线上,两个不同连接可以同时进行独立的会话,也就是说,可以在环上各个不同区段中实现多重并发操作,从而获得更高的吞吐能力。这在SCSI总线或是在光纤通路仲裁环路是不可能的,因为在这两种情况下,整个总线上都只能同时承载一个操作。
2.SSA的优异性能
SSA之所以吸引人,首先在于SSA提高了连接能力。一个单独的主机接口可以连接许多设备,这些设备可以在多个主机之间共享。SSA在几乎不产生额外开销的情况下提供了全双工通信能力。数据帧级别上的多路复用使接口可以在几个并发操作上有效共享。通过适用循环冗余校验码(CRC),SSA的错误检测能力要比适用奇偶校验码的普通总线强得多。SSA设备能够很容易地实现双端口,以提供可选择的数据通道,并在出错条件下正常工作。
在SSA系统结构中,主机处理器(被称为启动者)发布指令或发送数据到环形串接的大量磁盘驱动器。与SCSI相比, SSA没有总线,也不需要在很多SSA连接的磁盘驱动器对主机处理器访问时做“仲裁”。SSA结束了单会话的系统限制,可同时进行多路会话,大幅度地提高了性能。
在SSA中,连接设备的电缆允许全双工的点对点通信。这意味着从主机发出的信息可双向输送到环上的每一个设备,即使两个设备之间发生断路,信息仍可通过环路的分支传送到环上的每一个设备。
另外,SSA可检测环中的断路并自动重新配置系统,恢复链路以保持通信。这不仅可在发生意外断路时提供保护,而且使用户可以在线增添或减少磁盘驱动器而不中止运行、不丢失数据。
环中的每一链路可同时以20MB/s的速率双向传输信息。当处理器将读/写指令的比例平衡到各占50%时,环上的总带宽是20MB/s的4倍,达到80MB/s的最大值。
SSA以使用低成本CMOS工艺处理的硅半导体技术实现。按照SSA的技术发展规划,随着性能加倍到40MB/s的第二代配套半导体元件的推出及成熟应用,SSA环上的总带宽可达到160MB/s的最大值,而且还有进一步大幅度提高的潜力。
从理论上讲,使用SSA环的主机处理器最多可以连接127台设备运行而不至于性能恶化。作为SSA的具体实现,IBM的7133型SSA磁盘子系统实现了与RS/6000服务器和RS/6000SP并行处理系统的连接。插到RS/6000的SSA适配器使磁盘子系统能够配置在两个独立的环中,使每个适配器可接96个驱动器,以每个驱动器容量为20GB计算,总容量可达1920GB之多。
SSA系统的性能基准测定显示,当处理器与实际负载一起工作时,可达到35MB/s的持续数传率(低于理论值80MB/s的原因在于将SSA适配器连接到系统内存的接口的限制)。而且,IBM公司在实验室对通过高速系统总线接口连接的SSA系统进行测试时,传送数据的典型速率已经达到了70MB/s。相比之下,一个数传率为20MB/s的SCSI接口传送数据的典型速率仅能达到 12MB/s~13MB/s。
无论在容量还是在性能方面,SCSI的扩展性都十分有限。而SSA是高度可扩展的结构。除了可以将子系统容量增长很多而不降低性能外,SSA结构还允许在环中简单地插入多个启动者来完成更多的工作,得到比使用单处理器时性能高几倍的增长。测试结果表明,如果4台主机处理器(每台都能以35MB/s的速率传输数据)共享一个 SSA环中的所有磁盘驱动器,可以得到 110MB/s的总体传输速率,几乎是采用一台主机所能达到的速率的4倍。如果将存储器设备划分成等量的“域”(domain),而且每台主机只能与一个域通信,则其性能可接近 140MB/s。这样的性能增长是由于叫做“空间复用”的结构特性所决定的,这意味着不同的SSA链路能够独立地同时执行不同的操作。数据只在启动者与其目标设备之间传输,而不是在整个环上流动。空间复用的另一个示例是在一个SSA环中,磁盘驱动器D和磁带驱动器T被相邻配置,当从D向T备份数据的指令启动之后,数据就只在这两台设备之间传送而不必通过启动者。这就使启动者可以同时从事其他工作,并且提高了整个环的总体传输速率。
此外,SSA结构还有保证数据高可用性、容错、易于连接与扩展、远程布线等诸多优点,并能支持多个级别的磁盘阵列。可见,SSA全面超越了SCSI体系的束缚,是一种极有发展前途的新型存储体系结构。