DPDKとRDMA ~高速化技術とクラウド 第8回~
ネットワーク処理高速化技術の一つであるRDMA(Remote Direct Memory Access)について解説します。
テクノロジーコラム
- 2024年08月06日公開
NTTテクノクロスの山下です。ネットワーク技術の進化は、データセンターやクラウド環境における通信速度の向上をもたらしています。特に、DPDK(Data Plane Development Kit)とRDMA(Remote Direct Memory Access)は、高速なデータ転送を実現するための重要な技術ですが、それぞれに異なるアプローチを取っています。今回はDPDKとRDMAの比較とRDMA実現に必要なロスレスネットワークについて紹介したいと思います。
DPDKとRDMAの基本的な違い
高速化技術とクラウド 第7回でRDMAについて解説しましたが、あらためてDPDKとRDMAそれぞれの技術について、おさらいした後に違いについて考えてみます。
DPDKとは
RDMAとは
DPDKとRDMAの比較
上記のように、DPDKとRDMAはネットワーク処理を高速化させる技術ですが共通点と相違点があります。
以下に4つの観点で比較してみました。
表1.DPDKとRDMAの比較
DPDK | RDMA(RoCEv2の場合) | |
高速化の対象範囲 | 単一ノード内 | ネットワークを含む複数ノード |
高速化手法 | カーネルバイパス |
・カーネルバイパス ・ネットワーク上での再送処理の回避(後述するロスレスネットワーク) |
カーネル相当のプロトコル処理の実行箇所 |
ユーザー空間のプロトコルスタック |
ハードウェア(RDMA対応NICなどへのオフロード) |
専用ネットワーク機器の必要性 | DPDK対応NIC | RDMA対応NIC, RDMA対応スイッチ,RDMA対応ルーター |
RoCEをロスレスネットワークにするためのプロトコル
RoCEは、EthernetやUDP/IPをベースにしていますが、TCPをデータ転送には使用しません。これにより、パケットロスや輻輳に弱いという課題があります。Ethernetは本来、パケットロスが発生する可能性があり、これがTCPの再送処理の根底にある理由です。輻輳が発生すると、受信側でのパケットドロップが生じるため、輻輳を予防することがパケットロスを減らす鍵となります。
パケット再送はコストが高く、再送により非効率が生じます。また、再送開始までの遅延は、通信の高遅延につながります。
RoCEのロスレス性を実現するためには、以下のプロトコルが重要です。
-
ECN(Explicit Congestion Notification): IPレベルで輻輳を検出し、送信側が輻輳発生前に送信流量を減らすことで、輻輳を予防します(図3)。
-
PFC(Priority Flow Control): L2レベルでの輻輳制御を行い、8つのトラフィッククラスに応じてPAUSE処理を実施します。これにより、特定のプロトコルが輻輳を起こしても、他のクラスは影響を受けません(図4)。
これらのプロトコルは、輻輳後に反応的に動作するのではなく、輻輳発生前に予防的に動作し、流量を意識して制御します。
図3.ECN概要
図4. PFC概要
InfiniBandではなくRoCEを利用する利点
RoCEは、既存のRDMAを利用しないEthernet上のアプリケーションと共存が可能です。例えば、RDMAを利用してないFTPやHTTPなどのアプリケーションと同一のNW内で共存可能です。
RoCEは、InfiniBandのような専用のネットワークを必要とせず、既存のEthernetネットワーク上で高速なデータ転送を実現するため、データセンターのアップグレードコストを抑えつつ、性能向上を図ることができます。
まとめ
DPDKとRDMAは、ネットワークの高速化を目指す技術ですが、そのアプローチには大きな違いがあります。DPDKは単一ノード内の高速化に特化しているのに対し、RDMAはネットワークプロトコルレベルも含めた高速化を実現します。また、RoCEv2をロスレスネットワークにするためには、ECNやPFCなどの輻輳制御プロトコルが重要です。そして、RoCEv2はInfiniBandと比較して、既存のEthernetネットワークとの互換性と統合の容易さが利点となります。
[著者プロフィール]
フューチャーネットワーク事業部 第二ビジネスユニット
山下 英之(YAMASHITA HIDEYUKI)