研究背景 クラウドコンピューティングサービスの普及 ユーザ数の増加に伴う問題 マルチテナント方式の採用 データセンタの需要が増加

Slides:



Advertisements
Similar presentations
IP over DVB-RCS の設計と実装 研究背景 DVB-RCS 衛星回線を用いて受信局から送信局への狭帯域な戻り回線を提供 Forward Link Return Link HUB Terminal.
Advertisements

研究目標 研究目標 提案手法 仮想ネットワーク上でのブロードキャスト、マルチキャスト通信の実現
Webプロキシサーバにおける 動的資源管理方式の提案と実装
最新ファイルの提供を保証する代理FTPサーバの開発
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
第1回.
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
不特定多数の発信者を考慮した ストリーミングシステムの実現
第4章 Internet Address.
仮想ブロードキャストリンクを利用した 片方向通信路の透過的経路制御 藤枝 俊輔(慶應義塾大学)
一対多通信における ネットワーク障害物対応方法選択プロトコルの設計
神奈川大学大学院工学研究科 電気電子情報工学専攻
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
HTTP proxy サーバにおける 動的コネクション管理方式
研究背景 クラウドコンピューティングサービスの普及 マルチテナント方式を採用 データセンタの需要が増加
NEC-早大技術交流会 OpenFlowスイッチによる広域通信の効率的集約法
TCPデータ通信との公平性を考慮した 輻輳適応能力を有する MPEG動画像通信のための品質調整機構
発表の流れ 研究背景 マルチテナント型データセンタ 関連研究 IPマルチキャスト ユニキャスト変換手法 提案手法 性能評価.
輪講: 詳解TCP/IP ACE B3 suzuk.
トランスポート層.
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
ネストした仮想化を用いた VMの安全な帯域外リモート管理
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
IPv6アドレスによる RFIDシステム利用方式
サーバ負荷分散におけるOpenFlowを用いた省電力法
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ
第11章 UDPユーザ・データグラム・プロトコル
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
イーサネットフレームの構造とデータリンク層アドレス
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
リモートホストの異常を検知するための GPUとの直接通信機構
インターネットにおける真に プライベートなネットワークの構築
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
各種ルータに対応する P2P通信環境に関する研究
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
DPDKの処理モデルに基づく NFVノード可視化機構の開発 ー負荷計測手法の一検討ー
Step.7 ダイナミック(動的)ルーティング
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
Intel SGXを用いた仮想マシンの 安全な監視機構
仮想ネットワークを考慮した SoftIRQ制御によるCPU割当ての手法
VMMのソフトウェア若化を考慮した クラスタ性能の比較
VPNとホストの実行環境を統合するパーソナルネットワーク
[招待講演] オープンソース 仮想スイッチの実装に見る DPDKの使用方法と 性能への影響
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
信頼できないクラウドにおける仮想化システムの監視機構
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
Virtualizing a Multiprocessor Machine on a Network of Computers
仮想環境を用いた 侵入検知システムの安全な構成法
仮想マシンと物理マシンを一元管理するための仮想AMT
仮想マシンとホスト間の通信に着目した 段階的なパケット集約によるNFV効率化手法
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ゼロコピー・マイグレーションを 用いた軽量なソフトウェア若化手法
仮想化システムの 軽量なソフトウェア若化のための ゼロコピー・マイグレーション
「クリーンな仮想化」 と要素独立進化型の 仮想化ノード・アーキテクチャ
強制パススルー機構を用いた VMの安全な帯域外リモート管理
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
情報ネットワーク 岡村耕二.
強制パススルー機構を用いた VMの安全な帯域外リモート管理
Presentation transcript:

優先度を考慮した仮想スイッチにおける トンネル処理の負荷分散手法の検討 ○村松 真† 川島 龍太† 齋藤 彰一† 松尾 啓志† †名古屋工業大学 名古屋工業大学大学院 創成シミュレーション工学専攻 2014/07/18 NV研究会

研究背景 クラウドコンピューティングサービスの普及 ユーザ数の増加に伴う問題 マルチテナント方式の採用 データセンタの需要が増加 膨大な数の物理サーバとストレージを管理 ユーザ数の増加に伴う問題 物理サーバの台数が増加 マルチテナント方式の採用 物理サーバ上に複数の仮想サーバを集約し仮想環境を提供 物理サーバの台数を削減 オーバレイプロトコルによる仮想ネットワークの構築 既存のデータセンタのネットワークが利用可能

エッジ・オーバレイ方式への移行が進められている マルチテナント方式の構成 仮想ネットワークを識別 Controller Tunnel Header VM packet OpenFlow Channel OpenFlow Channel User1 User2 VM VM VM VM Security QoS etc Virtual Switch Virtual Switch Tunneling エッジ・オーバレイ方式への移行が進められている Network Driver Network Driver Traditional Datacenter Network

