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