InfiniBandネットワークとアーキテクチャの概要

<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">現在のコンピューティングパワーの急速な発展に伴い、データセンターとハイパフォーマンスコンピューティングの需要は急増し続けています。このような背景から、高性能ネットワークソリューションとしてInfiniBandアーキテクチャが大きな注目を集めています。この記事では、InfiniBandのコンセプトと特徴を掘り下げ、現在のコンピューティングパワーのトレンドの中で、その必然的な成長と発展を探ります。InfiniBandネットワークの主要コンポーネントに焦点を当て、従来のTCP/IPと比較し、ハイパフォーマンス・コンピューティング環境における利点を明らかにします。上位層、トランスポート層、ネットワーク層、物理層など、InfiniBandアーキテクチャのさまざまなレベルの分析を通じて、効率的で低遅延なデータ伝送ネットワークの構築におけるInfiniBandの役割を包括的に理解します。</p>
<h2 class="community-restructure-h2 community_page_first_h2">InfiniBandアーキテクチャの基本</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBand (IB)は、プロセッサとI/Oデバイス間のデータフロー用通信リンクで、最大64,000個のアドレス可能なデバイスをサポートします。InfiniBandアーキテクチャ(IBA)は、ポイント・ツー・ポイントのスイッチング入出力フレームワークを定義する業界標準仕様で、通常、サーバー、通信インフラ、ストレージ・デバイス、組み込みシステムの相互接続に使用されます。InfiniBandは、汎用性、低遅延、高帯域幅、低管理コストを特徴としており、単一接続の複数データストリーム（クラスタリング、通信、ストレージ、管理）にとって理想的な接続ネットワークであり、相互接続ノードは数千に達します。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandネットワークは、各ノードが専用チャネルを通じて他のノードと直接通信するポイント・ツー・ポイント接続を利用するため、ネットワークの混雑が緩和され、全体的なパフォーマンスが向上します。このアーキテクチャはRDMA（リモート・ダイレクト・メモリ・アクセス）技術に対応しており、ホストCPUを介さずにメモリ間で直接データ転送を行うことができるため、転送効率がさらに向上します。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandアーキテクチャにおける最小の完全な単位はサブネットであり、複数のサブネットはルータによって接続され、大規模なInfiniBandネットワークを形成します。各サブネットは、エンドノード、スイッチ、リンク、サブネットマネージャで構成されます。InfiniBandネットワークは、データセンター、クラウドコンピューティング、高性能コンピューティング（HPC）、機械学習、人工知能などのシナリオで応用されており、主な目的は、ネットワーク利用率、CPU利用率、アプリケーション・パフォーマンスを最大化することです。</p>
<h2 class="community-restructure-h2">InfiniBandによるデータ転送</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">従来の相互接続ファブリックでは、オペレーティング・システムが共有ネットワーク・リソースの唯一の所有者であるため、アプリケーションはネットワークに直接アクセスできません。その代わり、アプリケーションは、アプリケーションの仮想バッファからネットワーク・スタックや回線へのデータ転送をオペレーティング・システムに依存しなければなりません。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandによって、アプリケーションはオペレーティングシステムを直接介さずに、ネットワーク上で直接データをやり取りできるようになります。このアプリケーション中心のアプローチは、InfiniBandネットワークと従来のネットワークとの重要な差別化要因であり、まさにInfiniBandネットワークの利点がここにあります。</p>
<h2 class="community-restructure-h2">InfiniBandアーキテクチャ vs TCP/IP</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandアーキテクチャは、従来のTCP/IPモデルと同様に5つのレイヤーで構成されています。しかし、両者には多くの違いがあります。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">分散ストレージの領域では、IBはDPC（分散並列コンピューティング）シナリオのストレージフロントエンドネットワークでよく利用されます。一方、ビジネスネットワークではTCP/IPが一般的に採用されています。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">これは、既存のTCP/IPソフトウェアとハードウェア・アーキテクチャが、高同時性と低レイテンシのアプリケーションの要求を満たすのに苦労しているからです。従来のTCP/IPネットワーク通信では、カーネルを介したメッセージ伝送が行われるため、高いデータ移動コストとレプリケーションコストが発生します。RoCEとInfiniBandを含むRDMA技術は、ネットワーク伝送中のサーバー側データ処理の遅延を解決できます。RDMAは、カーネルが介在することなく、ネットワークインターフェイスを通じてメモリデータに直接アクセスできるため、高スループットと低遅延のネットワーク通信が可能になります。このため、RDMAは特に大規模な並列コンピュータクラスタに適しています。</p>
<h2 class="community-restructure-h2">InfiniBandアーキテクチャ層</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandのアーキテクチャは、以下のレイヤーで構成されています。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">上位レイヤ：上位レイヤには、SCSI（Small Computer System Interface）、IPoIB（IP over InfiniBand）などのプロトコルやサービスが含まれ、さまざまなアプリケーションやサービスをサポートします。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">トランスポート層：トランスポート層は、信頼性の高いデータ伝送、フロー制御、エラー処理などのエンド・ツー・エンドの通信サービスを提供します。データ伝送のシーケンス、整合性、信頼性を管理可能です。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">ネットワーク層：ネットワーク層は、エンド・ツー・エンドの通信とルーティングを処理し、ソースノードからデスティネーションノードへのデータパケットの正しい伝送を保証します。InfiniBandサブネット内のノードのアドレスとルーティングルールを定義します。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">物理層：物理層は、ケーブル、光ファイバ、コネクタ、インタフェースなど、InfiniBand接続のハードウェア仕様を定義するものです。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">リンク層：データリンク層は、エラー検出と訂正、データパケットの流れの管理、物理層でのデータフレームのカプセル化とカプセル解除を担当します。</p>
<h3 class="community-restructure-h3">上位レイヤ</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">サポートされている上位レイヤーのプロトコルは以下の通りです。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">SCSIプロトコル（Small Computer System Interface）：コンピュータと外部機器間のデータ転送のための標準インターフェースプロトコルで、ディスク・ドライブ、プリンター、その他の周辺機器などをサポートします。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">IPoIBプロトコル（IP over InfiniBand）：InfiniBandネットワーク上でIPデータ転送を可能にするプロトコルで、InfiniBandがTCP/IPプロトコルスタックをサポートすることを可能にします。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">SDPプロトコル（Sockets Direct Protocol）：InfiniBandネットワーク上のソケット通信に使用されるプロトコルで、高性能で低レイテンシーのデータ転送を提供します。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">MPI (Message Passing Interface)：並列コンピューティングにおけるプロセス間通信の標準プロトコルで、HPCアプリケーションでよく使用されます。</p>
<h3 class="community-restructure-h3">トランスポート層</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandトランスポートサービスは、トランスポート層がTCP/IPと異なります。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandはRDMA（Remote Direct Memory Access）技術を採用しており、ホストメモリをバイパスしてネットワークアダプタ間で直接データ転送が可能です。このアプローチにより、低レイテンシーと高スループットを実現しています。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">TCP/IPはエンドツーエンドトランスポートメカニズムを利用し、データ伝送のために送受信ホスト間にコネクションを確立します。このメカニズムは、追加の伝送遅延とシステムオーバーヘッドをもたらす可能性があります。</p>
<h3 class="community-restructure-h3">ハードウェアにおけるトランスポート層の接続</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">トランスポート層では、2つのアプリケーションを接続するために「仮想チャネル」が確立され、まったく別のアドレス空間での通信が可能になります。メッセージ転送中、この設計はハードウェアによる直接データ転送を活用し、通信効率と性能の向上に貢献します。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">メッセージは、ホストプロセッサの介入を必要とせず、ハードウェアを介して直接転送されます。その結果、受信側に到達すると、メッセージは、追加の処理ステップを必要とすることなく、受信側のアプリケーションのバッファに直接配信されます。</p>
<h3 class="community-restructure-h3">ネットワーク層</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandネットワークは複数のサブネットに分割され、それぞれが通常1台以上のInfiniBandスイッチで接続されています。サブネットは、独自のトポロジーとコンフィギュレーションを持つ独立した通信ドメインです。ルーターとスイッチは、異なるサブネット間でパケットのルーティングと切り替えを行います。ルーターは異なるサブネット間の接続を担当し、スイッチは同じサブネット内のパケットスイッチングを担当します。</p>
<h3 class="community-restructure-h3">リンク層</h3>
<h4 class="community-restructure-h4">ローカル識別（LID）</h4>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">サブネット内のすべてのデバイスは、サブネットマネージャによって割り当てられた16ビットのアドレスであるローカル識別子（LID）を持っています。サブネット内で送信されるすべてのパケットは、リンク・レベルでのパケットの転送とスイッチングの宛先アドレスとしてLIDを使用します。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandネットワークでは、各スイッチが接続ポートと関連する宛先ローカルID（LID）のマッピングを記録したフォワーディング・テーブルを保持しています。このようなフォワーディング・テーブルは、サブネット・マネージャによって動的に計算・設定されます。</p>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">サブネットマネージャーは、ネットワーク・トポロジーの変化を監視し、各スイッチに適切なフォワーディング・テーブルを生成し、データ・パケットが宛先ノードに正確かつ迅速に伝送されるようにする役割を担います。</p>
<h4 class="community-restructure-h4">InfiniBandパケットスイッチング</h4>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandネットワークでは、データ・パケットは<a href="https://www.fs.com/jp/c/switching-4222">ネットワークスイッチ</a>を介して伝送、ルーティングされます。パケットスイッチングにスイッチを使用することで、柔軟で高性能なネットワークトポロジーを構築することができ、ソースノードからデスティネーションノードへ迅速かつ効率的にデータを伝送することができます。</p>
<h4 class="community-restructure-h4">フロー制御</h4>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandのリンク層にはフロー制御プロトコルが組み込まれており、送信側と受信側の伝送レートを調整することで、高速な送信側が低速な受信側の処理能力を圧倒することを防いでいます。</p>
<h4 class="community-restructure-h4">ロスレスファブリック</h4>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">InfiniBandネットワークはロスレスネットワークとして設計されており、送信ノードは受信バッファの使用状況を動的に監視し、受信ノードのバッファに空き容量がある場合にのみデータを送信します。これがInfiniBandがロスレスネットワークである理由です。ネットワークが輻輳してもデータパケットのロスは発生しないため、高信頼性と低遅延を必要とするアプリケーションにとって極めて重要です。</p>
<h3 class="community-restructure-h3">物理層</h3>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">物理層は、光ファイバと銅線メディアの両方のケーブルやコネクタ、バックプレーンコネクタ、ホットスワップ機能などの電気的・機械的特性を定義し、異なる機器やメーカー間の相互運用性を確保します。この標準化は、ハイパフォーマンス・コンピューティングやデータセンターネットワークの構築に貢献し、信頼性の高い広帯域データ伝送を実現します。次の図は、<a href="https://www.fs.com/jp/products/205043.html">NVIDIA InfiniBand DACケーブル</a>ト<a href="https://www.fs.com/jp/products/205043.html">NVIDIA InfiniBand AOCケーブル</a>の例を示しています。</p>
<h2 class="community-restructure-h2">結論</h2>
<p class="blog_p padding_top_none community_blog_detail_p community_blog_detail_p1">要約すると、InfiniBandアーキテクチャは、その卓越した性能と低遅延特性により、ハイパフォーマンス・コンピューティングやデータセンターネットワークに適した選択肢として浮上してきました。その独特な設計は、大規模なデータ転送や複雑な計算タスクを処理するための理想的なソリューションとして位置づけられています。コンピューティングパワーへの要求がますます高まり、データセンターの規模が拡大する中、高性能インターコネクト技術であるInfiniBandは、科学、エンジニアリング、ビジネスの各領域で重要な役割を果たし続けるでしょう。</p>