説明

送信レート制御のためのプログラム、制御方法及び情報処理装置

【課題】グループ毎に最低保証レート以上の出力レートを得る。
【解決手段】本方法は、第1の物理マシンにおいて実行されている1又は複数の仮想マシンが属するグループについて、第2の物理マシンに送信するデータの送信レートを測定する工程と、測定された送信レートを含む要求パケットを、第2の物理マシンに送信する工程と、第2の物理マシンから、上記グループについての比率と輻輳発生の判断に用いられるデータとを含む応答パケットを受信する工程と、上記データに基づき輻輳発生が検出された場合には、上記グループに属する1又は複数の仮想マシンが第2の物理マシン宛に出力するデータの出力レートを、上記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって現在より低いレートに下げる工程とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、送信レート制御のための技術に関する。
【背景技術】
【0002】
ICT(Information and Communication Technology)システム構築の新しい利用形態としてクラウドコンピューティングのIaaS(Infrastructure as a Service)サービスが注目を集めている。IaaSサービスは、ネットワーク上にあるコンピューティング資源を用いて仮想的なサーバ(以下、仮想マシン又はVMと示す)を構築し、それを利用者に対してサービスとして提供している。
【0003】
このようなIaaSサービスを提供するクラウドコンピューティングインフラは、インフラ上に複数の企業や部門又は部署(これらを総じてテナントと記す。)の仮想マシンが稼動しており、テナント間のセキュリティ保護を目的として、VLAN(Virtual LAN)等の論理分割技術を用いてテナント毎に分離された仮想ネットワーク環境を構築している。
【0004】
仮想ネットワークの構築により、セキュリティの観点においてはあるテナントのパケットが別のテナントに届いてしまうような情報漏洩問題は回避可能である。しかしながら、ネットワーク資源(すなわち帯域)の観点に着目すると問題が発生し得る。すなわち、物理ネットワークを共有している複数のテナントが存在する環境において、あるテナントが大量のデータ通信を行っていたときに、別のテナントがこの大量データ通信の影響を受けてほとんど通信できなくなるといった問題が生じ得る。この問題は、ネットワーク資源がテナント単位に確保されていないことに起因し、ネットワーク資源を奪い合っている状況を意味する。
【0005】
ネットワーク資源をテナント単位に確保するためには、物理ネットワークスイッチにおける出力ポート上に複数のキューを備え、各テナントに対して独立したキューを割り当てる方法がある。具体的には、各キューからのパケット読み出しレートが常に一定レート(各テナントに確保された帯域、すなわち最低保証レート)以下にならないように制御する。さらに、他のキューに滞留しているパケットがなければ最低保証レート以上のレートで送信するように制御する。このような制御により、たとえあるテナントが大量データ通信を行っていたとしても、各キューからの送信レートは常に最低保証レート分は読み出すことが可能になる。そのため、各テナントはどのような状況であっても少なくとも最低保証レート分のデータ通信を行うことが可能となる。
【0006】
しかし、現在の物理ネットワークスイッチの多くはハードウェア制約から出力ポートあたりのキュー数が4乃至10程度と少なく、大規模データセンタ内の全テナント分のキューを配備することは困難である。なお、一部の製品には数万個のキューを備えた物理ネットワークスイッチが存在するが、装置単価が非常に高価なためこのようなスイッチを用いてネットワークを構築するとインフラ構築コストが増大する問題がある。
【0007】
また、物理ネットワークのスイッチでは制御を行わず、エンドホストで制御を行う技術もある。この技術は、図1で示すようにエンドホスト間でRTP(Real Time Packet)を用いて通信を行う際に、エンドホスト間に定期的に、RTCP(Real Time Control Packet)のような制御パケットを受け渡し、エンドホスト間の遅延、スループット、廃棄数などを測定し、その測定結果に基づいて送信レートを増減させるものである。しかしながら、エンドホスト間での帯域制御が可能なだけで、複数のテナントが1又は複数の物理マシンで1又は複数の仮想マシンを実行しており、テナント内の仮想マシン間で通信を行う場合には対処できない。
【0008】
具体的な例を用いてこの問題点を説明する。図2に示すように、テナントAには仮想マシンA1、A2及びA3が含まれ、テナントBには仮想マシンB1及びB2が含まれ、テナントCには仮想マシンC1及びC2が含まれ、それぞれ異なる物理マシン上に配備されていると仮定する。また、物理ネットワーク上の各リンク(例えばリンクレート1Gps)において、テナントAには200Mbps、テナントB及びCにはそれぞれ400Mbpsの帯域を最低保証レートとして確保するように、収容設計がなされているものと仮定する。
【0009】
そして、図2の状態では、テナントAに属する仮想マシンA1は仮想マシンA3に対して600Mbpsでデータを送信し、仮想マシンA2は仮想マシンA3に対して400Mbpsでデータを送信をしているものとする。
【0010】
このような状態でもスイッチAとスイッチBとの間のリンクには、合計1Gbpsのトラフィックが流入することになる。この場合、トラフィックの送信レートがリンクレート以下であるから、非輻輳状態である。
【0011】
ここで、図3に示すように、テナントBに属する仮想マシンB1が仮想マシンB2に対して400Mbpsでデータを送信し、テナントCに属する仮想マシンC1が仮想マシンC2に対して400Mbpsでデータを送信し始めたとする。
【0012】
そうすると、スイッチAとスイッチBとの間のリンクには、合計1.8Gbpsのトラフィックが流入することになる。従って、例えば制御パケットのやりとりによって、遅延時間の増加、パケット排気数の増大、スループットの低下が検出できるので、輻輳発生も検出できる。
【0013】
このように輻輳発生を検出すると、データの送信レートを下げることで輻輳の解消を図ることになるが、一方で各テナントの最低保証レートを確保することも求められている。仮想マシンB1から仮想マシンB2へのデータ送信レートは、テナントBの最低保証レートの400Mbpsであるから、送信レートの引き下げは困難である。同様に、仮想マシンC1から仮想マシンC2へのデータ送信レートは、テナントCの最低保証レートの400Mbpsであるから、送信レートの引き下げは困難である。
【0014】
一方、仮想マシンA1から仮想マシンA3へのデータ送信レートは、テナントAの最低保証レートを上回っており、仮想マシンA2から仮想マシンA3へのデータ送信レートも、テナントAの最低保証レートを上回っているため、データ送信レートを下げることができる。しかしながら、図4に示すように、仮想マシンA1から仮想マシンA3へのデータ送信レートは、最低保証レートの200Mbps未満にできない。同様に、仮想マシンA2から仮想マシンA3へのデータ送信レートは、最低保証レートの200Mbps未満にできない。従って、スイッチAとスイッチBとの間のリンクには、合計で1.2Gbpsのトラフィックが流入するため、輻輳が解消できない。これによって、テナントB及びCのパケットも破棄されることになるため、テナントB及びCについての最低保証レートを確保できない。
【0015】
これは、この従来技術が輻輳回避のための技術であり、最低保証レートの確保を目的としておらず、2組以上のコンピュータ間の送信レートを纏めて制御するような仕組みを有していないことから生ずる。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2011−35442号公報
【特許文献2】特開2004−254258号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
本技術の目的は、一側面では、仮想マシンのグループ毎に最低保証レートより出力レートが低下しないようにするための技術を提供することである。
【課題を解決するための手段】
【0018】
本技術の第1の態様に係る制御方法は、(A)第1の物理コンピュータにおいて実行されている1又は複数の仮想マシンが属するグループについて、第2の物理コンピュータに送信するデータの送信レートを測定する第1のステップと、(B)第1のステップで測定された送信レートを含む要求パケットを、第2の物理コンピュータに送信する第2のステップと、(C)第2の物理コンピュータから、上記グループについての比率と、輻輳発生の判断に用いられる第1のデータとを含む応答パケットを受信する第3のステップと、(D)第1のデータに基づき輻輳発生が検出された場合には、上記グループに属する1又は複数の仮想マシンが第2の物理コンピュータ宛に出力するデータの出力レートを、上記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって、現在の出力レートよりも低い出力レートに下げる第4のステップとを含む。
【0019】
本技術の第2の態様に係る制御方法は、(A)第1の物理コンピュータにおいて、第2の物理コンピュータから、当該第2の物理コンピュータにおいて実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する第1のステップと、(B)要求パケットから、第2の物理コンピュータと第1の物理コンピュータとの間の輻輳発生の判断に用いられるデータを、上記グループについて生成する第2のステップと、(C)他の物理コンピュータから受信した要求パケットに含まれる、上記グループについての第3の送信レートの総和と送信レートとの和に対する送信レートの比を算出することで、上記グループについての比率を算出する第3のステップと、(D)上記グループについての比率と輻輳発生を判断するためのデータとを含む応答パケットを生成して、第2の物理コンピュータに送信する第4のステップとを含む。
【発明の効果】
【0020】
仮想マシンのグループ毎に最低保証レートより出力レートが低下しないようになる。
【図面の簡単な説明】
【0021】
【図1】図1は、従来技術を説明するための図である。
【図2】図2は、従来技術の問題を説明するための図である。
【図3】図3は、従来技術の問題を説明するための図である。
【図4】図4は、従来技術の問題を説明するための図である。
【図5】図5は、第1の実施の形態のシステム概要図である。
【図6】図6は、物理マシンの、送信に関係する構成を示す機能ブロック図である。
【図7】図7は、物理マシンの、受信に関係する構成を示す機能ブロック図である。
【図8】図8は、第1の実施の形態における処理フローを示す図である。
【図9】図9は、第2の実施の形態に係るシステム概要図である。
【図10】図10は、第2の実施の形態に係る通信状態を説明するための図である。
【図11】図11は、物理サーバ(送信側)の構成を示す図である。
【図12】図12は、分配部が保持するデータの一例を示す図である。
【図13】図13は、要求パケットのパケットフォーマットの一例を示す図である。
【図14】図14は、応答パケットのパケットフォーマットの一例を示す図である。
【図15】図15は、送信側の制御部のデータ格納部に格納されるデータの一例を示す図である。
【図16】図16は、物理サーバ(受信側)の構成を示す図である。
【図17】図17は、受信側の制御部のデータ格納部に格納されるデータの一例を示す図である。
【図18】図18は、第2の実施の形態における処理フローを示す図である。
【図19】図19は、第2の実施の形態に係る通信状態を説明するための図である。
【図20】図20は、読み出しレートの時間変化例を示す図である。
【図21】図21は、第2の実施の形態に係る通信状態を説明するための図である。
【図22】図22は、読み出しレートの時間変化例を示す図である。
【図23】図23は、読み出しレートの時間変化例を示す図である。
【図24】図24は、第3の実施の形態を説明するための図である。
【図25】図25は、第3の実施の形態を説明するための図である。
【図26】図26は、第3の実施の形態に係る処理フローを示す図である。
【図27】図27は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【0022】
[実施の形態1]
本技術の第1の実施の形態においては、図5に示すように、ネットワーク1000に、物理マシンX、物理マシンY及び物理マシンZが接続されている状況を想定する。そして、物理マシンXでは、グループAについての仮想マシンVMa1が実行されており、物理マシンYでは、グループAについての仮想マシンVMa2が実行されており、物理マシンZでは、グループAについての仮想マシンVMa3及びVMa4が実行されているものとする。そして、仮想マシンVMa1から仮想マシンVMa3へデータ送信が行われており、仮想マシンVMa2から仮想マシンVMa4へデータ送信が行われているものとする。
【0023】
本実施の形態における物理マシンX及びYのデータ送信に関係する構成を、物理マシンXにより説明する。図6に示すように、物理マシンXは、グループAのための論理構成部1100と、制御部1000とを有する。ここではグループAの仮想マシンVMa1のみが実行されているので、グループAのための論理構成部1100のみが示されているが、他のグループの仮想マシンが実行されるようになると、そのグループのための論理構成部が設けられる。
【0024】
制御部1000は、測定部1010と、変更部1020と、送信部1030と、受信部1040とを有する。測定部1010は、グループAの仮想マシンが実行されている他の各物理マシンに対する送信レートを測定する。測定部1010は、グループが複数存在している場合には、グループ毎に測定する。送信部1030は、測定部1010から受け取ったデータから制御パケットである要求パケットを生成して他の物理マシンに送信する。受信部1040は、要求パケットに対する応答パケット(制御パケットの一種)を受信して、応答パケットのデータを変更部1020に出力する。変更部1020は、応答パケットに含まれるデータに従って、物理マシンXから他の各物理マシンへの送信レートを変更させるための処理を実施する。変更部1020も、グループが複数存在している場合には、グループ毎に処理を行う。
【0025】
グループAのための論理構成部1100は、仮想マシンVMa1と、仮想マシンVMa1と論理的に接続される仮想スイッチSW1120と、仮想スイッチSW1120と論理的に接続される通信部1110とを含む。仮想スイッチSWの数も1に限定されない。
【0026】
通信部1110は、グループAの仮想マシンが実行されている他の物理マシン毎のキュー1112と、分配部1111と、キュー1112からパケットを読み出して他の物理マシンに送信する出力処理部1113とを有する。分配部1111は、仮想スイッチSW1120から受信したパケットの宛先アドレスから宛先物理マシンのためのキューを特定して、そのキューにパケットを投入する。また、分配部1111は、例えばキュー1112に投入した受信パケットのデータ量を、宛先物理マシン毎に、測定部1010に通知する。測定部1010は、分配部1111から通知されたデータ量を用いて、各グループについて、物理マシン毎に単位時間当たりの送信レートを算出する。出力処理部1113は、各キュー1112からパケットを読み出して、読み出したパケットを物理マシンXの物理的な通信部に出力する。また、出力処理部1113は、変更部1020からの指示に従って、各キューからの読み出しレート(出力レートとも呼ぶ)を変更する。
【0027】
図7に、物理マシンZのデータ受信に関係する構成を示す。物理マシンZは、グループAのための論理構成部3100と、制御部3000とを有する。制御部3000は、受信部3010と、生成部3020と、算出部3030と、データ格納部3040と、送信部3050とを有する。受信部3010は、要求パケットを他の物理マシンから受信して、当該要求パケットのデータを生成部3020と算出部3030とに出力する。生成部3020は、要求パケットのデータから輻輳発生の判断に用いられるデータを生成して、送信部3050に出力する。データ格納部3040は、他の物理マシンから受信した要求パケットのデータを格納する。算出部3030は、今回受信した要求パケットのデータ及びデータ格納部3040に格納されているデータを用いて、今回受信した要求パケットの送信元物理マシンについての比率を以下で述べる方法で算出し、送信部3050に出力する。送信部3050は、生成部3020と算出部3030とから受け取ったデータを用いて応答パケットを生成し、今回受信した要求パケットの送信元物理マシンに送信する。
【0028】
グループAのための論理構成部3100は、仮想スイッチSW3110と、当該仮想スイッチSW3110に接続されている仮想マシンVMa3及びVMa4とを有する。受信側の論理構成部3100では、通常どおり、物理マシンZの物理的な通信部からパケットを受信した仮想スイッチSW3110が、宛先の仮想マシンVMa3又はVMa4へパケットを出力する。
【0029】
次に、図8を用いて、本実施の形態における処理フローを説明する。物理マシンXにおける制御部1000の測定部1010は、分配部1111と連携して送信レートの測定を実施する(図8:ステップS1)。上でも述べたように、各グループについて、宛先物理マシン毎に送信レートを測定するが、現在はグループAのみが仮想マシンを実行しており、物理マシンXと物理マシンYとは通信を行っていないものとして、グループA及び物理マシンZについてのみ着目する。
【0030】
そして、送信部1030は、測定部1010によって測定された、グループA且つ物理マシンZについての送信レートを含む要求パケットを生成して、物理マシンZ宛に送信する(ステップS3)。要求パケットは、物理マシンXから物理マシンZへの経路中に輻輳が発生しているかを判断する役割をも有する。要求パケットの送信は、例えば100msecといった一定周期で行う。但し、周期的でなくても良い。
【0031】
物理マシンZにおける制御部3000の受信部3010は、物理マシンXから要求パケットを受信し(ステップS5)、当該要求パケットのデータを生成部3020及び算出部3030に出力する。生成部3020は、要求パケットのデータから、輻輳発生の判断に用いられるデータを生成して、送信部3050に出力する(ステップS7)。輻輳発生の判断に用いられるデータは、例えば今回受信した要求パケットから特定される片方向遅延時間の場合もあれば、片方向遅延時間が所定の閾値以上となっているか否かに応じて、輻輳発生か否かを表すフラグであってもよい。片方向遅延時間については、(今回受信した要求パケットの受信時刻−要求パケットに含まれる送信時刻)で算出するようにしても良い。さらに、輻輳が発生していないことを確認した上で、ある要求パケットの受信時刻+要求パケットの送信周期で要求パケットの予測到着時刻を算出して、実際の到着時刻と当該予測到着時刻との差を片方向遅延時間としてもよい。さらに、スループットやパケットの排気率他の測定結果等に基づき輻輳発生を検出するようにしても良い。
【0032】
また、算出部3030は、グループAについて仮想マシンが実行されている物理マシンXについての送信レートと同じく物理マシンYについての送信レートとの和に対する、送信元物理マシンである物理マシンXについての送信レートの比から、グループA且つ送信元物理マシンXについての比率を算出する(ステップS9)。物理マシンXについての送信レートは、今回受信した要求パケットに含まれるデータを用いる。このデータについてはデータ格納部3040に格納しておく。また、物理マシンYについての送信レートについては、データ格納部3040に格納されている最新のデータを用いる。算出部3030は、比率のデータを送信部3050に出力する。
【0033】
例えば、物理マシンXについての送信レートが400Mbpsであり、物理マシンYについての送信レートが600Mbpsであれば、物理マシンXについての比率は、400/(400+600)=0.4と算出される。なお、場合によっては、比に対して調整を加えた結果を比率として採用するようにしても良い。例えば物理マシンXを優先させるという設定があれば、物理マシンXについての比に所定値を加えて、物理マシンについての比率を算出するようにしても良い。この場合、代わりに物理マシンYについての比から所定値を減じて物理マシンYについての比率を算出する。
【0034】
そして、送信部3050は、輻輳発生の判断に用いられるデータと比率のデータとを含む応答パケットを生成して、物理マシンX宛に送信する(ステップS11)。
【0035】
これに対して、物理マシンXにおける制御部1000の受信部1040は、応答パケットを受信し(ステップS13)、応答パケットのデータを変更部1020に出力する。変更部1020は、輻輳発生の判断に用いられるデータから輻輳が発生したか判断する(ステップS15)。輻輳発生の判断に用いられるデータが片方向遅延時間であれば、予め定められた閾値と比較して、片方向遅延時間が閾値以上であれば輻輳発生と判断する。一方、輻輳発生か否かを表すフラグであれば、そのフラグの値が輻輳発生を示しているかを判断する。
【0036】
輻輳が発生していない場合には、出力処理部1113が現在キュー1112からパケットを読み出しているレートよりも高いレートでパケットを物理マシンZに出力してもよいことになる。そこで、変更部1020は、出力処理部1113に対して、物理マシンZ宛のパケットの現在の出力レートを上げるように指示を出す(ステップS19)。出力レートの上げ方はどのようなものであっても良いが、物理マシンXの物理的な通信部の上限レートよりも高くはできない。
【0037】
一方、輻輳が発生している場合には、変更部1020は、応答パケットに含まれる比率と所定レート(例えばグループAに設定されている最低保証レート)の積から決定される下限レート未満にならないように、出力処理部1113に対して、物理サーバZ宛のパケットの現在の出力レートを下げるように指示を出す(ステップS17)。
【0038】
例えば、比率が0.4で、所定レートが500Mbpsであれば、200Mbpsが下限レートとして算出される。
【0039】
出力レートの下げ方はどのようなものであっても良いが、上で述べた下限レート未満にならないようにする。下限レート以上であれば、システム全体としてグループAについての最低保証レートを確保することができる。なお、応答パケットに含まれる比率と所定レートの積に対して調整を加えるようにしても良い。例えば、物理マシンXを優先させるという設定がなされていれば、応答パケットに含まれる比率と所定レートの積に対して所定値を加算して、下限レートを算出するようにしてもよい。この場合、代わりに物理マシンYにおいて算出された下限レートから所定値を減算する。
【0040】
以上のような処理を実施することで、輻輳が発生している状況においても、システム全体として各グループについての最低保証レートを確保できるようになる。なお、正しく設計がなされていれば、各グループについての最低保証レートを加算すると、ネットワークの各リンクの帯域以下になるはずであるので、上で述べたような処理を実施すれば輻輳も解消できるようになる。
【0041】
また、上では説明を分かり易くするために、各物理マシンについて、送信側の構成と受信側の構成との一方のみを示しているが、実際には両方の構成を有する。
【0042】
[実施の形態2]
本技術の第2の実施の形態のシステム構成例を図9を用いて説明する。物理ネットワーク100には、スイッチSW1乃至SW4が含まれている。スイッチSW3は、物理サーバXに接続されており、さらにスイッチSW1に接続されている。また、スイッチSW4は、物理サーバYに接続されており、スイッチSW1にも接続されている。スイッチSW1は、スイッチSW3、SW4及びSW2に接続されている。スイッチSW2は、スイッチSW1に接続されており、さらに物理サーバZにも接続されている。
【0043】
本実施の形態では、物理サーバXでは、テナントAの仮想マシンVMa1及びVMa2が実行されており、物理サーバYでは、テナントAの仮想マシンVMa3及びVMa4が実行されており、さらにテナントBの仮想マシンVMb1が実行されている。さらに、物理サーバZでは、テナントAの仮想マシンVMa5と、テナントBの仮想マシンVMb2とが実行されている。
【0044】
同じテナントに属する仮想マシン間で通信は行われる。但し、説明を簡単にするため、図10に示すような通信が行われるものとする。すなわち、物理サーバXでは、仮想マシンVMa1から仮想マシンVMa5へデータを送信し、仮想マシンVMa2から仮想マシンVMa3へデータを送信する。また、物理サーバYでは、仮想マシンVMa4から仮想マシンVMa5へデータを送信し、仮想マシンVMb1から仮想マシンVMb2へデータを送信する。
【0045】
次に、本実施の形態における物理サーバXの構成(送信側)を図11を用いて説明する。図10の例では、物理サーバXは、データを送信する側の物理サーバであり、テナントAの論理構成部220と、制御部210とを有する。テナントA以外のテナントについての仮想マシンが実行されている場合には、そのテナントのための論理構成部220も設けられる。
【0046】
テナントAの論理構成部220は、仮想マシンVMa1及びVMa2と、仮想マシンVMa1及びa2が論理的に接続されている仮想スイッチSW221と、当該仮想スイッチSW221に接続されている通信部222とを有する。
【0047】
また、制御部210は、送信レート測定部211と、要求パケット送信部212と、応答パケット受信部213と、レート変更部214と、データ格納部215とを有する。
【0048】
通信部222は、分配部2221と、テナントAの仮想マシンが実行されている他の物理サーバY及びZのためのキュー2222及び2224と、キュー2222及び2224からの読み出し部2223及び2225と、セレクタ2226とを有する。
【0049】
分配部2221は、仮想マシンVMa1及びVMa2から出力されたパケットを仮想スイッチSW221を介して受信し、当該パケットを、宛先アドレスから特定される、宛先の物理サーバのためのキュー2222又は2224に出力する。例えば、分配部2221は、例えば図12に示すようなデータに基づき、出力先のキュー2222又は2224を特定する。図12の例では、仮想マシンのMACアドレスに対応付けて宛先物理サーバのキューの識別子が登録されている。また、分配部2221は、宛先物理サーバ毎に、キュー2222又は2224に投入したパケットのデータ量などを測定して、送信レート測定部211に出力する。
【0050】
読み出し部2223は、キュー2222から、レート変更部214から指示された読み出しレートでパケットを読み出し、セレクタ2226に出力する。また、読み出し部2225は、キュー2224から、レート変更部214から指示された読み出しレートでパケットを読み出し、セレクタ2226に出力する。セレクタ2226は、物理サーバXの物理的な通信部に、適切なタイミングでパケットを出力する。
【0051】
制御部210の送信レート測定部211は、テナントAについて各宛先物理サーバの送信レートを測定し(又は算出し)、要求パケット送信部212に出力する。要求パケット送信部212は、送信レート測定部211からの送信レートを用いて要求パケットを生成し、宛先物理サーバに送信する。複数のテナントについての仮想マシンが実行されている場合には、同じ宛先物理サーバについては同一の要求パケットに、送信レートのデータを含めて送信するようにしてもよい。
【0052】
図13に、制御パケットである要求パケットのパケットフォーマットの一例を示す。要求パケットは、イーサネットヘッダ(イーサネットは登録商標)(14バイト)と、IPヘッダ(20バイト)、UDPヘッダ(8バイト)と、メッセージボディ(可変長)とが含まれる。メッセージボディには、制御パケットのタイプ(要求)と、タイム(送信時刻)と、テナント毎の送信レートとが含まれる。送信レートについては、例えばTLV(Type-Length-Value)形式で値が設定される。
【0053】
上で述べた例において物理サーバZ宛の要求パケットであれば、物理サーバXではテナントAしか仮想マシンが実行されていないので、テナントAについて物理サーバZに対する送信レートのみが含まれることになる。物理サーバYでは、テナントA及びBについての仮想マシンが実行されているので、物理サーバZ宛の要求パケットであれば、テナントAについて物理サーバZに対する送信レートと、テナントBについて物理サーバZに対する送信レートとが含まれる。
【0054】
また、制御部210の応答パケット受信部213は、他の物理サーバから制御パケットである応答パケットを受信し、応答パケットのデータをレート変更部214に出力する。図14に、制御パケットである応答パケットのパケットフォーマットの一例を示す。応答パケットは、イーサネットヘッダ(イーサネットは登録商標)(14バイト)と、IPヘッダ(20バイト)、UDPヘッダ(8バイト)と、メッセージボディ(可変長)とが含まれる。メッセージボディには、制御パケットのタイプ(応答)と、タイム(片方向遅延時間)と、テナント毎の比率とが含まれる。比率については、例えばTLV(Type-Length-Value)形式で値が設定される。比率については後に詳しく述べる。
【0055】
レート変更部214は、片方向遅延時間が予め定められた閾値以上となっているか判断することで、輻輳が発生しているか否かを判断する。輻輳が発生している場合には、レート変更部214は、テナント毎の比率に従って決定される下限レートを下回らないように、応答パケットの送信元物理サーバについてのキュー2222又は2224からの読み出しレートを下げるように、読み出し部2223又は2225を制御する。また、読み出し部2223又は2225に指示した読み出しレートについては、データ格納部215に格納する。データ格納部215には、例えば図15に示すようなデータが格納される。図15の例では、テナントの識別子と、宛先物理サーバのキューの識別子と、設定された読み出しレートとが対応付けて格納される。
【0056】
なお、物理サーバYの場合には、テナントAの論理構成部と、テナントBの論理構成部と、制御部とを有する。
【0057】
次に、本実施の形態における物理サーバZの構成(受信側)を図16を用いて説明する。図16の例では、物理サーバZは、データを受信する側の物理サーバであり、テナントAの論理構成部310と、テナントBの論理構成部320と、制御部330とを有する。 テナントAの論理構成部310と、テナントBの論理構成部320とについては、仮想スイッチSWに仮想マシンVMa5又はVMb2が接続されている構成であり、従来と変わらないので、これ以上述べない。
【0058】
一方、制御部330は、要求パケット受信部331と、比率算出部332と、輻輳検出部333と、データ格納部334と、応答パケット送信部335とを有する。要求パケット受信部331は、他の物理サーバから要求パケットを受信して、そのデータを比率算出部332及び輻輳検出部333に出力する。
【0059】
輻輳検出部333は、要求パケットに含まれる送信時刻を用いて片方向遅延時間を算出し、応答パケット送信部335に出力する。比率算出部332は、各テナントについて、要求パケットに含まれる、送信元物理サーバの送信レート及びデータ格納部334に格納されている他の物理サーバの送信レートを用いて、同一テナントに属する仮想マシンが自物理サーバへ送信しているデータの送信レートの総和に対する、送信元物理マシンの送信レートの比率を算出する。例えば、データ格納部334には、図17に示すようなデータが格納されている。図17の例では、テナントの識別子と、送信元物理サーバの識別子と、送信レートとが対応付けられて格納されている。例えば物理サーバXからの要求パケットに、テナントAについての送信レート(300Mbps)というデータが含まれている場合、データ格納部334から、テナントA且つ物理サーバX以外の物理サーバについての送信レートを読み出す。この場合、物理サーバYについての送信レート(300Mbps)を読み出す。なお、今回受信した要求パケットに含まれる送信レートについては、テナントA且つ送信元物理サーバXの送信レートとして、データ格納部334に格納される。そして、比率算出部332は、300/(300+300)=0.5が得られる。
【0060】
応答パケット送信部335は、比率算出部332で算出された比率と輻輳検出部333で算出された片方向遅延時間とを含む応答パケットを生成して、要求パケットの送信元物理サーバXへ送信する。
【0061】
次に、図18を用いて、上で述べたシステムの処理内容を説明する。物理サーバXにおける制御部210の送信レート測定部211は、分配部2221と連携して、テナント毎に、各宛先物理サーバに対する送信レートを測定する(図18:ステップS21)。例えば、要求パケットを定期的に送信する場合には、要求パケットの送信周期毎に、単位時間(例えば1秒)当たりの送信データ量、すなわち送信レートを算出する。そして、物理サーバZに対する要求パケットの送信タイミングになると、最新の送信レートを要求パケット送信部212に出力して、要求パケット送信部212は、送信時刻と各テナントについての物理サーバZに対する送信レートとを含む要求パケットを生成し、物理サーバZに送信する(ステップS23)。
【0062】
物理サーバZにおける制御部330の要求パケット受信部331は、物理サーバXから要求パケットを受信し(ステップS25)、当該要求パケットのデータを比率算出部332及び輻輳検出部333に出力する。輻輳検出部333は、要求パケットの受信時刻と要求パケットに含まれる送信時刻との差から、片方向遅延時間を算出して、応答パケット送信部335に出力する(ステップS27)。また、比率算出部332は、要求パケットに送信レートが含まれるテナントの各々について、送信元物理サーバ以外の物理サーバについての最新送信レートを、データ格納部334から読み出す(ステップS29)。要求パケットにテナントAの送信レートのみが含まれる場合には、送信元物理サーバX以外の物理サーバYの最新送信レートを、データ格納部334から読み出す。
【0063】
そして、比率算出部332は、テナント毎に、要求パケットの送信元物理サーバの比率を算出し、応答パケット送信部335に出力する(ステップS31)。具体的には、テナント毎に、データ格納部334から読み出した送信レートと要求パケットに含まれる送信レートとの総和に対する要求パケットに含まれる送信レートの比率を算出する。
【0064】
応答パケット送信部335は、片方向遅延時間と算出されたテナント毎の比率とを含む応答パケットを生成して、物理サーバXに送信する(ステップS33)。物理サーバXにおける制御部210の応答パケット受信部213は、物理サーバZから応答パケットを受信し(ステップS35)、当該応答パケットのデータをレート変更部214に出力する。レート変更部214は、応答パケットのデータを受け取ると、テナント毎に、応答パケットの送信元物理サーバに対する最低レートを算出する(ステップS37)。具体的には、予めテナントに設定されている最低保証レートに対して、応答パケットに含まれる比率を乗ずることで、最低レートを算出する。各テナントについての最低保証レートについてはデータ格納部215に格納しておくようにしても良い。
【0065】
さらに、レート変更部214は、応答パケットに含まれる片方向遅延時間が予め定められた閾値を超える状態になっているか判断することで、輻輳が発生しているか判断する(ステップS39)。片方向遅延時間が閾値以下である、すなわち輻輳が発生していない場合には、レート変更部214は、各テナントについて、応答パケットの送信元物理サーバに対する読み出しレートを上げるように、読み出し部2223又は2225に指示する(ステップS43)。例えば、データ格納部215に格納されている読み出しレート+最低保証レートと、物理サーバXとスイッチSW3との間のラインレートとのうち小さい方に設定する。すなわち、ラインレートに達するまでは、最低保証レートだけ現在の読み出しレートを増加させる。そしてステップS21に戻る。
【0066】
一方、片方向遅延時間が予め定められた閾値を超えていれば、輻輳が発生していると判断して、レート変更部214は、ステップS37で算出した最低レート未満にならないように、各テナントについて、応答パケットの送信元物理サーバに対する読み出しレートを下げるように、読み出し部2223又は2225に指示する(ステップS41)。例えば、データ格納部215に格納されている読み出しレート/2と、最低レートとのうち大きい方に設定する。すなわち、最低レートより読み出しレートに達するまでは、現在の読み出しレートを半分にする。
【0067】
例えば、図10のような通信を行うが、図19に示すように、テナントBの仮想マシンVMb1がデータ送信を実施していない場合を考える。そして、テナントAの仮想マシンVMa1が、物理サーバZにおける仮想マシンVMa5に対して500Mbpsでデータを送信しており、テナントAの仮想マシンVMa4が、物理マシンZにおける仮想マシンVMa5に対して300Mbpsでデータを送信しているものとする。なお、テナントAの仮想マシンVMa2から、物理サーバYにおける仮想マシンVMa3に対して200Mbpsでデータを送信しているものとする。
【0068】
この場合には、スイッチSW1とスイッチSW2のリンクにおいても800Mbpsであるから、リンクレートの1Gbpsに達していない。従って、輻輳が発生していないと判断される。また、例えば、テナントAについての最低保証レートが200Mbpsであり、テナントBについての最低保証レートが400Mbpsであるものとする。
【0069】
そうすると、物理サーバXにおけるレート変更部214は、テナントAの論理構成部220の通信部222において物理サーバZのためのキューからパケットを読み出す読み出し部2225に対して、図20に示すような読み出しレートの設定を行う。図20において、横軸は時間を表しており、縦軸は読み出しレートを表し、点線sは読み出しレートの時間変化を表している。読み出しレートが初期的に500Mbpsであるとすると、レート変更部214は、テナントAの最低保証レート200Mbpsだけ増加させて、700Mbpsに設定する。さらに、輻輳発生無しと判断すると、さらに読み出しレートを200Mbpsだけ増加させて900Mbpsに設定する。さらに、輻輳発生無しと判断すると、リンクレート1Gbpsまで、読み出しレートを増加させる。しかしながら、仮想マシンVMa1が500Mbpsを超えてデータを出力しない場合には、実線tで示すように、実際に読み出されるデータのレートは変化しない。
【0070】
その後、図21に示すように、テナントBの仮想マシンVMb1が、400Mbpsで、物理サーバZで実行されている仮想マシンVMb2に対してデータを送信し始めるとする。そうすると、スイッチSW1とスイッチSW2との間のリンクで、合計1200Mbpsでデータを送ろうとすることになる。そうすると輻輳が発生するので、テナントAについては、上で述べた処理を行うと、物理サーバXについては、500/(500+300)=0.625という比率が算出され、物理サーバYについては、300/(500+300)=0.375という比率が算出される。そうすると、物理サーバXでは、200Mbps×0.625=125Mbpsという最低レートが算出され、物理サーバYでは、200Mbps×0.375=75Mbpsという最低レートが算出される。
【0071】
そうなると、物理サーバXでは、図22に示すように、読み出しレートsは、1Gbpsを1/2にした500Mbpsに設定される。これで輻輳が解消されないと、読み出しレートsは、さらに500Mbpsを1/2にした250Mbpsに設定される。ここで、実際の読み出しレートtも250Mbpsに下げられることになるので、物理サーバZについてのキュー2224にパケットが多く積まれることになる。もし、まだ輻輳が解消されないと、読み出しレートsは、250Mbpsを1/2にした125Mbpsに設定されるが、これは最低レートであるから、これ以上読み出しレートが下げられることはない。
【0072】
同様に、物理サーバYでは、図23に示すように、輻輳が発生していないと判断されていた間は、変更レート設定部214によって設定される読み出しレートuは300Mbpsから1Gbpsまで上昇する。但し、仮想マシンVMa4が出力するデータの送信レートは300Mbpsのままであるから、実線vで示すように実際の読み出しレートは300Mbpsで一定になる。しかし、輻輳発生が検出されると、読み出しレートuは、1Gbpsを1/2にした500Mbpsに設定される。これで輻輳が解消されないと、読み出しレートuは、さらに500Mbpsを1/2にした250Mbpsに設定される。ここで、実際の読み出しレートvも250Mbpsに下げられることになるので、物理サーバZについてのキューにパケットが多く積まれることになる。もし、まだ輻輳が解消されないと、読み出しレートuは、250Mbpsを1/2にした125Mbpsに設定される。さらに、まだ輻輳が解消されないと、読み出しレートuは、下限レート75Mbpsに設定される。
【0073】
最悪の場合においても、テナントAに着目すると、物理サーバXは125Mbpsでデータを送信でき、物理サーバYは75Mbpsでデータを送信できるので、合計200Mbpsとなり、テナントAについての最低保証レートを確保できている。すなわち、最悪の場合においても、最低保証レートを確保できる。
【0074】
一方、スイッチSW1とスイッチSW2との間のリンクでは、テナントAの200Mbps+テナントBの400Mbps=600Mbpsとなり、輻輳も解消されている。各リンクの収容設計を適切に行っていれば、上で述べた処理を実施すれば、輻輳も解消される。
【0075】
なお、上では説明を分かり易くするために送信側と受信側とを分けたが、実際には、両方の構成を各物理マシンが有することになる。
【0076】
[実施の形態3]
第2の実施の形態では、制御パケットである要求パケットには送信時刻のデータが含まれる例を示したが、物理サーバ間で時計にずれがある場合もある。そのため、本実施の形態のような処理を行ってもよい。
【0077】
具体的には、図24に示すように、要求パケットの受信間隔を受信側の物理サーバで測定し、連続N回、要求パケットの送信間隔Tで要求パケットを受信できた場合には、ネットワークには輻輳が発生していないと推定する。これで正常な通信状態が得られたものとして、N回目の受信時刻Tb0を基準にして、送信間隔Tで、到着予定時刻Tb1乃至Tb7(ここでは7であるが一般的には整数m)を生成する。この到着予定時刻を基準に実際の受信時刻との差によって片方向遅延時間を推定する。
【0078】
具体的には、図25に示すように、送信側の物理サーバでは、要求パケットp1乃至p6を送信間隔Tで送信しているが、ネットワークに輻輳がない場合でも、ネットワークにおける遅延があるので、要求パケットの到着予定時刻は受信側の送信時刻よりも後ろにずれる。さらに、実際にはネットワークの状態によって遅延が生ずる場合があるので、要求パケットp1乃至p6の実際の受信時刻は到着予定時刻とはずれが生ずる。このずれを片方向遅延時間d1乃至d5として用いる。なお、図のスペースの関係で要求パケットp6の受信時刻については示されていない。また、応答パケットは、実際の受信時刻の後速やかに送信される。
【0079】
図16における輻輳検出部333は、上で述べたように片方向遅延時間を算出するために、図26に示すような処理を実施する。
【0080】
輻輳検出部333は、要求パケットを受信した場合には(ステップS51:Yesルート)、(要求パケットの前回受信時刻−今回受信時刻)によって到着間隔を算出する(ステップS53)。なお、要求パケット以外のパケットであれば(ステップS51:Noルート)、要求パケットの受信まで待機する。また、輻輳検出部333は、前回受信時刻に、今回受信時刻を設定する(ステップS55)。
【0081】
そうすると、輻輳検出部333は、|到着間隔−送信間隔T|が許容時間β以下であるか判断する(ステップS57)。許容時間βは、許容可能な到着間隔の振れ幅を示す時間である。|到着間隔−送信間隔T|が許容時間β以下でなければ、最初からやり直すため、輻輳検出部333は、カウンタTcntを0に初期化する(ステップS65)。そして、処理終了でなければ(ステップS67:Noルート)、ステップS51に戻る。一方、処理終了であれば(ステップS67:Yesルート)、処理を終了する。
【0082】
一方、|到着間隔−送信間隔T|が許容時間β以下であれば、輻輳検出部333は、カウンタTcntを1インクリメントして(ステップS59)、カウンタTcntが閾値Nに達したか判断する(ステップS61)。Tcntが閾値Nに達していない場合にはステップS67に移行する。一方、Tcntが閾値Nに達した場合には、輻輳検出部333は、今回受信時刻を基準に、到着予定時刻を送信間隔Tに間隔で設定する(ステップS63)。その後は、この到着予定時刻と実際の受信時刻との差で片方向遅延時間を算出する。
【0083】
以上のような処理を実施すれば、物理サーバ間で時刻ずれが存在している場合であっても、片方向遅延時間を正確に推定できるようになる。
【0084】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で述べた機能ブロック図は一例であり、必ずしも実際のプログラムモジュール構成と一致しない場合もある。さらに、処理フローについても処理結果が変わらない限り、ステップの順番を入れ替えたり、並列実行するようにしても良い。
【0085】
なお、上で述べた物理マシン及び物理サーバは、コンピュータ装置であって、図27に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0086】
以上述べた本実施の形態をまとめると、以下のようになる。
【0087】
本実施の形態に係る制御方法は、(A)第1の物理コンピュータ(物理マシン又は物理サーバとも呼ぶ)において実行されている1又は複数の仮想マシンが属するグループについて、第2の物理コンピュータに送信するデータの送信レートを測定する第1のステップと、(B)第1のステップで測定された送信レートを含む要求パケットを、第2の物理コンピュータに送信する第2のステップと、(C)第2の物理コンピュータから、上記グループについての比率と輻輳発生を判断するためのデータとを含む、要求パケットの応答パケットを受信する第3のステップと、(D)輻輳発生を判断するためのデータにより輻輳発生が検出された場合には、上記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上となるように、上記グループに属する1又は複数の仮想マシンが第2の物理コンピュータ宛に出力するデータの出力レートを下げる第4のステップとを含む。
【0088】
グループに予め設定されている出力レートが最低保証レートであるとすると、同一グループに属する仮想マシンを実行している複数の物理コンピュータが第2の物理コンピュータ宛にデータを送信していても、全体でも送信レートが最低保証レートを下回ることがないように制御できる。
【0089】
なお、本実施の形態に係る制御方法は、(E)第3の物理コンピュータから、当該第3の物理コンピュータにおいて実行されている仮想マシンが属する第2のグループについて測定された第2の送信レートを含む第2の要求パケットを受信する第5のステップと、(F)第2の要求パケットから第1の物理コンピュータと第3の物理コンピュータとの間の輻輳発生を判断するためのデータを第2のグループについて生成する第6のステップと、(G)他の物理コンピュータから受信した要求パケットに含まれる、第2のグループについての第3の送信レートの総和と第2の送信レートとの和に対する第2の送信レートの比から決定される、第2のグループについての比率を算出する第7のステップと、(H)第2のグループについての比率と上記輻輳発生を判断するためのデータとを含む応答パケットを生成して、第3の物理コンピュータに送信する第8のステップとをさらに含むようにしても良い。
【0090】
このようにすれば、第3の物理コンピュータでは、輻輳時にも、第2のグループについて最低保証レートを確保できるように、送信レートの制御を行うことができるようになる。
【0091】
なお、上で述べた比率が、他の物理コンピュータから受信した要求パケットに含まれる、上記グループについての送信レートの総和と上記送信レートとの和に対する上記送信レートの比率である場合もある。
【0092】
また、上記輻輳発生を判断するためのデータが、片方向遅延時間である場合もある。この場合、片方向遅延時間が閾値を超えた場合に、輻輳発生が検出されたと判断するようにしても良い。なお、他の方法にて輻輳の発生を検出しても良い。また、輻輳発生を判断するためのデータは、輻輳の有無を表すフラグなどであっても良い。
【0093】
さらに、本実施の形態に係る制御方法は、上記輻輳発生を判断するためのデータにより輻輳発生が検出されない場合には、上記グループに属する1又は複数の仮想マシンが第2の物理コンピュータ宛に出力するデータの送信レートを上げる第9のステップをさらに含むようにしても良い。送信レートを上げずに、維持しても良い。
【0094】
上で述べた第6のステップが、第3の物理コンピュータから第1の物理コンピュータまでの間に輻輳が発生しないことが確認できた後に第2の要求パケットを受信した時刻から第2の要求パケットの送信間隔後を次の第2の要求パケットの到着予測時刻に設定し、次の第2の要求パケットの実際の受信時刻と到着予測時刻との差を算出するステップを含むようにしても良い。このようにすれば正確に片方向遅延時間を算出することができるようになる。
【0095】
本実施の形態の第2の態様に係る制御方法は、(A)第1の物理コンピュータにおいて、第2の物理コンピュータから、当該第2の物理コンピュータにおいて実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する第1のステップと、(B)要求パケットから第2の物理コンピュータと第1の物理コンピュータとの間の輻輳発生を判断するためのデータを上記グループについて生成する第2のステップと、(C)他の物理コンピュータから受信した要求パケットに含まれる、上記グループについての第2の送信レートの総和と上記送信レートとの和に対する上記送信レートの比を算出することで、上記グループについての比率を算出する第3のステップと、(D)上記グループについての比率と上記輻輳発生を判断するためのデータとを含む応答パケットを生成して、第2の物理コンピュータに送信する第4のステップとを含む。
【0096】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0097】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0098】
(付記1)
第1の物理コンピュータにおいて実行されている1又は複数の仮想マシンが属するグループについて、第2の物理コンピュータに送信するデータの送信レートを測定する第1の処理と、
前記第1の処理で測定された前記送信レートを含む要求パケットを、前記第2の物理コンピュータに送信する第2の処理と、
前記第2の物理コンピュータから、前記グループについての比率と、輻輳発生の判断に用いられる第1のデータとを含む応答パケットを受信する第3の処理と、
前記第1のデータに基づき輻輳発生が検出された場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の物理コンピュータ宛に出力するデータの出力レートを、前記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって、現在の出力レートよりも低い出力レートに下げる第4の処理と、
を、前記第1の物理コンピュータに実行させるプログラム。
【0099】
(付記2)
第3の物理コンピュータから、当該第3の物理コンピュータにおいて実行されている仮想マシンが属する第2のグループについて測定された第2の送信レートを含む第2の要求パケットを受信する第5の処理と、
前記第2の要求パケットから、前記第1の物理コンピュータと前記第3の物理コンピュータとの間の輻輳発生の判断に用いられる第2のデータを前記第2のグループについて生成する第6の処理と、
他の物理コンピュータから受信した要求パケットに含まれる、前記第2のグループについての第3の送信レートの総和と前記第2の送信レートとの和に対する前記第2の送信レートの比から決定される、前記第2のグループについての比率を算出する第7の処理と、
前記第2のグループについての比率と前記第2のデータとを含む応答パケットを生成して、前記第3の物理コンピュータに送信する第8の処理と、
をさらに、前記第1の物理コンピュータに実行させる付記1記載のプログラム。
【0100】
(付記3)
前記比率が、他の物理コンピュータから受信した要求パケットに含まれる、前記グループについての送信レートの総和と前記第1の物理コンピュータから受信した前記要求パケットに含まれる前記送信レートとの和に対する当該送信レートの比率である
付記1又は2記載のプログラム。
【0101】
(付記4)
前記第1のデータが、片方向遅延時間であり、
前記片方向遅延時間が閾値を超えた場合に、輻輳発生が検出されたと判断する
付記1乃至3のいずれか1つ記載のプログラム。
【0102】
(付記5)
前記第1のデータに基づき輻輳発生が検出されない場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の物理コンピュータ宛に出力するデータの送信レートを上げる第9の処理
をさらに、前記第1の物理コンピュータに実行させる付記1乃至4のいずれか1つ記載のプログラム。
【0103】
(付記6)
前記第6の処理が、
前記第3の物理コンピュータから前記第1の物理コンピュータまでの間に輻輳が発生しないことが確認できた後に前記第2の要求パケットを受信した時刻から前記第2の要求パケットの送信間隔後を次の第2の要求パケットの到着予測時刻に設定し、前記次の第2の要求パケットの実際の受信時刻と前記到着予測時刻との差を算出する処理
を含む付記2記載のプログラム。
【0104】
(付記7)
第1の物理コンピュータにおいて、第2の物理コンピュータから、当該第2の物理コンピュータにおいて実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する第1の処理と、
前記要求パケットから、前記第2の物理コンピュータと前記第1の物理コンピュータとの間の輻輳発生の判断に用いられるデータを、前記グループについて生成する第2の処理と、
他の物理コンピュータから受信した要求パケットに含まれる、前記グループについての第2の送信レートの総和と前記送信レートとの和に対する前記送信レートの比を算出することで、前記グループについての比率を算出する第3の処理と、
前記グループについての比率と前記データとを含む応答パケットを生成して、前記第2の物理コンピュータに送信する第4の処理と、
を、前記第1の物理コンピュータに実行させるプログラム。
【0105】
(付記8)
第1の物理コンピュータにおいて実行されている1又は複数の仮想マシンが属するグループについて、第2の物理コンピュータに送信するデータの送信レートを測定する第1の処理と、
前記第1の処理で測定された前記送信レートを含む要求パケットを、前記第2の物理コンピュータに送信する第2の処理と、
前記第2の物理コンピュータから、前記グループについての比率と、輻輳発生の判断に用いられる第1のデータとを含む応答パケットを受信する第3の処理と、
前記第1のデータに基づき輻輳発生が検出された場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の物理コンピュータ宛に出力するデータの出力レートを、前記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって、現在の出力レートよりも低い出力レートに下げる第4の処理と、
を、前記第1の物理コンピュータが実行する制御方法。
【0106】
(付記9)
第1の物理コンピュータにおいて、第2の物理コンピュータから、当該第2の物理コンピュータにおいて実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する第1の処理と、
前記要求パケットから、前記第2の物理コンピュータと前記第1の物理コンピュータとの間の輻輳発生の判断に用いられるデータを、前記グループについて生成する第2の処理と、
他の物理コンピュータから受信した要求パケットに含まれる、前記グループについての第2の送信レートの総和と前記送信レートとの和に対する前記送信レートの比を算出することで、前記グループについての比率を算出する第3の処理と、
前記グループについての比率と前記データとを含む応答パケットを生成して、前記第2の物理コンピュータに送信する第4の処理と、
を、前記第1の物理コンピュータが実行する制御方法。
【0107】
(付記10)
1又は複数の仮想マシンを実行している情報処理装置であって、
前記1又は複数の仮想マシンが属するグループについて、第2の情報処理装置に送信するデータの送信レートを測定する測定部と、
前記測定部で測定された前記送信レートを含む要求パケットを、前記第2の情報処理装置に送信する送信部と、
前記第2の情報処理装置から、前記グループについての比率と、輻輳発生の判断に用いられるデータとを含む応答パケットを受信する受信部と、
前記データに基づき輻輳発生が検出された場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の情報処理装置宛に出力するデータの出力レートを、前記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって、現在の出力レートよりも低い出力レートに下げるように制御する変更部と、
を有する情報処理装置。
【0108】
(付記11)
情報処理装置であって、
第2の情報処理装置から、当該第2の情報処理装置において実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する受信部と、
前記要求パケットから、前記第2の情報処理装置と前記情報処理装置との間の輻輳発生の判断に用いられるデータを、前記グループについて生成する生成部と、
他の情報処理装置から受信した要求パケットに含まれる、前記グループについての第2の送信レートの総和と前記送信レートとの和に対する前記送信レートの比を算出することで、前記グループについての比率を算出する算出部と、
前記グループについての比率と前記データとを含む応答パケットを生成して、前記第2の情報処理装置に送信する送信部と、
を情報処理装置。
【符号の説明】
【0109】
1100 テナントAの論理構成部
1120 仮想SW
1111 分配部
1112 キュー
1113 出力処理部
1000 制御部
1010 測定部
1020 変更部
1030 送信部
1040 受信部
3100 グループAの論理構成部
3110 仮想SW
3000 制御部
3010 受信部
3020 生成部
3030 算出部
3040 データ格納部
3050 送信部
210 制御部
220 テナントAの論理構成部
211 送信レート測定部
212 要求パケット送信部
213 応答パケット受信部
214 レート変更部
215 データ格納部
221 仮想スイッチ
222 通信部
2221 分配部
2222,2224 キュー
2223,2225 読み出し部
2226 セレクタ
310 テナントAの論理構成部
320 テナントBの論理構成部
330 制御部
331 要求パケット受信部
332 比率算出部
333 輻輳検出部
334 データ格納部
335 応答パケット送信部

