Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

≪ハイパフォーマンス仮想Router≫Brocade Vyatta 5600 vRouter アーキテクチャー概要

4,425 views

Published on

Brocade Vyatta 5600 vRouter はどのような手法で高速化を実現しているのかを概説

Published in: Technology

≪ハイパフォーマンス仮想Router≫Brocade Vyatta 5600 vRouter アーキテクチャー概要

  1. 1. ハイパフォーマンス仮想 ROUTER Brocade Vyatta 5600 vRouter アーキテクチャー概要 1 © 2014 Brocade Communications Systems, Inc.
  2. 2. 現在のCPUはそこそこ速い しかし、現行の実装のままでは厳しい © 2014 Brocade Communications Systems, Inc. 2 コントロールプレーン データプレーン パケットサイズ(Byte) 1024 64 パケット/秒 1.2Million 14.4Million 到達間隔(秒) 835ns 67.2ns クロックサイクル(3GHz) 2504 201 ハードウェア(ネットワーク機器)のアプローチ コントロールプレーンとデータプレーンの分離 転送経路の決定:コントロールプレーン 実際の転送:データプレーン ハードウェア処理でカバーすることでパフォーマンスを稼ぐ ソフトウェアアプローチ ハードウェアと同様の実装を工夫することで、汎用プロセッサのみ で10G wireレートを実現することができる 性格の異なるデータパスを共存させると速度が出ない
  3. 3. しかし、10Gwireレート転送は至難の業 1.割り込みの限界 •割り込みでは追いつけない(受信ごとに割り込み発生) •頻繁に生じる割り込みが運用効率を下げる 2.Page管理のミスマッチ(小さいPage-4KBye) •頻繁にTLBミスが生じる(TLB:Translation Lookaside Buffer) 3.CPUコアの分散に偏り •フローごとのCPUコア割り当てが困難 •CPUコア割り当ての偏り(パケットが特定のコアに集中 -飽和)が生じるとスケールしない 4.コントロールプレーン/データプレーンの共存 •コンテキストスイッチが生じる どこに問題がある? © 2014 Brocade Communications Systems, Inc. 3
  4. 4. Intel-DPDK-その1 1.Poll Mode Driver •割り込みを使用しないNICからのデータ転送 2-a.Hugepages •DPDKの機能ではないが、DPDKには必須の機能 •4Kbyte/Pageから2MByteまたは1GByte/Pageに拡張 2-b.メモリマネージャ •リングバッファの提供 •Pageを束ねたZoneを提供 •それぞれのデータはZoneに格納 2-c.バッファマネージャ •固定領域の確保(都度、領域確保・開放を行わない) PMD/メモリ周り © 2014 Brocade Communications Systems, Inc. 4
  5. 5. Intel-DPDK-その2 3.Flow Classification •高速なハッシュ計算により、それぞれのフローを適切な コアに分散 4.Environment Abstraction Layer •カーネルと同レイヤで動作 •Linuxカーネルをバイパスすることでオーバーヘッドを排除 •特定コアをデータ転送に特化させることが可能 •これらの機能を統合 •データプレーンアプリケーションをDPDK上に実装 Flow Classification/EAL © 2014 Brocade Communications Systems, Inc. 5
  6. 6. 5400と5600のアーキテクチャの違い コントロール/データプレーンの分離 © 2014 Brocade Communications Systems, Inc. 6 5400 すべての機能が一枚岩で実装 (分散/スケールが困難) 5600 コントロール/データプレーンを分離 (分散/スケールがより容易に) コントロールプレーン データプレーン
  7. 7. コントロール/データプレーンの分離 IA-x86ベースの実装 © 2014 Brocade Communications Systems, Inc. 7 •コントロールプレーン •Linuxベース •Routingプロトコル •データプレーン •DPDKアプリケーション https://www.nic.ad.jp/ja/materials/iw/2012/proceedings/d1/d1-Kohmura.pdf
  8. 8. CPUコアアサイン原則 •受信-2コア/送信-1コアを使用 •割り込み頻度の例 •5600 (NIC割り込みがほとんど0) vyatta@vyatta:~$ cat /proc/interrupts |grep igb CPU0 CPU1 CPU2 CPU3 41: 0 0 1 1 PCI-MSI-edge igb_uio 42: 1 0 1 0 PCI-MSI-edge igb_uio •参考値(5400) パケットを送受信するごとに1づつカウントアップ vyatta@vyatta:~$ cat /proc/interrupts | grep eth CPU0 72: 7680238 PCI-MSI-edge eth0-rxtx-0 74: 9254 PCI-MSI-edge eth1-rxtx-0 © 2014 Brocade Communications Systems, Inc. 8
  9. 9. CPUコアアサイン(4コアの場合) コア/portアサインの例(コア数不足) © 2014 Brocade Communications Systems, Inc. 9 Dataplane CPU activity Core Interface RX Rate TX Rate Idle -------------------------------------------------------- 1 em1 0 2 em1 0 250 2 em1 0 9 em2 126 250 3 em2 0 250 em2 0 250 TX:1コア RX:2コアをアサイン Core1:em1-RX / em1-TX Core2:em1-RX / em2-TX Core3:em2-RX / em2-RX Idleの値 0-250で推移 (0がbusy 250は無負荷) Core0はMgmt用途 で予約 単位はpps (Packets Per Second)
  10. 10. まとめ •Vplane™ •CPUコアアサインの効率化 •Intel DPDKを活用したアプローチ •EAL •HugePages •PMD •etc. •その先へのアプローチ •データプレーンを物理ホストに移行 •分散Router •Vyatta Service Platform Brocade Vyatta 5600 vRouterのキモ © 2014 Brocade Communications Systems, Inc. 10
  11. 11. ありがとうございました 本件に関するお問合せ https://www.brocadejapan.com/form/contact2 ブロケード コミュニケーションズ システムズ 株式会社 11 © 2014 Brocade Communications Systems, Inc.

×