クラウドにおけるライブラリOSを用いた インスタンス構成の動的最適化

Slides:



Advertisements
Similar presentations
九州工業大学 塩田裕司 光来健一.  仮想マシンは必要なときだけ動かす使い方が一般 的 ◦ 一台の計算機上に複数の計算機を仮想的に作成できる ◦ デスクトップ  異なる OS を使用するため作成 ◦ サーバ  最大負荷に合わせた数の仮想マシンを作成  長期間使わない仮想マシンも存在する VM.
Advertisements

九州工業大学大学院 情報工学府 情報創成工学専攻 塩田裕司.  仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する  VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ.
ファイルキャッシュを考慮したディスク監視のオフロード
最新ファイルの提供を保証する代理FTPサーバの開発
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
クラウドにおけるアプリケーション単位での VM構成の動的最適化
帯域外リモート管理を継続可能な マイグレーション手法
大きな仮想マシンの 複数ホストへのマイグレーション
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
サーバ負荷分散におけるOpenFlowを用いた省電力法
踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
Xenによる ゲストOSの監視に基づく パケットフィルタリング
分散IDSの実行環境の分離 による安全性の向上
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
暗号化された仮想シリアルコンソールを 用いたVMの安全な帯域外リモート管理
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
ネストしたVMを用いた 仮想化システムの高速なソフトウェア若化
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
クラウドにおけるVM内コンテナを用いた 低コストで迅速な自動障害復旧
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
VMMのソフトウェア若化を考慮した クラスタ性能の比較
VPNとホストの実行環境を統合するパーソナルネットワーク
信頼できないクラウドにおける仮想化システムの監視機構
VM内コンテナを用いた サービス単位の オートスケール機構
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
仮想環境を用いた 侵入検知システムの安全な構成法
仮想マシンの監視を継続可能なマイグレーション機構
仮想マシンと物理マシンを一元管理するための仮想AMT
仮想化システムのソフトウェア若化のための軽量なVMマイグレーション
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
ゼロコピー・マイグレーションを 用いた軽量なソフトウェア若化手法
仮想化システムの 軽量なソフトウェア若化のための ゼロコピー・マイグレーション
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
複数ホストにまたがるVMの メモリ使用状況に着目した高速化
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

クラウドにおけるライブラリOSを用いた インスタンス構成の動的最適化 九州工業大学 三宮浩太 光来健一

IaaS型クラウドにおけるコスト削減 ユーザにインスタンス(VM)を提供 コスト削減のためにはインスタンス構成を最適化する必要がある インスタンスの台数・タイプなどに対して課金 コスト削減のためにはインスタンス構成を最適化する必要がある 常に必要最低限のインスタンスだけを利用 インスタンスに必要な性能は変化し続ける インターネット 経由でアクセス Instance1 Instance2 Instance 3 価格例 : Amazon EC2 T2シリーズ モデル CPU Mem (GiB) 価格($/hr.) t2.micro 1 0.013 t2.small 2 0.026 t2.medium 4 0.052 t2.large 8 0.104 Web サーバ App サーバ DB サーバ インスタンスに 求められる性能 朝 昼 夕

従来のインスタンス構成の最適化 スケールイン・スケールアウト 負荷に応じてインスタンスの台数を増減 インスタンスが1 台になるとそれ以上減らせない サービス提供のために最低でも1台はインスタンスが必要 サービスがほとんど使われていなくても1台分の課金 Instance 1 t2.large Application 低負荷時 Instance 1 t2.large Application Instance 2 高負荷時 スケールアウト スケールイン

1台のインスタンスに対する最適化 スケールアップ・スケールダウン 負荷に応じてインスタンスタイプを切り替え 最小タイプまでしか性能を下げられない インスタンス単位でのコスト削減には限界がある 性能切り替え時にサービスのダウンタイムが発生 アプリケーションのデータを移動して再起動 Instance 2 t2.large Application 高負荷時 CPU RAM Instance 1 t2.micro Application スケールアップ スケールダウン CPU RAM 低負荷時

