[精华] RDMA技术原理分析、主流实现对比和解析

替换高清大图

请点击此处输入图片描述

 摘要: 远程直接内存访问(即Remote Direct Memory Access)是一种直接内存访问技术,它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入,本文旨在技术引导,详细内容请通过文末“阅读原文”参阅<RDMA原理分析、对比和技术实现解析>电子书。

RDMA技术最早出现在Infiniband网络,用于HPC高性能计算集群的互联。传统的基于Socket套接字(TCP/IP协议栈)的网络通信,需要经过操作系统软件协议栈,数据在系统DRAM处理器Cache网卡Buffer之间来回拷贝搬移,因此占用了大量的CPU计算资源和内存总线带宽,也加大了网络延时。举例来说,40Gbps的TCP/IP流能耗尽主流服务器的所有CPU资源;RDMA则解决了传统TCP/IP通信的技术痛点。例如,在40Gbps场景下,CPU占用率从100%下降到5%,网络延时从ms级降低到10us以下。

RDMA是一种新的内存访问技术,RDMA让计算机可以直接存取其他计算机的内存,而不需要经过处理器耗时的处理。RDMA将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响。RDMA技术的原理及其与TCP/IP架构的对比如下图所示。

请点击此处输入图片描述

因此,RDMA可以简单理解为利用相关的硬件和网络技术,服务器的网卡之间可以直接读内存,最终达到高带宽、低延迟和低资源利用率的效果。应用程序不需要参与数据传输过程,只需要指定内存读写地址,开启传输并等待传输完成即可。

RDMA最早在Infiniband传输网络上实现,技术先进,但是价格高昂(只有Mellanox和Intel供应商提供全套网络解决方案),后来业界厂家把RDMA移植到传统Ethernet以太网上,降低了RDMA的使用成本,推动了RDMA技术普及。在Ethernet以太网上,根据协议栈融合度的差异,分为iWARP和RoCE两种技术,而RoCE又包括RoCEv1和RoCEv2两个版本(RoCEv2的最大改进是支持IP路由),各RDMA网络协议栈的对比如下图所示。

请点击此处输入图片描述

  • Infiniband,支持RDMA的新一代网络协议。 由于这是一种新的网络技术,因此需要支持该技术的NIC和交换机。
  • RoCE,一个允许在以太网上执行RDMA的网络协议。 其较低的网络标头是以太网标头,其较高的网络标头(包括数据)是InfiniBand标头。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,支持RoCE。
  • iWARP,一个允许在TCP上执行RDMA的网络协议。 IB和RoCE中存在的功能在iWARP中不受支持。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,并且支持iWARP(如果使用CPU卸载),否则所有iWARP堆栈都可以在软件中实现,并且丧失了大部分RDMA性能优势。

RDMA应用和RNIC(RDMA-aware Network Interface Controller)之间的传输接口层(Software Transport Interface)被称为Verbs或RDMA API,RDMA API (Verbs)主要有两种Verbs:

  • 内存Verbs(Memory Verbs),也叫One-SidedRDMA。包括RDMA Reads, RDMA Writes, RDMA Atomic。这种模式下的RDMA访问完全不需要远端机的任何确认。
  • 消息Verbs(Messaging Verbs),也叫Two-SidedRDMA。包括RDMA Send, RDMA Receive。这种模式下的RDMA访问需要远端机CPU的参与。

RDMA over TCP(iWARP)协议能够工作在标准的基于TCP/IP协议的网络,如目前在各个数据中心广泛使用的以太网。iWARP并没有指定物理层信息,所以能够工作在任何使用TCP/IP协议的网络上层。iWARP允许很多传输类型来共享相同的物理连接,如网络、I/O、文件系统、块存储处理器之间的消息通讯。

请点击此处输入图片描述

从RDMA over TCP的协议栈来看,最上面三层构成iWARP协议族,用来保证高速网络的互操作性。

RDMA over Converged Ethernet (RoCE)是一种网络协议,允许应用通过以太网实现远程内存访问。目前RoCE有两个协议版本。

  • RoCE v1是一种链路层协议,允许在同一个广播域下的任意两台主机直接访问。
  • RoCE v2是一种Internet层协议,即可以实现路由功能。虽然RoCE协议这些好处都是基于融合以太网的特性,但是RoCE协议也可以使用在传统以太网网络或者非融合以太网络中。

目前,虽然IB、以太网RoCE、以太网iWARP这三种RDMA技术使用统一的API,但它们有着不同的物理层和链路层。在以太网解决方案中,RoCE相对于iWARP来说有着明显的优势,这些优势体现在延时、吞吐率和 CPU负载。RoCE被很多主流的方案所支持,并且被包含在Windows服务软件中。

