Processing

Please wait...

Settings

Settings

Goto Application

1. WO2013140522 - INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM

Document

明 細 書

発明の名称 情報処理システム,情報処理方法,プログラム

技術分野

0001  

背景技術

0002  

先行技術文献

特許文献

0003  

発明の概要

発明が解決しようとする課題

0004   0005   0006   0007   0008   0009   0010  

課題を解決するための手段

0011  

発明の効果

0012  

図面の簡単な説明

0013  

発明を実施するための形態

0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223   0224   0225   0226   0227   0228   0229   0230   0231   0232   0233   0234   0235   0236   0237   0238   0239   0240   0241   0242   0243   0244   0245   0246   0247   0248   0249   0250   0251   0252   0253   0254   0255   0256   0257   0258   0259   0260   0261   0262   0263   0264   0265   0266   0267   0268   0269   0270   0271   0272   0273   0274   0275   0276   0277   0278   0279   0280   0281   0282   0283   0284   0285   0286   0287   0288   0289   0290   0291   0292   0293   0294   0295   0296   0297   0298   0299   0300   0301   0302   0303   0304   0305   0306  

符号の説明

0307  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20  

図面

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32  

明 細 書

発明の名称 : 情報処理システム,情報処理方法,プログラム

技術分野

[0001]
 本発明は,情報処理システム,情報処理方法,プログラムに関する。

背景技術

[0002]
 仮想マシンを実行するサーバ装置が,この仮想マシンを他のサーバ装置に移動し,他のサーバ装置が,この仮想マシンを実行する処理,いわゆるマイグレーションが知られている(特許文献1参照)。

先行技術文献

特許文献

[0003]
特許文献1 : 日本特許公開2011-146002号公報

発明の概要

発明が解決しようとする課題

[0004]
 一方,企業や公共機関などが,業務で利用する多数のサーバ装置を複数のデータセンターに分散配置することが行われている。かかるデータセンターは,サーバ装置に仮想マシン(VM:Virtual Machine)を構築し,この仮想マシンが前記した業務に関連する各種情報処理を実行する。また,サービス企業のデータセンターの場合,サーバ装置に構築した仮想マシンを,利用者に提供する,いわゆるクラウドサービス(IaaS:Infrastructure as a Service)を行うことがある。
[0005]
 この複数のデータセンターで構成されたシステムでは,第1のデータセンター内に配置されたサーバ装置は,このサーバ装置で実行している仮想マシンを,第1のデータセンターとは地理的に離れ,独立して動作する第2のデータセンター内のサーバ装置に移動(マイグレーション)することが有効である。例えば,第1のデータセンターが被災や停電した場合や,他にも,地域の季節差を利用したデータセンターの冷却コストの抑制,夜間の低料金電力を利用した運用コスト低減などを目的としてマイグレーションを実行することは有効である。
[0006]
 このような地理的に離れているデータセンター間で,マイグレーションを実行する場合には,種々の制約が生じる。例えば,第1のデータセンターが被災し短時間しか電源供給が継続されない場合を想定する。この場合,第1のデータセンターにおいて仮想マシンを実行している第1のサーバ装置は,この電源供給がなされている時間内に,この仮想マシンを自装置内から送信しなければならない。
[0007]
 しかし,例えば,第1,第2のデータセンター間のネットワークが混雑している場合や,第1,第2のデータセンター間のネットワークの帯域幅が狭くなる場合がある。他にも,ネットワーク帯域は十分に確保されているが,第1,第2のデータセンター間に設けられた,あるネットワーク装置(例えばスイッチ装置,ルータ装置)の処理負荷が増大し,通信量が減少する場合がある。
[0008]
 このような場合には,第1,第2のデータセンター間のネットワークがデータ送信のボトルネックとなり,第1のサーバ装置は,高速にマイグレーションを実行することが困難になる。換言すれば,第1のデータセンターの第1のサーバ装置は,実行している仮想マシンを,移動先の第2のデータセンターの第2のサーバ装置に移動し,第2のサーバ装置が,この仮想マシンと同じ仮想マシンを構築するまでに時間がかかる。
[0009]
 特に,第1のデータセンターの第1のサーバ装置が,数千,数万単位の仮想マシンを実行している場合において,これらの仮想マシンを第2のデータセンターの第2のサーバ装置に高速に移動するのは,極めて困難である。
[0010]
 1つの側面では,本発明は,データセンター間の仮想マシンの移動処理を高速に実行することを目的とする。

課題を解決するための手段

[0011]
 情報処理システムの第1の側面は,第1の仮想マシンを実行する第1の仮想マシン実行装置と,第2の仮想マシンを実行する第2の仮想マシン実行装置と,前記第1,第2の仮想マシン実行装置間に設けられ,データ通信処理を行う複数のネットワーク装置とを有し,前記第1の仮想マシン実行装置は,前記第1の仮想マシンの移動指示に応答して,前記第1の仮想マシンに関連するデータを分割し,分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し,前記第1のネットワーク装置は,前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し,送信不可能な場合,分割データを記録部に記録し,分割データを前記第2のネットワーク装置に送信可能と判定した場合,前記記録部の前記分割データを前記第2のネットワーク装置に送信し,前記第2の仮想マシン実行装置は,前記第1の仮想マシン実行装置から送信された分割データに基づき,前記第1の仮想マシンを構築する。

発明の効果

[0012]
 一実施形態によれば,データセンター間の仮想マシンの移動処理を高速に実行することができる。

図面の簡単な説明

[0013]
[図1] 第1の実施の形態における情報処理システムの概略構成図である。
[図2] 図1の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のハードウェア構成を示すブロックである。
[図3] 図1の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
[図4] 図1の第1の実施の形態におけるスイッチ装置のハードウェア構成を示すブロック図である。
[図5] 図1の第1の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
[図6] 図1の第1の実施の形態における移動先のデータセンターの仮想マシン実行装置のハードウェア構成を示すブロックである。
[図7] 図1の第1の実施の形態における移動先のデータセンターの仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
[図8] 図3で説明する,各種情報が付加された分割データを模式的に示す図である。
[図9] 図3で説明する,分割データに関する各種情報を記録するテーブルの一例である。
[図10] 図3で説明する,仮想マシンに割り当てられているハードウェア資源量を記録するテーブルの一例である。
[図11] 図3の移動元の仮想マシン実行装置が実行するマイグレーション処理の流れの一例を説明するフロー図である。
[図12] 図5のスイッチ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。
[図13] 図5のスイッチ装置が実行するキャッシュした分割データの送信処理の流れの一例を説明するフロー図である。
[図14] 第2の実施の形態におけるスイッチ装置のハードウェア構成を示すブロック図である。
[図15] 第2の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
[図16] 図14,図15のスイッチ装置に接続するサーバ装置のハードウェア構成を示すブロック図である。
[図17] 図14,図15のスイッチ装置に接続するサーバ装置のソフトウェアモジュールを示すブロック図である。
[図18] 図15のスイッチ装置が自装置にキャッシュした分割データに係るデータを記録するテーブルの一例である。
[図19] 図17のサーバ装置に対するキャッシュ依頼対象の分割データの識別子などを記録するテーブルの一例である。
[図20] 図15のスイッチ装置,図17のサーバ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。
[図21] 図15のスイッチ装置,図17のサーバ装置がキャッシュした分割データを,図15のスイッチ装置が送信する処理の流れの一例を説明するフロー図である。
[図22] 第3の実施の形態における情報処理システムの概略構成図である。
[図23] 図22の第3の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
[図24] 図22の第3の実施の形態における他のスイッチ装置のハードウェア構成を示すブロック図である。
[図25] 図22の第3の実施の形態における他のスイッチ装置のソフトウェアモジュールを示すブロック図である。
[図26] 図22の第3の実施の形態におけるスイッチ装置におけるキャッシュ処理の流れの一例を説明するフロー図である。
[図27] 第4の実施の形態における情報処理システムの概略構成図である。
[図28] 図27の第4の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
[図29] 図27の第4の実施の形態における異なるトポロジのスイッチ装置のハードウェア構成を示すブロック図である。
[図30] 図27の第4の実施の形態における異なるトポロジのスイッチ装置のソフトウェアモジュールを示すブロック図である。
[図31] 図27の第4の実施の形態におけるスイッチ装置のキャッシュ処理を説明する第1のフロー図である。
[図32] 図27の第4の実施の形態におけるスイッチ装置のキャッシュ処理を説明する第2のフロー図である。

発明を実施するための形態

[0014]
 以下,図面に基づき,各実施の形態について説明する。なお,各図面において同一機能を有する構成要素については同一の符号を付し,再度の説明を適宜省略する。
[0015]
 [第1の実施の形態]
 (情報処理システム)
 図1は,第1の実施の形態における情報処理システム1の概略構成図である。情報処理システム1は,第1のデータセンターDC10~第4のデータセンターDC40を有する。各データセンターDC10,DC20,DC30,DC40は,地理的に離れている位置に設置され,例えば,企業や公共機関における業務上の各種情報処理を実行する。他にも,各データセンターDC10,DC20,DC30,DC40は,いわゆるクラウドサービスを実行する。
[0016]
 各データセンターDC10,DC20,DC30,DC40は,データセンター内の実装置に仮想マシンを構築し,この仮想マシンを利用して,前記した各種情報処理や,クラウドサービスを実行する。
[0017]
 以下の説明では,第1のデータセンターDC10から,第4のデータセンターDC40に対して,第2のデータセンターDC20,第3のデータセンターDC30を中継して,第1のデータセンターDC10で実行している仮想マシンを第2のデータセンターDC20にマイグレーションする例を示す。そこで,第1のデータセンターDC10を,仮想マシンの移動元のデータセンターとし,第2,第3のデータセンターDC20,DC30を中継のデータセンターとし,第4のデータセンターDC40を,仮想マシンの移動先のデータセンターとする。
[0018]
 第1のデータセンター(移動元)DC10に設けられた移動元の仮想マシン実行装置(例えば,図1の仮想マシン実行装置130_1)と,第4のデータセンター(移動先)DC40に設けられた仮想マシン実行装置(例えば,図1の仮想マシン実行装置430_1)との間のネットワークにおいて例えば,データ通信のボトルネックが発生している場合を想定する。
[0019]
 前記したボトルネックが発生すると,このボトルネックにより,第1のデータセンターDC10の仮想マシン実行装置130_1は,マイグレーション対象の全仮想マシンに関連する全データを他のデータセンターDCに送信することが困難である。マイグレーション対象の仮想マシンが多数であり,さらに,これらの仮想マシンに関連するデータ量が膨大である場合には,より困難になる。
[0020]
 特に,災害などで,第1のデータセンターDC10が被災し短時間しか電源供給が継続されない場合には,第1のデータセンターDC10の仮想マシン実行装置130_1は,この短時間の間に,マイグレーション対象の仮想マシンに関連するデータを他のデータセンターDCに送信できないと,この仮想マシンが消去され業務処理を継続できなくなる(マイグレーションが不成功)。
[0021]
 そこで,第1の実施の形態において,第1,第4のデータセンターDC10,DC40との間に設けられたネットワーク装置(例えば,スイッチ装置210)は,マイグレーション対象となる仮想マシンの分割データを一時的に記録(キャッシュ)する。このように,ネットワーク装置が分割データを記録することで,移動元の仮想マシン実行装置130_1は,マイグレーション対象の仮想マシンに関連するデータを一時的にネットワーク装置210に記録(送信)することができる。
[0022]
 そして,前記ボトルネックが解消すると,ネットワーク装置210は,記録していた分割データを移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信する。そのため,この分割データを受信した移動先の仮想マシン実行装置430_1は,この分割データに基づき,この仮想マシンを構築し,迅速に再稼働させることができる。
[0023]
 前記したネットワーク装置とは,ネットワーク間の接続を行う通信装置であり,例えば,スイッチ装置であり,ルータ装置であり,ハブ装置である。以下の説明では,ネットワーク装置として,スイッチ装置を例示する。
[0024]
 第1のデータセンターDC10~第4のデータセンターDC40の構成,および,各データセンターDC10,DC20,DC30,DC40について,図1により説明する。なお,以下の説明において,"h","i","j","k"は2以上の整数である。
[0025]
 図1に示すように,第1のデータセンターDC10は,スイッチ装置110と,第1の仮想マシン実行装置130_1~第hの仮想マシン実行装置130_hと,サーバ装置150とを有する。
[0026]
 第1のデータセンターDC10のスイッチ装置110は,第2のデータセンターDC20のスイッチ装置210および第3のデータセンターDC30のスイッチ装置310とネットワーク接続する。第1のデータセンターDC10のスイッチ装置110は,ネットワークにおいてデータ中継をおこなうスイッチング機能を有するネットワーク装置である。このスイッチング機能とは,例えば,レイヤ2スイッチ(L(Layer)2スイッチ)機能や,レイヤ3スイッチ(L3スイッチ)機能である。