アプリケーション統合による最適化 アプリケーションを1台のインスタンスに集約 トータルコストをさらに削減可能 統合・分離時にダウンタイムが発生 アプリケーション間の隔離が弱まる 組織にまたがる集約は難しい Instance 1 t2.micro Instance 2 t2.micro Instance 3 t2.micro Instance 1 t2.micro 統合 Application 1 Application 2 分離 Application 1 Application 2 Application 3 Application 3 高負荷時 低負荷時

プロセスマイグレーション 最適化を行う際のダウンタイムを削減可能 Zap [Osman et al. ’02] プロセス群を仮想化するPodを提供し、ほぼ完全なマイグレーションが可能 Pod間の隔離はプロセスより強いが十分ではない OSに脆弱性があった場合、影響を受ける可能性 各PodはグローバルIPアドレスを必要とする IaaSではグローバルIPアドレスも課金対象 Pod Pod Pod マイグレーション プロセス群 1 プロセス群 2 OS OS

提案:FlexCapsule ライブラリOSを用いて各アプリケーションを軽量VMの中で動作 VMのマイグレーション技術を利用 最適化を行う際のダウンタイムを削減 VM間の強い隔離を利用 アプリケーション間のセキュリティの低下を防止 従来 提案手法 Instance Instance App VM 1 App VM 2 Application1 Application 2 Application 1 Application 2 ライブラリOS ライブラリOS OS

FlexCapsuleのシステム構成 (1) ネストした仮想化の利用 インスタンス(VM)内でハイパーバイザを動作させる アプリケーションVM (App VM) アプリケーションの単一プロセスを動作させる 軽量なライブラリOSを利用 Instance 1 Instance 2 VPN OS サーバ App VM 1 App VM 2 App VM 3 OS サーバ Application 1 Application 2 Application 3 ライブラリOS ライブラリOS ライブラリOS ゲストハイパーバイザ ゲストハイパーバイザ

FlexCapsuleのシステム構成 (2) OSサーバ アプリケーションの管理および機能拡張を提供 インスタンス間でVPNを構築 各インスタンスに1 つのグローバルIPアドレス NAPTを用いてApp VMのサービスを外部に提供 Instance 1 Instance 2 VPN OS サーバ App VM 1 App VM 2 App VM 3 OS サーバ Application 1 Application 2 Application 3 ライブラリOS ライブラリOS ライブラリOS ゲストハイパーバイザ ゲストハイパーバイザ

アプリケーション統合の例 アプリケーション透過な最適化が可能 OSを含む実行環境全体をマイグレーション ネットワークコネクションを維持 VPNにより元のプライベートIPアドレスが利用可能 必要ならインスタンスのグローバルIPアドレスを付け替え Instance 2 (131.206.0.3, 131.206.0.2) Instance 1 (131.206.0.2) Instance 2 (131.206.0.3) VPN OS サーバ App VM 1 192.168.1.2 ライブラリOS Application 1 App VM 2 192.168.1.3 ライブラリOS Application 2 OS サーバ

FlexCapsule OS App VM内の軽量なライブラリOS 2種類のOSをベースに実装 リソース消費量を抑えられる 準仮想化により仮想化のオーバーヘッドを削減 2種類のOSをベースに実装 Mini-OSベース 準仮想化OS 既存のアプリケーションを動作させるのは難しい OSvベース 準仮想化ドライバを用いる完全仮想化OS Javaアプリケーションをサポート可能 Cのアプリケーションもわずかな修正で動作

マイグレーションのサポート 準仮想化OSはマイグレーション時に自分自身でサスペンド・レジューム処理を行う OSサーバからサスペンド要求を受信 バックエンドドライバとの接続を切断 マイグレーション後に再接続してレジューム OSサーバ App VM バック エンド ドライバ FlexCapsule OS サスペンド 切断 シャットダウン ハンドラ フロントエンド ドライバ サスペンド 要求 実行 サスペンド ハイパーコール 要求受信スレッド ハイパーバイザ

OSサーバを用いた管理 インスタンス内のApp VMの管理を実現 従来に近いユーザインタフェースを提供 アプリケーションの起動・終了 (kill) 起動中のアプリケーション一覧の表示 (ps) マイグレーションの実行 admin OS サーバ App VM App VM psコマンド 結果 情報取得

