Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
Search
Hiroki SHIROKURA
December 02, 2022
Programming
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発
https://www.ipa.go.jp/jinzai/mitou/2017/gaiyou_t-3.html
Hiroki SHIROKURA
December 02, 2022
More Decks by Hiroki SHIROKURA
See All by Hiroki SHIROKURA
MITOU2017DEMODAYS.pdf
slankdev
0
100
Hack Dive Deeper into VPP Internals
slankdev
3
1.9k
Kamuee: SRv6対応の設計と実装に関して
slankdev
2
2.6k
DPDK利活用:良質ソフトウェアルータを効率的に作るために我々がやるべきこと
slankdev
7
2.8k
Kamuee: Design and Implementation of High Speed Software Router
slankdev
4
1.4k
Other Decks in Programming
See All in Programming
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
950
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
200
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.5k
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
110
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
220
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
180
Vite+ Unified Toolchain for the Web
naokihaba
0
360
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
780
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.5k
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
620
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
490
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
240
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
So, you think you're a good person
axbom
PRO
2
2.1k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
Transcript
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開発 ◎ 初期開発もパケット処理ロジックのみ ◎ 必要に応じてリソースを増やして性能向上可能 ◎ しかも動かしながら性能向上もできる