vSphere 6.5 及更高版本支持在具有准虚拟化 RDMA (PVRDMA) 网络适配器的虚拟机之间进行远程直接内存访问 (RDMA) 通信 。
RDMA 概览
RDMA 允许从一台计算机内存到另一台计算机内存的直接内存访问,不会涉及操作系统或 CPU。内存的传输卸载至支持 RDMA 的主机通道适配器 (Host Channel Adapter, HCA)。PVRDMA 网络适配器在虚拟环境中提供远程直接内存访问。
在 vSphere 中使用 RDMA
在 vSphere 中,虚拟机可以使用 PVRDMA 网络适配器与其他拥有 PVRDMA 设备的虚拟机进行通信。虚拟机必须连接到同一 vSphere Distributed Switch。
PVRDMA 设备自动选择两个虚拟机之间的通信方法。对于相同 ESXi 主机上运行的虚拟机(无论是否具有物理 RDMA 设备),两个虚拟机之间的数据传输是一种内存复制。这种情况下不使用物理 RDMA 硬件。
对于不同 ESXi 主机上运行的虚拟机(具有物理 RDMA 连接),物理 RDMA 设备必须是 Distributed Switch 上的上行链路。在这种情况下,两个虚拟机之间的 PVRDMA 通信使用底层物理 RDMA 设备。
对于不同 ESXi 主机上运行的两个虚拟机(至少一个虚拟机没有物理 RDMA 设备),通信回退到基于 TCP 的通道,且性能减弱。