アプリケーションのfork アプリケーションがfork関数を実行したときにApp VMの複製を作成 pid 親子のApp VMにfork関数の返り値を送信 OSサーバ fork バックエンド parent App VM FlexCapsule OS child App VM FlexCapsule OS スナップ ショット 作成 VM image 返り値 pid 複製 作成要求 複製作成

NAPTルールの管理 listen関数の実行時に待受ポートを通知 OSサーバはiptablesにNAPTルールを追加 インスタンスに届いたパケットをポート番号に応じて各App VMに転送する Instance (131.206.0.1) 131.206.0.1:80 iptables OSサーバ App VM1 Web サーバ 192.168.122.10:80 App VM2 メールサーバ 192.168.122.11:25 80 : 192.168.122.10:80 ルールの 追加 25 : 192.168.122.11:25 NAPT 管理スレッド クライアント 追加 転送 待受ポートの通知 待受ポートの通知

実験 FlexCapsuleの性能を確かめる実験を行った 比較対象 App VMのマイグレーション性能を測定 アプリケーション性能を測定 fork関数、listen関数の性能を測定 比較対象 App VM (Mini-OS/OSv)、Linux (PV/HVM) 物理マシン CPU Intel Xeon 3.70GHz×4 メモリ 8GB 仮想化ソフトウェア Xen 4.2.2 管理VMのOS Linux 3.13.0 インスタンス CPU 2 vCPU メモリ 1GB 仮想化ソフトウェア Xen 4.2.2 管理VMのOS Linux 3.13.0 App VM CPU 1 vCPU メモリ 4〜256MB OSv v0.21 Mini-OS Xen 4.2.2版

マイグレーション時間 App VM (Mini-OS) vs. Linux VM (PV) App VM (OSv) vs. Linux VM (HVM) App VMはより短時間でマイグレーション可能

ダウンタイム App VMのほうがダウンタイムが短い App VM (Mini-OS) vs. Linux VM (PV) App VM (OSv) vs. Linux VM (HVM) App VMが153〜161ミリ秒短い

アプリケーション性能の測定 インスタンス性能がアプリケーション性能に及ぼす影響を調べた インスタンスのCPU性能を変化させながらApp VM内でDhrystoneベンチマークを実行 インスタンス性能に応じてApp VMの性能も変化 スケールアップ・スケールダウンが可能

アプリケーション性能の比較 OSの違いがアプリケーション性能に及ぼす影響を調べた Dhrystoneベンチマークを使用 Mini-OSを用いた場合が最も高性能 四則演算を実行したところ除算が著しく高い性能 Dhrystone 四則演算

forkとlisten関数の性能測定 forkの実行時間はApp VMのメモリ割当量に比例 listenの実行時間は数ミリ秒増加 コピーオンライトにより高速化が可能 listenの実行時間は数ミリ秒増加 NAPTルールの追加処理による性能低下は小さい fork実行時間 listen実行時間

関連研究 Xok/ExOS [Kaashoek et al. ’97] Exokernel上でBSD互換のライブラリOSを提供 マイグレーションは考えられていない Libra [Ammons et al. ‘07], GUK [Jordan et al. ‘09] ハイパーバイザ上でライブラリOSを用いてJVMを実行 ファイルシステム等は管理VMが提供 Graphene [Tsai et al. ‘14] Linux互換のライブラリOSでマルチプロセスを実現 プロセスの隔離機構が提供されているが、ホストOSの脆弱性の影響を受ける

まとめ ライブラリOSを用いてインスタンス構成の動的最適化を行うシステムFlexCapsuleを提案 各アプリケーションを軽量なApp VM内で実行 ネストした仮想化を利用 VMマイグレーションによるダウンタイム削減 VM間の強い隔離による統合時のセキュリティ確保 アプリケーションのforkやクラウド環境に適したネットワーク利用を提供 FlexCapsuleの様々な性能を測定

今後の計画 FlexCapsule OSとOSサーバへの機能追加 実用的なアプリケーションでの性能測定 サポート可能なアプリケーションの拡大 プロセスプールの実現 fork処理の改善 App VMのIPアドレスの衝突を回避 (OSv) コピーオンライトの採用 実用的なアプリケーションでの性能測定