第3章 IPoIB の設定
デフォルトでは、InfiniBand は通信にインターネットプロトコル (IP) を使用しません。ただし、IPoIB (IP over InfiniBand) は、InfiniBand Remote Direct Memory Access (RDMA) ネットワーク上に IP ネットワークエミュレーション層を提供します。これにより、変更を加えていない既存のアプリケーションが InfiniBand ネットワーク経由でデータを送信できるようになりますが、アプリケーションが RDMA をネイティブに使用する場合よりもパフォーマンスが低下します。
RHEL 8 以降の Mellanox デバイス (ConnectX-4 以降) は、デフォルトで Enhanced IPoIB モードを使用します (データグラムのみ)。これらのデバイスでは、Connected モードはサポートされていません。
3.1. IPoIB の通信モード リンクのコピーリンクがクリップボードにコピーされました!
IPoIB デバイスは、Datagram モードまたは Connected モードのいずれかで設定可能です。違いは、通信の反対側で IPoIB 層がマシンで開こうとするキューペアのタイプです。
Datagramモードでは、システムは信頼できない非接続のキューペアを開きます。このモードは、InfiniBand リンク層の Maximum Transmission Unit (MTU) を超えるパッケージには対応していません。IPoIB 層は、データ転送時に IP パケットに 4 バイトの IPoIB ヘッダーを追加します。その結果、IPoIB MTU は InfiniBand リンク層 MTU より 4 バイト少なくなります。一般的な InfiniBand リンク層 MTU は
2048であるため、Datagramモードの一般的な IPoIB デバイス MTU は2044になります。Connectedモードでは、システムは信頼できる接続されたキューペアを開きます。このモードでは、InfiniBand のリンク層の MTU より大きなメッセージを許可します。ホストアダプターがパケットのセグメンテーションと再構築を処理します。その結果、
Connectedモードでは、Infiniband アダプターから送信されるメッセージのサイズに制限がありません。しかし、dataフィールドと TCP/IPheaderフィールドにより、IP パケットには制限があります。このため、Connectedモードの IPoIB MTU は65520バイトです。Connectedモードではパフォーマンスが向上しますが、より多くのカーネルメモリーを消費します。
システムが Connected モードを使用するように設定されていても、InfiniBand スイッチとファブリックは Connected モードでマルチキャストトラフィックを渡すことができないため、システムは引き続き Datagram モードを使用してマルチキャストトラフィックを送信します。また、ホストが Connected モードを使用するように設定されていない場合、システムは Datagram モードにフォールバックします。
インターフェイス上で MTU までのマルチキャストデータを送信するアプリケーションを実行しながら、インターフェイスを Datagram モードに設定するか、データグラムサイズのパケットに収まるように、パケットの送信サイズに上限を設けるようにアプリケーションを設定します。