情報畑でつかまえてロゴ
本サイトは NTTテクノクロスが旬の IT をキーワードに
IT 部門が今知っておきたい最新テクノロジーに関する情報をお届けするサイトです

DPDKとRDMA ~高速化技術とクラウド 第8回~

ネットワーク処理高速化技術の一つであるRDMA(Remote Direct Memory Access)について解説します。

NTTテクノクロスの山下です。ネットワーク技術の進化は、データセンターやクラウド環境における通信速度の向上をもたらしています。特に、DPDK(Data Plane Development Kit)とRDMA(Remote Direct Memory Access)は、高速なデータ転送を実現するための重要な技術ですが、それぞれに異なるアプローチを取っています。今回はDPDKとRDMAの比較とRDMA実現に必要なロスレスネットワークについて紹介したいと思います。

DPDKとRDMAの基本的な違い

高速化技術とクラウド 第7回でRDMAについて解説しましたが、あらためてDPDKとRDMAそれぞれの技術について、おさらいした後に違いについて考えてみます。

DPDKとは

DPDKは、ユーザー空間での高速パケット処理を実現するためのライブラリとドライバのセットです。基本的な高速化の原理は、パケット処理を時間がかかるカーネルでは行わずにユーザープレーンで直接実施すること(カーネルバイパス)です。カーネルではTCP/IPプロトコル処理を担当していますが、DPDKでは、これをバイパスするためユーザー空間でかわりにTCP/IPプロトコル処理を実施する必要があります。DPDKの利用は、イーサネット上では外部からは認識されず、既存のEthernetとの互換性を保ちつつ、単一ノード内での高速化を図ります。

図1.DPDK動作概要

RDMAとは

RDMAは、ネットワークカードが直接メモリ間のデータ転送を行う技術です。プロトコル処理のカーネルバイパスを行うことによりノード内の処理を高速化します。RoCE(RDMA over Converged Ethernet)の場合、UDP/IPなどのプロトコル処理がハードウェアオフロードされます。これらと合わせて、後述するロスレスネットワークを実現する技術を備えているため、ネットワークプロトコルレベルでの高速化も可能となり、トータルのスループットはDPDKに比べて、RDMAの方が高いと考えられます。

図2.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)