一文掌握InfiniBand技术和架构

  • 1 IB技术的发展
  • 2 IB技术的优势
  • 3 IB基本概念
    • 3.1 IB的网络拓扑以及数据传输
  • 4 IB协议简介
    • 4.1 物理层
    • 4.2 链路层
    • 4.3 网络层
    • 4.4 传输层
    • 4.5 上层协议
  • 5 IB基本应用场景
    • 5.1 Infiniband 在 HPC(High performance computing)领域的应用

https://cloud.tencent.com/developer/news/384580

https://www.ibm.com/developerworks/cn/aix/library/1105_luoming_infiniband/index.html

https://www.cnblogs.com/e-shannon/p/7122659.html

https://weibo.com/p/1001603936363903889917?mod=zwenzhang

Infiniband开放标准技术简化并加速了服务器之间的连接,同时支持服务器远程存储和网络设备的连接(!!!)。OpenFabrics Enterprise Distribution (OFED)是一组开源软件驱动、核心内核代码、中间件和支持InfiniBand Fabric的用户级接口程序

2005年由OpenFabrics Alliance(OFA)发布第一个版本。Mellanox OFED用于Linux,Windows (WinOF),包括各种诊断和性能工具,用于监视InfiniBand网络的运行情况,包括监视传输带宽和监视Fabric内部的拥塞情况。

OpenFabrics Alliance (OFA)是一个基于开源的组织,它开发、测试、支持OpenFabrics企业发行版。该联盟的任务是开发并推广软件,通过将高效消息、低延迟和最大带宽技术架构直接应用到最小CPU开销的应用程序中,从而实现最大应用效率。

一文掌握InfiniBand技术和架构_第1张图片

该联盟成立于2004年6月,最初是OpenIB联盟,致力于开发独立于供应商、基于Linux的InfiniBand软件栈。2005,联盟致力于支持Windows,此举将使软件栈真正跨平台。

2006年,该组织再次扩展其章程,包括对iWARP的支持,在2010年增加了对RoCE (RDMA over Converged)支持通过以太网交付高性能RDMA和内核旁路解决方案。2014年,随着OpenFabrics Interfaces工作组的建立,联盟再次扩大,实现对其他高性能网络的支持

1 IB技术的发展

1999年开始起草规格及标准规范,2000年正式发表,但发展速度不及Rapid I/O、PCI-X、PCI-E和FC,加上Ethernet从1Gbps进展至10Gbps。所以直到2005年之后,InfiniBand Architecture(IBA)才在集群式超级计算机上广泛应用。全球HPC高算系统TOP500大效能的超级计算机中有相当多套系统都使用上IBA。

除了InfiniBand Trade Association (IBTA)9个主要董事成员CRAY、Emulex、HP、IBM、intel、Mellanox、Microsoft、Oracle、Qlogic专门在应用和推广InfiniBand外,其他厂商正在加入或者重返到它的阵营中来,包括Cisco、Sun、NEC、LSI等。InfiniBand已经成为目前主流的高性能计算机互连技术之一。为了满足HPC、企业数据中心和云计算环境中的高I/O吞吐需求,新一代高速率56Gbps的FDR (Fourteen Data Rate) 和100Gpb EDR InfiniBand技术已经广泛应用。

2 IB技术的优势

Infiniband大量用于FC/IP SANNAS服务器之间的连接,作为iSCSI RDMA的存储协议iSER已被IETF标准化。目前EMC全系产品已经切换到Infiniband组网,IBM/TMS的FlashSystem系列,IBM的存储系统XIV Gen3,DDN的SFA系列都采用Infiniband网络。

相比FC的优势主要体现在性能是FC的3.5倍,Infiniband交换机的延迟是FC交换机的1/10,支持SAN和NAS。

存储系统已不能满足于传统的FC SAN所提供的服务器与裸存储的网络连接架构。HP SFS和IBM GPFS 是在Infiniband fabric连接起来的服务器和iSER Infiniband存储构建的并行文件系统,完全突破系统的性能瓶颈。

Infiniband采用PCI串行高速带宽链接,从SDR、DDR、QDR、FDR到EDR HCA连接,可以做到1微妙、甚至纳米级别极低的时延,基于链路层的流控机制实现先进的拥塞控制。

