InfiniBand技术和架构
Infiniband开放标准技术简化并加速了服务器之间的连接,同时支持服务器与远程存储和网络设备的连接。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工作组的建立,联盟再次扩大,实现对其他高性能网络的支持。
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技术已经广泛应用。
IB技术的优势
Infiniband大量用于FC/IP SAN、NAS和服务器之间的连接,作为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)。
RDMA技术实现内核旁路,可以提供远程节点间RDMA读写访问,完全卸载CPU工作负载,基于硬件传出协议实现可靠传输和更高性能。
相比TCP/IP网络协议,IB使用基于信任的、流控制的机制来确保连接的完整性,数据包极少丢失,接受方在数据传输完毕之后,返回信号来标示缓存空间的可用性,所以IB协议消除了由于原数据包丢失而带来的重发延迟,从而提升了效率和整体性能。
TCP/IP具有转发损失的数据包的能力,但是由于要不断地确认与重发,基于这些协议的通信也会因此变慢,极大地影响了性能。
IB基本概念
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活化智能性连接机制。
IB协议简介
InfiniBand也是一种分层协议(类似TCP/IP协议),每层负责不同的功能,下层为上层服务,不同层次相互独立。 IB采用IPv6的报头格式。其数据包报头包括本地路由标识符LRH,全局路由标示符GRH,基本传输标识符BTH等。
Mellanox OFED是一个单一的软件堆栈,包括驱动、中间件、用户接口,以及一系列的标准协议IPoIB、SDP、SRP、iSER、RDS、DAPL(Direct Access Programming Library),支持MPI、Lustre/NFS over RDMA等协议,并提供Verbs编程接口;Mellanox OFED由开源OpenFabrics组织维护。
当然,Mellanox OFED软件堆栈是承载在InfiniBand硬件和协议之上的,软件通协议和硬件进行有效的数据传输。
1、物理层
物理层定义了电气特性和机械特性,包括光纤和铜媒介的电缆和插座、底板连接器、热交换特性等。定义了背板、电缆、光缆三种物理端口。
并定义了用于形成帧的符号(包的开始和结束)、数据符号(DataSymbols)、和数据包直接的填充(Idles)。详细说明了构建有效包的信令协议,如码元编码、成帧标志排列、开始和结束定界符间的无效或非数据符号、非奇偶性错误、同步方法等。
2、 链路层
链路层描述了数据包的格式和数据包操作的协议,如流量控制和子网内数据包的路由。链路层有链路管理数据包和数据包两种类型的数据包。
3、 网络层
网络层是子网间转发数据包的协议,类似于IP网络中的网络层。实现子网间的数据路由,数据在子网内传输时不需网络层的参与。
数据包中包含全局路由头GRH,用于子网间数据包路由转发。全局路由头部指明了使用IPv6地址格式的全局标识符(GID)的源端口和目的端口,路由器基于GRH进行数据包转发。GRH采用IPv6报头格式。GID由每个子网唯一的子网 标示符和端口GUID捆绑而成。
4、 传输层
传输层负责报文的分发、通道多路复用、基本传输服务和处理报文分段的发送、接收和重组。传输层的功能是将数据包传送到各个指定的队列(QP)中,并指示队列如何处理该数据包。当消息的数据路径负载大于路径的最大传输单元(MTU)时,传输层负责将消息分割成多个数据包。
接收端的队列负责将数据重组到指定的数据缓冲区中。除了原始数据报外,所有的数据包都包含BTH,BTH指定目的队列并指明操作类型、数据包序列号和分区信息。
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)来提高数据中心应用程序数据消息传送性能、伸缩性和可靠性。
IB基本应用场景
Infiniband灵活支持直连及交换机多种组网方式,主要用于HPC高性能计算场景,大型数据中心高性能存储等场景,HPC应用的共同诉求是低时延
内容小结:一方面Infiniband在主机侧采用RDMA技术释放CPU负载,可以把主机内数据处理的时延从几十微秒降低到1微秒;另一方面InfiniBand网络的高带宽(40G、56G和100G)、低时延(几百纳秒)和无丢包特性吸取了FC网络的可靠性和以太网的灵活扩展能力。
InfiniBand技术和架构相关推荐
- InfiniBand技术和协议架构分析
Infiniband开放标准技术简化并加速了服务器之间的连接,同时支持服务器与远程存储和网络设备的连接. IB技术的发展 1999年开始起草规格及标准规范,2000年正式发表,但发展速度不及Rapid ...
- 《企业大数据系统构建实战:技术、架构、实施与应用》——第3章 企业大数据解决方案 3.1 企业大数据解决方案实现方式...
本节书摘来自华章计算机<企业大数据系统构建实战:技术.架构.实施与应用>一书中的第3章,第3.1节,作者 吕兆星 郑传峰 宋天龙 杨晓鹏,更多章节内容可以访问云栖社区"华章计算机 ...
- 《云计算:概念、技术与架构》一2.3 案例研究3:Innovartus
本节书摘来华章计算机<云计算:概念.技术与架构>一书中的第2章 ,第2.3节,(美)Thomas Erl (英)Zaigham Mahmood 著 (巴西)Ricardo Puttini ...
- IT规划中的技术体系架构
IT规划中的技术体系架构体系架构通常会建立一个共有的能帮助今后持续发展的信息扩展基础,然而,简单的设定目标是远远不够的,必须和构建人员.客户.厂商及其他相关人员进行沟通以达成共识,在构建过程中要维护该 ...
- 《企业大数据系统构建实战:技术、架构、实施与应用》一3.2 如何选择解决方案...
本节书摘来自华章出版社<企业大数据系统构建实战:技术.架构.实施与应用>一书中的第3章,第3.2节,作者吕兆星 郑传峰 宋天龙 杨晓鹏,更多章节内容可以访问云栖社区"华章计算机& ...
- java mvc引擎_Velocity是一种Java模版引擎技术,MVC架构的一种实现,但它更多的是关注在Model和View之间,作为它们的桥梁。服务端渲染,我们使用最多的就是用他...
Velocity是一种Java模版引擎技术,MVC架构的一种实现,但它更多的是关注在Model和View之间,作为它们的桥梁.服务端渲染,我们使用最多的就是用他来渲染HTML.下面我们看看他与spri ...
- 《云计算:概念、技术与架构》一1.1 本书目标
本节书摘来华章计算机<云计算:概念.技术与架构>一书中的第1章 ,第1.1节,(美)Thomas Erl (英)Zaigham Mahmood 著 (巴西)Ricardo Puttini ...
- 【2017年第4期】工业大数据技术与架构
郑树泉,1,3, 覃海焕,2,3, 王倩,1,3 1. 上海计算机软件技术开发中心,上海 201112 2. 上海电机学院电子信息学院,上海 201306 3. 上海产业技术研究院工程大数据服务创新中 ...
- 容器编排技术 -- Kubernetes 架构
容器编排技术 -- Kubernetes 架构 1 Borg简介 2 Kubernetes架构 2.1 分层架构 Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统 ...
最新文章
- ComponentName(String pkg, String cls)
- VMware运行时“内部错误”的解决方法
- docker本地仓库镜像
- java url 生成图片_JAVA 通过URL生成水印图
- opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...
- 问题 | list(set(list))如何实现顺序不变
- 项目的包结构 mybatis三剑客
- Android 内存泄漏之handler
- Abp框架默认表中如何添加字段
- android 基础布局
- 华为笔记本电脑安装 Linux 操作系统之Manjaro(手把手教学)
- QQ空间自动发广告解决方法
- 原生 js 实现弹窗
- 最新PYTHON批量下载快手个人主页短视频代码
- 黑马程序员—-C语言入门十重奏之十renascence
- 怎么在python提取别的数据了_别再问如何用python提取PDF内容了!
- ar面部识别_AR面部识别有什么品牌?
- mysql 日历表_如何创建mysql日历表
- Linux学习笔记:DNS
- 随机生成邀请码、随机生成10位数字、随机生成英文字母+数字
热门文章
- Virtualbox使用NAT模式, 并用端口转发实现主机访问虚拟机
- 易语言服务器怎么断开连接,易语言断开进程网络连接源码
- 最强OLAP分析引擎-Clickhouse快速精通-上
- 【相机】(1)——Intent调相机的2种方式以及那些你知道的和不知道的坑
- 东芝开发板驱动OLED模块显示LOGO图片
- 如何高效地准备技术面试?
- html canvas保存为图片,在HTML5 Canvas中放入图片和保存为图片的方法
- PPT 下载 | Lime 吕厚昌:Make Data Your Killer App
- 【华为机试真题 Python实现】数组拼接
- 理解yolov6网络结构