(57)【特許請求の範囲】
【請求項１】
各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバであって、
前記各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を収集する動作状態収集部と、収集された前記リソース利用率から、前記各仮想ホストのリソース利用率の合計値を最も平準化する前記各仮想ホスト上の前記仮想コンピュータの配置を最適配置として決定する最適配置決定部とを備えると共に、
前記各仮想ホストの複数の前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返す移動パターンの中から、一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えない移動パターンを探索して特定し、当該移動パターンを最適な移動順序として出力する移動順序決定部と、
前記最適な移動順序に基づいて、前記各仮想ホストに対して前記仮想コンピュータの移動命令を順次発する仮想マシン移動司令部と
を有することを特徴とする仮想マシン管理サーバ。
【請求項２】
前記移動順序決定部が、
前記移動パターンを複数通り探索した場合に、その探索された複数の前記移動パターンの中で最も早く前記リソース利用率の最大値を平準化させる前記移動パターンを前記最適な移動順序とする機能を有することを特徴とする、請求項１に記載の仮想マシン管理サーバ。
【請求項３】
前記移動順序決定部が、
一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えないよう前記仮想コンピュータを一つずつ移動させることが不可能な場合に、前記移動後のリソース利用率の合計の最大値が最小となるよう前記仮想コンピュータを移動させる機能を有することを特徴とする、請求項１に記載の仮想マシン管理サーバ。
【請求項４】
収集された前記各仮想コンピュータの複数種類のリソース利用率の各々に重み係数を乗算して合計した値を前記リソース利用率として利用することを特徴とする、請求項１に記載の仮想マシン管理サーバ。
【請求項５】
各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバにあって、
前記各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を動作状態収集部が収集し、
収集された前記リソース利用率から、前記各仮想ホストのリソース利用率の合計値を最も平準化する前記各仮想ホスト上の前記仮想コンピュータの配置を最適配置決定部が最適配置として決定し、
前記各仮想ホストの複数の前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返す移動パターンの中から、一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えない移動パターンを移動順序決定部が探索し特定してこれを最適な移動順序として出力し、
前記最適な移動順序に基づいて、前記各仮想ホストに対して仮想マシン移動司令部が前記仮想コンピュータの移動命令を順次発する
ことを特徴とする、仮想マシン移動順序制御方法。
【請求項６】
各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバにあって、
前記仮想マシン管理サーバが備えるコンピュータに、
前記各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を収集する手順、
収集された前記リソース利用率から、前記各仮想ホストのリソース利用率の合計値を最も平準化する前記各仮想ホスト上の前記仮想コンピュータの配置を最適配置として決定する手順、
前記各仮想ホストの複数の前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返す移動パターンの中から、一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えない移動パターンを探索し特定してこれを最適な移動順序として出力する手順、
および前記最適な移動順序に基づいて、前記各仮想ホストに対して前記仮想コンピュータの移動命令を順次発する手順
を実行させることを特徴とする、仮想マシン移動順序制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシン管理サーバ、仮想マシン移動順序制御方法および制御プログラムに関し、特に仮想マシンを動作させる複数の仮想ホストの間での負荷を平準化する仮想マシン管理サーバ等に関する。
【背景技術】
【０００２】
大規模なコンピュータネットワークを構築して運用する企業などの組織では、コンピュータの仮想化が急速に進められていることが多い。たとえば業務システムを稼働させる各種サーバコンピュータや、各ユーザが操作するクライアントコンピュータを仮想コンピュータとして運用することによって、これらのコンピュータの運用にかかるコストを削減し、また機器の故障や大規模災害などがあっても動作を継続させることができると考えられている。
【０００３】
ある物理コンピュータ（以後仮想ホストという）で動作している仮想コンピュータ（以後仮想マシンという）は、動作中でもその動作状態をそのまま、ネットワークを介して他の仮想ホストに移動させることが可能である。
【０００４】
その際、特定の仮想ホスト上に動作負荷の高い仮想マシンが集中すると、その仮想ホストのコンピュータ資源（以後リソースという）が不足し、その結果として、その仮想ホストで動作する仮想マシンの動作性能が低下することになる。従って、複数の仮想ホストの間で、負荷を平準化してリソースを最適化するよう、当該仮想ホスト間で仮想マシンを配置することが、安定したコンピュータシステムの運用には必要となる。
【０００５】
これに関連して、以下のような技術資料がある。その中でも特許文献１には、仮想マシンの移動前後での各仮想ホストのリソースの評価値を求めて、これに基づいて仮想マシンを移動させるという仮想サーバシステムが記載されている。特許文献２には、高負荷の仮想ホストで動作している仮想マシンを他の仮想ホストに移動させる際の判定基準について記載されている。
【０００６】
特許文献３には、ある仮想ホストで動作している仮想マシンを他の仮想ホストに移動させるスケジュールを決定するという技術が記載されている。非特許文献１には、仮想マシンの移動に関する一般的な技術の一例が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】再公表特許ＷＯ２００８／１０２７３９号
【特許文献２】特開２０１１−１８６７０１号公報
【特許文献３】特開２０１０−２４４５２４号公報
【非特許文献】
【０００８】
【非特許文献１】「VMware vMotion による仮想マシンのライブ マイグレーションの実現」、平成２３年、ヴイエムウェア株式会社、［平成２４年１月１６日検索］、インターネット＜URL：http://www.vmware.com/jp/products/datacenter-virtualization/vsphere/vmotion/overview.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数の仮想ホストの間での負荷の平準化およびリソースの最適化のために、当該仮想ホスト間で複数の仮想マシンを移動させることが必要となる場合がある。この場合、仮想マシンを一斉に移動させる方式と段階的に移動させる方式が考えられるが、前者の方式だと、仮想マシンの一斉移動によって仮想ホストで負荷が一時的に上昇してリソース不足が発生し、その仮想ホストで動作する仮想マシンの動作が不安定になることがある。一時的ではあっても、そのような状態になることは望ましいことではない。
【００１０】
従って、仮想マシンを段階的に移動させる方式の方が好ましいと言うことはできる。しかしながら、その最適化の途中の段階で、仮想マシンが特定の仮想ホストに一時的に集中することがありうる。たとえ一時的にでも、そのようなことが発生すると、仮想ホストの負荷が上昇して仮想マシンの動作が不安定になることがありうる。
【００１１】
前述の特許文献１〜３や非特許文献１に記載の技術では、このような仮想マシンの移動方式や移動の順序といった点について考慮されていない。特許文献３に記載の技術で決定されるのは仮想マシンを他の仮想ホストに移動させる「スケジュール」であって、順序ではない。従って、それらの技術の組み合わせで、上記の問題を解決することはできない。
【００１２】
本発明の目的は、仮想マシンを移動させて負荷を平準化する途中の段階において、仮想マシンが特定の仮想ホストに一時的に集中して負荷が上昇することを有効に回避することを可能とする仮想マシン管理サーバ、仮想マシン移動順序制御方法および制御プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明に係る仮想マシン管理サーバは、各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバであって、各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を収集する動作状態収集部と、収集されたリソース利用率から、各仮想ホストのリソース利用率の合計値を最も平準化する各仮想ホスト上の仮想コンピュータの配置を最適配置として決定する最適配置決定部とを備えると共に、各仮想ホストの複数の仮想コンピュータを一つずつ順次移動させて、これを仮想コンピュータの配置が最適配置となるまで繰り返す移動パターンの中から、一の仮想コンピュータを一の仮想ホストから別の仮想ホストに移動させても、移動後の各仮想ホストのリソース利用率の合計の最大値が移動前の仮想ホストのリソース利用率の合計の最大値を越えない移動パターンを探索して特定し、当該移動パターンを最適な移動順序として出力する移動順序決定部と、最適な移動順序に基づいて、各仮想ホストに対して仮想コンピュータの移動命令を順次発する仮想マシン移動司令部とを有することを特徴とする。
【００１４】
上記目的を達成するため、本発明に係る仮想マシン移動順序制御方法は、各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバにあって、各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を動作状態収集部が収集し、収集されたリソース利用率から、各仮想ホストのリソース利用率の合計値を最も平準化する各仮想ホスト上の仮想コンピュータの配置を最適配置決定部が最適配置として決定し、各仮想ホストの複数の仮想コンピュータを一つずつ順次移動させて、これを仮想コンピュータの配置が最適配置となるまで繰り返す移動パターンの中から、一の仮想コンピュータを一の仮想ホストから別の仮想ホストに移動させても、移動後の各仮想ホストのリソース利用率の合計の最大値が移動前の仮想ホストのリソース利用率の合計の最大値を越えない移動パターンを移動順序決定部が探索し特定してこれを最適な移動順序として出力し、最適な移動順序に基づいて、各仮想ホストに対して仮想マシン移動司令部が仮想コンピュータの移動命令を順次発することを特徴とする。
【００１５】
上記目的を達成するため、本発明に係る仮想マシン移動順序制御プログラムは、各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバにあって、仮想マシン管理サーバが備えるコンピュータに、各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を収集する手順、収集されたリソース利用率から、各仮想ホストのリソース利用率の合計値を最も平準化する各仮想ホスト上の仮想コンピュータの配置を最適配置として決定する手順、各仮想ホストの複数の仮想コンピュータを一つずつ順次移動させて、これを仮想コンピュータの配置が最適配置となるまで繰り返す移動パターンの中から、一の仮想コンピュータを一の仮想ホストから別の仮想ホストに移動させても、移動後の各仮想ホストのリソース利用率の合計の最大値が移動前の仮想ホストのリソース利用率の合計の最大値を越えない移動パターンを探索し特定してこれを最適な移動順序として出力する手順、および最適な移動順序に基づいて、各仮想ホストに対して仮想コンピュータの移動命令を順次発する手順を実行させることを特徴とする。
【発明の効果】
【００１６】
本発明は、上記したように、負荷が最も平準化される最適配置になるまで仮想コンピュータを一つずつ順次移動させる移動パターンを特定するように構成したので、前述したような仮想マシンが特定の仮想ホストに集中する事態を有効に回避できる。これによって、仮想マシンが特定の仮想ホストに一時的に集中して負荷が上昇することを有効に回避することが可能であるという、優れた特徴を持つ仮想マシン管理サーバ、仮想マシン移動順序制御方法および制御プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係る仮想マシン管理サーバの構成について示す説明図である。
【図２】図１に示した仮想マシン管理サーバの各手段の動作について示すフローチャートである。
【図３】図２のステップＳ２０３〜２０６として示した移動順序決定部が仮想マシンの移動順序を決定する動作の一例として、仮想ホストで動作する各仮想マシンのリソースについて示す説明図である。
【図４】図４は、図３に示した各仮想ホスト）で、最も負荷を平準化するように各仮想マシンを移動した例を示す説明図である。
【図５】図３に例示した各仮想マシンを「移動パスＡ」によって移動させた場合の、各段階における全ての仮想ホストの利用率の最大値Ｒｍａｘ（１，ｋ’）の変化を示す説明図である。
【図６】図５の続きである。
【図７】図３に例示した各仮想マシンを「移動パスＢ」によって移動させた場合の、各段階における全ての仮想ホストの利用率の最大値Ｒｍａｘ（２，ｋ’）の変化を示す説明図である。
【図８】図７の続きである。
【図９】本発明の第２の実施形態に係る仮想マシン管理サーバの構成について示す説明図である。
【図１０】図９に示した仮想マシン管理サーバの各手段の動作について示すフローチャートである。
【発明を実施するための形態】
【００１８】
（第１の実施形態）
以下、本発明の実施形態の構成について添付図１に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る仮想マシン管理サーバ１０は、各々が複数の仮想コンピュータ（仮想マシン３１〜３３）を動作させる複数の仮想ホスト２０とネットワーク４０を介して接続された仮想マシン管理サーバである。この仮想マシン管理サーバ１０は、各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を収集する動作状態収集部１０１と、収集されたリソース利用率から、各仮想ホストのリソース利用率の合計値を最も平準化する各仮想ホスト上の仮想コンピュータの配置を最適配置として決定する最適配置決定部１０２とを備える。それに加えて、各仮想ホストの複数の仮想コンピュータを一つずつ順次移動させて、これを仮想コンピュータの配置が最適配置となるまで繰り返す移動パターンを特定し、当該移動パターンを最適な移動順序として出力する移動順序決定部１０３と、最適な移動順序に基づいて、各仮想ホストに対して仮想コンピュータの移動命令を順次発する仮想マシン移動司令部１０４とを有する。
【００１９】
そして、移動順序決定部１０３は、一の仮想コンピュータを一の仮想ホストから別の仮想ホストに移動させても、移動後の各仮想ホストのリソース利用率の合計の最大値が移動前の仮想ホストのリソース利用率の合計の最大値を越えないよう仮想コンピュータを一つずつ順次移動させて、これを仮想コンピュータの配置が最適配置となるまで繰り返す移動パターンを探索する。
【００２０】
また、移動順序決定部１０３は、移動パターンを複数通り探索した場合に、その探索された複数の移動パターンの中で最も早く合計リソース利用率の最大値を平準化させる移動パターンを最適な移動パスとする機能を有する。
【００２１】
この構成を備えることにより、仮想マシン管理サーバ１０は、仮想マシンが特定の仮想ホストに一時的に集中して負荷が上昇することを有効に回避することが可能となる。
以下、これをより詳細に説明する。
【００２２】
図１は、本発明の第１の実施形態に係る仮想マシン管理サーバ１０の構成について示す説明図である。仮想マシン管理サーバ１０は、コンピュータ装置としての基本的な構成を備えている。即ち、コンピュータプログラムの動作主体であるプロセッサ１１と、プログラムおよびデータを記憶する記憶手段１２と、ネットワーク４０を介して他の装置との通信を行う通信手段１３とを備える。
【００２３】
そして、仮想マシン管理サーバ１０は、ネットワーク４０を介して、複数の物理コンピュータである仮想ホスト２０ａ、２０ｂ、２０ｃ、…と接続されている。仮想ホスト２０ａ、２０ｂ、２０ｃ、…（以後これらを総称して仮想ホスト２０という）は、いずれも仮想マシン（仮想コンピュータ）を形成して動作させる機能を有する物理的なコンピュータである。
【００２４】
仮想マシン管理サーバ１０に接続される仮想ホスト２０、およびそこで動作する仮想マシンの台数には制限はない。しかしながら図１には、後述する動作例に対応して、３台の仮想ホスト２０ａ〜ｃを記載している。そして、仮想ホスト２０ａ（Ａ）では仮想マシン３１ａ〜ｃ（１−１〜３）、仮想ホスト２０ｂ（Ｂ）では仮想マシン３２ａ〜ｃ（２−１〜３）、仮想ホスト２０ｃ（Ｃ）では仮想マシン３３ａ〜ｂ（３−１〜２）、が各々動作している例を記載している。
【００２５】
仮想マシン管理サーバ１０のプロセッサ１１は、仮想マシン管理プログラムが動作することにより、動作状態収集部１０１、最適配置決定部１０２、移動順序決定部１０３、および仮想マシン移動司令部１０４として動作する。動作状態収集部１０１は、各々の仮想ホスト２０から各々で動作する仮想マシンのリソース利用率に関する情報を収集する。
【００２６】
最適配置決定部１０２は、動作状態収集部１０１によって収集された情報から、前述の特許文献１などに記載の公知技術によって、最も負荷を平準化する仮想マシンの配置を決定する。移動順序決定部１０３は、やはり動作状態収集部１０１によって収集された情報から、仮想マシンの移動順序を決定する。仮想マシン移動司令部１０４は、決定された移動順序に基づいて、仮想マシンの移動命令を各仮想ホスト２０に対して発する。
【００２７】
図２は、図１に示した仮想マシン管理サーバ１０の各手段の動作について示すフローチャートである。まず、動作状態収集部１０１が各々の仮想ホスト２０から、各々で動作する仮想マシンのリソース利用率を収集する（ステップＳ２０１）。ここで収集の対象となるリソース利用率とは、たとえばＣＰＵの利用率、メインメモリの利用率、ハードディスクの利用率、ネットワークの利用率などがある。
【００２８】
ステップＳ２０１で収集された情報に基づいて、まず最適配置決定部１０２が、各仮想ホストにかかる負荷、即ち当該仮想ホストで動作する全ての仮想マシンのリソース利用率の合計が最も平準なものとなる仮想マシンの配置を最適配置として決定する（ステップＳ２０２）。この「最適配置」を決定する最適配置決定部１０２の動作は、前述の特許文献１などに記載の公知技術によって可能であり、本発明の範囲ではない。
【００２９】
これに続いて、移動順序決定部１０３が、仮想マシンを最適配置決定部１０２によって決定された配置になるように移動させる際の、当該各仮想マシンの移動順序を決定する（ステップＳ２０３〜２０６）。以下、その動作について説明する。
【００３０】
まず、全ての仮想ホスト２０で動作する全ての仮想マシンについて、１つの仮想マシンをある仮想ホスト２０から別の仮想ホスト２０に移動させても各仮想ホスト２０ごとの合計リソース利用率の最大値が増加しないよう仮想マシンの移動を繰り返して、前ステップで決定された最適配置になるようにする移動のパターン（これを移動パスという）を、全ての移動パスの中から探索する（ステップＳ２０３）。
【００３１】
探索された移動パスが１つだけであるか否かを判定し（ステップＳ２０４）、１つだけであればこれを最適な移動パスとして決定する（ステップＳ２０６）。探索された移動パスが複数あれば、それらの中から最も効率的にリソース利用率の平準化が可能な移動パスを判定し（ステップＳ２０５）、最適な移動パスとして決定する（ステップＳ２０６）。そして、仮想マシン移動司令部１０４は、ステップＳ２０６で決定された最適な移動パスに基づいて、仮想マシンの移動命令を各仮想ホスト２０に対して発する（ステップＳ２０７）。
【００３２】
図３は、図２のステップＳ２０３〜２０６として示した移動順序決定部１０３が仮想マシンの移動順序を決定する動作の一例として、仮想ホスト２０で動作する各仮想マシンのリソースについて示す説明図である。
【００３３】
本発明の概念を平易に説明するため、まず、仮想ホスト２０を２０ａ〜ｃの３台に限定し、各々仮想ホストＡ〜Ｃという。そして、これらの上で合計８台の仮想マシンが動作しているものとし、仮想ホスト２０ａ（Ａ）では仮想マシン３１ａ〜ｃ（１−１〜３）、仮想ホスト２０ｂ（Ｂ）では仮想マシン３２ａ〜ｃ（２−１〜３）、仮想ホスト２０ｃ（Ｃ）では仮想マシン３３ａ〜ｂ（３−１〜２）、が各々動作している。
【００３４】
また、各仮想ホスト２０はいずれも、実装されているＣＰＵの種別および数、メインメモリの容量、ハードディスクの容量、およびネットワークの転送速度が全て同一であると考えることが可能である。即ち、各仮想ホスト２０の備える物理的なリソースは全て同一であり、一つの仮想ホスト２０で動作する仮想マシンを他の仮想ホスト２０に移動させた場合、その移動元と移動先では利用率は同等であると考えることが可能である。
【００３５】
そして、動作状態収集部１０１が収集するリソース利用率は、ＣＰＵの利用率に限定する。以後これを単に利用率という。仮想マシン３１ａ〜ｃ（１−１〜３）は各々「３２」「８」「３０」という利用率、仮想マシン３２ａ〜ｃ（２−１〜３）は各々「１５」「５」「１８」という利用率、仮想マシン３３ａ〜ｂ（３−１〜２）は各々「３２」「１０」という利用率が、動作状態収集部１０１によって収集された。
【００３６】
即ち、仮想ホスト２０ａ（Ａ）上で動作する仮想マシン３１ａ〜ｃ（１−１〜３）の利用率合計は「７０」、仮想ホスト２０ｂ（Ｂ）上で動作する仮想マシン３２ａ〜ｃ（２−１〜３）の利用率合計は「３８」、仮想ホスト２０ｃ（Ｃ）上で動作する仮想マシン３３ａ〜ｂ（３−１〜２）の利用率合計は「４２」となる。
【００３７】
この場合、仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に、仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に、仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動させると、全ての仮想ホスト２０ａ〜ｃ（Ａ〜Ｃ）で利用率合計は「５０」となるので、これが最も負荷が平準化される仮想マシンの配置である。最適配置決定部１０２は、この配置を前述の公知技術によって決定する。
【００３８】
図４は、図３に示した各仮想ホスト２０ａ〜ｃ（Ａ〜Ｃ）で、最も負荷を平準化するように各仮想マシンを移動した例を示す説明図である。図３に示した状態を図４に示した状態に遷移させるためには、以下のような６通りの移動順序（移動パスＡ〜Ｆ）が考えられる。
【００３９】
（移動パスＡ）
仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動→仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動→仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動
【００４０】
（移動パスＢ）
仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動→仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動→仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動
【００４１】
（移動パスＣ）
仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動→仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動→仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動
【００４２】
（移動パスＤ）
仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動→仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動→仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動
【００４３】
（移動パスＥ）
仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動→仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動→仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動
【００４４】
（移動パスＦ）
仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動→仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動→仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動
【００４５】
たとえば、このうちの移動パスＥの最初の移動で、仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動させると、仮想ホスト２０ａ（Ａ）では仮想マシン３１ａ〜ｃ（１−１〜３）と３３ｂ（３−２）という４つの仮想マシンが動作することとなり、これらの仮想マシンの利用率合計は「８０」となる。これは、一時的な状態ではあっても、平準化の動作前よりも高い値となるので、好ましいことではない。
【００４６】
そこで、移動順序決定部１０３は、移動先の仮想ホストの負荷が仮想マシン移動前の移動元の仮想ホストの負荷を超えないように最適な移動順序を決定し、その順序で仮想マシン移動司令部１０４に仮想マシンの移動命令を出させる。以下、移動順序決定部１０３によるその具体的な計算処理について説明する。
【００４７】
仮想ホスト２０の総台数をＮ、各々の仮想ホスト２０をＨｎ（１≦ｎ≦Ｎ）、各仮想ホストＨｎの利用率合計をＲ（Ｈｎ）、各仮想ホストＨｎで使用可能なリソースの総量をＣ（Ｈｎ）とする。前述のように、ここで説明する例ではＮ＝３、また各仮想ホストＨｎで使用可能なリソースの総量Ｃ（Ｈｎ）はいずれも等しい。
【００４８】
そして、全ての仮想ホスト２０上で動作する仮想マシンの中で移動対象となる仮想マシンの総台数をＫ、各々の仮想マシンをＶｋ（１≦ｋ≦Ｋ）、仮想マシンＶｋの利用率をＲ（Ｖｋ）とする。前述のように、ここで説明する例では仮想マシンの総台数は８であるが、ここでは仮想マシン３１ｃ（１−３）、仮想マシン３２ｃ（２−３）、仮想マシン３３ｂ（３−２）の３台のみが移動されるので、移動対象の台数はＫ＝３である。従って、考え得る移動パスの数は３！＝６通りとなる。
【００４９】
ｋ回目の移動で、仮想マシンＶｋを仮想ホストＨｓｒｃからＨｄｓｔに移動させる。この場合、この移動前後での仮想ホストＨｓｒｃおよびＨｄｓｔの利用率合計は、各々以下の数１〜２で示される。
【００５０】
【数１】
0005817549.tif 000002
【００５１】
【数２】
0005817549.tif 000003
【００５２】
従って、ｋ’（０≦ｋ’≦Ｋ）回目の移動が終了した後での全ての仮想ホストの利用率の最大値Ｒｍａｘ（ｋ’）、およびｋ’＋１回目の移動が終了した後での最大値Ｒｍａｘ
（ｋ’＋１）は、各々以下の数３〜４で示される。ただし、ＭＡＸ（Ａ，Ｂ，Ｃ，…）は、カッコ内の複数の数値のうちの最大値を表す。
【００５３】
【数３】
0005817549.tif 000004
【００５４】
【数４】
0005817549.tif 000005
【００５５】
移動順序決定部１０３は、図２のステップＳ２０３で示された処理で、全てのｋ’において以下の数５に示された条件を満たす移動パスを、考え得るｐ通りの移動パス（１≦ｐ≦Ｋ！）の中から探索する。
【００５６】
【数５】
0005817549.tif 000006
【００５７】
移動順序決定部１０３は、この条件を満たす移動パスが１通りであれば、その移動パスに基づいてステップＳ２０６〜２０７の処理を行う。この条件を満たす移動パスが２通り以上あれば、その各々のパスをｐとし、それに対するＲｍａｘ（ｋ’）をＲｍａｘ（ｐ，ｋ’）と表現すると、移動順序決定部１０３はステップＳ２０５の処理で、各パスについて以下の数６に示される評価値Ｅ（ｐ，ｋ’）を算出して、この評価値Ｅ（ｐ，ｋ’）が最小となるパスを最も効率的に利用率の平準化が可能なものとして判定する。ただし、ＭＩＮ（Ａ，Ｂ，Ｃ，…）は、カッコ内の複数の数値のうちの最小値を表す。
【００５８】
【数６】
0005817549.tif 000007
【００５９】
図３〜４として示した例をこの計算式に当てはめた場合、図２のステップＳ２０３で示された処理で、全てのｋ’において以下の数５に示された条件を満たす移動パスは、前述の移動パスＡおよび移動パスＢの２通りとなる。移動パスＣ〜Ｆは、いずれも「移動先の仮想ホストの負荷が仮想マシン移動前の移動元の仮想ホストの負荷を超える」移動が存在する。
【００６０】
図５〜６は、図３に例示した各仮想マシンを前述の「移動パスＡ」によって移動させた場合の、各段階における全ての仮想ホストの利用率の最大値Ｒｍａｘ（１，ｋ’）の変化を示す説明図である。同様に図７〜８は、図３に例示した各仮想マシンを前述の「移動パスＢ」によって移動させた場合の、各段階における全ての仮想ホストの利用率の最大値Ｒｍａｘ（２，ｋ’）の変化を示す説明図である。ここで、０≦ｋ’≦３である。紙面の都合により、「移動パスＡ」および「移動パスＢ」に基づく移動を、各々２枚に分けて図示している。
【００６１】
いずれも、初期状態では図３に示した例の状態と同一である。即ち、仮想マシン３１ａ〜ｃ（１−１〜３）は各々「３２」「８」「３０」という利用率、仮想マシン３２ａ〜ｃ（２−１〜３）は各々「１５」「５」「１８」という利用率、仮想マシン３３ａ〜ｂ（３−１〜２）は各々「３２」「１０」という利用率である。図５〜８では、たとえば仮想マシン３１ａには「１−１（３２）」と表示されているが、これはこのシステム内における該仮想マシンの記号が「１−１」であり、その利用率が「３２」であることを意味する。他の仮想マシンについても同様である。
【００６２】
即ち、仮想ホスト２０ａ（Ａ）上で動作する仮想マシン３１ａ〜ｃ（１−１〜３）の利用率合計は「７０」、仮想ホスト２０ｂ（Ｂ）上で動作する仮想マシン３２ａ〜ｃ（２−１〜３）の利用率合計は「３８」、仮想ホスト２０ｃ（Ｃ）上で動作する仮想マシン３３ａ〜ｂ（３−１〜２）の利用率合計は「４２」となる。「移動パスＡ」をｐ＝１、「移動パスＢ」をｐ＝２とすると、この段階での図５に示した全ての仮想ホストの利用率の最大値Ｒｍａｘは、Ｒｍａｘ（１，０）＝Ｒｍａｘ（２，０）＝「７０」である。
【００６３】
これに対して、まず図５〜６に示した「移動パスＡ」では、１回目の移動で利用率「３０」の仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動する。これにより、仮想ホスト２０ａ（Ａ）上では仮想マシン３１ａ〜ｂ（１−１〜２）が動作するので、利用率合計は「４０」となる。仮想ホスト２０ｂ（Ｂ）では仮想マシン３２ａ〜ｃ（２−１〜３）と仮想マシン３１ｃ（１−３）とが動作するので、利用率合計は「６８」となる。仮想ホスト２０ｃ（Ｃ）では利用率合計は変わらず「４２」である。従って、Ｒｍａｘ（１，１）＝「６８」である。
【００６４】
「移動パスＡ」の２回目の移動では、利用率「１８」の仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動する。これにより、仮想ホスト２０ｂ（Ｂ）では仮想マシン３２ａ〜ｂ（２−１〜２）と仮想マシン３１ｃ（１−３）とが動作するので、利用率合計は「５０」となる。仮想ホスト２０ｃ（Ｃ）では仮想マシン３３ａ〜ｂ（３−１〜２）と仮想マシン３２ｃ（２−３）とが動作するので、利用率合計は「６０」となる。仮想ホスト２０ａ（Ａ）では利用率合計は変わらず「４０」である。従って、Ｒｍａｘ（１，２）＝「６０」である。
【００６５】
「移動パスＡ」の３回目の移動では、利用率「１０」の仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動する。これにより、仮想ホスト２０ｃ（Ｃ）では仮想マシン３３ａ（３−１）と仮想マシン３２ｃ（２−３）とが動作するので、利用率合計は「５０」となる。仮想ホスト２０ａ（Ａ）では仮想マシン３１ａ〜ｂ（１−１〜２）と仮想マシン３３ｂ（３−２）とが動作するので、利用率合計は「５０」となる。仮想ホスト２０ｂ（Ｂ）では利用率合計は変わらず「５０」である。従って、Ｒｍａｘ（１，３）＝「５０」である。
【００６６】
一方、図７〜８に示した「移動パスＢ」では、１回目の移動で利用率「３０」の仮想マシン３１ｃ（１−３）を仮想ホスト２０ａ（Ａ）から仮想ホスト２０ｂ（Ｂ）に移動する。これは「移動パスＡ」の１回目の移動と同一である。従って、Ｒｍａｘ（２，１）＝「６８」である。
【００６７】
「移動パスＢ」の２回目の移動では、利用率「１０」の仮想マシン３３ｂ（３−２）を仮想ホスト２０ｃ（Ｃ）から仮想ホスト２０ａ（Ａ）に移動する。これにより、仮想ホスト２０ｃ（Ｃ）では仮想マシン３３ａ（３−１）のみが動作するので、利用率合計は「３２」となる。仮想ホスト２０ａ（Ａ）では仮想マシン３１ａ〜ｂ（１−１〜２）と仮想マシン３３ｂ（３−２）とが動作するので、利用率合計は「５０」となる。仮想ホスト２０ｂ（Ｂ）では利用率合計は変わらず「６８」である。従って、Ｒｍａｘ（２，２）＝「６８」である。
【００６８】
「移動パスＢ」の３回目の移動では、利用率「１８」の仮想マシン３２ｃ（２−３）を仮想ホスト２０ｂ（Ｂ）から仮想ホスト２０ｃ（Ｃ）に移動する。これにより、仮想ホスト２０ｂ（Ｂ）では仮想マシン３２ａ〜ｂ（２−１〜２）と仮想マシン３１ｃ（１−３）とが動作するので、利用率合計は「５０」となる。仮想ホスト２０ｃ（Ｃ）では仮想マシン３３ａ（３−１）と仮想マシン３２ｃ（２−３）とが動作するので、利用率合計は「５０」となる。従って、Ｒｍａｘ（２，３）＝「５０」である。
【００６９】
以上で説明したように、「移動パスＡ」と「移動パスＢ」との比較では、Ｒｍａｘ（１，０）＝Ｒｍａｘ（２，０）＝「７０」、Ｒｍａｘ（１，１）＝Ｒｍａｘ（２，１）＝「６８」、Ｒｍａｘ（１，３）＝Ｒｍａｘ（２，３）＝「５０」であるが、Ｒｍａｘ（１，２）＝「６０」、Ｒｍａｘ（２，２）＝「６８」である。従って、Ｒｍａｘ（１，２）≦Ｒｍａｘ（２，２）が成立するので、移動順序決定部１０３によるステップＳ２０５の処理では、ｐ＝１、即ち「移動パスＡ」を最も効率的に利用率の平準化が可能なものとして判定することができる。
【００７０】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る仮想マシン移動順序制御方法は、各々が複数の仮想コンピュータ（仮想マシン）を動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバ１０にあって、各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を動作状態収集部が収集し（図２・ステップＳ２０１）、収集されたリソース利用率から、各仮想ホストにかかる負荷を最も平準化する各仮想ホスト上の仮想コンピュータの配置を最適配置決定部が最適配置として決定し（図２・ステップＳ２０２）、各仮想ホストの複数の仮想コンピュータを一つずつ順次移動させて、これを仮想コンピュータの配置が最適配置となるまで繰り返す移動パターンを移動順序決定部が特定してこれを最適な移動順序として出力し（図２・ステップＳ２０３〜２０６）、最適な移動パスに基づいて、各仮想ホストに対して仮想マシン移動司令部が仮想コンピュータの移動命令を発する（図２・ステップＳ２０７）。
【００７１】
また、最適な移動パスを出力する処理（図２・ステップＳ２０３〜２０６）は、一の仮想コンピュータを一の仮想ホストから別の仮想ホストに移動させても、移動後の各仮想ホストのリソース利用率の合計の最大値が移動前の仮想ホストのリソース利用率の合計の最大値を越えないよう仮想コンピュータを一つずつ順次移動させて、これを仮想コンピュータの配置が最適配置となるまで繰り返すものである。
【００７２】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する仮想マシン管理サーバ１０のプロセッサ１１に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００７３】
本実施形態によれば、仮想マシンを最適配置に向けて順次移動させる過程で、各段階での各仮想ホストごとの合計リソース利用率の増加を回避しつつ仮想マシンを移動させることが可能である。従って、仮想マシンが特定の仮想ホストに一時的に集中して負荷が上昇するという事態を有効に回避することが可能となる。また、そのように仮想マシンを移動させる移動パスが複数通り見つかった場合には、リソース利用率をより早く平準化させるよう仮想マシンを移動させることが可能となる。
【００７４】
（第１の実施形態の拡張）
上記実施形態では、処理対象となるリソース利用率を「ＣＰＵの利用率」に限定したが、これ以外の数値をリソース利用率とすることもできるし、また複数種類の数値に対して上記実施形態と同一の処理を行うこともできる。この場合、複数種類の利用率の各々に対して予め与えられた重み係数を乗算した上で、これらの重み付けされた利用率を合計した数値を当該仮想マシンの利用率として、上記実施形態と同一の処理を行う。
【００７５】
より具体的には、仮想ホストＨｎの利用率Ｒ（Ｈｎ）は、当該仮想ホストのＣＰＵリソース利用率、メモリリソース利用率、ストレージリソース利用率、ネットワークリソース利用率を各々Ｒｃｐｕ（Ｈｎ）、Ｒｍｅｍｏｒｙ（Ｈｎ）、ＲｄｉｓｋＩＯ（Ｈｎ）、ＲｎｅｔｗｏｒｋＩＯ（Ｈｎ）とし、それら各々に対して与えられた重み数値をＷｃｐｕ、Ｗｍｅｍｏｒｙ、ＷｄｉｓｋＩＯ、ＷｎｅｔｗｏｒｋＩＯとすると、以下の数７のように表される。
【００７６】
【数７】
0005817549.tif 000008
【００７７】
この式によって得られた仮想ホストＨｎの利用率Ｒ（Ｈｎ）に対して上記実施形態と同一の処理を行えば、複数のリソースを対象としても、最適な移動順序を求めることができる。
【００７８】
また、最適配置決定部１０２が決定する仮想マシンの配置は、必ずしも「負荷を平準化する」ことを意図したものである必要はない。たとえば、特定のいずれか１つの仮想ホストにおいて特定の量の空きリソースを確保することや、特定のいずれか１つの仮想ホストを停止する（省電力化のため）ことなどを意図したものであっても、上記実施形態と同一の処理を行って、不必要に仮想ホストの負荷を上昇させることなく、最適な順序で仮想マシンを移動させることができる。
【００７９】
さらに、本願で説明した例では全ての仮想ホストが同一のリソースを備えるものとしたが、仮想ホストごとに利用可能なリソースの総量が異なる場合も、前述の数２で示した使用可能なリソースの総量Ｃ（Ｈｎ）を各仮想ホストに対応した値とすればよい。
【００８０】
（第２の実施形態）
本発明の第２の実施形態に係る仮想マシン管理サーバ３１０は、移動順序決定部４０３が、一つの仮想コンピュータを特定の仮想ホストから別の仮想ホストに移動させても各仮想ホストごとの合計リソース利用率の最大値が増加しないよう、仮想コンピュータを移動させる移動パターンが存在しない場合に、合計リソース利用率の最大値が最小となる移動パターンを最適な移動パスとする機能を有する構成とした。
【００８１】
この構成によっても第１の実施形態と同一の効果が得られるのに加えて、さらにリソース利用率の最大値が増加しないよう仮想マシンの移動を繰り返すことのできる移動パスが存在しない場合にも、リソース利用率の最大値の増加を可能な限り抑制して利用率の平準化を行うことが可能となる。
以下、これをより詳細に説明する。
【００８２】
図９は、本発明の第２の実施形態に係る仮想マシン管理サーバ３１０の構成について示す説明図である。仮想マシン管理サーバ３１０は、図１に示した第１の実施形態の仮想マシン管理サーバ１０と、ハードウェアとしては同一の構成を有する。これに接続されているネットワーク４０および仮想ホスト２０（そこで動作する仮想マシンも含めて）も、第１の実施形態と同一である。また、ソフトウェアとしても、移動順序決定部１０３が別の移動順序決定部４０３に置換されている以外は第１の実施形態と同一である。従って、第１の実施形態と同一である要素については、同一の呼称および参照番号でいう。
【００８３】
図１０は、図９に示した仮想マシン管理サーバ３１０の各手段の動作について示すフローチャートである。これも、第１の実施形態と同一である動作内容については、同一の参照番号を付している。ステップＳ２０１〜２０３は、第１の実施形態と同一の動作となるが、その後に続くステップＳ５０１で、移動順序決定部４０３は、仮想ホスト２０全体の中でのリソース利用率の最大値が増加しない（即ち前述の数５を満たす）よう仮想マシンの移動を繰り返すことのできる移動パスが存在するか否かを判定する。
【００８４】
そのような移動パスが存在しないと判定された場合、移動順序決定部４０３は各々の移動パス（ｐ）に対して、以下の数８で示される評価値Ｅ（ｐ，ｋ）を算出して、この評価値が最小となる移動パスを最も効率的に利用率の平準化が可能なものとして判定する（ステップＳ５０２）。ただし、ＭＡＸ（Ａ，Ｂ，Ｃ，…）は、カッコ内の複数の数値のうちの最大値を表す。
【００８５】
【数８】
0005817549.tif 000009
【００８６】
ステップＳ５０２の後には、図２に示されたステップＳ２０４以降と同一の処理が続く。ステップＳ５０１で該当する移動パスが存在すると判定された場合にも、ステップＳ２０４以降と同一の処理が続く。
【００８７】
第１の実施形態では、リソース利用率の最大値が増加しないよう仮想マシンの移動を繰り返すことのできる移動パスが必ず１つ以上存在することを前提としたが、実際にはそのような移動パスが存在しない場合もありうる。この第２の実施形態では、そのような場合でも、リソース利用率の最大値の増加を可能な限り抑制して利用率の平準化を行うことが可能である。
【００８８】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００８９】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００９０】
（付記１）  各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバであって、
前記各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を収集する動作状態収集部と、収集された前記リソース利用率から、前記各仮想ホストのリソース利用率の合計値を最も平準化する前記各仮想ホスト上の前記仮想コンピュータの配置を最適配置として決定する最適配置決定部とを備えると共に、
前記各仮想ホストの複数の前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返す移動パターンを特定し、当該移動パターンを最適な移動順序として出力する移動順序決定部と、
前記最適な移動順序に基づいて、前記各仮想ホストに対して前記仮想コンピュータの移動命令を順次発する仮想マシン移動司令部と
を有することを特徴とする仮想マシン管理サーバ。
【００９１】
（付記２）  前記移動順序決定部が、
一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えないよう前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返す移動パターンを探索することを特徴とする、付記１に記載の仮想マシン管理サーバ。
【００９２】
（付記３）  前記移動順序決定部が、
前記移動パターンを複数通り探索した場合に、その探索された複数の前記移動パターンの中で最も早く前記リソース利用率の最大値を平準化させる前記移動パターンを前記最適な移動順序とする機能を有することを特徴とする、付記２に記載の仮想マシン管理サーバ。
【００９３】
（付記４）  前記移動順序決定部が、
一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えないよう前記仮想コンピュータを一つずつ移動させることが不可能な場合に、前記移動後のリソース利用率の合計の最大値が最小となるよう前記仮想コンピュータを移動させる機能を有することを特徴とする、付記２に記載の仮想マシン管理サーバ。
【００９４】
（付記５）  収集された前記各仮想コンピュータの複数種類のリソース利用率の各々に重み係数を乗算して合計した値を前記リソース利用率として利用することを特徴とする、付記１に記載の仮想マシン管理サーバ。
【００９５】
（付記６）  各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバにあって、
前記各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を動作状態収集部が収集し、
収集された前記リソース利用率から、前記各仮想ホストのリソース利用率の合計値を最も平準化する前記各仮想ホスト上の前記仮想コンピュータの配置を最適配置決定部が最適配置として決定し、
前記各仮想ホストの複数の前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返す移動パターンを移動順序決定部が特定してこれを最適な移動順序として出力し、
前記最適な移動順序に基づいて、前記各仮想ホストに対して仮想マシン移動司令部が前記仮想コンピュータの移動命令を順次発する
ことを特徴とする仮想マシン移動順序制御方法。
【００９６】
（付記７）  前記最適な移動順序を出力する処理が、
一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えないよう前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返すものであることを特徴とする、付記６に記載の仮想マシン移動順序制御方法。
【００９７】
（付記８）  各々が複数の仮想コンピュータを動作させる複数の仮想ホストとネットワークを介して接続された仮想マシン管理サーバにあって、
前記仮想マシン管理サーバが備えるコンピュータに、
前記各仮想ホストから当該ホストで動作する各仮想コンピュータのリソース利用率を収集する手順、
収集された前記リソース利用率から、前記各仮想ホストのリソース利用率の合計値を最も平準化する前記各仮想ホスト上の前記仮想コンピュータの配置を最適配置として決定する手順、
前記各仮想ホストの複数の前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返す移動パターンを特定してこれを最適な移動順序として出力する手順、
および前記最適な移動順序に基づいて、前記各仮想ホストに対して前記仮想コンピュータの移動命令を順次発する手順
を実行させることを特徴とする仮想マシン移動順序制御プログラム。
【００９８】
（付記９）  前記最適な移動順序を出力する手順が、
一の前記仮想コンピュータを一の前記仮想ホストから別の前記仮想ホストに移動させても、移動後の前記各仮想ホストの前記リソース利用率の合計の最大値が移動前の前記仮想ホストの前記リソース利用率の合計の最大値を越えないよう前記仮想コンピュータを一つずつ順次移動させて、これを前記仮想コンピュータの配置が前記最適配置となるまで繰り返すものであることを特徴とする、付記８に記載の仮想マシン移動順序制御プログラム。
【産業上の利用可能性】
【００９９】
本発明は、コンピュータネットワークにおける仮想コンピュータの運用において適用できる。前述のように、負荷を平準化すること以外の目的においても利用可能である。
【符号の説明】
【０１００】
１０、３１０  仮想マシン管理サーバ
１１  プロセッサ
１２  記憶手段
１３  通信手段
２０、２０ａ〜ｃ  仮想ホスト
３１ａ〜ｃ、３２ａ〜ｃ、３３ａ〜ｂ  仮想マシン
１０１  動作状態収集部
１０２  最適配置決定部
１０３、４０３  移動順序決定部
１０４  仮想マシン移動司令部
【図１】
0005817549.tif 000010
【図２】
0005817549.tif 000011
【図３】
0005817549.tif 000012
【図４】
0005817549.tif 000013
【図５】
0005817549.tif 000014
【図６】
0005817549.tif 000015
【図７】
0005817549.tif 000016
【図８】
0005817549.tif 000017
【図９】
0005817549.tif 000018
【図１０】
0005817549.tif 000019