Download - 動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
susanow NFV:High Performance NFVi Automatically Optimizes
for the Environment
SHIROKURA Hiroki @slankdevpowered 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. Backgrounda. NFVとDPDKとその課題
2. susanow NFV overviewa. 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を採用
スレッドベースの独自NFViVNF性能をミリ秒オーダで調節可能
susanow NFV overview
susanow NFV1. D2 Framework
◎ データプレーン自動最適化
◎ ネットワーク機能の性能調節
◎ 性能調節をプログラム可能
2. NFV基盤 ssnNFVi
◎ VMを用いない高性能NFV基盤
Flexible, High-Performance, Orchestrate
14
http://github.com/susanow/susanow
D2: Dynamic Thread Optimize TechnologyNFの性能を自動で調節可能にするスケーラブルフレームワーク
15
D2 operationNo re-executionNo 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 VMto 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開発
◎ 初期開発もパケット処理ロジックのみ
◎ 必要に応じてリソースを増やして性能向上可能
◎ しかも動かしながら性能向上もできる