Slide 1

Slide 1 text

susanow NFV: High Performance NFVi Automatically Optimizes for the Environment SHIROKURA Hiroki @slankdev powered by IPA Mitou Program 動的なVNFの性能調節フレームワーク開発と それを用いたNFV基盤の開発

Slide 2

Slide 2 text

Self Introduction ◎ 城倉 弘樹 (SHIROKURA Hiroki) ◎ HN: slankdev (twitter, github, etc...) ◎ 法政大学B4 / IIJII技術研究所 ◎ パケット解析, 高性能通信, DPDK ◎ 2017 IPA 未踏事業採択 2

Slide 3

Slide 3 text

Too Long Don’t Read susanow NFV 高性能なNFV基盤をフルスクラッチで開発「僕の考える最強のNFV」 - 性能と迅速性がポイント - VNF性能を動的にスケール - システム概要と設計と実装とかを話す 3

Slide 4

Slide 4 text

Outline 1. Background a. NFVとDPDKとその課題 2. susanow NFV overview a. D2 (VNFの自動スケールフレームワーク) b. ssn-NFVi (新規に開発したスレッドベースのNFV基盤) c. 外部ツール連携 d. 設計と実装 3. Demonstration 4

Slide 5

Slide 5 text

Background

Slide 6

Slide 6 text

ネットワーク機能の柔軟性とNFV 6 ❏ 専用機 (ex. シスコルータ) ❏ 専用機 ❏ ソフトウェアネットワーク機能 柔軟性が向上 昔 現 在

Slide 7

Slide 7 text

Data Plane Development Kit (DPDK) ● 独自にOSやドライバを書かなくてもLinux上で10/40/100GbEが可能に ● 使いこなすにはコンピュータ理論に精通する必要あり ● DPDK VNF はコアの数で性能を調節できる (達人チューニング) 7

Slide 8

Slide 8 text

NFVの課題 1. 性能の問題 2. 複雑な仮想化の問題 3. 柔軟性の問題 8

Slide 9

Slide 9 text

