(57)【要約】      （修正有）【課題】仮想マシンの複数のマイグレーションを管理する物理サーバに係る処理負荷を軽減する。【解決手段】仮想マシン移動方法は、第１の仮想マシンを起動させる第１の物理装置によって、第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する処理と、第１の仮想マシンのデータを受け入れる処理と、第２のマイグレーション指示を含む第２の移動情報を、第２の仮想マシンを動作させている第２の物理装置に転送する転送処理とを含む。【選択図】図５
2014142720.tif 000002
【特許請求の範囲】
【請求項１】
第１の仮想マシンを起動させる第１の物理装置によって、
前記第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する処理と、
前記第１の仮想マシンのデータを受け入れる処理と、
前記第２のマイグレーション指示を含む第２の移動情報を、前記第２の仮想マシンを動作させている第２の物理装置に転送する転送処理と
を含む仮想マシン移動方法。
【請求項２】
更に、
ブロードキャストされ且つ第３のマイグレーション指示を含む第３の移動情報を受信すると、当該第３のマイグレーション指示に係る第３の仮想マシンを自ら動作させているか否かを判定する判定処理と、
前記第３の仮想マシンを自ら動作させていると判定した場合に、前記第３の仮想マシンを受け入れるべき物理装置宛に、前記第３の仮想マシンのデータを送出する送出処理と
を含む請求項１記載の仮想マシン移動方法。
【請求項３】
前記第３の移動情報は、更に第４マイグレーション指示を含み、
更に、
前記第３の仮想マシンを自ら動作させていると判定した場合に、前記第３の仮想マシンを受け入れるべき前記物理装置宛に、前記第３の移動情報を送信する処理
を含む請求項２記載の仮想マシン移動方法。
【請求項４】
前記第３の移動情報は、前記第３のマイグレーション指示を含む複数のマイグレーション指示及び当該複数のマイグレーション指示の各々に対する実行順位を含み、
前記判定処理において、各々の前記実行順位に従って、前記第３のマイグレーション指示を特定する
請求項２又は３記載の仮想マシン移動方法。
【請求項５】
前記第３の移動情報は、前記第３のマイグレーション指示と同じ実行順位である第５のマイグレーション指示を含み、
前記判定処理において、前記第３のマイグレーション指示とともに前記第５のマイグレーション指示を特定し、前記第５のマイグレーション指示に係る第４の仮想マシンを自ら動作させているか否かを判定し、
更に、
前記第４の仮想マシンを自ら動作させていると判定した場合に、前記第４の仮想マシンを受け入れるべき物理装置宛に、前記第４の仮想マシンのデータを送出する処理
を含む請求項４記載の仮想マシン移動方法。
【請求項６】
前記転送処理において、前記第２の移動情報をブロードキャストする
請求項１乃至５のいずれか１つ記載の仮想マシン移動方法。
【請求項７】
前記転送処理において、前記第２の移動情報をＡＲＰパケットに含める
請求項１乃至６いずれか１つ記載の仮想マシン移動方法。
【請求項８】
前記転送処理において、前記第２の移動情報とともに、前記第２の移動情報を認証するための認証情報を転送する
請求項１乃至７いずれか１つ記載の仮想マシン移動方法。
【請求項９】
第１の仮想マシンを起動させる情報処理装置であって、
前記第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する受信部と、
前記第１の仮想マシンのデータを受け入れる受入部と、
前記第２のマイグレーション指示を含む第２の移動情報を、前記第２の仮想マシンを起動させる別の情報処理装置に転送する転送部と
を含む情報処理装置。
【請求項１０】
第１の仮想マシンを起動させる情報処理装置に、
前記第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する処理と、
前記第１の仮想マシンのデータを受け入れる処理と、
前記第２のマイグレーション指示を含む第２の移動情報を、前記第２の仮想マシンを起動させる別の情報処理装置に転送する処理と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、仮想マシンのマイグレーション技術に関する。
【背景技術】
【０００２】
例えばＩａａＳ（Infrastructure as a Service）に係るクラウド事業は、物理サーバ上で仮想マシンを動作させるサーバ仮想化技術を用いて、インターネットを介して利用者にサーバ資源を提供している。
【０００３】
クラウド事業者は、例えば自らの資源を有効に活用するために、動作中の仮想マシンを物理サーバ間で移動させることがある。このような仮想マシンの移動に際しては、仮想マシンによるサービスを停止させることのないように、ライブマイグレーションが行われる。また、多くの仮想マシンを管理しているクラウド事業者が複数のライブマイグレーションを行う場合、迅速に処理することが望ましい。
【０００４】
ある特許文献には、複数のライブマイグレーションをパラレルに処理する形態が開示されている。パラレルにライブマイグレーションを実行する場合には、ある仮想マシンについてのライブマイグレーションと別の仮想マシンのライブマイグレーションとを同時に開始することになる。
【０００５】
また、別の特許文献には、複数のライブマイグレーションをシリアルに処理する形態が開示されている。シリアルにライブマイグレーションを実行する場合には、ある仮想マシンについてのライブマイグレーションが完了した後に、次の仮想マシンのライブマイグレーションを開始することになる。
【０００６】
いずれの形態においても、複数のライブマイグレーションを実行する場合に、それぞれのライブマイグレーションに係る物理サーバは同一とは限らない。その為、複数のライブマイグレーションを管理する物理サーバにおける処理負荷は大きい。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−８８８０８号公報
【特許文献２】特開２０１１−２３２９１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本技術の目的は、一側面では、仮想マシンの複数のマイグレーションを管理する物理サーバに係る処理負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００９】
一態様に係る仮想マシン移動方法は、第１の仮想マシンを起動させる第１の物理装置によって、第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する処理と、第１の仮想マシンのデータを受け入れる処理と、第２のマイグレーション指示を含む第２の移動情報を、第２の仮想マシンを動作させている第２の物理装置に転送する転送処理とを含む。
【発明の効果】
【００１０】
一側面としては、仮想マシンの複数のマイグレーションを管理する物理サーバに係る処理負荷を軽減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、仮想マシン移動システムにおけるネットワークの概要を示す図である。
【図２】図２は、仮想マシンを有する物理サーバの構成例を示す図である。
【図３】図３は、運用管理用ネットワークの構成例を示す図である。
【図４】図４は、管理部を有する物理サーバの構成例を示す図である。
【図５】図５は、仮想マシン移動システムにおけるシーケンスの例を示す図である。
【図６】図６は、移動テーブルの例を示す図である。
【図７】図７は、移動テーブルの例を示す図である。
【図８】図８は、ＡＲＰ（Address Resolution Protocol）パケットの構成を示す図である。
【図９】図９は、データ部の構成例を示す図である。
【図１０】図１０は、仮想マシン移動システムにおけるシーケンスの例を示す図である。
【図１１】図１１は、移動テーブルの例を示す図である。
【図１２】図１２は、管理部のモジュール構成例を示す図である。
【図１３】図１３は、管理部における処理フローの例を示す図である。
【図１４】図１４は、仮想マシンを有する物理サーバのモジュール構成例を示す図である。
【図１５】図１５は、仮想マシンを有するハイパーバイザにおけるメイン処理フローの例を示す図である。
【図１６】図１６は、送出処理フローの例を示す図である。
【図１７】図１７は、受入処理フローの例を示す図である。
【図１８】図１８は、仮想マシンを有するハイパーバイザにおけるメイン処理フローの例を示す図である。
【図１９】図１９は、解析処理フローの例を示す図である。
【図２０】図２０は、移動テーブルの遷移例を示す図である。
【図２１】図２１は、移動テーブルの遷移例を示す図である。
【図２２】図２２は、エラー発生時におけるシーケンスの例を示す図である。
【図２３】図２３は、仮想マシンを有するハイパーバイザにおけるメイン処理フローの例を示す図である。
【図２４】図２４は、リカバリー処理フローの例を示す図である。
【図２５】図２５は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１２】
図１に、仮想マシン移動システムにおけるネットワークの概要を示す。物理サーバ１０１ａ乃至１０１ｄは、仮想マシンを有する物理サーバ１０１の例である。物理サーバ１０１ａ乃至１０１ｄは、ユーザデータ通信用ネットワーク１０３に接続されている。ユーザデータ通信用ネットワーク１０３は、インターネットにも接続している。ユーザデータ通信用ネットワーク１０３は、物理サーバ１０１ａ乃至１０１ｄ同士の通信及び物理サーバ１０１ａ乃至１０１ｄとインターネット側との通信に用いられる。
【００１３】
物理サーバ１０１ａ乃至１０１ｄは、運用管理用ネットワーク１０５を介して接続されている。運用管理用ネットワーク１０５には、物理サーバ１０１ｅと管理者端末１０７も接続されている。管理者端末１０７は、管理者が用いる端末である。物理サーバ１０１ｅは、物理サーバ１０１ａ乃至１０１ｄを管理する管理部を有する。管理者は、管理者端末１０７を操作して、管理部を動作させる。
【００１４】
図２に、仮想マシン２０９を有する物理サーバ１０１の構成例を示す。物理サーバ１０１ａ乃至１０１ｄの構成は同様であるので、ここでは、物理サーバ１０１ａの構成について説明する。物理サーバ１０１ａは、ＣＰＵ（Central Processing Unit）２０１と、補助記憶装置２０３と、メモリ２０５ａを有している。
【００１５】
ＣＰＵ２０１は、演算処理を行う。補助記憶装置２０３は、データを記憶する。ハイパーバイザ２０７ａは、メモリ２０５ａ上に展開されている。メモリ２０５ａは、メモリ２０５の例であり、ハイパーバイザ２０７ａは、ハイパーバイザ２０７の例である。ハイパーバイザ２０７ａは、仮想スイッチ２１１と仮想マシン２０９とを含んでいる。仮想スイッチ２１１は、ユーザデータ通信用ネットワーク１０３に接続されている。仮想マシン２０９ａと仮想マシン２０９ｂは、仮想マシン２０９の例である。ハイパーバイザ２０７で保持する仮想マシン２０９の数は、一又は複数である。また、ハイパーバイザ２０７で仮想マシン２０９を保持していない場合もある。仮想マシン２０９ａと仮想マシン２０９ｂは、ユーザデータ通信用ネットワーク１０３を介してインターネット側に接続する。利用者は、利用者の端末からインターネットを介して仮想マシン２０９にアクセスする。ハイパーバイザ２０７ａは、運用管理用ネットワーク１０５と接続されている。
【００１６】
図３に、運用管理用ネットワーク１０５の構成例を示す。この例で、運用管理用ネットワーク１０５は、階層的な物理スイッチ３０１を有している。この例で、運用管理用ネットワーク１０５は、下位層の物理スイッチ３０１ａと物理スイッチ３０１ｂ、更に上位層の物理スイッチ３０１ｃを有している。物理サーバ１０１ａのハイパーバイザ２０７ａと物理サーバ１０１ｂのハイパーバイザ２０７ｂとは、下位層の物理スイッチ３０１ａに接続されている。物理サーバ１０１ｃのハイパーバイザ２０７ｃと物理サーバ１０１ｄのハイパーバイザ２０７ｄとは、下位層の物理スイッチ３０１ｂに接続されている。
【００１７】
尚、前述の通り、ハイパーバイザ２０７ａは、物理サーバ１０１ａのメモリ２０５ａ上に展開されている。同様に、ハイパーバイザ２０７ｂは、物理サーバ１０１ｂのメモリ２０５ｂ上に展開されている。同様に、ハイパーバイザ２０７ｃは、物理サーバ１０１ｃのメモリ２０５ｃ上に展開されている。同様に、ハイパーバイザ２０７ｄは、物理サーバ１０１ｄのメモリ２０５ｄ上に展開されている。また、ハイパーバイザ２０７ａは、仮想マシン２０９ａと仮想マシン２０９ｂとを有している。ハイパーバイザ２０７ｂは、仮想マシン２０９ｃを有している。ハイパーバイザ２０７ｃは、仮想マシン２０９ｄと仮想マシン２０９ｅとを有している。ハイパーバイザ２０７ｄは、仮想マシン２０９を有していない。
【００１８】
管理部４０１を有する物理サーバ１０１の構成について説明する。図４に、管理部４０１を有する物理サーバ１０１の構成例を示す。物理サーバ１０１ｅは、ＣＰＵ２０１と、補助記憶装置２０３と、メモリ２０５ｅを有している。ＣＰＵ２０１は、演算処理を行う。補助記憶装置２０３は、データを記憶する。ハイパーバイザ２０７ｅは、メモリ２０５ｅ上に展開されている。ハイパーバイザ２０７ｅは、管理部４０１を含んでいる。管理部４０１は、運用管理用ネットワーク１０５に接続されている。つまり、管理部４０１と図３に示したハイパーバイザ２０７ａ乃至２０７ｄとは、運用管理用ネットワーク１０５を介して接続されている。
【００１９】
管理部４０１とハイパーバイザ２０７との間の制御用の通信やライブマイグレーションによる仮想マシン２０９のデータ転送には運用管理用ネットワーク１０５が使用され、インターネット上の利用者と仮想マシン２０９の通信あるいは仮想マシン２０９同士の通信にはユーザデータ通信用ネットワーク１０３が使用される。
【００２０】
次に、シーケンスについて説明する。図５に、仮想マシン移動システムにおけるシーケンスの例を示す。尚、以下のシーケンスの例において、ハイパーバイザ２０７ｃは、仮想マシン２０９の送出側にも受入側にもならないので省略している。管理部４０１は、管理者端末１０７から、ライブマイグレーション指示を受信する（Ｓ５０１）。ライブマイグレーション指示は、移動テーブルとリトライ制限回数を含んでいる。リトライ制限回数は、ライブマイグレーションでエラーが発生した場合に行うリトライの回数である。
【００２１】
図６に、初期段階の移動テーブル６０１ａの例を示す。移動テーブル６０１ａは、ライブマイグレーションの指示毎にレコードを有している。レコードは、実行順位と、仮想マシンＩＤと、送出側ハイパーバイザＩＰ（Internet Protocol）アドレスと、受入側ハイパーバイザＩＰアドレスと、エラー回数とのフィールドを含んでいる。実行順位は、ライブマイグレーションを行う順位を示している。仮想マシンＩＤは、ライブマイグレーションにより移動する仮想マシン２０９の識別情報である。送出側ハイパーバイザＩＰアドレスは、仮想マシン２０９の移動元となる送出側のハイパーバイザ２０７のＩＰアドレスである。受入側ハイパーバイザＩＰアドレスは、仮想マシン２０９の移動先となる受入側のハイパーバイザ２０７のＩＰアドレスである。この例では、送出側ハイパーバイザＩＰアドレスと受入側ハイパーバイザＩＰアドレスともにサブネットマスク「／１６」を含む形式で示している。エラー回数は、当該仮想マシン２０９のライブマイグレーションにおいて発生したエラーの回数である。
【００２２】
移動テーブル６０１ａの第１レコードは、仮想マシンＩＤが「１０１００２３」である仮想マシン２０９ａを、ＩＰアドレス「１０．０．０．１／１６」で特定されるハイパーバイザ２０７ａからＩＰアドレス「１０．０．０．２／１６」で特定されるハイパーバイザ２０７ｂへ移動させるライブマイグレーション指示を示す。また、その実行順位が「１」であることを示している。この例で、実行順位の値が小さい方が、早く実行されることを意味する。
【００２３】
移動テーブル６０１ａの第２レコードは、仮想マシンＩＤが「１０１００１１」である仮想マシン２０９ｃを、ＩＰアドレス「１０．０．０．２／１６」で特定されるハイパーバイザ２０７ｂからＩＰアドレス「１０．０．０．４／１６」で特定されるハイパーバイザ２０７ｄへ移動させるライブマイグレーション指示を示す。また、その実行順位が「２」であることを示している。
【００２４】
移動テーブル６０１ａの第３レコードは、仮想マシンＩＤが「１０１０１２１」である仮想マシン２０９ｂを、ＩＰアドレス「１０．０．０．１／１６」で特定されるハイパーバイザ２０７ａからＩＰアドレス「１０．０．０．２／１６」で特定されるハイパーバイザ２０７ｂへ移動させるライブマイグレーション指示を示す。また、その実行順位が「３」であることを示している。
【００２５】
移動テーブル６０１ａの第４レコードは、仮想マシンＩＤが「１０１２００１」である仮想マシン２０９ｄを、ＩＰアドレス「１０．０．０．３／１６」で特定されるハイパーバイザ２０７ｃからＩＰアドレス「１０．０．０．４／１６」で特定されるハイパーバイザ２０７ｄへ移動させるライブマイグレーション指示を示す。また、その実行順位が「３」であることを示している。
【００２６】
この例で、移動テーブル６０１ａの第３レコードに示したライブマイグレーションと第４レコードに示したライブマイグレーション指示は同じ実行順位であるので、パラレルに実行されることを意味する。
【００２７】
移動テーブル６０１ａの第５レコードは、仮想マシンＩＤが「１０１０７５１」である仮想マシン２０９ｅを、ＩＰアドレス「１０．０．０．３／１６」で特定されるハイパーバイザ２０７ｃからＩＰアドレス「１０．０．０．４／１６」で特定されるハイパーバイザ２０７ｄへ移動させるライブマイグレーション指示を示す。また、その実行順位が「４」であることを示している。
【００２８】
初期段階では、まだライブマイグレーションを実行していないので、移動テーブル６０１ａにおいていずれのレコードにおけるエラー数も「０」である。
【００２９】
図５に示したシーケンスの説明に戻って、管理部４０１は、実行順位が「１」である第１レコードの送出側となるハイパーバイザ２０７ａを特定し、管理部４０１は、ハイパーバイザ２０７ａに初回指示を送信する（Ｓ５０３）。初回指示は、移動テーブル６０１ａとリトライ制限回数を含んでいる。初回指示を受信したハイパーバイザ２０７ａは、移動テーブル６０１ａを一時的に保持する。
【００３０】
ハイパーバイザ２０７ａは、実行順位が「１」である第１レコードの受入側となるハイパーバイザ２０７ｂを特定し、ハイパーバイザ２０７ａは、ハイパーバイザ２０７ｂに受入指示を送信する（Ｓ５０５）。受入指示は、移動テーブル６０１ａとリトライ制限回数を含んでいる。受入指示を受信したハイパーバイザ２０７ｂは、移動テーブル６０１ａを一時的に保持する。
【００３１】
ハイパーバイザ２０７ａは、ライブマイグレーションを行う（Ｓ５０７）。具体的には、ハイパーバイザ２０７ａは、仮想マシン２０９ａのデータ（仮想マシンＩＤ：１０１００２３）をハイパーバイザ２０７ｂに送信する（Ｓ５０９）。
【００３２】
仮想マシン２０９ａのデータ（仮想マシンＩＤ：１０１００２３）を受信したハイパーバイザ２０７ｂは、所定の領域に仮想マシン２０９ａのデータを記憶し、当該仮想マシン２０９ａを起動する（Ｓ５１１）。一方、ハイパーバイザ２０７ａは、送出した仮想マシン２０９ａを停止させる（Ｓ５１３）。例えば、ハイパーバイザ２０７ａが受入側のハイパーバイザ２０７ｂからライブマイグレーション完了通知を受信した後に、仮想マシン２０９ａを停止させる。ライブマイグレーション完了通知によらず、ライブマイグレーションの終了が判定されるようにしてもよい。尚、図５に示したシーケンスでは、ライブマイグレーション完了通知を省略している。ハイパーバイザ２０７ａは、保持している移動テーブル６０１ａを破棄する。
【００３３】
ハイパーバイザ２０７ｂは、移動テーブル６０１ａを更新する。具体的には、ハイパーバイザ２０７ｂは、既に実行したライブマイグレーションに係る第１レコードを削除する。
【００３４】
図７に、第１回のライブマイグレーションが完了した段階の移動テーブル６０１ｂの例を示す。初期段階の移動テーブル６０１ａにおける第１レコードが削除されている。初期段階の移動テーブル６０１ａにおける第２レコード乃至第５レコードが、第１レコード乃至第４レコードに繰り上げられている。
【００３５】
図５に示したシーケンスの説明に戻って、ハイパーバイザ２０７ｂは、移動テーブル６０１ｂを含むＡＲＰパケットを生成し、生成したＡＲＰパケットをブロードキャストする（Ｓ５１５）。ＡＲＰパケットは、ユーザデータ通信用ネットワーク１０３を介して送られる。
【００３６】
図８に、ＡＲＰパケットの構成を示す。ＡＲＰパケットは、ＩＰアドレスに対応するＭＡＣ（Media Access Control）アドレスを動的に特定するために用いられる。本実施の形態では、ＡＲＰパケットの一部を用いて、仮想マシン移動を制御するためのデータを転送する。
【００３７】
ＡＲＰパケット８０１は、宛先ＭＡＣアドレス８０３、送信元ＭＡＣアドレス８０５、タイプ８０７、宛先ＩＰアドレス８０９、送信元ＩＰアドレス８１１、データ部８１３及びＦＣＳ（Frame Check Sequence）８１５を含んでいる。
【００３８】
宛先ＭＡＣアドレス８０３は、宛先のＭＡＣアドレスである。送信元ＭＡＣアドレス８０５は、送信元のＭＡＣアドレスである。タイプ８０７は、ＡＲＰを示す所定の値が設定される。宛先ＩＰアドレス８０９は、宛先のＩＰアドレスである。送信元ＩＰアドレス８１１は、送信元のＩＰアドレスである。データ部８１３は、任意のデータを格納してもよい。ＦＣＳ８１５は、エラー検出のための付加データである。
【００３９】
本実施の形態において、データ部８１３には仮想マシン移動を制御するためのデータが書き込まれる。図９に、本実施の形態におけるデータ部８１３の構成を示す。データ部８１３は、認証情報９０１、リトライ制限回数９０３及び移動テーブル９０５を有している。認証情報９０１は、仮想マシン移動に係る正当なＡＲＰパケットであることの認証に用いられる。リトライ制限回数９０３は、前述の通り、ライブマイグレーションでエラーが発生した場合に行うリトライの回数である。移動テーブル９０５には、ハイパーバイザ２０７で保持する移動テーブル６０１が設定される。
【００４０】
図５に示したシーケンスの説明に戻って、ＡＲＰパケットを受信したハイパーバイザ２０７ａは、ＡＲＰパケットを解析する（Ｓ５１７）。ハイパーバイザ２０７ａは、実行すべきライブマイグレーションを特定する。具体的には、ハイパーバイザ２０７ａは、実行順位の最も小さいレコード（図７に示した移動テーブル６０１ｂの第１レコード）を特定する。そして、ハイパーバイザ２０７ａは、当該レコードに含まれる仮想マシンＩＤに基づいて、自身が送出側のハイパーバイザ２０７であるかを判定する。この段階で、ハイパーバイザ２０７ａは、送出側のハイパーバイザ２０７ではないので処理を行わない。
【００４１】
ＡＲＰパケットを受信したハイパーバイザ２０７ｄも、ＡＲＰパケットを解析する（Ｓ５１９）。ハイパーバイザ２０７ｄも、同様に送出側のハイパーバイザ２０７ではないので処理を行わない。
【００４２】
ハイパーバイザ２０７ｂは、実行順位の最も小さいレコード（図７に示した移動テーブル６０１ｂの第１レコード）に含まれる仮想マシンＩＤ：１０１００１１により特定される仮想マシンを自ら動作させているので、自身が送出側のハイパーバイザ２０７であると判断する。そして、ハイパーバイザ２０７ｂは、受入側のハイパーバイザ２０７ｄに受入指示を送信する（Ｓ５２１）。受入指示は、移動テーブル６０１とリトライ制限回数を含んでいる。尚、送出側ハイパーバイザＩＰアドレスに基づいて、自身が送出側のハイパーバイザ２０７であると判断するようにしてもよい。
【００４３】
ハイパーバイザ２０７ｂは、前述と同様にライブマイグレーションを行う（Ｓ５２３）。具体的には、ハイパーバイザ２０７ｂは、仮想マシン２０９ｃのデータ（仮想マシンＩＤ：１０１００１１）をハイパーバイザ２０７ｄに送信する（Ｓ５２５）。
【００４４】
図１０に、図５に続くシーケンスの例を示す。仮想マシン２０９ｃのデータ（仮想マシンＩＤ：１０１００１１）を受信したハイパーバイザ２０７ｄは、所定の領域に仮想マシン２０９ｃのデータを記憶し、当該仮想マシン２０９ｃを起動する（Ｓ１００１）。一方、ハイパーバイザ２０７ｂは、送出した仮想マシン２０９ｃを停止させる（Ｓ１００３）。ハイパーバイザ２０７ｂは、保持している移動テーブル６０１ｂを破棄する。
【００４５】
ハイパーバイザ２０７ｄは、移動テーブル６０１ｂを更新する。具体的には、ハイパーバイザ２０７ｄは、既に実行したライブマイグレーションに係る第１レコード削除する。
【００４６】
図１１に、第２回のライブマイグレーションが完了した段階の移動テーブル６０１ｃの例を示す。第１回のライブマイグレーションが完了した段階の移動テーブル６０１ｂにおける第１レコードが削除されている。第２回のライブマイグレーションが完了した段階の移動テーブル６０１ｂにおける第２レコード乃至第４レコードが、第１レコード乃至第３レコードに繰り上げられている。
【００４７】
図１０に示したシーケンスの説明に戻って、ハイパーバイザ２０７ｄは、移動テーブル６０１ｃを含むＡＲＰパケットを生成し、生成したＡＲＰパケットをブロードキャストする（Ｓ１００５）。
【００４８】
ＡＲＰパケットを受信したハイパーバイザ２０７ａは、前述と同様にＡＲＰパケットを解析する（Ｓ１００７）。ハイパーバイザ２０７ａは、実行すべきライブマイグレーションを特定する。具体的には、ハイパーバイザ２０７ａは、実行順位の最も小さいレコード（図１１に示した移動テーブル６０１ｃの第１レコードと第２レコード）を特定する。そして、ハイパーバイザ２０７ａは、特定した両レコードに含まれる仮想マシンＩＤに基づいて、自身が送出側のハイパーバイザ２０７であるかを判定する。この段階で、ハイパーバイザ２０７ａは、送出側のハイパーバイザ２０７であるので、移動テーブル６０１ｃを保持し、ハイパーバイザ２０７ａは、受入側のハイパーバイザ２０７ｂに受入指示を送信する（Ｓ１０１１）。
【００４９】
ハイパーバイザ２０７ａは、前述と同様にライブマイグレーションを行う（Ｓ１０１３）。具体的には、ハイパーバイザ２０７ａは、仮想マシン２０９ｂのデータ（仮想マシンＩＤ：１０１０１２１）をハイパーバイザ２０７ｂに送信する（Ｓ１０１５）。
【００５０】
ＡＲＰパケットを受信したハイパーバイザ２０７ｂも、ＡＲＰパケットを解析する（Ｓ１００９）。ハイパーバイザ２０７ｂは、送出側のハイパーバイザ２０７ではないので処理を行わない。
【００５１】
ハイパーバイザ２０７ｄも、受入側のハイパーバイザ２０７であるので、パラレルにライブマイグレーションを行う。パラレルによる動作については、図２０と図２１を用いて後述する。以上で、シーケンスの説明を終える。
【００５２】
続いて、管理部４０１の構成と管理部４０１における処理について説明する。図１２に、管理部４０１のモジュール構成例を示す。管理部４０１は、受信部１２０１、受付部１２０３、生成部１２０５、格納部１２０７、指示部１２０９、送信部１２１１、構成管理部１２１３及び構成情報格納部１２１５を有している。
【００５３】
受信部１２０１は、運用管理用ネットワーク１０５を介してデータを受信する。受付部１２０３は、管理者端末１０７から指示を受け付ける。生成部１２０５は、移動テーブル６０１を生成する。格納部１２０７は、移動テーブル６０１を格納する。指示部１２０９は、ハイパーバイザ２０７へ指示する。送信部１２１１は、運用管理用ネットワーク１０５を介してデータを送信する。構成管理部１２１３は、物理サーバ１０１のＣＰＵ、メモリ及びネットワークインターフェースなどの構成に関する情報と、ＣＰＵ負荷、メモリの使用状況およびネットワーク使用状況などの統計情報を管理する。構成情報格納部１２１５は、ＣＰＵ、メモリ及びネットワークインターフェースなどの構成に関する情報と、ＣＰＵ負荷、メモリの使用状況およびネットワーク使用状況などの統計情報を格納する。
【００５４】
図１３に、管理部４０１における処理フローの例を示す。受付部１２０３は、受信部１２０１を介して、管理者端末１０７からライブマイグレーション指示を受け付ける（Ｓ１３０１）。ライブマイグレーション指示は、移動させる仮想マシン２０９の仮想マシンＩＤ、送出側ハイパーバイザＩＰアドレス及び受入側ハイパーバイザＩＰアドレスを含んでいる。更に、ライブマイグレーション指示は、実行順位を含んでいる。受付部１２０３は、一又は複数のライブマイグレーション指示を受け付ける。管理部４０１は、ライブマイグレーション指示の数が１つであるか、２つ以上であるかを判定する。（Ｓ１３０３）。
【００５５】
ライブマイグレーション指示の数が１つであると判定した場合には、送信部１２１１は、通常のライブマイグレーションコマンドを送出側ハイパーバイザ２０７に送信する（Ｓ１３０５）。通常のライブマイグレーションコマンドによる処理は、従来技術に相当するので、説明を省略する。
【００５６】
ライブマイグレーション指示の数が２つ以上であると判定した場合には、生成部１２０５は、例えば図６に示した初期段階の移動テーブル６０１ａを生成する（Ｓ１３０７）。移動テーブル６０１ａは、格納部１２０７に格納される。
【００５７】
送信部１２１１は、初回指示を最初のライブマイグレーションにおける送出側のハイパーバイザ２０７に送信する（Ｓ１３０９）。初回指示は、前述の通り、初期段階の移動テーブル６０１とリトライ制限回数を含んでいる。
【００５８】
構成情報格納部１２１５を用いた構成管理部１２１３の処理は、従来技術に相当するので、説明を省略する。
【００５９】
続いて、仮想マシン２０９を有する物理サーバ１０１の構成と仮想マシン２０９を有するハイパーバイザ２０７における処理について説明する。
【００６０】
図１４に、仮想マシン２０９を有する物理サーバ１０１のモジュール構成例を示す。物理サーバ１０１は、受信部１４０１、送信部１４０３、ライブマイグレーション部１４０５、テーブル記憶部１４０７、制御部１４０９、仮想マシン管理部１４１１、構成管理部１４１３及び構成情報格納部１４１５を有している。
【００６１】
受信部１４０１は、ユーザデータ通信用ネットワーク１０３又は運用管理用ネットワーク１０５を介してデータを受信する。送信部１４０３は、ユーザデータ通信用ネットワーク１０３又は運用管理用ネットワーク１０５を介してデータを送信する。ライブマイグレーション部１４０５は、送出側のライブマイグレーション処理と受入側のライブマイグレーション処理を行う。テーブル記憶部１４０７は、移動テーブル６０１を記憶する。制御部１４０９は、仮想マシン２０９の移動処理を制御する。仮想マシン管理部１４１１は、仮想マシン２０９と仮想スイッチ２１１を所定の領域に格納し、仮想マシン２０９と仮想スイッチ２１１を管理する。
【００６２】
構成管理部１４１３は、物理サーバ１０１のＣＰＵ、メモリ及びネットワークインターフェースなどの構成に関する情報と、ＣＰＵ負荷、メモリの使用状況およびネットワーク使用状況などの統計情報を管理する。構成情報格納部１４１５は、ＣＰＵ、メモリ及びネットワークインターフェースなどの構成に関する情報と、ＣＰＵ負荷、メモリの使用状況およびネットワーク使用状況などの統計情報を格納する。構成情報格納部１４１５を用いた構成管理部１４１３の処理は、従来技術に相当するので、説明を省略する。
【００６３】
制御部１４０９は、送出部１４２１、受入部１４２３、解析部１４２５、リカバリー部１４２７及び転送部１４２９を有している。送出部１４２１は、仮想マシン２０９のデータを送出する処理を行う。受入部１４２３は、仮想マシン２０９のデータを受け入れる処理を行う。解析部１４２５は、移動テーブル６０１込みのＡＲＰパケットを解析する。リカバリー部１４２７は、ライブマイグレーション処理でエラーが生じた場合のリカバリー処理を行う。転送部１４２９は、ユーザデータ通信用ネットワーク１０３を介してＡＲＰパケットを転送する。
【００６４】
続いて、図１５に、仮想マシン２０９を有するハイパーバイザ２０７におけるメイン処理フローの例を示す。制御部１４０９は、受信部１４０１を介して初回指示を受信したか否かを判定する（Ｓ１５０１）。受信部１４０１を介して初回指示を受信したと判定した場合には、制御部１４０９は、受信した初回指示に含まれる移動テーブル６０１をテーブル記憶部１４０７に記憶させる（Ｓ１５０３）。そして、送出部１４２１は、送出処理を行う（Ｓ１５０５）。
【００６５】
図１６に、送出処理フローの例を示す。送出部１４２１は、受入側のハイパーバイザ２０７を特定する（Ｓ１６０１）。具体的には、送出部１４２１は、移動テーブル６０１における実行順位に基づいて実行すべきライブマイグレーションに係るレコードを特定し、当該レコードから受入側のハイパーバイザＩＰアドレスを読み取る。このとき、送出部１４２１は、受入側のハイパーバイザ２０７が移動すべき仮想マシン２０９を受け入れ得る環境であるか否かの構成チェックを行う。
【００６６】
送出部１４２１は、受入側のハイパーバイザ２０７へ受入指示を送信する（Ｓ１６０３）。前述の通り、受入指示には、移動テーブル６０１とリトライ制限回数とが含められる。
【００６７】
送出部１４２１は、ライブマイグレーション部１４０５による送出側のライブマイグレーション処理を起動する（Ｓ１６０５）。送出部１４２１は、送出側のライブマイグレーション処理の終了を待たずに、図１５に示したＳ１５０１の処理に戻る。尚、Ｓ１５０１乃至Ｓ１５０５の処理は、図５に示したシーケンスのうちＳ５０３乃至Ｓ５０９におけるハイパーバイザ２０７ａの動作に相当する。
【００６８】
図１５に示したメイン処理フローの説明に戻って、Ｓ１５０１で、受信部１４０１を介して初回指示を受信していないと判定した場合には、制御部１４０９は、受信部１４０１を介して受入指示を受信したか否かを判定する（Ｓ１５０７）。受信部１４０１を介して受入指示を受信したと判定した場合には、制御部１４０９は、テーブル記憶部１４０７に移動テーブル６０１を記憶させる（Ｓ１５０９）。そして、受入部１４２３は、受入処理を行う（Ｓ１５１１）。
【００６９】
図１７に、受入処理フローの例を示す。受入部１４２３は、受入側のライブマイグレーション処理を実行する（Ｓ１７０１）。受入側のライブマイグレーション処理では、受信した仮想マシン２０９を仮想マシン管理部１４１１の所定領域に記憶させる。
【００７０】
送出側における仮想マシン２０９の記憶領域と受入側における仮想マシン２０９の記憶領域の同期が完了した時点でライブマイグレーション処理は終了する。受入側のライブマイグレーション処理の終了を待って、送信部１４０３は、ライブマイグレーション完了通知を送出側のハイパーバイザ２０７に送信する（Ｓ１７０３）。そして、受入部１４２３は、所定領域に記憶させた仮想マシン２０９を起動させる（Ｓ１７０５）。
【００７１】
受入部１４２３は、移動テーブル６０１に未処理のレコードがあるか否かを判定する（Ｓ１７０７）。移動テーブル６０１に未処理のレコードがないと判定した場合には、送信部１４０３は、通常のＡＲＰパケットをブロードキャストする（Ｓ１７０９）。通常のＡＲＰパケットをブロードキャストする処理は、従来技術に相当するので、説明を省略する。尚、通常のＡＲＰパケットをブロードキャストする動作は、前述のシーケンスで例示していない。
【００７２】
移動テーブル６０１に未処理のレコードがあると判定した場合には、受入部１４２３は、ライブマイグレーション処理済みのレコードを削除する（Ｓ１７１１）。受入部１４２３は、移動テーブル６０１込みのＡＲＰパケットを生成する（Ｓ１７１３）。具体的には、受入部１４２３は、通常のＡＲＰパケットを生成し、図８に示したデータ部８１３に、図９に示したように認証情報９０１とリトライ制限回数９０３と移動テーブル９０５とを含むデータを書き込む。転送部１４２９は、送信部１４０３を介して生成した移動テーブル６０１込みのＡＲＰパケットをブロードキャストする（Ｓ１７１５）。
【００７３】
受入部１４２３は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であるか否かを判定する（Ｓ１７１７）。具体的には、受入部１４２３は、移動テーブル６０１における実行順位に基づいて、次に実行すべきライブマイグレーションに係るレコードを特定し、当該レコードに含まれる仮想マシンＩＤにより特定される仮想マシンを自ら動作させているか否かを判定する。仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていると判定した場合には、受入部１４２３は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であると判定する。一方、仮想マシンＩＤにより特定される仮想マシン２０９を自ら起動していないと判定した場合には、受入部１４２３は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定する。尚、受入部１４２３は、当該レコードに含まれる送出側ハイパーバイザＩＰアドレスに基づいて、自身が送出側のハイパーバイザ２０７であると判断するようにしてもよい。
【００７４】
また、同じ実行順位であるマイグレーション指示が複数ある場合には、各マイグレーション指示について判定する。いずれかのマイグレーション指示において、仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていると判定した場合には、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であるか否かを判定する。いずれのマイグレーション指示においても仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていないと判定した場合には、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定する。
【００７５】
自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であると判定した場合には、受入部１４２３は、終了ステースに「送出する」を設定する（Ｓ１７１９）。自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定した場合には、受入部１４２３は、終了ステースに「送出しない」を設定する（Ｓ１７２１）。そして、図１５に示したＳ１５１３の処理に戻る。
【００７６】
図１５に示したメイン処理フローの説明に戻って、制御部１４０９は、受入処理（Ｓ１５１１）の終了ステータスが「送出する」であるか、あるいは「送出しない」であるかを判定する（Ｓ１５１３）。  
【００７７】
受入処理（Ｓ１５１１）の終了ステータスが「送出する」であると判定した場合は、送出部１４２１は、上述と同様の送出処理を行う（Ｓ１５１５）。そして、Ｓ１５０１の処理に戻る。尚、Ｓ１５０７乃至Ｓ１５１５の処理は、図５に示したシーケンスのうちＳ５０５、Ｓ５０９、Ｓ５１１、Ｓ５１５、Ｓ５２１、Ｓ５２３及びＳ５２５におけるハイパーバイザ２０７ｂの動作に相当する。
【００７８】
一方、受入処理（Ｓ１５１１）の終了ステータスが「送出しない」であると判定した場合は、制御部１４０９は、テーブル記憶部１４０７に記憶されている移動テーブル６０１を削除する（Ｓ１５１７）。そして、Ｓ１５０１の処理に戻る。尚、Ｓ１５０７乃至Ｓ１５１３及びＳ１５１７の処理は、図５及び図１０に示したシーケンスのうちＳ５２１、Ｓ５２５、Ｓ１００１及びＳ１００５におけるハイパーバイザ２０７ｄの動作に相当する。
【００７９】
図１５に示したＳ１５０７で、受信部１４０１を介して受入指示を受信していないと判定した場合には、端子Ａを介して、図１８のＳ１８０１の処理に移る。
【００８０】
図１８に、メイン処理フローの続きを示す。制御部１４０９は、受信部１４０１を介してライブマイグレーション完了通知を受信したか否かを判定する（Ｓ１８０１）。受信部１４０１を介してライブマイグレーション完了通知を受信したと判定した場合には、制御部１４０９は、送出させた仮想マシン２０９を停止させる（Ｓ１８０３）。制御部１４０９は、テーブル記憶部１４０７に記憶させた移動テーブル６０１を削除する（Ｓ１８０５）。そして、端子Ｂを介して、図１５に示したＳ１５０１の処理に戻る。尚、Ｓ１８０１乃至Ｓ１８０５の処理は、図５に示したシーケンスのうちＳ５１３におけるハイパーバイザ２０７ａの動作及び図１０に示したシーケンスのうちＳ１００３におけるハイパーバイザ２０７ｂの動作に相当する。
【００８１】
本実施の形態では、ライブマイグレーション完了通知によって仮想マシンを停止させる例を示したが、制御部１４０９は、ライブマイグレーション完了通知によらずにライブマイグレーションの終了を判定して、仮想マシン２０９を停止させるようにしてもよい。
【００８２】
一方、Ｓ１８０１で、受信部１４０１を介してライブマイグレーション完了通知を受信していないと判定した場合には、制御部１４０９は、受信部１４０１を介して移動テーブル６０１込みのＡＲＰパケットを受信したか否かを判定する（Ｓ１８０７）。受信部１４０１を介して移動テーブル６０１込みのＡＲＰパケットを受信したと判定した場合には、解析部１４２５は、解析処理を行う（Ｓ１８０９）。
【００８３】
図１９に、解析処理フローの例を示す。解析部１４２５は、まず認証処理を行う（Ｓ１９０１）。具体的には、解析部１４２５は、ＡＲＰパケット８０１のデータ部８１３に含まれる認証情報９０１を抽出し、認証情報９０１に基づいて、正当なＡＲＰパケットであるか否かを判定し、正当なＡＲＰパケットであると判定した場合に、認証成功と判断する。解析部１４２５は、正当なＡＲＰパケットでないと判定した場合には、認証失敗と判断する。例えば、解析部１４２５は、認証情報９０１が所定の秘密コードと一致した場合に、正当なＡＲＰパケットであると判定し、認証情報９０１が所定の秘密コードと一致しない場合に、正当なＡＲＰパケットでないと判定する。秘密コードは、例えば管理部４０１とハイパーバイザ２０７が共有するＩＤとパスワードとである。
【００８４】
Ｓ１９０１で認証失敗と判断した場合には、解析部１４２５は、終了ステースに「送出しない」を設定する（Ｓ１９１１）。このように処理することにより、不正な仮想マシンの受け入れを防ぐ。
【００８５】
一方、Ｓ１９０１で認証成功と判断した場合には、解析部１４２５は、移動テーブル６０１をテーブル記憶部１４０７に記憶しているか否かを判定する（Ｓ１９０３）。移動テーブル６０１をテーブル記憶部１４０７に記憶していないと判定した場合には、解析部１４２５は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であるか否かを判定する（Ｓ１９０５）。具体的には、解析部１４２５は、移動テーブル６０１における実行順位に基づいて、次に実行すべきライブマイグレーションに係るレコードを特定し、当該レコードに含まれる仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させているか否かを判定する。仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていると判定した場合には、解析部１４２５は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であると判定する。一方、仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていないと判定した場合には、解析部１４２５は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定する。尚、解析部１４２５は、当該レコードに含まれる送出側ハイパーバイザＩＰアドレスに基づいて、自身が送出側のハイパーバイザ２０７であるかを判断するようにしてもよい。
【００８６】
また、同じ実行順位であるマイグレーション指示が複数ある場合には、各マイグレーション指示について判定する。いずれかのマイグレーション指示において、仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていると判定した場合には、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であるか否かを判定する。いずれのマイグレーション指示においても仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていないと判定した場合には、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定する。
【００８７】
自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であると判定した場合には、解析部１４２５は、終了ステースに「送出する」を設定する（Ｓ１９０７）。
【００８８】
自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定した場合には、解析部１４２５は、終了ステースに「送出しない」を設定する（Ｓ１９１１）。
【００８９】
Ｓ１９０３で移動テーブル６０１をテーブル記憶部１４０７に記憶していると判定した場合には、解析部１４２５は、移動テーブル６０１を更新する（Ｓ１９０９）。具体的には、解析部１４２５は、テーブル記憶部１４０７に記憶されている移動テーブル６０１を、ＡＲＰパケット８０１のデータ部８１３から抽出された移動テーブル９０５に書き換える。そして、解析部１４２５は、終了ステースに「送出しない」を設定する（Ｓ１９１１）。
【００９０】
終了ステースに「送出する」あるいは「送出しない」を設定すると、解析処理を終え、図１８に示したＳ１８１１の処理に移る。
【００９１】
シリアルにライブマイグレーションを実行している場合には、移動テーブル６０１込みのＡＲＰパケットを受信した時点で、移動テーブル６０１をテーブル記憶部１４０７に記憶していることはない。パラレルにライブマイグレーションを実行している場合に、移動テーブル６０１込みのＡＲＰパケットを受信した時点で、移動テーブル６０１をテーブル記憶部１４０７に記憶している状況が生じる。従って、Ｓ１９０９で移動テーブルを更新するのは、パラレルにライブマイグレーションを実行している場合である。
【００９２】
以下、パラレルにライブマイグレーションを実行している場合における移動テーブル６０１の遷移について説明する。
【００９３】
図１０のシーケンスに示したＳ１００５では、図１１に示した移動テーブル６０１ｃを含むＡＲＰパケットがブロードキャストされる。ハイパーバイザ２０７ａ乃至２０７ｃは、解析処理を行う。その結果、ハイパーバイザ２０７ａは第１レコードに基づいて、自ら送出側のハイパーバイザ２０７であると判定し、図１０に示したように、ハイパーバイザ２０７ｂに受入指示を送信し（Ｓ１０１１）、更に送出側のライブマイグレーション処理（Ｓ１０１３）により仮想マシン２０９ｂ（仮想マシンＩＤ：１０１０１２１）のデータをハイパーバイザ２０７ｂに送信する（Ｓ１０１５）。これに応じて、ハイパーバイザ２０７ｂは、受入側のライブマイグレーション処理を行う。
【００９４】
また、同時にハイパーバイザ２０７ｃは図１１に示した移動テーブル６０１ｃの第２レコードに基づいて、自ら送出側のハイパーバイザであると判定する。図１０には示していないが、ハイパーバイザ２０７ｄに受入指示を送信し、更に送出側のライブマイグレーション処理により仮想マシン２０９ｄ（仮想マシンＩＤ：１０１２００１）のデータをハイパーバイザ２０７ｄに送信する。これに応じて、ハイパーバイザ２０７ｄは、受入側のライブマイグレーション処理を行う。
【００９５】
このときのハイパーバイザ２０７ｂにおける移動テーブル６０１ｄを、図２０に示す。尚、移動テーブル６０１ｄは、図１１に示した移動テーブル６０１ｃと同様である。
【００９６】
一方のハイパーバイザ２０７ｄにおける移動テーブル６０１ｈを、図２１に示す。移動テーブル６０１ｈも、図１１に示した移動テーブル６０１ｃと同様である。
【００９７】
つまり、受入側のライブマイグレーション処理を開始した時点では、パラレルに受入側となるハイパーバイザ２０７ｂもハイパーバイザ２０７ｄも同様の移動テーブル６０１を保持している。
【００９８】
この例では、ハイパーバイザ２０７ｄにおける受入側のライブマイグレーション処理が先に終了することを想定する。この時点で、ハイパーバイザ２０７ｄは実行済みのライブマイグレーションに係る第１レコードを削除する。その結果、図２１に示した移動テーブル６０１ｉのように更新される。
【００９９】
一方、ハイパーバイザ２０７ｂにおける受入側のライブマイグレーション処理はまだ継続しているので、この時点では図２０に示した移動テーブル６０１ｅのようにライブマイグレーション処理開始時点の移動テーブル６０１ｄから変化していない。
【０１００】
仮に、移動テーブル６０１ｅの状態のまま、ハイパーバイザ２０７ｂが受入側のライブマイグレーション処理を終え、実行済みのライブマイグレーションに係る第２レコードを削除すると、すでにハイパーバイザ２０７ｄで受入側のライブマイグレーション処理を終えている第１レコードが残存することになり、不具合の原因となる。
【０１０１】
本実施の形態では、先に受け入れを終えたハイパーバイザ２０７ｄが、移動テーブル６０１ｉを含むＡＲＰパケットをブロードキャストし、ハイパーバイザ２０７ｂは、受信したＡＲＰパケットに含まれる移動テーブル６０１ｉに書き換える。その結果、ハイパーバイザ２０７ｂは、図２０に示した移動テーブル６０１ｆを保持することになる。このようにして、移動テーブル６０１は適正な状態に保たれる。尚、ハイパーバイザ２０７ｄは、その後自ら保持する移動テーブル６０１ｉを破棄する。
【０１０２】
その後、ハイパーバイザ２０７ｂが受入側のライブマイグレーション処理を終え、実行済みのライブマイグレーションに係る移動テーブル６０１ｆの第１レコードを削除し、移動テーブル６０１ｇのように更新する。
【０１０３】
そして、ハイパーバイザ２０７ｂは、移動テーブル６０１ｇを含むＡＲＰパケットをブロードキャストする。その後、移動テーブル６０１ｇは破棄される。
【０１０４】
例えば、図２０に示した移動テーブル６０１ｅを保持している状態で、ハイパーバイザｂの解析部１４２５は、図１９に示したＳ１９０３で移動テーブル６０１を記憶していると判定する。そして、図１９に示したＳ１９０９で移動テーブルを更新する処理によって、図２０に示した移動テーブル６０１ｆに遷移させる。
【０１０５】
以上で、パラレルにライブマイグレーションを実行している場合における移動テーブル６０１の遷移についての説明を終える。
【０１０６】
図１８に示したメイン処理フローの説明に戻って、制御部１４０９は、解析処理（Ｓ１８０９）の終了ステータスが「送出する」であるか、あるいは「送出しない」であるかを判定する（Ｓ１８１１）。  解析処理（Ｓ１８０９）の終了ステータスが「送出しない」であると判定した場合には、端子Ｂを介して、図１５に示したＳ１５０１の処理に移る。尚、Ｓ１８０７乃至Ｓ１８１１で、終了ステータスが「送出しない」と判定される処理は、図５に示したシーケンスのうちＳ５１７におけるハイパーバイザ２０７ａの動作、Ｓ５１９におけるハイパーバイザ２０７ｄの動作及び図１０に示したシーケンスのうちＳ１００９におけるハイパーバイザ２０７ｂの動作に相当する。
【０１０７】
解析処理（Ｓ１８０９）の終了ステータスが「送出する」であると判定した場合には、制御部１４０９は、移動テーブル６０１込みのＡＲＰパケットから抽出された移動テーブル６０１をテーブル記憶部１４０７に記憶させる（Ｓ１８１３）。送出部１４２１は、前述の送出処理を行う（Ｓ１８１５）。そして、端子Ｂを介して、図１５に示したＳ１５０１の処理に戻る。尚、Ｓ１８０７乃至Ｓ１８１５の処理は、図１０に示したシーケンスのうちＳ１００７におけるハイパーバイザ２０７ａの動作に相当する。
【０１０８】
続いて、図２２乃至図２４を用いて、ライブマイグレーションでエラー発生した場合のリカバリーについて説明する。例えば、運用管理用ネットワーク１０５における一時的な輻輳などによって、エラーが発生することがある。
【０１０９】
図２２に、エラー発生時におけるシーケンスの例を示す。図５と同様に、管理部４０１は、管理者端末１０７からライブマイグレーション指示を受信する（Ｓ２２０１）。ライブマイグレーション指示は、移動テーブル６０１とリトライ制限回数を含んでいる。リトライ制限回数は、ライブマイグレーションでエラーが発生した場合に行うリトライの回数である。
【０１１０】
図５に示したシーケンスと同様に、受入指示には図６に示した初期段階の移動テーブル６０１ａが含まれる。初期段階ではまだライブマイグレーションを実行していないので、いずれのレコードにおいれも、エラー数は「０」である。
【０１１１】
図５に示したシーケンスと同様に、管理部４０１は、実行順位が「１」である第１レコードに基づいて送出側となるハイパーバイザ２０７ａを特定し、管理部４０１は、ハイパーバイザ２０７ａに初回指示を送信する（Ｓ２２０３）。初回指示は、移動テーブル６０１ａとリトライ制限回数を含んでいる。初回指示を受信したハイパーバイザ２０７ａは、移動テーブル６０１ａを一時的に保持する。
【０１１２】
図５に示したシーケンスと同様に、ハイパーバイザ２０７ａは受入指示をハイパーバイザ２０７ｂに送信する（Ｓ２２０５）。そして、ハイパーバイザ２０７ａは、ライブマイグレーションを行う（Ｓ２２０７）。具体的には、ハイパーバイザ２０７ａは、仮想マシン２０９ａのデータ（仮想マシンＩＤ：１０１００２３）をハイパーバイザ２０７ｂに送信する（Ｓ２２０９）。このライブマイグレーションにおいて、エラーが発生した場合を想定する。
【０１１３】
ライブマイグレーションの失敗を検出したハイパーバイザ２０７ａは、リカバリー処理を行う（Ｓ２２１１）。具体的には、ハイパーバイザ２０７ａは、移動テーブル６０１ａのうち、失敗したライブマイグレーションに係るレコードのエラー回数をインクリメントする。この例では、エラー回数に「１」が設定される。また、失敗したライブマイグレーションに係るレコードの実行順位を繰り下げる。
【０１１４】
ハイパーバイザ２０７ａは、更新した移動テーブル６０１を含むＡＲＰパケットのブロードキャストする（Ｓ２２１３）。
【０１１５】
以降は、図６に示した移動テーブル６０１ａの第２レコードに基づく通常の動作に移る。具体的には、ハイパーバイザ２０７ｂは、ＡＲＰパケットの解析を行い（Ｓ２２１５）、ハイパーバイザ２０７ｄも、ＡＲＰパケットの解析を行う（Ｓ２２１７）。ハイパーバイザ２０７ｂは自らが送出側のハイパーバイザ２０７であると判断し、受入指示をハイパーバイザ２０７ｄに送信する（Ｓ２２１９）。そして、ハイパーバイザ２０７ｂは、ライブマイグレーションを行う（Ｓ２２２１）。つまり、ハイパーバイザ２０７ｂは、仮想マシン２０９ｃのデータ（仮想マシンＩＤ：１０１００１１）をハイパーバイザ２０７ｄに送信する（Ｓ２２２３）。
【０１１６】
続いて、リカバリーの処理について説明する。図１８に示したメイン処理フローのＳ１８０７において、受信部１４０１を介して移動テーブル６０１込みのＡＲＰパケットを受信していないと判定した場合には、端子Ｃを介して図２３に示したＳ２３０１の処理に移る。図２３にメイン処理フローの続きを示す。制御部１４０９は、ライブマイグレーション部１４０５によってライブマイグレーション失敗を検出したか否かを判定する（Ｓ２３０１）。ライブマイグレーション部１４０５によってライブマイグレーション失敗を検出していないと判定した場合には、端子Ｂを介して、図１５のＳ１５０１に戻る。
【０１１７】
ライブマイグレーション部１４０５によってライブマイグレーション失敗を検出したと判定した場合には、リカバリー部１４２７は、リカバリー処理を行う（Ｓ２３０３）。
【０１１８】
図２４に、リカバリー処理フローの例を示す。リカバリー部１４２７は、移動テーブル６０１のうち失敗したライブマイグレーションに係るレコードを特定し、当該レコードのエラー回数をインクリメントする（Ｓ２４０１）。リカバリー部１４２７は、当該レコードの実行順位を繰り下げる（Ｓ２４０３）。例えば、最後の実行順位を特定し、その次の順位に設定する。リカバリー部１４２７は、エラー回数がリトライ制限回数より大きいか否かを判定する（Ｓ２４０５）。エラー回数がリトライ制限回数以下であると判定した場合には、Ｓ２４１１の処理に移る。一方、エラー回数がリトライ制限回数より大きいと判定した場合には、送信部１４０３は、管理部４０１にライブマイグレーション未完了通知を送信する（Ｓ２４０７）。ライブマイグレーション未完了通知は、例えば、仮想マシンＩＤ、送出側ハイパーバイザＩＰアドレス及び受入側ハイパーバイザＩＰアドレスを含む。リカバリー部１４２７は、当該レコードを削除する（Ｓ２４０９）。リカバリー部１４２７は、移動テーブル６０１に未処理のレコードがあるか否かを判定する（Ｓ２４１１）。移動テーブル６０１に未処理のレコードがないと判定した場合には、リカバリー部１４２７は、リカバリー処理を終えて呼出元の処理に戻る。
【０１１９】
移動テーブル６０１に未処理のレコードがあると判定した場合には、リカバリー部１４２７は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であるか否かを判定する（Ｓ２４１３）。具体的には、リカバリー部１４２７は、移動テーブル６０１における実行順位に基づいて、次に実行すべきライブマイグレーションに係るレコードを特定し、当該レコードに含まれる仮想マシンＩＤにより特定される仮想マシンを自ら動作させているか否かを判定する。仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていると判定した場合には、リカバリー部１４２７は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であると判定する。一方、仮想マシンＩＤにより特定される仮想マシン２０９を自ら動作させていないと判定した場合には、リカバリー部１４２７は、自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定する。尚、リカバリー部１４２７は、当該レコードに含まれる送出側ハイパーバイザＩＰアドレスに基づいて、自身が送出側のハイパーバイザ２０７であるかを判断するようにしてもよい。
【０１２０】
自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７であると判定した場合には、リカバリー部１４２７は、終了ステースに「送出する」を設定し（Ｓ２４１５）、リカバリー処理を終える。自らが次に実行すべきライブマイグレーションの送出側ハイパーバイザ２０７でないと判定した場合には、リカバリー部１４２７は、終了ステースに「送出しない」を設定し（Ｓ２４１７）、リカバリー処理を終える。リカバリー処理を終えると、図２３に示したＳ２３０５の処理に戻る。
【０１２１】
図２３に示したメイン処理フローの説明に戻って、制御部１４０９は、リカバリー処理（Ｓ２３０３）の終了ステータスが「送出する」であるか、あるいは「送出しない」であるかを判定する（Ｓ２３０５）。リカバリー処理（Ｓ２３０３）の終了ステータスが「送出する」であると判定した場合には、送出部１４２１は、送出処理を行い（Ｓ２３０７）、端子Ｂを介して図１５のＳ１５０１に戻る。
【０１２２】
リカバリー処理（Ｓ２３０３）の終了ステータスが「送出しない」であると判定した場合には、制御部１４０９は、テーブル記憶部１４０７に記憶されている移動テーブル６０１を削除し（Ｓ２３０９）、端子Ｂを介して図１５のＳ１５０１に戻る。
【０１２３】
最後に、シリアルにライブマイグレーションを行う設定とパラレルにライブマイグレーションを行う設定との各々の利点について説明する。
【０１２４】
例えば、図６に示した移動テーブル６０１ａにおける第１レコードに示したライブマイグレーション指示を実行する場合には、仮想マシン２０９ａのデータは、ハイパーバイザ２０７ａからハイパーバイザ２０７ｂに送られる。このとき、仮想マシン２０９ａのデータは、物理スイッチ３０１ａを経由する。また、第２レコードに示したライブマイグレーション指示を実行する場合には、仮想マシン２０９ｃのデータは、ハイパーバイザ２０７ｂからハイパーバイザ２０７ｄに送られる。このとき、仮想マシン２０９ｃのデータは、物理スイッチ３０１ａと物理スイッチ３０１ｃと物理スイッチ３０１ｂとを経由する。仮にこの２つのライブマイグレーションをパラレルに実行すると、物理スイッチ３０１ａと物理サーバ１０１ｂの間の伝送路における帯域を共有することになるので、シリアルにライブマイグレーションを実行する場合に比べて、データ転送に要する時間が長くなる。
【０１２５】
このように、データ転送が完了するまでの時間が長くなると、その間に仮想マシン２０９のデータが更新される可能性が高くなる。仮想マシン２０９のデータが更新された場合には、その間に生じたデータの差分を再転送する処理が生じ、更に遅くなる。従って、伝送路の帯域を共有することになる複数のライブマイグレーションは、シリアルに行わせることが適している。
【０１２６】
別の例で、図６に示した移動テーブル６０１ａにおける第３レコードに示したライブマイグレーション指示を実行する場合には、仮想マシン２０９ｂのデータは、ハイパーバイザ２０７ａからハイパーバイザ２０７ｂに送られる。このとき、仮想マシン２０９ｂのデータは、物理スイッチ３０１ａを経由する。また、第４レコードに示したライブマイグレーション指示を実行する場合には、仮想マシン２０９ｄのデータは、ハイパーバイザ２０７ｃからハイパーバイザ２０７ｄに送られる。このとき、仮想マシン２０９ｄのデータは、物理スイッチ３０１ｂを経由する。この２つのライブマイグレーションをパラレルに実行しても伝送路の帯域を共有することにはならないので遅くならない。
【０１２７】
従って、伝送路において帯域を共有しない複数のライブマイグレーションは、パラレルに行わせることが適している。
【０１２８】
このように、仮想マシンのデータを転送する経路によって、シリアルによるライブマイグレーションとパラレルによるライブマイグレーションを設定し分けることによって、全体の処理時間を短縮することができる。
【０１２９】
本実施の形態によれば、例えば管理部４０１により複数のマイグレーションを集中的に指示しなくても済むようになる。このように、次のマイグレーションの指示を受入側の物理サーバ１０１に処理させることにより、複数のマイグレーションの制御に係る処理を分散させ、複数のマイグレーションを管理する物理サーバに係る処理負荷を軽減することができる。
【０１３０】
ブロードキャストによって移動テーブルを受信した物理サーバ１０１が、自ら送出側となるか否かを判定するので、移動テーブルを送信する物理サーバ１０１が送出側となる物理サーバ１０１を特定しなくても済むようになる。
【０１３１】
また、ライブマイグレーションに伴い、送出側の物理サーバ１０１から受入側の物理サーバ１０１に移動テーブルを送信し、ライブマイグレーションが完了した受入側の物理サーバ１０１が、移動テーブルをブロードキャストする処理を順次繰り返すことによって、管理部４０１の関与は無く連鎖的に複数のライブマイグレーションを実行することができる。
【０１３２】
また、移動テーブルをＡＲＰパケットに含めて転送するので、仮想マシンの移動に伴う制御が簡単になる。
【０１３３】
また、ＡＲＰパケットに認証情報を含めるので、偽りの移動情報を排除することに役立つ。
【０１３４】
上述の例では、ＡＲＰパケットに移動テーブルを含めて転送する例について説明したが、ＡＲＰパケットとは別に移動テーブルを転送するようにしてもよい。例えば、図１７のＳ１７１５に示した転送部１４２９による処理において、移動テーブルをブロードキャストする。そして、図１８のＳ１８０７で移動テーブルの受信を判定し、Ｓ１８０９に示した解析処理では、受信した移動テーブルを用いて解析する。また、移動テーブルに認証情報を付加するようにしてもよい。
【０１３５】
上述の例では、移動テーブルを含むＡＲＰパケットをブロードキャストすることによって、次の送出側のハイパーバイザ２０７に転送する例を説明したが、ユニキャストによって移動テーブルを次の送出側のハイパーバイザ２０７に転送するようにしてもよい。その場合には、図１７のＳ１７１５に示した転送部１４２９によるブロードキャストの処理に代えて、転送部１４２９によるユニキャストの処理を行なうようにしてもよい。ユニキャストの処理では、次の実行順位に相当するマイグレーション指示に含まれる送出側ハイパーバイザＩＰアドレスを特定し、特定した送出側ハイパーバイザＩＰアドレス宛に移動テーブルを転送する。また、図１８のＳ１８０７で移動テーブルを受信したと判定した場合に、Ｓ１８０９に示した解析処理を省略するようにしてもよい。解析処理を省略する場合には、Ｓ１８１１に示した終了ステータスの判定において「送出する」と判定した場合に行う処理を行なうようにしてもよい。つまり、Ｓ１８１３に示した移動テーブルを記憶させる処理と、Ｓ１８１５に示した送出処理を行なうようにしてもよい。
【０１３６】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上述の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【０１３７】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１３８】
なお、上で述べた物理サーバ１０１は、コンピュータ装置であって、図２５に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１３９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１４０】
本実施の形態に係る仮想マシン移動方法は、第１の仮想マシンを起動させる第１の物理装置によって、第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する処理と、第１の仮想マシンのデータを受け入れる処理と、第２のマイグレーション指示を含む第２の移動情報を、第２の仮想マシンを動作させている第２の物理装置に転送する転送処理とを含む。
【０１４１】
このようにすれば、第１のマイグレーション指示に係る第１の仮想マシンを受け入れる第１の物理装置が、第２のマイグレーション指示を含む第２の移動情報を第２の仮想マシンを動作させている第２の物理装置に転送するので、例えば管理部により複数のマイグレーションを集中的に指示しなくても済むようになる。このように、次のマイグレーションの指示を受入側の物理装置に処理させることにより、複数のマイグレーションの制御に係る処理を分散させ、複数のマイグレーションを管理する物理サーバに係る処理負荷を軽減することができる。
【０１４２】
仮想マシン移動方法は、更に、ブロードキャストされ且つ第３のマイグレーション指示を含む第３の移動情報を受信すると、当該第３のマイグレーション指示に係る第３の仮想マシンを自ら動作させているか否かを判定する判定処理を含むようにしてもよい。仮想マシン移動方法は、更に、第３の仮想マシンを自ら動作させていると判定した場合に、第３の仮想マシンを受け入れるべき物理装置宛に、第３の仮想マシンのデータを送出する送出処理を含むようにしてもよい。
【０１４３】
このようにすれば、第３のマイグレーション指示を含む第３の移動情報を受信した第１の物理装置が、自ら第３のマイグレーション指示に係る第３の仮想マシンの送出側となるか否かを判定するので、第３の移動情報の送信側が第３の仮想マシンの送出側となる物理装置を特定しなくても済むようになる。
【０１４４】
第３の移動情報は、更に第４のマイグレーション指示を含むようにしてもよい。仮想マシン移動方法は、更に、第３の仮想マシンを自ら動作させていると判定した場合に、第３の仮想マシンを受け入れるべき物理装置宛に、第３の移動情報を送信する処理を含むようにしてもよい。
【０１４５】
このようにすれば、上記第３の仮想マシンを受け入れるべき物理装置が、第４のマイグレーション指示を含む移動情報を、当該第４のマイグレーション指示に従って仮想マシンを移動させる物理装置へ転送できるようになるため、複数のマイグレーションを連鎖的に管理部の関与無く実行できるようになる。
【０１４６】
第３の移動情報は、第３のマイグレーション指示を含む複数のマイグレーション指示及び当該複数のマイグレーション指示の各々に対する実行順位を含むようにしてもよい。仮想マシン移動方法は、更に、判定処理において、各々の実行順位に従って、第３のマイグレーション指示を特定するようにしてもよい。
【０１４７】
このようにすれば、実行順位に従ってマイグレーション指示を特定し、上記判定処理と上記送出処理とを行うようになるので、順序付けてマイグレーションを実行させることができる。
【０１４８】
第３の移動情報は、第３のマイグレーション指示と同じ実行順位である第５のマイグレーション指示を含むようにしてもよい。仮想マシン移動方法は、更に、判定処理において、第３のマイグレーション指示とともに第５のマイグレーション指示を特定し第５のマイグレーション指示に係る第４の仮想マシンを自ら動作させているか否かを判定するようにしてもよい。仮想マシン移動方法は、更に、第４の仮想マシンを自ら動作させていると判定した場合に、第４の仮想マシンを受け入れるべき物理装置宛に、第４の仮想マシンのデータを送出する処理を含むようにしてもよい。
【０１４９】
このようにすれば、同じ実行順位である２つのマイグレーション指示の各々について、判定処理と送出処理とを行うようになるので、パラレルに設定されたマイグレーション指示の一方又は両方を実行することができる。
【０１５０】
仮想マシン移動方法は、更に、転送処理において、第２の移動情報をブロードキャストするようにしてもよい。
【０１５１】
このようにすれば、次の送出側となる可能性のある物理装置群に漏れなく移動情報を渡すことができる。
【０１５２】
仮想マシン移動方法は、更に、転送処理において、第２の移動情報をＡＲＰパケットに含めるようにしてもよい。
【０１５３】
このようにすれば、第２の移動情報とＡＲＰによる通知が一体となるので、仮想マシンの移動に伴う制御が簡単になる。
【０１５４】
仮想マシン移動方法は、更に、転送処理において、第２の移動情報とともに、第２の移動情報を認証するための認証情報を転送するようにしてもよい。
【０１５５】
このようにすれば、認証情報によって偽りの移動情報を排除することに役立つ。
【０１５６】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１５７】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５８】
（付記１）
第１の仮想マシンを起動させる第１の物理装置によって、
前記第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する処理と、
前記第１の仮想マシンのデータを受け入れる処理と、
前記第２のマイグレーション指示を含む第２の移動情報を、前記第２の仮想マシンを動作させている第２の物理装置に転送する転送処理と
を含む仮想マシン移動方法。
【０１５９】
（付記２）
更に、
ブロードキャストされ且つ第３のマイグレーション指示を含む第３の移動情報を受信すると、当該第３のマイグレーション指示に係る第３の仮想マシンを自ら動作させているか否かを判定する判定処理と、
前記第３の仮想マシンを自ら動作させていると判定した場合に、前記第３の仮想マシンを受け入れるべき物理装置宛に、前記第３の仮想マシンのデータを送出する送出処理と
を含む付記１記載の仮想マシン移動方法。
【０１６０】
（付記３）
前記第３の移動情報は、更に第４マイグレーション指示を含み、
更に、
前記第３の仮想マシンを自ら動作させていると判定した場合に、前記第３の仮想マシンを受け入れるべき前記物理装置宛に、前記第３の移動情報を送信する処理
を含む付記２記載の仮想マシン移動方法。
【０１６１】
（付記４）
前記第３の移動情報は、前記第３のマイグレーション指示を含む複数のマイグレーション指示及び当該複数のマイグレーション指示の各々に対する実行順位を含み、
前記判定処理において、各々の前記実行順位に従って、前記第３のマイグレーション指示を特定する
付記２又は３記載の仮想マシン移動方法。
【０１６２】
（付記５）
前記第３の移動情報は、前記第３のマイグレーション指示と同じ実行順位である第５のマイグレーション指示を含み、
前記判定処理において、前記第３のマイグレーション指示とともに前記第５のマイグレーション指示を特定し、前記第５のマイグレーション指示に係る第４の仮想マシンを自ら動作させているか否かを判定し、
更に、
前記第４の仮想マシンを自ら動作させていると判定した場合に、前記第４の仮想マシンを受け入れるべき物理装置宛に、前記第４の仮想マシンのデータを送出する処理
を含む付記４記載の仮想マシン移動方法。
【０１６３】
（付記６）
前記転送処理において、前記第２の移動情報をブロードキャストする
付記１乃至５のいずれか１つ記載の仮想マシン移動方法。
【０１６４】
（付記７）
前記転送処理において、前記第２の移動情報をＡＲＰパケットに含める
付記１乃至６いずれか１つ記載の仮想マシン移動方法。
【０１６５】
（付記８）
前記転送処理において、前記第２の移動情報とともに、前記第２の移動情報を認証するための認証情報を転送する
付記１乃至７いずれか１つ記載の仮想マシン移動方法。
【０１６６】
（付記９）
第１の仮想マシンを起動させる情報処理装置であって、
前記第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する受信部と、
前記第１の仮想マシンのデータを受け入れる受入部と、
前記第２のマイグレーション指示を含む第２の移動情報を、前記第２の仮想マシンを起動させる別の情報処理装置に転送する転送部と
を含む情報処理装置。
【０１６７】
（付記１０）
第１の仮想マシンを起動させる情報処理装置に、
前記第１の仮想マシンに係る第１のマイグレーション指示と、第２の仮想マシンに係る第２のマイグレーション指示とを含む第１の移動情報を受信する処理と、
前記第１の仮想マシンのデータを受け入れる処理と、
前記第２のマイグレーション指示を含む第２の移動情報を、前記第２の仮想マシンを起動させる別の情報処理装置に転送する処理と
を実行させるためのプログラム。
【符号の説明】
【０１６８】
１０１  物理サーバ    １０３  ユーザデータ通信用ネットワーク
１０５  運用管理用ネットワーク    １０７  管理者端末
２０１  ＣＰＵ    ２０３  補助記憶装置
２０５  メモリ    ２０７  ハイパーバイザ
２０９  仮想マシン    ２１１  仮想スイッチ
３０１  物理スイッチ    ４０１  管理部
６０１  移動テーブル    ８０１  ＡＲＰパケット
８０３  宛先ＭＡＣアドレス    ８０５  送信元ＭＡＣアドレス
８０７  タイプ    ８０９  宛先ＩＰアドレス
８１１  送信元ＩＰアドレス    ８１３  データ部
８１５  ＦＣＳ    ９０１  認証情報
９０３  リトライ制限回数    ９０５  移動テーブル
１２０１  受信部    １２０３  受付部
１２０５  生成部    １２０７  格納部
１２０９  指示部    １２１１  送信部
１２１３  構成管理部    １２１５  構成情報格納部
１４０１  受信部    １４０３  送信部
１４０５  ライブマイグレーション部    １４０７  テーブル記憶部
１４０９  制御部    １４１１  仮想マシン管理部
１４１３  構成管理部    １４１５  構成情報格納部
１４２１  送出部    １４２３  受入部
１４２５  解析部    １４２７  リカバリー部
１４２９  転送部
【図１】
2014142720.tif 000003
【図２】
2014142720.tif 000004
【図３】
2014142720.tif 000005
【図４】
2014142720.tif 000006
【図５】
2014142720.tif 000007
【図６】
2014142720.tif 000008
【図７】
2014142720.tif 000009
【図８】
2014142720.tif 000010
【図９】
2014142720.tif 000011
【図１０】
2014142720.tif 000012
【図１１】
2014142720.tif 000013
【図１２】
2014142720.tif 000014
【図１３】
2014142720.tif 000015
【図１４】
2014142720.tif 000016
【図１５】
2014142720.tif 000017
【図１６】
2014142720.tif 000018
【図１７】
2014142720.tif 000019
【図１８】
2014142720.tif 000020
【図１９】
2014142720.tif 000021
【図２０】
2014142720.tif 000022
【図２１】
2014142720.tif 000023
【図２２】
2014142720.tif 000024
【図２３】
2014142720.tif 000025
【図２４】
2014142720.tif 000026
【図２５】
2014142720.tif 000027