APP下载

RDMA网络传输技术研究综述

2020-07-06金浩杨洪章

科技风 2020年18期

金浩 杨洪章

摘 要:面对高性能计算、分布式存储等应用的快速发展,现有的网络件架构无法满足业务发展的需求,新兴的RDMA技术解决了传统网络架构的性能瓶颈,本文对RDMA技术的基本原理深入研究,并为应用开发给出指导。

关键词:RDMA;RoCE;零拷贝

RDMA(Remote-Direct Memory Access)遠程内存直接访问,由Infiniband公司针对高性能技术领域推出的高速网络技术,与传统网络技术相比,RDMA能够提供更高带宽、更低时延、占用更少的系统资源。

1 RDMA关键技术

RDMA基本原理是本地应用通过网卡直接访问远端节点的内存数据,无需远端CPU和操作系统的參与,主要包含下面几种关键技术:第一,内核旁路技术,应用程序直接使用RDMA接口实现数据发送、接收,不需要使用系统调用,避免了在系统态、用户态之间切换的开销。第二,减少拷贝,RDMA网卡能够直接访问主机内存空间,将上层应用设计为访问固定物理内存空间,可以实现全流程零拷贝。第三,减少资源占用,RDMA网卡与主机内存之间采用DMA(Direct Memory Access)方式,占用系统总线,不占用CPU资源,因而报文收发流程CPU开销很小。

2 RDMA实现方式

RDMA规范的前身Infiniband简称IB,起初用于高性能计算领域,需要使用专用的交换机、路由器等网络设备,部署维护成本高。为了降低RDMA使用成本,推动RDMA技术普及,业界厂家将IB协议移植到以太网协议上,定义了RoCE(RDMA over Converged Ethernet)、iWarp(internet Wide Area RDMA protocol)两种协议。RoCE分为v1、v2两种,v1基于Ethernet协议实现IB协议,不支持跨网络传输;v2基于UDP协议实现IB协议,支持三层路由设备,适合大规模组网。iWarp则是在TCP协议之上实现iWarp协议,对网络设备要求低,但性能较差,目前只有intel生产支持iWarp协议的网卡。

3 RDMA通信原理

RDMA协议定义RC、UC、UD三种通信模式。RC(Reliable Connection)模式,保证报文正确的传输到目的端,支持报文ack确认、超时重传,某个报文超时没有确认,则重传该报文后的所有报文。UC(Unreliable Connection)模式,需要提前建链,报文不需要携带地址信息,不支持ack确认、重传,不保证对端能正确接收。UD(Unreliable Datagram)模式,不需要建链,每个报文都携带目标地址、目标队列信息,不支持ack确认、重传,每个报文不能大于网络MTU限制。三种模式稳定性依次下降,执行效率依次升高,RC、UC链路资源都需要占用网卡的cache资源,并发链路数量过多时,需要考虑UD模式。

协议定义了双边、单边2种通信原语。send、recv指令属于双边原语,接收端执行recv指令等待数据到达,发送端执行send指令发起数据传输,双边CPU都参与传输过程,适合小数据传输。read、write指令属于单边原语,得知远端内存地址后,本地网卡直接访问远端内存,远端CPU无感知。单边原语是RDMA规范中最具创新性的特性,通过RDMA协议把本地内存总线延伸到其他主机,传输效率高,适合较大数据的传输。不同模式下支持原语不同,RC模式支持全部原语,UC模式不支持read,UD模式仅支持send、recv单边操作。

4 部署及应用

常用的RDMA网卡硬件分为IB卡和RoCE卡两类。RoCE网卡兼容传统以太网卡操作,支持ip、ifconfig等系统命令管理网卡设备,上层应用可以同时访问以太网卡、RoCE网卡,通用socket接口访问以太网卡,专用RDMA接口访问RoCE网卡。IB网卡则需要安装专用的驱动软件,并与IB交换机连接,部署成本高。IB网络通过ID信息访问网卡,为了使IB网卡与传统网卡兼容,驱动软件提供了ipoib模块、opensm服务,前者支持tcp/ip与IB协议互转,实现通过IP地址访问本地IB网卡,后者周期扫描子网内所有IB网卡,并维护网络路由信息,实现通过IP地址与其他IB节点通信的能力。

网卡硬件对上层应用透明,应用程序通过专门的接口库实现RDMA通信,不需要区分不同硬件。socket应用也可以通过ipoib模块直接运行到RDMA网络上,该方式使用内核协议栈,无法发挥RDMA性能,从测试结果看,ipoib方式的传输带宽下降37%,时延增加376%,CPU资源开销则增加86~490%。

5 性能测试

为验证RDMA传输性能,本文采用Mellanox ConnectX-3 Pro网卡对RDMA、TCP的传输性能做对比测试。网卡配置为RoCE模式,qperf测试TCP性能,ib_send_bw、ib_send_lat测试RoCE性能,分别测试64B、256B、1KB、4KB、16KB、64KB几种大小数据包。测试结果显示,64字节小包时,RDMA带宽达超过TCP的10倍,平均时延不足TCP的4%;64K字节大包时,RDMA带宽超过TCP带宽73%,平均时延只有TCP的7%;RDMA传输的CPU开销远小于TCP。本性能测试充分证明,同等硬件的RDMA性能远远优于传统TCP链路。

6 总结

与传统网络相比,RDMA在带宽、时延、资源占用方面优势显著,目前RDMA在很多顶级产品都已商用,如阿里的PolarFS、华为的FusionStore、亚马逊服务集群。可以预见,不久的将来,将会看到更多的厂家推广应用RDMA技术。

参考文献:

[1]吴昊,陈康.基于RDMA和NVM的大数据系统一致性协议研究[J].大数据,2019.04:89-99.

[2]陈游旻,陆游游.基于RDMA的分布式存储系统研究综述[J].计算机发展与应用,2019.02:227-239.

基金课题:国家重点研发计划项目(2018YFB1003302);江苏省工业和信息产业转型升级专项资金项目;南京市工业和信息化发展专项资金项目

作者简介:金浩,男,高级工程师,主要研究方向为高速存储及网络协议栈。