(IP Defragment/Decrypto) エッジ・オーバレイ方式における問題点 ソフトウェアで高度なパケット処理 受信側ホストの仮想スイッチの処理が特定のコアに集中 仮想スイッチのパケット処理の負荷が大 (IP Defragment/Decrypto) softirq Hardware IRQ Driver kernel core1 NIC queue Packet Processing core2 core3 VM core4 VM パケット処理の負荷が大きい場合に 受信処理を行うコアを分散する機構が必要

Receive Side Scaling(RSS)† Driver kernel core1 RSS Q1 Packet Processing core2 Q2 Packet Processing core3 Q3 Pakcet Processing VM core4 性能低下 Q4 VM hash function indirection table queue number hash function ETH IP TCP/UDP Payload indirection table フローを識別してパケット処理を行うコアを 選択する必要がある 入力できるフィールドはIP、TCP/UDPのみ queue number †“Receive-side scaling enhancements in windows server 2008” Nov. 2008. Internet Draft.

予備評価:パケット処理の負荷が高いフロー衝突 トンネリングプロトコル VXLAN + AES暗号化(高負荷の例) ベンチマーク Iperf(UDP) パケットサイズが大きくなるにつれて 負荷が大きくなり処理しきれずに破棄 VMが必要とするCPUリソースが奪われ VMのパケット処理が低下 衝突時にスループットが低下

従来モデルにおける問題点 機械的にフローの割り込み先コアを決定 スループットの低下につながる フローの割り込み先コアが衝突 仮想スイッチのパケット処理が特定のコアに集中 VMが動作しているコアに割り込む 負荷が高いコアなど スループットの低下につながる

提案手法:概要 パケット処理を行うCPUコアを適応的に決定 VS-extendでフローのsoftirq先を制御 コントローラが分散処理の対象となるフローを設定 指定したフローを負荷の低いコアで処理 優先度を付加し、物理ホストの負荷が高い場合においても 優先フローの性能を向上 ソフトウェアベースで実装 ベンダロックインを回避

提案手法:全体像 VS-extend VS-extend Flow Table Core Table Traditional Controller Host info(CPU cores, HW assists) Port info(Tennant, VM ID, Pinning) Tenant, VM ID , Running core VM VM VM VM Flow Table Virtual Switch Virtual Switch Match Actions OpenFlow 1.0, VM_ID IRQ ... Network Driver VS-extend Network Driver VS-extend Core Table Core number Status core1 load, VM_ID ... CPU cores Hardware assists Traditional Datacenter Network

提案手法:Virtual Switch(VS)-extend Controller カプセル化されていても VMのフローを識別可能 softirq先コア Flow Table Match Actions vm_nw_src=192.168.0.100 IRQ:core1 vm_nw_src=192.168.0.200 IRQ:--- .... Match Actions vm_nw_src=192.168.0.100 IRQ:core1 vm_nw_src=192.168.0.200 IRQ:--- .... Match Actions vm_nw_src=192.168.0.100 IRQ:core1 vm_nw_src=192.168.0.200 IRQ:core2 .... Match Actions vm_nw_src=192.168.0.100 IRQ:core1 vm_nw_src=192.168.0.200 .... Match Actions .... 低負荷なコアへ変更 CPUコアの負荷 VMの実行コア Core Table Core Number Status core1 load=20 core2 load=100 core3 load=5, VM_ID=1 core4 load=5, VM_ID=2 Core Number Status core1 load=50 core2 load=0 core3 load=5, VM_ID=1 core4 load=5, VM_ID=2 Core Number Status core1 load=50 core2 load=0 core3 load=5, VM_ID=1 core4 load=5, VM_ID=2 Virtual Switch Network Driver VS-extend 高負荷  CPU負荷及びVMの実行コアに応じて パケット処理を分散 vm_nw_src=192.168.0.200

提案手法:Flow Tableにおけるエントリマッチ 通常フロー OpenFlow 1.0に基づいたエントリマッチ ETH ETH IP IP TCP/UDP TCP/UDP Payload トンネルフロー カプセル化されているパケットヘッダでエントリマッチ ETH IP Tunnel Tunnel VM ETH VM ETH VM IP VM IP VM TCP/UDP VM TCP/UDP Payload 内部にVMのパケットヘッダが存在することがわかる

VMのパケットヘッダでフローを識別できない カプセル化における問題点 VMのパケットヘッダでマッチエントリが行えない VM MTU ETH Tunnel (+IPsec) IP VM ETH VM IP IN IP VM TCP/UDP Payload PM MTU IPsec ETH Tunnel (+IPsec) IP VM ETH VM IP VM TCP/UDP Payload VMのパケットヘッダでフローを識別できない 新たにフローを識別する識別子が必要

VM IDを参照することで同一コアで処理が可能 提案手法:特定フローの識別方法 IPヘッダのToSフィールドのセマンティクスを変更 version, hdr_len tot_len ToS IP address ID etc Priority (1bit) VM ID (7bits) 優先フロー 宛先VMのフロー IN IP ETH Tunnel (+IPsec) IP VM ETH VM IP IN IP VM TCP/UDP Payload VM IDでフローを識別 ETH Tunnel (+IPsec) IP VM ETH VM IP VM TCP/UDP Payload IP IP VM IDを参照することで同一コアで処理が可能

