vSphere 6.5 以降では、PVRDMA(Paravirtualized RDMA:準仮想化 RDMA)ネットワーク アダプタを搭載した仮想マシン間で、リモート ダイレクト メモリ アクセス (RDMA) 通信がサポートされます 。
RDMA の概要
RDMA を使用すると、一方のコンピュータのメモリからもう一方のコンピュータのメモリに、オペレーティング システムや CPU を介さずに直接アクセスすることができます。メモリの転送は、RDMA 対応のホスト チャネル アダプタ (HCA) にオフロードされます。PVRDMA ネットワーク アダプタは、仮想環境におけるリモート ダイレクト メモリ アクセスを実現します。
vSphere における RDMA
vSphere では、仮想マシンが PVRDMA ネットワーク アダプタを使用して、PVRDMA デバイスを持つ他の仮想マシンと通信することができます。これらの仮想マシンは、同じ vSphere Distributed Switch に接続されている必要があります。
仮想マシン間の通信方法は、PVRDMA デバイスによって自動的に選択されます。物理 RDMA デバイスの有無にかかわらず、同じ ESXi ホスト上で稼働する仮想マシンでは、2 台の仮想マシン間の memcpy によってデータ転送が行われます。この場合、物理 RDMA ハードウェアは使用されません。
仮想マシンがそれぞれ異なる ESXi ホスト上に存在し、いずれも物理 RDMA 接続を備えている場合、物理 RDMA デバイスは、分散スイッチ上のアップリンクであることが必要です。この場合、PVRDMA を使った仮想マシン間の通信には、基盤となる物理 RDMA デバイスが使用されます。
2 台の仮想マシンがそれぞれ異なる ESXi ホスト上に存在し、物理 RDMA デバイスを持たない ホストが 1 つでも存在する場合は、通信が TCP ベースのチャネルにフォールバックされ、パフォーマンスが低下します。