性能の問題 (DPDKが大変) データプレーンの最適化は大変 :( ◎ 十分に性能を出すためにはマルチコアを使い切る必要あり ◎ DPDKを使いこなせる開発者が少ない. 9 ネットワーク機能の開発 ◎ ネットワーク機能のロジック ◎ データプレーン (パケットフォワード部分)の最適化 開発も難しいし時間がかかる 高い開発コストが信頼性を稼ぐのの邪魔になる 信頼性がないから導入が難しい 結果「高性能NFVって実現難しいですよねえ」

Slide 10

Slide 10 text

Note: データプレーンの最適化 10 再プログラム 再実行 - リセットは長い時間がかかる - 再実行 (数秒 ~ 数十秒) - 再プログラム (数週間) 4core, 4多重で4Gbps 8core, 8多重で8Gbps 他にも - パケット処理機能の実装 - PCIe配置とbad-NUMAと 性能に合わせてコアアサイン - NICのHWコンフィグ

Slide 11

Slide 11 text

複雑な仮想化の問題 ● # NF chain ● Flexibility (dynamic/static) ● Performance <-> Security ● DPDK enable ? ● コアの扱い 11 Chaining Functions ● PCI-passthrough ● PCI-passthrough SR-IOV ● Virtio User

Slide 12

Slide 12 text

柔軟性の課題 12 せっかくソフトウェア + たくさんあるコアでやるわけだし, ふんだんに使いたい. でも無駄に使ってる余裕はない 状況に応じて, 最適にコアを使いまわしたい. d-plane: DPDKを採用 スレッドベースの独自NFVi VNF性能をミリ秒オーダで調節可能

Slide 13

Slide 13 text

susanow NFV overview

Slide 14

Slide 14 text

susanow NFV 1. D2 Framework ◎ データプレーン自動最適化 ◎ ネットワーク機能の性能調節 ◎ 性能調節をプログラム可能 2. NFV基盤 ssnNFVi ◎ VMを用いない高性能NFV基盤 Flexible, High-Performance, Orchestrate 14 http://github.com/susanow/susanow

Slide 15

Slide 15 text

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開発者

Slide 16

Slide 16 text

D2 Agent / D2 Operation 16 D2 Agent: NFの性能の監視とD2opを発行する D2 Operation: スレッドの多重化などの操作 D2-op-OUT D2-op-IN

Slide 17

Slide 17 text

D2 最適化の流れ 17

Slide 18

Slide 18 text

ssn-NFVi ◎ D2に最適なnonVM NFV基盤 ◎ D2によるVNFの自動スケーリング ◎ VMを用いないことでVMオーバーヘッドの回避 18

Slide 19

Slide 19 text

Design & Implementation

Slide 20

Slide 20 text

D2: Design & Implementation - バックエンドはC++11 (dpdk v17.08) - フロントエンドはREST API - VNF開発者はD2フレームワークを用いてVNFを開発すれば, 外部からD2opで制御可能 - 外部からの操作は全て, REST API経由で制御可能 - REST APIをラップしたpython モジュールも開発 - 20

Slide 21

Slide 21 text

外部ツール連携 ● REST API ● Python モジュール ● ssnctl コマンド VNFの操作 (作成, 設定, デプロイ...) システムパフォーマンス情報の取得 Grafana/InfluxDBなどにデータを渡して可視化できます. REST APIをそのまま叩けるので, Web Dashboardも用意(開発中) 21

Slide 22

Slide 22 text

REST API 22 ● NFViは全てREST API経由で操作可能 ● APIはSwaggerで管理中 ● スクリプト言語などで簡単にラップ可能

Slide 23

Slide 23 text

ssnpy : susanow python controler ◎ REST APIをラップしたPythonモジュール ◎ D2はssnpyを用いて実装されている. 23

Slide 24

Slide 24 text

ssnctl : control script ● brctlとかovs-vsctlみたいなもの. VNFの生成やデプロイができる ● ssnpyをラップしたスクリプト ● d2の制御もここからできる 24

Slide 25

Slide 25 text

● 簡単なパケットフォワーダ ● トラフィック量に応じて 必要最低限度のリソースで動作する. ● 動作を止めることなく, 動的に自動で最適化 ● トラフィックの上昇/下降に注目 agent https://youtu.be/qc0GnlyICl0 ssnctl https://youtu.be/OFAZyPeJ4tQ 25 Demonstration…. DEMO: D2の自動最適化

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

appendix

Slide 28

Slide 28 text

1. クラウド: 計算機リソース提供 2. ssn: ネットワークリソース提供 3. NW利用者にスケーラブルな ネットワークを提供可能 Use-case: susanow-NFV on Cloud 28 ◎ ssn-NFViをクラウド上にデプロイ ◎ ssn-NFViの空きリソース枯渇前に クラウドのインスタンスを増加 ◎ NFを移動させて, 空きリソースを確保 ◎ サービス全体をスケール ◎ vm: 数秒-数十秒, ssn: 数m秒

Slide 29

Slide 29 text

性 能 向 上 D2によるNFの開発サイクルの迅速化 29 開 始 パケット処理ロジック データプレーン最適化 - スレッドモデル設計 - NICの設定 試 験 導 入 データプレーン最適化 - スレッドモデル再考 - NICの設定再考 試 験 導 入 開 始 パケット 処理ロジック 試 験 導 入 性 能 向 上 性 能 向 上 性 能 向 上 性 能 向 上 性 能 向 上 従来のNF開発 ◎ 性能向上のために再設計が必要なことがある ◎ データプレーン最適化のための開発コスト ◎ コードを書き換える場合は再テストも必須 D2を利用したNF開発 ◎ 初期開発もパケット処理ロジックのみ ◎ 必要に応じてリソースを増やして性能向上可能 ◎ しかも動かしながら性能向上もできる