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