InfiniBand采用虚通道(VL即Virtual Lanes)方式来实现QoS,虚通道是一些共享一条物理链接的相互分立的逻辑通信链路,每条物理链接可支持多达15条的标准虚通道和一条管理通道(VL15)

一文掌握InfiniBand技术和架构_第2张图片

RDMA技术实现内核旁路,可以提供远程节点间RDMA读写访问,完全卸载CPU工作负载,基于硬件传出协议实现可靠传输和更高性能。

一文掌握InfiniBand技术和架构_第3张图片

相比TCP/IP网络协议,IB使用基于信任的、流控制的机制来确保连接的完整性,数据包极少丢失,接受方在数据传输完毕之后,返回信号来标示缓存空间的可用性,所以IB协议消除了由于原数据包丢失而带来的重发延迟,从而提升了效率和整体性能。

TCP/IP具有转发损失的数据包的能力,但是由于要不断地确认与重发,基于这些协议的通信也会因此变慢,极大地影响了性能。

3 IB基本概念

网络是常常被认为是路由器交换机和插在服务器和存储设备上的电缆的集合。在大部分人的印象里,网络用来连接服务器到其他服务器、存储和其他网络。其实,这是一种普遍存在的对网络的片面看法,它将过多的注意力集中在处于网络底层结构的电缆和交换机上。这是典型的“以网络为中心!!!的”观点:认为网络的构成架构应该决定应用程序的通讯模式

Infiniband 网络则基于“以应用程序为中心”的新观点。它的提出来源于一个简单的问题:如何让应用程序访问其他应用程序以及存储尽可能的简单、高效和直接?如果以“应用程序为中心”的观点来思考 I/O 问题,就能得到一种与传统完全不同的网络架构。

Infiniband 基于一种非常简单的原则:提供一种易于使用的消息服务!!!。这个服务可以被用来与其他应用程序进程或者存储进行通信应用程序不再向操作系统提交访问其他资源的申请,而是直接使用 Infiniband 消息服务!!!。Infiniband 消息服务是一个非常高效、直接的消息服务,它摒弃了传统网络和应用程序之间消息传递的复杂结构。直接使用 Infiniband 服务意味着应用程序不再依赖操作系统来传递消息,这大大提高了通信效率。

如图 1,Infiniband 消息服务可以在两个应用程序之间创建一个管道,来使应用程序之间直接进行通信,从而绕过了操作系统,大大提高了效率。

一文掌握InfiniBand技术和架构_第4张图片

那么,什么是InfiniBand,为什么越来越多的存储系统销售商不管是背板还是网络连接都要用到此连接?InfiniBand是一种在2000年左右出现的,基于标准的网络协 议。InfiniBand整合了NGIOFuture I/O(PCI总线替换技术的竞争技术)这两种技术。

从设计上来说,InfiniBand具有总线技术的特点,但实际上,PCI Express——最终产生的PCI替换技术,从概述上来说是InfiniBand的一个子集

InfiniBand与其他网络的核心区别有两个方面。

首先,其采用的是一种基于信用的流量控制系统(这个和PCIE一致)。即在接收对象未保证充足的缓冲(!!!)之前,不会发送数据(!!!)。这样,就使得InfiniBand成为像无损光纤通道网络架构那样的光纤通道

其次,InfiniBand支持远程直接内存访问(RDMA, 远程连接协议),具备在完全卸载CPU和操作系统(!!!)的方式下,在两个远程系统的存储区域移动数据(!!!)的能力。作为原始总线设计遗留下来的的理念,如要对分布式系统进行扩展RDMA是关键(!!!)。有RDMA的InfiniBand具备多种关键优势。

InfiniBand的物理信号技术(!!!)一直超前于其他网络技术,使得它都具备比其他任何网络协议都大的带宽。InfiniBand这一名称本身即说明了其无限的带宽发展前景。InfiniBand路线图设计的目的就是要保证单个链路的带宽能够保持在大于PCIExpress(PCIe)总线数据速率(这是服务器内部总线标准!!!)的水平。这样,系统就能够以其可产生的最快速度,在网络间移动数据,并且不会因出现因网络限制而导致的备份。这样,就可让 InfiniBand具备无限带宽。

