(57)【要約】【課題】通信路の容量圧迫を防止すること。【解決手段】実施形態に係る配置制御装置は、資源情報記憶部と、判定部と、配置部とを有する。資源情報記憶部は、ネットワークに含まれる複数の物理マシンのいずれかで動作している仮想マシンが要する要求資源に関する資源情報を仮想マシン毎に記憶する。判定部は、資源情報記憶部に記憶されている資源情報に基づいて、ネットワークに含まれる複数の仮想マシンのうち互いに通信を行う仮想マシン群毎に、仮想マシン群の要求資源を提供できる物理マシンが複数の物理マシンに存在するかを判定する。配置部は、判定部によって要求資源を提供できる物理マシンが存在すると判定された仮想マシン群をかかる物理マシンに配置する。【選択図】図３
2013037495.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに含まれる複数の物理マシンのいずれかで動作している仮想マシンが要する要求資源に関する資源情報を仮想マシン毎に記憶する資源情報記憶部と、
前記資源情報記憶部に記憶されている資源情報に基づいて、前記ネットワークに含まれる複数の仮想マシンのうち互いに通信を行う仮想マシン群毎に、該仮想マシン群の要求資源を提供できる物理マシンが前記複数の物理マシンに存在するかを判定する判定部と、
前記判定部によって前記要求資源を提供できる物理マシンが存在すると判定された仮想マシン群を該物理マシンに配置する配置部と
を備えたことを特徴とする配置制御装置。
【請求項２】
前記互いに通信を行う仮想マシン群に含まれる仮想マシンの組毎に、双方の仮想マシン間の通信量を記憶する通信量記憶部をさらに備え、
前記判定部は、
前記通信量記憶部に記憶されている通信量が多い仮想マシンの組の順に、該仮想マシンの組を構成する双方の仮想マシンの要求資源を提供できる物理マシンが存在するかを判定する
ことを特徴とする請求項１に記載の配置制御装置。
【請求項３】
前記判定部は、
前記仮想マシンの組の中に要求資源が過去に変動している仮想マシンである変動仮想マシンが存在する場合に、該要求資源の変動に基づいて該変動仮想マシンが将来に追加で要する要求資源である追加要求資源を予測し、前記仮想マシンの組を構成する双方の仮想マシンの要求資源と前記追加要求資源とを提供できる物理マシンが存在するか否かを判定する
ことを特徴とする請求項２に記載の配置制御装置。
【請求項４】
前記判定部は、
前記仮想マシンの組を構成する仮想マシンと同一の利用者にアクセスされる仮想マシンを特定し、特定した仮想マシンの要求資源と前記仮想マシンの組を構成する双方の仮想マシンの要求資源とを提供できる物理マシンが存在するか否かを判定する
ことを特徴とする請求項２又は３に記載の配置制御装置。
【請求項５】
前記判定部は、
前記仮想マシンの組を構成する一方の仮想マシンが前記配置部によって所定の物理マシンに配置されている場合に、前記仮想マシンの組を構成する他方の仮想マシンの要求資源を前記所定の物理マシンが提供可能であるか否かを判定し、
前記配置部は、
前記判定部によって前記所定の物理マシンが前記他方の仮想マシンの要求資源を提供可能であると判定された場合に、前記他方の仮想マシンを前記所定の物理マシンに配置する
ことを特徴とする請求項２〜４のいずれか一つに記載の配置制御装置。
【請求項６】
ネットワークに含まれる複数の物理マシンのいずれかで動作している仮想マシンが要する要求資源に関する資源情報を仮想マシン毎に記憶する資源情報記憶部と、
前記ネットワークに含まれる仮想マシンの組毎に、仮想マシン間における通信量を計数する通信量計数部と、
前記資源情報記憶部に記憶されている資源情報に基づいて、前記通信量計数部によって計数された通信量が大きい仮想マシンの組の順に、該仮想マシンの組を構成する双方の仮想マシンの要求資源を提供できる物理マシンが前記複数の物理マシンに存在するか否かを判定する判定部と、
前記判定部によって前記要求資源を提供できる物理マシンが存在すると判定された仮想マシンの組を該物理マシンに配置する配置部と
を備えたことを特徴とするネットワークシステム。
【請求項７】
配置制御装置で実行される配置制御方法であって、
ネットワークに含まれる複数の物理マシンのいずれかで動作している仮想マシンが要する要求資源に関する資源情報を受信する資源情報受信工程と、
前記資源情報受信工程により受信された資源情報に基づいて、前記ネットワークに含まれる複数の仮想マシンのうち互いに通信を行う仮想マシン群毎に、該仮想マシン群の要求資源を提供できる物理マシンが前記複数の物理マシンに存在するかを判定する判定工程と、
前記判定工程によって前記要求資源を提供できる物理マシンが存在すると判定された仮想マシン群を該物理マシンに配置する配置工程と
を含んだことを特徴とする配置制御方法。
【請求項８】
ネットワークに含まれる複数の物理マシンのいずれかで動作している仮想マシンが要する要求資源に関する資源情報を受信する資源情報受信手順と、
前記資源情報受信手順により受信された資源情報に基づいて、前記ネットワークに含まれる複数の仮想マシンのうち互いに通信を行う仮想マシン群毎に、該仮想マシン群の要求資源を提供できる物理マシンが前記複数の物理マシンに存在するかを判定する判定手順と、
前記判定手順によって前記要求資源を提供できる物理マシンが存在すると判定された仮想マシン群を該物理マシンに配置する配置手順と
をコンピュータに実行させることを特徴とする配置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、配置制御装置、ネットワークシステム、配置制御方法及び配置制御プログラムに関する。
【背景技術】
【０００２】
従来、物理マシン（Physical  Machine）上に仮想マシン（Virtual  Machine）を動作させる仮想化技術が知られている。例えば、複数の利用者がネットワーク上にある資源を共有するクラウドコンピューティング（cloud  computing）では、ネットワーク上の物理マシン（物理サーバ）に仮想マシン（仮想サーバ）を動作させる仮想化技術が適用される場合がある。
【０００３】
このような仮想マシンを物理マシンに配置する手法として、仮想マシンに割り当てるＣＰＵ（Central  Processing  Unit）資源やメモリ資源を用いるものがある。例えば、所定の仮想マシン管理装置等は、仮想マシンに割り当てるＣＰＵ資源やメモリ資源を提供可能な物理マシンを特定し、特定した物理マシン上に仮想マシンを配置する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１２４９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の仮想マシン配置手法を用いた場合には、物理マシン間の通信路の容量を圧迫するおそれがあった。具体的には、上記の仮想マシン配置手法では、互いに通信を行う複数の仮想マシンが異なる物理マシンに分散して配置されるおそれがあり、この結果、物理マシン間の通信量が増大するおそれがあった。
【０００６】
本願の開示する技術は、上記に鑑みてなされたものであって、通信路の容量圧迫を防止することができる配置制御装置、ネットワークシステム、配置制御方法及び配置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
実施形態に係る配置制御装置は、ネットワークに含まれる複数の物理マシンのいずれかで動作している仮想マシンが要する要求資源に関する資源情報を仮想マシン毎に記憶する資源情報記憶部と、前記資源情報記憶部に記憶されている資源情報に基づいて、前記ネットワークに含まれる複数の仮想マシンのうち互いに通信を行う仮想マシン群毎に、該仮想マシン群の要求資源を提供できる物理マシンが前記複数の物理マシンに存在するかを判定する判定部と、前記判定部によって前記要求資源を提供できる物理マシンが存在すると判定された仮想マシン群を該物理マシンに配置する配置部とを備えることを特徴とする。
【発明の効果】
【０００８】
実施形態に係る配置制御装置、ネットワークシステム、配置制御方法及び配置制御プログラムは、通信路の容量圧迫を防止することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係るネットワークシステムの構成例を示す図である。
【図２】図２は、通信量計数部が保持する通信量記憶部の一例を示す図である。
【図３】図３は、実施例１に係る配置制御装置の構成例を示す図である。
【図４】図４は、実施例１に係る配置制御装置による配置処理手順を示すフローチャートである。
【図５】図５は、実施例１における判定部及び配置部による配置先決定処理手順を示すフローチャートである。
【図６】図６は、配置制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する配置制御装置、ネットワークシステム、配置制御方法及び配置制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本願の開示する配置制御装置、ネットワークシステム、配置制御方法及び配置制御プログラムが限定されるものではない。また、以下の実施例で表記する「物理サーバ」は、物理的に実在する情報処理装置を示し、物理マシンとも呼ばれる。また、以下の実施例で表記する「仮想サーバ」は、仮想的な情報処理装置を示し、仮想マシンとも呼ばれる。
【実施例１】
【００１１】
［ネットワークシステムの構成］
まず、図１を用いて、実施例１に係るネットワークシステム１について説明する。図１は、実施例１に係るネットワークシステム１の構成例を示す図である。図１に例示したネットワークシステム１は、物理サーバ上で少なくとも一つの仮想サーバを動作させる仮想化技術が適用されているものとする。かかる仮想化技術では、物理的なハードウェアを論理的に分割し、分割したハードウェア毎にＯＳ（Operating  System）を動作させることで、１台の物理サーバをあたかも複数台の物理サーバであるかのように動作させる。
【００１２】
このようなネットワークシステム１は、複数の仮想サーバを新たな物理サーバに配置する配置処理を行う。具体的には、実施例１に係るネットワークシステム１は、各物理サーバにおいて動作している仮想サーバ間の通信を監視し、互いに通信を行う仮想サーバ群を極力同一の物理サーバに配置する。これにより、実施例１に係るネットワークシステム１は、物理サーバ間の通信量を減少させることができ、物理サーバ間を接続する通信路の容量圧迫を防止することができる。なお、「互いに通信を行う仮想サーバ群」とは、互いに通信を行ったことがある仮想サーバ群と、今後互いに通信を行うことが予測される仮想サーバ群とを含む。実施例では、「互いに通信を行う仮想サーバ群」として、互いに通信を行ったことがある仮想サーバ群を例に挙げて説明する。
【００１３】
この点について図１に示した例を用いて説明する。図１に例示したネットワークシステム１には、ＶＭ（Virtual  Machine）管理部１０と、物理サーバ２０−１及び２０−２と、物理スイッチ３０と、プローブ４０と、通信量計数部５０と、配置制御装置１００とが含まれる。
【００１４】
ＶＭ管理部１０は、ネットワークシステム１に含まれる仮想サーバの動作を管理する管理装置である。図１に示した例では、ＶＭ管理部１０は、物理サーバ２０−１や物理サーバ２０−２において動作する仮想サーバの動作を管理する。
【００１５】
例えば、ＶＭ管理部１０は、物理サーバ２０−１及び２０−２に対して、仮想サーバを起動する旨の指示である起動指示や、物理サーバ２０−１及び２０−２のうち一方の物理サーバで動作している仮想サーバを他方の物理サーバに移動させる旨の指示である移動指示等を行う。なお、ＶＭ管理部１０は、仮想サーバが提供しているサービスを停止させずに別の物理サーバに移動させる「ライブマイグレーション」と呼ばれる移動指示を行うことができる。
【００１６】
ここで、ＶＭ管理部１０は、物理サーバ２０−１や２０−２上で動作している各仮想サーバに割り当てることが要求されているＣＰＵ資源及びメモリ資源を仮想サーバ毎に管理する。例えば、ＶＭ管理部１０は、仮想サーバを識別するための識別子に対応付けて、かかる仮想サーバに割り当てるＣＰＵ資源及びメモリ資源を記憶する。これらのＣＰＵ資源及びメモリ資源は、例えば管理者等によって設定される。ＣＰＵ資源の一例としては、物理サーバが有するＣＰＵのクロック周波数（単位は「ＭＨｚ：メガヘルツ」等）が挙げられ、メモリ資源の一例としては、物理サーバが有するメモリの容量（単位は「ＭＢ：メガバイト」等）が挙げられる。なお、以下では、仮想サーバＸに割り当てることが要求されているＣＰＵ資源を「仮想サーバＸのＣＰＵ要求」と表記し、仮想サーバＸに割り当てることが要求されているメモリ資源を「仮想サーバＸのメモリ要求」と表記する場合がある。また、「仮想サーバＸのＣＰＵ要求」及び「仮想サーバＸのメモリ要求」の双方を単に「仮想サーバＸの要求資源」と表記する場合がある。
【００１７】
物理サーバ２０−１及び２０−２は、物理的に実在する情報処理装置であり、物理スイッチ３０を介してネットワークＮと接続されている。かかる物理サーバ２０−１及び２０−２は、１以上の仮想サーバを動作させ、ネットワークＮを介して接続されている利用者端末等に仮想サーバから各種サービスを提供する。
【００１８】
具体的には、図１に示した例では、物理サーバ２０−１は、仮想サーバ２１ａ−１、２１ｂ−１及び２１ｃ−１と、仮想スイッチ２２−１とを動作させる。仮想サーバ２１ａ−１、２１ｂ−１及び２１ｃ−１は、ソフトウェアにより実現される仮想的な情報処理装置であり、ＶＭ管理部１０による制御に従って、物理サーバ２０−１によって起動される。これらの仮想サーバ２１ａ−１、２１ｂ−１及び２１ｃ−１は、仮想スイッチ２２−１と接続されており、かかる仮想スイッチ２２−１を介して、利用者端末等に各種サービスを提供する。
【００１９】
また、図１に示した例では、物理サーバ２０−２は、仮想サーバ２１ａ−２、２１ｂ−２及び２１ｃ−２と、仮想スイッチ２２−２とを動作させる。仮想サーバ２１ａ−２、２１ｂ−２及び２１ｃ−２は、ソフトウェアにより実現される仮想的な情報処理装置であり、ＶＭ管理部１０による制御に従って物理サーバ２０−２によって起動される。これらの仮想サーバ２１ａ−２、２１ｂ−２及び２１ｃ−２は、仮想スイッチ２２−２と接続されており、かかる仮想スイッチ２２−２を介して、利用者端末に各種サービスを提供する。
【００２０】
上記の仮想サーバ２１ａ−１、２１ｂ−１、２１ｃ−１、２１ａ−２、２１ｂ−２及び２１ｃ−２は、互いに通信を行う場合がある。例えば、仮想サーバ２１ａ−１がＷｅｂサーバＡ１として動作しており、仮想サーバ２１ａ−２がストレージサーバＡ２として動作しており、さらに、かかるＷｅｂサーバＡ１がストレージサーバＡ２から各種データを取得して各種処理を行うものとする。かかる場合に、例えば、仮想サーバ２１ａ−１から仮想サーバ２１ａ−２に対してデータ取得要求等が送信され、仮想サーバ２１ａ−２から仮想サーバ２１ａ−１に対してデータ取得結果等が送信されることがある。このため、このような例の場合には、仮想サーバ２１ａ−１と仮想サーバ２１ａ−２とは、互いに通信を行うこととなる。
【００２１】
仮想スイッチ２２−１及び２２−２は、ソフトウェアにより実現される仮想的なスイッチであり、各仮想サーバによって送受されるパケットの中継処理等を行う。例えば、仮想スイッチ２２−１は、仮想サーバ２１ａ−１、２１ｂ−１及び２１ｃ−１によって送受されるパケットの中継処理を行い、仮想スイッチ２２−２は、仮想サーバ２１ａ−２、２１ｂ−２及び２１ｃ−２によって送受されるパケットの中継処理を行う。
【００２２】
また、物理サーバ２０−１は、プローブ２３−１を有する。かかるプローブ２３−１は、仮想スイッチ２２−１から中継処理に関する各種情報を取得する。例えば、プローブ２３−１は、パケットキャプチャ等により、仮想スイッチ２２−１によって送受されるパケットを取得する。また、例えば、仮想スイッチ２２−１にｓＦｌｏｗ（登録商標）、ＮｅｔＦｌｏｗ、ＩＰＦＩＸ等の技術が適用されている場合には、プローブ２３−１は、仮想スイッチ２２−１からフロー情報を取得する。なお、かかるフロー情報には、パケット（トラフィック）の送信先装置のＩＰアドレスや、パケットの送信元装置のＩＰアドレスや、通信量（トラフィック量）等が含まれる。
【００２３】
また、物理サーバ２０−２は、プローブ２３−２を有する。プローブ２３−２は、仮想スイッチ２２−２から中継処理に関する各種情報を取得する。プローブ２３−２による処理は、上述したプローブ２３−１による処理と同様である。
【００２４】
物理スイッチ３０は、物理的に実在するスイッチであり、物理サーバ２０−１と物理サーバ２０−２とが接続される。図１に示した例では、物理スイッチ３０は、物理サーバ２０−１の仮想スイッチ２２−１と、物理サーバ２０−２の仮想スイッチ２２−２と論理的に接続されており、仮想スイッチ２２−１と仮想スイッチ２２−２との間で送受されるパケットの中継処理を行う。また、物理スイッチ３０は、ネットワークＮと接続されている他の物理スイッチ（図示しない）との間でパケットの送受を行う。
【００２５】
プローブ４０は、物理スイッチ３０から中継処理に関する各種情報を取得する。かかるプローブ４０は、上記のプローブ２３−１及び２３−２と同様に、パケットキャプチャ等により、物理スイッチ３０によって送受されるパケットを取得する。
【００２６】
通信量計数部５０は、プローブ２３−１、２３−２及び４０によって取得されたパケットに関する各種情報を収集し、ネットワークシステム１内において流通しているトラフィックの通信量を計数する。このとき、実施例１における通信量計数部５０は、ネットワークシステム１に含まれる仮想サーバのペア（仮想サーバの組）毎に、かかる仮想サーバ間の通信量を計数する。そして、通信量計数部５０は、仮想サーバ間の通信量を所定の記憶部である通信量記憶部５１に格納する。
【００２７】
ここで、図２に、通信量計数部５０が保持する通信量記憶部５１の一例を示す。図２に例示するように、通信量記憶部５１は、「仮想サーバＶ１」、「仮想サーバＶ２」、「通信量」といった項目を有する。「仮想サーバＶ１」及び「仮想サーバＶ２」は、仮想サーバを識別するための識別子を示す。図２に示した例では、「仮想サーバＶ１」及び「仮想サーバＶ２」には、図１に示した仮想サーバに付与した参照符号が各仮想サーバの識別子として記憶される。「通信量」は、「仮想サーバＶ１」によって示される仮想サーバと、「仮想サーバＶ２」によって示される仮想サーバとの間で行われた通信の通信量を示す。
【００２８】
例えば、図２の例では、仮想サーバ２１ａ−１と仮想サーバ２１ｂ−１との間における通信量が「１００Ｍ（メガバイト）」であることを示し、仮想サーバ２１ａ−１と仮想サーバ２１ｃ−１との間における通信量が「２００Ｍ（メガバイト）」であることを示している。このように、通信量計数部５０は、ネットワークシステム１に含まれる全ての仮想サーバのペアについて、各仮想サーバのペアにおける通信量を計数する。図１に示した例では、ネットワークシステム１に６個の仮想サーバが含まれるので、通信量計数部５０は、図２に示した例のように１５個の仮想サーバのペアについて通信量を計数する。
【００２９】
図１の説明に戻って、配置制御装置１００は、ネットワークシステム１において動作している仮想サーバを各物理サーバに再配置する。具体的には、配置制御装置１００は、各仮想サーバのＣＰＵ要求及びメモリ要求である資源情報をＶＭ管理部１０から取得するとともに、通信量記憶部５１に記憶されている通信量情報を通信量計数部５０から取得する。そして、配置制御装置１００は、資源情報及び通信量情報に基づいて、仮想サーバのペア毎に、双方の仮想サーバの要求資源（ＣＰＵ要求及びメモリ要求）を提供できる物理サーバを特定し、特定した物理サーバに双方の仮想サーバを配置することを決定する。すなわち、配置制御装置１００は、互いに通信を行う仮想サーバの双方に対してＣＰＵ要求及びメモリ要求を提供できる１台の物理サーバに仮想サーバの双方を配置することを決定する。このようにして仮想サーバのペアが１台の物理サーバに配置された場合には、双方の仮想サーバは、物理スイッチ３０を介して互いに通信を行うことがない。このため、配置制御装置１００は、物理サーバ間を接続する通信路の容量圧迫を防止することができる。
【００３０】
なお、図１に示した例では、物理サーバ２０−１上で３個の仮想サーバが動作しており、物理サーバ２０−２上で３個の仮想サーバが動作している例を示した。しかし、物理サーバ２０−１や２０−２上で動作する仮想サーバの数は上記例に限られない。例えば、物理サーバ２０−１や２０−２上で、１個、２個、又は４個以上の仮想サーバが動作してもよいし、物理サーバ２０−１上で動作する仮想サーバの数と、物理サーバ２０−２上で動作する仮想サーバの数とは同一でなくてもよい。
【００３１】
また、図１に示した例では、物理スイッチ３０に物理サーバ２０−１及び２０−２が接続される例を示した。しかし、物理スイッチ３０に接続される物理サーバの数は上記例に限られない。例えば、物理スイッチ３０には１台又は３台以上物理サーバが接続されてもよい。
【００３２】
以下に、このような配置制御装置１００の構成及び処理手順について、より詳細に説明する。以下では、まず、図３を用いて配置制御装置１００の構成例について説明し、次に、図４及び図５を用いて、配置制御装置１００による処理手順について説明する。
【００３３】
［配置制御装置の構成］
図３は、実施例１に係る配置制御装置１００の構成例を示す図である。図３に例示するように、実施例１に係る配置制御装置１００は、ＩＦ（interface）部１１０と、通信量記憶部１２１と、資源情報記憶部１２２と、ＶＭ配置リスト記憶部１２３と、通信量受信部１３１と、資源情報受信部１３２と、判定部１３３と、配置部１３４と、指示部１３５とを有する。
【００３４】
ＩＦ部１１０は、外部装置との間で各種データを送受する。例えば、ＩＦ部１１０は、ＶＭ管理部１０から資源情報を受信したり、通信量計数部５０から通信量情報を受信したりする。また、例えば、ＩＦ部１１０は、ＶＭ管理部１０に対して、仮想サーバを移動させる旨の移動指示を送信する。
【００３５】
通信量記憶部１２１は、仮想サーバのペア毎に、かかる仮想サーバ間の通信量を記憶する。具体的には、通信量記憶部１２１は、後述する通信量受信部１３１によって受信された通信量情報を記憶する。なお、通信量記憶部１２１の構成は、図２に例示した通信量記憶部５１の構成と同様である。
【００３６】
資源情報記憶部１２２は、ネットワークシステム１に含まれる複数の物理サーバのいずれかで動作している仮想サーバが要する資源に関する資源情報を仮想サーバ毎に記憶する。具体的には、資源情報記憶部１２２は、後述する資源情報受信部１３２によって受信された資源情報であるＣＰＵ資源及びメモリ資源を仮想サーバ毎に記憶する。例えば、資源情報記憶部１２２は、仮想サーバを識別するための識別子に対応付けて、かかる仮想サーバに割り当てるＣＰＵ資源及びメモリ資源を記憶する。
【００３７】
ＶＭ配置リスト記憶部１２３は、各仮想サーバと、かかる仮想サーバの新たな配置先となる物理サーバとの対応情報を記憶する。具体的には、ＶＭ配置リスト記憶部１２３は、仮想サーバを識別するための識別子と、かかる仮想サーバが配置される物理サーバを識別するための識別子とが対応付けられたリスト（以下、「ＶＭ配置リスト」と表記する場合がある）を記憶する。ＶＭ配置リスト記憶部１２３に記憶されるＶＭ配置リストは、後述する配置部１３４によって生成される。
【００３８】
なお、上記の通信量記憶部１２１、資源情報記憶部１２２及びＶＭ配置リスト記憶部１２３は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、又は、ハードディスク、光ディスクなどの記憶装置である。
【００３９】
通信量受信部１３１は、ＩＦ部１１０を介して、通信量計数部５０から通信量情報を受信する。具体的には、通信量受信部１３１は、図２に例示した各仮想サーバの識別子と通信量とを含む通信量情報を受信する。例えば、通信量受信部１３１は、通信量計数部５０に対して通信量情報の取得要求を送信することで、通信量計数部５０から通信量情報を受信する。また、例えば、通信量受信部１３１は、通信量計数部５０から定期的に通信量情報が送信される場合には、通信量計数部５０に通信量情報の取得要求を送信することなく、通信量計数部５０から通信量情報を定期的に受信する。そして、通信量受信部１３１は、通信量計数部５０から受信した通信量情報を通信量記憶部１２１に格納する。
【００４０】
資源情報受信部１３２は、ＩＦ部１１０を介して、ＶＭ管理部１０から資源情報を受信する。具体的には、資源情報受信部１３２は、各仮想サーバの識別子と、かかる仮想サーバのＣＰＵ要求及びメモリ要求とを含む資源情報をＶＭ管理部１０から受信する。例えば、資源情報受信部１３２は、ＶＭ管理部１０に対して資源情報の取得要求を送信することで、ＶＭ管理部１０から資源情報を受信する。また、例えば、資源情報受信部１３２は、ＶＭ管理部１０から定期的に資源情報が送信される場合には、ＶＭ管理部１０に資源情報の取得要求を送信することなく、ＶＭ管理部１０から資源情報を定期的に受信する。そして、資源情報受信部１３２は、ＶＭ管理部１０から受信した資源情報を資源情報記憶部１２２に格納する。
【００４１】
判定部１３３は、資源情報記憶部１２２に記憶されている資源情報に基づいて、仮想サーバのペア毎に、双方の仮想サーバが要する資源を提供できる物理サーバが存在するか否かを判定する。
【００４２】
具体的には、実施例１における判定部１３３は、通信量記憶部１２１に記憶されている仮想サーバのペア毎に、かかる仮想サーバの配置先となる物理サーバが後述する配置部１３４によって決定されているか否かを判定する第１の判定処理を行う。また、実施例１における判定部１３３は、第１の判定処理において、仮想サーバのペアのうち一方の仮想サーバのみが配置先となる物理サーバが決定されている場合には、かかる物理サーバが他方の仮想サーバが要する資源を提供可能であるか否かを判定する第２の判定処理を行う。なお、判定部１３３による処理の例については、後述する。
【００４３】
配置部１３４は、判定部１３３による判定処理の結果に基づいて、仮想サーバを配置する物理サーバを決定する。このとき、配置部１３４は、互いに通信を行う仮想サーバのペアが同一の物理サーバに配置されるように制御する。
【００４４】
具体的には、判定部１３３による第１の判定処理において、仮想サーバのペアうち双方の仮想サーバが配置先の物理サーバを決定されていないと判定されたものとする。かかる場合に、配置部１３４は、双方の仮想サーバの要求資源を提供可能な物理サーバを抽出し、抽出した物理サーバに双方の仮想サーバを配置することを決定する。このとき、配置部１３４は、双方の仮想サーバの要求資源を提供可能な物理サーバを抽出できない場合には、一方の仮想サーバの要求資源を提供可能な任意の物理サーバに、かかる一方の仮想サーバを配置し、他方の仮想サーバの要求資源を提供可能な任意の物理サーバに、かかる他方の仮想サーバを配置することを決定する。
【００４５】
また、判定部１３３による第２の判定処理において、一方の仮想サーバが配置される物理サーバによって他方の仮想サーバが要する資源を提供可能であると判定されたものとする。かかる場合に、配置部１３４は、一方の仮想サーバが配置される物理サーバに、他方の仮想サーバを配置することを決定する。
【００４６】
また、判定部１３３による第２の判定処理において、一方の仮想サーバが配置される物理サーバによって他方の仮想サーバが要する資源を提供可能でないと判定されたものとする。かかる場合に、配置部１３４は、他方の仮想サーバの要求資源を提供可能な任意の物理サーバに、かかる他方の仮想サーバを配置することを決定する。なお、配置部１３４は、上記の配置先決定処理を行う際に各仮想サーバの要求資源を資源情報記憶部１２２から取得する。
【００４７】
配置部１３４は、このようにして仮想サーバの配置先となる物理サーバを決定し、仮想サーバを識別するための識別子と、かかる仮想サーバが配置される物理サーバを識別するための識別子とが対応付けられたＶＭ配置リストを生成する。そして、配置部１３４は、生成したＶＭ配置リストをＶＭ配置リスト記憶部１２３に格納する。
【００４８】
上記の配置部１３４による配置先決定処理について一例を挙げて説明する。例えば、仮想サーバＶＭ１と仮想サーバＶＭ２とのペアが存在するものとする。このとき、配置部１３４は、仮想サーバＶＭ１及びＶＭ２の配置先物理サーバが決定されていない場合には、仮想サーバＶＭ１及びＶＭ２の要求資源を提供可能な物理サーバを抽出し、抽出した物理サーバに仮想サーバＶＭ１及びＶＭ２を配置することを決定する。ここで、配置部１３４は、仮想サーバＶＭ１及びＶＭ２の要求資源を提供可能な物理サーバが存在しない場合には、仮想サーバＶＭ１と、仮想サーバＶＭ２とを異なる物理サーバに配置することを決定する。具体的には、配置部１３４は、仮想サーバＶＭ１の要求資源を提供可能な任意の物理サーバに仮想サーバＶＭ１を配置し、仮想サーバＶＭ２の要求資源を提供可能な任意の物理サーバに仮想サーバＶＭ２を配置することを決定する。
【００４９】
また、上記例において、仮想サーバＶＭ１の配置先となる物理サーバＰＭ１が決定されているが、仮想サーバＶＭ２の配置先となる物理サーバが決定されていないものとする。このとき、配置部１３４は、物理サーバＰＭ１が仮想サーバＶＭ２の要求資源を提供可能である場合には、物理サーバＰＭ１に仮想サーバＶＭ２を配置することを決定する。すなわち、配置部１３４は、仮想サーバＶＭ１及び仮想サーバＶＭ２を同一の物理サーバＰＭ１に配置することを決定する。一方、配置部１３４は、物理サーバＰＭ１が仮想サーバＶＭ２の要求資源を提供可能でない場合には、仮想サーバＶＭ２の要求資源を提供可能な任意の物理サーバに仮想サーバＶＭ２を配置することを決定する。
【００５０】
指示部１３５は、ＶＭ配置リスト記憶部１２３に記憶されているＶＭ配置リストに従って、ネットワークシステム１に含まれる各仮想サーバが配置される物理サーバを変更するようＶＭ管理部１０に指示する。指示部１３５から指示を受け付けたＶＭ管理部１０は、例えばライブマイグレーションにより、仮想サーバが動作する物理サーバを移動させる。
【００５１】
なお、上記の通信量受信部１３１、資源情報受信部１３２、判定部１３３、配置部１３４及び指示部１３５は、例えば、ＣＰＵ、ＭＰＵ（Micro  Processing  Unit）等の電子回路、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。
【００５２】
ここで、上述した判定部１３３及び配置部１３４による処理の一例を詳細に説明する。まず、前提として、ネットワークシステム１には、Ｎ個の物理サーバの集合Ｓ＝｛ｓｉ｜ｉ＝１、２、・・・、Ｎ｝が存在するものとする。また、各物理サーバｓｉには、Ｍｉ個の仮想サーバＶ＝｛ｖｉ、ｊ｜ｊ＝１、２、・・・、Ｍｉ｝が存在するものとする。すなわち、仮想サーバの全ペア数Ｍは、以下の式（１）により表される。
【００５３】
【数１】
2013037495.tif 000003
【００５４】
また、ここでは、ＶＭ配置リスト記憶部１２３に記憶されている仮想サーバのペアのうち、一方の仮想サーバを「ｗ１、ｋ」とし、他方の仮想サーバを「ｗ２、ｋ」とし、仮想サーバｗ１、ｋと仮想サーバｗ２、ｋとの間における通信量（トラフィック量）を「ｔｋ」とし、仮想サーバｗ１、ｋと仮想サーバｗ２、ｋとの間における通信（トラフィック交流）ＴｋをＴｋ＝（ｔｋ、ｗ１、ｋ、ｗ２、ｋ）と表すものとする。また、各仮想サーバの配置先となる新たな物理サーバの集合ＳｎｅｗをＳｎｅｗ＝｛ｓｉ｜ｉ＝１、２、・・・、Ｎ｝と表すものとする。上記の物理サーバの集合Ｓと集合Ｓｎｅｗとの相違点を説明すると、集合Ｓは、判定部１３３及び配置部１３４による処理前における各物理サーバの状況を示しているので仮想サーバが配置されているが、集合Ｓｎｅｗは、判定部１３３及び配置部１３４による処理前には仮想サーバが配置されていない。なお、以下の説明において表記する「ｓｉ」は、特記する場合を除いて、「Ｓｎｅｗ」に含まれる「ｓｉ」を示すものとする。
【００５５】
また、ここでは、仮想サーバｗ１、ｋのＣＰＵ要求を「ｃｐ１、ｋ」とし、仮想サーバｗ２、ｋのＣＰＵ要求を「ｃｐ２、ｋ」とする。また、仮想サーバｗ１、ｋのメモリ要求を「ｍｅ１、ｋ」とし、仮想サーバｗ２、ｋのメモリ要求を「ｍｅ２、ｋ」とする。また、各物理サーバｓｉが有する資源（スペック）のうちＣＰＵ資源を「ＣＰｉ」とし、メモリ資源を「ＭＥｉ」とする。
【００５６】
また、配置制御装置１００は、各物理サーバｓｉのＣＰＵ資源ＣＰｉとメモリ資源ＭＥｉを所定の記憶部に保持しているものとする。例えば、配置制御装置１００は、各物理サーバのスペックであるＣＰＵ資源及びメモリ資源を管理者等に入力されることで、物理サーバ毎のスペックを所定の記憶部に保持する。また、例えば、配置制御装置１００は、各物理サーバにアクセスすることで各物理サーバのスペックを取得し、取得した物理サーバ毎のスペックを所定の記憶部に保持してもよい。また、例えば、各物理サーバのスペックを保持する管理装置がネットワークシステム１内に存在する場合には、配置制御装置１００は、かかる管理装置にアクセスすることで各物理サーバのスペックを取得し、取得した物理サーバ毎のスペックを所定の記憶部に保持してもよい。
【００５７】
このような前提の下、判定部１３３は、まず、通信量記憶部１２１に記憶されている仮想サーバの各ペアにおける通信（トラフィック交流）Ｔ＝｛Ｔｋ｜ｋ＝１、２、・・・、Ｍ（Ｍ−１）/２｝を通信量ｔｋの降順にソートする。すなわち、判定部１３３は、図２に例示した各レコードを通信量ｔｋの大きい順に並び替える。このとき、判定部１３３は、ソート後の通信（トラフィック交流）Ｔを所定の処理用記憶部に格納するものとする。なお、ここでは全ての仮想サーバの数をＭとしているので、仮想サーバのペアの総数は、最大で「Ｍ（Ｍ−１）/２」となる。
【００５８】
続いて、判定部１３３は、通信（トラフィック交流）Ｔをソートした後に、上記の処理用記憶部から通信量ｔｋが大きい順にＴｋ＝（ｔｋ、ｗ１、ｋ、ｗ２、ｋ）を抽出する。そして、配置部１３４は、判定部１３３によって抽出された仮想サーバｗ１、ｋ及びｗ２、ｋをＳｎｅｗ＝｛ｓｉ｜ｉ＝１、２、・・・、Ｎ｝のいずれかの物理サーバｓｉに割り当てる。
【００５９】
具体的には、判定部１３３は、配置部１３４によって仮想サーバｗ１、ｋが物理サーバＳｎｅｗに割り当てられているか否かを判定するとともに、仮想サーバｗ２、ｋが物理サーバＳｎｅｗに割り当てられているか否かを判定する。
【００６０】
そして、配置部１３４は、判定部１３３によって仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方が物理サーバＳｎｅｗに割り当てられていないと判定された場合に、仮想サーバｗ１、ｋのＣＰＵ要求ｃｐ１、ｋ及びメモリ要求ｍｅ１、ｋと、仮想サーバｗ２、ｋのＣＰＵ要求ｃｐ２、ｋ及びメモリ要求ｍｅ２、ｋの双方を提供可能な物理サーバｓｉをＳｎｅｗから抽出する。
【００６１】
すなわち、配置部１３４は、判定部１３３によって以下の式（２）を満たすと判定された場合に、以下の式（３）及び（４）の双方を満たす物理サーバｓｉをＳｎｅｗから抽出する。
【００６２】
【数２】
2013037495.tif 000004
【００６３】
【数３】
2013037495.tif 000005
【００６４】
【数４】
2013037495.tif 000006
【００６５】
なお、上記式（３）に示した「Σｃｐｘ」は、配置部１３４によって物理サーバｓｉに既に割り当てられている仮想サーバのＣＰＵ要求の総和を示す。また、上記式（４）に示した「Σｍｅｘ」は、配置部１３４によって物理サーバｓｉに既に割り当てられている仮想サーバのメモリ要求の総和を示す。
【００６６】
そして、配置部１３４は、上記式（３）及び（４）の双方を満たす物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を割り当てる。言い換えれば、配置部１３４は、かかる物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を配置することを決定する。
【００６７】
なお、配置部１３４は、上記式（３）及び（４）の双方を満たす物理サーバｓｉを複数抽出できる場合には、複数の物理サーバｓｉのうち任意の物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を割り当てる。
【００６８】
また、配置部１３４は、上記式（３）及び（４）の双方を満たす物理サーバｓｉを抽出できない場合には、仮想サーバｗ１、ｋと仮想サーバｗ２、ｋとを異なる物理サーバｓｉに割り当てる。具体的には、配置部１３４は、ＣＰＵ要求ｃｐ１、ｋ及びメモリ要求ｍｅ１、ｋを提供可能な物理サーバｓｉに仮想サーバｗ１、ｋを割り当て、ＣＰＵ要求ｃｐ２、ｋ及びメモリ要求ｍｅ２、ｋを提供可能な物理サーバｓｉに仮想サーバｗ２、ｋを割り当てる。
【００６９】
一方、判定部１３３は、仮想サーバｗ１、ｋ又は仮想サーバｗ２、ｋのいずれか一方のみが物理サーバＳｎｅｗに割り当てられていない場合には、同一の物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を割り当てられるか否かを判定する。例えば、仮想サーバｗ１、ｋが物理サーバＳｎｅｗに割り当てられており、仮想サーバｗ２、ｋが物理サーバＳｎｅｗに割り当てられていないものとする。かかる場合には、判定部１３３は、仮想サーバｗ１、ｋが割り当てられている物理サーバｓｉが仮想サーバｗ２、ｋのＣＰＵ要求ｃｐ２、ｋ及びメモリ要求ｍｅ２、ｋを提供可能であるか否かを判定する。
【００７０】
すなわち、判定部１３３は、以下の式（５）を満たす場合には、いずれか一方の仮想サーバ（仮想サーバｗ１、ｋ又は仮想サーバｗ２、ｋ）が割り当てられている物理サーバｓｉについて、以下の式（６）及び（７）の双方を満たすか否かを判定する。
【００７１】
【数５】
2013037495.tif 000007
【００７２】
【数６】
2013037495.tif 000008
【００７３】
【数７】
2013037495.tif 000009
【００７４】
そして、配置部１３４は、上記式（６）及び（７）の双方を満たす場合に、物理サーバｓｉに、未割り当ての仮想サーバｗ１、ｋ又は仮想サーバｗ２、ｋを割り当てる。これにより、配置部１３４は、仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を同一の物理サーバｓｉに配置することができる。なお、配置部１３４は、上記式（６）及び（７）の双方を満たさない場合には、物理サーバｓｉ以外の物理サーバに未割り当ての仮想サーバを割り当てる。このとき、配置部１３４は、未割り当ての仮想サーバのＣＰＵ要求及びメモリ要求を提供可能な物理サーバに、かかる未割り当ての仮想サーバを割り当てる。
【００７５】
このようにして、判定部１３３及び配置部１３４は、処理用記憶部から通信量ｔｋが大きい順にＴｋ＝（ｔｋ、ｗ１、ｋ、ｗ２、ｋ）を順次抽出し、上記式（２）〜（７）を用いた処理を順次行う。そして、配置部１３４は、各仮想サーバを物理サーバに割り当てた後に、仮想サーバを識別するための識別子と、仮想サーバが割り当てられた物理サーバを識別するための識別子とが対応付けられたＶＭ配置リストを生成し、生成したＶＭ配置リストをＶＭ配置リスト記憶部１２３に格納する。そして、配置部１３４は、指示部１３５に対してＶＭ配置リストの生成処理が終了した旨を通知する。これにより、指示部１３５は、かかるＶＭ配置リストに従って、各仮想サーバが配置される物理サーバを変更するようＶＭ管理部１０に指示する。この結果、配置制御装置１００は、通信量が大きい仮想サーバのペアを優先的に同一の物理サーバに配置することができるので、物理サーバ間を接続する通信路の容量圧迫を効率的に防止することができる。
【００７６】
［配置制御装置による処理手順］
次に、図４を用いて、上述した配置制御装置１００による配置処理の手順について説明する。図４は、実施例１に係る配置制御装置１００による配置処理手順を示すフローチャートである。なお、図４では、配置制御装置１００が通信量情報及び資源情報を受信済みであるものとする。
【００７７】
図４に示すように、配置制御装置１００は、仮想サーバを再配置する処理を行うタイミングであるか否かを判定する（ステップＳ１０１）。仮想サーバの配置処理を行うタイミングとは、例えば、１日毎、１週間毎、１ヶ月毎などであり、管理者等によって配置制御装置１００に予め設定される。
【００７８】
このとき、配置制御装置１００は、配置処理を行うタイミングでない場合には（ステップＳ１０１否定）、配置処理を行うタイミングになるまで待機する。一方、配置処理を行うタイミングになった場合には（ステップＳ１０１肯定）、配置制御装置１００の判定部１３３及び配置部１３４は、配置先決定処理を行う（ステップＳ１０２）。かかる配置先決定処理については図５を用いて後述する。
【００７９】
ステップＳ１０２において配置部１３４によりＶＭ配置リストがＶＭ配置リスト記憶部１２３に格納される。指示部１３５は、ＶＭ配置リスト記憶部１２３に記憶されているＶＭ配置リストに従って、各仮想サーバが配置される物理サーバを変更するようＶＭ管理部１０に指示する（ステップＳ１０３）。指示部１３５から指示を受け付けたＶＭ管理部１０は、仮想サーバが動作する物理サーバを移動させる。この結果、各仮想サーバとかかる仮想サーバが動作する物理サーバとの関係は、ＶＭ配置リストに示される対応関係と一致することとなる。
【００８０】
なお、図４に示した例において、配置制御装置１００の通信量受信部１３１は、ステップＳ１０１における配置処理を行うタイミングか否かにかかわらず、通信量計数部５０から通信量情報を受信し、受信した通信量情報を通信量記憶部１２１に格納する。また、配置制御装置１００の資源情報受信部１３２は、ステップＳ１０１における配置処理を行うタイミングか否かにかかわらず、ＶＭ管理部１０から資源情報を受信し、受信した資源情報を資源情報記憶部１２２に格納する。
【００８１】
次に、図５を用いて、図４のステップＳ１０２における配置先決定処理の手順について説明する。図５は、実施例１における判定部１３３及び配置部１３４による配置先決定処理手順を示すフローチャートである。
【００８２】
図５に示すように、判定部１３３は、通信量記憶部１２１に記憶されている仮想サーバの各ペアにおける通信（トラフィック交流）Ｔ＝｛Ｔｋ｜ｋ＝１、２、・・・、Ｍ（Ｍ−１）/２｝を通信量ｔｋの降順にソートする（ステップＳ２０１）。そして、判定部１３３は、ソート後の通信（トラフィック交流）Ｔを処理用記憶部に格納する。このとき、処理用記憶部に記憶されている通信（トラフィック交流）Ｔのうち、「ｋ＝１」である通信（トラフィック交流）Ｔｋの通信量ｔｋが最も大きく、かかる「ｋ」の値が大きくなるほど、通信量ｔｋが小さくなるものとする。
【００８３】
続いて、判定部１３３は、「ｋ」に「１」を設定し（ステップＳ２０２）、処理用記憶部からＴｋ＝（ｔｋ、ｗ１、ｋ、ｗ２、ｋ）を抽出する（ステップＳ２０３）。そして、判定部１３３は、仮想サーバｗ１、ｋが物理サーバＳｎｅｗに割り当てられているか否かを判定するとともに、仮想サーバｗ２、ｋが物理サーバＳｎｅｗに割り当てられているか否かを判定する（ステップＳ２０４）。
【００８４】
このとき、判定部１３３によって仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方が物理サーバＳｎｅｗに割り当てられていないと判定された場合（ステップＳ２０４：「双方未割り当て」）、配置部１３４は、仮想サーバｗ１、ｋのＣＰＵ要求ｃｐ１、ｋ及びメモリ要求ｍｅ１、ｋと、仮想サーバｗ２、ｋのＣＰＵ要求ｃｐ２、ｋ及びメモリ要求ｍｅ２、ｋの双方を提供可能な物理サーバｓｉをＳｎｅｗから抽出する（ステップＳ２０５）。
【００８５】
そして、配置部１３４は、ステップＳ２０５において物理サーバｓｉを抽出できた場合には（ステップＳ２０６肯定）、かかる物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を割り当てる（ステップＳ２０７）。一方、配置部１３４は、ステップＳ２０５において物理サーバｓｉを抽出できない場合には（ステップＳ２０６否定）、仮想サーバｗ１、ｋの要求資源を提供可能な任意の物理サーバｓｉに仮想サーバｗ１、ｋを割り当て、仮想サーバｗ２、ｋの要求資源を提供可能な任意の物理サーバｓｉに仮想サーバｗ２、ｋを割り当てる（ステップＳ２０８）。
【００８６】
また、判定部１３３は、ステップＳ２０４において、仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋのいずれか一方のみが物理サーバＳｎｅｗに割り当てられていると判定した場合には（ステップＳ２０４：「一方のみ割り当て済み」）、一方の仮想サーバが割り当てられている物理サーバｓｉが未割り当ての仮想サーバの要求資源を提供可能が否かを判定する（ステップＳ２０９）。例えば、仮想サーバｗ１、ｋが物理サーバｓｉに割り当て済みであり、仮想サーバｗ２、ｋが物理サーバＳｎｅｗに割り当てられていないものとする。かかる場合に、判定部１３３は、仮想サーバｗ１、ｋが割り当てられている物理サーバｓｉによって仮想サーバｗ２、ｋの要求資源であるＣＰＵ要求ｃｐ２、ｋ及びメモリ要求ｍｅ２、ｋを提供可能であるか否かを判定する。
【００８７】
そして、配置部１３４は、ステップＳ２０９において提供可能であると判定された場合に（ステップＳ２０９肯定）、一方の仮想サーバが割り当てられている物理サーバｓｉに未割り当ての仮想サーバを割り当てる（ステップＳ２１０）。上記例の場合には、配置部１３４は、仮想サーバｗ１、ｋが割り当てられている物理サーバｓｉに仮想サーバｗ２、ｋを割り当てる。
【００８８】
一方、配置部１３４は、ステップＳ２０９において提供不可と判定された場合に（ステップＳ２０９否定）、一方の仮想サーバが割り当てられている物理サーバｓｉ以外の物理サーバに未割り当ての仮想サーバを割り当てる（ステップＳ２１１）。このとき、配置部１３４は、未割り当ての仮想サーバの要求資源を提供可能な物理サーバに、かかる未割り当ての仮想サーバを割り当てる。上記例の場合には、配置部１３４は、仮想サーバｗ１、ｋが割り当てられている物理サーバｓｉ以外の物理サーバのうち、仮想サーバｗ２、ｋの要求資源であるＣＰＵ要求ｃｐ２、ｋ及びメモリ要求ｍｅ２、ｋを提供可能である物理サーバに仮想サーバｗ２、ｋを割り当てる。
【００８９】
そして、判定部１３３は、ステップＳ２０４において仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方が物理サーバＳｎｅｗに割り当てられていると判定した場合や（ステップＳ２０４：「双方割り当て済み」）や、ステップＳ２０７、Ｓ２０８、Ｓ２１０及びＳ２１１のいずれかの処理が終了した後に、「ｋ」に「１」を加算する（ステップＳ２１２）。
【００９０】
続いて、判定部１３３は、「ｋ」と、仮想サーバのペアの総数「Ｍ（Ｍ−１）／２」とを比較し、「ｋ」が「Ｍ（Ｍ−１）／２」以下である場合には（ステップＳ２１３否定）、ステップＳ２０３の処理に戻る。一方、「ｋ」が「Ｍ（Ｍ−１）／２」よりも大きい場合には（ステップＳ２１３肯定）、配置部１３４は、ステップＳ２０７、Ｓ２０８、Ｓ２１０及びＳ２１１において割り当てた仮想サーバと物理サーバとの対応関係を示すＶＭ配置リストをＶＭ配置リスト記憶部１２３に格納する（ステップＳ２１４）。
【００９１】
なお、上記実施例１では、配置制御装置１００が、互いに通信を行う仮想サーバのペア毎に、かかる仮想サーバのペアを同一の物理サーバに配置する例を示した。しかし、配置制御装置１００は、互いに通信を行う２個以上の仮想サーバを含む仮想サーバ群毎に、かかる仮想サーバ群を同一の物理サーバに配置する処理を行ってもよい。例えば、配置制御装置１００は、互いに通信を行う仮想サーバ群における総通信量を降順にソートし、総通信量の大きい仮想サーバ群の順に、かかる仮想サーバ群を同一の物理サーバに配置する処理を行ってもよい。
【００９２】
［実施例１の効果］
上述してきたように、実施例１に係るネットワークシステム１において、配置制御装置１００は、ネットワークシステム１に含まれる複数の物理マシンのいずれかで動作している仮想マシンが要する要求資源に関する資源情報を仮想マシン毎に記憶する資源情報記憶部１２２を有する。また、配置制御装置１００の判定部１３３は、資源情報記憶部１２２に記憶されている資源情報に基づいて、ネットワークシステム１に含まれる複数の仮想マシンのうち互いに通信を行う仮想マシン群毎に、かかる仮想マシン群の要求資源を提供できる物理マシンが複数の物理マシンの中に存在するか否かを判定する。また、配置制御装置１００の配置部１３４は、判定部１３３によって要求資源を提供できる物理マシンが存在すると判定された仮想マシン群をかかる物理マシンに配置する。これにより、実施例１に係る配置制御装置１００は、互いに通信を行う仮想サーバ群を極力同一の物理サーバに配置することができるので、物理サーバ間の通信量を減少させることができ、結果として、物理サーバ間を接続する通信路の容量圧迫を防止することができる。
【００９３】
また、実施例１に係るネットワークシステム１において、配置制御装置１００は、仮想マシンの組毎に、双方の仮想マシン間の通信量を記憶する通信量記憶部１２１を有する。また、配置制御装置１００の判定部１３３は、通信量記憶部１２１に記憶されている通信量が多い仮想マシンの組の順に、双方の仮想マシンの要求資源を提供できる物理マシンが存在するか否かを判定する。これにより、実施例１に係る配置制御装置１００は、互いに通信を行う仮想マシンの組を極力同一の物理サーバに配置することができるとともに、通信量が大きい仮想サーバの組を優先的に同一の物理サーバに配置することができるので、物理サーバ間を接続する通信路の容量圧迫を効率的に防止することができる。
【実施例２】
【００９４】
上述したネットワークシステム１は、上記実施例以外にも種々の異なる形態にて実施されてよい。そこで、実施例２では、上記のネットワークシステム１の他の実施例について説明する。
【００９５】
［物理サーバの資源確保］
上記実施例では、上記式（３）、（４）、（６）及び（７）に示したように、判定部１３３及び配置部１３４が、仮想サーバの要求資源を提供可能な物理サーバにかかる仮想サーバを割り当てる例を示した。しかし、判定部１３３及び配置部１３４は、物理サーバに所定の資源が残るように制御してもよい。具体的には、判定部１３３及び配置部１３４は、上記式（３）の代わりに下記式（８）を満たすか否かを判定するとともに、上記式（４）の代わりに下記式（９）を満たすか否かを判定してもよい。
【００９６】
【数８】
2013037495.tif 000010
【００９７】
【数９】
2013037495.tif 000011
【００９８】
上記式（８）に示した「ＣＰｒ」は、物理サーバｓｉに残すＣＰＵ資源を示す。また、上記式（９）に示した「ＭＥｒ」は、物理サーバｓｉに残すメモリ資源を示す。そして、配置部１３４は、上記式（８）及び（９）の双方を満たす物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を割り当てる。これにより、配置部１３４は、物理サーバｓｉに所定の資源（ＣＰＵ資源ＣＰｒ及びメモリ資源ＭＥｒ）が確保された状態を維持したまま、各仮想サーバを物理サーバｓｉに配置することができる。なお、ＣＰＵ資源ＣＰｒ及びメモリ資源ＭＥｒは、管理者等によって配置制御装置１００や各物理サーバに設定される。
【００９９】
同様に、判定部１３３は、上記式（６）及び（７）を用いた判定処理を行う場合に、上記式（６）の「ＣＰｉ」を「ＣＰｉ−ＣＰｒ」とし、上記式（７）の「ＭＥｉ」を「ＭＥｉ−ＭＥｒ」としてもよい。
【０１００】
また、上記実施例では、上記式（３）、（４）、（６）及び（７）に示したように、判定部１３３及び配置部１３４が、仮想サーバの現在の要求資源を提供できる物理サーバにかかる仮想サーバを配置する例を示した。しかし、判定部１３３及び配置部１３４は、仮想サーバの将来の要求資源を予測し、予測した要求資源を提供できる物理サーバに、かかる仮想サーバを配置するように制御してもよい。具体的には、判定部１３３及び配置部１３４は、上記式（３）の代わりに下記式（１０）を満たすか否かを判定するとともに、上記式（４）の代わりに下記式（１１）を満たすか否かを判定してもよい。
【０１０１】
【数１０】
2013037495.tif 000012
【０１０２】
【数１１】
2013037495.tif 000013
【０１０３】
上記式（１０）に示した「ＣＰｓ」は、仮想サーバｗ１、ｋ又は仮想サーバｗ２、ｋに将来必要となる追加のＣＰＵ要求を示す。また、上記式（１１）に示した「ＭＥｓ」は、仮想サーバｗ１、ｋ又は仮想サーバｗ２、ｋに将来必要となる追加のメモリ要求を示す。具体的には、仮想サーバの要求資源は、管理者等によって変更される場合がある。そこで、判定部１３３は、仮想サーバに設定された要求資源の変更履歴に基づいて、仮想サーバに今後設定される可能性のある要求資源を予測する。
【０１０４】
例えば、所定の仮想サーバのメモリ要求として「１０Ｍ」が設定された後に、「２０Ｍ」と変更され、その後にさらに「３０Ｍ」に変更されたものとする。かかる場合に、判定部１３３は、この仮想サーバのメモリ要求が今後「４０Ｍ」や「５０Ｍ」等に変更される可能性があると予測する。そして、判定部１３３は、例えばメモリ要求が「４０Ｍ」に変更される可能性があると予測した場合には、予測したメモリ要求「４０Ｍ」と現状のメモリ要求「３０Ｍ」との差異である「１０Ｍ」を上記式（１１）の「ＭＥｓ」とする。判定部１３３は、上記式（１０）の「ＣＰｓ」についても同様に設定する。
【０１０５】
そして、配置部１３４は、上記式（１０）及び（１１）の双方を満たす物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を割り当てる。これにより、配置部１３４は、今後追加される可能性のある要求資源（ＣＰｓ及びＭＥｓ）が物理サーバｓｉに確保された状態を維持したまま、各仮想サーバを物理サーバｓｉに配置することができる。なお、各仮想サーバの要求資源の変更履歴は、配置制御装置１００や各物理サーバの所定の記憶部に格納されているものとする。
【０１０６】
同様に、判定部１３３は、上記式（６）及び（７）を用いた判定処理を行う場合に、上記式（６）の「ｃｐ１、ｋ」を「ｃｐ１、ｋ＋ＣＰｓ」（又は、「ｃｐ２、ｋ」を「ｃｐ２、ｋ＋ＣＰｓ」）とし、上記式（７）の「ｍｅ１、ｋ」を「ｍｅ１、ｋ＋ＭＥｓ」（又は、「ｍｅ２、ｋ」を「ｍｅ２、ｋ＋ＭＥｓ」）としてもよい。
【０１０７】
また、上記実施例において、判定部１３３及び配置部１３４は、将来通信を行う可能性のある仮想サーバ群を予測し、かかる仮想サーバ群の要求資源についても考慮して、物理サーバに各仮想サーバを配置するように制御してもよい。具体的には、判定部１３３及び配置部１３４は、上記式（３）の代わりに下記式（１２）を満たすか否かを判定するとともに、上記式（４）の代わりに下記式（１３）を満たすか否かを判定してもよい。
【０１０８】
【数１２】
2013037495.tif 000014
【０１０９】
【数１３】
2013037495.tif 000015
【０１１０】
上記式（１２）に示した「ｆ（ＣＰｎｅｗ）」は、物理サーバｓｉに配置されておらず、かつ、仮想サーバｗ１、ｋ又は仮想サーバｗ２、ｋと今後通信を行う可能性にある１以上の仮想サーバのＣＰＵ要求の総和を示す。また、上記式（１３）に示した「ｇ（ＭＥｎｅｗ）」は、物理サーバｓｉに配置されておらず、かつ、仮想サーバｗ１、ｋ又は仮想サーバｗ２、ｋと今後通信を行う可能性にある１以上の仮想サーバのメモリ要求の総和を示す。具体的には、ネットワークシステム１において複数の仮想サーバが動作している場合であっても、所定の利用者にアクセスされる仮想サーバは所定数に限られている場合が多い。そして、同一の利用者にアクセスされる仮想サーバ群は、今後互いに通信を行う可能性が高い。そこで、判定部１３３は、同一の利用者にアクセスされる仮想サーバ群の要求資源を物理サーバに残すように制御する。
【０１１１】
例えば、ネットワークシステム１に「Ｎ×Ｍｉ」個の仮想サーバが動作している状態において、所定の利用者Ｕにアクセスされる仮想サーバが５個の仮想サーバｓ１〜ｓ５に限られているものとする。このとき、仮想サーバｓ１〜ｓ５のうち、いくつかの仮想サーバのペアが現時点では互いに通信を行っていない場合であっても、将来的には仮想サーバｓ１〜ｓ５の全てのペアが互いに通信を行う可能性がある。このため、仮想サーバｓ１〜ｓ５は、将来的には同一の物理サーバに配置される可能性がある。そこで、判定部１３３は、同一のユーザにアクセスされている仮想サーバ群のＣＰＵ要求をｆ（ＣＰｎｅｗ）として算出し、かかる仮想サーバ群のメモリ要求をｇ（ＭＥｎｅｗ）として算出する。
【０１１２】
そして、配置部１３４は、上記式（１２）及び（１３）の双方を満たす物理サーバｓｉに仮想サーバｗ１、ｋ及び仮想サーバｗ２、ｋの双方を割り当てる。これにより、配置部１３４は、今後配置される可能性のある仮想サーバの要求資源が物理サーバｓｉに確保された状態を維持したまま、各仮想サーバを物理サーバｓｉに配置することができる。なお、各仮想サーバにアクセスする利用者の情報は、配置制御装置１００や各物理サーバの所定の記憶部に格納されているものとする。
【０１１３】
同様に、判定部１３３は、上記式（６）及び（７）を用いた判定処理を行う場合に、上記式（６）の「ｃｐ１、ｋ」を「ｃｐ１、ｋ＋ｆ（ＣＰｎｅｗ）」（又は、「ｃｐ２、ｋ」を「ｃｐ２、ｋ＋ｆ（ＣＰｎｅｗ）」）とし、上記式（７）の「ｍｅ１、ｋ」を「ｍｅ１、ｋ＋ｇ（ＭＥｎｅｗ）」（又は、「ｍｅ２、ｋ」を「ｍｅ２、ｋ＋ｇ（ＭＥｎｅｗ）」）としてもよい。
【０１１４】
［配置先の物理サーバの選択］
また、上記実施例では、仮想サーバの配置先候補となる物理サーバが複数存在する場合に、配置部１３４が任意の物理サーバに仮想サーバを配置する例を示した。しかし、配置部１３４は、所定の条件に基づいて、任意の物理サーバの中から配置先の物理サーバを選択してもよい。
【０１１５】
例えば、配置部１３４は、配置先候補となる複数の物理サーバのうち、仮想サーバが１個も配置されていない物理サーバを優先して、仮想サーバの配置先としてもよい。また、例えば、配置部１３４は、配置先候補となる複数の物理サーバのうち、配置される仮想サーバの数が少ない物理サーバほど、仮想サーバの配置先として優先的に選択してもよい。これにより、配置制御装置１００は、仮想サーバが特定の物理サーバに集中して配置されることを防止できるので、特定の物理サーバに負荷が集中することを防止することができる。
【０１１６】
また、例えば、配置部１３４は、配置先候補となる複数の物理サーバのうち、配置される仮想サーバの要求資源の総和が少ない物理サーバほど、仮想サーバの配置先として優先的に選択してもよい。これにより、配置制御装置１００は、特定の物理サーバに負荷が集中することを防止することができる。
【０１１７】
また、例えば、配置部１３４は、図５に示したステップＳ２０８やＳ２１１における処理のように、仮想サーバのペアを構成する各々の仮想サーバを異なる物理サーバに配置する場合には、通信路の総通信量が少ない物理サーバのペアに各仮想サーバを配置してもよい。具体的には、ネットワークシステム１に含まれる物理サーバ間における通信は、物理スイッチを介して行われる。このとき、多くの物理スイッチを介して通信を行う物理サーバ間ほど、通信路の総通信量が多い通信を行う。したがって、配置部１３４は、例えばホップ数が少ない物理サーバのペアに仮想サーバを配置することにより、通信路の容量圧迫を防止することができる。
【０１１８】
例えば、配置部１３４は、図５のステップＳ２０８において、仮想サーバｗ１、ｋの要求資源を提供可能な物理サーバＰＭ１と、仮想サーバｗ２、ｋの要求資源を提供可能な任意の物理サーバＰＭ２とを選択する場合に、ホップ数が少ない物理サーバＰＭ１と物理サーバＰＭ２とを優先的に選択する。また、例えば、配置部１３４は、図５のステップＳ２１１において、一方の仮想サーバが割り当てられている物理サーバｓｉ以外の物理サーバＰＭ１を選択する場合に、かかる物理サーバｓｉとの通信におけるホップ数が少ない物理サーバＰＭ１を優先的に選択する。
【０１１９】
また、例えば、配置部１３４は、配置先候補となる複数の物理サーバのうち、仮想サーバが現時点で配置されている物理サーバを優先して選択してもよい。これにより、配置部１３４は、仮想サーバの移動処理にかかるＶＭ管理部１０や物理サーバへの負荷を低減することができる。
【０１２０】
［配置先決定処理］
また、上記実施例では、図５に示したように、配置制御装置１００が、通信量記憶部１２１に記憶されている仮想サーバの全てのペアについて配置処理を行う例を示した。しかし、配置制御装置１００は、互いに通信を行ったことがある仮想サーバのペアのみを対象として、配置処理を行ってもよい。例えば、配置制御装置１００の判定部１３３は、図５のステップＳ２０１における処理において、通信量が「０」でない仮想サーバの各ペアにおける通信（トラフィック交流）Ｔｋを通信量記憶部１２１から取得し、取得したＴｋを通信量ｔｋの降順にソートして処理用記憶部に格納してもよい。
【０１２１】
また、上記実施例では、配置制御装置１００が、通信量ｔｋが大きい仮想サーバのペアの順に配置処理を行う例を示した。しかし、配置制御装置１００は、通信量ｔｋが大きい仮想サーバのペアの順に配置処理を行わなくてもよい。例えば、配置制御装置１００は、通信量記憶部１２１からランダムに仮想サーバのペアを抽出し、抽出した仮想サーバのペアの順に配置処理を行ってもよい。
【０１２２】
また、上記実施例において通信量計数部５０は、定期的（例えば、１日毎、１週間毎、１ヶ月毎など）に通信量の計数処理を行ってもよい。このとき、通信量計数部５０は、前回の計数処理後にプローブ２３−１、２３−２及び４０によって収集された情報を用いて、計数処理を行ってもよい。そして、通信量計数部５０は、計数処理を行うたびに通信量情報を配置制御装置１００に送信してもよい。かかる場合に、配置制御装置１００は、通信量計数部５０から通信量情報を受信したことを契機として、配置処理（図４に示したステップＳ１０２及びＳ１０３に相当）を行ってもよい。
【０１２３】
また、上記実施例においてＶＭ管理部１０は、定期的（例えば、１日毎、１週間毎、１ヶ月毎など）に資源情報を配置制御装置１００に送信してもよい。かかる場合に、配置制御装置１００は、ＶＭ管理部１０から資源情報を受信したことを契機として、配置処理（図４に示したステップＳ１０２及びＳ１０３に相当）を行ってもよい。
【０１２４】
［適用態様］
また、上記実施例では、ネットワークシステム１において仮想サーバが動作していることを前提として、配置制御装置１００が動作中の仮想サーバを新たな物理サーバに再配置する例について説明した。しかし、配置制御装置１００は、新たに生成される仮想サーバの配置先を決定する場合に、上述した配置処理を行ってもよい。ここで、新たに生成される仮想サーバに関しては通信量に関する情報がない。しかし、管理者等は、キャパシティプランニング等のフェーズにおいて、新たに導入する仮想サーバ間の通信量を予測する場合がある。したがって、配置制御装置１００は、管理者等から各仮想サーバ間の通信量の予測値を受け付け、受け付けた予測値に基づいて、上述した配置処理を行うことができる。
【０１２５】
［システム構成］
また、上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図２に示した各種情報は一例であって任意に変更することができる。
【０１２６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１２７】
例えば、図１に示した通信量計数部５０と配置制御装置１００とは１台の装置に統合されてもよい。また、例えば、図１に示した通信量計数部５０とＶＭ管理部１０とは１台の装置に統合されてもよい。また、例えば、図１に示したＶＭ管理部１０と配置制御装置１００とは１台の装置に統合されてもよい。また、例えば、図１に示したＶＭ管理部１０と通信量計数部５０と配置制御装置１００とは１台の装置に統合されてもよい。また、例えば、図３に示した配置部１３４と指示部１３５とは統合されてもよい。すなわち、配置部１３４は、ＶＭ配置リストを生成するとともに、ＶＭ管理部１０を介して、仮想サーバが動作する物理サーバを変更してもよい。
【０１２８】
［プログラム］
また、上記実施例において説明した配置制御装置１００が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例１に係る配置制御装置１００が実行する処理をコンピュータが実行可能な言語で記述した配置制御プログラムを作成することもできる。この場合、コンピュータが配置制御プログラムを実行することにより、上記実施例１と同様の効果を得ることができる。さらに、かかる配置制御プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された配置制御プログラムをコンピュータに読み込ませて実行することにより上記実施例１と同様の処理を実現してもよい。以下に、図３に示した配置制御装置１００と同様の機能を実現する配置制御プログラムを実行するコンピュータの一例を説明する。
【０１２９】
図６は、配置制御プログラムを実行するコンピュータ１０００を示す図である。図６に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【０１３０】
メモリ１０１０は、図６に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図６に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図６に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース１０５０は、図６に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図６に例示するように、例えばディスプレイ１０６１に接続される。
【０１３１】
ここで、図６に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の配置制御プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。例えば、図３に例示した通信量受信部１３１と同様の情報処理を実行する通信量受信手順と、資源情報受信部１３２と同様の情報処理を実行する資源情報受信手順と、判定部１３３と同様の情報処理を実行する判定手順と、配置部１３４と同様の情報処理を実行する配置手順と、指示部１３５と同様の情報処理を実行する指示手順とが記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【０１３２】
また、上記実施例で説明した通信量記憶部１２１、資源情報記憶部１２２及びＶＭ配置リスト記憶部１２３が保持する各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、通信量受信手順、資源情報受信手順、判定手順、配置手順、指示手順を実行する。
【０１３３】
なお、配置制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、配置制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１３４】
１  ネットワークシステム
１０  ＶＭ管理部
２０  物理サーバ
２１  仮想サーバ
３０  物理スイッチ
５０  通信量計数部
５１  通信量記憶部
１００  配置制御装置
１２１  通信量記憶部
１２２  資源情報記憶部
１２３  ＶＭ配置リスト記憶部
１３１  通信量受信部
１３２  資源情報受信部
１３３  判定部
１３４  配置部
１３５  指示部
【図１】
2013037495.tif 000016
【図２】
2013037495.tif 000017
【図３】
2013037495.tif 000018
【図４】
2013037495.tif 000019
【図５】
2013037495.tif 000020
【図６】
2013037495.tif 000021