
第 12 期
刘志锋,叶志伟,蔡敦波,等:RDMA 技术研究综述
外部内存复制和上下文切换的开销,从而释放了内存带
宽,并缩短了 CPU周期,以提高应用程序系统性能。
RDMA 技术的发展大大降低了机器之间数据传输的
代价。近年来,RDMA 技术得到了广泛研究与应用,基于
RDMA 的分布式存储技术为满足分布式键值存储,已广泛
用于可扩展的行业数据管理解决方案设计中。RDMA 通
过与分布式存储相结合,一方面在硬件方面加强资源的高
效管理,另一方面在软件层面加强软硬件的耦合设计,大
大提升了分布式存储性能
[3]
。在键值存储方向,FaRM 基
于 RDMA 构建分布式共享内存,使用 RDMA 直接访问共享
地址空间中的数据,从而实现消息的快速传递,最后通过
构 建 RDMA 感 知 键 值和 图 形存 储 以获 得 最 佳 RDMA 性
能
[4]
;Pilaf 基于 RDMA 提供 了一种旨 在实现高性 能和低
CPU 使用的键值分布式内存键值存储方式
[5]
;HERD 同样
提供了一个旨在充分利用 RDMA 网络的键值系统,区别于
FaRM 和 Pliaf 设计的键值系统,HERD 的设计重点在于减
少网络往返次数,同时使用高效的 RDMA 原语,从而显著
降低延迟和吞吐量
[6]
。DrTM 设计了一种内存事务处理系
统,其利用 HTM 的强原子性和 RDMA 的强一致性,提供更
高数 量 级 的内存事 务 处 理吞吐 量 和 更 低的延 迟
[7]
。在
DrTM 的基础上,DrTM+R 提供了一个快速通用的分布式事
务处理系统
[8]
。DrTM+R 通过利用电池后备内存作为数据
库记录的主要存储,并结合 HTM 和 RDMA 实现快速分布
式处理,从而支持内存中的事务交易。与 DrTM 不同的是,
DrTM+R 对事务性工作负载没有限制,为高可用性提供了
完整的复制支持。FaSST 是基于 FaRM 的分布式事务协议
模型,其可提供具有可序列化和持久性的分布式内存事
务,性能远优于 FaRM 和 DrTM
[9]
。
当前,RDMA 技术同样被引入到数据库设计中,利用
高速网络和 RDMA 进行数据传输,让 I/O 性能不再成为瓶
颈,从而大大提升了数据库性能
[10]
。Lu 等
[11]
提出一种支
持 RMDA 的 MongoDB 设计方案,考虑到通信部分占整体延
迟的比例很高,基于 RDMA 的设计方案提供了更低的延迟
和 更 高的 吞 吐量 ,利 用 InfiniBand 等 高性 能 网络 来 提 高
MongoDB 的性能。在 POLARDB 中,计算节点与存储节点
的通信设计机制引入高速 RDMA 网络实现计算节点与存
储节点的高速通信
[12]
。Fent 等
[13]
提出一种低等级、低延
迟的消息库(L5),其是一种用于数据库系统的高性能通信
层,通过使用 RDMA(InfiniBand)、RoCE(以太网)和共享内
存(IPC)等进行互连,L5 可在很大程度上消除数据库系统
的网络瓶颈。
此外,随着新型存储设备的逐渐普及并逐步替代传统
磁盘,为充分发挥 PM(Persistent Memory)、NVMe SSD 等新
型存储设备的新特性,将新型存储技术与 RDMA 相结合构
建更高速的存储系统是当前新的研究方向
[14]
。FlatStore
中设计了基于 PM 的 KV 存储引擎,设计的关键思想是将
KV 存储解耦为快速索引的易失性索引和高效存储的持久
日志结构
[15]
。Octopus 是一个支持 RDMA 的分布式持久内
存文件系统,通过抽象共享持久内存池来减少数据传输中
的冗余内存副本
[16]
。Hotpot 提供了一种可将来自不同节
点的 PM 在全局地址空间中进行管理的技术,并结合数据
复制来支持容错
[17]
。AsymNVM 是非对称分解非易失性存
储器的通用框架,其实现了构建远程数据结构的基本原
语,包括空间管理、并发控制、崩溃一致性和复制
[18]
。Liu
等
[19]
提出的连续性哈希是一种基于 RDMA 与 PM 的合并
哈希解决方案,连续性哈希支持通过单个单边 RDMA 操作
进行高效远程读取,并为 PM 上的所有写操作提供无日志
一致性保证。Erda 是一种零拷贝日志结构内存设计方法,
其具备数据远程高效传输的原子性,可用于解决在远程数
据传输中需要消耗额外的网络往返、远程 CPU 参与和双
NVM写入等问题
[20]
。
本文首先对 RDMA 技术的实现形式及通信原理作简
要叙述,然后介绍最新的 RDMA 行业研究进展,针对几种
应用场景,分别对几个典型的适配和优化技术进行具体分
析,最后给出技术总结,并指出今后可继续开展的研究方
向 ,旨 在 为 设 计 者 和 开 发 者 进 行 RDMA 技 术 拓 展 提 供
参考。
1 RDMA 技术原理
1.1 RDMA 实现方式
RDMA 支持 3 种网络协议:InfiniBand(IB)
[21]
、RoCE
[22]
和 iWARP
[23-24]
。基于 IB 架构的 RDMA 是一种较早提出的
原生支持 RDMA 的新一代网络协议,其搭载在专用的 IB网
卡 IB 交换机上,提供了基于通道的点对点消息队列转发模
型,每个应用都可通过创建的虚拟通道直接获取本应用的
数据消息,而无需协议栈及操作系统的介入。RoCE 是基
于以太网的 RDMA 技术,即 RDMA over Ethernet,支持在以
太网上承载 IB 协议。RoCE 与 IB 具有相同的传输控制层
和软件应用层,两者的区别在于网络链路层和以太网链路
层。RoCE 协议分为 v1 和 v2 两个版本,v1 基于以太网承载
RDMA,不支持跨网络传输,v2 由以太网 TCP/IP 协议中的
应用 数据
应用 数据
操作
系统
数据
TCP/IP
应用 数据
应用 数据
操作
系统
TCP/IP
传统模式 RDMA模式
Fig. 1 Comparison of RDMA and traditional TCP/IP
图 1 RDMA 与传统 TCP/IP 比较
·· 267
评论