KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

インフィニバンドについて

登録日 :2024/12/15 06:19
カテゴリ :Linux

インフィニバンドについて教えてください。

インフィニバンド(InfiniBand)は、高速で信頼性の高いデータ転送技術です。以下がその主な特徴です:

高速性:
広帯域幅を提供し、40Gb/s、56Gb/s、100Gb/sなどの高速なデータ転送が可能です5。
1マイクロ秒以下の超低遅延(低レイテンシ)を実現します15。

アーキテクチャ:
シリアル伝送方式を採用し、ポイントツーポイント型の接続を提供します1。
スイッチドファブリック方式で複数の機器を接続し、ネットワークを構成できます1。

用途:
大規模システムにおけるコンピュータとストレージの接続に使用されます1。
スーパーコンピュータ(HPCクラスタ)内部の計算ノード間の接続に適しています1。
主にHPC、エンタープライズデータセンター、高性能な医療機器や検査装置などで利用されています5。

特徴:
RDMAを使用したCPU負荷の少ないデータ転送が可能です35。
パケットロスのないネットワークと柔軟なQoS(Quality of Service)を提供します5。

標準化:
IBTA(InfiniBand Trade Association)で定義されているオープンスタンダードなプロトコルです5。
インフィニバンドは、その高速性と低遅延性により、大量のデータを高速に処理する必要がある環境で重要な役割を果たしています3。


インフィニバンドの通信方式について

インフィニバンドは、基本的にTCP/IPを使用しません。しかし、TCP/IPをインフィニバンド上で動作させることは可能です。
インフィニバンドは独自のプロトコルスタックを持っており、TCP/IPとは異なるアーキテクチャを採用しています5。これにより、低遅延と高帯域幅を実現しています。

ただし、TCP/IP通信をインフィニバンド上で行うためのプロトコルが存在します:
IPoIB (IP over InfiniBand): このプロトコルを使用することで、インフィニバンドネットワーク上でIPデータ転送が可能になります5。
IPoIBを使用すると、TCP/IPアプリケーションをインフィニバンド上で動作させることができますが、オーバーヘッドが発生します3。
IPoIBを使用することで、ユーザーはTCP/IPとインフィニバンドの違いを意識せずにアプリケーションを利用できます3。

したがって、インフィニバンドは本来TCP/IPを使用しませんが、必要に応じてTCP/IP通信をサポートすることができます。ただし、インフィニバンドの性能を最大限に活用するには、RDMAなどのネイティブなインフィニバンド機能を使用することが推奨されます5。


インフィニバンドはTCP/IPと比べてどのように低遅延を実現しているのか

インフィニバンドは、TCP/IPと比較して以下の方法で低遅延を実現しています:
カーネルバイパス: インフィニバンドはカーネルプロトコルスタックをバイパスします。これにより、レイテンシーのパフォーマンスを数桁改善できます2。

シンプルな処理: インフィニバンドスイッチは非常にシンプルなレイヤ2処理を実現しており、転送遅延を100ns以下にまで大幅に短縮できます3。
Cut-Through技術: この技術を活用することで、Ethernetスイッチに比べ大幅な高速化が実現します3。

RDMA (Remote Direct Memory Access): インフィニバンドはRDMAをサポートしており、CPUを介さずにサーバーのメモリ間でデータを直接転送できます。これにより、ネットワークプロトコル処理の必要性がなくなり、パフォーマンスが向上します1。

効率的なフロー制御: インフィニバンドのフロー制御メカニズムは、データ伝送速度を管理し、ネットワークの輻輳を防止することにより、高いネットワークパフォーマンスと信頼性を維持します4。
これらの技術により、インフィニバンドは従来のTCP/IPネットワークと比較して、エンドツーエンドの遅延を大幅に削減し、高速で低遅延のデータ転送を実現しています。


インフィニバンドのRDMA機能はどのようにしてデータを転送するのか

インフィニバンドのRDMA (Remote Direct Memory Access) 機能は、以下の方法でデータを転送します:

カーネルバイパス: RDMAはオペレーティングシステムのカーネルをバイパスし、CPUを介さずにデータを直接転送します13。

ゼロコピー転送: データはメモリ間で直接コピーされ、中間バッファやキャッシュを介しません24。

ハードウェアオフロード: データ転送タスクはネットワークインターフェースカード(NIC)にオフロードされ、CPUリソースを解放します24。

直接メモリアクセス: 送信デバイスは受信デバイスのメモリに直接アクセスし、データの読み書きを行います1。

2段階プロセス:
送信デバイスが受信デバイスにメモリアクセスを要求
受信デバイスがアクセスを許可し、送信デバイスが直接メモリ操作を実行1

この方式により、RDMAは低遅延、高スループット、低CPU使用率でのデータ転送を実現し、特に高性能コンピューティング(HPC)環境で効果を発揮します


インフィニバンドがRDMAを使わないことがあるのか

インフィニバンドでRDMAを使用しないことは可能ですが、通常はRDMAの利点を活かすために使用されます。以下に、RDMAを使わない場合の状況や理由について説明します。

TCP/IP通信:
インフィニバンドは、IPoIB(IP over InfiniBand)を使用してTCP/IP通信を行うことができます。この場合、RDMA機能を利用せず、従来のTCP/IPプロトコルスタックを介してデータを転送することになります。これにより、RDMAの低遅延や高効率性が失われる可能性がありますが、既存のアプリケーションとの互換性を保つことができます26。

アプリケーションの要件:
一部のアプリケーションでは、RDMAを利用する必要がない場合があります。例えば、小規模なデータ転送やレイテンシがそれほど重要でないタスクでは、RDMAを使用しない方が簡便な場合があります。

設定や互換性の問題:
RDMAを使用するためには、適切な設定やドライバが必要です。これらが整っていない環境では、RDMA機能を利用できず、通常のデータ転送方法に頼ることになります。

ハードウェア制約:
RDMA機能は特定のハードウェア(例:インフィニバンドHCA)に依存します。これらのハードウェアが存在しない場合や互換性がない場合、RDMAを利用することはできません34。
総じて言えば、インフィニバンドはRDMA機能を持っているため、その利点を最大限に活用することが推奨されますが、特定の状況や要件によってはRDMAを使用しない選択肢も存在します。