RDMA

RDMA(RemotEDIreCTMemoryAccess)

目录

    1什么是RDMA2RDMA的理解[1]3RDMA的构成[2]4RDMA数据操作方法[1]5RDMA在数据传输中的应用[3]6参考文献

什么是RDMA

RDMA(RemoteDireCTMemoryAccess)技术全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和文本交换操作,因而能解放内存带宽和CPU周期用于改进应用系统性能。

RDMA的理解

1.传统意义上的DMA

直接内存访问(DMA)方式,是一种完全由硬件执行I/O交换的工作方式.在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和110设备之间进行.DMA工作时,由DMA控制器向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,并且以中断方式向CPU报告传送操作的结束。

使用DMA方式的目的是减少大批量数据传输时CPU的开销.采用专用DMA控制器(DMAC)生成访存地址并控制访存过程.优点有操作均由硬件电路实现,传输速度快;CPU基本不干预,仅在初始化和结束时参与,CPU与外设并行工作,效率高。

2.RDMA工作原理

目前,普通网卡集成了支持硬件校验和的功能,并对软件进行了改进,从而减少了发送数据的拷贝量,但无法减少接收数据的拷贝量,而这部分拷贝量要占用CPU的大量计算周期.普通网卡的工作过程如下:先把收到的数据包缓存到系统上,数据包经过处理后,相应数据被分配到一个TCP连接;然后,接收系统再把主动提供的TCP数据同相应的应用程序联系起来,并将数据从系统缓冲区拷贝到目标存储地址.这样,制约网络速率的因素就出现了:应用通信强度不断增加和主机CPU在内核与应用存储器间处理数据的任务繁重使系统要不断追加主机CPU资源,配置高效的软件并增强系统负荷管理.问题的关键是要消除主机CPU中不必要的频繁数据传输,减少系统间的信息延迟。

RDMA是通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能.它消除了外部存储器复制和文本交换操作,因而能腾出总线空间和CPU周期用于改进应用系统性能.目前通用的做法需由系统先对传入的信息进行分析与标记,然后再存储到正确的区域.整体结构如图所示。

RDMA的工作过程如下:

1)当一个应用执行RDMA读或写请求时,不执行任何数据复制.在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地NIC(网卡)。

2)NIC读取缓冲的内容,并通过网络传送到远程NIC。

3)在网络上传输的RDMA信息包含目标虚拟地址、内存钥匙和数据本身.请求完成既可以完全在用户空间中处理(通过轮询用户级完成排列),或者在应用一直睡眠到请求完成时的情况下通过内核内存处理.RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。

4)目标NIC确认内存钥匙,直接将数据写人应用缓存中.用于操作的远程虚拟内存地址包含在RDMA信息中。

3.RDMA申零拷贝技术

零拷贝网络技术使NIC可以直接与应用内存相互传输数据,从而消除了在应用内存与内核内存之间复制数据的需要.内核内存旁路使应用无需执行内核内存调用就可向NIC发送命令.在不需要任何内核内存参与的条件下,RDMA请求从用户空间发送到本地NIC,并通过网络发送给远程NIC,这就减少了在处理网络传输流时内核内存空间与用户空间之间环境切换的次数.RDMA中的零拷贝技术主要实现方法如图所示。

在上图中,右边是传统TCP/IP协议以及普通网卡进行的通信操作过程.很明显,当应用层想从网卡获得数据报文时需要经过2个缓冲区和正常TCPIIP协议钱,其中由软中断负责从第一个接收队列缓冲区读取数据报文,再拷贝到MSGBuff中,最后由应用层通过系统调用将数据报文读到用户态.而左边则是利用RDMA来实现的零拷贝过程,规则如下:

1)RDMA及其LLP(LowerLayERProTOCol)可以在NIC上实现(称为RNIC)。

2)在1)中所说的2种实现都是经过以下步骤:将收发的数据缓存到一个已经标记好的存储空间中,然后根据LLP和RDMA双方协商的规则直接将此存储空间映射到应用空间,这样就减少了传统实现方法中的至少2次内存拷贝,即实现零拷贝.其中细线表示数据流动方向,其实标记缓存就是通过RDMA直接映射成为用户缓存空间的。

RDMA的构成

如上图为RDMA的构成,RDMA的实现由RDMA、DDP、MPA3种协议共间实现,构成了iWARP协议族,用来保证高速网络的互操作性。RDMA层用于将RMDA读、写及Send操作消息转化成RDMA消息,并将RDMA消息传送至DDP(DirectDATaPlaCEMent)层,DDP应将RDMA消息分段封装成DDP数据包转发到下层Marker-based,PRotocol-data-unit-A1igned(MPA)层,MPA层将DDP数据包插入标识符,长度及CRC校验,构成MPA数据段。TCP层负责对TCP数据段进行调度,确保发包能够顺利到达目标位置。IP层则在数据包中增加必要的网络路由数据信息。

RDMA数据操作方法

RDMA协议为远端直接数据缓存提供7种类型的控制操作.除了远端缓冲区读取操作之外,每一种RDMA控制操作都只产生一个对应的RDMA消息。

1)Send:发送操作使用Send消息将发送方应用的数据直接发送到数据接收方应用尚未明确声明的缓冲区中.故Send消息使用的是DDP的无标记的缓冲区数据传递模型,将上层应用消息传递到接收方应用的无标记队列式缓冲区中。