而InfiniBand弥补了PCI总线的上述缺陷,以一种全新的方式把网络中常见的交换和路由概念引入了I/O子系统当中。在InfiniBand架构中,最主要的硬件部分就是HCATCAIB Link

  • HCAHost Channel Adapter的缩写,它是连接内存控制器和TCA的桥梁
  • TCATarget Channel Adapter的缩写,它将I/O设备(例如网卡、SCSI控制器)的数字信号打包发送给HCA
  • IB Link包含了连接HCA和TCA的光纤!!!以及光纤交换机!!!路由器等整套设备!!!。在现阶段一根光纤的传输速率是2.5Git/s,支持全双工模式,并且可以把多条光纤捆绑到一起工作,目前的模式有x1、x4、x12三种。

一言以蔽之,InfiniBand架构的核心就是把I/O子系统从服务器主机中剥离出去,通过光纤介质,采用基于交换的端到端的传输模式连接它们

3.1 IB的网络拓扑以及数据传输

下面我们看一下在InfiniBand架构中,数据是如何传输的。如图所示,InfiniBand架构相比PCI总线的方式更前进了一步,在内存控制器HCA之间是通过Hub Link方式!!!相连的,目前的标准是Hub Interface2.0。infiniband的HCA和内存控制器如何相连,以前是Hub link,现在吧呢?猜测还是PCIE吧

没有研究infiniband和PCIE的竞争,价格优劣以及性能优劣,好像低端的超算的使用PCIE。

没有评估infiniband和omini-path,cray的技术,市场,价格的。

Hub Link是一种串行总线,它的工作频率可以提到很高,而它最大的优势就是良好的可扩展性,主板设计师可以根据需要的总线带宽在内存控制器HCA之间选择多条Hub Link总线

一文掌握InfiniBand技术和架构_第5张图片

一文掌握InfiniBand技术和架构_第6张图片

从图中可以看出,数据网卡或硬盘首先通过各自的I/O控制器送给TCA,再由TCA通过InfiniBand Link经过交换机甚至路由器送到HCA,再通过Hub Link总线送到内存控制器

InfiniBand数据在传送中的处理几乎照搬了以太网协议的全部思想。和TCP/IP协议集极其相似,InfiniBand就是分了6个协议层,从Transport层!!!向下各层数据的封装都是由TCA和HCA自己完成(!!!)的,不需要占用系统CPU的资源,交换机和路由器工作在Network层!!!。如果超越了Transport层HCA会把任务交给系统处理,这一部分的工作需要操作系统的支持,但是对于TCA来说,它是不需要考虑这些的,只要把物理层的信号打包生成网络层可以识别的packet,它的工作就算完成了。

InfiniBand规范定义了3个基本组件:

  • 一个主机信道适配器(HCA)
  • 一个目标信道适配器(TCA)
  • 一个网络交换机

InfiniBand技术通过连接HCAs、TCAs、交换机和路由器而发挥作用(见图)。位于叶节点的InfiniBand设备是产生和使用信息包(中间节点只是转发)的信道适配器。

一文掌握InfiniBand技术和架构_第7张图片

HCA 和TCA可以提供一个无需CPU干预的高可靠端-至-端连接HCA驻留在处理器节点并提供从系统内存InfiniBand网络的通路。它也有一个可编程的直接内存访问(DMA)引擎。该引擎具有特殊保护地址翻译特性,从而使DMA操作可以本地进行或者通过另一个HCA或TCA远程进行。

TCA驻留在I/O单元,并提供I/O设备(如一个磁盘驱动器)或I/O网络(如以太网或光纤通道)与InfiniBand网络的连接。它实现了InfiniBand协议的物理层、链接层和传输层

交换机放置在信道适配器之间。它们使几个甚至几千个InfiniBand叶节点可以在任意位置互连进一个单一网络,该网络同时支持多个连接交换机既不产生,也不使用信息包!!!。它们只是根据信息包中路由器报头的目的地地址,将其传送过去。交换机对于节点而言是透明的,同时信息包完整无损地经过交换机网

