狠狠撸

狠狠撸Share a Scribd company logo
susanow NFV:
High Performance NFVi
Automatically Optimizes
for the Environment
SHIROKURA Hiroki @slankdev
powered by IPA Mitou Program
動的なVNFの性能調節フレームワーク開発と
それを用いたNFV基盤の開発
Self Introduction
◎ 城倉 弘樹 (SHIROKURA Hiroki)
◎ HN: slankdev (twitter, github, etc...)
◎ 法政大学B4 / IIJII技術研究所
◎ パケット解析, 高性能通信, DPDK
◎ 2017 IPA 未踏事業採択
2
Too Long Don’t Read
susanow NFV
高性能なNFV基盤をフルスクラッチで開発「僕の考える最強のNFV」
- 性能と迅速性がポイント
- VNF性能を動的にスケール
- システム概要と設計と実装とかを話す
3
Outline
1. Background
a. NFVとDPDKとその課題
2. susanow NFV overview
a. D2 (VNFの自動スケールフレームワーク)
b. ssn-NFVi (新規に開発したスレッドベースのNFV基盤)
c. 外部ツール連携
d. 設計と実装
3. Demonstration
4
Background
ネットワーク機能の柔軟性とNFV
6
? 専用機 (ex. シスコルータ)
? 専用機
? ソフトウェアネットワーク機能
柔軟性が向上
昔
現
在
Data Plane Development Kit (DPDK)
● 独自にOSやドライバを書かなくてもLinux上で10/40/100GbEが可能に
● 使いこなすにはコンピュータ理論に精通する必要あり
● DPDK VNF はコアの数で性能を調節できる (達人チューニング)
7
NFVの課題
1. 性能の問題
2. 複雑な仮想化の問題
3. 柔軟性の問題
8
性能の問題 (DPDKが大変)
データプレーンの最適化は大変 :(
◎ 十分に性能を出すためにはマルチコアを使い切る必要あり
◎ DPDKを使いこなせる開発者が少ない.
9
ネットワーク機能の開発
◎ ネットワーク機能のロジック
◎ データプレーン (パケットフォワード部分)の最適化
開発も難しいし時間がかかる
高い開発コストが信頼性を稼ぐのの邪魔になる
信頼性がないから導入が難しい
結果「高性能NFVって実現難しいですよねえ」
Note: データプレーンの最適化
10
再プログラム
再実行
- リセットは長い時間がかかる
- 再実行 (数秒 ~ 数十秒)
- 再プログラム (数週間)
4core, 4多重で4Gbps
8core, 8多重で8Gbps
他にも
- パケット処理機能の実装
- PCIe配置とbad-NUMAと
性能に合わせてコアアサイン
- NICのHWコンフィグ
複雑な仮想化の問題
● # NF chain
● Flexibility (dynamic/static)
● Performance <-> Security
● DPDK enable ?
● コアの扱い
11
Chaining Functions
● PCI-passthrough
● PCI-passthrough SR-IOV
● Virtio User
柔軟性の課題
12
せっかくソフトウェア + たくさんあるコアでやるわけだし,
ふんだんに使いたい.
でも無駄に使ってる余裕はない
状況に応じて,
最適にコアを使いまわしたい.
d-plane: DPDKを採用
スレッドベースの独自NFVi
VNF性能をミリ秒オーダで調節可能
susanow NFV
overview
susanow NFV
1. D2 Framework
◎ データプレーン自動最適化
◎ ネットワーク機能の性能調節
◎ 性能調節をプログラム可能
2. NFV基盤 ssnNFVi
◎ VMを用いない高性能NFV基盤
Flexible, High-Performance, Orchestrate
14
http://github.com/susanow/susanow
D2: Dynamic Thread Optimize Technology
NFの性能を自動で調節可能にするスケーラブルフレームワーク
15
D2 operation
No re-execution
No reprogramming
パケット処理ロジック
Dplane最適化ロジック
パケット処理ロジック
Dplane最適化ロジック
D2 Framework
NFの開発工程からDplaneの最適化を分離(自動化可能にした)
Support
- Switch/Router
- Firewall/DPI
- etc...
NF開発者
自動
NF開発者
D2 Agent / D2 Operation
16
D2 Agent: NFの性能の監視とD2opを発行する
D2 Operation: スレッドの多重化などの操作
D2-op-OUT D2-op-IN
D2 最適化の流れ
17
ssn-NFVi
◎ D2に最適なnonVM NFV基盤
◎ D2によるVNFの自動スケーリング
◎ VMを用いないことでVMオーバーヘッドの回避
18
Design &
Implementation
D2: Design & Implementation
- バックエンドはC++11 (dpdk v17.08)
- フロントエンドはREST API
- VNF開発者はD2フレームワークを用いてVNFを開発すれば,
外部からD2opで制御可能
- 外部からの操作は全て, REST API経由で制御可能
- REST APIをラップしたpython モジュールも開発
-
20
外部ツール連携
● REST API
● Python モジュール
● ssnctl コマンド
VNFの操作 (作成, 設定, デプロイ...)
システムパフォーマンス情報の取得
Grafana/InfluxDBなどにデータを渡して可視化できます.
REST APIをそのまま叩けるので, Web Dashboardも用意(開発中)
21
REST API
22
● NFViは全てREST API経由で操作可能
● APIはSwaggerで管理中
● スクリプト言語などで簡単にラップ可能
ssnpy : susanow python controler
◎ REST APIをラップしたPythonモジュール
◎ D2はssnpyを用いて実装されている.
23
ssnctl : control script
● brctlとかovs-vsctlみたいなもの. VNFの生成やデプロイができる
● ssnpyをラップしたスクリプト
● d2の制御もここからできる
24
● 簡単なパケットフォワーダ
● トラフィック量に応じて
必要最低限度のリソースで動作する.
● 動作を止めることなく,
動的に自動で最適化
● トラフィックの上昇/下降に注目
agent https://youtu.be/qc0GnlyICl0
ssnctl https://youtu.be/OFAZyPeJ4tQ
25
Demonstration….
DEMO: D2の自動最適化
susanow
NFV
More Dynamic :)
Higher performance :)
Dynamic Dataplane Tuning w/t D2
Extensive Scalability
w/t susanow cluster
Programmable Interfaces for orchestration
High performance NFVi w/o VM
to avoid VM-overhead
appendix
1. クラウド: 計算機リソース提供
2. ssn: ネットワークリソース提供
3. NW利用者にスケーラブルな
ネットワークを提供可能
Use-case: susanow-NFV on Cloud
28
◎ ssn-NFViをクラウド上にデプロイ
◎ ssn-NFViの空きリソース枯渇前に
クラウドのインスタンスを増加
◎ NFを移動させて, 空きリソースを確保
◎ サービス全体をスケール
◎ vm: 数秒-数十秒, ssn: 数m秒
性
能
向
上
D2によるNFの開発サイクルの迅速化
29
開
始
パケット処理ロジック
データプレーン最適化
- スレッドモデル設計
- NICの設定
試
験
導
入
データプレーン最適化
- スレッドモデル再考
- NICの設定再考
試
験
導
入
開
始
パケット
処理ロジック
試
験
導
入
性
能
向
上
性
能
向
上
性
能
向
上
性
能
向
上
性
能
向
上
従来のNF開発
◎ 性能向上のために再設計が必要なことがある
◎ データプレーン最適化のための開発コスト
◎ コードを書き換える場合は再テストも必須
D2を利用したNF開発
◎ 初期開発もパケット処理ロジックのみ
◎ 必要に応じてリソースを増やして性能向上可能
◎ しかも動かしながら性能向上もできる

More Related Content

動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発