説明

通信方法、通信装置、および、通信プログラム

【課題】データセンタ内の回線が効率的に利用されるような通信システムを提案する。
【解決手段】ゲートウェイ装置は、データセンタ内に備えられた第1および第2のサーバと、データセンタの外部に位置する外部通信装置の間の通信を中継する。制御装置は、第1および第2のサーバで動作する仮想マシンごとに、単位時間に送受信されるデータの量である通信量を、データの送信元および宛先に関連付けて観測することにより得られた観測結果を取得する。制御装置は、ゲートウェイ装置から第1のサーバまでの第1のホップ数が、ゲートウェイ装置から第2のサーバまでの第2のホップ数よりも小さいかを確認する。第1のホップ数が第2のホップ数よりも小さい場合、制御装置は、外部通信装置との通信量が大きい仮想マシンほど第1のサーバに配置されやすくなるように、仮想マシンの配置を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の通信装置を含むネットワークにおける通信に関する。
【背景技術】
【0002】
近年、ネットワークと仮想マシン(Virtual Machine、VM)を用いたクラウドコンピューティングが普及してきている。クラウドコンピューティングに用いられるデータセンタには複数のサーバが設置されることがあり、仮想マシンはサーバ中で動作する。仮想マシンはアプリケーションを実行するために用いるデータや、アプリケーションの実行結果を他の仮想マシンやサーバなどとの間で送受信する。このため、1つのデータセンタ中の複数の仮想マシンの間での通信が発生することがある。さらに、データセンタAに設置されているサーバで動作している仮想マシンが、データセンタAとは異なるデータセンタBに設置されているサーバで動作する仮想マシンと通信する場合もある。
【0003】
関連する技術として、サービスを提供する仮想マシンをサーバルーム内の所定のラックに含まれているサーバに配置することにより、稼動しているサーバを所定のラック内に集中させるシステムが考案されている。このシステムでは、仮想マシンの配置を変更したことにより稼動中のサーバがなくなったラックを停止し、そのラックを対象とした室内設備の処理も停止することにより省電力化が図られる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−82799号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
クラウドコンピューティングの普及に伴い、データセンタ内で送受信されるデータ量やデータセンタ間で送受信されるデータ量が急増してきているため、通信量の増大に対応できるようなシステムが求められている。しかし、設備への投資額を低く抑えることも求められている。そこで本発明では、データセンタ内の回線が効率的に利用されるような通信方法を提案することを目的とする。
【課題を解決するための手段】
【0006】
実施形態にかかる方法では、ゲートウェイ装置は、データセンタ内に備えられた第1および第2のサーバと、前記データセンタの外部に位置する外部通信装置の間の通信を中継する。制御装置は、前記第1および第2のサーバで動作する仮想マシンごとに、単位時間に送受信されるデータの量である通信量を、前記データの送信元および宛先に関連付けて観測することにより得られた観測結果を取得する。前記制御装置は、前記ゲートウェイ装置から前記第1のサーバまでの第1のホップ数が、前記ゲートウェイ装置から前記第2のサーバまでの第2のホップ数よりも小さいかを確認する。第1のホップ数が第2のホップ数よりも小さい場合、制御装置は、前記外部通信装置との通信量が大きい仮想マシンほど前記第1のサーバに配置されやすくなるように、前記仮想マシンの配置を制御する。
【発明の効果】
【0007】
データセンタ内の回線が効率的に利用される。
【図面の簡単な説明】
【0008】
【図1】データセンタでの仮想マシンの配置の例を示す図である。
【図2】制御装置の機能ブロック図の例である。
【図3】サーバの機能ブロック図の例である。
【図4】制御装置およびサーバのハードウェア構成の例を示す図である。
【図5】仮想マシンの配置の例を示す図である。
【図6】制御装置が備えるトポロジーデータの例を示すテーブルである。
【図7】トラフィックモニタが取得したトラフィック情報の例を示す図である。
【図8】仮想マシンの配置の例を示す図である。
【図9】トラフィック情報の例を示す図である。
【図10】仮想マシンの配置の例を示す図である。
【図11】トラフィック情報の例を示す図である。
【図12】仮想マシンの配置の例を示す図である。
【図13】トラフィック情報の例を示す図である。
【図14】仮想マシンの運用前に仮想マシンの配置が決定される場合に行われる処理の例を説明するフローチャートである。
【図15A】輻輳が発生したときの処理の例を説明するフローチャートである。
【図15B】輻輳が発生したときの処理の例を説明するフローチャートである。
【図16】仮想マシンが削減されたときの仮想マシンの配置の例を示す図である。
【図17】仮想マシンが追加されたときの仮想マシンの配置の例を示す図である。
【図18】トラフィック情報の例を示す図である。
【図19】仮想マシンの配置の例を示す図である。
【図20】トラフィック情報の例を示す図である。
【図21】トラフィックの分類と配置ポリシーの例を説明するテーブルである。
【図22】仮想マシンの配置が決定される場合に行われる処理の例を説明するフローチャートである。
【発明を実施するための形態】
【0009】
図1は、データセンタ60aでの仮想マシン34の配置の例を示す。データセンタ60aは、ゲートウェイルータ(GW、gateway)、中継ルータ(RT1、RT2)、スイッチ(SW1〜SW4)、制御装置10、サーバ30(30a〜30j)を備える。管理ネットワーク5には、制御装置10と個々のサーバ30が含まれる。データセンタ60aに含まれるサーバ30は、ゲートウェイルータを介して、データセンタ60aの外に備えられている通信装置と通信する。以下の説明では、データセンタ60aに含まれておらず、データセンタ60a中の装置とゲートウェイGWを介して通信する装置のことを、「外部通信装置」と記載することがある。外部通信装置には、例えば、インターネット70中の通信装置やインターネット70を介して接続されているデータセンタ60b、オフィス65(65a、65b)中の通信装置が含まれる。サーバ30(30a〜30j)では、仮想マシン34(34a〜34h)が動作する。なお、以下の説明では、理解しやすくするために、1つのサーバ30で1つの仮想マシン34が動作する場合を例として説明するが、個々のサーバ30では、任意の数の仮想マシン34が動作できるものとする。また、図1はデータセンタ60の例を示しており、データセンタ60に含まれるゲートウェイGW、中継ルータRT、スイッチSW、サーバ30などの数は任意に変更される場合がある。
【0010】
制御装置10は、予め、データセンタ60aに含まれている中継ルータRT、スイッチSW、サーバ30などの通信装置の接続関係(トポロジーデータ)を記憶している。トポロジーデータは、適宜、オペレータなどによって制御装置10に入力されるものとする。
【0011】
制御装置10は、サーバ30に配置される仮想マシン34の各々について、通信で用いるトラフィックを取得する。以下の説明では、ネットワーク上を単位時間当たりに流れるデータ量を「トラフィック」と記載することがある。また、以下の説明では、特定の回線を1秒に流れるデータ量をbps(Bits Per Second)で示すものとする。なお、制御装置10は、各サーバで送受信されたデータ量を観測する観測装置(図示せず)から、観測結果を取得し、得られたデータに基づいてトラフィックを計算することができるものとする。ここで、観測装置は、トラフィックに関する情報を取得することができる任意の通信装置により実現され、例えば、トラフィックモニタ(図5参照)やコンピュータにより実現されることがある。また、仮想マシンの運用が開始される前は、制御装置10は、オペレータなどにより入力されたデータに基づいてトラフィックを計算する。制御装置10は、観測装置から得られた情報、もしくは、オペレータから入力された情報に基づいて、サーバ30に配置される仮想マシン34の各々について、外部通信装置との間の通信量を計算する。
【0012】
制御装置10は、外部通信装置との間の通信量が多い仮想マシン34を、ゲートウェイGWからのホップ数が小さいサーバ30に配置されるように制御する。例えば、仮想マシン34a〜34hのうちで、仮想マシン34cが最も外部通信装置との間のトラフィックが大きく、仮想マシン34dは外部通信装置との間のトラフィックが2番目に大きいとする。図1の例では、サーバ30a〜30hではゲートウェイGWからのホップ数は3であるが、サーバ30i、30jではゲートウェイGWからのホップ数は1である。そこで、制御装置10は、仮想マシン34cと34dがサーバ30i、30jに配置され、仮想マシン34a、34b、34e〜34hはサーバ30a〜30hに配置されるように制御する。例えば、制御装置10は、管理ネットワーク5を介して、配置を変更する仮想マシン34に制御情報を送信する。制御情報を受信した仮想マシン34は、制御情報により指定されたサーバ30に移動する。仮想マシン34の移動は、任意のライブマイグレーション技術により行われるものとする。仮想マシン34cと34dがサーバ30i、30jに配置されると、仮想マシン34cと34dが外部通信装置へ送信するデータは、中継ルータRT1、RT2、スイッチSW1〜SW4などの中継装置を経由しない。このため、仮想マシン34cと34dがサーバ30a〜30hに配置された場合に比べて、データセンタ60aの内部で送受信できるトラフィックが増大する。
【0013】
このように、外部通信装置との間のトラフィックが大きい仮想マシン34は、ゲートウェイGWからのホップ数が小さいサーバ30に優先的に配置されるため、データセンタ60の内部の回線が効率的に利用される。
【0014】
<装置構成>
図2は、制御装置10の機能ブロック図の例を示す。制御装置10は、受信部11、送信部12、記憶部13、トラフィック情報取得部15、配置制御部20を備える。配置制御部20は、輻輳検出部21と配置決定部22を有する。受信部11は、観測装置や、サーバ30から送信されたデータ等を受信する。送信部12は、制御装置10からサーバ30もしくは観測装置に向けて送信されるデータ等を送信する。例えば、送信部12は、配置決定部22が決定した配置になるように仮想マシンを移動させるための制御メッセージを、仮想マシンが配置されているサーバ30に向けて送信する。記憶部13は、トポロジーデータ14を有する他、制御装置10の処理で得られたデータなどを適宜、記憶する。トポロジーデータ14は、データセンタ60に含まれている通信装置の接続関係を特定する情報である。トラフィック情報取得部15は、受信部11を介して、観測装置からトラフィックに関する情報を取得する。以下の説明では、トラフィックに関する情報を「トラフィック情報」と記載することがある。
【0015】
輻輳検出部21は、トラフィック情報と、トポロジーデータ14を用いて、データセンタ60のネットワーク中に含まれる各回線のトラフィックを計算し、輻輳が発生している箇所を検出する。
【0016】
配置決定部22は、サーバ30への仮想マシン34の配置を決定する。データセンタ60の運用が開始される前は、配置決定部22は、外部通信装置との間のトラフィックが大きいと予想される仮想マシン34ほど、ゲートウェイGWからのホップ数が小さいサーバ30に配置されるように、仮想マシン34の配置を決定する。データセンタ60の運用が開始され、運用中に輻輳が発生すると、配置決定部22は、輻輳検出部21で計算した結果に基づいて、仮想マシン34の配置を変更する。この場合、配置決定部22は、輻輳が発生している回線を介してデータを送受信している仮想マシン34のうち、外部通信装置との間のトラフィックが大きい仮想マシン34を、ゲートウェイGWからのホップ数が小さいサーバ30に移動する。配置決定部22の動作については、後で詳しく説明する。
【0017】
図3は、サーバ30の機能ブロック図の例を示す。サーバ30は、受信部31、送信部32を備え、仮想スイッチ33、仮想マシン34(34a〜34c)を動作させることができる。受信部31は、他のサーバ30、制御装置10、外部通信装置などから送信されてきたデータを受信する。送信部32は、他のサーバ30や外部通信装置などに向けてデータを送信する。また、受信部31もしくは送信部32を介して送受信されたデータは、ミラーリングにより、観測装置で観測されているものとする。
【0018】
仮想スイッチ33は、仮想マシン34a〜34cを受信部31および送信部32と接続する。なお、図3の例では、3台の仮想マシン34がサーバ30で動作しているが、1台のサーバ30で動作する仮想マシン34の数は任意である。
【0019】
図4は、制御装置10およびサーバ30のハードウェア構成の例を示す。制御装置10とサーバ30のいずれも、Central Processing Unit(CPU)41、メモリ42、入力装置43、出力装置44、バス45、外部記憶装置46、媒体駆動装置47、ネットワーク接続装置49を備える。例えば、制御装置10とサーバ30のいずれもコンピュータにより実現される場合がある。なお、観測装置も、図4に示すようなハードウェアを備えたコンピュータにより実現されることがあるものとする。
【0020】
制御装置10では、CPU41は、プログラムを実行することにより、トラフィック情報取得部15および配置制御部20として動作する。メモリ42は、記憶部13として動作する。また、制御装置10は、トポロジーデータ14やトラフィック情報などのデータを、ネットワーク50もしくは可搬記憶媒体48から取得することもできる。ネットワーク接続装置49は、受信部11および送信部12として動作する。
一方、サーバ30では、CPU41は仮想スイッチ33や仮想マシン34として動作する。また、ネットワーク接続装置49は、受信部31および送信部32として動作する。
【0021】
入力装置43は、例えば、ボタン、キーボードやマウスなどであり、オペレータは、入力装置43を用いて制御装置10にトラフィック情報やトポロジーデータ14を入力できる。出力装置44は、ディスプレイなどとして実現される。バス45は、CPU41、メモリ42、入力装置43、出力装置44、外部記憶装置46、媒体駆動装置47、ネットワーク接続装置49の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置46は、プログラムやデータなどを格納し、適宜、CPU41などに格納している情報を提供する。媒体駆動装置47は、メモリ42や外部記憶装置46のデータを可搬記憶媒体48に出力することができ、また、可搬記憶媒体48からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体48は、フロッピイディスク、Magneto-Optical(MO)ディスク、Compact Disc Recordable(CD−R)やDigital Versatile Disk Recordable(DVD−R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。
【0022】
<第1の実施形態>
図5は、仮想マシン34の配置の例を示す。以下、図5のように仮想マシン34が配置されたことにより輻輳が発生したときに行われる処理について説明する。図5では、テナントA〜Cの仮想マシン34がデータセンタ60aで動作するものとする。以下、個々の仮想マシン34とテナントの関係を分かりやすくするために、仮想マシン34の番号を、「VM_」の後に、テナントを識別するアルファベットと仮想マシン34を識別する数字を加えた文字列とする。例えば、VM_A1は、テナントAのサービスを提供する1つ目の仮想マシン34である。また、サーバ30についても、図5では、「SV」の後に番号を続けた文字列により識別するものとする。
【0023】
図5に示すネットワークでは、ゲートウェイGWに中継ルータRT1、RT2が接続されている。また、中継ルータRT1にはスイッチSW1、SW2が接続され、中継ルータRT2には、スイッチSW3とSW4が接続されている。サーバSV1とSV2はスイッチSW1、サーバSV3とSV4はスイッチSW2に接続されており、サーバSV5とSV6はスイッチSW3、サーバSV7とSV8はスイッチSW4に接続されている。また、サーバSV9とSV10は、中継ルータRTやスイッチSWを介さずにゲートウェイGWに接続されている。
【0024】
図6は、制御装置10が備えるトポロジーデータ14の例である。図6に示すトポロジーデータ14には、サーバSV1〜SV10について、ゲートウェイGWに至る経路で経由する中継ルータRTとスイッチSWが記録されている。さらに、サーバSV1〜SV10の各々についてのゲートウェイGWからのホップ数も記録されている。なお、制御装置10は、図6に示すトポロジーデータ14に加えて、各回線のトラフィックの上限値も記憶しているものとする。
【0025】
図5では、サーバSV1にVM_A1、サーバSV2にVM_A2、サーバSV3にVM_A3が配置されている。さらに、サーバSV4にVM_C1、サーバSV5にVM_C2、サーバSV6にVM_C3が配置されており、サーバSV7にVM_B1、サーバSV8にVM_B2が配置されている。トラフィックモニタ25は、サーバSV1〜SV10で送受信されるデータをミラーリングして、送信元と宛先とに対応付けて分類する。
【0026】
例えば、図5に示すように仮想マシンVM_A1〜VM_C3が配置されている場合に以下のようなトラフィックが発生した場合の処理を説明する。
VM_A1からデータセンタB宛てのトラフィック :4Gbps
VM_A2からデータセンタB宛てのトラフィック :4Gbps
VM_A3からデータセンタB宛てのトラフィック :4Gbps
VM_B1からオフィスA宛てのトラフィック :5Gbps
VM_B2からオフィスA宛てのトラフィック :2Gbps
VM_B1とVM_B2の間の双方向通信のトラフィック:1Gbps
VM_C1とVM_C2の間の双方向通信のトラフィック:3Gbps
VM_C2とVM_C3の間の双方向通信のトラフィック:3Gbps
なお、データセンタB、オフィスA、オフィスBに備えられている通信装置は、データセンタ60aの外部にある外部通信装置であるものとする。
【0027】
(1)トラフィックモニタ25は、例えば、図7に示すようなトラフィック情報を取得する。図7に示す例では、トラフィック情報は、データの送信元の仮想マシン、送信元の仮想マシンが配置された物理サーバ、データの宛先、宛先の仮想マシンが配置された物理サーバ、トラフィックの使用量に関する情報を含む。トラフィックの使用量に関する情報については、図7の例では、通信ごとのトラフィック、外部宛トラフィック、内部宛トラフィック、トラフィック総量の4種類の情報を含んでいる。ここで、通信ごとのトラフィックは、個々の通信で発生するトラフィックを指すものとする。例えば、VM_C2はVM_C1とVM_C3の両方と通信しているので、VM_C2からVM_C1へのデータ送信と、VM_C2からVM_C3へのデータ送信のそれぞれについてトラフィックが求められる。「外部宛トラフィック」は、仮想マシンからデータセンタ60の外部に向けた通信で発生するトラフィックの総量であり、仮想マシンごとに求められる。一方、「内部宛トラフィック」は、仮想マシンからデータセンタ60の内部の他の仮想マシンとの間の通信で発生するトラフィックの総量である。「トラフィック総量」は、仮想マシンの通信により発生するトラフィックの総量であり、仮想マシンごとに求められる。
【0028】
制御装置10の輻輳検出部21では、図6に示すトポロジーデータ14と、図7に示すトラフィック情報を用いて、各回線に流れるトラフィックを計算する。トラフィックの計算は、データの送信元、宛先、通信ごとのトラフィックの大きさを用いて行われる。例えば、スイッチSW1と中継ルータRT1の間の回線では、VM_A1とVM_A2から、データセンタB宛てのトラフィックが4Gbpsずつ流れるので、トラフィックは、8Gbpsとなる。また、スイッチSW2と中継ルータRT1の間の回線では、VM_A3からデータセンタB宛てのトラフィック(4Gbps)と、VM_C1からVM_C2宛てのデータのトラフィック(3Gbps)が流れるので、7Gbpsとなる。一方、スイッチSW3と中継ルータRT2の間の回線には、VM_C2とVM_C3の間の双方向通信のトラフィック(3Gbps)は流れない。このため、VM_C2からVM_C1宛てのデータのトラフィックによる3Gbpsが、スイッチSW3と中継ルータRT2の間の回線のトラフィックの総量となる。輻輳検出部21は、同様に他の回線についてもトラフィックを計算し、図5の各回線の隣に記載されている値を、各回線で求められるトラフィックとして計算したとする。輻輳検出部21は、計算結果と、各回線の帯域を比較する。ここで、「帯域」はその回線において、単位時間当たりに伝送できるデータ量の最大値である。輻輳検出部21は、回線ごとにトラフィックの計算結果と帯域を比較し、帯域よりも大きなトラフィックが流れる場合に、輻輳が発生したと判断する。
【0029】
以下の説明では、データセンタ60aの内部の回線の帯域は、いずれも、10Gbps未満であるものとする。従って、データセンタ60aの内部の回線のいずれかにおいて、10Gbps以上のトラフィックが流れる計算になると、輻輳検出部21は、輻輳が発生したと判断する。図5では、見やすくするために、帯域をMaxと表している。図5の例では、ゲートウェイと中継ルータRT1の間の回線では、15Gbpsのトラフィックが流れる計算になるが、帯域は10Gbps未満であるため、輻輳が発生していると判断される。さらに、ゲートウェイと中継ルータRT2の間の回線でも、10Gbpsのトラフィックが流れる計算になるが、帯域は10Gbps未満であるため、輻輳が発生していると判断される。
【0030】
輻輳検出部21は、輻輳が発生している箇所を配置決定部22に通知する。ここでは、輻輳検出部21は、中継ルータRT1とRT2を輻輳が発生した箇所として配置決定部22に通知する。
【0031】
(2)配置決定部22は、トポロジーデータ14を用いて、データセンタ60aに含まれているサーバSVを、ゲートウェイGWからのホップ数ごとにグループ分けする。図6に示すトポロジーデータ14が得られている場合、配置決定部22は、ゲートウェイGWからのホップ数が1であるサーバSV9、SV10を1つのグループとして記憶する。さらに、配置決定部22は、サーバSV1〜SV8はいずれもゲートウェイGWからのホップ数が3であるので、1つのグループとする。以下、配置決定部22は、サーバSV9とSV10を「サーバ群1」、サーバSV1〜SV8を「サーバ群2」に分類して記憶しているものとする。
【0032】
次に、配置決定部22は輻輳が発生している中継ルータRTもしくはスイッチSWを介して通信を行っている仮想マシンを、配置を変更する候補として特定する。さらに、配置を変更する候補の仮想マシンからの外部宛トラフィックがある場合、その仮想マシンが配置されているサーバよりもゲートウェイGWからのホップ数が近いサーバに仮想マシンを配置しようとする。
【0033】
例えば、配置決定部22は、輻輳が発生している中継ルータRT1とRT2のうち、輻輳の状況が悪い中継ルータRT1へのトラフィックを改善するための処理を開始したとする。配置決定部22は、トポロジーデータ14(図6)を参照し、中継ルータRT1を介して通信するサーバは、サーバSV1〜SV4であることを認識する。輻輳の原因となるトラフィックは、サーバSV1〜SV4から送信されているので、配置決定部22は、サーバ群2に分類されたサーバSVからのトラフィックで輻輳が発生していることを認識する。図5に示す状態では、サーバ群1のサーバ(SV9、SV10)には仮想マシンがまだ配置されていないため、リソースが余っている。そこで、配置決定部22は、サーバSV1〜SV4に配置されている仮想マシンのうちで外部宛トラフィックが大きい仮想マシンをサーバ群1のサーバSVに移動することを決定する。
【0034】
配置決定部22は、輻輳の原因となるトラフィックの送信元であると特定したサーバSVに配置されている仮想マシンがVM_A1、VM_A2、VM_A3、および、VM_C1であることを特定する。このとき、輻輳の原因として特定された仮想マシンに関するトラフィックは、図7のトラフィック情報のうち、太線で囲まれた情報となる。配置決定部22は、輻輳の原因となっている仮想マシンのうちで、外部宛トラフィックが大きい仮想マシンを特定する。ここでは、VM_A1、VM_A2、VM_A3のいずれも外部宛トラフィックが4Gbpsで、VM_C1では外部宛トラフィックが発生していない。そこで、配置決定部22は、VM_A1、VM_A2、VM_A3のいずれかをサーバ群1のサーバに移動する。ここでは、配置決定部22は、VM_A3をサーバSV3からサーバSV9に移動させるものとする。
【0035】
仮想マシンを移動させる際に、配置決定部22は、制御メッセージを生成する。制御メッセージの形式は、移動する仮想マシンの識別子と、仮想マシンの移動先のサーバSVの識別子を含む任意の形式である。制御メッセージは、管理ネットワーク5を介して、制御装置10が移動を要求する仮想マシンに送信される。制御メッセージを受信した仮想マシンは、制御メッセージに含まれている識別子により識別されるサーバSVに移動する。ここでは、配置決定部22は、VM_A3をサーバSV9に移動させるための制御メッセージを生成する。VM_A3は、制御メッセージを受信すると、ライブマイグレーションにより、サーバSV3からサーバSV9に移動する。
【0036】
(3)VM_A3をサーバSV3からサーバSV9に移動させたときの仮想マシンの配置の例を図8に示す。図9は、VM_A3がサーバSV3からサーバSV9に移動した後で、トラフィックモニタ25が取得したトラフィック情報の例を示す。
【0037】
図8および図9に示すようにVM_A3がサーバSV3からサーバSV9に移動すると、VM_A3から送信されるデータセンタB宛てのトラフィック(4Gbps)は、スイッチSW2と中継ルータRT1を経由しなくなる。このため、スイッチSW2から中継ルータRT1に向かうトラフィックは3Gbpsに減少する。さらに、中継ルータRT1からゲートウェイGWに向かうトラフィックも11Gbpsに減少するため、中継ルータRT1での輻輳状態は解消しないものの、中継ルータRT1を介するトラフィックは減少する。
【0038】
(4)次に、配置決定部22は、中継ルータRT2での輻輳を解消するための処理を行う。配置決定部22は、トポロジーデータ14(図6)を参照し、中継ルータRT2を介して通信しているサーバは、サーバSV5〜SV8であることを認識する。図8に示す状態では、サーバ群1のうちサーバSV10のリソースが余っているため、サーバSV10には仮想マシンの配置が可能である。そこで、配置決定部22は、サーバSV5〜SV8に配置された仮想マシンのうちで外部宛トラフィックが大きい仮想マシンをサーバSV10に移動することを決定する。
【0039】
サーバSV5〜SV8には、VM_C2、VM_C3、VM_B1、VM_B2が配置されている。従って、サーバSV5〜SV8に配置されている仮想マシンに関するトラフィックは、図9のトラフィック情報のうちで、太線で囲まれた情報となる。配置決定部22は、トラフィック情報を用いて、サーバSV5〜SV8に配置されている仮想マシンの中で、外部宛トラフィックが大きい仮想マシンを特定する。ここでは、VM_B1の外部宛トラフィックは5Gbps、VM_B2では2Gbpsであり、VM_C2とVM_C3では外部宛トラフィックが発生していない。そこで、配置決定部22は、VM_B1をサーバSV10に移動させる。配置決定部22は、VM_B1をサーバSV10に移動させるための制御メッセージを生成する。VM_B1は、制御メッセージに基づいて、サーバSV10に移動する。
【0040】
(5)VM_B1をサーバSV7からサーバSV10に移動させたときの仮想マシンの配置の例を図10に示す。図11は、VM_B1がサーバSV7からサーバSV10に移動した後で、トラフィックモニタ25が取得したトラフィック情報の例を示す。
【0041】
図10および図11に示すようにVM_B1がサーバSV7からサーバSV10に移動すると、VM_B1から送信されるオフィスA宛てのトラフィックは、中継ルータRT2を経由しなくなる。このため、中継ルータRT2からゲートウェイGWに向かうトラフィックは6Gbpsに減少し、中継ルータRT2での輻輳状態は解消する。
【0042】
(6)中継ルータRT2での輻輳は解消したが中継ルータRT1での輻輳が解消していないため、配置決定部22は、さらに仮想マシンの配置を変更する。手順(5)の処理により、サーバ群1に分類された全てのサーバに仮想マシンが配置されており、サーバ群1のリソースは余っていない。このため、新たに仮想マシンをサーバ群1のサーバに追加することはできない。そこで、配置決定部22は、中継ルータRT1を経由してデータを送信している仮想マシンの中で、サーバ群1のサーバに配置された仮想マシンよりも外部宛トラフィックが大きな仮想マシンがあるかを確認する。ここでは、図11のサーバSV1〜SV4に配置されている仮想マシンのいずれの外部宛トラフィックも、サーバ群1のサーバ(SV9、SV10)に配置された仮想マシンでの外部宛トラフィックよりも大きくはない。
【0043】
(7)そこで、配置決定部22は内部宛トラフィックに着目して仮想マシンを移動させる。このとき、配置決定部22は、データセンタ60の内部で通信する2つの仮想マシンの間のホップ数がなるべく小さくなるように配置を決定することにより、データセンタ60a内の回線を効率的に利用しようとする。
【0044】
まず、配置決定部22は、なるべく同一のスイッチSWに接続されたサーバの間で内部宛トラフィックが送受信されるように、仮想マシンを配置しようとする。配置決定部22は、輻輳が発生した中継装置を介して通信している仮想マシンの中から、内部宛トラフィックの大きい仮想マシンを特定する。さらに、特定した仮想マシンをデータの送信先の仮想マシンと同一のスイッチSWに接続されたサーバSVに移動できるかを確認する。なお、配置決定部22は、サーバSVの接続関係を確認するために、適宜、トポロジーデータ14を参照するものとする。
【0045】
図10、図11に挙げた例では、VM_C1がVM_C2宛のデータを送信している。そこで、配置決定部22は、VM_C1を移動させることを検討する。VM_C1から送信されたデータの宛先であるVM_C2はサーバSV5に配置されている。サーバSV5はスイッチSW3に接続されている。スイッチSW3には、サーバSV5の他にサーバSV6が接続されているが、サーバSV6には既にVM_C3が配置されている。このため、配置決定部22は、VM_C1をサーバSV6に移動させることはできないと判断する。
【0046】
(8)同一のスイッチに接続されたサーバ間で内部宛トラフィックが送受信されるように仮想マシンを配置できない場合、配置決定部22は、同一の中継ルータRTに接続されたサーバ間で内部宛トラフィックが送受信されるように仮想マシンを配置しようとする。このときも、適宜、配置決定部22はトポロジーデータ14を参照する。
【0047】
図10、図11に挙げた例では、VM_C2は、スイッチSW3を介して中継ルータRT2に接続されている。中継ルータRT2には、スイッチSW3の他にスイッチSW4が接続されており、スイッチSW4にはサーバSV7とSV8が接続されている。SV8には既にVM_B2が配置されているが、サーバSV7には仮想マシンは配置されていない。そこで、配置決定部22は、VM_C1をサーバSV4からサーバSV7に移動させる。図11の太線は、サーバSV4とサーバSV7のトラフィックを示している。
【0048】
(9)VM_C1がサーバSV4からサーバSV7に移動したときの仮想マシンの配置の例を図12に示す。図13は、VM_C1がサーバSV4からサーバSV7に移動した後で、トラフィックモニタ25が取得したトラフィック情報の例を示す。
【0049】
図12および図13に示すようにVM_C1がサーバSV4からサーバSV7に移動すると、VM_C1から送信されるVM_C2宛てのトラフィックは、中継ルータRT1を経由しなくなる。このため、中継ルータRT1からゲートウェイGWに向かうトラフィックは8Gbpsに減少し、中継ルータRT1での輻輳状態は解消する。従って、手順(1)〜(9)で述べた処理により、図5に示す輻輳状態が解消される。
【0050】
なお、以上の例では、仮想マシンの運用が開始されて図5のような配置になった後の配置の変更について説明したが、仮想マシンの運用が開始される前にも配置決定部22は仮想マシンの配置を決定することができる。図14は、仮想マシンの運用前に仮想マシンの配置が決定される場合に行われる処理の例を説明するフローチャートである。図14に示す動作が開始される前に、配置決定部22は、オペレータ等により入力されたトラフィック情報に基づいて、仮想マシンごとの外部宛トラフィックと内部宛トラフィックの量を特定しているものとする。また、ここでも、配置決定部22は、ゲートウェイGWからのホップ数に基づいて、サーバSVをサーバ群1とサーバ群2に分けているものとする。サーバ群1のサーバはサーバ群2のサーバに比べて、ゲートウェイGWからのホップ数が小さいものとする。
【0051】
図14の処理では、仮想マシンごとに、その仮想マシンのトラフィックの総量に対しての外部宛トラフィックの割合が大きいかが判断され、判断結果に応じて処理が進められる。ここで、外部宛トラフィックの割合が大きいかの判断は、同一のデータセンタ60に配置される仮想マシン同士での比較により相対的に決定される。従って、同一のデータセンタ60に配置される仮想マシンの外部宛トラフィックの割合に応じて、適宜、閾値が決定され、閾値に応じて個々の仮想マシンの外部宛トラフィックの割合が高いかが決定される。例えば、閾値が70%であれば、外部宛トラフィックがトラフィックの総量の65%である仮想マシンでは、外部宛トラフィックの割合が小さいと判断される。外部宛トラフィックの割合が大きいと判断されなかった仮想マシンは、内部宛トラフィックの割合が大きい仮想マシンとして扱われるものとする。
【0052】
配置決定部22は、外部宛トラフィックの割合が大きい仮想マシン(VM)をサーバ群1に配置する(ステップS1)。このとき、配置決定部22は、外部宛トラフィックが大きい仮想マシンを優先的にサーバ群1のサーバに配置するものとする。配置決定部22は、サーバ群1のサーバのリソースが不足しているかを確認する(ステップS2)。サーバ群1のサーバのリソースが不足していない場合、まだ配置が決定されていない仮想マシンのうちで外部宛トラフィックの割合が大きい仮想マシンがあるかを確認する(ステップS2でNo、ステップS3)。配置が決定されていない仮想マシンに外部宛トラフィックの割合が大きい仮想マシンが含まれている場合、配置決定部22はステップS1の処理に戻る(ステップS3でYes)。
【0053】
サーバ群1のサーバのリソースが不足している場合、配置決定部22は、まだ配置が決まっていない仮想マシンのうちで外部宛トラフィックの割合が大きい仮想マシンを、サーバ群2のサーバに配置する(ステップS2でYes、ステップS4)。外部宛トラフィックの割合が大きい仮想マシンの配置が終わったら、配置決定部22は、内部宛トラフィックの割合が大きい仮想マシンをサーバ群2に配置する(ステップS5)。また、ステップS3において、外部宛トラフィックのある仮想マシンの配置が終わったと判定された場合も、ステップS5の処理が行われる。内部宛トラフィックの割合が多い仮想マシンの配置が終了すると、トラフィックモニタ25により、トラフィック情報の監視が開始される(ステップS6)。
【0054】
図15Aと図15Bは、輻輳が発生したときの処理の例を説明するフローチャートである。輻輳検出部21は、トポロジーデータ14と、トラフィックモニタ25から取得したトラフィック情報を用いて、輻輳の発生を検出する(ステップS11)。輻輳が発生するまでステップS11の処理が繰り返される。輻輳検出部21が輻輳の発生を検出すると、輻輳検出部21は輻輳が発生している箇所を配置決定部22に通知する。配置決定部22は、輻輳検出部21から通知された情報とトポロジーデータ14に基づいて、輻輳の原因となっているトラフィックの送信元の仮想マシンを特定する(ステップS12)。次に、配置決定部22は、輻輳の原因となっている仮想マシンが配置されているサーバよりもゲートウェイGWまでのホップ数の小さいサーバのリソースが余っているかを確認する(ステップS13)。ゲートウェイGWまでのホップ数の小さいサーバのリソースが余っている場合、配置決定部22は、外部宛トラフィックのある仮想マシンが輻輳の原因に含まれているかを確認する(ステップS13でYes、ステップS14)。外部宛トラフィックのある仮想マシンが輻輳の原因に含まれている場合、配置決定部22は、輻輳の原因であって外部宛トラフィックが最大の仮想マシンを、ゲートウェイGWまでのホップ数の小さいサーバに移動する(ステップS14でYes、ステップS15)。
【0055】
一方、外部宛トラフィックのある仮想マシンが輻輳の原因に含まれていない場合、配置決定部22は、データセンタ内の通信を効率化する(ステップS14でNo)。配置決定部22は、輻輳の原因となっている仮想マシンを、通信先の仮想マシンが配置されているサーバと同じスイッチSWに接続されているサーバに配置できるかを判定する(ステップS18)。ステップS18で配置が可能であると判定すると、配置決定部22は、輻輳の原因となっている仮想マシンを、通信先の仮想マシンが配置されているサーバと同じスイッチSWに接続されているサーバに配置する(ステップS19)。ステップS18の判定結果がNoである場合、配置決定部22は、輻輳の原因となっている仮想マシンを、通信先の仮想マシンが配置されているサーバと同じ中継ルータRTに接続されているサーバに配置できるかを判定する(ステップS20)。ステップS20で配置が可能であると判定すると、配置決定部22は、輻輳の原因となっている仮想マシンを、通信先の仮想マシンが配置されているサーバと同じ中継ルータRTに接続されているサーバに配置する(ステップS21)。ステップS19もしくはステップS21の処理が行われた後、ステップS11以降の処理が繰り返される。
【0056】
次に、ステップS13において、輻輳の原因となっている仮想マシンが配置されているサーバよりもゲートウェイGWまでのホップ数の小さいサーバのリソースが余っていないと判定された場合の処理(ステップS13でNo)について述べる。この場合、配置決定部22は、輻輳の原因となっている仮想マシンでの外部宛トラフィックの大きさを、ゲートウェイGWまでのホップ数がより小さいサーバに配置されている仮想マシンの外部宛トラフィックの大きさと比較する(ステップS16)。輻輳の原因となっている仮想マシンでの外部宛トラフィックのほうが大きい場合、配置決定部22は外部宛トラフィックが大きい方の仮想マシンを、ゲートウェイGWからのホップ数が小さいサーバSVに配置する(ステップS16でYes、ステップS17)。このとき、ゲートウェイGWからのホップ数が小さいサーバSVに配置されていた仮想サーバは、リソースが余っている他のサーバに移動される。一方、輻輳の原因となっている仮想マシンでの外部宛トラフィックのほうが小さい場合(ステップS16でNo)、ステップS18〜S21を参照しながら説明したように、データセンタ60の内部の通信を効率化するための処理が行われる。
【0057】
以上説明したように、本実施形態では、データセンタ60の外部宛てのトラフィックが多い仮想マシンほど、ゲートウェイGWからのホップ数の小さいサーバに配置される。このため、データセンタ60での外部宛のトラフィックの経路を短くすることができ、データセンタ60の内部の回線を効率的に使用することができる。
【0058】
さらに、配置決定部22は、互いにデータを送受信する仮想マシンの間のホップ数がなるべく小さくなるように、仮想マシンの配置を決定する。まず、配置決定部22は、互いにデータを送受信する仮想マシンをなるべく同一のスイッチSWに接続されたサーバに配置しようとする。互いにデータを送受信する仮想マシンを同一のスイッチSWに接続されたサーバに配置できない場合、配置決定部22は、互いにデータを送受信する仮想マシンをなるべく同一の中継ルータRTに接続されたサーバに配置する。これらの処理により、データセンタ60の内部での通信も効率化される。
【0059】
本実施形態では、通信の効率化により、輻輳が回避されるので、輻輳による通信品質の劣化も回避される。なお、以上の例では、理解を助けるために、1台のサーバに1台の仮想マシンが配置される場合を例として説明したが、1台のサーバに配置される仮想マシンの数は任意である。従って、互いにデータを送受信する仮想マシンが同一のサーバに配置されることもある。
【0060】
<第2の実施形態>
第2の実施形態では、配置される仮想マシンの総数が変動する場合について、制御装置10の動作を詳しく説明する。
【0061】
例えば、図12に示すように仮想マシンが配置されたことにより、輻輳が解消された後で、テナントAで行われる処理の量が減少したとする。テナントAでは、処理の減少に伴い、VM_A1とVM_A2を停止させたとする。VM_A1とVM_A2が停止されたときの仮想マシンの配置と各回線でのトラフィックの例を図16に示す。図16では、中継ルータRT1に接続されているサーバ(SV1〜SV4)に仮想マシンが配置されていない。その他のサーバSV5〜SV10の配置とそれらのサーバに配置された仮想マシンによって発生するトラフィックについては、図12と同様である。
【0062】
その後、テナントDがデータセンタ60aでの処理を開始したとする。テナントDは、VM_D1とVM_D2を運用するものとする。ここで、VM_D1はサーバSV1に配置され、VM_D2はサーバSV2に配置されたものとする。
【0063】
次に、以下のようなトラフィックが発生した場合の処理を説明する。このときの仮想マシンの配置とトラフィックを図17に示す。
VM_A3からデータセンタB宛てのトラフィック :4Gbps
VM_B1からオフィスA宛てのトラフィック :5Gbps
VM_B2からオフィスA宛てのトラフィック :2Gbps
VM_B1とVM_B2の間の双方向通信のトラフィック:1Gbps
VM_C1とVM_C2の間の双方向通信のトラフィック:3Gbps
VM_C2とVM_C3の間の双方向通信のトラフィック:3Gbps
VM_D1からデータセンタB宛てのトラフィック :5Gbps
VM_D2からデータセンタB宛てのトラフィック :5Gbps
【0064】
(11)図17に示すように仮想マシンが配置された状態で上記のトラフィックが発生すると、トラフィックモニタ25は、例えば、図18に示すようなトラフィック情報を取得する。輻輳検出部21は、図6に示すトポロジーデータ14と、図18に示すトラフィック情報を用いて、各回線で求められるトラフィックを計算する。さらに、計算結果を用いて、輻輳の発生を検出する。トラフィックの計算や輻輳の検出方法は、第1の実施形態と同様である。図17の各回線の隣に、その回線を流れるトラフィックの計算値を示す。
【0065】
図17および図18の例では、ゲートウェイと中継ルータRT1の間の回線、および、スイッチSW1と中継ルータRT1の間の回線のトラフィックは10Gbpsであるが、帯域幅は10Gbps未満であるため、輻輳が発生していると判断される。輻輳検出部21は、中継ルータRT1とスイッチSW1で輻輳が発生していることを配置決定部22に通知する。
【0066】
(12)配置決定部22は、トポロジーデータ14を用いて、ホップ数ごとに第1の実施形態と同様にサーバを分類する。以下、サーバSV9とSV10を「サーバ群1」、サーバSV1〜SV8を「サーバ群2」に分類して記憶しているものとする。
【0067】
配置決定部22は、中継ルータRT1とスイッチSW1で輻輳が起こっていることが通知されると、トポロジーデータ14(図6)を参照し、配置を変更する候補となる仮想マシンを特定する。ここでは、VM_D1とVM_D2が配置を変更する候補として選択される。
【0068】
(13)配置決定部22は、トポロジーデータ14を用いて、仮想マシンを配置できるサーバSVを特定する。図17、図18の例では、サーバ群1のサーバSVには新たに仮想マシンを配置することはできない。配置決定部22は、サーバSV3とSV4へは仮想マシンを配置することができることを認識する。しかし、サーバSV3とSV4はいずれも中継ルータRT1に接続されているため、VM_D1かVM_D2のいずれかをサーバSV3もしくはSV4に移動したとしても、中継ルータRT1の輻輳は解消されない。
【0069】
(14)次に、配置決定部22は、輻輳の原因となっている仮想マシンでの外部宛トラフィックの大きさを、ゲートウェイGWまでのホップ数がより小さいサーバに配置されている仮想マシンの外部宛トラフィックの大きさと比較する。VM_D1とVM_D2のいずれも、ゲートウェイGWからのホップ数が3のサーバSVに配置されている。ゲートウェイGWからのホップ数が1であるサーバSV9とSV10には、VM_A3とVM_B1が配置されている。ここで、VM_A3での外部宛てのトラフィックは4Gbpsであり、VM_D1とVM_D2のいずれの外部宛てトラフィックよりも小さい。VM_A3、VM_D1、および、VM_D2のトラフィックは、図18の太線で示すとおりである。
【0070】
配置決定部22は、VM_D1とVM_D2のいずれかを、VM_A3の代わりにサーバSV9に配置することを決定する。ここで、配置決定部22は、VM_D2をサーバSV9に配置することを決定したとする。
【0071】
(15)配置決定部22は、VM_D2に対して、サーバSV2からサーバSV9へのライブマイグレーションを要求する。また、VM_A3に対して、サーバSV9からサーバSV2へのライブマイグレーションを要求する。ライブマイグレーションの要求に際して制御装置10が行う処理は、第1の実施形態と同様である。
【0072】
(16)VM_D2がサーバSV2からサーバSV9に移動し、VM_A3もサーバSV9からサーバSV2に移動したときの仮想マシンの配置の例を図19に示す。図20は、VM_D2とVM_A3が移動した後で、トラフィックモニタ25が取得したトラフィック情報の例を示す。
【0073】
図19および図20に示すようにVM_A3とVM_D2が移動すると、VM_D2から送信されるデータセンタB宛てのトラフィックは、中継ルータRT1を経由しなくなる。代わりにVM_A3から送信されるデータセンタB宛てのトラフィックが中継ルータRT1を経由するが、VM_A3からのデータセンタB宛てのトラフィックは、VM_D2からのデータセンタB宛てのトラフィックよりも小さい。このため、中継ルータRT1からゲートウェイGWに向かうトラフィックは9Gbpsに減少し、中継ルータRT1での輻輳状態は解消する。従って、手順(11)〜(16)で述べた処理により、図17に示す輻輳状態が解消される。
【0074】
以上説明したように、仮想マシンの数が変動する場合でも、データセンタ60の外部宛てのトラフィックが多い仮想マシンを優先的にゲートウェイGWからのホップ数の小さいサーバに配置することにより輻輳が解消される。また、本実施形態では具体例を挙げていないが、仮想マシンの数が変動しても、図15BのステップS18〜S21と同様の処理によりデータセンタ60内のトラフィックを効率化することもできる。
【0075】
<第3の実施形態>
第3の実施形態では、送受信されるデータの優先度を用いて仮想マシンの配置を決定する場合について説明する。第3の実施形態では、トラフィックモニタ25は、仮想マシンから送受信されるデータの優先度を確認するものとする。トラフィックモニタ25は、例えば、通信が開始されるときに、送受信されるデータの優先度を確認することができるものとする。トラフィックモニタ25は、例えば、Internet Protocol(IP)ヘッダに含まれているサービスタイプ(Type Of Service、TOS)フィールドもしくはTraffic Classフィールドの値を用いて優先度を識別することができる。
【0076】
図21は、トラフィックの分類と配置ポリシーの例を説明するテーブルである。図21の例では、優先度が高いトラフィックと、優先度が低いトラフィックの2種類に分類されるものとする。ここでは、優先度が低いトラフィックは、ベストエフォート型の通信により発生するトラフィックであり、優先度が高いトラフィックは、ギャランティ型の通信により発生するトラフィックであるものとする。仮想マシンは、トラフィックの優先度とトラフィックがデータセンタ60の外部宛と内部宛のいずれの割合が高いかに応じて、図21に示す4通りに分類される。
【0077】
配置決定部22は、
1)優先度が高い外部宛トラフィックの割合が高い仮想マシン
2)優先度が高い内部宛トラフィックの割合が高い仮想マシン
3)優先度が低い外部宛トラフィックの割合が高い仮想マシン
4)優先度が低い内部宛トラフィックの割合が高い仮想マシン
の順に配置を決定するものとする。優先度が高い外部宛トラフィックの割合が高い仮想マシンは、なるべくゲートウェイGWからのホップ数が小さいサーバSVに配置される。優先度が高い内部宛トラフィックの割合が高い仮想マシンは、ゲートウェイGWからのホップ数が大きいサーバSVに配置される。このとき、配置決定部22は、データの送受信を行う仮想マシン同士がなるべく同一のスイッチSWで接続されているサーバSV同士に配置されるようにする。同一のスイッチSWで接続されたサーバへの配置ができない場合、配置決定部22は、データの送受信を行う仮想マシン同士がなるべく同一の中継ルータRTで接続されているサーバSV同士に配置されるようにする。
【0078】
優先度が低い外部宛トラフィックの割合が高い仮想マシンは、優先度の高いトラフィックを送受信する仮想マシンの配置が終了した後に配置される。配置決定部22は、サーバ群の空きリソースをモニタした結果に基づいて、なるべくゲートウェイGWからのホップ数が小さいサーバに、優先度が低い外部宛トラフィックの割合が高い仮想マシンを配置する。さらに、配置決定部22は、データの送受信を行う仮想マシン同士がなるべく同一のスイッチSWもしくは中継ルータRTに接続されているサーバに配置されるように、優先度が低い内部宛トラフィックの割合が高い仮想マシンを配置する。
【0079】
図22は、仮想マシンの配置が決定される場合に行われる処理の例を説明するフローチャートである。配置決定部22は、優先度が高い外部宛トラフィックの割合が大きい仮想マシン(VM)をサーバ群1に配置する(ステップS31)。このとき、配置決定部22は、外部宛トラフィックの大きい仮想マシンを優先的にサーバ群1のサーバに配置するものとする。サーバ群1のサーバのリソースが不足していない場合、配置決定部22は、優先度が高い外部宛トラフィックがある仮想マシンの中に、まだ配置が決定されていない仮想マシンが残っているかを確認する(ステップS32でNo、ステップS33)。配置が決定されていない仮想マシンであって、優先度の高い外部宛トラフィックの割合が高い仮想マシンが残っている場合、配置決定部22はステップS1の処理に戻る(ステップS33でYes)。
【0080】
サーバ群1のサーバのリソースが不足している場合、配置決定部22は、まだ配置が決まっていない仮想マシンのうちで、優先度が高い外部宛トラフィックの割合が多い仮想マシンを、サーバ群2のサーバに配置する(ステップS32でNo、ステップS34)。優先度が高い外部宛トラフィックの割合が多い仮想マシンの配置が終わったら、配置決定部22は、優先度が高い内部宛トラフィックの割合が多い仮想マシンをサーバ群2に配置する(ステップS35)。また、ステップS33において、優先度の高い外部宛トラフィックのある仮想マシンの配置が終わったと判定された場合も、ステップS35の処理が行われる。
【0081】
次に、配置決定部22は、サーバ群1のリソースが余っていれば、優先度が低い外部宛トラフィックの割合が大きい仮想マシンをサーバ群1に配置する。サーバ群1のリソースが余っておらず、サーバ群2のリソースが余っている場合、配置決定部22は、優先度が低い外部宛トラフィックの割合が大きい仮想マシンをサーバ群2に配置する(ステップS36)。なお、サーバ群1、2のいずれのリソースも余っていない場合、配置決定部22は、優先度が低い外部宛トラフィックの割合が大きい仮想マシンを配置しない。
【0082】
その後、配置決定部22は、サーバ群2のリソースが余っていれば、優先度が低い内部宛トラフィックの割合が大きい仮想マシンをサーバ群2に配置する。サーバ群2のリソースが余っておらず、サーバ群1のリソースが余っている場合、配置決定部22は、優先度が低い内部宛トラフィックの割合が大きい仮想マシンをサーバ群1に配置する(ステップS37)。なお、サーバ群1、2のいずれのリソースも余っていない場合、配置決定部22は、優先度が低い内部宛トラフィックの割合が大きい仮想マシンを配置しない。優先度の低いトラフィックの割合が多い仮想マシンの配置が終了すると、トラフィックモニタ25により、トラフィック情報の監視が開始される(ステップS38)。
【0083】
仮想マシンの運用が開始された後で輻輳が発生したときの仮想マシンの配置の変更方法は、第1もしくは第2の実施形態と同様である。本実施形態では、優先度が低いデータはベストエフォート型のデータであるため、優先度の低いトラフィックが送信できるだけの帯域が確保されない場合であっても、制御装置10は仮想マシンの配置を変更しない。優先度の高いデータの通信で輻輳が発生した場合、制御装置10は、第1もしくは第2の実施形態と同様の方法により、仮想マシンの配置を変更する。なお、仮想マシンの配置を変更する際には、配置決定部22は優先度の低いトラフィックの割合が大きい仮想マシンが配置されていないときと同様に、優先度の高いトラフィックの割合が大きい仮想マシンの配置を決定するものとする。優先度の低いトラフィックの割合が大きい仮想マシンは、優先度の高いトラフィックの割合が大きい仮想マシンの配置が決定されたときに、適宜、図22のステップS36、S37と同様の方法により再配置される。
【0084】
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【0085】
以上の説明では輻輳が発生したときに配置を変更する方法について説明したが、配置決定部22は、遅延情報を用いて、配置の変更を開始することもできる。例えば、トラフィックモニタ25は、タイムスタンプを含む計測パケットを用いて遅延時間を計測し、遅延情報をトラフィック情報と合わせて制御装置10に通知することができる。制御装置10は、遅延時間が所定の閾値を超えると、輻輳が発生したときと同様に配置の変更を開始する。
【0086】
図面を用いて説明した例では、サーバ群1は、ゲートウェイからのホップ数が1であり、ゲートウェイに直接接続されているサーバSVであったが、データセンタ60中のネットワークトポロジーは、実装に応じて任意に変更されることがある。例えば、ゲートウェイに最も近いサーバSVからゲートウェイまでのホップ数は、2以上の任意の数とすることもできる。さらに、ゲートウェイからサーバSVまでのホップ数の種類も2種類以上の任意の数とすることができる。例えば、ゲートウェイからのホップ数が2であるサーバ群、ゲートウェイからのホップ数が5であるサーバ群、ゲートウェイからのホップ数が6であるサーバ群の3つのサーバ群において、制御装置10が仮想マシンの配置を決定することもできる。この場合も、外部宛てのトラフィックが多い仮想マシンはなるべくゲートウェイからのホップ数が小さいサーバに配置される。また、データセンタ60内で互いに通信する仮想マシンは、なるべく同一のスイッチSWに接続されたサーバに配置される。
【0087】
仮想マシンのトラフィックの総量に対しての外部宛トラフィックの割合が大きいかの判断に用いる閾値を、予め決められた固定の値とすることもできる。この場合、例えば、閾値が50%であれば、外部宛トラフィックの割合が60%の仮想マシンは、外部宛トラフィックの割合が大きいと判断される。
【0088】
上記の説明では、回線に流れるトラフィックの計算値が、回線の帯域を越えたときに輻輳が発生していると判定しているが、輻輳が発生したかを閾値により判定しても良い。この場合、閾値は、例えば、回線の帯域の90%など、回線の帯域よりも小さな値に設定される。このように閾値により輻輳を検出することにより、通信品質が劣化する前に、仮想マシンの配置を変更することにより、通信を効率化することができる。
【0089】
さらに、トラフィックモニタ25と制御装置10は異なる装置でなくても良く、例えば、制御装置10はトラフィックモニタ25を内蔵することもできる。この場合、制御装置10のトラフィック情報取得部15は、内蔵しているトラフィックモニタ25からトラフィック情報を取得する。
【符号の説明】
【0090】
5 管理ネットワーク
10 制御装置
11、31 受信部
12、32 送信部
13 記憶部
14 トポロジーデータ
15 トラフィック情報取得部
20 配置制御部
21 輻輳検出部
22 配置決定部
25 トラフィックモニタ
30 サーバ
33 仮想スイッチ
34 仮想マシン
41 CPU
42 メモリ
43 入力装置
44 出力装置
45 バス
46 外部記憶装置
47 媒体駆動装置
48 可搬記憶媒体
49 ネットワーク接続装置
50 ネットワーク
60 データセンタ
65 オフィス
70 インターネット

