下一代I/O还看InfiniBand
由于服务器的处理器速度已加速到2GHz,用户期望获得更高的服务器带宽以应对Web深入的应用。但现有的外设部件互连总线(PCI)明显造成了I/O瓶颈。
这时InfiniBand登场了。这种新兴的服务器I/O技术规范承诺:利用外部的交换串行I/O结构取代当前速度为1Gbps的PCI-X和千兆以太网技术,以此拓宽群集服务器之间的管道。这种新的I/O结构全双工支持2.5Gbps至10Gbps的数据速率,最终速度可达30Gbps。
交换式的I/O技术
InfiniBand规范定义了三种连接速度,分别提供2.5 Gbps(1倍速)/10 Gbps(4倍速)/30 Gbps(12倍速)数据传输能力,双向能力则达到5Gbps/20Gbps/60 Gbps,由于采用了8B/10B编码,有效数据通信能力为4Gbps/16Gbps/48Gbps。
其实,InfiniBand的高速实现道理非常简单,即在串行结构中利用了并行——并行铜线越多(多达48条,12倍速下),你能获得的带宽也就越高。在整个体系结构上,InfiniBand的初始设计在拓扑结构上类似光纤通道,将通过InfiniBand中间交换机,利用嵌入式目标通道适配器(TCA)把服务器内的主机通道适配器(HCA)与其他设备连接起来。
InfiniBand标准定义了一套用于系统通信的多种设备,包括通道适配器、交换机和路由器。 其中,HCA提供了一个主CPU和存储器子系统的接口,并支持InfiniBand结构所定义的所有“软件动词”(Verb)。这里所说的“软件动词”是定义了操作系统厂商可能用来开发适用API的操作。而TCA则提供InfiniBand到I/O设备的连接。这种I/O卡可能是一种网络接口卡(NIC),它包含了每种设备特定操作所必需的部分功能。
交换机是InfiniBand结构中的基本组件。一个交换机中有多个InfiniBand端口,它能根据本地路由器包头中所含的第二层地址将数据包从其一个端口送到另外一个端口。交换机只是对数据包进行管理,并不生成或使用数据包。同通道适配器一样,交换机也需要实现子网管理代理(SMA)以响应子网管理数据包。交换机可通过配置来实现数据包的点播或组播。
InfiniBand路由器用于将数据包从一个子网传送到另一子网,其间数据包的数量不会变化。与交换机不同,路由器读出第三层的全局路由头并根据其IPv6网络层地址来进行数据包发送。
从上面简单介绍可以看出,InfiniBand协议是一种分层结构。首先是物理层,它允许多路连接直到获得30Gbps的连接速度。由于采用全双工串行通信方式,单速的双向连接只需要4根电缆,在采用12速方式时,只需要48根电缆线,这是非常具有吸引力的,特别是和采用背板连接的90针PCI-X体系结构相比。
链路层和传输层是其体系结构中最重要的方面。在包通信一级,指定了两种特殊的包类型,分别代表数据传输和网络管理数据包,管理数据包提供了设备枚举的操作控制、子网指示、容错等功能。数据包用来传送实际的数据信息,每个包的最大长度为4KB,在每个特定的设备子网内,每个数据包的方向和交换通过本地的16位标识地址的子网管理器完成。
链路层可提供InfiniBand架构QoS功能的支持。主要的QoS功能是采用虚通道用于互连,即使是单个数据通道也可以定义在硬件级别,虚通道方式允许16个逻辑链路,15个独立通道和一个管理通道。因为管理需要最高的优先级,所以可以设置管理通道具有最高优先级。
InfiniBand的网络层提供了包从一个子网到另一个子网的路由能力。源和目的节点的每个路由包有一个全局路由头和一个128位IPv6地址。网络层也嵌入了一个标准的全局64位标识,这个标识在所有的子网中都是惟一的。通过这些标识值之间错综复杂的交换,允许数据跨越多个子网传输。
最后的一层就是数据传输层,负责数据包的实际传送。传输层的功能包括了几个关键的方面,如数据包分送、通道复用、基本的传输服务。基本的网络构造特征,如最大串数字节(MTU)和基本传输头(BTH)导向也是隐含在传输层的处理之中。
网络化的I/O技术
InfiniBand结构的关键在于通过采用点到点的交换结构解决共享总线的瓶颈问题,这种交换结构专门用于解决容错性和可扩展性问题。共享总线结构中多个设备与总线之间是被动连接的,而InfiniBand采用了点到点的连接方式,它通过一个带有有源元件的结构与各个设备连接,所有的连接都是点到点的连接,一个设备对应一个终端。因此,同传统的PCI总线结构不同,InfiniBand结构中链路的建立和终止能得到很好的控制。这样,采用此结构后,通信系统的性能得以优化。
InfiniBand本质在于把网络技术引入I/O体系之中,形成一个“I/O交换网”。主机系统通过一个或多个HCA连接到I/O交换网上。存储器、网络控制器等设备通过TCA连接到这个交换网上。所有InfiniBand适配器用IPv6地址寻址,这一点与所有其他的网络节点一样。采用IPv6寻址将使其与Internet路由器和网关的连接更容易、更直接。
另外,应该说InfiniBand也是一种基于通道的I/O标准。但InfiniBand没有采用类似于PCI的内存映像“装载/存储”,而是使用了消息传送的“发送/接收”模型。其中的端点可寻址能力对于可靠性是很重要的。适配器负责处理传输协议,而InfiniBand 交换机则负责保证信息包到达其应该到达的地方。这种方式在大型主机中是十分常见的,如在S/390大型主机中就有这样的做法。
InfiniBand的设计思想使得“CPU可直接对网络进行I /O操作”,并最终到达直接操作Internet的便利。这样一套灵活的方法可能会引发许多新思路。比如,交换式的设计、消息/信息包、宽阔的传输通道和延伸的控制机制,所有这些在今后10年内将会成为增强体系结构和网络模式的基础。
应用目标
InfiniBand的应用目标有三大方面: 直接连接存储、群集以及刀片式服务器等新兴领域。DAS领域本身就是InfiniBand的设计目的。只要存储设备支持InfiniBand协议(通常是加一个InfiniBand控制器),即可实现与服务器的直接连接存储。但事实是InfiniBand在网络存储领域发挥的作用要大得多。比如,博科对InfiniBand的承诺意味着SAN领域两种网络技术的交融前景。
利用InfiniBand实现群集的好处在于低时延、高性能。群集一般采用以太网,如果是高性能计算机,内部也通常采用HIPPI或Myrinet网络,后两者的竞争力表现在可靠性、可用性上。现在InfiniBand在这方面同样有出色表现。InfiniBand网可大量扩充I/O控制器(大多数都位于服务器外部),消除了单点故障。InfiniBand在消息传送协议之中还融入了差错管理功能,具有设备热增加能力(Hot-Addability),包括设备查找和注册功能,这样就可以动态管理、修改和扩充网络。另外,InfiniBand的可层叠交换技术把集群送到了一条更宽广的通路上,极大地突破了水平伸缩性。通俗地说,即它支持“网中套网”,通过多层InfiniBand网络的结合,主机内存、I/O和其他资源将在不同的InfiniBand子网中实现共享,一起在集群环境中发挥作用。
刀片服务器应用InfiniBand技术,是因为人们希望把I/O部分移到服务器外部。如果我们做到这点,服务器会更薄、更紧凑,这样我们就能把更多服务器堆放在一块,从而获得更高的密度。技术上,刀片式架构也恰好与InfiniBand架构相匹配,两者的思路都是采用交换式的网络通信结构,而利用InfiniBand的通信机制,我们还可以同时管理刀片服务器内部网络以及外连的存储单元。
0
相关文章