[0027]
 スイッチ装置110は,第1のデータセンターDC10内におけるデータ通信のスイッチングを行い,第2のデータセンターDC20,第3のデータセンターDC30間におけるデータ通信のスイッチングを行う。
[0028]
 第1のデータセンターDC10の第1の仮想マシン実行装置130_1~第hの仮想マシン実行装置130_hは,仮想化されたハードウェア資源上で情報処理を実行する仮想マシンを実行する装置である。第1のデータセンターDC10のサーバ装置150は,例えば,第1の仮想マシン実行装置130_1~第hの仮想マシン実行装置130_hの管理サーバ装置として機能する。
[0029]
 第1の仮想マシン実行装置130_1~第hの仮想マシン実行装置130_h,サーバ装置150は,スイッチ装置110に接続し,データセンターDC10内のデータ通信や,他の第2のデータセンターDC20,DC30,DC40とデータ通信を実行する。なお,データセンターDC内のデータ通信とは,例えば,第1の仮想マシン実行装置130_1~第hの仮想マシン実行装置130_hの仮想マシン間で,アプリケーションが行うデータ通信や,これら仮想マシン実行装置の監視観測用のデータ通信である。
[0030]
 第2のデータセンターDC20は,スイッチ装置210と,第1のサーバ装置250_1~第iのサーバ装置250_iとを有する。
[0031]
 第2のデータセンターDC20のスイッチ装置210は,第1のデータセンターDC10のスイッチ装置110と同じスイッチング機能を有する。スイッチ装置210は,第2のデータセンターDC20内におけるデータ通信のスイッチングを行い,第1のデータセンターDC10,第4のデータセンターDC40間におけるデータ通信のスイッチングを行う。第1のサーバ装置250_1~第iのサーバ装置250_iは,例えば,仮想マシン実行機能,仮想マシンの管理機能を有する。
[0032]
 第3のデータセンターDC30は,スイッチ装置310と,第1のサーバ装置350_1~第jのサーバ装置350_jとを有する。
[0033]
 第3のデータセンターDC20のスイッチ装置310は,第1のデータセンターDC10のスイッチ装置110および第4のデータセンターDC40のスイッチ装置410とネットワーク接続する。
[0034]
 第3のデータセンターDC30のスイッチ装置310は,第1のデータセンターDC10のスイッチ装置110と同じスイッチング機能を有する。第1のサーバ装置350_1~第jのサーバ装置350_jは,例えば,仮想マシン実行機能,仮想マシンの管理機能を有する。
[0035]
 第4のデータセンターDC40は,スイッチ装置410と,第1の仮想マシン実行装置430_1~第kの仮想マシン実行装置430_kと,サーバ装置450とを有する。
[0036]
 第4のデータセンターDC40のスイッチ装置410は,第2のデータセンターDC20のスイッチ装置210および第3のデータセンターDC30のスイッチ装置310とネットワーク接続する。
[0037]
 第4のデータセンターDC40のスイッチ装置410は,第1のデータセンターDC10のスイッチ装置110と同じスイッチング機能を有する。
[0038]
 スイッチ装置410は,第4のデータセンターDC40内におけるデータ通信のスイッチングを行い,第2のデータセンターDC20,第3のデータセンターDC30間におけるデータ通信のスイッチングを行う。
[0039]
 第4のデータセンターDC40の第1の仮想マシン実行装置430_1~第kの仮想マシン実行装置430_kは,仮想化されたハードウェア資源上で情報処理を実行する仮想マシンを実行する装置である。第4のデータセンターDC40のサーバ装置450は,例えば,第1の仮想マシン実行装置430_1~第kの仮想マシン実行装置430_kの管理サーバ装置として機能する。
[0040]
 第1の仮想マシン実行装置430_1~第kの仮想マシン実行装置430_k,サーバ装置450は,スイッチ装置410に接続し,データセンターDC40内のデータ通信や,他の第1のデータセンターDC10,第2のデータセンターDC20,第3のデータセンターDC30とデータ通信を実行する。
[0041]
 なお,以上説明したネットワーク接続としては,例えば,データセンター間を接続する専用ネットワーク回線でもよいし,他にも,インターネットなどの公衆ネットワーク回線でもよい。
[0042]
 (第1のデータセンターDC10の仮想マシン実行装置)
 図2,図3に基づき,移動元の第1のデータセンターDC10の第1の仮想マシン実行装置130_1について説明する。第1のデータセンターDC10における,第1の仮想マシン実行装置130_1以外の仮想マシン実行装置も第1の仮想マシン実行装置130_1と同じ構成を有していてもよい。
[0043]
 図2は,図1の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のハードウェア構成を示すブロックである。
[0044]
 図3は,図1の第1の実施の形態における移動元のデータセンターの仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
[0045]
 図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の仮想マシン間でアプリケーションが行うデータ通信や,これら仮想マシン実行装置の監視観測用のデータ通信を実行する。
[0046]
 CPU131は,仮想マシン実行装置130_1の全体を制御するコンピュータである。メモリ132は,各種制御情報や,CPU131が実行する各種情報処理において処理されるデータなどを記録する。記録部133は,各種記録装置,不揮発性メモリや,ハードディスクドライブ(HDD:Hard Disk Drive)などの磁気記録装置である。以下の説明では,記録部としてHDDを例示して説明する。
[0047]
 第1のNIC134,第2のNIC135は,ネットワーク通信を行うための専用基板であり,データ通信部として機能する。なお,NICは,1つだけ,または,3つ以上であってもよい。
[0048]
 記録部133における分割メモリデータ151_1~151_m,分割VM(Virtual Machine)データ152_1~152_n,分割データテーブル153,HW(Hard
Ware)割当テーブル154は,仮想マシンのマイグレーション前には未だ記録されていない。これら,各データについては,後に詳述する。
[0049]
 図3において,第1の仮想マシン141_1~第pの仮想マシン141_pは,仮想化されたハードウェアにより情報処理を実行する。このハードウェアとは,図2において,例えば,CPU131,メモリ132,記録部133,第1のNIC134,第2のNIC135である。
[0050]
 仮想化ソフトウェア142は,このハードウェアを仮想化し,仮想化したハードウェアを第1の仮想マシン141_1~第pの仮想マシン141_pに割り当て,第1の仮想マシン141_1~第pの仮想マシン141_pを動作させるための基盤ソフトウェアである。
[0051]
 全体管理部143は,仮想化ソフトウェア142,データ分割部144,キャッシュ処理依頼部145,送信部146の管理を行う。データ分割部144は,マイグレーション対象の仮想マシンに関連するデータを所定データ単位で分割する。以後,データ分割部144が分割したデータを分割データと適宜記す。
[0052]
 分割データ識別子付加部144aは,分割データを一意に識別する分割データ識別子をこの分割データに付加する。コンテキスト識別部144bは,この分割データが,コンテキストデータか,または,非コンテキストデータかを識別する。なお,コンテキストデータ,非コンテキストデータについては,後述の図8,図9で説明する。コンテキスト識別子付加部144cは,分割データがコンテキストデータか,または,非コンテキストデータかを一意に識別する識別子を分割データに付加する。
[0053]
 キャッシュ処理依頼部145は,図1の情報処理システム1における各データセンターDC10,DC20,DC30,DC40のスイッチ装置110,210,310,410に分割データの記録を実行するように依頼する。この分割データの記録をキャッシュと適宜記す。なお,キャッシュ処理依頼部145は,例えば,SNMPトラップ(Simple Network Management Protocol trap)を利用して,この依頼処理を実行してもよい。
[0054]
 送信部146は,第1のNIC134,第2のNIC135を利用して,送信用のデータをスイッチ装置110に送信する。スイッチ装置110は,送信部146から送信されたデータを受信し,送信用のデータのヘッダ部に記録されている宛先のIPアドレス(Internet
Protocol Address)を参照して,データの転送処理を実行する。
[0055]
 仮想化ソフトウェア142,データ分割部144,キャッシュ処理依頼部145,送信部146として機能するプログラムは,例えば,図2の記録部133に記録されている。そして,CPU131は,起動時に,これらのプログラムを記録部133から読み出して,メモリ132に展開することにより,これらのプログラムをソフトウェアモジュールとして機能させる。
[0056]
 (スイッチ装置)
 図4,図5に基づき,データセンターDCのスイッチ装置について説明する。
[0057]
 図4は,図1の第1の実施の形態におけるスイッチ装置のハードウェア構成を示すブロック図である。図5は,図1の第1の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。
[0058]
 図4,図5においては,第2のデータセンターDC20のスイッチ装置210を例示して説明するが,他のスイッチ装置110,310,410も同じ構成を有していてもよい。
[0059]
 図4において,スイッチ装置210は,例えばバス(図示しない)を介して相互に接続された,CPU211と,メモリ212と,記録部213と,スイッチング部214と,第1のNIC215,第2のNIC216とを有する。なお,NICは,1つだけ,または,3つ以上であってもよい。
[0060]
 CPU211は,スイッチ装置210の全体を制御するコンピュータである。メモリ212は,CPU211が実行する各種情報処理において処理されるデータなどを記録する。記録部213は,図2で説明したように,例えば,不揮発性メモリ,磁気記録装置などの記録装置である。スイッチング部214は,ネットワークにおけるデータ中継処理,いわゆるスイッチング処理を実行する。第1のNIC215,第2のNIC216は,ネットワーク通信を行うための専用基板であり,データ通信部として機能する。
[0061]
 記録部213の分割メモリデータ151_1~151_m,分割VMデータ152_1~152_n,分割データテーブル153は,仮想マシンのマイグレーション前には未だ記録されていない。
[0062]
 図5において,全体管理部231は,トポロジ管理部232,送信可能判定部233,受信部234,送信部235の管理を行う。
[0063]
 トポロジ管理部232は,自スイッチ装置と自スイッチ装置に接続する他のスイッチ装置の接続関係(接続形態とも言う),いわゆるネットワークトポロジ(Network topology)を管理する。送信可能判定部233は,データ送信先のスイッチ装置にデータを送信できるか判定する。受信部234は,データ受信処理を実行する。受信部234の依頼監視部234は,キャッシュ依頼など各種依頼があるか否かを監視する。受信部234の分割データ受信制御部234bは,分割データの受信処理を制御する。送信部235は,データ送信処理を実行する。送信部235の分割データ送信制御部235bは,分割データの送信処理を制御する。
[0064]
 全体管理部231,トポロジ管理部232,送信可能判定部233,受信部234,送信部235として機能するプログラムは,例えば,図4の記録部213に記録されている。そして,CPU211は,起動時に,これらのプログラムを記録部213から読み出して,メモリ212に展開することにより,これらのプログラムをソフトウェアモジュールとして機能させる。
[0065]
 (第4のデータセンターDC40の仮想マシン実行装置)
 図6,図7に基づき,移動先の第4のデータセンターDC40の第1の仮想マシン実行装置430_1について説明する。第4のデータセンターDC40における,第1の仮想マシン実行装置430_1以外の仮想マシン実行装置も第1の仮想マシン実行装置430_1と同じ構成を有していてもよい。
[0066]
 図6は,図1の第1の実施の形態における移動先の第4のデータセンターDC40の仮想マシン実行装置のハードウェア構成を示すブロックである。
[0067]
 図7は,図1の第1の実施の形態における移動先の第4のデータセンターDC40の仮想マシン実行装置のソフトウェアモジュールを示すブロック図である。
[0068]
 図6において,仮想マシン実行装置430_1は,例えばバス(図示しない)を介して相互に接続された,CPU431と,メモリ432と,記録部433と,第1,第2のNIC434,435とを有する。
[0069]
 CPU431は,仮想マシン実行装置430_1の全体を制御するコンピュータである。メモリ432は,各種制御情報や,CPU431が実行する各種情報処理において処理されるデータなどを記録する。
[0070]
 記録部433は,図2で説明したように,例えば,不揮発性メモリ,磁気記録装置などの記録装置である。記録部433における分割メモリデータ151_1~151_m,分割VMデータ152_1~152_n,分割データテーブル153,HW割当テーブル154は,仮想マシンのマイグレーション前には未だ記録されていない。これら,各データについては,後に詳述する。
[0071]
 第1のNIC434,第2のNIC435は,ネットワーク通信を行うための専用基板であり,データ通信部として機能する。なお,NICは,1つだけ,または,3つ以上であってもよい。
[0072]
 図7において,第1の仮想マシン441_1~第qの仮想マシン441_qは,仮想化されたハードウェアにより情報処理を実行する。このハードウェアとは,図6において,例えば,CPU431,メモリ432,記録部433,第1のNIC434,第2のNIC435である。
