# InfiniBand ## 定義 InfiniBand(IB、正式には InfiniBand Architecture, IBA)は、IBTA(InfiniBand Trade Association)が策定する高速インターコネクト規格であり、[[RDMA]] の実現のために作られた専用プロトコルである。TCP/IP と異なり IETF で仕様策定していないため RFC は存在せず、技術仕様書は IBTA サイトから取得する(要アカウント)。専用のチャネルアダプタ(CA)とスイッチで IBA ネットワークを構成し、L4(トランスポート層)までハードウェア実装するカットスルー伝送により、RDMA 実装3種(InfiniBand・RoCE・iWARP)の中で最も高いパフォーマンスを持つ。(Source: [[@2023__SpeakerDeck__RDMAネットワークアーキテクチャ基礎 - IB/RoCE 編 -]]) ## 横断的知見 - **TCA(Target Channel Adapter)はストレージ専用にとどまらず、スイッチ内蔵の仮想エンドポイントとしても使われる**: [[@2023__SpeakerDeck__RDMAネットワークアーキテクチャ基礎 - IB/RoCE 編 -]] は TCA を「ストレージデバイス等の非コンピュートノードに装着する CA」と定義するが、[[@2016__COM-HPC__Scalable Hierarchical Aggregation Protocol (SHArP) - A Hardware Architecture for Efficient Data Reduction]] は SwitchIB-2 ASIC 内部に**仮想的な TCA として実装される SHArP Node**を示す(内部論理ポート経由でスイッチに接続され、Reliable Connection(RC)によるデータ受信と結果送信の両方の終端点として機能する)。TCA という同一概念が、物理的に独立したデバイス(ストレージ)としても、ASIC 内部の論理コンポーネントとしても実装されうることを示す一例である。(Source: [[@2023__SpeakerDeck__RDMAネットワークアーキテクチャ基礎 - IB/RoCE 編 -]], [[@2016__COM-HPC__Scalable Hierarchical Aggregation Protocol (SHArP) - A Hardware Architecture for Efficient Data Reduction]]) - **RC と UD の使い分けが、集約プロトコルの信頼性設計をそのまま踏襲する**: IBA の 4 トランスポートサービスのうち実運用で使われるのは RC(Reliable Connected)と UD(Unreliable Datagram)だが、SHArP はまさにこの 2 つを役割分担で使う——集約木を上る方向(縮約のためのデータ収集)は信頼性が必須なので RC、根からのマルチキャスト結果配布はスケーラビリティ優先で UD(信頼性は上位で別途保証)という設計になっている。IBA のトランスポートサービス設計が、その上に構築される集約プロトコルの信頼性要件をそのまま反映する形で選択されている。(Source: [[@2023__SpeakerDeck__RDMAネットワークアーキテクチャ基礎 - IB/RoCE 編 -]], [[@2016__COM-HPC__Scalable Hierarchical Aggregation Protocol (SHArP) - A Hardware Architecture for Efficient Data Reduction]]) ## InfiniBand Architecture の構成要素(整理) - **サブネットとエンドノード**: IBA ネットワークはサブネット(Ethernet の L2 ネットワークに近い概念)とそこに接続されるエンドノードで構成され、サブネット間通信には IB ルータが必要になる。エンドノードは複数のサブネットに接続可能。 - **Subnet Manager(SM)**: サブネットには最低1台の SM が必要で、トポロジ検知・アドレス割当・LFT(Linear Forwarding Table)作成などの管理機能全般を担う。複数設定してもActiveになれるのは1台のみで、Active な SM が停止するとプライオリティ順に引き継がれる。SM 機能を持つスイッチは Managed スイッチと呼ばれ、Unmanaged スイッチには物理管理ポートも存在しない。 - **HCA(Host Channel Adapter)**: IBA の主役であり最重要コンポーネントでエンドノードにあたる。IB スイッチや IB ルータは HCA が生成したパケットを中継するにすぎない。Ethernet の NIC と同一のハードウェア上で動作し、OFED 等のドライバで動作モードを変更できる。ストレージデバイス等の非コンピュートノードに装着する CA は TCA(Target Channel Adapter)と呼ばれる。 - **物理層とデータレート**: IBA の帯域幅は「Data Rate(DR)」という単位で規定され、1チャネルあたりのシグナリングレート×チャネル数で決まる。チャネル数は光トランシーバがサポートするチャネル数と一致する必要があり、現在の主流は4チャネル(4X)。EDR(Enhanced Data Rate, 25Gbps×4=100Gbps)、HDR(High Data Rate, 50Gbps×4=200Gbps)、NDR(Next Data Rate, 100Gbps×4=400Gbps)という世代が存在する。 - **プロトコルスタック**: 物理層(L1)で伝送メディア・信号特性・データレートを定義し、リンク層(L2)が IBA の中核としてパケット転送とクレジットベースのフロー制御を定義する。サブネット内のパケット転送ではネットワーク層(L3)が関与せず、L4(トランスポート層)で品質保証や各種 RDMA オペレーションを定義する。 - **識別子**: サブネット内では LID(Local ID, 16bit)が電源投入時に SM により揮発的に割り当てられ通信相手を特定する。サブネットを超える通信には GID(Global ID, 128bit、上位64bitがサブネットID・下位64bitがホストIDでIPv6アドレス体系を踏襲)を用いる。IB ルータはパケット転送時に LRH の Source LID を自身の LID に書き換えて転送する。 - **パケット構造**: LRH(Local Routing Header、必須、サブネット内転送に使用)・GRH(Global Routing Header、オプション、サブネット間ルーティングに使用しサブネット内転送では付与されない)・BTH(Base Transport Header、必須、QP の制御に使用)・ETH(Extended Transport Header、RDMA 操作に使用)・Payload・ICRC/VCRC(エラー訂正)から構成される。 - **Virtual Lane(VL)とトポロジ**: 単一の物理リンク上で複数の独立したデータストリームを VL(最大16本、データ用15本+管理用1本)として個別制御し、各チャネルに Service Level(SL、16段階)を設定してVLにマッピングすることで、異なるアプリケーションのトラフィックが相互に影響しないようにする。IB は Fat-tree(Clos)・Dragonfly・Torus など多様なトポロジをサポートし、ループ構成も可能で接続されたリンクはすべて利用可能と判断される。 - **トランスポートサービス**: TCP/UDP に相当する4つのサービスタイプが、信頼性(Reliable/Unreliable)と通信方式(Connected/Datagram)の組み合わせで規定される。RC(Reliable Connected、TCPと論理的に同等)と UD(Unreliable Datagram、UDPと論理的に同等)が実運用上使われ、RD(Reliable Datagram)は実装が無いため無視してよく、UC(Unreliable Connected)も使われない。RDMA READ/WRITE を含む全操作は RC(または RD)でのみサポートされ、UD は SEND のみサポートする。 - **RDMA メモリモデルとの関係**: RDMA オペレーション(Memory Region の固定化、QP による Queue Pair モデル)は IBA の L4 で定義される仕組みであり、[[RDMA]] concept で扱う QP/WQE/One-Side Operation は IBA トランスポート層の実装に由来する。 ## 未解決の問い - IBA の LFT(Linear Forwarding Table)による経路計算アルゴリズムの詳細(Up*/Down* ルーティング等)は本資料では扱われていない。IB Fat-tree/Dragonfly でのルーティングアルゴリズムの選択は性能にどう影響するか。 - Subnet Manager の高可用性設計(プライオリティに基づく引き継ぎ)は、実運用でどの程度の切り替え時間・パケットロスを伴うか。 - RoCEv2 は IBA のトランスポート層(BTH/ETH)をそのまま UDP/IP の上に載せる構成を取るが([[RoCE設計課題]] 参照)、IBA 独自のクレジットベースフロー制御(L2)や VL の仕組みは RoCEv2 には存在しない。この機構の欠如が RoCEv2 が PFC のような別のロスレス機構を必要とする直接の理由になっているか、両ソースを突き合わせて検証する余地がある。 - SHArP のように IBA トランスポート層(RC/UD)上に構築される高レベルプロトコルは他にどのようなものがあるか。IBA の L4 トランスポートサービス設計が、その上のアプリケーションプロトコル(集約・ストレージ等)の信頼性要件をどこまで柔軟に吸収できるかは、SHArP 以外の事例と突き合わせないと一般化できない。([[@2016__COM-HPC__Scalable Hierarchical Aggregation Protocol (SHArP) - A Hardware Architecture for Efficient Data Reduction]]) ## 関連 - 概念: [[RDMA]] / [[RoCE設計課題]] / [[データセンター輻輳制御]] / [[インネットワーク集約]] - 実体: [[Masayuki Kobayashi]] / [[Yahoo Japan Corporation]] / [[Mellanox]] - ソース: [[@2023__SpeakerDeck__RDMAネットワークアーキテクチャ基礎 - IB/RoCE 編 -]] / [[@2016__COM-HPC__Scalable Hierarchical Aggregation Protocol (SHArP) - A Hardware Architecture for Efficient Data Reduction]] ## 出典 - [[@2023__SpeakerDeck__RDMAネットワークアーキテクチャ基礎 - IB/RoCE 編 -]] — IBA のサブネット・Subnet Manager・HCA・物理層データレート・プロトコルスタック・LID/GID・パケットヘッダ・Virtual Lane・トランスポートサービスを体系的に解説する一次資料 - [[@2016__COM-HPC__Scalable Hierarchical Aggregation Protocol (SHArP) - A Hardware Architecture for Efficient Data Reduction]] — SwitchIB-2 内蔵 TCA としての SHArP Node の実装・RC/UD トランスポートの使い分け・pkey によるトラフィック分離