(57)【要約】  主系の仮想マシンにおけるイメージファイルに更新があった場合、更新前との差分を待機系の仮想マシンのイメージファイルに随時同期させる仮想マシン同期システムである。本発明の代表的な実施の形態は、管理サーバと、主系仮想マシンのイメージファイルについて更新がされている場合に差分を取得して管理サーバに送信する主系エージェントと、管理サーバから待機系仮想マシンのイメージファイルに同期させるべき差分を取得して、待機系仮想マシンのイメージファイルに同期させる待機系エージェントとを有し、管理サーバは、主系エージェントから差分を受信した場合、これを主系状態テーブルに登録し、待機系エージェントから待機系仮想マシンのイメージファイルに同期させるべき差分に対する要求を受信した場合、主系状態テーブルに記録されている差分を取得して待機系エージェントに送信する。
2014076838.tif 000002
【特許請求の範囲】
【請求項１】
第１のハイパーバイザ上で稼働する第１の仮想マシンのイメージファイルの内容を、第２のハイパーバイザ上で前記第１の仮想マシンの待機系として稼働することができる第２の仮想マシンのイメージファイルに同期させる仮想マシン同期システムであって、
前記第１のハイパーバイザおよび前記第２のハイパーバイザとネットワークを介して接続可能な管理サーバと、
前記第１のハイパーバイザ上で稼働し、前記第１の仮想マシンのイメージファイルについて更新がされている場合に更新前との差分を取得して前記管理サーバに送信する第１の監視部と、
前記第２のハイパーバイザ上で稼働し、前記管理サーバから前記第２の仮想マシンのイメージファイルに同期させるべき前記差分を取得して、前記第２の仮想マシンのイメージファイルに同期させる第２の監視部を有し、
前記管理サーバは、前記第１の監視部から前記差分を受信した場合、これを第１の記録部に登録し、前記第２の監視部から前記第２の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信した場合、前記第１の記録部に記録されている前記差分を取得して前記第２の監視部に送信することを特徴とする仮想マシン同期システム。
【請求項２】
請求項１に記載の仮想マシン同期システムにおいて、
前記第２の監視部は、前記管理サーバから取得した前記差分を前記第２の仮想マシンのイメージファイルに同期させる際、同期が成功したか否かを判定し、成功していない場合は同期をリトライすることを特徴とする仮想マシン同期システム。
【請求項３】
請求項１に記載の仮想マシン同期システムにおいて、
前記管理サーバは、前記第１の監視部から前記差分を受信してこれを前記第１の記録部に登録する際、前記差分の同期についてのステータスとして未同期であることを示す値を登録し、前記第２の監視部から前記差分の前記第２の仮想マシンのイメージファイルへの同期が成功した旨の通知を受けた際、前記第１の記録部に登録された前記差分の同期についてのステータスを同期済みであることを示す値に更新することを特徴とする仮想マシン同期システム。
【請求項４】
請求項１に記載の仮想マシン同期システムにおいて、
前記管理サーバは、前記第２の監視部から前記第２の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信して、前記第１の記録部に記録されている前記差分を取得して前記第２の監視部に送信する際、前記第２の仮想マシンの同期についてのステータスとして同期中であることを示す値を第２の記録部に登録し、前記第２の監視部から前記差分の前記第２の仮想マシンのイメージファイルへの同期が成功した旨の通知を受けた際、前記第２の記録部に登録された前記第２の仮想マシンの同期についてのステータスを同期が正常に完了したことを示す値に更新することを特徴とする仮想マシン同期システム。
【請求項５】
請求項１に記載の仮想マシン同期システムにおいて、
前記管理サーバは、前記第１の監視部から前記差分を受信してこれを第１の記録部に登録する際、異なるバージョン毎に前記差分を登録することを特徴とする仮想マシン同期システム。
【請求項６】
請求項１に記載の仮想マシン同期システムにおいて、
前記第１のハイパーバイザ、前記第２のハイパーバイザ、および前記管理サーバのうち、いずれか１つ以上が異なる拠点において稼働することを特徴とする仮想マシン同期システム。
【請求項７】
第１のハイパーバイザ上で稼働する第１の仮想マシンのイメージファイルの内容を、第２のハイパーバイザ上で前記第１の仮想マシンの待機系として稼働することができる第２の仮想マシンのイメージファイルに同期させる仮想マシン同期システムであって、
前記第１のハイパーバイザおよび前記第２のハイパーバイザとネットワークを介して接続可能な管理サーバと、
前記第１のハイパーバイザ上で稼働し、前記第１の仮想マシンのイメージファイルを前記管理サーバに送信する第１の監視部と、
前記第２のハイパーバイザ上で稼働し、前記管理サーバから前記第２の仮想マシンのイメージファイルに同期させるべき前記差分を取得して、前記第２の仮想マシンのイメージファイルに同期させる第２の監視部を有し、
前記管理サーバは、前記第１の監視部から前記第１の仮想マシンのイメージファイルを受信した場合、これについて更新がされている場合に更新前との差分を取得して第１の記録部に登録し、前記第２の監視部から前記第２の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信した場合、前記第１の記録部に記録されている前記差分を取得して前記第２の監視部に送信することを特徴とする仮想マシン同期システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの管理技術に関し、特に、主系と待機系の仮想マシンを設け、主系の内容を待機系に同期させる仮想マシン同期システムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
例えば、データセンターなどにおいてクラウドコンピューティング環境を構築・運用するような場合、多数のサーバ機器類を構築して稼働させる必要があるが、その際、コンピュータ仮想化技術の一つである仮想マシンを実現するためのハイパーバイザを用いて仮想マシンとしてサーバ等の機器を構築することが行われる。このような環境では、仮想マシンのメンテナンスや障害発生時などにおいて、いわゆるライブマイグレーションにより対象の仮想マシンを他のハイパーバイザに瞬時に移行してサービスを継続した上で、メンテナンス等の作業を行うことができる。【０００３】
しかしながら、全ての仮想マシンがライブマイグレーションの機能を有しているわけではなく、ライブマイグレーションによる移行ができない環境もある。このような環境では、仮想マシンからなるシステムの信頼性を高めるため、対象の仮想マシン（主系）に対して待機系の仮想マシンを作成して切替可能としておく。【０００４】
これに関連する技術として、例えば、特開２００７−１４８８３９号公報（特許文献１）には、複数の仮想サーバが稼働する複数の物理サーバと、単一の待機系サーバを具備し、起動中の仮想サーバを検出する手段と、仮想サーバを制御する仮想化機構の起動ディスクと物理サーバの対応付けを切り替える手段を有し、物理サーバ障害時に仮想化機構の起動ディスクを交代サーバに接続し直すとともに、障害発生時に起動していた仮想サーバを自動的に起動することで、仮想化されたサーバ環境であっても低コストで高信頼化する技術が記載されている。【０００５】
また、特開２０１０−１０２４１４号公報（特許文献２）には、仮想システムの運用系システムについての構成情報を格納する構成情報格納部と、仮想システムの運用系システムのための仮想マシン・イメージを格納する第１仮想マシン・イメージ格納部と、仮想システムの運用系システムとテスト系システムとの差分の構成情報である構成変更情報を格納する構成変更情報格納部と、仮想マシンの運用系システムとテスト系システムとの差分の構成についての仮想マシン・イメージを格納する第２仮想マシン・イメージ格納部と、制御部とを有することで、運用系システムとテスト系システムの切替が容易かつスムーズに行われるようにする技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１４８８３９号公報
【特許文献２】特開２０１０−１０２４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ライブマイグレーションが行えない環境において、主系・待機系のシステム構成をとる場合、待機系の仮想マシンは、主系の仮想マシンと内容や状態（例えば、パッチやウィルスソフトのバージョンなど）が同一となるよう同期させるため、システム全体の動作の観点からは起動の必要がないにも関わらず、起動されている場合がある。このため、待機系の仮想マシンに対して無駄なリソース（ＣＰＵ、メモリ、ストレージなど）が割り当てられ、ハイパーバイザのリソースを有効に活用できないという課題があった。【０００８】
また、例えば、特許文献１などに記載されたような技術では、リソースを効率的に利用することができるものの、ハイパーバイザ上に構築される複数の仮想マシンのそれぞれの単位で同期を制御することは困難な場合がある。また、例えば、特許文献２などに記載されたような技術では、運用系システムとテスト系システムにおけるサーバ単位での構成の差分情報に基づいてテスト系システムから運用系システムへ切替を行うものであり、例えば、運用系システムが実運用をしており仮想マシンのイメージファイルが随時変化していく場合に、その変更分（差分）をテスト系システムに随時反映・同期させることについては考慮されていない。すなわち、稼働中の主系の仮想マシンのイメージファイルをリアルタイムで待機系の仮想マシンに同期させることは考慮されていない。【０００９】
そこで本発明の目的は、主系の仮想マシンにおけるイメージファイルに更新があった場合、更新前との差分を待機系の仮想マシンのイメージファイルに随時同期させることで、待機系の仮想マシンを起動しておくことなく待機系の仮想マシンの内容や状態を主系の仮想マシンに同期させる仮想マシン同期システムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。【００１１】
本発明の代表的な実施の形態による仮想マシン同期システムは、第１のハイパーバイザ上で稼働する第１の仮想マシンのイメージファイルの内容を、第２のハイパーバイザ上で前記第１の仮想マシンの待機系として稼働することができる第２の仮想マシンのイメージファイルに同期させる仮想マシン同期システムであって、以下の特徴を有するものである。【００１２】
すなわち、仮想マシン同期システムは、前記第１のハイパーバイザおよび前記第２のハイパーバイザとネットワークを介して接続可能な管理サーバと、前記第１のハイパーバイザ上で稼働し、前記第１の仮想マシンのイメージファイルについて更新がされている場合に更新前との差分を取得して前記管理サーバに送信する第１の監視部と、前記第２のハイパーバイザ上で稼働し、前記管理サーバから前記第２の仮想マシンのイメージファイルに同期させるべき前記差分を取得して、前記第２の仮想マシンのイメージファイルに同期させる第２の監視部とを有し、前記管理サーバは、前記第１の監視部から前記差分を受信した場合、これを第１の記録部に登録し、前記第２の監視部から前記第２の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信した場合、前記第１の記録部に記録されている前記差分を取得して前記第２の監視部に送信することを特徴とするものである。
【発明の効果】
【００１３】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。【００１４】
すなわち、本発明の代表的な実施の形態によれば、主系の仮想マシンにおけるイメージファイルに更新があった場合、更新前との差分を待機系の仮想マシンのイメージファイルに随時同期させることで、待機系の仮想マシンを起動しておく必要なく主系の仮想マシンの内容や状態を待機系の仮想マシンに同期させることが可能となる。これにより、ハイパーバイザのリソースを有効活用しつつ仮想マシンの信頼性を向上させることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態である仮想マシン同期システムの構成例について概要を示した図である。
【図２】本発明の一実施の形態における対象仮想マシンＴＢのデータ構成の例について概要を示した図である。
【図３】本発明の一実施の形態における待機系状態ＴＢのデータ構成の例について概要を示した図である。
【図４】本発明の一実施の形態における主系状態ＴＢのデータ構成の例について概要を示した図である。
【図５】本発明の一実施の形態における主系イメージファイルから取得した差分を管理サーバに登録する処理の流れの例について概要を示したフロー図である。
【図６】本発明の一実施の形態における管理サーバに登録された差分の内容を対応する待機系イメージファイルに同期させる処理の流れの例について概要を示したフロー図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１７】
本発明の一実施の形態である仮想マシン同期システムは、例えば、データセンター等において運用されるクラウドコンピューティング環境等において、主系の仮想マシンのイメージファイルを監視して、内容が更新されている場合、更新前との差分情報を抽出して、これを管理サーバを介して待機系の仮想マシンのイメージファイルに同期させる。これにより、待機系の仮想マシンを起動しておく必要なく主系の仮想マシンの内容を待機系の仮想マシンに同期させることが可能となり、ハイパーバイザのリソースを有効活用することが可能となるため、仮想マシンの集積率を上げることができ、コストを大きく削減することができる。
【００１８】
仮想マシンイメージファイルの差分情報の同期は、リアルタイムで実行することができるため、待機系の仮想マシンを常に主系の仮想マシンと同じ内容や状態に維持することができる。また、待機系において差分情報の同期が正しく行われたか否かをトラッキングすることで同期の失敗を検知し、リトライすることで確実な同期を行う。これらにより、可用性や信頼性を向上させることができる。
【００１９】
＜システム構成＞
図１は、本発明の一実施の形態である仮想マシン同期システムの構成例について概要を示した図である。仮想マシン同期システム１は、複数のハイパーバイザ（図１の例では、ハイパーバイザＡ（１００）およびハイパーバイザＢ（２００）の２つ）、および管理サーバ３００がＬＡＮ（Local Area Network）等のネットワーク４００で相互に通信可能なように接続された構成を有する。主系／待機系の各ハイパーバイザは、ベンダー等から入手可能な既存のハイパーバイザ製品等を適宜利用することができる。
【００２０】
図１の例では、ハイパーバイザＡ（１００）の管理下では１つ以上の（種類の）主系仮想マシン１０１が稼働しており、さらに、ハイパーバイザＡ（１００）上では、ソフトウェアプログラムもしくは集積回路等により設計されたハードウェアにより実装された主系エージェント（監視部）１２０が稼働している。
【００２１】
主系エージェント１２０は、例えば、さらに、差分確認部１２１および差分抽出部１２２などの各部を有する。差分確認部１２１は、稼働中の主系仮想マシン１０１の現在のイメージファイルである主系イメージ１１０と、主系仮想マシン１０１の直近のイメージファイルの内容を保持するベースイメージ１３０との差分（更新）の有無を確認する機能を有する。例えば、主系イメージ１１０とベースイメージ１３０との間でファイルサイズを比較する等の既存の手法を適宜利用することができる。この処理は、例えば、主系エージェント１２０からの定期的な指示に基づいて行う。
【００２２】
差分抽出部１２２は、差分確認部１２１において差分があると判定された場合に、差分のデータを差分１１１として抽出する機能を有する。例えば、主系イメージ１１０とベースイメージ１３０とをビット単位で比較して差分を抽出する等の既存の手法を適宜利用することができる。抽出した差分１１１は、バージョン情報や取得日時等の情報を付した上でネットワーク４００を介して管理サーバ３００に転送する。バージョン情報については、差分１１１を一意に識別することができるものであれば特にフォーマット等は限定されない。
【００２３】
ハイパーバイザＢ（２００）の管理下では１つ以上の（種類の）待機系仮想マシン２０１が稼働可能な状態となっている（通常時に待機系仮想マシン２０１は起動していなくてもよい）。なお、これらの各待機系仮想マシン２０１は、ハイパーバイザＡ（１００）上で稼働している主系仮想マシン１０１に対応する待機系としての仮想マシンである。ハイパーバイザＢ（２００）上では、さらに、ソフトウェアプログラムもしくは集積回路等により設計されたハードウェアにより実装された待機系エージェント（監視部）２２０が稼働している。
【００２４】
待機系エージェント２２０は、例えば、さらに、差分同期部２２１および同期確認部２２２などの各部を有する。差分同期部２２１は、待機系仮想マシン２０１を起動するために使用することになる仮想マシンイメージファイルである待機系イメージ２１０に同期させるべき差分１１１の有無を管理サーバ３００に対して問い合わせるとともに、同期させるべき差分１１１がある場合に、これを取得して待機系イメージ２１０に適用して同期させる機能を有する。待機系イメージ２１０に対する差分１１１の適用についても、既存の手法を適宜利用することができる。
【００２５】
同期確認部２２２は、差分同期部２２１によって差分１１１の適用が行われた際の結果をチェックし、正しく適用が行われて同期されたか否かを確認する機能を有する。正しく同期された場合にはその旨を管理サーバ３００に対して報告する一方、正しく同期されなかった場合には適当な時間間隔を空けて差分同期部２２１に対して差分１１１の同期をリトライさせる等により同期を再度試みる。一定回数のリトライによっても正しく同期ができなかった場合には管理サーバ３００に対してその旨を報告する等によりエラー処理を行う。同期が正しく行われたか否かの判定手法としては、例えば、差分同期部２２１における差分１１１の適用処理の際の結果コードのチェックや、待機系イメージ２１０のデータの整合性検証など、各種の既存の手法を適宜利用することができる。
【００２６】
なお、図１の例では、主系と待機系を区別して記載しているが、主系仮想マシン１０１から待機系仮想マシン２０１に処理が切り替わった場合、以後は待機系仮想マシン２０１が主系となって稼働することになる。従って、ハイパーバイザＡ（１００）およびハイパーバイザＢ（２００）の双方が主系もしくは待機系のいずれでも稼働することが可能となるよう、各ハイパーバイザが主系エージェント１２０および待機系エージェント２２０の双方を有する構成としてもよい。もしくは、主系エージェント１２０と待機系エージェント２２０の双方の機能を有するエージェントを有する構成としてもよい。
【００２７】
管理サーバ３００は、主系仮想マシン１０１の主系イメージ１１０における差分１１１の内容を保持・管理するとともに、これらについての待機系仮想マシン２０１の待機系イメージ２１０に対する同期のステータスを管理するサーバ機器である。管理サーバ３００自体が仮想マシンとして構成されていてもよい。管理サーバ３００は、例えば、図示しないＯＳやＤＢＭＳ（DataBase Management System：データベース管理システム）、Ｗｅｂサーバプログラムなどのミドルウェア上で稼働するソフトウェアプログラム等により実装される同期管理部３１０などを有する。また、データベースやファイルテーブルなどにより実装される対象仮想マシンテーブル（ＴＢ）３２０、待機系状態ＴＢ３３０、および主系状態ＴＢ３４０などの各テーブルを有する。
【００２８】
同期管理部３１０は、ハイパーバイザＡ（１００）の主系エージェント１２０から送信された差分１１１の内容を主系状態ＴＢ３４０に保持するとともに、ハイパーバイザＢ（２００）の待機系エージェント２２０からの問合せに対して、同期すべき差分１１１の有無を確認し、ある場合にはこれを主系状態ＴＢ３４０から取得して待機系エージェント２２０に送信する機能を有する。
【００２９】
＜データ構成＞
以下では、管理サーバ３００が有する各テーブルのデータ構成について説明する。図２は、対象仮想マシンＴＢ３２０のデータ構成の例について概要を示した図である。対象仮想マシンＴＢ３２０は、各ハイパーバイザ上で稼働する複数の仮想マシンのうち、主系と待機系との間で仮想マシンイメージファイルの同期を行う対象となる仮想マシンの情報を保持するテーブルであり、例えば、ハイパーバイザＩＤ、同期対象仮想マシンＩＤ、および主／待機区分などの各項目を有する。
【００３０】
ハイパーバイザＩＤの項目は、対象の仮想マシンが稼働するハイパーバイザを一意に識別するＩＤ情報を保持する。一意に識別可能な情報であればシーケンス番号やホスト名、ＩＰアドレスなどでもよい。同期対象仮想マシンＩＤの項目は、同期対象の仮想マシンを一意に識別するＩＤ情報を保持する。システム全体で一意に識別可能な情報でもよいし、ハイパーバイザ内で一意に識別可能な情報であってもよい。主／待機区分の項目は、対象の仮想マシンが主系か待機系かを識別するコード値などの情報を保持する。主系から待機系に処理が切り替わった場合に、当該項目の値を更新し、これを対象のハイパーバイザやエージェントが参照することで、自身が主系として稼働するのか待機系として稼働するのかを判断するようにしてもよい。
【００３１】
図３は、待機系状態ＴＢ３３０のデータ構成の例について概要を示した図である。待機系状態ＴＢ３３０は、各待機系仮想マシン２０１についての差分１１１の同期状況を含む情報を保持するテーブルであり、例えば、待機系仮想マシンＩＤ、待機系ハイパーバイザＩＤ、対応主系仮想マシンＩＤ、主系ハイパーバイザＩＤ、同期ステータス、同期済み差分バージョン、および最終同期日時などの各項目を有する。
【００３２】
待機系仮想マシンＩＤおよび待機系ハイパーバイザＩＤの各項目は、それぞれ、対象の待機系仮想マシン２０１およびこれが稼働するハイパーバイザＢ（２００）を一意に識別するＩＤ情報を保持する。対応主系仮想マシンＩＤおよび主系ハイパーバイザＩＤの各項目は、それぞれ、対象の待機系仮想マシン２０１に対応する主系仮想マシン１０１およびこれが稼働するハイパーバイザＡ（１００）を一意に識別するＩＤ情報を保持する。
【００３３】
同期ステータスの項目は、対象の待機系仮想マシン２０１における差分１１１の待機系イメージ２１０への同期の状況を示すコード値等を保持する。状況の種別としては、例えば、「正常同期」、「同期中」、「同期失敗」などとすることができる。このとき、待機系エージェント２２０からの要求に基づいて管理サーバ３００の同期管理部３１０が差分１１１を抽出して送信した際に「同期中」とし、待機系エージェント２２０から同期完了の通知を受領した際に「正常同期」とする。また、待機系エージェント２２０から同期失敗の通知を受領した際に「同期失敗」とする。
【００３４】
同期済み差分バージョンの項目は、対象の待機系仮想マシン２０１に対して現在同期済みの差分１１１を一意に識別するバージョン情報を保持する。この値は、待機系エージェント２２０からの同期完了の通知を同期管理部３１０が受領した際に、同期した差分１１１のバージョン情報の値によって更新される。最終同期日時の項目は、待機系エージェント２２０において最後に差分１１１の同期が正常に完了した際のタイムスタンプの情報を保持する。この値についても、待機系エージェント２２０からの同期完了の通知を同期管理部３１０が受領した際に更新される。
【００３５】
図４は、主系状態ＴＢ３４０のデータ構成の例について概要を示した図である。主系状態ＴＢ３４０は、各主系仮想マシン１０１について主系イメージ１１０から抽出された差分１１１の同期状況を含む情報を保持するテーブルであり、例えば、主系仮想マシンＩＤ、ハイパーバイザＩＤ、差分バージョン、差分取得日時、および同期ステータスなどの各項目を有する。
【００３６】
主系仮想マシンＩＤおよびハイパーバイザＩＤの各項目は、それぞれ、対象の主系仮想マシン１０１およびこれが稼働するハイパーバイザＡ（１００）を一意に識別するＩＤ情報を保持する。差分バージョンおよび差分取得日時の各項目は、それぞれ、対象の主系仮想マシン１０１の主系イメージ１１０から得られた差分１１１を一意に識別するバージョン情報、および当該差分１１１を取得したタイムスタンプの情報を保持する。
【００３７】
同期ステータスの項目は、対象の差分１１１について、対応する待機系仮想マシン２０１の待機系イメージ２１０への同期の状況を示すコード値等を保持する。状況の種別としては、例えば、「未同期」、「同期済み」などとすることができる。このとき、主系エージェント１２０から管理サーバ３００の同期管理部３１０が差分１１１を受信した際に「未同期」としてエントリを登録し、待機系エージェント２２０から同期完了の通知を受領した際に「同期済み」とする。
【００３８】
主系仮想マシン１０１から得られた複数バージョンの差分１１１について履歴としてレコードを残しておき、任意のバージョンの状態に仮想マシンイメージファイルを復元可能とするような世代管理を行なうことで、当該仮想マシン同期システム１を主系仮想マシン１０１に対するバックアップシステムとして利用することも可能である。
【００３９】
なお、上述の図２〜図４で示した各テーブルのデータ構成（項目）はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
【００４０】
＜処理の流れ＞
図５、図６により、主系仮想マシン１０１の主系イメージ１１０の内容を待機系仮想マシン２０１の待機系イメージ２１０に随時同期させる処理の流れについて説明する。図５は、主系イメージ１１０から取得した差分１１１を管理サーバ３００に登録する処理の流れの例について概要を示したフロー図である。ハイパーバイザＡ（１００）の主系エージェント１２０は、定期的に、ハイパーバイザＡ（１００）上で稼働中の各主系仮想マシン１０１について、差分確認部１２１によりベースイメージ１３０を取得し（Ｓ０１）、これと現在の主系イメージ１１０とを比較する（Ｓ０２）。
【００４１】
ステップＳ０２の比較の結果に基づいて差分の有無を判定し（Ｓ０３）、差分がない場合は、待機系仮想マシン２０１に同期させる差分１１１がないことになるため、ステップＳ０１に戻って定期的に差分の有無を確認する処理を繰り返す。差分がある場合は、差分抽出部１２２により差分１１１を主系イメージ１１０から抽出し、これを含む差分情報を管理サーバ３００の同期管理部３１０に転送する（Ｓ０４）。差分情報には、差分１１１の他に、例えば、そのバージョンや取得日時、対象の主系仮想マシン１０１のＩＤやハイパーバイザＡ（１００）のＩＤなどの情報が含まれる。その後、現在の主系イメージ１１０の内容によりベースイメージ１３０を上書き更新し（Ｓ０５）、ステップＳ０１に戻って定期的な処理を繰り返す。
【００４２】
一方、管理サーバ３００の同期管理部３１０は、主系エージェント１２０から差分１１１を含む差分情報を受領すると（Ｓ１１）、差分１１１を含むその内容を主系状態ＴＢ３４０に登録する（Ｓ１２）。このとき、主系状態ＴＢ３４０の同期ステータスの項目には、例えば、「未同期」など、当該差分１１１が未だ待機系仮想マシン２０１の待機系イメージ２１０に同期されていないことを示す値を設定する。
【００４３】
なお、図５の例において、ハイパーバイザＡ（１００）上で稼働する仮想マシンのうち、主系エージェント１２０が仮想マシンイメージファイルの差分１１１の有無を確認する対象とするもの（主系仮想マシン１０１）をどのように特定するかについては、各種の手法をとることが可能である。例えば、管理サーバ３００に対して対象仮想マシンＴＢ３２０の登録内容を問合せて、自身が差分１１１の有無を確認する対象とすべき仮想マシンのＩＤのリストを取得するように構成することができる。また、各ハイパーバイザが、対象仮想マシンＴＢ３２０に登録されている内容のうち自身に係る部分と同様の内容を保持するテーブルを有して、これを参照する構成としてもよい。
【００４４】
図６は、管理サーバ３００に登録された差分１１１の内容を対応する待機系イメージ２１０に同期させる処理の流れの例について概要を示したフロー図である。ハイパーバイザＢ（２００）の待機系エージェント２２０は、差分同期部２２１等により、定期的に管理サーバ３００に対して、ハイパーバイザＢ（２００）上で稼働することができる待機系仮想マシン２０１毎に、待機系イメージ２１０に同期させるべき未同期の差分１１１の有無を確認する問い合わせを行い（Ｓ２１）、結果として管理サーバ３００の同期管理部３１０から差分情報を受領する（Ｓ２２）。この差分情報には、例えば、１つ以上のバージョンの未同期の差分１１１の内容が含まれる。また、未同期の差分１１１が存在しない場合にはその旨の情報が含まれる。
【００４５】
その後、同期管理部３１０から受領した差分情報に未同期の差分１１１が含まれているか否かを判定し（Ｓ２３）、差分１１１がない場合はステップＳ２１に戻って定期的に管理サーバ３００に対して未同期の差分１１１の有無を確認する処理を繰り返す。一方、未同期の差分１１１がある場合は、対象の待機系イメージ２１０に適用して同期させる（Ｓ２４）。このとき、同期を開始した旨の同期情報を管理サーバ３００に対して通知する。
【００４６】
その後、同期確認部２２２により待機系イメージ２１０に差分１１１が正しく適用されて同期が成功したか否かを判定し（Ｓ２５）、同期が成功していない場合はステップＳ２４に戻って一定時間経過後に差分１１１の同期処理をリトライする。所定の回数以上リトライしても成功しなかった場合は、同期に失敗した旨の同期情報（図示しない）を管理サーバ３００に対して通知するようにしてもよい。同期が成功している場合はその旨と同期に係る情報を管理サーバ３００に通知して（Ｓ２６）、ステップＳ２１に戻って定期的な処理を繰り返す。
【００４７】
一方、管理サーバ３００の同期管理部３１０は、待機系エージェント２２０から未同期の差分１１１の有無の確認要求を受信した場合、確認要求に含まれる対象の待機系仮想マシン２０１のＩＤの情報に基づいて、待機系状態ＴＢ３３０を参照し、対応する主系仮想マシン１０１のＩＤおよびこれが稼働するハイパーバイザＡ（１００）のＩＤの情報を取得する（Ｓ３１）。さらにこの情報に基づいて主系状態ＴＢ３４０を参照して対象の主系仮想マシン１０１における差分１１１の登録状況を確認し（Ｓ３２）、同期ステータスが「未同期」の差分１１１の有無を判定する（Ｓ３３）。
【００４８】
ステップＳ３３において、未同期の差分１１１が存在しない場合は、その旨の差分情報を待機系エージェント２２０に応答する。未同期の差分１１１が存在する場合は、これに係る差分情報を主系状態ＴＢ３４０から抽出して待機系エージェント２２０に応答する（Ｓ３４）。
【００４９】
その後、待機系エージェント２２０から同期を開始した旨の同期情報を受領すると、その内容に基づいて待機系状態ＴＢ３３０の対象の待機系仮想マシン２０１のエントリの同期ステータスを「同期中」に更新する（Ｓ３５）。さらに、待機系エージェント２２０から同期完了の旨の同期情報を受領すると、その内容に基づいて主系状態ＴＢ３４０の対象の差分情報のエントリの同期ステータスを「同期済み」に更新するとともに、待機系状態ＴＢ３３０の対象の待機系仮想マシン２０１のエントリの同期ステータスを「正常同期」に更新する（Ｓ３６）。なお、待機系エージェント２２０から同期に失敗した旨の同期情報（図示しない）を受領した場合は、待機系状態ＴＢ３３０の対象の待機系仮想マシン２０１のエントリの同期ステータスを「同期失敗」に更新する。
【００５０】
なお、図６の例においても、図５の例と同様に、ハイパーバイザＢ（２００）上で稼働することができる仮想マシンのうち、待機系エージェント２２０が差分１１１の内容を同期させる対象とするもの（待機系仮想マシン２０１）を特定するため、例えば、管理サーバ３００に対して対象仮想マシンＴＢ３２０の登録内容を問合せて、自身が差分１１１の内容を同期させる対象とすべき仮想マシンのＩＤのリストを取得するように構成することができる。また、各ハイパーバイザが、対象仮想マシンＴＢ３２０に登録されている内容のうち自身に係る部分と同様の内容を保持するテーブルを有して、これを参照する構成としてもよい。
【００５１】
以上に説明したように、本発明の一実施の形態である仮想マシン同期システム１によれば、データセンター等において運用されるクラウドコンピューティング環境等において、主系仮想マシン１０１の主系イメージ１１０を監視して、内容が更新されている場合、更新前との差分１１１を抽出して、管理サーバ３００を介して待機系仮想マシン２０１の待機系イメージ２１０に同期させる。これにより、待機系仮想マシン２０１を起動しておく必要なく主系仮想マシン１０１の内容を待機系仮想マシン２０１に同期させることが可能となり、ハイパーバイザＢ（２００）のリソースを有効活用することが可能となるため、仮想マシンの集積率を上げることができ、コストを大きく削減することができる。
【００５２】
また、差分１１１の同期は、リアルタイムで実行することができるため、待機系仮想マシン２０１を常に主系仮想マシン１０１と同じ内容や状態に維持することができる。また、待機系イメージ２１０において差分１１１の同期が正しく行われたか否かをトラッキングすることで同期の失敗を検知し、リトライすることで確実な同期を行う。これらにより、可用性や信頼性を向上させることができる。
【００５３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００５４】
例えば、上記の実施の形態では、ハイパーバイザＡ（１００）上の主系エージェント１２０においてベースイメージ１３０と主系イメージ１１０との差分１１１を確認して抽出するものとしているが、ベースイメージ１３０の内容を管理サーバ３００上で保持しておき、主系エージェント１２０が主系イメージ１１０を管理サーバ３００に送信して、管理サーバ３００において差分１１１の有無の確認および抽出を行い、ハイパーバイザＢ（２００）上の待機系エージェント２２０に差分１１１を送信する構成とすることも可能である。これにより、ハイパーバイザＡ（１００）のリソースの使用を抑えることが可能となる。
【００５５】
また、例えば、ハイパーバイザＡ（１００）およびハイパーバイザＢ（２００）を含むシステム環境がデータセンターに構築されている状況で、これらのデータセンターに対して、管理サーバ３００の機能はインターネットを介してサービスとして提供する構成とすることも可能である。これにより、各データセンターでは管理サーバ３００を独自に構築することなく仮想マシンの信頼性を容易に向上させることが可能となる。また、例えば、ハイパーバイザＡ（１００）が存在するデータセンターとハイパーバイザＢ（２００）が存在するデータセンターとを遠隔地に構成することでディザスタリカバリのシステムを容易に構築することも可能である。
【産業上の利用可能性】
【００５６】
本発明は、主系と待機系の仮想マシンを設け、主系の内容を待機系に同期させる仮想マシン同期システムに利用可能である。
【符号の説明】
【００５７】
１…仮想マシン同期システム、
１００…ハイパーバイザＡ、１０１…主系仮想マシン、１１０…主系イメージ、１１１…差分、１２０…主系エージェント、１２１…差分確認部、１２２…差分抽出部、１３０…ベースイメージ、
２００…ハイパーバイザＢ、２０１…待機系仮想マシン、２１０…待機系イメージ、２２０…待機系エージェント、２２１…差分同期部、２２２…同期確認部、
３００…管理サーバ、３１０…同期管理部、３２０…対象仮想マシンテーブル（ＴＢ）、３３０…待機系状態テーブル（ＴＢ）、３４０…主系状態テーブル（ＴＢ）、
４００…ネットワーク。
【図１】
2014076838.tif 000003
【図２】
2014076838.tif 000004
【図３】
2014076838.tif 000005
【図４】
2014076838.tif 000006
【図５】
2014076838.tif 000007
【図６】
2014076838.tif 000008
【国際調査報告】
2014076838.tif 000009
2014076838.tif 000010
2014076838.tif 000011
2014076838.tif 000012