(57)【要約】【課題】仮想マシンの再配置に伴う仮想マシンの移動順序を決定する移動制御プログラム、移動制御装置及び移動制御方法を提供する。【解決手段】複数の仮想マシンの移動情報及び第１状態情報に基づき、複数の仮想マシンのうち、移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定し、複数の仮想マシンそれぞれの優先度に基づいて、第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する移動先の物理マシンへの移動を指示し、いずれかの仮想マシンの移動先の物理マシンへの移動が完了したことに応じて、第２状態情報を取得し、移動情報及び第２状態情報に基づき、複数の仮想マシンのうち、移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、決定した優先度に基づいて、第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する移動先の物理マシンへの移動を指示する。【選択図】図５
2018026042.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第１状態情報と、前記複数の物理マシン間における前記仮想マシンそれぞれの移動に要する時間を示す時間情報とを取得し、
前記時間情報に基づき、前記複数の仮想マシンそれぞれの優先度を決定し、
前記移動情報及び前記第１状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示し、
前記第１仮想マシン群に含まれるいずれかの仮想マシンの前記移動先の物理マシンへの移動が完了したことに応じて、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第２状態情報を取得し、
前記移動情報及び前記第２状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する、
処理をコンピュータに実行させることを実行させることを特徴とする移動制御プログラム。
【請求項２】
請求項１において、さらに、
前記優先度を決定する処理の前に、前記複数の仮想マシンのそれぞれを前記移動先の物理マシンにそれぞれ移動するために、先に移動する必要がある仮想マシンである第１依存仮想マシンが存在するか否かを判定する、
処理をコンピュータに実行させ、
前記優先度を決定する処理では、
前記第１依存仮想マシンが存在すると判定した場合、前記複数の仮想マシンのうち、前記第１依存仮想マシン以外の仮想マシンそれぞれに対応する前記時間情報を、前記第１依存仮想マシン以外の仮想マシンそれぞれの前記優先度として決定し、前記第１依存仮想マシンが存在しない場合、前記複数の仮想マシンそれぞれに対応する前記時間情報を、前記複数の仮想マシンそれぞれの前記優先度として決定し、
前記複数の仮想マシンの全ての前記優先度が決定していない場合、前記優先度が決定していない仮想マシンそれぞれを前記移動先の物理マシンに移動するために、先に移動する必要がある仮想マシンである第２依存仮想マシンが存在するか否かを判定し、
前記第２依存仮想マシンが存在すると判定した場合、前記優先度が決定していない仮想マシンのうち、前記第２依存仮想マシン以外の仮想マシンそれぞれに対応する前記時間情報と、前記優先度が決定していない仮想マシンのうち、前記第２依存仮想マシン以外の仮想マシンが先に移動することにより前記移動先の仮想マシンへの移動が可能になる仮想マシンそれぞれの前記優先度とを加算した値を、前記優先度が決定していない仮想マシンのうち、前記第２依存仮想マシン以外の仮想マシンそれぞれの前記優先度として決定し、前記第２依存仮想マシンが存在しないと判定した場合、前記優先度が決定していない仮想マシンそれぞれに対応する前記時間情報と、前記優先度が決定していない仮想マシンが移動することにより前記移動先の仮想マシンへの移動が可能になる仮想マシンそれぞれの前記優先度とを加算した値を、前記優先度が決定していない仮想マシンそれぞれの前記優先度として決定し、
前記第２依存仮想マシンが存在するか否かを判定する処理及び前記優先度が決定していない仮想マシンの優先度を決定する処理を、前記複数の仮想マシンの全ての前記優先度が決定するまで繰り返し、
前記第１仮想マシン群に含まれる各仮想マシンに移動を指示する処理及び前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理では、前記優先度が高い仮想マシンの移動順序が先になるように、前記移動先の物理マシンへの移動の指示を行う、
ことを特徴とする移動制御プログラム。
【請求項３】
請求項２において、さらに、
前記優先度を決定する処理の前に、前記第１依存仮想マシンのうち、前記第１依存仮想マシンと、前記第１依存仮想マシンを先に移動することにより前記移動先の物理マシンへの移動が可能になる仮想マシンとの関係が循環する２以上の仮想マシンからなる依存仮想マシン群が存在するか否かを判定し、
処理をコンピュータに実行させ、
前記第１依存仮想マシン以外の仮想マシンの優先度を決定する処理では、
前記依存仮想マシン群が存在すると判定した場合、各依存仮想マシン群に含まれる仮想マシンに対応する前記時間情報のうちの最も小さい値と、各依存仮想マシン群に含まれる仮想マシンに対応する前記時間情報のうちの最も小さい値に対応する仮想マシンの前記第１依存仮想マシンに対応する前記時間情報とを加算した値を、前記依存仮想マシン群毎に算出し、
算出した前記値のそれぞれを、前記時間情報のうちの最も小さい値に対応する仮想マシンの前記第１依存仮想マシンそれぞれの前記優先度として決定する、
ことを特徴とする移動制御プログラム。
【請求項４】
請求項３において、
前記関係が循環する２以上の仮想マシンは、前記第１依存仮想マシンのうち、前記２以上の仮想マシンに含まれる各仮想マシンが前記２以上の仮想マシンに含まれる他の仮想マシンの前記第１依存仮想マシンであり、前記２以上の仮想マシンに含まれる各仮想マシンの前記第１依存仮想マシンが前記２以上の仮想マシンに含まれる他の仮想マシンである関係を有する２以上の仮想マシンである、
ことを特徴とする移動制御プログラム。
【請求項５】
請求項３において、
前記第１仮想マシン群を特定する処理では、
前記複数の仮想マシンのうちの前記移動先の物理マシンに移動可能でない仮想マシンであって、各依存仮想マシン群に含まれる仮想マシンのうちの前記時間情報が最も小さい仮想マシンの前記第１依存仮想マシンを、前記依存仮想マシン群毎に特定し、
特定した前記時間情報が最も小さい前記第１依存仮想マシンのそれぞれを、前記第１仮想マシン群の一部として特定する、
ことを実行させることを特徴とする移動制御プログラム。
【請求項６】
請求項１において、
前記第１状態情報及び前記第２状態情報は、前記複数の物理マシンそれぞれの物理リソースの空き容量の情報と、前記複数の仮想マシンそれぞれが動作するために使用する物理リソースの使用量の情報とをそれぞれ含む情報である、
ことを特徴とする移動制御プログラム。
【請求項７】
請求項６において、
前記第１仮想マシン群を特定する処理及び前記第２仮想マシン群を特定する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が前記移動先の物理マシンにおける前記物理リソースの空き容量よりも小さい仮想マシンを、前記移動先の物理マシンに移動可能な仮想マシンとする、
ことを特徴とする移動制御プログラム。
【請求項８】
請求項１において、さらに、
前記第１仮想マシン群に含まれる各仮想マシンに移動を指示する処理の前に、前記複数の物理マシン間において並行して移動可能な仮想マシンの数を示す第１移動可能情報を取得し、
前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理の前に、前記複数の物理マシン間において並行して移動可能な仮想マシンの数を示す第２移動可能情報を取得する、
処理をコンピュータに実行させ、
前記第１仮想マシン群に含まれる各仮想マシンに移動を指示する処理では、前記第１移動可能情報を参照し、前記第１仮想マシン群に含まれる仮想マシンのうち、前記移動元の物理マシンから前記移動先の物理マシンに対して移動中である仮想マシンの数が前記移動元の物理マシンから前記移動先の物理マシンに対して並行して移動可能な仮想マシンの数よりも少ない仮想マシンについて、前記移動先の物理マシンへの移動の指示を行い、
前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理では、前記第２移動可能情報を参照し、前記第２仮想マシン群に含まれる仮想マシンのうち、前記移動元の物理マシンから前記移動先の物理マシンに対して移動中である仮想マシンの数が前記移動元の物理マシンから前記移動先の物理マシンに対して並行して移動可能な仮想マシンの数よりも少ない仮想マシンについて、前記移動先の物理マシンへの移動の指示を行う、
ことを実行させることを特徴とする移動制御プログラム。
【請求項９】
請求項１において、
前記第１仮想マシン群を特定する処理及び前記第２仮想マシン群を特定する処理では、前記複数の仮想マシンに、前記移動先の物理マシンに対する移動を指示していない仮想マシンが存在し、かつ、前記移動先の物理マシンに移動可能な仮想マシンが存在しない場合、前記移動先の物理マシンへの移動を指示した仮想マシンに対して、前記移動元の物理マシンへの再移動を指示し、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。
【請求項１０】
請求項１において、さらに、
前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理の後、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在する場合、前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しない状態になるまで、または、前記移動先の物理マシンに対する移動を指示されていない仮想マシンが存在し、かつ、前記移動先の物理マシンに移動可能な仮想マシンが存在しない状態になるまで、前記第２状態情報を取得する処理、前記第２仮想マシン群を特定する処理及び前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理を繰り返し行う、
処理をコンピュータに実行させることを実行させることを特徴とする移動制御プログラム。
【請求項１１】
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第１状態情報と、前記複数の物理マシン間における前記仮想マシンそれぞれの移動に要する時間を示す時間情報とを取得する情報取得部と、
前記時間情報に基づき、前記複数の仮想マシンそれぞれの優先度を決定する優先度決定部と、
前記移動情報及び前記第１状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定する仮想マシン群特定部と、
決定した前記優先度に基づいて、前記第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する移動指示部と、を有し、
前記情報取得部は、前記第１仮想マシン群に含まれるいずれかの仮想マシンの前記移動先の物理マシンへの移動が完了したことに応じて、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第２状態情報を取得し、
前記仮想マシン群特定部は、前記移動情報及び前記第２状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、
前記移動指示部は、決定した前記優先度に基づいて、前記第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御装置。
【請求項１２】
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第１状態情報と、前記複数の物理マシン間における前記仮想マシンそれぞれの移動に要する時間を示す時間情報とを取得し、
前記時間情報に基づき、前記複数の仮想マシンそれぞれの優先度を決定し、
前記移動情報及び前記第１状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示し、
前記第１仮想マシン群に含まれるいずれかの仮想マシンの前記移動先の物理マシンへの移動が完了したことに応じて、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第２状態情報を取得し、
前記移動情報及び前記第２状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動制御プログラム、移動制御装置及び移動制御方法に関する。
【背景技術】
【０００２】
近年、物理マシンの性能向上に伴い、複数の仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を１つの物理マシンに集約する仮想化技術の研究が進められている。この仮想化技術は、例えば、仮想化ソフトウエア（以下、ハイパバイザとも呼ぶ）が物理マシンを複数の仮想マシンに割当て、各仮想マシンにインストールされたアプリケーションプログラム（以下、アプリケーションとも呼ぶ）によるサービスの提供を可能にする。
【０００３】
上記のような仮想マシンにおいて、仮想マシンの管理を行う管理者（以下、単に管理者とも呼ぶ）は、必要に応じて物理マシン間における仮想マシンの移動を行う（以下、これをマイグレーションとも呼ぶ）。これにより、管理者は、例えば、利用者によるサービスの利用状況に応じて仮想マシンの再配置を行うことが可能になる。そのため、管理者は、物理マシンの物理リソースの効率的な活用等を実現することが可能になる（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２４４５２４号公報
【特許文献２】特開２０１５−０１１５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のような仮想マシンの移動を行う場合、管理者は、例えば、各仮想マシンが動作する物理マシンのうち、物理リソースの残余がある物理マシンに対して仮想マシンの移動を行う。しかしながら、この場合、仮想マシンを移動することができる物理マシンは、現状で物理リソースに残余のある物理マシンに限られる。そのため、仮想マシンの移動が行われた後における各仮想マシンの配置は、物理マシンの物理リソースを効率的に使用する観点から最適な仮想マシンの配置でない場合がある。
【０００６】
これに対し、管理者は、例えば、最適化ソルバ等の数理計画法を活用することにより、物理マシンの物理リソースの最も効率的に使用することができる仮想マシンの配置（以下、最適配置とも呼ぶ）を予め決定することが可能である。しかしながら、数理計画法によって算出される仮想マシンの配置は、各仮想マシンの移動中における各物理マシンの物理リソースの残余の状況や、仮想マシン毎の移動に要する時間の差異等が考慮されていない。そのため、管理者は、仮想マシンを最適配置に再配置するための仮想マシンの移動順序を特定することが困難な場合がある。
【０００７】
そこで、一つの側面では、仮想マシンの再配置に伴う仮想マシンの移動順序を決定する移動制御プログラム、移動制御装置及び移動制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態の一つの態様によれば、情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と、前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第１状態情報と、前記複数の物理マシン間における前記仮想マシンそれぞれの移動に要する時間を示す時間情報とを取得し、前記時間情報に基づき、前記複数の仮想マシンそれぞれの優先度を決定し、前記移動情報及び前記第１状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定し、決定した前記優先度に基づいて、前記第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示し、前記第１仮想マシン群に含まれるいずれかの仮想マシンの前記移動先の物理マシンへの移動が完了したことに応じて、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第２状態情報を取得し、前記移動情報及び前記第２状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、決定した前記優先度に基づいて、前記第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する、処理をコンピュータに実行させることを実行させる。
【発明の効果】
【０００９】
一つの側面によれば、仮想マシンの再配置に伴う仮想マシンの移動順序を決定する。
【図面の簡単な説明】
【００１０】
【図１】図１は、情報処理システム１０の全体構成を示す図である。
【図２】図２は、物理マシン２に配備された仮想マシン３の具体例を説明する図である。
【図３】図３は、情報処理装置１のハードウエア構成を説明する図である。
【図４】図４は、図３の情報処理装置１の機能ブロック図である。
【図５】図５は、第１の実施の形態における移動制御処理の概略を説明するフローチャートである。
【図６】図６は、第１の実施の形態における移動制御処理の概略を説明するフローチャートである。
【図７】図７は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図８】図８は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図９】図９は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図１０】図１０は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図１１】図１１は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図１２】図１２は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図１３】図１３は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図１４】図１４は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【図１５】図１５は、移動対象情報１３１の具体例を説明する図である。
【図１６】図１６は、部分依存グラフを具体例である。
【図１７】図１７は、依存グラフの具体例である。
【図１８】図１８は、依存仮想マシン情報１３８及び依存仮想マシン群情報１３９の具体例を説明する図である。
【図１９】図１９は、優先度情報１３３の具体例を説明する図である。
【図２０】図２０は、第１状態情報１３２ａの具体例を説明する図である。
【図２１】図２１は、残余リソース情報１３７の具体例を説明する図である。
【図２２】図２２は、残余リソース情報１３７の具体例を説明する図である。
【図２３】図２３は、物理マシン２間のネットワーク構成の具体例を説明する図である。
【図２４】図２４は、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６の具体例を説明する図である。
【図２５】図２５は、残余リソース情報１３７の具体例を説明する図である。
【図２６】図２６は、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６の具体例を説明する図である。
【図２７】図２７は、残余リソース情報１３７の具体例を説明する図である。
【図２８】図２８は、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６の具体例を説明する図である。
【図２９】図２９は、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６の具体例を説明する図である。
【図３０】図３０は、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６の具体例を説明する図である。
【発明を実施するための形態】
【００１１】
［情報処理システムの構成］
図１は、情報処理システム１０の全体構成を示す図である。図１に示す情報処理システム１０は、例えば、利用者にサービスを提供するための業務システムである。図１に示す情報処理システム１０において、情報処理装置１と、物理マシン２とがデータセンターＤＣ内に設けられている。そして、利用者端末１１は、インターネットやイントラネット等のネットワークを介して、データセンターＤＣとアクセス可能になっている。
【００１２】
物理マシン２は、例えば、複数の物理マシンから構成される。各物理マシンは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｃｏｍｐｕｔｉｎｇ  Ｕｎｉｔ）と、メモリ（ＤＲＡＭ：Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、ハードディスク（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の大容量メモリとを有する。そして、物理マシン２の物理リソースは、複数の仮想マシン３に割当てられる。
【００１３】
情報処理装置１は、仮想マシン３とアクセス可能であり、物理マシン２内に作成された仮想マシン３の管理を行うものである。情報処理装置１は、例えば、仮想マシン３によって作成されるものであってもよい。
【００１４】
仮想マシン３では、そのインフラをネットワーク経由で利用者に提供するもの（以下、クラウドサービスとも呼ぶ）である。
【００１５】
クラウドサービスは、コンピュータシステムを構築し稼働させるための基盤、すなわち、仮想マシン３やネットワーク等のインフラストラクチャを、ネットワーク経由で提供するサービスである。また、利用者は、例えば、利用者端末１１を介して、仮想マシン３に必要な仕様、例えば、ＣＰＵのクロック周波数、メモリの容量、ハードディスクの容量及びネットワークの通信帯域幅を選択し、それらについてクラウド利用契約を締結する。さらに、利用者は、例えば、利用者端末１１を介して、仮想マシン３の稼働状態を監視や、仮想マシン３に対する操作等を可能にする。
【００１６】
仮想化ソフトウエア４は、情報処理装置１からの指示に応じて、物理マシン２のＣＰＵ、メモリ、ハードディスク及びネットワークを割当てることにより、仮想マシン３を動作させる基盤ソフトウエアである。仮想化ソフトウエア４は、例えば、物理マシン２で動作する。また、仮想化ソフトウエア４は、例えば、物理マシン２間における仮想マシン３の移動を行う。
【００１７】
［物理マシンに配備された仮想マシンの具体例］
次に、物理マシン２に配備された仮想マシン３の具体例について説明を行う。図２は、物理マシン２に配備された仮想マシン３の具体例を説明する図である。
【００１８】
図２に示す例において、データセンターＤＣには、物理マシン２Ａ、２Ｂ、２Ｃ、２Ｄ、２Ｅ及び２Ｆが配備されている。そして、物理マシン２Ａには、仮想マシン３Ａ及び仮想マシン３Ｂが配備され、物理マシン２Ｂには、仮想マシン３Ｃが配備されている。また、物理マシン２Ｄ、２Ｅ及び２Ｆには、それぞれ仮想マシン３Ｄ、３Ｅ及び３Ｆが配備されている。
【００１９】
なお、図２に示す例において、物理マシン２Ａにおける「物理マシン（０，１）」は、物理マシン２Ａのディスクの空き容量が「０（ＧＢ）」であって、メモリの空き容量が「１（ＧＢ）」であることを示している。そして、図２に示す例において、仮想マシン３Ａにおける「仮想マシン（１，２）」は、仮想マシン３Ａが動作するために必要なディスクの使用容量が「１（ＧＢ）」であって、メモリの使用容量が「２（ＧＢ）」であることを示している。なお、図２における他の物理マシン２及び仮想マシン３の説明については省略する。
【００２０】
そして、図２に示すような仮想マシン３において、管理者は、必要に応じて物理マシン２間における仮想マシン３の移動を行う。これにより、管理者は、例えば、利用者によるサービスの利用状況に応じて仮想マシン３の再配置を行うことが可能になる。そのため、管理者は、物理マシン２の物理リソースの効率的な活用等を実現することが可能になる。
【００２１】
具体的に、仮想マシン３の移動を行う場合、管理者は、例えば、各仮想マシン３が動作する物理マシン２のうち、物理リソースの残余がある物理マシン２に対して仮想マシン３の移動を行う。しかしながら、この場合、仮想マシン３が移動することができる物理マシン２は、現状で物理リソースに残余のある物理マシン２に限られる。そのため、仮想マシン３の移動後における各仮想マシン３の配置は、例えば、物理マシン２の物理リソースを効率的に使用する観点から、最適な仮想マシン３の配置ではない場合がある。
【００２２】
これに対し、管理者は、例えば、数理計画法（例えば、最適化ソルバ）を活用する場合がある。これにより、管理者は、図２の各矢印が示すように、物理マシン２の物理リソースの最も効率的に使用することができる仮想マシン３の最適配置を算出することが可能になる。しかしながら、数理計画法によって算出される仮想マシン３の配置は、各仮想マシン３の移動中における各物理マシン２の物理リソースの残余の状況等が考慮されていない。
【００２３】
具体的に、図２に示す例において、管理者は、仮想マシン３Ａ及び仮想マシン３Ｂを物理マシン２Ａから物理マシン２Ｅに移動する必要がある。そして、仮想マシン３Ａ及び仮想マシン３Ｂのディスクの使用容量の合計は、「２（ＧＢ）」であり、仮想マシン３Ａ及び仮想マシン３Ｂのメモリの使用容量の合計は、「３（ＧＢ）」である。したがって、仮想マシン３Ａ及び仮想マシン３Ｂを物理マシン２Ａから物理マシン２Ｅに移動するためには、物理マシン２Ｅのディスクの空き容量が「２（ＧＢ）」以上であり、メモリの空き容量が「３（ＧＢ）」以上である必要がある。
【００２４】
しかしながら、図２に示す例において、物理マシン２Ｅのディスクの空き容量は「１（ＧＢ）」であり、メモリの空き容量は「２（ＧＢ）」である。そのため、仮想マシン３Ａ及び仮想マシン３Ｂは、図２に示すように、物理マシン２Ｅに対して同時に移動することができない。すなわち、仮想マシン３Ａ及び仮想マシン３Ｂのうち、直ちに物理マシン２Ｅに移動できない仮想マシン３については、仮想マシン３Ｅが物理マシン２Ｅから物理マシン２Ｄに移動した後に移動する必要がある。
【００２５】
また、図２に示す例において、管理者は、仮想マシン３Ｃを物理マシン２Ｂから物理マシン２Ｆに移動する必要があり、仮想マシン３Ｆを物理マシン２Ｆから物理マシン２Ｂに移動する必要がある。そして、仮想マシン３Ｃのディスクの使用容量は、「２（ＧＢ）」であり、仮想マシン３Ｃのメモリの使用容量は、「２（ＧＢ）」である。また、仮想マシン３Ｆのディスクの使用容量の合計は、「２（ＧＢ）」であり、仮想マシン３Ｆのメモリの使用容量の合計は、「２（ＧＢ）」である。したがって、仮想マシン３Ｃを物理マシン２Ｂから物理マシン２Ｆに移動するためには、物理マシン２Ｆのディスクの空き容量が「２（ＧＢ）」以上であり、メモリの空き容量が「２（ＧＢ）」以上である必要がある。また、仮想マシン３Ｆを物理マシン２Ｆから物理マシン２Ｂに移動するためには、物理マシン２Ｂのディスクの空き容量が「２（ＧＢ）」以上であり、メモリの空き容量が「２（ＧＢ）」以上である必要がある。
【００２６】
しかしながら、図２に示す例において、物理マシン２Ｆのディスクの空き容量が「０（ＧＢ）」であり、メモリの空き容量が「１（ＧＢ）」である。また、図２に示す例において、物理マシン２Ｂのディスクの空き容量が「０（ＧＢ）」であり、メモリの空き容量が「０（ＧＢ）」である。そのため、仮想マシン３Ｃ及び仮想マシン３Ｆは、それぞれ移動先の物理マシン２に対して同時に移動することができない。
【００２７】
さらに、図２に示す例において、管理者は、仮想マシン３Ｄを物理マシン２Ｄから物理マシン２Ａに移動する必要がある。そして、仮想マシン３Ｄのディスクの使用容量は、「１（ＧＢ）」であり、仮想マシン３Ｄのメモリの使用容量は、「１（ＧＢ）」である。したがって、仮想マシン３Ｄを物理マシン２Ｄから物理マシン２Ａに移動するためには、物理マシン２Ａのディスクの空き容量が「１（ＧＢ）」以上であり、メモリの空き容量が「１（ＧＢ）」以上である必要がある。
【００２８】
しかしながら、図２に示す例において、物理マシン２Ａのディスクの空き容量が「０（ＧＢ）」であり、メモリの空き容量が「１（ＧＢ）」である。そのため、仮想マシン３Ｄは、物理マシン２Ａに対して移動することができない。すなわち、仮想マシン３Ｄは、この場合、物理マシン２Ａへの移動を、仮想マシン３Ａまたは仮想マシン３Ｂが物理マシン２Ａから物理マシン２Ｅに移動した後に行う必要がある。
【００２９】
そのため、管理者は、数理計画法を活用して最適配置を算出した場合であっても、仮想マシン３を最適配置に再配置するための仮想マシン３の移動順序を特定することが困難な場合がある。
【００３０】
また、各仮想マシン３が物理マシン２間を移動するために要する時間は、必ずしも一定ではない。そのため、管理者は、全ての仮想マシン３の移動に要する総時間を短くする必要性から、仮想マシン３毎の移動に要する時間の差異を考慮した上で、仮想マシン３の移動順序を決定することが好ましい。
【００３１】
そこで、本実施の形態における情報処理装置１は、物理マシン２間における各仮想マシン３の移動に要する時間を示す情報（以下、時間情報とも呼ぶ）に基づき、各仮想マシン３の優先度を決定する。そして、情報処理装置１は、各仮想マシン３の移動元及び移動先の物理マシン２の情報（以下、移動情報とも呼ぶ）と、各物理マシン２及び各仮想マシン３の状態を示す状態情報（以下、第１状態情報とも呼ぶ）とに基づき、移動先の物理マシン２に移動可能な仮想マシン３（以下、第１仮想マシン群とも呼ぶ）を特定する。さらに、情報処理装置１は、各仮想マシン３の優先度に基づいて、第１仮想マシン群に含まれる各仮想マシン３に移動先の物理マシン２への移動を指示する。
【００３２】
その後、情報処理装置１は、移動情報と、いずれかの仮想マシン３の移動が完了した後の各物理マシン２及び各仮想マシン３の状態を示す状態情報（以下、第２状態情報）とに基づき、移動先の物理マシン２に移動可能な仮想マシン３（以下、第２仮想マシン群とも呼ぶ）を特定する。そして、情報処理装置１は、各仮想マシン３の優先度に基づいて、第２仮想マシン群に含まれる各仮想マシン３に移動先の物理マシン２への移動を指示する。
【００３３】
すなわち、情報処理装置１は、例えば、時間情報が示す時間が大きい仮想マシン３ほど、高い優先度に決定する。また、情報処理装置１は、例えば、自らが先に移動するまで移動先の物理マシン２に移動することができない仮想マシン３の数が多いほど、高い優先度に決定する。そして、情報処理装置１は、各仮想マシン３について決定した優先度を参照し、移動先の物理マシン２への移動を指示する仮想マシン３の順序の決定を行う。
【００３４】
これにより、情報処理装置１は、移動先の物理マシン２に移動可能な仮想マシン３が複数存在する場合に、全ての仮想マシン３の移動に要する時間を短くする効果が最も大きい仮想マシン３の移動を優先して行うことが可能になる。そのため、情報処理装置１は、各仮想マシン３の移動に要する時間がそれぞれ異なる場合であっても、全ての仮想マシン３を移動先の物理マシン２に移動するために要する時間を短くする移動順序を決定することが可能になる。
【００３５】
また、情報処理装置１は、いずれかの仮想マシン３の移動が完了した場合、仮想マシン３の移動が完了した後の状態を反映した状態情報（第２状態情報）の取得を再度行い、移動先の物理マシン２に移動可能な仮想マシン３の特定を行う。
【００３６】
これにより、情報処理装置１は、各物理マシン２の物理リソースの空き状態等が変化したことに伴って、移動可能になった新たな仮想マシン３の特定を行うことが可能になる。そのため、情報処理装置１は、移動先の物理マシン２への移動を指示する仮想マシン３の選択肢の更新を適宜行うことが可能になる。したがって、情報処理装置１は、仮想マシン３の最適配置に従った仮想マシン３の再配置を行うための移動順序の模索を行うことが可能になる。
【００３７】
［情報処理装置のハードウエア構成］
次に、情報処理装置１のハードウエア構成について説明する。図３は、情報処理装置１のハードウエア構成を説明する図である。
【００３８】
情報処理装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体（ストレージ）１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００３９】
記憶媒体１０４は、記憶媒体１０４内のプログラム格納領域（図示しない）に、仮想マシン３の移動を制御する処理（以下、移動制御処理とも呼ぶ）を行うためのプログラム１１０を記憶する。
【００４０】
ＣＰＵ１０１は、図３に示すように、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働して移動制御処理を行う。
【００４１】
記憶媒体１０４は、例えば、移動制御処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。また、外部インターフェース１０３は、物理マシン２と通信を行う。
【００４２】
[情報処理装置のソフトウエア構成]
次に、情報処理装置１のソフトウエア構成について説明する。図４は、図３の情報処理装置１の機能ブロック図である。ＣＰＵ１０１は、プログラム１１０と協働することにより、配置決定部１１１と、情報取得部１１２と、優先度決定部１１３と、情報管理部１１４と、仮想マシン群特定部１１５と、移動指示部１１６として動作する。
【００４３】
また、図４に示すように、情報格納領域１３０には、移動対象情報１３１（以下、単に移動情報１３１とも呼ぶ）と、状態情報１３２と、優先度情報１３３と、移動候補情報１３４と、移動決定情報１３５と、移動未完了情報１３６とが記憶されている。さらに、図４に示すように、情報格納領域１３０には、残余リソース情報１３７と、依存仮想マシン情報１３８と、依存仮想マシン群情報１３９とが記憶されている。
【００４４】
配置決定部１１１は、数理計画法（例えば、最適化ソルバ）を活用することにより、物理マシン２の物理リソースの最も効率的に使用することができる仮想マシン３の最適配置を算出する。そして、配置決定部１１１は、算出した最適配置に関する情報を含む移動対象情報１３１を作成する。移動対象情報１３１は、物理マシン２間において移動する複数の仮想マシン３毎に、仮想マシン３を識別可能な情報と、仮想マシン３の移動元の物理マシン２を識別可能な情報と、仮想マシン３の移動先の物理マシン２を識別可能な情報とを対応付けた情報である。また、移動対象情報１３１は、例えば、物理マシン２間における各仮想マシン３の移動する際に要する時間（以下、時間情報１３１ａとも呼ぶ）を含むものであってよい。以下、移動対象情報１３１が時間情報１３１ａを含むものとして説明を行う。移動対象情報１３１の具体例については後述する。
【００４５】
情報取得部１１２は、配置決定部１１１が作成した移動対象情報１３１を取得する。また、情報取得部１１２は、複数の物理マシン２及び複数の仮想マシン３それぞれの状態を示す状態情報１３２（以下、第１状態情報１３２ａとも呼ぶ）を取得する。状態情報１３２は、例えば、複数の物理マシン２それぞれの物理リソースの空き容量の情報と、複数の仮想マシン３それぞれが動作するために使用する物理リソースの使用量の情報である。状態情報１３２の具体例については後述する。さらに、情報取得部１１２は、例えば、移動対象情報１３１に含まれる時間情報１３１ａを取得する。
【００４６】
また、情報取得部１１２は、仮想マシン３の移動の完了後、仮想マシンの移動の完了による状態の変化が反映された状態情報１３２（以下、第２状態情報１３２ｂとも呼ぶ）を取得する。
【００４７】
優先度決定部１１３は、移動対象情報１３１に含まれる時間情報１３１ａに基づき、複数の仮想マシン３それぞれの優先度を決定する。そして、優先度決定部１１３は、決定した優先度を示す情報を含む優先度情報１３３を作成する。
【００４８】
情報管理部１１４は、移動候補情報１３４、移動決定情報１３５、移動未完了情報１３６及び残余リソース情報１３７を作成する。移動候補情報１３４は、移動先の物理マシン２に移動する必要がある仮想マシン３のうち、移動先の物理マシン２に移動可能な仮想マシン３を識別する情報である。また、移動決定情報１３５は、移動候補情報１３４に情報が含まれる仮想マシン３のうち、移動先の物理マシン２に対して移動中である仮想マシン３を識別する情報である。また、移動未完了情報１３６は、移動先の物理マシン２に移動する必要がある仮想マシン３のうち、移動先の物理マシン２に移動可能でない仮想マシン３を識別する情報である。さらに、残余リソース情報１３７は、各物理マシン２の物理リソースの現在の残余量や物理マシン２間のネットワークリソースの現在の残余量に関する情報である。移動候補情報１３４、移動決定情報１３５、移動未完了情報１３６及び残余リソース情報１３７の具体例については後述する。
【００４９】
仮想マシン群特定部１１５は、移動情報１３１及び第１状態情報１３２ａに基づき、複数の仮想マシン３のうち、移動先の物理マシン２に移動可能な仮想マシン３を含む仮想マシン群（第１仮想マシン群）を特定する。また、仮想マシン群特定部１１５は、移動情報１３１及び第２状態情報１３２ｂに基づき、複数の仮想マシン３のうち、移動先の物理マシン２に移動可能な仮想マシン３を含む仮想マシン群（第２仮想マシン群）を特定する。
【００５０】
移動指示部１１６は、優先度情報１３３に基づいて、第１仮想マシン群に含まれる仮想マシン３に、移動先の物理マシン２への移動を指示する。また、移動指示部１１６は、優先度情報１３３に基づいて、第２仮想マシン群に含まれる仮想マシン３に、移動先の物理マシン２への移動を指示する。
【００５１】
なお、以下、物理マシン２の物理リソースが物理マシン２のディスク容量及びメモリ容量であるものとして説明を行うが、物理マシン２の物理リソースは、例えば、ＣＰＵ数やＣＰＵの使用率等を含むものであってよい。そして、情報処理装置１は、例えば、ディスク容量、メモリ容量、ＣＰＵ数及びＣＰＵ量から選択した１以上の情報を利用することにより、移動制御処理を実行するものであってもよい。依存仮想マシン情報１３８及び依存仮想マシン群情報１３９については後述する。
【００５２】
[第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図５及び図６は、第１の実施の形態における移動制御処理の概略を説明するフローチャートである。
【００５３】
情報処理装置１は、図５に示すように、仮想マシン３の移動タイミングまで待機する（Ｓ１のＮＯ）。仮想マシン３の移動タイミングは、例えば、管理者が仮想マシン３の再配置を行うことを決定したタイミングであってよい。具体的に、仮想マシン３の移動タイミングは、仮想マシン３を配備した物理マシン２において、物理リソースの使用率が所定の閾値を上回った物理マシン２が発生したことに伴って、管理者が仮想マシン３の再配置を行うことを決定したタイミングであってよい。
【００５４】
そして、仮想マシン３の移動タイミングになった場合（Ｓ１のＹＥＳ）、情報処理装置１は、仮想マシン３毎に、仮想マシン３の情報と、仮想マシン３の移動元の物理マシン２の情報と、仮想マシン３の移動先の物理マシン２の情報とを対応付けた移動対象情報１３１を取得する（Ｓ２）。また、情報処理装置１は、複数の物理マシン２及び複数の仮想マシン３それぞれの状態を示す第１状態情報１３２ａを取得する（Ｓ３）。さらに、情報処理装置１は、複数の物理マシン２間における仮想マシン３それぞれの移動に要する時間を示す時間情報１３１ａを取得する（Ｓ４）。
【００５５】
次に、情報処理装置１は、Ｓ４の処理で取得した時間情報１３１ａに基づき、複数の仮想マシン３それぞれの優先度を決定する（Ｓ５）。すなわち、各仮想マシン３に対応する時間情報１３１ａが互いに異なる場合、情報処理装置１は、全ての仮想マシン３の移動を効率的に行うために、例えば、時間情報１３１ａが示す時間が大きい仮想マシン３を先に移動させることが好ましい。そのため、情報処理装置１は、Ｓ５の処理において、各仮想マシン３の移動順序を決定する際の判断基準となる優先度の決定を行う。
【００５６】
続いて、情報処理装置１は、Ｓ２の処理で取得した移動情報１３１及びＳ３の処理で取得した第１状態情報１３２ａに基づき、複数の仮想マシン３のうち、移動先の物理マシン２に移動可能な仮想マシン３を含む第１仮想マシン群を特定する（Ｓ６）。そして、情報処理装置１は、Ｓ５の処理で決定した優先度に基づいて、Ｓ６の処理で特定した第１仮想マシン群に含まれる各仮想マシン３に、それぞれ対応する移動先の物理マシン２への移動を指示する（Ｓ７）。
【００５７】
すなわち、情報処理装置１は、移動先の物理マシン２に移動可能な仮想マシン３（第１仮想マシン群に含まれる仮想マシン３）が複数存在する場合、Ｓ５の処理で決定した優先度を参照して、移動先の物理マシン２に移動する仮想マシン３を決定する。これにより、情報処理装置１は、全ての仮想マシン３の移動に要する時間を短くする効果が最も大きい仮想マシン３の移動を優先して行うことが可能になる。
【００５８】
その後、情報処理装置１は、図６に示すように、移動先の物理マシン２への移動を指示した仮想マシン３のいずれかの移動が完了するまで待機する（Ｓ１１のＮＯ）。そして、いずれかの仮想マシン３の移動が完了した場合（Ｓ１１のＹＥＳ）、情報処理装置１は、複数の物理マシン２及び複数の仮想マシン３のそれぞれの状態を示す第２状態情報１３２ｂを取得する（Ｓ１２）。そして、情報処理装置１は、Ｓ２の処理で取得した移動情報１３１及びＳ１２の処理で取得した第２状態情報１３２ｂに基づき、複数の仮想マシン３のうち、移動先の物理マシン２に移動可能な仮想マシン３を含む第２仮想マシン群を特定する（Ｓ１３）。
【００５９】
すなわち、いずれかの仮想マシン３の移動が完了した場合、各物理マシン２の物理リソースの空き状態等は変化する。そのため、仮想マシン３の移動の完了に伴って、移動先の物理マシン２に対して新たに移動可能になった仮想マシン３が発生する可能性がある。したがって、情報処理装置１は、いずれかの仮想マシン３の移動が完了した場合、仮想マシン３の移動の完了した後の状態を反映した状態情報１３２（第２状態情報１３２ｂ）の取得を行い、移動先の仮想マシン３に移動可能になった仮想マシン３を含む仮想マシン群（第２仮想マシン群）の特定を行う。
【００６０】
その後、情報処理装置１は、Ｓ５の処理で決定した優先度に基づいて、Ｓ１２の処理で特定した第２仮想マシン群に含まれる各仮想マシン３に、それぞれ対応する移動先の物理マシン２への移動を指示する（Ｓ１４）。そして、情報処理装置１は、例えば、移動先の物理マシン２に対する全ての仮想マシン３の移動が終了するまで、Ｓ１１からＳ１４の処理を繰り返し行う。
【００６１】
このように、本実施の形態における情報処理装置１は、物理マシン２間における仮想マシン３の移動に要する時間を示す時間情報１３１ａに基づき、各仮想マシン３の優先度を決定する。そして、情報処理装置１は、各仮想マシン３の移動元及び移動先の物理マシン２の移動情報１３１と、各物理マシン２及び各仮想マシン３の状態を示す第１状態情報１３２ａとに基づき、移動先の物理マシン２に移動可能な仮想マシン３を含む第１仮想マシン群を特定する。さらに、情報処理装置１は、各仮想マシン３の優先度に基づいて、第１仮想マシン群に含まれる各仮想マシン３に移動先の物理マシン２への移動を指示する。
【００６２】
その後、情報処理装置１は、移動情報と、いずれかの仮想マシン３の移動が完了した際の各物理マシン２及び各仮想マシン３の状態を示す第２状態情報１３２ｂとに基づき、移動先の物理マシン２に移動可能な仮想マシン３を含む第２仮想マシン群を特定する。そして、情報処理装置１は、各仮想マシン３の優先度に基づいて、第２仮想マシン群に含まれる各仮想マシン３に移動先の物理マシン２への移動を指示する。
【００６３】
これにより、情報処理装置１は、移動先の物理マシン２に移動可能な仮想マシン３が複数存在する場合に、全ての仮想マシン３の移動に要する時間を短くする効果が最も大きい仮想マシンの移動を行うことが可能になる。そのため、情報処理装置１は、各仮想マシン３の移動に要する時間がそれぞれ異なる場合であっても、全ての仮想マシン３を移動先の物理マシン２に移動するために要する時間を短くする移動順序を決定することが可能になる。
【００６４】
また、情報処理装置１は、各物理マシン２の物理リソースの空き状態等が変化したことに伴って、移動可能になった新たな仮想マシン３の特定を行うことが可能になる。そのため、情報処理装置１は、移動先の物理マシン２への移動を指示する仮想マシン３の選択肢の更新を適宜行うことが可能になる。したがって、情報処理装置１は、仮想マシン３の最適配置に従った仮想マシン３の再配置を行うための移動順序の模索を行うことが可能になる。
【００６５】
[第１の実施の形態の詳細]
次に、第１の実施の形態の詳細について説明する。図７から図１４は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。また、図１５から図３０は、第１の実施の形態における移動制御処理の詳細を説明する図である。図１５から図３０を参照しながら、図７から図１４の移動制御処理を説明する。
【００６６】
[配置決定処理]
初めに、仮想マシン３の最適配置を決定する処理（以下、配置決定処理とも呼ぶ）について説明を行う。図７は、第１の実施の形態における配置決定処理を説明するフローチャートである。
【００６７】
配置決定部１１１は、図７に示すように、配置決定タイミングまで待機する（Ｓ１０１のＮＯ）。配置決定タイミングは、例えば、管理者が仮想マシン３の再配置を行うことを決定したタイミングであってよい。具体的に、配置決定タイミングは、仮想マシン３を配備した物理マシン２のうち、物理リソースの使用率が所定の閾値を上回った物理マシン２が発生したことに伴って、管理者が仮想マシン３の再配置を行うことを決定したタイミングであってよい。
【００６８】
そして、配置決定タイミングになった場合（Ｓ１０１のＹＥＳ）、配置決定部１１１は、仮想マシン３の新たな配置（最適配置）を算出（決定）する（Ｓ１０２）。具体的に、配置決定部１１１は、例えば、数理計画法等を活用することにより、物理マシン２の物理リソースを効率的に使用することができる仮想マシン３の最適配置を算出する。
【００６９】
その後、情報管理部１１４は、Ｓ１０２の処理で算出した仮想マシン３の最適配置に基づき、移動対象情報１３１を作成する（Ｓ１０３）。具体的に、配置決定部１１１は、仮想マシン３毎に、仮想マシン３の情報と、仮想マシン３の移動元の物理マシン２の情報と、仮想マシン３の移動先の物理マシン２の情報とを対応付けることにより、移動対象情報１３１を作成する。そして、情報管理部１１４は、例えば、作成した移動対象情報１３１を情報格納領域１３０に記憶する。以下、移動対象情報１３１の具体例について説明を行う。
【００７０】
[移動対象情報の具体例]
図１５は、移動対象情報１３１の具体例を説明する図である。以下、図２に示す矢印に従って各仮想マシン３の再配置が行われる場合について説明を行う。なお、以下、図２で説明した物理マシン２Ａ、２Ｂ、２Ｃ、２Ｄ、２Ｅ及び２Ｆを、それぞれ物理マシンＡ、Ｂ、Ｃ、Ｄ、Ｅ及びＦ、または、それぞれ単にＡ、Ｂ、Ｃ、Ｄ、Ｅ及びＦとも表記する。また、以下、図２で説明した仮想マシン３Ａ、３Ｂ、３Ｃ、３Ｄ、３Ｅ及び３Ｆを、それぞれ仮想マシンＡ、Ｂ、Ｃ、Ｄ、Ｅ及びＦ、または、それぞれ単にＡ、Ｂ、Ｃ、Ｄ、Ｅ及びＦとも表記する。
【００７１】
図１５に示す移動対象情報１３１は、移動対象情報１３１に含まれる各情報を識別する「情報ＩＤ」と、各仮想マシン３の名称を示す「仮想マシン名」と、各仮想マシン３が動作するために使用するディスクの使用容量を示す「ディスク使用容量」とを項目として有する。また、図１２に示す移動対象情報１３１は、各仮想マシン３が動作するために使用するメモリの使用容量を示す「メモリ使用容量」と、移動元の物理マシン２の名称を示す「移動元物理マシン名」とを項目として有する。さらに、図１５に示す移動対象情報１３１は、移動先の物理マシン２の名称を示す「移動先物理マシン名」と、時間情報１３１ａを示す「時間情報」とを項目として有する。
【００７２】
具体的に、図１５に示す移動対象情報１３１において、「情報ＩＤ」が「１」である情報には、「仮想マシン名」として「仮想マシンＡ」が設定され、「ディスク使用容量」として「１（ＧＢ）」が設定され、「メモリ使用容量」として「２（ＧＢ）」が設定されている。また、図１５に示す移動対象情報１３１において、「情報ＩＤ」が「１」である情報には、「移動元物理マシン名」として「Ａ」が設定され、「移動先物理マシン名」として「Ｅ」が設定され、「時間情報」として「２」が設定されている。図１５に含まれる他の情報については説明を省略する。
【００７３】
図７に戻り、情報管理部１１４は、Ｓ１０３の処理で作成した移動対象情報１３１に情報が含まれる仮想マシン３から、第１依存仮想マシンを特定する。第１依存仮想マシンは、複数の仮想マシン３に含まれる他の仮想マシン３が移動先の物理マシン２に移動するために、先に移動する必要がある仮想マシン３である。そして、情報管理部１１４は、特定した第１依存仮想マシンの情報を含む依存仮想マシン情報１３８を作成する（Ｓ１０４）。その後、情報管理部１１４は、例えば、作成した依存仮想マシン情報１３８を情報格納領域１３０に記憶する。以下、依存仮想マシン情報１３８の具体例について説明を行う。
【００７４】
[依存仮想マシン情報の具体例]
初めに、依存仮想マシン情報１３８を作成する際に情報管理部１１４が作成する依存グラフについて説明を行う。依存グラフは、各依存仮想マシンと、各依存仮想マシンの移動状態によって移動先の物理マシン２に移動可能であるか否かが変化する仮想マシン３（以下、依存仮想マシンに依存する仮想マシン３とも呼ぶ）との関係を示すグラフである。
【００７５】
具体的に、依存グラフを作成する場合、情報管理部１１４は、情報処理システム１０を構成する物理マシン２毎の依存グラフである部分依存グラフを作成する。以下、部分依存グラフの具体例について説明を行う。なお、以下、仮想マシン３Ａ、３Ｂ、３Ｃ、３Ｄ、３Ｅ及び３Ｆを、それぞれＶＭ−Ａ、ＶＭ−Ｂ、ＶＭ−Ｃ、ＶＭ−Ｄ、ＶＭ−Ｅ及びＶＭ−Ｆとも表記する。また、以下、物理マシン２Ａ、２Ｂ、２Ｃ、２Ｄ、２Ｅ及び２Ｆの部分依存グラフを、それぞれ部分依存グラフＡ、Ｂ、Ｃ、Ｄ、Ｅ及びＦとも表記する。
【００７６】
図１６は、部分依存グラフを具体例である。図１６に示す部分依存グラフは、各仮想マシン３を、図２に示すように移動する際における依存関係を示す部分依存グラフである。
【００７７】
具体的に、図２に示す例において、物理マシン２Ａには、仮想マシン３Ａ及び仮想マシン３Ｂが配備されている。そして、仮想マシン３Ａ及び仮想マシン３Ｂの移動先の物理マシン２である物理マシン２Ｅのディスクの空き容量は「１（ＧＢ）」であり、メモリの空き容量は「２（ＧＢ）」である。また、仮想マシン３Ａのディスクの使用容量は「１（ＧＢ）」であり、メモリの使用容量は「２（ＧＢ）」であり、仮想マシン３Ｂのディスクの使用容量は「１（ＧＢ）」であり、メモリの使用容量は「１（ＧＢ）」である。そのため、図２に示す例において、仮想マシン３Ａ及び仮想マシン３Ｂのうちの１台の仮想マシン３のみが物理マシン２Ｅに移動可能である。そして、仮想マシン３Ａ及び仮想マシン３Ｂの両方を物理マシン２Ｅに移動するためには、物理マシン２Ｅに配備されている仮想マシン３Ｅが、移動先の物理マシン２である物理マシン２Ｄに先に移動する必要がある。すなわち、この場合、仮想マシン３Ａ及び仮想マシン３Ｂのうちの１台は、仮想マシン３Ｅに依存していることになる。
【００７８】
そのため、情報管理部１１４は、図１６の部分依存グラフＥに示すように、例えば、各物理マシン２に配備されている仮想マシン３を示す上段部分に、ＶＭ−Ｅを設定する。また、情報管理部１１４は、各仮想マシン３の移動が行われた後に各物理マシン２に配備される仮想マシン３を示す下段部分に、ＶＭ−Ａ及びＶＭ−Ｂを設定する。そして、情報管理部１１４は、例えば、ＶＭ−Ａ及びＶＭ−Ｂのうちの１台の仮想マシン３であるＶＭ−Ｂが、ＶＭ−Ｅに対して依存していることを示す矢印（ＶＭ−ＥからＶＭ−Ｂに延びる矢印）を設定する。なお、ＶＭ−Ｅに対する依存関係は、ＶＭ−Ａ及びＶＭ−Ｂのうちの１台の仮想マシン３のみが有する。そのため、図１６に示す例において、情報管理部１１４は、ＶＭ−ＥからＶＭ−Ａに延びる矢印を設定しない。
【００７９】
また、図３に示す例において、物理マシン２Ｅには、仮想マシン３Ｅが配備されている。そして、仮想マシン３Ｅの移動先の物理マシン２である物理マシン２Ｄのディスクの空き容量は「３（ＧＢ）」であり、メモリの空き容量は「３（ＧＢ）」である。また、仮想マシン３Ｅのディスクの使用容量は「１（ＧＢ）」であり、メモリの使用容量は「１（ＧＢ）」である。したがって、図２に示す例において、仮想マシン３Ｅは、他の仮想マシン３の移動を待つことなく物理マシン２に対して移動可能な状態である。すなわち、仮想マシン３Ｅは、この場合、他の仮想マシン３に対して依存関係を有していない状態である。
【００８０】
そのため、情報管理部１１４は、図１６の部分依存グラフＤに示すように、例えば、上段にＶＭ−Ｄを設定し、下段にＶＭ−Ｅを設定する。そして、情報管理部１１４は、ＶＭ−ＤからＶＭ−Ｅに延びる矢印を設定しない。図１６に示す他の部分依存フラグについては説明を省略する。以下、図１６で説明した部分依存グラフを用いて依存グラフを作成する際の具体例について説明を行う。
【００８１】
図１７は、依存グラフの具体例である。情報管理部１１４は、図１７に示すように、図１６で説明した部分依存グラフのいずれかに含まれる矢印をまとめることにより、依存グラフを作成する。すなわち、情報管理部１１４は、図１７に示すように、各仮想マシン３をそれぞれ１つのみ設定し、図１６で説明した部分依存グラフのいずれかに含まれる矢印それぞれを設定することにより、依存グラフを作成する。なお、以下、依存グラフに含まれる仮想マシン３のうち、矢印で結ばれた複数の仮想マシン３を連結成分とも呼ぶ。
【００８２】
具体的に、図１７に示す依存グラフにおいて、ＶＭ−Ｄは、ＶＭ−Ａに対して依存しており、ＶＭ−Ｂは、ＶＭ−Ｅに対して依存している。また、図１７に示す依存グラフにおいて、ＶＭ−Ｃは、ＶＭ−Ｆに対して依存しており、ＶＭ−Ｆは、ＶＦ−Ｃに対して依存している。すなわち、図１７に示す依存グラフにおいて、ＶＭ−Ｃ及びＶＭ−Ｆは、それぞれ一方の仮想マシン３が他の仮想マシン３の依存仮想マシンである関係にある（以下、これを依存関係の循環とも呼ぶ）。そのため、ＶＭ−Ｃ及びＶＭ−Ｆは、少なくともいずれか１つの仮想マシン３が、現在配備されている物理マシン２（移動元の物理マシン２）及び移動先の物理マシン２以外の物理マシン２に移動（以下、退避とも呼ぶ）しない限り、それぞれの移動先の物理マシン２に移動することができない状態である。したがって、ＶＭ−Ｃ及びＶＭ−Ｆのうちの少なくとも１つの仮想マシン３は、移動制御処理を正常終了させるために、現在配備されている物理マシン２及び移動先の物理マシン２以外の物理マシン２に退避する必要がある。
【００８３】
なお、以下、図１７で説明した依存グラフに基づいて行われる移動制御処理について説明を行うが、他の依存グラフ（例えば、仮想マシン３Ａが仮想マシン３Ｅに依存する場合の依存グラフ等）に基づく移動制御処理も行うものであってよい。そして、情報処理装置１は、この場合、例えば、それぞれ行われた移動制御処理によって取得した結果（移動先の物理マシン２への仮想マシン３の移動順序）のうち、全ての仮想マシン３の移動に要する総時間が最も短くなる結果を採用するものであってよい。
【００８４】
次に、依存仮想マシン情報１３８の具体例について説明を行う。図１８は、依存仮想マシン情報１３８及び依存仮想マシン群情報１３９の具体例を説明する図である。具体的に、図１８（Ａ）は、依存仮想マシン情報１３８の具体例を説明する図である。また、図１８（Ｂ）は、依存仮想マシン群情報１３９の具体例を説明する図である。
【００８５】
図１８（Ａ）に示す依存仮想マシン情報１３８は、依存仮想マシン情報１３８に含まれる各情報を識別する「情報ＩＤ」と、各仮想マシン３を識別する「仮想マシン名」とを項目として有する。また、図１８（Ａ）に示す依存仮想マシン情報１３８は、各仮想マシン３が依存する依存仮想マシンを識別する「依存仮想マシン名」を項目として有する。
【００８６】
具体的に、図１８（Ａ）に示す依存仮想マシン情報１３８の内容は、図１７で説明した依存グラフの内容に対応している。さらに具体的に、図１８（Ａ）に示す依存仮想マシン情報１３８において、「仮想マシン名」が「仮想マシンＢ」である情報（「情報ＩＤ」が「２」である情報）の「依存仮想マシン名」には、「仮想マシンＥ」が設定されている。また、図１８（Ａ）に示す依存仮想マシン情報１３８において、「仮想マシン名」が「仮想マシンＣ」である情報（「情報ＩＤ」が「３」である情報）の「依存仮想マシン名」には、「仮想マシンＦ」が設定されている。一方、図１８（Ａ）に示す依存仮想マシン情報１３８において、「仮想マシン名」が「仮想マシンＡ」である情報（「情報ＩＤ」が「１」である情報）の「依存仮想マシン名」には、「なし」が設定されている。図１８（Ａ）に含まれる他の情報については説明を省略する。
【００８７】
図７に戻り、情報管理部１１４は、Ｓ１０４の処理で作成した依存仮想マシン情報１３８に情報が含まれる第１依存仮想マシンのうち、各第１依存仮想マシンと、各第１依存仮想マシンを先に移動することにより移動先の物理マシン２への移動が仮想になる仮想マシン３との関係が循環する２以上の仮想マシン３からなる依存仮想マシン群を特定する。そして、情報管理部１１４は、特定した依存仮想マシン群の情報を含む依存仮想マシン群情報１３９を作成する（Ｓ１０５）。その後、情報管理部１１４は、例えば、作成した依存仮想マシン群情報１３９を情報格納領域１３０に記憶する。以下、依存仮想マシン群情報１３９の具体例について説明を行う。
【００８８】
[依存仮想マシン群情報の具体例]
図１８（Ｂ）に示す依存仮想マシン群情報１３９は、依存仮想マシン群情報１３９に含まれる各情報を識別する「情報ＩＤ」と、各依存仮想マシン群に含まれる依存仮想マシンを識別する「依存仮想マシン名」とを項目として有する。
【００８９】
図１７で説明した依存グラフ及び図１８（Ａ）で説明した依存仮想マシン情報１３８において、依存関係が循環している依存仮想マシンは、仮想マシン３Ｃ及び仮想マシン３Ｆである。そのため、情報管理部１１４は、仮想マシン３Ｃ及び仮想マシン３Ｆが依存仮想マシン群を形成する依存仮想マシンとして特定する。したがって、情報管理部１１４は、図１８（Ｂ）の依存仮想マシン群情報１３９に示すように、「情報ＩＤ」が「１」である情報の「依存仮想マシン名」に、「仮想マシンＣ、仮想マシンＦ」を設定する。
【００９０】
これにより、情報管理部１１４は、移動制御処理を終了するために、移動先の物理マシン２以外の物理マシン２に一時的に退避しなければならない依存仮想マシンを含む依存仮想マシン群の管理を行うことが可能になる。
【００９１】
図７に戻り、優先度決定部１１３は、Ｓ１０３の処理で作成した移動対象情報１３１に情報が含まれる仮想マシン３のそれぞれの優先度を含む優先度情報１３３を作成する（Ｓ１０６）。そして、優先度決定部１１３は、例えば、作成した優先度情報１３３を情報格納領域１３０に記憶する。以下、Ｓ１０６の処理の詳細について説明を行う。
【００９２】
[Ｓ１０６の処理の詳細]
優先度決定部１１３は、図１３に示すように、複数の仮想マシン３に、第１依存仮想マシンが存在するか否かを判定する（Ｓ７１）。具体的に、優先度決定部１１３は、例えば、情報格納領域１３０に記憶された依存仮想マシン情報１３８を参照し、第１依存仮想マシンが存在するか否かの判定を行う。
【００９３】
そして、第１依存仮想マシンが存在すると判定した場合（Ｓ７１のＹＥＳ）、優先度決定部１１３は、第１依存仮想マシン以外の仮想マシン３のそれぞれに対応する時間情報１３１ａを、第１依存仮想マシン以外の仮想マシン３のそれぞれの優先度として決定する（Ｓ７３）。一方、第１依存仮想マシンが存在しないと判定した場合（Ｓ７１のＮＯ）、優先度決定部１１３は、各仮想マシン３のそれぞれに対応する時間情報１３１ａを、各仮想マシン３のそれぞれの優先度として決定し、Ｓ１０６の処理を終了する（Ｓ７２）。
【００９４】
具体的に、図１８（Ａ）で説明した依存仮想マシン情報１３８において、「依存仮想マシン名」に設定された情報は、「仮想マシンＡ」、「仮想マシンＣ」、「仮想マシンＥ」及び「仮想マシンＦ」である。そのため、優先度決定部１１３は、第１依存仮想マシンとして、仮想マシン３Ａ、３Ｃ、３Ｅ及び３Ｆを特定する（Ｓ７１のＹＥＳ）。そして、優先度決定部１１３は、第１依存仮想マシン以外の仮想マシン３として、仮想マシン３Ｂ及び３Ｄを特定する。
【００９５】
その後、優先度決定部１１３は、図１５で説明した移動対象情報１３１を参照し、「仮想マシン名」が「仮想マシンＢ」及び「仮想マシンＤ」である情報の「時間情報」に設定された情報である「１」をそれぞれ特定する。そして、優先度決定部１１３は、仮想マシン３Ｂ及び仮想マシン３Ｄの優先度をそれぞれ「１」に決定する（Ｓ７３）。
【００９６】
Ｓ７３の処理の後、優先度決定部１１３は、依存仮想マシン群が存在するか否かを判定する（Ｓ７４）。具体的に、優先度決定部１１３は、例えば、情報格納領域１３０に記憶された依存仮想マシン群情報１３９を参照し、依存仮想マシン群が存在するか否かの判定を行う。
【００９７】
そして、依存仮想マシン群が存在すると判定した場合（Ｓ７４のＹＥＳ）、優先度決定部１１３は、各依存仮想マシン群に含まれる仮想マシン３に対応する時間情報１３１ａのうちの最も小さい値と、その最も小さい値に対応する仮想マシン３が依存する第１依存仮想マシンに対応する時間情報１３１ａとを加算した値を、依存仮想マシン群毎に算出する。さらに、優先度決定部１１３は、算出した値のそれぞれを、時間情報１３１ａのうちの最も小さい値に対応する仮想マシン３それぞれが依存する第１依存仮想マシンの優先度として決定する（Ｓ７５）。
【００９８】
具体的に、図１８（Ｂ）で説明した依存仮想マシン群情報１３９において、「依存仮想マシン名」に設定された情報は、「仮想マシンＣ」及び「仮想マシンＦ」である（Ｓ７４のＹＥＳ）。そして、優先度決定部１１３は、図１５で説明した移動対象情報１３１を参照し、「仮想マシン名」が「仮想マシンＣ」及び「仮想マシンＦ」である情報の「時間情報」に設定された情報である「２」をそれぞれ特定する（Ｓ７５）。
【００９９】
そのため、優先度決定部１１３は、依存仮想マシン群に含まれる仮想マシン３に対応する時間情報１３１ａのうちの最も小さい値として、例えば、「仮想マシン名」が「仮想マシンＣ」である情報の「時間情報」に設定された情報である「２」を特定する。また、優先度決定部１１３は、時間情報１３１ａのうちの最も小さい値に対応する仮想マシン３が依存する第１依存仮想マシンに対応する時間情報１３１ａとして、「仮想マシン名」が「仮想マシンＦ」である情報の「時間情報」に設定された情報である「２」を特定する。そして、優先度決定部１１３は、それぞれ特定した値を加算した値である「４」を、例えば、時間情報１３１ａのうちの最も小さい値に対応する仮想マシン３が依存する第１依存仮想マシンである仮想マシン３Ｆの優先度として決定する（Ｓ７５）。
【０１００】
すなわち、優先度決定部１１３は、Ｓ７５の処理において、依存仮想マシン群に含まれる仮想マシン３のうち、時間情報が最も小さい仮想マシン３を、移動先の物理マシン２以外の物理マシン２に退避させる仮想マシン３として決定する。そして、優先度決定部１１３は、依存仮想マシン群に含まれる仮想マシン３のうち、時間情報が最も小さい仮想マシン３を退避させることを前提として優先度の決定を行う。これにより、優先度決定部１１３は、仮想マシン３の退避に伴う時間が短くなるように、優先度の決定を行うことが可能になる。
【０１０１】
なお、優先度決定部１１３は、Ｓ７３の処理において依存仮想マシン群に含まれる各仮想マシン３についての優先度の決定を行わないため、Ｓ７５の処理において依存仮想マシン群に含まれる仮想マシン３についての優先度の決定を行う。これにより、優先度決定部１１３は、後述するＳ８２の処理において、依存仮想マシン群に含まれる他の仮想マシン３（Ｓ７５の処理において優先度の決定が行われていない仮想マシン３）についても、優先度の決定を行うことが可能になる。
【０１０２】
その後、優先度決定部１１３は、図１４に示すように、複数の仮想マシン３に第２依存仮想マシンが存在するか否かについての判定を行う(Ｓ８１）。第２依存仮想マシンは、優先度がまだ決定していない仮想マシン３のそれぞれを移動先の物理マシン２に移動するために、先に移動する必要がある仮想マシン３である。
【０１０３】
そして、第２依存仮想マシンが存在すると判定した場合（Ｓ８１のＹＥＳ）、優先度決定部１１３は、優先度が決定していない仮想マシン３のうち、第２依存仮想マシン以外の仮想マシン３の時間情報１３１ａを特定する。また、優先度決定部１１３は、この場合、優先度が決定していない仮想マシンのうち、第２依存仮想マシン以外の仮想マシン３が先に移動することにより移動先の仮想マシン３への移動が可能になる仮想マシン３のそれぞれの優先度を特定する。そして、優先度決定部１１３は、それぞれ特定した値を加算した値を、優先度が決定していない仮想マシン３のうち、第２依存仮想マシン以外の仮想マシン３のそれぞれの優先度として決定する（Ｓ８２）。その後、優先度決定部１１３は、Ｓ８１以降の処理を再度行う。
【０１０４】
一方、第２依存仮想マシンが存在しないと判定した場合（Ｓ８１のＮＯ）、優先度決定部１１３は、優先度が決定していない仮想マシン３のそれぞれに対応する時間情報１３１ａを特定する。また、優先度決定部１１３は、この場合、優先度が決定していない仮想マシン３が移動することにより移動先の仮想マシン３への移動が可能になる仮想マシン３のそれぞれの優先度を特定する。そして、優先度決定部１１３は、それぞれ特定した値を加算した値を、優先度が決定していない仮想マシン３のそれぞれの優先度として決定する（Ｓ８３）。
【０１０５】
具体的に、図１８（Ａ）で説明した依存仮想マシン情報１３８において、Ｓ７１からＳ７５までの処理によって優先度が決定していない仮想マシン３は、「仮想マシン名」に「仮想マシンＡ」、「仮想マシンＣ」及び「仮想マシンＥ」が設定された仮想マシン３である。そして、「仮想マシン名」が「仮想マシンＡ」及び「仮想マシンＥ」である情報の「依存仮想マシン名」には「なし」が設定されており、「仮想マシン名」が「仮想マシンＣ」である情報の「依存仮想マシン名」には「仮想マシンＦ」が設定されている。
【０１０６】
そのため、優先度決定部１１３は、第２依存仮想マシンとして仮想マシン３Ｃを特定する（Ｓ８１のＹＥＳ）。また、優先度決定部１１３は、優先度が決定していない仮想マシン３のうちの第２依存仮想マシン以外の仮想マシン３として、「仮想マシン名」が「仮想マシンＡ」及び「仮想マシンＥ」である仮想マシン３を特定する。そして、優先度決定部１１３は、図１５で説明した移動対象情報１３１を参照し、「仮想マシン名」が「仮想マシンＡ」及び「仮想マシンＥ」である情報の「時間情報」に設定された情報である「２」及び「１」をそれぞれ特定する。
【０１０７】
さらに、優先度決定部１１３は、図１８（Ａ）で説明した依存仮想マシン情報１３８を参照し、「仮想マシン名」が「仮想マシンＡ」及び「仮想マシンＥ」である仮想マシン３が先に移動することにより移動先の仮想マシン３への移動が可能になる仮想マシンとして、「仮想マシン名」が「仮想マシンＤ」及び「仮想マシンＢ」である仮想マシン３をそれぞれ特定する。そして、優先度決定部１１３は、図１５で説明した移動対象情報１３１を参照し、「仮想マシン名」が「仮想マシンＤ」及び「仮想マシンＢ」である情報の「時間情報」に設定された情報である「１」をそれぞれ特定する。
【０１０８】
そのため、優先度決定部１１３は、仮想マシン３Ａの優先度として、仮想マシン３Ａの時間情報１３１ａである「２」と、仮想マシンＤの優先度である「１」とを加算した値である「３」を特定する。また、優先度決定部１１３は、仮想マシン３Ｅの優先度として、仮想マシン３Ｅの時間情報１３１ａである「１」と、仮想マシンＢの優先度である「１」とを加算した値である「２」を特定する（Ｓ８２）。
【０１０９】
その後、優先度決定部１１３は、Ｓ８１以降の処理を再度行い、仮想マシン３Ｆの優先度として「６」を特定し、Ｓ１０６の処理を終了する（Ｓ８１のＮＯ、Ｓ８３）。以下、優先度情報１３３の具体例について説明を行う。
【０１１０】
[優先度情報の具体例]
図１９は、優先度情報１３３の具体例を説明する図である。図１９に示す優先度情報１３３は、優先度情報１３３に含まれる各情報を識別する「情報ＩＤ」と、各仮想マシン３を識別する「仮想マシン名」と、各仮想マシン３の優先度を示す「優先度」とを項目として有する。
【０１１１】
具体的に、図１９に示す優先度情報１３３における「情報ＩＤ」が「１」である情報には、「仮想マシン名」として「仮想マシンＡ」が設定され、「優先度」として「３」が設定されている。また、図１９に示す優先度情報１３３における「情報ＩＤ」が「２」である情報には、「仮想マシン名」として「仮想マシンＢ」が設定され、「優先度」として「１」が設定されている。図１９に含まれる他の情報については説明を省略する。
【０１１２】
[移動制御処理の詳細]
次に、第１の実施の形態における移動制御処理の詳細について説明を行う。図８から図１２は、第１の実施の形態における移動制御処理の詳細を説明するフローチャートである。
【０１１３】
情報取得部１１２は、図８に示すように、仮想マシン３の移動タイミングまで待機する（Ｓ２１のＮＯ）。仮想マシン３の移動タイミングは、例えば、配置決定処理が行われた後であってよい。そして、仮想マシン３の移動タイミングになった場合（Ｓ２１のＹＥＳ）、情報取得部１１２は、情報格納領域１３０に記憶された移動対象情報１３１を取得する（Ｓ２２）。また、情報取得部１１２は、複数の物理マシン２及び複数の仮想マシン３のそれぞれの状態を示す第１状態情報１３２ａを取得する（Ｓ１３）。以下、第１状態情報１３２ａの具体例について説明を行う。なお、以下、各物理マシン２に関する第１状態情報１３２ａを物理マシン状態情報１４１ａとも呼び、各仮想マシン３に関する第１状態情報１３２ａを仮想マシン状態情報１４２ａとも呼ぶ。
【０１１４】
図２０は、第１状態情報１３２ａの具体例を説明する図である。具体的に、図２０（Ａ）は、物理マシン状態情報１４１ａの具体例を説明する図である。また、図２０（Ｂ）は、仮想マシン状態情報１４２ａの具体例を説明する図である。
【０１１５】
図２０（Ａ）に示す物理マシン状態情報１４１ａは、物理マシン状態情報１４１ａに含まれる各情報を識別する「情報ＩＤ」と、各物理マシン２のディスクの空き容量を示す「ディスク空き容量」とを項目として有する。また、図２０（Ａ）に示す物理マシン状態情報１４１ａは、各物理マシン２のメモリの空き容量を示す「メモリ空き容量」と、各物理マシン２に配備されている仮想マシン３の名称を示す「仮想マシン名」とを項目として有する。
【０１１６】
具体的に、図２０（Ａ）に示す物理マシン状態情報１４１ａにおいて、「情報ＩＤ」が「１」である情報には、「物理マシン名」として「物理マシンＡ」が設定されている。また、図２０（Ａ）に示す物理マシン状態情報１４１ａにおいて、「情報ＩＤ」が「１」である情報には、「ディスク空き容量」として「０（ＧＢ）」が設定され、「メモリ空き容量」として「１（ＧＢ）」が設定され、「仮想マシン名」として「Ａ，Ｂ」が設定されている。図２０（Ａ）に含まれる他の情報については説明を省略する。
【０１１７】
そして、図２０（Ｂ）に示す仮想マシン状態情報１４２ａは、仮想マシン状態情報１４２ａに含まれる各情報を識別する「情報ＩＤ」と、各仮想マシン３が動作するために必要なディスクの使用容量を示す「ディスク使用容量」とを項目として有する。また、図２０（Ｂ）に示す仮想マシン状態情報１４２ａは、各仮想マシン３が動作するために必要なメモリの使用容量を示す「メモリ使用容量」と、各仮想マシン３が配備されている物理マシン２の名称を示す「仮想マシン名」とを項目として有する。
【０１１８】
具体的に、図２０（Ｂ）に示す仮想マシン状態情報１４２ａにおいて、「情報ＩＤ」が「１」である情報には、「仮想マシン名」として「仮想マシンＡ」が設定されている。また、図２０（Ｂ）に示す仮想マシン状態情報１４２ａにおいて、「情報ＩＤ」が「１」である情報には、「ディスク使用容量」として「１（ＧＢ）」が設定され、「メモリ使用容量」として「２（ＧＢ）」が設定され、「物理マシン名」として「Ａ」が設定されている。図２０（Ｂ）に含まれる他の情報については説明を省略する。
【０１１９】
図８に戻り、情報取得部１１２は、Ｓ２２の処理で取得した移動対象情報１３１及びＳ２３で取得した第１状態情報１３２ａに基づき、残余リソース情報１３７を作成する（Ｓ２４）。そして、情報取得部１１２は、Ｓ２４の処理で作成した残余リソース情報１３７を情報格納領域１３０に記憶する。以下、残余リソース情報１３７の具体例について説明を行う。なお、以下、各物理マシン２の物理リソースに関する残余リソース情報１３７を残余物理リソース情報１５１とも呼び、各物理マシン２間のネットワークに関する残余リソース情報１３７を残余ネットワークリソース情報１５２とも呼ぶ。
【０１２０】
図２１、図２２、図２５及び図２７は、残余リソース情報１３７の具体例を説明する図である。また、図２３は、物理マシン２間のネットワーク構成の具体例を説明する図である。具体的に、図２１は、残余物理リソース情報１５１の具体例を説明する図である。また、図２２、図２５及び図２７は、残余ネットワークリソース情報１５２の具体例を説明する図である。
【０１２１】
図２１に示す残余物理リソース情報１５１は、残余物理リソース情報１５１に含まれる各情報を識別する「情報ＩＤ」と、各物理マシン２の名称を示す「物理マシン名」とを項目として有する。また、図１５に示す残余物理リソース情報１５１は、各物理マシン２のディスクの空き容量を示す「ディスク空き容量」と、各物理マシン２のメモリの空き容量を示す「メモリ空き容量」とを項目として有する。
【０１２２】
具体的に、図２１に示す残余物理リソース情報１５１において、「情報ＩＤ」が「１」である情報には、「物理マシン名」として「物理マシンＡ」が設定されている。また、図２１に示す残余物理リソース情報１５１において、「情報ＩＤ」が「１」である情報には、「ディスク空き容量」として「０（ＧＢ）」が設定され、「メモリ空き容量」として「１（ＧＢ）」が設定されている。図２１に含まれる他の情報については説明を省略する。
【０１２３】
なお、以下、図２３に示すように、スイッチ５Ａがスイッチ５Ｂ及びスイッチ５Ｃに接続し、スイッチ５Ｂが物理マシン２Ａ、２Ｂ及び２Ｃに接続し、スイッチ５Ｃが物理マシン２Ｄ、２Ｅ及び２Ｆがスイッチ５Ｃに接続しているものとして説明を行う。また、以下、スイッチ５Ａ、５Ｂ及び５Ｃを、それぞれスイッチＡ、スイッチＢ及びスイッチＣとも表記する。
【０１２４】
続いて、図２２等に示す残余ネットワークリソース情報１５２は、残余ネットワークリソース情報１５２に含まれる各情報を識別する「情報ＩＤ」と、各ネットワークの名称を示す「ネットワーク名」とを項目として有する。また、図２２等に示す残余ネットワークリソース情報１５２は、各ネットワークを用いて現在移動中である仮想マシン３の数を示す「移動数」と、各ネットワークにおいて並行して移動することが可能な仮想マシン３の最大数（以下、移動可能情報とも呼ぶ）を示す「移動可能数」とを項目として有している。
【０１２５】
具体的に、図２２に示す残余ネットワークリソース情報１５２において、「情報ＩＤ」が「１」である情報には、「ネットワーク名」として、物理マシン２Ａからスイッチ５Ｂに向けたネットワークを示す「物理マシンＡ→スイッチＢ」が設定されている。また、図２２に示す残余ネットワークリソース情報１５２において、「情報ＩＤ」が「１」である情報には、「移動数」として「０（台）」が設定され、「移動可能数」として「２（台）」が設定されている。図２２に含まれる他の情報については説明を省略する。
【０１２６】
図９に戻り、仮想マシン群特定部１１５は、移動対象情報１３１に含まれている全ての情報を抽出済であるか否かを判定する（Ｓ３１）。そして、全ての情報が抽出済ではない場合(Ｓ３１のＮＯ)、仮想マシン群特定部１１５は、移動対象情報１３１に含まれる情報を１組抽出する（Ｓ３２）。具体的に、仮想マシン群特定部１１５は、図１５で説明した移動対象情報１３１に含まれる情報から１行分の情報を抽出する。
【０１２７】
そして、仮想マシン群特定部１１５は、Ｓ３２の処理で抽出した情報に対応する仮想マシン３が移動先の物理マシン２に移動可能であるか否かを判定する（Ｓ３３）。そして、移動先の物理マシン２に移動可能である場合（Ｓ３３のＹＥＳ）、情報管理部１１４は、Ｓ３２の処理で抽出した情報を移動候補情報１３４に追加する（Ｓ３４）。
【０１２８】
一方、Ｓ３２の処理で抽出した情報に対応する仮想マシン３が移動先の物理マシン２に移動可能でない場合（Ｓ３３のＮＯ）、情報管理部１１４は、Ｓ３２の処理で抽出した情報を移動未完了情報１３６に追加する（Ｓ３５）。以下、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６の具体例について説明を行う。
【０１２９】
[移動状態情報の具体例（１）]
図２４、図２６、図２８、図２９及び図３０は、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６の具体例を説明する図である。なお、以下、移動候補情報１３４、移動決定情報１３５及び移動未完了情報１３６を総称して移動状態情報とも呼ぶ。
【０１３０】
図２４等に示す移動状態情報は、移動状態情報に含まれる各情報を識別する「情報ＩＤ」と、各仮想マシン３の名称を示す「仮想マシン名」と、移動候補情報１３４に対応する情報が設定される「移動候補」と、移動決定情報１３５に対応する情報が設定される「移動決定」とを項目として有する。また、図２４等に示す移動状態情報は、移動未完了情報１３６に対応する情報が設定される「移動未完了」と、移動先の物理マシン２への移動が完了した仮想マシン３を識別する情報が設定される「移動完了」とを項目として有する。さらに、図２４等に示す移動状態情報は、仮想マシン３が移動中である場合における移動に要する残り時間が設定される「移動残り時間」を項目として有する。
【０１３１】
具体的に、情報管理部１１４は、Ｓ３３の処理において、図１８（Ａ）で説明した依存仮想マシン情報１３８を参照し、「依存仮想マシン名」に「なし」が設定された情報の「仮想マシン名」に設定された情報である「仮想マシンＡ」と「仮想マシンＥ」とを特定する。すなわち、情報管理部１１４は、他の仮想マシン３に依存していない仮想マシン３として、仮想マシン３Ａ及び仮想マシン３Ｅを特定する。
【０１３２】
そのため、情報管理部１１４は、例えば、図２４（Ａ）に示すように、「仮想マシン名」が「仮想マシンＡ」及び「仮想マシンＥ」である情報の「移動候補」に「○」を設定する（Ｓ３３のＹＥＳ、Ｓ３４）。そして、情報管理部１１４は、例えば、図２４（Ａ）に示すように、「仮想マシン名」が「仮想マシンＢ」、「仮想マシンＣ」、「仮想マシンＤ」及び「仮想マシンＦ」である情報の「移動未完了」に「○」を設定する（Ｓ３３のＮＯ、Ｓ３５）。
【０１３３】
図９に戻り、移動対象情報１３１に含まれている全ての情報を抽出済であると判定した場合（Ｓ３１のＹＥＳ）、仮想マシン群特定部１１５は、図１０に示すように、移動候補情報１３４に情報が含まれていない連結成分が存在するか否かを判定する（Ｓ４１）。そして、移動候補情報１３４に情報が含まれていない連結成分が存在すると判定した場合（Ｓ４１のＹＥＳ）、仮想マシン群特定部１１５は、移動未完了情報１３６に含まれる情報から、Ｓ４１の処理で存在した連結成分のそれぞれに対応する情報を特定する（Ｓ４２）。さらに、仮想マシン群特定部１１５は、Ｓ４１の処理で存在した連結成分毎に、Ｓ４２の処理で情報を特定した仮想マシン３のうち、優先度が最も高い仮想マシン３を特定する（Ｓ４３）。その後、仮想マシン群特定部１１５は、Ｓ４３の処理で特定した情報を移動候補情報１３４に追加する（Ｓ４４）。
【０１３４】
具体的に、図１７で説明した依存グラフには、仮想マシン３Ａ及び仮想マシン３Ｄを含む連結成分（以下、連結成分Ａとも呼ぶ）と、仮想マシン３Ｃ及び仮想マシン３Ｆを含む連結成分（以下、連結成分Ｂとも呼ぶ）と、仮想マシン３Ｂ及び仮想マシン３Ｅを含む連結成分（以下、連結成分Ｃとも呼ぶ）とが存在する。そして、仮想マシン３Ａまたは仮想マシン３Ｅ（Ｓ３４の処理において移動候補情報１３４に情報が追加された仮想マシン３）が含まれない連結成分は、連結成分Ｂである。
【０１３５】
そのため、仮想マシン群特定部１１５は、Ｓ４３の処理において、図１９で説明した優先度情報１３３を参照し、仮想マシン３Ｃ及び仮想マシン３Ｆのうち、優先度が高い仮想マシン３である仮想マシン３Ｃを特定する（Ｓ４３）。そして、仮想マシン群特定部１１５は、図２４（Ｂ）に示すように、「仮想マシン名」が「仮想マシンＣ」である情報の「移動未完了」に設定された「○」を「移動候補」に移動する（Ｓ４４）。すなわち、仮想マシン群特定部１１５は、Ｓ３１からＳ４４の処理を行うことにより、移動先の物理マシン２または退避先の物理マシン２に移動可能な仮想マシン３（第１仮想マシン群）を特定することが可能になる。
【０１３６】
そして、Ｓ４４の処理の後、または、移動候補情報１３４に情報が含まれていない連結成分が存在しないと判定した場合（Ｓ４１のＮＯ）、仮想マシン群特定部１１５は、図１１に示すように、移動候補情報１３４に含まれている全ての情報を抽出済であるか否かを判定する（Ｓ５１）。そして、全ての情報が抽出済でないと判定した場合（Ｓ５１のＹＥＳ）、仮想マシン群特定部１１５は、移動候補情報１３４に含まれる情報のうち、優先度が最も高い情報を１組抽出する（Ｓ５２）。
【０１３７】
具体的に、図２４（Ｂ）で説明した移動状態情報において、「移動候補」に「○」が設定されている情報の「仮想マシン名」に設定された情報は、「仮想マシンＡ」、「仮想マシンＣ」及び「仮想マシンＥ」である。そして、図１９で説明した優先度情報１３３において、「仮想マシン名」に「仮想マシンＡ」、「仮想マシンＣ」及び「仮想マシンＥ」が設定された情報の「優先度」には、それぞれ「３」、「６」及び「２」が設定されている。そのため、仮想マシン群特定部１１５は、この場合、移動候補情報１３４から、「仮想マシン名」が「仮想マシンＣ」である情報を抽出する（Ｓ５２）。
【０１３８】
続いて、仮想マシン群特定部１１５は、Ｓ５２の処理において抽出した情報に対応する仮想マシン３を移動するために使用するネットワークが、使用可能であるか否かを判定する（Ｓ５３）。そして、ネットワークが使用可能でないと判定した場合（Ｓ５３のＮＯ）、情報管理部１１４は、Ｓ５１以降の処理を再度行う。一方、ネットワークが使用可能であると判定した場合（Ｓ５３のＹＥＳ）、情報管理部１１４は、Ｓ５４以降の処理を行う。
【０１３９】
具体的に、仮想マシン３Ｃの退避先の物理マシン２が物理マシン２Ｄである場合、仮想マシン３Ｃは、現在動作している物理マシン２Ｂから物理マシン２Ｄに退避する必要がある。すなわち、仮想マシン３Ｃは、この場合、図２３に示すように、物理マシン２Ｂからスイッチ５Ｂに向けたネットワーク、スイッチ５Ｂからスイッチ５Ａに向けたネットワーク、スイッチ５Ａからスイッチ５Ｃに向けたネットワーク及びスイッチ５Ｃから物理マシン２Ｄに向けたネットワークをそれぞれ経由する必要がある。
【０１４０】
そのため、情報管理部１１４は、図２２で説明した残余ネットワークリソース情報１５２を参照し、「ネットワーク名」が「物理マシンＢ→スイッチＢ」、「スイッチＢ→スイッチＡ」、「スイッチＡ→スイッチＣ」、「スイッチＣ→物理マシンＤ」である情報の「移動数」に設定された値が、「移動可能数」に設定された値未満であることを確認する。そして、情報管理部１１４は、この場合、仮想マシン３Ｃを移動するために使用する必要があるネットワークが使用可能であると判定する（Ｓ５３のＹＥＳ）。
【０１４１】
その後、ネットワークが使用可能であると判定した場合（Ｓ５３のＹＥＳ）、情報管理部１１４は、Ｓ５２の処理で抽出した情報を移動決定情報１３５に追加する（Ｓ５４）。そして、情報管理部１１４は、この場合、Ｓ５２の処理で抽出した情報に基づき、残余リソース情報１３７を更新する（Ｓ５５）。さらに、移動指示部１１６は、この場合、Ｓ５２の処理で抽出した情報に対応する仮想マシン３の移動の指示を行う（Ｓ５６）。
【０１４２】
そして、情報管理部１１４及び移動指示部１１６は、移動候補情報１３４に含まれる全ての情報の抽出が完了するまで、Ｓ５２からＳ５６の処理を繰り返し行う。その後、移動候補情報１３４に含まれる全ての情報の抽出が完了した場合（Ｓ５１のＹＥＳ）、情報管理部１１４は、Ｓ６１以降の処理を行う。
【０１４３】
具体的に、図２４（Ｂ）で説明した移動状態情報において、「移動候補」に「○」が設定されている情報の「仮想マシン名」に設定された情報は、「仮想マシンＡ」、「仮想マシンＣ」及び「仮想マシンＥ」である。そのため、情報管理部１１４は、仮想マシン３Ａ、仮想マシン３Ｃ及び仮想マシン３Ｅについて、Ｓ５２からＳ５６の処理をそれぞれ行う。以下、仮想マシン３Ａ、仮想マシン３Ｃ及び仮想マシン３ＥについてのＳ５２からＳ５６の処理が行われた場合における残余ネットワークリソース情報１５２の具体例について説明を行う。
【０１４４】
[残余ネットワークリソース情報の具体例]
図２５は、仮想マシン３Ａ、仮想マシン３Ｃ及び仮想マシン３ＥについてのＳ５２からＳ５６の処理が行われた場合における残余ネットワークリソース情報１５２の具体例を説明する図である。
【０１４５】
情報管理部１１４は、図２５に示すように、仮想マシン３ＣについてのＳ５２からＳ５６の処理が行われた場合、「ネットワーク名」が「物理マシンＢ→スイッチＢ」、「スイッチＢ→スイッチＡ」、「スイッチＡ→スイッチＣ」及び「スイッチＣ→物理マシンＤ」である情報の「移動数」に設定された値に「１」を加算する。また、仮想マシン３ＡについてのＳ５２からＳ５６の処理が行われた場合、「物理マシンＡ→スイッチＢ」、「スイッチＢ→スイッチＡ」、「スイッチＡ→スイッチＣ」及び「スイッチＣ→物理マシンＥ」である情報の「移動数」に設定された値に「１」を加算する。さらに、仮想マシン３ＥについてのＳ５２からＳ５６の処理が行われた場合、「物理マシンＥ→スイッチＣ」及び「スイッチＣ→物理マシンＤ」である情報の「移動数」に設定された値に「１」を加算する。
【０１４６】
[移動状態情報の具体例（２）]
次に、仮想マシン３Ａ、仮想マシン３Ｃ及び仮想マシン３ＥについてＳ５２からＳ５６の処理が行われた場合における移動状態情報の具体例について説明を行う。図２６（Ａ）は、仮想マシン３Ａ、仮想マシン３Ｃ及び仮想マシン３ＥについてＳ５２からＳ５６の処理が行われた場合における移動状態情報の具体例を説明する図である。
【０１４７】
図２６（Ａ）に示す移動状態情報は、図２４（Ｂ）で説明した移動状態情報と比較した場合、「仮想マシン名」が「仮想マシンＡ」、「仮想マシンＣ」及び「仮想マシンＥ」である情報の「移動候補」に設定されていた「○」が、「移動決定」に移動している。すなわち、図２６（Ａ）に示す移動状態情報は、移動先の物理マシン２または退避先の物理マシン２に対して移動可能であった仮想マシン３Ａ、仮想マシン３Ｃ及び仮想マシン３Ｅの移動が実際に行われていることを示している。また、図２６（Ａ）に示す移動状態情報において、各仮想マシン３の情報における「移動決定」に「○」が設定されたことに伴い、各仮想マシン３の情報における「移動残り時間」には、仮想マシン３の移動に要する残り時間（時間情報１３１ａ）である「２」、「２」及び「１」がそれぞれ設定されている。
【０１４８】
図１１に戻り、移動候補情報１３４に含まれる全ての情報の抽出が完了した場合（Ｓ５１のＹＥＳ）、情報管理部１１４は、図１２に示すように、移動中の仮想マシン３のうちのいずれかの仮想マシン３の移動の完了を検出するまで待機する（Ｓ６１のＮＯ）。
【０１４９】
そして、いずれかの仮想マシン３の移動の完了を検出した場合（Ｓ６１のＹＥＳ）、情報管理部１１４は、Ｓ６１の処理で検出した情報に基づき、残余リソース情報１３７を更新する（Ｓ６２）。すなわち、物理マシン２の物理リソース及び物理マシン２間のネットワークリソースは、仮想マシン３の移動の完了に伴って解放される。そのため、情報管理部１１４は、Ｓ６２の処理において、残余物理リソース情報１５１及び残余ネットワークリソース情報１５２のうち、Ｓ６１の処理で情報を検出した仮想マシン３が使用していた物理リソース及びネットワークについての情報を更新する。
【０１５０】
その後、情報管理部１１４は、Ｓ６１の処理で検出した仮想マシン３に依存する依存仮想マシンが存在するか否かを判定する（Ｓ６３）。すなわち、情報管理部１１４は、仮想マシン３の移動の完了に伴って、新たに移動可能となった仮想マシン３が発生しているか否かについての判定を行う。
【０１５１】
そして、Ｓ６１の処理で検出した仮想マシン３に依存する依存仮想マシンが存在すると判定した場合（Ｓ６３のＹＥＳ）、情報管理部１１４は、存在すると判定した仮想マシン３に対応する情報を移動候補情報１３４に追加する（Ｓ６４）。一方、Ｓ６１の処理で検出した仮想マシン３に依存する依存仮想マシンが存在しないと判定した場合（Ｓ６３のＮＯ）、情報管理部１１４は、Ｓ６３の処理を行わない。以下、仮想マシン３Ｅの移動が完了した場合における移動状態情報の具体例について説明を行う。
【０１５２】
[移動状態情報の具体例（３）]
図２６（Ｂ）は、仮想マシン３Ｅの移動が完了した場合における移動状態情報の具体例について説明を行う。
【０１５３】
図２６（Ａ）で説明した移動状態情報において、「仮想マシン名」が「仮想マシンＡ」及び「仮想マシンＣ」である情報の「移動残り時間」が「２」であるのに対し、「仮想マシン名」が「仮想マシンＥ」である情報の「移動残り時間」は「１」である。そのため、仮想マシン３Ａ、仮想マシン３Ｃ及び仮想マシン３Ｅのうち、仮想マシン３Ｅの移動が最初に完了する。
【０１５４】
したがって、情報管理部１１４は、この場合、図２６（Ｂ）に示すように、「仮想マシン名」が「仮想マシンＥ」である情報の「移動決定」に設定されている「○」を「移動完了」に移動し、「移動残り時間」をブランクにする。また、情報管理部１１４は、図２６（Ｂ）に示すように、「仮想マシン名」が「仮想マシンＡ」及び「仮想マシンＣ」である情報の「移動残り時間」に設定された値を「２」から「１」に更新する。
【０１５５】
ここで、図１８（Ａ）で説明した依存仮想マシン情報１３８において、「依存仮想マシン名」に「仮想マシンＥ」が設定された情報の「仮想マシン名」には、「仮想マシンＢ」が設定されている。すなわち、仮想マシン３Ｂは、仮想マシン３Ｅの移動の完了に伴って移動先の物理マシン２に移動可能になる仮想マシン３である（Ｓ６３のＹＥＳ）。そのため、情報管理部１１４は、図２６（Ｂ）に示すように、「仮想マシン名」が「仮想マシンＢ」である情報の「移動未完了」に設定されている「○」を「移動候補」に移動する（Ｓ６４）。
【０１５６】
図１２に戻り、情報管理部１１４は、移動候補情報１３４に情報が存在するか否かを判定する（Ｓ６５）。そして、移動候補情報１３４に情報が存在すると判定した場合（Ｓ６５のＮＯ）、情報管理部１１４は、Ｓ５１以降の処理を再度行う。
【０１５７】
また、移動候補情報１３４に情報が存在しないと判定した場合（Ｓ６５のＹＥＳ）、情報管理部１１４は、移動決定情報１３５に情報が存在するか否かを判定する（Ｓ６６）。そして、移動決定情報１３５に情報が存在すると判定した場合（Ｓ６６のＹＥＳ）、情報管理部１１４は、Ｓ６１以降の処理を再度行う。
【０１５８】
一方、移動決定情報１３５に情報が存在しないと判定した場合（Ｓ６６のＹＥＳ）、情報管理部１１４は、移動未完了情報１３６に情報が存在するか否かを判定する（Ｓ６７）。そして、移動未完了情報１３６に情報が存在すると判定した場合（Ｓ６７のＹＥＳ）、移動指示部１１６は、Ｓ５６の処理で移動した仮想マシン３に移動元の物理マシン２への移動を指示し、移動制御処理を終了する（Ｓ６８）。すなわち、移動指示部１１６は、この場合、移動対象情報１３１に基づいて仮想マシン３の移動を行うことができないと判定する。そのため、移動指示部１１６は、Ｓ６８の処理において、各仮想マシン３の配置を初期状態に戻す。
【０１５９】
また、移動未完了情報１３６に情報が存在しないと判定した場合（Ｓ６７のＮＯ）、移動指示部１１６は、Ｓ６８の処理を行わずに移動制御処理を終了する。すなわち、移動指示部１１６は、この場合、移動対象情報１３１に基づいて全ての仮想マシン３の移動が完了したものと判定する。
【０１６０】
具体的に、図２６（Ｂ）で説明した移動状態情報において、「仮想マシン名」が「仮想マシンＢ」である情報の「移動候補」には「○」が設定されている（Ｓ６５のＹＥＳ）。そのため、情報管理部１１４は、Ｓ５１以降の処理を再度行う。以下、Ｓ６５の処理の後にＳ５１以降の処理が行われる場合の具体例について説明を行う。
【０１６１】
[Ｓ６４の処理の後にＳ５１以降の処理が行われる場合の具体例]
情報管理部１１４は、Ｓ５２の処理において仮想マシン３Ｂの情報を抽出した場合、仮想マシン３Ｂを移動先の物理マシン２に移動するために使用する必要があるネットワークが使用可能であるか否かについての判定を行う(Ｓ５３)。
【０１６２】
具体的に、仮想マシン３Ｂが物理マシン２Ａから物理マシン２Ｅに移動する場合、「ネットワーク名」が「物理マシンＡ→スイッチＢ」、「スイッチＢ→スイッチＡ」、「スイッチＡ→スイッチＣ」及び「スイッチＣ→物理マシンＥ」であるネットワークを経由する。
【０１６３】
ここで、図２７に示す残余ネットワークリソース情報１５２において、「ネットワーク名」が「スイッチＢ→スイッチＡ」及び「スイッチＡ→スイッチＣ」である情報の「移動数」には、それぞれ「移動可能数」に設定された値である「２」が設定されている。そのため、情報管理部１１４は、この場合、仮想マシン３Ｂの移動を行うことができないと判定する（Ｓ５３のＮＯ）。したがって、情報管理部１１４は、図２６（Ｂ）に示すように、「仮想マシン名」に「仮想マシンＢ」が設定された情報の「移動候補」に設定された「○」を、「移動決定」に移動しない。
【０１６４】
その後、仮想マシン３Ａ及び仮想マシン３Ｃの移動が完了した場合（Ｓ５１のＹＥＳ、Ｓ６１のＹＥＳ）、情報管理部１１４は、各仮想マシン３の移動の完了に伴って移動可能になる仮想マシン３として、仮想マシン３Ｄ及び仮想マシン３Ｆを特定する（Ｓ６３のＹＥＳ）。
【０１６５】
そのため、情報管理部１１４は、この場合、図２８（Ａ）に示すように、「仮想マシン名」が「仮想マシンＡ」である情報の「移動決定」に設定されている「○」を「移動完了」に移動し、「移動残り時間」をブランクにする。また、情報管理部１１４は、図２８（Ａ）に示すように、「仮想マシン名」が「仮想マシンＣ」である情報の「移動決定」をブランクにする。なお、図２８（Ａ）に示す場合において、仮想マシン３Ｃは、移動先の物理マシン２への移動が完了していない状態である。したがって、情報管理部１１４は、図２８（Ａ）に示すように、「仮想マシン名」が「仮想マシンＣ」である情報の「移動完了」に「○」を設定しない。さらに、情報管理部１１４は、図２８（Ａ）に示すように、「仮想マシン名」が「仮想マシンＤ」及び「仮想マシンＦ」である情報の「移動未完了」に設定されている「○」を「移動候補」に移動する（Ｓ６４）。
【０１６６】
続いて、情報管理部１１４は、仮想マシン３Ｂ、仮想マシン３Ｄ及び仮想マシン３Ｆの移動を並行して行うことが可能であると判定し（Ｓ５３のＹＥＳ）、図２８（Ｂ）に示す移動状態情報のように、各仮想マシン３の情報の「移動候補」に設定されている「○」を「移動決定」に移動する。そして、情報管理部１１４は、この場合、図２８（Ｂ）に示す移動状態情報のように、各仮想マシン３の情報の「移動残り時間」に、それぞれ「１」、「１」及び「２」を設定する（Ｓ５５）。その後、移動指示部１１６は、仮想マシン３Ｂ、仮想マシン３Ｄ及び仮想マシン３Ｆの移動を指示する（Ｓ５６）。
【０１６７】
そして、仮想マシン３Ｂ及び仮想マシン３Ｄの移動が完了した場合（Ｓ６１のＹＥＳ）、情報管理部１１４は、各仮想マシン３の移動の完了に伴って移動可能になる仮想マシン３として、仮想マシン３Ｃを特定する（Ｓ６３のＹＥＳ）。
【０１６８】
そのため、情報管理部１１４は、この場合、図２９（Ａ）に示すように、「仮想マシン名」が「仮想マシンＢ」及び「仮想マシンＤ」である情報の「移動決定」に設定されている「○」を「移動完了」に移動し、「移動残り時間」をブランクにする。また、情報管理部１１４は、図２９（Ａ）に示すように、「仮想マシン名」が「仮想マシンＣ」である情報の「移動未完了」に設定されている「○」を「移動候補」に移動する（Ｓ６４）。
【０１６９】
続いて、情報管理部１１４は、仮想マシン３Ｃの移動を行うことが可能であると判定し（Ｓ５３のＹＥＳ）、図２９（Ｂ）に示す移動状態情報のように、仮想マシン３Ｃの情報の「移動候補」に設定されている「○」を「移動決定」に移動する。そして、情報管理部１１４は、この場合、図２９（Ｂ）に示す移動状態情報のように、仮想マシン３Ｃの情報の「移動残り時間」に「２」を設定する（Ｓ５５）。その後、移動指示部１１６は、仮想マシン３Ｃの移動を指示する（Ｓ５６）。
【０１７０】
そして、仮想マシン３Ｆの移動が完了した場合（Ｓ６１のＹＥＳ）、情報管理部１１４は、各仮想マシン３の移動の完了に伴って移動可能になる仮想マシン３が存在しないと特定する（Ｓ６３のＮＯ）。また、この場合、移動候補情報１３４に情報が設定されていないが、移動決定情報１３５には情報が設定されている状態である（Ｓ６５のＹＥＳ、Ｓ６６のＹＥＳ）。
【０１７１】
そのため、情報管理部１１４は、図３０（Ａ）に示すように、「仮想マシン名」が「仮想マシンＦ」である情報の「移動決定」に設定されている「○」を「移動完了」に移動し、「移動残り時間」をブランクにする。また、情報管理部１１４は、図３０（Ａ）に示すように、「仮想マシン名」が「仮想マシンＣ」である情報の「移動残り時間」に設定されている「２」を「１」に更新する。
【０１７２】
その後、仮想マシン３Ｃの移動が完了した場合（Ｓ６１のＹＥＳ）、情報管理部１１４は、仮想マシン３Ｃの移動の完了に伴って移動可能になる仮想マシン３が存在しないと特定する（Ｓ６３のＮＯ）。また、この場合、移動候補情報１３４及び移動決定情報１３５に情報が設定されていない状態である（Ｓ６５のＹＥＳ、Ｓ６６のＮＯ）。さらに、図３０（Ａ）に示す移動状態情報における「移動未完了」には、情報が設定されていない（Ｓ６７のＮＯ）。そのため、情報処理装置１は、移動制御処理を終了する。すなわち、情報処理装置１は、この場合、移動対象情報１３１に基づいて仮想マシン３の移動が完了したものと判定する。
【０１７３】
このように、本実施の形態における情報処理装置１は、物理マシン２間における仮想マシン３の移動に要する時間を示す時間情報１３１ａに基づき、各仮想マシン３の優先度を決定する。そして、情報処理装置１は、各仮想マシン３の移動元及び移動先の物理マシン２の移動情報１３１と、各物理マシン２及び各仮想マシン３の状態を示す第１状態情報１３２ａとに基づき、移動先の物理マシン２に移動可能な仮想マシン３を含む第１仮想マシン群を特定する。さらに、情報処理装置１は、各仮想マシン３の優先度に基づいて、第１仮想マシン群に含まれる各仮想マシン３に移動先の物理マシン２への移動を指示する。
【０１７４】
その後、情報処理装置１は、移動情報と、いずれかの仮想マシン３の移動が完了した際の各物理マシン２及び各仮想マシン３の状態を示す第２状態情報１３２ｂとに基づき、移動先の物理マシン２に移動可能な仮想マシン３を含む第２仮想マシン群を特定する。そして、情報処理装置１は、各仮想マシン３の優先度に基づいて、第２仮想マシン群に含まれる各仮想マシン３に移動先の物理マシン２への移動を指示する。
【０１７５】
これにより、情報処理装置１は、移動先の物理マシン２に移動可能な仮想マシン３が複数存在する場合に、全ての仮想マシン３の移動に要する時間を短くする効果が最も大きい仮想マシンの移動を行うことが可能になる。そのため、情報処理装置１は、各仮想マシン３の移動に要する時間がそれぞれ異なる場合であっても、全ての仮想マシン３を移動先の物理マシン２に移動するために要する時間を短くする移動順序を決定することが可能になる。
【０１７６】
また、情報処理装置１は、各物理マシン２の物理リソースの空き状態等が変化したことに伴って、移動可能になった新たな仮想マシン３の特定を行うことが可能になる。そのため、情報処理装置１は、移動先の物理マシン２への移動を指示する仮想マシン３の選択肢の更新を適宜行うことが可能になる。したがって、情報処理装置１は、仮想マシン３の最適配置に従った仮想マシン３の再配置を行うための移動順序の模索を行うことが可能になる。
【０１７７】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１７８】
（付記１）
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第１状態情報と、前記複数の物理マシン間における前記仮想マシンそれぞれの移動に要する時間を示す時間情報とを取得し、
前記時間情報に基づき、前記複数の仮想マシンそれぞれの優先度を決定し、
前記移動情報及び前記第１状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示し、
前記第１仮想マシン群に含まれるいずれかの仮想マシンの前記移動先の物理マシンへの移動が完了したことに応じて、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第２状態情報を取得し、
前記移動情報及び前記第２状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する、
処理をコンピュータに実行させることを実行させることを特徴とする移動制御プログラム。
【０１７９】
（付記２）
付記１において、さらに、
前記優先度を決定する処理の前に、前記複数の仮想マシンのそれぞれを前記移動先の物理マシンにそれぞれ移動するために、先に移動する必要がある仮想マシンである第１依存仮想マシンが存在するか否かを判定する、
処理をコンピュータに実行させ、
前記優先度を決定する処理では、
前記第１依存仮想マシンが存在すると判定した場合、前記複数の仮想マシンのうち、前記第１依存仮想マシン以外の仮想マシンそれぞれに対応する前記時間情報を、前記第１依存仮想マシン以外の仮想マシンそれぞれの前記優先度として決定し、前記第１依存仮想マシンが存在しない場合、前記複数の仮想マシンそれぞれに対応する前記時間情報を、前記複数の仮想マシンそれぞれの前記優先度として決定し、
前記複数の仮想マシンの全ての前記優先度が決定していない場合、前記優先度が決定していない仮想マシンそれぞれを前記移動先の物理マシンに移動するために、先に移動する必要がある仮想マシンである第２依存仮想マシンが存在するか否かを判定し、
前記第２依存仮想マシンが存在すると判定した場合、前記優先度が決定していない仮想マシンのうち、前記第２依存仮想マシン以外の仮想マシンそれぞれに対応する前記時間情報と、前記優先度が決定していない仮想マシンのうち、前記第２依存仮想マシン以外の仮想マシンが先に移動することにより前記移動先の仮想マシンへの移動が可能になる仮想マシンそれぞれの前記優先度とを加算した値を、前記優先度が決定していない仮想マシンのうち、前記第２依存仮想マシン以外の仮想マシンそれぞれの前記優先度として決定し、前記第２依存仮想マシンが存在しないと判定した場合、前記優先度が決定していない仮想マシンそれぞれに対応する前記時間情報と、前記優先度が決定していない仮想マシンが移動することにより前記移動先の仮想マシンへの移動が可能になる仮想マシンそれぞれの前記優先度とを加算した値を、前記優先度が決定していない仮想マシンそれぞれの前記優先度として決定し、
前記第２依存仮想マシンが存在するか否かを判定する処理及び前記優先度が決定していない仮想マシンの優先度を決定する処理を、前記複数の仮想マシンの全ての前記優先度が決定するまで繰り返し、
前記第１仮想マシン群に含まれる各仮想マシンに移動を指示する処理及び前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理では、前記優先度が高い仮想マシンの移動順序が先になるように、前記移動先の物理マシンへの移動の指示を行う、
ことを特徴とする移動制御プログラム。
【０１８０】
（付記３）
付記２において、さらに、
前記優先度を決定する処理の前に、前記第１依存仮想マシンのうち、前記第１依存仮想マシンと、前記第１依存仮想マシンを先に移動することにより前記移動先の物理マシンへの移動が可能になる仮想マシンとの関係が循環する２以上の仮想マシンからなる依存仮想マシン群が存在するか否かを判定し、
処理をコンピュータに実行させ、
前記第１依存仮想マシン以外の仮想マシンの優先度を決定する処理では、
前記依存仮想マシン群が存在すると判定した場合、各依存仮想マシン群に含まれる仮想マシンに対応する前記時間情報のうちの最も小さい値と、各依存仮想マシン群に含まれる仮想マシンに対応する前記時間情報のうちの最も小さい値に対応する仮想マシンの前記第１依存仮想マシンに対応する前記時間情報とを加算した値を、前記依存仮想マシン群毎に算出し、
算出した前記値のそれぞれを、前記時間情報のうちの最も小さい値に対応する仮想マシンの前記第１依存仮想マシンそれぞれの前記優先度として決定する、
ことを特徴とする移動制御プログラム。
【０１８１】
（付記４）
付記３において、
前記関係が循環する２以上の仮想マシンは、前記第１依存仮想マシンのうち、前記２以上の仮想マシンに含まれる各仮想マシンが前記２以上の仮想マシンに含まれる他の仮想マシンの前記第１依存仮想マシンであり、前記２以上の仮想マシンに含まれる各仮想マシンの前記第１依存仮想マシンが前記２以上の仮想マシンに含まれる他の仮想マシンである関係を有する２以上の仮想マシンである、
ことを特徴とする移動制御プログラム。
【０１８２】
（付記５）
付記３において、
前記第１仮想マシン群を特定する処理では、
前記複数の仮想マシンのうちの前記移動先の物理マシンに移動可能でない仮想マシンであって、各依存仮想マシン群に含まれる仮想マシンのうちの前記時間情報が最も小さい仮想マシンの前記第１依存仮想マシンを、前記依存仮想マシン群毎に特定し、
特定した前記時間情報が最も小さい前記第１依存仮想マシンのそれぞれを、前記第１仮想マシン群の一部として特定する、
ことを実行させることを特徴とする移動制御プログラム。
【０１８３】
（付記６）
付記１において、
前記第１状態情報及び前記第２状態情報は、前記複数の物理マシンそれぞれの物理リソースの空き容量の情報と、前記複数の仮想マシンそれぞれが動作するために使用する物理リソースの使用量の情報とをそれぞれ含む情報である、
ことを特徴とする移動制御プログラム。
【０１８４】
（付記７）
付記６において、
前記第１仮想マシン群を特定する処理及び前記第２仮想マシン群を特定する処理では、前記複数の仮想マシンのうち、前記物理リソースの使用量が前記移動先の物理マシンにおける前記物理リソースの空き容量よりも小さい仮想マシンを、前記移動先の物理マシンに移動可能な仮想マシンとする、
ことを特徴とする移動制御プログラム。
【０１８５】
（付記８）
付記１において、さらに、
前記第１仮想マシン群に含まれる各仮想マシンに移動を指示する処理の前に、前記複数の物理マシン間において並行して移動可能な仮想マシンの数を示す第１移動可能情報を取得し、
前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理の前に、前記複数の物理マシン間において並行して移動可能な仮想マシンの数を示す第２移動可能情報を取得する、
処理をコンピュータに実行させ、
前記第１仮想マシン群に含まれる各仮想マシンに移動を指示する処理では、前記第１移動可能情報を参照し、前記第１仮想マシン群に含まれる仮想マシンのうち、前記移動元の物理マシンから前記移動先の物理マシンに対して移動中である仮想マシンの数が前記移動元の物理マシンから前記移動先の物理マシンに対して並行して移動可能な仮想マシンの数よりも少ない仮想マシンについて、前記移動先の物理マシンへの移動の指示を行い、
前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理では、前記第２移動可能情報を参照し、前記第２仮想マシン群に含まれる仮想マシンのうち、前記移動元の物理マシンから前記移動先の物理マシンに対して移動中である仮想マシンの数が前記移動元の物理マシンから前記移動先の物理マシンに対して並行して移動可能な仮想マシンの数よりも少ない仮想マシンについて、前記移動先の物理マシンへの移動の指示を行う、
ことを実行させることを特徴とする移動制御プログラム。
【０１８６】
（付記９）
付記１において、
前記第１仮想マシン群を特定する処理及び前記第２仮想マシン群を特定する処理では、前記複数の仮想マシンに、前記移動先の物理マシンに対する移動を指示していない仮想マシンが存在しない場合、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。
【０１８７】
（付記１０）
付記１において、
前記第１仮想マシン群を特定する処理及び前記第２仮想マシン群を特定する処理では、前記複数の仮想マシンに、前記移動先の物理マシンに対する移動を指示していない仮想マシンが存在し、かつ、前記移動先の物理マシンに移動可能な仮想マシンが存在しない場合、前記移動先の物理マシンへの移動を指示した仮想マシンに対して、前記移動元の物理マシンへの再移動を指示し、前記仮想マシンの移動の終了する、
ことを特徴とする移動制御プログラム。
【０１８８】
（付記１１）
付記１において、さらに、
前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理の後、前記複数の仮想マシンに前記移動先の物理マシンへの移動を指示していない仮想マシンが存在する場合、前記移動先の物理マシンへの移動を指示していない仮想マシンが存在しない状態になるまで、または、前記移動先の物理マシンに対する移動を指示されていない仮想マシンが存在し、かつ、前記移動先の物理マシンに移動可能な仮想マシンが存在しない状態になるまで、前記第２状態情報を取得する処理、前記第２仮想マシン群を特定する処理及び前記第２仮想マシン群に含まれる各仮想マシンに移動を指示する処理を繰り返し行う、
処理をコンピュータに実行させることを実行させることを特徴とする移動制御プログラム。
【０１８９】
（付記１２）
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第１状態情報と、前記複数の物理マシン間における前記仮想マシンそれぞれの移動に要する時間を示す時間情報とを取得する情報取得部と、
前記時間情報に基づき、前記複数の仮想マシンそれぞれの優先度を決定する優先度決定部と、
前記移動情報及び前記第１状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定する仮想マシン群特定部と、
決定した前記優先度に基づいて、前記第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する移動指示部と、を有し、
前記情報取得部は、前記第１仮想マシン群に含まれるいずれかの仮想マシンの前記移動先の物理マシンへの移動が完了したことに応じて、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第２状態情報を取得し、
前記仮想マシン群特定部は、前記移動情報及び前記第２状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、
前記移動指示部は、決定した前記優先度に基づいて、前記第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御装置。
【０１９０】
（付記１３）
情報処理システムを構成する複数の物理マシン間において移動する複数の仮想マシン毎に、前記仮想マシンの情報と、前記仮想マシンの移動元の物理マシンの情報と前記仮想マシンの移動先の物理マシンの情報とを対応付けた情報を含む移動情報と、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第１状態情報と、前記複数の物理マシン間における前記仮想マシンそれぞれの移動に要する時間を示す時間情報とを取得し、
前記時間情報に基づき、前記複数の仮想マシンそれぞれの優先度を決定し、
前記移動情報及び前記第１状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第１仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第１仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示し、
前記第１仮想マシン群に含まれるいずれかの仮想マシンの前記移動先の物理マシンへの移動が完了したことに応じて、前記複数の物理マシン及び前記複数の仮想マシンそれぞれの状態を示す第２状態情報を取得し、
前記移動情報及び前記第２状態情報に基づき、前記複数の仮想マシンのうち、前記移動先の物理マシンに移動可能な仮想マシンを含む第２仮想マシン群を特定し、
決定した前記優先度に基づいて、前記第２仮想マシン群に含まれる各仮想マシンに、それぞれ対応する前記移動先の物理マシンへの移動を指示する、
ことを特徴とする移動制御方法。
【符号の説明】
【０１９１】
１：情報処理装置            ２：物理マシン
３：仮想マシン              ４：仮想化ソフトウエア
１１：利用者端末
【図１】
2018026042.tif 000003
【図２】
2018026042.tif 000004
【図３】
2018026042.tif 000005
【図４】
2018026042.tif 000006
【図５】
2018026042.tif 000007
【図６】
2018026042.tif 000008
【図７】
2018026042.tif 000009
【図８】
2018026042.tif 000010
【図９】
2018026042.tif 000011
【図１０】
2018026042.tif 000012
【図１１】
2018026042.tif 000013
【図１２】
2018026042.tif 000014
【図１３】
2018026042.tif 000015
【図１４】
2018026042.tif 000016
【図１５】
2018026042.tif 000017
【図１６】
2018026042.tif 000018
【図１７】
2018026042.tif 000019
【図１８】
2018026042.tif 000020
【図１９】
2018026042.tif 000021
【図２０】
2018026042.tif 000022
【図２１】
2018026042.tif 000023
【図２２】
2018026042.tif 000024
【図２３】
2018026042.tif 000025
【図２４】
2018026042.tif 000026
【図２５】
2018026042.tif 000027
【図２６】
2018026042.tif 000028
【図２７】
2018026042.tif 000029
【図２８】
2018026042.tif 000030
【図２９】
2018026042.tif 000031
【図３０】
2018026042.tif 000032