slide

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