(57)【要約】【課題】無駄にリソースを消費することなく高信頼性を確保して仮想マシンを同期させることが可能な仮想マシン提供システムを提供する。【解決手段】主系仮想マシンは、イメージファイルを記憶する主系記憶部と、イメージファイルの状態を監視する監視部と、監視部が監視するイメージファイルの状態に変更があったか否かを判定し、イメージファイルの状態に変更があったと判定した場合、イメージファイルの差分データと差分データを識別するための差分情報とを待機系仮想マシンに送信する主系制御部と、を有した主系エージェント部と、待機系仮想マシンは、待機用のイメージファイルを記憶する待機系記憶部と、差分データを待機用のイメージファイルに同期させる待機系制御部と、を備え、主系仮想マシンから差分データと差分情報とを受信した場合に、前記待機系制御部以外の各部が停止している待機系仮想マシンの中で起動状態にある待機系制御部により、差分情報をキーとして差分データを待機用のイメージファイルに同期させる。【選択図】  図１
2013186692.tif 000002
【特許請求の範囲】
【請求項１】
主系仮想マシンと待機系仮想マシンとがネットワークを介して接続された仮想マシン提供システムであって、
前記主系仮想マシンは、
イメージファイルを記憶する主系記憶部と、
前記イメージファイルの状態を監視する監視部と、前記監視部が監視する前記イメージファイルの状態に変更があったか否かを判定し、前記イメージファイルの状態に変更があったと判定した場合、前記イメージファイルの差分データと前記差分データを識別するための差分情報とを前記待機系仮想マシンに送信する主系制御部と、を有した主系エージェント部と、
前記待機系仮想マシンは、
待機用のイメージファイルを記憶する待機系記憶部と、
前記差分データを前記待機用のイメージファイルに同期させる待機系制御部と、を備え、
前記主系仮想マシンから前記差分データと前記差分情報とを受信した場合に、前記待機系制御部以外の各部が停止している前記待機系仮想マシンの中で起動状態にある前記待機系制御部により、前記差分情報をキーとして前記差分データを前記待機用のイメージファイルに同期させる、
ことを特徴とする仮想マシン提供システム。
【請求項２】
前記仮想マシン提供システムは、
前記主系仮想マシンをバックアップするバックアップサーバをさらに備え、
前記主制御部は、前記イメージファイルの状態に変更があったと判定した場合において、さらに前記主系仮想マシンと前記待機系マシンとを同期させるか否かを判定し、前記主系仮想マシンと前記待機系マシンとを同期させないと判定した場合、前記差分データと前記差分情報とを前記バックアップサーバに送信し、前記差分データおよび前記差分情報を前記バックアップサーバに蓄積させる、
ことを特徴とする請求項１に記載の仮想マシン提供システム。
【請求項３】
前記バックアップサーバは、前記差分データと前記差分情報とを記憶する情報保持部と、前記情報保持部に記憶された前記差分データと前記差分情報とを管理する管理制御部とを有し、
前記情報保持部は、前記主系仮想マシンからの同期を再開する旨を受信するまで前記差分データおよび前記差分情報を蓄積し、
前記管理制御部は、前記主系仮想マシンから前記同期を再開する旨を受信した場合に、それまでの差分データと差分情報とを前記情報保持部から取得し、取得した前記差分データと前記差分情報とを前記待機系仮想マシンに送信する管理制御部と、
を備えることを特徴とする請求項２に記載の仮想マシン提供システム。
【請求項４】
前記判定部は、前記主系仮想マシンまたは前記待機系仮想マシンのリソースの使用状況または他の処理の混雑度に応じて前記イメージファイルを同期させるか否かを判定する、
ことを特徴とする請求項１または２に記載の仮想マシン提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの状態を同期させる仮想マシン提供システムに関するものである。
【背景技術】
【０００２】
従来から仮想マシンの高信頼性を実現するための種々のシステムが存在する。これらのシステムでは、一般に、仮想マシンのマイグレーションやバックアップファイルからのリストアにより、仮想マシンの状態を同期させ、高信頼性を確保する。仮想マシンのマイグレーションは、リソース不足等の様々な原因によって、その環境によっては実現できない場合がある。したがって、マイグレーション対象となる仮想マシンを有したシステムでは、主系および待機系の仮想マシンを準備し、通常では待機系の仮想マシンの起動が必要ないにも関わらず、主系の仮想マシンの状態と同じ状態とするために待機系の仮想マシンを起動状態のままにしている場合があった。また、バックアップファイルからのリストアを行う場合、自動ではなく、システム管理者が変更履歴を基に手動により仮想マシンをリストアする場合があった。
【０００３】
例えば、仮想マシンのマイグレーションを行うものとして、特許文献１に開示された技術がある。特許文献１では、複数のＣＰＵブレードを有するコンピュータシステムにおいて、あるブレード上の仮想システムを別のブレードにマイグレーションする場合に、ブレードの特徴等を考慮して最適のブレードを選択している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２７６３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術においては、システム動作上、起動の必要がない待機系の仮想マシンが起動されているため、無駄にリソースが割り当てられて消費してしまうという問題があった。また、仮想マシンをリストアする際に変更履歴が多い場合には、ダウンタイムが長時間に及び、高信頼性を実現できない可能性があるという問題があった。すなわち、無駄にリソースを消費することなく高信頼性を確保して仮想マシンを同期させることができないという問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、無駄にリソースを消費することなく高信頼性を確保して仮想マシンを同期させることが可能な仮想マシン提供システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかる仮想マシン提供システムは、主系仮想マシンと待機系仮想マシンとがネットワークを介して接続された仮想マシン提供システムであって、前記主系仮想マシンは、イメージファイルを記憶する主系記憶部と、前記イメージファイルの状態を監視する監視部と、前記監視部が監視する前記イメージファイルの状態に変更があったか否かを判定し、前記イメージファイルの状態に変更があったと判定した場合、前記イメージファイルの差分データと前記差分データを識別するための差分情報とを前記待機系仮想マシンに送信する主系制御部と、を有した主系エージェント部と、前記待機系仮想マシンは、待機用のイメージファイルを記憶する待機系記憶部と、前記差分データを前記待機用のイメージファイルに同期させる待機系制御部と、を備え、前記主系仮想マシンから前記差分データと前記差分情報とを受信した場合に、前記待機系制御部以外の各部が停止している前記待機系仮想マシンの中で起動状態にある前記待機系制御部により、前記差分情報をキーとして前記差分データを前記待機用のイメージファイルに同期させる、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、無駄にリソースを消費することなく高信頼性を確保して仮想マシンを同期させることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における仮想マシン提供システムの構成を示す図である。
【図２】情報保持部が記憶する差分情報の例を示す図である。
【図３】同期制御処理の処理手順を示すフローチャートである。
【図４】同期再開制御処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる仮想マシン提供システムの実施の形態を詳細に説明する。
【００１１】
図１は、本発明の実施の形態における仮想マシン提供システム１０００の構成を示す図である。図１に示すように、仮想マシン提供システム１０００は、主系仮想マシン１００と、待機系仮想マシン２００と、管理サーバ兼バックアップサーバ３００とを有して構成され、これらが互いにネットワークＮを介して接続されている。なお、ネットワーク３００は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等の一般的なセットワークである。以下では、これらの各マシンはネットワーク環境にあるシステムを前提に説明しているが、１つの装置内にこれらの各部が構成されていてもよい。
【００１２】
主系仮想マシン１００は、例えば、Ｊａｖａ（登録商標）等によって作成された一般的なアプリケーションを稼動させるためのコンピュータである。図１に示すように、主系仮想マシン１００は、主系エージェント部１１０と、記憶部１２０と、通信部１３０とを有して構成されている。
【００１３】
主系エージェント部１１０は、後述する仮想マシンイメージファイル１２１の差分情報を待機系仮想マシン２００に同期させるものであり、例えば、ハイパーバイザ内のエージェントに設けられる。差分情報は、例えば、更新等されたイメージファイルの実体データである差分データのファイル名や更新日時、あるいは差分データの元データである主系仮想マシンイメージファイル１２１の名称等を含む差分データの識別情報である。以下では特に説明していないが、差分情報によって主系仮想マシン１００と待機系仮想マシン２００との同期をとる場合、実際には差分情報とともに差分データが受け渡しされる。主系エージェント部１１０は、監視部１１１と、主系処理制御部１１２とを有している。
【００１４】
監視部１１１は、主系仮想マシン１００の記憶部１２０に記憶されている主系仮想マシンイメージファイル１２１の状態（例えば、ファイルが更新されたか否か）を監視するものである。
【００１５】
主系処理制御部１１２は、主系仮想マシンイメージファイル１２１が更新された場合に、その主系仮想マシンイメージファイル１２１の差分情報や差分データを、待機系仮想マシン２００または管理サーバ兼バックアップサーバ３００に送信するものである。具体的には、主系仮想マシン１００と待機系仮想マシン２００とを同期させる場合には、主系処理制御部１１２は、差分データを待機系仮想マシン２００の受付部２１２に送信する一方、主系仮想マシン１００と待機系仮想マシン２００とを同期させない場合には、差分データを管理サーバ兼バックアップサーバ３００の情報保持部３１２に送信する。また、主系処理制御部１１２は、これらの差分データを送信する場合には、その差分データについての差分情報を待機系仮想マシン２００の待機系処理制御部２１１および管理サーバ兼バックアップサーバ３００の管理制御部３１１に送信する。
【００１６】
記憶部１２０は、上述した主系仮想マシンイメージファイル１２１を記憶するものである。通信部１３０は、主系仮想マシン１００と、待機系仮想マシン２００および管理サーバ兼バックアップサーバ３００との間の各種データを通信するものである。これらの各部の具体的な動作については、フローチャートを用いて後述する。
【００１７】
待機系仮想マシン２００は、主系仮想マシン１００に障害が発生した場合に、主系仮想マシン１００と同様の機能を実現させるためのコンピュータである。図１に示すように、待機系仮想マシン２００は、待機系エージェント部２１０と、記憶部２２０と、通信部２３０とを有して構成されている。
【００１８】
待機系エージェント部２１０は、主系エージェント部１１０と同様にハイパーバイザ内のエージェントに設けられ、主系仮想マシン１００から受け取った主系仮想マシンイメージファイル１２１の差分情報を参照し、差分データを、記憶部２２０が記憶する待機系仮想マシンイメージファイル２２１（主系仮想マシンイメージファイル１２１の待機用のファイル）に同期させるものである。待機系エージェント部２１０は、待機系処理制御部２１１と、受付部２１２とを有している。
【００１９】
待機系処理制御部２１１は、主系仮想マシン１００から受け取った主系仮想マシンイメージファイル１２１の差分情報を参照し、受付部２１２が集計仮想マシン１００から受信した差分データを、待機系仮想マシン２０の待機系仮想マシンイメージファイル２２１に反映し、主系仮想マシンイメージファイル１２１と同期をとるものである。受付部２１２は、主系仮想マシン１００から主系仮想マシンイメージファイル１２１の差分データを受信し、または管理サーバ兼バックアップサーバ３００から主系仮想マシンイメージファイル１２１の差分データを受信するものである。通信部２３０は、待機系仮想マシン２００と、主系仮想マシン１００および管理サーバ兼バックアップサーバ３００との間の各種データを通信するものである。これらの各部の具体的な動作については、フローチャートを用いて後述する。
【００２０】
管理サーバ兼バックアップサーバ３００は、高信頼性仮想マシン提供支援システム３１０と、通信部３２０とを有して構成されている。高信頼性仮想マシン提供支援システム３１０は、管理制御部３１１と、情報保持部３１２とを有して構成されている。管理制御部３１１は、主系仮想マシン１００および待機系仮想マシン２００の同期の状態を管理するものである。情報保持部３１２は、主系仮想マシン１００と待機系仮想マシン２００とを同期させない場合、主系仮想マシンイメージファイル１２１の差分情報を保持するものである。通信部３２０は、管理サーバ兼バックアップサーバ３００と、主系仮想マシン１００および待機系仮想マシン２００との間の各種データを通信するものである。これらの各部の具体的な動作については、フローチャートを用いて後述する。
【００２１】
図２は、上述した情報保持部３１２が記憶する差分情報の例を示す図である。図２に示すように、差分情報には、仮想マシンＩＤと、取得日時と、差分ファイル名とが対応付けて記憶されている。仮想マシンＩＤは、主系仮想マシン１００を一意に識別するためのＩＤ（IDentification）である。取得日時は、差分情報を取得した日時である。差分ファイル名は、差分が生じたファイルのファイル名である。図２に示す例では、仮想マシンＩＤが「Ａ」である主系仮想マシン１００に記憶されているファイル名Ａ〜Ｃのファイルの差分データが、それぞれ２０１１年７月２０日１０：００：００、同日１０：００：１０、同日１０：００：２０に取得されたことを示している。なお、以下では情報保持部３１２を例に説明しているが、待機系仮想マシン２００に送信される差分情報もこれと同様のレイアウトを有している。
【００２２】
続いて、仮想マシン提供システム１０００において行われる同期制御処理の動作について説明する。図３は、同期制御処理の処理手順を示すフローチャートである。以下では、待機系仮想マシン２００は待機系エージェント部２１０のみが起動した状態となっている。
【００２３】
図３に示すように、主系仮想マシン１００の監視部１１１が、主系仮想マシンイメージファイル１２１を監視し（ステップＳ３０１）、主系仮想マシンイメージファイル１２１の状態に変更があったか否かを判定する（ステップＳ３０２）。監視部１１１が主系仮想マシンイメージファイル１２１の状態に変更がなかったと判定した場合（ステップＳ３０２；Ｎｏ）、ステップＳ３０１に戻って、そのまま監視を続ける。
【００２４】
一方、監視部１１１が主系仮想マシンイメージファイル１２１の状態に変更があったと判定した場合（ステップＳ３０２；Ｙｅｓ）、主系処理制御部１１２は、主系仮想マシンイメージファイル１２１の差分情報を待機系仮想マシン２００に同期させるか否か判断する（ステップ３０３）。例えば、主系処理制御部１１２は、主系仮想マシンイメージファイル１２１に含まれるファイルの更新履歴や更新日付を参照し、これらが直近に参照した値から変更されている場合にはそのファイルが更新され、主系仮想マシンイメージファイル１２１の状態に変更があったと判定する。なお、同期させるか否かについては、例えば、リソースの使用状況が切迫している場合には同期させないと判断したり、あるいはリソースの使用量が想定可能な場合には、他の処理の混雑度を考慮してあらかじめ定められた時間帯では同期させないと判断する。
【００２５】
主系処理制御部１１２は、主系仮想マシンイメージファイル１２１の差分情報を待機系仮想マシン２００に同期させないと判断した場合（ステップ３０３；Ｎｏ）、管理サーバ兼バックアップサーバ３００の高信頼性仮想マシン提供支援システム３１０内にある情報保持部３１２に主系仮想マシンイメージファイル１２１の差分情報を送信し、その差分情報についての伝送情報（例えば、送信日時や差分情報のサイズ等の送信履歴を含む情報。以下、単に伝送情報と呼ぶ。）を管理制御部３１１に通知し（ステップＳ３０４）、処理を終了させる。
【００２６】
一方、主系処理制御部１１２は、主系仮想マシンイメージファイル１２１の差分情報を待機系仮想マシン２００に同期させると判断した場合（ステップ３０３；Ｙｅｓ）、待機系エージェント部２１０が有する受付部２１２に、主系仮想マシンイメージファイル１２１の差分情報を送信し、その伝送情報を待機系処理制御部２１１および管理サーバ兼バックアップサーバ３００の高信頼性仮想マシン提供支援システム３１０が有する管理制御部３１１に通知する（ステップ３０５）。
【００２７】
そして、待機系処理制御部２１１は、受付部２１２が受け取った主系仮想マシンイメージファイル１２１の差分情報を参照し、その差分情報に記録されている差分ファイル名の差分データを更新し、主系仮想マシンイメージファイル１２１と待機系仮想マシンイメージファイル２２１との間で同期をとり、同期した際の情報（例えば、同期日時、同期完了結果、同期させたイメージファイルの容量等の同期履歴を含む情報。以下、単に同期情報と呼ぶ。）を管理制御部３１１に通知する（ステップ３０６）。このステップＳ３０６またはＳ３０４の処理が終了すると、図３に示す同期制御処理の全ての処理が終了する。続いて、仮想マシン提供システム１０００において行われる同期再開制御処理の動作について説明する。
【００２８】
図４は、同期再開制御処理の処理手順を示すフローチャートである。同期再開制御処理は、図３に示した同期制御処理において同期を行わないと判定された場合に、その後同期を再開する場合の処理である。なお、以下では、同期再開制御処理は、あらかじめ定められたリソースの消費が比較的少ない時間帯（例えば、アクセスやトランザクションが少ない早朝の時間帯）に実行する前提としているが、例えば、リソースの消費率が高い処理が終了した後に自動的にスケジューリングして実行させることとしてもよい。
【００２９】
図４に示すように、待機系仮想マシン２００の待機系エージェント部２１０が有する待機系処理制御部２１１は、同期再開制御処理を行う時間が到来したか否かを判定することにより、主系仮想マシン１０１と同期を再開するか否かを判定し（ステップＳ４０１）、未だその時間が到来していないと判定した場合（ステップＳ４０１；Ｎｏ）、そのまま何もせずに待機する。
【００３０】
一方、待機系処理制御部２１１は、その時間が到来し、主系仮想マシン１０１と同期を再開すると判定した場合（ステップＳ４０１；Ｙｅｓ）、待機系処理制御部２１１は、管理サーバ兼バックアップサーバ３００の高信頼性仮想マシン提供支援システム３１０の管理制御部３１１に対して主系仮想マシンイメージファイル１２１の差分情報の同期再開を通知し、管理制御部３１１は、それまでに情報保持部３１２に蓄積された差分データを、待機系仮想マシン２００の受付部２１２に送信する（ステップＳ４０２）。
【００３１】
待機系処理制御部１０８は、受付部２１２が管理サーバ兼バックアップサーバ３００から受け取った主系仮想マシンイメージファイル１２１の差分情報を参照し、その差分情報に記録されている差分ファイル名の差分データを更新し、主系仮想マシンイメージファイル１２１と待機系仮想マシンイメージファイル２２１との間で同期をとり、同期情報を管理制御部３１１に通知する。（ステップ４０３）。
【００３２】
そして、管理制御部３１１は、情報保持部３１２に保持されていた全ての差分情報について、待機系仮想マシン２００から同期情報を受け取ったか否かを判定することにより待機系仮想マシンイメージファイル２２１に同期されたことを確認し、主系仮想マシン１００の主系エージェント１１０が有する主系処理制御部１１２に対して同期再開を通知する（ステップ４０４）。このステップＳ４０４の処理が終了すると、図４に示した同期再開制御処理の全ての処理が終了する。
【００３３】
以上説明した如く、本実施例によれば、待機系仮想マシン２００自体を起動することなく主系仮想マシン１００と待機系仮想マシン２００の状態同期が可能になる上に、主系仮想マシン１００と待機系仮想マシン２００の同期を中止／再開した際に人手を介さず同期再開を自動制御するので、システム管理者の負担を軽減することが可能になり、仮想マシンの高信頼性を確保するシステムリソース利用量の低減や利便性が高められる。
【００３４】
具体的には、主系の仮想マシンイメージファイル１２１の変更を検知して差分情報のみを待機系の仮想マシンイメージファイル２２１に同期し、他のタイミングでは待機系の仮想マシンを起動しないことで、ハイパーバイザのリソース利用量を低減し、リアルタイムに待機系の仮想マシンへ状態同期できるという顕著な効果を表する。また、待機系の仮想マシンとの同期を停止した際に、管理サーバ兼バックアップサーバに差分情報を保持し、待機系の仮想マシンが同期を再開した際に管理サーバ兼バックアップサーバから保持した差分情報を管理して待機系の仮想マシンに自動で同期することで、容易かつ円滑に同期を再開するという顕著な効果も表する。
【符号の説明】
【００３５】
１０００      仮想マシン提供システム
１００        主系仮想マシン
１１０        主系エージェント部
１１１        監視部
１１２        主系処理制御部
１２０        記憶部
１３０        通信部
２００        待機系仮想マシン
２１０        待機系エージェント部
２１１        待機系処理制御部
２１２        受付部
２２０        記憶部
２３０        通信部
３００        管理サーバ兼バックアップサーバ
３１０        高信頼性仮想マシン提供支援システム
３１１        管理制御部
３１２        情報保持部
３２０        通信部
Ｎ            ネットワーク。
【図１】
2013186692.tif 000003
【図２】
2013186692.tif 000004
【図３】
2013186692.tif 000005
【図４】
2013186692.tif 000006