linuxにおけるパケット処理機構の 性能評価に基づいたnfv導⼊ … ·...

32
Linuxにおけるパケット処理機構の 性能評価に基づいたNFV導⼊の⼀検討 ○村松 真†, 川島 ⿓太†, 中⼭ 裕貴††, 林 經正††, 松尾 啓志名古屋⼯業⼤学⼤学院 †† 株式会社ボスコ・テクノロジーズ ICM研究会 2016/03/11

Upload: others

Post on 27-Oct-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Linuxにおけるパケット処理機構の 性能評価に基づいたNFV導⼊の⼀検討

○村松 真†, 川島 ⿓太†, 中⼭ 裕貴††, 林 經正††, 松尾 啓志† † 名古屋⼯業⼤学⼤学院 †† 株式会社ボスコ・テクノロジーズ ICM研究会

2016/03/11

研究⽬的

1

NFV環境に適したサーバ構成を検討

汎⽤IAサーバ

パケット処理機構

VM

物理環境

仮想化環境 仮想NICバックエンド機構

仮想スイッチ

性能要因を考察

アウトライン

2

u 研究⽬的 ü パケット処理機構と仮想NICバックエンド機構

u 評価内容

評価(1): 物理サーバ上でのパケット転送

評価(2): VMと仮想スイッチ間のパケット転送

評価(3): VM上でのパケット転送

u NFV環境のサーバ構成の検討

u まとめと今後の課題

Network Functions Virtualization (NFV)

u ソフトウェアでネットワーク機能を実現

3

専⽤ハードウェア機器

汎⽤IAサーバ

VMVMVM VM

機器コスト・運⽤コストを削減

迅速かつ柔軟にサービスを提供可能

汎⽤IAサーバの課題

4

汎⽤IAサーバ

VM

パケット処理機構

仮想NICバックエンド機構

割り込み

パケットコピー

コンテキストスイッチ

OpenFlow処理 仮想スイッチ

新たなパケット処理機構(仮想スイッチ)/仮想NICバックエンド機構が提案

パケット処理機構/仮想NICバックエンド機構

u パケット処理機構 (仮想スイッチ)

ü  NAPI: Linux New API (Open vSwitch)

ü  netmap (VALE)

ü  Intel DPDK (OVS with DPDK, Lagopus)

u 仮想NICバックエンド機構

ü  vhost-net

ü  vhost-user

5

パケット処理機構と仮想スイッチ

6NIC

memory

skb

DMA page

user

spa

ceke

rnel

spa

ce

NIC

memorynetmap ring

NIC

memoryDMA page

Linux NAPI netmap DPDK

DMADMA DMADMA

DMA to

User Space

DMA from

User Space

割り込み/ポーリング

割り込み/ポーリング

VALEスイッチ

Open vSwitch

netmap API

直接参照

DPDK API

ポーリング

OVS/DPDKとLagopusの違い

7NIC

memory

skb

DMA page

user

spa

ceke

rnel

spa

ce

NIC

memorynetmap ring

NIC

memoryDMA page (Hugepage)

Linux NAPI netmap DPDK

ポーリングDMADMA DMADMA

DMA to

User Space

DMA from

User Space

割り込み/ポーリング

割り込み/ポーリング

VALEスイッチ

Open vSwitch

netmap API

直接参照

DPDK API

I/O RX Processing I/O TX

I/O RX Processing I/O TX

I/O RX

Processing

I/O TX

I/O RX

Processing

I/O TX

CPU1

CPU1

CPU2

CPU3

OVS/DPDK (Run to completion)

Lagopus (Pipeline)

フロー単位で並列処理

⼊⼒---処理---出⼒をパイプライン処理

I/O RX

Processing

I/O TX

CPU2

仮想NICバックエンド機構

8

user

spa

ceke

rnel

spa

ce

memory

vhost-net vhost-user

VM

memory

物理サーバ

メモリコピー

vhost-net

物理サーバ

VM

memory

バッファ

参照

メモリコピーコンテキスト

スイッチが発⽣コンテキストスイッチが

発⽣しない

アウトライン

9

u 研究⽬的 ü パケット処理機構と仮想NICバックエンド機構

u 評価内容

評価(1): 物理サーバ上でのパケット転送

評価(2): VMと仮想スイッチ間のパケット転送

評価(3): VM上でのパケット転送

u NFV環境のサーバ構成の検討

u まとめと今後の課題

評価項⽬

本研究における評価対象と評価項⽬

10

物理環境の評価対象

パケット処理機構 Linux NAPI