【特許請求の範囲】
【請求項1】
ゲートウェイ装置は、データセンタ内に備えられた第1および第2のサーバと、前記データセンタの外部に位置する外部通信装置の間の通信を中継し、
制御装置は、前記第1および第2のサーバで動作する仮想マシンごとに、単位時間に送受信されるデータの量である通信量を、前記データの送信元および宛先に関連付けて観測することにより得られた観測結果を取得し、
前記制御装置は、前記ゲートウェイ装置から前記第1のサーバまでの第1のホップ数が、前記ゲートウェイ装置から前記第2のサーバまでの第2のホップ数よりも小さい場合、前記外部通信装置との通信量が大きい仮想マシンほど前記第1のサーバに配置されやすくなるように、前記仮想マシンの配置を制御する
ことを特徴とする通信方法。
【請求項2】
前記制御装置は、
前記観測結果を用いて、前記第2のサーバから前記ゲートウェイ装置に至る経路の通信量を算出し、
前記第2のサーバから前記ゲートウェイ装置に至る経路の通信量が第1の閾値を超えると、前記第2のサーバに配置されている仮想マシンのうち前記外部通信装置との通信量が多い仮想マシンほど優先的に、前記第1のサーバに配置するように制御する
ことを特徴とする請求項1に記載の通信方法。
【請求項3】
第1の仮想マシンの通信量に対する、前記第1の仮想マシンと前記外部通信装置との通信量の割合が第2の閾値以下である場合、前記制御装置は、前記第1の仮想マシンを、前記第2のサーバに配置するように制御する
ことを特徴とする請求項1もしくは2に記載の通信方法。
【請求項4】
前記第1の仮想マシンと第2の仮想マシンのいずれでも、前記外部通信装置との通信量の割合が前記第2の閾値以下であり、かつ、前記第1の仮想マシンと前記第2の仮想マシンの間で通信が行われている場合、前記制御装置は、前記第1の仮想マシンと前記第2の仮想マシンの間のホップ数が小さくなるように、前記第1および第2の仮想マシンを配置する
ことを特徴とする請求項1〜3のいずれかに記載の通信方法。
【請求項5】
前記観測結果は、前記第1および第2のサーバで動作する仮想マシンごとに、送受信されるデータの量を優先度に関連付けて観測した結果を含み、
前記制御装置は、前記優先度の高いデータを送受信する仮想マシンのうちで、前記外部通信装置との通信量が大きい仮想マシンほど前記第1のサーバに配置されやすくなるように制御する
ことを特徴とする請求項1〜4のいずれかに記載の通信方法。
【請求項6】
データセンタの内部に位置する装置と前記データセンタの外部に位置する外部通信装置の間の通信を中継するゲートウェイ装置から、前記データセンタ内の第1のサーバまでのホップ数である第1のホップ数を取得し、
前記ゲートウェイ装置から前記データセンタ内の第2のサーバまでのホップ数である第2のホップ数を取得し、
前記第1および第2のサーバで動作する仮想マシンごとに、単位時間に送受信されるデータの量である通信量を、前記データの送信元および宛先に関連付けて観測した観測結果を取得し、
前記第1のホップ数が前記第2のホップ数よりも小さい場合、前記外部通信装置との通信量が大きい仮想マシンほど前記第1のサーバに配置されやすくなるように、前記仮想マシンの配置を制御する
処理をコンピュータに行わせることを特徴とする通信プログラム。
【請求項7】
データセンタの内部に位置する装置と前記データセンタの外部に位置する外部通信装置の間の通信を中継するゲートウェイ装置から、前記データセンタ内の第1のサーバまでのホップ数である第1のホップ数と、前記ゲートウェイ装置から前記データセンタ内の第2のサーバまでのホップ数である第2のホップ数を記憶する記憶部と、
前記第1および第2のサーバで動作する仮想マシンごとに、単位時間に送受信されるデータの量である通信量を、前記データの送信元および宛先に関連付けて観測した観測結果を受信する受信部と、
前記第1のホップ数が前記第2のホップ数よりも小さい場合、前記外部通信装置との通信量が大きい仮想マシンほど前記第1のサーバに配置されやすくなるように、前記仮想マシンの配置を決定するとともに、決定した配置を通知する制御メッセージを生成する配置決定部と、
前記制御メッセージを送信する送信部
を備えることを特徴とする通信装置。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図7】
image rotate

【図9】
image rotate

【図11】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図18】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図1】
image rotate

【図5】
image rotate

【図6】
image rotate

【図8】
image rotate

【図10】
image rotate

【図12】
image rotate

【図16】
image rotate

【図17】
image rotate

【図19】
image rotate


【公開番号】特開2013−46298(P2013−46298A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−183903(P2011−183903)
【出願日】平成23年8月25日(2011.8.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】