InfiniBand架构是一种支持多并发链接的“转换线缆”技术,在这种技术中,每种链接都可以达到2.5 Gbps的运行速度。这种架构在一个链接的时候速度是500 MB/秒,四个链接的时候速度是2 GB/秒,12个链接的时候速度可以达到6 GB /秒。IBTA成立于1999年8月31日,由Compaq、惠普、IBM、戴尔、英特尔、微软和Sun七家公司牵头,共同研究发展的高速先进的I/O标准。最初的命名为System I/O,1999年10月,正式改名为InfiniBand。InfiniBand是一种长缆线的连接方式,具有高速、低延迟的传输特性。
InfiniBand用于服务器系统内部并没有发展起来,原因在于英特尔和微软在2002年就退出了IBTA。在此之前,英特尔早已另行倡议Arapahoe,亦称为3GIO(3rd Generation I/O,第三代I/O),即今日鼎鼎大名的PCI Express(PCI-E),InfiniBand、3GIO经过一年的并行,英特尔终究还是选择了PCI-E。因此,现在应用InfiniBand,主要是用于在服务器集群,系统之间的互联。
随着CPU性能的飞速发展,I/O系统的性能成为制约服务器性能的瓶颈。于是人们开始重新审视使用了十几年的PCI总线架构。虽然PCI总线结构把数据的传输从8位/16位一举提升到32位,甚至当前的64位,但是它的一些先天劣势限制了其继续发展的势头。PCI总线有如下缺陷:
(1)由于采用了基于总线的共享传输模式,在PCI总线上不可能同时传送两组以上的数据,当一个PCI设备占用总线时,其他设备只能等待;
(2)随着总线频率从33MHz提高到66MHz,甚至133MHz(PCI-X),信号线之间的相互干扰变得越来越严重,在一块主板上布设多条总线的难度也就越来越大;
(3)由于PCI设备采用了内存映射I/O地址的方式建立与内存的联系,热添加PCI设备变成了一件非常困难的工作。目前的做法是在内存中为每一个PCI设备划出一块50M到100M的区域,这段空间用户是不能使用的,因此如果一块主板上支持的热插拔PCI接口越多,用户损失的内存就越多;
(4)PCI的总线上虽然有buffer作为数据的缓冲区,但是它不具备纠错的功能,如果在传输的过程中发生了数据丢失或损坏的情况,控制器只能触发一个NMI中断通知操作系统在PCI总线上发生了错误。
InfiniBand 采 用双队列程序提取技术,使应用程序直接将数据从适配器 送入到应用内存(称为远程直接存储器存取或RDMA), 反之依然。在TCP/IP协议中,来自网卡的数据先拷贝到 核心内存,然后再拷贝到应用存储空间,或从应用空间 将数据拷贝到核心内存,再经由网卡发送到Internet。这 种I/O操作方式,始终需要经过核心内存的转换,它不 仅增加了数据流传输路径的长度,而且大大降低了I/O 的访问速度,增加了CPU的负担。而SDP则是将来自网 卡的数据直接拷贝到用户的应用空间,从而避免了核心内存参入。这种方式就称为零拷贝,它可以在进行大量 数据处理时,达到该协议所能达到的最大的吞吐量
每个端口具有一个GUID(Globally Unique Identifier),GUID是全局唯一的,类似于以太网MAC地址。运行过程中,子网管理代理(SMA)会给端口分配一个本地标识(LID),LID仅在子网内部有用。
QP是infiniband的一个重要概念,它是指发送队列和接收队列的组合,用户调用API发送接收数据的时候,实际上是将数据放入QP当中,然后以轮询的方式将QP中的请求一条条的处理,其模式类似于生产者-消费者模式。
Infiniband的网络拓扑结构如图,其组成单元主要分为四类:
(1)HCA(Host Channel Adapter),它是连接内存控制器和TCA的桥梁;
(2)TCA(Target Channel Adapter),它将I/O设备(例如网卡、SCSI控制器)的数字信号打包发送给HCA;
(3)Infiniband link,它是连接HCA和TCA的光纤,InfiniBand架构允许硬件厂家以1条、4条、12条光纤3种方式连结TCA和HCA;
(4)交换机和路由器;
属 性
|
HCA
|
TCA
|
---|---|---|
多端口支持 | 支持 | 支持 |
用LRH发 送/接收数据包 |
所有的QP均要求 | |
用GRH发送/接收数据包 | 除QP0外,所有的QP均要求 | |
支持的传输业务 | 支持任何QP上的 不可靠传送数据包、可靠的和不可靠的连接传输业务 |
不可靠传送的数据包 |
原子操作 | 支持 | 支持 |
其它操作 | 支持传输业务定义的全部操作 | 不支持全部,但可定制支持 |
通道MTU | 支持 256、512、1024字节 256、512、1024、2048字节 256、512、1024、2048、4096字节 |
|
组播 | 生成和接收组播,可选 | |
请求事件 | 必需,生成和接收 | 可选 |
内存保护 | 必需,按Verbs层规范处理 | 可选 |
环回 | 支持 | 可选 |
Internet Protocol over InfiniBand 简称IPoIB 。传统的TCP/IP栈的影响实在太大了,几乎所有的网络应用都是基于此开发的,IPoIB实际是infiniband为了兼容以太网不得不做的一种折中,毕竟谁也不愿意使用不兼容大规模已有设备的产品。IPoIB基于TCP/IP协议,对于用户应用程序是透明的,并且可以提供更大的带宽, 也就是原先使用TCP/IP协议栈的应用不需要任何修改就能使用IPoIB。