(57)【要約】  移動管理装置は、移動対象であるＶＭゲスト各々について、当該ＶＭゲストの移動をシミュレーションして、移動先のＶＭホストを決定する。続いて、移動管理装置は、移動先のＶＭホストが決定されたＶＭゲストの電源状態に基づいて、当該ＶＭゲストの移動方式を決定する。その後、移動管理装置は、移動対象であるＶＭゲスト各々について移動先および移動方式が決定された場合に、決定された移動先に、決定された移動方式で、ＶＭゲスト各々を一括で移動させる。
2012127633.tif 000002
【特許請求の範囲】
【請求項１】
移動対象である仮想マシン各々について、当該仮想マシンの移動をシミュレーションして、移動先を決定する第１決定部と、
前記第１決定部によって移動先が決定された仮想マシンの電源状態に基づいて、当該仮想マシンの移動方式を決定する第２決定部と、
前記移動対象である仮想マシン各々について移動先および移動方式が決定された場合に、前記第１決定部によって決定された移動先に、前記第２決定部によって決定された移動方式で、前記仮想マシン各々を移動させる移動処理部と
を有することを特徴とする移動管理装置。
【請求項２】
前記仮想マシン各々が動作する動作環境に基づいて、前記仮想マシン各々の移動先候補を特定する特定部と、
前記特定部によって特定された移動先候補に、前記仮想マシンの移動をシミュレーションして前記仮想マシンが移動可能か否かを判定する判定部と、をさらに有し、
前記第１決定部は、前記判定部によって移動可能と判定された移動先候補を移動先として決定することを特徴とする請求項１に記載の移動管理装置。
【請求項３】
前記第１決定部は、各サーバで動作する仮想マシンのうち電源状態が検出できた仮想マシンを移動対象候補として検出し、検出した移動対象候補のうち指定された仮想マシンを移動対象の仮想マシンとすることを特徴とする請求項１に記載の移動管理装置。
【請求項４】
前記判定部は、シミュレーション対象である仮想マシンの移動先として特定された移動先候補が他の仮想マシンの移動先として決定されている状態で、当該移動先候補の動作環境が複数の仮想マシンが移動できる動作環境である場合には、前記他の仮想マシンが前記移動先候補に移動したと仮定した状態で、前記シミュレーション対象である仮想マシンが前記移動先候補に移動可能か否かを判定することを特徴とする請求項２に記載の移動管理装置。
【請求項５】
前記判定部は、シミュレーション対象である仮想マシンの移動先として特定された移動先候補が他の仮想マシンの移動先として決定されている状態で、当該移動先候補の動作環境が複数の仮想マシンが移動できる動作環境でない場合には、所定の条件に基づいて、前記シミュレーション対象である仮想マシンおよび前記他の仮想マシンから移動条件を生成し、生成した移動条件に基づいて、前記シミュレーション対象である仮想マシンおよび前記他の仮想マシンが前記移動先候補に移動可能か否かを判定することを特徴とする請求項２に記載の移動管理装置。
【請求項６】
前記第２決定部は、仮想マシンの電源状態が起動中である場合には、当該仮想マシンの移動方式をライブマイグレーションと決定し、仮想マシンの電源状態が停止中である場合には、当該仮想マシンの移動方式をコールドマイグレーションと決定することを特徴とする請求項１に記載の移動管理装置。
【請求項７】
前記第２決定部は、前記仮想マシン各々に対して移動方式が指定されている場合には、前記電源状態に関らず、指定された移動方式で移動させると決定することを特徴とする請求項１に記載の移動管理装置。
【請求項８】
前記移動処理部は、前記仮想マシン各々を移動させる場合に、コールドマイグレーションによる移動を先に実行し、コールドマイグレーションによる仮想マシンの移動が完了した後に、ライブマイグレーションによる移動を実行することを特徴とする請求項１に記載の移動管理装置。
【請求項９】
コンピュータが実行する制御方法であって、
移動対象である仮想マシン各々について、当該仮想マシンの移動をシミュレーションして、移動先を決定し、
移動先を決定した仮想マシンの電源状態に基づいて、当該仮想マシンの移動方式を決定し、
移動対象である仮想マシン各々について移動先および移動方式が決定した場合に、前記決定した移動先に、前記決定した移動方式で、前記仮想マシン各々を移動させる、
ことを特徴とする移動管理方法。
【請求項１０】
コンピュータに、
移動対象である仮想マシン各々について、当該仮想マシンの移動をシミュレーションして、移動先を決定し、
移動先を決定した仮想マシンの電源状態に基づいて、当該仮想マシンの移動方式を決定し、
移動対象である仮想マシン各々について移動先および移動方式が決定した場合に、前記決定した移動先に、前記決定した移動方式で、前記仮想マシン各々を移動させる処理、
をコンピュータに実行させることを特徴とする移動管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動管理装置、移動管理方法および移動管理プログラムに関する。
【背景技術】
【０００２】
従来、大規模データセンタ等の分散コンピュータシステムのような大規模システムでは、処理を担当するハーウェアを交代させる、すなわち処理を異なるハードウェアに移動させることで、システムの可用性を高めている。一例として、ハードウェア上でＶＭ（Virtual  Machine）ホストを動作させ、このＶＭホスト上でＶＭゲストを動作させる技術が知られている。【０００３】
ＶＭホストは、コンピュータシステムの動作環境を仮想的に実現するプログラムである。ＶＭゲストは、ＶＭホストによって提供された環境で仮想マシンとして動作し、ユーザに提供される処理を担う。このＶＭゲストは、異なるＶＭホストに移動しても処理を継続することができる。【０００４】
このように、ＶＭゲストを異なるＶＭホストに移動させる技術として、ＶＭゲストの稼動を停止させることなく移動させるライブマイグレーションやＶＭゲストの稼動を停止してから移動させるコールドマイグレーションなどのマイグレーションが利用されている。なお、ＶＭゲストに限らず、ＶＭホストを他の物理サーバに移動させる場合にも、マイグレーションが利用されている。【０００５】
例えば、従来では、ＧＵＩ（Graphical  User  Interface）、ＣＬＩ（Command  line  interface）、Ｓｃｒｉｐｔなどを用いて、移動対象のＶＭゲストを１台ずつ、移動先ＶＭホストを指定して移動させる技術が利用されている。【０００６】
近年では、自動でマイグレーションを実行する技術も知られている。例えば、ＶＭゲストの移動先対象となる各サーバのＣＰＵ使用率、メモリ使用量、移動にかかる時間に基づいて、当該ＶＭゲストが移動できるサーバ上の仮想化ソフトウェアを特定する。そして、特定した仮想化ソフトウェア上に、移動対象のＶＭゲストをライブマイグレーションする技術が知られている。【０００７】
また、ＶＭホストやＶＭゲストを稼動させる仮想マシンシステムの負荷のサイクルに基づいてスケジューリングし、スケジューリングに従ってライブマイグレーションを自動実行する技術も知られている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２１７３０２号公報
【特許文献２】特開２０１０−１１７７６０号公報
【特許文献３】特表２００７−５３６６５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の技術では、複数の仮想マシンが移動対象である場合に、仮想マシンを１つ１つ移動させたり、仮想マシン１つ１つの移動完了を確認したりするので、仮想マシンの移動処理を管理する管理者の作業が煩雑になり、管理者を拘束する時間が長いという問題がある。【００１０】
例えば、ＧＵＩやコマンド等を用いる技術では、移動対象のＶＭゲスト１台ずつに対して、移動先ＶＭホストの指定およびライブマイグレーションの実行をして、ライブマイグレーションが正常に終了したかを確認することになる。つまり、連続してライブマイグレーションを実行できない。このため、全てのＶＭゲストの移動が正常に完了するまで、管理者を拘束することになる。【００１１】
また、スケジュール等に従ってライブマイグレーションを自動化する場合、移動対象のＶＭゲストが停止中である場合には、ライブマイグレーションが異常終了する。この結果、移動させたいＶＭゲストが移動できないまま処理が終了する場合もある。つまり、自動で実行する場合も、自動で実行された後に管理者が正常終了を確認することになるので、結果として、実行後から正常終了確認まで管理者を拘束することになる。したがって、この技術を用いた場合でも、管理者の作業時間は短くない。【００１２】
１側面では、本発明は、仮想マシンの移動処理の作業時間を短縮することができる移動管理装置、移動管理方法および移動管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
第１の案では、移動管理装置は、移動対象である仮想マシン各々について、当該仮想マシンの移動をシミュレーションして、移動先を決定する第１決定部を有する。移動管理装置は、前記第１決定部によって移動先が決定された仮想マシンの電源状態に基づいて、当該仮想マシンの移動方式を決定する第２決定部を有する。移動管理装置は、前記移動対象である仮想マシン各々について移動先および移動方式が決定された場合に、前記第１決定部によって決定された移動先に、前記第２決定部によって決定された移動方式で、前記仮想マシン各々を移動させる移動処理部を有する。
【発明の効果】
【００１４】
仮想マシンの移動処理の作業時間を短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係る移動管理装置を含むシステムの全体構成を示す図である。
【図２】図２は、実施例２に係る移動管理装置を含むシステムを形成する各装置の構成を示すブロック図である。
【図３】図３は、変数管理テーブルが記憶するsrc＿vm＿hosts変数の例を示す図である。
【図４】図４は、変数管理テーブルが記憶するsrc＿vm＿guests変数の例を示す図である。
【図５】図５は、変数管理テーブルが記憶するdst＿vm＿hosts変数の例を示す図である。
【図６】図６は、変数管理テーブルが記憶するmigration＿lists変数の例を示す図である。
【図７】図７は、ＶＭホストテーブルに記憶される情報の例を示す図である。
【図８】図８は、ＶＭテーブルに記憶される情報の例を示す図である。
【図９】図９は、ＶＭゲストテーブルに記憶される情報の例を示す図である。
【図１０】図１０は、サーバプロファイルテーブルに記憶される情報の例を示す図である。
【図１１】図１１は、ＶＭ管理テーブルに記憶される情報の例を示す図である。
【図１２】図１２は、管理ソフトテーブルに記憶される情報の例を示す図である。
【図１３】図１３は、マイグレーション処理のＴＯＰ画面例を示す図である。
【図１４】図１４は、移動管理装置が実行する処理の全体的な流れを説明するフローチャートである。
【図１５】図１５は、ＶＭゲスト候補生成処理の流れを説明するフローチャートである。
【図１６】図１６は、移動先候補のＶＭホストリスト生成処理の流れを説明するフローチャートである。
【図１７】図１７は、移動可能判定処理の流れを説明するフローチャートである。
【図１８】図１８は、移動種別決定処理の流れを説明するフローチャートである。
【図１９】図１９は、ＴＯＰ画面例を示す図である。
【図２０】図２０は、移動対象のＶＭゲスト一覧を表示させた画面例を示す図である。
【図２１】図２１は、移動先候補のＶＭホスト一覧を表示させた画面例を示す図である。
【図２２】図２２は、移動先候補として１つのＶＭホストが選択された画面例を示す図である。
【図２３】図２３は、移動先のＶＭホストが決定された画面例を示す図である。
【図２４】図２４は、移動種別が決定された画面例を示す図である。
【図２５】図２５は、ＴＯＰ画面例を示す図である。
【図２６】図２６は、移動対象のＶＭゲスト一覧を表示させた画面例を示す図である。
【図２７】図２７は、移動先候補のＶＭホスト一覧を表示させた画面例を示す図である。
【図２８】図２８は、移動先候補として１つのＶＭホストが選択された画面例を示す図である。
【図２９】図２９は、移動先のＶＭホストが決定された画面例を示す図である。
【図３０】図３０は、移動種別が決定された画面例を示す図である。
【図３１】図３１は、既に他のＶＭゲストの移動が決定された状態で別の移動元ＶＭホストが選択された画面例を示す図である。
【図３２】図３２は、図３１の状態から移動対象のＶＭゲストが選択された画面例を示す図である。
【図３３】図３３は、図３２の状態から移動先候補のＶＭホストが選択された画面例を示す図である。
【図３４】図３４は、図３３の状態から移動先のＶＭホストが決定した画面例を示す図である。
【図３５】図３５は、図３４の状態から移動種別が決定された画面例を示す図である。
【図３６】図３６は、図３５の状態からさらに続けて他のＶＭゲストの移動先を決定する画面例を示す図である。
【図３７】図３７は、図３６の状態から移動先対象のＶＭゲストが選択された画面例を示す図である。
【図３８】図３８は、移動先候補として選択されたＶＭホストに既に別のＶＭゲストの移動が決定されている画面例を示す図である。
【図３９】図３９は、図３８の状態から移動種別が決定された画面例を示す図である。
【図４０】図４０は、１つのＶＭホストに複数のＶＭゲストが移動することが決定された画面例を示す図である。
【図４１】図４１は、移動管理プログラムを実行するコンピュータの例を示す図である。
【発明を実施するための形態】
【００１６】
以下に、本発明にかかる移動管理装置、移動管理方法および移動管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１７】
図１は、実施例１に係る移動管理装置を含むシステムの全体構成を示す図である。図１に示すように、このシステムは、クライアント装置１０と、移動管理装置３０と、ＶＭ（Virtual  Machine）管理装置５０と、ＶＭ管理装置７０と、複数のサーバ（ＶＭホスト）６０とを有する。なお、図１に示したサーバの台数や装置の台数は、あくまで例示であり、これに限定されるものではなく、任意の台数を設定することができる。【００１８】
クライアント装置１０は、このシステムの管理者やユーザが利用するコンピュータであり、ＶＭゲストの移動指示を移動管理装置３０に送信して、ＶＭゲストのマイグレーションを実行させる。【００１９】
移動管理装置３０は、第１決定部３０ａ、第２決定部３０ｂ、移動処理部３０ｃを有し、クライアント装置１０からＶＭゲストのマイグレーション指示を受信して、ＶＭ管理装置５０やＶＭ管理装置７０に、ＶＭゲストのマイグレーションの実行を要求する。【００２０】
ＶＭ管理装置５０やＶＭ管理装置７０は、物理サーバ上で動作しているＶＭホストや、ＶＭホスト上で動作しているＶＭゲストに関する情報等を記憶して、仮想マシン全体を管理するサーバである。例えば、ＶＭ管理装置５０やＶＭ管理装置７０は、ＶＭホストやＶＭゲストのリソース状況や、ＶＭホスト上で動作可能なＶＭゲストの最大数などＶＭホストに関する情報を記憶する。【００２１】
サーバ６０は、仮想マシンであるＶＭゲストを動作させる、他のコンピュータシステムの動作環境を仮想的に実現するプログラムであるＶＭホストを実行する物理サーバである。ＶＭゲストは、ＶＭホストによって提供された環境でユーザに提供される処理を担う仮想マシンである。【００２２】
このような状況において、移動管理装置３０の第１決定部３０ａは、移動対象であるＶＭゲスト各々について、当該ＶＭゲストの移動をシミュレーションして、移動先のＶＭホストを決定する。続いて、第２決定部３０ｂは、移動先のＶＭホストが決定されたＶＭゲストの電源状態に基づいて、当該ＶＭゲストの移動方式を決定する。その後、移動処理部３０ｃ、移動対象であるＶＭゲスト各々について移動先および移動方式が決定された場合に、第１決定部３０ａが決定した移動先に、第２決定部３０ｂが決定した移動方式で、ＶＭゲスト各々を一括で移動させる。【００２３】
このように、ＶＭゲストの移動先候補として特定されたＶＭホストに、実際に移動可能か否かをシミュレーションする。そして、移動可能である場合に、ＶＭゲストの電源状態に応じた移動方式で実際に移動させる。この結果、ＶＭゲストが移動できるＶＭホストを特定し、特定したＶＭホストに、ＶＭゲストに適した移動方式で実行させることができる。したがって、各ＶＭゲストについて、移動可能なことを判定して適切な移動方式で一括で移動させることができるので、各ＶＭゲストのマイグレーションの正常終了を確認する手間も省ける。この結果、ＶＭゲストを１つずつ移動させるより、ＶＭゲストの移動処理を管理する管理者の作業時間を短縮することができる。
【実施例２】
【００２４】
次に、実施例２に係る移動管理装置について説明する。ここでは、図１に示したシステムにおける各装置の構成、処理の流れ、実施例２による効果を説明する。【００２５】
［システムの構成］
図２は、実施例２に係る移動管理装置を含むシステムを形成する各装置の構成を示すブロック図である。なお、ＶＭ管理装置５０とＶＭ管理装置７０とは同様の構成を有するので、ここでは、ＶＭ管理装置５０を例にして説明する。同様に、図１に示した各サーバは同様の構成を有するので、ここでは、サーバ６０を例にして説明する。【００２６】
（移動管理装置の構成）
図２に示すように、移動管理装置３０は、通信制御Ｉ／Ｆ部３１と、入力部３２と、表示部３３と、記憶部３４と、各制御部とを有する。なお、各制御部は、例えばＣＰＵなどの電子回路であり、ＶＭホスト生成部３５、ＶＭゲスト候補生成部３６、移動先候補生成部３７、移動判定部３８、移動種別決定部３９、移動指示部４０を有する。【００２７】
通信制御Ｉ／Ｆ部３１は、少なくとも１つのポートを有し、他の装置との通信を制御するインタフェースである。例えば、通信制御Ｉ／Ｆ部３１は、クライアント装置１０と接続され、ＶＭゲストのマイグレーション処理の開始指示を受信して、各制御部に出力する。また、通信制御Ｉ／Ｆ部３１は、ＶＭ管理装置５０やＶＭ管理装置７０と接続され、ＶＭ管理装置５０やＶＭ管理装置７０に、移動指示部４０から指示されたＶＭゲストのマイグレーション指示を送信する。また、通信制御Ｉ／Ｆ部３１は、ＶＭ管理装置５０やＶＭ管理装置７０からマイグレーション結果を受信する。また、通信制御Ｉ／Ｆ部３１は、各制御部が生成したＷｅｂ画面をクライアント装置１０に送信する。【００２８】
入力部３２は、例えばキーボードやマウスなどの入力装置であり、表示部３３と協働してポインティングディバイス機能を実現し、表示部３３に表示される入力画面や選択画面への入力を受け付けて、表示部３３や各制御部に出力する。一例を挙げると、入力部３２は、移動対象のＶＭホストやＶＭゲストの選択、移動種別の選択などを受け付ける。表示部３３は、例えばディスプレイなどの表示装置であり、各制御部によって生成されたＷｅｂ画面などを表示する。【００２９】
記憶部３４は、例えば半導体メモリ素子やハードディスクなどの記憶装置である。この記憶部３４は、変数管理テーブル３４ａと、ＶＭホストテーブル３４ｂと、ＶＭテーブル３４ｃと、ＶＭゲストテーブル３４ｄと、サーバプロファイルテーブル３４ｅと、ＶＭ管理テーブル３４ｆと、管理ソフトテーブル３４ｇとを有する。なお、各テーブルの説明で例示する情報は、あくまで例示であり、これに限定されるものではなく、任意に設定変更できる。また、各テーブルに記憶される情報は、管理者等によって更新されてもよく、ＶＭ管理装置３０によって定期的に更新されてもよい。【００３０】
変数管理テーブル３４ａは、各制御部が処理を実行する際に用いる変数を記憶する。例えば、変数管理テーブル３４ａは、src＿vm＿hosts変数、src＿vm＿guests変数、dst＿vm＿hosts変数、migration＿lists変数を記憶する。なお、図３から図６に示した情報は、例えばホスト名ではなくＩＰ（Internet  Protocol）アドレスやＭＡＣ（Media  Access  Control）アドレスなど、任意に変更可能である。【００３１】
src＿vm＿hosts変数は、ＶＭホスト生成部３５等が移動元のＶＭホストを表示するＷｅｂ画面を生成する際に使用される。図３は、変数管理テーブルが記憶するsrc＿vm＿hosts変数の例を示す図である。図３に示すように、変数管理テーブル３４ａは、src＿vm＿hosts変数として「array＿index、ID、NAME」を記憶する。ここで記憶される「array＿index」は、格納する配列の位置を識別する識別子であり、「ID」は、ＶＭホストを区別するために用いる識別子であり、「NAME」は、移動元のＶＭホストのホスト名である。【００３２】
図３の例で説明すると、「array＿index＝0、ID＝1、NAME＝Host＿a」の場合、src＿vm＿hosts変数の配列「0」には、ID「1」が割り与えられた「Host＿a」のホスト名を有するＶＭホストに関する情報が格納されていることを示す。また、「array＿index＝7、ID＝8、NAME＝Host＿h」の場合には、src＿vm＿hosts変数の配列「7」には、ID「8」が割り与えられた「Host＿h」のホスト名を有するＶＭホストに関する情報が格納されていることを示す。【００３３】
src＿vm＿guests変数は、ＶＭゲスト候補生成部３６等が移動対象となるＶＭゲストを表示するＷｅｂ画面を生成する際に使用される。図４は、変数管理テーブルが記憶するsrc＿vm＿guests変数の例を示す図である。なお、図４のｓ１は、移動候補のＶＭゲスト一覧を示しており、図４のｓ２は、ｓ１の状態から「Guest＿c1」が移動対象として決定された後の状態を示している。図４に示すように、変数管理テーブル３４ａは、src＿vm＿guests変数として「Hash＿key、array＿index、ID、NAME」を記憶する。ここで記憶される「Hash＿key」は、「NAME」に格納されるＶＭゲストが動作するＶＭホストを識別する識別子であり、「array＿index」は、格納位置を識別する識別子である。また、「ID」は、ＶＭゲストを区別するために用いる識別子であり、「NAME」は、移動候補のＶＭゲストの名称である。【００３４】
図４のｓ１に例示した「Hash＿key＝2、array＿index＝2、ID＝23、NAME＝Guest＿b3」の場合について説明する。この場合、Hash＿keyが「2」で識別されるＶＭホストが対応付けられた配列「2」には、ID「23」が割り与えられた移動対象候補であるＶＭゲスト「Guest＿b3」が格納されることを示す。また、「Hash＿key＝3、array＿index＝1、ID＝27、NAME＝Guest＿c3」の場合について説明する。この場合、Hash＿keyが「3」で識別されるＶＭホストが対応付けられた配列「1」には、ID「27」が割り与えられた移動対象候補のＶＭゲスト「Guest＿c3」が格納されることを示す。また、図４のｓ１の状態で「NAME＝Guest＿c3」が移動先対象として特定された場合には、図４のｓ２に示すように、「Hash＿key＝3、array＿index＝1、ID＝27、NAME＝Guest＿c3」のレコードが削除される。【００３５】
dst＿vm＿hosts変数は、移動先候補生成部３７等が移動先候補のＶＭホストを表示するＷｅｂ画面を生成する際に使用される。図５は、変数管理テーブルが記憶するdst＿vm＿hosts変数の例を示す図である。なお、図５のｓ３は、移動先候補のＶＭホスト一覧を示しており、図５のｓ４は、ｓ３の状態から「Guest＿b2」が移動対象として決定された後の移動先候補となるＶＭホスト一覧を示している。図５に示すように、変数管理テーブル３４ａは、dst＿vm＿hosts変数として「Hash＿key、array＿index、ID、NAME」を記憶する。ここで記憶される「Hash＿key」は、移動元となるホストを識別する識別子であり、「array＿index」は、格納位置を識別する識別子である。また、「ID」は、移動先候補のＶＭホストを区別するために用いる識別子であり、「NAME」は、移動先候補のＶＭホストのホスト名である。【００３６】
図５のｓ３に例示した「Hash＿key＝3、array＿index＝0、ID＝1、NAME＝Host＿a」の場合について説明する。この場合、Hash＿keyが「3」である移動元のＶＭホストに対応付けられた配列「0」には、移動先候補のＶＭホストとして、ID「1」が割り与えられた「Host＿a」が格納されることを示す。また、図５のｓ３の状態で、ＶＭゲスト「Guest＿b2」が移動対象として決定された場合、図５のｓ４に示すように、「Hash＿key＝2、array＿index＝0、ID＝6、NAME＝Host＿f」と「Hash＿key＝2、array＿index＝1、ID＝7、NAME＝Host＿g」が追加される。つまり、移動先候補生成部３７は、移動対象として決定されたＶＭゲスト「Guest＿b2」の移動先候補として、ＶＭホスト「Host＿f」と「Host＿g」をdst＿vm＿hosts変数に追加する。【００３７】
migration＿lists変数は、移動判定部３８等が移動対象のＶＭゲストのマイグレーション手法を決定する場合や、移動指示部４０が移動指示を送信する場合に用いられる。図６は、変数管理テーブルが記憶するmigration＿lists変数の例を示す図である。図６に示すように、変数管理テーブル３４ａは、migration＿lists変数として「Hash＿key、array＿index、ID、migration＿type」を記憶する。ここで記憶される「Hash＿key」は、移動先となるＶＭホストを識別する識別子であり、「array＿index」は、格納位置を識別する識別子である。また、「ID」は、ＶＭゲストを区別するために用いる識別子であり、「migration＿type」は、マイグレーションの手法を示す情報である。【００３８】
図６の例で説明すると、「Hash＿key＝7」であるＶＭホストを移動先として配列「0」に格納される「ID＝22」のＶＭゲストは、コールドマイグレーションで移動されることを示す。また、「Hash＿key＝7」であるＶＭホストを移動先として配列「1」に格納される「ID＝23」のＶＭゲストは、ライブマイグレーションで移動されることを示す。また、「Hash＿key＝1」であるＶＭホストを移動先として配列「0」に格納される「ID＝25」のＶＭゲストは、ライブマイグレーションで移動されることを示す。【００３９】
図２に戻り、ＶＭホストテーブル３４ｂは、移動管理装置３０が管理するＶＭホストの一覧を記憶する。図７は、ＶＭホストテーブル３４ｂに記憶される情報の例を示す図である。図７に示すように、ＶＭホストテーブル３４ｂは、ＶＭホストの情報として、「ID、NAME、api＿type、virtual＿machines、logical＿server＿id（SV）」を対応付けて記憶する。なお、ここで記憶される情報は、管理者等によって手動やジョブなどよって随時更新されてもよく、移動管理装置３０が各ＶＭ管理装置から定期的に取得するようにしてもよい。【００４０】
ここで記憶される「ID」は、ＶＭホストテーブル３４ｂに記憶される情報を識別する識別子であり、「NAME」は、ＶＭホストのホスト名などである。「api＿type」は、ＶＭホストを実現してＶＭゲストを動作させるＡＰＩ（Application  Programming  Interface）の種別を示す。「virtual＿machines」は、動作するＶＭゲストを示す情報であり、配列で格納される。「logical＿server＿id（SV）」は、後述するサーバプロファイルテーブルのレコードを特定する識別子である。【００４１】
図７の例の場合、「ID＝2」には、「API（B）」上でＶＭゲスト「ＶＭ１０１〜ＶＭ１０４」を実行するＶＭホスト「Host＿b」の情報が記憶されており、この「Host＿b」の情報には、「logical＿server＿id（SV）＝2」が対応付けられている。また、「ID＝3」には、「API（A）」上でＶＭゲスト「ＶＭ１０５〜ＶＭ１０７」を実行するＶＭホスト「Host＿c」の情報が記憶されており、この「Host＿c」の情報には、「logical＿server＿id（SV）＝3」が対応付けられている。なお、図７に記載される「省略」は、説明上、記載を省略したことを示しており、例えばＶＭ２０１〜ＶＭ２０３などの情報が格納される。【００４２】
ＶＭテーブル３４ｃは、ＶＭホスト上で仮想マシンとして動作しているＶＭゲストに関する詳細な情報を記憶する。図８は、ＶＭテーブルに記憶される情報の例を示す図である。図８に示すように、ＶＭテーブル３４ｃは、ＶＭゲストに関する詳細な情報として「ID、os＿instance、power＿status、vm＿host＿id、メモリ容量、CPU数、CPUスペック」を対応付けて記憶する。【００４３】
ここで記憶される「ID」は、ＶＭテーブル３４ｃの各レコードを識別する識別子であり、「os＿instance」は、ＶＭゲストオブジェクトのリンク先を示す情報であり、仮想マシンとして動作するＶＭゲストを特定する情報である。「power＿status」は、仮想マシン言い換えるとＶＭゲストの電源状態を示しており、電源がオンの場合には「ON」、電源がオフの場合には「OFF」、電源状態が検出できなかった場合には「unknown」が格納される。「vm＿host＿id」は、ＶＭゲストが動作するＶＭホストを特定する情報であり、ＶＭホストテーブル３４ｂのIDが格納される。「メモリ容量」は、ＶＭゲストに割り与えられたメモリ容量であり、「CPU数」は、ＶＭゲストに割り与えられたCPUの数である。「CPUスペック」は、ＶＭゲストに割り与えられたCPUの性能を示す情報であり、ここでは、CPUのクロック周波数が格納される例を示す。【００４４】
図８の例の場合、IDが「101」であるレコードは、「vm＿host＿id＝2」が割り与えられたＶＭホスト上で、メモリ容量が1GBであり、1.2GHｚのCPU2つが割り与えられたＶＭゲスト「Guest＿b1」が動作していることを示す。また、IDが「102」であるレコードは、「vm＿host＿id＝2」が割り与えられたＶＭホスト上で、メモリ容量が750MBであり、3GHｚのCPU2つが割り与えられたＶＭゲスト「Guest＿b2」が停止中であることを示す。また、IDが「106」であるレコードは、「vm＿host＿id＝3」が割り与えられたＶＭホスト上で、メモリ容量が1GBであり、2GHｚのCPU3つが割り与えられたＶＭゲスト「Guest＿c2」が存在するが、電源状態が検出できない状態であることを示す。【００４５】
ＶＭゲストテーブル３４ｄは、ＶＭゲストに関する情報を記憶する。図９は、ＶＭゲストテーブルに記憶される情報の例を示す図である。図９に示すように、ＶＭゲストテーブル３４ｄは、ＶＭゲストに関する情報として「ID、NAME、logical＿server＿id（VM）」を対応付けて記憶する。ここで記憶される「ID」は、ＶＭゲストを一意に識別する識別子であり、「NAME」は、ＶＭゲストの示す名称である。「logical＿server＿id（VM）」は、ＶＭホストを特定する際に使用される識別子であり、ＶＭテーブル３４ｃに記憶される「ID」が格納される。【００４６】
図９の例の場合、IDが「21」であるＶＭゲスト「Guest＿b1」に関する情報は、ＶＭテーブル３４ｃのIが「101」であるレコードに対応することが示されている。同様に、IDが「25」であるＶＭゲスト「Guest＿c1」に関する情報は、ＶＭテーブル３４ｃのIDが「105」であるレコードに対応することが示されている。【００４７】
サーバプロファイルテーブル３４ｅは、ＶＭホストごとに、当該ＶＭホストで利用可能なＶＭ管理ソフトに関する情報を記憶する。図１０は、サーバプロファイルテーブル３４ｅに記憶される情報の例を示す図である。図１０に示すように、サーバプロファイルテーブル３４ｅは、ＶＭホストの情報として「ID、os＿instance、vm＿managings」を対応付けて記憶する。【００４８】
ここで記憶される「ID」は、サーバプロファイルテーブル３４ｅに記憶されるレコード、言い換えると、ＶＭホストを識別する識別子である。「os＿instance」は、ＶＭホストオブジェクトのリンク先を示す情報であり、ＶＭゲストが動作するＶＭホストを特定する情報である。「vm＿managings」は、ＶＭホストで利用可能なＶＭ管理ソフト、言い換えると、当該ＶＭホストで対応可能なＡＰＩ種別を示し、配列として格納される。図１０の場合、IDが「1」であるＶＭホスト「Host＿a」は、ＡＰ１、ＡＰ２、ＡＰ４に対応していることを示している。なお、図１０に記載される「省略」は、説明上、記載を単に省略したことを示しており、一般的にはＡＰ１などの情報が格納される。【００４９】
ＶＭ管理テーブル３４ｆは、サーバプロファイルテーブル３４ｅに記憶されるＶＭホストのＶＭ管理ソフトが属するソフトウェアグループを特定する情報を記憶する。図１１は、ＶＭ管理テーブルに記憶される情報の例を示す図である。図１１に示すように、ＶＭ管理テーブル３４ｆは、「ID、management＿software＿id、logical＿server＿id（SV）」を対応付けて記憶する。【００５０】
ここで記憶される「ID」は、サーバプロファイルテーブル３４ｅの各レコードを識別する識別子であり、「management＿software＿id」は、ＶＭ管理ソフトが属するソフトウェアグループを特定する情報である。「logical＿server＿id（SV）」は、サーバプロファイルテーブルのレコードを特定する識別子である。図１１の例で説明すると、ID「1」のレコードは、サーバプロファイルテーブル３４ｅのIDが「8」であるレコードがソフトウェアグループ「1」に属することを示している。同様に、ID「3」のレコードは、サーバプロファイルテーブル３４ｅのIDが「9」であるレコードがソフトウェアグループ「2」に属することを示している。【００５１】
管理ソフトテーブル３４ｇは、ＶＭ管理ソフトのソフトウェアグループを記憶する。図１２は、管理ソフトテーブルに記憶される情報の例を示す図である。図１２に示すように、管理ソフトテーブル３４ｇは、「ID、managings」として「1、Managing1，Managing3」や「2、Managing2」などを記憶する。【００５２】
ここで記憶される「ID」は、管理ソフトテーブル３４ｇの各レコードを識別するとともに「managings」を識別する識別子であり、ＶＭ管理テーブル３４ｆの「management＿software＿id」に格納される識別子と同様の識別子である。「managings」は、ＶＭ管理ソフトのソフトウェアグループを示す。図１２の例で説明すると、ＶＭ管理ソフトウェアである「Managing1」と「Managing3」は、ID「1」の同じグループに属し、「Managing2」は、ID「2」のグループに属することを示している。【００５３】
図２に戻り、ＶＭホスト生成部３５は、移動元となるＶＭホストのリストを生成する。例えば、ＶＭホスト生成部３５は、クライアント装置１０から送信されたＶＭゲストのマイグレーション処理開始指示が通信制御Ｉ／Ｆ部３１等によって受け付けられると、図１３に示すＷｅｂ画面をクライアント装置１０に送信する。図１３は、マイグレーション処理のＴＯＰ画面例を示す図である。図１３に示すＴＯＰ画面は、「Source  VM  Host  List」フィールドと、「Source  VM  Guest  List」フィールドと、「Target  VM  Host  List」フィールドと、「Cold  Migration」フィールドと、「Live  Migration」フィールドとを有する。また、各フィールドには、表示内容を上下左右に移動させるスクロールを設けてもよい。【００５４】
「Source  VM  Host  List」フィールドには、移動元のＶＭホストの一覧が表示される。「Source  VM  Guest  List」フィールドには、「Source  VM  Host  List」フィールドに表示されたＶＭホストのうち、ユーザによって選択されたＶＭホスト上で動作するＶＭゲストの一覧が移動対象候補のＶＭゲストとして表示される。「Target  VM  Host  List」フィールドには、移動対象として特定されたＶＭゲストの移動先候補であるＶＭホストの一覧が表示される。「Cold  Migration」フィールドは、移動先ＶＭホストが決定したＶＭゲストのうち、移動種別がコールドマイグレーションと決定されたＶＭゲストの一覧が表示される。「Live  Migration」フィールドは、移動先ＶＭホストが決定したＶＭゲストのうち、移動種別がライブマイグレーションと決定されたＶＭゲストの一覧が表示される。また、「OK」ボタンがクリックされると、「Cold  Migration」フィールドおよび「Live  Migration」フィールドに表示されるＶＭゲストのマイグレーションが開始される。「Cancel」ボタンがクリックされると、マイグレーション処理が終了する。【００５５】
ＴＯＰ画面を表示させたＶＭホスト生成部３５は、ＶＭホストテーブル３４ｂの各レコードにおける「NAME」からＶＭホスト名を取得する。そして、ＶＭホスト生成部３５は、取得した各ＶＭホスト名をＴＯＰ画面の「Source  VM  Host  List」フィールドに表示させた画面を生成して、クライアント装置１０に送信する。このとき、ＶＭホスト生成部３５は、ＶＭホストテーブル３４ｂの「ID」と「NAME」とを対応付けて順番に取得し、src＿vm＿hosts変数の配列「0」から順に格納する。なお、格納順序は、配列番号の昇順に限らず、ランダムに取得して、配列にランダムに格納してもよい。【００５６】
一例を挙げると、ＶＭホスト生成部３５は、ＴＯＰ画面を表示させた後、図７に示した「NAME」を取得し、取得した「NAME」が表示されるアイコン等を生成する。そして、ＶＭホスト生成部３５は、生成したアイコンを「Source  VM  Host  List」フィールドに表示させた画面を生成して、クライアント装置１０に送信する。また、ＶＭホスト生成部３５は、生成したアイコン順に、src＿vm＿hosts変数の配列に、ＶＭホストテーブル３４ｂの「ID」と「NAME」を格納する。具体的には、ＶＭホスト生成部３５は、１番目に生成したアイコンに表示される「NAME」と「ID」とを配列「0」に格納し、２番目に生成したアイコンに表示される「NAME」と「ID」とを配列「1」に格納する。このようにすることで、ＶＭホスト生成部３５は、アイコンとテーブルの情報とを対応付けることができる。【００５７】
図２に戻り、ＶＭゲスト候補生成部３６は、移動対象候補となるＶＭゲストの一覧を生成する。例えば、ＶＭゲスト候補生成部３６は、ＶＭホスト生成部３５が表示した画面の「Source  VM  Host  List」フィールドに表示されるＶＭホストから、通信制御部Ｉ／Ｆ部３１を介してユーザの選択を受け付ける。そして、ＶＭゲスト候補生成部３６は、選択されたＶＭホストで動作しているＶＭゲストを抽出し、抽出したＶＭゲストを「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する。【００５８】
具体例を挙げると、ＶＭゲスト候補生成部３６は、ＶＭホスト生成部３５によって移動元ＶＭホスト一覧が表示されると、src＿vm＿guests変数を生成する。そして、ＶＭゲスト候補生成部３６は、ＶＭホストのアイコンがクリックされると、当該アイコンに対応するsrc＿vm＿hosts変数の配列から、クリックされたＶＭホストを特定する。続いて、ＶＭゲスト候補生成部３６は、特定したＶＭホストに対応付けてsrc＿vm＿guests変数の「NAME」に格納されるＶＭゲスト名を表示させたアイコンを生成する。その後、ＶＭゲスト候補生成部３６は、生成したアイコンを「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する。つまり、ＶＭゲスト候補生成部３６は、選択されたＶＭホスト上で動作するＶＭゲストを移動対象候補のＶＭゲストとしてユーザに表示する。【００５９】
ここで、まず、src＿vm＿guests変数の生成例について説明する。ＶＭゲスト候補生成部３６は、ＶＭホストテーブル３４ｂを参照して、src＿vm＿hosts変数の「NAME＝Host＿b」に対応する「virtual＿machines」として「ＶＭ１０１〜ＶＭ１０４」を特定する。そして、ＶＭゲスト候補生成部３６は、「ＶＭ１０１」の「１０１」をキーにして、ＶＭゲストテーブル３４ｄを検索し、「ID＝21」と「NAME＝Guest＿b1」を特定する。また、ＶＭゲスト候補生成部３６は、「ＶＭ１０１」の「１０１」をキーにして、ＶＭテーブル３４ｃを検索し、「vm＿host＿id＝2」を特定する。その後、ＶＭゲスト候補生成部３６は、特定した「vm＿host＿id＝2」を「Hsh＿key」とする配列（array＿index）の「0」に、特定した「ID＝21」と「NAME＝Guest＿b1」を登録したsrc＿vm＿guests変数を生成する。【００６０】
同様に、ＶＭゲスト候補生成部３６は、「NAME＝Guest＿b1」と同様に「Host＿b」で動作する「NAME＝Guest＿b2」、「NAME＝Guest＿b3」、「NAME＝Guest＿b4」についても上記処理を実行する。具体的には、ＶＭゲスト候補生成部３６は、「NAME＝Guest＿b2」については、「vm＿host＿id＝2」を「Hsh＿key」とする配列「1」に格納し、「NAME＝Guest＿b3」については配列「2」に格納し、「NAME＝Guest＿b4」については、配列「3」に格納する。このように、ＶＭゲスト候補生成部３６は、src＿vm＿hosts変数に格納されるＶＭホスト各々について、上記処理を実行して図４に示すようなsrc＿vm＿guests変数を生成する。【００６１】
このとき、ＶＭゲスト候補生成部３６は、ＶＭテーブル３４ｃを検索した際に、「power＿status」が「unkown」となっているＶＭゲストについてはsrc＿vm＿guests変数に格納しないようにすることもできる。例えば、ＶＭゲスト候補生成部３６は、図８に示した「Guest＿b4」の「power＿status」が「unkown」となっているために、図４のｓ１に示すように、「Guest＿b4」をsrc＿vm＿guests変数に格納していない。【００６２】
次に、ＶＭゲスト候補生成部３６がsrc＿vm＿guests変数を生成した状態で、ユーザがＶＭホストを選択した場合に、移動対象候補のＶＭゲストを表示する例について説明する。例えば、ＶＭゲスト候補生成部３６は、ＶＭホストが表示されるアイコンがクリックされると、当該アイコンに対応するsrc＿vm＿hosts変数の配列から、クリックされたＶＭホストを特定する。【００６３】
ここでは、ユーザによって「Host＿b」が選択されたとする。この場合、ＶＭゲスト候補生成部３６は、src＿vm＿hosts変数を参照し、「Host＿b」に対応する「ID＝2」を特定する。そして、ＶＭゲスト候補生成部３６は、「ID＝2」をキーにしてsrc＿vm＿guests変数の「Hash＿key」を検索し、「NAME＝Guest＿b1」〜「NAME＝Guest＿b3」を特定する。その後、ＶＭゲスト候補生成部３６は、「NAME＝Guest＿b1」〜「NAME＝Guest＿b3」各々を示すアイコンを生成して、生成したアイコンを「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する。なお、ＶＭゲスト候補生成部３６は、array＿indexの順番でアイコンを生成して表示させることで、アイコンとsrc＿vm＿guests変数とを関連付けることもできる。【００６４】
図２に戻り、移動先候補生成部３７は、移動対象のＶＭゲストが決定された場合に、移動先対象候補であるＶＭホストの一覧を生成する。具体的には、移動先候補生成部３７は、ユーザの選択によって移動対象のＶＭゲストを特定し、特定したＶＭゲストの移動先候補を生成してユーザに表示する。【００６５】
例えば、ユーザが、ＶＭゲスト候補生成部３６によって生成された「Source  VM  Guest  List」フィールドの「Guest＿b2」をクリックしたとする。この場合、移動先候補生成部３７は、クリックされた「Guest＿b2」を移動対象のＶＭゲストとして特定する。続いて、移動先候補生成部３７は、「Guest＿b2」の「Hash＿key＝2」をsrc＿vm＿guests変数から特定し、「Hash＿key＝2」をキーにしてＶＭホストテーブル３４ｂの「ID」を検索する。そして、移動先候補生成部３７は、「Hash＿key＝2」に対応する「NAME＝Host＿b」と「api＿type＝API（B）」をＶＭホストテーブル３４ｂから抽出する。このようにして、移動先候補生成部３７は、移動対象のＶＭゲストが動作するＶＭホストのapi＿type、すなわち移動元ＶＭホストが実行しているＶＭ管理ソフトの種別を特定することができる。【００６６】
その後、移動先候補生成部３７は、「api＿type＝API（B）」をキーにしてＶＭホストテーブル３４ｂの「api＿type」を検索し、「api＿type＝API（B）」に対応付けられた「NAME」と「ID」を特定する。図７の例の場合、移動先候補生成部３７は、「api＿type＝API（B）」であるＶＭホストとして「NAME＝Host＿f、ID＝6」と「NAME＝Host＿g、ID＝7」とを特定する。このようにして、移動先候補生成部３７は、移動元ＶＭホストと同様のＶＭ動作環境を提供する移動先候補を特定することができる。【００６７】
このとき、移動先候補生成部３７は、移動元ＶＭホストと同一の管理ソフトを有する移動先が存在しない場合には、移動元ＶＭホストが実行する管理ソフトに対応した管理ソフトを実行する移動先を特定するようにしてもよい。さらに、移動先候補生成部３７は、移動元ＶＭホストの管理ソフトと同一ではないが同種の管理ソフトを実行するＶＭホストを特定するようにしてもよい。上記した例の場合、移動先候補生成部３７は、「api＿type＝API（B）」と同一の管理ソフトを実行する「NAME」と「ID」だけでなく、「api＿type＝API（B）」と同種類の「API（B-1）」を実行する「NAME」と「ID」を特定するようにしてもよい。また、別例としては、移動先候補生成部３７は、ＶＭ管理テーブル３４ｆと管理ソフトテーブル３４ｇを参照して、移動元ＶＭホストのＶＭ管理ソフトが属するグループ「manageings」を特定する。そして、移動先候補生成部３７は、特定したグループ「manageings」と同じグループに属するＶＭホストを移動先候補とすることもできる。【００６８】
その後、移動先候補生成部３７は、dst＿vm＿hosts変数において、移動元ＶＭホストの「Hash＿key＝2」に対応付けて、「array＿index＝0」に「ID＝6、NAME＝Host＿f」を格納し、「array＿index＝1」に「ID＝7、NAME＝Host＿g」を格納する。このようにして、移動先候補生成部３７は、dst＿vm＿hosts変数を生成する。そして、移動先候補生成部３７は、dst＿vm＿hosts変数に格納される「NAME」が表示されるアイコン等を生成し、生成したアイコン等を「Target  VM  Host  List」フィールドにさらに表示させた画面をクライアント装置１０に送信する。なお、移動先候補生成部３７は、Hash＿keyおよびarray＿indexの順番でアイコンを生成して表示させることで、アイコンとdst＿vm＿hosts変数とを関連付けることもできる。【００６９】
図２に戻り、移動判定部３８は、移動対象ＶＭゲストの移動先として特定されたＶＭホストに移動シミュレーションを実行して、移動可能か否かを判定する。例えば、移動判定部３８は、まず、移動先候補生成部３７によって生成された画面からユーザの選択を受け付けて、移動先候補となるＶＭホストを特定する。次に、移動判定部３８は、移動先候補生成部３７が特定した移動対象ＶＭゲストのリソース状況等を用いて、移動先候補のＶＭホストに移動シミュレーションを実行して移動可能か否かを判定する。その後、移動判定部３８は、移動可能と判定した場合には、移動種別決定部３９にその旨を通知して処理を移行し、移動不可能と判定した場合には、ユーザにその旨を報知して別のＶＭホストを選択させる。【００７０】
ここで、ユーザ端末が、移動先候補生成部３７によって生成された「Target  VM  Host  List」フィールドに表示される「Host＿c」をクリックしたとする。この場合、移動判定部３８は、移動先候補のＶＭホストを「Host＿c」と特定する。つまり、移動判定部３８は、移動対象のＶＭゲストが「Guest＿b2」であり、移動先候補のＶＭホストを「Host＿c」であると特定する。【００７１】
次に、移動判定部３８は、ＶＭホスト「Host＿c」を移動先して既に決定されたＶＭゲストが存在するか否かを、migration＿list変数から判定する。具体的には、移動判定部３８は、migration＿list変数に、「Host＿c」を示す「Hash＿key＝2」であるレコードが存在するか否かを判定する。そして、移動判定部３８は、migration＿list変数に「Hash＿key＝2」が存在しない場合、「Host＿c」を移動先候補とするＶＭゲストが、現在の移動対象である「Guest＿b2」のみであると判定する。【００７２】
この場合、移動判定部３８は、「Guest＿b2」のマイグレーションコマンドを「Host＿c」に発行して移動可能か否かを判定する。一手法としては、移動判定部３８は、「Host＿c」で動作しているＶＭゲストの数が「Host＿c」の上限を超えていないかで判定することもできる。また、移動判定部３８は、「Host＿c」のリソース状況をＶＭ管理装置から取得するとともに、「Guest＿b2」のリソース状況をＶＭテーブル３４ｃから取得して、「Host＿c」で「Guest＿b2」が動作可能か否かによって、移動可能か否かを判定することもできる。なお、リソース状況としては、CPU数、メモリ容量、ネットワーク帯域量などが挙げられる。【００７３】
一方、migration＿list変数に「Hash＿key＝2」が存在する場合、移動判定部３８は、移動先候補のＶＭホスト「Host＿c」で稼動するＶＭ管理ソフトが、複数マイグレーションに対応しているソフトウェアであるか否かを判定する。一例を挙げると、移動判定部３８は、サーバプロファイルテーブル３４ｅを参照して、移動先候補のＶＭホスト「Host＿c」に対応付けられた「ID」を抽出する。そして、移動判定部３８は、抽出した「ID」に対応付けられた「management＿software＿id」をＶＭ管理テーブル３４ｆから抽出する。さらに、移動判定部３８は、抽出した「management＿software＿id」に対応付けられた「managings」を管理ソフトテーブル３４ｇから特定する。そして、移動判定部３８は、インターネットや管理者等によってメモリ等に登録されている情報等に基づいて、特定した「managings」が複数マイグレーションに対応しているソフトウェア種別であるか否かを判定する。【００７４】
そして、移動判定部３８は、複数マイグレーションに対応しているソフトウェアであると判定した場合、「Host＿c」のリソース状況と、既に移動する決定されている他ＶＭゲストのリソース状況とから、「Guest＿b2」が使用可能なリソース状況を特定する。その後、移動判定部３８は、特定したリソース状況下で「Guest＿b2」が動作可能か否かによって、「Guest＿b2」が「Host＿c」に移動可能か否かを判定する。別例としては、移動判定部３８は、「Guest＿b2」および他ＶＭゲストのマイグレーションコマンドを同時に発行して、エラーが発生しないか否かを判定材料とすることもできる。【００７５】
また、移動判定部３８は、複数マイグレーションに対応していないソフトウェアであると判定した場合、既に移動が決定されている他ＶＭゲストのリソース状況と、「Guest＿b2」のリソース状況とを加算した１つのリソース状況を生成する。そして、移動判定部３８は、生成した１つのリソース状況が「Host＿c」のリソース状況の範囲内である場合には、「Guest＿b2」が移動可能であると判定する。一方、移動判定部３８は、生成した１つのリソース状況が「Host＿c」のリソース状況の範囲内にない場合には、他ＶＭゲストが「Host＿c」に移動可能であり、「Guest＿b2」が「Host＿c」に移動不可能であると判定する。なお、移動判定部３８は、他ＶＭゲストのリソース状況や「Guest＿b2」のリソース状況をＶＭテーブル３４ｃから取得することができ、「Host＿c」のリソース情報をＶＭ管理装置５０、７０から取得することができる。このようにして、移動判定部３８は、ＶＭゲストの移動先を特定する。【００７６】
移動種別決定部３９は、移動判定部３８が特定した移動対象のＶＭゲストの移動種別を決定する。具体的には、移動種別決定部３９は、ＶＭテーブル３４ｃを参照して、移動対象のＶＭゲストの電源状態が「ON」である場合に、当該ＶＭゲストの移動種別を「ライブマイグレーション」と決定する。また、移動種別決定部３９は、ＶＭテーブル３４ｃを参照して、移動対象のＶＭゲストの電源状態が「OFF」である場合に、当該ＶＭゲストの移動種別を「コールドマイグレーション」と決定する。また、移動種別決定部３９は、ＶＭテーブル３４ｃを参照して、移動対象のＶＭゲストの電源状態が「unknown」である場合に、当該ＶＭゲストの移動が「不可能」としてユーザに報知してもよく、移動種別を「コールドマイグレーション」と決定してもよい。【００７７】
そして、移動種別決定部３９は、移動種別が「コールドマイグレーション」と決定されたＶＭゲストの「NAME」をＶＭゲストテーブル３４ｄから取得してアイコン等を生成する。その後、移動種別決定部３９は、画面の「Cold  Migration」フィールドに、生成したアイコン等を表示させる。同様に、移動種別決定部３９は、移動種別が「ライブマイグレーション」と決定されたＶＭゲストの「NAME」をＶＭゲストテーブル３４ｄから取得してアイコン等を生成する。その後、移動種別決定部３９は、画面の「Live  Migration」フィールドに、生成したアイコン等を表示させる。その後、移動種別決定部３９は、生成したアイコンが表示される画面をクライアント装置１０に送信する。【００７８】
このとき、移動種別決定部３９は、移動先ＶＭホストの「Hash＿key」をＶＭホストテーブル３４ｂ等から取得し、移動対象ＶＭゲストの「ID」をＶＭゲストテーブル３４ｅ等から取得する。そして、移動種別決定部３９は、migration＿lists変数に、「Hash＿key」と「ID」と決定された「マイグレーション種別」とを対応付けて格納する。【００７９】
例えば、図６に示す状態で、「Guest＿c2」が「Host＿g」へ「ライブマイグレーションI」すると決定された例について説明する。この場合、移動種別決定部３９は、「Guest＿c2」の「ID＝26」をＶＭゲストテーブル３４ｅから特定し、「Host＿g」の「Hash＿key＝7」をＶＭホストテーブル３４ｂから取得する。そして、migration＿lists変数の「Hash＿key＝7」の配列「0」および「1」に既にデータが登録されていることから、移動種別決定部３９は、「Hash＿key＝7」とする配列「2」に対応付けて、「ID＝26」および「live」をmigration＿lists変数に格納する。【００８０】
移動指示部４０は、移動対象であるＶＭゲスト各々について移動先および移動方式が決定された場合に、移動種別決定部３９によって決定された移動先に、移動種別決定部３９によって決定された移動方式で、ＶＭゲスト各々を移動させる。【００８１】
例えば図６を例にして説明すると、移動指示部４０は、クライアント装置１０に表示される画面において「OK」がクリックされた場合、migration＿lists変数を参照する。そして、移動指示部４０は、「ID＝22」のＶＭゲストが動作するＶＭホストを管理するＶＭ管理装置５０、７０に、「Hash＿Key＝7」で特定されるＶＭホストへ「コールドマイグレーション」により、「ID＝22」のＶＭゲストを移動させることを指示する。【００８２】
このとき、移動指示部４０は、移動対象のＶＭゲストの移動を一気に実行してもよい。また、移動指示部４０は、「migration＿type＝cold」となっているＶＭゲストのマイグレーションを先に実行して完了した後に、「migration＿type＝Live」となっているＶＭゲストのマイグレーションを実行してもよい。そして、移動指示部４０は、migration＿lists変数に格納されるマイグレーションが終了すると、migration＿lists変数を初期値に戻す。【００８３】
（ＶＭ管理装置の構成）
次に、ＶＭ管理装置の構成について説明する。図２に示すように、ＶＭ管理装置５０は、通信制御Ｉ／Ｆ部５１とＶＭ構成管理テーブル５２と制御部５３とを有する。【００８４】
通信制御Ｉ／Ｆ部５１は、少なくとも１つのポートを有し、移動管理装置３０とＶＭ管理装置５０との間の通信や各サーバ６０とＶＭ管理装置５０との間の通信を制御するインタフェースである。例えば、通信制御Ｉ／Ｆ部５１は、ＶＭ管理装置５０からＶＭゲストのマイグレーション指示を受信したり、各ＶＭホストとの間のマイグレーションに関する各種通信を送受信したりする。【００８５】
ＶＭ構成管理テーブル５２は、半導体メモリ素子やハードディスクなどの記憶装置であり、ＶＭ管理装置５０の管理下にあるＶＭホストおよびＶＭゲストに関する情報を記憶する。例えば、ＶＭ構成管理テーブル５２は、サーバのＩＰアドレス、サーバで稼動するＶＭホスト、ＶＭ環境を提供するＶＭ管理ソフト、ＶＭホストで利用可能なリソース状況、動作しているＶＭゲストの数および各リソース状況などを記憶する。なお、ここで記憶される情報は、任意に設定変更でき、管理者等によって登録および更新されてもよく、各サーバから定期的に取得するようにしてもよい。また、ＶＭ管理装置５０の制御部５３は、ＶＭ構成管理テーブル５２が記憶する情報を、移動管理装置３０に定期的に送信するようにしてもよい。【００８６】
制御部５３は、内部メモリ等を有するＣＰＵなどの電子回路であり、ＶＭ管理装置５０が実行する各種処理を制御する。例えば、制御部５３は、移動管理装置３０からマイグレーション指示として、「移動種別」と「ＶＭゲスト」と「ＶＭホスト」とを受信する。そして、制御部５３は、「移動種別」が「cold」であれば、指示されたＶＭゲストの移動元ＶＭホストと移動先ＶＭホストとにコールドマイグレーション指示を送信する。なお、ここで実行されるマイグレーションは、一般的なマイグレーションであるので詳細な説明は省略する。例えば、マイグレーション指示とは、移動対象ＶＭゲストの作成指示、メモリ内容をコピーするプレコピー指示およびストップアンドコピー指示、移動が完了したＶＭゲストの起動指示、移動元へのＶＭゲスト削除指示などがある。【００８７】
（サーバの構成）
次に、図１に示した各サーバの構成について説明する。図２に示すように、サーバ６０は、通信制御Ｉ／Ｆ部６１と制御部６２とを有する。【００８８】
通信制御Ｉ／Ｆ部６１は、少なくとも１つのポートを有し、サーバ６０とＶＭ管理装置５０との間の通信を制御するインタフェースである。例えば、通信制御Ｉ／Ｆ部６１は、上記マイグレーション指示をＶＭ管理装置５０から受信して、制御部６２に通知する。【００８９】
制御部６２は、内部メモリ等を有するＣＰＵなどの電子回路であり、サーバ６０における各種処理を実行する。例えば、制御部６２は、ＶＭ管理ソフトを稼動させてＶＭホストを実行し、ＶＭホスト上でＶＭゲストを動作させて仮想マシン環境を実現する。また、制御部６２は、ＶＭ管理装置５０から受信したマイグレーション指示に従って、ＶＭゲスト作成、プレコピー、ストップアンドコピー、ＶＭ起動、ＶＭ削除などのマイグレーション処理を実行する。【００９０】
［処理の流れ］
次に、図１４〜図１８を用いて、移動管理装置３０が実行する各処理の流れを説明する。ここでは、図１４を用いて全体的な処理の流れを説明し、図１５を用いてＶＭゲスト候補生成処理の流れを説明する。また、図１６を用いて移動先候補のＶＭホストリスト生成処理の流れを説明し、図１７を用いて移動可能判定処理の流れを説明し、図１８を用いて移動種別決定処理の流れを説明する。【００９１】
（全体的な処理の流れ）
図１４は、移動管理装置３０が実行する処理の全体的な流れを説明するフローチャートである。図１４に示すように、移動管理装置３０のＶＭホスト生成部３５は、クライアント装置１０からＶＭ処理開始指示を受信すると（Ｓ１０１肯定）、図１３に例示したＴＯＰ画面をクライアント装置１０に送信する（Ｓ１０２）。また、ＶＭ処理開始指示は、入力部３２を介して管理者から受信することもできる。【００９２】
続いて、ＶＭホスト生成部３５は、ＴＯＰ画面の「Source  VM  Host  List」フィールドにＶＭホスト名を表示させた画面をクライアント装置１０に送信し、移動元ＶＭホストの選択を受け付ける（Ｓ１０３）。例えば、ＶＭホスト生成部３５は、ＶＭ処理開始指示を受け付けると、ＶＭホストテーブル３４ｂに記憶されるＶＭホストをsrc＿vm＿hosts変数に格納して、移動元ＶＭホストを選択させる画面をクライアント装置１０に送信する。【００９３】
そして、ＶＭゲスト候補生成部３６は、移動元ＶＭホストの選択を受け付けると（Ｓ１０３肯定）、選択されたＶＭホストで動作するＶＭゲストを「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する（Ｓ１０４）。【００９４】
続いて、移動先候補生成部３７は、ＶＭゲスト候補生成部３６が生成した画面上で、移動対象とするＶＭゲストの選択を受け付ける（Ｓ１０５肯定）。その後、移動先候補生成部３７は、選択されたＶＭゲストの移動先候補を「Target  VM  Host  List」フィールドに表示させた画面をクライアント装置１０に送信する（Ｓ１０６）。このとき、移動先候補生成部３７は、移動元ＶＭホストのＶＭ管理ソフト等に基づいて、移動先候補のＶＭホストを決定する。【００９５】
そして、移動判定部３８は、移動先候補生成部３７が生成した画面上で、移動先候補とするＶＭホストの選択を受け付ける（Ｓ１０７肯定）。その後、移動判定部３８は、Ｓ１０３で選択されたＶＭゲストがＳ１０７で選択されたＶＭホストに移動可能か否かをシミュレーションによって判定する（Ｓ１０８）。【００９６】
そして、移動種別決定部３９は、移動判定部３８によって移動可能と判定されたＶＭホストを移動先として決定し（Ｓ１０９肯定）、Ｓ１０３で選択されたＶＭゲストの電源状態に応じて移動種別を決定する（Ｓ１１０）。一方、移動判定部３８は、ユーザが選択したＶＭホストに移動不可能と判定した場合には（Ｓ１０９否定）、Ｓ１０６に戻って、他のＶＭホストをユーザに選択させた後、Ｓ１０７以降の処理を実行する。【００９７】
そして、移動指示部４０は、移動対象の全ＶＭゲストに対してＳ１０３〜Ｓ１１０までの処理が終了したとユーザが判定し（Ｓ１１１肯定）、クライアント装置１０に表示される画面上で「OK」ボタンがクリックされると（Ｓ１１２肯定）、Ｓ１１３を実行する。すなわち、移動指示部４０は、移動対象であるＶＭゲスト各々について移動先および移動方式が決定された場合に、移動種別決定部３９によって決定された移動先に、移動種別決定部３９によって決定された移動方式で、ＶＭゲスト各々を移動させる。一方、ユーザが他のＶＭゲストに対してもＳ１０３〜Ｓ１１０までの処理を実行すると判定した場合（Ｓ１１１否定）、Ｓ１０３以降の処理が繰り返される。【００９８】
（ＶＭゲスト候補生成処理の流れ）
図１５は、ＶＭゲスト候補生成処理の流れを説明するフローチャートである。この処理は、図１４に示したＳ１０４〜Ｓ１０５で実行される。以降で説明するフローチャートは、ＶＭホスト生成部３５が表示させたＶＭホスト一覧の中から１つのＶＭホストが選択された状態から実行される。【００９９】
ＶＭゲスト候補生成部３６は、処理を開始すると初期化を実施する（Ｓ２０１）。すなわち、ＶＭゲスト候補生成部３６は、src＿vm＿guests変数を空にする。また、ＶＭゲスト候補生成部３６は、src＿vm＿guests変数を生成するのに使用する調査リストに、ユーザによって選択されたＶＭホストで動作するＶＭゲストをＶＭホストテーブル３４ｂおよびＶＭゲストテーブル３４ｄから特定して格納する。【０１００】
続いて、ＶＭゲスト候補生成部３６は、調査リストに情報が格納されている場合には（Ｓ２０２肯定）、移動対象候補を表示させた画面を生成してクライアント装置１０に送信する。すなわち、ＶＭゲスト候補生成部３６は、src＿vm＿guests変数に格納されたデータに基づいて、移動対象候補を表示させる（Ｓ２０７）。【０１０１】
また、ＶＭゲスト候補生成部３６は、調査リストに情報が格納されていない場合には（Ｓ２０２否定）、調査リストからＶＭゲストを１つ読み出し、臨時変数としてメモリ等に格納する（Ｓ２０３）。【０１０２】
続いて、ＶＭゲスト候補生成部３６は、臨時変数に格納したＶＭゲストの電源状態をＶＭテーブル３４ｃから特定し、電源状態が正常であるか否かを判定する（Ｓ２０４）。ここで、ＶＭゲスト候補生成部３６は、当該ＶＭゲストの電源状態が「unknown」でない場合には正常であると判定する。【０１０３】
そして、ＶＭゲスト候補生成部３６は、当該ＶＭゲストの電源状態が正常である場合には（Ｓ２０４肯定）、当該ＶＭゲストを移動可能候補としてsrc＿vm＿guests変数に格納し（Ｓ２０５）、臨時変数を空にした後に（Ｓ２０６）、Ｓ２０２以降の処理を繰り返す。一方、ＶＭゲスト候補生成部３６は、当該ＶＭゲストの電源状態が正常でない場合には（Ｓ２０４否定）、当該ＶＭゲストを移動可能候補とせずに臨時変数を空にした後に（Ｓ２０６）、Ｓ２０２以降の処理を繰り返す。【０１０４】
（移動先候補のＶＭホストリスト生成処理の流れ）
図１６は、移動先候補のＶＭホストリスト生成処理の流れを説明するフローチャートである。この処理は、図１４に示したＳ１０６〜Ｓ１０７で実行される。【０１０５】
移動先候補生成部３７は、ユーザによって移動先対象のＶＭゲストが選択されると、当該ＶＭゲストのキーとして、ＶＭゲストと対応付けられてsrc＿vm＿guests変数に格納される「Hash＿key」を取得する（Ｓ３０１）。続いて、移動先候補生成部３７は、「Hash＿key＝2」をキーにしてＶＭホストテーブル３４ｂの「ID」を検索して、「Hash＿key＝2」に対応する「NAME＝Host＿b」と「api＿type＝API（B）」を抽出する（Ｓ３０２）。【０１０６】
そして、移動先候補生成部３７は、移動先候補ＶＭホストリストを生成するのに使用する一時的なバッファである「管理ソフトリスト」と「移動先ＶＭホスト候補リスト」を空にする初期化を実行する（Ｓ３０３）。【０１０７】
その後、移動先候補生成部３７は、Ｓ３０２で特定した移動元ＶＭホストの「api＿type」が所定の管理ソフトであるか否かを判定する（Ｓ３０４）。そして、移動先候補生成部３７は、移動元ＶＭホストの「api＿type」が所定の管理ソフトである場合（Ｓ３０４肯定）、所定の管理ソフトを動作させるＶＭホストをＶＭホストテーブル３４ｂから特定して「移動先ＶＭホスト候補リスト」に格納する（Ｓ３０５）。このとき、移動先候補生成部３７は、「移動先ＶＭホスト候補リスト」に格納した情報をdst＿vm＿hosts変数にも格納する。その後、移動先候補生成部３７は、「移動先ＶＭホスト候補リスト」やdst＿vm＿hosts変数に格納されるＶＭホストを、移動先候補のＶＭホストとしてクライアント装置１０に表示させる（Ｓ３０６）。【０１０８】
なお、所定の管理ソフトであるか否かを判定した後に移動先ＶＭホスト候補を作成する例としては、例えば移動元ＶＭホストと同じメーカの管理ソフトを使用しているか否かなどを判定してもよい。また、仮想化環境を提供する仮想化ソフトウェアのプラットフォームが同じものか否か、すなわち、ハードウェアレベルで提供しているのか、ソフトウェアレベルで提供しているのか、言語レベルなのかを判定してもよい。また、Ｓ３０４およびＳ３０５で実行される別の処理例としては、移動先候補生成部３７は、移動元ＶＭホストの管理ソフトと同一の管理ソフトを動作させるＶＭホストを特定するようにしてもよい。【０１０９】
一方、移動先候補生成部３７は、移動元ＶＭホストの「api＿type」が所定の管理ソフトでない場合（Ｓ３０４否定）、移動元ＶＭホストの管理ソフトを「管理ソフトリスト」に格納する（Ｓ３０７）。すなわち、移動先候補生成部３７は、移動元ＶＭホストにインストールされて動作する管理ソフトをサーバプロファイルテーブル３４ｅから特定して、「管理ソフトリスト」に格納する。【０１１０】
そして、移動先候補生成部３７は、「管理ソフトリスト」に格納される管理ソフトが１つ以上である場合（Ｓ３０８肯定）、「管理ソフトリスト」から管理ソフト１つを取得して臨時変数に格納する（Ｓ３０９）。このとき、移動先候補生成部３７は、臨時変数に格納した管理ソフトを「管理ソフトリスト」から削除する。なお、「管理ソフトリスト」に格納される管理ソフトが１つもない場合（Ｓ３０８否定）、移動先候補生成部３７はＳ３１２を実行する。【０１１１】
続いて、移動先候補生成部３７は、臨時変数に格納した管理ソフトが管理するＶＭホストが１つ以上であるか否かを判定する（Ｓ３１０）。具体的には、移動先候補生成部３７は、臨時変数に格納した管理ソフトが属するソフトウェアグループを管理ソフトテーブル３４ｇから特定する。そして、移動先候補生成部３７は、特定したソフトウェアテーブルに属する管理ソフトを動作させるＶＭホストを、ＶＭ管理テーブル３４ｆおよびＶＭテーブル３４ｃから特定する。こうすることで、移動先候補生成部３７は、移動元ＶＭホストと同種の仮想化環境を提供するＶＭホストを特定することができる。【０１１２】
そして、移動先候補生成部３７は、臨時変数に格納した管理ソフトが管理するＶＭホストが１つ以上である場合（Ｓ３１０肯定）、当該管理ソフトが管理するＶＭホストを「移動先ＶＭホスト候補リスト」に格納する（Ｓ３１１）。このとき、移動先候補生成部３７は、移動元ＶＭホストについては格納対象外とする。また、移動先候補生成部３７は、「移動先ＶＭホスト候補リスト」に格納した情報をdst＿vm＿hosts変数にも格納する。【０１１３】
その後、移動先候補生成部３７は、臨時変数に格納される情報を削除する初期化を行って（Ｓ３１２）、Ｓ３０８以降の処理を繰り返す。また、移動先候補生成部３７は、Ｓ３１０において、臨時変数に格納した管理ソフトが管理するＶＭホストが１つもないと判定した場合（Ｓ３１０否定）、Ｓ３１２を実行する。【０１１４】
（移動可能判定処理の流れ）
図１７は、移動可能判定処理の流れを説明するフローチャートである。この処理は、図１４に示したＳ１０８〜Ｓ１０９で実行される。【０１１５】
移動判定部３８は、移動先候補生成部３７によって特定された移動先候補ＶＭホストリストからユーザによって選択された移動先候補ＶＭホストの「移動決定済みＶＭゲストリスト」が未設定であるか否かを判定する（Ｓ４０１）。すなわち、移動判定部３８は、移動先候補のＶＭホストを移動先とする他のＶＭゲストが存在するか否かを示す「移動決定済みＶＭゲストリスト」が存在するか否かを判定する。【０１１６】
そして、移動判定部３８は、「移動決定済みＶＭゲストリスト」が未設定である場合（Ｓ４０１肯定）、「移動決定済みＶＭゲストリスト」の初期化を実行する（Ｓ４０２）。例えば、移動判定部３８は、「移動決定済みＶＭゲストリスト」に記憶されるデータを削除する。【０１１７】
一方、移動判定部３８は、「移動決定済みＶＭゲストリスト」が設定済みである場合（Ｓ４０１否定）、「移動決定済みＶＭゲストリスト」を表示した画面をクライアント装置１０に送信する（Ｓ４０３）。こうすることで、移動判定部３８は、ユーザに、移動決定済みＶＭゲストに対する再考機会を与えることができる。【０１１８】
その後、移動判定部３８は、移動先候補のＶＭホストを移動先とするＶＭゲストをまとめた「複数ＶＭゲストリスト」を生成する（Ｓ４０４）。続いて、移動判定部３８は、移動先候補のＶＭホストで動作するＶＭ管理ソフトが複数移動に対応しているか否かを、ＶＭ管理テーブル３４ｆに記憶される「managings」などの情報を用いて判定する（Ｓ４０５）。【０１１９】
そして、移動判定部３８は、ＶＭ管理ソフトが複数移動に対応している場合（Ｓ４０５肯定）、マイグレーションコマンド等の引数に、複数ＶＭゲストを設定し（Ｓ４０６）、シミュレーションを実行する（Ｓ４０７）。その後、移動判定部３８は、シミュレーション結果を表示した画面をクライアント装置１０に送信する（Ｓ４０８）。例えば、移動判定部３８は、同一のＶＭホストに、複数のＶＭゲストのマイグレーションを同時に実行したり、連続して実行したり、先に決定されていたＶＭゲストを移動させた状態で次に移動可能か否かを判定したりするなど任意のシミュレーションを実行する。なお、移動判定部３８は、シミュレーションによる判定手法として、リソース状況の比較コマンドの発行などを実行する。【０１２０】
一方、移動判定部３８は、ＶＭ管理ソフトが複数移動に対応していない場合（Ｓ４０５否定）、各ＶＭゲストのリソースを加算した１つのＶＭリストを移動条件として生成する（Ｓ４０６）。そして、移動判定部３８は、Ｓ４０７以降で、この移動条件が移動先候補のＶＭゲストで移動可能か否かを判定する。【０１２１】
（移動種別決定処理の流れ）
図１８は、移動種別決定処理の流れを説明するフローチャートである。この処理は、図１４に示したＳ１１０で実行される。この処理は、移動先が決定されたＶＭゲスト各々について実行される。なお、ここでは、移動種別決定部３９が移動対象のＶＭゲストに適した移動種別を決定する例を説明するが、これに限定されるものではない。例えば、ユーザに適切な移動種別を表示し、ユーザが最終的に移動種別を決定することもできる。【０１２２】
まず、移動種別決定部３９は、移動判定部３８によって移動対象のＶＭゲストおよび移動先ＶＭホストが決定されると、クライアント装置１０に表示されている画面の移動種別を非活性化にする（Ｓ５０１）。つまり、移動種別決定部３９は、図１３に示した画面上の「Cold  Migration」フィールドおよび「Live  Migration」フィールドを非活性化状態にする。【０１２３】
続いて、移動種別決定部３９は、移動対象のＶＭゲストの電源状態をＶＭテーブル３４ｃから特定する（Ｓ５０２）。そして、移動種別決定部３９は、当該ＶＭゲストの電源状態が「ON」である場合には、「Cold  Migration」フィールドおよび「Live  Migration」フィールドの両方を活性化する（Ｓ５０３）。その後、移動種別決定部３９は、当該ＶＭゲストのアイコンを「Live  Migration」フィールドに表示させる（Ｓ５０４）。【０１２４】
また、移動種別決定部３９は、当該ＶＭゲストの電源状態が「OFF」である場合には、「Cold  Migration」フィールドを活性化する（Ｓ５０５）。その後、移動種別決定部３９は、当該ＶＭゲストのアイコンを「Cold  Migration」フィールドに表示させる（Ｓ５０６）。【０１２５】
また、移動種別決定部３９は、当該ＶＭゲストの電源状態が「unknown」である場合には、「Cold  Migration」フィールドおよび「Live  Migration」フィールドの両方を非活性化する（Ｓ５０７）。すなわち、移動種別決定部３９は、移動不可能と判定する。【０１２６】
なお、移動種別決定部３９は、Ｓ５０２〜Ｓ５０６によって移動種別が決定された場合には、移動先ＶＭホストを示す「Hash＿key」、移動対象ＶＭゲストを示す「ID」、移動種別を示す「migration＿type」を各テーブルおよび各変数から取得する。そして、移動種別決定部３９は、取得した情報を対応付けてmigration＿lists変数に格納する。【０１２７】
［画面遷移例］
次に、移動管理装置３０がクライアント装置１０に送信する画面の具体例を説明する。ここでは、具体例１として、図１９〜図２４を用いて、移動対象のＶＭゲストを決定して移動先を決定した後に移動種別を決定する例を説明する。また、具体例２として、図２５〜図４０を用いて、複数のＶＭゲストの移動先を決定する例について説明する。なお、各具体例で説明する画面の基本構成は、図１３と同様である。すなわち、各具体例で説明する画面例は、「Source  VM  Host  List」フィールドと、「Source  VM  Guest  List」フィールドと、「Target  VM  Host  List」フィールドと、「Cold  Migration」フィールドと、「Live  Migration」フィールドとを有する。さらに、各具体例で説明する画面例は、「OK」ボタンと「Cancel」ボタンとを有する。【０１２８】
（具体例１）
図１９は、ＴＯＰ画面例を示す図であり、図２０は、移動対象のＶＭゲスト一覧を表示させた画面例を示す図であり、図２１は、移動先候補のＶＭホスト一覧を表示させた画面例を示す図である。図２２は、移動先候補として１つのＶＭホストが選択された画面例を示す図であり、図２３は、移動先のＶＭホストが決定された画面例を示す図であり、図２４は、移動種別が決定された画面例を示す図である。【０１２９】
移動管理装置３０のＶＭホスト生成部３５は、クライアント装置１０から送信されたＶＭゲストのマイグレーション処理開始指示が通信制御Ｉ／Ｆ部３１等によって受け付けられると、図１９に示すＴＯＰ画面をクライアント装置１０に送信する。具体的には、ＶＭホスト生成部３５は、図１３に示した各フィールドを有する画面において、ＶＭホストテーブル３４ｂ等から取得したＶＭホスト名（NAME）を「Source  VM  Host  List」フィールドに表示させた画面をクライアント装置１０に送信する。ここでは、ＶＭホスト生成部３５は、「Host＿a」、「Host＿b」、「Host＿c」を表示したとする。【０１３０】
続いて、ＶＭゲスト候補生成部３６は、図１９の画面例において「Host＿c」がクライアント装置１０によって選択されると、移動元ＶＭホストを「Host＿c」と決定する。続いて、ＶＭゲスト候補生成部３６は、各テーブルを参照し、「Host＿c」で動作しているＶＭゲストとして「Guest＿c1」と「Guest＿c3」を抽出する。そして、ＶＭゲスト候補生成部３６は、図２０に示すように、「Guest＿c1」と「Guest＿c3」を「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する。【０１３１】
その後、移動先候補生成部３７は、図２０の画面例において「Guest＿c1」がクライアント装置１０において選択されると、各テーブルを参照して、移動元ＶＭホスト「Host＿c」と同種または同一のＶＭ管理ソフトを動作させる他のＶＭホストを特定する。続いて、移動先候補生成部３７は、図２１に示すように、移動先候補のＶＭホストとして「Host＿a」、「Host＿d」、「Host＿e」を「Target  VM  Host  List」フィールドに表示させた画面をクライアント装置１０に送信する。【０１３２】
この状態で、図２２に示すように、クライアント装置１０によって「Host＿a」が選択された場合、移動判定部３８は、移動対象ＶＭゲスト「Guest＿c1」が「Host＿a」に移動可能か否かを移動シミュレーションによって判定する。そして、移動種別決定部３９は、移動判定部３８が移動可能と判定した場合、ＶＭゲスト「Guest＿c」の電源状態が「ON」であることをＶＭゲストテーブル３４ｅから特定する。その後、移動種別決定部３９は、図２３に示すように、「Cold  Migration」フィールドと「Live  Migration」フィールドとを活性化した状態の画面をクライアント装置１０に送信する。この状態の画面例は、「Source  VM  Host  List」フィールドの「Host＿c」、「Source  VM  Guest  List」フィールドの「Guest＿c1」、「Target  VM  Host  List」フィールドの「Host＿a」が選択された状態である。【０１３３】
その後、移動種別決定部３９は、図２４に示すように、ＶＭゲスト「Guest＿c」の電源状態が「ON」であることより、「Live  Migration」フィールドに「Guest＿c」を表示させた画面をクライアント装置１０に送信する。このようにして、各ＶＭゲストに対して移動種別が決定された後に、「OK」がクリックされると、移動指示部４０は、migration＿lists変数を参照し、「Live  Migration」フィールドに表示される「Guest＿c」の移動の開始指示をＶＭ管理装置に送信する。そして、ＶＭ管理装置は、移動元ＶＭホストおよび移動先ＶＭホストのそれぞれに、ライブマイグレーション指示を送信する。【０１３４】
（具体例２）
図２５は、ＴＯＰ画面例を示す図であり、図２６は、移動対象のＶＭゲスト一覧を表示させた画面例を示す図であり、図２７は、移動先候補のＶＭホスト一覧を表示させた画面例を示す図である。図２８は、移動先候補として１つのＶＭホストが選択された画面例を示す図であり、図２９は、移動先のＶＭホストが決定された画面例を示す図であり、図３０は、移動種別が決定された画面例を示す図である。【０１３５】
図３１は、既に他のＶＭゲストの移動が決定された状態で別の移動元ＶＭホストが選択された画面例を示す図であり、図３２は、図３１の状態から移動対象のＶＭゲストが選択された画面例を示す図である。図３３は、図３２の状態から移動先候補のＶＭホストが選択された画面例を示す図であり、図３４は、図３３の状態から移動先のＶＭホストが決定した画面例を示す図であり、図３５は、図３４の状態から移動種別が決定された画面例を示す図である。【０１３６】
図３６は、図３５の状態からさらに続けて他のＶＭゲストの移動先を決定する画面例を示す図であり、図３７は、図３６の状態から移動先対象のＶＭゲストが選択された画面例を示す図である。図３８は、移動先候補として選択されたＶＭホストに既に別のＶＭゲストの移動が決定されている画面例を示す図である。図３９は、図３８の状態から移動種別が決定された画面例を示す図であり、図４０は、１つのＶＭホストに複数のＶＭゲストが移動することが決定された画面例を示す図である。【０１３７】
移動管理装置３０のＶＭホスト生成部３５は、クライアント装置１０から送信されたＶＭゲストのマイグレーション処理開始指示が通信制御Ｉ／Ｆ部３１等によって受け付けられると、図２５に示すＴＯＰ画面をクライアント装置１０に送信する。具体的には、ＶＭホスト生成部３５は、ＶＭホストテーブル３４ｂ等から取得したＶＭホスト名（NAME）を「Source  VM  Host  List」フィールドに表示させた画面をクライアント装置１０に送信する。ここでは、ＶＭホスト生成部３５は、「Host＿a」、「Host＿b」、「Host＿c」を表示したとする。【０１３８】
続いて、ＶＭゲスト候補生成部３６は、図２５の画面例において「Host＿b」がクライアント装置１０によって選択されると、移動元ＶＭホストを「Host＿b」と決定する。続いて、ＶＭゲスト候補生成部３６は、各テーブルを参照し、「Host＿b」で動作しているＶＭゲストとして「Guest＿b1」と「Guest＿b2」と「Guest＿b3」とを抽出する。そして、ＶＭゲスト候補生成部３６は、図２６に示すように、「Guest＿b1」と「Guest＿b2」と「Guest＿b3」を「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する。【０１３９】
その後、移動先候補生成部３７は、図２６の画面例において「Guest＿b2」がクライアント装置１０において選択されると、各テーブルを参照し、移動元ＶＭホスト「Host＿b」と同種または同一のＶＭ管理ソフトを動作させる他のＶＭホストを特定する。続いて、移動先候補生成部３７は、図２７に示すように、移動先候補のＶＭホストとして、「Host＿f」、「Host＿g」を「Target  VM  Host  List」フィールドに表示させた画面をクライアント装置１０に送信する。【０１４０】
この状態で、図２８に示すように、クライアント装置１０によって「Host＿g」が選択された場合、移動判定部３８は、移動対象ＶＭゲスト「Guest＿b2」が「Host＿g」に移動可能か否かを移動シミュレーションによって判定する。そして、移動種別決定部３９は、移動判定部３８が移動可能と判定した場合、移動対象ＶＭゲスト「Guest＿b2」の電源状態に基づいてフィールドを活性化させた画面をクライアント装置１０に送信する。【０１４１】
ここでは、移動種別決定部３９は、ＶＭゲスト「Guest＿b2」の電源状態が「OFF」であることをＶＭゲストテーブル３４ｅから特定する。すると、移動種別決定部３９は、図２９に示すように、「Cold  Migration」フィールドを活性化した状態の画面をクライアント装置１０に送信する。その後、移動種別決定部３９は、図３０に示すように、ＶＭゲスト電源状態が「OFF」である「Guest＿b2」を「Cold  Migration」フィールドに表示させた画面をクライアント装置１０に送信する。【０１４２】
続いて、図３０の状態から「Source  VM  Host  List」フィールドの「Host＿c」がクライアント装置１０において選択されると、ＶＭゲスト候補生成部３６は、移動元ＶＭホストを「Host＿c」と決定する。続いて、ＶＭゲスト候補生成部３６は、各テーブルを参照して、「Host＿c」で動作しているＶＭゲストとして「Guest＿c1」と「Guest＿c3」を抽出する。そして、ＶＭゲスト候補生成部３６は、図３１に示すように、「Guest＿c1」と「Guest＿c3」を「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する。【０１４３】
その後、移動先候補生成部３７は、図３１の画面例において「Guest＿c1」がクライアント装置１０によって選択されると、各テーブルを参照して、移動元ＶＭホスト「Host＿c」と同種または同一のＶＭ管理ソフトを動作させる他のＶＭホストを特定する。続いて、移動先候補生成部３７は、図３２に示すように、移動先候補のＶＭホストとして「Host＿a」、「Host＿d」、「Host＿e」を「Target  VM  Host  List」フィールドに表示させた画面をクライアント装置１０に送信する。【０１４４】
この状態で、図３３に示すように、クライアント装置１０において「Host＿a」が選択された場合、移動判定部３８は、移動対象ＶＭゲスト「Guest＿c1」が「Host＿a」に移動可能か否かを移動シミュレーションによって判定する。そして、移動種別決定部３９は、移動判定部３８が移動可能と判定した場合、移動対象ＶＭゲスト「Guest＿c1」の電源状態に基づいてフィールドを活性化させた画面をクライアント装置１０に送信する。ここでは、移動種別決定部３９は、ＶＭゲスト「Guest＿c1」の電源状態が「ON」であることをＶＭゲストテーブル３４ｅから特定する。そして、移動種別決定部３９は、図３４に示すように、「Cold  Migration」フィールドと「Live  Migration」フィールドとを活性化した状態の画面をクライアント装置１０に送信する。【０１４５】
その後、図３５に示すように、移動種別決定部３９は、ＶＭゲスト「Guest＿c1」の電源状態が「ON」であることより、「Live  Migration」フィールドに「Guest＿c1」を表示させた画面をクライアント装置１０に送信する。つまり、ここまでの状態では、移動管理装置３０は、ＶＭホスト「Host＿b」で動作する「Guest＿b2」を「コールドマイグレーション」で「Host＿g」に移動させることが決定されている。さらに、移動管理装置３０は、ＶＭホスト「Host＿c」で動作する「Guest＿c1」を「ライブマイグレーション」で「Host＿a」に移動させることが決定されている。【０１４６】
さらに続いて、図３６に示すように、図３５の状態から「Source  VM  Host  List」フィールドの「Host＿b」がクライアント装置１０において選択されると、ＶＭゲスト候補生成部３６は、移動元ＶＭホストを「Host＿b」と決定する。続いて、ＶＭゲスト候補生成部３６は、各テーブルを参照して、「Host＿b」で動作しているＶＭゲストとして「Guest＿b1」と「Guest＿b3」を抽出する。そして、ＶＭゲスト候補生成部３６は、図３６に示すように、「Guest＿b1」と「Guest＿b3」を「Source  VM  Guest  List」フィールドに表示させた画面をクライアント装置１０に送信する。ここで、クライアント装置１０が「Guest＿b3」を選択したとする。なお、ＶＭゲスト候補生成部３６は、「Guest＿b2」については、既に移動先が決定されているので、「Host＿b」が移動元と選択されたとしても移動対象からは除外する。【０１４７】
その後、移動先候補生成部３７は、「Guest＿b3」がクライアント装置１０において選択されると、各テーブルを参照して、移動元ＶＭホスト「Host＿b」と同種または同一のＶＭ管理ソフトを動作させる他のＶＭホストを特定する。すなわち、移動先候補生成部３７は、図３７に示すように、移動先候補のＶＭホストとして、「Host＿f」、「Host＿g」を「Target  VM  Host  List」フィールドに表示させた画面をクライアント装置１０に送信する。【０１４８】
この状態で、図３８に示すように、クライアント装置１０において「Host＿g」が選択された場合、移動判定部３８は、移動対象ＶＭゲスト「Guest＿b3」が「Host＿g」に移動可能か否かを移動シミュレーションによって判定する。【０１４９】
このとき、移動判定部３８は、「Guest＿b2」の移動先として「Host＿g」が既に決定されているので、クライアント装置１０が「Host＿g」が選択すると、「Cole  Migration」フィールドに「Guest＿b2」を表示させた画面をクライアント装置１０に送信する。また、移動判定部３８は、「Host＿g」が「Guest＿b2」の移動先として決定されている状態で、新たな「Guest＿b3」の移動先候補として選択されたことから、両方が移動可能か否かを判定する。なお、判定手法については、構成等で説明したので省略する。また、移動判定部３８は、図３８の状態では、「Guest＿b3」の電源状態を特定していないので、「Cold  Migration」フィールドと「Live  Migration」フィールドとを非活性化にした状態で、「Cold  Migration」フィールドに「Guest＿b2」を表示させる。【０１５０】
そして、移動種別決定部３９は、移動判定部３８が移動可能と判定した場合、移動対象ＶＭゲスト「Guest＿b3」の電源状態に基づいてフィールドを活性化させた画面をクライアント装置１０に送信する。ここでは、移動対象ＶＭゲスト「Guest＿b3」の電源状態が「ON」であることより、移動種別決定部３９は、図３９に示すように、「Cold  Migration」フィールドと「Live  Migration」フィールドとを活性化した状態の画面をクライアント装置１０に送信する。【０１５１】
その後、図４０に示すように、移動種別決定部３９は、ＶＭゲスト「Guest＿b3」の電源状態が「ON」であることより、「Live  Migration」フィールドに「Guest＿b3」を表示させた画面をクライアント装置１０に送信する。つまり、ここまでの状態では、移動管理装置３０は、ＶＭホスト「Host＿b」で動作する「Guest＿b2」を「コールドマイグレーション」で「Host＿g」に移動させることが決定されている。さらに、移動管理装置３０は、ＶＭホスト「Host＿c」で動作する「Guest＿c1」を「ライブマイグレーション」で「Host＿a」に移動させることが決定されている。さらに、移動管理装置３０は、ＶＭホスト「Host＿b」で動作する「Guest＿b3」を「ライブマイグレーション」で「Host＿g」に移動させることが決定されている。【０１５２】
このようにして、各ＶＭゲストに対して移動種別が決定された後に、「OK」がクリックされると、移動指示部４０は、移動先および移動種別が決定されたＶＭゲストのマイグレーションを実行する。具体的には、移動指示部４０は、migration＿lists変数を参照し、「Cold  Migration」フィールドおよび「Live  Migration」フィールドに表示される各ＶＭゲストの移動の開始指示をＶＭ管理装置に送信する。そして、ＶＭ管理装置は、移動元ＶＭホストおよび移動先ＶＭホストのそれぞれに、マイグレーション指示を送信する。この結果、各ＶＭホストは、指示されたＶＭゲストに対してマイグレーションを実行できる。【０１５３】
［実施例２による効果］
実施例２によれば、ＶＭホストやＶＭ管理装置の負荷を意識することなく、任意のＶＭゲストの移動を複数ＶＭホストに移動できる。移動管理装置３０は、ＶＭゲストのマイグレーションに関する処理の内容をＷｅｂ画面でクライアント装置に送信するので、ユーザは、簡単な操作で複数の移動設定を行うことができる。【０１５４】
移動管理装置３０は、一括でＶＭゲストの移動指示を実行できるため、管理者は、移動設定および移動実施後の正常終了の確認など、ＶＭゲストの移動処理を実行するのに要する拘束時間を短縮することができる。この結果、管理者は、仕事の効率の向上も図れる。また、ＶＭゲストを１つずつ移動させるより、全体移動処理時間を短縮することができ、サーバの負荷軽減にも繋がる。
【実施例３】
【０１５５】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【０１５６】
（Ｗｅｂ画面）
実施例２では、移動管理装置３０がＷｅｂ画面を生成してクライアント装置１０に送信する例について説明したが、これに限定されるものではない。例えば、移動管理装置３０は、自装置が有する表示部３３に表示させて、表示部３３に表示させた画面からユーザの操作を受け付けるようにしてもよい。また、移動管理装置３０は、移動種別の結果などについて、アイコンに対するドラッグ＆ドロップを受け付けて、ユーザの選択を受け付けることもできる。【０１５７】
（自動実行）
例えば、移動管理装置３０は、Ｗｅｂ画面を生成してユーザに問い合わせずに、各テーブルの情報を用いて、移動先ＶＭホストや移動種別を決定することもできる。つまり、移動管理装置３０は、移動対象であるＶＭゲスト各々を各テーブルから特定する。そして、移動管理装置３０は、各ＶＭゲストについて、当該ＶＭゲストの移動をシミュレーションして、移動先を決定する。さらに、移動管理装置３０は、移動先が決定されたＶＭゲストの電源状態に基づいて、当該ＶＭゲストの移動方式を決定する。その後、移動管理装置３０は、移動対象であるＶＭゲスト各々について移動先および移動方式が決定された場合に、決定された移動先に、決定された移動方式で、ＶＭゲスト各々を移動させる。【０１５８】
このように、移動管理装置３０が、各テーブルを用いて、全ての処理を自動で実行することもできる。また、移動管理装置３０は、実施例２等で説明した処理のうち、移動種別決定結果など一部分だけをＷｅｂ画面として生成するようにしてもよい。つまり、移動管理装置３０は、移動種別等を自動で決定できるだけでなく、ユーザからの指定をクライアント装置１０に表示させた画面等から受け付けることもできる。この場合、移動管理装置３０は、管理者等の指示または設定によって、自動決定を優先してもよく、ユーザ指定を優先してもよい。【０１５９】
（マイグレーション指示順序）
実施例２では、コールドマイグレーションを先に実行した後に、ライブマイグレーションを実行する例について説明したが、これに限定されるものではない。例えば、管理者等によって、移動先ホスト等が指定されている場合には、指定された移動先ホストへのマイグレーションを実行した後に、他の移動先にマイグレーションを実行することができる。したがって、移動先ホストや移動元ホストの負荷状況、ＶＭ管理装置の負荷状況、ネットワーク使用率等を考慮して、任意に設定変更することができる。【０１６０】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図３〜図１２等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１６１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えば移動判定部３８と移動種別決定部３９とを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【０１６２】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。【０１６３】
図４１は、移動管理プログラムを実行するコンピュータの例を示す図である。図４１に示すように、コンピュータ１００は、ＲＡＭ１０１と、ＨＤＤ１０２と、ＲＯＭ１０３と、ＣＰＵ１０４と、記録媒体読み取り装置１０５とを有する。ＨＤＤ１０２には、図２に示したテーブル３４ａ〜３４ｇ各々と同様の機能を有するテーブルが設けられる。すなわち、ＨＤＤ１０２には、変数管理テーブル１０２ａ、ＶＭホストテーブル１０２ｂ、ＶＭテーブル１０２ｃ、ＶＭゲストテーブル１０２ｄ、サーバプロファイルテーブル１０２ｅ、ＶＭ管理テーブル１０２ｆ、管理ソフトテーブル１０２ｇが設けられる。【０１６４】
ＲＯＭ１０３には、上の実施例と同様の機能を発揮するプログラムがあらかじめ記憶されている。つまり、図４１に示すように、ＲＯＭ１０３には、移動管理プログラム１０３ａがあらかじめ記憶されている。【０１６５】
そして、ＣＰＵ１０４には、移動管理プログラム１０３ａを読み出して実行することで、図４１に示すように、移動管理プロセス１０４ａを実行する。移動管理プロセス１０４ａは、図２に示した各制御部と同様の動作を実行する。すなわち、移動管理プロセス１０４ａは、ＶＭホスト生成部３５、ＶＭゲスト候補生成部３６、移動先候補生成部３７、移動判定部３８、移動種別決定部３９、移動指示部４０と同様の動作を実行する。【０１６６】
ところで、上記した移動管理プログラム１０３ａは、必ずしもＲＯＭ１０３に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータ１００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される「他のコンピュータ」に記憶させておいてもよい。そして、コンピュータ１００がこれらからプログラムを読み出して実行するようにしてもよい。【０１６７】
すなわち、この他の実施例でいうプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものである。例えば、コンピュータ１００は、記録媒体読み取り装置１０５によって記録媒体から移動管理プログラムを読み出し、読み出された移動管理プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１６８】
１０  クライアント装置
３０  移動管理装置
３０ａ  第１決定部
３０ｂ  第２決定部
３０ｃ  移動処理部
３１  通信制御Ｉ／Ｆ部
３２  入力部
３３  表示部
３４  記憶部
３４ａ  変数管理テーブル
３４ｂ  ＶＭホストテーブル
３４ｃ  ＶＭテーブル
３４ｄ  ＶＭ管理テーブル
３４ｅ  ＶＭゲストテーブル
３４ｆ  サーバプロファイルテーブル
３４ｇ  管理ソフトテーブル
３５  ＶＭホスト生成部
３６  ＶＭゲスト候補生成部
３７  移動先候補生成部
３８  移動判定部
３９  移動種別決定部
４０  移動指示部
５０、７０  ＶＭ管理装置
５１  通信制御Ｉ／Ｆ部
５２  ＶＭ構成管理テーブル
５３  制御部
６０  サーバ
６１  通信制御Ｉ／Ｆ部
６２  制御部
【図１】
2012127633.tif 000003
【図２】
2012127633.tif 000004
【図３】
2012127633.tif 000005
【図４】
2012127633.tif 000006
【図５】
2012127633.tif 000007
【図６】
2012127633.tif 000008
【図７】
2012127633.tif 000009
【図８】
2012127633.tif 000010
【図９】
2012127633.tif 000011
【図１０】
2012127633.tif 000012
【図１１】
2012127633.tif 000013
【図１２】
2012127633.tif 000014
【図１３】
2012127633.tif 000015
【図１４】
2012127633.tif 000016
【図１５】
2012127633.tif 000017
【図１６】
2012127633.tif 000018
【図１７】
2012127633.tif 000019
【図１８】
2012127633.tif 000020
【図１９】
2012127633.tif 000021
【図２０】
2012127633.tif 000022
【図２１】
2012127633.tif 000023
【図２２】
2012127633.tif 000024
【図２３】
2012127633.tif 000025
【図２４】
2012127633.tif 000026
【図２５】
2012127633.tif 000027
【図２６】
2012127633.tif 000028
【図２７】
2012127633.tif 000029
【図２８】
2012127633.tif 000030
【図２９】
2012127633.tif 000031
【図３０】
2012127633.tif 000032
【図３１】
2012127633.tif 000033
【図３２】
2012127633.tif 000034
【図３３】
2012127633.tif 000035
【図３４】
2012127633.tif 000036
【図３５】
2012127633.tif 000037
【図３６】
2012127633.tif 000038
【図３７】
2012127633.tif 000039
【図３８】
2012127633.tif 000040
【図３９】
2012127633.tif 000041
【図４０】
2012127633.tif 000042
【図４１】
2012127633.tif 000043
【国際調査報告】
2012127633.tif 000044
2012127633.tif 000045
2012127633.tif 000046
2012127633.tif 000047