≪ハイパフォーマンス仮想Router≫Brocade Vyatta 5600 vRouter...

11
ハイパフォーマンス仮想 ROUTER Brocade Vyatta 5600 vRouter アーキテクチャー概要 1 © 2014 Brocade Communications Systems, Inc.

description

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

Transcript of ≪ハイパフォーマンス仮想Router≫Brocade Vyatta 5600 vRouter...

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

ハイパフォーマンス仮想ROUTER

Brocade Vyatta 5600 vRouter

アーキテクチャー概要

1 © 2014 Brocade Communications Systems, Inc.

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

現在のCPUはそこそこ速い しかし、現行の実装のままでは厳しい

© 2014 Brocade Communications Systems, Inc. 2

コントロールプレーン データプレーン

パケットサイズ(Byte) 1024 64

パケット/秒 1.2Million 14.4Million

到達間隔(秒) 835ns 67.2ns

クロックサイクル(3GHz) 2504 201

ハードウェア(ネットワーク機器)のアプローチ

コントロールプレーンとデータプレーンの分離

転送経路の決定:コントロールプレーン

実際の転送:データプレーン

ハードウェア処理でカバーすることでパフォーマンスを稼ぐ

ソフトウェアアプローチ

ハードウェアと同様の実装を工夫することで、汎用プロセッサのみで10G wireレートを実現することができる

性格の異なるデータパスを共存させると速度が出ない

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

しかし、10Gwireレート転送は至難の業

1.割り込みの限界

• 割り込みでは追いつけない(受信ごとに割り込み発生)

• 頻繁に生じる割り込みが運用効率を下げる

2.Page管理のミスマッチ(小さいPage-4KBye)

• 頻繁にTLBミスが生じる(TLB:Translation Lookaside Buffer)

3.CPUコアの分散に偏り

• フローごとのCPUコア割り当てが困難

• CPUコア割り当ての偏り(パケットが特定のコアに集中

-飽和)が生じるとスケールしない

4.コントロールプレーン/データプレーンの共存

• コンテキストスイッチが生じる

どこに問題がある?

© 2014 Brocade Communications Systems, Inc. 3

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

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

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

Intel-DPDK-その2

3.Flow Classification

• 高速なハッシュ計算により、それぞれのフローを適切な

コアに分散

4.Environment Abstraction Layer

• カーネルと同レイヤで動作

• Linuxカーネルをバイパスすることでオーバーヘッドを排除

• 特定コアをデータ転送に特化させることが可能

• これらの機能を統合

• データプレーンアプリケーションをDPDK上に実装

Flow Classification/EAL

© 2014 Brocade Communications Systems, Inc. 5

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

5400と5600のアーキテクチャの違い コントロール/データプレーンの分離

© 2014 Brocade Communications Systems, Inc. 6

5400

すべての機能が一枚岩で実装

(分散/スケールが困難)

5600

コントロール/データプレーンを分離

(分散/スケールがより容易に)

コントロールプレーン

データプレーン

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

コントロール/データプレーンの分離 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

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

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

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

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)

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

まとめ

• Vplane™

• CPUコアアサインの効率化

• Intel DPDKを活用したアプローチ

• EAL

• HugePages

• PMD

• etc.

• その先へのアプローチ

• データプレーンを物理ホストに移行

• 分散Router

• Vyatta Service Platform

Brocade Vyatta 5600 vRouterのキモ

© 2014 Brocade Communications Systems, Inc. 10

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

ありがとうございました

本件に関するお問合せ

https://www.brocadejapan.com/form/contact2

ブロケード コミュニケーションズ システムズ

株式会社

11 © 2014 Brocade Communications Systems, Inc.