【特許請求の範囲】
【請求項1】
第1の物理コンピュータにおいて実行されている1又は複数の仮想マシンが属するグループについて、第2の物理コンピュータに送信するデータの送信レートを測定する第1の処理と、
前記第1の処理で測定された前記送信レートを含む要求パケットを、前記第2の物理コンピュータに送信する第2の処理と、
前記第2の物理コンピュータから、前記グループについての比率と、輻輳発生の判断に用いられる第1のデータとを含む応答パケットを受信する第3の処理と、
前記第1のデータに基づき輻輳発生が検出された場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の物理コンピュータ宛に出力するデータの出力レートを、前記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって、現在の出力レートよりも低い出力レートに下げる第4の処理と、
を、前記第1の物理コンピュータに実行させるプログラム。
【請求項2】
第3の物理コンピュータから、当該第3の物理コンピュータにおいて実行されている仮想マシンが属する第2のグループについて測定された第2の送信レートを含む第2の要求パケットを受信する第5の処理と、
前記第2の要求パケットから、前記第1の物理コンピュータと前記第3の物理コンピュータとの間の輻輳発生の判断に用いられる第2のデータを前記第2のグループについて生成する第6の処理と、
他の物理コンピュータから受信した要求パケットに含まれる、前記第2のグループについての第3の送信レートの総和と前記第2の送信レートとの和に対する前記第2の送信レートの比から決定される、前記第2のグループについての比率を算出する第7の処理と、
前記第2のグループについての比率と前記第2のデータとを含む応答パケットを生成して、前記第3の物理コンピュータに送信する第8の処理と、
をさらに、前記第1の物理コンピュータに実行させる請求項1記載のプログラム。
【請求項3】
前記比率が、他の物理コンピュータから受信した要求パケットに含まれる、前記グループについての送信レートの総和と前記第1の物理コンピュータから受信した前記要求パケットに含まれる前記送信レートとの和に対する当該送信レートの比率である
請求項1又は2記載のプログラム。
【請求項4】
前記第1のデータが、片方向遅延時間であり、
前記片方向遅延時間が閾値を超えた場合に、輻輳発生が検出されたと判断する
請求項1乃至3のいずれか1つ記載のプログラム。
【請求項5】
前記第1のデータに基づき輻輳発生が検出されない場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の物理コンピュータ宛に出力するデータの送信レートを上げる第9の処理
をさらに、前記第1の物理コンピュータに実行させる請求項1乃至4のいずれか1つ記載のプログラム。
【請求項6】
前記第6の処理が、
前記第3の物理コンピュータから前記第1の物理コンピュータまでの間に輻輳が発生しないことが確認できた後に前記第2の要求パケットを受信した時刻から前記第2の要求パケットの送信間隔後を次の第2の要求パケットの到着予測時刻に設定し、前記次の第2の要求パケットの実際の受信時刻と前記到着予測時刻との差を算出する処理
を含む請求項2記載のプログラム。
【請求項7】
第1の物理コンピュータにおいて、第2の物理コンピュータから、当該第2の物理コンピュータにおいて実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する第1の処理と、
前記要求パケットから、前記第2の物理コンピュータと前記第1の物理コンピュータとの間の輻輳発生の判断に用いられるデータを、前記グループについて生成する第2の処理と、
他の物理コンピュータから受信した要求パケットに含まれる、前記グループについての第2の送信レートの総和と前記送信レートとの和に対する前記送信レートの比を算出することで、前記グループについての比率を算出する第3の処理と、
前記グループについての比率と前記データとを含む応答パケットを生成して、前記第2の物理コンピュータに送信する第4の処理と、
を、前記第1の物理コンピュータに実行させるプログラム。
【請求項8】
第1の物理コンピュータにおいて実行されている1又は複数の仮想マシンが属するグループについて、第2の物理コンピュータに送信するデータの送信レートを測定する第1の処理と、
前記第1の処理で測定された前記送信レートを含む要求パケットを、前記第2の物理コンピュータに送信する第2の処理と、
前記第2の物理コンピュータから、前記グループについての比率と、輻輳発生の判断に用いられる第1のデータとを含む応答パケットを受信する第3の処理と、
前記第1のデータに基づき輻輳発生が検出された場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の物理コンピュータ宛に出力するデータの出力レートを、前記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって、現在の出力レートよりも低い出力レートに下げる第4の処理と、
を、前記第1の物理コンピュータが実行する制御方法。
【請求項9】
第1の物理コンピュータにおいて、第2の物理コンピュータから、当該第2の物理コンピュータにおいて実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する第1の処理と、
前記要求パケットから、前記第2の物理コンピュータと前記第1の物理コンピュータとの間の輻輳発生の判断に用いられるデータを、前記グループについて生成する第2の処理と、
他の物理コンピュータから受信した要求パケットに含まれる、前記グループについての第2の送信レートの総和と前記送信レートとの和に対する前記送信レートの比を算出することで、前記グループについての比率を算出する第3の処理と、
前記グループについての比率と前記データとを含む応答パケットを生成して、前記第2の物理コンピュータに送信する第4の処理と、
を、前記第1の物理コンピュータが実行する制御方法。
【請求項10】
1又は複数の仮想マシンを実行している情報処理装置であって、
前記1又は複数の仮想マシンが属するグループについて、第2の情報処理装置に送信するデータの送信レートを測定する測定部と、
前記測定部で測定された前記送信レートを含む要求パケットを、前記第2の情報処理装置に送信する送信部と、
前記第2の情報処理装置から、前記グループについての比率と、輻輳発生の判断に用いられるデータとを含む応答パケットを受信する受信部と、
前記データに基づき輻輳発生が検出された場合には、前記グループに属する前記1又は複数の仮想マシンが前記第2の情報処理装置宛に出力するデータの出力レートを、前記グループについての比率と当該グループに予め設定されている送信レートとの積により決定される下限値以上の出力レートであって、現在の出力レートよりも低い出力レートに下げるように制御する変更部と、
を有する情報処理装置。
【請求項11】
情報処理装置であって、
第2の情報処理装置から、当該第2の情報処理装置において実行されている仮想マシンが属するグループについて測定された送信レートを含む要求パケットを受信する受信部と、
前記要求パケットから、前記第2の情報処理装置と前記情報処理装置との間の輻輳発生の判断に用いられるデータを、前記グループについて生成する生成部と、
他の情報処理装置から受信した要求パケットに含まれる、前記グループについての第2の送信レートの総和と前記送信レートとの和に対する前記送信レートの比を算出することで、前記グループについての比率を算出する算出部と、
前記グループについての比率と前記データとを含む応答パケットを生成して、前記第2の情報処理装置に送信する送信部と、
を情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


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