lagopus + dockerのdpdk接続

27
0 Copyright©2016 NTT corp. All Rights Reserved. Lagopus + Docker DPDK接続 2017/02/15 @hibitomo @falcon8823 0

Upload: tomoya-hibi

Post on 22-Mar-2017

503 views

Category:

Software


0 download

TRANSCRIPT

0 Copyright©2016 NTT corp. All Rights Reserved.

Lagopus + Docker のDPDK接続

2017/02/15

@hibitomo

@falcon8823

0

1 Copyright©2016 NTT corp. All Rights Reserved.

今日伝えたいこと

すごーい!LagopusはdockerとDPDKで接続できるスイッチなんだね! #npstudy

2 Copyright©2016 NTT corp. All Rights Reserved.

Lagopus-0.2

DPDKによる仮想環境との接続

Lagopus + docker のDPDK接続

新Lagopus

Agenda

3 Copyright©2016 NTT corp. All Rights Reserved.

Lagopus

OpenFlowスイッチのソフトウェア実装

汎用x86サーバで動作可能

OSSとして公開 (2014年1月 0.1.x 公開, 2015年8月 0.2.x 公開)

高速なパケット処理と幅広いプロトコルに対応

> 10Gbps

OpenFlow1.3+tunneling

OpenFlow コントローラ

コントロールプレーン

OpenFlow プロトコル

OpenFlow スイッチ

データプレーン

Flow Table フローパターン アクション

フローパターン アクション カウンター

カウンター

Flow Table #2

Flow Table #3

Flow Table #4

4 Copyright©2016 NTT corp. All Rights Reserved.

0.2.5 Apr 6, 2016 GTP-U tunnel support, some bug fixes

0.2.6 May 2, 2016 performance improvement, but DPDK ixgbe vector enabled, much slow

0.2.7 May 18, 2016 DPDK vector disabled again

0.2.8 July 12, 2016 build and tests on Ubuntu 16.04LTS deprecated -p parameter

• ignored if specified

it works as L2 and/or L3 Hybrid switch

0.2.9 Aug 26, 2016 DPDK 16.07

0.2.10 Dec 20, 2016 DPDK 16.11

最近のリリース

action: NORMAL対応

L2/L3 Hybrid switch

Tunnel対応

5 Copyright©2016 NTT corp. All Rights Reserved.

性能評価

単純なポートフォワードを実施した場合のスループットを測定

CPU E5-2697v2 2.70GHz

NIC Intel X520

メモリ 64GB OS Ubuntu 14.04LTS

CPU E5-2667v3 3.20GHz

NIC Intel XL710

メモリ 64GB OS Ubuntu 14.04LTS

10GbE 測定環境

測定結果

40GbE 測定環境

測定結果

6.66

8.65

9.28 9.49 9.63 9.77 9.83 9.85 9.86

0

1

2

3

4

5

6

7

8

9

10

0 200 400 600 800 1000 1200 1400

Throughp

ut(G

bps)

Packetsize(byte)

Lagopus

Wire-rate

7.7

15.5

26.5

34.2

39.2 39.5

0

5

10

15

20

25

30

35

40

0 200 400 600 800 1000 1200 1400

Throughp

ut(G

bps)

Packetsize(byte)

Lagopus

Wire-rate

6 Copyright©2016 NTT corp. All Rights Reserved.

Lagopus-0.2

DPDKによる仮想環境との接続

Lagopus + docker のDPDK接続

新Lagopus

Agenda

7 Copyright©2016 NTT corp. All Rights Reserved.

Interop Shownet 2016 vhost-user PMD による仮想マシンとのDPDK接続

DPDKによる仮想環境との接続(VM)

HV VNF VNF VNF

lagopus

lagopus

uplink

downlink

hash計算とMACへの埋め込み

MACにもとづいてVMへ送信(staticな

flow entry)

8 Copyright©2016 NTT corp. All Rights Reserved.

vhost-user PMD

DPDKによる仮想環境との接続(VM)

引用: http://events.linuxfoundation.org/sites/events/files/slides/Scalable%20high-

performance%20userland%20container%20networking%20for%20NFV.pdf

9 Copyright©2016 NTT corp. All Rights Reserved.

SR-IOV or virtio-user

DPDKによる仮想環境との接続(コンテナ)

引用: http://dpdk.org/doc/guides/howto/virtio_user_for_container_networking.html#figure-use-

models-for-running-dpdk-in-containers

10 Copyright©2016 NTT corp. All Rights Reserved.

DPDKによる仮想環境との接続(コンテナ)

引用: http://dpdk.org/doc/guides/howto/virtio_user_for_container_networking.html#figure-use-

models-for-running-dpdk-in-containers

virtio-user

11 Copyright©2016 NTT corp. All Rights Reserved.

lagopus/doc/how-to-use-virtio-user.md https://github.com/lagopus/lagopus/pull/106/files

DPDK HowTo Guides http://dpdk.org/doc/guides/howto/virtio_user_for_container_network

ing.html#figure-use-models-for-running-dpdk-in-containers

Scalable High-Performance User Space Interface/Stack for

