Infiniband开放标准技术简化并加速了服务器之间的连接,同时支持服务器与远程存储和网络设备的连接。

IB技术的发展

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

随着越来越多的大厂商正在加入或者重返到它的阵营中来,包括Cisco、IBM、HP、Sun、NEC、Intel、LSI等。InfiniBand已经成为目前主流的高性能计算机互连技术之一。为了满足HPC、企业数据中心和云计算环境中的高I/O吞吐需求,新一代高速率56Gbps的FDR (Fourteen Data Rate) 和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等。

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(ReliableDatagram 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应用的共同诉求是低时延(<10微秒)、低CPU占有率(<10%)和高带宽(主流56或100Gbps)

一方面Infiniband在主机侧采用RDMA技术释放CPU负载,可以把主机内数据处理的时延从几十微秒降低到1微秒;另一方面InfiniBand网络的高带宽(40G、56G和100G)、低时延(几百纳秒)和无丢包特性吸取了FC网络的可靠性和以太网的灵活扩展能力。

这两天了解了一些 parallel file system 比如 PVFS2/OrangeFS,  Lustre,它们都声称支持 InfiniBand 网络连接技术,好奇之下查了下,发现这个技术规范很牛逼,另外也因此知道了 RDMA 技术,指不通过 OS 内核以及 TCP/IP 协议栈在网络上传输数据,因此延迟非常低,CPU 消耗非常少。

两篇讲述 InfiniBand 的趣文:

看起来 InfiniBand, FibreChannel, 10Gbps Ethernet 竞争的硝烟还有一阵日子可看。

RDMA 技术有好几种规范来达到:

  • InfiniBand: 这是正统,InfiniBand 设计之初就考虑了 RDMA,InfiniBand 从硬件级别保证可靠传输;
  • iWARP: 基于 TCP or SCTP 做 RDMA,利用 TCP or SCTP 达到可靠传输,对网络设备的要求比较少;
  • RoCE: 基于 Ethernet 做 RDMA,消耗的资源比 iWARP 少,支持的特性比 iWARP 多,需要FCoE做可靠传输。从wikipedia的评价看 RoCE 还是比正统的 InfiniBand 差点。

上面三种实现都是需要硬件支持的,IB 需要支持 IB 规范的网卡和交换机,iWARP 和 RoCE 都可以使用普通的以太网交换机,但是需要支持 iWARP 或者 RoCE 的网卡。软件上 Solaris、Linux、Windows 都有支持,在 API 层面这篇文章有个入门的介绍:Introduction to Remote Direct Memory Access (RDMA),可以使用http://www.openfabrics.org/提供的 libibverbs 库(Debian Linux 有提供),这个库似乎也支持 Windows 上的原声 RDMA API "Network Direct"。另外也有一些其它 API 规范,比如 DAT 组织制定的 kDAPL(让 kernel driver 可以访问 RDMA 功能) 和 uDAPL(让 user space 进程可以访问 RDMA 功能), OpenGroup 制定的 IT-API 和 RNICPI:

另外 IETF 制定了 iSCSI Extensions for RDMA(iSER) 和 SDP(Sockets Direct Protocol, 基于 RDMA 替换 TCP 的流式传输层协议, RDMA 本身提供了可靠传输机制) 两个协议。Java 7 引入了对 SDP 的支持: https://docs.oracle.com/javase/tutorial/sdp/sockets/index.html,Apache Qpid 消息队列也支持 RDMA:https://packages.debian.org/sid/librdmawrap2 .

InfiniBand技术和协议架构分析的更多相关文章

  1. [转帖]InfiniBand技术和协议架构分析

    InfiniBand技术和协议架构分析 2017年06月06日 20:54:16 Hardy晗狄 阅读数:15207 标签: 云计算存储Infiniband 更多 个人分类: 存储云计算   版权声明 ...

  2. [转载] 关于“淘宝应对"双11"的技术架构分析”

    微博上一篇最新的关于“淘宝应对"双11"的技术架构分析”.数据产品的一个最大特点是数据的非实时写入.

  3. capwap协议重点分析

    一.     CAPWAP概述 CAPWAP由两个部分组成:CAPWAP协议和无线BINDING协议. (1)CAPWAP协议是一个通用的隧道协议,完成AP发现AC等基本协议功能,和具体的无线接入技术 ...

  4. InfiniBand技术简介

    InfiniBand技术简介   转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍         随着CPU和通讯处理速度的 ...

  5. 分布式MySQL数据库TDSQL架构分析

    摘要:腾讯计费平台部为了解决基于内存的NoSQL解决方式HOLD平台在应对多种业务接入时的不足.结合团队在MySQL领域多年应用和优化经验,终于在MySQL存储引擎基础上,打造一套分布式SQL系统TD ...

  6. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  7. SLG手游Java服务器的设计与开发——架构分析

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  8. Flickr 网站架构分析

    Flickr 网站架构分析 Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被 ...

  9. Linux 二层协议架构组织

    本文主要讲解了Linux 二层协议架构组织,使用的内核的版本是2.6.32.27 为了方便理解,本文采用整体流程图加伪代码的方式从内核高层面上梳理了Linux 二层协议架构组织,希望可以对大家有所帮助 ...

随机推荐

  1. 目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Tech report

    目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Te ...

  2. Career Planning:Developers Best Practices Tutorial

    This small tutorial is based on my past 16+ years of experience in software development industry. I ...

  3. 让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求

    具体设置如下: 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools >Advanced Settin ...

  4. C++ 常见字符处理 收录

    1.string字符串删除 字符串中 指定字符 std::string& HTTPRequestHandlerImpl::replace_all_distinct(std::string&am ...

  5. 【MonogDB】The description of index(二) Embedded and document Index

    In this blog, we will talk about another the index which was called "The embedded ". First ...

  6. Win7中的IIS配置asp时出现“出现403 文件夹禁止訪问错误”!

    Win7中的IIS配置asp时出现"出现403 文件夹禁止訪问错误"! 在[默认文档]中设一下启动文件即可了.

  7. Windows Server 2012 云硬盘如何挂载

    那么首先科普一下,云服务器的数据盘(也就是我们买的云硬盘)默认是脱机状态,不自动挂载的.下面来教大家win2012环境如何挂载硬盘,其实和03.08的大同小异就是入口不同了.   点击“工具”中的“计 ...

  8. Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"

    Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 var   reg: TPerlRegEx; begin   ...

  9. PAT 天梯赛 L1-048. 矩阵A乘以B 【数学】

    题目链接 https://www.patest.cn/contests/gplt/L1-048 题意 给出两个矩阵,先判断两个矩阵能不能相乘,如果可以,就输出相乘 结果,如果不行 则按格式输出erro ...

  10. MongoDB win32-bit 安装

    一念起: 由于本人 用的电脑比较老旧,所以一直用的 是win7 32bit 的操作系统,但是在学习MongoDB的时候 遇到了起步的第一个问题,按照目前 官网最新版MongoDB 3.4.3,已不支持 ...