远程直接内存访问 (RDMA)
什么是RDMA?
在不涉及任何计算机的操作系统、处理器或缓存的情况下,网络中的另一台计算机访问一台计算机的内存称为RDMA。由于释放了许多资源,因此有助于提高系统吞吐量和性能。
在远程机器上,可以在不被该机器的CPU中断的情况下执行读写操作。得益于这项技术,数据传输率提高,网络延迟减少。它使用零拷贝网络通过启用网络适配器将数据直接传输到系统缓冲区。
RDMA早期仅用于高性能计算(HPC)环境。由于性能比成本更重要,因此维护InfiniBand等支持RDMA的网络结构的成本是合理的。
由于RDMA现在可以在用于IP网络通信的现有以太网结构上启用,这要归功于融合以太网(RoCE)上的RDMA等标准,因此降低了采用RDMA的成本。RNIC适配器使用标准以太网管理程序进行配置。
RDMA的特点
内核旁路-由于操作系统不参与数据传输,应用程序可以直接从用户空间发送数据,消除上下文切换和延迟。
零复制-无需在网络层之间复制数据,应用程序可以将数据直接放置在目标应用程序的内存缓冲区中,并将数据直接接收到缓冲区中。这将减少不必要的缓冲区传输。
CPU参与减少-应用程序可以从遥远的服务器检索数据,而无需在这些服务器上使用CPU时间。访问的内容不会填满远程服务器CPU的缓存。
有效交易-可以发送和接收离散消息,而不是在流中发送和接收数据,从而消除了分离消息的要求。
兼容RDMA的网络协议
IWARP
它是称为iWARP的Internet工程任务组(IETF)标准。iWARP是一种以TCP/IP为基础的网络协议。可以路由iWARP数据包。
无限带宽
它是一种兼容RDMA的网络协议。但是,它需要硬件支持,例如支持此技术的交换机和网络接口卡(NIC)。
行动管制令
它是一种通过以太网启用RDMA的网络协议。因此,RoCE不需要将基于以太网的数据中心转换为Infiniband。一般来说,RoCE分为两个版本:RoCEv1和RoCEv2。
可以路由RoCEv1数据包。但是,RoCEv2数据包可以在同一以太网广播中的两个主机之间进行通信。因此,RoCEv1指的是以太网层协议,而RoCEv2指的是互联网协议。
RDMA的优势
与iSCSI(通过TCP的SCSI协议)、光纤通道(FC)或以太网光纤通道(FCoE)等其他数据传输技术和协议相比,RDMA的一个关键优势是其惊人的速度。
RDMA变化对最终数据传输速度有影响。以太网和InfiniBand尤其受欢迎,因为它们可以传输高达每秒100吉比特的数据速度。
这对于需要计算能力的应用程序尤其有用,例如分布式数据库、大数据分析和数据中心应用程序。
RDMA的缺点
RDMA也有一些缺点,当我们将其与许多企业仍在使用的光纤线路进行比较时。
公司必须计划大量投资以使用RDMA,因为该技术需要购买新的硬件和协议组件。因此,远程直接内存访问成本远高于FC或FCoE。
只有当所有系统都与该技术兼容时,才能进行基于RDMA的数据传输。