2)SendwithInvalidate:在Send基础上,加了一个导航标记Stag.当该消息缓存在Stag所指定对端应用缓冲区中,并将消息到达通知传达给接收方应用后,接收方应用就再不允许发送方应用介人该缓冲区,直到接收方应用重新声明该缓冲区可用后才可以供发送方应用继续使用。

3)SendwithSolICItedEvent(SendwithSE):该消息用来将发送方应用的数据直接发送到数据接收方应用的无标记队列式缓冲区中,具备Send所有的功能同时增加对消息的反馈。

4)SendwithSoliCITedEventandInvalidate(SendwithSEandInvalidate):该消息所对应的操作是将发送方应用的数据直接发送到数据接收方应用尚未明确声明的缓冲区中,具备SendwithSE所有的功能同时增加对消息的反馈。

5)RemoteDirectMemoryAccessW出e:对应于RDMA写操作,用来将发送方应用的数据传递到接收方应用已声明的缓冲区中.在这个操作中,接收方应用事先应该己经分配出带标记的应用接收缓冲区,并允许发送方应用直接进行缓冲区写操作.同时,发送方应用还在声明中得到了上述缓冲区的位置、大小和相应的Stag等信息.之后发送方应用开始发起RDMA写操作,该操作使用DDP的带标记的缓冲区数据传递模型,将发送方应用的消息直接传递到接收方应用所声明的带标记缓冲区中。

6)RemoteDirectMemoryAccessRead:对应于RDMA读操作,将对端(对应于数据源)带标记应用缓冲区的数据传递到本地(对应于数据接收方)的带标记应用缓冲区.数据源的上层应用首先需要事先分配出带标记的应用缓冲区,并允许对该缓冲区内容直接进行读操作.同时,数据源上层应用还要将待声明的数据源缓冲区的位置、大小和相应的Stag等信息传递到本地上层应用.数据接收方上层应用在得到上述声明后,分配相应的带标记应用缓冲区,开始从对端读取数据操作。

7)TERMinate:终止操作使用Terminate消息将本地发生的错误信息通知给对端应用,以终止当前数据直接缓存操作.终止操作使用DDP的元标记缓冲区模型将Terminate传递到对端的无标记缓冲区。

RDMA在数据传输中的应用

1.RDMA的应用

RDMA的优势在于可利用传统的网络硬件以TCP/IP及以太网络标准来建立因特网RDMA将被用来把小型服务器连接为一个群集可以处理现今一些十几颗处理器的高端服务器才能够处理的大型数据库如果把RDMA及TOE以及10GB以太网络放在一起这是个相当吸引人的技术RDMA正在迅速成为高速集群和服务器区域网的一种基本特性InfiniBand网络和实现虚拟接口架构的网络支持RDMA应用于带传输卸载引擎网卡的RDMAoverTCP/IP正在开发之中采用RDMA来获取高性能的协议包括SocketsDirectProtocolSCSIRDMAProtocolSRP和DirectAccessFileSystemDAFS采用RDMA的通信库包括DirectAccessProviderLibraryDAPLMessagEPAssingInterfaceMPI和VirtualInterfaceProviderLibraryVIPL运行分布式应用程序的集群是RDMA能够大显身手的领域之一通过DAPL或VIPL以及集群上运行的数据库软件来使用RDMA可在相同的节点数目下获得更高的性能和更好的延展性使用MPI的集群科技运算应用程序通过支持互连RDMA实现了低延迟时间低开销和高吞吐量这一结果也使它获得了巨大的性能提升其他初期的RDMA应用还有通过DAFS的远程文件服务器访问通过SRP的存储设备访问RDMA技术正在迅速成为高速集群系统和存储域网络的基本特征技术其中iWARP/RDMA是一类基本构造块此外还有iSER它是用于RDMA的iSCSI扩展充分利用了RDMA的功能RDMA的其他早期应用包括通过DAFS的远程文件服务器访问和通过SRP的刀片服务器存储访问RDMA正在迅速成为高速集群和服务器区域网的一种基本特性。

2.NAS和SAN中的应用

传统的直接连接存储DASDirectAccessStorage是以服务器为中心的存储结构这一存储体系结构存在容量限制连接距离有限不易于共享和管理等不可克服的缺点已经不能够满足网络时代的应用需求网络时代的到来使存储技术发生了巨大变化网络附加存储NASNetworKAttatchedStorage存储区域网络SAN(StorageAreaNetwork)既能为网络上的应用系统提供丰富快速简便的存储资源又能共享存储资源并对其实施集中管理成为当今理想的存储管理和应用模式NAS结构存在一些难以解决的问题如传输能力有限可扩展性有限数据备份能力有限并且不能对数据库服务提供有效的支持DAFS把RDMA的优点和NAS的存储能力集成在一起全部读写操作都直接通过RDMA驱动器执行从而降低了网络文件协议所带来的系统负载今后的NAS存储系统将采用DAFS技术提高系统性能并且在性能和价格上与SAN存储系统进行有力的竞争

3.Infiniband

Infiniband的四大优点基于标准的协议10GB/s性能RDMA和传输卸载优势在于RDMA传输卸载高速度InfiniBand网络和采用虚拟接口架构的网络支持RDMA使用具有传输卸载引擎的NIC的RDMAoverTCP/IP支持Infiniband的服务器使用主机通道适配器HCA把协议转换到服务器内部的PCI-X或者PCI-Xpress总线HCA具有RDMA功能有时也称之为内核旁路(KernelBypass)。

联系管理员
15775053793

作者头像
经济百科创始人

经济百科

上一篇:财务杠杆比率
下一篇:销售收入净额

发表评论