(57)【要約】データセンター間の仮想マシンのマイグレーションを高速に実行する。第1のスイッチ装置210は，第1の仮想マシン実行装置130_1から送信される分割データを第2の仮想マシン実行装置430_1側に設けられた第2のスイッチ装置410に送信可能か判定し，送信不可能な場合，分割データを記録部に記録し，分割データを第2のスイッチ装置410に送信可能と判定した場合，記録部の分割データを第2のスイッチ装置410に送信する。
2013140522.tif 000002
【特許請求の範囲】
【請求項１】
第1の仮想マシンを実行する第1の仮想マシン実行装置と，第2の仮想マシンを実行する第2の仮想マシン実行装置と，前記第1，第2の仮想マシン実行装置間に設けられ，データ通信処理を行う複数のネットワーク装置とを有し，
前記第1の仮想マシン実行装置は，
前記第1の仮想マシンの移動指示に応答して，前記第1の仮想マシンに関連するデータを分割し，分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し，
前記第1のネットワーク装置は，
前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し，送信不可能な場合，分割データを記録部に記録し，分割データを前記第2のネットワーク装置に送信可能と判定した場合，前記記録部の前記分割データを前記第2のネットワーク装置に送信し，
前記第2の仮想マシン実行装置は，前記第1の仮想マシン実行装置から送信された分割データに基づき，前記第1の仮想マシンを構築する
ことを特徴とする情報処理システム。
【請求項２】
請求項1において，
前記第1の仮想マシン実行装置は，前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを作成し，前記識別子記録テーブルを前記第1のネットワーク装置に送信し，前記分割データを識別する分割データ識別子を前記分割データに付加して送信し，
前記第1のネットワーク装置は，前記識別子記録テーブルに記録された識別子を有する分割データを前記記録部に記録する
ことを特徴とする情報処理システム。
【請求項３】
請求項2において，
前記第1の仮想マシン実行装置は，分割したデータが，前記第1の仮想マシンが実行中の情報処理に関連する第1のデータかまたは前記情報処理に関連しない第2のデータか判定し，前記分割したデータが第1のデータの場合には，前記分割したデータに第1の識別子を付加し，前記分割したデータが第2のデータの場合には，前記分割したデータに第2の識別子を付加し，前記第1の識別子を付加した分割データを前記第2の分割データよりも優先して送信する
ことを特徴とする情報処理システム。
【請求項４】
請求項3において，
前記第1のネットワーク装置は，前記記録部の分割データの中で，前記第1の識別子が付加された分割データを，前記第2の識別子が付加された分割データよりも優先して送信する
ことを特徴とする情報処理システム。
【請求項５】
請求項4において，
さらに，前記第1のネットワーク装置に接続するサーバ装置を有し，
前記第1のネットワーク装置は，自装置の前記記録部に分割データを記録できるか判定し，前記自装置の記録部に前記分割データを記録できない場合，自装置に接続する前記サーバ装置に分割データを記録する
ことを特徴とする情報処理システム。
【請求項６】
請求項5において，
前記第1のネットワーク装置は，自装置に接続する前記サーバ装置に分割データを記録できるか判定し，前記サーバ装置に分割データを記録できない場合，自装置に接続する第3のネットワーク装置に前記分割データを記録する依頼を行い，
前記第3のネットワーク装置は，前記依頼に応答して，受信した分割データを自装置の記録部に記録する
ことを特徴とする情報処理システム。
【請求項７】
請求項6において，
前記第3のネットワーク装置は，前記第1のネットワーク装置を基準にして，前記第1の仮想マシン実行装置側に設けられたネットワーク装置である
ことを特徴とする情報処理システム。
【請求項８】
請求項6において，
前記第3のネットワーク装置は、前記第1，第2の仮想マシン実行装置の接続経路から分岐した接続経路に設けられたネットワーク装置であって，
前記第1のネットワーク装置は，受信した分割データを前記第3のネットワーク装置に送信する
ことを特徴とする情報処理システム。
【請求項９】
請求項1において，
前記第1の仮想マシン実行装置を有する第1のデータセンターと，
前記第2の仮想マシン実行装置を有する第2のデータセンターとを有し，
前記第1，第2のデータセンターは，地理的に離れている
ことを特徴とする情報処理システム。
【請求項１０】
第1の仮想マシンを実行する第1の仮想マシン実行装置と，第2の仮想マシンを実行する第2の仮想マシン実行装置と，前記第1，第2の仮想マシン実行装置間に設けられ，データ通信処理を行う複数のネットワーク装置とを有する情報処理システムで実行される情報処理方法であって，
前記第1の仮想マシン実行装置は，
前記第1の仮想マシンの移動指示に応答して，前記第1の仮想マシンに関連するデータを分割し，分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し，
前記第1のネットワーク装置は，
前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し，
送信不可能な場合，分割データを記録部に記録し，
分割データを前記第2のネットワーク装置に送信可能と判定した場合，前記記録部の前記分割データを前記第2のネットワーク装置に送信し，
前記第2の仮想マシン実行装置は，前記第1の仮想マシン実行装置から送信された分割データに基づき，前記第1の仮想マシンを構築する
ことを特徴とする情報処理方法。
【請求項１１】
請求項10において，
前記第1の仮想マシン実行装置は，前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを作成し，前記識別子記録テーブルを前記第1のネットワーク装置に送信し，前記分割データを識別する分割データ識別子を前記分割データに付加して送信し，
前記第1のネットワーク装置は，前記識別子記録テーブルに記録された識別子を有する分割データを前記記録部に記録する
ことを特徴とする情報処理方法。
【請求項１２】
請求項11において，
前記第1の仮想マシン実行装置は，分割したデータが，前記第1の仮想マシンが実行中の情報処理に関連する第1のデータかまたは前記情報処理に関連しない第2のデータか判定し，前記分割したデータが第1のデータの場合には，前記分割したデータに第1の識別子を付加し，前記分割したデータが第2のデータの場合には，前記分割したデータに第2の識別子を付加し，前記第1の識別子を付加した分割データを前記第2の分割データよりも優先して送信する
ことを特徴とする情報処理方法。
【請求項１３】
請求項12において，
前記第1のネットワーク装置は，前記記録部の分割データの中で，前記第1の識別子が付加された分割データを，前記第2の識別子が付加された分割データよりも優先して送信する
ことを特徴とする情報処理方法。
【請求項１４】
請求項13において，
さらに，前記第1のネットワーク装置に接続するサーバ装置を有し，
前記第1のネットワーク装置は，自装置の前記記録部に分割データを記録できるか判定し，前記自装置の記録部に前記分割データを記録できない場合，自装置に接続する前記サーバ装置に分割データを記録する
ことを特徴とする情報処理方法。
【請求項１５】
請求項14において，
前記第1のネットワーク装置は，自装置に接続する前記サーバ装置に分割データを記録できるか判定し，前記サーバ装置に分割データを記録できない場合，自装置に接続する第3のネットワーク装置に前記分割データを記録する依頼を行い，
前記第3のネットワーク装置は，前記依頼に応答して，受信した分割データを自装置の記録部に記録する
ことを特徴とする情報処理方法。
【請求項１６】
請求項15において，
前記第3のネットワーク装置は，前記第1のネットワーク装置を基準にして，前記第1の仮想マシン実行装置側に設けられたネットワーク装置である
ことを特徴とする情報処理方法。
【請求項１７】
請求項15において，
前記第3のネットワーク装置は、前記第1，第2の仮想マシン実行装置の接続経路から分岐した接続経路に設けられたネットワーク装置であって，
前記第1のネットワーク装置は，受信した分割データを前記第3のネットワーク装置に送信する
ことを特徴とする情報処理方法。
【請求項１８】
第1の仮想マシンを実行する第1の仮想マシン実行装置と，第2の仮想マシンを実行する第2の仮想マシン実行装置との間に設けられ，データ通信処理を行うネットワーク装置の第1のネットワーク装置のプログラムは，
前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2のネットワーク装置に送信可能か判定し，送信不可能な場合，分割データを記録部に記録し，分割データを前記第2のネットワーク装置に送信可能と判定した場合，前記記録部の前記分割データを前記第2のネットワーク装置に送信する処理をコンピュータに実行させる
ことを特徴とするプログラム。
【請求項１９】
請求項18において，
前記第1の仮想マシン実行装置から送信される，前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを受信し，前記記録部に記録し，
前記識別子記録テーブルに記録された識別子を有する分割データを受信し，前記記録部に記録する処理をコンピュータに実行させる
ことを特徴とするプログラム。
【請求項２０】
請求項19において，
第1の識別子が付加された分割データ，第2の識別子が付加された分割データを受信し，前記記録部に記録し，前記記録部の分割データの中で，前記第1の識別子が付加された分割データを，前記第2の識別子が付加された分割データよりも優先して送信する処理をコンピュータに実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，情報処理システム，情報処理方法，プログラムに関する。
【背景技術】
【０００２】
仮想マシンを実行するサーバ装置が，この仮想マシンを他のサーバ装置に移動し，他のサーバ装置が，この仮想マシンを実行する処理，いわゆるマイグレーションが知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本特許公開2011-146002号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方，企業や公共機関などが，業務で利用する多数のサーバ装置を複数のデータセンターに分散配置することが行われている。かかるデータセンターは，サーバ装置に仮想マシン(VM:Virtual  Machine)を構築し，この仮想マシンが前記した業務に関連する各種情報処理を実行する。また，サービス企業のデータセンターの場合，サーバ装置に構築した仮想マシンを，利用者に提供する，いわゆるクラウドサービス(IaaS:Infrastructure  as  a  Service)を行うことがある。【０００５】
この複数のデータセンターで構成されたシステムでは，第1のデータセンター内に配置されたサーバ装置は，このサーバ装置で実行している仮想マシンを，第1のデータセンターとは地理的に離れ，独立して動作する第2のデータセンター内のサーバ装置に移動(マイグレーション)することが有効である。例えば，第1のデータセンターが被災や停電した場合や，他にも，地域の季節差を利用したデータセンターの冷却コストの抑制，夜間の低料金電力を利用した運用コスト低減などを目的としてマイグレーションを実行することは有効である。【０００６】
このような地理的に離れているデータセンター間で，マイグレーションを実行する場合には，種々の制約が生じる。例えば，第1のデータセンターが被災し短時間しか電源供給が継続されない場合を想定する。この場合，第1のデータセンターにおいて仮想マシンを実行している第1のサーバ装置は，この電源供給がなされている時間内に，この仮想マシンを自装置内から送信しなければならない。【０００７】
しかし，例えば，第1，第2のデータセンター間のネットワークが混雑している場合や，第1，第2のデータセンター間のネットワークの帯域幅が狭くなる場合がある。他にも，ネットワーク帯域は十分に確保されているが，第1，第2のデータセンター間に設けられた，あるネットワーク装置(例えばスイッチ装置，ルータ装置)の処理負荷が増大し，通信量が減少する場合がある。【０００８】
このような場合には，第1，第2のデータセンター間のネットワークがデータ送信のボトルネックとなり，第1のサーバ装置は，高速にマイグレーションを実行することが困難になる。換言すれば，第1のデータセンターの第1のサーバ装置は，実行している仮想マシンを，移動先の第2のデータセンターの第2のサーバ装置に移動し，第2のサーバ装置が，この仮想マシンと同じ仮想マシンを構築するまでに時間がかかる。【０００９】
特に，第1のデータセンターの第1のサーバ装置が，数千，数万単位の仮想マシンを実行している場合において，これらの仮想マシンを第2のデータセンターの第2のサーバ装置に高速に移動するのは，極めて困難である。【００１０】
1つの側面では，本発明は，データセンター間の仮想マシンの移動処理を高速に実行することを目的とする。
【課題を解決するための手段】
【００１１】
情報処理システムの第1の側面は，第1の仮想マシンを実行する第1の仮想マシン実行装置と，第2の仮想マシンを実行する第2の仮想マシン実行装置と，前記第1，第2の仮想マシン実行装置間に設けられ，データ通信処理を行う複数のネットワーク装置とを有し，前記第1の仮想マシン実行装置は，前記第1の仮想マシンの移動指示に応答して，前記第1の仮想マシンに関連するデータを分割し，分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し，前記第1のネットワーク装置は，前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し，送信不可能な場合，分割データを記録部に記録し，分割データを前記第2のネットワーク装置に送信可能と判定した場合，前記記録部の前記分割データを前記第2のネットワーク装置に送信し，前記第2の仮想マシン実行装置は，前記第1の仮想マシン実行装置から送信された分割データに基づき，前記第1の仮想マシンを構築する。
【発明の効果】
【００１２】
一実施形態によれば，データセンター間の仮想マシンの移動処理を高速に実行することができる。
【図面の簡単な説明】
【００１３】
【図１】第1の実施の形態における情報処理システムの概略構成図である。
【図２】図1の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のハードウェア構成を示すブロックである。
【図３】図１の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
【図４】図1の第1の実施の形態におけるスイッチ装置のハードウェア構成を示すブロック図である。
【図５】図1の第1の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
【図６】図1の第1の実施の形態における移動先のデータセンターの仮想マシン実行装置のハードウェア構成を示すブロックである。
【図７】図1の第1の実施の形態における移動先のデータセンターの仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
【図８】図3で説明する，各種情報が付加された分割データを模式的に示す図である。
【図９】図3で説明する，分割データに関する各種情報を記録するテーブルの一例である。
【図１０】図3で説明する，仮想マシンに割り当てられているハードウェア資源量を記録するテーブルの一例である。
【図１１】図3の移動元の仮想マシン実行装置が実行するマイグレーション処理の流れの一例を説明するフロー図である。
【図１２】図5のスイッチ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。
【図１３】図5のスイッチ装置が実行するキャッシュした分割データの送信処理の流れの一例を説明するフロー図である。
【図１４】第2の実施の形態におけるスイッチ装置のハードウェア構成を示すブロック図である。
【図１５】第2の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
【図１６】図14，図15のスイッチ装置に接続するサーバ装置のハードウェア構成を示すブロック図である。
【図１７】図14，図15のスイッチ装置に接続するサーバ装置のソフトウェアモジュールを示すブロック図である。
【図１８】図15のスイッチ装置が自装置にキャッシュした分割データに係るデータを記録するテーブルの一例である。
【図１９】図17のサーバ装置に対するキャッシュ依頼対象の分割データの識別子などを記録するテーブルの一例である。
【図２０】図15のスイッチ装置，図17のサーバ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。
【図２１】図15のスイッチ装置，図17のサーバ装置がキャッシュした分割データを，図15のスイッチ装置が送信する処理の流れの一例を説明するフロー図である。
【図２２】第3の実施の形態における情報処理システムの概略構成図である。
【図２３】図22の第3の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
【図２４】図22の第3の実施の形態における他のスイッチ装置のハードウェア構成を示すブロック図である。
【図２５】図22の第3の実施の形態における他のスイッチ装置のソフトウェアモジュールを示すブロック図である。
【図２６】図22の第3の実施の形態におけるスイッチ装置におけるキャッシュ処理の流れの一例を説明するフロー図である。
【図２７】第4の実施の形態における情報処理システムの概略構成図である。
【図２８】図27の第4の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
【図２９】図27の第4の実施の形態における異なるトポロジのスイッチ装置のハードウェア構成を示すブロック図である。
【図３０】図27の第4の実施の形態における異なるトポロジのスイッチ装置のソフトウェアモジュールを示すブロック図である。
【図３１】図27の第4の実施の形態におけるスイッチ装置のキャッシュ処理を説明する第1のフロー図である。
【図３２】図27の第4の実施の形態におけるスイッチ装置のキャッシュ処理を説明する第2のフロー図である。
【発明を実施するための形態】
【００１４】
以下，図面に基づき，各実施の形態について説明する。なお，各図面において同一機能を有する構成要素については同一の符号を付し，再度の説明を適宜省略する。
【００１５】
[第1の実施の形態]
(情報処理システム)
図1は，第1の実施の形態における情報処理システム1の概略構成図である。情報処理システム1は，第1のデータセンターDC10〜第4のデータセンターDC40を有する。各データセンターDC10，DC20，DC30，DC40は，地理的に離れている位置に設置され，例えば，企業や公共機関における業務上の各種情報処理を実行する。他にも，各データセンターDC10，DC20，DC30，DC40は，いわゆるクラウドサービスを実行する。
【００１６】
各データセンターDC10，DC20，DC30，DC40は，データセンター内の実装置に仮想マシンを構築し，この仮想マシンを利用して，前記した各種情報処理や，クラウドサービスを実行する。
【００１７】
以下の説明では，第1のデータセンターDC10から，第4のデータセンターDC40に対して，第2のデータセンターDC20，第3のデータセンターDC30を中継して，第1のデータセンターDC10で実行している仮想マシンを第2のデータセンターDC20にマイグレーションする例を示す。そこで，第1のデータセンターDC10を，仮想マシンの移動元のデータセンターとし，第2，第3のデータセンターDC20，DC30を中継のデータセンターとし，第4のデータセンターDC40を，仮想マシンの移動先のデータセンターとする。
【００１８】
第1のデータセンター(移動元)DC10に設けられた移動元の仮想マシン実行装置(例えば，図1の仮想マシン実行装置130_1)と，第4のデータセンター(移動先)DC40に設けられた仮想マシン実行装置(例えば，図1の仮想マシン実行装置430_1)との間のネットワークにおいて例えば，データ通信のボトルネックが発生している場合を想定する。
【００１９】
前記したボトルネックが発生すると，このボトルネックにより，第1のデータセンターDC10の仮想マシン実行装置130_1は，マイグレーション対象の全仮想マシンに関連する全データを他のデータセンターDCに送信することが困難である。マイグレーション対象の仮想マシンが多数であり，さらに，これらの仮想マシンに関連するデータ量が膨大である場合には，より困難になる。
【００２０】
特に，災害などで，第1のデータセンターDC10が被災し短時間しか電源供給が継続されない場合には，第1のデータセンターDC10の仮想マシン実行装置130_1は，この短時間の間に，マイグレーション対象の仮想マシンに関連するデータを他のデータセンターDCに送信できないと，この仮想マシンが消去され業務処理を継続できなくなる(マイグレーションが不成功)。
【００２１】
そこで，第1の実施の形態において，第1，第4のデータセンターDC10，DC40との間に設けられたネットワーク装置(例えば，スイッチ装置210)は，マイグレーション対象となる仮想マシンの分割データを一時的に記録(キャッシュ)する。このように，ネットワーク装置が分割データを記録することで，移動元の仮想マシン実行装置130_1は，マイグレーション対象の仮想マシンに関連するデータを一時的にネットワーク装置210に記録(送信)することができる。
【００２２】
そして，前記ボトルネックが解消すると，ネットワーク装置210は，記録していた分割データを移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信する。そのため，この分割データを受信した移動先の仮想マシン実行装置430_1は，この分割データに基づき，この仮想マシンを構築し，迅速に再稼働させることができる。
【００２３】
前記したネットワーク装置とは，ネットワーク間の接続を行う通信装置であり，例えば，スイッチ装置であり，ルータ装置であり，ハブ装置である。以下の説明では，ネットワーク装置として，スイッチ装置を例示する。
【００２４】
第1のデータセンターDC10〜第4のデータセンターDC40の構成，および，各データセンターDC10，DC20，DC30，DC40について，図1により説明する。なお，以下の説明において，"h"，"i"，"j"，"k"は2以上の整数である。
【００２５】
図1に示すように，第1のデータセンターDC10は，スイッチ装置110と，第1の仮想マシン実行装置130_1〜第hの仮想マシン実行装置130_hと，サーバ装置150とを有する。
【００２６】
第1のデータセンターDC10のスイッチ装置110は，第2のデータセンターDC20のスイッチ装置210および第3のデータセンターDC30のスイッチ装置310とネットワーク接続する。第1のデータセンターDC10のスイッチ装置110は，ネットワークにおいてデータ中継をおこなうスイッチング機能を有するネットワーク装置である。このスイッチング機能とは，例えば，レイヤ2スイッチ（L(Layer)2スイッチ）機能や，レイヤ3スイッチ（L3スイッチ）機能である。
【００２７】
スイッチ装置110は，第1のデータセンターDC10内におけるデータ通信のスイッチングを行い，第2のデータセンターDC20，第3のデータセンターDC30間におけるデータ通信のスイッチングを行う。
【００２８】
第1のデータセンターDC10の第1の仮想マシン実行装置130_1〜第hの仮想マシン実行装置130_hは，仮想化されたハードウェア資源上で情報処理を実行する仮想マシンを実行する装置である。第1のデータセンターDC10のサーバ装置150は，例えば，第1の仮想マシン実行装置130_1〜第hの仮想マシン実行装置130_hの管理サーバ装置として機能する。
【００２９】
第1の仮想マシン実行装置130_1〜第hの仮想マシン実行装置130_h，サーバ装置150は，スイッチ装置110に接続し，データセンターDC10内のデータ通信や，他の第2のデータセンターDC20，DC30，DC40とデータ通信を実行する。なお，データセンターDC内のデータ通信とは，例えば，第1の仮想マシン実行装置130_1〜第hの仮想マシン実行装置130_hの仮想マシン間で，アプリケーションが行うデータ通信や，これら仮想マシン実行装置の監視観測用のデータ通信である。
【００３０】
第2のデータセンターDC20は，スイッチ装置210と，第1のサーバ装置250_1〜第iのサーバ装置250_iとを有する。
【００３１】
第2のデータセンターDC20のスイッチ装置210は，第1のデータセンターDC10のスイッチ装置110と同じスイッチング機能を有する。スイッチ装置210は，第2のデータセンターDC20内におけるデータ通信のスイッチングを行い，第1のデータセンターDC10，第4のデータセンターDC40間におけるデータ通信のスイッチングを行う。第1のサーバ装置250_1〜第iのサーバ装置250_iは，例えば，仮想マシン実行機能，仮想マシンの管理機能を有する。
【００３２】
第3のデータセンターDC30は，スイッチ装置310と，第1のサーバ装置350_1〜第jのサーバ装置350_jとを有する。
【００３３】
第3のデータセンターDC20のスイッチ装置310は，第1のデータセンターDC10のスイッチ装置110および第4のデータセンターDC40のスイッチ装置410とネットワーク接続する。
【００３４】
第3のデータセンターDC30のスイッチ装置310は，第1のデータセンターDC10のスイッチ装置110と同じスイッチング機能を有する。第1のサーバ装置350_1〜第jのサーバ装置350_jは，例えば，仮想マシン実行機能，仮想マシンの管理機能を有する。
【００３５】
第4のデータセンターDC40は，スイッチ装置410と，第1の仮想マシン実行装置430_1〜第kの仮想マシン実行装置430_kと，サーバ装置450とを有する。
【００３６】
第4のデータセンターDC40のスイッチ装置410は，第2のデータセンターDC20のスイッチ装置210および第3のデータセンターDC30のスイッチ装置310とネットワーク接続する。
【００３７】
第4のデータセンターDC40のスイッチ装置410は，第1のデータセンターDC10のスイッチ装置110と同じスイッチング機能を有する。
【００３８】
スイッチ装置410は，第4のデータセンターDC40内におけるデータ通信のスイッチングを行い，第2のデータセンターDC20，第3のデータセンターDC30間におけるデータ通信のスイッチングを行う。
【００３９】
第4のデータセンターDC40の第1の仮想マシン実行装置430_1〜第kの仮想マシン実行装置430_kは，仮想化されたハードウェア資源上で情報処理を実行する仮想マシンを実行する装置である。第4のデータセンターDC40のサーバ装置450は，例えば，第1の仮想マシン実行装置430_1〜第kの仮想マシン実行装置430_kの管理サーバ装置として機能する。
【００４０】
第1の仮想マシン実行装置430_1〜第kの仮想マシン実行装置430_k，サーバ装置450は，スイッチ装置410に接続し，データセンターDC40内のデータ通信や，他の第1のデータセンターDC10，第2のデータセンターDC20，第3のデータセンターDC30とデータ通信を実行する。
【００４１】
なお，以上説明したネットワーク接続としては，例えば，データセンター間を接続する専用ネットワーク回線でもよいし，他にも，インターネットなどの公衆ネットワーク回線でもよい。
【００４２】
(第1のデータセンターDC10の仮想マシン実行装置)
図2，図3に基づき，移動元の第1のデータセンターDC10の第1の仮想マシン実行装置130_1について説明する。第1のデータセンターDC10における，第1の仮想マシン実行装置130_1以外の仮想マシン実行装置も第1の仮想マシン実行装置130_1と同じ構成を有していてもよい。
【００４３】
図2は，図1の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のハードウェア構成を示すブロックである。
【００４４】
図3は，図1の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
【００４５】
図2において，仮想マシン実行装置130_1は，例えばバス(図示しない)を介して相互に接続された，CPU(Central  Processing  Unit)131と，メモリ132と，記録部133と，第1のネットワークインターフェイスカード(以下NIC(Network  Interface  Card)と記す)134と，第2のNIC135とを有する。これらのNIC134，135は，例えば，それぞれ，図1で説明したように，第1の仮想マシン実行装置130_1〜第hの仮想マシン実行装置130_hの仮想マシン間でアプリケーションが行うデータ通信や，これら仮想マシン実行装置の監視観測用のデータ通信を実行する。
【００４６】
CPU131は，仮想マシン実行装置130_1の全体を制御するコンピュータである。メモリ132は，各種制御情報や，CPU131が実行する各種情報処理において処理されるデータなどを記録する。記録部133は，各種記録装置，不揮発性メモリや，ハードディスクドライブ(HDD:Hard  Disk  Drive)などの磁気記録装置である。以下の説明では，記録部としてHDDを例示して説明する。
【００４７】
第1のNIC134，第2のNIC135は，ネットワーク通信を行うための専用基板であり，データ通信部として機能する。なお，NICは，1つだけ，または，3つ以上であってもよい。
【００４８】
記録部133における分割メモリデータ151_1〜151_m，分割VM(Virtual  Machine)データ152_1〜152_n，分割データテーブル153，HW(Hard
Ware)割当テーブル154は，仮想マシンのマイグレーション前には未だ記録されていない。これら，各データについては，後に詳述する。
【００４９】
図3において，第1の仮想マシン141_1〜第pの仮想マシン141_pは，仮想化されたハードウェアにより情報処理を実行する。このハードウェアとは，図2において，例えば，CPU131，メモリ132，記録部133，第1のNIC134，第2のNIC135である。
【００５０】
仮想化ソフトウェア142は，このハードウェアを仮想化し，仮想化したハードウェアを第1の仮想マシン141_1〜第pの仮想マシン141_pに割り当て，第1の仮想マシン141_1〜第pの仮想マシン141_pを動作させるための基盤ソフトウェアである。
【００５１】
全体管理部143は，仮想化ソフトウェア142，データ分割部144，キャッシュ処理依頼部145，送信部146の管理を行う。データ分割部144は，マイグレーション対象の仮想マシンに関連するデータを所定データ単位で分割する。以後，データ分割部144が分割したデータを分割データと適宜記す。
【００５２】
分割データ識別子付加部144aは，分割データを一意に識別する分割データ識別子をこの分割データに付加する。コンテキスト識別部144bは，この分割データが，コンテキストデータか，または，非コンテキストデータかを識別する。なお，コンテキストデータ，非コンテキストデータについては，後述の図8，図9で説明する。コンテキスト識別子付加部144cは，分割データがコンテキストデータか，または，非コンテキストデータかを一意に識別する識別子を分割データに付加する。
【００５３】
キャッシュ処理依頼部145は，図1の情報処理システム1における各データセンターDC10，DC20，DC30，DC40のスイッチ装置110，210，310，410に分割データの記録を実行するように依頼する。この分割データの記録をキャッシュと適宜記す。なお，キャッシュ処理依頼部145は，例えば，SNMPトラップ(Simple  Network  Management  Protocol  trap)を利用して，この依頼処理を実行してもよい。
【００５４】
送信部146は，第1のNIC134，第2のNIC135を利用して，送信用のデータをスイッチ装置110に送信する。スイッチ装置110は，送信部146から送信されたデータを受信し，送信用のデータのヘッダ部に記録されている宛先のIPアドレス(Internet
Protocol Address)を参照して，データの転送処理を実行する。
【００５５】
仮想化ソフトウェア142，データ分割部144，キャッシュ処理依頼部145，送信部146として機能するプログラムは，例えば，図2の記録部133に記録されている。そして，CPU131は，起動時に，これらのプログラムを記録部133から読み出して，メモリ132に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【００５６】
(スイッチ装置)
図4，図5に基づき，データセンターDCのスイッチ装置について説明する。
【００５７】
図4は，図１の第1の実施の形態におけるスイッチ装置のハードウェア構成を示すブロック図である。図5は，図1の第1の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
【００５８】
図4，図5においては，第2のデータセンターDC20のスイッチ装置210を例示して説明するが，他のスイッチ装置110，310，410も同じ構成を有していてもよい。
【００５９】
図4において，スイッチ装置210は，例えばバス(図示しない)を介して相互に接続された，CPU211と，メモリ212と，記録部213と，スイッチング部214と，第1のNIC215，第2のNIC216とを有する。なお，NICは，1つだけ，または，3つ以上であってもよい。
【００６０】
CPU211は，スイッチ装置210の全体を制御するコンピュータである。メモリ212は，CPU211が実行する各種情報処理において処理されるデータなどを記録する。記録部213は，図2で説明したように，例えば，不揮発性メモリ，磁気記録装置などの記録装置である。スイッチング部214は，ネットワークにおけるデータ中継処理，いわゆるスイッチング処理を実行する。第1のNIC215，第2のNIC216は，ネットワーク通信を行うための専用基板であり，データ通信部として機能する。
【００６１】
記録部213の分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_n，分割データテーブル153は，仮想マシンのマイグレーション前には未だ記録されていない。
【００６２】
図5において，全体管理部231は，トポロジ管理部232，送信可能判定部233，受信部234，送信部235の管理を行う。
【００６３】
トポロジ管理部232は，自スイッチ装置と自スイッチ装置に接続する他のスイッチ装置の接続関係(接続形態とも言う)，いわゆるネットワークトポロジ(Network  topology)を管理する。送信可能判定部233は，データ送信先のスイッチ装置にデータを送信できるか判定する。受信部234は，データ受信処理を実行する。受信部234の依頼監視部234は，キャッシュ依頼など各種依頼があるか否かを監視する。受信部234の分割データ受信制御部234bは，分割データの受信処理を制御する。送信部235は，データ送信処理を実行する。送信部235の分割データ送信制御部235bは，分割データの送信処理を制御する。
【００６４】
全体管理部231，トポロジ管理部232，送信可能判定部233，受信部234，送信部235として機能するプログラムは，例えば，図4の記録部213に記録されている。そして，CPU211は，起動時に，これらのプログラムを記録部213から読み出して，メモリ212に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【００６５】
(第4のデータセンターDC40の仮想マシン実行装置)
図6，図7に基づき，移動先の第4のデータセンターDC40の第1の仮想マシン実行装置430_1について説明する。第4のデータセンターDC40における，第1の仮想マシン実行装置430_1以外の仮想マシン実行装置も第1の仮想マシン実行装置430_1と同じ構成を有していてもよい。
【００６６】
図6は，図１の第1の実施の形態における移動先の第4のデータセンターDC40の仮想マシン実行装置のハードウェア構成を示すブロックである。
【００６７】
図7は，図1の第1の実施の形態における移動先の第4のデータセンターDC40の仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
【００６８】
図6において，仮想マシン実行装置430_1は，例えばバス(図示しない)を介して相互に接続された，CPU431と，メモリ432と，記録部433と，第1，第2のNIC434，435とを有する。
【００６９】
CPU431は，仮想マシン実行装置430_1の全体を制御するコンピュータである。メモリ432は，各種制御情報や，CPU431が実行する各種情報処理において処理されるデータなどを記録する。
【００７０】
記録部433は，図2で説明したように，例えば，不揮発性メモリ，磁気記録装置などの記録装置である。記録部433における分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_n，分割データテーブル153，HW割当テーブル154は，仮想マシンのマイグレーション前には未だ記録されていない。これら，各データについては，後に詳述する。
【００７１】
第1のNIC434，第2のNIC435は，ネットワーク通信を行うための専用基板であり，データ通信部として機能する。なお，NICは，1つだけ，または，3つ以上であってもよい。
【００７２】
図7において，第1の仮想マシン441_1〜第qの仮想マシン441_qは，仮想化されたハードウェアにより情報処理を実行する。このハードウェアとは，図6において，例えば，CPU431，メモリ432，記録部433，第1のNIC434，第2のNIC435である。
【００７３】
仮想化ソフトウェア442は，このハードウェアを仮想化し，仮想化したハードウェアを第1の仮想マシン441_1〜第qの仮想マシン441_qに割り当て，第1の仮想マシン441_1〜第qの仮想マシン441_qを動作させるための基盤ソフトウェアである。
【００７４】
全体管理部443は，仮想化ソフトウェア442，受信部444，分割データ統合部445の管理を行う。受信部444は，データの受信処理を実行する。受信部444の分割データ受信制御部444aは，分割データの受信処理を制御する。分割データ統合部445は，受信部444が受信する，マイグレーション対象の仮想マシンの分割データを統合する。分割データ配置部445aは，受信した分割データの識別子に基づき，分割データを再配置する。分割データ識別子管理部445bは，受信した分割データの識別子を管理し，受信していない分割データの有無を確認する。キャッシュ送信依頼部445cは，受信していない分割データを送信するように，例えば，情報処理システム内の全スイッチ装置に依頼する。
【００７５】
(マイグレーションの準備処理)
以下，本実施の形態におけるマイグレーション処理を説明する。この説明では，図3の仮想マシン実行装置130_1が，仮想マシン141_1を第4のデータセンターDC40の仮想マシン実行装置430_1(図7参照)にマイグレーションする場合を例示する。
【００７６】
マイグレーション処理にあたり，仮想マシン実行装置130_1は，分割データの作成処理を実行する。図8を用いて，図3により，分割データの作成処理について説明する。
【００７７】
図8は，図3で説明する，各種情報が付加された分割データを模式的に示す図である。
【００７８】
図3の仮想マシン141_1は，実際に各種情報処理を実行しているとする。例えば，仮想マシン141_1は，情報処理プログラムを実行し，情報処理プログラムにより得た演算結果などのデータを随時，メモリ132(図2参照)に記録している。
【００７９】
ここで，仮想マシン実行装置130_1から，仮想マシン実行装置130_1が実行する仮想マシンを第4のデータセンターDC40の仮想マシン実行装置430_1(図1参照)にマイグレーションするように，管理者が，操作部(図示しない)を介して，仮想マシン実行装置130_1に指示する。換言すれば，管理者は，操作部を介して，仮想マシン実行装置130_1に仮想マシンの移動指示を行う。
【００８０】
図3の全体管理部143は，操作部からのこの指示に応答して，データ分割部144にマイグレーション対象の仮想マシンに関連するデータを分割するように指示する。
【００８１】
ここで，マイグレーション対象の仮想マシンに関連するデータについて説明する。このデータには，2種類のデータがある。
【００８２】
第1の種類は，マイグレーション対象の仮想マシンが実行中の情報処理に関連する第1のデータである。換言すれば，第1のデータは，マイグレーション対象の仮想マシンに割り当てられているメモリ132(図2参照)の領域において実際に記録されているデータである。例えば，第1のデータは，マイグレーション対象の仮想マシンが前記した情報処理プログラムを実行している場合，前記メモリ領域に記録されている，この情報処理プログラムの変数やスタックである。以下，第1のデータをコンテキストデータと適宜記す。
【００８３】
第2の種類は，マイグレーション対象の仮想マシンが実行中の情報処理に関連しない第2のデータである。換言すれば，第2のデータは，マイグレーション対象の仮想マシンに割り当てられているメモリ132の領域において記録されているコンテキストデータ以外のデータである。他にも，第2のデータは，マイグレーション対象の仮想マシンに割り当てられている記録部133の領域に記録されているデータである。例えば，第2のデータは，マイグレーション対象の仮想マシンが実行するアプリケーション(ソフトウェアとも言う)や，アプリケーションやハードウェアの設定情報(コンフィグレーションデータとも言う)である。以下，第2のデータを非コンテキストデータと適宜記す。
【００８４】
データ分割部144は，全体管理部143からのデータの分割指示に応答して，マイグレーション対象の仮想マシンに関連するデータを所定データ単位で分割する。以下，所定データ単位とは，例えば，一定のデータサイズや，データ通信を行う場合に最適なデータサイズである。以下の説明では，所定データ単位を，例えば，10Mbyteとする。
【００８５】
データ分割部144の分割データ識別子付加部144aは，分割データを一意に識別する分割データ識別子をこの分割データに付加する。
【００８６】
そして，コンテキスト識別部144bは，この分割データが，コンテキストデータか，または，非コンテキストデータかを識別する。さらに，コンテキスト識別子付加部144cは，この分割データが，コンテキストデータか，または，非コンテキストデータかを示すコンテキスト識別子をこの分割データに付加する。具体的には，コンテキスト識別子付加部144cは，この分割データが，コンテキストデータの場合には，この分割データに"1"を付加する。コンテキスト識別子付加部144cは，この分割データが，非コンテキストデータの場合には，この分割データに"0"を付加する。
【００８７】
そして，データ分割部144は，さらに，この分割データに，移動元の仮想マシン140_1を識別する識別子，および，移動先の仮想マシン実行装置430_1を識別する識別子を付加する。移動元の仮想マシン140_1，移動先の仮想マシン実行装置430_1を識別する識別子は，例えば，移動元の仮想マシン140_1，移動先の仮想マシン実行装置430_1のIPアドレスである。
【００８８】
前記した識別子が付加された分割データが送信対象の分割データ(マイグレーション対象の分割データ)である。
【００８９】
なお，マイグレーション対象の仮想マシンに割り当てられているメモリ132(図2参照)の領域に記録されているデータを分割したデータを分割メモリデータと適宜記す。また，マイグレーション対象の仮想マシンに割り当てられている記録部133の領域に記録されているデータを分割したデータを分割VMデータと適宜記す。
【００９０】
図8において，符号1010は，分割メモリデータに前記した識別子を付加した状態を模式的に示す。データ分割部144は，符号1011で示す移動元の仮想マシン140_1のIPアドレス"0.1.2.3"と符号1012で示す移動先の仮想マシン実行装置430_1のIPアドレス"1.2.5.7"とを符号1015で示す分割メモリデータに付加する。分割データ識別子付加部144aは，符号1013で示す分割データ識別子"ID151_1"を符号1015で示す分割メモリデータに付加し，コンテキスト識別部144bは，符号1014で示すコンテキスト識別子"1"(コンテキストデータ)を符号1015で示す分割メモリデータに付加する。
【００９１】
符号1020は，分割VMデータに前記した識別子を付加した状態を模式的に示す。
【００９２】
データ分割部144は，符号1021で示す移動元の仮想マシン140_1のIPアドレス"0.1.2.3"と符号1022で示す移動先の仮想マシン実行装置430_1のIPアドレス"1.2.5.7"とを符号1025で示す分割VMデータに付加する。分割データ識別子付加部144aは，符号1023で示す分割VMデータ識別子"ID152_1"を符号1025で示す分割VMデータに付加し，コンテキスト識別部144bは，，符号1024で示すコンテキスト識別子"0"(非コンテキストデータ)を符号1025で示す分割VMデータに付加する。
【００９３】
データ分割部144は，前記したように，マイグレーション対象の仮想マシン141_1に関連するデータを所定データ単位で分割し，識別子を付加する。そして，データ分割部144は，図2に示すように，識別子を付加したデータとして，分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_nを記録部133に記録する。
【００９４】
図9は，図3で説明する，分割データに関する各種情報を記録するテーブルの一例である。
【００９５】
図3の全体管理部143は，データ分割部144に対するデータの分割指示と同時に，図9の分割データテーブル153を作成し，記録部133(図2参照)に記録する。図9の分割データテーブル153は，移動元のIPアドレス欄と，移動先のIPアドレス欄と，分割データ情報欄と，サイズ欄とを有する。分割データ情報欄は，識別子欄とコンテキスト識別子欄とを有する。分割データテーブル153は，分割データを識別する分割データ識別子を記録した識別子記録テーブルである。
【００９６】
データ分割部144は，分割データに付加した，移動元の仮想マシン140_1のIPアドレス"0.1.2.3"と移動先の仮想マシン実行装置430_1のIPアドレス"1.2.5.7"とを，それぞれ分割データテーブル153の移動元のIPアドレス欄と，移動先のIPアドレス欄に記録する。分割データ識別子付加部144aは，この分割データに付加した分割データ識別子を分割データテーブル153の識別子欄に記録する。さらに，コンテキスト識別子付加部144cは，この分割データに付加したコンテキスト識別子を分割データテーブル153のコンテキスト識別子欄に記録する。さらに，全体管理部143は，この分割データのデータサイズを，分割データテーブル153のデータサイズ欄に記録する。
【００９７】
以上説明した，分割データテーブル153の記録処理により，分割データテーブル153には，分割データ毎の，移動元IPのアドレス(0.1.2.3)，移動先のIPアドレス(1.2.5.7)，識別子(ID151_1〜ID151m，ID152_1〜ID152_n)，コンテキスト識別子(1または0)，データサイズ(10Mbyte)が記録される。
【００９８】
分割データテーブル153は，各データセンターDC20，DC30，DC40のスイッチ装置210，310，410(図1参照)が分割データの記録処理を実行する際に参照される。他にも，分割データテーブル153は，移動先の仮想マシン実行装置430_1が，マイグレーション対象の仮想マシン140_1の全分割データの中で，未だ受信していないデータを確認する際にも参照させる。
【００９９】
図3の全体管理部143は，さらに，仮想化ソフトウェア142がマイグレーション対象の仮想マシン141_1に割り当てているハードウェアの資源量を例えば，テーブル形式で記録部133(図2参照)に記録する。ここで，仮想マシン141_1に割り当てているハードウェアとは，図2の例では，CPU131，メモリ132，HDDである記録部133，第1のNIC134，第2のNIC135である。また，仮想マシン141_1に割り当てているハードウェアの資源量とは，これらハードウェア資源の性能(スペック)，すなわち，CPU131の使用可能クロック数，メモリ132の使用可能量，記録部133の使用可能量，第1のNIC134，第2のNIC135の使用可能帯域である。
【０１００】
図10は，図3で説明する，仮想マシンに割り当てられているハードウェア資源量を記録するテーブルの一例である。
【０１０１】
HWテーブル154は，割当クロック数欄と，割当メモリ量と，割当HDD量と，割当ネットワーク帯域欄とを有する。割当クロック数欄は，仮想マシンに割り当てられているCPUのクロック数を記録し，割当メモリ量は，仮想マシンに割り当てられているメモリの容量(メモリの領域)を記録する。割当HDD量欄は，仮想マシンに割り当てられているHDDの容量を記録し，割当ネットワーク帯域欄は，仮想マシンに割り当てられている通信ネットワークの帯域幅を記録する。
【０１０２】
図3の全体管理部143は，図10のHW割当テーブル154において，マイグレーション対象の仮想マシン141_1に割り当てられているCPUのクロック数を2.0GHzと記録し，メモリ量を2GBと記録し，HDD容量を100GBと記録し，ネットワーク帯域を１Gbpsと記録する。
【０１０３】
(移動先の第4のデータセンターDC40への送信処理)
図3で説明したように，マイグレーション対象の仮想マシンに関連するデータの分割処理の終了後，全体管理部143は，以下の処理を実行する。すなわち，全体管理部143は，分割データテーブル153とHW割当テーブル154を，移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信するように送信部146に指示する。
【０１０４】
送信部146は，この送信指示に応答して，分割データテーブル153とHW割当テーブル154を，図7の移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信する。このような分割データテーブル153，HW割当テーブル154は，データ量が少ないので，仮想マシン実行装置430_1に速やかに送信される。
【０１０５】
図7の仮想マシン実行装置430_1の受信部444は，分割データテーブル153とHW割当テーブル154を受信すると，これらを全体管理部443に出力する。全体管理部443は，この出力に応答して，記録部433(図6参照)に，分割データテーブル153とHW割当テーブル154を記録する。
【０１０６】
そして，全体管理部443は，HW割当テーブル154に基づき，仮想マシンを構築するように仮想化ソフトウェア442に指示する。仮想化ソフトウェア442は，この指示に応答して，HW割当テーブル154に記録されたハードウェア資源量を割り当てた仮想マシンを構築する処理を実行する。ここでは，仮想化ソフトウェア442は，例えば，仮想マシン441_qを構築する。
【０１０７】
次に，図1〜図3に基づき，キャッシュ依頼，および，分割データの送信について説明する。
【０１０８】
図3の全体管理部143は，例えば，前記した分割データの作成開始時点，作成途中，作成終了後に，キャッシュ処理依頼部145にキャッシュ依頼を行うように指示する。
【０１０９】
キャッシュ処理依頼部145は，このキャッシュ依頼指示に応答して，スイッチ装置110，210，310，410(図1参照)に，分割データのキャッシュ依頼を行うと共に，図9の分割データテーブル153を送信する。
【０１１０】
次いで，図3の全体管理部143は，分割データである分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_nを読み出し，送信部146に出力する。この際，全体管理部143は，コンテキスト識別子が"1"の分割データ，すなわちコンテキストデータである分割データを優先的に読み出し，送信部146に出力する。そして，全体管理部143は，移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信するように送信部146に指示する。
【０１１１】
送信部146は，全体管理部143が出力した分割データを，第1のNIC134，第2のNIC135を介して，スイッチ装置110に順次送信する。送信部146は，2つのNICを介して，分割データを送信することで，分割データの送信処理を迅速に実行する。
【０１１２】
以上説明したように，送信部146は，コンテキストデータである分割データを非コンテキストデータである分割データよりも優先して送信する。送信部146は，コンテキストデータである分割データを優先的に送信することで，マイグレーション先の仮想マシン実行装置430_1(図7参照)において，マイグレーションされた仮想マシンが迅速に情報処理を実行できる。
【０１１３】
なお，図3の仮想マシン実行装置130_1は，マイグレーション対象の仮想マシン140_1の全分割データの作成処理が終了した時点で，記録部133(図2参照)の分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_nを一括して送信した。これは，図2の仮想マシン実行装置130_1の全体管理部143は，分割データの作成と共に，図9の分割データテーブル131を作成しており，仮想マシン140_1の全分割データの作成処理が終了した時点でないと，図9の分割データテーブル131の作成が終了しないからである。
【０１１４】
(キャッシュ依頼，分割データテーブルの受信)
図1，図3〜図5に基づき，キャッシュ依頼，分割データテーブルの受信処理について説明する。
【０１１５】
図3において，仮想マシン実行装置130_1からのキャッシュ依頼，分割データテーブル153を受信したスイッチ装置110は，このキャッシュ依頼指示，分割データテーブル153を，図1の第2のデータセンターDC20のスイッチ装置210，第3のデータセンターDC30のスイッチ装置310，第4のデータセンターDC40のスイッチ装置410に送信する。各データセンターDC10，DC20，DC30，DC40のスイッチ装置110，210，310，410は，キャッシュ依頼，分割データテーブル153を受信すると，分割データテーブル153を自装置内の記録部に記録する。
【０１１６】
このキャッシュ依頼の受信と，分割データテーブル153の記録処理について，図5のスイッチ装置210を例示して説明する。
【０１１７】
スイッチ装置210の受信部234は，キャッシュ依頼，分割データテーブル153を受信する。このとき，依頼監視部234aは，キャッシュ依頼の受信を常時監視している。依頼監視部234aは，受信部234がキャッシュ依頼を受信すると，キャッシュ依頼を受信したことを全体管理部231に通知する。全体管理部231は，この通知に応答して，受信部234が受信した分割データテーブル153を記録部213(図4参照)に記録する。
【０１１８】
他のスイッチ装置110，310，410(図1参照)も同様に，以上説明したように，分割データテーブル153の記録処理を実行する。
【０１１９】
(分割データのキャッシュ処理)
図1，図3〜図5に基づき，分割データのキャッシュ処理について説明する。以下の説明において，図1におけるスイッチ装置110とスイッチ装置310間にデータ通信のボトルネックが発生しているとする。さらに，スイッチ装置210とスイッチ装置410との間にデータ通信のボトルネックが発生しているとする。このボトルネック発生の原因としては，例えば，何らかの原因で，スイッチ装置110とスイッチ装置310間のネットワーク帯域，スイッチ装置210とスイッチ装置410との間のネットワーク帯域が減少している場合である。他にも，スイッチ装置310とスイッチ装置410との間で多量のデータ通信処理が行われており，その結果，スイッチ装置310，スイッチ装置410の処理負荷が増大しているためである。
【０１２０】
この状況下，第1のデータセンターDC10のスイッチ装置110は，仮想マシン実行装置130_1から送信された分割データを第2のデータセンターDC20のスイッチ装置210に転送する。スイッチ装置110が，この分割データを第3のデータセンターDC30のスイッチ装置310に転送しないのは，前記したようにスイッチ装置110とスイッチ装置310との間でデータ通信のボトルネックが発生しているからである。
【０１２１】
図5のスイッチ装置210の送信可能判定部233は，スイッチ装置110(図1参照)から送信される分割データを送信先のスイッチ装置410(図1参照)に送信可能か判定する。
【０１２２】
この判定において，送信可能判定部233は，例えば，データ送信先のスイッチ装置に分割データの送信が可能か，換言すれば，データ送信先のスイッチ装置は分割データの受信が可能かを問い合わせる確認信号を送信する。データ送信先のスイッチ装置は，分割データの受信が可能な場合には，この確認信号に応答して肯定応答(ACK:ACKnowledgement)を返信する。一方，データ送信先のスイッチ装置は，分割データの受信が不可能な場合には，否定応答(NAK:Negative  ACKnowledgement)を返信する。
【０１２３】
データ送信先のスイッチ装置が分割データの受信が可能な場合とは，例えば，このスイッチ装置における情報処理量が所定の処理量以下の場合である。他にも，このスイッチ装置におけるネットワーク帯域幅の使用帯域幅が，所定帯域幅以下の場合である。この場合，送信先のスイッチ装置は，肯定応答を返信する。
【０１２４】
一方，データ送信先のスイッチ装置が分割データの受信が不可能な場合とは，例えば，このスイッチ装置における情報処理量が所定の処理量を超えている場合である。他にも，このスイッチ装置におけるネットワーク帯域幅の使用帯域幅が，所定帯域幅を超えている場合である。この場合，送信先のスイッチ装置は，否定応答を返信する。
【０１２５】
なお，他にも，送信可能判定部233は，データ送信先のスイッチ装置に接続するネットワークの使用帯域幅を検知し，ネットワークの使用帯域幅が所定の帯域以上か検知してもよい。送信可能判定部233は，ネットワーク帯域幅が所定の帯域以上の場合，データの送信先のスイッチ装置に分割データの送信が可能と判定する。一方，送信可能判定部233は，ネットワーク帯域幅が所定の帯域未満の場合，データ送信先のスイッチ装置に分割データの送信が不可能と判定する。
【０１２６】
全体管理部231は，送信可能判定部233が，データ送信先のスイッチ装置に分割データを送信することが不可能と判定すると，受信部234が受信した分割データを記録部213(図4参照)に記録するように，分割データ受信制御部234bに指示する。分割データ受信制御部234bは，この記録指示に応答して，この分割データを記録部213に記録する。このとき，分割データ受信制御部234bは，受信部234が受信した分割データの識別子を参照し，図9の分割データテーブル153に記録された分割データの識別子を有する分割データを記録部213に記録する。分割データ受信制御部234bは，この記録処理により，不要なデータの記録処理を実行せず，マイグレーション対象の仮想マシンに関連する分割データのみを記録する。
【０１２７】
分割データ受信制御部234bは，前記した記録処理により，受信した分割データとして，分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_nを記録部213(図4参照)に記録する。
【０１２８】
さらに，全体管理部231は，記録部213に記録(キャッシュ)した分割データに係るデータを例えば，テーブル形式で記録する。分割データに係るデータとは，図9の分割データテーブル153に記録されている各データである。具体的には，この分割データの移動元および移動先のIPアドレスと，この分割データの識別子と，この分割データのコンテキスト識別子と，この分割データのデータサイズである。前記の例の場合，全体管理部231は，図9の分割データテーブル193と同じテーブルを記録する。
【０１２９】
なお，送信可能判定部233が，データ送信先のスイッチ装置に分割データを送信可能と判定すると，全体管理部231は，受信部234が受信した分割データを送信部235に出力するように，分割データ受信制御部234bに指示する。分割データ受信制御部234bは，この出力指示に応答して，この分割データを送信部235に出力する。送信部235の分割データ送信制御部235bは，入力される分割データを送信先のスイッチ装置に順次送信する。
【０１３０】
(キャッシュした分割データの送信処理)
図4，図5に基づき，キャッシュした分割データの送信処理について説明する。
【０１３１】
図5のスイッチ装置210の全体管理部231は，図4の記録部213に分割データが記録されているか判定する。
【０１３２】
図5の送信可能判定部233は，図4の記録部213に分割データが記録されている場合，データ送信先のスイッチ装置にデータを送信可能な否かを所定の間隔毎に問い合わせる。この所定の間隔とは，例えば，1分，10分など任意に変更可能である。他にも，図7のキャッシュ送信依頼部445cが，キャッシュした分割データの送信依頼を行い，図5の依頼監視部234aが，この送信依頼を受信した場合に，送信可能判定部233は，前記した問い合わせを実行してもよい。
【０１３３】
このとき，図1において，第2のデータセンターDC20のスイッチ装置210と第4のデータセンターDC40のスイッチ装置410との間のネットワークのボトルネックが解消されているとする。そのため，図5の送信可能判定部233は，データ送信先のスイッチ装置に分割データを送信可能と判定する。
【０１３４】
図5の送信可能判定部233は，データ送信先のスイッチ装置にデータを送信可能と判定した場合，その旨を全体管理部231に通知する。全体管理部231は，この通知に応答して，図4の記録部213の分割データを送信するように送信部235に指示する。送信部235の分割データ送信制御部235aは，この送信指示に応答して，コンテキスト識別子が"1"であり，分割データ識別子が小さい分割データからデータ送信のスイッチ装置に順次送信する。ここでも，分割データ送信制御部235aは，記録部213の分割データの中で，コンテキストデータである分割データを，非コンテキストデータである分割データよりも優先して送信する。
【０１３５】
分割データ送信制御部235aは，コンテキスト識別子が"1"の分割データの送信処理が終了すると，コンテキスト識別子が"0"であり，分割データ識別子が小さい分割データから順に，データ送信先のスイッチ装置に順次送信する。なお，分割データの送信処理の過程において，全体管理部231は，送信された分割データの識別子を，記録部213(図4参照)に記録する。そして，全体管理部231は，送信された分割データの識別子を有する，記録部213の分割データが全て送信されると，記録部213の分割データテーブル153を消去する。
【０１３６】
図4の記録部213の例では，分割データ送信制御部235aは，分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_nの順に分割データを第4のデータセンターDC40のスイッチ装置410に送信する。
【０１３７】
以上の分割データの送信処理により，第4のデータセンターDC40のスイッチ装置410は，分割データを順次受信する。
【０１３８】
(移動先のデータセンターでの処理)
図1，図6，図7に基づき，移動先の第4のデータセンターDC40で実行される処理について説明する。
【０１３９】
図1において，第4のデータセンターDC40のスイッチ装置410は，第2のデータセンターDC20のスイッチ装置210から送信される分割データを受信し，仮想マシン実行装置430_1に転送する。
【０１４０】
図7の受信部444の分割データ受信制御部444aは，受信部444が受信した分割データを，図6の記録部433に記録する。分割データ受信制御部444aは，前記した記録処理により，受信した分割データとして，分割メモリデータ151_1〜151_m，分割VMデータ152_1〜152_nを記録部433に記録する。
【０１４１】
そして，分割データ識別子管理部445bは，記録部433に記録した分割データの識別子と，記録部433の分割データテーブルの識別子欄とを参照し，まだ，記録部433に記録していない分割データ，すなわち，受信していない分割データがあるか確認する。キャッシュ送信依頼部445cは，受信していない分割データがある場合，この分割データの識別子を指定して，この分割データを送信するように，情報処理システム1のスイッチ装置110，210，310，410(図1参照)に依頼する。この依頼を以下，キャッシュ送信依頼と適宜記す。
【０１４２】
前記の例の場合，図5のスイッチ装置210が分割データのキャッシュ処理を実行した。そのため，スイッチ装置210の依頼監視部234aは，このキャッシュ送信依頼を受信すると，送信可能判定部233は，データ送信先のスイッチ装置にデータを送信可能な否かを所定の間隔毎に問い合せる。そして，送信可能判定部233が，送信可能と判定した場合，送信部235の送信制御部235aは，キャッシュした分割データの送信処理を実行する。
【０１４３】
さて，全体管理部443は，この分割データの受信，記録処理の過程で，記録部433(図6参照)の分割データを統合するように，分割データ統合部445に指示する。分割データ統合部445の分割データ配置部445aは，受信した分割データの識別子に基づき，分割データを記録部433において再配置する。
【０１４４】
そして，分割データ配置部445aは，記録部433(図6参照)における分割メモリデータ151_1〜151_mの中で，コンテキスト識別子”1”，すなわちコンテキストデータを優先的に，仮想マシン441_qに割り当てられたメモリ432(図6参照)の領域に展開する。
【０１４５】
次いで，分割データ配置部445aは，記録部433における分割メモリデータ151_1〜151_mの中で，コンテキスト識別子”0”，すなわち，非コンテキストデータを仮想マシン441_qに割り当てられたメモリ432に展開する。
【０１４６】
次いで，全体管理部443は，このメモリ432に展開された分割メモリデータ，さらに，記録部433の分割VMデータに基づき，仮想マシン441_qを実行するように，仮想化ソフトウェア441_qに指示する。
【０１４７】
その結果，移動元の仮想マシン実行装置130_1で実行していた仮想マシン140_1と同じ仮想マシン(図7の仮想マシン441_q)は，この仮想マシン140_1がマイグレーション前に実行していた情報処理の内容を継続しながら，移動先の仮想マシン実行装置430_1で動作する。これは，移動元の仮想マシン実行装置130_1で実行していた仮想マシン140_1のコンテキストデータを移動先の仮想マシン実行装置430_1のメモリ432に展開しているからである。
【０１４８】
また，前記したように，移動先の仮想マシン実行装置430_1の分割データ配置部445aは，コンテキストデータを優先的に，仮想マシン441_qに割り当てられたメモリ432(図6参照)の領域に展開していた。この展開処理を実行するため，分割データ配置部445aは，記録部433(図6参照)からコンテキストデータを読み出さなければならないので時間が掛かる。
【０１４９】
しかし，前記したようにコンテキストデータが優先的に送信されるので，分割データ受信制御部444aは，優先的にコンテキストデータを受信し，記録部433(図6参照)に記録することができる。そのため，分割データ受信制御部444aが，非コンテキストデータ，例えば分割VMデータ152_1〜152_nを受信し，記録部433に記録している間に，分割データ配置部445aは，既に記録部433に記録されているコンテキストデータを読み出し，メモリ432の領域(仮想マシン441_qに割り当てられている領域)に展開することができる。換言すれば，分割データ配置部445aは，記録部433のコンテキストデータ，例えば分割メモリデータ151_1をメモリ432に事前読み込みすることができる。その結果，移動元の仮想マシン実行装置130_1で実行していた仮想マシン140_1と同じ仮想マシン441_qを迅速に動作させることができる。
【０１５０】
なお，仮想マシン441_qが動作したタイミングで，移動先の仮想マシン実行装置430_1の全体管理部431は，全スイッチ装置110，210，310，410(図1参照)にキャッシュクリア依頼を行っても良い。このキャッシュクリア依頼を受けたスイッチ装置110，210，310，410は，キャッシュしていた分割データや，分割データテーブルを記録部から消去(クリア)する。
【０１５１】
(移動元の仮想マシン実行装置130_1で実行するマイグレーション処理の流れ)
図11は，図3の移動元の仮想マシン実行装置130_1が実行するマイグレーション処理の流れの一例を説明するフロー図である。なお，図3で説明したように，仮想マシン実行装置130_1は，仮想マシン141_1をマイグレーション対象の仮想マシンとする。
【０１５２】
ステップS1:図3のデータ分割部144は，仮想マシン141_1の分割データを作成し，図２の記録部133に記録する。具体的には，データ分割部144は，マイグレーション対象の仮想マシン141_1に関連するデータを所定データ単位で分割する。そして，データ分割部144は，移動元の仮想マシン140_1のIPアドレス，移動先の仮想マシン実行装置430_1のIPアドレスを分割データに付加する。さらに，分割データ識別子付加部144aは，この分割データに分割データ識別子を付加し，コンテキスト識別部144bは，この分割データにコンテキスト識別子を付加する。
【０１５３】
ステップS2: 図3の全体管理部143は，図9の分割データテーブル153を作成し，記録部133(図2参照)に記録する。さらに，図3の全体管理部143は，図10のHW割当テーブルを作成し，記録部133(図2参照)に記録する。
【０１５４】
ステップS3: 図3の送信部146は，分割データテーブル153とHW割当テーブル154を，図7の移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信する。
【０１５５】
ステップS4:図3のキャッシュ処理依頼部145は，スイッチ装置110，210，310，410(図1参照)に，分割データのキャッシュ依頼を行うと共に，図9の分割データテーブル153を送信する。なお，スイッチ装置110，210，310，410は，図3，図5で説明したように，分割データテーブル153を自装置内の記録部に記録する。
【０１５６】
ステップS5: 図3の送信部146は，分割データを，第1のNIC134，第2のNIC135(図2参照)を介して，スイッチ装置110に順次送信する。
【０１５７】
(分割データのキャッシュ処理，送信処理の流れ)
図12は，図5のスイッチ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。この処理フローは，例えば，図5の受信部234が，分割データを受信する度に実行される。
【０１５８】
ステップS11: 図5のスイッチ装置210の送信可能判定部233は，スイッチ装置110(図1参照)から送信される分割データを送信先のスイッチ装置410(図1参照)に送信可能か判定する。
【０１５９】
送信可能判定部233が送信不可能と判定すると(ステップS11/NO)，ステップS12に移る。
【０１６０】
ステップS12: 図5の分割データ受信制御部234bは，受信部234が受信した分割データを記録部213(図4参照)にキャッシュする。なお，このとき，全体管理部231は，記録部213に記録(キャッシュ)した分割データに係るデータを例えば，テーブル形式で記録する。
【０１６１】
送信可能判定部233が送信可能と判定すると(ステップS11/YES)，ステップS13に移る。
【０１６２】
ステップS13: 送信部235の分割データ送信制御部235bは，受信部234が受信した分割データを送信先のスイッチ装置に順次送信する。
【０１６３】
(キャッシュした分割データの送信処理の流れ)
図13は，図5のスイッチ装置が実行するキャッシュした分割データの送信処理の流れの一例を説明するフロー図である。
【０１６４】
ステップS21: 図5の全体管理部231は，図4の記録部213に分割データが記録(キャッシュ)されているか判定する。図4の記録部213に分割データが記録されている場合(ステップS21/YES)，ステップS22に移る。
【０１６５】
ステップS22: 図5の送信可能判定部233は，データ送信先のスイッチ装置にデータを送信可能か判定する。送信可能判定部233が送信可能と判定すると(ステップS22/YES)，ステップS23に移る。
【０１６６】
ステップS23: 図5の送信部235の分割データ送信制御部235bは，記録部213の分割データを送信先のスイッチ装置に順次送信する。
【０１６７】
図4の記録部213に分割データが記録されていない場合(ステップS21/NO)，処理を終了する。送信可能判定部233が送信不可能と判定すると(ステップS22/NO)，ステップS22に戻る。
【０１６８】
ステップS23の処理により，図6，図7で説明したように，第4のデータセンターDC40のスイッチ装置410は，第2のデータセンターDC20のスイッチ装置210から送信される分割データを受信し，仮想マシン実行装置430_1に転送する。そして，仮想マシン実行装置430_1は，転送された分割データに基づき，マイグレーション対象の仮想マシンを新たに実行する。
【０１６９】
以上説明したように，第1の仮想マシン実行装置130_1は，第1の仮想マシン141_1の移動指示に応答して，第1の仮想マシン141_1に関連するデータを分割し，分割データを第1のネットワーク装置，例えば第1のスイッチ装置210を介して第2の仮想マシン実行装置430_1に送信する。
【０１７０】
第1のスイッチ装置210は，第1の仮想マシン実行装置130_1から送信される分割データを第2の仮想マシン実行装置430_1側に設けられた第2のネットワーク装置，例えば第2のスイッチ装置410に送信可能か判定し，送信不可能な場合，分割データを記録部213に記録する。第1のスイッチ装置210は，分割データの記録後，分割データを第2のスイッチ装置410に送信可能と判定した場合，記録部213の分割データを第2のスイッチ装置410に送信する。そして，第2の仮想マシン実行装置430_1は，第1の仮想マシン実行装置130_1から送信された分割データに基づき，第1の仮想マシンを構築する。
【０１７１】
第1の実施の形態によれば，移動元の仮想マシン実行装置と，移動先の仮想マシン実行装置との間に設けられたスイッチ間のネットワークにおいてボトルネックが発生している場合，ボトルネックが発生している直前のスイッチ装置が，マイグレーション対象となる仮想マシンの分割データを一時的に記録(キャッシュ)する。そのため，移動元の仮想マシン実行装置は，迅速に分割データを自装置以外のスイッチ装置に送信することができる。
【０１７２】
このように，スイッチ装置が分割データの記録処理を行わない場合，ボトルネックが発生しているネットワークにおいて，分割データの送信量が著しく低下するので，移動元の仮想マシン実行装置は，迅速に分割データを他のスイッチ装置に送信することができなくなる。しかし，第1の実施の形態によれば，前記したように，スイッチ装置が分割データの記録処理を実行する。すなわち，スイッチ装置が，一時的に分割データの受け皿となる。そのため，移動元の仮想マシン実行装置は，迅速に分割データを他のスイッチ装置に送信することができる。
【０１７３】
また，ボトルネックが発生しているネットワークの直前に設けられたスイッチ装置が，分割データの記録処理を行う。つまり，移動先の仮想マシン実行装置に最も近距離に設けられたスイッチ装置が，分割データの記録処理を実行する。そのため，ボトルネックが解消した場合に，このスイッチ装置が，記録した分割データを移動先の仮想マシン実行装置に送信すると，移動先の仮想マシン実行装置に分割データが迅速に到達する。その結果，仮想マシンのマイグレーションを高速に実行することができる。
【０１７４】
[第2の実施の形態]
第1の実施の形態では，図4，図5で説明したように，第2のデータセンターDC20のスイッチ装置210が，分割データを自装置内の記録部213に記録した。しかし，スイッチ装置210が，記録部213に他のデータを記録している場合や，分割データのデータサイズが大きい場合には，記録部213の空き容量不足により，送信される全分割データを記録部213に記録できないことがある。
【０１７５】
このような場合，スイッチ装置210に接続しているサーバ装置250_1などを分割データの記録部として利用する。
【０１７６】
(データセンターDC20の構成)
図14，図15に基づき，第2の実施の形態におけるスイッチ装置について説明する。
【０１７７】
図14は，第2の実施の形態におけるスイッチ装置のハードウェア構成を示すブロック図である。図14は，図4と対応するブロック図であり，記録部213の記録内容が異なり，分割メモリデータ151_1〜151_m，分割VMデータ152_1，分割データテーブル153，キャッシュ管理テーブル155，キャッシュ依頼管理テーブル156が記録されている状態を示している。なお，分割メモリデータ151_1〜151_m，分割VMデータ152_1，分割データテーブル153，キャッシュ管理テーブル155，キャッシュ依頼管理テーブル156は，仮想マシンのマイグレーション前には未だ記録されていない。
【０１７８】
図15は，第2の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。スイッチ装置210は，図5で説明した各ブロックに加えて，スイッチ装置210に接続するサーバ装置250_1に分割データの記録処理(キャッシュ)を依頼するキャッシュ依頼部(サーバ装置用)236と，サーバ装置250_1が記録した分割データを自装置210に送信するように依頼するキャッシュ送信依頼部(サーバ装置用)237とを有する。図15の全体管理部231は，自装置に接続するサーバ装置を識別する情報，例えば，このサーバ装置のIPアドレスを記録している。
【０１７９】
図16，図17に基づき，第2の実施の形態におけるサーバ装置について説明する。
【０１８０】
図16は，図14，図15のスイッチ装置210に接続するサーバ装置のハードウェア構成を示すブロック図である。
【０１８１】
図17は，図14，図15のスイッチ装置210に接続するサーバ装置のソフトウェアモジュールを示すブロック図である。
【０１８２】
なお，図16，図17おいては，第2のデータセンターDC20のサーバ装置250_1を例示して説明するが，図1における，他のサーバ装置250_i，サーバ装置350_1〜サーバ装置350_jも同じ構成を有していてもよい。
【０１８３】
図16において，サーバ装置250_1は，例えばバス(図示しない)を介して相互に接続された，CPU251と，メモリ252と，記録部253と，第1のNIC254，第2のNIC255とを有する。
【０１８４】
CPU251は，サーバ装置250_1の全体を制御するコンピュータである。メモリ252は，CPU251が実行する各種情報処理において処理されるデータなどを記録する。記録部253は，図2で説明したように，例えば，不揮発性メモリ，磁気記録装置などの記録装置である。第1のNIC254，第2のNIC255は，ネットワーク通信を行うための専用基板であり，データ通信部として機能する。なお，NICは，1つだけ，または，3つ以上であってもよい。
【０１８５】
図17において，全体管理部261は，受信部262，送信部263の管理を行う。受信部262は，データ受信処理を実行する。受信部262の依頼監視部262aは，キャッシュ依頼，キャッシュした分割データの送信処理など各種依頼があるか否かを監視する。受信部262の分割データ受信制御部262bは，分割データの受信処理を制御する。送信部263は，データ送信処理を実行する。送信部263の分割データ送信制御部263aは，分割データの送信処理を制御する。
【０１８６】
全体管理部261，受信部262，送信部263としてとして機能するプログラムは，例えば，図16の記録部253に記録されている。そして，CPU251は，起動時に，これらのプログラムを記録部253から読み出して，メモリ252に展開することにより，これらのプログラムをソフトウェアモジュールとして機能させる。
【０１８７】
(データセンターDC20のサーバ装置250_1に対するキャッシュ依頼)
図14，図15，図18，図19に基づき，サーバ装置250_1に対するキャッシュ依頼について説明する。
【０１８８】
図18は，図15のスイッチ装置210が自装置にキャッシュした分割データに係るデータを記録するテーブルの一例である。
【０１８９】
図19は，図17のサーバ装置250_1に対するキャッシュ依頼対象の分割データの識別子などを記録するテーブルの一例である。
【０１９０】
ここでは，第1の実施の形態で説明したように，図15のスイッチ装置210は，受信した分割データを図14の記録部213に記録している。例えば，図14の例では，図15のスイッチ装置210は，記録部213に分割メモリデータ151_1などを順次記録している。
【０１９１】
このとき，全体管理部231は，記録部213に記録した分割データに関する情報を図18のキャッシュ管理テーブル155に記録する。
【０１９２】
キャッシュ管理テーブル155は，図9の分割データテーブル153に対応するテーブルである。図15の全体管理部231は，図14の記録部213に記録した分割データである分割メモリデータ151_1〜151_m，分割VMデータ152_1に関する情報である，移動元のIPアドレス(0.1.2.3)，移動先のIPアドレス(1.2.5.7)，分割データの識別子(ID151_1〜ID152_1)，コンテキスト識別子(0または1)，データサイズ(10Mbyte)を，キャッシュ管理テーブル155に記録している。
【０１９３】
また，図15の全体管理部231は，図14の記録部213の空き容量を監視し，分割データを記録できるか判定する。
【０１９４】
図14の例では，記録部213が，分割メモリデータ151_1〜151_m，分割VMデータ152_1を記録すると，記録部213の空き容量が不足して，これ以上分割データを記録できなくなるとする。
【０１９５】
全体管理部231は，記録部213の空き容量不足のため，分割データを記録できないと判定した場合，キャッシュ依頼部236に，キャッシュ依頼を行うように指示する。
【０１９６】
キャッシュ依頼部236は，全体管理部231からのキャッシュ依頼に応答して，サーバ装置250_1に分割データのキャッシュ処理を実行するように依頼する。
【０１９７】
さらに，全体管理部231は，以後，分割データ受信部234が受信する分割データをサーバ装置250_1に送信するように送信部235に指示する。送信部235の分割データ送信制御部235は，この指示に応答して，分割データ受信部234が受信する分割データをサーバ装置250_1に送信する。前記の例では，分割データ送信制御部235は，分割VMデータ152_2〜152_nをサーバ装置250_1に送信する。
【０１９８】
全体管理部231は，同時に，キャッシュ依頼先の装置に送信する分割データの識別子と，キャッシュ依頼先の装置を一意に識別する識別子(例えば，IPアドレス)を，図19のキャッシュ依頼管理テーブル156に記録する。前記の例では，キャッシュ依頼先の装置は，サーバ装置250_1である。
【０１９９】
キャッシュ依頼管理テーブル156は，分割データの識別子欄と，キャッシュ依頼先の装置のIPアドレス欄とを有する。
【０２００】
全体管理部231は，サーバ装置250_1に送信する分割データの識別子ID152_2〜ID152_n，キャッシュ依頼先のサーバ装置250_1のIPアドレス10.11.12.13をキャッシュ依頼管理テーブル156に記録する。
【０２０１】
（データセンターDC20のサーバ装置250_1におけるキャッシュ処理）
図16，図17に基づき，サーバ装置250_1が実行する分割データのキャッシュ処理について説明する。
【０２０２】
図17の受信部262は，スイッチ装置210からの分割データのキャッシュ依頼を受信する。このとき，依頼監視部262aは，キャッシュ依頼の受信を常時監視している。依頼監視部262aは，受信部262がキャッシュ依頼を受信すると，キャッシュ依頼を受信したことを全体管理部261に通知する。全体管理部261は，この通知に応答して，分割データ受信制御部262bに，受信部262が受信したスイッチ装置210からの分割データを，記録部253(図16参照)に記録するように指示する。
【０２０３】
分割データ受信制御部262bは，この記録指示に応答して，受信部262が受信した分割データを記録部253(図16参照)に記録する。前記の例の場合，受信部262は，分割VMデータ152_2〜152_nを受信する。分割データ受信制御部262bは，分割VMデータ152_2〜152_nを記録部253に記録する。
【０２０４】
(データセンターDC20のスイッチ装置210におけるキャッシュした分割データの送信処理)
図14〜17に基づき，スイッチ装置210が実行する，キャッシュした分割データの送信処理について説明する。第1の実施の形態で説明したように，図15の送信可能判定部233が，データ送信先のスイッチ装置にデータを送信可能と判定すると，全体管理部231は，この通知に応答して，図14の記録部213の分割データを送信するように送信部235に指示する。送信部235の送信制御部235aは，この送信指示に応答して，記録部213の分割データをデータ送信先のスイッチ装置に順次送信する。図14の例では，分割データ送信制御部235aは，記録部213の分割メモリデータ151_1〜151_m，分割VMデータ152_1を第4のデータセンターDC40のスイッチ装置410に送信する。
【０２０５】
全体管理部231は，サーバ装置250_1に分割データを記録したか判定する。全体管理部231は，例えば，記録部213にキャッシュ依頼管理テーブル156を記録している場合には，サーバ装置250_1に分割データを記録したと判定する。
【０２０６】
全体管理部231は，サーバ装置250_1に分割データを記録したと判定した場合，全体管理部231は，キャッシュ送信依頼部237に，キャッシュ送信依頼を実行するように指示する。キャッシュ送信依頼部237は，このキャッシュ送信依頼指示に応答して，サーバ装置250_1に分割データの送信を実行するように依頼する。
【０２０７】
図17のサーバ装置250_1の受信部262は，スイッチ装置210からの分割データのキャッシュ送信依頼を受信する。依頼監視部262aは，受信部262がキャッシュ送信依頼を受信すると，キャッシュ送信依頼を受信したことを全体管理部261に通知する。
【０２０８】
全体管理部261は，この通知に応答して，送信部263の分割データ送信制御部263aに，図16の記録部253の分割データをスイッチ装置210に送信するように指示する。分割データ送信制御部263aは，この送信指示に応答して，記録部253の分割データをスイッチ装置210に送信する。なお，分割データ送信制御部263aは，コンテキスト識別子が"1"の分割データ(コンテキストデータ)を優先的に送信する。
【０２０９】
図16の例では，分割データ送信制御部263aは，分割VMデータ151_2〜151_mを図15のスイッチ装置210に送信する。
【０２１０】
図15のスイッチ装置210の分割データ受信制御部234bは，受信部234が受信したサーバ装置250_1からの分割データを，送信部235に出力する。送信部235の分割データ送信制御部235は，入力された分割データを第4のデータセンターDC40のスイッチ装置410に送信する。
【０２１１】
なお，分割データ受信制御部234bは，受信した分割データの識別子と，図19のキャッシュ依頼管理テーブル156の分割データの識別子欄に記録された識別子とを比較して，一致していている場合に，受信した分割データがサーバ装置250_1からの分割データと判定している。
【０２１２】
上記で説明した処理により，スイッチ装置は，スイッチ装置に接続するサーバ装置を記録部として利用することができる。
【０２１３】
(分割データのキャッシュ処理の流れ)
図20は，図15のスイッチ装置，図17のサーバ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。図20のステップS31は図12のステップS11と同じ処理，ステップS33は図12のステップS12と同じ処理，ステップS35は図12のステップS13と同じ処理なので，その説明を適宜省略する。
【０２１４】
図15の送信可能判定部233が分割データを送信不可能と判定した場合(ステップS31/YES)，ステップS32に移る。
【０２１５】
ステップS32:図15の全体管理部231は，受信した分割データを自装置(図14の記録部213)に記録できるか判定する。記録できる場合には(ステップS32/YES)，ステップS33に移る。
【０２１６】
ステップS33: 図15の分割データ受信制御部234bは，受信部234が受信した分割データを記録部213(図14参照)に記録する。なお，このとき，全体管理部231は，記録部213に記録(キャッシュ)した分割データに関する情報を図18のキャッシュ管理テーブル155に記録する。
【０２１７】
受信した分割データを自装置に記録できない場合には(ステップS32/NO)，ステップS34に移る。
【０２１８】
ステップS34:図15の分割データ送信制御部235は，分割データ受信部234が受信する分割データを図17のサーバ装置250_1に送信して，サーバ装置250_1に分割データを記録する。図17のサーバ装置250_1の分割データ受信部262bは，受信した分割データを図16の記録部253に記録する。なお，図15の全体管理部231は，サーバ装置250_1に送信する分割データの識別子と，キャッシュ依頼先の装置を一意に識別する識別子を，図19のキャッシュ依頼管理テーブル156に記録する。
【０２１９】
図15の送信可能判定部233が送信可能と判定すると(ステップS31/YES)，送信部235は，分割データの送信処理を実行する(ステップS35)。
【０２２０】
(キャッシュした分割データの送信処理の流れ)
図21は，図15のスイッチ装置，図17のサーバ装置がキャッシュした分割データを，スイッチ装置が送信する処理の流れの一例を説明するフロー図である。図21のステップS41〜ステップS43は，図13のフロー図のステップS21〜ステップS23と同じ処理なので，適宜説明を省略する。
【０２２１】
ステップS41: 図15の全体管理部231は，分割データが自装置(図14の記録部213)に記録(キャッシュ)されているか判定する。図4の記録部213に分割データが記録されている場合(ステップS41/YES)，ステップS42，S43の処理に移る。
【０２２２】
図4の記録部213に分割データが記録されていない場合(ステップS41/NO)，ステップS44に移る。
【０２２３】
ステップS44: 全体管理部231は，サーバ装置250_1に分割データを記録したか判定する。サーバ装置250_1に分割データを記録した場合(ステップS44/YES)，ステップS45に移る。
【０２２４】
ステップS45: 図15の送信可能判定部233は，データ送信先のスイッチ装置にデータを送信可能か判定する。送信可能判定部233が送信可能と判定すると(ステップS45/YES)，ステップS46に移る。
【０２２５】
ステップS46：図15のキャッシュ送信依頼部237は，図17のサーバ装置250_1に分割データの送信を実行するように依頼する。図17のサーバ装置250_1の送信制御部263は，自装置(図16の記録部253)の分割データを図15のスイッチ装置210に送信する。
【０２２６】
ステップS47:スイッチ装置210の分割データ送信制御部235は，受信部234が受信したサーバ装置250_1からの分割データを送信先のスイッチ装置に順次送信する。なお，ステップS43，ステップS47が終了すると，ステップS41に戻る。
【０２２７】
上記の説明では，スイッチ装置210は，サーバ装置250_1に対してキャッシュ依頼を実行したが，同一データセンターDC20内におけるサーバ装置250_1以外の他のサーバ装置にもキャッシュ依頼を実行してもよい。このようにすることで，より多くの分割データのキャッシュが可能になる。
【０２２８】
第2の実施の形態によれば，スイッチ装置が分割データをキャッシュできない場合でも，スイッチ装置に接続するサーバ装置を利用して，分割データのキャッシュ処理を実行することができる。そのため，スイッチ装置は，このサーバ装置を利用してより多くの分割データをキャッシュすることができる。
【０２２９】
[第3の実施の形態]
第2の実施の形態では，スイッチ装置は，自装置の記録部に分割データを記録できない場合には，自装置に接続するサーバ装置に分割データの記録処理を依頼した。しかし，自装置に接続するサーバ装置の記録部の空き容量が不足している場合には，このサーバ装置は，分割データの記録処理を実行することができない。他にも，スイッチ装置に接続するサーバ装置が起動していない場合も，同様に，このサーバ装置は，分割データの記録処理を実行することができない。
【０２３０】
このような場合，他のスイッチ装置が，分割データの記録処理を実行する。
【０２３１】
第3の実施の形態では，他のスイッチ装置，この他のスイッチ装置に接続するサーバ装置が，分割データをキャッシュする場合を説明する。
【０２３２】
(情報処理システム)
図22は，第3の実施の形態における情報処理システム3の概略構成図である。情報処理システム3は，図1の情報処理システム1で説明した第1のデータセンターDC10〜第4のデータセンターDC40に加えて，更に，第5のデータセンターDC50を有する。なお，図22において，第1のデータセンターDC10，第3のデータセンターDC30，第4のデータセンターDC40の内部構成については，図面の構成上省略している。
【０２３３】
第5のデータセンターDC50は，スイッチ装置510と，第1のサーバ装置550_1〜第rのサーバ装置550_rとを有する。第1のデータセンターDC10のスイッチ装置110は，第5のデータセンターDC50のスイッチ装置510および第3のデータセンターDC30のスイッチ装置310とネットワーク接続する。第5のデータセンターDC50のスイッチ装置510は，第1のデータセンターDC10のスイッチ装置110と，第2のデータセンターDC20のスイッチ装置210とネットワーク接続する。
【０２３４】
第5のデータセンターDC50のスイッチ装置510は，さらに，第5のデータセンターDC50内の第1のサーバ装置550_1〜第rのサーバ装置550_rとネットワーク接続する。
【０２３５】
(第2のデータセンターDC20のスイッチ装置210)
図23は，図22の第3の実施の形態におけるスイッチ装置210のソフトウェアモジュールを示すブロック図である。スイッチ装置210は，図15で説明した各ブロックに加えて，スイッチ装置210に接続するスイッチ装置に分割データの記録処理(キャッシュ)を依頼するキャッシュ依頼部(スイッチ装置用)238を有する。なお，図14で説明したスイッチ装置210のCPU211が，図14で説明したように，図23のソフトウェアモジュールを実行する。
【０２３６】
(第5のデータセンターDC50のスイッチ装置510)
図24，図25に基づき，第5のデータセンターDC50のスイッチ装置510について説明する。
【０２３７】
図24は，図22の第3の実施の形態における他のスイッチ装置510のハードウェア構成を示すブロック図である。
【０２３８】
図25は，図22の第3の実施の形態における他のスイッチ装置510のソフトウェアモジュールを示すブロック図である。
【０２３９】
図24において，CPU511と，メモリ512と，記録部513と，スイッチング部514と，第1のNIC515，第2のNIC516は，図14のCPU211と，メモリ212と，記録部213と，スイッチング部214と，第1のNIC215，第2のNIC216と同機能を有する。
【０２４０】
図25において，全体管理部531，トポロジ管理部532，送信可能判定部533，受信部534，送信部535，キャッシュ依頼部(サーバ装置用)536，キャッシュ送信依頼部537は，図15の全体管理部231，トポロジ管理部232，送信可能判定部233，受信部234，送信部235，キャッシュ依頼部(サーバ装置用)236，キャッシュ送信依頼部(サーバ装置用)237と同機能を有する。
【０２４１】
(第2のデータセンターDC20のスイッチ装置210が実行するキャッシュ処理)
図16，図17，図22，図23に基づき，第2のデータセンターDC20のスイッチ装置210が実行する分割データのキャッシュ処理について説明する。
【０２４２】
以下の説明では，図22の第5のデータセンターDC50のスイッチ装置510は，第1のデータセンターDC10から送信される分割データを受信し，受信した分割データを第2のデータセンターDC20のスイッチ装置210に転送している。
【０２４３】
まず，図23のスイッチ装置210の全体管理部231は，自装置の記録部213(図14参照)の空き容量が不足すると，新たに受信する分割データを図17のサーバ装置250_1に記録可能か判定する。具体的には，第2の実施の形態で説明したように，図23のキャッシュ依頼部(サーバ装置用)236は，図17のサーバ装置250_1に分割データのキャッシュ依頼を実行する。サーバ装置250_1は，このキャッシュ依頼に応答して，分割データのキャッシュ処理を実行する。
【０２４４】
ここで，サーバ装置250_1の全体管理部261が，自装置の記録部253(図16参照)の空き容量が不足し，分割データのキャッシュ処理が実行できないと判定すると，キャッシュ不可能であることを図23のスイッチ装置210に通知する。なお，この通知は，第1の実施の形態で説明した，SNMPトラップを利用して行うことができる。
【０２４５】
スイッチ装置210の受信部234が，このキャッシュ不可能通知を受信すると，全体管理部231は，新たに受信する分割データを図17のサーバ装置250_1に記録不可能と判定する。そして，全体管理部231は，キャッシュ依頼部238に他のスイッチ装置にキャッシュ依頼を行うように指示する。キャッシュ依頼部238は，このキャッシュ依頼指示に応答して，他のスイッチ装置にキャッシュ依頼を実行する。ここで，他のスイッチ装置(第3のネットワーク装置)とは，スイッチ装置210(自装置)を基準にして，移動元の仮想マシン実行装置130_1側に設けられたスイッチ装置である。図22の場合，第5のデータセンターDC50のスイッチ装置510である。なお，この他のスイッチ装置を特定するための情報，例えばIPアドレスなどについては，図23のトポロジ管理部231が管理している。
【０２４６】
(第5のデータセンターDC50のスイッチ装置510が実行するキャッシュ処理)
図24，図25に基づき，第5のデータセンターDC50のスイッチ装置510が実行するキャッシュ処理について説明する。
【０２４７】
図25の受信部534の依頼監視部534aは，受信部534がスイッチ装置210からのキャッシュ依頼を受信すると，図23のスイッチ装置210からのキャッシュ依頼を受信したことを全体管理部531に通知する。なお，このとき，図22の第1のデータセンターDC10のスイッチ装置から送信される分割データを，受信部534が受信しているとする。
【０２４８】
全体管理部531は，この通知に応答して，分割データ受信制御部534bに，受信部534が受信した分割データを図24の記録部513に順次記録するように，分割データ受信制御部534bに指示する。分割データ受信制御部534bは，この記録指示に応答して，この分割データを記録部513に記録する。
【０２４９】
図24の例では，分割データ受信制御部534bは，記録部513に，分割VMデータ152_10〜分割VMデータ152_nを記録する。記録部513の分割データテーブル153は，第1の実施の形態で説明したように，図3の仮想マシン実行装置130_1が送信した分割データテーブルである。なお，図24の例においては，図23のスイッチ装置210，または，このスイッチ装置に接続するサーバ装置は，図2に示す分割メモリデータ151_1〜分割メモリデータ151_m，分割VMデータ151_2〜分割メモリデータ151_9を自装置に記録している。
【０２５０】
さらに，図25のスイッチ装置510は，自装置で分割データをキャッシュできなくなると，第2の実施の形態の図22で説明したように，スイッチ装置510に接続するサーバ装置550_1などに分割データのキャッシュ依頼を実行する。
【０２５１】
そして，図25のスイッチ装置510は，第2の実施の形態の図21で説明したように，自装置や自装置に接続するサーバ装置550_1などに記録した分割データの送信処理を実行する。
【０２５２】
(スイッチ装置におけるキャッシュ処理の流れ)
図26は，図22の第3の実施の形態におけるスイッチ装置210，510におけるキャッシュ処理の流れの一例を説明するフロー図である。
【０２５３】
図26のステップS51〜ステップS53，ステップS55，ステップS58は，図20のステップS31〜ステップS33，ステップS34，ステップS35と同じ処理なので，適宜説明を省略する。
【０２５４】
図23のスイッチ装置210は，ステップS51，ステップS52の処理を順次実行する。図23の全体管理部231は，ステップS52において，受信した分割データを自装置(図14の記録部213)に記録できないと判定した場合(ステップS52/NO)，ステップS54に移る。
【０２５５】
ステップS54:図23の全体管理部231は，新たに受信する分割データを自装置に接続するサーバ装置に記録可能か判定する。記録可能と判定すると(ステップS54/YES)，ステップS55に移る。記録不可能と判定すると(ステップS54/NO)，ステップS56に移る。
【０２５６】
ステップS56:図23のキャッシュ依頼部(スイッチ装置用)238は，他のスイッチ装置，前記の例では，第5のデータセンターDC50のスイッチ装置510にキャッシュ依頼を行う。
【０２５７】
ステップS57: 図25のスイッチ装置510の分割データ受信制御部534bは，受信部534が受信した分割データを図24の記録部513に順次記録する。
【０２５８】
第3の実施の形態で説明したように，スイッチ装置が，自装置および自装置に接続するサーバ装置に分割データをキャッシュできなくなると，他のスイッチ装置に分割データのキャッシュ処理を実行させることで，多量の分割データをスイッチ装置，サーバ装置にキャッシュできる。特に，移動元の第1のデータセンターDC10と，移動先の第4のデータセンターDC40とのネットワーク経路上に多数のスイッチ装置が配置されている場合には，これらのスイッチ装置が，再帰的に分割データのキャッシュ処理を実行するので，より多量の分割データをスイッチ装置，サーバ装置にキャッシュできる。
【０２５９】
[第4の実施の形態]
第3の実施の形態では，スイッチ装置が，他のスイッチ装置にキャッシュ依頼を実行した。この他のスイッチは，図22において，移動元の第1のデータセンターDC10と移動先のデータセンターにおけるDC40との間のネットワーク経路(接続経路)に設けられたスイッチ装置510である。このような，移動元の第1のデータセンターDC10と移動先のデータセンターにおけるDC40との間のネットワーク経路は，同一トポロジとも呼ばれる。
【０２６０】
第4の実施の形態では，あるスイッチ装置が，このような移動元の第1のデータセンターDC10と移動先の第4のデータセンターDC40との間のネットワーク経路から分岐したネットワーク経路，換言すれば，同一トポロジ外のトポロジに設けられたスイッチ装置にキャッシュ依頼を実行する場合について説明する。
【０２６１】
(情報処理システム)
図27は，第4の実施の形態における情報処理システム4の概略構成図である。情報処理システム4は，図22の情報処理システム3で説明した第1のデータセンターDC10〜第5のデータセンターDC50に加えて，更に，第6のデータセンターDC60を有する。図27において同一トポロジを符号STで示す破線で囲う。
【０２６２】
第6のデータセンターDC60は，第2のデータセンターDC20に接続するデータセンターであり，移動元の第1のデータセンターDC10と移動先のデータセンターにおけるDC40との間のネットワーク経路から分岐したネットワーク経路に設けられている。換言すれば，第6のデータセンターDC60は，符号STで示す同一トポロジと異なるトポロジのデータセンターである。
【０２６３】
第6のデータセンターDC60は，スイッチ装置610(第3のネットワーク装置)と，第1のサーバ装置660_1〜第sのサーバ装置660_sとを有する。第2のデータセンターDC20のスイッチ装置210は，第6のデータセンターDC60のスイッチ装置610とネットワーク接続する。第6のデータセンターDC60のスイッチ装置610は，第2のデータセンターDC20のスイッチ装置210，第1のサーバ装置660_1〜第sのサーバ装置660_sとネットワーク接続する。
【０２６４】
(第2のデータセンターDC20のスイッチ装置210)
図28は，図27の第4の実施の形態におけるスイッチ装置210のソフトウェアモジュールを示すブロック図である。スイッチ装置210は，図25で説明した各ブロックに加えて，異なるトポロジの他のスイッチ装置にキャッシュした分割データの送信処理を依頼するキャッシュ送信依頼部(スイッチ装置用)239を有する。異なるトポロジの他のスイッチ装置を特定するための情報，例えばIPアドレスなどについては，トポロジ管理部231が管理している。
【０２６５】
なお，図14で説明したスイッチ装置210のCPU211が，図14で説明したように，図28のソフトウェアモジュールを実行する。
【０２６６】
(第6のデータセンターDC60のスイッチ装置610)
図29，図30に基づき，異なるトポロジの第6のデータセンターDC60のスイッチ装置610について説明する。
【０２６７】
図29は，図27の第4の実施の形態における異なるトポロジのスイッチ装置610のハードウェア構成を示すブロック図である。
【０２６８】
図30は，図27の第4の実施の形態における異なるトポロジのスイッチ装置610のソフトウェアモジュールを示すブロック図である。
【０２６９】
図29において，CPU611と，メモリ612と，記録部613と，スイッチング部614と，第1のNIC615，第2のNIC616は，図14のCPU211と，メモリ212と，記録部213と，スイッチング部214と，第1のNIC215，第2のNIC216と同機能を有する。
【０２７０】
図30において，全体管理部631，トポロジ管理部632，送信可能判定部633，受信部634，送信部635，キャッシュ依頼部(サーバ装置用)636，キャッシュ送信依頼部637は，図15の全体管理部231，トポロジ管理部232，送信可能判定部233，受信部234，送信部235，キャッシュ依頼部(サーバ装置用)236，キャッシュ送信依頼部(サーバ装置用)237と同機能を有する。
【０２７１】
(第2のデータセンターDC20のスイッチ装置210が実行するキャッシュ処理)
図17，図25，図28に基づき，第2のデータセンターDC20のスイッチ装置210が実行する分割データのキャッシュ処理について説明する。
【０２７２】
以下の説明では，図22の第5のデータセンターDC50のスイッチ装置510は，第1のデータセンターDC10から送信される分割データを受信し，受信した分割データを第2のデータセンターDC20のスイッチ装置210に転送している。また，第3の実施例で説明したように，図28のスイッチ装置210の全体管理部231は，新たに受信する分割データを図17のサーバ装置250_1に記録不可能と判定するとする。
【０２７３】
全体管理部231は，この判定を行うと，キャッシュ依頼部238に他のスイッチ装置にキャッシュ依頼を行うように指示する。ここで，他のスイッチ装置とは，スイッチ装置210(自装置)を基準にして，移動元の仮想マシン実行装置130_1側に設けられたスイッチ装置である。図27の場合，同一トポロジの第5のデータセンターDC50のスイッチ装置510である。
【０２７４】
図25のスイッチ装置510の依頼監視部534aは，受信部534がスイッチ装置210からのキャッシュ依頼を受信すると，図23のスイッチ装置210からのキャッシュ依頼を受信したことを全体管理部531に通知する。全体管理部531は，この通知に応答して，受信した分割データを自装置の記録部513，または，自装置に接続するサーバ装置550_1などに記録できるか判定する。
【０２７５】
ここで，全体管理部531が，自装置の記録部513(図24参照)，自装置に接続するサーバ装置550_1など記録部の空き容量が不足し，分割データのキャッシュ処理が実行できないと判定すると，キャッシュ不可能であることを図28のスイッチ装置210に通知する。
【０２７６】
この通知により，図28のスイッチ装置210の全体管理部231は，同一トポロジの他のスイッチ装置(例えば，図25のスイッチ装置510)は，分割データのキャッシュが可能か判定することができる。
【０２７７】
図28のスイッチ装置210の受信部234が，このキャッシュ不可能通知を受信すると，全体管理部231は，図25のスイッチ装置510は分割データのキャッシュが不可能(キャッシュ依頼不可能)と判定する。
【０２７８】
そして，全体管理部231は，キャッシュ依頼部238に，例えば異なるトポロジの他のスイッチ装置610にキャッシュ依頼を行うように指示する。キャッシュ依頼部238は，このキャッシュ依頼指示に応答して，他のスイッチ装置610にキャッシュ依頼を実行する。
【０２７９】
さらに，図28のスイッチ装置210の全体管理部231は，自装置の記録部213(図14参照)にの分割データテーブル153(図9参照)を送信部235に出力し，異なるトポロジの他のスイッチ装置610に送信するように指示する。送信部235は，この送信指示に応答して，異なるトポロジの他のスイッチ装置610に分割データテーブル153を送信する。
【０２８０】
そして，全体管理部231は，以後，分割データ受信部234が受信する分割データを異なるトポロジの他のスイッチ装置610に送信するように送信部235に指示する。送信部235の分割データ送信制御部235は，この指示に応答して，分割データ受信部234が受信する分割データを異なるトポロジの他のスイッチ装置610に送信(転送)する。
【０２８１】
なお，全体管理部231は，同時に，キャッシュ依頼先の装置に送信する分割データの識別子と，キャッシュ依頼先の装置を一意に識別する識別子を，キャッシュ依頼管理テーブル(図19参照)に記録する。前記の例では，キャッシュ依頼先の装置は，異なるトポロジの他のスイッチ装置610である。
【０２８２】
(第6のデータセンターDC60のスイッチ装置610が実行するキャッシュ処理)
図30のスイッチ装置610の受信部634は，キャッシュ依頼，分割データテーブル153を受信する。このとき，依頼監視部634aは，キャッシュ依頼の受信を常時監視している。依頼監視部634aは，受信部634がキャッシュ依頼を受信すると，キャッシュ依頼を受信したことを全体管理部631に通知する。全体管理部631は，この通知に応答して，受信部634が受信した分割データテーブル153を記録部613(図29参照)に記録する。
【０２８３】
そして，図30の受信部634は，図28のスイッチ装置210からの分割データを受信する。受信部634の分割データ受信制御部634bは，分割データを記録部613(図29参照)に記録する。図29の例では，分割データ受信制御部534bは，記録部613に，分割VMデータ152_10〜分割VMデータ152_nを記録する。
【０２８４】
なお，図30のスイッチ装置610は，第2の実施の形態で説明したように，自装置の記録613(図29参照)の空き容量が不足した場合には，自装置に接続するサーバ装置650_1に分割データを記録してもよい。
【０２８５】
(キャッシュした分割データの送信処理)
図28〜図30に基づき，スイッチ装置210，スイッチ装置610がキャッシュした分割データの送信処理について説明する。
【０２８６】
第2の実施の形態で説明したように，図28のスイッチ装置210の送信可能判定部233が，データ送信先のスイッチ装置にデータを送信可能と判定すると，全体管理部231は，自装置の記録部213の分割データを送信するように送信部235に指示する。送信部235は，この送信指示に応答して，この分割データを送信する。
【０２８７】
さらに，全体管理部231は，異なるトポロジの他のスイッチ装置610に分割データを記録したか判定する。全体管理部231は，例えば，図29の記録部213に，異なるトポロジの他のスイッチ装置610のIPアドレスが記録されたキャッシュ依頼管理テーブルを記録している場合には，異なるトポロジの他のスイッチ装置610に分割データを記録したと判定する。
【０２８８】
全体管理部231は，異なるトポロジの他のスイッチ装置610に分割データを記録したと判定した場合，全体管理部231は，キャッシュ送信依頼部(スイッチ装置用)239に，キャッシュ送信依頼を実行するように指示する。キャッシュ送信依頼部239は，このキャッシュ送信依頼指示に応答して，異なるトポロジの他のスイッチ装置610に分割データの送信を実行するように依頼する。
【０２８９】
図30の異なるトポロジの他のスイッチ装置610の受信部632は，スイッチ装置210からの分割データのキャッシュ送信依頼を受信する。依頼監視部634aは，受信部634がキャッシュ送信依頼を受信すると，キャッシュ送信依頼を受信したことを全体管理部631に通知する。
【０２９０】
全体管理部631は，この通知に応答して，送信部635の分割データ送信制御部635aに，図29の記録部513の分割データをスイッチ装置210に送信するように指示する。分割データ送信制御部635aは，この送信指示に応答して，記録部613の分割データをスイッチ装置210に送信する。なお，分割データ送信制御部635aは，コンテキスト識別子が"1"の分割データを優先的に送信する。
【０２９１】
図29の例では，分割データ送信制御部635aは，分割VMデータ151_10〜151_nを図28のスイッチ装置210に送信する。
【０２９２】
図28のスイッチ装置210の分割データ受信制御部234bは，受信部234が受信した異なるトポロジの他のスイッチ装置610からの分割データを，送信部235に出力する。送信部235の分割データ送信制御部235は，入力された分割データを第4のデータセンターDC40のスイッチ装置410に送信する。
【０２９３】
(スイッチ装置におけるキャッシュ処理の流れ)
図31，図32は，図27の第4の実施の形態におけるスイッチ装置におけるキャッシュ処理を説明する第1，第2のフロー図である。
【０２９４】
図31のステップS61〜S66は，図26のステップS51〜ステップS56と同じ処理なので，適宜説明を省略する。
【０２９５】
図28のスイッチ装置210は，ステップS61〜ステップS64の処理を順次実行する。図28の全体管理部231は，ステップS64において，受信した分割データを自装置に接続するサーバ装置250_1などに記録できないと判定した場合(ステップS64/NO)，図32のステップS71に移る。
【０２９６】
ステップS71:図28のスイッチ装置210の全体管理部231は，同一トポロジの他のスイッチ装置は，分割データのキャッシュが可能か判定する。ここで，同一トポロジの他のスイッチ装置は，前記の例では，第5のデータセンターDC50のスイッチ装置510である。
【０２９７】
分割データのキャッシュが可能な場合(ステップS71/YES)，ステップS72に移る。なお，ステップS72，ステップS73の処理は，図26のステップS56，ステップS57の処理と同様であるので，説明を省略する。
【０２９８】
分割データのキャッシュが不可能な場合(ステップS71/NO)，ステップS74に移る。
【０２９９】
ステップS74:図28のキャッシュ依頼部238は，異なるトポロジの他のスイッチ装置にキャッシュ依頼を行う。ここで，異なるトポロジの他のスイッチ装置は，前記の例では，第6のデータセンターDC60のスイッチ装置610である。
【０３００】
ステップS75:図28の送信部235は，異なるトポロジの他のスイッチ装置610に分割データテーブル153を送信する。
【０３０１】
ステップS76:図28の送信部235の分割データ送信制御部235は，分割データ受信部234が受信する分割データを異なるトポロジの他のスイッチ装置610(図30参照)に送信する。
【０３０２】
ステップS77:図30のスイッチ装置610の分割データ受信制御部634bは，受信部634が受信した分割データを記録部613(図29参照)に記録(キャッシュ)する。
【０３０３】
図31，図32で説明した処理により，異なるトポロジの他のスイッチ装置は，分割データの記録処理を実行することができる。
【０３０４】
なお，図27の情報処理システム4において，データセンターDC20のスイッチ装置210，データセンターDC30のスイッチ装置310(図1参照)が接続している場合を想定する。このような接続形態の場合，データセンターDC20のスイッチ装置210は，データセンターDC30のスイッチ装置310に対してキャッシュ依頼を行い，スイッチ装置310に対して分割データのキャッシュ処理を実行させてもよい。
【０３０５】
本実施の形態によれば，ネットワーク上のスイッチ装置，サーバ装置を利用して，マイグレーション対象の仮想マシンの分割データを一時的に記録することができる。特に，ネットワーク経路上の多数のスイッチ装置，サーバ装置を利用して，分割データの記録処理を実行できるので，本実施の形態の情報処理システムによれば，数千，数万の単位の仮想マシンに関連する分割データの記録処理が可能になる。
【０３０６】
なお，ネットワークの帯域を大きくする技術を利用して，迅速に分割データを他のスイッチ装置に送信するアプローチも考えられる。例えば，複数のネットワークを利用したマルチパスや，データセンター内に設けられたサーバ装置のNICを冗長化する技術，いわゆるボンディング(Bonding)技術である。他にも，例えば，複数の物理的な回線を仮想的に束ね，あたかも1本の回線であるかのように扱う技術，いわゆるリンクアグリゲーション(Link  Aggregation)技術である。しかし，このような技術を利用しても，ネットワーク帯域を大きくすることには，限度がある。特に，数千，数万の仮想マシンのマイグレーションを実行する場合，仮に，ネットワーク帯域を大きくしても，ネットワークのボトルネックが発生してしまい，前記したように，移動元の仮想マシン実行装置は，迅速に分割データを他のスイッチ装置に送信することができなくなる。このような場合であっても，本実施の形態の情報処理システムによれば，数千，数万の単位の仮想マシンに関連する分割データの記録処理が可能になり，移動元の仮想マシン実行装置は，迅速に，他のデータセンターのスイッチ装置やサーバ装置にデータを送信することができる。
【符号の説明】
【０３０７】
1,3,4…情報処理システム，DC10,DC20,DC30,DC40…データセンター，110,210,310,410,510,610…スイッチ装置，130_1〜131_h,430_1〜431_k…仮想マシン実行装置，141_1〜141_h,430_1〜431_k…仮想マシン実行装置。
【図１】
2013140522.tif 000003
【図２】
2013140522.tif 000004
【図３】
2013140522.tif 000005
【図４】
2013140522.tif 000006
【図５】
2013140522.tif 000007
【図６】
2013140522.tif 000008
【図７】
2013140522.tif 000009
【図８】
2013140522.tif 000010
【図９】
2013140522.tif 000011
【図１０】
2013140522.tif 000012
【図１１】
2013140522.tif 000013
【図１２】
2013140522.tif 000014
【図１３】
2013140522.tif 000015
【図１４】
2013140522.tif 000016
【図１５】
2013140522.tif 000017
【図１６】
2013140522.tif 000018
【図１７】
2013140522.tif 000019
【図１８】
2013140522.tif 000020
【図１９】
2013140522.tif 000021
【図２０】
2013140522.tif 000022
【図２１】
2013140522.tif 000023
【図２２】
2013140522.tif 000024
【図２３】
2013140522.tif 000025
【図２４】
2013140522.tif 000026
【図２５】
2013140522.tif 000027
【図２６】
2013140522.tif 000028
【図２７】
2013140522.tif 000029
【図２８】
2013140522.tif 000030
【図２９】
2013140522.tif 000031
【図３０】
2013140522.tif 000032
【図３１】
2013140522.tif 000033
【図３２】
2013140522.tif 000034
【手続補正書】
【提出日】平成26年8月29日(2014.8.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1の仮想マシンを実行する第1の仮想マシン実行装置と，第2の仮想マシンを実行する第2の仮想マシン実行装置と，前記第1，第2の仮想マシン実行装置間に設けられ，データ通信処理を行う複数のネットワーク装置とを有し，
前記第1の仮想マシン実行装置は，
前記第1の仮想マシンの移動指示に応答して，前記第1の仮想マシンに関連するデータを分割し，分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し，
前記第1のネットワーク装置は，
前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し，送信不可能な場合，分割データを記録部に記録し，分割データを前記第2のネットワーク装置に送信可能と判定した場合，前記記録部の前記分割データを前記第2のネットワーク装置に送信し，
前記第2の仮想マシン実行装置は，前記第1の仮想マシン実行装置から送信された分割データに基づき，前記第1の仮想マシンを構築する
ことを特徴とする情報処理システム。
【請求項２】
請求項1において，
前記第1の仮想マシン実行装置は，前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを作成し，前記識別子記録テーブルを前記第1のネットワーク装置に送信し，前記分割データを識別する分割データ識別子を前記分割データに付加して送信し，
前記第1のネットワーク装置は，前記識別子記録テーブルに記録された識別子を有する分割データを前記記録部に記録する
ことを特徴とする情報処理システム。
【請求項３】
請求項2において，
前記第1の仮想マシン実行装置は，分割したデータが，前記第1の仮想マシンが実行中の情報処理に関連する第1のデータかまたは前記情報処理に関連しない第2のデータか判定し，前記分割したデータが第1のデータの場合には，前記分割したデータに第1の識別子を付加し，前記分割したデータが第2のデータの場合には，前記分割したデータに第2の識別子を付加し，前記第1の識別子を付加した分割データを前記第2の分割データよりも優先して送信する
ことを特徴とする情報処理システム。
【請求項４】
請求項3において，
前記第1のネットワーク装置は，前記記録部の分割データの中で，前記第1の識別子が付加された分割データを，前記第2の識別子が付加された分割データよりも優先して送信する
ことを特徴とする情報処理システム。
【請求項５】
請求項4において，
さらに，前記第1のネットワーク装置に接続するサーバ装置を有し，
前記第1のネットワーク装置は，自装置の前記記録部に分割データを記録できるか判定し，前記自装置の記録部に前記分割データを記録できない場合，自装置に接続する前記サーバ装置に分割データを記録する
ことを特徴とする情報処理システム。
【請求項６】
請求項5において，
前記第1のネットワーク装置は，自装置に接続する前記サーバ装置に分割データを記録できるか判定し，前記サーバ装置に分割データを記録できない場合，自装置に接続する第3のネットワーク装置に前記分割データを記録する依頼を行い，
前記第3のネットワーク装置は，前記依頼に応答して，受信した分割データを自装置の記録部に記録する
ことを特徴とする情報処理システム。
【請求項７】
請求項6において，
前記第3のネットワーク装置は、前記第1，第2の仮想マシン実行装置の接続経路から分岐した接続経路に設けられたネットワーク装置であって，
前記第1のネットワーク装置は，受信した分割データを前記第3のネットワーク装置に送信する
ことを特徴とする情報処理システム。
【請求項８】
請求項1において，
前記第1の仮想マシン実行装置を有する第1のデータセンターと，
前記第2の仮想マシン実行装置を有する第2のデータセンターとを有し，
前記第1，第2のデータセンターは，地理的に離れている
ことを特徴とする情報処理システム。
【請求項９】
第1の仮想マシンを実行する第1の仮想マシン実行装置と，第2の仮想マシンを実行する第2の仮想マシン実行装置と，前記第1，第2の仮想マシン実行装置間に設けられ，データ通信処理を行う複数のネットワーク装置とを有する情報処理システムで実行される情報処理方法であって，
前記第1の仮想マシン実行装置は，
前記第1の仮想マシンの移動指示に応答して，前記第1の仮想マシンに関連するデータを分割し，分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し，
前記第1のネットワーク装置は，
前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し，
送信不可能な場合，分割データを記録部に記録し，
分割データを前記第2のネットワーク装置に送信可能と判定した場合，前記記録部の前記分割データを前記第2のネットワーク装置に送信し，
前記第2の仮想マシン実行装置は，前記第1の仮想マシン実行装置から送信された分割データに基づき，前記第1の仮想マシンを構築する
ことを特徴とする情報処理方法。
【請求項１０】
請求項9において，
前記第1の仮想マシン実行装置は，前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを作成し，前記識別子記録テーブルを前記第1のネットワーク装置に送信し，前記分割データを識別する分割データ識別子を前記分割データに付加して送信し，
前記第1のネットワーク装置は，前記識別子記録テーブルに記録された識別子を有する分割データを前記記録部に記録する
ことを特徴とする情報処理方法。
【請求項１１】
請求項10において，
前記第1の仮想マシン実行装置は，分割したデータが，前記第1の仮想マシンが実行中の情報処理に関連する第1のデータかまたは前記情報処理に関連しない第2のデータか判定し，前記分割したデータが第1のデータの場合には，前記分割したデータに第1の識別子を付加し，前記分割したデータが第2のデータの場合には，前記分割したデータに第2の識別子を付加し，前記第1の識別子を付加した分割データを前記第2の分割データよりも優先して送信する
ことを特徴とする情報処理方法。
【請求項１２】
請求項11において，
前記第1のネットワーク装置は，前記記録部の分割データの中で，前記第1の識別子が付加された分割データを，前記第2の識別子が付加された分割データよりも優先して送信する
ことを特徴とする情報処理方法。
【請求項１３】
請求項12において，
さらに，前記第1のネットワーク装置に接続するサーバ装置を有し，
前記第1のネットワーク装置は，自装置の前記記録部に分割データを記録できるか判定し，前記自装置の記録部に前記分割データを記録できない場合，自装置に接続する前記サーバ装置に分割データを記録する
ことを特徴とする情報処理方法。
【請求項１４】
請求項13において，
前記第1のネットワーク装置は，自装置に接続する前記サーバ装置に分割データを記録できるか判定し，前記サーバ装置に分割データを記録できない場合，自装置に接続する第3のネットワーク装置に前記分割データを記録する依頼を行い，
前記第3のネットワーク装置は，前記依頼に応答して，受信した分割データを自装置の記録部に記録する
ことを特徴とする情報処理方法。
【請求項１５】
請求項14において，
前記第3のネットワーク装置は、前記第1，第2の仮想マシン実行装置の接続経路から分岐した接続経路に設けられたネットワーク装置であって，
前記第1のネットワーク装置は，受信した分割データを前記第3のネットワーク装置に送信する
ことを特徴とする情報処理方法。
【請求項１６】
第1の仮想マシンを実行する第1の仮想マシン実行装置と，第2の仮想マシンを実行する第2の仮想マシン実行装置との間に設けられ，データ通信処理を行うネットワーク装置の第1のネットワーク装置のプログラムは，
前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2のネットワーク装置に送信可能か判定し，送信不可能な場合，分割データを記録部に記録し，分割データを前記第2のネットワーク装置に送信可能と判定した場合，前記記録部の前記分割データを前記第2のネットワーク装置に送信する処理をコンピュータに実行させる
ことを特徴とするプログラム。
【請求項１７】
請求項16において，
前記第1の仮想マシン実行装置から送信される，前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを受信し，前記記録部に記録し，
前記識別子記録テーブルに記録された識別子を有する分割データを受信し，前記記録部に記録する処理をコンピュータに実行させる
ことを特徴とするプログラム。
【請求項１８】
請求項17において，
第1の識別子が付加された分割データ，第2の識別子が付加された分割データを受信し，前記記録部に記録し，前記記録部の分割データの中で，前記第1の識別子が付加された分割データを，前記第2の識別子が付加された分割データよりも優先して送信する処理をコンピュータに実行させる
ことを特徴とするプログラム。
【国際調査報告】
2013140522.tif 000035
2013140522.tif 000036