IB是以通道为基础双向串行式传输,在连接拓朴中是采用交换、切换式结构(Switched Fabric),在线路不够长时可用IBA中继器(Repeater)进行延伸。每一个IBA网络称为子网(Subnet),每个子网内最高可有65,536个节点(Node),IBA Switch、IBARepeater仅适用于Subnet范畴,若要通跨多个IBASubnet就需要用到IBA路由器(Router)或IBA网关器(Gateway)。

每个节点(Node) 必须透过配接器(Adapter)与IBA Subnet连接,节点CPU、内存要透过HCA(Host Channel Adapter)连接到子网;节点硬盘、I/O则要透过TCA(TargetChannel Adapter)连接到子网,这样的一个拓扑结构就构成了一个完整的IBA。

IB的传输方式和介质相当灵活,在设备机内可用印刷电路板的铜质线箔传递(Backplane背板),在机外可用铜质缆线或支持更远光纤介质。若用铜箔、铜缆最远可至17m,而光纤则可至10km,同时IBA也支持热插拔,及具有自动侦测、自我调适的Active Cable活化智能性连接机制。

4 IB协议简介

InfiniBand也是一种分层协议(类似TCP/IP协议),每层负责不同的功能,下层为上层服务,不同层次相互独立。 IB采用IPv6的报头格式。其数据包报头包括本地路由标识符LRH,全局路由标示符GRH,基本传输标识符BTH等。

一文掌握InfiniBand技术和架构_第8张图片

Mellanox OFED是一个单一的软件堆栈,包括驱动、中间件、用户接口,以及一系列的标准协议IPoIB、SDP、SRP、iSER、RDS、DAPL(Direct Access Programming Library),支持MPI、Lustre/NFS over RDMA等协议,并提供Verbs编程接口;Mellanox OFED由开源OpenFabrics组织维护。

当然,Mellanox OFED软件堆栈是承载在InfiniBand硬件和协议之上的,软件通协议和硬件进行有效的数据传输。

一文掌握InfiniBand技术和架构_第9张图片

4.1 物理层

物理层定义了电气特性机械特性,包括光纤和铜媒介的电缆和插座、底板连接器、热交换特性等。定义了背板电缆光缆三种物理端口。

并定义了用于形成帧的符号(包的开始和结束)、数据符号(DataSymbols)、和数据包直接的填充(Idles)。详细说明了构建有效包的信令协议,如码元编码、成帧标志排列、开始和结束定界符间的无效或非数据符号、非奇偶性错误、同步方法等。

4.2 链路层

链路层描述了数据包的格式数据包操作的协议,如流量控制和子网内数据包的路由。链路层有链路管理数据包数据包两种类型的数据包。

4.3 网络层

网络层是子网间转发数据包的协议(!!!不同子网!!!),类似于IP网络中的网络层。实现子网间的数据路由,数据在子网内传输时不需网络层(!!!)的参与。

数据包中包含全局路由头GRH,用于子网间数据包路由转发。全局路由头部指明了使用IPv6地址格式的全局标识符(GID)的源端口和目的端口,路由器基于GRH进行数据包转发。GRH采用IPv6报头格式。GID由每个子网唯一的子网 标示符和端口GUID捆绑而成。

4.4 传输层

传输层负责报文的分发、通道多路复用、基本传输服务和处理报文分段的发送、接收和重组。传输层的功能是将数据包传送到各个指定的队列(QP)中,并指示队列如何处理该数据包。当消息的数据路径负载大于路径的最大传输单元(MTU)时,传输层负责将消息分割成多个数据包。

接收端的队列负责将数据重组到指定的数据缓冲区中。除了原始数据报外,所有的数据包都包含BTH,BTH指定目的队列并指明操作类型、数据包序列号和分区信息。

4.5 上层协议

InfiniBand为不同类型的用户提供了不同的上层协议,并为某些管理功能定义了消息和协议。InfiniBand主要支持SDP、SRP、iSER、RDS、IPoIB和uDAPL等上层协议。

SDP(SocketsDirect Protocol)是InfiniBand Trade Association (IBTA)制定的基于infiniband的一种协议,它允许用户已有的使用TCP/IP协议的程序运行在高速的infiniband之上。