netmapIntel DPDK

仮想化環境の評価対象

仮想スイッチ Open vSwitch

VALELagopus

仮想NICバックエンド機構 vhost-netvhost-user

フロー数 単⼀フロー複数フロー

エントリ数 単⼀エントリ複数エントリ

チェーニング数 単⼀VM複数VM

VMのパケット処理機構 Linux NAPI

netmapIntel DPDK

パケット転送速度

パケット転送遅延時間・遅延ジッタ

アウトライン

11

u 研究⽬的 ü パケット処理機構と仮想NICバックエンド機構

u 評価内容

評価(1): 物理サーバ上でのパケット転送

評価(2): VMと仮想スイッチ間のパケット転送

評価(3): VM上でのパケット転送

u NFV環境のサーバ構成の検討

u まとめと今後の課題

評価(1): 評価環境

12

10G Ethernet

CPU Intel Core i7 3.4GHz (4core, HT:off)

Memory 16GB

NIC Intel X540-T2 10Gb Ethernet

物理サーバの性能OS Fedora 22 (4.0.4-301-x86

64)

OVS v2.4.0

netmap v11.1

Lagopus v0.2.3

DPDK v2.1.0

ソフトウェアバージョン

•  1 フロー

•  UDP

† Open Source Traffic Analyzer , https://people.kth.se/~danieltt/pktgen/

port1port2

Open Source Traffic

Analyzer†

•  スループット

•  遅延

port1 port2

パケット処理機構

仮想スイッチ

•  エントリ数: 1

•  in_port=1, output:2

物理サーバ

評価(1): 評価対象/評価内容

u 評価対象

u 評価内容

ü パケット転送速度

ü パケット転送遅延

13

OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK仮想スイッチ OVS VALE OVS Lagopus

(動作空間) (Kernel) (User) (User) (User)パケット処理機構 NAPI netmap DPDK DPDK

0

2

4

6

8

10

OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK

Thro

ughp

ut [G

bps]

64 128 256 384 512 768 1024 1500

評価(1): パケット転送速度

14

v0.2.4で改善

約3.5Gbps (64B)

[B]

評価(1): 1パケットに必要なCPUサイクル数†

u CPU Hz (3.4G) ÷ pps から概算

15

OVS/NAPIに焦点を当てて要因を考察

† Assessing Soft- and Hardware Bottlenecks in PC-based Packet Forwarding Systems, Paul Emmerich et. al, Technische Universität München, ICN 2015

OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK2,294 288 262 7,389

評価(1): OVS/NAPIの性能要因

16

NIC

DMA page

skb

skb Linear Bufheader

memcpy

memory

0

500

1000

1500

2000

2500

64 128 256

Cyc

les

Data Size [B]

L1 Cache

0

500

1000

1500

2000

2500

64 128 256

Cyc

les

Data Size [B]

RAM

memcpyだけで約1000サイクル消費

評価(1): OVS/NAPIの性能要因

17

NIC

DMA page

skb

skb Linear Bufheader

memcpy

skbの確保/解放

lock/unlock 6回

memory

netmap, DPDKはゼロコピー, ロック回数の削減により⾼速化を実現

根源的な処理に約50%(1000~/2294)のサイクル数を消費

評価(1): パケット転送遅延

18

0

100,000

200,000

300,000

400,000

500,000

Cou

nts

Latency [us] 10 20 30 40

u 転送レート

ü  100K pps

OSTAOVS/DPDK

VALE/netmap

OVS/NAPI

Lagopus/DPDK

評価(1): パケット転送遅延

19

0 10,000 20,000 30,000 40,000 50,000 60,000 70,000

Cou

nts

Latency [us]

500K OSTA OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK

0 10,000 20,000 30,000 40,000 50,000 60,000 70,000

Cou

nts

Latency [us]

1M OSTA OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK

10 20 30 40

10 20 30 40

ハードウェア割り込みとポーリングが半々に混在

ほとんどのパケットをポーリング処理

DPDKはポーリングのみであるため遅延ジッタが常に安定

アウトライン

20

u 研究⽬的 ü パケット処理機構と仮想NICバックエンド機構

u 評価内容

評価(1): 物理サーバ上でのパケット転送

評価(2): VMと仮想スイッチ間のパケット転送

評価(3): VM上でのパケット転送

u NFV環境のサーバ構成の検討

u まとめと今後の課題

評価(2): 評価環境

2110G Ethernet

port1

OVS

VM

Open Source Traffic Analyzer

仮想NICバックエンド機構

