複数ホストにまたがって動作する仮想マシンの障害対策 九州工業大学 情報工学部 機械情報工学科 光来研究室 15237068 村田 時人 と題しまして、光来研究室の村田が発表します
大容量メモリを持つVM IaaS型クラウドは大容量メモリを持つ仮想マシン (VM)を提供 VMマイグレーションが活用されている Amazon EC2:12TBのHigh Memoryインスタンス ビッグデータの解析やインメモリデータベースに利用 VMマイグレーションが活用されている 稼働しているVMを別のホストに移動 サービスを停止させずにホストをメンテナンス可能 近年普及しているIaas型クラウドでは仮想マシンが提供されています。特に最近は大容量のメモリを持ったVMが提供されるようになっています。例えば、AmazonEC2で提供されている、12TBのHighMemoryインスタンスが挙げられます。このような大容量のメモリを持った仮想マシンは、ビッグテータの解析やインメモリデータベースに利用されています。 移送元ホスト 移送先ホスト VM 本体 メモリ 12TB
分割マイグレーション [Suetake+ CLOUD'18] 移送先のホストに十分な空きメモリが必要 そのようなホストを常に確保しておくことは避けたい コストが増加し、運用の自由度が低下 VMを分割して複数のホストにマイグレーション VM本体とアクセスされそうなメモリ:メインホストに転送 メインホストに入りきらないメモリ:サブホストに転送 このような大容量のメモリを持つ仮想マシンをマイグレーションするには、移送先となるホストに十分な空きメモリが必要となります。しかし、そのようなホストを常に確保しておくということは、その分コストが増加してしまいますし、空きメモリを自由に使えないということで、運用の自由度も低下してしまいます。 そこで、仮想マシンのメモリを分割して複数のホストにマイグレーションを行う分割マイグレーションが提案されています。分割マイグレーションでは、 移送元ホスト メインホスト サブホスト VM 本体 メモリ 12TB メモリ 6TB メモリ 6TB
分割メモリVM マイグレーション後に複数ホストにまたがって動 作するVM ホスト間でリモートページングを行いながら動作 メインホストは必要なメモリをサブホストから取得(ページ イン) 不要なメモリをサブホストに転送(ページアウト) このように、マイグレーション後に複数ホストにまたがって動作するVMのことを、分割メモリVMと呼びます。分割メモリVMでは、、、メモリを提供します。 また、ホスト間では次の処理を行いながら動作します。VMがサブホストにあるメモリを要求した際に、メインホストは必要となる該当メモリをサブホストからページインします。そして、アクセスの予測されない不要なメモリをサブホストにページアウトします。この一連の動作をリモートページングと呼びます。 メインホスト サブホスト ページイン VM 本体 メモリ 6TB メモリ 6TB ページアウト
ホストの障害対策 分割メモリVMは従来のVMよりもホストの障害の 影響を受けやすくなる 障害対策:チェックポイント・リストア 障害発生 ホスト VM 本体 メモリ 12TB ディスク
従来手法を用いる問題点 チェックポイント時に大量のリモートページングが 発生 リストア時に分割メモリVMとして復元できない チェックポイント時に大量のリモートページングが 発生 従来手法はメインホストでVMの状態を保存 サブホストにあるメモリはメインホスト経由で保存 リストア時に分割メモリVMとして復元できない 従来手法では1台のホスト上にVMを復元 問題の一つとして、チェックポイント時に大量のページングが発生することが挙げられます。 問題の二つ目として、リストアする時には、1台のホスト上にしかVMを復元出来ないことが挙げられます。 障害発生 メインホスト ページイン サブホスト VM本体 メモリ 6TB メモリ 12TB メモリ 6TB ディスク
提案:D-CRES 分割メモリVMの柔軟で効率のよいチェックポイン ト・リストアを可能にするシステム 各ホストで並列にメモリを保存・復元することで高速化 複数ホストに分割された状態でVMを復元 障害発生 次にチェックポイントの動作について説明します。 メインホスト サブホスト VM本体 メモリ 6TB メモリ 6TB ディスク ディスク
チェックポイント (1/2) メインホストはメインホストにあるVMのメモリだけ をディスクに保存 ネットワーク・ページテーブルを参照 どのメモリがどのホストにあるかを管理するテーブル サブホストにあるメモリはサブホストIDのみを保存 VMのCPUやデバイスの状態なども保存 メインホスト 初めに、VMに対してチェックポイントの指示が与えられましたら、VMを停止して、 その際には、メインホストにあるネットワーク・ページテーブルを参照します。ネットワーク・ページテーブルとは。。。するテーブルで、メモリがメインホストにあるのかサブホストにあるのかを判断するのに使用します。 ネットワーク・ ページテーブル VM 本体 ページ0 メイン ページ1 サブ … メモリ 6TB ディスク ID
チェックポイント (2/2) メインホストからサブホストにコマンドを送信 サブホストはサブホストにあるVMのメモリをディ スクに保存 ページ・サブテーブルを参照 サブホストにあるメモリを管理するテーブル また、メインホストはメモリの保存を行う前に、 メインホストの逆にする。 メインホスト サブホスト ページ・ サブテーブル 完了通知 ページ0 なし ページ1 あり … VM 本体 メモリ 6TB メモリ 6TB ディスク コマンド
リストア (1/2) メインホストはチェックポイント時にメインホストに あったVMのメモリのみを復元 ネットワーク・ページテーブルも復元 メモリがどのホストにあるかを設定 復元したメモリをLinuxのメモリ管理機構に登録 リモートページングを再開可能にする VMのCPUやデバイスの状態も復元 次にメインホストのリストアの動作について説明します。 初めに、リストアの指示がメインホストに与えられたら、サブホストに復元用のコマンドを送信します。それから、メモリとネットワークページテーブルを復元します。その後に、ページング処理のためにメモリをuserfaultds機構に登録します。登録が終わりましたら、CPUやデバイスの状態といったVM本体の情報を復元します。 最後に、サブホストのコマンド完了を待ち、通知がきたらサブホストと接続を行います。そしてVMを再開します。 メインホスト ネットワーク・ ページテーブル VM 本体 メモリ 6TB ディスク ページ0 メイン ページ1 サブ … ID メモリ管理機構
リストア (2/2) メインホストからサブホストにコマンドを送信 サブホストはサブホストにあったメモリを復元 サブホストでのリストア完了を待ち、VMを再開 リモートページングのためにサブホストと接続 サブホストはサブホストにあったメモリを復元 ページ・サブテーブルも復元 サブホストにあるメモリの情報を設定 次に、提案手法の性能を測るための実験を行いました。 メインホスト サブホスト ページ・ サブテーブル 完了通知 ページ0 なし ページ1 あり … VM 本体 メモリ 6TB メモリ 6TB ディスク コマンド
実験 D-CRESを用いて分割メモリVMのチェックポイン ト・リストアにかかる時間を測定 従来手法を用いた場合と比較 分割メモリVMと1つのホストで動く通常VMを対象 様々なメモリ分割比で比較 メインホストとサブホストにあるメモリの比率を変更 次は実験です。提案手法を用いてVMのチェックポイントとリストアを行う時間を測定しました。1つのホストで動くVMと、分割マイグレーション後提案手法を用いないVMのチェックポイントとリストアとを比較しました。 実験環境は以下の通りです。複数にまたがるVMのメモリはメインホストとサブホストに半分ずつに分割しています。 メインホスト サブホスト OS Linux 4.4.169 CPU Intel Core i7-7700 メモリ 8 GB 仮想化ソフトウェア QEMU-KVM 2.4.1
従来手法との比較 分割メモリVMのチェックポイントは従来手法より 52%高速 リストアは従来手法より30%高速 VM全体のメモリ:1GB メモリ分割比 5 : 5 実験結果は下図のようになりました。提案手法を用いたVMでは、1つのホストで動くVMよりチェックポイントに時間がかかりました。これは、メインホストとサブホストでのチェックポイントが並列化できていないためです。並列化できていれば、チェックポイントにかかる時間は今の時間の半分強になるとは思います。また、リストア時間はわずかに高速化できました。
メモリ分割比の影響 サブホストにあるメモリの割合を増やしながら性 能を測定 チェックポイントは割合が増えるほど時間がかかった サブホストにあるメモリの割合を増やしながら性 能を測定 チェックポイントは割合が増えるほど時間がかかった リストアは逆に割合が増えるほど高速になった VM全体のメモリ : 3GB サブホストの保存処理にかかる時間は、メインホストの保存処理にかかる時間よりも長い、サブホストの保存処理の見直しが必要かもしれない もしくは、メインホストはサブホストのIDを保存するため、サブホストのメモリが多いほどサブホストIDの保存処理が多くなる メインホストのメモリはページテーブルの復元以外にもメモリ管理機構の登録が行われている チェックポイントにかかる時間は、サブホストの割合が増えたため リストアにかかる時間は、メインホストの処理が MBをGBに変える?
関連研究 IPmigrate [柏木ら'18] Remus [Cully et al.'08] 分割メモリVMをホスト単位で部分マイグレーション 各ホストにおけるメモリ転送処理がチェックポイント・リ ストアに類似 Remus [Cully et al.'08] VMの状態の差分をバックアップVMに転送して同期 高頻度で行う同期処理のオーバヘッドが大きい Emulabのチェックポイント [Burtsev et al.'09] 実験ネットワーク上の複数VMの状態を同時に保存 分割メモリVMの保存はより簡略化できる可能性 Ipmigrate以外は検討中のもの TLC:ダーティーなメモリページをハッシュテーブルにコピーするため、仮想マシンのスレッドは定期的に中断されてしまう
まとめ 分割メモリVMの柔軟で効率のよいチェックポイン ト・リストアを可能にするD-CRESを提案 今後の課題 各ホストで並列にメモリを保存・復元 リストア後に複数のホストにまたがってVMが動作 従来手法より大幅に高速化できることを確認 今後の課題 チェックポイント時にVMを停止させずに保存 リストア時にホストの空きメモリに合わせてVMの分割 の仕方を変更