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接口越多,用户损失的内存就越多; spa
(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 | 支持 25六、5十二、1024字节 25六、5十二、102四、2048字节 25六、5十二、102四、204八、4096字节 |
|
组播 | 生成和接收组播,可选 | |
请求事件 | 必需,生成和接收 | 可选 |
内存保护 | 必需,按Verbs层规范处理 | 可选 |
环回 | 支持 | 可选 |
Internet Protocol over InfiniBand 简称IPoIB 。传统的TCP/IP栈的影响实在太大了,几乎全部的网络应用都是基于此开发的,IPoIB实际是infiniband为了兼容以太网不得不作的一种折中,毕竟谁也不肯意使用不兼容大规模已有设备的产品。IPoIB基于TCP/IP协议,对于用户应用程序是透明的,而且能够提供更大的带宽, 也就是原先使用TCP/IP协议栈的应用不须要任何修改就能使用IPoIB。