(57)【要約】【課題】仮想マシンが高負荷状態に陥る前に再配置処理を実施する。【解決手段】仮想マシン再配置システムは、仮想マシンの利用者が入力した作業予定のスケジュール情報を保存する記憶部と、スケジュール情報から作業実施に際し発生する予定の仮想マシンにかかる負荷情報を負荷予定値として取得する機能と、負荷予定値を保存する記憶部と、仮想マシンの負荷を仮想マシンの利用者毎に定期的に測定し、負荷実測値として取得する機能と、負荷実測値を保存する記憶部と、負荷予定値及び負荷実測値を利用者毎の負荷特性として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認し、高負荷状態に陥る可能性があると判断された場合、仮想マシンの利用者の負荷予定値及び負荷実測値から最適な仮想マシンとホストマシンの割り当てを決定し、高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を行う機能とを備える。【選択図】図２
2010224756.tif 000002
【特許請求の範囲】
【請求項１】
ホストマシン上で動作する仮想マシンの再配置システムであって、
仮想マシンの利用者が入力した作業予定のスケジュール情報を保存するスケジュール情報記憶部と、
保存したスケジュール情報から、その作業予定の作業実施に際し発生する予定の仮想マシンにかかる負荷情報を負荷予定値として取得する負荷予定値取得手段と、
取得した負荷予定値を保存する負荷予定値記憶部と、
仮想マシンの負荷を仮想マシンの利用者毎に定期的に測定し、その負荷情報を負荷実測値として取得する負荷実測値取得手段と、
取得した負荷実測値を保存する負荷実測値記憶部と、
負荷予定値及び負荷実測値を利用者毎の負荷特性として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認し、高負荷状態に陥る可能性があると判断された場合、仮想マシンを使用している利用者の負荷予定値及び負荷実測値から負荷が平準化されるように最適な仮想マシンとホストマシンの割り当てを決定し、仮想マシンが高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を行う仮想マシン再配置手段とを備えたことを特徴とする仮想マシン再配置システム。
【請求項２】
前記仮想マシン再配置手段は、同一日時の負荷予定値及び負荷実測値を比較し、その差に応じて利用者が入力した作業予定の信頼度を示すスコアを計算し、前記仮想マシンの再配置処理を行っても高負荷状態を解消できないと判断した場合、前記スコアの計算値に基づいて前記作業予定の信頼度が高い利用者が使用している仮想マシンが優先的に高負荷状態から解消されるように仮想マシンの再配置処理を行うことを特徴とする請求項１に記載の仮想マシン再配置システム。
【請求項３】
前記負荷予定値取得手段は、予め設定されたスケジュール情報と仮想マシンにかかる負荷予定値との対応表に基づいて、記憶したスケジュール情報に対応する負荷予定値を取得することを特徴とする請求項１又は２に記載の仮想マシン再配置システム。
【請求項４】
ホストマシン上で動作する仮想マシンの再配置方法であって、
仮想マシンの利用者が入力した作業予定のスケジュール情報を保存し、
保存したスケジュール情報から、その作業予定の作業実施に際し発生する予定の仮想マシンにかかる負荷情報を負荷予定値として取得し、
取得した負荷予定値を保存し、
仮想マシンの負荷を利用者毎に定期的に測定し、その負荷情報を負荷実測値として取得し、
取得した負荷実測値を保存し、
負荷予定値及び負荷実測値を利用者毎の負荷特性として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認し、高負荷状態に陥る可能性があると判断された場合、仮想マシンを使用している利用者の負荷予定値及び負荷実測値から負荷が平準化されるように最適な仮想マシンとホストマシンの割り当てを決定し、仮想マシンが高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を行うことを特徴とする仮想マシン再配置方法。
【請求項５】
前記仮想マシンの再配置処理を行う場合、同一日時の負荷予定値及び負荷実測値を比較し、その差に応じて利用者が入力した作業予定の信頼度を示すスコアを計算し、前記仮想マシンの再配置処理を行っても高負荷状態を解消できないと判断した場合、前記スコアの計算値に基づいて前記作業予定の信頼度が高い利用者が使用している仮想マシンが優先的に高負荷状態から解消されるように仮想マシンの再配置処理を行うことを特徴とする請求項４に記載の仮想マシン再配置方法。
【請求項６】
前記負荷予定値を取得する場合、予め設定されたスケジュール情報と仮想マシンにかかる負荷予定値との対応表に基づいて、記憶したスケジュール情報に対応する負荷予定値を取得することを特徴とする請求項４又は５に記載の仮想マシン再配置方法。
【請求項７】
ホストマシン上で動作する仮想マシンの再配置プログラムであって、
コンピュータに、
仮想マシンの利用者が入力した作業予定のスケジュール情報を保存するスケジュール情報記憶処理と、
保存したスケジュール情報から、その作業予定の作業実施に際し発生する予定の仮想マシンにかかる負荷情報を負荷予定値として取得する負荷予定値取得処理と、
取得した負荷予定値を保存する負荷予定値記憶処理と、
仮想マシンの負荷を利用者毎に定期的に測定し、その負荷情報を負荷実測値として取得する負荷実測値取得処理と、
取得した負荷実測値を保存する負荷実測値記憶処理と、
負荷予定値及び負荷実測値を利用者毎の負荷特性として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認し、高負荷状態に陥る可能性があると判断された場合、仮想マシンを使用している利用者の負荷予定値及び負荷実測値から負荷が平準化されるように最適な仮想マシンとホストマシンの割り当てを決定し、仮想マシンが高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を行う仮想マシン再配置処理とを実行させることを特徴とする仮想マシン再配置プログラム。
【請求項８】
前記仮想マシン再配置処理は、同一日時の負荷予定値及び負荷実測値を比較し、その差に応じて利用者が入力した作業予定の信頼度を示すスコアを計算し、前記仮想マシンの再配置処理を行っても高負荷状態を解消できないと判断した場合、前記スコアの計算値に基づいて前記作業予定の信頼度が高い利用者が使用している仮想マシンが優先的に高負荷状態から解消されるように仮想マシンの再配置処理を行うことを特徴とする請求項７に記載の仮想マシン再配置プログラム。
【請求項９】
前記負荷予定値取得処理は、予め設定されたスケジュール情報と仮想マシンにかかる負荷予定値との対応表に基づいて、記憶したスケジュール情報に対応する負荷予定値を取得することを特徴とする請求項７又は８に記載の仮想マシン再配置プログラム。
【請求項１０】
請求項１から３のいずれか１項に記載の仮想マシン再配置システムを備えたことを特徴とする仮想マシン管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置に係り、特に利用者の負荷特性に基づく仮想マシンの再配置方法に関する。
【背景技術】
【０００２】
ハードウェアリソースの柔軟な活用・サーバ集約等の観点から、ホストマシン上で複数の仮想マシンを動作させることにより運用を行うシステムが実現されている。このようなシステムにおいて、ホストマシンのリソースを効果的に活用するため、仮想マシンの負荷に応じて仮想マシンとホストマシンの割り当てを変更することにより、負荷を平準化する手段が提案・実現されている。すなわち、この手段は、ホストマシン上で複数の仮想マシンが動作する環境において、仮想マシンの負荷状態に応じて仮想マシンの配置を変更（再配置）することにより、負荷を平準化するものである。
【０００３】
上記の手段では、負荷の実測値を元に高負荷状態にあるかどうかを判定するが、瞬間的に負荷が増大するケースを排除するためには、ある程度の時間続けて高負荷状態にあることを確認する必要があるため、再配置処理の開始までに時間がかかる。そのため、仮想マシンが高負荷状態に陥ってから再配置処理の完了までにかなりの時間を要する恐れがある。その間、高負荷状態となった仮想マシン上での処理効率が低下してしまうという問題がある。
【０００４】
これに対する解決法の一つとして、特許文献１に開示されている仮想マシン管理装置及びプログラムにあるように、過去の負荷実測値を基に再配置処理を行う方法が挙げられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１１５６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法は、利用者が仮想マシンをデスクトップ用途に使用するシステム等においては、効果が得られない場合も多い。例えば、利用者が仮想マシン上で定例でないビデオ会議等に参加する場合は、過去の実測値だけでは対応できない。また、利用者に対して特定の仮想マシンが割り当てられないシステムにおいては、この方法は適用できない。
【０００７】
本発明の目的は、上述した課題を解決し、仮想マシンが高負荷状態に陥る前に再配置処理を実施することができ、利用者に対して特定の仮想マシンが割り当てられないシステムにも適用することができる仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係る仮想マシン再配置システムは、ホストマシン上で動作する仮想マシンの再配置システムであって、仮想マシンの利用者が入力した作業予定のスケジュール情報を保存するスケジュール情報記憶部と、保存したスケジュール情報から、その作業予定の作業実施に際し発生する予定の仮想マシンにかかる負荷情報を負荷予定値として取得する負荷予定値取得手段と、取得した負荷予定値を保存する負荷予定値記憶部と、仮想マシンの負荷を仮想マシンの利用者毎に定期的に測定し、その負荷情報を負荷実測値として取得する負荷実測値取得手段と、取得した負荷実測値を保存する負荷実測値記憶部と、負荷予定値及び負荷実測値を利用者毎の負荷特性として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認し、高負荷状態に陥る可能性があると判断された場合、仮想マシンを使用している利用者の負荷予定値及び負荷実測値から負荷が平準化されるように最適な仮想マシンとホストマシンの割り当てを決定し、仮想マシンが高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を行う仮想マシン再配置手段とを備えたことを特徴とする。
【０００９】
本発明に係る仮想マシン再配置方法は、ホストマシン上で動作する仮想マシンの再配置方法であって、仮想マシンの利用者が入力した作業予定のスケジュール情報を保存し、記憶したスケジュール情報から、その作業予定の作業実施に際し発生する予定の仮想マシンにかかる負荷情報を負荷予定値として取得し、取得した負荷予定値を保存し、仮想マシンの負荷を利用者毎に定期的に測定し、その負荷情報を負荷実測値として取得し、取得した負荷実測値を保存し、負荷予定値及び負荷実測値を利用者毎の負荷特性として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認し、高負荷状態に陥る可能性があると判断された場合、仮想マシンを使用している利用者の負荷予定値及び負荷実測値から負荷が平準化されるように最適な仮想マシンとホストマシンの割り当てを決定し、仮想マシンが高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を行うことを特徴とする。
【００１０】
本発明に係る仮想マシン再配置プログラムは、ホストマシン上で動作する仮想マシンの再配置プログラムであって、コンピュータに、仮想マシンの利用者が入力した作業予定のスケジュール情報を保存するスケジュール情報記憶処理と、保存したスケジュール情報から、その作業予定の作業実施に際し発生する予定の仮想マシンにかかる負荷情報を負荷予定値として取得する負荷予定値取得処理と、取得した負荷予定値を保存する負荷予定値記憶処理と、仮想マシンの負荷を利用者毎に定期的に測定し、その負荷情報を負荷実測値として取得する負荷実測値取得手段と、取得した負荷実測値を保存する負荷実測値記憶処理と、負荷予定値及び負荷実測値を利用者毎の負荷特性として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認し、高負荷状態に陥る可能性があると判断された場合、仮想マシンを使用している利用者の負荷予定値及び負荷実測値から負荷が平準化されるように最適な仮想マシンとホストマシンの割り当てを決定し、仮想マシンが高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を行う仮想マシン再配置処理とを実行させることを特徴とする。
【００１１】
本発明に係る仮想マシン管理装置は、上記に記載の仮想マシン再配置システムを備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、仮想マシンの利用者が自ら宣言した負荷予定値及び過去の負荷実測値を利用者毎の負荷特性として仮想マシンの再配置処理に使用することにより、仮想マシンが高負荷状態に陥る前に再配置処理を実施することが可能となる。また、本発明は、利用者に対して特定の仮想マシンが割り当てられないシステムにも適用することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る仮想マシン再配置システムを搭載したシステムの全体構成を示すブロック図である。
【図２】図１に示す仮想マシンと管理サーバの詳細構成を示すブロック図である。
【図３】図１に示すシステムによる処理の流れを示すフローチャートである。
【図４】図２に示すシステムによる処理の流れを示すフローチャートである。
【図５】図２に示す管理サーバの負荷実測値記憶部の構造例を示す図である。
【図６】図２に示す管理サーバの負荷予定値取得機能で用いられるスケジュール情報と負荷予定値の対応表の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明に係る仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置の実施の形態について、図面を参照して詳細に説明する。
【００１５】
本実施の形態に係る仮想マシン再配置システムは、ホストマシンとその上で動作する仮想マシンから構成されるシステムを前提としている。このシステムの例を図１に示す。
【００１６】
図１は、本実施の形態に係る仮想マシン再配置システムを搭載したシステムにおいて、サーバ機１のホストマシン１１上で仮想マシン２１が動作し、サーバ機２のホストマシン１２上で仮想マシン２２、２３が動作していることを示している。これらのホストマシン１１、１２及び管理サーバ３１は、管理ネットワークＮＷ１に接続され、ホストマシン１１、１２及び仮想マシン２１、２２、２３は、管理サーバ（仮想マシン管理装置）３１によって管理される。また、仮想マシン２１、２２、２３及び端末４１、４２、４３は、運用ネットワークＮＷ２に接続され、利用者は、端末４１、４２、４３を利用することにより仮想マシン２１、２２、２３を操作する。
【００１７】
図２は、図１に示す仮想マシンと管理サーバの詳細について示している。この仮想マシン及び管理サーバは、図１で示した仮想マシン２１、２２、２３及び管理サーバ３１と対応している。本実施の形態では、仮想マシンは、それぞれスケジュール管理用ＵＩ（ユーザインタフェース）５１と負荷実測値取得機能（負荷実測値取得手段）５２を持つ。また、管理サーバは、セッション情報記憶部６１と、スケジュール情報記憶部６２と、負荷予定値取得機能（負荷予定値取得手段）６３と、負荷実測値記憶部６４と、仮想マシン再配置機能（仮想マシン再配置手段）６５と、仮想マシン移動機能（仮想マシン移動手段）６６を持つ。
【００１８】
スケジュール管理用ＵＩ（ユーザインタフェース）５１は、仮想マシン利用者に対し、スケジュール登録、削除、変更等のユーザインタフェースを提供する。利用者が要求した操作は、スケジュール記憶部６２に反映される。
【００１９】
負荷実測値取得機能５２は、利用者が使用している仮想マシンの負荷情報（ＣＰＵ（Central Processing Unit）、ディスクアクセス負荷等）を定期的に測定し、管理サーバに送信する。送信された負荷情報（負荷実測値）は、負荷実測値記憶部６４に記録される。
【００２０】
セッション情報記憶部６１は、利用者に割り当てられた仮想マシンのセッション情報を記録する。
【００２１】
スケジュール情報記憶部６２は、利用者が登録したスケジュールは情報を記録する。
【００２２】
負荷予定値取得機能６３は、スケジュール情報記憶部６２から各利用者が登録したスケジュール情報を取得し、当該スケジュールの遂行にあたって発生する予定の負荷情報（負荷予定値）を返却する。
【００２３】
負荷実測値記憶部６４は、負荷実測値取得機能５２から定期的に送信される負荷実測値を一定期間保存する。
【００２４】
仮想マシン再配置機能６５は、利用者の負荷予定値及び負荷実測値を基に、仮想マシンのホストマシンへの配置を変更する。本実施の形態では、定期的に、仮想マシンを使用中の全利用者に対して負荷予定値及び負荷実測値を取得し、使用中の仮想マシンが高負荷状態に陥る可能性があるかどうかを調べ、高負荷状態に陥ると予想される場合は、その予想時刻よりも前に仮想マシンの再配置を実施する。仮想マシンを使用中の利用者一覧は、セッション情報記憶部６１から、各利用者の負荷予定値は、負荷予定値取得機能６３から、各利用者の負荷実測値は負荷実測値記憶部６４からそれぞれ取得する。また、仮想マシンの再配置は、取得した各利用者の負荷予定値及び負荷実測値から最適な仮想マシンとホストマシンの割り当てを決定し、仮想マシン移動機能６６に仮想マシンの移動を指示することにより行う。
【００２５】
仮想マシン移動機能６６は、仮想マシン基盤が持つ機能を使用して、仮想マシンを別のホストマシンに移動する。
【００２６】
次に、本実施の形態の動作について、図３〜図６を参照して説明する。
【００２７】
利用者が仮想マシンを使用する際は、管理サーバにより各利用者に対して仮想マシンが割り当てられ、セッション情報記憶部６１にセッション情報が記録される。
【００２８】
利用者は、仮想マシン上のスケジュール管理用ＵＩ（ユーザインタフェース）５１を使用し、自身の作業予定をスケジュール情報として登録する。登録したスケジュール情報は、スケジュール情報記憶部６２に記録される。また、利用者はスケジュール管理用ＵＩ（ユーザインタフェース）５１を使用し、必要に応じて登録したスケジュール情報を削除、変更する。
【００２９】
また、利用者が仮想マシンを使用している間は、一定時間毎に負荷情報を取得し、負荷実測値として保存する。この処理の流れを図３に示す。
【００３０】
負荷実測値取得機能５２は、仮想マシンの負荷情報（ＣＰＵ使用率、メモリ使用量、ネットワークアクセス負荷、ディスクアクセス負荷等）を取得する（ステップＡ１）。負荷情報は、取得間隔毎の使用率平均または単位時間当たりのＩ／Ｏ（Input/Output）など、負荷情報の特性に応じて適切な手段を用いて算出する。取得した負荷情報は、当該利用者に対応する負荷実測値として管理サーバに送信される。
【００３１】
管理サーバは、受信した負荷実測値の測定日時と同一日時の負荷予定値を負荷予定値取得機能６３から取得する（ステップＡ２）。その結果、同一日時の負荷予定値が存在しない場合（ステップＡ２ａ：Ｎｏ）は、受信した負荷実測値を測定日時と共に負荷実測値記憶部６４に記録する（ステップＡ３）。負荷実測値記憶部６４の構造例（ＩＤ（識別子）、利用者（ユーザ名）、開始日時、終了日時、負荷実測値（ＣＰＵ、メモリ、ネットワーク、ディスクなど））を図５に示す。
【００３２】
一方、同一日時の負荷予定値が存在する場合（ステップＡ２ａ：Ｙｅｓ）は、受信した負荷実測値と負荷予定値を比較し、それらが大きく乖離する場合（ステップＡ２ｂ：Ｙｅｓ）は、当該利用者のスコアを下げ（ステップＡ４）、そうでなければ（ステップＡ２ｂ：Ｎｏ）、スコアを上げる（ステップＡ５）。各利用者のスコアは、仮想マシンの再配置処理時に参照され、スコアの高い利用者が使用している仮想マシンを優遇する。すなわち、予定通りに仮想マシンが使用されたかどうかで利用者を評価することにより、利用者に正しいスケジュール情報を入力するよう促すことになる。
【００３３】
上記ステップＡ１〜Ａ５を一定時間毎に繰り返すことにより、利用者毎の負荷実測値を蓄積する。また、一定期間が経過した負荷実測値は、逐次負荷実測値記憶部６４から削除する。
【００３４】
上述の通り記録された利用者毎のスケジュール情報及び負荷実測値を定期的に参照し、必要に応じて仮想マシンの再配置を実施する。この処理の流れを図４に示す。
【００３５】
仮想マシン再配置機能６５は、仮想マシンを使用中の利用者一覧をセッション情報記憶部６１から取得し（ステップＢ１）、取得した利用者の直近の（未来の）時刻の負荷予定値を負荷予定値取得機能６３から取得する（ステップＢ２）。
【００３６】
負荷予定値が存在する場合（ステップＢ２ａ：Ｙｅｓ）は、当該利用者が使用中の仮想マシンのホストマシンにかかる負荷として加算する（ステップＢ３）。一方、負荷予定値が存在しない場合（ステップＢ２ａ：Ｎｏ）は、負荷実測値記憶部６４から直近の（未来の）時刻と同時刻の当該利用者の負荷実測値を取得し（ステップＢ４）、それらを用いて算出した負荷予測値を当該利用者が使用中の仮想マシンのホストマシンにかかる負荷として加算する（ステップＢ５）。負荷予測値は、取得した負荷実測値の平均値でもよいし、同一曜日のものを優先する等の重み付けを行ってもよい。
【００３７】
仮想マシンを使用中の全利用者に対して上記ステップＢ２〜ステップＢ５の処理を行い、各ホストマシンにかかると予想される負荷情報の合計値と各ホストマシンの性能値から、高負荷状態に陥る可能性のあるホストマシンが存在するかどうかを調べる（ステップＢ６）。
【００３８】
その結果、高負荷状態に陥る可能性のあるホストマシンが存在する場合（ステップＢ６ａ：Ｙｅｓ）は、各仮想マシンの負荷情報の予想値と各ホストマシンの性能値を基に、負荷が平準化されるような仮想マシンとホストマシンの割り当てを決定し、仮想マシンの再配置処理を行う（ステップＢ７）。このとき、再配置処理を行っても高負荷状態を完全に解消できないと見込まれる場合は、スコアの高い利用者が使用している仮想マシンが優先的に高負荷状態から解消されるように配置する。
【００３９】
一方、高負荷状態に陥る可能性のあるホストマシンが存在しない場合（ステップＢ６ａ：Ｎｏ）は、何も行わない。仮想マシンの再配置処理において、仮想マシンを別のホストマシンに移動する際には、仮想マシン移動機能６６に仮想マシンの移動を要求する。
【００４０】
以上の処理を一定時間毎に繰り返すことにより、仮想マシンが高負荷状態に陥ると予想される時刻よりも前に仮想マシンの再配置処理を実施する。
【００４１】
負荷予定値取得機能６３は、スケジュール情報記憶部６２から当該利用者のスケジュール情報を取得し、スケジュール情報に対応する負荷予定値を返す。スケジュール情報と負荷予定値の対応表は、システム管理者が予め作成しておき、適宜必要に応じて管理者または利用者が更新を行う。スケジュール情報と負荷予定値の対応表の例（ＩＤ、スケジュール情報（種別）、負荷予定値（ＣＰＵ、メモリ、ネットワーク、ディスクなど））を図６に示す。
【００４２】
仮想マシン移動機能６６は、仮想マシン再配置機能６５からの要求に応じて、仮想マシンを別のホストマシンに移動する。この処理は、仮想マシン基盤が提供するものである。
【００４３】
以上の動作をまとめると、次のとおりである。
【００４４】
（１）仮想マシン利用者がグループウェア・スケジュール管理ツール等を通して入力した作業予定から、仮想マシンにかかる負荷予定値を割り出し、保存する。また、仮想マシンの負荷を利用者毎に定期的に測定し、一定期間保存する。
【００４５】
（２）管理サーバは、これらの負荷予定値及び負荷実測値を利用者毎の負荷特性（ユーザプロファイル）として管理し、この情報を基に仮想マシンが高負荷状態に陥る可能性があるかどうかを定期的に確認する。
【００４６】
（３）高負荷状態に陥る可能性があると判断された場合、仮想マシンを使用している利用者の負荷予定値及び負荷実測値から最適な仮想マシンとホストマシンの割り当てを決定し、再配置処理を行う。
【００４７】
すなわち、本実施の形態では、利用者に割り当てられた仮想マシンの負荷（ＣＰＵ使用率・メモリ使用量・ネットワークアクセス負荷・ディスクアクセス負荷等）の特性として、利用者が宣言した負荷予定値及び過去の負荷実測値を使用することにより、仮想マシンが高負荷状態に陥ることを事前に予測し、再配置処理を実施する。
【００４８】
従って、本実施の形態によれば、仮想マシンの利用者が自ら宣言した負荷予定値及び過去の負荷実測値を利用者毎の負荷特性として仮想マシンの再配置処理に使用することにより、仮想マシンが高負荷状態に陥る前に再配置処理を実施することが可能となる。また、本実施の形態は、利用者に対して特定の仮想マシンが割り当てられないシステムにも適用することができる。
【００４９】
また、本実施の形態では、ユーザ毎にスコアを計算し、仮想マシンの再配置時にスコアの高いユーザを優遇する処理を行っている。この処理では、スコアは、ユーザが登録したスケジュールを無視し、登録された負荷予定値と実際の負荷の乖離が著しい場合、減点され、逆に、負荷予定値と実際の負荷が近い場合は、加算される。つまり、スコアはユーザが入力したスケジュール(負荷予定値)の信頼度を表している。このように、スコアの高い（スケジュールの信頼度の高い）ユーザを優遇する処理を行うことにより、ユーザが入力するスケジュール(負荷予定値)の信頼性の向上を促すことができる。
【００５０】
また、本実施の形態では、ＶＤＩ（Virtual Desktop Infrastructure）環境とユーザスケジュール管理システムを融合することでユーザ毎の負荷を予測し、仮想マシンの再配置に活かすことができる。
【００５１】
なお、本発明の他の実施の形態として、仮想マシンの負荷を監視し高負荷状態に陥った場合に再配置処理を行う方法（従来の方法）と、前述の実施の形態（利用者毎の負荷予定値及び負荷実測値を使用する方法）を組み合わせたものが挙げられる。
【００５２】
また、上記実施の形態に係る仮想マシン再配置システムは、そのハードウェア及びソフトウェア構成は特に限定されるものではなく、上述した仮想マシンと管理サーバの各部の機能を実現可能なものであれば、いずれのものでも適用可能である。例えば、各部の機能毎に回路を独立させて構成したものでも、複数の機能を１つの回路にまとめて一体に構成したものでも、いずれのものであってもよい。或いは、全ての機能を主にソフトウェアの処理で実現するものでもあってもよい。
【００５３】
また、上述した仮想マシンと管理サーバの少なくとも一部の機能を、プログラムコードを用いて実現する場合、かかるプログラムコード及びこれを記録する記録媒体は、本発明の範疇に含まれる。この場合、ＯＳ（オペレーティングシステム）等の他のソフトウェアと協働して上記機能が実現される場合は、それらのプログラムコードも含まれる。
【００５４】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【００５５】
本発明は、複数のホストマシン上で動作する複数の仮想マシンを複数の利用者が使用するシステムに適用できる。
【符号の説明】
【００５６】
１、２  サーバ機
１１、１２  ホストマシン
２１、２２、２３  仮想マシン
３１  管理サーバ
４１、４２、４３  端末
５１  スケジュール管理ＵＩ
５２  負荷実測値取得機能
６１  セッション情報記憶部
６２  スケジュール情報記憶部
６３  負荷予定値取得機能
６４  負荷実測値記憶部
６５  仮想マシン再配置機能
６６  仮想マシン移動機能
【図１】
2010224756.tif 000003
【図２】
2010224756.tif 000004
【図３】
2010224756.tif 000005
【図４】
2010224756.tif 000006
【図５】
2010224756.tif 000007
【図６】
2010224756.tif 000008