RoCE与RDMA技术

来源:互联网 发布:嵌入式软件开发招聘 编辑:程序博客网 时间:2024/06/05 09:36
1、RoCE


RoCE(RDMA over Converged Ethernet)是一种允许通过以太网使用远程直接内存访问(RDMA)的网络协议。华为 CE8860 交换机插入 CX4归一化网卡(10GE/25GE) 后,立即支持RoCE 10GE/25GE通信。


由于具备明显性能和成本优势,在NAS存储集群中采用RoCE协议,将逐渐成为市场主流。

DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行。DMA工作时,由DMA控制器向内存发出地址和控制信号,完成地址修改,对传送字的个数计数,并且以中断方式向CPU报告传送操作的结束。DMA方式一般用于高速传送成组的数据。
使用DMA方式目的: 减少大批量数据传输时CPU的开销;
方法:采用专用DMA控制器(DMAC)生成访存地址并控制访存过程;
优点:操作均由硬件电路实现,传输速度快;CPU基本不干预,仅在初始化和结束时参与,CPU与外设并行工作,效率高。
DMA控制流程:
1. 预处理:由CPU执行I/O指令对DMAC进行初始化与启动。
2. 数据传送:由DMAC控制总线进行数传。
3. 后处理:传送结束,DMAC向CPU发中断请求,报告DMA操作的结束。CPU响应,转入中断服务程序,完成DMA结束处理工作。

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

当一个应用执行RDMA读或写请求时,不执行任何数据复制。在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地NIC(网卡),然后经过网络传送到远程NIC。请求完成既可以完全在用户空间中处理(通过轮询用户级完成排列),或者在应用一直睡眠到请求完成时的情况下通过内核内存处理。

RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。用于操作的远程虚拟内存地址包含在RDMA信息中。远程应用除了为其本地NIC注册相关内存缓冲区外,不需要做其他任何事情。远程节点中的CPU完全不参与输入的RDMA操作,这些对CPU没有任何负担。


原创粉丝点击