(57)【要約】【課題】  サーバの利用状況に応じて実行されている仮想マシンから送信されたパケットが、パケットを転送する転送回路間の転送処理による転送遅延の影響を受けながら、通信回路まで届けられることがある。【解決手段】  仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムを管理する管理装置であって、前記仮想マシンを、前記第２転送回路に接続された、前記第１コンピュータとは異なる第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定する。【選択図】  図１
2014186411.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムを管理する管理装置であって、
前記仮想マシンを、前記第２転送回路に接続された、前記第1コンピュータとは異なる第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定する
ことを特徴とする管理装置。
【請求項２】
前記管理装置は、前記仮想マシンを前記第２コンピュータによって実行させるかを判定する場合に、前記第１通信回路が接続された転送回路とは異なる転送回路に接続された第２通信回路が割り当てられた場合の前記仮想マシンから前記第２通信回路まで前記パケットが届けられるまでの第２予測時間と、前記第１予測時間とに応じて、前記第２コンピュータによって前記仮想マシンを実行させるか前記仮想マシンに前記第２通信回路を割り当てるかを選択する
ことを特徴とする請求項１に記載の管理装置。
【請求項３】
前記第１予測時間は、前記仮想マシンを前記第２コンピュータによって実行させるために前記仮想マシンを前記第１コンピュータから前記第２コンピュータへマイグレーションするための時間を含む
ことを特徴とする請求項１又は２に記載の管理装置。
【請求項４】
前記第1予測時間は、前記第２コンピュータによって実行させられた場合の前記仮想マシンが、前記第２コンピュータによって既に実行させていた他の仮想マシンによる処理を待つ時間を含む
ことを特徴とする請求項１〜３の何れか１項に記載の管理装置。
【請求項５】
前記管理装置は、前記第１予測時間が、前記第１コンピュータによって実行される前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの時間以下となる場合に、前記第１コンピュータとは異なる前記第２コンピュータによって前記仮想マシンを実行させる
ことを特徴とする請求項１〜４の何れか１項に記載の管理装置。
【請求項６】
前記管理装置は、前記仮想マシンの通信量が所定量を超えた場合に、前記第１コンピュータとは異なる前記第２コンピュータによって前記仮想マシンを実行させるかを判定する
ことを特徴とする請求項１〜５の何れか１項に記載の管理装置。
【請求項７】
前記第２予測時間は、前記仮想マシンに割り当てられる通信回路を前記第１通信回路から前記第２通信回路に変更するための時間を含む
ことを特徴とする請求項２〜６の何れか１項に記載の管理装置。
【請求項８】
仮想マシンを実行する第１コンピュータと、
前記第１コンピュータが接続された第１転送回路と、
ネットワークにパケットを送信するための第１通信回路と、
前記第１転送回路から転送された前記パケットを受けとって前記第１通信回路に転送する第２転送回路と、
前記第２転送回路に接続された、前記第１コンピュータとは異なる第２コンピュータと、
前記仮想マシンを、前記第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定する管理装置と
を有することを特徴とする情報処理システム。
【請求項９】
仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムを管理する方法であって、
コンピュータが、前記仮想マシンを、前記第1コンピュータとは異なる第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定する
ことを特徴とする情報処理方法。
【請求項１０】
仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムをコンピュータに管理させるプログラムであって、
前記コンピュータに、前記仮想マシンを、前記第1コンピュータとは異なる第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
サーバによるソフトウェア処理によって、サーバ１台に相当するオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：ＯＳ）の実行環境を擬似的に提供することができる。そして、この疑似的に提供されたＯＳの実行環境が、仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ：ＶＭ）とよばれる。仮想マシンはサーバによるソフトウェア処理によって実行されるため、１台のサーバにおいて複数の仮想マシンを同時に実行することが可能である。また、仮想マシンがソフトウェア処理によって実行されているため、あるサーバによって実行されている仮想マシンを別のサーバで実行させるように設定変更できる。この設定変更によって、仮想マシンが別のサーバに疑似的には移動したことになり、これが仮想マシンのマイグレーションとよばれる。また、あるサーバによって実行されている仮想マシンを停止させることなく別のサーバに移動させることが、仮想マシンのライブマイグレーションとよばれる。
【０００３】
ところで、サーバにおいて仮想マシンに使用させるハードウェアリソースを管理するために、ＶＭマネージャとよばれる管理用ソフトウェアが、仮想マシンが実行されるサーバとは別のサーバによって実行される。そして、仮想マシンのマイグレーションのように、複数のサーバに跨って実行される可能性のある仮想マシンを管理するために、ＶＭマネージャは複数のサーバのハードウェアリソースや、ＶＭの識別番号と動作状態を管理する。そして、ＶＭマネージャは、複数のサーバのハードウェアリソースの使用状況や仮想マシンを利用するクライアントの要求に応じて、サーバによって仮想マシンを新たに実行させたり、サーバによって実行されている仮想マシンの実行を停止させたり、他のサーバへ仮想マシンをマイグレーションさせたりして、仮想マシンを管理することとなる。また、複数のサーバを含むデータセンタにおいて、異なるサーバ間での仮想マシンのマイグレーションがＶＭマネージャによって管理されることで、データセンタにおけるパワーコントロールや負荷分散などが行われる。
【０００４】
ところで、サーバからネットワークへパケットが送信される場合には、サーバに備えられたネットワークインターフェースカード（ＮＩＣ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）によってパケット化処理が施されてから、ネットワークにパケットが送信される。このため、ネットワークに出力されるパケットの送信レートは、ＮＩＣの処理能力に基づく帯域制限を超えることができない。これは、サーバによって実行されている仮想マシンがクライアントからの要求に応答して送信するパケットについても同様であり、仮想マシンから送信されるパケットがネットワークに出力される送信レートもＮＩＣの処理能力に基づく帯域制限の影響を受ける。
【０００５】
そこで、ひとつのＮＩＣの帯域制限を超える送信レートを実現させるために、サーバに複数のＮＩＣを搭載して、複数のＮＩＣを同時に使用することがある。この場合、同時に使用されるＮＩＣの数に応じた帯域を実現できる。なお、サーバに既に供えられている複数のＮＩＣの処理能力を超えた送信レートを実現させるためには、新たなＮＩＣをサーバに増設する必要がある。
【０００６】
ところで、サーバのハードウェアリソースを仮想化する技術として、ＮＩＣを仮想化する技術が知られている。ＮＩＣを仮想化する場合には、サーバにＮＩＣを搭載する必要が必ずしもなく、サーバに、複数のＮＩＣとそれらのＮＩＣの何れかにパケットを転送させる転送回路とを含むＮＩＣ仮想化装置に接続される。サーバや仮想マシンは、複数のＮＩＣのうちの割り当てられたＮＩＣの識別番号を指定して、パケットをＮＩＣ仮想化装置に出力する。ＮＩＣ仮想化装置に含まれる転送回路は、この識別番号に従ってパケットの転送先を切り替えるスイッチ回路を有しており、このスイッチ回路が制御されることで、複数のＮＩＣのうちで識別番号に対応するＮＩＣへ向けてパケットが転送される。そして、ＮＩＣ仮想化装置内のＮＩＣによってパケットに処理が施されて、ネットワークにパケットが出力される。
【０００７】
すなわち、このＮＩＣ仮想化装置によって、サーバにＮＩＣを物理的に増設させなくても、サーバや仮想マシンは複数のＮＩＣを使用することができる。
【０００８】
ところで、複数のサーバと複数のＩ／Ｏデバイスとがインターコネクトスイッチを介して接続されいて、複数のサーバと複数のＩ／Ｏデバイスとがインターコネクトスイッチ内で構成される複数の仮想ツリーによって対応付ける技術が知られている。また、論理サーバと物理ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）をグループ分けし、論理サーバに割当てる物理ＣＰＵを同じグループのもの、メモリはその物理ＣＰＵが属するメモリコントローラ下のものにすることで、メモリのレイテンシの緩和を考慮した物理ＣＰＵの割当てを行う技術が知られている。また、複数の構成をとり得るＩ／Ｏとメモリ間の利用可能な接続の中から、最も近距離となる構成を選択することにより、仮想マシンに割り当てられるメモリやＩ／Ｏを性能上最適な組み合わせにさせる技術が知られている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−２９４８２８号公報
【特許文献２】特開２０１０−１２２８０５号公報
【特許文献３】特開２０１２−１４６１０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
パケットを転送する転送回路が複数連結されていて、仮想マシンを実行するサーバが接続された転送回路と仮想マシンに割り当てられた通信回路が接続される転送回路とが異なる場合がある。この場合、仮想マシンから通信回路までパケットが届けられるまでに、転送回路間の転送処理が発生してしまう。
【００１１】
そのため、サーバの利用状況に応じて実行されている仮想マシンから送信されたパケットが、転送回路間の転送処理による転送遅延の影響を受けながら、通信回路まで届けられることになってしまう。
【００１２】
本願は、サーバの利用状況に応じて実行されている仮想マシンから送信されたパケットが通信回路へ届けられるまでの時間を短くさせる管理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
開示の管理装置は、仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムを管理する管理装置であって、前記仮想マシンを、前記第２転送回路に接続された、前記第１コンピュータとは異なる第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定する。
【発明の効果】
【００１４】
本開示の一側面によれば、サーバの利用状況に応じて実行されている仮想マシンから送信されたパケットが通信回路に届けられるまでの時間が短くなる。
【図面の簡単な説明】
【００１５】
【図１】実施例の通信システムの例。
【図２】実施例の通信システムにおける通信回路の割り当ての例。
【図３】実施例の通信システムにおける通信の例。
【図４】実施例の管理装置のハードウェア構成の例。
【図５】実施例の管理装置の機能ブロックの例。
【図６】実施例の管理装置によって実行される処理の例。
【図７】実施例の管理装置によって実行される処理の他の例。
【図８】実施例の管理装置によって実行される処理の他の例。
【図９】実施例の管理装置によって実行される処理の他の例。
【図１０】実施例の管理装置によって実行される処理の他の例。
【図１１】実施例の管理装置によって実行される処理の他の例。
【図１２】実施例の管理装置によって実行される処理の他の例。
【発明を実施するための形態】
【００１６】
図１に、実施例の通信システムの例が示される。通信システムの一例であるデータセンタ１００は、管理装置の一例である管理サーバ２００、ＶＭマネージャ機能を有するサーバ２６、サーバ２０、サーバ２１、ＶＭ１を実行するサーバ２２、ＶＭ２を実行するサーバ２３、ＶＭ３を実行するサーバ２４、ＶＭ４を実行するサーバ２５、転送回路の一例であってサーバ２０及び２１が接続されるインターコネクトスイッチ６、転送回路の一例であってサーバ２２及び２３が接続されるインターコネクトスイッチ７、通信回路の一例であってサーバ２４及び２５が接続されるインターコネクトスイッチ８、通信回路の一例であってインターコネクトスイッチ６に接続されるＮＩＣ３０−３３、通信回路の一例であってインターコネクトスイッチ７に接続されるＮＩＣ３４−３７、通信回路の一例であってインターコネクトスイッチ８に接続されるＮＩＣ３８−４１、及び、ＮＩＣ３０−４１が接続されてデータセンタ１００の内外でのパケットの交換をさせるためのネットワークスイッチ５０を含む。そして、インターコネクトスイッチ６はインターコネクトスイッチ７と連結されており、インターコネクトスイッチ７はインターコネクトスイッチ８と連結されており、インターコネクトスイッチ６及び７並びにインターコネクトスイッチ７及び８は互いにパケットを転送しあう。ネットワークスイッチ５０から出力されたパケットは、ネットワーク６０を介して、サーバ７０に届けられる。また、サーバ７０から送信されたパケットがネットワークスイッチ５０を介してサーバ２０−２５に届けられる。また、ＶＭ２２−２５はネットワークスイッチ５０やインターコネクトスイッチ６−８を介して互いにパケットの送受信を実行する。なお、実施例は、図１に示されるような、管理サーバの数、サーバの数、ＶＭの数、インターコネクトスイッチの数、ＮＩＣの数、ネットワークスイッチの数に限定されない。例えば、ＮＩＣの数を増やすために、サーバが接続されずにＮＩＣが接続されたインターコネクトスイッチがインターコネクトスイッチ６や８にさらに連結されていてもよい。また、データセンタ１００において、ＶＭ１−４の通信に適用される配線と、サーバ２０−２５やＶＭ１−４を管理したりＶＭ１−４のマイグレーションの実行をしたりするための配線とを分けてもよい。また、管理サーバ２００、及びサーバ２０−２５は、後述されるハードウェアによる物理サーバである。
【００１７】
ところで、図１に示されるサーバ２０−２５はプロセッサやメモリを含み、メモリに格納されたプログラムが実行されることによって、サーバ１台に相当するＯＳの実行環境を擬似的に実現させるＶＭ１−４が実行されることとなる。また、サーバ２６は、プロセッサやメモリを含み、メモリに格納されたプログラムが実行されることによって、ＶＭ１−４を管理するＶＭマネージャとして動作する。そして、仮想マシンのマイグレーションのように、複数のサーバに跨って実行される可能性のあるＶＭ１−４を管理するために、ＶＭマネージャはサーバ２０−２５のハードウェアリソースや、ＶＭ１−４の識別番号と動作状態を管理する。そして、ＶＭマネージャは、サーバ２０−２５のハードウェアリソースの使用状況やＶＭを利用するクライアントの要求に応じて、サーバ２０−２５によってＶＭを新たに実行させたり、サーバ２０−２５によって実行されているＶＭ１−４の実行を停止させたり、他のサーバへＶＭ１−４をマイグレーションさせたりして、ＶＭを管理することとなる。また、サーバ２０−２５を含むデータセンタ１００において、異なるサーバ間でのＶＭのマイグレーションがＶＭマネージャによって管理されることで、データセンタ１００におけるパワーコントロールや負荷分散などが行われる。
【００１８】
サーバ２０−２５には、ＮＩＣが必ずしも搭載されておらず、サーバ２０−２５内のインターコネクトが対応するインターコネクトスイッチ６−８に接続されている。そして、サーバ２０−２５は、ＮＩＣと通信するためのインターコネクトインタフェースを有し、ＶＭ１−４は通信する場合に、管理サーバ２００によってＮＩＣ３０−４１のうちで割り当てられたＮＩＣにインターコネクトインタフェースを介してパケットを送信する。このようにすることで、サーバ２０−２５とＮＩＣ３０−４１との物理的な接続関係に制限されずに、ＶＭ１−４に対してＮＩＣ３０−４１から適用的に複数のＮＩＣを割り当てることも可能となり、ＶＭ１−４に所望の帯域で通信を実行させることができる。
【００１９】
そして、ＮＩＣが割り当てられたＶＭ１−４は、ＮＩＣ３０−４１のうちの割り当てられたＮＩＣの識別情報を指定して、インターコネクトスイッチ６−８の何れかにパケットを送信する。
【００２０】
インターコネクトスイッチ６−８はプロセッサ、メモリ、及びスイッチ回路を有しており、さらにＮＩＣの識別情報やサーバの識別情報とそれらの機器が接続されたポートとの対応関係をメモリに格納している。そして、パケットを受け取ると、パケットに含まれる識別情報に従って、パケットの転送先がプロセッサによって判定される。そして、この判定結果に従い、プロセッサによって、パケットが識別番号に対応するＮＩＣまで届けられるようにスイッチ回路の接続関係が制御される。このような制御によって、複数のＮＩＣのうちで識別番号に対応するＮＩＣへ向けてパケットが転送される。
【００２１】
ＮＩＣ３０−４１は、プロセッサ及びメモリを有し、プロセッサはメモリに格納されたプログラムに従って、インターコネクトスイッチ６−８との間でやり取りされるコマンドの処理や、転送されてきたしたパケットに対して自身のＭＡＣアドレスを物理レイヤにおいて付与する処理を実行する。なお、その際に付与されるＭＡＣアドレスは、例えば、書き換え可能なＲＡＭに格納されており、ＲＡＭの値は外部から設定可能である。
【００２２】
ネットワークスイッチ５０は、ＮＩＣ３０−４１接続可能な複数のポートを有するスイッチである。ネットワークスイッチ５０は、プロセッサとメモリを有し、任意のポートから入力されたパケットに含まれる宛先ＭＡＣアドレスに従って、任意のポートにパケットがルーティングされる。このルーティングは、メモリに格納されたＭＡＣアドレス及びポート番号との対応表に従って、プロセッサがパケットの転送先を判定することで実行される。この対応表は外部から書き換え可能であり、ＶＭに割り当てられるＮＩＣが変更された場合には、パケットが変更後のＮＩＣに転送されるように書き換えられる。
【００２３】
ところで、仮想マシンをクライアントに提供するＶＰＳ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｓｅｒｖｅｒ）とよばれるサービスが知られている。このＶＰＳが、例えば、図１に示される通信システム１００の下で提供される。なお、実施例はＶＰＳへの適用に限定されない。
【００２４】
ＶＰＳを提供する事業者は、複数のサーバの電力状況やハードウェアリソースの使用状況などに合わせて、ＶＭマネージャによって複数の仮想マシンを管理し、サービスを提供する。この場合、クライアントは、仮想マシンがどのサーバによって実行されているかを意識する必要ない。クライアントは、ＶＭマネージャによって何れかのサーバによって実行されることになった仮想マシンによりサービスを享受することとなる。
【００２５】
ところで、このＶＰＳを提供する場合に適用されるアプリケーションの一例として、価値のある情報を抽出して将来の動向の予測や計画立案をするために、ビッグデータとよばれる大規模なデータの集計や解析を、複数の仮想マシンの組み合わせによって実行させるアプリケーションがある。このアプリケーションでは、複数の仮想マシンが同時に実行されて、データをひとつの仮想マシンに集める動作、及び、複数の仮想マシンへデータを配る動作が実行される。このような動作に伴い複数の仮想マシン間でデータの通信が実行され、場合によっては、複数のデータセンタ間に跨った複数の仮想マシン間の通信が実行される。そのため、このようなアプリケーションを安定かつ高速に実行させるために、大量のデータの通信を安定かつ高速に行うことが望まれる。
【００２６】
そこで、仮想マシンの通信帯域を増加させるために、リンクアグリケーション、ボンディング、チーミング等、複数のＮＩＣを同時に使って同一地点と通信する技術がある。これらの技術は、ひとつの仮想マシンが同時に割り当てられるＮＩＣの数を増やし、ＮＩＣの数に応じて仮想マシンの通信帯域を増やす技術である。
【００２７】
ただし、ＮＩＣがサーバに物理的に直接搭載されるハードウェア構成であると、サーバに搭載できるＮＩＣの最大枚数には物理的な制限が存在する。そのため。ひとつの仮想マシンが同時に扱えるＮＩＣの数は、１台のサーバに搭載できるＮＩＣの数に制限されてしまう。
【００２８】
また、仮想マシンは複数のサーバにおいてマイグレーションさせられる可能性があるため、ひとつの仮想マシンに割り当てられる最大のＮＩＣ数を増やすためには、仮想マシンがマイグレーションさせられる可能性のある全てのサーバに対してＮＩＣを増設することが好ましい。そして、サーバを増設する場合には、すでに運用されているサーバに搭載されたＮＩＣの数と同じ数だけ増設されるサーバにもＮＩＣを搭載させることとなる。すなわち、サーバの増設とＮＩＣの増設とを分離されない。
【００２９】
そこで、図１に示されるように、ＮＩＣがサーバに物理的に搭載される制約がなくなるように、互いに連結された複数のインターコネクトスイッチの何れかに接続されたＮＩＣを、サーバやＶＭに割り当てるようにしている。図１に示される通信システムによって、ひとつの仮想マシンが使えるＮＩＣの数を増やすことが可能となり、さらに、サーバの増設とＮＩＣの増設とを分離することができる。
【００３０】
なお、サーバに搭載されたＮＩＣを複数の仮想マシンで共有する場合には、ＮＩＣの処理能力を時分割して、複数の仮想マシンに割り当てることとなる。この場合、ソフトウェアによって処理を時分割すると十分な通信速度が満たされないため、ＮＩＣに仮想化支援機能をハードウェアで搭載する場合がある。この仮想化支援機能は、高価なＮＩＣに搭載されていることが一般的である。
【００３１】
図１に示された通信システムでは、ＮＩＣ３０−４１に仮想化支援機能を実装してもよいが、多数のＮＩＣを実装する場合があるため、より安価なＮＩＣを多数実装して、それらが複数の仮想マシンに割り当てられるようにした方が好ましい場合がある。ただし、ＮＩＣ３０−４１に仮想化支援機能が実装されない場合、ひとつのＮＩＣが複数の仮想マシンに共有されることはない。つまり、ひとつの仮想マシンに多数のＮＩＣのうちの複数のＮＩＣが割り当てられて通信帯域を大きくさせることはあるものの、ひとつのＮＩＣが複数の仮想マシンに同時に割り当てられない。これは、サーバにＮＩＣを直接搭載させるという物理的な制約から離れ、その上で、より安価なＮＩＣを十分に準備し、仮想マシンの通信帯域を確保しているということである。そして、図１に示される通信システムによって、複数のデータセンタ間に跨った複数の仮想マシン間で、大量のデータの通信を安定かつ高速に行うことができるようになる。
【００３２】
ところで、図１に示されるように、ＮＩＣ３０−４１が、要求しだいではＶＭ１−４の何れにも割り当て可能なようにするために、インターコネクトスイッチ６−８によって、サーバ２０−２５とＮＩＣ３０−４１とが接続されている。インターコネクトスイッチ６−８に接続されるＮＩＣの数を増やすためには、ポートの多いインターコネクトスイッチを使用するか、インターコネクトスイッチの連結数を増やす。一般に、インターコネクトスイッチは、スイッチマトリクスによってポート間が接続されているため、ポート数が増えるとその二乗に応じて回路規模が増大する。そして、回路規模の増大に伴い、コストも増えてしまう。また、ポート数を増やすと、スイッチの切り替えをより高速にする必要がある。そこで、より安価でポート数が少ないインターコネクトスイッチを連結させて、各インターコネクトスイッチにＮＩＣを接続させる。そして、インターコネクトスイッチの組み合わせを安価に実現するためには、サーバとＮＩＣとを接続させるためのポート以外の、インターコネクトスイッチ間のパケット転送に使用されるポート数を減らすことが好ましい
ここで、インターコネクトスイッチ間の接続としてツリー構造を用いると、サーバとＮＩＣとの間の遅延を一定にすることができるが、中継のために使用されるポート数が多くなる。一方、図１に示されるように、インターコネクトスイッチ６−８を連結させるようなカスケード接続を用いると、インターコネクトスイッチ６−８のパケット転送に使用されるポート数を抑えることができる。実施例には、インターコネクトスイッチの接続構成としてツリー構成を適用してもよいが、図１に示されるように、カスケード接続の場合を例に説明する。
【００３３】
ところで、インターコネクトスイッチの内部では、単純な電気信号の切り替えだけではなく、データのヘッダ部に含まれる宛先を識別するための識別情報を判定してから、スイッチ回路を駆動する処理が実行される。このように、インターコネクトスイッチでは、一種のパケットスイッチ的な処理が必要であり、インターコネクトスイッチによるパケット転送では、このような処理にかかる処理遅延が生じることになる。また、インターコネクトスイッチ間の転送においても配線遅延など転送遅延が生じる。つまり、パケットがインターコネクトスイッチを複数転送されてＮＩＣまで届けられる場合には、インターコネクトスイッチ内部の処理遅延とインターコネクトスイッチ間の転送にかかる転送遅延とを合わせた遅延が、インターコネクトスイッチの連結数に比例して発生することとなる。
【００３４】
従って、例えば、図１に示されるＶＭ４に割り当てられたＮＩＣがＮＩＣ３０である場合のように、パケットを転送させる間に複数のインターコネクトスイッチ６−８を経由させることになると、パケットの転送時間が長くなる。
【００３５】
図２に、実施例の通信システムにおける通信回路の割り当ての例が示される。図２（Ａ）−（Ｅ）に順に沿って、ＶＭに複数のＮＩＣが割り当てられるまでの過程を説明する。なお、図１と同一の構成に構成については同一の符号を付し、説明に必要な構成に限って表示されている。
【００３６】
図２（Ａ）には、サーバ２０、サーバ２１、ＶＭ１を実行するサーバ２２、ＶＭ２を実行するサーバ２３、ＶＭ３を実行するサーバ２４、ＶＭ４を実行するサーバ２５、サーバ２０及び２１が接続されるインターコネクトスイッチ６、サーバ２２及び２３が接続されるインターコネクトスイッチ７、サーバ２４及び２５が接続されるインターコネクトスイッチ８、インターコネクトスイッチ６に接続されるＮＩＣ３０−３３、インターコネクトスイッチ７に接続されるＮＩＣ３４−３７、及び、インターコネクトスイッチ８に接続されるＮＩＣ３８−４１が示される。なお、インターコネクトスイッチ６及び７が接続され、インターコネクトスイッチ７及び８が接続されることで、インターコネクトスイッチ６−８が連結されている。また、ＶＭ１−４は、例えば、後述される図６の処理によって実行されてはいるが、ＶＭ１−４の何れにもＮＩＣ３０−４１が割り当てられていない。
【００３７】
図２（Ｂ）には、ＶＭ１及び２がＮＩＣの割り当てを要求した結果、例えば、後述される図７の処理によって、ＶＭ１にはＮＩＣ３４及び３５が割り当てられ、ＶＭ２にはＮＩＣ３６及び３７が割り当てられたことが示される。このように、ＶＭ１及び２には、パケット転送時間が極力短くなるような未割り当てのＮＩＣが割り当てられたとする。なお、この時点で、インターコネクトスイッチ７に接続されたＮＩＣ３４−３７には、未割り当てのＮＩＣが存在しないことになる。
【００３８】
図２（Ｃ）には、ＶＭ１及び２が、さらに通信帯域を増やすために、ＮＩＣの割り当てを要求した結果、ＶＭ１にはＮＩＣ３０−３５が割り当てられ、ＶＭ２にはＮＩＣ３６―３８が割り当てられたことが示される。実施例によれば、サーバ２０−２５にＮＩＣ３０−４１が物理的に搭載されていないため、例えば、ＶＭ１は、サーバ２２が接続されたインターコネクトスイッチ７に接続されたＮＩＣに未割り当てのＮＩＣがなくても、インターコネクトスイッチ７以外のインターコネクトスイッチ６及び８に接続されたＮＩＣが未割り当てであれば、この未割り当てのＮＩＣうちでパケット転送遅延がより小さくなるＮＩＣ３０−３３を使用することができる。
【００３９】
図２（Ｄ）には、サーバ２０により新しいＶＭ５が実行されたことが示される。この例は、例えば、サーバ２２−２５ではＶＭが既に実行されていて、サーバ２２−２５ではＣＰＵのコンテキストスイッチなどによる処理遅延があるため、後述される図６の処理に従って、ＶＭがまだ実行されていないサーバ２０が処理遅延がより少なくなるサーバであると判定されて、ＶＭ５がサーバ２０により実行されることになった例である。
【００４０】
図２（Ｅ）には、サーバ２０により新たに実行されたＶＭ５が、ＮＩＣの割り当てを要求した結果、ＶＭ５にＮＩ３９が割り当てられたことが示される。例えば、ＶＭ５がＮＩＣの割り当てを要求したことで、図７に示される処理により、パケット転送時間を極力短くなるようにＮＩＣが探索されるが、インターコネクトスイッチ６に接続されたＮＩＣ３０−３３はＶＭ１によって既に使用されているおり、ＮＩＣ３４−３８も既に使用されているため、最終的にＶＭ５にＮＩＣ３９が割り当てられることとなった。なお、仮に、ＶＭ５がＮＩＣの割り当てを要求する時点で、例えば、ＶＭ１がＮＩＣ３０の割り当てを開放していた場合には、ＶＭ５にＮＩＣ３０が割り当て可能となる。
【００４１】
このように、ＮＩＣの割り当て状況によっては、ＶＭから送信されるパケットがＮＩＣに届けられるまでに、インターコネクトスイッチを多段に経由せざるをえないことになってしまい、パケット転送にかかる時間が大きくなってしまう。そして、パケット転送が行われている期間は、他のＶＭはインターコネクトスイッチなどを占有できないため、パケット転送遅延が他のＶＭの通信性能にも影響を与えてしまう。そして、ＶＭの通信量が多いほどパケット転送にかかる時間も大きいため、他のＶＭの通信性能への影響もおおきくなってしまう。例えば、ＶＭ５が通信量の多い通信を実行していると、ＶＭ５がインターコネクトスイッチ７及び８を使用している期間は、ＶＭ１−４のインターコネクトスイッチ７及び８の使用が待たされるため、これら全体の通信性能が低下してしまうことになる。
【００４２】
図３に、実施例の通信システムにおける通信の例が示される。図（Ｂ）−（Ｆ）には、ＶＭがパケットの送信を完了するまでの処理のタイムチャートが示され、図３（Ａ）には、そのタイムチャートに表示される処理の時間幅の凡例が示される。
【００４３】
図３（Ａ）にしめされる凡例は、ＶＭがパケットの送信を開始するためにまずＮＩＣとの確認を行うための準備期間であるＩ／Ｏ利用開始処理１、多段のインターコネクトスイッチをパケットが経由する場合のインターコネクトスイッチ間の転送処理２、コンテキストスイッチなどのＣＰＵ処理の待ち時間３、ＮＩＣが有する送受信バッファの状態を確認して通信完了になるまで待つためのポーリングに関するリードアクセス処理４、ＮＩＣに対してパケットを書き込んだり、ＮＩＣがＭＡＣアドレスやパケット長などの設定を変更するためのライトアクセス処理５、Ｉ／Ｏの利用終了処理６、ＮＩＣ割り当ての変更処理７、及びＶＭマイグレーション処理８を含む。
【００４４】
図３（Ｂ）には、ＶＭを実行するサーバに接続されたインターコネクトスイッチと、ＶＭに割り当てられたＮＩＣが接続されたインターコネクトスイッチとが異なっており、ＶＭからＮＩＣまでパケットが届けられるまでに、多段に接続されたインターコネクトスイッチをパケットが経由する場合の通信のタイムチャートが示される。サーバ内の処理遅延であるＣＰＵ処理の待ち時間３以外の処理では、各々の処理において、多段に接続されたインターコネクトスイッチを経由することになるため、経由する回数に応じてインターコネクトスイッチ間の転送処理２が発生することとなる。
【００４５】
図３（Ｂ）のタイムチャートには、少なくともひとつのパケットを送信するための一連の処理を示されており、典型的な例では、１０マイクロ秒程度の時間がかかる。そして、インターコネクトスイッチ間の転送処理２にかかる時間は、典型的な例では、この全体の時間の１０％程度である１マイクロ秒である。なお、図３（Ｂ）では、一連の処理において、処理４や５が１回ずつしか実行されていないが、実施例はこれに限定されず、通信状況に応じて何度か実行されることもある。これは後述される図３（Ｃ）―（Ｆ）の場合も同様である。
【００４６】
そして、ＶＭが通信し続けると、このような処理が複数回実行されることになる。例えば、ＶＭが停止されるまでの期間に１億のパケットが送信される場合には、全てのパケットを送信するまでに１０００秒の時間がかかる。つまり、ＶＭが停止されるまでの期間に実行されるパケット送信の回数に比例して、図３（Ｂ）−（Ｆ）の互いの時間差が大きくなる。
【００４７】
図３（Ｃ）には、ＮＩＣの使用状況が変わったことで未割り当てのＮＩＣが発生して、後述される図１１及び１２に示される処理に従って、ＶＭに割り当てるＮＩＣを変更した場合の通信のタイムチャートが示される。なお、ＮＩＣの割り当てが変更されることで、ＶＭが実行されるサーバとＮＩＣとが同じインターコネクトスイッチに接続された場合が例示されている。
【００４８】
ＶＭが実行されるサーバとＮＩＣとが同じインターコネクトスイッチに接続されたため、図３（Ｂ）と比較して、インターコネクトスイッチ間の転送処理２にかかる時間が無くなっている。ただし、ＮＩＣの割り当てを変更したため、ＮＩＣ割り当ての変更処理７にかかる時間が、タイムチャートと最初に追加されている。なお、後続のパケットの送信では、ＮＩＣ割り当ての変更処理７にかかる時間を必要としない。また、ＶＭが実行されるサーバに変更はないので、ＣＰＵ処理の待ち時間は、図３（Ｂ）と同じである。
【００４９】
図３（Ｃ）では、ＮＩＣの割り当てが変更されたため、ＮＩＣ割り当ての変更処理７にかかる時間は増加したが、インターコネクトスイッチ間の転送処理２にかかる時間が無くなったため、図３（Ｂ）と比較して、パケット送信にかかる時間が全体として減少している。例えば、ひとつのパケットを送信するためにかかる時間が１０％削減され、１秒間にパケット送信が１１００００回実行可能になっている。この場合、１億個のパケットを送信するために必要な時間は、ＮＩＣの割り当ての変更にかかる時間を含め９１０秒となり、図３（Ｂ）に示される例よりも高効率な通信が実行されているといえる。なお、実施例はこの例示に限定されず、ＮＩＣの割り当てが変更された後に、パケットを経由するインターコネクトスイッチの転送回数が０でなくても減っていれば、インターコネクトスイッチ間の転送処理２にかかる時間が減少して、全体として、パケット送信にかかる時間を減少させられる場合がある。
【００５０】
図３（Ｄ）には、サーバの使用状況が変わったことでＶＭが実行されるサーバを変更することができるようになり、後述される図１１及び１２に示される処理に従って、コンテキストスイッチなどのＣＰＵ処理の待ち時間がより少ないサーバにＶＭがマイグレーションさせられた場合の通信のタイムチャートが示される。なお、ＶＭがマイグレーションされることで、ＶＭが実行されるサーバとＮＩＣとが同じインターコネクトスイッチに接続された場合が例示されている。
【００５１】
図３（Ｄ）では、ＶＭが実行されるサーバが変更されたため、ＶＭマイグレーション処理８にかかる時間は増加したが、インターコネクトスイッチ間の転送処理２にかかる時間が無くなり、かつ、コンテキストスイッチがより少ないサーバであることでＣＰＵ処理の待ち時間３が減少している。そのため、図３（Ｂ）と比較して、パケット送信にかかる時間が全体として減少している。
【００５２】
例えば、図３（Ｂ）と対して、インターコネクトスイッチ間の転送処理２にかかる時間が無くなることで１０％の時間が短縮され、ＣＰＵ処理の待ち時間３が減少することでさらに１０％の時間が短縮され、全体として２０％の時間の短縮となる。従って、１秒間にパケット送信が１２００００回実行可能になっている。この場合、１億個のパケットを送信するために必要な時間は、ＶＭマイグレーションにかかる時間を含め８６３秒となり、図３（Ｂ）に示される例よりも高効率な通信が実行されているといえる。
【００５３】
なお、実施例はこの例示に限定されず、ＶＭがマイグレーションされた後に、パケットを経由するインターコネクトスイッチの転送回数が０でなくても減っていれば、インターコネクトスイッチ間の転送処理２にかかる時間が減少して、全体として、パケット送信にかかる時間を減少させられる場合がある。
【００５４】
なお、ＶＭの通信量が多い場合に、図３（Ｃ）に示されるようにＮＩＣ割り当てを変更する、又は図３（Ｄ）に示されるようにＶＭをマイグレーションさせると、パケット送信にかかる時間の減少効果が高い。しかし、ＶＭの通信量が少ないと、ＮＩＣへのライトアクセス処理４や、ＮＩＣへのライトアクセス処理５にかかる時間が短いため、インターコネクト間の転送処理２をなくすことができても、ＮＩＣ割り当ての変更処理７やＶＭマイグレーション処理８にかかる時間がそれを超えてかかってしまい、デメリットになることがある。従って、ＶＭの通信量を考慮することが好ましい。そして、後述されるように、ＶＭの通信量が、ネットワークスイッチ５０に入力されたパケットに基づいて、管理サーバ２００によって監視される。
【００５５】
図３（Ｅ）には、ＶＭが実行されるサーバが変更されたため、ＶＭマイグレーション処理８にかかる時間は増加したが、インターコネクトスイッチ間の転送処理２にかかる時間が無くなった例が示される。しかし、コンテキストスイッチなどのＣＰＵ処理の待ち時間３がより長いサーバへＶＭがマイグレーションされてしまっているため、図３（Ｂ）と比較して、パケット送信にかかる時間が全体として増加している。
【００５６】
ＶＭの通信帯域を増加させるためには、上述したように、ひとつのＶＭが同時に使えるＮＩＣの数を増やすことが必要であるが、加えて、ＶＭが複数のＮＩＣを十分な速度で使用することが必要である。ＶＭは１台のサーバ上で複数同時に実行することが可能であるが、個々のＶＭの処理は時分割で行われる。この際、仮想マシンの切り替えのためにコンテキストスイッチと呼ばれるレジスタ、メモリ配置などの切り替え処理が必要で、この処理に時間を消費してしまう。ＶＭの数が増えるほどコンテキストスイッチの回数が増え、結果として個々のＶＭの動作速度が低下してしまう。ＶＭが複数のＮＩＣを十分な速度で駆動するためには、1つのサーバ上に多数のＶＭが集中しすぎないようＶＭの配置を考慮する必要がある。
【００５７】
図３（Ｆ）には、例えば図３（Ｄ）に沿って説明されたようにＶＭがマイグレーションされた場合に、マイグレーション先のサーバによって既に実行されていたＶＭのＣＰＵ処理の待ち時間３が増加することが示される。すなわち、マイグレーション対象となるＶＭだけで考えると、ＶＭマイグレーション処理にかかる時間が、多段のインターコネクトスイッチによる転送遅延とＣＰＵ処理の待ち時間とによって短縮されるパケット転送時間を上回れば、効果があるようにみえる。しかし、マイグレーション先で実行されているＶＭがいるため、マイグレーション対象以外のＶＭのＣＰＵ処理の待ち時間の増加分が存在する。従って、システム全体として効果がでるように、マイグレーション対象以外のＶＭのＣＰＵ処理の待ち時間の増加分も考慮することが好ましい。実施例の処理によれば、マイグレーション対象以外のＶＭのＣＰＵ処理の待ち時間の増加も考慮される。
【００５８】
上述したように、図（Ｂ）−（Ｆ）の互いの差は、ＶＭが停止されるまでの期間に実行されるパケット送信の回数に比例して大きくなるため、ＶＭが実行されるサーバとＶＭに割り当てるＮＩＣとを適切に選択することが好ましい。
【００５９】
後述される実施例の処理に従えば、仮想マシンを実行するサーバが接続されたインターコネクトスイッチからＮＩＣまで、他のインターコネクトスイッチを経由させてパケットを送る通信システムで、他のインターコネクトスイッチに接続された他のサーバによって仮想マシンを実行させるか判定する。
【００６０】
また、この場合に、仮想マシンを他のサーバに実行させる場合のマイグレーションにかかる時間、及びマイグレーション後の仮想マシンから送信されたパケットが他のインターコネクトスイッチに接続されたＮＩＣへ届けられるまでの時間の合計値と、仮想マシンに割り当てるＮＩＣを仮想マシンが実行されるサーバが接続されたインターコネクトスイッチに接続されたＮＩＣに変更する処理にかかる時間、及び仮想マシンに割り当てるＮＩＣが変更された後に仮想マシンから新たに割り当てられたこのＮＩＣへ届けられるまでの時間の合計値とが比較されて、仮想マシンからＮＩＣまでのパケットの転送時間がより短くなるように、仮想マシンをマイグレーションさせるかＮＩＣの割り当てを変更させるかが選択される。
【００６１】
従って、パケットを転送するインターコネクトスイッチが複数連結されていて、仮想マシンを実行するサーバが接続されたインターコネクトスイッチと仮想マシンに割り当てられたＮＩＣが接続されるインターコネクトスイッチとが異なっていても、サーバの利用状況に応じて実行されている仮想マシンから送信されたパケットがＮＩＣへ届けられるまでの時間を短くすることができる。
【００６２】
図４に、実施例の管理装置のハードウェア構成の例が示される。管理装置の一例である管理サーバ２００は、ＣＰＵ４００、メモリコントローラ４１０、メモリ４２０、メモリバス４３０、ＩＯバスコントローラ４４０、ＮＩＣ４５０、及びＩＯバス４６０を含み、ＩＯバス４６０には記憶装置４７０が接続される。
【００６３】
メモリバス４３０に接続されたメモリ４２０には、管理サーバ２００の各種処理を実行するためのプログラムが格納されている。ＣＰＵ４００は、メモリコントローラ４１０を介して、メモリ４２０からプログラムを読み出し、各種処理を実行する。ＣＰＵ４００によって実行される各種処理の実行に伴い、メモリ４２０に対するデータの書き込み及び読み出しがメモリコントローラ４１０を介して実行される。
【００６４】
ＣＰＵ４００は、ＩＯバスコントローラ４４０を介して、ＩＯバス４６０に接続されたＮＩＣ４５０にデータを転送し、また、ＮＩＣ４５０からデータやパケットを受け取る。ＣＰＵ４００は、ＩＯバスコントローラ４４０を介して、ＩＯバス４６０に接続された記憶装置４７０からデータを読み出し、また記憶装置４７０にデータを書き込む。
【００６５】
ＣＰＵ４００は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ４２０は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。記憶装置４７０は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置である。
【００６６】
なお、ＣＰＵ４００、メモリコントローラ４１０、メモリ４２０、ＮＩＣ４５０、及び、記憶装置４７０が同じバスに接続された構成を管理サーバ２００に適用してもよい。図４に示されるハードウェア構成によって、図５に示される機能ブロックが実現され、図６〜１２に示される処理が実行される。
【００６７】
図５に、実施例の管理装置の機能ブロックの例が示される。管理装置の一例である管理サーバ２００は、ワーキングメモリとして使用されるメモリ４２０にロードされたプログラムがＣＰＵ４００によって実行されることにより、判定部５００、通知部５０１、算出部５０２、選択部５０３、指示部５０４、設定部５０５、割り当て部５０６、取得部５０７、更新部５０８、及び、特定部５０９として機能する。なお、図５に示される各機能ブロックにより実行される処理が、図６〜１２に示される処理と対応させて後述される。
【００６８】
図６に、実施例の管理装置によって実行される処理の例が示される。図６には、新しいＶＭを実行させる要求を受けた場合であって、新しいＶＭの実行時にはＶＭにＮＩＣの割り当ての要求がされていない場合に、図１に示される管理サーバ２００によって、ＶＭマネージャであるサーバ２６に、ＶＭを実行するサーバを指示する処理である。なお、図６に示された処理をサーバ２６が実行してもよい。まず、図６に示される処理を開始するために処理６００が実行される。
【００６９】
新しいＶＭの実行が要求されたか否かを判定する処理６０１が、判定部５００によって実行される。要求されていないと判定されると、要求の監視を続けるために処理６０１を繰り返す。要求されたと判定されると処理６０２に移る。
【００７０】
新しいＶＭを実行可能なサーバの候補があるか否かを判定する処理６０２が、判定部５００によって実行される。処理６０２では、ＶＭマネージャであるサーバ２６や管理サーバ２００によってモニタされている起動中のサーバ２０−２５のハードウェアリソースの使用状況や、データセンタ１００内のパワーコントロール状況に応じて、新しいＶＭを実行可能なサーバの候補があるか否かが判定される。候補がないと判定されると処理６０３に移る。候補があると判定されると処理６０４に移る。
【００７１】
新しいＶＭを実行可能なサーバがないことを通知する処理６０３が、通知部５０１によって実行される。処理６０３では、新しいＶＭを実行可能なほどハードウェアリソースに余裕のあるサーバがないことが処理６０２により判定されたため、この判定結果に基づき、新しいＶＭを実行可能なサーバがないことが通知される。処理６０３を終えると、処理６０８に移る。
【００７２】
処理６０２によりサーバの候補があると判定されると、候補となるサーバによって新しいＶＭが実行された場合の新しいＶＭの処理遅延を算出する処理６０４が、算出部５０２によって実行される。処理６０４では、例えば、候補となるサーバにおいて既に実行されているＶＭに加えて新しいＶＭの実行をした場合に、ＣＰＵのコンテキストスイッチなど、ＣＰＵ処理の待ち時間がどの程度となるかが算出される。
【００７３】
新しいＶＭを実行可能なサーバの候補が他にあるか否かを判定する処理６０５が、判定部５００によって実行される。他の候補があると判定された場合には、他の候補のサーバが新しいＶＭを実行した場合の新しいＶＭの処理遅延を算出するために処理６０４に移る。他の候補がないと判定された場合には、処理６０６に移る。
【００７４】
処理遅延が小さくなるように、新しいＶＭを実行するサーバを選択する処理６０６が、選択部５０３によって実行される。処理６０６では、処理６０４により算出された算出結果に基づき、候補となるサーバ毎の処理遅延が互いに比較されて、処理遅延が小さくなるようなサーバが、新しいＶＭを実行するサーバとして選択される。
【００７５】
選択されたサーバに新しいＶＭを実行させるよう指示する処理６０７が、指示部５０４によって実行される。処理６０７では、処理６０６により選択されたサーバに新しいＶＭを実行させるよう、例えば、ＶＭマネージャであるサーバ２６に指示がされる。
【００７６】
処理を継続するか否かを判定する処理６０８が、判定部５００によって実行される。処理を継続すると判定された場合には、処理６０１に移る。処理を継続しないと判定された場合に処理６０９に移り、図６に示された処理が処理６０９によって終了される。
【００７７】
図７に、実施例の管理装置によって実行される処理の他の例が示される。図７に示される処理は、サーバによってＶＭが実行されているものの、ＶＭにＮＩＣが割り当てられていない場合に、ＶＭが通信できるようにＶＭにＮＩＣを割り当てるための処理である。図２に沿って説明したように、ＮＩＣが何れかのＶＭに既に割り当て済みである場合があるため、図７に示される処理によって、ＮＩＣまでの転送回路を考慮して、未割り当てのＮＩＣを探索する。まず、図７に示される処理を開始するために処理７００が実行される。
【００７８】
ＶＭへのＮＩＣの割り当てが要求されたか否かを判定する処理７０１が、判定部５００によって実行される。要求されていないと判定されると、要求の監視を続けるために処理７０１を繰り返す。要求されたと判定されると処理７０２に移る。
【００７９】
ＶＭが実行されているサーバに接続されたインターコネクトスイッチからの転送回数をＮとして、Ｎ＝０をセットする処理７０２が、設定部５０５によって実行される。処理７０２では、ＶＭから送信されたパケットがインターコネクトスイッチ間を転送される回数（ホップ数）をＮとして、Ｎの初期値として０がセットされる。なお、例えば、転送回数が０となるインターコネクトスイッチとは、ＶＭが実行されているサーバに接続されたインターコネクトスイッチのことであり、転送回数が１となるインターコネクトスイッチとは、ＶＭが実行されているサーバに接続されたインターコネクトスイッチに直接接続されたインターコネクトスイッチである。まずＮが０にセットされたということは、ＶＭが実行されるサーバを基準として、インターコネクトスイッチの転送回数がなるべく少なくなるようにＮＩＣが探索されることを意味する。
【００８０】
転送回数がＮとなるインターコネクトスイッチに接続されたＮＩＣに未割り当てのＮＩＣがあるか否かを判定する処理７０３が、判定部５００によって実行される。図２に沿って説明したように、ＮＩＣが何れかのＶＭに既に割り当て済みである場合があるため、転送回数がＮとなる転送回路に接続されたＮＩＣにおいて、未割り当てのＮＩＣがあるか否かが処理７０３によって判定される。未割り当てのＮＩＣがあると判定された場合には処理７０４に移り、未割り当てのＮＩＣがないと判定された場合には処理７０５に移る。
【００８１】
未割り当てであると判定されたＮＩＣをＶＭに割り当てる処理７０４が、割り当て部５０６によって実行される。処理７０２を経て処理７０３が実行されることで、ＶＭが実行されるサーバから転送回数が極力少ないＮＩＣが未割り当てであると判定されたため、処理７０４によって、この未割り当てのＮＩＣを、ＮＩＣの割り当てを要求したＶＭに割り当てる。
【００８２】
処理７０３により未割り当てのＮＩＣがないと判定された場合に、Ｎが最大値を超えるか否かを判定する処理７０５が、判定部５００によって実行される。Ｎが最大値を超える場合とは、例えば、ＶＭが実行されるサーバが接続された転送回路からの転送回数が、インターコネクトスイッチの数及び接続構成に依存して最も大きくなる場合を超えた場合である。なお、インターコネクトスイッチの数及び接続構成よりも過小に最大値を設定してもよい。
【００８３】
Ｎが最大値を超えないと判定された場合には、設定部５０５によって処理７０６が実行されることでＮが１増加される。そして、Ｎを増加させて転送回数を多くした場合に未割り当てのＮＩＣがあるか否かを判定するために処理７０３に移る。他方で、Ｎが最大値を超えると判定された場合には、通知部５０１によって処理７０７が実行されて、ＶＭに割り当てるＮＩＣがないことが通知される。
【００８４】
処理７０４又は処理７０７に次いで、処理を継続するか否かを判定する処理７０８が、判定部５００によって実行される。処理を継続すると判定された場合には処理７０１に移り、処理を継続しないと判定された場合には処理７０９に移り、処理７０９によって図７に示された処理が終了する。
【００８５】
図８及び９に、実施例の管理装置によって実行される処理の他の例が示される。図８及び９に示される処理は、図６や図７に示される処理と異なり、新しいＶＭの実行が要求された際に、併せて、新しいＶＭへのＮＩＣの割り当ての要求がされている例である。この場合には、新しいＶＭが実行されるサーバの処理遅延と、新しいＶＭにＮＩＣを割り当てた際の転送遅延との両方を考慮する。そして、この処理遅延と転送遅延の両方を考慮した上で、新しいＶＭが実行されるサーバと新しいＶＭに割り当てられるＮＩＣとが選択される。まず、図８に示される処理を開始するために処理８００が実行され、処理８０１により、新しいＶＭ実行及び新しいＶＭへのＮＩＣの割り当ての要求が管理サーバ２００より受信される。なお、図７や図８に示されるように、この要求があるか否かを判定部５００によって監視してもよい。
【００８６】
新しいＶＭを実行可能なサーバの候補があるか否かを判定する処理８０２が、判定部５００によって実行される。要求されていないと判定されると処理８０３に移り、要求されたと判定されると処理８０４に移る。
【００８７】
新しいＶＭを実行可能なサーバがないことを通知する処理８０３が、通知部５０１によって実行される。処理８０３では、新しいＶＭを実行可能なほどハードウェアリソースに余裕のあるサーバがないことが処理８０２により判定されたため、未割り当てのＮＩＣがあるか否かを判定する前に、この判定結果に基づき、新しいＶＭを実行可能なサーバがないことが通知される。処理８０３を終えると、処理８１４に移る。
【００８８】
処理８０２によりサーバの候補があると判定されると、候補となるサーバによって新しいＶＭが実行された場合の新しいＶＭの処理遅延を算出する処理８０４が、算出部５０２によって実行される。処理８０４では、例えば、候補となるサーバにおいて既に実行されているＶＭに加えて新しいＶＭの実行をした場合に、ＣＰＵのコンテキストスイッチなど、ＣＰＵ処理の待ち時間がどの程度となるかが算出される。
【００８９】
ＶＭが実行されているサーバに接続されたインターコネクトスイッチからの転送回数をＮとして、Ｎ＝０をセットする処理８０５が、設定部５０５によって実行される。処理８０５では、ＶＭから送信されたパケットがインターコネクトスイッチ間を転送される回数（ホップ数）をＮとして、Ｎの初期値として０がセットされる。なお、例えば、転送回数が０となるインターコネクトスイッチとは、ＶＭが実行されているサーバに接続されたインターコネクトスイッチのことであり、転送回数が１となるインターコネクトスイッチとは、ＶＭが実行されているサーバに接続されたインターコネクトスイッチに直接接続されたインターコネクトスイッチである。まずＮが０にセットされたということは、ＶＭが実行されるサーバを基準として、インターコネクトスイッチの転送回数がなるべく少なくなるようにＮＩＣが探索されることを意味する。
【００９０】
転送回数がＮとなるインターコネクトスイッチに接続されたＮＩＣに未割り当てのＮＩＣがあるか否かを判定する処理８０６が、判定部５００によって実行される。図２に沿って説明したように、ＮＩＣが何れかのＶＭに既に割り当て済みである場合があるため、転送回数がＮとなる転送回路に接続されたＮＩＣにおいて、未割り当てのＮＩＣがあるか否かが処理８０６によって判定される。未割り当てのＮＩＣがあると判定された場合には処理８０９に移り、未割り当てのＮＩＣがないと判定された場合には処理８０７に移る。
【００９１】
未割り当てのＮＩＣがないと判定された場合に、Ｎが最大値を超えるか否かを判定する処理８０７が、判定部５００によって実行される。Ｎが最大値を超える場合とは、例えば、ＶＭが実行されるサーバが接続された転送回路からの転送回数が、インターコネクトスイッチの数及び接続構成に依存して最も大きくなる場合を超えた場合である。なお、インターコネクトスイッチの数及び接続構成よりも過小に最大値を設定してもよい。
【００９２】
Ｎが最大値を超えないと判定された場合には、設定部５０５によって処理８０８が実行されることでＮが１増加される。そして、Ｎを増加させて転送回数を多くした場合に未割り当てのＮＩＣがあるか否かを判定するために処理８０６に移る。他方で、Ｎが最大値を超えると判定された場合には、通知部５０１によって処理８１３が実行されて、新しいＶＭを実行可能なサーバはあるが割り当て可能なＮＩＣがないことが通知される。
【００９３】
未割り当てであると判定されたＮＩＣを新しいＶＭに割り当てた場合の転送遅延を算出する処理８０９が、算出部５０２によって実行される。処理８０９では、例えば、新しいＶＭを実行するサーバから未割り当てであると判定されたＮＩＣまでパケットが転送される場合の、転送回路における処理にかかる処理遅延と転送回路間の転送遅延との合計値が、転送させるパケットサイズに対する各遅延のシミュレーション値などに基づき、パケット転送遅延として算出される。
【００９４】
新しいＶＭを実行可能なサーバの候補が他にあるか否かを判定する処理８１０が、判定部５００によって実行される。他の候補があると判定された場合には、他の候補のサーバが新しいＶＭを実行した場合の、新しいＶＭの処理遅延及び転送遅延を算出するために処理８０４に移る。他の候補がないと判定された場合には、処理８１１に移る。
【００９５】
新しいＶＭを実行可能なサーバの候補ごとの処理遅延及び転送遅延に基づき、処理遅延及び転送遅延の合計値が小さくなるように、新しいＶＭを実行するサーバ及び新しいＶＭに割り当てるＮＩＣを選択する処理８１１が、選択部５０３によって実行される。
【００９６】
例えば、未割り当てのＮＩＣを探索して、そのＮＩＣが接続されたインターコネクトスイッチに接続されるサーバによってＶＭを実行させたとしても、そのサーバによって複数のＶＭが実行されている場合には、コンテキストスイッチなどの処理遅延によって、新たに実行させるＶＭの処理性能が不十分で、既に実行されていた複数のＶＭの処理性能を低下させてしまうことがある。また、ハードウェアリソースが十分に余っているサーバに新たなＶＭを実行させても、割り当てられたＮＩＣが、インターコネクトスイッチを多段に経由しないとパケットを送信できないようなＮＩＣであると、パケット転送時間がながくなってしまう。そこで、処理８１１では、処理８０４及び８０９により算出された算出結果に基づき、候補となるサーバ毎の処理遅延及び転送遅延の合計値が互いに比較されて、この合計値が小さくなるようなサーバ及びＮＩＣが選択される。
【００９７】
選択されたサーバに新しいＶＭを実行させる指示、及び選択されたＮＩＣを新しいＶＭに割り当てる処理８１２が、指示部５０４及び割り当て部５０６によって実行される。処理８１２では、処理遅延及び転送遅延の合計値が小さくなるように、選択されたサーバに新しいＶＭを実行させる指示がＶＭマネージャであるサーバ２６に指示がされ、選択されたＮＩＣが新しいＶＭに割り当てられる。
【００９８】
図８に示される処理を終了するために処理８１４が実行される。なお、処理８１４によって処理を終了する前に、図７や図８と同じように、処理を継続するか否かを判定部５００によって実行して、処理を継続する場合には処理８０１に移ってもよい。
【００９９】
図１０に、実施例の管理装置で実行される処理の他の例が示される。図１０で示される処理は、図２に沿って説明したように、ＶＭをマイグレーションさせる又はＮＩＣの割り当てを変更する場合に、ＶＭの通信量がある程度多くないと効果が小さくなる又は悪化する場合がある。そのため、図１１及び１２に示される処理において、ＶＭの通信量を判定条件とするために、このＶＭの通信量を監視する処理である。まず、図１０に示される処理を開始するために処理９００が実行される。
【０１００】
ネットワークスイッチによって受信されたパケットに基づき、ＶＭの通信量を取得する処理９０１が、取得部５０７によって実行される。処理９０１では、ネットワークスイッチ５０によって受信されたパケットのヘッダ部に含まれる宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス及びパケットのデータ量に基づき、どのＶＭがどの程度の通信量で通信を実行しているかを取得する。
【０１０１】
なお、処理９０１では、次に説明する予測量に応じて、取得した通信量と予測量との平均量を、ＶＭの通信量としてもよい。例えば、クライアントがＶＭを利用したサービスを行う際の利用契約に基づきどの程度の帯域が割り当てられているかや、例えば大規模データ処理アプリケーション型、Ｗｅｂサービス型、メールやセンサ情報などその他の処理型といったアプリケーション種別を記録しておき、記録された情報に応じて、ＶＭが終了するまでにどの程度のパケットを転送するかを通信量の予測量を見積もってもよい。また、インターコネクトスイッチにおいてＶＭから送信されたパケットが入力されるポートのポート番号に応じた通信量を使用して予測量を見積もってもよい。
【０１０２】
取得された通信量に基づき、データベースにおいて、ＶＭの通信量を更新する処理９０２が、更新部５０８によって実行される。処理９０２では、処理９０１により取得されたＶＭの通信量が、例えば、図４に示される記憶装置４７０によって実現されるデータベースにおいて更新される。
【０１０３】
ＶＭの通信量の監視を継続するか否かを判定する処理９０３が、判定部５００によって実行される。継続すると判定された場合には処理９０１に移り、継続しないと判定された場合には処理９０４に移ることで図１０に示される処理が終了する。
【０１０４】
図１１及び１２に、実施例の管理装置で実行される処理の他の例が示される。図１１及び１２に示される処理では、既にＮＩＣが割り当てられて通信を実行しているＶＭに対して、ＶＭをマイグレーションさせるか又は割り当てるＮＩＣを変更することで、パケットの転送時間を短くさせることができるかが判定されて、パケットの転送時間が短くなる場合には、マイグレーション又はＮＩＣの割り当ての変更が実行される。まず、図１１及び１２に示される処理を開始するために処理１０００が実行される。処理１０００に次いで、実行されているＶＭ毎に対応付けられたカウンタをリセットする処理１００１が、設定部５０５によって実行される。
【０１０５】
データベースに基づき、通信量の多いＶＭを特定する処理１００２が、特定部５０９によって実行される。処理１００２では、図３に沿って説明したように、通信量の多い通信ほど、ＶＭのマイグレーション又はＮＩＣの割り当ての変更を実行させた場合のパケット転送時間の短縮効果が高いため、通信量の多いＶＭを特定している。
【０１０６】
特定されたＶＭが実行されるサーバに、特定されたＶＭに割り当てられたＮＩＣが接続されている、又は、未割り当てのＮＩＣがないか否かを判定する処理１００３が、判定部５００によって実行される。判定結果が肯定であると処理１００１に移り、判定結果が否定であると処理１００４に移る。
【０１０７】
特定されたＶＭに対応付けられたカウンタの値を増加させる処理１００４が設定部５０５によって実行されて、特定されたＶＭに対応付けられたカウンタのうち、カウンタの値が閾値を超えるカウンタがあるか否かを判定する処理１００５が、判定部５００によって実行される。閾値を超えるカウンタがないと判定されると処理１００２に移る。閾値を超えるカウンタがあると判定されると処理１００６に移り、ＶＭマイグレーション、又は、ＮＩＣの割り当ての変更の判定を開始する処理１００６が、管理サーバ２００によって実行される。
【０１０８】
マイグレーション先の候補となるサーバがあるか否かを判定する処理１００７が、判定部５００によって実行される。候補となるサーバがないと判定されると処理１００２に移り、候補となるサーバがあると判定されると処理１００８に移る。
【０１０９】
候補となるサーバによってＶＭが実行された場合の、ＶＭから割り当て済みＮＩＣまでのパケット転送時間、及びＶＭマイグレーションにかかる時間を含む第１予測時間を算出する処理１００８が、算出部５０２によって実行される。
【０１１０】
まず、処理１００８において、ＶＭから割り当て済みＮＩＣまでのパケット転送時間を算出する処理を説明する。サーバで実行されているＶＭの数をＶＭｎｕｍｂｅｒとし、当該サーバにＶＭがひとつ増える毎に増加する、コンテキストスイッチによる単位時間当たりの処理遅延をＣｄとする。また、図１０に示される処理９０１によって取得された通信量を例えば直近の通信速度で除算することにより、対象となるＶＭが通信を終えるまでにかかる時間であるＴｉｍｅが算出される。そして、当該サーバにおけるコンテキストスイッチによる処理遅延Ｄｖｍは、ＶＭｎｕｍｂｅｒ、Ｃｄ、及びＴｉｍｅの積算により算出される。
【０１１１】
対象となるＶＭが通信を終えるまでに、対象となるＶＭがインターコネクトにアクセスする回数であるＮは、図１０に示される処理９０１によって取得された通信量をパケットサイズで除算した値となる。そして、インターコネクトスイッチ間の転送１回あたりの遅延をＤｈｏｐとし、転送回数をＮｈｏｐとすると、インターコネクトに対してアクセスした場合の１回あたりの遅延時間であるＤｂｕｓは、ＤｈｏｐとＮｈｏｐの和になる。
【０１１２】
これらにより、対象となるＶＭが通信を終えるまでに、対象となるＶＭを実行するサーバにおいて生じる遅延（インターコネクトにおける遅延及びサーバ内処理の遅延の合計）であるＤｔａｒｇｅｔは、Ｄｖｍ（ｔａｒｇｅｔ）に、ＤｂｕｓとＮとの積を加えた値となる。
【０１１３】
他方で、対象となるＶＭが通信を終えるまでに、対象となるＶＭが実行されない他のサーバで発生する遅延（サーバ内処理の遅延の合計）であるＤｏｔｈｅｒは、対象となるＶＭが実行されているサーバ以外のサーバのΣＤｖｍ（１〜ｎ、ｔａｒｇｅｔ以外）となる。
【０１１４】
従って、対象となるＶＭが通信を終えるまでにかかるシステム全体での遅延の合計であるＤｔｏｔａｌは、ΣＤｖｍ（１〜ｎ）に、ＤｂｕｓとＮとの積を加えた値となる。
【０１１５】
次に、処理１００８において、ＶＭマイグレーションにかかる時間に関する処理を説明する。マイグレーションでは、移動元サーバのメモリから移動先サーバのメモリへＶＭの実行状態を表す情報を転送する。この転送の間にもＶＭは実行され続けているため、転送中にメモリ内容が更新されることがある。そこで、更新のあった部分を差分として再度転送する。そして、差分の量が一定量を下回ったら、移動元サーバによるＶＭの実行を停止して、差分の残りの部分を移動先サーバに転送する。転送終了後、移動元サーバからＶＭの実行状態を表す情報を消去し、移動先サーバによってＶＭを実行する。
【０１１６】
例えば、複数のＶＭが連携して大規模なデータを処理する場合には、複数のＶＭにおけるＯＳやメモリ容量や各種の設定パラメータが同程度の設定されるため、どのＶＭのマイグレーションにかかる時間がほぼ等しくなることが想定される。従って、事前のシミュレーションなどによってＶＭのマイグレーションにかかる時間を求め、これをメモリ４２０格納しておき、必要に応じて、この時間をメモリ４２０から読み出して、第１予測時間を算出する際に使用すればよい。
【０１１７】
以上に説明した処理に従って、第１予測時間が、Ｄｔｏｔａｌ及びＶＭのマイグレーションにかかる時間を含むように算出される。
【０１１８】
マイグレーション先の候補となるサーバが他にあるか否かを判定する処理１００９が、判定部５００によって実行される。処理１００９では、ＶＭマネージャであるサーバ２６や管理サーバ２００によってモニタされているサーバ２０−２５のハードウェアリソースの使用状況や、データセンタ１００内のパワーコントロール状況に応じて、ＶＭのマイグレーション先となるサーバの候補があるか否かが判定される。候補がないと判定されると処理１０１０に移る。候補があると判定されると処理１００８に移る。
【０１１９】
ＶＭに割り当て可能なＮＩＣの候補があるか否かを判定する処理１０１０が、判定部５００によって実行される。実施例の管理サーバ２００は、ＶＭ１−５に対してＮＩＣ３０−４１を割り当てたり、割り当てを解除したりする。そして、ＶＭと割り当てたＮＩＣとの対応関係及び未割り当てのＮＩＣを管理し、この対応関係をメモリ４２０に格納している。処理１０１０では、この対応関係に基づき、ＶＭに割り当て可能なＮＩＣの候補があるか否かが判定される。ＮＩＣの候補があると判定された場合には処理１０１２に移り、ＮＩＣの候補がないと判定された場合には処理１０１１に移る。
【０１２０】
算出された第１予測時間に基づき、ＶＭをマイグレーションさせるか、又は、ＶＭをマイグレーションさせないかを選択する処理１０１１が、選択部５０３によって実行される。処理１０１１は、処理１０１０によりＶＭに割り当て可能案ＮＩＣがないと判定された結果をうけて実行される処理のため、ＮＩＣの割り当ての変更を考慮せずに、ＶＭをマイグレーションさせるか否かが第１予測時間に従って選択することとなる。
【０１２１】
例えば、図３（Ｂ）及び（Ｄ）にて比較されるように、ＶＭをマイグレーションさせた結果、パケットの送信にかかる時間が短くなる場合もあるが、図３（Ｅ）に示されるように、ケットの送信にかかる時間が短くなる場合もある。そのため、処理１０１１では、算出された第１予測時間に従う時間と、ＶＭをマイグレーションさせない場合のパケットの送信にかかる時間とを比較して、ＶＭをマイグレーションさせるか、又は、ＶＭをマイグレーションさせないかを選択する。
【０１２２】
候補となるＮＩＣをＶＭに割り当てた場合の、ＶＭからＮＩＣまでのパケット転送時間、及びＮＩＣの割り当ての変更にかかる時間を含む第２予測時間を算出する処理１０１２が、算出部５０２によって実行される。
【０１２３】
なお、処理１０１２におけるＮＩＣの割り当ての変更にかかる時間は、次の設定にかかる時間に基づいて算出すればよい。それは、割り当て変更後に使用されるＮＩＣに含まれるＲＡＭに変更後のＭＡＣアドレスを書き込むための処理にかかる時間、インターコネクトスイッチ６−８とＶＭ間の通信はＮＩＣの識別情報に従うため変更後のＮＩＣの識別情報をＶＭに通知して設定させる処理にかかる時間、及び、ネットワークスイッチ５０に対して変更後のＮＩＣにパケットが届くようにネットワークスイッチ５０に含まれるポートとＭＡＣアドレスの対応関係に変更後のＮＩＣのＭＡＣアドレスで更新する処理にかかる時間である。これらの時間は個別に算出することが可能であり、これらの時間全てを考慮した時間はほぼ一定時間とみなすことができる。
【０１２４】
ＶＭに割り当て可能なＮＩＣの候補が他にあるか否かを判定する処理１０１３が、判定部５００によって実行される。処理１０１３では、メモリ４２０に格納されている上述の対応関係に従って、ＮＩＣの候補が他にあるか否かが判定される。ＮＩＣの候補が他にあると判定されると、他の候補に関する第２予測時間を算出するために処理１０１２に移る。他方で、ＮＩＣの候補が他にないと判定されると処理１０１４に移る。
【０１２５】
算出された第１予測時間及び第２予測時間に基づき、ＶＭをマイグレーションさせるか、ＶＭに割り当てるＮＩＣを変更するか、又はそれらの何れも実行しないかを選択する処理１０１４が、選択部５０３によって実行される。
【０１２６】
図３に沿って説明したように、パケット転送時間を短くさせるためには、ＮＩＣの割り当て変更やＶＭマイグレーションにかかる時間と、サーバ内での処理遅延やインターコネクトスイッチを介した転送遅延とを総合的に考慮しないと、パケットの送信にかかる通信時間全体が短縮されない。そのため、処理１０１４では、第１予測時間及び第２予測時間に基づき、パケット送信にかかる通信時間が短縮されるような設定を選択するようにしている。
【０１２７】
処理を継続するか否かを判定する処理１０１５が、判定部５００によって実行される。継続すると判定された場合には処理１００２に移り、継続しないと判定された場合には処理１０１６に移ることで図１１及び１２に示される処理が終了する。
【０１２８】
なお、マイグレーション又はＮＩＣの割り当ての変更が実行された後、図１０に示される処理の対象となったＶＭの通信量が多い場合には、それらの処理のうちで実行されなかった処理が図１０によってあらためて実行されることがある。例えば、マイグレーションさせた方がパケットの転送時間が短くなると判定されてマイグレーションが実行された後、ＶＭが実行されるサーバに接続されたインターコネクトスイッチとは異なるインターコネクトスイッチに接続されたＮＩＣが割り当てられている場合には、通信量が多いとあらためて判定された同じＶＭが処理の対象とされ、ＮＩＣの割り当ての変更がされることもある。逆に、ＮＩＣの割り当ての変更の後に、マイグレーションが実行されることもある。
【０１２９】
上述された実施例によれば、仮想マシンを実行するサーバが接続されたインターコネクトスイッチからＮＩＣまで、他のインターコネクトスイッチを経由させてパケットを送る通信システムで、他のインターコネクトスイッチに接続された他のサーバによって仮想マシンを実行させるか判定する。
【０１３０】
また、この場合に、仮想マシンを他のサーバに実行させる場合のマイグレーションにかかる時間、及びマイグレーション後の仮想マシンから送信されたパケットが他のインターコネクトスイッチに接続されたＮＩＣへ届けられるまでの時間の合計値と、仮想マシンに割り当てるＮＩＣを仮想マシンが実行されるサーバが接続されたインターコネクトスイッチに接続されたＮＩＣに変更する処理にかかる時間、及び仮想マシンに割り当てるＮＩＣが変更された後に仮想マシンから新たに割り当てられたこのＮＩＣへ届けられるまでの時間の合計値とが比較されて、仮想マシンからＮＩＣまでのパケットの転送時間がより短くなるように、仮想マシンをマイグレーションさせるかＮＩＣの割り当てを変更させるかが選択される。
【０１３１】
従って、パケットを転送するインターコネクトスイッチが複数連結されていて、仮想マシンを実行するサーバが接続されたインターコネクトスイッチと仮想マシンに割り当てられたＮＩＣが接続されるインターコネクトスイッチとが異なっていても、サーバの利用状況に応じて実行されている仮想マシンから送信されたパケットがＮＩＣへ届けられるまでの時間を短くすることができる。
【０１３２】
なお、以上の実施例に関し、以下の付記としてまとめる。
（付記１）仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムを管理する管理装置であって、前記仮想マシンを、前記第２転送回路に接続された、前記第１コンピュータとは異なる第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定することを特徴とする管理装置。
（付記２）前記管理装置は、前記仮想マシンを前記第２コンピュータによって実行させるかを判定する場合に、前記第１通信回路が接続された転送回路とは異なる転送回路に接続された第２通信回路が割り当てられた場合の前記仮想マシンから前記第２通信回路まで前記パケットが届けられるまでの第２予測時間と、前記第１予測時間とに応じて、前記第２コンピュータによって前記仮想マシンを実行させるか前記仮想マシンに前記第２通信回路を割り当てるかを選択することを特徴とする付記１に記載の管理装置。
（付記３）前記第１予測時間は、前記仮想マシンを前記第２コンピュータによって実行させるために前記仮想マシンを前記第１コンピュータから前記第２コンピュータへマイグレーションするための時間を含むことを特徴とする付記１又は２に記載の管理装置。
（付記４）前記第1予測時間は、前記第２コンピュータによって実行させられた場合の前記仮想マシンが、前記第２コンピュータによって既に実行させていた他の仮想マシンによる処理を待つ時間を含むことを特徴とする付記１〜３の何れか１つに記載の管理装置。
（付記５）前記管理装置は、前記第１予測時間が、前記第１コンピュータによって実行される前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの時間以下となる場合に、前記第１コンピュータとは異なる前記第２コンピュータによって前記仮想マシンを実行させることを特徴とする付記１〜４の何れか１つに記載の管理装置。
（付記６）前記管理装置は、前記第１予測時間に基づき、前記仮想マシンから前記第１通信回路へ前記パケットが届けられるまでに前記パケットを転送する転送回路の数を減少させるように、前記仮想マシンが実行される前記第２コンピュータを選択することを特徴とする付記１〜５の何れか１つに記載の管理装置。
（付記７）前記管理装置は、前記パケットを、前記第１転送回路を経由させずに前記第１通信回路まで届けさせるように、前記仮想マシンが実行される前記第２コンピュータを選択することを特徴とする付記１〜６の何れか１つに記載の管理装置。
（付記８）前記管理装置は、前記仮想マシンの通信量が所定量を超えた場合に、前記第１コンピュータとは異なる前記第２コンピュータによって前記仮想マシンを実行させるかを判定することを特徴とする付記１〜７の何れか１つに記載の管理装置。
（付記９）前記第２予測時間は、前記仮想マシンに割り当てられる通信回路を前記第１通信回路から前記第２通信回路に変更するための時間を含むことを特徴とする付記２〜８の何れか１つに記載の管理装置。
（付記１０）仮想マシンを実行する第１コンピュータと、前記第１コンピュータが接続された第１転送回路と、ネットワークにパケットを送信するための第１通信回路と、前記第１転送回路から転送された前記パケットを受けとって前記第１通信回路に転送する第２転送回路と、前記第２転送回路に接続された、前記第１コンピュータとは異なる第２コンピュータと、前記仮想マシンを、前記第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定する管理装置とを有することを特徴とする情報処理システム。
（付記１１）  仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムを管理する方法であって、コンピュータが、前記仮想マシンを、前記第１コンピュータとは異なる前記第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定することを特徴とする情報処理方法。
（付記１２）仮想マシンを実行する第１コンピュータが接続された第１転送回路から、ネットワークにパケットを送信するための第１通信回路まで、第２転送回路を経由させて前記パケットを転送させる情報処理システムをコンピュータに管理させるプログラムであって、前記コンピュータに、前記仮想マシンを、前記第1コンピュータとは異なる前記第２コンピュータによって実行させた場合の、前記仮想マシンから前記第１通信回路まで前記パケットが届けられるまでの第１予測時間に応じて、前記第２コンピュータによって前記仮想マシンを実行させるかを判定させるプログラム。
【符号の説明】
【０１３３】
１−５              ＶＭ
６−８              インターコネクトスイッチ
２０−２６、７０    サーバ
３０−４１          ＮＩＣ
５０                ネットワークスイッチ
６０                ネットワーク
１００              データセンタ
２００              管理サーバ
４００              ＣＰＵ
４１０              メモリコントローラ
４２０              メモリ
４３０              メモリバス
４４０              ＩＯバスコントローラ
４５０              ＮＩＣ
４６０              ＩＯバス
４７０              記憶装置
５００              判定部
５０１              通知部
５０２              算出部
５０３              選択部
５０４              指示部
５０５              設定部
５０６              割り当て部
５０７              取得部
５０８              更新部
５０９              特定部
【図１】
2014186411.tif 000003
【図２】
2014186411.tif 000004
【図３】
2014186411.tif 000005
【図４】
2014186411.tif 000006
【図５】
2014186411.tif 000007
【図６】
2014186411.tif 000008
【図７】
2014186411.tif 000009
【図８】
2014186411.tif 000010
【図９】
2014186411.tif 000011
【図１０】
2014186411.tif 000012
【図１１】
2014186411.tif 000013
【図１２】
2014186411.tif 000014