提案手法:Priorityを利用したフロー処理 優先したいテナントの性能低下を防ぐ 優先的に低負荷かつVMが動作していないコアを選択 負荷の低いコアへsoftirqを行う Priority flow 50%以上 Driver kernel core1 VS-extend Priority Flow1 RSS Q1 Packet Processing core2 Q2 Packet Processing core3 Q3 VM Flow2 core4 Q4 VM 優先フローのパフォーマンス低下を防ぐ

実装(1/2) Receive Packet Steering(RPS)の実装を活用 ハッシュ値で決定されたコアに対しsoftirqを行う Driver core3 kernel core1 VS-extend RPS RSS Q1 core2 Q2 core3 Q3 Packet Processing VM VM core4 Q4 VM ハッシュ値を用いてフローのsoftirq先を決定 ドライバ内でフローのsoftirq先を制御 RSSと同様に フローとVMの衝突が発生

実装(2/2) 既存のLinuxカーネルの実装を変更する必要がない ハッシュ:100 Driver kernel core2 VS-extend RPS RSS Q1 core2 Q2 Packet Processing core3 Q3 VM core4 Q4 VM ドライバから操作することで フローのsoftirq先を制御可能 sock flow table sock flow tableに ハッシュ値とコア番号を格納 hash core 100 2 ... hash core ... 以降のパケットはハッシュ値を 書き換え同一コアにsoftirqを行う Flow Tableにsoftirq先とともに ハッシュ値も格納する 既存のLinuxカーネルの実装を変更する必要がない RPS処理中に参照される

評価 評価環境 マシン性能 core1 core2 Physical Server1 Physical Server2 VM OS Iperf Server VM1 … 40 GEther network Physical Server2 Virtual Switch VXLAN + AES core2 VM2 Client Physical Server1 マシン性能 Physical Server1 Physical Server2 VM OS CentOS 6.5(2.6.32) ubuntu-server 12.04 CPU Core i7 (4core) Core i5 (4core) 1core Memory 16Gbytes 2Gbytes Buffer 4Mbytes Network 40GBASE-SR4 - Driver MellanoxConnetX(R)-3 virtio

受信側VMのスループット 評価モデル Iperfクライアントの設定 モデル 機能 ハードウェア割り込み先コア default RSS/RPS無効 core4 rss RSS機能有効 core1~4 proposal 提案手法(+RSS) 静的に設定 Match Actions VM ID=1 IRQ:3, rxhash:1000 VM ID=2 IRQ:4, rxhash:2000 Iperfクライアントの設定 プロトコル UDP パケットサイズ 64,1400,8192bytes フロー持続時間 1分 フロー生成回数 20回 フロー生成規則 全モデル共通

受信側VMのスループット:評価結果 欠落率を大幅に削減 致命的な欠落率 Flow Tableを適切に設定することで packet loss VM1 VM2 default 51% 52% rss 95% 43% proposal 14% フラグメントパケットもsoftirq先を同一コアに選択 フラグメントパケットの割り込み フローの割り込み先が衝突 割り込み先コアおよびVMとの衝突 欠落率を大幅に削減 致命的な欠落率 パケット処理を分散 Flow Tableを適切に設定することで 負荷を分散しスループットが向上 エッジ・オーバレイ方式のネットワークにおいて有効

優先フローのスループット 評価モデル Iperfクライアントの設定 モデル 機能 ハードウェア割り込み先コア rss RSS機能有効 core0 Iperf Server VM1 … 40 GEther network Physical Server2 Virtual Switch VXLAN + AES core1 VM2 Client Physical Server1 モデル 機能 ハードウェア割り込み先コア rss RSS機能有効 core1~3 proposal 提案手法(+RSS) 優先フロー Match Actions VM_ID=1(VM1) IRQ:4, rxhash=10000 VM_ID=2(VM2) IRQ:2, rxhash=20000 VM_ID=3(VM3) IRQ:3, rxhash=30000 Iperfクライアントの設定 プロトコル UDP パケットサイズ 64,1400,8192bytes フロー持続時間 1分 フロー生成回数 20回 フロー生成規則 全モデル共通

優先フローのスループット:評価結果 CPU負荷が高い物理ホストにおいて 優先フローの性能を向上させる場合に有用

まとめと今後の課題 まとめ 今後の課題 ソフトウェア的なアプローチによって仮想スイッチの負荷を分散する手法を提案 VS-extendのFlow Tableが適切に設定されている場合に、 スループットが向上 優先度を設定した場合に、優先フローのスループットが他のフローより向上 今後の課題 コントローラと仮想スイッチ間のプロトコルの実装 CPU負荷に応じた動的なFlow Tableの設定 VS-extendをドライバ外に実装