RDMA技术基于传统网络的概念,但与IP网络又有些不同。最关键的不同是RDMA提供了一种消息服务, 利用这种服务,应用程序可以直接访问远程计算机上的虚拟内存。消息服务可以用来进行网络中进程间通信(IPC)远程服务器通信和在一些上层协议的协助下与存储设备进行数据传递。上层应用协议ULPs(Upper Layer Protocols)有很多,例如iSCSI的RDMA扩展(iSER)、SCSI RDMA协议(SRP)等,主流的SMB、Samba 、Lustre、ZFS等也支持RDMA。

RoCE和InfiniBand,一个定义了如何在以太网上运行RDMA,而另一个则定义了如何在IB网络中运行RDMA。RoCE期望能够将IB的应用(主要是基于集群的应用)迁移到融合以太网中,而在其他应用中,IB网络仍将能够提供比RoCE更高的带宽和更低的时延。RoCE和IB协议的技术区别:

  • 拥塞控制:RoCE所依赖的无丢包网络基于以太网流控或PFC(Priority Flow Control)来实现。RoCEv2 则是定义了拥塞控制协议,使用ECN做标记和CNP帧来做确认。而IB则是使用基于信用的算法来保证HCA-HCA之间的无丢包通信。
  • 时延:当前IB交换机普遍要比以太交换机拥有更低的时延,以太网交换机一般的Port-to-Port时延在230ns,相比IB交换机在同样端口数的情况下100ns的时延,以太交换机还是要高出不少。
  • 配置:配置一个DCB以太网络要远比配置一个IB网络要复杂的多,同理,运维也要复杂的多。

RoCE和iWARP,一个是基于无连接协议UDP,一个是基于面向连接的协议(如TCP)。RoCEv1只能局限在一个二层广播域内,而RoCEv2和iWARP都能够支持三层路由。相比RoCE,在大型组网的情况下,iWARP的大量TCP连接会占用大量的额内存资源,对系统规格要求更高。另外,RoCE支持组播,而iWARP还没有相关的标准定义。

Intel收购了Qlogic的InfiniBand业务的Intel又另辟新径,推出了一整套叫做“True Scale Fabric”的高性能计算架构的解决方案(包括IB和Omni-Path),独立提出了一套Omni-Path Host Fabric Interface接口和对应的交换机产品。提供Verbs和PSM(性能扩展消息库)两个编程接口,PSM是专门面向 MPI 通信设计的接口。

请点击此处输入图片描述

Intel在CPU上集成了Omni-Path相关功能,这也意味着Omni-Path通信效率上更加高效,但会让自己的网络依赖于CPU,至少在处理器上开放性还是做的比较有局限性。

通过收购Cray互联部门,Intel在 Omni-Path引入了1.5层的概念。它被称作链接传输层(Link Transport Layer),基于Cray的Aries基础互联技术优化底层数据通信,提供可靠的2层数据包交付、流控和单连璐控制。这也算是对收购Cray的Aries技术的充分利用。

基于作者对RDMA理解,已经对相关技术总结整理成的<RDMA原理分析、对比和技术实现解析>电子书,资料目录如下。

请点击此处输入图片描述

请点击此处输入图片描述

本书涉及到大部分的内容已在本号推送过,但是内容有所增加且经过梳理,如果怕麻烦零散阅读,那就通过原文链接支付少量费用获取吧,也算是您对咱们公号持续运营的支持。

通票赠送进行中... ...

  • [赠票] 智能合约与区块链技术专场

温馨提示:

请搜索“ICT_Architect”或“扫一扫”二维码关注公众号,点击原文链接获取更多技术资料。

求知若渴, 虚心若愚—Stay hungry, Stay foolish

请点击此处输入图片描述

原文地址:http://blog.51cto.com/hardywang/2106528

时间: 2024-08-01 14:46:39

[精华] RDMA技术原理分析、主流实现对比和解析的相关文章

一台电脑控制多台手机技术原理分析

奥创软件研究院是首家研发电脑批量控制手机的软件研发机构,现在简单跟大家分析下电脑批量控制手机的原理. 现在电脑控制手机有多种方式,云端,WIFI ,以及USB 连接,云端的话,其实就是云端向手机里面的APP发送指令,这样无法及时的跟进手机执行任务的情况,所以奥创软件研究院不在这里多介绍,这里为大家介绍一台电脑控制27台,最高控制127台的技术原理,希望能够帮助到大家理清楚电脑控制手机的一些基本原理. 可能有人会疑问,为什么最多是127台呢?因为当时电脑主板的USB 接口在设计出来的时候,没想到会

