InfiniBand 网络和架构概述
随着当前计算能力的飞速发展,对数据中心和高性能计算的需求持续激增。在此背景下,InfiniBand架构作为高性能网络解决方案获得了广泛关注。本文深入探讨了InfiniBand的概念与特性,剖析其在当前计算力发展趋势下的必然增长和发展。我们将重点关注InfiniBand网络的主要组成部分,并将其与传统的TCP/IP进行对比,揭示其在高性能计算环境中的优势。通过分析InfiniBand架构的不同层次,包括上层、传输层、网络层以及物理层,我们将全面理解它在构建高效、低延迟数据传输网络中的作用。
InfiniBand架构基础
InfiniBand(IB)是一种用于处理器与I/O设备间数据流传输的通信链路,最多可支持64,000个可寻址设备。InfiniBand架构(IBA)是一项行业标准规范,它定义了一种点对点交换输入/输出框架,通常被用于互连服务器、通信基础设施、存储设备以及嵌入式系统。InfiniBand具有通用性、低延迟、高带宽和低管理成本等特点,使其成为单一连接多数据流(如集群、通信、存储、管理)的理想连接网络,互联节点可达数千个。
InfiniBand网络采用点对点连接方式,每个节点通过专用通道直接与其他节点通信,从而减少了网络拥塞并提升了整体性能。这种架构支持远程直接内存访问(RDMA)技术,使得数据能够在不涉及主机CPU的情况下直接在内存之间传输,进一步增强了传输效率。
InfiniBand架构中的最小完整单元是一个子网,多个子网通过路由器相互连接以构建大型InfiniBand网络。每个子网包含端节点、交换机、链路和子网管理器。InfiniBand网络在数据中心、云计算、高性能计算(HPC)、机器学习和高性能计算等领域均有应用。其核心目标在于最大化网络利用率、CPU利用率以及应用程序性能。
通过InfiniBand进行数据传输 在传统的互连架构中,操作系统是共享网络资源的唯一管理者,这意味着应用程序无法直接访问网络。相反,应用程序必须依赖操作系统将数据从应用程序的虚拟缓冲区转移到网络堆栈和线路。
而InfiniBand则允许应用程序直接通过网络进行数据交换,无需操作系统直接参与。这种以应用程序为中心的方法是InfiniBand网络与传统网络之间的关键区别所在,也正是InfiniBand网络优势的核心所在。
InfiniBand架构与TCP/IP的对比
InfiniBand架构组织成五个层次,类似于传统的TCP/IP模型。然而,两者之间存在许多差异。
In the realm of distributed storage, IB is often utilized in the storage front-end network of DPC (Distributed Parallel Computing) scenarios. On the other hand, TCP/IP is commonly employed in business networks.
这是因为现有的TCP/IP软件和硬件架构难以满足高并发和低延迟应用的需求。传统的TCP/IP网络通信需要通过内核传递消息,这会带来高昂的数据移动和复制成本。而包括RoCE(远程直接内存访问 over Converged Ethernet)和InfiniBand在内的RDMA技术解决了在网络传输过程中服务器端数据处理的延迟问题。它允许通过网络接口直接访问内存数据,无需内核介入,从而实现高效能、低延迟的网络通信。这种特性使得RDMA特别适用于大规模并行计算机集群环境。
InfiniBand架构由以下几层组成:
上层:上层包括诸如SCSI(小型计算机系统接口)、IPoIB(InfiniBand上的IP)等协议和服务,支持不同的应用和服务。
传输层:传输层提供端到端的通信服务,涵盖了可靠数据传输、流量控制以及错误处理等功能。它负责管理数据传输的顺序性、完整性以及可靠性。
网络层:网络层负责端到端的通信和路由,确保数据包能从源节点正确传输至目标节点。它为InfiniBand子网中的节点定义了地址和路由规则。
物理层:物理层定义了InfiniBand连接的硬件规格,包括电缆、光纤、连接器以及接口等。
链路层(注:此处应为“链路层”而非“数据链路层”):链路层负责错误检测与纠正,管理数据包的流动,并在物理层进行数据帧的封装与解封装。
上层
支持的部分上层协议包括:
S SCSI协议(小型计算机系统接口):一种用于计算机与外部设备间数据传输的标准接口协议,支持磁盘驱动器、打印机和其他外设等设备。
IPoIB协议(InfiniBand上的IP):一种允许通过InfiniBand网络进行IP数据传输的协议,使得InfiniBand能够支持TCP/IP协议栈。
SDP协议(套接字直接协议):一种在InfiniBand网络上用于套接字通信的协议,提供高性能、低延迟的数据传输功能。
MPI(消息传递接口):一种用于并行计算中进程间通信的标准协议,在HPC应用中广泛应用。
传输层
InfiniBand传输服务在传输层与TCP/IP不同。
InfiniBand采用了远程直接内存访问(RDMA)技术,允许数据绕过主机内存直接在网络适配器之间传输。这种做法实现了低延迟和高吞吐量。
而TCP/IP则采用端到端的传输机制,在发送主机和接收主机之间建立连接以进行数据传输。这一机制可能会引入额外的传输延迟和系统开销。
传输层硬件连接
在传输层中,会建立一个‘虚拟通道’来连接两个应用程序,使它们能够在完全独立的地址空间内进行通信。在消息传输过程中,这种设计利用了直接硬件数据传输技术,从而有助于提高通信效率和性能。
消息通过硬件直接传输,无需主机处理器的介入。因此,当消息到达接收端时,可以直接将消息传递到接收应用程序的缓冲区中,无需额外处理步骤。
网络层
InfiniBand网络被划分为多个子网,每个子网通常通过一个或多个InfiniBand交换机连接。子网是一个具有自己独立的拓扑结构和配置的通信域。路由器和交换机用于在不同子网之间进行路由和包交换。路由器负责连接不同的子网,而交换机则负责在同一子网内处理包的交换工作。
链路层
本地标识符(LID)
子网中所有设备都具有一个由子网管理器分配的16位地址,即本地标识符(LID)。在子网内部发送的所有数据包都使用LID作为链路层转发和交换数据包的目的地址。
在InfiniBand网络中,每个交换机都维护着一个转发表,该表记录了其连接端口与相应目标本地ID(LID)之间的映射关系。这些转发表由子网管理器动态计算并配置。
子网管理器负责监控网络拓扑结构的变化,为每个交换机生成相应的转发表,确保数据包能够正确且迅速地传输到目标节点。
交换InfiniBand数据包
在InfiniBand网络中,数据包通过网络交换机进行传输和路由。利用交换机进行数据包交换能够构建灵活且高性能的网络拓扑结构,确保数据能够快速、高效地从源节点传输到目标节点。
流量控制
InfiniBand的链路层采用了流量控制协议,用于调整发送方和接收方之间的传输速率,防止快速发送方压倒较慢接收方的处理能力
Lossless Fabric
InfiniBand网络被设计为无损网络,其中发送节点会动态监测接收端缓冲区的使用情况,并仅在接收节点缓冲区有可用空间时才进行数据传输。这就是InfiniBand成为无损网络的原因所在。即使在网络出现拥塞的情况下,也不会发生数据包丢失的情况,这对于需要高可靠性和低延迟的应用至关重要。
物理层
物理层定义了电气和机械特性,包括用于光纤和铜介质的电缆和连接器、背板连接器、热插拔功能等,确保不同设备和制造商之间的互操作性。这种标准化有助于构建高性能计算和数据中心网络,提供可靠且高带宽的数据传输服务。下图展示了NVIDIA InfiniBand DAC 和NVIDIA InfiniBand AOC的例子。
总结
总的来说,由于其卓越的性能和低延迟特性,InfiniBand架构已成为高性能计算和数据中心网络的首选方案。其独特设计使其成为处理大规模数据传输和复杂计算任务的理想解决方案。随着对计算能力需求的不断增长以及数据中心规模的扩大,作为高性能互连技术的InfiniBand将在科学、工程及商业等领域继续发挥关键作用。
相关文章推荐
邮箱地址
-
Cat5e、Cat6、Cat6a和Cat7网线有什么区别?哪个更好?
2020年08月21日
-
一文带你了解SFP、SFP+、SFP28、QSFP+和QSFP28之间的区别
2024年04月13日
-
OM1、OM2、OM3、OM4和OM5多模光纤有什么区别?
2021年11月24日
-
SFP端口是什么?有什么作用?可以接RJ45吗?
2020年09月15日
-
QSFP-DD封装有何优势?800G光模块是否会沿用QSFP-DD封装?
2020年10月16日