[0073]
 仮想化ソフトウェア442は,このハードウェアを仮想化し,仮想化したハードウェアを第1の仮想マシン441_1~第qの仮想マシン441_qに割り当て,第1の仮想マシン441_1~第qの仮想マシン441_qを動作させるための基盤ソフトウェアである。
[0074]
 全体管理部443は,仮想化ソフトウェア442,受信部444,分割データ統合部445の管理を行う。受信部444は,データの受信処理を実行する。受信部444の分割データ受信制御部444aは,分割データの受信処理を制御する。分割データ統合部445は,受信部444が受信する,マイグレーション対象の仮想マシンの分割データを統合する。分割データ配置部445aは,受信した分割データの識別子に基づき,分割データを再配置する。分割データ識別子管理部445bは,受信した分割データの識別子を管理し,受信していない分割データの有無を確認する。キャッシュ送信依頼部445cは,受信していない分割データを送信するように,例えば,情報処理システム内の全スイッチ装置に依頼する。
[0075]
 (マイグレーションの準備処理)
 以下,本実施の形態におけるマイグレーション処理を説明する。この説明では,図3の仮想マシン実行装置130_1が,仮想マシン141_1を第4のデータセンターDC40の仮想マシン実行装置430_1(図7参照)にマイグレーションする場合を例示する。
[0076]
 マイグレーション処理にあたり,仮想マシン実行装置130_1は,分割データの作成処理を実行する。図8を用いて,図3により,分割データの作成処理について説明する。
[0077]
 図8は,図3で説明する,各種情報が付加された分割データを模式的に示す図である。
[0078]
 図3の仮想マシン141_1は,実際に各種情報処理を実行しているとする。例えば,仮想マシン141_1は,情報処理プログラムを実行し,情報処理プログラムにより得た演算結果などのデータを随時,メモリ132(図2参照)に記録している。
[0079]
 ここで,仮想マシン実行装置130_1から,仮想マシン実行装置130_1が実行する仮想マシンを第4のデータセンターDC40の仮想マシン実行装置430_1(図1参照)にマイグレーションするように,管理者が,操作部(図示しない)を介して,仮想マシン実行装置130_1に指示する。換言すれば,管理者は,操作部を介して,仮想マシン実行装置130_1に仮想マシンの移動指示を行う。
[0080]
 図3の全体管理部143は,操作部からのこの指示に応答して,データ分割部144にマイグレーション対象の仮想マシンに関連するデータを分割するように指示する。
[0081]
 ここで,マイグレーション対象の仮想マシンに関連するデータについて説明する。このデータには,2種類のデータがある。
[0082]
 第1の種類は,マイグレーション対象の仮想マシンが実行中の情報処理に関連する第1のデータである。換言すれば,第1のデータは,マイグレーション対象の仮想マシンに割り当てられているメモリ132(図2参照)の領域において実際に記録されているデータである。例えば,第1のデータは,マイグレーション対象の仮想マシンが前記した情報処理プログラムを実行している場合,前記メモリ領域に記録されている,この情報処理プログラムの変数やスタックである。以下,第1のデータをコンテキストデータと適宜記す。
[0083]
 第2の種類は,マイグレーション対象の仮想マシンが実行中の情報処理に関連しない第2のデータである。換言すれば,第2のデータは,マイグレーション対象の仮想マシンに割り当てられているメモリ132の領域において記録されているコンテキストデータ以外のデータである。他にも,第2のデータは,マイグレーション対象の仮想マシンに割り当てられている記録部133の領域に記録されているデータである。例えば,第2のデータは,マイグレーション対象の仮想マシンが実行するアプリケーション(ソフトウェアとも言う)や,アプリケーションやハードウェアの設定情報(コンフィグレーションデータとも言う)である。以下,第2のデータを非コンテキストデータと適宜記す。
[0084]
 データ分割部144は,全体管理部143からのデータの分割指示に応答して,マイグレーション対象の仮想マシンに関連するデータを所定データ単位で分割する。以下,所定データ単位とは,例えば,一定のデータサイズや,データ通信を行う場合に最適なデータサイズである。以下の説明では,所定データ単位を,例えば,10Mbyteとする。
[0085]
 データ分割部144の分割データ識別子付加部144aは,分割データを一意に識別する分割データ識別子をこの分割データに付加する。
[0086]
 そして,コンテキスト識別部144bは,この分割データが,コンテキストデータか,または,非コンテキストデータかを識別する。さらに,コンテキスト識別子付加部144cは,この分割データが,コンテキストデータか,または,非コンテキストデータかを示すコンテキスト識別子をこの分割データに付加する。具体的には,コンテキスト識別子付加部144cは,この分割データが,コンテキストデータの場合には,この分割データに"1"を付加する。コンテキスト識別子付加部144cは,この分割データが,非コンテキストデータの場合には,この分割データに"0"を付加する。
[0087]
 そして,データ分割部144は,さらに,この分割データに,移動元の仮想マシン140_1を識別する識別子,および,移動先の仮想マシン実行装置430_1を識別する識別子を付加する。移動元の仮想マシン140_1,移動先の仮想マシン実行装置430_1を識別する識別子は,例えば,移動元の仮想マシン140_1,移動先の仮想マシン実行装置430_1のIPアドレスである。
[0088]
 前記した識別子が付加された分割データが送信対象の分割データ(マイグレーション対象の分割データ)である。
[0089]
 なお,マイグレーション対象の仮想マシンに割り当てられているメモリ132(図2参照)の領域に記録されているデータを分割したデータを分割メモリデータと適宜記す。また,マイグレーション対象の仮想マシンに割り当てられている記録部133の領域に記録されているデータを分割したデータを分割VMデータと適宜記す。
[0090]
 図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で示す分割メモリデータに付加する。
[0091]
 符号1020は,分割VMデータに前記した識別子を付加した状態を模式的に示す。
[0092]
 データ分割部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データに付加する。
[0093]
 データ分割部144は,前記したように,マイグレーション対象の仮想マシン141_1に関連するデータを所定データ単位で分割し,識別子を付加する。そして,データ分割部144は,図2に示すように,識別子を付加したデータとして,分割メモリデータ151_1~151_m,分割VMデータ152_1~152_nを記録部133に記録する。
[0094]
 図9は,図3で説明する,分割データに関する各種情報を記録するテーブルの一例である。
[0095]
 図3の全体管理部143は,データ分割部144に対するデータの分割指示と同時に,図9の分割データテーブル153を作成し,記録部133(図2参照)に記録する。図9の分割データテーブル153は,移動元のIPアドレス欄と,移動先のIPアドレス欄と,分割データ情報欄と,サイズ欄とを有する。分割データ情報欄は,識別子欄とコンテキスト識別子欄とを有する。分割データテーブル153は,分割データを識別する分割データ識別子を記録した識別子記録テーブルである。
[0096]
 データ分割部144は,分割データに付加した,移動元の仮想マシン140_1のIPアドレス"0.1.2.3"と移動先の仮想マシン実行装置430_1のIPアドレス"1.2.5.7"とを,それぞれ分割データテーブル153の移動元のIPアドレス欄と,移動先のIPアドレス欄に記録する。分割データ識別子付加部144aは,この分割データに付加した分割データ識別子を分割データテーブル153の識別子欄に記録する。さらに,コンテキスト識別子付加部144cは,この分割データに付加したコンテキスト識別子を分割データテーブル153のコンテキスト識別子欄に記録する。さらに,全体管理部143は,この分割データのデータサイズを,分割データテーブル153のデータサイズ欄に記録する。
[0097]
 以上説明した,分割データテーブル153の記録処理により,分割データテーブル153には,分割データ毎の,移動元IPのアドレス(0.1.2.3),移動先のIPアドレス(1.2.5.7),識別子(ID151_1~ID151m,ID152_1~ID152_n),コンテキスト識別子(1または0),データサイズ(10Mbyte)が記録される。
[0098]
 分割データテーブル153は,各データセンターDC20,DC30,DC40のスイッチ装置210,310,410(図1参照)が分割データの記録処理を実行する際に参照される。他にも,分割データテーブル153は,移動先の仮想マシン実行装置430_1が,マイグレーション対象の仮想マシン140_1の全分割データの中で,未だ受信していないデータを確認する際にも参照させる。
[0099]
 図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の使用可能帯域である。
[0100]
 図10は,図3で説明する,仮想マシンに割り当てられているハードウェア資源量を記録するテーブルの一例である。
[0101]
 HWテーブル154は,割当クロック数欄と,割当メモリ量と,割当HDD量と,割当ネットワーク帯域欄とを有する。割当クロック数欄は,仮想マシンに割り当てられているCPUのクロック数を記録し,割当メモリ量は,仮想マシンに割り当てられているメモリの容量(メモリの領域)を記録する。割当HDD量欄は,仮想マシンに割り当てられているHDDの容量を記録し,割当ネットワーク帯域欄は,仮想マシンに割り当てられている通信ネットワークの帯域幅を記録する。
[0102]
 図3の全体管理部143は,図10のHW割当テーブル154において,マイグレーション対象の仮想マシン141_1に割り当てられているCPUのクロック数を2.0GHzと記録し,メモリ量を2GBと記録し,HDD容量を100GBと記録し,ネットワーク帯域を1Gbpsと記録する。
[0103]
 (移動先の第4のデータセンターDC40への送信処理)
 図3で説明したように,マイグレーション対象の仮想マシンに関連するデータの分割処理の終了後,全体管理部143は,以下の処理を実行する。すなわち,全体管理部143は,分割データテーブル153とHW割当テーブル154を,移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信するように送信部146に指示する。
[0104]
 送信部146は,この送信指示に応答して,分割データテーブル153とHW割当テーブル154を,図7の移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信する。このような分割データテーブル153,HW割当テーブル154は,データ量が少ないので,仮想マシン実行装置430_1に速やかに送信される。
[0105]
 図7の仮想マシン実行装置430_1の受信部444は,分割データテーブル153とHW割当テーブル154を受信すると,これらを全体管理部443に出力する。全体管理部443は,この出力に応答して,記録部433(図6参照)に,分割データテーブル153とHW割当テーブル154を記録する。
[0106]
 そして,全体管理部443は,HW割当テーブル154に基づき,仮想マシンを構築するように仮想化ソフトウェア442に指示する。仮想化ソフトウェア442は,この指示に応答して,HW割当テーブル154に記録されたハードウェア資源量を割り当てた仮想マシンを構築する処理を実行する。ここでは,仮想化ソフトウェア442は,例えば,仮想マシン441_qを構築する。
[0107]
 次に,図1~図3に基づき,キャッシュ依頼,および,分割データの送信について説明する。
[0108]
 図3の全体管理部143は,例えば,前記した分割データの作成開始時点,作成途中,作成終了後に,キャッシュ処理依頼部145にキャッシュ依頼を行うように指示する。
[0109]
 キャッシュ処理依頼部145は,このキャッシュ依頼指示に応答して,スイッチ装置110,210,310,410(図1参照)に,分割データのキャッシュ依頼を行うと共に,図9の分割データテーブル153を送信する。
[0110]
 次いで,図3の全体管理部143は,分割データである分割メモリデータ151_1~151_m,分割VMデータ152_1~152_nを読み出し,送信部146に出力する。この際,全体管理部143は,コンテキスト識別子が"1"の分割データ,すなわちコンテキストデータである分割データを優先的に読み出し,送信部146に出力する。そして,全体管理部143は,移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信するように送信部146に指示する。
[0111]
 送信部146は,全体管理部143が出力した分割データを,第1のNIC134,第2のNIC135を介して,スイッチ装置110に順次送信する。送信部146は,2つのNICを介して,分割データを送信することで,分割データの送信処理を迅速に実行する。
[0112]
 以上説明したように,送信部146は,コンテキストデータである分割データを非コンテキストデータである分割データよりも優先して送信する。送信部146は,コンテキストデータである分割データを優先的に送信することで,マイグレーション先の仮想マシン実行装置430_1(図7参照)において,マイグレーションされた仮想マシンが迅速に情報処理を実行できる。
[0113]
 なお,図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の作成が終了しないからである。
[0114]
 (キャッシュ依頼,分割データテーブルの受信)
 図1,図3~図5に基づき,キャッシュ依頼,分割データテーブルの受信処理について説明する。
[0115]
 図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を自装置内の記録部に記録する。
[0116]
 このキャッシュ依頼の受信と,分割データテーブル153の記録処理について,図5のスイッチ装置210を例示して説明する。
[0117]
 スイッチ装置210の受信部234は,キャッシュ依頼,分割データテーブル153を受信する。このとき,依頼監視部234aは,キャッシュ依頼の受信を常時監視している。依頼監視部234aは,受信部234がキャッシュ依頼を受信すると,キャッシュ依頼を受信したことを全体管理部231に通知する。全体管理部231は,この通知に応答して,受信部234が受信した分割データテーブル153を記録部213(図4参照)に記録する。