Web端服务器推送技术原理分析

1 背景 "服务器推送技术"(ServerPushing)是最近Web技术中最热门的一个流行术语.它是继"Ajax"之后又一个倍受追捧的Web技术."服务器推送技术"最近的流行跟"Ajax "有着密切的关系. 随着 Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大.Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带来的视觉差异将会消失.

Web端服务器推送技术原理分析及dwr框架简单的使用

1 背景 “服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语.它是继“Ajax”之后又一个倍受追捧的Web技术.“服务器推送技术”最近的流行跟“Ajax ”有着密切的关系. 随着 Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大.Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带来的视觉差异将会消失. 但是,在浏览器中的 Ajax应用中存在一个致命的缺陷无法满足传统桌面系

Web端服务器推送技术原理分析及dwr框架简单的使用 转载

1 背景 “服务器推送技术”(ServerPushing)是最近Web技术中最热门的一个流行术语.它是继“Ajax”之后又一个倍受追捧的Web技术.“服务器推送技术”最近的流行跟“Ajax ”有着密切的关系. 随着 Ajax技术的兴起,让广大开发人员又一次看到了使用浏览器来替代桌面应用的机会,并且这次机会非常大.Ajax将整个页面的刷新变成页面局部的刷新,并且数据的传送是以异步方式进行,这使得网络延迟带来的视觉差异将会消失. 但是,在浏览器中的 Ajax应用中存在一个致命的缺陷无法满足传统桌面系

ajax 技术和原理分析

ajax所包含的技术 大家都知道ajax并非一种新的技术,而是几种原有技术的结合体.它由下列技术组合而成. 1.使用CSS和XHTML来表示. 2. 使用DOM模型来交互和动态显示. 3.使用XMLHttpRequest来和服务器进行异步通信. 4.使用javascript来绑定和调用. 在上面几中技术中,除了XmlHttpRequest对象以外,其它所有的技术都是基于web标准并且已经得到了广泛使用的,XMLHttpRequest虽然目前还没有被W3C所采纳,但是它已经是一个事实的标准,因为目

比特币深层技术原理浅析

摘要: 这是一篇主要针对技术小白的文章.本文尽量使用通俗易懂但又不失要义的文字,带你深入剖析当前备受追捧的比特币背后的深层技术原理,最后会简要介绍一下业界市场的现状. 这是一篇主要针对技术小白的文章.本文尽量使用通俗易懂但又不失要义的文字,带你深入剖析当前备受追捧的比特币背后的深层技术原理,最后会简要介绍一下业界市场的现状. 目前加密货币这个圈子可简要分为币圈和链圈,币圈专注于投资炒币,而链圈专注于区块链(blockchain)技术的创新发展.虽然币圈是高回报的利益驱动,但也正是他们的天使资金推

MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析

文/何登成 导读:   来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解InnoDB存储引擎实现的多版本控制技术(简称:MVCC). 基本知识 假设对于多版本控制(MVCC)的基础知识,有所了解.MySQL数据库InnoDB存储引擎为了实现多版本的一致性读,采用的是基于回滚段的协议. 行结构 MySQL数据库InnoDB存储引擎表数据的组织方式为主键聚簇索引.由于采用索引

嵌入式linux QT开发(三)——GUI原理分析

嵌入式linux QT开发(三)--GUI原理分析 一.命令行程序 命令行程序是面向过程的程序设计. 命令行程序的特点: A.基于顺序结构执行 B.程序执行过程中不需与用户交互 C.程序执行结束给出最终运行结果 命令行程序适用场合: A.单任务场合 B.无交互.简单交互场合 C.服务器应用场合 二.GUI程序 GUI程序的特点: A.基于消息驱动模型的程序 B.程序执行依赖用户交互过程 C.程序执行过程中实时响应用户操作 D.一般程序执行后不会主动退出 GUI程序适用场合: A.多任务场合 B.

从安全攻击实例看数据库安全(三)数据库攻击原理分析

摘要:本文将通过对SQL注入攻击技术和数据库加密技术原理以及防护效果进行深入的分析,来辨析数据库安全技术误区"数据库加密能解决SQL注入",同时本文也给出了SQL注入的防护方法. 1. 数据库安全误区 针对2015年4月互联网大规模报道的全国30省市社保等行业用户信息泄露事件,安华金和对乌云历史报道的社保行业相关漏洞进行集中分析,得出的结论为:大量的信息泄露主要是由于软件中存在的SQL注入漏洞被黑客利用引起的,我们可以把SQL注入比作黑客攻击数据库"锋利的矛".