SRP(SCSIRDMA Protocol)是InfiniBand中的一种通信协议,在InfiniBand中将SCSI命令进行打包,允许SCSI命令通过RDMA(远程直接内存访问)在不同的系统之间进行通信,实现存储设备共享和RDMA通信服务。

iSER(iSCSIRDMA Protocol)类似于SRP(SCSI RDMA protocol)协议,是IB SAN的一种协议 ,其主要作用是把iSCSI协议的命令和数据通过RDMA的方式跑到例如Infiniband这种网络上,作为iSCSI RDMA的存储协议iSER已被IETF所标准化。

RDS(Reliable Datagram Sockets)协议与UDP 类似,设计用于在Infiniband 上使用套接字来发送和接收数据。实际是由Oracle公司研发的运行在infiniband之上,直接基于IPC的协议。

IPoIB(IP-over-IB)是为了实现INFINIBAND网络与TCP/IP网络兼容而制定的协议,基于TCP/IP协议,对于用户应用程序是透明的,并且可以提供更大的带宽,也就是原先使用TCP/IP协议栈的应用不需要任何修改就能使用IPoIB。

uDAPL(UserDirect Access Programming Library)用户直接访问编程库是标准的API,通过远程直接内存访问 RDMA功能的互连(如InfiniBand)来提高数据中心应用程序数据消息传送性能、伸缩性和可靠性。

5 IB基本应用场景

Infiniband灵活支持直连及交换机多种组网方式,主要用于HPC高性能计算场景,大型数据中心高性能存储等场景,HPC应用的共同诉求是低时延

一文掌握InfiniBand技术和架构_第10张图片

5.1 Infiniband 在 HPC(High performance computing)领域的应用

高性能计算(HPC)是一个涵盖面很广的领域,它覆盖了从最大的“TOP 500”高性能集群到微型桌面集群。这篇文章里的我们谈及的 HPC 是这样一类系统,它所有的计算能力在一段时间内都被用来解决同一个大型问题。换句话说,我们这里讨论的 HPC 系统不会被用来运行传统的企业应用,例如:邮件、计费、web 等。一些典型的 HPC 应用包括:大气建模、基因研究、汽车碰撞模拟、流体动态分析等。

图 2 显示了一个标准的高性能集群(HPC)的拓扑结构。可以看到,在高性能计算集群中,各种设备是通过集群的交换网络!!!连接到一起的。所以,高性能计算系统除了需要高性能的中央处理器外,还需要高性能的存储低延迟的进程间通信来满足科学运算的需求。在大型集群高速的交换网络扮演了非常重要的角色,甚至比 CPU 还要关键,处于集群的核心位置

大量的实验数据表明,集群的性能可扩展性主要和消息在节点之间的传递速度(!!!)有关,这意味着低延迟的消息传递是被迫切需求的,而这正是 Infiniband 的优势。下面我们就介绍下 Infiniband 为什么比传统网络更适合高性能计算系统。

一文掌握InfiniBand技术和架构_第11张图片

根据我们对高性能计算系统的认识,Infiniband 的低延迟、高带宽和原生的通道架构对于此类系统来说是非常重要的。低延迟的 Infiniband 网络可以在保证性能的前提下,增大集群的规模通道 I/O 架构则可以提供可扩展的存储带宽性能,并且支持并行文件系统

说道 HPC 就不能不提 MPI(Message Passing Interface)。MPI 是应用在 HPC 上主要的消息传递中间件标准(!!!)。虽然 MPI 也可以应用在基于共享内存的系统上,但是,更多的则是被当作通讯层用作连接集群中的不同节点(!!!)。

MPI 通讯服务依赖于底层的提供节点间真正信息传递的消息服务Infiniband 作为一种底层消息服务为 MPI 层提供了被称为 RDMA(Remote Direct Memory Access)的消息服务!!!。在上面一章,我们讨论了应用程序之间如何通过 Infiniband 通讯架构来实现直接的通讯,从而绕过操作系统。在 HPC 中,我们可以认为 HPC 应用程序调用 MPI 通讯服务,而 MPI利用底层的 RDMA 消息服务实现节点间通讯。这就使得,HPC 应用程序具备了不消耗集群 CPU 资源的通讯能力(!!!)。

你可能感兴趣的:(一文掌握InfiniBand技术和架构)