(57)【特許請求の範囲】
【請求項１】
仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々について、前記フォールトトレラント機能の状態に関する条件を保持するサービス管理表と、
前記条件に基づいて、前記仮想マシンの前記フォールトトレラント機能の状態を制御する制御手段と、
前記仮想マシンにおける通信の内容を解析する通信解析手段と、を備え、
前記制御手段は、前記通信解析手段における前記通信の内容の解析結果に基づいて、前記仮想マシンの前記フォールトトレラント機能の状態を制御する、仮想マシン管理システム。
【請求項２】
前記制御手段は、前記サービスの少なくとも一つが前記フォールトトレラント機能を有効にすべきとの前記条件を満たす場合に前記フォールトトレラント機能を有効とするように前記仮想マシンを制御する、請求項１に記載の仮想マシン管理システム。
【請求項３】
前記制御手段は、前記サービスのいずれもが前記フォールトトレラント機能を無効にすべきとの前記条件を満たす場合に前記フォールトトレラント機能を無効とするように前記仮想マシンを制御する、請求項１又は２に記載の仮想マシン管理システム。
【請求項４】
前記条件に関連する前記サービスに応じて、前記フォールトトレラント機能が有効である場合に、前記仮想マシンの状態を保存する間隔であるチェックポイントを制御するチェックポイント制御部を備える、請求項１から３のいずれか一項に記載の仮想マシン管理システム。
【請求項５】
前記サービス管理表は、前記サービスの各々について、前記サービスの通信に関する前記フォールトトレラント機能を有効とすべき条件を保持する、請求項１から４のいずれか一項に記載の仮想マシン管理システム。
【請求項６】
前記制御手段は、前記仮想マシンにおいて実行される前記サービスに関する実行状況監視するサービス監視手段による監視の結果に基づいて、前記仮想マシンの前記フォールトトレラント機能の状態を制御する、請求項１から５のいずれか一項に記載の仮想マシン管理システム。
【請求項７】
仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々に対する前記フォールトトレラント機能を有効にすべき条件に基づいて、前記サービスの少なくとも一つが前記条件を満たすか否かを判定し、
前記判定の結果に基づいて、前記仮想マシンの前記フォールトトレラント機能に関する状態を変更するように制御し、
前記仮想マシンにおける通信の内容を解析し、
前記通信の内容の解析結果に基づいて、前記仮想マシンの前記フォールトトレラント機能の状態を制御する、仮想マシンの管理方法。
【請求項８】
コンピュータに、
仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々に対する前記フォールトトレラント機能を有効にすべき条件に基づいて、前記サービスの少なくとも一つが前記条件を満たすか否かを判定する処理と、
前記判定の結果に基づいて、前記仮想マシンの前記フォールトトレラント機能に関する状態を変更するように制御する処理と、
前記仮想マシンにおける通信の内容を解析する処理と、を実行させ、
前記制御する処理は、前記解析する処理における前記通信の内容の解析結果に基づいて、前記仮想マシンの前記フォールトトレラント機能の状態を制御する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン管理システム、仮想マシン管理方法及びプログラムに関する。
【背景技術】
【０００２】
システムの可用性や信頼性を高めるために、様々な技術が開発されている。仮想マシンにおいては、可用性を高めることを目的の一つとして、フォールトトレラント（Ｆａｕｌｔ  Ｔｏｒｅｌａｎｔ：以下「ＦＴ」と称する場合がある）機能と呼ばれる技術が用いられつつある。フォールトトレラント機能により、例えば、仮想マシンを実行するホストに障害が生じた場合に、予め用意された他のホストに当該仮想マシンの処理が引き継がれて当該仮想マシンの処理が継続する。フォールトトレラント機能の一例が、非特許文献１に記載されている。
【０００３】
特許文献１には、特別なハードウェアを使用せずに、簡便、高速に系の切り替えが可能な低消費電力のフォールトトレラント計算機システム等が記載されている。
【０００４】
特許文献２には、仮想マシンのマイグレーション先を決定する方法が記載されている。特許文献２に記載の技術では、システム全体の最適化のためのマイグレーションポリシーだけでなく、アプリケーションに依存するマイグレーションポリシーをユーザが定義できる。そして、特許文献２に記載の技術では、両ポリシーを考慮しながら、アプリケーションが稼働する仮想マシンを稼働させたまま、他のサーバに移動することを制御する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２２１３２１号公報
【特許文献２】特開２００９−１１６８５２号公報
【非特許文献】
【０００６】
【非特許文献１】Brendan Cully, Geoffrey Lefebvre, Dutch Meyer, Mike Feeley, Norm Hutchinson, and Andrew Warfield. 2008. Remus: high availability via asynchronous virtual machine replication. In Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation (NSDI'08), Jon Crowcroft and Mike Dahlin (Eds.). USENIX Association, Berkeley, CA, USA, 161-174.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
フォールトトレラント機能を備える仮想マシンにおいては、フォールトトレラント機能に関連して、負荷の大きな処理が行われる場合がある。そのため、フォールトトレラント機能は、当該仮想マシンによって実行されるサービスの外部への提供等、仮想マシンの動作に影響を及ぼす可能性がある。しかしながら、各特許文献等に記載の技術では、フォールトトレラント機能に起因する仮想マシンの動作への影響を軽減することが困難である。
【０００８】
本発明は、上記課題を解決するためになされたものであって、フォールトトレラント機能に起因する仮想マシンの動作への影響が小さい仮想マシン管理システム等を提供することを主たる目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様における仮想マシン管理システムは、  仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々について、前記フォールトトレラント機能の状態に関する条件を保持するサービス管理表と、
前記条件に基づいて、前記仮想マシンの前記フォールトトレラント機能の状態を制御する制御手段とを備える、仮想マシン管理システム。
また、本発明の一態様における仮想マシン管理方法は、仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々に対するフォールトトレラント機能を有効にすべき条件に基づいて、サービスの少なくとも一つが条件を満たすか否かを判定し、判定の結果に基づいて、仮想マシンのフォールトトレラント機能に関する状態を変更するように制御する。
【００１０】
また、本発明の一態様におけるプログラムは、コンピュータに、仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々に対するフォールトトレラント機能を有効にすべき条件に基づいて、前記サービスの少なくとも一つが前記条件を満たすか否かを判定する処理と、判定の結果に基づいて、仮想マシンのフォールトトレラント機能に関する状態を変更するように制御する処理とを実行させる。
【発明の効果】
【００１１】
本発明によると、フォールトトレラント機能に起因する仮想マシンの動作への影響が小さい仮想マシン管理システム等を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の各実施形態の前提となる仮想マシンの構成等を示す図である。
【図２】本発明の第１の実施形態における仮想マシン管理システムの構成を示す図である。
【図３】本発明の第１の実施形態における仮想マシン管理システムの動作を示すフローチャートである。
【図４】本発明の第１の実施形態における仮想マシン管理システムの動作の変形例を示すフローチャートである。
【図５】本発明の第２の実施形態における仮想マシン管理システムの構成を示す図である。
【図６】本発明の各実施形態における仮想マシン管理システム等を実現する情報処理装置の一構成例を示す図である。
【発明を実施するための形態】
【００１３】
本発明の各実施形態について、添付の図面を参照して説明する。なお、本発明の各実施形態において、各システムの各構成要素は、機能単位のブロックを示している。各システムの各構成要素は、例えば図６に示すような情報処理装置５００とプログラムとの任意の組み合わせにより実現される。情報処理装置５００は、一例として、以下のような構成を含む。
【００１４】
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０１
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０２
・ＲＡＭ（Ｒａｍｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３
・ＲＡＭ５０３にロードされるプログラム５０４
・プログラム５０４を格納する記憶装置５０５
・記録媒体５０６の読み書きを行うドライブ装置５０７
・通信ネットワーク５０９と接続する通信インターフェース５０８
・データの入出力を行う入出力インターフェース５１０
・各構成要素を接続するバス５１１
各実施形態における各システムの各構成要素は、これらの機能を実現するプログラム５０４をＣＰＵ５０１が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム５０４は、例えば、予め記憶装置５０５やＲＡＭ５０３に格納されており、必要に応じてＣＰＵ５０１が読み出す。なお、プログラム５０４は、通信ネットワーク５０９を介してＣＰＵ５０１に供給されてもよいし、予め記録媒体５０６に格納されており、ドライブ装置５０７が当該プログラムを読み出してＣＰＵ５０１に供給してもよい。また、各装置の実現方法には、様々な変形例がある。例えば、各実施形態における各システムは、情報処理装置５００とは異なる回路等を含む様々なハードウェアとプログラムとの任意の組み合わせにより実現され得る。
【００１５】
本発明の各実施形態に関する説明に先立って、各実施形態の前提となる仮想マシンにおけるフォールトトレラント機能やその動作を説明する。図１は、各実施形態の前提となる仮想マシン等の構成を示す図である。
【００１６】
フォールトトレラント機能は、仮想マシンを実行するハードウェア等に障害が生じた場合等に、当該仮想マシンが行っていた処理を他のハードウェア等にて実行される他の仮想マシンが継続して行う機能である。本発明の各実施形態においては、フォールトトレラント機能を実現する動作の一つとして、次のような動作が想定される。
【００１７】
まず、チェックポイントと呼ばれる一定間隔のタイミング毎等に、待機中の仮想マシンに稼働中の仮想マシンの状態が他のハードウェア等にて実行される他の仮想マシンに保存される。そして、稼働中の仮想マシンを実行するハードウェア等に障害が発生した場合には、待機中の仮想マシンは、保存された情報を用いて、稼働中の仮想マシンが実行していた処理を引き継いで実行する。一般的なフォールトトレラント機能においては、処理の引き継ぎの際には、仮想マシンの実行がそのまま継続される。このようなフォールトトレラント機能を用いることで、仮想マシンの可用性を高めることが可能となる。
【００１８】
なお、以降においては、チェックポイントにおいて仮想マシンの状態が保存され、障害が発生した際に他の仮想マシンによる処理の引き継ぎが可能な状態を、フォールトトレラント機能が有効であると称する。また、仮想マシンの状態の保存が行われず、障害が発生した際に他の仮想マシンによる処理の引き継ぎが行われない状態を、フォールトトレラント機能が無効であると称する。
【００１９】
フォールトトレラント機能を実現する動作の一例は、具体的には以下のようになる。図１に示す例においては、ホスト１０−１及び１０−２が通信ネットワーク５０を介して接続されている。ホスト１０−１及び１０−２は、例えば上述した図６に示す情報処理装置５００であるが、これに限られない。また、通信ネットワーク５０は、ホスト１０−１と１０−２との間でデータの転送を可能にする任意の構成のネットワークである。
【００２０】
ホスト１０−１及び１０−２においては、仮想マシン管理システム１００−１及び１００−２がそれぞれ実行されている。仮想マシン管理システム１００−１及び１００−２は、ホスト１０−１又は１０−２のそれぞれにおいて仮想マシンを実現する一般的なシステムである。仮想マシン管理システム１００−１及び１００−２は、ＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍａｎａｇｅｍｅｎｔ）、又はハイパーバイザ（Ｈｙｐｅｒｖｉｓｏｒ）とも呼ばれる。仮想マシン管理システム１００−１及び１００−２は、一般的なフォールトトレラント機能の実行に必要となる構成を備える。
【００２１】
仮想マシン２０又は４０は、それぞれ、仮想化された計算機システムである。仮想マシン２０は、仮想マシン管理システム１００−１にて実行される。また、仮想マシン４０は、仮想マシン管理システム１００−２にて実行される。仮想マシン２０又は４０は、それぞれゲスト物理メモリ２１又は４１を備える。ゲスト物理メモリ２１又は４１は、それぞれ仮想マシン２０又は４０の物理メモリとして機能する。それぞれゲスト物理メモリ２１又は４１のそれぞれは、ホスト１０−１又は１０−２が備える物理的なメモリ等を用いて実現される。
【００２２】
図１に示す例では、仮想マシン２０は稼働しており、仮想マシン２０においてゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３０が動作する。また、仮想マシン４０は待機しており、ゲストＯＳ３０の動作を引き継ぐことが可能である。すなわち、仮想マシン４０は、仮想マシン２０においてゲストＯＳ３０が正常に動作している場合には、特段の動作を行わない。そして、ホスト１０−１又は仮想マシン管理システム１００−１の少なくとも一方に問題が生じた場合には、仮想マシン４０は動作を開始する。この場合には、ゲストＯＳ３０は、仮想マシン管理システム１００−２が備えるフォールトトレラント機能により、仮想マシン４０に動作が引き継がれる。そして、ゲストＯＳ３０は、仮想マシン４０にて継続して動作する。
【００２３】
フォールトトレラント機能を有効とするために、仮想マシン管理システム１００−１及び１００−２は、仮想マシン２０の状態を保存する。仮想マシン管理システム１００−１は、仮想マシン２０の状態を、上述したチェックポイントと呼ばれるタイミングで仮想マシン管理システム１００−２を介して仮想マシン４０に保存する。チェックポイントは、例えば一定の間隔で設定される。上述したチェックポイントの間隔は、仮想マシン２０にて実行されるサービスの種類等に応じて適宜定められる。仮想マシン管理システム１００−１は、仮想マシン２０の状態の保存に際して、仮想マシン２０の動作を一時的に停止してその状態を保存する。
【００２４】
仮想マシン管理システム１００−１は、仮想マシン２０の状態として、例えば、仮想マシン２０が備えるゲスト物理メモリ２１の内容を仮想マシン４０のゲスト物理メモリ４１に保存する。仮想マシン２０の状態として、仮想マシン２０が仮想的に備えるＣＰＵの状態や、仮想マシン２０が仮想的に備える記憶装置の内容等が保存されてもよい。仮想マシン２０の状態としてゲスト物理メモリ２１の内容が保存される場合、仮想マシン管理システム１００−１は、直近のチェックポイントにて仮想マシン２０の状態が保存された後に更新されたゲスト物理メモリ２１の内容を保存する。すなわち、直近のチェックポイントにて仮想マシン２０の状態が保存された後に書き込みが行われたメモリ２１の領域が、次のチェックポイントにおいて保存の対象となる。
【００２５】
一般に、仮想マシン２０又は４０においては、ゲスト物理メモリ２１又は４１のそれぞれの内容は、ページと呼ばれる一定の単位にて管理される。したがって、ゲスト物理メモリ２１において、書き込みが行われたか否かの判定は、ページ単位で行われる。また、仮想マシン管理システム１００−１は、ページ単位でゲスト物理メモリ２１の内容を保存する。書き込みが行われ、次のチェックポイントにおいて保存の対象となるページは、ダーティページと呼ばれる。
【００２６】
図１に示す例では、ゲスト物理メモリ２１として囲われる領域に含まれる複数の四角形状の図形は、ゲスト物理メモリ２１におけるページの各々を表す。図１に示す例では、当該図形のうち、黒色で塗られた図形の各々は、ダーティページを表す。また、転送バッファ１２１として囲われる領域に含まれる複数の四角形状の図形は、チェックポイントにおいて保存の対象となるダーティページを表す。
【００２７】
上述のように、フォールトトレラント機能が有効であり、仮想マシン２０の状態の保存が行われる場合、仮想マシン２０は動作を一時的に停止する。仮想マシン２０の動作は、仮想マシン２０の状態の仮想マシン４０への保存が完了した後に再開される。すなわち、仮想マシン２０の動作は、仮想マシン２０の状態が仮想マシン４０に保存されるまで保留される。仮想マシン２０の状態を仮想マシン４０がゲスト物理メモリ４１へ保存する際には、ホスト１０−１からホスト１０−２への仮想マシン２０の状態に関するデータの転送が必要となる。これに対して、ホスト１０−１が備えるメモリにおけるデータのコピーは、ホスト１０−１からホスト１０−２へのデータの転送と比較して高速に実行される。
【００２８】
そこで、仮想マシン２０の動作が一時的に停止する期間を短くするために、仮想マシン管理システム１００−１は、仮想マシン２０の状態を最初に転送バッファ１２１に保存する。転送バッファ１２１は、後述のように、例えば仮想マシン管理システム１００−１が備えるメモリである。仮想マシン２０の状態が転送バッファ１２１に保存に保存されると、仮想マシン２０は、動作を再開する。仮想マシン２０の動作の再開と併せて、仮想マシン管理システム１００−１は、転送バッファ１２１に保存された仮想マシン２０の状態を仮想マシン４０のゲスト物理メモリ４１へ保存する。このようにすることで、仮想マシン２０の動作が一時的に停止する期間は、仮想マシン２０の状態がゲスト物理メモリ４１へ直接に転送されてゲスト物理メモリ４１に保存される場合と比較して短い期間となる。なお、同じページが繰り返しダーティページとなる場合は、仮想マシン管理システム１００−１は、当該ダーティページに関して、その時点における内容と直近のチェックポイントにおける内容との差分を仮想マシン４０へ転送してもよい。
【００２９】
また、上述のように仮想マシン２０の状態が保存される場合には、仮想マシン２０から外部への通信は、仮想マシン２０の状態の仮想マシン４０への保存が完了するまで保留される。すなわち、直近のチェックポイントにて仮想マシン２０の状態が保存された後に生じた後に生じた外部への通信は、次のチェックポイントにおいて仮想マシン２０の状態が保存されるまで外部へ送信されずに保留される。保留された通信は、仮想マシン２０の状態の仮想マシン４０への保存が完了した後に実際に実行される。
【００３０】
この動作は、下記の理由に基づく。ホスト１０等に障害などが発生し、仮想マシン２０の処理が仮想マシン４０へ引き継がれた場合には、直近のチェックポイントにて保存された仮想マシン２０の状態が仮想マシン４０へ引き継がれる。したがって、直近のチェックポイントにて仮想マシン２０の状態が保存された後に仮想マシン２０にて通信が行われると、その後に仮想マシン４０へ引き継がれた場合に、通信が重複して行われる可能性が生じる。そして、仮想マシン２０にて行われた通信と仮想マシン４０にて行われた通信との間で矛盾が発生する可能性が存在する。このことから、上述のような通信の保留が行われる。
【００３１】
ところで、仮想マシン２０の状態が保存される場合においては、ダーティページの数に応じて、仮想マシン２０が一時的に停止する期間が長くなる場合がある。また、仮想マシン２０にて実行され、何らかのサービスを提供するプログラムは、仮想マシン２０のゲスト物理メモリ２１へ規模の大きなデータを格納した後にサービスの提供を開始する場合がある。このようなプログラムによって実行されるサービスとして、データベース、Ｗｅｂサービス等のデータキャッシュを作成するサービスが含まれる。
【００３２】
この場合には、仮想マシン２０の状態が保存される際に、多くのダーティページが保存の対象となる。したがって、仮想マシン２０の状態の保存に伴い、仮想マシン２０の動作が一時的に停止する期間が長くなる。この結果として、仮想マシン２０にて実行されるプログラムによるサービスの提供の開始が遅れるという問題が生じる場合がある。すなわち、フォールトトレラント機能に起因して、仮想マシン２０を用いた外部へのサービスの提供の開始が遅延する等の悪影響が生じる可能性がある。本発明の各実施形態における仮想マシン管理システムは、上述した悪影響の軽減を可能等する。
【００３３】
（第１の実施形態）
次に、本発明の第１の実施形態について説明する。図２は、本発明の第１の実施形態における仮想マシン管理システムを示す図である。図３は、本発明の第１の実施形態における仮想マシン管理システムの一動作例を示すフローチャートである。図４は、本発明の第１の実施形態における仮想マシン管理システムの動作の変形例を示すフローチャートである。
【００３４】
図２に示すとおり、本発明の第１の実施形態における仮想マシン管理システム１００は、少なくとも、制御部１１０と、サービス管理表１１１と、チェックポイント制御部１１２とを備える。また、本発明の第１の実施形態における仮想マシン管理システム１００は、メモリ転送制御部１２０と、転送バッファ１２１と、ネットワーク制御部１３０と、通信解析部１３１と、保留バッファ１３２とを備える。
【００３５】
本実施形態における仮想マシン管理システム１００は、例えば、図１に示す仮想マシン管理システム１００−１又は１００−２として用いられる。すなわち、仮想マシン管理システム１００は、図１に示すホスト１０−１又は１０−２等にて実行される。また、仮想マシン管理システム１００は、仮想マシン２０又は４０等の仮想マシンの実行を管理する。
【００３６】
以下、仮想マシン管理システム１００において、仮想マシン２０と同様の仮想マシンが実行されることを想定する。仮想マシン管理システム１００において、仮想マシン４０と同様の仮想マシンが実行されてもよい。以下の仮想マシン管理システム１００の各構成要素に関する説明においては、「仮想マシン」との記載は、仮想マシン管理システム１００において実行される仮想マシンを指す。
【００３７】
また、以下の説明においては、任意の種類のサービスを提供するプログラムが仮想マシンのゲストＯＳにてアプリケーションプログラムとして実行されることを、サービスが仮想マシンにて実行されると称する場合がある。さらに、当該サービスが外部のサーバ等や外部のユーザ等から利用可能になることを、サービスが外部へ提供される等と称する場合がある。
【００３８】
続いて、本発明の第１の実施形態における仮想マシン管理システム１００の各構成要素について説明する。
【００３９】
制御部１１０は、サービスを提供するプログラムの少なくとも一つがサービス管理表１１１にて保持される条件を満たすか否かを判断して、仮想マシンの状態を制御する。制御部１１０は、仮想マシンにおいて実行されるサービスの少なくとも一つが後述するサービス管理表１１１にて保持される条件を満たす場合に、仮想マシンのフォールトトレラント機能を有効とするよう仮想マシンの状態を制御する。また、制御部１１０は、仮想マシンの状態の保存等、フォールトトレラント機能を実現する場合に必要となる制御を行う。
【００４０】
また、制御部１１０は、例えば上述のサービスのいずれもが停止する場合や、上述のサービスがサービス管理表１１１にて保持される条件を満たさない場合等に、フォールトトレラント機能を無効とするよう仮想マシンの状態を制御する。
【００４１】
フォールトトレラント機能を有効にすべき条件としては、サービスを提供するプログラムの動作に関連する任意の条件が含まれる。条件の詳細は後述する。
【００４２】
制御部１１０は、任意の手順にてサービスの少なくとも一つがサービス管理表１１１にて保持される条件を満たすか否かを判断する。制御部１１０は、例えば、サービスを提供するプログラムの動作を監視する仮想マシン管理システム１００の他の構成要素による監視の結果に基づいて、サービスの少なくとも一つが上述の条件を満たすかを判断する。
【００４３】
例えば、制御部１１０は、サービスを提供するプログラムの動作を監視する他の構成要素からのフォールトトレラント機能を有効にすべき旨の要求に基づいて、サービスの少なくとも一つが上述の条件を満たすと判断してもよい。また、上述のサービスを提供するプログラムの動作を監視する他の構成要素がサービス管理表１１１に監視の結果を書込み、制御部１１０は、当該結果を参照して、サービスの少なくとも一つが上述の条件を満たすかを判断してもよい。
また、制御部１１０は、仮想マシンにて実行されるサービスを提供するプログラムの動作を直接に監視して、サービスが上述の条件を満たすかを判断してもよい。
【００４４】
別の一例として、制御部１１０は、後述する通信解析部１３１にて解析されるサービスを提供するプログラムの通信に関する動作の状況に基づいて、サービスが上述の条件を満たすか否かを判断してもよい。
【００４５】
サービスが上述の条件を満たすと判定した場合に、制御部１１０は、メモリ転送制御部１２０やネットワーク制御部１３０等を適宜制御して、フォールトトレラント機能を有効にする。この制御が行われることで、チェックポイントとして予め指定された間隔で仮想マシンの状態が別のホストにて実行される待機中の仮想マシンに保存される。
【００４６】
また、フォールトトレラント機能が有効である場合に、サービスが上述の条件を満たさないと判定すると、制御部１１０は、フォールトトレラント機能を無効にするように制御する。例えば、制御部１１０は、メモリ転送制御部１２０やネットワーク制御部１３０等を適宜制御してフォールトトレラント機能を無効にする。すなわち、チェックポイントとして指定された間隔で行われていた仮想マシンの状態の保存に関する処理が停止される。
【００４７】
フォールトトレラント機能の実行には、大きな負荷が必要となる場合がある。したがって、仮想マシン管理システム１００においてフォールトトレラント機能が有効である場合には、上述のように、仮想マシンにて実行されるサービスの外部への提供の開始が遅延する等の悪影響が生じる可能性がある。
【００４８】
一方で、フォールトトレラント機能の必要性は、外部へのサービスの提供が行われている場合には高いが、それ以外の場合には必要性が小さい場合もある。そこで、フォールトトレラント機能は、必要性と、サービスを提供するプログラムが動作する際の負荷の大きさとに基づいて有効とされることが好ましいと考えられる。
【００４９】
そこで、本実施形態における仮想マシン管理システム１００では、制御部１１０は、サービスの少なくとも一つがサービス管理表１１１にて保持される条件を満たすか否かを判断して、仮想マシンの状態を制御する。条件が適切に設定されることで、制御部１１０は、フォールトトレラント機能の必要性が高い場合に限って有効にすることを可能にする。すなわち、制御部１１０による制御によって、負荷が大きいが、フォールトトレラント機能の必要性が小さい処理が仮想マシンにて実行されている場合には、フォールトトレラント機能を無効にすることが可能となる。
【００５０】
したがって、制御部１１０が上述の制御を行うことで、仮想マシンの可用性を高めつつ、フォールトトレラント機能に起因する仮想マシンの動作への影響を小さくすることが可能となる。
【００５１】
サービス管理表１１１は、仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々について、前記フォールトトレラント機能の有効又は無効との状態に関する条件を保持する。
【００５２】
一例として、サービス管理表１１１は、仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々について、フォールトトレラント機能を有効にすべき条件を保持する。
【００５３】
上述のように、フォールトトレラント機能を有効にすべき条件としては、サービスを提供するプログラムの実行に関連する任意の条件が含まれる。この条件には、例えば、サービスを提供するプログラムの実行に関する条件や、外部へのサービスの提供の有無に関する条件等が含まれる。これらの条件は、具体的な例としては、サービスを提供するプログラムの実行に際して必要となるメモリの使用量や、サービスの外部への提供に関して行われる通信の種類等の形式で規定される。
【００５４】
なお、サービス管理表１１１は、仮想マシンのフォールトトレラント機能の対象となる少なくとも一つのサービスの各々について、フォールトトレラント機能を無効にすべき条件を保持してもよい。
【００５５】
本実施形態においては、サービス管理表１１１は、一例として、仮想マシンにて実行されるサービスの各々について、外部へのサービスの提供の有無に関する条件を保持する。サービスの外部への提供の有無に関する条件としては、外部へのサービスの提供に関して行われる通信の種類等が用いられる。
【００５６】
すなわち、サービス管理表１１１は、フォールトトレラント機能を有効にすべき条件として、外部へのサービスの提供を開始する際にサービスに関して送受信される通信に関する情報を保持する。例えば、この情報には、外部へのサービスの提供を開始する場合に行われる通信のプロトコルやパケットの種類、これらの通信に関するアドレスやポート番号等が含まれる。
【００５７】
通信のプロトコルとしてＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）が用いられる場合には、サービス管理表１１１は、プロトコルの種類として、例えばＴＣＰ又はＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）のいずれであるかを保持する。また、この場合には、サービス管理表１１１は、アドレスとして、サービスの要求元又は提供先等のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを保持する。
【００５８】
また、サービス管理表１１１は、フォールトトレラント機能の有効または無効の状態を保持してもよい。サービス管理表１１１は、フォールトトレラント機能が有効とされる場合に、フォールトトレラント機能が有効となった要因となるサービスや条件に関する情報を保持してもよい。すなわち、この情報は、例えばどのサービスに起因してフォールトトレラント機能が有効となったかを示す情報である。
【００５９】
更に、サービス管理表１１１は、後述するチェックポイント制御部１１２にてチェックポイントの間隔の変更が行われる場合には、チェックポイントに関する情報を保持してもよい。チェックポイントに関する情報としては、仮想マシンのフォールトトレラント機能の対象となる一つのサービスについて、各々のサービスに適したチェックポイントの間隔に関する情報が含まれる。
【００６０】
適切なチェックポイントの間隔は、仮想マシンにおいて実行されるサービスに応じて異なる場合がある。仮想マシンの状態が保存される場合には、上述のように、外部への通信が保留される。通信が保留されている期間が長くなることで、外部への通信の頻度が高い場合等には外部への通信に支障が生じる可能性がある。したがって、例えば外部への通信の頻度が高い場合等には、一般には、短いチェックポイントの間隔が設定されることが好ましい。
【００６１】
これに対して、プログラムの実行時におけるページの更新には、一般に、時間局所性があることが知られている。すなわち、プログラムの実行時に、ある期間においては、同一のページに対して繰り返し更新が行われる場合がある。このような場合には、長いチェックポイントの間隔が設定されることで、仮想マシンの状態の保存において、ダーティページとして更新の対象となるページの総量を削減することが可能となる。すなわち、メモリへの書込みの頻度が高い場合等には、一般には、長いチェックポイントの間隔が設定されることが好ましい。
【００６２】
チェックポイント制御部１１２は、フォールトトレラント機能が有効である場合に、必要に応じてチェックポイントの間隔やチェックポイントにおける処理を制御する。チェックポイント制御部１１２は、例えば、制御部１１０からの指示に応じて、サービス管理表１１１に規定されたサービスの各々について規定されたチェックポイントの間隔に応じて、チェックポイントの間隔を変更する制御を行う。
【００６３】
メモリ転送制御部１２０は、チェックポイントにおいて、稼働している仮想マシンから待機している仮想マシンへのゲスト物理メモリの内容の転送を制御する。また、メモリ転送制御部１２０は、仮想マシンにおけるゲスト物理メモリへのアクセスの制御など、仮想マシンの実現に必要となる一般的な制御を行ってもよい。
【００６４】
転送バッファ１２１は、仮想マシン管理システム１００において実行する仮想マシンが稼働している場合に、当該仮想マシンが有するゲスト物理メモリの内容を一時的に保持するバッファである。メモリ転送制御部１２０及び転送バッファ１２１は、一般的なフォールトトレラント機能を実現可能な仮想マシン管理システムが備える構成要素と同様の要素である。
【００６５】
ネットワーク制御部１３０は、フォールトトレラント機能が有効である場合において、上述した通信の保留の動作等を制御する。また、ネットワーク制御部１３０は、仮想マシンにおいて実行されるゲストＯＳでの通信の制御等、仮想マシンを実現する際に必要となる一般的な制御を行ってもよい。
【００６６】
通信解析部１３１は、上述のサービス管理表１１１においてフォールトトレラント機能を有効にすべき条件として通信に関する条件が規定されている場合に、仮想マシンにて実行されるゲストＯＳにおける通信の内容を解析する。通信解析部１３１は、通信の内容の解析として、例えば、通信がゲストＯＳにおいて実行されるサービスの開始または終了に関連するか否かを解析する。ゲストＯＳにおける通信がＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）による通信である場合には、通信解析部１３１は、パケットの種類を判別する等によって通信の内容を解析する。
【００６７】
保留バッファ１３２は、フォールトトレラント機能が有効である場合において通信が保留される場合に、保留された通信に関する情報を保持するバッファである。
【００６８】
続いて、本発明の第１の実施形態における仮想マシン管理システム１００の動作を説明する。なお、この動作例においては、フォールトトレラント機能を有効にすべき条件の一例として、通信に関する条件がサービス管理表１１１に規定されていることを想定する。すなわち、制御部１１０は、通信解析部１３１における解析の結果に基づいてフォールトトレラント機能を有効にすべき条件を満たすか否かを判定する。
【００６９】
最初に、通信解析部１３１は、ゲストＯＳにて行われる通信を解析する（ステップＳ１０１）。例えば、通信解析部１３１は、ネットワーク制御部１３０を介してゲストＯＳにて行われる通信の内容を解析する。
【００７０】
次に、通信解析部１３１は、ステップＳ１０１にて解析した通信が、仮想マシンのゲストＯＳにて行われる外部へのサービス提供の開始に関する通信である否かを判定する（ステップＳ１０２）。例えば、当該通信がＴＣＰによる通信である場合には、通信解析部１３１は、解析対象となるゲストＯＳからの通信のプロトコルタイプがＴＣＰ＿ＳＹＮ＿ＡＣＫである場合に、外部へのサービス提供の開始に関する通信であると判定する。また、当該通信がＵＤＰによる通信である場合には、通信解析部１３１は、判定が困難であることから、本ステップの段階では外部へのサービス提供の開始に関する通信であると判定する。
【００７１】
ステップＳ１０２において、解析対象となる通信が外部へのサービス提供の開始に関する通信であると判定された場合（ステップＳ１０２：Ｙｅｓ）には、制御部１１０及び通信解析部１３１は、ステップＳ１０３の処理を実行する。ステップＳ１０３では、制御部１１０は、フォールトトレラント機能を有効にすべき条件を満たすか否かを判定する。この動作例においては、制御部１１０は、通信解析部１３１における解析結果に基づいて判定を行う。
【００７２】
フォールトトレラント機能を有効にすべき条件を満たしているか否かの判定は、ステップＳ１０１又はステップＳ１０２にて解析等が行われた通信が、サービス管理表１１１に保持される条件に該当するか否かを判定することで行われる。すなわち、当該通信に関するアドレスやポート番号が、サービス管理表１１１に保持されている、フォールトトレラント機能を有効にすべき条件に該当するか比較することで行われる。
【００７３】
ステップＳ１０３における一つの動作例として、通信解析部１３１は、上述の通信が、サービス管理表１１１に保持される条件に該当するか否かを比較する。条件に該当する場合には、通信解析部１３１は、制御部１１０にフォールトトレラント機能を有効にすべき旨の要求を行う。そして、制御部１１０は、要求を受けた場合に、フォールトトレラント機能を有効にすべき条件を満たすと判断する。
【００７４】
また、ステップＳ１０３における別の動作例として、通信解析部１３１は、上述の通信に関する情報を制御部１１０に送信してもよい。この場合には、制御部１１０が、当該送信がサービス管理表１１１に保持される条件に該当するか比較してもよい。
【００７５】
ステップＳ１０３においてフォールトトレラント機能を有効にすべき条件を満たすと判定された場合（ステップＳ１０３：Ｙｅｓ）には、制御部１１０は、サービス管理表１２０を更新する（ステップＳ１０４）。例えば、制御部１１０は、ステップＳ１０３における比較の結果に基づいて、フォールトトレラント機能が有効となった要因となるサービスや条件に関する情報を保持するようにサービス管理表１２０を更新する。また、制御部１１０は、フォールトトレラント機能が有効である旨を示すようにサービス管理表１２０を更新してもよい。
【００７６】
制御部１１０は、フォールトトレラント機能が既に有効とされているかを確認する（ステップＳ１０５）。フォールトトレラント機能が有効とされていない場合（ステップＳ１０５：Ｎｏ）には、制御部１１０は、フォールトトレラント機能を有効にするよう制御を行う（ステップＳ１０６）。
【００７７】
フォールトトレラント機能が既に有効とされている場合（ステップＳ１０５：Ｙｅｓ）には、チェックポイント制御部１１２は、チェックポイントの間隔を変更するよう制御する（ステップＳ１０７）。この場合には、チェックポイント制御部１１２は、例えばサービス管理表１１１を参照し、ステップＳ１０３等で比較の対象となった通信に関連するサービスに適したチェックポイントの間隔に関する情報を取得する。そして、そのサービスに適したチェックポイントの間隔が、その時点におけるチェックポイントの間隔と比較して長い場合には、チェックポイント制御部１１２は、チェックポイントの間隔を上述のサービスに適した間隔に変更する。
【００７８】
なお、ステップＳ１０７においてチェックポイントの間隔が変更される場合には、チェックポイント制御部１１２は、上述の手順と異なる手順にてチェックポイントの間隔を変更するよう制御してもよい。例えば、チェックポイント制御部１１２は、仮想マシンにて実行されているサービスに対して定められた任意の優先度等に応じて、優先度が最も高いサービスに適した間隔となるようにチェックポイント間隔を制御してもよい。
【００７９】
ステップＳ１０６又はＳ１０７における処理に引き続いて、ネットワーク制御部１３０は、必要に応じて通信に関する処理を実行する（ステップＳ１０８）。ネットワーク制御部１３０は、フォールトトレラント機能が有効である場合における通信の保留等、フォールトトレラント機能が有効である場合に必要となる処理を含む通信に関する処理を実行する。
【００８０】
また、ステップＳ１０３においてステップＳ１０３においてフォールトトレラント機能を有効にすべき条件を満たさないと判定された場合（ステップＳ１０３：Ｎｏ）にも、ネットワーク制御部１３０は、必要に応じてステップＳ１０８の処理を実行する。
【００８１】
ステップＳ１０２において、解析対象となる通信が外部へのサービス提供の開始に関する通信ではないと判定された場合（ステップＳ１０２：Ｎｏ）には、ステップＳ１０９の処理が行われる。ステップＳ１０９においては、通信解析部１３１は、ステップＳ１０１にて解析した通信が、仮想マシンのゲストＯＳにて行われる外部へのサービス提供の終了に関する通信である否かを判定する。当該通信がＴＣＰによる通信である場合には、通信解析部１３１は、例えばプロトコルタイプがＴＣＰ＿ＲＳＴ又はＴＣＰ＿ＦＩＮである場合に、外部へのサービス提供の終了に関する通信であると判定する。
【００８２】
ステップＳ１０９において、解析対象となる通信が外部へのサービス提供の終了に関する通信であると判定された場合（ステップＳ１０９：Ｙｅｓ）には、制御部１１０及び通信解析部１３１は、ステップＳ１１０の処理を実行する。ステップＳ１０３では、制御部１１０は、フォールトトレラント機能を無効にすべき条件を満たすか否かを判定する。
【００８３】
この動作例においては、制御部１１０は、ステップＳ１１０の処理として、ステップＳ１０３における処理と同様にして、通信解析部１３１における解析結果に基づいて判定を行う。すなわち、当該通信に関するアドレスやポート番号が、サービス管理表１１１に保持されるフォールトトレラント機能を無効にすべき条件に該当するか比較することで行われる。
【００８４】
ステップＳ１１０においてフォールトトレラント機能を有効にすべき条件を満たすと判定された場合（ステップＳ１１０：Ｙｅｓ）には、制御部１１０は、サービス管理表１２０を更新する（ステップＳ１１１）。例えば、制御部１１０は、ステップＳ１１０における比較の結果に基づいて、フォールトトレラント機能が無効とすべきと判断された要因となるサービスや条件に関する情報を保持するようにサービス管理表１２０を更新する。
【００８５】
続いて、制御部１１０は、サービス管理表１１１を参照する等によって、フォールトトレラント機能を有効とすべき他のサービスの外部への提供が行われているかを確認する（ステップＳ１１２）。他のサービスが提供されている場合（ステップＳ１１２：Ｙｅｓ）には、制御部１１０は、フォールトトレラント機能を有効としたままの状態とする。そして、チェックポイント制御部１１２は、ステップＳ１０７の処理として、必要に応じてチェックポイントの間隔を変更するよう制御する。
【００８６】
フォールトトレラント機能を有効とすべき他のサービスの外部への提供が行われていない場合には、制御部１１０は、フォールトトレラント機能を無効にするよう制御を行う（ステップＳ１１３）。ステップＳ１１３の処理と併せて、制御部１１０は、フォールトトレラント機能が無効である旨を示すようにサービス管理表１２０を更新してもよい。ステップＳ１１３の処理の後には、必要に応じて、ネットワーク制御部１３０は、ステップＳ１０８の通信に関する処理を実行する。
【００８７】
以上のとおり、本発明の第１の実施形態における仮想マシン管理システム１００は、フォールトトレラント機能を有効にすべき条件を満たす場合にフォールトトレラント機能を有効にするように仮想マシンを制御する。すなわち、本実施形態においては仮想マシン管理システム１００の制御部１１０は、サービス管理表１１１に予め規定された条件を満たす場合にフォールトトレラント機能を有効とするように仮想マシンを制御する。サービス管理表１１１にて規定される条件は、例えば、仮想マシンにおいてサービスの外部への提供が行われることを示す条件である。
【００８８】
つまり、本実施形態の仮想マシン管理システム１００においては、サービス管理表１１１に保持される条件に応じ、仮想マシンにおいてサービスの外部への提供が行われる場合にフォールトトレラント機能を有効とすることが可能となる。言い換えると、本実施形態の仮想マシン管理システム１００においては、負荷が大きく、かつ、外部に対して影響を及ぼす可能性の小さい処理が行われている場合にはフォールトトレラント機能を無効とすることが可能となる。
【００８９】
したがって、仮想マシンの状態の保存等に伴う仮想マシンの一時的な停止等、フォールトトレラント機能に起因する仮想マシンへの負荷を軽減することが可能となる。これにより、仮想マシンの状態の保存が行われることに起因して、外部へのサービス提供が遅延すること等が回避される。
【００９０】
すなわち、本実施形態における仮想マシン管理システム１００は、フォールトトレラント機能に起因する仮想マシンの動作への影響が小さい仮想マシン管理システム等を提供することを可能とする。
【００９１】
（第１の実施形態の変形例）
本発明の第１の実施形態においては、種々の変形例が考えられる。
【００９２】
本実施形態における仮想マシン管理システム１００は、仮想マシンを実現する際に必要となる構成として、図２に示す構成とは異なる構成を備えてもよい。また、仮想マシン管理システム１００は、一般的なフォールトトレラント機能を実現する際に必要となる構成として、図２に示す構成とは異なる構成を備えてもよい。仮想マシン管理システム１００は、少なくとも制御部１１０及びサービス管理表１１１を備えることで、フォールトトレラント機能に起因する仮想マシンの動作への影響を軽減することが可能となる。
【００９３】
また、別の一例として、本実施形態における仮想マシン管理システム１００は、チェックポイントの間隔を変更しなくてもよい。この場合には、仮想マシン管理システム１００は、フォールトトレラント機能が有効である場合には、予め定められたチェックポイントの間隔にて仮想マシンの状態を保存する。すなわち、この場合における仮想マシン管理システム１００は、図４に示すフローチャートのように動作してもよい。
【００９４】
図４に示すフローチャートにおいては、図３に示すフローチャートのＳ１０７にて規定されるチェックポイント間隔の調整に関する動作が省略される。そして、ステップＳ１０５又はステップＳ１１２にて規定される分岐が“Ｙｅｓ”である場合には、引き続いてステップＳ１０８にて規定される通信に関する処理が行われる。図４に示すフローチャートの動作は、上述の点を除き、図３に示すフローチャートと同様に動作する。
【００９５】
また、この場合には、仮想マシン管理システム１００のチェックポイント制御部は、チェックポイントにおける仮想マシンの情報の保存についての制御を行う。
【００９６】
このような場合であっても、仮想マシン管理システム１００は、制御部１１０がサービス管理表１１１に規定される条件を満たす場合にフォールトトレラント機能を有効にすることで、仮想マシンの動作への影響の軽減が可能となる。
【００９７】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。図５は、本発明の第２の実施形態における仮想マシン管理システム２００の構成を示す図である。
【００９８】
図５に示すように、本発明の第２の実施形態における仮想マシン管理システム２００は、本発明の第１の実施形態における仮想マシン管理システム１００と同様の構成を備える。仮想マシン管理システム２００において、制御部１１０は、サービス監視部２４０における仮想マシンの監視結果に基づいて、仮想マシンの記フォールトトレラント機能に関する状態を制御する。
【００９９】
仮想マシンのゲストＯＳにおいては、一般的に、仮想マシン管理システムや仮想マシンを支援するプログラムが導入される場合がある。本実施形態においては、サービス監視部２４０は、そのようなプログラムの例である。仮想マシン管理システム２００は、サービス監視部２４０における監視結果を用いて仮想マシンの制御を行う。
【０１００】
本実施形態においては、サービス監視部２４０は、一つの動作例として、ゲストＯＳにて実行されるサービスに関連するプロセスの状態を監視する。すなわち、サービス監視部２４０は、これらのプロセスの起動や終了等を監視する。サービス監視部２４０が監視の対象とするプロセスに関連するサービス等は、サービス管理表１１１にて適宜規定されてもよい。
【０１０１】
監視の対象となるプロセスが起動した場合には、サービス監視部２４０は、制御部１１０にフォールトトレラント機能を有効にすべき旨の要求を行う。そして、制御部１１０は、要求を受けた場合に、フォールトトレラント機能を有効にすべき条件を満たすと判断する。
【０１０２】
または、サービス監視部２４０は、仮想マシンにおいてプロセスが起動した場合に、その旨を制御部１１０に通知してもよい。この場合には、制御部１１０は、通知の対象であるプロセスがサービス管理表１１１に保持される条件に関連するプロセスであるかを比較し、フォールトトレラント機能を有効にすべき条件を満たすと判断してもよい。
【０１０３】
同様に、サービス監視部２４０は、監視の対象となるプロセスが終了した場合には、サービス監視部２４０は、制御部１１１は、フォールトトレラント機能を無効にすべき旨の要求を行う。そして、制御部１１０は、要求を受けた場合に、他のフォールトトレラント機能を有効とすべき条件を参照しつつ、必要に応じてフォールトトレラント機能を無効にすべき条件を満たすと判断する。または、サービス監視部２４０は、仮想マシンにおいてプロセスが終了した場合に、その旨を制御部１１０に通知してもよい。制御部１１０は、当該通知に基づき、必要に応じてフォールトトレラント機能を有効にすべき条件を満たすと判断してもよい。
【０１０４】
別の例として、サービス監視部２４０は、ゲストＯＳにて実行されるサービスに関連するプロセスの状態として、当該プロセスのメモリの使用量を監視する。
この場合には、サービス監視部２４０は、例えば、サービス管理表１１１に予め定められたメモリの使用量を超えたか否かを監視する。そして、制御部１１０は、サービス監視部２４０の監視の結果に基づいて、上述の例における手順と同様の手順等にてフォールトトレラント機能を有効にすべき（又は無効にすべき）条件を満たすと判断する。
【０１０５】
本実施形態においては、仮想マシン管理システム２００の通信解析部１３１は、第１の実施形態において説明した例と同様に、仮想マシンにて実行されるゲストＯＳにおける通信の内容を解析する。この場合には、制御部１１０の動作としていくつかの動作が想定される。
【０１０６】
一つの動作として、制御部１１０は、サービス監視部２４０における監視の結果に基づいてフォールトトレラント機能の状態に関する制御を行う。制御部１１０は、フォールトトレラント機能の状態に関する制御においては、通信解析部１３１による通信を解析した結果を用いない。そして、通信解析部１３１は、フォールトトレラント機能が無効である場合には、外部へのサービスの提供に関わるパケットを破棄する。このような制御を行うことで、制御部１１０は、フォールトトレラント機能が有効である場合に限って仮想マシンによる外部へのサービスの提供を行うことを可能にする。
【０１０７】
また、制御部１１０は、通信解析部１３１又はサービス監視部２４０のいずれかからの通知等に基づいてフォールトトレラント機能の状態を制御してもよい。例えば、通信解析部１３１又はサービス監視部２４０のいずれかからの通知等がフォールトトレラント機能を有効にすべき条件に関する場合、制御部１１０は、フォールトトレラント機能を有効にすべき条件を満たすと判断してもよい。この場合には、制御部１１０は、フォールトトレラント機能を有効にするように制御する。
【０１０８】
以上のとおり、本発明の第２の実施形態における仮想マシン管理システム２００は、制御部１１０は、フォールトトレラント機能の状態の制御に際して、サービス監視部２４０における監視の結果を用いる。サービス監視部２４０は、仮想マシンのゲストＯＳにて実行されるプロセスの状況を監視する。このことから、制御部１１０は、そのプロセスの状況に基づいて、フォールトトレラント機能の状態を制御することが可能となる。したがって、本実施形態における仮想マシン管理システム２００は、第１の実施形態における仮想マシン管理システム１００と同様の効果を奏する。
【０１０９】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、各実施形態における構成は、本発明のスコープを逸脱しない限りにおいて、互いに組み合わせることが可能である。
【符号の説明】
【０１１０】
１０    ホスト
２０、４０    仮想マシン
２１、４１    ゲスト物理メモリ
３０    ゲストＯＳ
５０    通信ネットワーク
１００、２００    仮想マシン管理システム
１１０    制御部
１１１    サービス管理表
１１２    チェックポイント制御部
１２０    メモリ転送制御部
１２１    転送バッファ
１３０    ネットワーク制御部
１３１    通信解析部
１３２    保留バッファ
５００    情報処理装置
５０１    ＣＰＵ
５０２    ＲＯＭ
５０３    ＲＡＭ
５０４    プログラム
５０５    記憶装置
５０６    記憶媒体
５０７    ドライブ装置
５０８    通信インターフェース
５０９    通信ネットワーク
５１０    入出力インターフェース
５１１    バス
【図１】
0006582785.tif 000002
【図２】
0006582785.tif 000003
【図３】
0006582785.tif 000004
【図４】
0006582785.tif 000005
【図５】
0006582785.tif 000006
【図６】
0006582785.tif 000007