OpenFabrics Enterprise Distribution (OFED)是一组开源软件驱动、核心内核代码、中间件和支持InfiniBand Fabric的用户级接口程序。
2005年由OpenFabrics Alliance (OFA)发布第一个版本。Mellanox OFED用于Linux,Windows (WinOF),包括各种诊断和性能工具,用于监视InfiniBand网络的运行情况,包括监视传输带宽和监视Fabric内部的拥塞情况。
OpenFabrics Alliance (OFA)是一个基于开源的组织,它开发、测试、支持OpenFabrics企业发行版。该联盟的任务是开发并推广软件,通过将高效消息、低延迟和最大带宽技术架构直接应用到最小CPU开销的应用程序中,从而实现最大应用效率。
该联盟成立于2004年6月,最初是OpenIB联盟,致力于开发独立于供应商、基于Linux的InfiniBand软件栈。2005,联盟致力于支持Windows,此举将使软件栈真正跨平台。
2006年,该组织再次扩展其章程,包括对iWARP的支持,在2010年增加了对RoCE (RDMA over Converged)支持通过以太网交付高性能RDMA和内核旁路解决方案。2014年,随着OpenFabrics Interfaces工作组的建立,联盟再次扩大,实现对其他高性能网络的支持。
Mellanox OFED是一个单一的软件堆栈,包括驱动、中间件、用户接口,以及一系列的标准协议IPoIB、SDP、SRP、iSER、RDS、DAPL(Direct Access Programming Library),支持MPI、Lustre/NFS over RDMA等协议,并提供Verbs编程接口;Mellanox OFED由开源OpenFabrics组织维护。
如果前面的软件堆栈逻辑图过于复杂,可以参考上面的简明介绍图。MLNX_OFED_LINUX (Mellanox OFED for Linux) 作为ISO映像提供,每个Linux发行版,包括源代码和二进制RPM包、固件、实用程序、安装脚本和文档。
InfiniBand串行链路可以在不同的信令速率下运行,然后可以捆绑在一起实现更高的吞吐量。原始信令速率与编码方案耦合,产生有效的传输速率。编码将通过铜线或光纤发送的数据的错误率降至最低,但也增加了一些开销(例如,每8位数据传输10位)。
典型的实现是聚合四个链接单元(4X)。目前,InfiniBand系统提供以下吞吐量速率:
下面我们站在应用开发架构师或开发者的角度,分析、解读下 InfiniBand的架构和服务能力(简化的InfiniBand架构)。
InfiniBand的软件架构
InfiniBand软件栈的设计是为了简化应用部署。IP和TCP套接字应用程序可以利用InfiniBand性能,而无需对运行在以太网上的现有应用程序进行任何更改。这同样适用于SCSI、iSCSI和文件系统应用程序。位于低层InfiniBand适配器设备驱动程序和设备独立API