[0118]
 他のスイッチ装置110,310,410(図1参照)も同様に,以上説明したように,分割データテーブル153の記録処理を実行する。
[0119]
 (分割データのキャッシュ処理)
 図1,図3~図5に基づき,分割データのキャッシュ処理について説明する。以下の説明において,図1におけるスイッチ装置110とスイッチ装置310間にデータ通信のボトルネックが発生しているとする。さらに,スイッチ装置210とスイッチ装置410との間にデータ通信のボトルネックが発生しているとする。このボトルネック発生の原因としては,例えば,何らかの原因で,スイッチ装置110とスイッチ装置310間のネットワーク帯域,スイッチ装置210とスイッチ装置410との間のネットワーク帯域が減少している場合である。他にも,スイッチ装置310とスイッチ装置410との間で多量のデータ通信処理が行われており,その結果,スイッチ装置310,スイッチ装置410の処理負荷が増大しているためである。
[0120]
 この状況下,第1のデータセンターDC10のスイッチ装置110は,仮想マシン実行装置130_1から送信された分割データを第2のデータセンターDC20のスイッチ装置210に転送する。スイッチ装置110が,この分割データを第3のデータセンターDC30のスイッチ装置310に転送しないのは,前記したようにスイッチ装置110とスイッチ装置310との間でデータ通信のボトルネックが発生しているからである。
[0121]
 図5のスイッチ装置210の送信可能判定部233は,スイッチ装置110(図1参照)から送信される分割データを送信先のスイッチ装置410(図1参照)に送信可能か判定する。
[0122]
 この判定において,送信可能判定部233は,例えば,データ送信先のスイッチ装置に分割データの送信が可能か,換言すれば,データ送信先のスイッチ装置は分割データの受信が可能かを問い合わせる確認信号を送信する。データ送信先のスイッチ装置は,分割データの受信が可能な場合には,この確認信号に応答して肯定応答(ACK:ACKnowledgement)を返信する。一方,データ送信先のスイッチ装置は,分割データの受信が不可能な場合には,否定応答(NAK:Negative ACKnowledgement)を返信する。
[0123]
 データ送信先のスイッチ装置が分割データの受信が可能な場合とは,例えば,このスイッチ装置における情報処理量が所定の処理量以下の場合である。他にも,このスイッチ装置におけるネットワーク帯域幅の使用帯域幅が,所定帯域幅以下の場合である。この場合,送信先のスイッチ装置は,肯定応答を返信する。
[0124]
 一方,データ送信先のスイッチ装置が分割データの受信が不可能な場合とは,例えば,このスイッチ装置における情報処理量が所定の処理量を超えている場合である。他にも,このスイッチ装置におけるネットワーク帯域幅の使用帯域幅が,所定帯域幅を超えている場合である。この場合,送信先のスイッチ装置は,否定応答を返信する。
[0125]
 なお,他にも,送信可能判定部233は,データ送信先のスイッチ装置に接続するネットワークの使用帯域幅を検知し,ネットワークの使用帯域幅が所定の帯域以上か検知してもよい。送信可能判定部233は,ネットワーク帯域幅が所定の帯域以上の場合,データの送信先のスイッチ装置に分割データの送信が可能と判定する。一方,送信可能判定部233は,ネットワーク帯域幅が所定の帯域未満の場合,データ送信先のスイッチ装置に分割データの送信が不可能と判定する。
[0126]
 全体管理部231は,送信可能判定部233が,データ送信先のスイッチ装置に分割データを送信することが不可能と判定すると,受信部234が受信した分割データを記録部213(図4参照)に記録するように,分割データ受信制御部234bに指示する。分割データ受信制御部234bは,この記録指示に応答して,この分割データを記録部213に記録する。このとき,分割データ受信制御部234bは,受信部234が受信した分割データの識別子を参照し,図9の分割データテーブル153に記録された分割データの識別子を有する分割データを記録部213に記録する。分割データ受信制御部234bは,この記録処理により,不要なデータの記録処理を実行せず,マイグレーション対象の仮想マシンに関連する分割データのみを記録する。
[0127]
 分割データ受信制御部234bは,前記した記録処理により,受信した分割データとして,分割メモリデータ151_1~151_m,分割VMデータ152_1~152_nを記録部213(図4参照)に記録する。
[0128]
 さらに,全体管理部231は,記録部213に記録(キャッシュ)した分割データに係るデータを例えば,テーブル形式で記録する。分割データに係るデータとは,図9の分割データテーブル153に記録されている各データである。具体的には,この分割データの移動元および移動先のIPアドレスと,この分割データの識別子と,この分割データのコンテキスト識別子と,この分割データのデータサイズである。前記の例の場合,全体管理部231は,図9の分割データテーブル193と同じテーブルを記録する。
[0129]
 なお,送信可能判定部233が,データ送信先のスイッチ装置に分割データを送信可能と判定すると,全体管理部231は,受信部234が受信した分割データを送信部235に出力するように,分割データ受信制御部234bに指示する。分割データ受信制御部234bは,この出力指示に応答して,この分割データを送信部235に出力する。送信部235の分割データ送信制御部235bは,入力される分割データを送信先のスイッチ装置に順次送信する。
[0130]
 (キャッシュした分割データの送信処理)
 図4,図5に基づき,キャッシュした分割データの送信処理について説明する。
[0131]
 図5のスイッチ装置210の全体管理部231は,図4の記録部213に分割データが記録されているか判定する。
[0132]
 図5の送信可能判定部233は,図4の記録部213に分割データが記録されている場合,データ送信先のスイッチ装置にデータを送信可能な否かを所定の間隔毎に問い合わせる。この所定の間隔とは,例えば,1分,10分など任意に変更可能である。他にも,図7のキャッシュ送信依頼部445cが,キャッシュした分割データの送信依頼を行い,図5の依頼監視部234aが,この送信依頼を受信した場合に,送信可能判定部233は,前記した問い合わせを実行してもよい。
[0133]
 このとき,図1において,第2のデータセンターDC20のスイッチ装置210と第4のデータセンターDC40のスイッチ装置410との間のネットワークのボトルネックが解消されているとする。そのため,図5の送信可能判定部233は,データ送信先のスイッチ装置に分割データを送信可能と判定する。
[0134]
 図5の送信可能判定部233は,データ送信先のスイッチ装置にデータを送信可能と判定した場合,その旨を全体管理部231に通知する。全体管理部231は,この通知に応答して,図4の記録部213の分割データを送信するように送信部235に指示する。送信部235の分割データ送信制御部235aは,この送信指示に応答して,コンテキスト識別子が"1"であり,分割データ識別子が小さい分割データからデータ送信のスイッチ装置に順次送信する。ここでも,分割データ送信制御部235aは,記録部213の分割データの中で,コンテキストデータである分割データを,非コンテキストデータである分割データよりも優先して送信する。
[0135]
 分割データ送信制御部235aは,コンテキスト識別子が"1"の分割データの送信処理が終了すると,コンテキスト識別子が"0"であり,分割データ識別子が小さい分割データから順に,データ送信先のスイッチ装置に順次送信する。なお,分割データの送信処理の過程において,全体管理部231は,送信された分割データの識別子を,記録部213(図4参照)に記録する。そして,全体管理部231は,送信された分割データの識別子を有する,記録部213の分割データが全て送信されると,記録部213の分割データテーブル153を消去する。
[0136]
 図4の記録部213の例では,分割データ送信制御部235aは,分割メモリデータ151_1~151_m,分割VMデータ152_1~152_nの順に分割データを第4のデータセンターDC40のスイッチ装置410に送信する。
[0137]
 以上の分割データの送信処理により,第4のデータセンターDC40のスイッチ装置410は,分割データを順次受信する。
[0138]
 (移動先のデータセンターでの処理)
 図1,図6,図7に基づき,移動先の第4のデータセンターDC40で実行される処理について説明する。
[0139]
 図1において,第4のデータセンターDC40のスイッチ装置410は,第2のデータセンターDC20のスイッチ装置210から送信される分割データを受信し,仮想マシン実行装置430_1に転送する。
[0140]
 図7の受信部444の分割データ受信制御部444aは,受信部444が受信した分割データを,図6の記録部433に記録する。分割データ受信制御部444aは,前記した記録処理により,受信した分割データとして,分割メモリデータ151_1~151_m,分割VMデータ152_1~152_nを記録部433に記録する。
[0141]
 そして,分割データ識別子管理部445bは,記録部433に記録した分割データの識別子と,記録部433の分割データテーブルの識別子欄とを参照し,まだ,記録部433に記録していない分割データ,すなわち,受信していない分割データがあるか確認する。キャッシュ送信依頼部445cは,受信していない分割データがある場合,この分割データの識別子を指定して,この分割データを送信するように,情報処理システム1のスイッチ装置110,210,310,410(図1参照)に依頼する。この依頼を以下,キャッシュ送信依頼と適宜記す。
[0142]
 前記の例の場合,図5のスイッチ装置210が分割データのキャッシュ処理を実行した。そのため,スイッチ装置210の依頼監視部234aは,このキャッシュ送信依頼を受信すると,送信可能判定部233は,データ送信先のスイッチ装置にデータを送信可能な否かを所定の間隔毎に問い合せる。そして,送信可能判定部233が,送信可能と判定した場合,送信部235の送信制御部235aは,キャッシュした分割データの送信処理を実行する。
[0143]
 さて,全体管理部443は,この分割データの受信,記録処理の過程で,記録部433(図6参照)の分割データを統合するように,分割データ統合部445に指示する。分割データ統合部445の分割データ配置部445aは,受信した分割データの識別子に基づき,分割データを記録部433において再配置する。
[0144]
 そして,分割データ配置部445aは,記録部433(図6参照)における分割メモリデータ151_1~151_mの中で,コンテキスト識別子”1”,すなわちコンテキストデータを優先的に,仮想マシン441_qに割り当てられたメモリ432(図6参照)の領域に展開する。
[0145]
 次いで,分割データ配置部445aは,記録部433における分割メモリデータ151_1~151_mの中で,コンテキスト識別子”0”,すなわち,非コンテキストデータを仮想マシン441_qに割り当てられたメモリ432に展開する。
[0146]
 次いで,全体管理部443は,このメモリ432に展開された分割メモリデータ,さらに,記録部433の分割VMデータに基づき,仮想マシン441_qを実行するように,仮想化ソフトウェア441_qに指示する。
[0147]
 その結果,移動元の仮想マシン実行装置130_1で実行していた仮想マシン140_1と同じ仮想マシン(図7の仮想マシン441_q)は,この仮想マシン140_1がマイグレーション前に実行していた情報処理の内容を継続しながら,移動先の仮想マシン実行装置430_1で動作する。これは,移動元の仮想マシン実行装置130_1で実行していた仮想マシン140_1のコンテキストデータを移動先の仮想マシン実行装置430_1のメモリ432に展開しているからである。
[0148]
 また,前記したように,移動先の仮想マシン実行装置430_1の分割データ配置部445aは,コンテキストデータを優先的に,仮想マシン441_qに割り当てられたメモリ432(図6参照)の領域に展開していた。この展開処理を実行するため,分割データ配置部445aは,記録部433(図6参照)からコンテキストデータを読み出さなければならないので時間が掛かる。
[0149]
 しかし,前記したようにコンテキストデータが優先的に送信されるので,分割データ受信制御部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を迅速に動作させることができる。
[0150]
 なお,仮想マシン441_qが動作したタイミングで,移動先の仮想マシン実行装置430_1の全体管理部431は,全スイッチ装置110,210,310,410(図1参照)にキャッシュクリア依頼を行っても良い。このキャッシュクリア依頼を受けたスイッチ装置110,210,310,410は,キャッシュしていた分割データや,分割データテーブルを記録部から消去(クリア)する。
[0151]
 (移動元の仮想マシン実行装置130_1で実行するマイグレーション処理の流れ)
 図11は,図3の移動元の仮想マシン実行装置130_1が実行するマイグレーション処理の流れの一例を説明するフロー図である。なお,図3で説明したように,仮想マシン実行装置130_1は,仮想マシン141_1をマイグレーション対象の仮想マシンとする。
[0152]
 ステップS1:図3のデータ分割部144は,仮想マシン141_1の分割データを作成し,図2の記録部133に記録する。具体的には,データ分割部144は,マイグレーション対象の仮想マシン141_1に関連するデータを所定データ単位で分割する。そして,データ分割部144は,移動元の仮想マシン140_1のIPアドレス,移動先の仮想マシン実行装置430_1のIPアドレスを分割データに付加する。さらに,分割データ識別子付加部144aは,この分割データに分割データ識別子を付加し,コンテキスト識別部144bは,この分割データにコンテキスト識別子を付加する。
