(57)【要約】【課題】マイグレーション完了後における仮想マシンの通信断を回避することを課題とする。【解決手段】物理サーバは、自装置上で稼動する仮想マシンの状態を監視する。そして、物理サーバは、仮想マシンの状態が変化したことが検出された場合に、自装置を収容し、自装置または仮想マシンと他の装置または他の仮想マシンとの通信を制御する物理スイッチに、当該変化した仮想マシンの状態を示す情報を送信する。物理スイッチは、自装置が収容する情報処理装置上で稼動する仮想マシンのコンフィグ情報を記憶する。そして、物理スイッチは、物理サーバから仮想マシンの状態が変化したことを示す情報を受信した場合に、当該受信した情報に基づいてコンフィグ情報を更新する。また、物理スイッチは、記憶されるコンフィグ情報に基づいて、物理サーバまたは仮想マシンと他の装置または他の仮想マシンとの通信を制御する。【選択図】図２
2011198299.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
前記コンピュータ上で稼動する仮想マシンの状態を監視し、
前記仮想マシンの状態が変化したことが検出された場合に、前記コンピュータと他のコンピュータとの間の通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する処理を、
実行させることを特徴とするプログラム。
【請求項２】
前記情報は、前記仮想マシンの識別情報を含む、ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記仮想マシンと前記他のコンピュータ又は他の仮想マシンとの間の通信を制御する仮想マシンスイッチ部を有し、
前記監視するステップは、前記仮想マシンスイッチ部の接続状況に基づいて、前記コンピュータ上で稼動する仮想マシンの状態を監視する、
ことを特徴とする請求項１に記載のプログラム。
【請求項４】
自装置上で稼動する仮想マシンの状態を監視する監視部と、
前記監視部により仮想マシンの状態が変化したことが検出された場合に、自装置と他の装置との間の通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する状態送信部と
を有することを特徴とするコンピュータ。
【請求項５】
自通信装置に接続するコンピュータ上で稼動する仮想マシンのコンフィグ情報を記憶する記憶部と、
前記仮想マシンの状態の変化があると、前記コンピュータから前記仮想マシンのＶＭ情報を受信し、該ＶＭ情報に基づいて前記コンフィグ情報記憶部に記憶されるコンフィグ情報を更新する更新部と、
前記記憶部に記憶されるコンフィグ情報に基づいて、前記コンピュータと他の通信装置または他のコンピュータとの通信を制御する制御部と
を有することを特徴とする通信装置。
【請求項６】
仮想マシンを稼動させるコンピュータと、前記コンピュータに接続される通信装置とを有する通信制御システムであって、
前記コンピュータは、
自装置上で稼動する仮想マシンの状態を監視する監視部と、
前記監視部により仮想マシンの状態が変化したことが検出された場合に、前記自装置と他の装置との通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する送信部とを有し、
前記通信装置は、
自通信装置に接続するコンピュータ上で稼動する仮想マシンのコンフィグ情報を記憶する記憶部と、
前記仮想マシンの状態の変化があると、前記コンピュータから前記仮想マシンの状態の変化の内容を含む情報を受信し、該情報に基づいて前記記憶部に記憶されるコンフィグ情報を更新する更新部と、
前記記憶部に記憶されるコンフィグ情報に基づいて、前記コンピュータと他の通信装置または他の装置との通信を制御する制御部と
を有することを特徴とする通信制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、コンピュータ、通信装置および通信制御システムに関する。
【背景技術】
【０００２】
近年、サーバやネットワークの仮想化技術を利用して、ネットワーク上にある複数のコンピューティング資源を利用者のコンピューティング資源として使用することができるクラウドコンピューティング（以下、クラウド環境という）が注目されている。
【０００３】
一般的に、クラウド環境では、異なる企業や異なる部門に属するユーザがサーバ等を共有するので、仮想マシン（ＶＭ：Virtual  Machine）の資源やネットワーク（ＮＷ：NetWork）の資源を明確に分離する必要がある。したがって、クラウド環境では、ＶＭを管理するＶＭ管理サーバとスイッチなどのＮＷ機器を管理するＮＷ管理サーバとがそれぞれ独立して存在する。
【０００４】
具体的には、ＶＭ管理サーバは、自装置の管理下にあるＶＭの情報しか知り得ることができず、自装置の管理下にないＮＷ機器の情報を知り得ることができない。つまり、ＶＭ管理サーバは、ネットワーク上のどのようなＮＷ機器が存在し、ＮＷ機器にどのような設定がされているのかを知り得ない。同様に、ＮＷ管理サーバは、自装置の管理下にあるＮＷ機器の情報しか知り得ることができず、自装置の管理下にないＶＭの情報を知り得ることができない。つまり、ＮＷ管理サーバは、各サーバでどのようなＶＭが実行されているかなどを知り得ない。
【０００５】
また、クラウド環境では、異なる企業や異なる部門に属するユーザがサーバ等を共有するので、ユーザ各々に対してセキュリティを高める手法が実施されている。例えば、ＶＬＡＮ（Virtual  Local  Area  Network）やＡＣＬ（Access  Control  List）等によるユーザごとのアクセス制限やユーザごとの利用帯域を確保するＱｏＳ（Quality  of  Service）制御などが実施される。
【０００６】
このようなクラウド環境においては、あるサーバ上で実行されているＶＭを別のサーバに移動させるマイグレーション制御も実行される。ここで、図２２を用いて、クラウド環境におけるマイグレーション制御を説明する。図２２は、従来技術におけるクラウド環境でのライブマイグレーション例を示す図である。
【０００７】
図２２に示すように、このクラウド環境は、ＶＭ管理サーバと物理サーバＡと物理スイッチＡと物理サーバＢと物理スイッチＢとＮＷ管理サーバとを有する。ＶＭ管理サーバは、物理サーバＡや物理サーバＢ各々で実行されているＶＭの情報を保持し、ＮＷ管理サーバは、物理スイッチＡや物理スイッチＢ各々で設定されているＶＭに関するコンフィグ情報を保持する。なお、ＶＭ管理サーバとＮＷ管理サーバは、管理する部門や企業がことなり、互いに連携していない状態である。
【０００８】
そして、物理サーバＡ上では、ＶＭ１とＶＭ２が実行されており、物理サーバＡに接続される物理スイッチＡには、ＶＭ１とＶＭ２に関するコンフィグ情報が設定されている。また、物理サーバＢ上では、ＶＭ３が実行されており、物理サーバＢに接続される物理スイッチＢには、ＶＭ３に関するコンフィグ情報が設定されている。
【０００９】
このような状況において、物理サーバＡ上のＶＭ２を物理サーバＢにライブマイグレーションする例について説明する。まず、ＶＭ管理サーバは、ＶＭ２のライブマイグレーション指示を物理サーバＡに送信する（図２２の（α）参照）。そして、ライブマイグレーション指示を受信した物理サーバＡは、物理サーバＢへＶＭ２のライブマイグレーションを実施する（図２２の（β）参照）。
【００１０】
その後、物理サーバＢは、ＶＭ２のライブマイグレーションが終了したことを検出すると、物理サーバＢと接続される物理スイッチＢに対してＧＡＲＰ（Gratuitous  Address  Resolution  Protocol）パケットを送信する（図２２の（γ）参照）。すると、物理スイッチＢは、ＮＷ管理サーバにＶＭ２のコンフィグ情報取得要求を送信する（図２２の（δ）参照）。ＶＭ２のコンフィグ情報取得要求を受信したＮＷ管理サーバは、移動先の物理スイッチＢにＶＭ２のコンフィグ情報を送信し、移動元の物理スイッチＡにＶＭ２のコンフィグ情報の削除指示を送信する（図２２の（ε）参照）。この結果、ＶＭ２が物理サーバＢに移動し、物理サーバＢが接続される物理スイッチＢにＶＭ２のコンフィグ情報が設定され、ライブマイグレーションが完了する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−２１７４７４号公報
【特許文献２】特開２００９−１８１４１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来の技術では、マイグレーションが完了したにも関わらず、移動された仮想マシンが通信できない状態が発生するという課題があった。
【００１３】
具体的には、移動された仮想マシンは、移動先のサーバが接続される物理スイッチにコンフィグが設定されるまで通信することができない。例えば、図２２の場合、物理サーバＢがＧＡＲＰパケットを送信し、物理スイッチＢがＮＷ管理サーバからＶＭ２のコンフィグを受信して設定を完了（活性化）するまで、ＶＭ２は通信することができない。
【００１４】
さらに、移動先の物理スイッチＢにおいて正しくＶＭ２のコンフィグ設定がされたとしても、移動元の物理スイッチＡでＶＭ２のコンフィグ設定が削除されない状態が発生した場合、２つの物理スイッチに同じコンフィグ設定がされることとなる。この場合、物理スイッチＢを介して物理サーバＢのＶＭ２に送信されるべきパケットが、物理スイッチＡからＶＭ２が存在しない物理サーバＡに送信される事象が発生する。つまり、ＶＭ２にパケットが送信されない可能性もある。
【００１５】
また、移動先の物理サーバが接続される物理スイッチに、移動対象のＶＭのコンフィグを事前に設定しておく手法も考えられるが、上述したように、クラウド環境では、ＶＭ管理サーバとＮＷ管理サーバとが連携しておらず、別の会社が管理することが多い。したがって、両サーバの管理会社間で、いつ、どのサーバに、どのＶＭのマイグレーションが実行されるのかを共有することは難しい。特に、大規模なクラウド環境やＶＭのマイグレーションが頻繁に発生する場合、マイグレーションに関する情報を共有することがさらに難しく、人為的負担も多い。以上より、移動対象のＶＭのコンフィグを事前に設定しておく手法は現実的でない。
【００１６】
開示の技術は、上記に鑑みてなされたものであって、マイグレーション完了後における仮想マシンの通信断を回避することが可能であるプログラム、コンピュータ、通信装置および通信制御システムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本願の開示するプログラム、コンピュータ、通信装置および通信制御システムは、一つの態様において、コンピュータに、前記コンピュータ上で稼動する仮想マシンの状態を監視し、前記仮想マシンの状態が変化したことが検出された場合に、前記コンピュータと他のコンピュータとの間の通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する処理を、実行させる。
【００１８】
また、本願の開示するプログラム、コンピュータ、通信装置および通信制御システムは、一つの態様において、自装置上で稼動する仮想マシンの状態を監視する監視部と、前記監視部により仮想マシンの状態が変化したことが検出された場合に、自装置と他の装置との間の通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する状態送信部とを有する。
【発明の効果】
【００１９】
本願の開示するプログラム、コンピュータ、通信装置および通信制御システムの一つの態様によれば、マイグレーション完了後における仮想マシンの通信断を回避することが可能であるという効果を奏する。
【図面の簡単な説明】
【００２０】
【図１】図１は、実施例１に係るネットワークの全体構成を示す図である。
【図２】図２は、実施例１に係る物理サーバと物理スイッチの構成を示すブロック図である。
【図３】図３は、ＶＭ情報ＤＢに記憶される情報の例を示す図である。
【図４】図４は、ＶＭ情報ＤＢにレコードが追加された例を示す図である。
【図５】図５は、ＶＭ情報通知メッセージの例を示す図である。
【図６】図６は、コンフィグ情報ＤＢに記憶される情報の例を示す図である。
【図７】図７は、物理サーバＡのＶＭ２を物理サーバＢにライブマイグレーションする例を示す図である。
【図８】図８は、実施例１に係るシステムの動作シーケンスを示す図である。
【図９】図９は、ＶＭ監視処理の流れを示すフローチャートである。
【図１０】図１０は、イベント通知処理の流れを示すフローチャートである。
【図１１】図１１は、ＶＭ情報受信処理の流れを示すフローチャートである。
【図１２】図１２は、実施例２に係るシステムにおけるＶＭの新規起動時の動作シーケンスを示す図である。
【図１３】図１３は、実施例２に係るシステムにおけるＶＭ停止時の動作シーケンスを示す図である。
【図１４】図１４は、実施例３に係る物理スイッチがコンフィグ情報をグループ化して保持するグループ管理ＤＢの例を示す図である。
【図１５】図１５は、実施例３に係る物理スイッチが実行するＶＭ情報受信処理の流れを示すフローチャートである。
【図１６】図１６は、実施例３に係るコンフィグ情報をグループ化して保持するグループ管理ＤＢの別例を示す図である。
【図１７】図１７は、実施例４に係るＶＭ監視処理の流れを示すフローチャートである。
【図１８】図１８は、実施例５に係るシステムにおけるＶＭの新規起動時の動作シーケンスを示す図である。
【図１９】図１９は、実施例５に係るシステムにおけるマイグレーション時の動作シーケンスを示す図である。
【図２０】図２０は、実施例５に係るＶＭ情報受信処理の流れを示すフローチャートである。
【図２１】図２１は、物理スイッチが多段に構成されたネットワークにおいてライブマイグレーションを実行する例を示す図である。
【図２２】図２２は、従来技術におけるクラウド環境でのライブマイグレーション例を示す図である。
【発明を実施するための形態】
【００２１】
以下に、本願の開示するプログラム、コンピュータ、通信装置および通信制御システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２２】
［全体構成］
図１は、実施例１に係るネットワークの全体構成を示す図である。図１に示すように、このネットワークは、ＶＭ（Virtual  Machine：仮想マシン）管理サーバ１とＮＷ（Network：ネットワーク）管理サーバ５と物理サーバＡ１０と物理スイッチＡ２０と物理サーバＢ３０と物理スイッチＢ４０とが相互に通信可能に接続される。なお、ＶＭ管理サーバ１とＮＷ管理サーバ５とは、別々の管理会社によって管理されており、互いに連携されていない。また、物理サーバや物理スイッチの台数は、これに限定されるものではない。
【００２３】
ＶＭ管理サーバ１は、インターネットなどのネットワークを介して物理サーバＡ１０と物理サーバＢ３０とのそれぞれに接続され、物理サーバＡ１０や物理サーバＢ３０上で実行される仮想マシン（ＶＭ）を管理する情報処理装置である。例えば、ＶＭ管理サーバ１は、管理者等の指示操作を受け付けて、新たなＶＭの起動指示を物理サーバＡ１０に送信したり、また、稼動中のＶＭの停止指示を物理サーバＢ３０に送信したりする。また、ＶＭ管理サーバ１は、管理者等の指示操作を受け付けて、物理サーバＡ１０で稼動中のＶＭ２を物理サーバＢ３０に移動させるライブマイグレーションの実行指示を物理サーバＡ１０に送信する。
【００２４】
ＮＷ管理サーバ５は、インターネットなどのネットワークを介して物理スイッチＡ２０と物理スイッチＢ４０とのそれぞれに接続され、ネットワークに設定されるネットワーク機器の情報を管理する情報処理装置である。例えば、ＮＷ管理サーバ５は、物理スイッチＡ２０と接続される物理サーバＡ１０で稼動するＶＭが他の装置等と接続するためのコンフィグ情報を記憶する。同様に、ＮＷ管理サーバ５は、物理スイッチＢ４０と接続される物理サーバＢ３０で稼動するＶＭが他の装置等と接続するためのコンフィグ情報を記憶する。また、ＮＷ管理サーバ５は、各物理スイッチからコンフィグ情報の取得要求を受信した場合には、該当するコンフィグ情報を要求元に送信する。
【００２５】
物理サーバＡ１０は、ネットワークを介してＶＭ管理サーバ１と接続されるとともに、物理スイッチＡ２０と接続され、ＶＭを起動または停止する情報処理装置である。例えば、物理サーバＡ１０は、自装置上で稼動するＶＭの状態を監視する。そして、物理サーバＡ１０は、ＶＭの状態が変化したことが検出された場合に、自装置またはＶＭと他の装置または他のＶＭとの通信を制御する物理スイッチＡ２０に、仮想マシンの状態の変化の内容を含む情報を送信する。
【００２６】
例えば、物理サーバＡ１０は、ＶＭ管理サーバ１からの要求にしたがって新たなＶＭが生成されたことや既存ＶＭの停止されたことを検出する。そして、物理サーバＡ１０は、生成されたＶＭや停止されたＶＭの情報を物理スイッチＡ２０に送信する。また、物理サーバＡ１０は、ＶＭ管理サーバ１からの要求にしたがって、ＶＭ２を物理サーバＢ３０に移動させるライブマイグレーションが実施されたことを検出すると、ＶＭ２がライブマイグレーション中であることを物理スイッチＡ２０に送信する。
【００２７】
物理スイッチＡ２０は、物理サーバＡ１０と接続されるとともに、インターネットなどのネットワークを介して物理スイッチＢ４０やＮＷ管理サーバ５と接続されるスイッチなどのネットワーク機器である。この物理スイッチＡ２０は、自装置と接続される物理サーバＡ１０で稼動するＶＭのコンフィグ情報を記憶する。そして、物理スイッチＡ２０は、記憶されるコンフィグ情報に基づいて、物理サーバＡ１０または物理サーバＡ１０上のＶＭと他の装置または他ＶＭとの通信を制御する。さらに、物理スイッチＡ２０は、物理サーバＡ１０から仮想マシンのＶＭ情報を受信した場合に、当該受信した情報に基づいてコンフィグ情報を更新する。
【００２８】
物理サーバＢ３０は、ネットワークを介してＶＭ管理サーバ１と接続されるとともに、物理スイッチＢ４０と接続され、ＶＭを起動または停止する情報処理装置である。この物理サーバＢ３０は、物理サーバＡ１０と同様の構成を有する。具体的には、物理サーバＢ３０は、自装置上で稼動するＶＭの状態を監視する。そして、物理サーバＢ３０は、ＶＭの状態が変化したことが検出された場合に、自装置またはＶＭと他の装置または他のＶＭとの通信を制御する物理スイッチＢ４０に、当該変化したＶＭの状態を示す状態変化情報を送信する。
【００２９】
物理スイッチＢ４０は、物理サーバＢ３０と接続されるとともに、インターネットなどのネットワークを介して物理スイッチＡ２０やＮＷ管理サーバ５と接続されるスイッチなどのネットワーク機器である。この物理スイッチＢ４０は、物理スイッチＡ２０と同様の構成を有する。具体的には、物理スイッチＢ４０は、自装置と接続される物理サーバＡ１０で稼動するＶＭのコンフィグ情報を記憶する。そして、物理スイッチＢ４０は、記憶されるコンフィグ情報に基づいて、物理サーバＢ３０または物理サーバＢ３０上のＶＭと他の装置または他ＶＭとの通信を制御する。さらに、物理スイッチＢ４０は、物理サーバＢ３０からＶＭの状態が変化したことを示す状態変化情報を受信した場合に、当該受信した状態変化情報に基づいてコンフィグ情報を更新する。
【００３０】
このように、本願が開示する物理サーバや物理スイッチを用いることで、マイグレーション完了後における仮想マシンの通信断を回避することが可能である。
【００３１】
［各装置の構成］
次に、図２を用いて、図１に示したＶＭ管理サーバ１とＮＷ管理サーバ５と物理サーバＡ１０と物理スイッチＡ２０と物理サーバＢ３０と物理スイッチＢ４０とのそれぞれの構成について説明する。図２は、実施例１に係る物理サーバと物理スイッチの構成を示すブロック図である。なお、物理サーバＡ１０と物理サーバＢ３０とは同様の構成を有するので、ここでは物理サーバＡ１０についてのみ説明し、また、物理スイッチＡ２０と物理スイッチＢ４０とは同様の構成を有するので、ここでは物理スイッチＡ２０についてのみ説明する。
【００３２】
また、ＶＭ管理サーバ１は、一般的な管理サーバと同様の機能を有するので詳細な説明は省略し簡単に説明する。具体的には、ＶＭ管理サーバ１は、管理者から指示を受け付ける入力部や各種情報を表示する表示部などを有するとともに、物理サーバＡ１０や物理サーバＢ３０で稼動しているＶＭに関する情報を保持する。例えば、ＶＭ管理サーバ１は、物理サーバＡ１０上でＶＭ１とＶＭ２が稼動中であり、物理サーバＢ３０上でＶＭ３が稼動中であるなどの情報を保持する。
【００３３】
また、ＮＷ管理サーバ５は、一般的な管理サーバと同様の機能を有するので詳細な説明は省略し簡単に説明する。具体的には、ＮＷ管理サーバ５は、管理者から指示を受け付ける入力部や各種情報を表示する表示部などを有するとともに、物理スイッチＡ２０や物理スイッチＢ４０に設定するコンフィグ情報を保持する。例えば、ＶＭ管理サーバ１は、ＶＭ１、ＶＭ２、ＶＭ３のそれぞれのコンフィグ情報を保持する。
【００３４】
（物理サーバの構成）
物理サーバＡ１０は、図２に示すように、サーバ側物理ＮＩＣ（Network  Interface  Card）１１とスイッチ側物理ＮＩＣ１２と仮想領域１３と管理ＶＭ１４とを有する。なお、ここで示した各制御部はあくまで例示であり、これに限定されるものではなく、例えばキーボードやマウスなどの入力部、ディスプレイなどの表示部、ＣＰＵ（Central  Processing  Unit）などの電子回路を有する。
【００３５】
サーバ側物理ＮＩＣ１１は、ＶＭ管理サーバ１と接続するインタフェースであり、例えば、ＶＭ管理サーバ１からライブマイグレーション指示等を受信して管理ＶＭ１４に出力する。また、サーバ側物理ＮＩＣ１１は、管理ＶＭ１４からライブマイグレーション実行結果を受信してＶＭ管理サーバ１に送信する。
【００３６】
スイッチ側物理ＮＩＣ１２は、物理スイッチＡ２０と接続するインタフェースであり、例えば、管理ＶＭ１４から出力されたライブマイグレーションの対象となるＶＭに関する情報を示すＶＭ情報通知メッセージを物理スイッチＡ２０に送信する。また、スイッチ側側物理ＮＩＣ１２は、物理スイッチＡ２０からＶＭのコンフィグ情報など各種情報を受信する。
【００３７】
仮想領域１３は、管理ＶＭ１４によって作成された複数のＶＭを起動する領域であり、任意の数のＶＭを起動することができる仮想的な領域であり、例えば、図２に示すようにＶＭ１とＶＭ２が稼動される。
【００３８】
管理ＶＭ１４は、ＶＭ情報ＤＢ１４ａと仮想スイッチ１４ｂとＶＭ制御部１４ｃとＶＭ状態監視部１４ｄとＶＭ情報通知部１４ｅとを有し、これらによってＶＭに関する各種制御を実施する制御部である。
【００３９】
ＶＭ情報ＤＢ１４ａは、物理サーバＡ１０の仮想領域１３で稼動するＶＭの情報を記憶する。例えば、ＶＭ情報ＤＢ１４ａは、図３に示すように、「ＶＭ名、起動状態、ＭＡＣ（Media  Access  Control）アドレス、ＵＵＩＤ（Universally  Unique  Identifier）、ポート番号」として「ＶＭ１、Running、00-00-0E-00-00-01、xxxxxxxx、1」などを記憶する。また、ＶＭ情報ＤＢ１４ａは、「ＶＭ名、起動状態、ＭＡＣアドレス、ＵＵＩＤ、ポート番号」として「ＶＭ２、Running、00-00-0E-00-00-02、yyyyyyyy、2」などを記憶する。なお、図３は、ＶＭ情報ＤＢに記憶される情報の例を示す図である。
【００４０】
ここで記憶される「ＶＭ名」は、物理サーバＡ１０で稼動するＶＭを識別する情報である。「起動状態」は、ＶＭが起動であるか否かを示す情報であり、例えば起動中である場合には「Running」が格納され、停止中またはマイグレーション中である場合には「Pause」が格納される。「ＭＡＣアドレス」は、ＶＭのＭＡＣアドレスを示し、「ＵＵＩＤ」は、管理ＶＭ１４によって付与されるＶＭを一意に識別する識別子であり、「ポート番号」は、ＶＭが接続される仮想スイッチ１４ｂのポート番号である。なお、ここで記憶される各情報は、後述するＶＭ制御部１４ｃ等によって格納される。
【００４１】
仮想スイッチ１４ｂは、複数のポートを有し、稼動中のＶＭとスイッチ側物理ＮＩＣ１２とを接続するブリッジなどの仮想ネットワークインタフェースである。例えば、仮想スイッチ１４ｂは、仮想領域１３のＶＭ１をポート１に接続し、仮想領域１３のＶＭ２をポート２に接続する。そして、仮想スイッチ１４ｂは、ＶＭ１またはＶＭ２と他の物理サーバや物理スイッチ、ＶＭ等の間でやり取りされる通信を制御する。
【００４２】
ＶＭ制御部１４ｃは、仮想化機能を実現する制御部であり、ＶＭの生成、停止、移動を制御する。例えば、ＶＭ制御部１４ｃは、サーバ側物理ＮＩＣ１１を介してＶＭ管理サーバ１からＶＭの生成指示を受信した場合には、指示されたＶＭに関する情報として「ＶＭ名、起動状態、ＭＡＣアドレス、ＵＵＩＤ、ポート番号」をＶＭ情報ＤＢ１４ａに格納する。また、ＶＭ制御部１４ｃは、サーバ側物理ＮＩＣ１１を介してＶＭ管理サーバ１からＶＭの停止指示を受信した場合には、ＶＭ情報ＤＢ１４ａにおいて、指示されたＶＭに対応する「起動状態」を「Pause」に更新する。
【００４３】
また、ＶＭ制御部１４ｃは、サーバ側物理ＮＩＣ１１を介してＶＭ管理サーバ１からＶＭ２を物理サーバＢ３０に移動させる指示を受信した場合には、ＶＭ情報通知部１４ｅにＶＭ２を移動させるライブマイグレーションを開始することを通知する。続いて、ＶＭ制御部１４ｃは、ＶＭ情報ＤＢ１４ａにおいて、指示されたＶＭに対応する「起動状態」を「Pause」に更新する。そして、ＶＭ制御部１４ｃは、ＶＭ２のライブマイグレーション制御を開始する。
【００４４】
ＶＭ制御部１４ｃが実施するライブマイグレーション制御は、一般的なマイグレーション制御と同様であるので、詳細な説明は省略する。例えば、ＶＭ制御部１４ｃは、移動対象のＶＭ２が物理サーバＡ１０で動作している状態で、プレコピーを実施する。具体的には、ＶＭ制御部１４ｃは、自身が利用しているメモリ内容を移動先の物理サーバＢ３０に転送する。そして、ＶＭ制御部１４ｃは、メモリの変更量に応じて、このプレコピーを繰り返す。
【００４５】
その後、ＶＭ制御部１４ｃは、メモリの変更量が所定値以下になった場合に、ストップアンドコピーを実施する。具体的には、ＶＭ制御部１４ｃは、移動対象のＶＭ２の業務を一時的に停止し、自身が利用しているメモリ内容を移動先の物理サーバＢ３０に転送する。そして、ＶＭ制御部１４ｃは、移動されたＶＭを起動して業務を再開するとともに、物理スイッチＢ４０に対してＧＡＲＰ（Gratuitous  Address  Resolution  Protocol）パケットを送信する。こうすることで、ＶＭ２が物理サーバＡ１０から物理サーバＢ３０に移動するライブマイグレーション制御が完了する。
【００４６】
ＶＭ状態監視部１４ｄは、自装置上で稼動する仮想マシンの状態を監視する。すなわち、ＶＭ状態監視部１４ｄは、物理サーバＡ１０上の仮想マシン稼動数や状態の変化を監視し、監視結果をＶＭ情報通知部１４ｅに出力する。例えば、ＶＭ状態監視部１４ｄは、ＶＭ情報ＤＢ１４ａを常時監視し、レコードの追加や削除を検出して、検出した情報をＶＭ情報通知部１４ｅに出力する。
【００４７】
一例として、図４に示すように、ＶＭ制御部１４ｃによって、ＶＭ情報ＤＢ１４ａに「ＶＭ３、Pause、00-00-0E-00-00-03、zzzzzzzz、3」が新たに追加されたとする。この場合、ＶＭ状態監視部１４ｄは、ライブマイグレーション制御が実施され、他の物理サーバからＶＭ３が移動している最中であること、つまり、ＶＭ３のライブマイグレーション制御を検出し、この情報をVM情報通知部１４ｅに出力する。また、ＶＭ状態監視部１４ｄは、ＶＭ情報ＤＢ１４ａからレコードが削除された場合には、ＶＭ制御部１４ｃによってＶＭが停止されたか又は移動したと検出し、その旨をＶＭ情報通知部１４ｅに出力する。
なお、図４は、ＶＭ情報ＤＢにレコードが追加された例を示す図である。
【００４８】
ＶＭ情報通知部１４ｅは、ＶＭ状態監視部１４ｄによりＶＭの状態が変化したことが検出された場合に、自装置または自装置上のＶＭと他の装置または他のＶＭとの通信を制御する物理スイッチＡ２０に、当該変化したＶＭの状態を示す状態変化情報を送信する。例えば、ＶＭ情報通知部１４ｅは、ＶＭ２のレコードがＶＭ情報ＤＢ１４ａから削除されたことをＶＭ状態監視部１４ｄから受信すると、物理スイッチＡ２０にＶＭ２が停止したことを示す情報を送信する。また、ＶＭ情報通知部１４ｅは、ＶＭ３のレコードがＶＭ情報ＤＢ１４ａに新たに追加されたことをＶＭ状態監視部１４ｄから受信すると、物理スイッチＡ２０にＶＭ３が新規稼動したことを示す情報を送信する。
【００４９】
例えば、ＶＭ情報通知部１４ｅは、図５に示すようなＬＬＤＰ（Link  Layer  Discovery  Protocol）フレームを用いたＶＭ情報通知メッセージで、物理スイッチＡ２０に仮想マシンの状態の変化の内容を含む情報を送信する。図５に示すＬＬＤＰフレームは、「Destination  MAC  Address、Source  MAC  Address、EtherType、LLDPDU」とを有する。この「Destination  MAC  Address」は、あて先である物理スイッチＢ４０のＭＡＣアドレスであり、「Source  MAC  Address」は、送信元の物理サーバＡ１０のＭＡＣアドレスなどである。「EtherType」は、通信プロトコルの種類を示す情報であり、例えばＬＬＤＰの場合は８８−ＣＣである。「LLDPDU」は、送信対象データが格納されるＬＬＤＰのデータユニットである。
【００５０】
この「LLDPDU」は、図５に示すように、「Chassis  ID  TLV、Port  ID  TLV、Time  To  Live  TLV、VM情報TLV、End  Of  LLPDU  TLV」を有し、いずれの領域も「TLV＝Type、Length、Value」の３フィールドから構成される。「Chassis  ID  TLV」は、機器識別情報であり、物理スイッチＡ２０を識別する識別子やＭＡＣアドレス、ＩＰ（Internet  Protocol）アドレスなどである。「Port  ID  TLV」は、ポート識別子を示す情報であり、物理スイッチＡ２０のインタフェースやポート番号である。「Time  To  Live  TLV」は、当該フレームに記憶される情報の有効期間である。
【００５１】
「VM情報TLV」は、物理スイッチＡ２０に通知したいＶＭ情報が格納される領域であり、例えばメッセージ種別、イベント種別、ＶＭ識別子などが格納される。メッセージ種別は、当該ＶＭ情報通知メッセージの種別を示す情報であり、通常の通知を示すNotify、レスポンスを示すResponse、エラーを示すErrorなどが格納される。イベント種別は、当該ＶＭ情報通知メッセージが通知するＶＭの状態変化を示す情報であり、例えば新規起動、停止、移動などが格納される。ＶＭ識別子は、当該ＶＭ情報通知メッセージによる通知対象となっているＶＭを特定する情報であり、例えば新規起動や停止されたＶＭまたは移動中のＶＭのＭＡＣアドレスやＵＵＩＤなどである。「End  Of  LLPDU  TLV」は、ＬＬＤＰＤＵの終端を示す情報である。
【００５２】
また、この例では「Source  MAC  Address」に物理サーバＡ１０のＭＡＣアドレスなどを格納する例を説明したが、ＶＭ以外のユニークなＭＡＣアドレスなどハイパーバイザーのＭＡＣアドレスを設定する方がよい。例えば、「Source  MAC  Address」にＶＭのＭＡＣアドレスを設定したパケットを受信した物理スイッチが、本パケットのアドレス学習してしまう場合がある。その場合、マイグレーション中であるにもかかわらずスイッチのＦＤＢ（Forwarding  DataBase）情報が変更されてしまい、ライブマイグレーション中のＶＭ通信が切断される事象が発生することがある。そこで、「Source  MAC  Address」にハイパーバイザーのＭＡＣアドレスを設定することで、上記事象を回避することができる。
【００５３】
なお、ここでは、ＶＭ情報通知メッセージとしてＬＬＤＰを利用する例を示したが、これ以外のプロトコルやフレーム構造でもよい。また、ＶＭ識別子としてＶＭのＭＡＣアドレスを通知する例を示したが、ＶＭを識別することができるＵＵＩＤなどの他の識別子を通知してもよい。なお、図５は、ＶＭ情報通知メッセージの例を示す図である。
【００５４】
（物理スイッチの構成）
物理スイッチＡ２０は、図２に示すように、物理インタフェース２０ａとコンフィグ情報ＤＢ２０ｂとコンフィグ更新部２０ｃとパケット処理部２０ｄとを有する。なお、ここで示した各制御部はあくまで例示であり、これに限定されるものではなく、例えば受信したパケットやフレームなどのデータの経路を示す経路情報を記憶する記憶部や、経路情報に基づいてスイッチング制御する制御部などを有する。
【００５５】
物理インタフェース２０ａは、物理サーバＡ１０、物理サーバＢ３０、物理スイッチＢ４０、ＮＷ管理サーバ５などと接続するインタフェースであり、接続される各装置から各種情報を受信し、また、各装置に各種情報を送信する。例えば、物理インタフェース２０ａは、物理サーバＡ１０から情報通知メッセージを受信し、また、受信した情報通知メッセージに対する応答である情報通知応答メッセージを送信する。
【００５６】
コンフィグ情報ＤＢ２０ｂは、自装置と接続される物理サーバＡ１０上で稼動するＶＭのコンフィグ情報を記憶する。例えば、コンフィグ情報ＤＢ２０ｂは、図６に示すように、「検索ＫＥＹ、有効／無効、コンフィグ情報（ＶＬＡＮ、ＡＣＬルール、帯域保証、優先制御）」として「ＡＡＡ、有効、（１００１、Ｎｏｎｅ、１０Ｍｂｐｓ、−）」などを記憶する。また、コンフィグ情報ＤＢ２０ｂは、「ＢＢＢ、無効、（１００２、Ｒｕｌｅ−Ｂ、−、最優先）」などを記憶する。なお、図６は、コンフィグ情報ＤＢに記憶される情報の例を示す図である。
【００５７】
ここで記憶される「検索ＫＥＹ」は、コンフィグ情報ＤＢ２０ｂに記憶されるレコードを検索するためのキーであり、例えばＶＭのＭＡＣアドレスやＵＵＩＤなどＶＭを一意に識別する情報である。「有効／無効」は、レコードが有効であるか無効であるかを示す情報である。「ＶＬＡＮ」は、ＶＭが属するＶＬＡＮを識別するＶＬＡＮ識別子であり、「ＡＣＬルール」は、ＶＭに適用するアクセスコントロールのルールを特定する情報である。「帯域保証」は、ＶＭに割り与えられた帯域であり、ここで記憶される帯域が保証される。「優先制御」は、通信制御などの各種処理を優先させるか否かを示す情報であり、最も優先させる場合には「最優先」が格納され、優先させない場合には「低優先」が格納され、何も格納されない場合には優先制御が実施されない。なお、ここで示したコンフィグ情報はあくまで例でありこれに限定されるものではなく、他のコンフィグ情報についても任意に追加または削除できる。
【００５８】
一例として、「ＡＡＡ、有効、（１００１、Ｎｏｎｅ、１０Ｍｂｐｓ、−）」は、ＭＡＣアドレス「ＡＡＡ」のＶＭに対して、ＶＬＡＮ（１００１）、帯域制御（１０Ｍｂｐｓ）が設定されており、当該設定が有効であることを示す。「ＢＢＢ、無効、（１００２、Ｒｕｌｅ−Ｂ、−、最優先）」は、ＭＡＣアドレス「ＢＢＢ」のＶＭに対して、ＶＬＡＮ（１００２）、アクセスコントロール（Ｒｕｌｅ−Ｂ）、優先制御（最優先）が設定されており、当該設定が無効であることを示す。なお、アクセスコントロールのルールは、ルールを識別する識別子と対応付けて所定の記憶部に記憶される。
【００５９】
図２に戻り、コンフィグ更新部２０ｃは、物理スイッチＡ２０からＶＭの情報を受信した場合に、当該受信した情報に基づいてコンフィグ情報ＤＢ２０ｂに記憶されるコンフィグ情報を更新する。例えば、コンフィグ更新部２０ｃは、ＶＭ２が停止されたことを示すＶＭ情報通知メッセージを物理スイッチＡ２０から受信した場合、ＶＭ情報通知メッセージのVM情報TLVからＶＭ２のＭＡＣアドレスを取得する。続いて、コンフィグ更新部２０ｃは、ＶＭ２のＭＡＣアドレスを検索キーとしてコンフィグ情報ＤＢ２０ｂからＶＭ２に対応するレコードを検索する。そして、コンフィグ更新部２０ｃは、検索したレコードの「有効／無効」を「無効」に変更し、ＶＭ２のコンフィグを無効化する。なお、コンフィグ更新部２０ｃは、検索したレコードをコンフィグ情報ＤＢ２０ｂから削除することで、ＶＭ２のコンフィグを無効化してもよい。
【００６０】
また、コンフィグ更新部２０ｃは、ＶＭ３が移動中または新規起動されたことを示すＶＭ情報通知メッセージを物理スイッチＡ２０から受信した場合、ＶＭ情報通知メッセージのVM情報TLVからＶＭ３のＭＡＣアドレスを取得する。そして、コンフィグ更新部２０ｃは、ＭＡＣアドレスなどＶＭ３を特定する情報をＮＷ管理サーバ５に送信して、ＶＭ３のコンフィグ情報をＮＷ管理サーバ５から取得する。続いて、コンフィグ更新部２０ｃは、ＶＭ３のＭＡＣアドレスを「検索ＫＥＹ」、「有効／無効」を「有効」に、これらとコンフィグ情報とを対応付けてコンフィグ情報ＤＢ２０ｂに格納する。なお、コンフィグ更新部２０ｃは、コンフィグ情報ＤＢ２０ｂにコンフィグ格納してから所定時間経過後、自動的に「有効／無効」を「無効」から「有効」に変更するようにしてもよい。
【００６１】
パケット処理部２０ｄは、コンフィグ情報ＤＢ２０ｂに記憶されるコンフィグ情報に基づいて、物理サーバＡ１０またはＶＭと他の装置または他のＶＭとの通信を制御する。例えば、パケット処理部２０ｄは、コンフィグ情報ＤＢ２０ｂに記憶されるＡＣＬルールに対応するルールを所定の記憶部から読み出してアクセス制御を実行する。また、パケット処理部２０ｄは、コンフィグ情報ＤＢ２０ｂに記憶される帯域を保証するようにＱｏＳ制御を実施する。
【００６２】
［具体例（ＶＭ２のマイグレーション）］
次に、図７を用いて、物理サーバＡ１０で稼動しているＶＭ２を物理サーバＢ３０にライブマイグレーションする例について説明する。図７は、物理サーバＡのＶＭ２を物理サーバＢにライブマイグレーションする例を示す図である。
【００６３】
図７に示す全体構成図は、図１と同様なので、ここでは省略する。図７に示すように、物理サーバＡ１０のＶＭ制御部１４ｃは、ＶＭ管理サーバ１からＶＭ２のライブマイグレーション指示を受信する（図７の（α）参照）。そして、物理サーバＡ１０のＶＭ制御部１４ｃは、物理サーバＢ３０のＶＭ制御部３４ｃとの間で、ＶＭ２のライブマイグレーション制御を開始する（図７の（β）参照）。なお、このとき、物理サーバＢ３０のＶＭ制御部３４ｃは、図７に図示しないＶＭ情報ＤＢ３４ａにＶＭ２のレコードを生成する。
【００６４】
そして、物理サーバＢ３０のＶＭ状態監視部３４ｄは、ＶＭ情報ＤＢ３４ａにＶＭ２のレコードが追加されたことを検出し、ＶＭ２が追加されたことをＶＭ情報通知部３４ｅに通知する（図７の（γ）参照）。続いて、ＶＭ状態監視部３４ｄによりＶＭ２が追加されたことが通知された物理サーバＢ３０のＶＭ情報通知部３４ｅは、追加されたＶＭ２のＭＡＣアドレス等を含めたイベント種別「移動」のＶＭ情報通知メッセージを生成し、物理スイッチＢ４０に送信する（図７の（δ）参照）。なお、ＶＭ２のＭＡＣアドレス等は、ライブマイグレーション制御等から取得できる。
【００６５】
そして、物理スイッチＢ４０のコンフィグ更新部４０ｃは、ＶＭ２が移動中または新規起動されたことを示すＶＭ情報通知メッセージからＶＭ２のＭＡＣアドレスを取得し、ＮＷ管理サーバ５に送信する（図７の（ε）参照）。続いて、物理スイッチＢ４０のコンフィグ更新部４０ｃは、ＶＭ２のコンフィグ情報をＮＷ管理サーバ５から取得する（図７の（ζ）参照）。続いて、コンフィグ更新部４０ｃは、ＶＭ２のＭＡＣアドレスを「検索ＫＥＹ」、「有効／無効」を「有効」にして、これらとコンフィグ情報とを対応付けてコンフィグ情報ＤＢ４０ｂに格納する（図７の（η）参照）。その後、ライブマイグレーションが完了すると、物理スイッチＢ４０のパケット処理部４０ｄは、物理サーバＢ３０からＧＡＲＰパケットを受信し、ライブマイグレーションが完了したことを認識する（図７の（θ）参照）。
【００６６】
一方、物理サーバＡ１０では、ＶＭ状態監視部１４ｄが図７に図示しないＶＭ情報ＤＢ１４ａからＶＭ２のレコードが削除されたことを検出し、ＶＭ２が停止されたことをＶＭ情報通知部１４ｅに通知する（図７の（ι）参照）。続いて、ＶＭ情報通知部１４ｅは、削除されたＶＭ２のＭＡＣアドレス等を含めたイベント種別「停止」のＶＭ情報通知メッセージを生成し、物理スイッチＡ２０に送信する（図７の（κ）参照）。その後、物理スイッチＡ２０のコンフィグ更新部２０ｃは、イベント種別「停止」のＶＭ情報通知メッセージに含まれるＶＭ２のＭＡＣアドレスに対応するレコードをコンフィグ情報ＤＢ２０ｂから削除する（図７の（λ）参照）。このようにすることで、不要な通信断の発生を防止して、ライブマイグレーションを完了させることができる。
【００６７】
［処理の流れ］
次に、図８〜図１１を用いて、実施例１に係るシステムの処理の流れを説明する。図８は、実施例１に係るシステムの動作シーケンスを示す図であり、図９は、ＶＭ監視処理の流れを示すフローチャートである。また、図１０は、イベント通知処理の流れを示すフローチャートであり、図１１は、ＶＭ情報受信処理の流れを示すフローチャートである。
【００６８】
なお、ここでは、物理サーバＡ１０で稼動中のＶＭを物理サーバＢ３０に移動させる例について説明する。つまり、物理サーバＡ１０が移動元サーバ、物理スイッチＡ２０が移動元スイッチ、物理サーバＢ３０が移動先サーバ、物理スイッチＢ４０が移動先スイッチとして説明する。
【００６９】
（シーケンス）
図８に示すように、ＶＭ管理サーバ１は、物理サーバＡ１０に対してライブマイグレーション制御の開始指示を送信する（ステップＳ１０１）。物理サーバＡ１０のＶＭ制御部１４ｃは、物理サーバＢ３０のＶＭ制御部３４ｃとの間で、ＶＭのライブマイグレーション制御を開始する（ステップＳ１０２）。このとき、物理サーバＢ３０のＶＭ制御部３４ｃは、ＶＭ情報ＤＢ３４ａに移動対象のＶＭのレコードを生成する。
【００７０】
その後、物理サーバＢ３０のＶＭ監視部３４ｄは、ＶＭ監視処理を実行してＶＭのライブマイグレーションが開始されたことを検出し（ステップＳ１０３）、ＶＭ情報ＤＢ３４ａにＶＭが追加されたことをＶＭ情報通知部３４ｅに通知する（ステップＳ１０４）。
【００７１】
続いて、物理サーバＢ３０のＶＭ情報通知部３４ｅは、イベント通知処理を実行してＶＭの起動開始を通知するＶＭ情報通知メッセージを生成し（ステップＳ１０５）、生成したＶＭ情報通知メッセージを物理スイッチＢ４０に送信する（ステップＳ１０６）。
【００７２】
そして、物理スイッチＢ４０のコンフィグ更新部４０ｃは、ＶＭ情報受信処理を実行する。具体的には、コンフィグ更新部４０ｃは、受信したＶＭの起動開始を通知するＶＭ情報通知メッセージに含まれるＶＭのＭＡＣアドレスを取得し、このＭＡＣアドレスに対応するコンフィグ情報取得リクエストをＮＷ管理サーバ５に送信する（ステップＳ１０７）。このリクエストを受信したＮＷ管理サーバ５は、リクエストに含まれるＭＡＣアドレスに対応するＶＭのコンフィグ情報を物理スイッチＢ４０に応答する（ステップＳ１０８）。続いて、コンフィグ更新部４０ｃは、ＶＭのＭＡＣアドレスを検索キーとして、受信したコンフィグ情報をコンフィグ情報ＤＢ４０ｂに格納して活性化、言い換えると、「有効」にする（ステップＳ１０９）。続いて、コンフィグ更新部４０ｃは、コンフィグ情報の登録および活性化が終了したことを示す応答を物理サーバＢ３０に送信する（ステップＳ１１０）。
【００７３】
その後、物理サーバＢ３０のＶＭ監視部３４ｄは、ＶＭ監視処理を実行してＶＭのライブマイグレーションが完了したことを検出し（ステップＳ１１１）、ライブマイグレーションが完了したことをＶＭ情報通知部３４ｅに通知する（ステップＳ１１２）。
【００７４】
続いて、物理サーバＢ３０のＶＭ情報通知部３４ｅは、イベント通知処理を実行してＶＭの起動完了を通知するＶＭ情報通知メッセージを生成し（ステップＳ１１３）、生成したＶＭ情報通知メッセージを物理スイッチＢ４０に送信する（ステップＳ１１４）。
【００７５】
そして、物理スイッチＢ４０のコンフィグ更新部４０ｃは、受信したＶＭ情報通知メッセージに対する応答を物理サーバＢ３０に送信する（ステップＳ１１５）。この結果、物理サーバＢ３０の管理ＶＭ３４は、物理スイッチＢ４０に対してＧＡＲＰを送信する（ステップＳ１１６）。
【００７６】
上述したように、移動先側で処理が実行される一方で、移動元の物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ監視処理を実行してＶＭのライブマイグレーションが開始され、ＶＭが停止されたことを検出する（ステップＳ１１７）。そして、ＶＭ状態監視部１４ｄは、ＶＭ情報ＤＢ３４ａからＶＭが停止されたことをＶＭ情報通知部１４ｅに通知する（ステップＳ１１８）。
【００７７】
続いて、物理サーバＡ１０のＶＭ情報通知部１４ｅは、イベント通知処理を実行してＶＭの停止を通知するＶＭ情報通知メッセージを生成し（ステップＳ１１９）、生成したＶＭ情報通知メッセージを物理スイッチＡ２０に送信する（ステップＳ１２０）。
【００７８】
そして、物理スイッチＡ２０のコンフィグ更新部２０ｃは、コンフィグ情報ＤＢ２０ｂを参照し、受信したメッセージに含まれるＶＭのＭＡＣアドレスを検索キーとするコンフィグ情報を無効化する（ステップＳ１２１）。続いて、コンフィグ更新部２０ｃは、コンフィグ情報の無効化が終了したことを示す応答を物理サーバＡ１０に送信する（ステップＳ１２２）。
【００７９】
（ＶＭ監視処理の流れ）
次に、図８のステップＳ１０３、ステップＳ１１１、ステップＳ１１７に示したＶＭ監視処理の流れを説明する。なお、ここでは物理サーバＢ３０が実行する例で説明する。
【００８０】
図９に示すように、物理サーバＢ３０のＶＭ状態監視部３４ｄは、ＶＭ情報ＤＢ３４ａを参照して最新のＶＭ情報を取得し（ステップＳ２０１）、メモリなど保存しておいた前回のＶＭ情報と比較する（ステップＳ２０２）。
【００８１】
そして、ＶＭ状態監視部３４ｄは、前回のＶＭ情報からＶＭの追加がある場合には（ステップＳ２０３肯定）、「イベント種別＝起動開始、ＶＭ識別子＝追加されたＶＭのＭＡＣアドレス」を示すイベント情報をＶＭ情報通知部３４ｅに通知する（ステップＳ２０４）。
【００８２】
一方、ＶＭ状態監視部３４ｄは、前回のＶＭ情報からＶＭの追加がない場合には（ステップＳ２０３否定）、前回のＶＭ情報からＶＭの削除（停止）があるか否かを判定する（ステップＳ２０５）。そして、ＶＭ状態監視部３４ｄは、前回のＶＭ情報からＶＭの削除がある場合には（ステップＳ２０５肯定）、「イベント種別＝停止完了、ＶＭ識別子＝停止したＶＭのＭＡＣアドレス」を示すイベント情報をＶＭ情報通知部３４ｅに通知する（ステップＳ２０６）。
【００８３】
一方、ＶＭ状態監視部３４ｄは、前回のＶＭ情報からＶＭの削除がない場合には（ステップＳ２０５否定）、前回のＶＭ情報からＶＭの状態が変化したものがあるか否かを判定する（ステップＳ２０７）。例えば、ＶＭ状態監視部３４ｄは、前回のＶＭ情報において「Pause」から「Running」に状態が変化したＶＭがあるか否かを判定する。そして、ＶＭ状態監視部３４ｄは、前回のＶＭ情報から状態が変化したＶＭがある場合には（ステップＳ２０７肯定）、「イベント種別＝起動完了、ＶＭ識別子＝変化があったＶＭのＭＡＣアドレス」を示すイベント情報をＶＭ情報通知部３４ｅに通知する（ステップＳ２０８）。
【００８４】
そして、ＶＭ状態監視部３４ｄは、最新のＶＭ情報を前ＶＭ情報としてメモリなど所定の記憶部に保持し（ステップＳ２０９）、ステップＳ２０１に戻って以降の処理を繰り返す。
【００８５】
（イベント通知処理の流れ）
次に、図８のステップＳ１０５、ステップＳ１１３、ステップＳ１１９に示したイベント通知処理の流れを説明する。なお、ここでは物理サーバＢ３０が実行する例で説明する。
【００８６】
図１０に示すように、ＶＭ状態監視部３４ｄからイベント通知を受信したＶＭ情報通知部３４ｅは、受信したイベント通知が起動開始であるか否かを判定する（ステップＳ３０１）。そして、ＶＭ情報通知部３４ｅは、受信したイベント通知が起動開始である場合に（ステップＳ３０１肯定）、「イベント種別＝起動開始、ＶＭ識別子＝追加されたＶＭのＭＡＣアドレス」とするＶＭ情報通知メッセージを生成する（ステップＳ３０２）。続いて、ＶＭ情報通知部３４ｅは、生成したＶＭ情報通知メッセージを物理スイッチＢ４０に送信する（ステップＳ３０３）。
【００８７】
一方、ＶＭ情報通知部３４ｅは、受信したイベント通知が起動開始でない場合に（ステップＳ３０１否定）、受信したイベント通知が停止であるか否かを判定する（ステップＳ３０４）。そして、ＶＭ情報通知部３４ｅは、受信したイベント通知が停止である場合に（ステップＳ３０４肯定）、「イベント種別＝停止完了、ＶＭ識別子＝停止したＶＭのＭＡＣアドレス」とするＶＭ情報通知メッセージを生成する（ステップＳ３０２）。続いて、ＶＭ情報通知部３４ｅは、生成したＶＭ情報通知メッセージを物理スイッチＢ４０に送信する（ステップＳ３０３）。
【００８８】
一方、ＶＭ情報通知部３４ｅは、受信したイベント通知が停止でない場合に（ステップＳ３０４否定）、受信したイベント通知が起動完了であるか否かを判定する（ステップＳ３０５）。そして、ＶＭ情報通知部３４ｅは、受信したイベント通知が起動完了でない場合に（ステップＳ３０５否定）、ＶＭ情報通知メッセージを生成せずに処理を終了する。
【００８９】
一方、ＶＭ情報通知部３４ｅは、受信したイベント通知が起動完了である場合に（ステップＳ３０５肯定）、物理スイッチＢ４０から起動開始通知に対する応答メッセージが受信済みであるか否かを判定する（ステップＳ３０６）。そして、ＶＭ情報通知部３４ｅは、応答メッセージが受信済みである場合に（ステップＳ３０６肯定）、「イベント種別＝起動完了、ＶＭ識別子＝起動完了したＶＭのＭＡＣアドレス」とするＶＭ情報通知メッセージを生成する（ステップＳ３０２）。続いて、ＶＭ情報通知部３４ｅは、生成したＶＭ情報通知メッセージを物理スイッチＢ４０に送信する（ステップＳ３０３）。
【００９０】
（ＶＭ情報受信処理の流れ）
次に、図８に示したＶＭ情報受信処理の流れを説明する。なお、ここでは物理スイッチＢ４０が実行する例で説明する。
【００９１】
図１１に示すように、物理サーバＢ３０から情報通知メッセージを受信した物理スイッチＢ４０のコンフィグ更新部４０ｃは、受信したメッセージのイベント種別が起動開始であるか否かを判定する（ステップＳ４０１）。
【００９２】
そして、コンフィグ更新部４０ｃは、イベント種別が起動開始である場合には（ステップＳ４０１肯定）、コンフィグ情報ＤＢ４０ｂに当該ＶＭに対応するコンフィグ情報が存在するか否かを判定する（ステップＳ４０２）。例えば、コンフィグ更新部４０ｃは、受信したメッセージのＶＭ識別子に対応するコンフィグ情報が記憶されているか否かを判定する。
【００９３】
そして、コンフィグ更新部４０ｃは、コンフィグ情報ＤＢ４０ｂに当該ＶＭに対応するコンフィグ情報が存在する場合（ステップＳ４０２肯定）、応答メッセージを物理サーバＢ３０に送信する（ステップＳ４０３）。
【００９４】
一方、コンフィグ更新部４０ｃは、コンフィグ情報ＤＢ４０ｂに当該ＶＭに対応するコンフィグ情報が存在しない場合（ステップＳ４０２否定）、該当するＶＭのコンフィグ情報取得リクエストをＮＷ管理サーバ５に送信する（ステップＳ４０４）。
【００９５】
そして、コンフィグ更新部４０ｃは、該当するＶＭのコンフィグ情報を受信すると（ステップＳ４０５肯定）、当該ＶＭのＭＡＣアドレスを検索キーとして、受信したコンフィグ情報をコンフィグ情報ＤＢ４０ｂに格納する（ステップＳ４０６）。続いて、コンフィグ更新部４０ｃは、新たに格納したコンフィグ情報を活性化し（ステップＳ４０７）、コンフィグ情報の格納が完了したことを示す応答メッセージを物理サーバＢ３０に送信する（ステップＳ４０３）。
【００９６】
また、ステップＳ４０１において、イベント種別が起動開始でない場合には（ステップＳ４０１否定）、コンフィグ更新部４０ｃは、イベント種別が停止であるか否かを判定する（ステップＳ４０８）。
【００９７】
そして、コンフィグ更新部４０ｃは、イベント種別が停止である場合（ステップＳ４０８肯定）、コンフィグ情報ＤＢ４０ｂを参照し、当該ＶＭに対応するコンフィグ情報を無効化または削除する（ステップＳ４０９）。その後、コンフィグ更新部４０ｃは、コンフィグ情報の無効化が完了したことを示す応答メッセージを物理サーバＢ３０に送信する（ステップＳ４０３）。
【００９８】
一方、コンフィグ更新部４０ｃは、イベント種別が停止でない場合（ステップＳ４０８否定）、イベント種別が起動完了であるか否かを判定する（ステップＳ４１０）。そして、コンフィグ更新部４０ｃは、イベント種別が起動完了である場合（ステップＳ４１０肯定）、応答メッセージを物理サーバＢ３０に送信する（ステップＳ４０３）。また、コンフィグ更新部４０ｃは、イベント種別が起動完了でない場合（ステップＳ４１０否定）、そのまま処理を終了する。
【００９９】
［実施例１による効果］
このように実施例１によれば、物理サーバＡ１０と物理サーバＢ３０の間でライブマイグレーション処理が開始された直後に、移動先の物理サーバＢ３０に接続している物理スイッチＢ４０のネットワーク設定が実施される。この結果、ライブマイグレーション処理が完了するまでにネットワーク設定を完了させることができ、ライブマイグレーション完了後すぐに移動してきたＶＭを通信可能状態にすることができる。
【０１００】
なお、物理サーバ間のライブマイグレーション制御が完了すると、移動先の物理サーバＢ３０のＶＭ状態監視部３４ｄは、移動対象のＶＭが完全に稼働状態になったことを検知する。このとき、物理スイッチＢ４０から先に送信した起動開始通知イベントメッセージの応答メッセージを受け取っていれば、ＶＭ状態監視部３４ｄに起動完了イベントとＶＭ識別子を通知する。そして、ＶＭ状態監視部３４ｄが起動完了イベントを含むＶＭ情報通知メッセージを物理スイッチＢ４０へ通知する。
【０１０１】
実施例１では、物理スイッチＢ４０がこの起動完了メッセージを受信したときは特に処理を行わないフローになっている。ところが、物理スイッチＢ４０側で本メッセージの受信を確認することもできる。例えば、物理スイッチＢ４０は、起動開始イベントの応答メッセージを送信した後、一定時間の間に物理サーバＢ３０から起動完了イベントを含むＶＭ情報通知メッセージを受信できるか否かを監視する。そして、物理スイッチＢ４０は、一定時間の間にＶＭ情報通知メッセージを受信できない場合、なんらかの事情によってＶＭが起動できなかったと判断して、当該ＶＭのコンフィグ情報を無効化するようにしてもよい。
【０１０２】
一方、物理サーバ間のライブマイグレーション処理が完了した際、移動元の物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ停止イベントを検知する。このとき、物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ停止イベントとＶＭ識別子を含むＶＭ情報通知メッセージを物理スイッチＡ２０へ送信する。そして、このメッセージを受信した物理スイッチＡ２０のコンフィグ更新部２０ｃは、コンフィグ情報ＤＢ２０ｂ内の当該ＶＭ識別子に紐付けられたコンフィグ情報を無効化するかコンフィグ情報を削除する。これにより、ライブマイグレーションによって移動元の物理スイッチ側で不要となったコンフィグ情報を削除することができる。
【実施例２】
【０１０３】
ところで、本願は、実施例１で説明したライブマイグレーション以外にもＶＭを新規起動または停止する場合でも適用することができる。そこで、実施例２では、ＶＭの新規起動時の動作シーケンスと停止時の動作シーケンスについて説明する。
【０１０４】
（新規起動）
まず、図１２を用いてＶＭの新規起動時の動作シーケンスを説明する。図１２は、実施例２に係るシステムにおけるＶＭの新規起動時の動作シーケンスを示す図である。
【０１０５】
図１２に示すように、ＶＭ管理サーバ１からＶＭの新規起動指示を受信した物理サーバＡ１０のＶＭ制御部１４ｃは、指定されたＶＭを起動する（ステップＳ５０１とステップＳ５０２）。例えば、ＶＭ制御部１４ｃは、該当ＶＭのＭＡＣアドレスを検索キーとしたレコードをＶＭ情報ＤＢ１４ａに作成したり、仮想スイッチ１４ｂに該当ＶＭを接続したりする。
【０１０６】
そして、物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ監視処理を実行して新たなＶＭがＶＭ情報ＤＢ１４ａに格納されたことを検出し（ステップＳ５０３）、ＶＭ情報ＤＢ１４ａにＶＭが追加されたことをＶＭ情報通知部１４ｅに通知する（ステップＳ５０４）。
【０１０７】
続いて、物理サーバＡ１０のＶＭ情報通知部１４ｅは、イベント通知処理を実行してＶＭの新規起動開始を通知するＶＭ情報通知メッセージを生成し（ステップＳ５０５）、生成したＶＭ情報通知メッセージを物理スイッチＡ２０に送信する（ステップＳ５０６）。
【０１０８】
そして、物理スイッチＡ２０のコンフィグ更新部２０ｃは、ＶＭ情報受信処理を実行する。具体的には、コンフィグ更新部２０ｃは、受信したＶＭの起動開始を通知するＶＭ情報通知メッセージに含まれるＶＭのＭＡＣアドレスを取得し、このＭＡＣアドレスに対応するコンフィグ情報取得リクエストをＮＷ管理サーバ５に送信する（ステップＳ５０７）。このリクエストを受信したＮＷ管理サーバ５は、リクエストに含まれるＭＡＣアドレスに対応するＶＭのコンフィグ情報を物理スイッチＡ２０に応答する（ステップＳ５０８）。続いて、コンフィグ更新部２０ｃは、ＶＭのＭＡＣアドレスを検索キーとして、受信したコンフィグ情報をコンフィグ情報ＤＢ２０ｂに格納して活性化、言い換えると、「有効」にする（ステップＳ５０９）。続いて、コンフィグ更新部２０ｃは、コンフィグ情報の登録および活性化が終了したことを示す応答を物理サーバＡ１０に送信する（ステップＳ５１０）。
【０１０９】
その後、物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ監視処理を実行してＶＭの新規起動が完了したことを検出し（ステップＳ５１１）、起動が完了したことをＶＭ情報通知部１４ｅに通知する（ステップＳ５１２）。
【０１１０】
続いて、物理サーバＡ１０のＶＭ情報通知部１４ｅは、イベント通知処理を実行してＶＭの起動完了を通知するＶＭ情報通知メッセージを生成し（ステップＳ５１３）、生成したＶＭ情報通知メッセージを物理スイッチＡ２０に送信する（ステップＳ５１４）。
【０１１１】
そして、物理スイッチＡ２０のコンフィグ更新部２０ｃは、受信したＶＭ情報通知メッセージに対する応答を物理サーバＡ１０に送信する（ステップＳ５１５）。この結果、物理サーバＡ１０でのＶＭ新規起動が完了する。
【０１１２】
（停止時）
次に、図１３を用いてＶＭの停止時の動作シーケンスを説明する。図１３は、実施例２に係るシステムにおけるＶＭ停止時の動作シーケンスを示す図である。
【０１１３】
図１３に示すように、ＶＭ管理サーバ１からＶＭの停止指示を受信した物理サーバＡ１０のＶＭ制御部１４ｃは、指定されたＶＭを停止する（ステップＳ６０１とステップＳ６０２）。例えば、ＶＭ制御部１４ｃは、該当ＶＭのＭＡＣアドレスを検索キーとしたレコードをＶＭ情報ＤＢ１４ａから削除する。
【０１１４】
そして、物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ監視処理を実行してＶＭがＶＭ情報ＤＢ１４ａから削除されたことを検出し（ステップＳ６０３）、ＶＭ情報ＤＢ１４ａからＶＭが停止されたことをＶＭ情報通知部１４ｅに通知する（ステップＳ６０４）。
【０１１５】
続いて、物理サーバＡ１０のＶＭ情報通知部１４ｅは、イベント通知処理を実行してＶＭの停止を通知するＶＭ情報通知メッセージを生成し（ステップＳ６０５）、生成したＶＭ情報通知メッセージを物理スイッチＡ２０に送信する（ステップＳ６０６）。
【０１１６】
そして、物理スイッチＡ２０のコンフィグ更新部２０ｃは、コンフィグ情報ＤＢ２０ｂを参照し、受信したメッセージに含まれるＶＭのＭＡＣアドレスを検索キーとするコンフィグ情報を無効化する（ステップＳ６０７）。続いて、コンフィグ更新部２０ｃは、コンフィグ情報の無効化が終了したことを示す応答を物理サーバＡ１０に送信する（ステップＳ６０８）。この結果、物理サーバＡ１０でのＶＭ停止が完了する。
【０１１７】
実施例２によれば、ライブマイグレーション処理に限らず、仮想マシンの起動時や停止時の場合も、同じ仕組みを使って物理スイッチの設定変更を行うことが可能である。
【実施例３】
【０１１８】
実施例１では、仮想マシン毎に物理スイッチのコンフィグ情報を保持する例であったが、実施例３では、複数の仮想マシンでひとつのコンフィグ情報を共有する場合の動作例を示す。複数の仮想マシンを用いてひとつのシステムを構成する場合や、同じ部署内で複数の仮想マシンを動作させるケースでは、仮想マシン群に対してひとつのコンフィグ情報があればよいケースがある。
【０１１９】
このようなケースに対応するため、図１４に示すグループ管理ＤＢを物理スイッチに設け、ＶＭ識別子（ＭＡＣアドレス）とグループ識別子の対応関係および現在稼働中のメンバ数（ＶＭ数）を管理する。なお、実施例１で説明した図６のコンフィグ管理ＤＢも各物理スイッチに設けられるが、検索キーが仮想マシンのＭＡＣアドレスではなくグループ識別子となる。なお、図１４は、実施例３に係る物理スイッチがコンフィグ情報をグループ化して保持するグループ管理ＤＢの例を示す図である。
【０１２０】
図１４に示したグループ管理ＤＢは、「コンフィググループ、ＭＡＣアドレス、現メンバ数」として「Ａ、ＭＡＣ＝ａ・ＭＡＣ＝ｂ・ＭＡＣ＝ｄ、３」や「Ｂ、ＭＡＣ＝ｅ・ＭＡＣ＝ｆ、０」などを記憶する。また、グループ管理ＤＢは、「Ｃ、ＭＡＣ＝ｇ・ＭＡＣ＝ｈ・ＭＡＣ＝ｉ・ＭＡＣ＝ｊ・ＭＡＣ＝ｋ、１」などを記憶する。
【０１２１】
ここで記憶される「コンフィググループ」は、共有するコンフィグのグループを識別する識別子であり、コンフィグ管理ＤＢの検索キーとなる。「ＭＡＣアドレス」は、当該コンフィググループに属するＶＭのＭＡＣアドレスであり、「現メンバ数」は、現在稼動するＶＭの数である。
【０１２２】
例えば、「Ａ、ＭＡＣ＝ａ・ＭＡＣ＝ｂ・ＭＡＣ＝ｄ、３」は、ＭＡＣアドレスがａであるＶＭと、ＭＡＣアドレスがｂであるＶＭと、ＭＡＣアドレスがｄであるＶＭとがグループＡに属し、全てが稼動中であることを示す。また、「Ｂ、ＭＡＣ＝ｅ・ＭＡＣ＝ｆ、０」は、ＭＡＣアドレスがｅであるＶＭと、ＭＡＣアドレスがｆであるＶＭとがグループＢに属し、全てが停止中であることを示す。また、「Ｃ、ＭＡＣ＝ｇ・ＭＡＣ＝ｈ・ＭＡＣ＝ｉ・ＭＡＣ＝ｊ・ＭＡＣ＝ｋ、１」は、ＭＡＣアドレスがｇであるＶＭと、ＭＡＣアドレスがｈであるＶＭとがグループＣに属する。さらに、ＭＡＣアドレスがｉであるＶＭと、ＭＡＣアドレスがｊであるＶＭと、ＭＡＣアドレスがｋであるＶＭとがグループＣに属する。そして、これらのＶＭのうち１つが稼動中であることを示す。
【０１２３】
次に、図１５を用いて、図１４に示したグループ管理ＤＢを有する物理スイッチにおけるＶＭ情報受信処理について説明する。図１５は、実施例３に係る物理スイッチが実行するＶＭ情報受信処理の流れを示すフローチャートである。なお、ここでは物理スイッチＢ４０が実行する例で説明する。
【０１２４】
図１５に示すように、物理サーバＢ３０から情報通知メッセージを受信した物理スイッチＢ４０のコンフィグ更新部４０ｃは、受信したメッセージのイベント種別が起動開始であるか否かを判定する（ステップＳ７０１）。
【０１２５】
そして、コンフィグ更新部４０ｃは、イベント種別が起動開始である場合には（ステップＳ７０１肯定）、コンフィグ情報ＤＢ４０ｂに当該ＶＭが属するグループに対応するコンフィグ情報が存在するか否かを判定する（ステップＳ７０２）。例えば、コンフィグ更新部４０ｃは、受信したメッセージのＶＭ識別子（ＭＡＣアドレス）に対応するコンフィググループをグループ管理ＤＢ（図１４参照）から特定する。そして、コンフィグ更新部４０ｃは、特定したコンフィググループを検索キーとするコンフィグ情報がコンフィグ情報ＤＢ４０ｂに存在するか否かを判定する。
【０１２６】
そして、コンフィグ更新部４０ｃは、コンフィグ情報ＤＢ４０ｂに当該ＶＭが属するグループに対応するコンフィグ情報が存在する場合（ステップＳ７０２肯定）、グループ管理ＤＢのメンバ数をインクリメントする（ステップＳ７０３）。続いて、コンフィグ更新部４０ｃは、コンフィグ情報を登録したことを示す応答メッセージを物理サーバＢ３０に送信する（ステップＳ７０４）。
【０１２７】
一方、コンフィグ更新部４０ｃは、コンフィグ情報ＤＢ４０ｂに当該ＶＭが属するグループに対応するコンフィグ情報が存在しない場合（ステップＳ７０２否定）、グループのコンフィグ情報取得リクエストをＮＷ管理サーバ５に送信する（ステップＳ７０５）。
【０１２８】
そして、コンフィグ更新部４０ｃは、該当するグループのコンフィグ情報を受信すると（ステップＳ７０６肯定）、当該グループを識別する識別子を検索キーとして、受信したコンフィグ情報をコンフィグ情報ＤＢ４０ｂに格納する（ステップＳ７０７）。続いて、コンフィグ更新部４０ｃは、新たに格納したコンフィグ情報を活性化する（ステップＳ７０８）。このとき、コンフィグ更新部４０ｃは、「追加したコンフィググループの識別子、追加したＶＭのＭＡＣアドレス、メンバ数＝０」とするレコードをグループ管理ＤＢに格納する。そして、コンフィグ情報を活性化した後、コンフィグ更新部４０ｃは、活性化したコンフィグが属するグループのメンバ数をインクリメントし、コンフィグ情報の格納が完了したことを示す応答メッセージを物理サーバＢ３０に送信する。
【０１２９】
また、ステップＳ７０１において、イベント種別が起動開始でない場合には（ステップＳ７０１否定）、コンフィグ更新部４０ｃは、イベント種別が停止であるか否かを判定する（ステップＳ７０９）。
【０１３０】
そして、コンフィグ更新部４０ｃは、イベント種別が停止である場合（ステップＳ７０９肯定）、停止したＶＭが属するグループをグループ管理ＤＢから特定し、メンバ数をデクリメントする（ステップＳ７１０）。続いて、コンフィグ更新部４０ｃは、メンバ数をデクリメントした結果、メンバ数が０であるか否かを判定する（ステップＳ７１１）。
【０１３１】
そして、コンフィグ更新部４０ｃは、メンバ数が０である場合（ステップＳ７１１肯定）、コンフィグ情報ＤＢ４０ｂを参照し、当該ＶＭに対応するコンフィグ情報を無効化または削除する（ステップＳ７１２）。その後、コンフィグ更新部４０ｃは、コンフィグ情報の無効化が完了したことを示す応答メッセージを物理サーバＢ３０に送信する（ステップＳ７０４）。一方、コンフィグ更新部４０ｃは、メンバ数が０でない場合（ステップＳ７１１否定）、コンフィグ情報を登録したことを示す応答メッセージを物理サーバＢ３０に送信する（ステップＳ７０４）。
【０１３２】
また、ステップＳ７０９において、コンフィグ更新部４０ｃは、イベント種別が停止でない場合（ステップＳ７０９否定）、イベント種別が起動完了であるか否かを判定する（ステップＳ７１３）。そして、コンフィグ更新部４０ｃは、イベント種別が起動完了である場合（ステップＳ７１３肯定）、応答メッセージを物理サーバＢ３０に送信する（ステップＳ７０４）。また、コンフィグ更新部４０ｃは、イベント種別が起動完了でない場合（ステップＳ７１３否定）、そのまま処理を終了する。
【０１３３】
実施例３により、コンフィグ情報をＶＭ毎に管理する必要がなくなりコンフィグ管理数を削減できるとともに、コンフィグ設定の運用をＶＭグループ単位で行うことができるため、管理運用コストを軽減できる。
【０１３４】
なお、実施例３では、ＶＭが属するグループの判定を物理スイッチ側で判断する例を示したが、これに限定されるものではない。例えば、物理サーバ側であらかじめＶＭが属するグループが判明している場合は、物理サーバのＶＭ情報通知部がＶＭ情報通知メッセージを通知する際に、ＶＭ識別子としてＶＭのグループ識別子を通知するようにしてもよい。この場合、物理サーバが図１６のようなグループ管理ＤＢを備えることで実現できる。図１６は、実施例３に係るコンフィグ情報をグループ化して保持するグループ管理ＤＢの別例を示す図である。この例の場合、物理サーバのＶＭ情報通知部は、ＶＭ情報通知メッセージを通知する際に、ＶＭ識別子としてGroupIDを通知する。
【実施例４】
【０１３５】
実施例１では、ＶＭ情報ＤＢを監視することでＶＭの状態変化を検出する例につい説明したが、本願はこれに限定されるものではない。例えば、仮想スイッチのポートを監視することでも、ＶＭの状態変化を検出することができる。
【０１３６】
そこで、実施例４では、図１７を用いて、仮想スイッチのポートを監視して、ＶＭの状態変化を検出する例について説明する。なお、実施例４では、ここでは物理スイッチＢ４０が実行する例で説明する。
【０１３７】
図１７は、実施例４に係るＶＭ監視処理の流れを示すフローチャートである。図１７に示すように、物理サーバＢ３０のＶＭ状態監視部３４ｄは、仮想スイッチ３４ｂを参照して最新のスイッチ接続情報を取得し（ステップＳ８０１）、メモリなど保存しておいた前回の情報と比較する（ステップＳ８０２）。
【０１３８】
そして、ＶＭ状態監視部３４ｄは、前回の情報からポート数の増加がある場合には（ステップＳ８０３肯定）、「イベント種別＝起動開始、ＶＭ識別子＝追加されたＶＭのＭＡＣアドレス」を示すイベント情報をＶＭ情報通知部３４ｅに通知する（ステップＳ８０４）。その後、ＶＭ状態監視部３４ｄは、所定の記憶部等に「起動中フラグ＝１」をセットして、ＶＭが起動中または移動中であることを認識する（ステップＳ８０５）。なお、増加ポートのＭＡＣアドレスはＶＭ制御部にアクセスして当該ポートのＭＡＣアドレス値を取得して設定する。例えば、ＶＭ制御部３４ｃが実行するマイグレーション処理やＶＭの起動処理等から取得することができる。
【０１３９】
一方、ＶＭ状態監視部３４ｄは、前回の情報からポート数の増加がない場合には（ステップＳ８０３否定）、前回の情報からポート数の削除があるか否かを判定する（ステップＳ８０６）。そして、ＶＭ状態監視部３４ｄは、前回の情報からポートの削除がある場合には（ステップＳ８０６肯定）、「イベント種別＝停止完了、ＶＭ識別子＝停止したＶＭのＭＡＣアドレス」を示すイベント情報をＶＭ情報通知部３４ｅに通知する（ステップＳ８０７）。なお、停止したＶＭのＭＡＣアドレスは、言い換えると、削除されたＶＭのＭＡＣアドレスは、ＶＭ制御部３４ｃが実行するマイグレーション処理やＶＭの削除処理等から取得することができる。また、ＶＭ状態監視部３４ｄは、仮想スイッチ３４ｂから情報を取得するたびに、仮想スイッチ３４ｂに接続されるＶＭのＭＡＣアドレスを保持しておいてもよい。
【０１４０】
一方、ＶＭ状態監視部３４ｄは、前回の情報からポートの削除がない場合には（ステップＳ８０６否定）、「起動中フラグ＝１」の後所定時間経過しているか否かを判定する（ステップＳ８０８）。そして、ＶＭ状態監視部３４ｄは、「起動中フラグ＝１」の後所定時間経過している場合（ステップＳ８０８肯定）、「イベント種別＝起動完了、ＶＭ識別子＝所定時間経過しているＶＭのＭＡＣアドレス」を示すイベント情報をＶＭ情報通知部３４ｅに通知する（ステップＳ８０９）。その後、ＶＭ状態監視部３４ｄは、所定の記憶部等に「起動中フラグ」を「０」にリセットして、ＶＭの起動が完了したことを認識する（ステップＳ８１０）。
【０１４１】
そして、ＶＭ状態監視部３４ｄは、「起動中フラグ＝１」の後所定時間経過していない場合（ステップＳ８０８否定）、最新のＶＭ情報を前ＶＭ情報としてメモリなど所定の記憶部に保持し（ステップＳ８１１）、ステップＳ８０１に戻って以降の処理を繰り返す。これにより、ＶＭモニタのＡＰＩ（Application  Programming  Interface）が公開されていない場合や何かしらの事情により、ＶＭ状態を監視できない場合でもＶＭの起動および停止を監視することが可能となる。
【実施例５】
【０１４２】
実施例１では、移動先の物理スイッチがＮＷ管理サーバからＶＭのコンフィグ情報を取得する例について説明したがこれに限定されるものではない。例えば、移動先の物理スイッチが移動元の物理サーバが収容されている移動元スイッチから取得することもできる。これにより、コンフィグ情報を一括管理しているＮＷ管理サーバの負荷を軽減できる。
【０１４３】
この場合、移動元サーバは、ＶＭ起動に起動されたＶＭのコンフィグ情報を保持する物理スイッチの情報を保持する必要がある。したがって、実施例５では、図１８〜図２０を用いて、ＶＭ新規起動の動作シーケンスとライブマイグレーション時の動作シーケンスのそれぞれについて説明する。図１８は、実施例５に係るシステムにおけるＶＭの新規起動時の動作シーケンスを示す図であり、図１９は、実施例５に係るシステムにおけるマイグレーション時の動作シーケンスを示す図であり、図２０は、実施例５に係るＶＭ情報受信処理の流れを示すフローチャートである。
【０１４４】
また、実施例１と異なる点としては、各物理サーバが有するＶＭ情報ＤＢは、全物理サーバで共有している共有ファイル領域を有している。この共有ファイル領域は、すべての物理サーバが参照することが出来る。
【０１４５】
（ＶＭ新規起動の動作シーケンス）
図１８に示すように、ＶＭ管理サーバ１からＶＭの新規起動指示を受信した物理サーバＡ１０のＶＭ制御部１４ｃは、指定されたＶＭを起動する（ステップＳ９０１とステップＳ９０２）。例えば、ＶＭ制御部１４ｃは、該当ＶＭのＭＡＣアドレスを検索キーとしたレコードをＶＭ情報ＤＢ１４ａに作成したり、仮想スイッチ１４ｂに該当ＶＭを接続したりする。
【０１４６】
そして、物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ監視処理を実行して新たなＶＭがＶＭ情報ＤＢ１４ａに格納されたことを検出し（ステップＳ９０３）、ＶＭ情報ＤＢ１４ａにＶＭが追加されたことをＶＭ情報通知部１４ｅに通知する（ステップＳ９０４）。
【０１４７】
続いて、物理サーバＡ１０のＶＭ情報通知部１４ｅは、イベント通知処理を実行してＶＭの新規起動開始を通知するＶＭ情報通知メッセージを生成し（ステップＳ９０５）、生成したＶＭ情報通知メッセージを物理スイッチＡ２０に送信する（ステップＳ９０６）。
【０１４８】
そして、物理スイッチＡ２０のコンフィグ更新部２０ｃは、ＶＭ情報受信処理を実行する。具体的には、コンフィグ更新部２０ｃは、受信したＶＭの起動開始を通知するＶＭ情報通知メッセージに含まれるＶＭのＭＡＣアドレスを取得し、このＭＡＣアドレスに対応するコンフィグ情報取得リクエストをＮＷ管理サーバ５に送信する（ステップＳ９０７）。このリクエストを受信したＮＷ管理サーバ５は、リクエストに含まれるＭＡＣアドレスに対応するＶＭのコンフィグ情報を物理スイッチＡ２０に応答する（ステップＳ９０８）。続いて、コンフィグ更新部２０ｃは、ＶＭのＭＡＣアドレスを検索キーとして、受信したコンフィグ情報をコンフィグ情報ＤＢ２０ｂに格納して活性化する（ステップＳ９０９）。続いて、コンフィグ更新部２０ｃは、コンフィグ情報の登録および活性化が終了したことを示す応答を物理サーバＡ１０に送信する（ステップＳ９１０）。
【０１４９】
そして、物理スイッチＡ２０のＶＭ情報通知部１４ｅは、物理スイッチＡ２０から受信した応答から物理スイッチＡ２０のＭＡＣアドレスを取得し、これをＶＭ制御部１４ｃに通知する（ステップＳ９１１）。すると、ＶＭ制御部１４ｃは、新規起動したＶＭのＭＡＣアドレス等と物理スイッチＡ２０のＭＡＣアドレスを対応付けて共有ファイル領域に保持する（ステップＳ９１２）。
【０１５０】
例えば、ＶＭ情報通知部１４ｅは、ＶＭ情報応答メッセージのSourceMACアドレスを当該ＶＭのコンフィグ情報を保有しているコンフィグ保有機器のアドレスと判断し、SourceMACアドレスをＶＭ識別子に関連づけてＶＭ情報ＤＢ１４ａの共有ファイル領域に格納する。なお、共有ファイル領域は、全物理サーバで共有しているディスク領域に格納されているため、すべての物理サーバで本ＤＢを参照することが出来る。
【０１５１】
その後、物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ監視処理を実行してＶＭの新規起動が完了したことを検出し（ステップＳ９１３）、起動が完了したことをＶＭ情報通知部１４ｅに通知する（ステップＳ９１４）。
【０１５２】
続いて、物理サーバＡ１０のＶＭ情報通知部１４ｅは、イベント通知処理を実行してＶＭの起動完了を通知するＶＭ情報通知メッセージを生成し（ステップＳ９１５）、生成したＶＭ情報通知メッセージを物理スイッチＡ２０に送信する（ステップＳ９１６）。
【０１５３】
そして、物理スイッチＡ２０のコンフィグ更新部２０ｃは、受信したＶＭ情報通知メッセージに対する応答を物理サーバＡ１０に送信する（ステップＳ９１７）。この結果、物理サーバＡ１０でのＶＭ新規起動が完了する。
【０１５４】
（ライブマイグレーション時の動作シーケンス）
図１９に示すように、ＶＭ管理サーバ１は、物理サーバＡ１０に対してライブマイグレーション制御の開始指示を送信する（ステップＳ１００１）。物理サーバＡ１０のＶＭ制御部１４ｃは、物理サーバＢ３０のＶＭ制御部３４ｃとの間で、ＶＭのライブマイグレーション制御を開始する（ステップＳ１００２）。このとき、物理サーバＢ３０のＶＭ制御部３４ｃは、ＶＭ情報ＤＢ３４ａに移動対象のＶＭのレコードを生成する。
【０１５５】
その後、物理サーバＢ３０のＶＭ監視部３４ｄは、ＶＭ監視処理を実行してＶＭのライブマイグレーションが開始されたことを検出し（ステップＳ１００３）、ＶＭ情報ＤＢ３４ａにＶＭが追加されたことをＶＭ情報通知部３４ｅに通知する（ステップＳ１００４）。
【０１５６】
続いて、物理サーバＢ３０のＶＭ情報通知部３４ｅは、イベント通知処理を実行してＶＭの起動開始を通知するＶＭ情報通知メッセージを生成し（ステップＳ１００５）、生成したＶＭ情報通知メッセージを物理スイッチＢ４０に送信する（ステップＳ１００６）。このとき、ＶＭ情報通知部３４ｅは、全物理サーバで共有のＶＭ情報ＤＢ１４ａの共有ファイル領域にアクセスして、ＶＭ識別子とコンフィグ保有機器アドレスとを取得する。そして、ＶＭ情報通知部３４ｅは、起動開始イベント、ＶＭ識別子、コンフィグ保有機器アドレスを含むＶＭ情報通知メッセージを送信する。
【０１５７】
そして、物理スイッチＢ４０のコンフィグ更新部４０ｃは、ＶＭ情報受信処理を実行する。具体的には、コンフィグ更新部４０ｃは、受信したＶＭの起動開始を通知するＶＭ情報通知メッセージに含まれるＶＭ識別子（ＶＭのＭＡＣアドレス）とコンフィグ保有機器アドレスとを取得する。そして、コンフィグ更新部４０ｃは、コンフィグ保有機器アドレスを有する物理スイッチＡ２０に対して、ＶＭのＭＡＣアドレスに対応するコンフィグ情報取得リクエストを送信する（ステップＳ１００７）。
【０１５８】
このリクエストを受信した物理スイッチＡ２０のコンフィグ更新部２０ｃは、リクエストに含まれるＭＡＣアドレスに対応するＶＭのコンフィグ情報を物理スイッチＢ４０に応答する（ステップＳ１００８）。
【０１５９】
続いて、物理スイッチＢ４０のコンフィグ更新部４０ｃは、ＶＭのＭＡＣアドレスを検索キーとして、受信したコンフィグ情報をコンフィグ情報ＤＢ４０ｂに格納して活性化する（ステップＳ１００９）。続いて、コンフィグ更新部４０ｃは、コンフィグ情報の登録および活性化が終了したことを示す応答を物理サーバＢ３０に送信する（ステップＳ１０１０）。
【０１６０】
その後、物理サーバＢ３０のＶＭ監視部３４ｄは、ＶＭ監視処理を実行してＶＭのライブマイグレーションが完了したことを検出し（ステップＳ１０１１）、ライブマイグレーションが完了したことをＶＭ情報通知部３４ｅに通知する（ステップＳ１０１２）。
【０１６１】
続いて、物理サーバＢ３０のＶＭ情報通知部３４ｅは、イベント通知処理を実行してＶＭの起動完了を通知するＶＭ情報通知メッセージを生成し（ステップＳ１０１３）、生成したＶＭ情報通知メッセージを物理スイッチＢ４０に送信する（ステップＳ１０１４）。
【０１６２】
そして、物理スイッチＢ４０のコンフィグ更新部４０ｃは、受信したＶＭ情報通知メッセージに対する応答を物理サーバＢ３０に送信する（ステップＳ１０１５）。この結果、物理サーバＢ３０のＶＭ制御部３４ｃは、物理スイッチＢ４０に対してＧＡＲＰを送信する（ステップＳ１０１６）。
【０１６３】
上述したように、移動先側で処理が実行される一方で、移動元の物理サーバＡ１０のＶＭ状態監視部１４ｄは、ＶＭ監視処理を実行してＶＭのライブマイグレーションが開始され、ＶＭが停止されたことを検出する（ステップＳ１０１７）。そして、ＶＭ状態監視部１４ｄは、ＶＭ情報ＤＢ１４ａからＶＭが停止されたことをＶＭ情報通知部１４ｅに通知する（ステップＳ１０１８）。
【０１６４】
続いて、物理サーバＡ１０のＶＭ情報通知部１４ｅは、イベント通知処理を実行してＶＭの停止を通知するＶＭ情報通知メッセージを生成し（ステップＳ１０１９）、生成したＶＭ情報通知メッセージを物理スイッチＡ２０に送信する（ステップＳ１０２０）。
【０１６５】
そして、物理スイッチＡ２０のコンフィグ更新部２０ｃは、コンフィグ情報ＤＢ２０ｂ参照し、受信したメッセージに含まれるＶＭのＭＡＣアドレスを検索キーとするコンフィグ情報を無効化する（ステップＳ１０２１）。続いて、コンフィグ更新部２０ｃは、コンフィグ情報の無効化が終了したことを示す応答を物理サーバＡ１０に送信する（ステップＳ１０２２）。
【０１６６】
（ＶＭ情報受信処理の流れ）
次に、図１８に示したＶＭ情報受信処理の流れを説明する。なお、ここでは物理スイッチＢ４０が実行する例で説明する。
【０１６７】
図２０に示すように、物理サーバＢ３０からＶＭ情報通知メッセージを受信した物理スイッチＢ４０のコンフィグ更新部４０ｃは、受信したメッセージのイベント種別が起動開始であるか否かを判定する（ステップＳ１１０１）。
【０１６８】
そして、コンフィグ更新部４０ｃは、イベント種別が起動開始である場合には（ステップＳ１１０１肯定）、コンフィグ情報ＤＢ４０ｂに当該ＶＭに対応するコンフィグ情報が存在するか否かを判定する（ステップＳ１１０２）。例えば、コンフィグ更新部４０ｃは、受信したメッセージのＶＭ識別子に対応するコンフィグ情報が記憶されているか否かを判定する。
【０１６９】
そして、コンフィグ更新部４０ｃは、コンフィグ情報ＤＢ４０ｂに当該ＶＭに対応するコンフィグ情報が存在する場合（ステップＳ１１０２肯定）、応答メッセージを物理サーバＢ３０に送信する（ステップＳ１１０３）。
【０１７０】
一方、コンフィグ更新部４０ｃは、当該ＶＭに対応するコンフィグ情報が存在しない場合（ステップＳ１１０２否定）、ＲＥＡＰでコンフィグ保有機器のＩＰアドレスを取得する（ステップＳ１１０４）。例えば、コンフィグ更新部４０ｃは、受信したＶＭ情報通知メッセージに含まれるコンフィグ保有機器のＭＡＣアドレスをキーとするＲＡＲＰで機器のＩＰアドレスを取得する。なお、ステップＳ１１０４は、物理スイッチがレイヤ３機能を実装している場合に実行される。続いて、コンフィグ更新部４０ｃは、コンフィグ保有機器に対して、該当するＶＭのコンフィグ情報取得リクエストを送信する（ステップＳ１１０５）。
【０１７１】
そして、コンフィグ更新部４０ｃは、該当するＶＭのコンフィグ情報を受信すると（ステップＳ１１０６肯定）、当該ＶＭのＭＡＣアドレスを検索キーとして、受信したコンフィグ情報をコンフィグ情報ＤＢ４０ｂに格納する（ステップＳ１１０７）。続いて、コンフィグ更新部４０ｃは、新たに格納したコンフィグ情報を活性化し（ステップＳ１１０８）、コンフィグ情報の格納が完了したことを示す応答メッセージを物理サーバＢ３０に送信する（ステップＳ１１０３）。
【０１７２】
また、ステップＳ１１０１において、イベント種別が起動開始でない場合には（ステップＳ１１０１否定）、コンフィグ更新部４０ｃは、イベント種別が停止であるか否かを判定する（ステップＳ１１０９）。
【０１７３】
そして、コンフィグ更新部４０ｃは、イベント種別が停止である場合（ステップＳ１１０９肯定）、コンフィグ情報ＤＢ４０ｂを参照し、当該ＶＭに対応するコンフィグ情報を無効化または削除する（ステップＳ１１１０）。その後、コンフィグ更新部４０ｃは、コンフィグ情報の無効化が完了したことを示す応答メッセージを物理サーバＢ３０に送信する（ステップＳ１１０３）。
【０１７４】
一方、コンフィグ更新部４０ｃは、イベント種別が停止でない場合（ステップＳ１１０９否定）、イベント種別が起動完了であるか否かを判定する（ステップＳ１１１１）。そして、コンフィグ更新部４０ｃは、イベント種別が起動完了である場合（ステップＳ１１１１肯定）、応答メッセージを物理サーバＢ３０に送信する（ステップＳ１１０３）。また、コンフィグ更新部４０ｃは、イベント種別が起動完了でない場合（ステップＳ１１１１否定）、そのまま処理を終了する。
【０１７５】
また、実施例５では、物理サーバＡ１０は、ＶＭを登録するときに、コンフィグ情報を保有している物理スイッチＡ２０のアドレスを保持するようにしていたが、登録対象のＶＭのコンフィグ情報自体を保有するようにしてもよい。これにより、実施例５と同様、コンフィグ情報を一括管理しているＮＷ管理サーバ５の負荷を軽減できる。
【実施例６】
【０１７６】
実施例１〜５では、物理スイッチネットワークが１段のときの構成を示したが、多段構成のネットワークであっても本願を適用することができる。
【０１７７】
そこで、実施例６では、図２１を用いて、物理スイッチが多段に構成されたネットワークにおいてライブマイグレーションを実行する例について説明する。図２１は、物理スイッチが多段に構成されたネットワークにおいてライブマイグレーションを実行する例を示す図である。図２１に示す全体構成図は、図１に示した構成図に加え、物理スイッチＡ２０と物理スイッチＢ４０のそれぞれに物理スイッチＣが接続される多段構成を有している。
【０１７８】
ここでは、このような構成において、物理サーバＡ１０で稼動しているＶＭ２を物理サーバＢ３０にライブマイグレーションする例について説明する。図２１は、実施例６に係るライブマイグレーション例を示す図である。
【０１７９】
図２１に示すように、物理サーバＡ１０のＶＭ制御部１４ｃは、ＶＭ管理サーバ１からＶＭ２のライブマイグレーション指示を受信する（図２１の（α）参照）。そして、物理サーバＡ１０のＶＭ制御部１４ｃは、物理サーバＢ３０のＶＭ制御部３４ｃとの間で、ＶＭ２のライブマイグレーション制御を開始する（図２１の（β）参照）。なお、このとき、物理サーバＢ３０のＶＭ制御部３４ｃは図示しないＶＭ情報ＤＢ３４ａにＶＭ２のレコードを生成する。
【０１８０】
そして、物理サーバＢ３０のＶＭ状態監視部３４ｄは、ＶＭ情報ＤＢ３４ａにＶＭ２のレコードが追加されたことを検出し、ＶＭ２が追加されたことをＶＭ情報通知部３４ｅに通知する（図２１の（γ）参照）。続いて、ＶＭ状態監視部３４ｄによりＶＭ２が追加されたことが通知された物理サーバＢ３０のＶＭ情報通知部３４ｅは、追加されたＶＭ２のＭＡＣアドレス等を含めたイベント種別「移動」のＶＭ情報通知メッセージを生成し、物理スイッチＢ４０に送信する（図２１の（δ）参照）。続いて、物理スイッチＢ４０のコンフィグ更新部４０ｃは、受信したイベント種別「移動」のＶＭ情報通知メッセージを物理スイッチＣに送信する（図２１の（ε）参照）。
【０１８１】
このとき、物理サーバＢ３０のＶＭ情報通知部３４ｅは、ＶＭ情報通知メッセージをすべてのネットワーク機器に通知するためにマルチキャストアドレスまたはブロードキャストアドレスを宛先とするパケットで通知する。なお、マルチキャストやブロードキャストパケットを使用する代わりにユニキャストアドレスで送信して、本ユニキャストアドレスパケットを受信した物理スイッチが隣接スイッチへ中継してもよい。
【０１８２】
続いて、物理サーバＢ３０の通信制御部は、起動中のＶＭに対してパケットの読み出し停止指示を発行してＶＭのパケット送出を停止させる（図２１の（ζ）参照）。読み出し停止指示は、ＶＭに対してPAUSEフレームを送信してもよいし、管理ＶＭ３４上でＶＭのスケジューリングを停止してもよい。また、物理サーバＢ３０の通信制御部は、物理スイッチＢ４０や物理スイッチＣから起動開始イベント通知の応答メッセージを受信した際に、起動中のＶＭに対してパケットの読み出し停止指示を発行してもよい。
【０１８３】
その後、物理スイッチＢ４０のコンフィグ更新部４０ｃは、移動中のＶＭ２のＭＡＣアドレスを含むコンフィグ取得リクエストをＮＷ管理サーバ５に送信してＶＭ２のコンフィグを受信し、コンフィグ情報ＤＢ４０ｂに格納して活性化する（図２１の（η）参照）。同様に、物理スイッチＣは、移動中のＶＭ２のＭＡＣアドレスを含むコンフィグ取得リクエストをＮＷ管理サーバ５に送信してＶＭ２のコンフィグを受信し、コンフィグ情報ＤＢ４０ｂに格納して活性化する（図２１の（θ）参照）。
【０１８４】
そして、物理スイッチＣは、コンフィグ情報の活性化が完了したことを物理スイッチＢ４０に送信する（図２１の（ι）参照）。続いて、物理スイッチＢ４０は、自装置と物理スイッチＣとがコンフィグ情報の活性化を完了させたことを物理サーバＢ３０に送信する（図２１の（κ）参照）。
【０１８５】
この結果、物理サーバＢ３０の通信制御部は、起動中のＶＭに対するパケットの読み出し停止指示を解除する（図２１の（λ）参照）。同様に、物理サーバＢ３０の通信制御部は、起動中のＶＭに対するパケット処理ができる旨の通知を物理サーバＢ３０に送信し、起動中のＶＭに対するパケット処理を解除する（図２１の（μ）参照）。読み出し停止解除指示や送信解除指示は、ＶＭに対してPAUSEフレームを送信してもよいし、管理ＶＭ３４上でＶＭのスケジューリングを開始してもよい。
【０１８６】
その後、ライブマイグレーションが完了すると、物理スイッチＢ４０のパケット処理部４０ｄは、物理サーバＢ３０からＧＡＲＰパケットを受信し、ライブマイグレーションが完了したことを認識する（図２１の（ν）参照）。
【０１８７】
このように、スイッチが多段になっている環境では、移動先の物理サーバが、ＶＭの状態変化を検知し、それが初段の物理スイッチに通知されてからすべての物理スイッチのコンフィグ情報が更新されるまでにより多くの時間を要する。このため、初段のスイッチ設定が完了した時点でＶＭの通信が開始されてもエンド・トゥー・エンドの通信は行うことができない。
【０１８８】
そこで、上述した処理を実行することで、多段スイッチのすべての設定が完了するまでの間、仮想スイッチから無駄なパケット送出を回避でき管理ＶＭの処理負荷軽減が図れる。また、パケットロスが回避されることでＶＭ上のアプリケーションに悪影響を与えなくなる。更に、管理ＶＭが発行するＧＡＲＰが物理スイッチのコンフィグ情報が更新中に発行されて物理スイッチで廃棄されたとしても、すべての物理スイッチのコンフィグ設定が完了した後でＧＡＲＰパケットが送出されるため、正常にパケット中継が行えるようになる。
【実施例７】
【０１８９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１９０】
（活性化のタイミング）
例えば、実施例１では、物理スイッチがＶＭ管理サーバからコンフィグ情報を取得しコンフィグ情報をコンフィグ情報ＤＢに登録した直後にコンフィグ情報を活性化させていたが、これに限定されるものではない。例えば、物理サーバからＶＭ起動完了イベントを示すメッセージを受信したときに活性化するようにしてもよい。これにより、確実にＶＭのライブマイグレーションや起動が完了したときのみ物理スイッチの設定変更を行うことが可能となり、ライブマイグレーションや起動失敗時に不要な設定が物理サーバに設定されることを回避することができる。
【０１９１】
（コンフィグ情報の取得先）
例えば、実施例５では、移動元スイッチから取得したコンフィグ保有機器のアドレスやコンフィグ情報を全サーバが共有している共有ファイル領域に格納していたが、移動元サーバから別プロトコルで移動先サーバへ通知するようにしてもよい。
【０１９２】
具体的には、移動元サーバが移動元スイッチからＶＭ情報通知応答メッセージを受信した場合に、受信メッセージに含まれるコンフィグ保有機器のアドレスやコンフィグ情報をローカルコンフィグＤＢに格納しておく。そして、移動元サーバにおいて、ＶＭ管理サーバからの制御インタフェースを監視し、ライブマイグレーション開始起動指示が発行されたときに、当該メッセージをスヌープして移動先の物理サーバアドレスと移動対象ＶＭ情報を取得する。
【０１９３】
続いて、移動元サーバは、ローカルコンフィグＤＢからコンフィグ保有機器のアドレスやコンフィグ情報を取得し、移動先物理サーバに対してコンフィグ情報保有機器のアドレスやコンフィグ情報を送信する。その後、移動先サーバは、ＶＭの起動開始イベントを検知したときに、移動元サーバから通知されたコンフィグ情報保有機器のアドレスやコンフィグ情報を含むＶＭ情報通知メッセージを移動先サーバへ送信する。
【０１９４】
なお、ＶＭ情報通知メッセージに含まれる情報がコンフィグ情報の場合は、移動先スイッチが受信したコンフィグ情報をコンフィグ情報ＤＢに保存する。また、移動先スイッチは、ＶＭ情報通知メッセージに含まれる情報がコンフィグ保有機器アドレスの場合は、当該アドレス宛にコンフィグ取得要求メッセージを移動元スイッチに送信し、コンフィグ情報を取得してコンフィグ情報ＤＢに保存する。これにより、全物理サーバで共有するようなディスク領域が無い環境であっても、コンフィグ情報を通知することが可能となる。
【０１９５】
（コンフィグ情報の取得タイミング）
上記実施例では、仮想マシンが登録された際に、物理スイッチからコンフィグ情報を取得していたが、ライブマイグレーション開始時に物理スイッチからコンフィグ情報を取得するようにしてもよい。
【０１９６】
具体的には、移動元サーバは、ＶＭ管理サーバからの制御インタフェースを監視し、ライブマイグレーション開始起動指示が発行されたときに、当該メッセージをスヌープして移動先サーバアドレスと移動対象ＶＭ情報を取得する。そして、移動元サーバは、近隣物理スイッチ（移動元物理スイッチ）に対してコンフィグ取得要求メッセージを送信して当該ＶＭのコンフィグ情報を取得し、移動先物理サーバに対してコンフィグ情報を送信する。その後、移動先サーバは、ＶＭの起動開始イベントを検知したときに、移動元サーバから通知されたコンフィグ情報を含むＶＭ情報通知メッセージを移動先スイッチへ送信する。移動先スイッチは、受信したコンフィグ情報をコンフィグ情報ＤＢに保存する。
【０１９７】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１９８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、例えばＶＭ制御部１４ｃとＶＭ状態監視部１４ｄとを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１９９】
（プログラム）
なお、本実施例で説明した制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０２００】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２０１】
（付記１）自装置上で稼動する仮想マシンの状態を監視する監視部と、
前記監視部により仮想マシンの状態が変化したことが検出された場合に、自装置と他の装置との間の通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する状態送信部と
を有することを特徴とするコンピュータ。
【０２０２】
（付記２）前記自装置上で稼動する仮想マシンの情報を保持する仮想情報保持部を有し、
前記監視部は、前記仮想情報保持部に記憶される仮想マシンの情報に基づいて、前記自装置上で稼動する仮想マシンの状態を監視することを特徴とする付記１に記載のコンピュータ。
【０２０３】
（付記３）前記仮想マシンと前記他のコンピュータ又は他の仮想マシンとの間の通信を制御する仮想マシンスイッチ部を有し、
前記監視部は、前記仮想マシンスイッチ部の接続状況に基づいて、前記自装置上で稼動する仮想マシンの状態を監視することを特徴とする付記１に記載のコンピュータ。
【０２０４】
（付記４）前記監視部は、前記自装置上で稼動する仮想マシンの状態の変化によって、他の装置から仮想マシンが移動されるマイグレーションを検出し、
前記状態送信部は、前記マイグレーション対象の仮想マシンを特定する仮想マシン識別子を、前通信装置に送信することを特徴とする付記１〜３のいずれか一つに記載のコンピュータ。
【０２０５】
（付記５）前記監視部は、前記自装置上で稼動する仮想マシンの状態の変化によって、他の装置から仮想マシンが移動されるマイグレーションを検出し、
前記状態送信部は、前記マイグレーション対象の仮想マシンの移動元である他の装置が接続される移動元物理スイッチのアドレス情報を前記他の装置から取得し、前記マイグレーション対象の仮想マシンを特定する仮想マシン識別子と前記移動元物理スイッチのアドレス情報とを、前記通信装置に送信することを特徴とする付記１〜３のいずれか一つに記載のコンピュータ。
【０２０６】
（付記６）前記監視部は、前記自装置上で稼動する仮想マシンの状態の変化によって、他の装置から仮想マシンが移動されるマイグレーションを検出し、
前記状態送信部は、前記マイグレーション対象の仮想マシンの移動元である他の装置から前記マイグレーション対象の仮想マシンのコンフィグ情報を取得し、前記マイグレーション対象の仮想マシンを特定する仮想マシン識別子と前記仮想マシンのコンフィグ情報とを、前記通信装置に送信することを特徴とする付記１〜３のいずれか一つに記載のコンピュータ。
【０２０７】
（付記７）コンピュータに、
前記コンピュータ上で稼動する仮想マシンの状態を監視し、
前記仮想マシンの状態が変化したことが検出された場合に、前記コンピュータと他のコンピュータとの間の通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する処理を、
実行させることを特徴とするプログラム。
【０２０８】
（付記８）前記情報は、前記仮想マシンの識別情報を含む、ことを特徴とする付記７に記載のプログラム。
【０２０９】
（付記９）前記仮想マシンと前記他のコンピュータ又は他の仮想マシンとの間の通信を制御する仮想マシンスイッチ部を有し、
前記監視するステップは、前記仮想マシンスイッチ部の接続状況に基づいて、前記コンピュータ上で稼動する仮想マシンの状態を監視する、
ことを特徴とする付記７に記載のプログラム。
【０２１０】
（付記１０）自通信装置に接続するコンピュータ上で稼動する仮想マシンのコンフィグ情報を記憶する記憶部と、
前記仮想マシンの状態の変化があると、前記コンピュータから前記仮想マシンのＶＭ情報を受信し、該ＶＭ情報に基づいて前記記憶部に記憶されるコンフィグ情報を更新する更新部と、
前記記憶部に記憶されるコンフィグ情報に基づいて、前記コンピュータと他の通信装置または他のコンピュータとの通信を制御する制御部と
を有することを特徴とする通信装置。
【０２１１】
（付記１１）前記情報更新部は、前記コンピュータからマイグレーション対象の仮想マシンを特定する仮想マシン識別子を受信した場合、仮想マシンのコンフィグ情報を管理する管理装置から前記仮想マシン識別子に対応するコンフィグ情報を取得して、前記記憶部に格納することを特徴とする付記１０に記載の通信装置。
【０２１２】
（付記１２）前記情報更新部は、前記コンピュータからマイグレーション対象の仮想マシンを特定する仮想マシン識別子と、前記マイグレーション対象の仮想マシンの移動元である他の装置が収容される移動元物理スイッチのアドレス情報とを受信した場合、当該移動元物理スイッチから前記仮想マシン識別子に対応するコンフィグ情報を取得して、前記記憶部に格納することを特徴とする付記１０に記載の通信装置。
【０２１３】
（付記１３）前記情報更新部は、前記コンピュータからマイグレーション対象の仮想マシンを特定する仮想マシン識別子と、前記マイグレーション対象の仮想マシンのコンフィグ情報とを受信した場合、受信したコンフィグ情報を前記記憶部に格納することを特徴とする付記１０に記載の通信装置。
【０２１４】
（付記１４）前記仮想マシンの状態の変化があると、前記コンピュータから前記仮想マシンのＶＭ情報を受信し、該ＶＭ情報に基づいて、自通信装置に接続するコンピュータ上で稼動する仮想マシンのコンフィグ情報を記憶する記憶部に記憶されるコンフィグ情報を更新する更新手順と、
前記記憶部に記憶されるコンフィグ情報に基づいて、前記コンピュータと他の通信装置または他のコンピュータとの通信を制御する制御手順と
をコンピュータに実行させることを特徴とする通信プログラム。
【０２１５】
（付記１５）仮想マシンを稼動させるコンピュータと、前記コンピュータに接続される通信装置とを有する通信制御システムであって、
前記コンピュータは、
自装置上で稼動する仮想マシンの状態を監視する監視部と、
前記監視部により仮想マシンの状態が変化したことが検出された場合に、前記自装置と他の装置との通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する送信部とを有し、
前記通信装置は、
自通信装置に接続するコンピュータ上で稼動する仮想マシンのコンフィグ情報を記憶する記憶部と、
前記仮想マシンの状態の変化があると、前記コンピュータから前記仮想マシンの状態の変化の内容を含む情報を受信し、該情報に基づいて前記記憶部に記憶されるコンフィグ情報を更新する更新部と
前記記憶部に記憶されるコンフィグ情報に基づいて、前記コンピュータと他の通信装置または他の装置との通信を制御する制御部と
を有することを特徴とする通信制御システム。
【０２１６】
（付記１６）仮想マシンを稼動させるコンピュータと、前記コンピュータに接続される通信装置とを有する通信制御システムに適した通信方法であって、
前記コンピュータは、
自装置上で稼動する仮想マシンの状態を監視する監視ステップと、
前記監視ステップにより仮想マシンの状態が変化したことが検出された場合に、前記自装置と他の装置との通信を制御する通信装置に、前記仮想マシンの状態の変化の内容を含む情報を送信する送信ステップとを含み、
前記通信装置は、
前記仮想マシンの状態の変化があると、前記コンピュータから前記仮想マシンの状態の変化の内容を含む情報を受信し、該情報に基づいて、自通信装置に接続するコンピュータ上で稼動する仮想マシンのコンフィグ情報を記憶する記憶部と、に記憶されるコンフィグ情報を更新する更新ステップと、
前記記憶部に記憶されるコンフィグ情報に基づいて、前記コンピュータと他の通信装置または他の装置との通信を制御する制御ステップと
を含んだことを特徴とする通信制御方法。
【符号の説明】
【０２１７】
１０  物理サーバＡ
１１  サーバ側物理ＮＩＣ
１２  スイッチ側物理ＮＩＣ
１３  仮想領域
１４  管理ＶＭ
１４ａ  ＶＭ情報ＤＢ
１４ｂ  仮想スイッチ
１４ｃ  ＶＭ制御部
１４ｄ  ＶＭ状態監視部
１４ｅ  ＶＭ情報通知部
２０  物理スイッチＡ
２０ａ  物理インタフェース
２０ｂ  コンフィグ情報ＤＢ
２０ｃ  コンフィグ更新部
２０ｄ  パケット処理部
【図１】
2011198299.tif 000003
【図２】
2011198299.tif 000004
【図３】
2011198299.tif 000005
【図４】
2011198299.tif 000006
【図５】
2011198299.tif 000007
【図６】
2011198299.tif 000008
【図７】
2011198299.tif 000009
【図８】
2011198299.tif 000010
【図９】
2011198299.tif 000011
【図１０】
2011198299.tif 000012
【図１１】
2011198299.tif 000013
【図１２】
2011198299.tif 000014
【図１３】
2011198299.tif 000015
【図１４】
2011198299.tif 000016
【図１５】
2011198299.tif 000017
【図１６】
2011198299.tif 000018
【図１７】
2011198299.tif 000019
【図１８】
2011198299.tif 000020
【図１９】
2011198299.tif 000021
【図２０】
2011198299.tif 000022
【図２１】
2011198299.tif 000023
【図２２】
2011198299.tif 000024