仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ

Slides:



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

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

仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ 光来健一  千葉滋 東京工業大学

VM を用いたサーバ統合 サーバ統合が行われてきている 仮想計算機(VM)の利用が現実的に VM を用いる利点 仮想化のハードウェアサポートによる性能向上 Intel VT, AMD Pacifia 4 GB 超の物理メモリサポートによるメモリ不足の解消 PAE, AMD64, EM64T, IA-64 VM を用いる利点 サーバを安全に分離できる 従来の OS が利用できる 管理が容易になる サーバ サーバ VM 統合サーバ

リブートリカバリの重要性 VMM や VM(OS)の再起動は避けられない リブートリカバリを速くすべき アップデート 予防保守(Rejuvenation) クラッシュ リブートリカバリを速くすべき 再起動後になるべく速く元の サービス品質に戻す 再起動の影響を最小化する VM VM VM 仮想計算機モニタ (VMM) ハードウェア

VMM の従来のリブートリカバリ 全ての VM を起動し直すのに時間がかかる VM のサスペンド・レジューム? OS の起動、サービスの起動 ディスクを読み書きする必要 VM のメモリサイズが増大 VM VMM

VM の従来のリブートリカバリ 十分にファイルキャッシュに載るまで ファイルシステムの性能が低下 OS 起動時にファイル先読み? キャッシュミスによりディスク アクセスが増加 OS 起動時にファイル先読み? 起動時のディスクアクセスと競合 キャッシュに使えるメモリが増大 VM OS キャッシュ VMM

提案:高速なリブートリカバリ 高速化手法 提供する機構 再起動前のメモリの内容を再起動後に再利用 できるようにする VMM のための Warm-VM Reboot “Suspend To RAM” を VM に対して実現 ノート PC のサスペンド・レジューム VM のための Warm-cache Reboot ファイルキャッシュを残す OS の部分再起動

Warm-VM Reboot VMM の再起動後に VM を高速に再開 VM を高速にサスペンド メモリイメージをそのまま凍結 ディスクに保存しない VMM の再起動中に VM の メモリイメージを保持 BIOS のクイックブート機能を利用 計算機の再起動中にメモリの内容を 保持できる VM を高速にレジューム メモリイメージの凍結を解除 VM VMM VM メモリ イメージ

Warm-cache Reboot VM の再起動後に OS のキャッシュミスを 軽減 ファイルキャッシュに使われて いるメモリを予約する ファイルアクセス時に再起動前の キャッシュが見つかれば再利用 VM OS キャッシュ VMM VM メモリ

実装 Xen 3.0.0、Linux 2.6.12.6 に実装 キャッシュマッピング テーブル ファイル情報→ キャッシュページ   キャッシュページ ドメイン 0 ドメイン U 疑似物理メモリ 仮想的に連続した メモリに見せる カーネル イベント 1 5 ... 4 2 3 P2M マッピング テーブル 疑似物理メモリ→      マシンメモリ ハイパーコール Xen 1 2 3 4 5 マシンメモリ ...

Warm-VM Reboot の実装(1/2) ドメインをサスペンド Xen からサスペンド イベントを送信 ドメインの状態をメモリに保存 ドメイン U ドメインをサスペンド Xen からサスペンド イベントを送信 ドメインの状態をメモリに保存 レジスタ イベントチャンネル ドメインのメモリを予約 サスペンド 処理 カーネル ... 4 2 3 サスペンド ハイパーコール サスペンド イベント Xen ドメインの 状態を保存 予約 ... 1 2 3 4 5 マシンメモリ

Warm-VM Reboot の実装(2/2) Xen を再起動 ドメインをレジューム CPU キャッシュを フラッシュ メモリに書き戻す クイックブートにより メモリの内容を保持 ドメインをレジューム ドメインに同じメモリを再割り当て ドメイン U レジューム 処理 カーネル 再割り当て 4 2 3 ... ハイパーコール からの復帰 Xen ドメインの 状態を復元 ... 1 2 3 4 5 マシンメモリ

Warm-cache Reboot の実装 キャッシュマッピングテーブル キャッシュに読み込まれた時にエントリを追加 ドメイン U キャッシュマッピングテーブル キャッシュに読み込まれた時にエントリを追加 キャッシュが破棄された時に エントリを削除 カーネル 仮想 ディスク ... 4 2 3 Xen ... 1 2 3 4 5 マシンメモリ

