一、Infiniband是什么?       

       InfiniBand(简称IB)是一种工业标准规范,它定义了一种输入/输出架构,用于计算节点、通信基础设施设备、存储和嵌入式系统的互连。操作系统可以是Linux、Windows或ESXI。

      IB协议于2000年由IBTAInfiniBand Trade Association)提出,其规定了一整套完整的链路层到传输层(非传统OSI七层模型的传输层,而是位于其之上)规范,但是其无法兼容现有以太网。企业如果想部署还要重新购买IB网卡和配套的交换设备。IB是一种专为RDMA设计的网络,从硬件级别保证可靠传输。

二、RoCE

       由于使用IB网络的成本较高,因此,IBTA又提出了RoCE(RDMA over Converged Ethernet)协议,允许通过以太网络使用RDMA。简而言之,它可以看作是RDMA技术在超融合数据中心、云、存储和虚拟化环境中的应用。RoCE可以被认为是IB“低成本解决方案”,将IB的报文封装成以太网包进行收发。由于RoCE 可以使用以太网的交换设备,所以现在在企业中应用也比较多,但是相同场景下相比IB性能要有一些损失。

三、玩家——标准/生态组织

       提到IB协议,就不得不提到两大组织——IBTAOFA

       IBTA

       成立于1999年,负责制定和维护Infiniband协议标准。IBTA独立于各个厂商,通过赞助技术活动和推动资源共享来将整个行业整合在一起,积极推广IBRoCE。IBTA会对商用的IBRoCE设备进行协议标准符合性和互操作性测试及认证,由很多大型的IT厂商组成的委员会领导,其主要成员包括博通,HPEIBM,英特尔,Mellanox和微软等。

       OFA(OpenFabrics Alliance)

      成立于2004年的非盈利组织,负责开发、测试、认证、支持和分发独立于厂商的开源跨平台infiniband协议栈,2010年开始支持RoCE。其对用于支撑RDMA/Kernel bypass应用的OFEDOpenFabrics Enterprise Distribution)软件栈负责,保证其与主流软硬件的兼容性和易用性。OFED软件栈包括驱动、内核、中间件和API

      上述两个组织是配合关系,IBTA主要负责开发、维护和增强Infiniband协议标准OFA负责开发和维护Infiniband协议和上层应用API。

四、开发社区

        Linux社区

       Linux内核的RDMA子系统经常会讨论一些协议细节,对框架的修改比较频繁,另外包括华为和Mellanox在内的一些厂商也会经常对驱动代码进行修改。代码位于内核drivers/infiniband/目录下,包括框架核心代码和各厂商的驱动代码。代码仓:git.kernel.org/pub/scm/

       RDMA社区

       对于上层用户,IB提供了一套与Socket套接字类似的接口——libibverbsgithub上其仓库的名字为linux-rdma。主要包含两个子仓库:

       1、rdma-core用户态核心代码,API,文档以及各个厂商的用户态驱动。

       2、perftest一个功能强大的用于测试RDMA性能的工具代码仓github.com/linux-rdma/

       UCX

       UCX是一个建立在RDMA等技术之上的用于数据处理和高性能计算的通信框架,RDMA是其底层核心之一。我们可以将其理解为是位于应用和RDMA API之间的中间件,向上层用户又封装了一层更易开发的接口。代码仓:github.com/openucx/ucx

五、硬件厂商

       Mellanox:IB领域的领头羊,协议标准制定、软硬件开发和生态建设都能看到Mellanox的身影,其在社区和标准制定上上拥有最大的话语权。20204月被NVIDIA正式收购,目前最新一代的网卡是支持400Gb/sConnextX-7系列。 

 六、Infiniband主要功能

       提供高带宽、低延迟、高可扩展、QosCPU卸载(SHARP支持的聚合通信卸载)、易管理等服务。

 IB网络带宽发展路标图:

Logo

更多推荐