•  1 フロー

•  UDP

観測点

CPU Memory OS2 cores 1 GB CentOS 7.2

VMの性能

port2

•  エントリ数: 1

•  in_port=2, output:1 port1

物理サーバ

評価(2): 各実装パターンの評価

22

vhost-net vhost-net

vhost-net

Pattern 1 Pattern 2

Pattern 3 Pattern 4 (vhost-user)

OVS (Kernel)

OVS (User)

OVS (DPDK)

OVS (DPDK)

Use

rK

erne

lK

erne

lU

ser

Use

r

port1 port1

port1port1

コンテキストスイッチ

VMVM

VM VM

コンテキストスイッチ以外

評価(2): 評価結果

23

0

2

4

6

8

10

Pattern 1 Pattern 2 Pattern 3 Pattern 4

Thro

ughp

ut [G

bps]

64B 128B 256B 384B 512B 768B 1024B 1500B

メモリコピー カーネル/ユーザ空間間のコンテキストスイッチ

コンテキストスイッチが発⽣しない

アウトライン

24

u 研究⽬的 ü パケット処理機構と仮想NICバックエンド機構

u 評価内容

評価(1): 物理サーバ上でのパケット転送

評価(2): VMと仮想スイッチ間のパケット転送

評価(3): VM上でのパケット転送

u NFV環境のサーバ構成の検討

u まとめと今後の課題

評価(3): 評価環境

25

port2

10G Ethernet

port1

OVS

OVS/NAPI

port3 port4

in_port=3, output:4

•  1 フロー

•  UDP

port1port2

Open Source Traffic Analyzer

ü  Pattern 1 と Pattern 4を対象 vhost-net/OVS(Kernel) vhost-user/OVS(DPDK)

in_port=1, output:3

in_port=4, output:2

仮想NICバックエンド機構

VM

物理サーバ

評価(3): パケット転送速度

26

0 2 4 6 8

10 12 14 16

64 128 256 384 512 768 1024 1500

Thro

ughp

ut [M

pps]

Packet Size [B]

Pattern 1 Pattern 4 Theoretical

0 0.2 0.4 0.6 0.8

1 1.2 1.4 1.6

64 128 256 384 512 768 1024 1500

Thro

ughp

ut [M

pps]

Packet Size [B]

Pattern 1 Pattern 4 評価(1): OVS/NAPI

VMのOVS/NAPIがボトルネック

コンテキストスイッチがボトルネック

アウトライン

27

u 研究⽬的 ü パケット処理機構と仮想NICバックエンド機構

u 評価内容

評価(1): 物理サーバ上でのパケット転送

評価(2): VMと仮想スイッチ間のパケット転送

評価(3): VM上でのパケット転送

u NFV環境のサーバ構成の検討

u まとめと今後の課題

NFV環境のサーバ構成の検討

u 評価(1)に基づく検討

ü 転送速度

ü 遅延時間・ジッタ

ü 汎⽤性

28

ü  OVS/NAPI

ü  VALE/netmap

ü  OVS/DPDK

状況に応じたパケット処理機構と仮想スイッチを選択

7Mpps per worker thread

遅延ジッタが不安定

まとめと今後の課題

u まとめ ü  Linux上で様々なパケット処理機構を評価し、性能要因を考察

ü  転送速度を重要視する場合はnetmap, Intel DPDK

›  New APIではmemcpyやlockなどに処理に⼤半のサイクル数を消費

ü  遅延ジッタはNew API, netmap, Intel DPDKすべてにおいて

抑えられることが確認

›  厳密に抑えたい場合はIntel DPDKが適切

u 今後の課題

ü  多数のフローが混在する環境下での評価

ü  VM上でDPDKなどのパケット処理機構を⽤いた際の評価29

Lagopus 0.2.4の遅延ジッタ

300

10000 20000 30000 40000 50000 60000 70000

Freq

uenc

y

Latency [ns]

OSTA OVS/NAPI VALE/netmap OVS/DPDK Lagopus/DPDK Lagopus/DPDK'

10 20 30 40

0

100000

200000

300000

400000

500000

Freq

uenc

y

Latency [ns]

OSTA OVS/NAPI VALE/netmap

OVS/DPDK Lagopus/DPDK Lagopus/DPDK'

10 20 30 40

cycle vs. pps

u CPU = Core i7 3770 (3.4GHz, Ivy)

31

0

2

4

6

8

10

12

14

16

18

Thro

ught

pu [M

pps]

Cycles

cycles vs. pps (3.4GHz)