Warm-cache Reboot の実装 キャッシュマッピングテーブル ドメインの再起動時 ドメイン U キャッシュマッピングテーブル ファイルキャッシュに読み込まれた時にエントリを追加 ファイルキャッシュが破棄された時にエントリを削除 ドメインの再起動時 ドメインに同じメモリを 再割り当て キャッシュマッピングテーブル を復元 ファイルキャッシュを再利用 カーネル 仮想 ディスク 4 2 3 ... Xen ... 1 2 3 4 5 再割り当て マシンメモリ

実験:Warm-VM Reboot 測定内容 比較対象 VM のサスペンド / レジュームにかかる時間 VM のメモリサイズと VM の数の影響を測定 VMM の再起動時のサーバ処理性能の推移 httperf で Apache にリクエストを送り続けた 比較対象 Xen サスペンド / レジューム シャットダウン / 起動 サーバ Pentium 4 3.0 GHz PC3200 DDR SDRAM 2 GB SATA HDD 160 GB GbE NIC クライアント メモリ 1 GB, GbE NIC

VM のメモリサイズの影響 Warm-VM Reboot サスペンド / レジューム Xen サスペンド / レジューム メモリサイズ非依存 0.6 秒 / 0.6 秒 Xen サスペンド / レジューム メモリサイズに比例 28 秒 / 20 秒 (1 GB 時) シャットダウン / 起動 12 秒 / 11 秒 起動するサービスに依存 サスペンド レジューム

VM 数の影響 Warm-VM Reboot サスペンド / レジューム Xen サスペンド / レジューム シャットダウン / 起動 2.3 秒 / 2.0 秒 (6 VMs) Xen サスペンド / レジューム 45 秒 / 37 秒 (6 VMs) シャットダウン / 起動 25 秒 / 56 秒 (6 VMs) 起動するサービスに依存 サスペンド レジューム VM メモリサイズ:256 MB

サービスのダウンタイム Warm-VM Reboot Xen サスペンド / レジューム シャットダウン / 起動 40 秒 104 秒 ドメイン 0 のシャットダウン中に ドメイン U が動作できる Warm-VM Reboot 40 秒 Xen サスペンド / レジューム 104 秒 シャットダウン / 起動 78 秒 Warm-VM Reboot ドメイン U の終了・開始処理に 時間がかかる Xen サスペンド / レジューム シャットダウン / 起動 VM メモリサイズ:1 GB

実験:Warm-cache Reboot 測定内容 VM 再起動の前後のファイル読み込み性能 VM 再起動の前後のウェブサーバの処理性能 再起動前に2回、再起動後に2回測定 VM 再起動の前後のウェブサーバの処理性能 httperf で Apache にリクエストを送信 VM 再起動時のサーバ処理性能の推移 httperf で Apache にリクエストを送り続けた VM メモリサイズ:1 GB

VM 再起動前後の性能 Warm-cache Reboot 再起動後1回目の性能が向上 再起動後1回目の性能は2回目より低い ファイル読み込み 15 倍 ウェブサーバ 3 倍 再起動後1回目の性能は2回目より低い ファイル読み込み 64 % ウェブサーバ 92 % ファイルキャッシュ以外のキャッシュミスが原因 ファイル ウェブ 起動後 再起動後

VM 再起動時のサーバ性能の推移 Warm-cache Reboot 従来の再起動 先読み 再起動後 20 秒は 6 % 性能低下 再起動後 33 秒は 44 % 性能低下 先読み 先読み処理がウェブサーバの処理を阻害 Warm-cache Reboot 従来 先読み

関連研究 Recovery Box [Baker et al.’92] Rio ファイルキャッシュ [Chen et al.’96] アプリケーションの状態を再起動後に復元 アプリケーションに依存 Rio ファイルキャッシュ [Chen et al.’96] 再起動時にダーティキャッシュを書き戻す キャッシュは再起動によって失われる Live Migration [Clark et al.’05] VM をほとんど停止させずに他のホストに移動 移動に時間がかかる

まとめ 高速なリブートリカバリを提案 Warm-VM Reboot Warm-cache Reboot VMM の再起動後に VM を高速にレジューム 再起動によるダウンタイムを約半分に Warm-cache Reboot VM の再起動後にファイルキャッシュを再利用 再起動直後のサーバ性能の低下を 6 % に

今後の課題 再起動後に再利用するメモリの保護 x86_64 アーキテクチャへの実装 より現実的なワークロードでの実験 クラッシュ時に破壊されないようにする 実装はほぼ完了 x86_64 アーキテクチャへの実装 より多くのメモリが搭載できる 実装は途中まで完了 より現実的なワークロードでの実験 今回は最も効果的な実験を行った