[0153]
 ステップS2: 図3の全体管理部143は,図9の分割データテーブル153を作成し,記録部133(図2参照)に記録する。さらに,図3の全体管理部143は,図10のHW割当テーブルを作成し,記録部133(図2参照)に記録する。
[0154]
 ステップS3: 図3の送信部146は,分割データテーブル153とHW割当テーブル154を,図7の移動先の第4のデータセンターDC40の仮想マシン実行装置430_1に送信する。
[0155]
 ステップS4:図3のキャッシュ処理依頼部145は,スイッチ装置110,210,310,410(図1参照)に,分割データのキャッシュ依頼を行うと共に,図9の分割データテーブル153を送信する。なお,スイッチ装置110,210,310,410は,図3,図5で説明したように,分割データテーブル153を自装置内の記録部に記録する。
[0156]
 ステップS5: 図3の送信部146は,分割データを,第1のNIC134,第2のNIC135(図2参照)を介して,スイッチ装置110に順次送信する。
[0157]
 (分割データのキャッシュ処理,送信処理の流れ)
 図12は,図5のスイッチ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。この処理フローは,例えば,図5の受信部234が,分割データを受信する度に実行される。
[0158]
 ステップS11: 図5のスイッチ装置210の送信可能判定部233は,スイッチ装置110(図1参照)から送信される分割データを送信先のスイッチ装置410(図1参照)に送信可能か判定する。
[0159]
 送信可能判定部233が送信不可能と判定すると(ステップS11/NO),ステップS12に移る。
[0160]
 ステップS12: 図5の分割データ受信制御部234bは,受信部234が受信した分割データを記録部213(図4参照)にキャッシュする。なお,このとき,全体管理部231は,記録部213に記録(キャッシュ)した分割データに係るデータを例えば,テーブル形式で記録する。
[0161]
 送信可能判定部233が送信可能と判定すると(ステップS11/YES),ステップS13に移る。
[0162]
 ステップS13: 送信部235の分割データ送信制御部235bは,受信部234が受信した分割データを送信先のスイッチ装置に順次送信する。
[0163]
 (キャッシュした分割データの送信処理の流れ)
 図13は,図5のスイッチ装置が実行するキャッシュした分割データの送信処理の流れの一例を説明するフロー図である。
[0164]
 ステップS21: 図5の全体管理部231は,図4の記録部213に分割データが記録(キャッシュ)されているか判定する。図4の記録部213に分割データが記録されている場合(ステップS21/YES),ステップS22に移る。
[0165]
 ステップS22: 図5の送信可能判定部233は,データ送信先のスイッチ装置にデータを送信可能か判定する。送信可能判定部233が送信可能と判定すると(ステップS22/YES),ステップS23に移る。
[0166]
 ステップS23: 図5の送信部235の分割データ送信制御部235bは,記録部213の分割データを送信先のスイッチ装置に順次送信する。
[0167]
 図4の記録部213に分割データが記録されていない場合(ステップS21/NO),処理を終了する。送信可能判定部233が送信不可能と判定すると(ステップS22/NO),ステップS22に戻る。
[0168]
 ステップS23の処理により,図6,図7で説明したように,第4のデータセンターDC40のスイッチ装置410は,第2のデータセンターDC20のスイッチ装置210から送信される分割データを受信し,仮想マシン実行装置430_1に転送する。そして,仮想マシン実行装置430_1は,転送された分割データに基づき,マイグレーション対象の仮想マシンを新たに実行する。
[0169]
 以上説明したように,第1の仮想マシン実行装置130_1は,第1の仮想マシン141_1の移動指示に応答して,第1の仮想マシン141_1に関連するデータを分割し,分割データを第1のネットワーク装置,例えば第1のスイッチ装置210を介して第2の仮想マシン実行装置430_1に送信する。
[0170]
 第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の仮想マシンを構築する。
[0171]
 第1の実施の形態によれば,移動元の仮想マシン実行装置と,移動先の仮想マシン実行装置との間に設けられたスイッチ間のネットワークにおいてボトルネックが発生している場合,ボトルネックが発生している直前のスイッチ装置が,マイグレーション対象となる仮想マシンの分割データを一時的に記録(キャッシュ)する。そのため,移動元の仮想マシン実行装置は,迅速に分割データを自装置以外のスイッチ装置に送信することができる。
[0172]
 このように,スイッチ装置が分割データの記録処理を行わない場合,ボトルネックが発生しているネットワークにおいて,分割データの送信量が著しく低下するので,移動元の仮想マシン実行装置は,迅速に分割データを他のスイッチ装置に送信することができなくなる。しかし,第1の実施の形態によれば,前記したように,スイッチ装置が分割データの記録処理を実行する。すなわち,スイッチ装置が,一時的に分割データの受け皿となる。そのため,移動元の仮想マシン実行装置は,迅速に分割データを他のスイッチ装置に送信することができる。
[0173]
 また,ボトルネックが発生しているネットワークの直前に設けられたスイッチ装置が,分割データの記録処理を行う。つまり,移動先の仮想マシン実行装置に最も近距離に設けられたスイッチ装置が,分割データの記録処理を実行する。そのため,ボトルネックが解消した場合に,このスイッチ装置が,記録した分割データを移動先の仮想マシン実行装置に送信すると,移動先の仮想マシン実行装置に分割データが迅速に到達する。その結果,仮想マシンのマイグレーションを高速に実行することができる。
[0174]
 [第2の実施の形態]
 第1の実施の形態では,図4,図5で説明したように,第2のデータセンターDC20のスイッチ装置210が,分割データを自装置内の記録部213に記録した。しかし,スイッチ装置210が,記録部213に他のデータを記録している場合や,分割データのデータサイズが大きい場合には,記録部213の空き容量不足により,送信される全分割データを記録部213に記録できないことがある。
[0175]
 このような場合,スイッチ装置210に接続しているサーバ装置250_1などを分割データの記録部として利用する。
[0176]
 (データセンターDC20の構成)
 図14,図15に基づき,第2の実施の形態におけるスイッチ装置について説明する。
[0177]
 図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は,仮想マシンのマイグレーション前には未だ記録されていない。
[0178]
 図15は,第2の実施の形態におけるスイッチ装置のソフトウェアモジュールを示すブロック図である。スイッチ装置210は,図5で説明した各ブロックに加えて,スイッチ装置210に接続するサーバ装置250_1に分割データの記録処理(キャッシュ)を依頼するキャッシュ依頼部(サーバ装置用)236と,サーバ装置250_1が記録した分割データを自装置210に送信するように依頼するキャッシュ送信依頼部(サーバ装置用)237とを有する。図15の全体管理部231は,自装置に接続するサーバ装置を識別する情報,例えば,このサーバ装置のIPアドレスを記録している。
[0179]
 図16,図17に基づき,第2の実施の形態におけるサーバ装置について説明する。
[0180]
 図16は,図14,図15のスイッチ装置210に接続するサーバ装置のハードウェア構成を示すブロック図である。
[0181]
 図17は,図14,図15のスイッチ装置210に接続するサーバ装置のソフトウェアモジュールを示すブロック図である。
[0182]
 なお,図16,図17おいては,第2のデータセンターDC20のサーバ装置250_1を例示して説明するが,図1における,他のサーバ装置250_i,サーバ装置350_1~サーバ装置350_jも同じ構成を有していてもよい。
[0183]
 図16において,サーバ装置250_1は,例えばバス(図示しない)を介して相互に接続された,CPU251と,メモリ252と,記録部253と,第1のNIC254,第2のNIC255とを有する。
[0184]
 CPU251は,サーバ装置250_1の全体を制御するコンピュータである。メモリ252は,CPU251が実行する各種情報処理において処理されるデータなどを記録する。記録部253は,図2で説明したように,例えば,不揮発性メモリ,磁気記録装置などの記録装置である。第1のNIC254,第2のNIC255は,ネットワーク通信を行うための専用基板であり,データ通信部として機能する。なお,NICは,1つだけ,または,3つ以上であってもよい。
[0185]
 図17において,全体管理部261は,受信部262,送信部263の管理を行う。受信部262は,データ受信処理を実行する。受信部262の依頼監視部262aは,キャッシュ依頼,キャッシュした分割データの送信処理など各種依頼があるか否かを監視する。受信部262の分割データ受信制御部262bは,分割データの受信処理を制御する。送信部263は,データ送信処理を実行する。送信部263の分割データ送信制御部263aは,分割データの送信処理を制御する。
[0186]
 全体管理部261,受信部262,送信部263としてとして機能するプログラムは,例えば,図16の記録部253に記録されている。そして,CPU251は,起動時に,これらのプログラムを記録部253から読み出して,メモリ252に展開することにより,これらのプログラムをソフトウェアモジュールとして機能させる。
[0187]
 (データセンターDC20のサーバ装置250_1に対するキャッシュ依頼)
 図14,図15,図18,図19に基づき,サーバ装置250_1に対するキャッシュ依頼について説明する。
[0188]
 図18は,図15のスイッチ装置210が自装置にキャッシュした分割データに係るデータを記録するテーブルの一例である。
[0189]
 図19は,図17のサーバ装置250_1に対するキャッシュ依頼対象の分割データの識別子などを記録するテーブルの一例である。
[0190]
 ここでは,第1の実施の形態で説明したように,図15のスイッチ装置210は,受信した分割データを図14の記録部213に記録している。例えば,図14の例では,図15のスイッチ装置210は,記録部213に分割メモリデータ151_1などを順次記録している。
[0191]
 このとき,全体管理部231は,記録部213に記録した分割データに関する情報を図18のキャッシュ管理テーブル155に記録する。
[0192]
 キャッシュ管理テーブル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に記録している。
[0193]
 また,図15の全体管理部231は,図14の記録部213の空き容量を監視し,分割データを記録できるか判定する。
[0194]
 図14の例では,記録部213が,分割メモリデータ151_1~151_m,分割VMデータ152_1を記録すると,記録部213の空き容量が不足して,これ以上分割データを記録できなくなるとする。
[0195]
 全体管理部231は,記録部213の空き容量不足のため,分割データを記録できないと判定した場合,キャッシュ依頼部236に,キャッシュ依頼を行うように指示する。
[0196]
 キャッシュ依頼部236は,全体管理部231からのキャッシュ依頼に応答して,サーバ装置250_1に分割データのキャッシュ処理を実行するように依頼する。
[0197]
 さらに,全体管理部231は,以後,分割データ受信部234が受信する分割データをサーバ装置250_1に送信するように送信部235に指示する。送信部235の分割データ送信制御部235は,この指示に応答して,分割データ受信部234が受信する分割データをサーバ装置250_1に送信する。前記の例では,分割データ送信制御部235は,分割VMデータ152_2~152_nをサーバ装置250_1に送信する。
[0198]
 全体管理部231は,同時に,キャッシュ依頼先の装置に送信する分割データの識別子と,キャッシュ依頼先の装置を一意に識別する識別子(例えば,IPアドレス)を,図19のキャッシュ依頼管理テーブル156に記録する。前記の例では,キャッシュ依頼先の装置は,サーバ装置250_1である。
[0199]
 キャッシュ依頼管理テーブル156は,分割データの識別子欄と,キャッシュ依頼先の装置のIPアドレス欄とを有する。
[0200]
 全体管理部231は,サーバ装置250_1に送信する分割データの識別子ID152_2~ID152_n,キャッシュ依頼先のサーバ装置250_1のIPアドレス10.11.12.13をキャッシュ依頼管理テーブル156に記録する。
[0201]
 (データセンターDC20のサーバ装置250_1におけるキャッシュ処理)
 図16,図17に基づき,サーバ装置250_1が実行する分割データのキャッシュ処理について説明する。
[0202]
 図17の受信部262は,スイッチ装置210からの分割データのキャッシュ依頼を受信する。このとき,依頼監視部262aは,キャッシュ依頼の受信を常時監視している。依頼監視部262aは,受信部262がキャッシュ依頼を受信すると,キャッシュ依頼を受信したことを全体管理部261に通知する。全体管理部261は,この通知に応答して,分割データ受信制御部262bに,受信部262が受信したスイッチ装置210からの分割データを,記録部253(図16参照)に記録するように指示する。
[0203]
 分割データ受信制御部262bは,この記録指示に応答して,受信部262が受信した分割データを記録部253(図16参照)に記録する。前記の例の場合,受信部262は,分割VMデータ152_2~152_nを受信する。分割データ受信制御部262bは,分割VMデータ152_2~152_nを記録部253に記録する。
