远程直接内存访问(Remote Direct Memory Access)是一种直接内存访问技术,它直接将数据从一台计算机的内存传输到另一台计算机,而无需两个操作系统的干预。本文旨在提供技术指导。详情请参阅:电子书。
RDMA技术最早出现在Infiniband网络中,用于互连高性能计算集群。传统的基于Socket (TCP/IP协议栈)的网络通信需要通过操作系统软件协议栈,数据在系统DRAM、处理器Cache和网卡Buffer之间来回复制移动,从而占用大量CPU计算资源和内存总线带宽,增加网络延迟。比如40Gbps TCP/IP流可以耗尽主流服务器的所有CPU资源;RDMA解决了传统TCP/IP通信的技术痛点。例如,在40Gbps场景中,CPU利用率从100%降低到5%,网络延迟从ms级别降低到10us以下。
RDMA是一种新的内存访问技术,它允许计算机直接访问其他计算机的内存,而无需处理器进行耗时的处理。RDMA可以将数据从一个系统快速移动到远程系统内存,而不会对操作系统造成任何影响。下图显示了RDMA技术的原理及其与TCP/IP体系结构的一致性。
所以RDMA可以简单理解为使用相关的硬件和网络技术,直接读取服务器网卡之间的内存,最终达到高带宽、低延迟、低资源利用率的效果。应用程序不需要参与数据传输过程,只需要指定内存读写地址,开始传输,等待传输完成。
RDMA首先在Infiniband传输网络上实施,技术先进,但价格昂贵(只有Mellanox和Intel供应商提供全套网络解决方案)。后来工业厂商将RDMA移植到传统以太网,降低了RDMA的使用成本,促进了RDMA技术的普及。在以太网上,根据协议栈融合的不同,有iWARP和RoCE两种技术,RoCE包括RoCEv1和RoCEv2两个版本(RoCEv2最大的改进是支持IP路由)。下图显示了成对的RDMA网络协议栈。
Infiniband,支持RDMA的新一代网络协议。由于这是一种新的网络技术,需要网卡和支持这种技术的交换机。
RoCE,一种允许在以太网上执行RDMA的网络协议。下层网络头是以太网头,上层网络头(包括数据)是InfiniBand头。这支持在标准以太网基础设施(交换机)上使用RDMA。只有网卡应该是专用的,支持RoCE。
IWARP,一种允许通过TCP执行RDMA的网络协议。iWARP不支持IB和RoCE中存在的功能。这支持在标准以太网基础设施(交换机)上使用RDMA。只有网卡应该是专用的,支持iWARP(如果用CPU卸载的话),否则所有iWARP栈都可以用软件实现,大部分RDMA性能优势丧失。
rdma应用程序和rnic (rdma感知网络接口控制器)之间的传输接口层称为动词或RDMA应用编程接口,RDMA应用编程接口(动词)主要有两种动词:
记忆动词(Memory动词),也叫单侧记忆。包括rdma读、rdma写和rdma原子。这种模式下的RDMA访问根本不需要来自远程机器的任何确认。
消息动词(消息动词),也称为双边消息传递。包括RDMA发送,RDMA接收。这种模式下的RDMA访问需要远程中央处理器的参与。
基于传输控制协议的RDMA协议可以在基于传输控制协议的标准网络中工作,例如目前广泛应用于各种数据中心的以太网。IWARP没有指定物理层信息,所以可以在任何使用TCP/IP协议的网络上层工作。IWARP允许许多传输类型共享相同的物理连接,例如网络、输入/输出、文件系统、块存储和处理器之间的消息通信。
根据RDMA的TCP协议栈,前三层构成iWARP协议族,用于保证高速网络的互操作性。
融合以太网RDMA(RoCe)是一种网络协议,允许应用程序通过以太网访问远程内存。目前,RoCE有两个协议版本。
RoCE v1是一种链路层协议,允许同一广播域中的任何两台主机直接访问。
Rochev2是一种互联网层协议,可以实现路由功能。虽然RoCE协议的这些优势是基于融合以太网的特点,但RoCE协议也可以用于传统以太网或非融合以太网。
目前,虽然三种RDMA技术IB、以太网RoCE和以太网iWARP使用统一的API,但它们具有不同的物理层和链路层。与iWARP相比,RoCE在以太网解决方案中具有明显的优势,体现在延迟、吞吐量和CPU负载上。RoCE有很多主流方案支持,包含在Windows服务软件中。
RDMA技术是基于传统网络的概念,但它与IP网络有些不同。关键的区别在于,RDMA提供了一种消息服务,应用程序可以通过它直接访问远程计算机上的虚拟内存。借助一些上层协议,消息服务可以用于进程间通信(IPC)、远程服务器通信和与存储设备的数据传输。有许多上层协议,如iSCSI RDMA扩展(iSER)和SCSI RDMA协议(SRP)。主流中小企业、桑巴、Lustre和ZFS也支持RDMA。
RoCE和InfiniBand,一个定义了如何在以太网上运行RDMA,另一个定义了如何在IB网络上运行RDMA。RoCE预计将IB应用(主要是基于集群的应用)迁移到融合以太网,而在其他应用中,IB网络仍将提供比RoCE更高的带宽和更低的延迟。RoCE和IB协议之间的技术差异:
拥塞控制:RoCE所依赖的无包网络是基于以太网流量控制或PFC(优先级流量控制)的。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没有相关的标准定义。
英特尔收购了Qlogic的InfiniBand业务,走上了一条新的道路。推出了一整套高性能计算架构解决方案,称为“真正的规模结构”(包括IB和Omni-Path),并独立提出了一套Omni-Path主机结构接口和相应的交换机产品。提供了两个编程接口,动词和性能扩展消息库。PSM是专门为MPI通信设计的接口。
英特尔在CPU上集成了Omni-Path相关功能,也意味着Omni-Path在通信效率上更高效,但会让自己的网络依赖于CPU,至少在处理器上的开放性是有限的。
通过收购Cray互联部门,英特尔在Omni-Path中引入了1.5层的概念。它被称为链路传输层(Link Transport Layer),它基于Cray的Aries基本互连技术优化底层数据通信,并提供可靠的第2层数据包传递、流量控制和单链路控制。这也是Cray收购白羊科技的充分利用。
根据作者对RDMA的了解,电子书、信息目录如下。
这本书涉及的内容大部分都在这一期推了,但内容有所增加和梳理。如果你怕麻烦,怕分散阅读,可以交一点费用通过原链接获取,这也是你对我们公众账号持续运营的支持。
传递礼物正在进行中......
[免费入场券]智能合同和区块链技术特别会议
提示:
请搜索“ICT_Architect”或“Sweep”二维码关注微信官方账号,点击原链接获取更多技术信息。
请点击此处输入图片描述
如果你渴望知识,你就是一个思想开放的傻瓜——保持饥饿,保持愚蠢