イーサネットネットワークの効率パフォーマンスを高めるRDMAおよびRoCE





リモートダイレクトメモリアクセス(RDMA)

リモートダイレクトメモリアクセス(RDMA)は、あるホスト(ストレージまたはコンピュータ)のメモリから別のホストのメモリに、リモートオペレーティングシステムやCPUを使用せずに直接のメモリアクセスを提供し、遅延およびCPUの負荷を抑えてネットワークやホストのパフォーマンスを高め、帯域幅を拡大します。これとは対照的に、TCP/IPを利用した通信は一般的にコピー操作が必要なため、遅延が増してCPUおよびメモリのリソースを大量に消費します。
RDMAは、リモートでオペレーションシステムやCPUを使用することなくひとつのホストのメモリーから他のホストへのダイレクトメモリーアクセスを提供します。

RDMAオーバーコンバージドイーサネット(RoCE)

RDMAオーバーコンバージドイーサネット(RoCE)は、イーサネットネットワーク経由でRDMAの効率的なデータ転送を可能にする標準のプロトコルで、ハードウェアのRDMAエンジンを導入することで転送のオフロードを可能にし、パフォーマンスを高めます。RoCEは、InfiniBand Trade Association(IBTA)の規格で定められた標準のプロトコルです。RoCEはUDPのカプセル化を利用し、レイヤー3ネットワークをさらに向上させることができます。RDMAは、 InfiniBandインターコネクト技術で使用されるネイティブの主要な機能です。InfiniBandとイーサネットRoCEはいずれも共通のユーザーAPIを使用しますが、物理レイヤーおよびリンクレイヤーは異なります。

RoCEファブリックの考慮事項

メラノックスのConnectX-4およびより新しい世代の製品は、レジリエントRoCEを搭載し、ネットワークスイッチ上の明示的輻輳通知(ECN)を有効にするだけで最高レベルのパフォーマンスを達成できます。通常PFCを有効にすることで得られるロスのないファブリックが不要になります。ConnectX NICハードウェアに組み込まれたレジリエントRoCE輻輳管理が、UDPがロスの多いネットワーク上にある場合でも高い信頼性を実現します。

メラノックスSpectrumイーサネットスイッチは、100GbE回線の速度パフォーマンスを提供し、パケットロスはゼロで常に低い遅延を維持します。高パフォーマンスと低遅延、インテリジェントなエンドツーエンドの輻輳管理、さらにQoSオプションで、メラノックスのSpectrumイーサネットスイッチは、RoCEファブリックを大きな規模で展開する場合に最適です。また、SpectrumによってRoCEの構成が簡単になり、エンドツーエンドでフローレベルを把握できるようになります。

RDMA/RoCEを介したアプリケーションの導入

アプリケーション開発者には、RDMAインフラverbs/ライブラリまたはミドルウェアライブラリを利用したRDMA/RoCEによる高速化の導入にあたって、いくつかの選択肢があります。

インフラ

  • RDMA Verbs - libibverbsライブラリ(大手のディストリビューションで使用可能なインボックス)はデータの送受信に必要なAPIインターフェイスを提供します
  • RDMAコミュニケーションマネージャー(RDMA-CM) - RDMA CMライブラリは、信頼性が高いデータ転送、接続された状態でのデータ転送、信頼性の低いデータグラムでのデータ転送のセットアップに使用される通信用マネージャー(CM)です。libibverbsライブラリで定義されるRDMA verbs APIと連携して機能します。

ミドルウェア

  • ユニファイドコミュニケーションX (UCX) - オープンソースの本稼働対応の通信フレームワークで、工業やラボ、研究で使用されるデータ重視の高パフォーマンスアプリケーションに適しています(http://www.openucx.org)。
  • Accelio - 高パフォーマンスの非同期型、信頼性の高いメッセージングおよびRPCオープンソースコミュニティ主導のライブラリ
    注: Accelioは現在、新規のプロジェクトでは推奨されません。新しいプロジェクトについては、UCXを参照してください。

ソフトRoCE

ソフトRoCEはRoCEのソフトウェア実装です。RoCEがあらゆるイーサネットネットワークアダプタ上で実行できるようにし、ハードウェア加速化を提供するかどうかを問いません。ソフトRoCEは、アップストリームカーネル4.8ならびにメラノックスOFED 4.0以降の一部としてリリースされます。

ソフトRoCEディストリビューションは以下から利用できます:



RDMAの利点

  • コピーなし:データの送受信はリモートバッファから行います
  • カーネルをバイパス:遅延とスループットを向上
  • CPUの関与が少な目:リモートサーバー上のCPUサイクルを消費せずにリモートサーバーのメモリにアクセス
  • 集約型:ストレージとコンピューティングをひとつのファブリックでサポート
  • ロスの多いファブリックで有線に近い速度のパフォーマンスを発揮
  • InfiniBandとイーサネット(L2およびL3)で利用可能

RDMAの使用例

  • ハイパフォーマンスコンピューティング(HPC):MPIおよびSHMEM
  • 機械学習:TensorFlow™、Caffe、Microsoft Cognitive Toolkit (CNTK)、PaddlePaddleなど
  • ビッグデータ:Spark、Hadoop
  • データベース:Oracle、SAP (HANA)
  • ストレージ:NVMe-oF (NVMe SSDへのリモートブロックアクセス)、iSER (RDMA用のiSCSI拡張)、Lustre、GPFS、HDFS、Ceph、EMC ScaleIO、VMware Virtual SAN、Dell Fluid Cache、Windows SMB Direct

RDMAおよびRoCEのハードウェアサポート

NIC/HCA ConnectX-3 Pro ConnectX-4以降
RDMAハードウェア高速化
RoCEサポート / ハードウェア高速化 ✔ + 「レジリエントRoCE」によりロスの多いファブリック上でRoCEが実行可能に

RDMAとRoCEのソフトウェアドライバサポート

RDMAとRoCEは、主要なオペレーティングシステムの以下のバージョン以降でサポートされています:

オペレーティングシステム Inboxバージョン Asyncバージョン
Linux RedHat 7.3
SLES 12 SP2
Kernel 4.4
MLNX_OFED 3.0
Windows Server Windows Server 2016 WinOF-2 1.20
WinOF 4.70
VMware ESXi 6.5 MLNX-NATIVE-ESX 4.16.8.8
FreeBSD 2017 H2で予定あり

NVIDIAメラノックスのクッキーに関する方針

本ウェブサイトは、お客様の好みの傾向や関心に合ったコンテンツを表示し、閲覧をより快適にするため、ならびにトラフィックの分析のためにクッキーを使用しています。本サイトのクッキーを削除またはブロックすることもできますが、それによりサイトの機能が妨げられる可能性があります。詳しくは、当社のプライバシーに関する方針をご覧ください。