Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 7.62 KB

InfiniBand Architecture Basics.md

File metadata and controls

42 lines (34 loc) · 7.62 KB

文章译自:InfiniBand Network and Architecture Overview

随着当前计算能力的快速发展,对数据中心和高性能计算的需求持续激增。在此背景下,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 Architecture VS TCP/IP

IB 架构分为五层,类似于传统的 TCP/IP 模型。 在分布式存储领域,IB常用于DPC(分布式并行计算)场景的存储前端网络。另一方面,TCP/IP 普遍用于商业网络。

  • 这是因为现有的TCP/IP软硬件架构难以满足高并发、低延迟应用的需求。传统的 TCP/IP 网络通信涉及通过内核进行消息传输,导致数据移动和复制成本较高。而RoCE、InfiniBand等RDMA技术则解决了网络传输过程中服务器端数据处理的延迟问题。它可以通过网络接口直接访问内存数据,而无需内核干预,从而促进高吞吐量和低延迟的网络通信。这使得RDMA特别适合大规模并行计算机集群。

InfiniBand 架构层

  • Upper Layer(上层):上层包括 SCSI (小型计算机系统接口)、IPoIB(IP over InfiniBand)等协议和服务,支持不同的应用和服务
    • SCSI协议(小型计算机系统接口):一种用于计算机和外部设备之间数据传输的标准接口协议,支持磁盘驱动器、打印机和其他外围设备等设备。
    • IPoIB 协议(IP over InfiniBand):允许通过 InfiniBand 网络进行 IP 数据传输的协议,使 InfiniBand 能够支持 TCP/IP 协议栈。
    • SDP 协议(​​套接字直接协议):用于通过 InfiniBand 网络进行套接字通信的协议,提供高性能、低延迟的数据传输。
    • MPI(消息传递接口):并行计算中进程间通信的标准协议,常用于 HPC 应用程序。

  • Transport Layer(传输层):传输层提供端到端的通信服务,包括可靠的数据传输、流量控制和错误处理。它管理数据传输的顺序、完整性和可靠性。
    • InfiniBand Transport Service 在传输层与 TCP/IP 不同。
    • InfiniBand 采用远程直接内存访问 (RDMA) 技术,可以绕过主机内存,在网络适配器之间直接进行数据传输。这种方法实现了低延迟和高吞吐量。
    • TCP/IP 利用端到端传输机制,在发送主机和接收主机之间建立连接以进行数据传输。这种机制可能会引入额外的传输延迟和系统开销。
    • 硬件中的传输层连接:在传输层中,建立“虚拟通道”(virtual channel)来连接两个应用程序,使它们能够在完全独立的地址空间中进行通信。在消息传输过程中,该设计利用直接硬件数据传输,有助于提高通信效率和性能。消息直接通过硬件传输,无需主机处理器的干预。因此,在到达接收端后,消息将直接传递到接收应用程序的缓冲区,而不需要额外的处理步骤。

  • Network Layer(网络层):网络层处理端到端的通信和路由,确保数据包从源节点到目的节点的正确传输。它定义了 InfiniBand 子网中节点的地址和路由规则。
    • InfiniBand 网络分为多个子网,每个子网通常由一台或多台 InfiniBand 交换机连接。子网是一个独立的通信域,具有自己的拓扑和配置。路由器和交换机用于在不同子网之间路由和交换数据包。路由器负责连接不同的子网,而交换机则处理同一子网内的数据包交换。
  • Link Layer(链路层):数据链路层负责错误检测和纠正、管理数据包流以及在物理层封装和解封装数据帧。
    • Local Identifier (LID)。子网中的所有设备都有一个本地标识符 (LID),即由子网管理器分配的 16 位地址。子网内发送的所有数据包都使用 LID 作为在链路级别转发和交换数据包的目标地址。在 InfiniBand 网络中,每个交换机都维护一个转发表,记录其连接的端口和关联的目标本地 ID (LID) 之间的映射。此类转发表由子网管理器动态计算和配置。子网管理器负责监控网络拓扑的变化,为每个交换机生成合适的转发表,确保数据包能够正确、快速地传输到目的节点。
    • 交换 InfiniBand 数据包。数据包通过网络交换机进行传输和路由。采用交换机进行分组交换可以构建灵活、高性能的网络拓扑,保证数据能够快速、高效地从源节点传输到目的节点。
    • Flow Control(流量控制)。InfiniBand的链路层采用了流量控制协议,用于调整发送方和接收方之间的传输速率,防止快速发送方压倒较慢接收方的处理能力。
    • Lossless Fabric (无损网络)。InfiniBand网络被设计为无损网络,发送节点动态监控接收缓冲区的使用情况,仅当接收节点缓冲区有可用空间时才传输数据。这就是 InfiniBand 成为无损网络的原因。即使在网络拥塞的情况下,也不会发生数据包丢失,这对于需要高可靠性和低延迟的应用至关重要。
  • Physical Layer(物理层):物理层定义了InfiniBand连接的硬件规格,包括电缆、光纤、连接器和接口。物理层定义电气和机械特性,包括光纤和铜介质的电缆和连接器、背板连接器、热插拔功能等,确保不同设备和制造商之间的互操作性。该标准化有助于构建高性能计算和数据中心网络,提供可靠、高带宽的数据传输。