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
240
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
110
Hack Dive Deeper into VPP Internals
slankdev
3
2k
Kamuee: SRv6対応の設計と実装に関して
slankdev
2
2.6k
DPDK利活用:良質ソフトウェアルータを効率的に作るために我々がやるべきこと
slankdev
7
2.9k
Kamuee: Design and Implementation of High Speed Software Router
slankdev
4
1.4k
Other Decks in Programming
See All in Programming
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
280
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
110
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
150
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
620
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
790
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
バグを直したら useEffect が消えた
colorful12
3
830
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.7k
ALB ログから Trace を気合で繋げる技術
fohte
7
860
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
2
990
信頼性の目標を誰も求めてない
shubox
0
480
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
For a Future-Friendly Web
brad_frost
183
10k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
Ethics towards AI in product and experience design
skipperchong
2
360
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Facilitating Awesome Meetings
lara
57
7.1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
590
Side Projects
sachag
455
43k
Speed Design
sergeychernyshev
33
2.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
The agentic SEO stack - context over prompts
schlessera
0
880
How to build a perfect <img>
jonoalderson
1
5.9k
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開発 ◎ 初期開発もパケット処理ロジックのみ ◎ 必要に応じてリソースを増やして性能向上可能 ◎ しかも動かしながら性能向上もできる