Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

HPCネットワーク基礎(RDMA/Infiniband/RoCE編)

 HPCネットワーク基礎(RDMA/Infiniband/RoCE編)

Masayuki Kobayashi

June 02, 2023
Tweet

More Decks by Masayuki Kobayashi

Other Decks in Technology

Transcript

  1. ©2022 Yahoo Japan Corporation All rights reserved. HPCが変えるデータセンターネットワーク 4 Computing

    Innovation CPUはサービスを提供するアプリケーションのために利⽤ Network, IO, AI Trainingなどはアクセラレータにオフロード (DPU, IPU, GPGPU) 集合演算でのCPUオーバヘッドの削減が重要 Storage Innovation NVMeや⾼速不揮発メモリの登場でIOが超⾼速化 DLのモデル開発では反復学習でのIOの再読み込みが発⽣ 低レイテンシ、ロスレスなアクセスが重要 これらのノード間通信をボトルネックにしないためのネットワークが必要︕︕ High Bandwidth, Low Latency, Lossless これをデータセンターファブリックで実現する要素技術 -> RDMA
  2. ©2022 Yahoo Japan Corporation All rights reserved. 現在のHPC/RDMA Network 5

    2023/06現在、Top500のインターコネクトシェア Infiniband 40% Ethernet 45% IB vs Ethernet 性能をどこまで求めるのか、ユースケース次第で選択 Azure DCのトラフィックの70%はRDMAとの発表 ストレージ通信で利⽤ https://www.microsoft.com/en-us/research/publication/empowering-azure-storage-with-rdma/
  3. ©2022 Yahoo Japan Corporation All rights reserved. 我々のデータセンターネットワークの状況 6 Compute

    Storage AI/ML Non-Scheduled traffic flow 優先度や特性が異なる様々なワークロードのトラフィックフローが混在し制御されていない 優先度の低いエレファントフローが優先度の⾼いマウスフローに影響する可能性 信頼性の⾼いE2Eパスをどのように確保するかが課題
  4. ©2022 Yahoo Japan Corporation All rights reserved. 我々に今できることは何か 7 世界的な需要増などで、シリコンの納期が⻑期化しているがHPCはシリコンに頼らざるを得ない領域

    ネットワークエンジニアもコンピューティングやストレージの特性を理解してシステムを設計しなければならない時代 正しくスケールするネットワークインフラを設計するには、基礎理論が⽋かせない そのための最初の⼀歩として、まずは要素技術と展開事例を学ぶ InfinibandもRoCEも未知の技術ではない、怖くない状態にすることが⽬的
  5. ©2022 Yahoo Japan Corporation All rights reserved. Outline 8 •

    RDMA概要 • Infiniband基礎 • RoCE基礎
  6. ©2022 Yahoo Japan Corporation All rights reserved. RTT = 伝送遅延

    + 伝搬遅延 + キューイング遅延 + 処理遅延 伝送遅延 出⼒ポートからパケットを送出するのにかかる時間(広帯域IFほど遅延が短い) 𝐷𝑒𝑙𝑎𝑦=𝐿/𝐵𝑎𝑛𝑑𝑤𝑖𝑑𝑡h : Lは送信するパケットのビット数 伝搬遅延 パケットが通信経路上を伝わるのにかかる時間 𝐷𝑒𝑙𝑎𝑦=𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒/𝑉𝑒𝑙𝑜𝑐𝑖𝑡𝑦 : Distanceは伝送距離, Velocityは伝送媒体の速度(光ファイバは2.1*10^8 m/s) キューイング遅延 パケットをバッファに保持している時間(公式がないため計算困難) 処理遅延 パケットの送受信処理にかかる時間、パケットをTCP/IP層に⼿渡す時のメモリコピーなどで発⽣する遅延 帯域幅と遅延 – コンピュータネットワークにおける性能指標 - 9
  7. ©2022 Yahoo Japan Corporation All rights reserved. DMAとRDMAの基本概念 10 •

    DMA: マザーボード上のデバイスがCPUを介さずに直接ターゲットメモリにデータを書き込める技術 CPUコピーのオーバーヘッド削減 • RDMA: リモートデバイスのメモリに対してDMAを⾏う技術 システムスループットの向上、ネットワーク遅延の削減
  8. ©2022 Yahoo Japan Corporation All rights reserved. • 従来のTCP/IP ネットワークスタックでは、カーネルを介してリモートマシンのユーザー空間に

    データを送信する必要があり、この処理中にいくつかのメモリコピーを実⾏する必要がある • NICのリングバッファにデータそのものを格納する • データの移動やコピー操作のオーバーヘッドが⼤きく、⾼速ネットワークでボトルネックになる • TCP Offloading Engineを搭載したNICに処理をオフロードさせる解決策が⼀般的 処理遅延 – 従来のTCP/IP Stack - 11 IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
  9. ©2022 Yahoo Japan Corporation All rights reserved. RMDAの価値 • カーネルバイパス:

    遅延箇所の回避、CPU使⽤率の削減 • ゼロコピー: 複数回のコピー操作の排除 • プロトコルオフロード: トランスポート層の処理のオフロードによるCPU使⽤率削減 • ワンサイドオペレーション: 対向側デバイスのCPU介⼊が不要で、計算サイクルを消費しない 処理遅延 – RDMA - 12 IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
  10. ©2022 Yahoo Japan Corporation All rights reserved. RDMAには異なるハードウェア(物理・リンク層)実装が3種類存在 Infiniband IBTAが策定したスタンダードでHPC領域で圧倒的なシェアをもち、最もパフォーマンスが⾼い

    InfinibandはRDMAのために作られたプロトコル 専⽤のネットワークカード(HCA)とスイッチが必要 RoCE (RDMA over Converged Ethernet) IBTAが策定したスタンダードで、標準イーサネット上でのRDMAをサポートする(IBoE) RoCEをサポートするネットワークカードとスイッチが必要で、ロスレスイーサネットを必要とする L2ネットワーク上で動作するRoCEv1と、L3ネットワーク上でUDPで動作するRoCEv2がある iWARP (Internet Wide Area RDMA Protocol) IETE標準のTCP/IPに基づくRDMA技術でRoCEのようにロスレスイーサネットを必要としない iWARP対応のネットワークカードがサーバ側に必要 TCPをトランスポートに利⽤する性質上、RoCEよりパフォーマンスが僅かに低下する RDMAの実装 14
  11. ©2022 Yahoo Japan Corporation All rights reserved. InfinibandがRDMAの基礎にある RDMAの実装 15

    IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
  12. ©2022 Yahoo Japan Corporation All rights reserved. IBTA(InfiniBand Trade Association)が策定する⾼速インターコネクト規格

    TCP/IPと異なりIETFで仕様策定していないため、RFCは存在しない 技術仕様書はIBTAのサイトからダウンロード可能(要アカウント) 専⽤のチャネルアダプタ(CA)とスイッチでIBA(Infiniband Architecture)を構成する Infiniband Architecture (IBA) 16 IUUQTXXXTOJBPSHTJUFTEFGBVMUpMFTpMFTpMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@*OpOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
  13. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    Subnets - 17 IBA Networkはサブネットとそこに接続されるエンドノードで構成される サブネットはEthernetのL2 networkに近い概念で、サブネット間通信にはIBルータが必要になる エンドノードは複数のサブネットに接続可能 IUUQTXXXTOJBPSHTJUFTEFGBVMUGJMFTGJMFTGJMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@*OGJOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
  14. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    Subnet Manager - 18 IBA Networkには最低1台のSubnet Manager(SM)が必要 トポロジ検知、アドレス割当、転送テーブル作成などの管理機能全般はSubnet Managerが担う エンドノードとスイッチでどれがSMになっても良いが、複数設定してもActiveになれるのは1台のみ ActiveなSMが停⽌すると、プライオリティ順にSMが引き継がれる 最も信頼性の⾼いデバイスをSMに設定することが望ましい SMの機能があるスイッチがManagedスイッチと呼ばれる Unmanagedスイッチには物理管理ポートも存在しない IUUQTXXXTOJBPSHTJUFTEFGBVMUGJMFTGJMFTGJMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@*OGJOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
  15. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture (IBA)

    19 IBはFat-tree(Clos), Dragonfly, Torus など様々なトポロジをサポートする ループ構成が可能で、接続されたリンクはすべて利⽤可能と判断される IBはL4までハードウェア実装であり、カットスルー伝送 Subnet Managerが作成したLFT(Linear Forwarding Table)をもとにパケット転送 スイッチはLIDで識別されるためスイッチのホスト名は重要ではない https://www.nvidia.com/en-us/networking/infiniband-configurator/
  16. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture (IBA)

    20 IBには独⾃のプロトコルスタックが存在 物理層(L1)で伝送メディア・信号特性・データレートなどを定義 リンク層(L2)がIBAの中核となり、パケットの転送やクレジットベースのフロー制御を定義 サブネット内のパケット転送ではネットワーク層(L3)が関与しない L4で品質保証や各種RDMAオペレーションを定義
  17. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    HCA - 21 IBAには独⾃の⽤語が定義されているため、運⽤する上で最低限理解しなければならないものがある HCA(Host Channel Adapter) IBAの主役であり最重要コンポーネントでありエンドノード IBスイッチやIBルータはHCAが⽣成したパケットを中継するにすぎない EthernetのNICと同⼀のハードウェア上で動作する(OFEDなどのドライバで動作モードを変更可) ストレージデバイスなど⾮コンピュートノードに装着するCAはTCA(Target Channel Adapter) IUUQTEMBDNPSHEPJ
  18. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    物理層 - 22 IBAの帯域幅は ”Data Rate(DR)” という単位で規定 1チャネルあたりのシグナリングレート x チャネル数 = 帯域幅 チャネル数は光トランシーバがサポートするチャネル数と同⼀である必要がある そのため現在主流のチャネル数は X4 になる
  19. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    物理層 - 23 EDR: Enhanced Data Rate (25Gbps x 4 = 100Gbps) HDR: High Data Rate (50Gbps x 4 = 200Gbps) NDR: Next Data Rate (100Gbps x 4 = 400Gbps) IUUQTXXXJOGJOJCBOEUBPSHJOGJOJCBOESPBENBQ
  20. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture -

    Packet Header - 24 IUUQTXXXTOJBPSHTJUFTEFGBVMUGJMFTGJMFTGJMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@*OGJOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
  21. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture -

    Packet Header - 25 Infiniband パケットフォーマット Start/End Delimiter パケットの開始/終了を識別する特殊⽂字 LRH (Local Routing Header) 必須、サブネット内転送に使⽤ GRH (Global Routing Header) オプション、サブネット間ルーティングに使⽤ サブネット内転送では付与されない BTH (Base Transport Header) 必須、QPの制御に使⽤ ETH (Extended Transport Header) RDMA操作に使⽤ ICRC/VCRC エラー訂正に使⽤ IUUQTXXXJOpOJCBOEUBPSHJOpOJCBOESPBENBQ
  22. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    リンク層 - 26 Virtual Lane(VL) 単⼀の物理リンク上で複数の独⽴したデータストリームを個別に制御 異なるアプリケーションのトラフィックが相互に影響を与えることは避けたい 各チャネルに個別のService Level(SL)が設定され、相互に影響を受けない VLは最⼤16本: データ⽤15本 + 管理⽤1本 16段階のSLをVL毎にマッピングする IUUQTXXXTOJBPSHTJUFTEFGBVMUGJMFTGJMFTGJMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@*OGJOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
  23. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    リンク層 - 27 Local ID (LID) IBはLIDと呼ばれる16bitの識別⼦で通信相⼿を特定する(サブネット内でのみ有効) LIDは必須で電源を⼊れるとSubnet Managerが⾃動で割り当て(揮発性) HCAには各ポートに、スイッチにはポート0(内部の特殊ポート)にのみLIDが割り当てられる 送信元LID(SLID)/宛先LID(DLID)はLRHに格納されサブネット内ルーティングに使⽤される 通常のパケット転送ではスイッチノードのLIDが使⽤されるためポートのLIDは重要ではない スイッチの各ポートのLIDはトポロジの観点で重要 IUUQTEMBDNPSHEPJ
  24. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    ネットワーク層 - 28 Global ID (GID) サブネットを超えて通信する場合には128bitのGIDで相⼿を特定する 上位64bitがサブネットID、下位64bitがホストIDで、IPv6のアドレス体系を踏襲している IBルータがGRHに含まれるGIDを解釈する IBルータはパケット転送時にLRHのSource LID(SLID)を⾃⾝のLIDに書き換えて転送する サブネット内通信でLIDを使⽤せずにGIDを利⽤した転送はできない IUUQTEMBDNPSHEPJ
  25. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    トランスポート層 - 29 MTU IBは最⼤2GBのメッセージをMTUサイズに分割して送信 パス上の最⼩値が採⽤される 256(最⼩), 512, 1024, 2048, 4096(最⼤)Bytesをサポート ジッタの安定性や効率の経験則から最適値を設定する Transport Service (信頼性) TCP/UDPに相当する4つのサービスタイプが、信頼性と通信⽅式の組み合わせで規定されている 再送制御・順序制御のある Reliable と信頼性の無い Unreliable 1対1通信の Connection と 多対多の Datagram IUUQTEMBDNPSHEPJ
  26. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    トランスポート層 - 30 RC (Reliable Connected) TCPと論理的に同等 パケットは順番に配送され再送制御がある UD (Unreliable Datagram) UDPと論理的に同等 順序や配送に保証が無い RD (Reliable Datagram) 実装が無いので無視してよい UC (Unreliable Connected) 使われないので無視してよい Infiniband Transport Service
  27. ©2022 Yahoo Japan Corporation All rights reserved. Infiniband Architecture –

    RDMAメモリモデル - 31 Memory Region RDMAオペレーションはメモリを固定することから始まる HCAは物理メモリアドレスに対してDMAを⾏うので、ユーザプログラムの仮想メモリアドレス空間が理解できない HCA がアクセス可能な領域を Memory Region として、仮想メモリページと物理メモリページの関係を固定化 メモリの物理アドレスは連続している必要がある Memory Region内の仮想メモリはスワップなどによってディスクに追い出されることが無い データの転送中、アプリケーションはデータが存在するメモリの変更が不可
  28. ©2022 Yahoo Japan Corporation All rights reserved. RDMA メモリモデル 32

    QP (Queue Pair) TCP/UDPのソケットに相当するもので、IB RDMAの中核となるメモリモデル RMDAは3つのキュー 送信キュー(SQ), 受信キュー(RQ), 完了キュー(CQ) に基づいている SQとRQは常にペアで作成されるため Queue Pair と呼ばれる QPはソケットのリングバッファモデルと異なり、データそのものを格納しない HCAが直接アクセスするためのデータの位置やサイズなどの情報が⼊ったメタデータ(WQE)格納される CQはメッセージが処理されたことをユーザーに通知するために使⽤される
  29. ©2022 Yahoo Japan Corporation All rights reserved. RDMA Operations 33

    One-Side Operation (⼀⽅向性操作) リモートデバイスのOSに操作を検知されない RDMA Write: リモートメモリへの書き込み、ターゲットCPUの介⼊なし RDMA Read: リモートメモリからの読み込み、ターゲットCPUの介⼊なし Push Pull Atomic Operation (不可分操作) Fetch and Add: リモートメモリの位置を更新する Compare and Swap:リモートメモリの内容⽐較と値の⼊れ替え Fetch and Add Compare and Swap IUUQTXXXTOJBPSHTJUFTEFGBVMUpMFTpMFTpMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@*OpOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
  30. ©2022 Yahoo Japan Corporation All rights reserved. RDMA Operations 34

    トランスポートとオペレーションのサポート対応 IUUQTXXXTOJBPSHTJUFTEFGBVMUGJMFTGJMFTGJMFT4%$QSFTFOUBUJPOT)BSEXBSF%BWJE%FNJOH@*OGJOJCBOE@"SDIJUFDUVSBM@0WFSWJFXQEG
  31. ©2022 Yahoo Japan Corporation All rights reserved. RDMA over Converged

    Ethernet (RoCE) 35 IBは専⽤ハードウェアへの投資が必要なため、IBのパフォーマンスを得つつ既存資産を活⽤する⽅法 RoCEはイーサネット上でのIBプロトコルの伝送をサポート L2ネットワーク⽤のRoCEv1 と L3ネットワーク⽤のRoCEv2 が存在する どちらの場合でもロスレスイーサネットを実現するためのフロー制御と輻輳制御が前提となる
  32. ©2022 Yahoo Japan Corporation All rights reserved. データセンターネットワークでの輻輳要因 37 TCP

    Incast 多くのノードが同時に1台にTCPデータストリームを送る多対⼀の通信でバッファ不⾜が発⽣ バッファが溢れるとパケットロスになる デバイスのオーバーサブスクリプションレート 上下帯域が⾮対称な設計の場合、輻輳が発⽣しやすくなる パケット交換ネットワークにおいて厳密なノンブロッキングは実現不可能 ECMPの不均衡 ECMPで負荷分散する場合、そのリンクがすでにどれだけ輻輳しているかは考慮されない エレファントフローが使⽤中のリンクに他のフローが参加する可能性がある
  33. ©2022 Yahoo Japan Corporation All rights reserved. Go-Back-N vs Selective

    Retransmission 38 RDMAの再送はハードウェア実装 RoCEv2では基本的に⾃動再送信(Go-Back-N)を採⽤ RDMAはロスレスネットワークを前提として考案された⼿法 ドロップが発⽣するとパフォーマンスが極度に低下する 最近RoCEv2で選択的再送信が実装された
  34. ©2022 Yahoo Japan Corporation All rights reserved. Data Center Bridging

    (DCB) 39 ロスレスイーサネットは Data Center Bridging(DCB) と呼ばれる3つの技術で実現される Lossless Configuration = ETS + PFC + CN 802.1Qaz Enhanced Transmission Selection (ETS) Priority Group単位の帯域保証付き優先キューイングと情報交換プロトコル(DCBX) 802.1Qbb Priority-based Flow Control (PFC)︓ 優先キューごとに PAUSE(XOFF/XON) フレームの送信でバッファ溢れを防⽌ 802.1Qau Congestion Notification (CN) IPヘッダのECN (Explicit Congestion Notification)と、 BTヘッダのCNP (Congestion Notification Packet)を組み合わせて送信元に輻輳を通知 輻輳を発⽣元から緩和
  35. ©2022 Yahoo Japan Corporation All rights reserved. Priority-based Flow Control

    (PFC) 40 Global Pause Frame 最古のイーサネットフロー制御機構(IEEE 802.3X) 受信キューの深さが閾値を超えると、XOFF を送信側に送信 送信側は XON を受信するまですべての送信を⼀時停⽌ トラフィックフローを区別しないため、⾼優先度フローも停⽌ PFC Pause Frame パケットを0~7の優先度に分類(IEEE 802.1Qbb) 各ポートにには優先度に対応する8個のキューが存在 異なる優先度のパケットは異なるキューに格納 キュー毎に XOFF/XON を⾏う IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
  36. ©2022 Yahoo Japan Corporation All rights reserved. Priority-based Flow Control

    (PFC) 41 IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
  37. ©2022 Yahoo Japan Corporation All rights reserved. Priority-based Flow Control

    (PFC) 42 PFCは使⽤する優先度のフィールドに応じて PCPベース と DSCPベース の2種類が存在 PCP based PFC dot1qヘッダにあるPCP(Priority Code Point)の3bitを利⽤ L2なのでここしか優先制御に使えるフィールドが無い 8つの優先順位(0~7)を設定可能でRoCEv1で使⽤ DSCP based PFC IPヘッダにあるDSCPをPFCに利⽤しRoCEv2でサポート RoCEv2では 26 でマーキング PCPと両⽅組み合わせて使うことも可能
  38. ©2022 Yahoo Japan Corporation All rights reserved. Explicit Congestion Notification

    (ECN) 44 RDMAはパケットロスがパフォーマンスに与える影響が TCP に⽐べてはるかに⼤きいため、 TCPの輻輳制御のようにパケットロスが発⽣するまで待ってから輻輳検出する⽅法がとれない。 DCQCNという新しい輻輳制御アルゴリズムを⽤いる(MicrosoftとMellanoxが共同開発) ECN IPヘッダにあるTOSフィールドの下位2bitを利⽤ 輻輳が発⽣したかどうかを 4値 で定義 スイッチはキューサイズを監視(RED) 輻輳が発⽣すると、スイッチはECNを 11 (輻輳発⽣) にして転送 受信側は ECN bitに基づいて送信側に輻輳状況を報告(CNP) 送信側は送信レートを調整
  39. ©2022 Yahoo Japan Corporation All rights reserved. Explicit Congestion Notification

    (ECN) 45 IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
  40. ©2022 Yahoo Japan Corporation All rights reserved. Enhanced Transmission Selection

    (ETS) 46 IUUQTQDOBOPHPSHTUBUJDQVCMJTIFENFFUJOHT/"/0(@$BSEPOB@5PXBSET@)ZQFSTDBMF@)JHI@WQEG
  41. ©2022 Yahoo Japan Corporation All rights reserved. まとめ 47 •

    これからの未来、データセンターがHPCインフラとして構築されるようになる • RDMAがHPCネットワークの要素技術であり、Infinibandが⽣まれた • Infinibandはトランスポート層までハードウェア処理のため圧倒的に⾼いパフォーマンスを出す • RDMAをイーサネット上で実現する技術としてRoCEがある • RoCEではロスレスイーサネットに依存するため、⾼度で複雑な輻輳・フロー制御・QoSが必要 • ⾃分たちの運⽤にあったパラメータチューニングを⾏う必要がある(極めて難しい)
  42. ©2022 Yahoo Japan Corporation All rights reserved. • Infiniband Architecture

    By Tom Shanley, MindShare, Inc. • Infiniband Architecture By David A. Deming - SNIA 2013 • Towards Hyperscale High Performance Computing with RDMA - NANOG 76 • Building a Future-Proof Cloud Infrastructure: A Unified Architecture for Network, Security, and Storage Services By Silvano Gai 参考資料 48
  43. Lossless Configura.on Enable ECN and PFC in all switch and

    NIC • NIC receive (Rx) congestion may occur 1. NIC cache misses 2. PCI bottleneck • Switch congestion may occur • Many to one communication • PFC may spread congestion to other switches • PFC may spread congestion to NIC transmit(Tx) side • PCIe congestion control • Use and optimize ECN to avoid the PFC • Buffer optimization in en-gress port • Faster ECN mark in switch and faster response for CNP in NIC PFC + ECN switch NIC PFC + ECN PFC + ECN PFC + ECN
  44. Semi-lossless Configura.on Address The Problem In Lossless: • NIC receive

    (Rx) congestion may occur • NIC cache misses • PCI bottleneck • PFC for NIC Congestion • NIC Rx congestion is propagated to the switch • Switch buffer absorbs the backpressure, congestion marked with ECN • PFC may spread congestion to other switches • Semi-Lossless network solves NIC congestion and prevents congestion spreading • NIC to switch: Uni-directional PFC • Switch to switch: no PFC No PFC No PFC PFC from NIC to switch No PFC from switch to NIC PFC from NIC to switch No PFC from switch to NIC switch NIC
  45. Lossy-1 Configura.on No PFC, End to End ECN only: •

    No PFC spread • Packet drop may happen • Selective Repeat • Optimize ECN • Buffer optimization in en-gress port • Fast Congestion Notification o Packets marked as they leave queue o Reduces average queue depth • Faster CNP creation in NIC receive • Give the highest priority for CNP • Faster reaction for CNP in NIC transmit No PFC, ECN Only switch NIC No PFC, ECN Only No PFC, ECN Only No PFC, ECN Only
  46. Lossy-2 Configura.on No PFC, No ECN • No PFC spread

    • Packet drop may happen • Selective Repeat • Packet drop trigger the reaction in the NIC transmit(Tx) No PFC, No ECN switch NIC No PFC, No ECN No PFC, No ECN No PFC, No ECN
  47. Traffic Classifica.on • Required for setting: • QoS • Buffer

    management • PFC • Indicated by • DSCP (Differentiated Service Code Point, layer 3, in IP header). • PCP (Priority Code Point, layer2, in Vlan tag). • DSCP is the recommended method. • Set by trust command. TOS (RF791) DSCP (RFC 2474) Precedence delay Throu ghput Reliabi lity Spare TOS: Class selector ECN DSCP: 0b000 payload IP header IP header Ether Type CRC PCP .1Q S. MAC VLAD TPID VLAN CFI & VID 1 Byte 3 bits Priority 3 bits D. MAC Layer2 Layer3
  48. Recommended Classification • RoCE • Lossless / lossy • Uses

    DSCP 26 / PCP 3. Mapped to switch-priority 3 • CNP • Lossy • Uses DSCP 48 / PCP 6. Mapped to switch-priority 6 • Strict scheduling (highest priority) • Other traffic • Untouched (default) • Recommended to enable ECN for TCP as well
  49. Host Ingress QoS Model • Packets are classified into internal

    priority according to the packets priority: • PCP – Priority Code Point, layer 2 priority, located in the VLAN tag • DSCP – DifferenNated Service Code Point, layer 3 priority, located in the IP header • Internal prioriNes are mapped to buffer(s) • Buffer and prioriNes can be configured as • lossy – when buffer is full, packets will be dropped • Lossless – when buffer is almost full, a pause will be sent to the transmiSer to stop transmission • Can be either based on global pause or priority flow control (PFC) • In egress direcNon the device conform the packet priority • Ethernet • Trust PCP – according to WQE • Trust DSCP – according to TCLASS • UD • Trust PCP – according to WQE • Trust DSCP – according to TCLASS • RC • Trust PCP – according to QP’s eth prio • Trust DSCP – according to QP’s TCLASS
  50. Switch Priority Classifica.on DSCP (IP header) (0-63) PCP (VLAN header)

    (0-7) Switch-priority (0-7) Priority Group (PG) (Ingress Buffer) (0-7) Traffic Class (TC) (Egress Queue) (0-7) Default mapping: All to 0 Default mapping: 3 MSB = priority Default mapping: PCP = priority Default mapping: priority = traffic class Used for: ETS ConfiguraNon: WRR, strict ECN: min/max threshold Shared buffer: alpha, reserved Used for: Flow Control: xoff, xon Shared buffer: alpha, reserved