(57)【要約】【課題】仮想マシン移動において，仮想マシンシステムのネットワーク状況を考慮して，仮想マシンの移動先物理マシンを決定することが可能となる技術を提供する。【解決手段】ネットワーク状況情報取得部１３は，仮想マシンの移動先候補となる物理マシンごとに算出された，仮想マシンの移動時に必要となる，仮想マシンシステムのネットワークにおける経路の再設定コストの情報を，再設定コスト算出部２１から取得する。ネットワーク状況情報取得部１３は，取得された再設定コストの情報をネットワーク状況情報記憶部１４に記憶する。ＶＭ移動先決定部１５は，リソース状況情報記憶部１２に記憶されたリソース状況情報と，ネットワーク状況情報記憶部１４に記憶された再設定コストの情報とを用いて，仮想マシンの移動先候補となる各物理マシンの評価を行う。ＶＭ移動先決定部１５は，最も評価が高い物理マシンを仮想マシンの移動先に決定する。【選択図】図３
2011028408.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンが動作可能な複数の物理マシンを有する仮想マシンシステムにおいて，物理マシン間の仮想マシンの移動を制御するコンピュータが実行するプログラムであって，
前記コンピュータに，
前記仮想マシンの移動先候補となる物理マシンごとに算出される，前記仮想マシンの移動時に必要となる前記仮想マシンシステムのネットワークにおける経路の再設定コストの情報を取得する手順と，
少なくとも前記再設定コストの情報を用いて，前記仮想マシンの移動先となる物理マシンを決定する手順とを
実行させるための仮想マシン移動制御プログラム。
【請求項２】
前記コンピュータに，さらに，前記仮想マシンの移動先候補となる物理マシンごとに算出される，前記仮想マシン移動後の前記仮想マシンシステムにおけるネットワーク全体としての負荷バランスの情報を取得する手順を実行させ，
前記仮想マシンの移動先となる物理マシンを決定する手順では，少なくとも前記再設定コストの情報と前記負荷バランスの情報とを用いて，前記仮想マシンの移動先となる物理マシンを決定する
ことを特徴とする請求項１に記載の仮想マシン移動制御プログラム。
【請求項３】
仮想マシンが動作可能な複数の物理マシンを有する仮想マシンシステムにおいて，物理マシン間の仮想マシンの移動を制御するコンピュータが実行するプログラムであって，
前記コンピュータに，
前記仮想マシンの移動先候補となる物理マシンごとに算出される，前記仮想マシン移動後の前記仮想マシンシステムにおけるネットワーク全体としての負荷バランスの情報を取得する手順と，
少なくとも前記負荷バランスの情報を用いて，前記仮想マシンの移動先となる物理マシンを決定する手順とを
実行させるための仮想マシン移動制御プログラム。
【請求項４】
前記コンピュータに，前記コンピュータがアクセス可能な記憶装置に記憶された，前記再設定コストが同じになる物理マシンをグループ化した情報であるグループ情報に基づいて，同じグループに属する物理マシンの重複を回避するように，前記仮想マシンの移動先候補となる物理マシンから，前記再設定コストの情報の取得対象となる物理マシンを抽出する手順を実行させ，
前記再設定コストの情報を取得する手順では，前記取得対象となる物理マシンごとに算出される前記再設定コストの情報を取得し，重複回避のために取得対象とならなかった物理マシンの再設定コストを，取得された同じグループに属する物理マシンの再設定コストとみなす
ことを特徴とする請求項１または請求項２に記載の仮想マシン移動制御プログラム。
【請求項５】
前記コンピュータに，前記コンピュータがアクセス可能な記憶装置に記憶された，前記負荷バランスが同じになる物理マシンをグループ化した情報であるグループ情報に基づいて，同じグループに属する物理マシンの重複を回避するように，前記仮想マシンの移動先候補となる物理マシンから，前記負荷バランスの情報の取得対象となる物理マシンを抽出する手順を実行させ，
前記負荷バランスの情報を取得する手順では，前記取得対象となる物理マシンごとに算出される前記負荷バランスの情報を取得し，重複回避のために取得対象とならなかった物理マシンの負荷バランスを，取得された同じグループに属する物理マシンの負荷バランスとみなす
ことを特徴とする請求項２または請求項３に記載の仮想マシン移動制御プログラム。
【請求項６】
仮想マシンが動作可能な複数の物理マシンを有する仮想マシンシステムにおいて，物理マシン間の仮想マシンの移動を制御する仮想マシン移動制御方法であって，
前記仮想マシンシステムが備えるコンピュータが，
前記仮想マシンの移動先候補となる物理マシンごとに算出される，前記仮想マシンの移動時に必要となる前記仮想マシンシステムのネットワークにおける経路の再設定コストの情報を取得する過程と，
少なくとも前記再設定コストの情報を用いて，前記仮想マシンの移動先となる物理マシンを決定する過程とを実行する
ことを特徴とする仮想マシン移動制御方法。
【請求項７】
仮想マシンが動作可能な複数の物理マシンを有する仮想マシンシステムにおいて，物理マシン間の仮想マシンの移動を制御する仮想マシン移動制御装置であって，
前記仮想マシンの移動先候補となる物理マシンごとに算出される，前記仮想マシンの移動時に必要となる前記仮想マシンシステムのネットワークにおける経路の再設定コストの情報を取得するネットワーク状況情報取得部と，
少なくとも前記再設定コストの情報を用いて，前記仮想マシンの移動先となる物理マシンを決定する移動先物理マシン決定部とを備える
ことを特徴とする仮想マシン移動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
ある物理マシン上の仮想マシンを他の物理マシンに移動する仮想マシン移動において，仮想マシンの移動先物理マシンを決定する仮想マシン移動制御プログラム，仮想マシン移動制御方法および仮想マシン移動制御装置に関するものである。
【背景技術】
【０００２】
複数の物理マシン上で複数の仮想マシンが動作する仮想マシンシステムにおいて，ある物理マシン上の仮想マシンを他の物理マシンに移動させる，仮想マシン移動の技術がある。以下，仮想マシンを，ＶＭ（Virtual Machine ）とも呼ぶ。仮想マシン移動は，例えば，移動元の物理マシンのメモリ上のＶＭのイメージを，移動先の物理マシンのメモリにコピーすることにより行われる。
【０００３】
ＶＭを他の物理マシン上に移動させる目的として，例えば以下に示すような３つの目的がある。
【０００４】
（１）負荷分散
高負荷の物理マシン上にあるＶＭを，低負荷の他の物理マシンに移動し，負荷を分散することで，負荷バランスをとる。
【０００５】
（２）保守
物理マシンを停止させて保守を行う場合に，保守対象の物理マシン上のＶＭを他の物理マシンに移動し，保守対象の物理マシンを停止することで，サービスを継続したまま保守対象の物理マシンの保守を行う。
【０００６】
（３）省電力化
時間帯によってサービスの負荷が低くなるような場合に，負荷が低くなる時間帯に一部の物理マシンにＶＭを移動して集約し，他の物理マシンの電源を切断することで，省電力化を図る。
【０００７】
（１）〜（３）のいずれの場合にも，ＶＭの移動先となる物理マシンを選択する必要がある。
【０００８】
ＶＭの移動先を決定する際に，各物理マシンの情報を利用して，トータルの性能が最大となるように，ＶＭの移動先を決定する技術が知られている。また，同一物理マシン上の他のＶＭとの依存度が高いＶＭを他の物理マシンに移動する要求がなされた場合に，その要求に対して警告を行う技術が知られている。また，ＶＭ間の通信を行う際に，それらのＶＭが所属する物理マシンが，異なる場合には複数の通信経路を確保し，同じ場合には１つの通信経路を確保することで，ネットワーク処理のために必要な負荷を削減する技術が知られている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１１５６５３号公報
【特許文献２】特開２００８−２９９７９１号公報
【特許文献３】特開２００８−２７８４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記の技術では，ＶＭの移動先物理マシンの決定において，ＶＭシステム内のネットワークにおける物理マシンとスイッチの接続状況や，ＶＭシステム内のネットワークにおける負荷の偏り状況などのネットワーク状況を考慮した，ＶＭの移動は行われていない。
【００１１】
そのため，ＶＭの移動先物理マシンによっては，ネットワークにおける経路変更のための再設定コスト，すなわちスイッチが持つ経路情報を設定変更するためのコストが高くなってしまう可能性がある。
【００１２】
現在の仮想マシンの実装では，サービス停止時間を可能な限り短くするための様々な試みがなされている。例えば，Ｘｅｎ仮想マシンモニタにおけるLive Migrationでは，サー
ビス停止時間が６０ｍｓ程度に抑えられている（参考文献１参照）。これにより，ＶＭの移動が生じても，サービスを停止させずに運用を行うことができる。なお，Ｘｅｎは，XenSource,Inc.の登録商標である。
【００１３】
〔参考文献１〕
“Live Migration of Virtual Machines”，In Proceedings of the 2nd ACM/USENIX Symposium on Networked Systems Design and Implementation 
しかし，例えば現在のInfiniBandの実装では，ＶＭ移動にともなう経路の再設定コストが高い場合に，サービス停止時間が増加する可能性がある。InfiniBandは，高速，高信頼性を特徴とする，InfiniBand Trade Associationが規格化したネットワークである。なお，InfiniBandは，InfiniBand Trade Associationの登録商標である。
【００１４】
InfiniBandでは，各スイッチが，どのポートにパケットを転送するかの情報であるＦＤＢ（Forwarding Data Base）を持つ。現在のInfiniBandの実装では，ＶＭ移動にともなう経路の再設定コストの大半は，スイッチ上でのＦＤＢ更新処理で占められている。したがって，ＶＭの移動にともなう経路変更により，多数のスイッチのＦＤＢ更新処理が発生すると，再設定コストが高くなってしまう。
【００１５】
具体的には，現在のInfiniBandの実装において，ＦＤＢ再設定時間としては，スイッチあたり１ｍｓ〜１０ｍｓ程度の時間が必要となる。例えば１０００スイッチを持つシステムにおいて，すべてのスイッチの再設定を行うためには，１秒〜１０秒程度の時間が必要となる。
【００１６】
ＦＤＢの再設定処理が行われている間には，移動対象のＶＭへの経路が通信できない状態となる。この間，ＶＭはサービスを停止しなければならない。すなわち，スイッチが持つ経路情報を設定変更するためのコストが高くなると，ＶＭの移動によってサービスが停止してしまうという問題がある。
【００１７】
本発明は，上記の問題点の解決を図り，仮想マシン移動において，ＦＤＢの再設定コストやネットワーク負荷を考慮して，仮想マシンの移動先物理マシンを決定することが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
開示するプログラムは，仮想マシンが動作可能な複数の物理マシンを有する仮想マシンシステムにおいて，物理マシン間の仮想マシンの移動を制御するコンピュータを，次のように機能させる。
【００１９】
すなわち，前記プログラムは，前記プログラムがインストールされて実行されるコンピュータに，仮想マシンの移動先候補となる物理マシンごとに算出される，仮想マシンの移動時に必要となる仮想マシンシステムのネットワークにおける経路の再設定コストの情報を取得する手順と，少なくとも再設定コストの情報を用いて，仮想マシンの移動先となる物理マシンを決定する手順とを実行させる。
【００２０】
また，前記プログラムは，前記プログラムがインストールされて実行されるコンピュータに，仮想マシンの移動先候補となる物理マシンごとに算出される，仮想マシン移動後の仮想マシンシステムにおけるネットワーク全体としての負荷バランスの情報を取得する手順と，少なくとも負荷バランスの情報を用いて，仮想マシンの移動先となる物理マシンを決定する手順とを実行させる。
【発明の効果】
【００２１】
上記の技術により，仮想マシンシステムのネットワークにおける経路の再設定コストやネットワーク負荷が考慮された，仮想マシンの移動先物理マシンの決定が可能となる。
【図面の簡単な説明】
【００２２】
【図１】ＶＭの移動先による経路変更を説明する図である。
【図２】ＶＭの移動先によるネットワーク負荷変化を説明する図である。
【図３】本実施の形態によるＶＭ移動制御部の構成例（１）を示す図である。
【図４】本実施の形態によるリソース状況データの例を示す図である。
【図５】本実施の形態による再設定コスト算出の例を示す図である。
【図６】本実施の形態による再設定コストデータの例を示す図である。
【図７】本実施の形態による負荷バランス算出の例を示す図である。
【図８】本実施の形態による負荷バランスデータの例を示す図である。
【図９】本実施の形態のＶＭ移動制御部によるＶＭ移動先決定処理フローチャートである。
【図１０】本実施の形態のＶＭ移動先決定部による移動先候補の絞込み処理フローチャートである。
【図１１】本実施の形態によるＶＭ移動制御部の構成例（２）を示す図である。
【図１２】本実施の形態によるサーバグループデータの例を示す図である。
【図１３】本実施の形態のＶＭ移動制御部によるネットワーク状況取得対象抽出処理フローチャートである。
【図１４】本実施の形態のＶＭ移動制御部による再設定コストを用いたＶＭ移動先決定処理フローチャートである。
【図１５】本実施の形態による再設定コストの取得対象となる物理サーバの抽出を説明する図である。
【図１６】本実施の形態による同一サーバグループに属する物理サーバの再設定コストの補完を説明する図である。
【図１７】本実施の形態のＶＭ移動制御部による負荷バランスを用いたＶＭ移動先決定処理フローチャートである。
【図１８】本実施の形態による負荷バランスの取得対象となる物理サーバの抽出を説明する図である。
【図１９】本実施の形態による同一サーバグループに属する物理サーバの負荷バランスの補完を説明する図である。
【発明を実施するための形態】
【００２３】
以下，本実施の形態について，図を用いて説明する。
【００２４】
ＶＭ移動において，ＶＭの移動先となる物理マシンを選択する場合に，ＶＭシステム内の各物理マシンのリソース状況に基づいて，ＶＭの移動先となる物理マシンを選択する方法が考えられる。
【００２５】
例えば，ＶＭの移動先物理マシンを決定するために用いる，各物理マシンのリソース状況を示す情報として，物理マシンのＣＰＵ（Central Processing Unit ）負荷の情報や，物理マシンのメモリ負荷の情報，物理マシンのＩ／Ｏ（Input/Output）負荷の情報などを用いることができる。
【００２６】
物理マシンのＣＰＵ負荷としては，例えばＣＰＵ使用率などが用いられる。物理マシンのメモリ負荷としては，例えばメモリ使用量や残量などが用いられる。物理マシンのＩ／Ｏ負荷としては，Ｉ／Ｏ使用量や残量などが用いられる。
【００２７】
前述のＩ／Ｏ使用量は，物理マシンのネットワーク通信量やディスクへのリード／ライト量などの，物理マシンとＩ／Ｏとの間のデータ転送量を示す。また，Ｉ／Ｏ使用量に対するＩ／Ｏ残量は，データ転送量のキャパシティからＩ／Ｏ使用量を差し引いたものである。
【００２８】
各物理マシンが備えるＶＭ管理機構は，常時，自物理マシンのリソース状況をモニタリングしている。ＶＭ管理機構は，ハイパーバイザや仮想マシンモニタなどとも呼ばれ，物理マシン上で動作するＶＭを管理する。各物理マシン上のＶＭ管理機構は，互いにデータを交換して，ＶＭシステム全体でリソース状況の情報を共有する。また，ＶＭシステム全体を管理するＶＭ管理装置を用意し，そのＶＭ管理装置が各物理マシン上のＶＭ管理機構からリソース状況の情報を取得して，全物理マシンのリソース状況を一括管理する場合もある。
【００２９】
各物理マシンのリソース状況に基づいてＶＭの移動先物理マシンを決定する方法では，移動先の候補となる物理マシンごとにそのリソース状況を評価し，最も評価が高い物理マシン，すなわち最も負荷が低いと考えられる物理マシンを，ＶＭの移動先物理マシンとして決定する。各物理マシンのリソース状況に基づいてＶＭの移動先物理マシンを決定することにより，できるだけ負荷が分散するように，ＶＭの再配置を行うことができる。
【００３０】
しかし，各物理マシンのリソース状況だけを評価してＶＭの移動先物理マシンを決定する際，物理マシンとスイッチがＶＭシステム内のネットワーク上でどのように接続されているかなどは考慮されない。そのため，ＶＭ移動時のネットワークにおける経路の再設定コストが高くつく可能性がある。
【００３１】
図１は，ＶＭの移動先による経路変更を説明する図である。
【００３２】
図１に示すＶＭシステムは，複数の物理サーバ２０１〜２１６が，複数のスイッチ３０１〜３２８によって接続された構成となっている。物理サーバ２０１〜２１６は，ＶＭが動作可能な物理マシンである。なお，図１に示す物理サーバ２０１〜２１６において，括弧内の文字は，その物理サーバのサーバ名を示す。スイッチ３０１〜３２８は，回線やパケットの交換機能を持った通信装置である。
【００３３】
なお，図１では記載が省略されているが，各物理サーバ２０１〜２１６にはＶＭ制御機構が実装されており，各物理サーバ２０１〜２１６上では複数のＶＭが動作している。各物理サーバ２０１〜２１６のＶＭ制御機構には，ＶＭの移動を制御するＶＭ移動制御機能が実装されている。
【００３４】
図１に示すＶＭシステムのネットワークは，InfiniBand（ＩＢ）のネットワークである。InfiniBandは，InfiniBand Trade Associationが規格化したネットワークであり，高速，高信頼性が特徴である。InfiniBandは，主に，サーバ間インタコネクトとして使用される。なお，InfiniBandは，InfiniBand Trade Associationの登録商標である。以下，InfiniBandを，ＩＢとも記載する。
【００３５】
InfiniBandでは，宛先ごとにＬＩＤ（Local Identifier）が与えられている。ＬＩＤは，ＩＢネットワークにおけるアドレスの一種であり，同一Ｓｕｂｎｅｔ内のＨＣＡ（Host Channel Adaptor）やスイッチ３０１〜３２８を，一意に識別する１６ｂｉｔの識別子である。ＬＩＤは，ＩＰアドレスやＭＡＣアドレスなどに相当する。なお，Ｓｕｂｎｅｔは，ＩＢネットワークにおけるスイッチ３０１〜３２８のみで転送可能なネットワークを示す。Ｓｕｂｎｅｔ間の通信を行うためには，ルータが必要となる。また，ＨＣＡは，Ｅｔｈｅｒｎｅｔ（登録商標）におけるＮＩＣ（Network Interface Card）に相当する装置である。
【００３６】
図１に示すＩＢのＶＭシステムでは，物理サーバ２０１〜２１６上の各ＶＭは，それぞれ仮想化されたＨＣＡを持つ。また，仮想化されたＨＣＡには，それぞれＬＩＤが割り当てられている。ＶＭは，ＶＭ移動時に，割り当てられたＬＩＤを保持したまま，仮想化されたＨＣＡと共に移動する。
【００３７】
各スイッチ３０１〜３２８は，ＬＩＤごとにどのポートにパケットを転送するかの情報であるＦＤＢ（Forwarding Data Base）を持つ。各スイッチ３０１〜３２８は，自らが有するＦＤＢに従って，行き先ＬＩＤに対応するポートへのパケット転送を行う。ＦＤＢは，スイッチ３０１〜３２８において，宛先アドレスに対する出力ポートを記述したテーブルである。ＩＢでは，各スイッチ３０１〜３２８がＦＤＢを持ち，ＦＤＢに基づいてルーティングを行っている。
【００３８】
ＳＭ（Subnet Manager）４００は，Ｓｕｂｎｅｔ内のネットワークを管理するモジュールである。ＳＭ４００は，ＨＣＡやスイッチ３０１〜３２８に対するＬＩＤの割り当てや，各スイッチ３０１〜３２８が持つＦＤＢの算出および配布を行う。ＳＭ４００は，Ｓｕｂｎｅｔ内のルーティング設定，すなわち各スイッチ３０１〜３２８が有するＦＤＢの設定を行う。ＳＭ４００は，固定された物理サーバまたはスイッチに備えられる。図１に示すＶＭシステムでは，物理サーバ２１６にＳＭ４００が備えられている。
【００３９】
ＶＭごとにＬＩＤが割り当てられている場合，ＶＭはＬＩＤと共に移動するので，各スイッチ３０１〜３２８が持つＦＤＢの更新が必要となる。ＳＭ４００は，ＶＭ移動時に，そのＶＭの移動に応じた経路の再設定を行う。すなわち，ＳＭ４００は，ＶＭ移動時に，そのＶＭの移動に応じて，必要な各スイッチが持つＦＤＢの書き換えを行う。
【００４０】
図１に示すＶＭシステムにおいて，物理サーバ２０８上のＶＭ１０１を，他の物理サーバに移動する例について，説明する。
【００４１】
InfiniBandでは，各スイッチ３０１〜３２８は，宛先のＬＩＤに対する出力ポートの情報であるＦＤＢを持ち，このＦＤＢを用いて該当ＬＩＤに対してパケットを配送する。例えば，図１に示すＶＭシステムにおいて，各スイッチ３０１〜３２８が持つＦＤＢのＶＭ１０１に向かう経路の設定は，以下のように設定されている。
【００４２】
・スイッチ３２４：物理サーバ２０８に向かうポート
・スイッチ３１２，３１６：スイッチ３２４に向かうポート
・スイッチ３０１，３０２：スイッチ３１２に向かうポート
・スイッチ３０３，３０４：スイッチ３１６に向かうポート
・その他のスイッチ：自分より上段のスイッチのいずれかに向かうポート（ＶＭシステムの実装に依存する）
ＶＭ移動にともなって，宛先の物理的な位置が移動する場合には，各スイッチ３０１〜３２８のＦＤＢの更新により，経路の更新が行われる。以下では，ＶＭ移動にともなうＦＤＢ等の経路情報の設定コストなど，ＶＭ移動時のネットワークの経路更新に必要な設定コストを，再設定コストと呼ぶ。現在のInfiniBandの実装では，再設定コストの大半は，スイッチ上でのＦＤＢ更新処理で占められている。したがって，本実施の形態では，再設定が必要となるスイッチの数を，再設定コストとする。
【００４３】
例えば，ＶＭ１０１が物理サーバ２０７に移動する場合には，スイッチ３２４が持つＦＤＢにおいて，宛先がＶＭ１０１であるパケットの出力ポートが物理サーバ２０７に向かうポートに変更されればよい。他のスイッチについては，更新が不要である。この場合には，ＦＤＢを更新するスイッチの数である１が，再設定コストとなる。
【００４４】
また，ＶＭ１０１が物理サーバ２０６に移動する場合には，以下のスイッチが持つＦＤＢの変更が必要である。
【００４５】
・スイッチ３２４：自分より上段のスイッチのいずれかに向かうポート
・スイッチ３２３：物理サーバ２０６に向かうポート
・スイッチ３１２，３１６：スイッチ３２３に向かうポート
この場合には，ＦＤＢを更新するスイッチの数である４が，再設定コストとなる。
【００４６】
また，ＶＭ１０１が物理サーバ２０９に移動する場合は，以下のスイッチが持つＦＤＢの変更が必要である。
【００４７】
・スイッチ３２４：自分より上段のスイッチのいずれかに向かうポート
・スイッチ３１２，３１６：自分より上段のスイッチのいずれかに向かうポート
・スイッチ３２５：物理サーバ２０９に向かうポート
・スイッチ３１３，３１７：スイッチ３２５に向かうポート
・スイッチ３０１，３０２：スイッチ３１３に向かうポート
・スイッチ３０３，３０４：スイッチ３１７に向かうポート
この場合には，ＦＤＢを更新するスイッチの数である１０が，再設定コストとなる。
【００４８】
このように，ＶＭ１０１の移動を行った場合には，ＶＭ１０１の移動先となる物理サーバに応じて，それぞれスイッチが持つＦＤＢを再設定するための処理コストが掛かる。
【００４９】
従来の各物理マシンのリソース状況に基づいてＶＭの移動先物理マシンを決定する方法では，再設定コストを考慮せずに，各物理サーバ２０１〜２１６のリソース状況のみで，ＶＭの移動先物理サーバを決定する。そのため，例えば，物理サーバ２０９のリソース負荷が最も小さいと評価された場合に，ＶＭ１０１の移動先物理サーバとして物理サーバ２０９が選択される。
【００５０】
しかし，ＶＭ１０１を物理サーバ２０８から物理サーバ２０９に移動する場合には，そのＶＭ移動に合わせて，上記のように１０個のスイッチが持つＦＤＢを更新する必要がある。すなわち，ＶＭ１０１を物理サーバ２０８から物理サーバ２０９に移動する場合には，再設定コストが高くなってしまう。これに対して，ＶＭ１０１を物理サーバ２０８から物理サーバ２０７に移動する場合には，上記のように１個のスイッチが持つＦＤＢを更新するだけでよい。
【００５１】
このように，ＶＭの移動先となる物理サーバによっては，ネットワークの再設定コスト，すなわちスイッチの経路変更コストが高くなる可能性がある。
【００５２】
ＶＭシステムの規模が小さければ，再設定コストが極端に高くなるようなことはない。しかし，ＶＭシステムの規模が大きい場合には，多数のスイッチのＦＤＢの書き換えが必要となる場合もある。１台のスイッチのＦＤＢの書き換えには，１ｍｓ〜１０ｍｓ程度の時間が必要となるため，できればＦＤＢの設定変更が必要となるスイッチの台数が少なくなるようにしたい。例えば，１０００台もの物理サーバ上で数千のＶＭが動作する規模のＶＭシステムも存在する。このような規模のＶＭシステムでは，ＶＭの移動先物理サーバの選択結果によっては，再設定コストが非常に高くなってしまう可能性がある。
【００５３】
なお，このような問題は，ＩＢネットワークに限らず，スイッチごとに経路情報を持ち，ＶＭの移動にともないその経路情報を更新する必要があり，その更新コストが高い場合には，常に当てはまる問題である。
【００５４】
図２は，ＶＭの移動先によるネットワーク負荷変化を説明する図である。
【００５５】
図２に示すＶＭシステムは，複数の物理サーバ２２１〜２２８が，スイッチ３３１〜３４４によって接続された構成となっている。物理サーバ２２１〜２２８は，ＶＭが動作可能な物理マシンである。なお，図２に示す物理サーバ２２１〜２２８において，括弧内の文字は，その物理サーバのサーバ名を示す。
【００５６】
なお，図２では記載が省略されているが，各物理サーバ２２１〜２２８にはＶＭ制御機構が実装されており，各物理サーバ２２１〜２２８上では複数のＶＭが動作している。各物理サーバ２２１〜２２８のＶＭ制御機構には，ＶＭの移動を制御するＶＭ移動制御機能が実装されている。
【００５７】
本実施の形態では，物理サーバ２２１〜２２８上の各ＶＭは，それぞれ仮想化されたＮＩＣを持つ。また，仮想化されたＮＩＣには，それぞれＭＡＣアドレスやＩＰアドレスが割り当てられている。ＶＭは，ＶＭ移動時に，割り当てられたＭＡＣアドレスやＩＰアドレスを保持したまま，仮想化されたＮＩＣと共に移動する。
【００５８】
スイッチ３３１〜３４４は，回線やパケットの交換機能を持った通信装置である。スイッチ３３１，３３２は，スイッチ同士を接続するためのＳｐｉｎｅスイッチである。スイッチ３４１〜３４４は，物理サーバと接続するためのＬｅａｆスイッチである。
【００５９】
図２に示すＶＭシステムのネットワークは，ＶＬＡＮ（Virtual Local Area Network）ルーティングネットワークである。図２に示す事例は，スイッチでタグ付けを行うＶＬＡＮルーティング法（参考文献２参照）の事例である。
【００６０】
〔参考文献２〕
大塚，鯉渕，工藤，天野，“スイッチでタグ付けを行うＶＬＡＮルーティング法”，情報処理学会論文誌コンピューティングシステム（ACS15 ），pp.46-58，2006
図２に示すＶＭシステムでは，２つのＶＬＡＮが設定されている。図２において，実線は，ネットワークＡのＶＬＡＮに属するリンクを示す。また，破線は，ネットワークＢのＶＬＡＮに属するリンクを示す。
【００６１】
ＶＬＡＮ管理部５００は，ＶＬＡＮの設定やＶＬＡＮの管理を行う。図２に示すＶＭシステムでは，ＶＬＡＮ管理部５００は，物理サーバ２２８上で実現されているが，ＶＬＡＮ管理部５００が，各物理サーバ２２１〜２２８とは別のコンピュータで実現されてもよい。
【００６２】
図２に示すＶＭシステムでは，スイッチ３４１〜３４４に接続された，左側の物理サーバ２２１，２２３，２２５，２２７から到着したパケットは，スイッチ３３１に転送される。すなわち，スイッチ３４１〜３４４の左側は，ネットワークＡのＶＬＡＮに所属するように，ＶＬＡＮの設定がなされている。
【００６３】
また，スイッチ３４１〜３４４に接続された，右側の物理サーバ２２２，２２４，２２６，２２８から到着したパケットは，スイッチ３３２に転送される。すなわち，スイッチ３４１〜３４４の右側は，ネットワークＢのＶＬＡＮに所属するように，ＶＬＡＮの設定がなされている。
【００６４】
このように，図２に示すＶＭシステムでは，スイッチに接続された物理的なポート番号によるソースルーティングが行われている。
【００６５】
図２に示すＶＭシステムにおいて，物理サーバ２２３上のＶＭ１０２を，他の物理サーバに移動する例について，説明する。
【００６６】
ＶＭ移動前には，物理サーバ２２３のＶＭ１０２は，スイッチ３３１を経由して，通信を行っている。
【００６７】
従来の各物理マシンのリソース状況に基づいてＶＭの移動先物理マシンを決定する方法では，ネットワーク全体としての通信負荷のバランスを考慮せずに，各物理サーバ２２１〜２２８のリソース状況のみで，移動先を決定する。そのため，例えば，物理サーバ２２４のリソース負荷が最も小さいと評価された場合に，ＶＭ１０２の移動先として物理サーバ２２４が選択される。ＶＭ移動後には，ＶＭ１０２は，スイッチ３３２を経由して，通信を行うようになる。
【００６８】
しかし，ＶＭ１０２を物理サーバ２２３から物理サーバ２２４に移動する場合には，そのＶＭ移動によって，ネットワークＡとネットワークＢとの間の通信負荷のバランスは，変わってしまう。すなわち，ＶＭ１０２の移動によって，スイッチ３３２を経由するネットワークＢは，ＶＭ移動前よりも混雑するようになる。
【００６９】
これに対して，ＶＭ１０２を物理サーバ２２３から物理サーバ２２１に移動する場合には，ＶＭ１０２は，ＶＭ移動前と同様に，スイッチ３３１を経由して，通信を行うことになる。すなわち，ネットワークＡとネットワークＢとの間の通信負荷のバランスは，変わらない。
【００７０】
このように，各物理サーバ２２１〜２２８のリソース状況のみに基づいてＶＭの移動先物理サーバを決定した場合には，物理サーバ間での負荷バランスの調整は可能である。しかし，ＶＭの移動先となる物理サーバによっては，ＶＭシステムにおけるネットワーク全体としての負荷バランスが偏る可能性がある。
【００７１】
以上のように，ＶＭシステム内のネットワーク接続状況を考慮せずに，ＶＭの移動先となる物理サーバを決定すると，ネットワークにおける経路の再設定コストが高くなってしまう，ネットワーク全体としての負荷バランスが偏ってしまうなどの問題が発生する可能性がある。
【００７２】
以下では，ＶＭシステム内のネットワーク接続状況を考慮して，ＶＭの移動先となる物理サーバを決定する，本実施の形態によるＶＭ移動制御の技術について説明する。
【００７３】
図３は，本実施の形態によるＶＭ移動制御部の構成例（１）を示す図である。
【００７４】
ＶＭ移動制御部１０は，ＶＭの移動を制御する装置である。ＶＭ移動制御部１０は，各物理サーバが備えるＶＭ管理機構（図示省略）や，ＶＭシステム全体を管理するＶＭ管理装置（図示省略）などに備えられる。本実施の形態では，ＶＭ移動制御部１０は，各物理サーバが備えるＶＭ管理機構に実装されているものとする。
【００７５】
図３に示すＶＭ移動制御部１０には，特に，ＶＭ移動時にＶＭの移動先物理サーバの決定を行う機能に関連する構成のみが記載されている。ＶＭ移動制御部１０は，リソース状況情報取得部１１，リソース状況情報記憶部１２，ネットワーク状況情報取得部１３，ネットワーク状況情報記憶部１４，ＶＭ移動先決定部１５，再設定コスト算出部２１，負荷バランス算出部２２を備える。ＶＭ移動制御部１０またはＶＭ移動制御部１０が備える各機能部は，コンピュータが備えるＣＰＵ，メモリ等のハードウェアとソフトウェアプログラムとにより実現される。
【００７６】
なお，図３に示すＶＭ移動制御部１０における各機能部は，必ずしもすべてが各物理サーバ上で実現されている必要はない。例えば，図３に示すＶＭ移動制御部１０における再設定コスト算出部２１，負荷バランス算出部２２は，ＶＭ移動制御部１０の外部で実現されてもよい。
【００７７】
リソース状況情報取得部１１は，各物理サーバからリソース状況を示す情報を取得する。各物理サーバ上のＶＭ制御機構は，常時，自物理サーバのリソース状況を監視している。リソース状況情報取得部１１は，例えば，定期的に各物理サーバのリソース状況を示す情報を取得し，取得された情報をリソース状況情報記憶部１２に記憶する。リソース状況情報記憶部１２は，各物理サーバのリソース状況を示す情報を記憶する，コンピュータがアクセス可能な記憶装置である。
【００７８】
図４は，本実施の形態によるリソース状況データの例を示す図である。
【００７９】
図４に示すリソース状況データは，リソース状況情報記憶部１２に記憶された，ある物理サーバについてのリソース状況を示す情報である。図４に示すリソース状況データにおいて，ＶＭＩＤは，物理サーバ上で動作するＶＭを一意に識別するための識別情報である。
【００８０】
図４に示すリソース状況データでは，ＶＭＩＤで示されたＶＭごとの，ＣＰＵ使用率［％］，メモリ使用量［ＭＢ］，Ｉ／Ｏ使用量［ＭＢ／ｓ］のデータが記録されている。図４に示すリソース状況データにおいて，合計は，その物理サーバ上で動作するすべてのＶＭによって消費されるリソース量の合計値である。総量は，その物理サーバの最大リソース量である。残量は，リソースの総量から使用中のリソース量の合計を差し引いて得られる，その物理サーバで現在空いているリソースの量である。
【００８１】
リソース状況情報取得部１１は，図４に示すような物理サーバのリソース状況を示す情報を，ＶＭシステムに属する全物理サーバについて収集し，収集された情報をリソース状況情報記憶部１２に格納する。
【００８２】
ネットワーク状況情報取得部１３は，ネットワーク状況に関する情報を取得する。取得するネットワーク状況に関する情報としては，ネットワークの経路変更のための再設定コストの情報や，ネットワーク全体としての負荷の偏りを示す負荷バランスの情報などがある。ネットワーク状況情報取得部１３は，再設定コスト算出部２１に対して，ＶＭの移動先候補となるすべての物理サーバについて，ＶＭ移動時のネットワークの経路更新のための再設定コストを算出するように依頼する。また，ネットワーク状況情報取得部１３は，負荷バランス算出部２２に対して，ＶＭの移動先候補となるすべての物理サーバについて，ＶＭ移動後のネットワーク全体としての負荷バランスの偏りを算出するように依頼する。
【００８３】
ネットワーク状況情報取得部１３は，取得されたネットワーク状況に関する情報をネットワーク状況情報記憶部１４に記憶する。ネットワーク状況情報記憶部１４は，物理サーバごとの，再設定コストの情報や負荷バランスの情報などのネットワーク状況に関する情報を記憶する，コンピュータがアクセス可能な記憶装置である。
【００８４】
再設定コスト算出部２１は，ＶＭの移動先候補となる物理サーバごとに，ＶＭの移動時に必要となる，ＶＭシステムのネットワークにおける経路の再設定コストを算出する。再設定コスト算出部２１は，算出された再設定コストの情報を，ネットワーク状況情報取得部１３に送る。
【００８５】
再設定コスト算出部２１は，図１に示すＩＢのＶＭシステムの例では，例えば，ネットワークの再設定処理はＳＭ４００が実施し，再設定コストはＳＭ４００の実装に依存することを考慮すると，ＳＭ４００に実装されることが好ましい。再設定コスト算出部２１が，物理サーバ上のＶＭ管理機構に実装されてもよい。このとき，再設定コスト算出部２１は，例えばＳＭ４００等から，再設定コストの設定に必要なネットワーク上のスイッチ構成の情報などを取得する。再設定コスト算出部２１については，ＶＭシステムのネットワーク管理の手法に依存するため，そのネットワークに合わせた個別の実装が行われる。
【００８６】
図５は，本実施の形態による再設定コスト算出の例を示す図である。
【００８７】
ここでは，図１に示すＩＢのＶＭシステムにおける，ＶＭの移動先候補となる物理サーバごとの再設定コスト算出の例を説明する。
【００８８】
ＶＭシステムのネットワークにおける経路の再設定コストは，ＶＭ移動によってＦＤＢの設定変更が必要となるスイッチの数に比例する。図５に示す例では，再設定コストとして，ＶＭ移動によってＦＤＢの設定変更が必要となるスイッチの数が算出されている。ＶＭ移動によってＦＤＢの設定変更が必要となるスイッチは，ＶＭの移動元物理サーバと移動先物理サーバとを結ぶ経路上に存在するスイッチである。なお，ＶＭ移動によってＦＤＢの設定変更が必要となるスイッチごとにそれぞれ重み付けを行い，それぞれ得られた値を合算することにより，再設定コストを求めるようにしてもよい。
【００８９】
図５に示す例は，物理サーバ２０８上のＶＭ１０１が他の物理サーバに移動する場合に，ＶＭ１０１の移動先候補となる物理サーバごとに，再設定コストが算出された例である。
【００９０】
例えば，物理サーバ２０７を移動先とした場合には，スイッチ３２４が持つＦＤＢのみの更新が必要となるため，図５に示すように，再設定コストは１となる。また，例えば，物理サーバ２０６を移動先とした場合には，スイッチ３１２，３１６，３２３，３２４が持つＦＤＢの更新が必要となるため，図５に示すように，再設定コストは４となる。また，例えば，物理サーバ２０９を移動先とした場合には，スイッチ３０１，３０２，３０３，３０４，３１２，３１３，３１６，３１７，３２４，３２５が持つＦＤＢの更新が必要となるため，図５に示すように，再設定コストは１０となる。
【００９１】
ネットワーク状況情報取得部１３は，再設定コスト算出部２１により算出された，図５に示す物理サーバごとの再設定コストの情報を取得し，ネットワーク状況情報記憶部１４に記憶する。
【００９２】
図６は，本実施の形態による再設定コストデータの例を示す図である。
【００９３】
図６に示す再設定コストデータは，図５に示す物理サーバごとの再設定コストの情報が，ネットワーク状況情報記憶部１４に記憶された例である。
【００９４】
図６に示す再設定コストデータのサーバ名は，図５に示す各物理サーバ２０１〜２１６のサーバ名である。すなわち，図６に示す再設定コストデータは，図５におけるＶＭの移動先候補となる物理サーバのサーバ名と，再設定コスト算出部２１により算出された再設定コストとの対応を示す情報となっている。
【００９５】
負荷バランス算出部２２は，ＶＭの移動先候補となる物理サーバごとに，ＶＭの移動後のＶＭシステムにおけるネットワーク全体としての負荷バランスを算出する。負荷バランス算出部２２は，算出された負荷バランスの情報を，ネットワーク状況情報取得部１３に送る。
【００９６】
負荷バランス算出部２２は，図２に示すＶＬＡＮルーティングネットワークのＶＭシステムの例では，例えば，ネットワークトポロジー情報から算出できるため，ＶＭ移動制御部１０の実装箇所に実装されることが好ましい。図２に示すＶＭシステムにおいて，ＶＬＡＮ管理部５００は，各ＶＬＡＮのネットワークにおける通信量の負荷の計測や，負荷バランスの算出を行う。図２に示す例では，物理サーバ２２８に実装されたＶＬＡＮ管理部５００で，負荷バランス算出部２２が実現されている。負荷バランス算出部２２が，物理サーバとは別のコンピュータで実現されてもよい。負荷バランス算出部２２については，ＶＭシステムのネットワーク管理の手法に依存するため，そのネットワークに合わせた個別の実装が行われる。
【００９７】
図７は，本実施の形態による負荷バランス算出の例を示す図である。
【００９８】
ここでは，図２に示す，ＶＬＡＮルーティングネットワークのＶＭシステムにおける，ＶＭの移動先候補となる物理サーバごとの負荷バランス算出の例を説明する。負荷バランス算出の一例として，ネットワーク全体をＶＬＡＮにより２つのサブネットに分け，その間の平均負荷の差を負荷バランスの指標として算出する例を挙げる。
【００９９】
図７において，実線は，ネットワークＡのＶＬＡＮに属するリンクを示す。また，破線は，ネットワークＢのＶＬＡＮに属するリンクを示す。リンクを示す実線，破線の横の数字は，そのリンクのネットワーク負荷を表している。
【０１００】
物理サーバ２２３で動作するＶＭ１０２が，他の物理サーバに移動するものとする。ＶＭ１０２の移動前の各リンクのネットワーク負荷の平均は，ネットワークＡ，ネットワークＢでそれぞれ０．７５と０．９９であり，その差は０．２４である。
【０１０１】
ここで，物理サーバ２２３で動作するＶＭ１０２が，物理サーバ２２２に移動すると仮定して負荷バランスを算出する。なお，移動対象のＶＭ１０２により発生しているネットワーク負荷は，０．３であるものとする。
【０１０２】
ＶＭ１０２の移動によって，スイッチ３４２と移動元の物理サーバ２２３との間のリンクの負荷が０．３低減され，０．９から０．６となる。また，物理サーバ２２３はネットワークＡに属するので，スイッチ３３１とスイッチ３４２との間のリンクの負荷が０．３低減され，０．８から０．５となる。また，スイッチ３４１と移動先の物理サーバ２２２との間のリンクの負荷が０．３増加され，０．８から１．１となる。また，物理サーバ２２２はネットワークＢに属するので，スイッチ３３２とスイッチ３４１との間のリンクの負荷が０．３増加され，０．７から１．０となる。
【０１０３】
このようなＶＭ移動後のネットワーク状況に基づいてＶＬＡＮごとの平均負荷を求めると，ネットワークＡ，ネットワークＢでそれぞれ０．６８と１．０６となり，その差は０．３８となる。ＶＭ移動前の差０．２４と比べて，ネットワークＡとネットワークＢとの間の平均負荷の差が拡大している。ネットワーク間の平均負荷の差が小さい方が負荷バランスがとれているため，この場合には，負荷バランスが悪化することになる。
【０１０４】
負荷バランス算出部２２は，このような負荷バランスの算出を，ＶＭ１０２の移動先候補となるすべての物理サーバについて，実行する。
【０１０５】
なお，負荷バランスの指標として，ネットワーク全体を分けずに１つとして考えて，各リンクのネットワーク負荷の標準偏差を求め，その値が小さくなる方が負荷バランスが良いとみなす手法なども考えられる。
【０１０６】
ネットワーク状況情報取得部１３は，負荷バランス算出部２２により算出された，物理サーバごとの負荷バランスの情報を取得し，ネットワーク状況情報記憶部１４に記憶する。
【０１０７】
図８は，本実施の形態による負荷バランスデータの例を示す図である。
【０１０８】
図８に示す負荷バランスデータは，図７に示すＶＭシステムのネットワーク状況下で物理サーバごとに算出された負荷バランスの情報が，ネットワーク状況情報記憶部１４に記憶された例である。
【０１０９】
図８に示す負荷バランスデータのサーバ名は，図７に示す各物理サーバ２２１〜２２８のサーバ名である。すなわち，図８に示す負荷バランスデータは，図７におけるＶＭの移動先候補となる物理サーバのサーバ名と，負荷バランス算出部２２により算出された，ネットワークＡの平均負荷，ネットワークＢの平均負荷，平均負荷の差との対応を示す情報となっている。図８に示す負荷バランスデータにおいて，平均負荷の差が，負荷バランス算出部２２により算出された負荷バランスである。
【０１１０】
図３において，ＶＭ移動先決定部１５は，リソース状況情報記憶部１２に記憶されたリソース状況情報と，ネットワーク状況情報記憶部１４に記憶されたネットワーク状況情報とに基づいて，ＶＭの移動先物理サーバを決定する。より具体的には，ＶＭ移動先決定部１５は，ＶＭの移動先候補となる各物理サーバについて，リソース状況情報とネットワーク状況情報とを用いた評価を行い，最も高い評価となった物理サーバをＶＭの移動先物理サーバとして決定する。
【０１１１】
ここでは，ＣＰＵ負荷，メモリ負荷，Ｉ／Ｏ負荷，再設定コスト，負荷バランスの各パラメータに対して重みを付けて合算した値を評価値とし，最も評価値が高いものを移動先物理サーバとして決定する例を，説明する。
【０１１２】
ＶＭ移動先決定部１５は，ＶＭの移動先候補となる各物理サーバについて，各パラメータを次の式（１）に代入し，評価値を求める。
【０１１３】
評価値＝ｆc （ｘc ）＋ｆm （ｘm ）＋ｆi （ｘi ）
＋ｆs （ｘs ）＋ｆb （ｘb ）    ・・・式（１）
ここでは，式（１）において，パラメータｘc ，ｘm ，ｘi ，ｘs ，ｘb には，それぞれＣＰＵ使用率，メモリ残量，Ｉ／Ｏ残量，再設定コスト，負荷バランスの各値が代入されるものとする。ＣＰＵ使用率，メモリ残量，Ｉ／Ｏ残量の各値は，リソース状況情報記憶部１２に記憶されたリソース状況情報から得られる。再設定コスト，負荷バランスの各値は，それぞれネットワーク状況情報記憶部１４に記憶された再設定コストの情報，負荷バランスの情報から得られる。
【０１１４】
ｆ（ｘ）は，各パラメータを評価するための関数である。各パラメータを代入する関数ｆ（ｘ）には，様々なバリエーションがある。以下，関数ｆ（ｘ）の例を示す。
【０１１５】
【数１】
2011028408.tif 000003
【０１１６】
式（２）〜式（７）において，ａ，ｂは係数である。また，αは実数である。各パラメータごとに，どの式を用いるかは，任意である。例えば，試験的に各式に対してパラメータを代入して，係数を変更しながら試行錯誤を行い，適切と思われる式を見つけ出す。
【０１１７】
メモリ残量，Ｉ／Ｏ残量については，パラメータの値が大きいほど評価が高くなり，パラメータの値が小さいほど評価が低くなるように，関数ｆm （ｘm ），ｆi （ｘi ）を決定する。ＣＰＵ使用率，再設定コストについては，パラメータの値が大きいほど評価が低くなり，パラメータの値が小さいほど評価が高くなるように，関数ｆc （ｘc ），ｆs （ｘs ）を決定する。負荷バランスについては，例えば負荷バランスがネットワーク間の平均負荷の差やネットワーク負荷の標準偏差であれば，パラメータの値が大きいほど評価が低くなり，パラメータの値が小さいほど評価が高くなるように，関数ｆb （ｘb ）を決定する。
【０１１８】
なお，各パラメータごとの所定の閾値による絞込みによって，ＶＭの移動先候補となる物理サーバの絞込みを行うようにしてもよい。例えば，
（ｆc （ｘc ）＞Ｃ）∧（ｆm （ｘm ）＞Ｍ）∧（ｆi （ｘi ）＞Ｉ）
∧（ｆs （ｘs ）＞Ｓ）∧（ｆb （ｘb ）＞Ｂ）
を満たす物理サーバのみを，ＶＭの移動先候補とする。Ｃ，Ｍ，Ｉ，Ｓ，Ｂは，それぞれ所定の閾値である。
【０１１９】
上記の式（１）の例では，例えば，メモリ残量の評価がかなり低い場合でも，他の４つのパラメータの評価が高ければ，最高の評価値が得られるといったケースが発生する可能性がある。このようなケースでは，物理サーバのメモリ残量が移動してくるＶＭの動作に耐えうるものでなくても，その物理サーバがＶＭの移動先として選択されてしまう。閾値を用いた絞込みにより，極端に値が悪いパラメータを持つ物理サーバを，ＶＭの移動先候補から除外することができる。
【０１２０】
なお，パラメータごとの閾値を用いたＶＭの移動先候補となる物理サーバの絞込みで，ＶＭの移動先候補が０となるような場合には，例えば，オペレータにその旨を通知し，閾値を緩和させるなどすればよい。
【０１２１】
このように，本実施の形態のＶＭ移動制御部１０によって，ＶＭシステムのネットワーク状況が考慮された，ＶＭの移動先物理サーバの決定が可能となる。より具体的には，ＶＭ移動時において経路の再設定コストがより少ない物理サーバが，ＶＭの移動先物理サーバとして選択されやすくなる。また，移動後のネットワーク全体の負荷バランスの偏りがより少ない物理サーバが，ＶＭの移動先物理サーバとして選択されやすくなる。また，ＶＭ移動時において経路の再設定コストがより少なく，移動後のネットワーク全体の負荷バランスの偏りがより少ない物理サーバが，ＶＭの移動先物理サーバとして選択されやすくなる。
【０１２２】
図９は，本実施の形態のＶＭ移動制御部によるＶＭ移動先決定処理フローチャートである。
【０１２３】
ＶＭ移動制御部１０において，ＶＭ移動が発生すると，ネットワーク状況情報取得部１３は，ネットワーク状況の問い合わせを行う（ステップＳ１０）。より具体的には，ネットワーク状況情報取得部１３は，ＶＭシステムのネットワークにおける経路の再設定コストが必要な場合には，再設定コスト算出部２１に対して，ＶＭの移動先候補となる物理サーバごとの再設定コストの算出を依頼する。また，ネットワーク状況情報取得部１３は，ＶＭシステムにおけるネットワーク全体の負荷バランスが必要な場合には，負荷バランス算出部２２に対して，ＶＭの移動先候補となる物理サーバごとの負荷バランスの算出を依頼する。
【０１２４】
ネットワーク状況情報取得部１３は，ネットワーク状況情報を取得する（ステップＳ１１）。より具体的には，ネットワーク状況情報取得部１３は，再設定コスト算出部２１への依頼に対する応答として，ＶＭの移動先候補となる物理サーバごとに算出された再設定コストの情報を取得する。また，ネットワーク状況情報取得部１３は，負荷バランス算出部２２への依頼に対する応答として，ＶＭの移動先候補となる物理サーバごとに算出された負荷バランスの情報を取得する。取得された再設定コストの情報や負荷バランスの情報などのネットワーク状況情報は，ネットワーク状況情報記憶部１４に記憶される。
【０１２５】
ＶＭ移動先決定部１５は，ＶＭの移動先候補となる物理サーバから，１つを選択する（ステップＳ１２）。
【０１２６】
ＶＭ移動先決定部１５は，移動先候補の絞込み処理を行う（ステップＳ１３）。移動先候補の絞込み処理については，後述する。ＶＭ移動先決定部１５は，現在の処理対象の物理サーバが，移動先候補の絞込み処理の結果，移動先候補とされたかを判定する（ステップＳ１４）。
【０１２７】
移動先候補とされなかった場合（ステップＳ１４のＮＯ），すなわち選外と判定された場合には，ＶＭ移動先決定部１５は，現在の処理対象の物理サーバがＶＭの移動先候補から除外されたものとして，評価値の算出を行わない。
【０１２８】
移動先候補とされた場合には（ステップＳ１４のＹＥＳ），ＶＭ移動先決定部１５は，現在の処理対象の物理サーバをＶＭの移動先候補として，評価値の算出を行う（ステップＳ１５）。ＶＭ移動先決定部１５は，リソース状況情報記憶部１２に記憶されたリソース状況情報と，ネットワーク状況情報記憶部１４に記憶されたネットワーク状況情報とを用いて，例えば上記の式（１）により，評価値を算出する。算出された評価値は，ＶＭ移動先決定部１５が保持しておく。
【０１２９】
ＶＭ移動先決定部１５は，ＶＭの移動先候補となるすべての物理サーバについて，処理が終了したかを判定する（ステップＳ１６）。
【０１３０】
まだすべての移動先候補の物理サーバについて処理が終了していなければ（ステップＳ１６のＮＯ），ＶＭ移動先決定部１５は，ステップＳ１２に戻り，次の物理サーバについての処理を行う。
【０１３１】
すべての移動先候補の物理サーバについて処理が終了していれば（ステップＳ１６のＹＥＳ），ＶＭ移動先決定部１５は，評価値が最も高い物理サーバを，ＶＭの移動先物理サーバに決定する（ステップＳ１７）。
【０１３２】
図１０は，本実施の形態のＶＭ移動先決定部による移動先候補の絞込み処理フローチャートである。
【０１３３】
ここでは，ＶＭ移動先決定部１５は，処理対象の物理サーバについて，ＣＰＵ使用率の値ｘc ，メモリ残量の値ｘm ，Ｉ／Ｏ残量の値ｘi ，再設定コストの値ｘs ，負荷バランスの値ｘb を，それぞれの評価関数ｆ（ｘ）に代入する。ＶＭ移動先決定部１５は，それぞれの評価関数ｆ（ｘ）により得れた値が，それぞれ閾値条件を満たすか否かの判定により，処理対象の物理サーバがＶＭの移動先候補として十分であるかの判定を行う。
【０１３４】
処理対象の物理サーバについてのＣＰＵ使用率，メモリ残量，Ｉ／Ｏ残量の値は，リソース状況情報記憶部１２に記憶されたリソース状況情報から得られる。また，処理対象の物理サーバについての再設定コスト，負荷バランスの値は，ネットワーク状況情報記憶部１４に記憶されたネットワーク状況情報から得られる。
【０１３５】
なお，図１０において，Ｃ，Ｍ，Ｉ，Ｓ，Ｂは，それぞれ所定の閾値である。
【０１３６】
ＶＭ移動先決定部１５は，ＣＰＵ使用率の値ｘc について，ｆc （ｘc ）＞Ｃを満たすかを判定する（ステップＳ２０）。
【０１３７】
また，ＶＭ移動先決定部１５は，メモリ残量の値ｘm について，ｆm （ｘm ）＞Ｍを満たすかを判定する（ステップＳ２１）。
【０１３８】
また，ＶＭ移動先決定部１５は，Ｉ／Ｏ残量の値ｘi について，ｆi （ｘi ）＞Ｉを満たすかを判定する（ステップＳ２２）。
【０１３９】
また，ＶＭ移動先決定部１５は，再設定コストの値ｘs について，ｆs （ｘs ）＞Ｓを満たすかを判定する（ステップＳ２３）。
【０１４０】
また，ＶＭ移動先決定部１５は，負荷バランスの値ｘb について，ｆb （ｘb ）＞Ｂを満たすかを判定する（ステップＳ２４）。
【０１４１】
ステップＳ２０〜Ｓ２４の判定で，１つでも条件が満たされないものがあれば（ステップＳ２０〜Ｓ２４のいずれかでＮＯ），ＶＭ移動先決定部１５は，処理対象の物理サーバは選外であると判定する（ステップＳ２５）。
【０１４２】
ステップＳ２０〜Ｓ２４の判定で，すべての条件が満たされていれば（ステップＳ２０〜Ｓ２４のすべてがＹＥＳ），ＶＭ移動先決定部１５は，処理対象の物理サーバが移動先候補であると判定する（ステップＳ２６）。
【０１４３】
図１１は，本実施の形態によるＶＭ移動制御部の構成例（２）を示す図である。
【０１４４】
図１１に示すＶＭ移動制御部１０’は，図３に示すＶＭ移動制御部１０に，ネットワーク状況の問い合わせ範囲を限定する機能をさらに加えたものである。
【０１４５】
図３に示すＶＭ移動制御部１０のネットワーク状況情報取得部１３は，ＶＭが移動する可能性があるすべての物理サーバについてのネットワーク状況の問い合わせを，再設定コスト算出部２１や負荷バランス算出部２２などに対して行う。しかし，すべての物理サーバについて問い合わせを行うと，再設定コスト算出部２１や負荷バランス算出部２２による再設定コストや負荷バランスの算出時間が長大化する可能性がある。
【０１４６】
図１１に示すＶＭ移動制御部１０’は，このような問題を回避するために，ネットワーク状況情報の取得前に，ネットワーク状況情報の取得対象となる物理サーバの絞込みを行う。
【０１４７】
ここでは，２つのネットワーク状況情報の取得対象となる物理サーバを絞り込む手法について，説明する。
【０１４８】
１つ目のネットワーク状況情報の取得対象となる物理サーバを絞り込む手法は，取得する再設定コストや負荷バランスの値が同じとなる物理サーバ群をグループ化する手法である。この手法では，ＶＭ移動制御部１０’は，同じグループに属する物理サーバのうち１つの物理サーバについて，再設定コストの情報や負荷バランスの情報の取得を行う。ＶＭ移動制御部１０’は，同じグループに属する他の物理サーバについて，取得された１つの物理サーバについての再設定コストの情報や負荷バランスの情報で，補完を行う。補完では，再設定コストの取得対象とならなかった物理サーバの再設定コストが，同一サーバグループに属する再設定コストの取得対象となった物理サーバの再設定コストと同じである，とみなされる。また，補完では，負荷バランスの取得対象とならなかった物理サーバの負荷バランスが，同一サーバグループに属する負荷バランスの取得対象となった物理サーバの負荷バランスと同じである，とみなされる。
【０１４９】
このような手法により，ＶＭ移動制御部１０’は，グループにつき１回のみの問い合わせで，グループに属するすべての物理サーバについての，再設定コストの情報や負荷バランスの情報の取得が可能となる。すなわち，再設定コスト算出部２１や負荷バランス算出部２２による，再設定コストや負荷バランスの算出時間の短縮が可能となる。
【０１５０】
ＶＭ移動制御部１０’には，どの物理サーバ同士をグループ化するかの定義情報が，あらかじめ設定されている。以下では，グループ化された物理サーバ群を，サーバグループと呼ぶ。
【０１５１】
例えば，図１，図５に示すＩＢのＶＭシステムの例において，同じスイッチに接続された物理サーバへのＶＭ移動についての再設定コストの値は，同じである。例えば，図５に示すように，ＶＭ１０１の移動の例では，スイッチ３２３に接続された，物理サーバ２０５，２０６のどちらにＶＭ１０１を移動させても，再設定コストの値は同じ４となる。同じスイッチ３２３に接続された物理サーバ２０５，２０６をサーバグループとして定義しておけば，１台の再設定コストの問い合わせで，２台分の物理サーバについての再設定コストの情報が取得可能である。
【０１５２】
また，例えば図２，図７に示すＶＬＡＮネットワークルーティングのＶＭシステムの例において，同じＶＬＡＮネットワークに属する物理サーバへのＶＭ移動についての負荷バランスの値は，同じである。例えば，図７，図８に示すように，ＶＭ１０２の移動の例では，ネットワークＢに属するどの物理サーバ２２２，２２４，２２６，２２８にＶＭ１０２を移動しても，ネットワークＡ，Ｂ間の平均負荷の差，すなわち負荷バランスの値は，同じ０．３８となる。同じネットワークＢに属する物理サーバ２２２，２２４，２２６，２２８をサーバグループとして定義しておけば，１台の負荷バランスの問い合わせで，４台分の物理サーバについての負荷バランスの情報が取得可能である。
【０１５３】
２つ目のネットワーク状況情報の取得対象となる物理サーバを絞り込む手法は，リソースの残量が足りないと判断される物理サーバを，ＶＭの移動先候補から除外してしまう方法である。この手法では，ＶＭ移動制御部１０’は，各リソースの使用量がそれぞれ所定の閾値以上である物理サーバ，または各リソースの残量がそれぞれ所定の閾値以下である物理サーバを，ＶＭの移動先候補から除外する。ＶＭ移動制御部１０’は，ＶＭの移動先候補から除外された物理サーバについては，再設定コストの情報や負荷バランスの情報の取得を行わない。
【０１５４】
このような手法により，ＶＭ移動制御部１０’は，リソースの負荷状況が良好な物理サーバのみに絞り込んで，再設定コストの情報や負荷バランスの情報の取得を行うことが可能となる。すなわち，再設定コスト算出部２１や負荷バランス算出部２２による，再設定コストや負荷バランスの算出時間の短縮が可能となる。
【０１５５】
図１１において，ＶＭ移動制御部１０’は，リソース状況情報取得部１１，リソース状況情報記憶部１２，ネットワーク状況情報取得部１３’，ネットワーク状況情報記憶部１４，ＶＭ移動先決定部１５，ネットワーク状況取得対象抽出部１６，移動先候補情報記憶部１７，サーバグループ情報記憶部１８，ネットワーク状況取得対象情報記憶部１９，再設定コスト算出部２１，負荷バランス算出部２２を備える。ＶＭ移動制御部１０’またはＶＭ移動制御部１０’が備える各機能部は，コンピュータが備えるＣＰＵ，メモリ等のハードウェアとソフトウェアプログラムとにより実現される。
【０１５６】
リソース状況情報取得部１１，リソース状況情報記憶部１２については，図３に示すＶＭ移動制御部１０と同様であるので，説明を省略する。
【０１５７】
ネットワーク状況取得対象抽出部１６は，リソース状況情報記憶部１２に記憶されたリソース状況情報に基づいて，ＶＭの移動先候補の物理サーバの絞込みを行う。より具体的には，ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となる物理サーバごとに，ＣＰＵ負荷，メモリ負荷，Ｉ／Ｏ負荷の各リソースの値について，所定の閾値条件を用いた判定を行う。ネットワーク状況取得対象抽出部１６は，条件を満たす物理サーバのみをＶＭの移動先候補として抽出し，抽出された物理サーバのリスト情報を，移動先候補情報記憶部１７に記憶する。
【０１５８】
移動先候補情報記憶部１７は，各物理サーバのリソース状況に基づいて絞り込まれた，ＶＭの移動先候補となる物理サーバの情報を記憶する，コンピュータがアクセス可能な記憶装置である。移動先候補情報記憶部１７に記憶されたリスト情報は，ＶＭの移動先として十分なリソースを有しているとされた物理サーバのリスト情報となる。
【０１５９】
また，ネットワーク状況取得対象抽出部１６は，サーバグループ情報記憶部１８に記憶されたサーバグループの定義情報に基づいて，ネットワーク状況情報の取得対象となる物理サーバの絞込みを行う。
【０１６０】
サーバグループ情報記憶部１８は，再設定コストまたは負荷バランスが同じになる物理サーバをグループ化したサーバグループの定義情報を記憶する，コンピュータがアクセス可能な記憶装置である。
【０１６１】
図１２は，本実施の形態によるサーバグループデータの例を示す図である。
【０１６２】
図１２（Ａ）に示すサーバグループデータは，図１に示すＩＢのＶＭシステムにおいて，ＶＭ移動時の再設定コストが同じになる物理サーバをグループ化した定義情報の例である。図１２（Ａ）に示す再設定コストのサーバグループデータでは，同じスイッチに接続された物理サーバが，同じサーバグループとなっている。
【０１６３】
図１２（Ｂ）に示すサーバグループデータは，図２に示すＶＬＡＮネットワークルーティングのＶＭシステムにおいて，ＶＭ移動後の負荷バランスが同じになる物理サーバをグループ化した定義情報の例である。図１２（Ｂ）に示す負荷バランスのサーバグループデータでは，同じＶＬＡＮネットワークに属する物理サーバが，同じサーバグループとなっている。
【０１６４】
図１２に示すサーバグループデータは，物理サーバのサーバ名と，その物理サーバが属するサーバグループ名との対応情報である。サーバグループ情報記憶部１８には，このようなサーバグループデータが記憶されている。
【０１６５】
ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となる物理サーバについて，同じサーバグループに属する物理サーバの重複を回避するように，ネットワーク状況情報の取得対象となる物理サーバを抽出する。ネットワーク状況取得対象抽出部１６によるリソース状況情報を用いた絞込みが行われている場合には，ＶＭの移動先候補となる物理サーバは，移動先候補情報記憶部１７に記憶されたリスト情報に含まれる物理サーバである。ネットワーク状況取得対象抽出部１６は，抽出されたネットワーク状況情報の取得対象となる物理サーバのリスト情報を，ネットワーク状況取得対象情報記憶部１９に記憶する。
【０１６６】
ネットワーク状況取得対象情報記憶部１９は，ネットワーク状況情報の取得対象となる物理サーバの情報を記憶する，コンピュータがアクセス可能な記憶装置である。再設定コストの情報と負荷バランスの情報とをそれぞれ取得する場合には，再設定コストの情報の取得対象となる物理サーバの情報と，負荷バランスの情報の取得対象となる物理サーバの情報とが別々に用意され，ネットワーク状況取得対象情報記憶部１９に記憶される。
【０１６７】
ネットワーク状況情報取得部１３’は，再設定コスト算出部２１に対して，ネットワーク状況取得対象情報記憶部１９に記憶された，再設定コストの情報の取得対象となる物理サーバについて，再設定コストを算出するように依頼する。また，ネットワーク状況情報取得部１３’は，負荷バランス算出部２２に対して，ネットワーク状況取得対象情報記憶部１９に記憶された，負荷バランスの情報の取得対象となる物理サーバについて，負荷バランスを算出するように依頼する。
【０１６８】
再設定コスト算出部２１は，再設定コストの情報の取得対象となる物理サーバごとに，ＶＭの移動時に必要となる，ＶＭシステムのネットワークにおける経路の再設定コストを算出する。再設定コスト算出部２１は，算出された再設定コストの情報を，ネットワーク状況情報取得部１３’に送る。
【０１６９】
ネットワーク状況情報取得部１３’は，再設定コスト算出部２１から，再設定コストの情報の取得対象となる物理サーバごとに算出された再設定コストの情報を取得する。ネットワーク状況情報取得部１３’は，重複回避のために取得対象とならなかった物理サーバについて，サーバグループ情報記憶部１８を参照し，取得された同じグループに属する物理サーバの再設定コストの情報を用いた補完を行う。補完では，再設定コストの取得対象とならなかった物理サーバの再設定コストが，同一サーバグループに属する再設定コストの取得対象となった物理サーバの再設定コストと同じである，とみなされる。
【０１７０】
なお，再設定コストの情報による補完を行う物理サーバを，移動先候補情報記憶部１７に記憶されたリスト情報に含まれる物理サーバに限定してもよい。この場合，ネットワーク状況情報取得部１３’によって得られる再設定コストの情報は，ＶＭの移動先として十分なリソースを有しているとされた物理サーバについてのみの再設定コストの情報となる。その後のＶＭ移動先決定部１５による処理でも，ＶＭの移動先候補となる物理サーバが絞り込まれている分だけ，評価値を算出する物理サーバの数が少なくて済む。
【０１７１】
ネットワーク状況情報取得部１３’は，再設定コスト算出部２１からの取得，およびその後の補完処理により得られた，ＶＭの移動先候補となる物理サーバごとの再設定コストの情報を，ネットワーク状況情報記憶部１４に記憶する。
【０１７２】
負荷バランス算出部２２は，負荷バランスの情報の取得対象となる物理サーバごとに，ＶＭ移動後のＶＭシステムにおけるネットワーク全体としての負荷バランスを算出する。負荷バランス算出部２２は，算出された負荷バランスの情報を，ネットワーク状況情報取得部１３’に送る。
【０１７３】
ネットワーク状況情報取得部１３’は，負荷バランス算出部２２から，負荷バランスの情報の取得対象となる物理サーバごとに算出された負荷バランスの情報を取得する。ネットワーク状況情報取得部１３’は，重複回避のために取得対象とならなかった物理サーバについて，サーバグループ情報記憶部１８を参照し，取得された同じグループに属する物理サーバの負荷バランスの情報を用いた補完を行う。補完では，負荷バランスの取得対象とならなかった物理サーバの負荷バランスが，同一サーバグループに属する負荷バランスの取得対象となった物理サーバの負荷バランスと同じであると，みなされる。
【０１７４】
なお，負荷バランスの情報による補完を行う物理サーバを，移動先候補情報記憶部１７に記憶されたリスト情報に含まれる物理サーバに限定してもよい。この場合，ネットワーク状況情報取得部１３’によって得られる負荷バランスの情報は，ＶＭの移動先として十分なリソースを有しているとされた物理サーバについてのみの負荷バランスの情報となる。その後のＶＭ移動先決定部１５による処理でも，ＶＭの移動先候補となる物理サーバが絞り込まれている分だけ，評価値を算出する物理サーバの数が少なくて済む。
【０１７５】
ネットワーク状況情報取得部１３’は，負荷バランス算出部２２からの取得，およびその後の補完処理により得られた，ＶＭの移動先候補となる物理サーバごとの負荷バランスの情報を，ネットワーク状況情報記憶部１４に記憶する。
【０１７６】
ネットワーク状況情報記憶部１４，ＶＭ移動先決定部１５については，図３に示すＶＭ移動制御部１０と同様であるので，説明を省略する。
【０１７７】
このように，本実施の形態のＶＭ移動制御部１０’によって，再設定コストの情報や負荷バランスの情報の取得対象となる物理サーバの数を減らすことができるので，再設定コストや負荷バランスの算出時間を短縮することが可能となる。
【０１７８】
図１３は，本実施の形態のＶＭ移動制御部によるネットワーク状況取得対象抽出処理フローチャートである。
【０１７９】
ＶＭ移動制御部１０’において，ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となる物理サーバから，１つを選択する（ステップＳ３０）。
【０１８０】
ネットワーク状況取得対象抽出部１６は，リソース状況情報記憶部１２から，処理対象の物理サーバのＣＰＵ使用率の値を取得し，ＣＰＵ使用率≦ＴＨ1 を満たすかを判定する（ステップＳ３１）。ＴＨ1 は，ＣＰＵ使用率についての閾値である。閾値ＴＨ1 の値としては，あらかじめ妥当と考えられる値が定められていてもよいし，移動するＶＭのＣＰＵ使用率に基づいて決定されてもよい。
【０１８１】
また，ネットワーク状況取得対象抽出部１６は，リソース状況情報記憶部１２から，処理対象の物理サーバのメモリ残量の値を取得し，メモリ残量≧ＴＨ2 を満たすかを判定する（ステップＳ３２）。ＴＨ2 は，メモリ残量についての閾値である。閾値ＴＨ2 の値としては，あらかじめ妥当と考えられる値が定められていてもよいし，移動するＶＭのメモリ使用量に基づいて決定されてもよい。
【０１８２】
また，ネットワーク状況取得対象抽出部１６は，リソース状況情報記憶部１２から，処理対象の物理サーバのＩ／Ｏ残量の値を取得し，Ｉ／Ｏ残量≧ＴＨ3 を満たすかを判定する（ステップＳ３３）。ＴＨ3 は，Ｉ／Ｏ残量についての閾値である。閾値ＴＨ3 の値としては，あらかじめ妥当と考えられる値が定められていてもよいし，移動するＶＭのＩ／Ｏ使用量に基づいて決定されてもよい。
【０１８３】
ステップＳ３１〜Ｓ３３の判定で，１つでも条件が満たされないものがあれば（ステップＳ３１〜Ｓ３３のいずれかでＮＯ），ネットワーク状況取得対象抽出部１６は，処理対象の物理サーバは選外であると判定する（ステップＳ３４）。ネットワーク状況取得対象抽出部１６は，ステップＳ３９の判定処理に進む。
【０１８４】
ステップＳ３１〜Ｓ３３の判定で，すべての条件が満たされていれば（ステップＳ３１〜Ｓ３３のすべてがＹＥＳ），ネットワーク状況取得対象抽出部１６は，処理対象の物理サーバが移動先候補であると判定する（ステップＳ３５）。ネットワーク状況取得対象抽出部１６は，処理対象の物理サーバを，ＶＭの移動先候補として，移動先候補情報記憶部１７に記憶されたリスト情報に登録する。
【０１８５】
ネットワーク状況取得対象抽出部１６は，サーバグループ情報記憶部１８に記憶されたサーバグループの定義情報を参照し，処理対象の物理サーバが属するサーバグループを特定する（ステップＳ３６）。
【０１８６】
ネットワーク状況取得対象抽出部１６は，処理対象の物理サーバと同一のサーバグループに属する他の物理サーバが，すでにネットワーク状況の取得対象となっているかを判定する（ステップＳ３７）。
【０１８７】
同一のサーバグループに属する他の物理サーバがすでにネットワーク状況の取得対象となっている場合には（ステップＳ３７のＹＥＳ），ネットワーク状況取得対象抽出部１６は，ステップＳ３９の判定処理に進む。
【０１８８】
同一のサーバグループに属する他の物理サーバがまだネットワーク状況の取得対象となっていなければ（ステップＳ３７のＮＯ），ネットワーク状況取得対象抽出部１６は，処理対象の物理サーバを，ネットワーク状況の取得対象に追加する（ステップＳ３８）。このとき，ネットワーク状況取得対象抽出部１６は，ネットワーク状況の取得対象に追加された処理対象の物理サーバを，ネットワーク状況取得対象情報記憶部１９に記憶されたリスト情報に登録する。
【０１８９】
ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となるすべての物理サーバについて，処理が終了したかを判定する（ステップＳ３９）。
【０１９０】
まだすべての移動先候補の物理サーバについて処理が終了していなければ（ステップＳ３９のＮＯ），ネットワーク状況取得対象抽出部１６は，ステップＳ３０に戻り，次の物理サーバについての処理を行う。
【０１９１】
すべての移動先候補の物理サーバについて処理が終了していれば（ステップＳ３９のＹＥＳ），ネットワーク状況取得対象抽出部１６は，処理を終了する。
【０１９２】
図１４は，本実施の形態のＶＭ移動制御部による再設定コストを用いたＶＭ移動先決定処理フローチャートである。
【０１９３】
図１４に示すフローチャートは，図１に示すようなＩＢのＶＭシステムにおけるＶＭ移動時の，再設定コストを用いたＶＭ移動先決定処理フローチャートの例である。
【０１９４】
ＶＭ移動制御部１０’において，ネットワーク状況取得対象抽出部１６は，リソース状況情報に基づいて，ＶＭの移動先候補となる物理サーバの絞込みを行う（ステップＳ５０）。ここでは，ネットワーク状況取得対象抽出部１６は，リソース状況情報記憶部１２から，各物理サーバのＣＰＵ，メモリ，Ｉ／Ｏ性能の情報を取得し，所定の閾値との比較判
定を行う。ネットワーク状況取得対象抽出部１６は，条件を満たさない不適当な物理サーバをＶＭの移動先候補から除外し，残された物理サーバをＶＭの移動先候補とする。ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となる物理サーバのリスト情報を，移動先候補情報記憶部１７に記憶する。
【０１９５】
ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となる物理サーバから，同一サーバグループに属する物理サーバの重複を回避するように，再設定コストの取得対象となる物理サーバを抽出する（ステップＳ５１）。ここでは，ネットワーク状況取得対象抽出部１６は，サーバグループ情報記憶部１８を参照して，各物理サーバが属するサーバグループを特定する。ネットワーク状況取得対象抽出部１６は，移動先候補情報記憶部１７に記憶されたＶＭの移動先候補となる物理サーバについて，サーバグループが重複した物理サーバがある場合に，１つの問い合わせ先となることを目的として，その１つを残して他を除外する。ネットワーク状況取得対象抽出部１６は，重複した物理サーバを除外した結果，残された１つの物理サーバを再設定コストの取得対象とする。ネットワーク状況取得対象抽出部１６は，再設定コストの取得対象となる物理サーバのリスト情報を，ネットワーク状況取得対象情報記憶部１９に記憶する。
【０１９６】
図１５は，本実施の形態による再設定コストの取得対象となる物理サーバの抽出を説明する図である。
【０１９７】
図１５に示す例は，図１に示すＩＢのＶＭシステムにおいて，ＶＭ１０１の移動を行う際の再設定コストの取得対象となる物理サーバの抽出時の例である。なお，図１５では，各物理サーバ２０１〜２１６がサーバ名で示されている。
【０１９８】
図１５（Ａ）には，リソース状況情報に基づいて絞り込まれた，ＶＭ１０１の移動先候補となる物理サーバが示されている。図１５（Ａ）において，“○”が付いた物理サーバは，ＶＭ１０１の移動先候補となる物理サーバである。また，図１５（Ａ）において，“×”が付いた物理サーバは，ＶＭ１０１の移動先候補の対象外となる物理サーバである。なお，サーバ名“ｓｖ８”の物理サーバ２０８は，ＶＭ１０１の移動元物理サーバである。
【０１９９】
ここで，図１２（Ａ）のサーバグループデータが示す通りに，サーバグループが定義されているものとする。このとき，図１５（Ａ）において，ＶＭ１０１の移動先候補となる物理サーバのうち，サーバグループが同じとなる物理サーバの組合せは，矢印で示された組合せとなる。ネットワーク状況取得対象抽出部１６は，図１５（Ａ）において，同一サーバグループに属する物理サーバが重複しないように，再設定コストの取得対象となる物理サーバを抽出する。
【０２００】
図１５（Ｂ）は，図１５（Ａ）において，同一サーバグループに属する物理サーバが重複しないように，再設定コストの取得対象となる物理サーバが抽出された結果を示す。図１５（Ｂ）において，“○”が付いた物理サーバは，再設定コストの取得対象となる物理サーバである。図１５（Ｂ）において，“△”が付いた物理サーバは，再設定コストの取得対象外となる物理サーバである。図１５（Ｂ）に示すように，矢印で示されたサーバグループが同じとなる物理サーバの組合せで，再設定コストの取得対象となる物理サーバは重複しない。なお，図１５（Ｂ）において，“×”が付いている，ＶＭ１０１の移動先候補の対象外となる物理サーバは，再設定コストの取得対象外である。
【０２０１】
ネットワーク状況情報取得部１３’は，再設定コスト算出部２１を有するＳＭ４００に対して，再設定コストの取得対象となる物理サーバへのＶＭの移動時に必要となる再設定コストを問い合わせる（ステップＳ５２）。
【０２０２】
ネットワーク状況情報取得部１３’は，再設定コスト算出部２１を有するＳＭ４００から，再設定コストの取得対象となる物理サーバについての再設定コストの情報を取得する（ステップＳ５３）。ネットワーク状況情報取得部１３’は，取得された再設定コストの情報を，ネットワーク状況情報記憶部１４に記憶する。
【０２０３】
ネットワーク状況情報取得部１３’は，重複回避のために再設定コストの取得対象とならなかった物理サーバについて，同一サーバグループに属する物理サーバの再設定コストを用いて補完処理を行う（ステップＳ５４）。ここでは，ネットワーク状況情報取得部１３’は，移動先候補情報記憶部１７と，ネットワーク状況取得対象情報記憶部１９とを参照し，ＶＭの移動先候補ではあるものの再設定コストの取得対象とならなかった物理サーバを特定する。ネットワーク状況情報取得部１３’は，サーバグループ情報記憶部１８を参照し，ＶＭの移動先候補ではあるものの再設定コストの取得対象とならなかった物理サーバと同一サーバグループに属する，再設定コストの取得対象となった物理サーバを特定する。ネットワーク状況情報取得部１３’は，ＶＭの移動先候補ではあるものの再設定コストの取得対象とならなかった物理サーバの再設定コストを，同一サーバグループに属する再設定コストの取得対象となった物理サーバの再設定コストとみなして，補完する。
【０２０４】
図１６は，本実施の形態による同一サーバグループに属する物理サーバの再設定コストの補完を説明する図である。
【０２０５】
以下の図１６に示す例を用いる説明は，上述の図１５に示す例を用いた説明の続きである。
【０２０６】
ネットワーク状況情報取得部１３’は，再設定コスト算出部２１を有するＳＭ４００に対して，図１５（Ｂ）に示す再設定コストの取得対象となる物理サーバについて，再設定コストの問い合わせを行い，再設定コストを取得する。
【０２０７】
図１６（Ａ）は，図１５（Ｂ）に示す再設定コストの取得対象となる物理サーバについての，再設定コストの取得結果を示す。図１６（Ａ）において，図１５（Ｂ）に示す再設定コストの取得対象となる物理サーバについては，取得された再設定コストの値が記載されている。なお，図１６（Ａ）において，“△”が付いた物理サーバは，再設定コストの取得対象外となる物理サーバである。また，図１６（Ａ）において，“×”が付いた物理サーバは，ＶＭ１０１の移動先候補の対象外となる物理サーバである。
【０２０８】
ネットワーク状況情報取得部１３’は，図１６（Ａ）において，再設定コストの取得対象外とされたために再設定コストが取得されなかった物理サーバについて，同一サーバグループに属する物理サーバの再設定コストを用いた補完を行う。すなわち，ネットワーク状況情報取得部１３’は，再設定コストが取得されなかった物理サーバの再設定コストとして，同一サーバグループに属する物理サーバの再設定コストが用いられるように，設定を行う。
【０２０９】
図１６（Ｂ）は，図１６（Ａ）において，再設定コストが取得されなかった物理サーバについて，同一サーバグループに属する物理サーバの再設定コストを用いた補完の結果を示す。図１６（Ｂ）に示すように，矢印で示されたサーバグループが同じとなる物理サーバの組合せ間で，再設定コストの取得対象となる物理サーバから再設定コストの取得対象外となる物理サーバに，再設定コストの値がコピーされている。なお，図１６（Ｂ）において，“×”が付いている，ＶＭ１０１の移動先候補の対象外となる物理サーバは，再設定コストの補完の対象外である。
【０２１０】
ＶＭ移動先決定部１５は，ＶＭの移動先候補となる各物理サーバについて，評価値を算出する（ステップＳ５５）。ＶＭ移動先決定部１５は，リソース状況情報記憶部１２から，ＶＭの移動先候補となる物理サーバのＣＰＵ負荷，メモリ負荷，Ｉ／Ｏ負荷を取得する。ＶＭ移動先決定部１５は，リソース状況情報記憶部１２から，ＶＭの移動先候補となる物理サーバの再設定コストを取得する。ＶＭ移動先決定部１５は，取得されたＣＰＵ負荷，メモリ負荷，Ｉ／Ｏ負荷，再設定コストの値を所定の式に代入することにより，ＶＭの移動先候補となる物理サーバの評価値を算出する。
【０２１１】
ＶＭ移動先決定部１５は，最も評価が高いＶＭの移動先候補となる物理サーバを，ＶＭの移動先物理サーバとして決定する（ステップＳ５６）。
【０２１２】
図１７は，本実施の形態のＶＭ移動制御部による負荷バランスを用いたＶＭ移動先決定処理フローチャートである。
【０２１３】
図１７に示すフローチャートは，図２に示すようなＶＬＡＮネットワークルーティングのＶＭシステムにおけるＶＭ移動時の，負荷バランスを用いたＶＭ移動先決定処理フローチャートの例である。
【０２１４】
ＶＭ移動制御部１０’において，ネットワーク状況取得対象抽出部１６は，リソース状況情報に基づいて，ＶＭの移動先候補となる物理サーバの絞込みを行う（ステップＳ６０）。ここでは，ネットワーク状況取得対象抽出部１６は，リソース状況情報記憶部１２から，各物理サーバのＣＰＵ，メモリ，Ｉ／Ｏ性能の情報を取得し，所定の閾値との比較判
定を行う。ネットワーク状況取得対象抽出部１６は，条件を満たさない不適当な物理サーバをＶＭの移動先候補から除外し，残された物理サーバをＶＭの移動先候補とする。ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となる物理サーバのリスト情報を，移動先候補情報記憶部１７に記憶する。
【０２１５】
ネットワーク状況取得対象抽出部１６は，ＶＭの移動先候補となる物理サーバから，同一サーバグループに属する物理サーバの重複を回避するように，負荷バランスの取得対象となる物理サーバを抽出する（ステップＳ６１）。ここでは，ネットワーク状況取得対象抽出部１６は，サーバグループ情報記憶部１８を参照して，各物理サーバが属するサーバグループを特定する。ネットワーク状況取得対象抽出部１６は，移動先候補情報記憶部１７に記憶されたＶＭの移動先候補となる物理サーバについて，サーバグループが重複した物理サーバがある場合に，１つの問い合わせ先となることを目的として，その１つを残して他を除外する。ネットワーク状況取得対象抽出部１６は，重複した物理サーバを除外した結果，残された１つの物理サーバを負荷バランスの取得対象とする。ネットワーク状況取得対象抽出部１６は，負荷バランスの取得対象となる物理サーバのリスト情報を，ネットワーク状況取得対象情報記憶部１９に記憶する。
【０２１６】
図１８は，本実施の形態による負荷バランスの取得対象となる物理サーバの抽出を説明する図である。
【０２１７】
図１８に示す例は，図２に示すようなＶＬＡＮネットワークルーティングのＶＭシステムにおいて，ＶＭ１０２の移動を行う際の負荷バランスの取得対象となる物理サーバの抽出時の例である。なお，図１８では，各物理サーバ２２１〜２２８がサーバ名で示されている。
【０２１８】
図１８（Ａ）には，リソース状況情報に基づいて絞り込まれた，ＶＭ１０２の移動先候補となる物理サーバが示されている。図１８（Ａ）において，“○”が付いた物理サーバは，ＶＭ１０２の移動先候補となる物理サーバである。また，図１８（Ａ）において，“×”が付いた物理サーバは，ＶＭ１０２の移動先候補の対象外となる物理サーバである。なお，サーバ名“ｓｖ２３”の物理サーバ２２３は，ＶＭ１０２の移動元物理サーバである。
【０２１９】
ここで，図１２（Ｂ）のサーバグループデータが示す通りに，サーバグループが定義されているものとする。このとき，図１８（Ａ）において，ＶＭ１０２の移動先候補となる物理サーバのうち，サーバグループが同じとなる物理サーバの組合せは，矢印で示された組合せとなる。図１８（Ａ）において，実線の矢印で示された物理サーバの組合せは，ネットワークＡのＶＬＡＮに属する物理サーバの組合せであり，破線の矢印で示された物理サーバの組合せは，ネットワークＢのＶＬＡＮに属する物理サーバの組合せである。ネットワーク状況取得対象抽出部１６は，図１８（Ａ）において，同一サーバグループに属する物理サーバが重複しないように，負荷バランスの取得対象となる物理サーバを抽出する。
【０２２０】
図１８（Ｂ）は，図１８（Ａ）において，同一サーバグループに属する物理サーバが重複しないように，負荷バランスの取得対象となる物理サーバが抽出された結果を示す。図１８（Ｂ）において，“○”が付いた物理サーバは，負荷バランスの取得対象となる物理サーバである。図１８（Ｂ）において，“△”が付いた物理サーバは，負荷バランスの取得対象外となる物理サーバである。図１８（Ｂ）に示すように，矢印で示されたサーバグループが同じとなる物理サーバの組合せで，負荷バランスの取得対象となる物理サーバは重複しない。なお，図１８（Ｂ）において，“×”が付いている，ＶＭ１０２の移動先候補の対象外となる物理サーバは，負荷バランスの取得対象外である。
【０２２１】
ネットワーク状況情報取得部１３’は，負荷バランス算出部２２を有するＶＬＡＮ管理部５００に対して，負荷バランスの取得対象となる物理サーバへのＶＭの移動後の負荷バランスを問い合わせる（ステップＳ６２）。
【０２２２】
ネットワーク状況情報取得部１３’は，負荷バランス算出部２２を有するＶＬＡＮ管理部５００から，負荷バランスの取得対象となる物理サーバについての負荷バランスの情報を取得する（ステップＳ６３）。ネットワーク状況情報取得部１３’は，取得された負荷バランスの情報を，ネットワーク状況情報記憶部１４に記憶する。
【０２２３】
ネットワーク状況情報取得部１３’は，重複回避のために負荷バランスの取得対象とならなかった物理サーバについて，同一サーバグループに属する物理サーバの負荷バランスを用いて補完処理を行う（ステップＳ６４）。ここでは，ネットワーク状況情報取得部１３’は，移動先候補情報記憶部１７と，ネットワーク状況取得対象情報記憶部１９とを参照し，ＶＭの移動先候補ではあるものの負荷バランスの取得対象とならなかった物理サーバを特定する。ネットワーク状況情報取得部１３’は，サーバグループ情報記憶部１８を参照し，ＶＭの移動先候補ではあるものの負荷バランスの取得対象とならなかった物理サーバと同一サーバグループに属する，負荷バランスの取得対象となった物理サーバを特定する。ネットワーク状況情報取得部１３’は，ＶＭの移動先候補ではあるものの負荷バランスの取得対象とならなかった物理サーバの負荷バランスを，同一サーバグループに属する負荷バランスの取得対象となった物理サーバの負荷バランスとみなして，補完する。
【０２２４】
図１９は，本実施の形態による同一サーバグループに属する物理サーバの負荷バランスの補完を説明する図である。
【０２２５】
以下の図１９に示す例を用いる説明は，上述の図１８に示す例を用いた説明の続きである。
【０２２６】
ネットワーク状況情報取得部１３’は，負荷バランス算出部２２を有するＶＬＡＮ管理部５００に対して，図１８（Ｂ）に示す負荷バランスの取得対象となる物理サーバについて，負荷バランスの問い合わせを行い，負荷バランスを取得する。
【０２２７】
図１９（Ａ）は，図１８（Ｂ）に示す負荷バランスの取得対象となる物理サーバについての，負荷バランスの取得結果を示す。図１９（Ａ）において，図１８（Ｂ）に示す負荷バランスの取得対象となる物理サーバについては，取得された負荷バランスの値が記載されている。なお，図１９（Ａ）において，“△”が付いた物理サーバは，負荷バランスの取得対象外となる物理サーバである。また，図１９（Ａ）において，“×”が付いた物理サーバは，ＶＭ１０２の移動先候補の対象外となる物理サーバである。
【０２２８】
ネットワーク状況情報取得部１３’は，図１９（Ａ）において，負荷バランスの取得対象外とされたために負荷バランスが取得されなかった物理サーバについて，同一サーバグループに属する物理サーバの負荷バランスを用いた補完を行う。すなわち，ネットワーク状況情報取得部１３’は，負荷バランスが取得されなかった物理サーバの負荷バランスとして，同一サーバグループに属する物理サーバの負荷バランスが用いられるように，設定を行う。
【０２２９】
図１９（Ｂ）は，図１９（Ａ）において，負荷バランスが取得されなかった物理サーバについて，同一サーバグループに属する物理サーバの負荷バランスを用いた補完の結果を示す。図１９（Ｂ）に示すように，矢印で示されたサーバグループが同じとなる物理サーバの組合せ間で，負荷バランスの取得対象となる物理サーバから負荷バランスの取得対象外となる物理サーバに，負荷バランスの値がコピーされている。なお，図１９（Ｂ）において，“×”が付いている，ＶＭ１０２の移動先候補の対象外となる物理サーバは，負荷バランスの補完の対象外である。
【０２３０】
ＶＭ移動先決定部１５は，ＶＭの移動先候補となる各物理サーバについて，評価値を算出する（ステップＳ６５）。ＶＭ移動先決定部１５は，リソース状況情報記憶部１２から，ＶＭの移動先候補となる物理サーバのＣＰＵ負荷，メモリ負荷，Ｉ／Ｏ負荷を取得する。ＶＭ移動先決定部１５は，リソース状況情報記憶部１２から，ＶＭの移動先候補となる物理サーバの負荷バランスを取得する。ＶＭ移動先決定部１５は，取得されたＣＰＵ負荷，メモリ負荷，Ｉ／Ｏ負荷，負荷バランスの値を所定の式に代入することにより，ＶＭの移動先候補となる物理サーバの評価値を算出する。
【０２３１】
ＶＭ移動先決定部１５は，最も評価が高いＶＭの移動先候補となる物理サーバを，ＶＭの移動先物理サーバとして決定する（ステップＳ６６）。
【０２３２】
以上説明したＶＭ移動制御部１０，１０’による処理は，コンピュータが備えるＣＰＵ，メモリ等のハードウェアとソフトウェアプログラムとにより実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【０２３３】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【０２３４】
例えば，本実施の形態では，再設定コスト用いたＶＭの移動先物理サーバの決定と，再設定コスト用いたＶＭの移動先物理サーバの決定とについて，それぞれ個別の事例を用いて説明を行った。ＶＭの移動先物理サーバの決定に，再設定コストと負荷バランスとを同時に用いてもよい。
【０２３５】
図１に示すＩＢのＶＭシステムの事例において，例えば，ＳＭ４００に経路再設定後のネットワーク構成における負荷バランスの算出機能を持たせることで，負荷バランスまでを考慮した移動処理が実現可能となる。このとき，ＳＭ４００は，負荷バランスの指標として，例えば各リンクのネットワーク負荷の標準偏差を算出する。ＳＭ４００は，各移動先候補の物理サーバにＶＭが移動した場合の標準偏差を算出する。各リンクのネットワーク負荷の標準偏差の値が低いほうが，負荷バランスが良いと判定できる。このような指標も加味した処理を行うことにより，ＶＭ移動制御部１０，１０’は，再設定コストと負荷バランスとの両方を用いた，ＶＭの移動先物理サーバの決定を行うことができる。
【符号の説明】
【０２３６】
１０，１０’  ＶＭ移動制御部
１１  リソース状況情報取得部
１２  リソース状況情報記憶部
１３，１３’  ネットワーク状況情報取得部
１４  ネットワーク状況情報記憶部
１５  ＶＭ移動先決定部
１６  ネットワーク状況取得対象抽出部
１７  移動先候補情報記憶部
１８  サーバグループ情報記憶部
１９  ネットワーク状況取得対象情報記憶部
２１  再設定コスト算出部
２２  負荷バランス算出部
１０１，１０２  ＶＭ
２０１〜２２８  物理サーバ
３０１〜３４４  スイッチ
４００  ＳＭ
５００  ＶＬＡＮ管理部
【図１】
2011028408.tif 000004
【図２】
2011028408.tif 000005
【図３】
2011028408.tif 000006
【図４】
2011028408.tif 000007
【図５】
2011028408.tif 000008
【図６】
2011028408.tif 000009
【図７】
2011028408.tif 000010
【図８】
2011028408.tif 000011
【図９】
2011028408.tif 000012
【図１０】
2011028408.tif 000013
【図１１】
2011028408.tif 000014
【図１２】
2011028408.tif 000015
【図１３】
2011028408.tif 000016
【図１４】
2011028408.tif 000017
【図１５】
2011028408.tif 000018
【図１６】
2011028408.tif 000019
【図１７】
2011028408.tif 000020
【図１８】
2011028408.tif 000021
【図１９】
2011028408.tif 000022