IaaS型クラウドにおける インスタンス構成の動的最適化手法 九州工業大学大学院 情報工学府 情報創成工学専攻 14675016 三宮浩太 1 IaaS型クラウドにおけるコスト削減 • ユーザにインスタンス(VM)を提供 – インスタンスの台数・タイプなどに対して課金 • インスタンス構成を最適化してコスト削減 – 常に必要最低限のインスタンスだけを利用 • インスタンスに必要な性能は変化し続ける Instanc e1 Web サー バ サーバ負荷 インターネット 経由でアクセス Instanc e2 App サーバ Instanc e 3 DB サーバ インスタンスに 求められる性能 朝 昼 夕 価格例 : Amazon EC2 T2シリーズ モデル CP U Mem (GiB ) 価格 ($/hr .) t2.micro 1 1 0.013 t2.small 1 2 0.026 t2.medium 2 4 0.052 t2.large 2 8 0.104 2 時間 従来のインスタンス構成の最適化 • スケールイン・スケールアウト – 負荷に応じてインスタンスの台数を増減 – インスタンスが1 台になるとそれ以上減らせない • サービス提供のために最低でも1台はインスタンスが必要 • サービスがほとんど使われていなくても1台分の課金 Instance 1 スケールアウト t2.large Application 低負荷時 スケールイン Instance 1 Instance 2 t2.large t2.large Application Application 高負荷時 3 1台のインスタンスに対する最適化 • スケールアップ・スケールダウン – 負荷に応じてインスタンスタイプを切り替え – 最小タイプまでしか性能を下げられない • インスタンス単位でのコスト削減には限界がある – 性能切り替え時にサービスのダウンタイムが発生 • アプリケーションのデータを移動して再起動 Instance 2 Instance 1 t2.micro t2.large スケールアップ Application Application CPU RAM スケールダウン CPU RAM RAM CPU RAM RAM 4 アプリケーション統合による最適化 • アプリケーションを1台のインスタンスに集約 – トータルコストをさらに削減可能 – 統合・分離時にダウンタイムが発生 – アプリケーション間の隔離が弱まる • 各アプリケーションの脆弱性が他のアプリケーションに影響 Instance 1 t2.micro Application 1 Application 2 Application 3 統合 Instance 1 Instance 2 Instance 3 t2.micro t2.micro t2.micro 分離 Application 1 Application 2 Application 3 5 提案:FlexCapsule • 各アプリケーションを軽量VMの中で動作させる ことでインスタンス構成を柔軟に最適化 – VMのマイグレーション技術を利用 • 最適化を行う際のダウンタイムを削減 – VM間の強い隔離を利用 • アプリケーション間のセキュリティの低下を防止 提案手法 従来 Instance App VM 1 App VM 2 Application 1 Application 2 6 FlexCapsuleを用いた最適化 Instance 2 App VM App VM fork & migration Instance 2’ exit スケールイン・スケールアウト Instance 1 App VM App VM migration スケールアップ・スケールダウン Instance 3’ App VM Instance 3 migration App VM App VM 統合・分離 7 アプリケーションVM (App VM) • インスタンス (VM)内で動作するVM – ネストした仮想化を利用 – 単一アプリケーションをFlexCapsule OS上で実行 • 軽量なライブラリOS • リソース消費量・オーバーヘッドが小さい • Mini-OSおよびOSvをベースに開発 Instance App VM 1 App VM 2 Application 1 Application 2 FlexCapsule OS FlexCapsule OS 仮想化ソフトウェア 8 マイグレーションのサポート • FlexCapsule OS自身がサスペンド・レジューム 処理を行う必要がある – マイグレーション時にデバイスドライバとの接続を切 断してサスペンド – マイグレーション後に再接続してレジューム 移動元Instance ネットワーク デバイス 移動先Instance App VM App VM FlexCapsule OS FlexCapsule OS 仮想化ソフトウェア ネットワーク デバイス 仮想化ソフトウェア 9 OSサーバ • App VM内では実現できない機能を提供 – アプリケーションのfork • fork関数の実行時にApp VM全体を高速に複製 – App VMへのパケットの転送 • listen/close関数の実行時に転送ルールを追加・削除 App VM OSサーバ App VM’ FlexCapsule OS fork バックエンド 要求・返り値 ソケット バックエンド ポート番号 fork関数 listen/close 関数 10 ネットワーキング • NAPTを用いてApp VMのサービスを外部に提供 – forkしたApp VMにはラウンドロビンで分配 • VPNを用いたマイグレーション透過なNAPT – App VMを別のインスタンスに移動後も元のグローバ ルIPアドレスでアクセス可 Instance 1 (131.206.0.2) NAPT Instance 2 VPN :80 192.168.1.2 :80 App VM 1’ Webサーバ Webサーバ App VM 1 192.168.1.3 :8080 :8080 App VM 2 192.168.1.4 Appサー バ 11 実験 • FlexCapsuleの有効性を確認する実験を行った – インスタンス構成の最適化の効果を確認 • ダウンタイム – fork関数の性能測定 – アプリケーション性能を測定 物理マシン CPU Intel Xeon 3.70GHz×4 メモリ 16GB 仮想化ソフトウェア Xen 4.2.4 管理VMのOS Linux 3.13.0 インスタンス App VM CPU 2 vCPU CPU 1 vCPU メモリ 2GB メモリ 4〜256MB 仮想化ソフトウェア Xen 4.2.4 OSv v0.21 管理VMのOS Linux 3.13.0 Mini-OS Xen 4.2.2版 12 アプリケーションの統合・分離 • 統合・分離時のダウンタイムを測定 – マイグレーション中のダウンタイムは短い • App VMはLinux VMよりも短い • 統合されたApp VMを3台のインスタンスに分離 – アプリケーション性能が1.9〜2.7倍に向上 • 統合・分離により性能とコストのトレードオフがとれる 3 0.8 0.6 App VM (Mini- 0.4 OS) App VM (OSv) 0.2 Improvement Downtime(sec) 2.5 2 統合中 1.5 分離後 1 0.5 0 0 32 64 96 128 160 192 224 256 Allocated Memory(MB) 0 lighttpd memcached Redis 13 スケーリングによる最適化 • スケールイン・スケールアウト – インスタンスを1台から2台に増加 • アプリケーションの性能が2倍に向上 • スケールアップ・スケールダウン – インスタンスの仮想CPUを1つから2つに増加 • アプリケーションの性能が2倍に向上 – App VMを用いても最適化の効果が得られる 300 200 100 0 インスタンス1台 インスタンス 2台 スケールアップ・スケールダウン Request Rate [req/s] Request Rate [rep/s] スケールイン・スケールアウト(lighttpd) 8 (lighttpd) 6 4 2 0 1 割り当て仮想CPU数 2 14 fork関数の性能測定 • fork関数の実行にかかる時間を測定 – App VMのメモリサイズにわずかに比例 – Xenの標準機能を組み合わせるより最大36倍高速 2.5 40 OS) App VM (OSv) 1 0.5 30 25 (256MB) Time (sec) App VM (Mini- 1.5 fork関数実行時間[s] 35 2 20 Xen標準 15 FlexCapsule 10 5 0 0 0 256 512 768 Allocated Memory(MB) 1024 App VM (Mini- App VM(OSv) OS) 15 アプリケーションの性能比較 • App VMとLinux VMでの実行性能を測定 – App VMの方が高性能 – 仮想化のオーバーヘッドをライブラリOSにより低減 • ネットワークとメモリ処理の最適化 • 単一アドレス空間の利用 ■ App VM (OSv) lighttpd memcached 14000 Redis 12000 8000 10 8 6 6000 4000 4 2 0 TPS 10000 TPS Request Rate [req/s] 12 10000 ■ Linux VM 8000 6000 4000 2000 0 2000 0 16 関連研究 • Xok/ExOS [Kaashoek et al. ’97] – Exokernel上でBSD互換のライブラリOSを提供 – マイグレーションは考えられていない • Graphene [Tsai et al. ‘14] – Linux互換のライブラリOSでマルチプロセスを実現 – ホストOSの脆弱性の影響を受けやすい • Zap [Osman et al. ’02] – OSレベルの仮想化でアプリケーションをマイグレー ション – アプリケーション間の隔離は弱い 17 まとめ • クラウドにおけるインスタンス構成の動的最適 化を可能にするシステムFlexCapsuleを提案 – 各アプリケーションを軽量なApp VM内で実行 • VMマイグレーションによるダウンタイム削減 • VM間の強い隔離によるセキュリティ確保 – インスタンスにまたがる実行環境の構築 • 今後の課題 – FlexCapsule OSとOSサーバへの機能追加 • プロセス間通信、exec関数など – アプリケーション性能の向上 • ネストした仮想化のオーバーヘッドの低減 18
© Copyright 2025 ExpyDoc