RDMA分布式存储系统

文献:基于RDMA的分布式存储系统研究综述

作者:陈游旻

RDMA是远程直接内存访问,是为了解决网络传输中服务器端数据处理的延迟而产生的。在对方主机cpu不参与的情况下远程读写异地内存,无内核干预和内存拷贝发生。起初,只应用在高性能计算领域,最近,由于在大规模分布式系统和数据中心中网络瓶颈越来越突出,逐渐走进越来越多人的视野。

硬件要求:

1. cpu和网卡都需要有独立的缓存系统

2. 网卡要有良好的并行性,需要多核处理器

RDMA过程:(以远程写操作为例)

1. 本地cpu向网卡发出远程写命令,传递相关参数(待写入数据块基地址、远端内存地址、数据块大小、远端注册内存秘钥等)

2. 网卡根据基地址将数据块读到网卡缓存,发送到远端NIC(网卡)

3. 远端网卡接收到数据块后,确认秘钥,直接将数据块写入到内存相应地址

RDMA绕过cpu,减少了cpu开销,无需穿越多层网络协议栈,实现了跨节点数据传输的数据零拷贝。

三类RDMA网络:分别是InfinibandRoCEiWARP

Infiniband,支持RDMA的新一代网络协议。 由于这是一种新的网络技术,因此需要支持该技术的NIC和交换机。
RoCE,一个允许在以太网上执行RDMA的网络协议。 其较低的网络标头是以太网标头,其较高的网络标头(包括数据)是InfiniBand标头。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,支持RoCE。
iWARP,一个允许在TCP上执行RDMA的网络协议。 IB和RoCE中存在的功能在iWARP中不受支持。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,并且支持iWARP(如果使用CPU卸载),否则所有iWARP堆栈都可以在SW中实现,并且丧失了大部分RDMA性能优势。
三种RDMA的网络协议都可以使用相同的API(verbs),使用标准库libverbs

应用:

清华大学分布式持久性内存文件系统Octopus

俄亥俄州NVFS系统

上海交通大学分布式事务系统Drtm

Microsoft  FaRM系统等

优化

猜你喜欢

转载自blog.csdn.net/weixin_42490528/article/details/88532563