[0204]
 (データセンター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に送信する。
[0205]
 全体管理部231は,サーバ装置250_1に分割データを記録したか判定する。全体管理部231は,例えば,記録部213にキャッシュ依頼管理テーブル156を記録している場合には,サーバ装置250_1に分割データを記録したと判定する。
[0206]
 全体管理部231は,サーバ装置250_1に分割データを記録したと判定した場合,全体管理部231は,キャッシュ送信依頼部237に,キャッシュ送信依頼を実行するように指示する。キャッシュ送信依頼部237は,このキャッシュ送信依頼指示に応答して,サーバ装置250_1に分割データの送信を実行するように依頼する。
[0207]
 図17のサーバ装置250_1の受信部262は,スイッチ装置210からの分割データのキャッシュ送信依頼を受信する。依頼監視部262aは,受信部262がキャッシュ送信依頼を受信すると,キャッシュ送信依頼を受信したことを全体管理部261に通知する。
[0208]
 全体管理部261は,この通知に応答して,送信部263の分割データ送信制御部263aに,図16の記録部253の分割データをスイッチ装置210に送信するように指示する。分割データ送信制御部263aは,この送信指示に応答して,記録部253の分割データをスイッチ装置210に送信する。なお,分割データ送信制御部263aは,コンテキスト識別子が"1"の分割データ(コンテキストデータ)を優先的に送信する。
[0209]
 図16の例では,分割データ送信制御部263aは,分割VMデータ151_2~151_mを図15のスイッチ装置210に送信する。
[0210]
 図15のスイッチ装置210の分割データ受信制御部234bは,受信部234が受信したサーバ装置250_1からの分割データを,送信部235に出力する。送信部235の分割データ送信制御部235は,入力された分割データを第4のデータセンターDC40のスイッチ装置410に送信する。
[0211]
 なお,分割データ受信制御部234bは,受信した分割データの識別子と,図19のキャッシュ依頼管理テーブル156の分割データの識別子欄に記録された識別子とを比較して,一致していている場合に,受信した分割データがサーバ装置250_1からの分割データと判定している。
[0212]
 上記で説明した処理により,スイッチ装置は,スイッチ装置に接続するサーバ装置を記録部として利用することができる。
[0213]
 (分割データのキャッシュ処理の流れ)
 図20は,図15のスイッチ装置,図17のサーバ装置が実行するキャッシュ処理の流れの一例を説明するフロー図である。図20のステップS31は図12のステップS11と同じ処理,ステップS33は図12のステップS12と同じ処理,ステップS35は図12のステップS13と同じ処理なので,その説明を適宜省略する。
[0214]
 図15の送信可能判定部233が分割データを送信不可能と判定した場合(ステップS31/YES),ステップS32に移る。
[0215]
 ステップS32:図15の全体管理部231は,受信した分割データを自装置(図14の記録部213)に記録できるか判定する。記録できる場合には(ステップS32/YES),ステップS33に移る。
[0216]
 ステップS33: 図15の分割データ受信制御部234bは,受信部234が受信した分割データを記録部213(図14参照)に記録する。なお,このとき,全体管理部231は,記録部213に記録(キャッシュ)した分割データに関する情報を図18のキャッシュ管理テーブル155に記録する。
[0217]
 受信した分割データを自装置に記録できない場合には(ステップS32/NO),ステップS34に移る。
[0218]
 ステップS34:図15の分割データ送信制御部235は,分割データ受信部234が受信する分割データを図17のサーバ装置250_1に送信して,サーバ装置250_1に分割データを記録する。図17のサーバ装置250_1の分割データ受信部262bは,受信した分割データを図16の記録部253に記録する。なお,図15の全体管理部231は,サーバ装置250_1に送信する分割データの識別子と,キャッシュ依頼先の装置を一意に識別する識別子を,図19のキャッシュ依頼管理テーブル156に記録する。
[0219]
 図15の送信可能判定部233が送信可能と判定すると(ステップS31/YES),送信部235は,分割データの送信処理を実行する(ステップS35)。
[0220]
 (キャッシュした分割データの送信処理の流れ)
 図21は,図15のスイッチ装置,図17のサーバ装置がキャッシュした分割データを,スイッチ装置が送信する処理の流れの一例を説明するフロー図である。図21のステップS41~ステップS43は,図13のフロー図のステップS21~ステップS23と同じ処理なので,適宜説明を省略する。
[0221]
 ステップS41: 図15の全体管理部231は,分割データが自装置(図14の記録部213)に記録(キャッシュ)されているか判定する。図4の記録部213に分割データが記録されている場合(ステップS41/YES),ステップS42,S43の処理に移る。
[0222]
 図4の記録部213に分割データが記録されていない場合(ステップS41/NO),ステップS44に移る。
[0223]
 ステップS44: 全体管理部231は,サーバ装置250_1に分割データを記録したか判定する。サーバ装置250_1に分割データを記録した場合(ステップS44/YES),ステップS45に移る。
[0224]
 ステップS45: 図15の送信可能判定部233は,データ送信先のスイッチ装置にデータを送信可能か判定する。送信可能判定部233が送信可能と判定すると(ステップS45/YES),ステップS46に移る。
[0225]
 ステップS46:図15のキャッシュ送信依頼部237は,図17のサーバ装置250_1に分割データの送信を実行するように依頼する。図17のサーバ装置250_1の送信制御部263は,自装置(図16の記録部253)の分割データを図15のスイッチ装置210に送信する。
[0226]
 ステップS47:スイッチ装置210の分割データ送信制御部235は,受信部234が受信したサーバ装置250_1からの分割データを送信先のスイッチ装置に順次送信する。なお,ステップS43,ステップS47が終了すると,ステップS41に戻る。
[0227]
 上記の説明では,スイッチ装置210は,サーバ装置250_1に対してキャッシュ依頼を実行したが,同一データセンターDC20内におけるサーバ装置250_1以外の他のサーバ装置にもキャッシュ依頼を実行してもよい。このようにすることで,より多くの分割データのキャッシュが可能になる。
[0228]
 第2の実施の形態によれば,スイッチ装置が分割データをキャッシュできない場合でも,スイッチ装置に接続するサーバ装置を利用して,分割データのキャッシュ処理を実行することができる。そのため,スイッチ装置は,このサーバ装置を利用してより多くの分割データをキャッシュすることができる。
[0229]
 [第3の実施の形態]
 第2の実施の形態では,スイッチ装置は,自装置の記録部に分割データを記録できない場合には,自装置に接続するサーバ装置に分割データの記録処理を依頼した。しかし,自装置に接続するサーバ装置の記録部の空き容量が不足している場合には,このサーバ装置は,分割データの記録処理を実行することができない。他にも,スイッチ装置に接続するサーバ装置が起動していない場合も,同様に,このサーバ装置は,分割データの記録処理を実行することができない。
[0230]
 このような場合,他のスイッチ装置が,分割データの記録処理を実行する。
[0231]
 第3の実施の形態では,他のスイッチ装置,この他のスイッチ装置に接続するサーバ装置が,分割データをキャッシュする場合を説明する。
[0232]
 (情報処理システム)
 図22は,第3の実施の形態における情報処理システム3の概略構成図である。情報処理システム3は,図1の情報処理システム1で説明した第1のデータセンターDC10~第4のデータセンターDC40に加えて,更に,第5のデータセンターDC50を有する。なお,図22において,第1のデータセンターDC10,第3のデータセンターDC30,第4のデータセンターDC40の内部構成については,図面の構成上省略している。
[0233]
 第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とネットワーク接続する。
[0234]
 第5のデータセンターDC50のスイッチ装置510は,さらに,第5のデータセンターDC50内の第1のサーバ装置550_1~第rのサーバ装置550_rとネットワーク接続する。
[0235]
 (第2のデータセンターDC20のスイッチ装置210)
 図23は,図22の第3の実施の形態におけるスイッチ装置210のソフトウェアモジュールを示すブロック図である。スイッチ装置210は,図15で説明した各ブロックに加えて,スイッチ装置210に接続するスイッチ装置に分割データの記録処理(キャッシュ)を依頼するキャッシュ依頼部(スイッチ装置用)238を有する。なお,図14で説明したスイッチ装置210のCPU211が,図14で説明したように,図23のソフトウェアモジュールを実行する。
[0236]
 (第5のデータセンターDC50のスイッチ装置510)
 図24,図25に基づき,第5のデータセンターDC50のスイッチ装置510について説明する。
[0237]
 図24は,図22の第3の実施の形態における他のスイッチ装置510のハードウェア構成を示すブロック図である。
[0238]
 図25は,図22の第3の実施の形態における他のスイッチ装置510のソフトウェアモジュールを示すブロック図である。
[0239]
 図24において,CPU511と,メモリ512と,記録部513と,スイッチング部514と,第1のNIC515,第2のNIC516は,図14のCPU211と,メモリ212と,記録部213と,スイッチング部214と,第1のNIC215,第2のNIC216と同機能を有する。
[0240]
 図25において,全体管理部531,トポロジ管理部532,送信可能判定部533,受信部534,送信部535,キャッシュ依頼部(サーバ装置用)536,キャッシュ送信依頼部537は,図15の全体管理部231,トポロジ管理部232,送信可能判定部233,受信部234,送信部235,キャッシュ依頼部(サーバ装置用)236,キャッシュ送信依頼部(サーバ装置用)237と同機能を有する。
[0241]
 (第2のデータセンターDC20のスイッチ装置210が実行するキャッシュ処理)
 図16,図17,図22,図23に基づき,第2のデータセンターDC20のスイッチ装置210が実行する分割データのキャッシュ処理について説明する。
[0242]
 以下の説明では,図22の第5のデータセンターDC50のスイッチ装置510は,第1のデータセンターDC10から送信される分割データを受信し,受信した分割データを第2のデータセンターDC20のスイッチ装置210に転送している。
[0243]
 まず,図23のスイッチ装置210の全体管理部231は,自装置の記録部213(図14参照)の空き容量が不足すると,新たに受信する分割データを図17のサーバ装置250_1に記録可能か判定する。具体的には,第2の実施の形態で説明したように,図23のキャッシュ依頼部(サーバ装置用)236は,図17のサーバ装置250_1に分割データのキャッシュ依頼を実行する。サーバ装置250_1は,このキャッシュ依頼に応答して,分割データのキャッシュ処理を実行する。
[0244]
 ここで,サーバ装置250_1の全体管理部261が,自装置の記録部253(図16参照)の空き容量が不足し,分割データのキャッシュ処理が実行できないと判定すると,キャッシュ不可能であることを図23のスイッチ装置210に通知する。なお,この通知は,第1の実施の形態で説明した,SNMPトラップを利用して行うことができる。
[0245]
 スイッチ装置210の受信部234が,このキャッシュ不可能通知を受信すると,全体管理部231は,新たに受信する分割データを図17のサーバ装置250_1に記録不可能と判定する。そして,全体管理部231は,キャッシュ依頼部238に他のスイッチ装置にキャッシュ依頼を行うように指示する。キャッシュ依頼部238は,このキャッシュ依頼指示に応答して,他のスイッチ装置にキャッシュ依頼を実行する。ここで,他のスイッチ装置(第3のネットワーク装置)とは,スイッチ装置210(自装置)を基準にして,移動元の仮想マシン実行装置130_1側に設けられたスイッチ装置である。図22の場合,第5のデータセンターDC50のスイッチ装置510である。なお,この他のスイッチ装置を特定するための情報,例えばIPアドレスなどについては,図23のトポロジ管理部231が管理している。
[0246]
 (第5のデータセンターDC50のスイッチ装置510が実行するキャッシュ処理)
 図24,図25に基づき,第5のデータセンターDC50のスイッチ装置510が実行するキャッシュ処理について説明する。
[0247]
 図25の受信部534の依頼監視部534aは,受信部534がスイッチ装置210からのキャッシュ依頼を受信すると,図23のスイッチ装置210からのキャッシュ依頼を受信したことを全体管理部531に通知する。なお,このとき,図22の第1のデータセンターDC10のスイッチ装置から送信される分割データを,受信部534が受信しているとする。
[0248]
 全体管理部531は,この通知に応答して,分割データ受信制御部534bに,受信部534が受信した分割データを図24の記録部513に順次記録するように,分割データ受信制御部534bに指示する。分割データ受信制御部534bは,この記録指示に応答して,この分割データを記録部513に記録する。
[0249]
 図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を自装置に記録している。
[0250]
 さらに,図25のスイッチ装置510は,自装置で分割データをキャッシュできなくなると,第2の実施の形態の図22で説明したように,スイッチ装置510に接続するサーバ装置550_1などに分割データのキャッシュ依頼を実行する。
[0251]
 そして,図25のスイッチ装置510は,第2の実施の形態の図21で説明したように,自装置や自装置に接続するサーバ装置550_1などに記録した分割データの送信処理を実行する。
[0252]
 (スイッチ装置におけるキャッシュ処理の流れ)
 図26は,図22の第3の実施の形態におけるスイッチ装置210,510におけるキャッシュ処理の流れの一例を説明するフロー図である。
[0253]
 図26のステップS51~ステップS53,ステップS55,ステップS58は,図20のステップS31~ステップS33,ステップS34,ステップS35と同じ処理なので,適宜説明を省略する。
[0254]
 図23のスイッチ装置210は,ステップS51,ステップS52の処理を順次実行する。図23の全体管理部231は,ステップS52において,受信した分割データを自装置(図14の記録部213)に記録できないと判定した場合(ステップS52/NO),ステップS54に移る。
[0255]
 ステップS54:図23の全体管理部231は,新たに受信する分割データを自装置に接続するサーバ装置に記録可能か判定する。記録可能と判定すると(ステップS54/YES),ステップS55に移る。記録不可能と判定すると(ステップS54/NO),ステップS56に移る。
[0256]
 ステップS56:図23のキャッシュ依頼部(スイッチ装置用)238は,他のスイッチ装置,前記の例では,第5のデータセンターDC50のスイッチ装置510にキャッシュ依頼を行う。
[0257]
 ステップS57: 図25のスイッチ装置510の分割データ受信制御部534bは,受信部534が受信した分割データを図24の記録部513に順次記録する。
[0258]
 第3の実施の形態で説明したように,スイッチ装置が,自装置および自装置に接続するサーバ装置に分割データをキャッシュできなくなると,他のスイッチ装置に分割データのキャッシュ処理を実行させることで,多量の分割データをスイッチ装置,サーバ装置にキャッシュできる。特に,移動元の第1のデータセンターDC10と,移動先の第4のデータセンターDC40とのネットワーク経路上に多数のスイッチ装置が配置されている場合には,これらのスイッチ装置が,再帰的に分割データのキャッシュ処理を実行するので,より多量の分割データをスイッチ装置,サーバ装置にキャッシュできる。
[0259]
 [第4の実施の形態]
 第3の実施の形態では,スイッチ装置が,他のスイッチ装置にキャッシュ依頼を実行した。この他のスイッチは,図22において,移動元の第1のデータセンターDC10と移動先のデータセンターにおけるDC40との間のネットワーク経路(接続経路)に設けられたスイッチ装置510である。このような,移動元の第1のデータセンターDC10と移動先のデータセンターにおけるDC40との間のネットワーク経路は,同一トポロジとも呼ばれる。
[0260]
 第4の実施の形態では,あるスイッチ装置が,このような移動元の第1のデータセンターDC10と移動先の第4のデータセンターDC40との間のネットワーク経路から分岐したネットワーク経路,換言すれば,同一トポロジ外のトポロジに設けられたスイッチ装置にキャッシュ依頼を実行する場合について説明する。
[0261]
 (情報処理システム)
 図27は,第4の実施の形態における情報処理システム4の概略構成図である。情報処理システム4は,図22の情報処理システム3で説明した第1のデータセンターDC10~第5のデータセンターDC50に加えて,更に,第6のデータセンターDC60を有する。図27において同一トポロジを符号STで示す破線で囲う。
[0262]
 第6のデータセンターDC60は,第2のデータセンターDC20に接続するデータセンターであり,移動元の第1のデータセンターDC10と移動先のデータセンターにおけるDC40との間のネットワーク経路から分岐したネットワーク経路に設けられている。換言すれば,第6のデータセンターDC60は,符号STで示す同一トポロジと異なるトポロジのデータセンターである。
[0263]
 第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とネットワーク接続する。
[0264]
 (第2のデータセンターDC20のスイッチ装置210)
 図28は,図27の第4の実施の形態におけるスイッチ装置210のソフトウェアモジュールを示すブロック図である。スイッチ装置210は,図25で説明した各ブロックに加えて,異なるトポロジの他のスイッチ装置にキャッシュした分割データの送信処理を依頼するキャッシュ送信依頼部(スイッチ装置用)239を有する。異なるトポロジの他のスイッチ装置を特定するための情報,例えばIPアドレスなどについては,トポロジ管理部231が管理している。
[0265]
 なお,図14で説明したスイッチ装置210のCPU211が,図14で説明したように,図28のソフトウェアモジュールを実行する。
[0266]
 (第6のデータセンターDC60のスイッチ装置610)
 図29,図30に基づき,異なるトポロジの第6のデータセンターDC60のスイッチ装置610について説明する。
[0267]
 図29は,図27の第4の実施の形態における異なるトポロジのスイッチ装置610のハードウェア構成を示すブロック図である。
[0268]
 図30は,図27の第4の実施の形態における異なるトポロジのスイッチ装置610のソフトウェアモジュールを示すブロック図である。
[0269]
 図29において,CPU611と,メモリ612と,記録部613と,スイッチング部614と,第1のNIC615,第2のNIC616は,図14のCPU211と,メモリ212と,記録部213と,スイッチング部214と,第1のNIC215,第2のNIC216と同機能を有する。
[0270]
 図30において,全体管理部631,トポロジ管理部632,送信可能判定部633,受信部634,送信部635,キャッシュ依頼部(サーバ装置用)636,キャッシュ送信依頼部637は,図15の全体管理部231,トポロジ管理部232,送信可能判定部233,受信部234,送信部235,キャッシュ依頼部(サーバ装置用)236,キャッシュ送信依頼部(サーバ装置用)237と同機能を有する。
[0271]
 (第2のデータセンターDC20のスイッチ装置210が実行するキャッシュ処理)
 図17,図25,図28に基づき,第2のデータセンターDC20のスイッチ装置210が実行する分割データのキャッシュ処理について説明する。
[0272]
 以下の説明では,図22の第5のデータセンターDC50のスイッチ装置510は,第1のデータセンターDC10から送信される分割データを受信し,受信した分割データを第2のデータセンターDC20のスイッチ装置210に転送している。また,第3の実施例で説明したように,図28のスイッチ装置210の全体管理部231は,新たに受信する分割データを図17のサーバ装置250_1に記録不可能と判定するとする。
[0273]
 全体管理部231は,この判定を行うと,キャッシュ依頼部238に他のスイッチ装置にキャッシュ依頼を行うように指示する。ここで,他のスイッチ装置とは,スイッチ装置210(自装置)を基準にして,移動元の仮想マシン実行装置130_1側に設けられたスイッチ装置である。図27の場合,同一トポロジの第5のデータセンターDC50のスイッチ装置510である。
[0274]
 図25のスイッチ装置510の依頼監視部534aは,受信部534がスイッチ装置210からのキャッシュ依頼を受信すると,図23のスイッチ装置210からのキャッシュ依頼を受信したことを全体管理部531に通知する。全体管理部531は,この通知に応答して,受信した分割データを自装置の記録部513,または,自装置に接続するサーバ装置550_1などに記録できるか判定する。
[0275]
 ここで,全体管理部531が,自装置の記録部513(図24参照),自装置に接続するサーバ装置550_1など記録部の空き容量が不足し,分割データのキャッシュ処理が実行できないと判定すると,キャッシュ不可能であることを図28のスイッチ装置210に通知する。
[0276]
 この通知により,図28のスイッチ装置210の全体管理部231は,同一トポロジの他のスイッチ装置(例えば,図25のスイッチ装置510)は,分割データのキャッシュが可能か判定することができる。
[0277]
 図28のスイッチ装置210の受信部234が,このキャッシュ不可能通知を受信すると,全体管理部231は,図25のスイッチ装置510は分割データのキャッシュが不可能(キャッシュ依頼不可能)と判定する。
[0278]
 そして,全体管理部231は,キャッシュ依頼部238に,例えば異なるトポロジの他のスイッチ装置610にキャッシュ依頼を行うように指示する。キャッシュ依頼部238は,このキャッシュ依頼指示に応答して,他のスイッチ装置610にキャッシュ依頼を実行する。
[0279]
 さらに,図28のスイッチ装置210の全体管理部231は,自装置の記録部213(図14参照)にの分割データテーブル153(図9参照)を送信部235に出力し,異なるトポロジの他のスイッチ装置610に送信するように指示する。送信部235は,この送信指示に応答して,異なるトポロジの他のスイッチ装置610に分割データテーブル153を送信する。
[0280]
 そして,全体管理部231は,以後,分割データ受信部234が受信する分割データを異なるトポロジの他のスイッチ装置610に送信するように送信部235に指示する。送信部235の分割データ送信制御部235は,この指示に応答して,分割データ受信部234が受信する分割データを異なるトポロジの他のスイッチ装置610に送信(転送)する。
[0281]
 なお,全体管理部231は,同時に,キャッシュ依頼先の装置に送信する分割データの識別子と,キャッシュ依頼先の装置を一意に識別する識別子を,キャッシュ依頼管理テーブル(図19参照)に記録する。前記の例では,キャッシュ依頼先の装置は,異なるトポロジの他のスイッチ装置610である。
[0282]
 (第6のデータセンターDC60のスイッチ装置610が実行するキャッシュ処理)
 図30のスイッチ装置610の受信部634は,キャッシュ依頼,分割データテーブル153を受信する。このとき,依頼監視部634aは,キャッシュ依頼の受信を常時監視している。依頼監視部634aは,受信部634がキャッシュ依頼を受信すると,キャッシュ依頼を受信したことを全体管理部631に通知する。全体管理部631は,この通知に応答して,受信部634が受信した分割データテーブル153を記録部613(図29参照)に記録する。
[0283]
 そして,図30の受信部634は,図28のスイッチ装置210からの分割データを受信する。受信部634の分割データ受信制御部634bは,分割データを記録部613(図29参照)に記録する。図29の例では,分割データ受信制御部534bは,記録部613に,分割VMデータ152_10~分割VMデータ152_nを記録する。
[0284]
 なお,図30のスイッチ装置610は,第2の実施の形態で説明したように,自装置の記録613(図29参照)の空き容量が不足した場合には,自装置に接続するサーバ装置650_1に分割データを記録してもよい。
[0285]
 (キャッシュした分割データの送信処理)
 図28~図30に基づき,スイッチ装置210,スイッチ装置610がキャッシュした分割データの送信処理について説明する。
[0286]
 第2の実施の形態で説明したように,図28のスイッチ装置210の送信可能判定部233が,データ送信先のスイッチ装置にデータを送信可能と判定すると,全体管理部231は,自装置の記録部213の分割データを送信するように送信部235に指示する。送信部235は,この送信指示に応答して,この分割データを送信する。
[0287]
 さらに,全体管理部231は,異なるトポロジの他のスイッチ装置610に分割データを記録したか判定する。全体管理部231は,例えば,図29の記録部213に,異なるトポロジの他のスイッチ装置610のIPアドレスが記録されたキャッシュ依頼管理テーブルを記録している場合には,異なるトポロジの他のスイッチ装置610に分割データを記録したと判定する。
[0288]
 全体管理部231は,異なるトポロジの他のスイッチ装置610に分割データを記録したと判定した場合,全体管理部231は,キャッシュ送信依頼部(スイッチ装置用)239に,キャッシュ送信依頼を実行するように指示する。キャッシュ送信依頼部239は,このキャッシュ送信依頼指示に応答して,異なるトポロジの他のスイッチ装置610に分割データの送信を実行するように依頼する。
[0289]
 図30の異なるトポロジの他のスイッチ装置610の受信部632は,スイッチ装置210からの分割データのキャッシュ送信依頼を受信する。依頼監視部634aは,受信部634がキャッシュ送信依頼を受信すると,キャッシュ送信依頼を受信したことを全体管理部631に通知する。
[0290]
 全体管理部631は,この通知に応答して,送信部635の分割データ送信制御部635aに,図29の記録部513の分割データをスイッチ装置210に送信するように指示する。分割データ送信制御部635aは,この送信指示に応答して,記録部613の分割データをスイッチ装置210に送信する。なお,分割データ送信制御部635aは,コンテキスト識別子が"1"の分割データを優先的に送信する。
[0291]
 図29の例では,分割データ送信制御部635aは,分割VMデータ151_10~151_nを図28のスイッチ装置210に送信する。
[0292]
 図28のスイッチ装置210の分割データ受信制御部234bは,受信部234が受信した異なるトポロジの他のスイッチ装置610からの分割データを,送信部235に出力する。送信部235の分割データ送信制御部235は,入力された分割データを第4のデータセンターDC40のスイッチ装置410に送信する。
[0293]
 (スイッチ装置におけるキャッシュ処理の流れ)
 図31,図32は,図27の第4の実施の形態におけるスイッチ装置におけるキャッシュ処理を説明する第1,第2のフロー図である。
[0294]
 図31のステップS61~S66は,図26のステップS51~ステップS56と同じ処理なので,適宜説明を省略する。
[0295]
 図28のスイッチ装置210は,ステップS61~ステップS64の処理を順次実行する。図28の全体管理部231は,ステップS64において,受信した分割データを自装置に接続するサーバ装置250_1などに記録できないと判定した場合(ステップS64/NO),図32のステップS71に移る。
[0296]
 ステップS71:図28のスイッチ装置210の全体管理部231は,同一トポロジの他のスイッチ装置は,分割データのキャッシュが可能か判定する。ここで,同一トポロジの他のスイッチ装置は,前記の例では,第5のデータセンターDC50のスイッチ装置510である。
[0297]
 分割データのキャッシュが可能な場合(ステップS71/YES),ステップS72に移る。なお,ステップS72,ステップS73の処理は,図26のステップS56,ステップS57の処理と同様であるので,説明を省略する。
[0298]
 分割データのキャッシュが不可能な場合(ステップS71/NO),ステップS74に移る。
[0299]
 ステップS74:図28のキャッシュ依頼部238は,異なるトポロジの他のスイッチ装置にキャッシュ依頼を行う。ここで,異なるトポロジの他のスイッチ装置は,前記の例では,第6のデータセンターDC60のスイッチ装置610である。
[0300]
 ステップS75:図28の送信部235は,異なるトポロジの他のスイッチ装置610に分割データテーブル153を送信する。
[0301]
 ステップS76:図28の送信部235の分割データ送信制御部235は,分割データ受信部234が受信する分割データを異なるトポロジの他のスイッチ装置610(図30参照)に送信する。
[0302]
 ステップS77:図30のスイッチ装置610の分割データ受信制御部634bは,受信部634が受信した分割データを記録部613(図29参照)に記録(キャッシュ)する。
[0303]
 図31,図32で説明した処理により,異なるトポロジの他のスイッチ装置は,分割データの記録処理を実行することができる。
[0304]
 なお,図27の情報処理システム4において,データセンターDC20のスイッチ装置210,データセンターDC30のスイッチ装置310(図1参照)が接続している場合を想定する。このような接続形態の場合,データセンターDC20のスイッチ装置210は,データセンターDC30のスイッチ装置310に対してキャッシュ依頼を行い,スイッチ装置310に対して分割データのキャッシュ処理を実行させてもよい。
[0305]
 本実施の形態によれば,ネットワーク上のスイッチ装置,サーバ装置を利用して,マイグレーション対象の仮想マシンの分割データを一時的に記録することができる。特に,ネットワーク経路上の多数のスイッチ装置,サーバ装置を利用して,分割データの記録処理を実行できるので,本実施の形態の情報処理システムによれば,数千,数万の単位の仮想マシンに関連する分割データの記録処理が可能になる。
[0306]
 なお,ネットワークの帯域を大きくする技術を利用して,迅速に分割データを他のスイッチ装置に送信するアプローチも考えられる。例えば,複数のネットワークを利用したマルチパスや,データセンター内に設けられたサーバ装置のNICを冗長化する技術,いわゆるボンディング(Bonding)技術である。他にも,例えば,複数の物理的な回線を仮想的に束ね,あたかも1本の回線であるかのように扱う技術,いわゆるリンクアグリゲーション(Link Aggregation)技術である。しかし,このような技術を利用しても,ネットワーク帯域を大きくすることには,限度がある。特に,数千,数万の仮想マシンのマイグレーションを実行する場合,仮に,ネットワーク帯域を大きくしても,ネットワークのボトルネックが発生してしまい,前記したように,移動元の仮想マシン実行装置は,迅速に分割データを他のスイッチ装置に送信することができなくなる。このような場合であっても,本実施の形態の情報処理システムによれば,数千,数万の単位の仮想マシンに関連する分割データの記録処理が可能になり,移動元の仮想マシン実行装置は,迅速に,他のデータセンターのスイッチ装置やサーバ装置にデータを送信することができる。

符号の説明

[0307]
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…仮想マシン実行装置。

請求の範囲

[請求項1]
 第1の仮想マシンを実行する第1の仮想マシン実行装置と,第2の仮想マシンを実行する第2の仮想マシン実行装置と,前記第1,第2の仮想マシン実行装置間に設けられ,データ通信処理を行う複数のネットワーク装置とを有し,
 前記第1の仮想マシン実行装置は,
 前記第1の仮想マシンの移動指示に応答して,前記第1の仮想マシンに関連するデータを分割し,分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し,
 前記第1のネットワーク装置は,
 前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し,送信不可能な場合,分割データを記録部に記録し,分割データを前記第2のネットワーク装置に送信可能と判定した場合,前記記録部の前記分割データを前記第2のネットワーク装置に送信し,
 前記第2の仮想マシン実行装置は,前記第1の仮想マシン実行装置から送信された分割データに基づき,前記第1の仮想マシンを構築する
 ことを特徴とする情報処理システム。
[請求項2]
 請求項1において,
 前記第1の仮想マシン実行装置は,前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを作成し,前記識別子記録テーブルを前記第1のネットワーク装置に送信し,前記分割データを識別する分割データ識別子を前記分割データに付加して送信し,
 前記第1のネットワーク装置は,前記識別子記録テーブルに記録された識別子を有する分割データを前記記録部に記録する
 ことを特徴とする情報処理システム。
[請求項3]
 請求項2において,
 前記第1の仮想マシン実行装置は,分割したデータが,前記第1の仮想マシンが実行中の情報処理に関連する第1のデータかまたは前記情報処理に関連しない第2のデータか判定し,前記分割したデータが第1のデータの場合には,前記分割したデータに第1の識別子を付加し,前記分割したデータが第2のデータの場合には,前記分割したデータに第2の識別子を付加し,前記第1の識別子を付加した分割データを前記第2の分割データよりも優先して送信する
 ことを特徴とする情報処理システム。
[請求項4]
 請求項3において,
 前記第1のネットワーク装置は,前記記録部の分割データの中で,前記第1の識別子が付加された分割データを,前記第2の識別子が付加された分割データよりも優先して送信する
 ことを特徴とする情報処理システム。
[請求項5]
 請求項4において,
 さらに,前記第1のネットワーク装置に接続するサーバ装置を有し,
 前記第1のネットワーク装置は,自装置の前記記録部に分割データを記録できるか判定し,前記自装置の記録部に前記分割データを記録できない場合,自装置に接続する前記サーバ装置に分割データを記録する
 ことを特徴とする情報処理システム。
[請求項6]
 請求項5において,
 前記第1のネットワーク装置は,自装置に接続する前記サーバ装置に分割データを記録できるか判定し,前記サーバ装置に分割データを記録できない場合,自装置に接続する第3のネットワーク装置に前記分割データを記録する依頼を行い,
 前記第3のネットワーク装置は,前記依頼に応答して,受信した分割データを自装置の記録部に記録する
 ことを特徴とする情報処理システム。
[請求項7]
 請求項6において,
 前記第3のネットワーク装置は,前記第1のネットワーク装置を基準にして,前記第1の仮想マシン実行装置側に設けられたネットワーク装置である
 ことを特徴とする情報処理システム。
[請求項8]
 請求項6において,
 前記第3のネットワーク装置は、前記第1,第2の仮想マシン実行装置の接続経路から分岐した接続経路に設けられたネットワーク装置であって,
 前記第1のネットワーク装置は,受信した分割データを前記第3のネットワーク装置に送信する
 ことを特徴とする情報処理システム。
[請求項9]
 請求項1において,
 前記第1の仮想マシン実行装置を有する第1のデータセンターと,
 前記第2の仮想マシン実行装置を有する第2のデータセンターとを有し,
 前記第1,第2のデータセンターは,地理的に離れている
 ことを特徴とする情報処理システム。
[請求項10]
 第1の仮想マシンを実行する第1の仮想マシン実行装置と,第2の仮想マシンを実行する第2の仮想マシン実行装置と,前記第1,第2の仮想マシン実行装置間に設けられ,データ通信処理を行う複数のネットワーク装置とを有する情報処理システムで実行される情報処理方法であって,
 前記第1の仮想マシン実行装置は,
 前記第1の仮想マシンの移動指示に応答して,前記第1の仮想マシンに関連するデータを分割し,分割データを前記ネットワーク装置の第1のネットワーク装置を介して前記第2の仮想マシン実行装置に送信し,
 前記第1のネットワーク装置は,
 前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2の前記ネットワーク装置に送信可能か判定し,
 送信不可能な場合,分割データを記録部に記録し,
 分割データを前記第2のネットワーク装置に送信可能と判定した場合,前記記録部の前記分割データを前記第2のネットワーク装置に送信し,
 前記第2の仮想マシン実行装置は,前記第1の仮想マシン実行装置から送信された分割データに基づき,前記第1の仮想マシンを構築する
 ことを特徴とする情報処理方法。
[請求項11]
 請求項10において,
 前記第1の仮想マシン実行装置は,前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを作成し,前記識別子記録テーブルを前記第1のネットワーク装置に送信し,前記分割データを識別する分割データ識別子を前記分割データに付加して送信し,
 前記第1のネットワーク装置は,前記識別子記録テーブルに記録された識別子を有する分割データを前記記録部に記録する
 ことを特徴とする情報処理方法。
[請求項12]
 請求項11において,
 前記第1の仮想マシン実行装置は,分割したデータが,前記第1の仮想マシンが実行中の情報処理に関連する第1のデータかまたは前記情報処理に関連しない第2のデータか判定し,前記分割したデータが第1のデータの場合には,前記分割したデータに第1の識別子を付加し,前記分割したデータが第2のデータの場合には,前記分割したデータに第2の識別子を付加し,前記第1の識別子を付加した分割データを前記第2の分割データよりも優先して送信する
 ことを特徴とする情報処理方法。
[請求項13]
 請求項12において,
 前記第1のネットワーク装置は,前記記録部の分割データの中で,前記第1の識別子が付加された分割データを,前記第2の識別子が付加された分割データよりも優先して送信する
 ことを特徴とする情報処理方法。
[請求項14]
 請求項13において,
 さらに,前記第1のネットワーク装置に接続するサーバ装置を有し,
 前記第1のネットワーク装置は,自装置の前記記録部に分割データを記録できるか判定し,前記自装置の記録部に前記分割データを記録できない場合,自装置に接続する前記サーバ装置に分割データを記録する
 ことを特徴とする情報処理方法。
[請求項15]
 請求項14において,
 前記第1のネットワーク装置は,自装置に接続する前記サーバ装置に分割データを記録できるか判定し,前記サーバ装置に分割データを記録できない場合,自装置に接続する第3のネットワーク装置に前記分割データを記録する依頼を行い,
 前記第3のネットワーク装置は,前記依頼に応答して,受信した分割データを自装置の記録部に記録する
 ことを特徴とする情報処理方法。
[請求項16]
 請求項15において,
 前記第3のネットワーク装置は,前記第1のネットワーク装置を基準にして,前記第1の仮想マシン実行装置側に設けられたネットワーク装置である
 ことを特徴とする情報処理方法。
[請求項17]
 請求項15において,
 前記第3のネットワーク装置は、前記第1,第2の仮想マシン実行装置の接続経路から分岐した接続経路に設けられたネットワーク装置であって,
 前記第1のネットワーク装置は,受信した分割データを前記第3のネットワーク装置に送信する
 ことを特徴とする情報処理方法。
[請求項18]
 第1の仮想マシンを実行する第1の仮想マシン実行装置と,第2の仮想マシンを実行する第2の仮想マシン実行装置との間に設けられ,データ通信処理を行うネットワーク装置の第1のネットワーク装置のプログラムは,
 前記第1の仮想マシン実行装置から送信される分割データを前記第2の仮想マシン実行装置側に設けられた第2のネットワーク装置に送信可能か判定し,送信不可能な場合,分割データを記録部に記録し,分割データを前記第2のネットワーク装置に送信可能と判定した場合,前記記録部の前記分割データを前記第2のネットワーク装置に送信する処理をコンピュータに実行させる
 ことを特徴とするプログラム。
[請求項19]
 請求項18において,
 前記第1の仮想マシン実行装置から送信される,前記分割データを識別する分割データ識別子を記録した識別子記録テーブルを受信し,前記記録部に記録し,
 前記識別子記録テーブルに記録された識別子を有する分割データを受信し,前記記録部に記録する処理をコンピュータに実行させる
 ことを特徴とするプログラム。
[請求項20]
 請求項19において,
 第1の識別子が付加された分割データ,第2の識別子が付加された分割データを受信し,前記記録部に記録し,前記記録部の分割データの中で,前記第1の識別子が付加された分割データを,前記第2の識別子が付加された分割データよりも優先して送信する処理をコンピュータに実行させる
 ことを特徴とするプログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]

[ 図 15]

[ 図 16]

[ 図 17]

[ 図 18]

[ 図 19]

[ 図 20]

[ 図 21]

[ 図 22]

[ 図 23]

[ 図 24]

[ 図 25]

[ 図 26]

[ 図 27]

[ 図 28]

[ 図 29]

[ 図 30]

[ 図 31]

[ 図 32]