SlideShare a Scribd company logo
1 of 29
Download to read offline
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

What's hot

JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
Kenichi Yoshida
 
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
葛 飛
 

What's hot (20)

WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
WPFの画面をWebブラウザのように拡大・縮小に追従させる方法(オートスクロールバー付き)
 
Database tools for .NET Core
Database tools for .NET CoreDatabase tools for .NET Core
Database tools for .NET Core
 
Drupal deployment trial on Engine Yard
Drupal deployment trial on Engine YardDrupal deployment trial on Engine Yard
Drupal deployment trial on Engine Yard
 
Google Cloud Platformでソーシャルゲームを1本出してみた!
Google Cloud Platformでソーシャルゲームを1本出してみた!Google Cloud Platformでソーシャルゲームを1本出してみた!
Google Cloud Platformでソーシャルゲームを1本出してみた!
 
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
Softlayer と Bluemix (IaaS と PaaS) 適材適所でアプリケーション開発
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
 
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
 
ネットワークエンジニア的Ansibleの始め方
ネットワークエンジニア的Ansibleの始め方ネットワークエンジニア的Ansibleの始め方
ネットワークエンジニア的Ansibleの始め方
 
クラウド化が進む今だから読み解くHyper-Vアーキテクチャ
クラウド化が進む今だから読み解くHyper-Vアーキテクチャクラウド化が進む今だから読み解くHyper-Vアーキテクチャ
クラウド化が進む今だから読み解くHyper-Vアーキテクチャ
 
Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話Chatopsのおかけでエンジニアがルーティンワークから解放された話
Chatopsのおかけでエンジニアがルーティンワークから解放された話
 
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
 
grasysの仕組み解説
grasysの仕組み解説grasysの仕組み解説
grasysの仕組み解説
 
ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!
 
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~ WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~
 
Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方Teamsでのリモート勉強会の開き方
Teamsでのリモート勉強会の開き方
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
 
Drupal8を体験しよう Drupal8 & Docker
Drupal8を体験しよう Drupal8 & DockerDrupal8を体験しよう Drupal8 & Docker
Drupal8を体験しよう Drupal8 & Docker
 
CentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたいCentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたい
 
生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由
 

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

Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Yuya Yamaki
 
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
irix_jp
 
JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向
irix_jp
 
OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告
Akira Yoshiyama
 

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

NFVについて
NFVについてNFVについて
NFVについて
 
OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方OPNFVのコンポーネントと調べ方
OPNFVのコンポーネントと調べ方
 
OPNFV Summit Feedback - OpenStack最新情報セミナー 2017年7月
OPNFV Summit Feedback - OpenStack最新情報セミナー 2017年7月OPNFV Summit Feedback - OpenStack最新情報セミナー 2017年7月
OPNFV Summit Feedback - OpenStack最新情報セミナー 2017年7月
 
NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月
NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月
NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月
 
Nv2017 19 (invited) mibu (nec)
Nv2017 19 (invited) mibu (nec)Nv2017 19 (invited) mibu (nec)
Nv2017 19 (invited) mibu (nec)
 
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
Wpf 4とSilverlight 4、これから業務アプリを開発するならどっち?
 
Ncnn a universal and efficient neural network inference with vulkan
Ncnn  a universal and efficient neural network inference with vulkanNcnn  a universal and efficient neural network inference with vulkan
Ncnn a universal and efficient neural network inference with vulkan
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the future
 
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
【Interop Tokyo 2016】 Seminar - EA-08 : シスコ データセンターSDN戦略、3本の矢
 
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
Machine Learning Night - Preferred Networksの顧客向けプロダクト開発 - 谷脇大輔
 
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
 
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニングOptuna on Kubeflow Pipeline 分散ハイパラチューニング
Optuna on Kubeflow Pipeline 分散ハイパラチューニング
 
160719 we love-sd-wan(juniper)_0.2
160719 we love-sd-wan(juniper)_0.2160719 we love-sd-wan(juniper)_0.2
160719 we love-sd-wan(juniper)_0.2
 
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
 
OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
 
JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向JTF2014:OpenStackの概要と最新技術動向
JTF2014:OpenStackの概要と最新技術動向
 
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
Cloud operator days tokyo 2020講演資料_少人数チームでの機械学習製品の効率的な開発と運用
 
OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告OpenStack Summit in Atlanta 参加報告
OpenStack Summit in Atlanta 参加報告
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 

More from slankdev

More from slankdev (15)

Kernel vm13lt
Kernel vm13ltKernel vm13lt
Kernel vm13lt
 
OSC2017Hokkaido
OSC2017HokkaidoOSC2017Hokkaido
OSC2017Hokkaido
 
DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発DPDKを用いたネットワークスタック,高性能通信基盤開発
DPDKを用いたネットワークスタック,高性能通信基盤開発
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
 
Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話Offloading BPF Implementation to FPGA-NIC したいねって話
Offloading BPF Implementation to FPGA-NIC したいねって話
 
Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告Seccamp 2016 チューター成果報告
Seccamp 2016 チューター成果報告
 
サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会サイボウズ・ラボユース中間報告会
サイボウズ・ラボユース中間報告会
 
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
 
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
 
Seurity Camp Award 2016
Seurity Camp Award 2016 Seurity Camp Award 2016
Seurity Camp Award 2016
 
OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT OSC2016 Tokyo/Spring LT
OSC2016 Tokyo/Spring LT
 
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
 
LibPGEN 1st Step Guide
LibPGEN 1st Step GuideLibPGEN 1st Step Guide
LibPGEN 1st Step Guide
 
libpgenでパケット操作
libpgenでパケット操作libpgenでパケット操作
libpgenでパケット操作
 
ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃ARPSpoofing攻撃によるMITM攻撃
ARPSpoofing攻撃によるMITM攻撃
 

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