Containers in NFV - Jianfeng Tan & Zhihong Wang, Intel http://events.linuxfoundation.org/sites/events/files/slides/Scalable%2

0high-performance%20userland%20container%20networking%20for%20NFV.pdf

参考資料

12 Copyright©2016 NTT corp. All Rights Reserved.

Lagopus-0.2

DPDKによる仮想環境との接続

Lagopus + docker のDPDK接続

新Lagopus

Agenda

13 Copyright©2016 NTT corp. All Rights Reserved.

接続例

Lagopus

Server

Container

Testpmd

14 Copyright©2016 NTT corp. All Rights Reserved.

Docker, Lagopusのインストール

省略

Hugepagesの設定

省略.hugepagesizeは 1G 必須.

hugetlbfsのマウント

/etc/fstabを編集

ホスト用,各コンテナ用それぞれでマウントする

手順(準備)

# for host

none /mnt/huge hugetlbfs pagesize=1G,size=4G 0 0

# for container

none /mnt/huge_c0 hugetlbfs pagesize=1G,size=1G 0 0

15 Copyright©2016 NTT corp. All Rights Reserved.

Dockerイメージ

testpmdのdockerイメージ

Lagopusの設定

Interfaceを仮想マシン接続時と同じく,vhost-userで用意する.

参考:http://www.slideshare.net/tomoyahibi/lagopusl3-lagopus

手順(Docker,Lagopus)

channel channel01 create -dst-addr 127.0.0.1 -protocol tcp

controller controller01 create -channel channel01 -role equal -connection-type main

interface interface01 create -type ethernet-dpdk-phy -device eth_vhost0,iface=/tmp/dpdk/sock0

interface interface02 create -type ethernet-dpdk-phy -device eth_vhost1,iface=/tmp/dpdk/sock1

port port01 create -interface interface01

port port02 create -interface interface02

bridge bridge01 create -controller controller01 -port port01 1 -port port02 2 -dpid 0x1

bridge bridge01 enable

flow bridge01 add in_port=1 apply_actions=output:2

flow bridge01 add in_port=2 apply_actions=output:1

16 Copyright©2016 NTT corp. All Rights Reserved.

Lagopusの起動

Dockerの起動

手順(起動)

$ sudo lagopus -d -- -c 0xc -n 2 -m 1024 --

$ docker run -it --rm -v /mnt/huge_c0:/mnt/huge_c0 -v /tmp/dpdk:/tmp/dpdk dpdk-docker

testpmd --no-pci --vdev=virtio_user0,path=/tmp/dpdk/sock0 --

vdev=virtio_user1,path=/tmp/dpdk/sock1 -c 0x3 -n 2 -m 1024 -- --disable-hw-vlan-filter -i

17 Copyright©2016 NTT corp. All Rights Reserved.

virtio-userをつかめるのはDPDKアプリのみ

コンテナで使うHugepagesは8ページ以下しか使えない

CPUを複数ソケットもつ場合,Dockerで使用するノードを明示的に指定する必要がある

ポイント

18 Copyright©2016 NTT corp. All Rights Reserved.

パケットの流れ

pktgen -> 物理 -> vswitch -> Container(L2Fwd) -> vswitch -> 物理 -> pktgen

性能評価

Lagopus or docker0

Server

Container

L2Fwd or Linux Bridge

Container

pktgen-dpdk

OS: Ubuntu 16.04.1

CPU: Xeon E5-2697 v2 @ 2.70GHz メモリ: 64GB

19 Copyright©2016 NTT corp. All Rights Reserved.

性能評価

20 Copyright©2016 NTT corp. All Rights Reserved.

Lagopus-0.2

DPDKによる仮想環境との接続

Lagopus + docker のDPDK接続

新Lagopus

Agenda

21 Copyright©2016 NTT corp. All Rights Reserved.

Lagopus Switch から Lagopus Routerに

OpenFlow Switchで開発した柔軟なフロー検索と処理に加え,様々なネットワーク制御系アプリやオーケストレーションと連携可能とする

• ルータの備える標準的なプロトコル制御機能

• オーバーレイネットワークを実現するVxLANやGRE

• 暗号化(IPsec)の終端機能

新Lagopus

22 Copyright©2016 NTT corp. All Rights Reserved.

パケット処理部,構成情報管理機構,プロトコルエージェントを疎結合で接続

プロトコル処理制御用のAPIをプロトコル毎に提供

詳細は公開中

http://www.lagopus.org/lagopus2-design-book/ja/

Lagopus Router アーキテクチャ

23 Copyright©2016 NTT corp. All Rights Reserved.

BGP Router

Usecase

IPsec Router

25 Copyright©2016 NTT corp. All Rights Reserved.

まとめ

すごーい!LagopusはdockerとDPDKで接続できるルータになるんだね! #npstudy

26 Copyright©2016 NTT corp. All Rights Reserved.

ご清聴ありがとうございました

26

########## ;;;; #### #### ##

#### #### ## ####

##### ######## ################ ## ##

### ######## ## ###### ## ## ## #### ###### ## ## ## ## ##

###### #### ######## #### ##########

####################mmmm ############