特許第6430462号(P6430462)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6430462バーチャルマシン通信トラフィックを成形すること
<>
  • 特許6430462-バーチャルマシン通信トラフィックを成形すること 図000013
  • 特許6430462-バーチャルマシン通信トラフィックを成形すること 図000014
  • 特許6430462-バーチャルマシン通信トラフィックを成形すること 図000015
  • 特許6430462-バーチャルマシン通信トラフィックを成形すること 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6430462
(24)【登録日】2018年11月9日
(45)【発行日】2018年11月28日
(54)【発明の名称】バーチャルマシン通信トラフィックを成形すること
(51)【国際特許分類】
   H04L 12/823 20130101AFI20181119BHJP
   H04L 12/813 20130101ALI20181119BHJP
【FI】
   H04L12/823
   H04L12/813
【請求項の数】5
【全頁数】15
(21)【出願番号】特願2016-226166(P2016-226166)
(22)【出願日】2016年11月21日
(62)【分割の表示】特願2015-162148(P2015-162148)の分割
【原出願日】2011年3月11日
(65)【公開番号】特開2017-46357(P2017-46357A)
(43)【公開日】2017年3月2日
【審査請求日】2016年11月21日
(31)【優先権主張番号】12/724,507
(32)【優先日】2010年3月16日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ディーパック バンサル
(72)【発明者】
【氏名】プリヤンク ラメシュ ウォルケデ
【審査官】 野元 久道
(56)【参考文献】
【文献】 特表2013−523016(JP,A)
【文献】 特表2003−504900(JP,A)
【文献】 特開2000−183965(JP,A)
【文献】 特開2002−318791(JP,A)
【文献】 特開2004−180158(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/823
H04L 12/813
(57)【特許請求の範囲】
【請求項1】
ネットワーク輻輳に基づいて、クラウドコンピューティングプラットフォーム内のバーチャルマシンから送信されたパケットをドロップするためのコンピュータで実施される方法であって、
第1の通信速度のネットワークアクセスを提供するステップであり、ドロップ確率が第1のレベルであるステップと、
前記第1のレベルでネットワーク通信トラフィックをドロップするステップと、
前記ネットワーク通信トラフィックに基づいて、ネットワーク輻輳を検出するステップと、
前記検出されたネットワーク輻輳に基づいて、前記第1の通信速度を減少させるステップと、
前記ドロップ確率を第2のレベルに増大させるステップと、
前記第2のレベルでネットワーク通信トラフィックをドロップするステップとを含み、
前記第1の通信速度は、平均送信速度(ASR)であり、
ASR=α*previous_ASR+(1−α)*current_SRであり、「α」は、定数であり、「previous_ASR」は、先に評価されたASRであり、「current_SR」は、現在の送信速度であり、
前記第2のレベルのドロップ確率は、
【数11】
によって評価され、「β」は、定数であり、所望される送信速度(DSR)が、サービスレベル合意において設定されることを特徴とする方法。
【請求項2】
前記第1のレベルは、バーチャルマシンに関するサービスレベル合意において設定されることを特徴とする請求項1に記載のコンピュータで実施される方法。
【請求項3】
前記第2のレベルは、減少後の第1の通信速度の指数平均の関数として評価されることを特徴とする請求項1に記載のコンピュータで実施される方法。
【請求項4】
前記第2のレベルは、減少後の第1の通信速度の中央平均の関数として評価されることを特徴とする請求項1に記載のコンピュータで実施される方法。
【請求項5】
前記第1の通信速度は、送信速度又は受信速度の1つであることを特徴とする請求項1に記載のコンピュータで実施される方法。
【発明の詳細な説明】
【背景技術】
【0001】
通常、クラウドコンピューティングプラットフォームは、インターネットアクセス可能な仮想環境においてソフトウェアアプリケーションをホスティングする。クラウドコンピューティングプラットフォームは、組織が第三者によって設計および保守されたデータセンタを使用することを可能にする。従来の仮想環境は、要求されたハードウェアリソース、ソフトウェアアプリケーションリソース、ネットワークリソース、および記憶リソースを小規模組織または中規模組織に供給する。仮想環境は、アプリケーションセキュリティ、アプリケーション信頼性、アプリケーションスケーラビリティ、およびアプリケーション可用性も提供する。
【0002】
従来のデータセンタは、物理コンピューティングリソース、物理記憶リソース、および物理ネットワークリソースを提供する。データセンタ内の物理リソースは、仮想化されて、アプリケーションプログラミングインターフェースの集合として組織に公表される。組織は、その独自のハードウェアリソースもしくはソフトウェアリソースを維持する必要がなく、または信頼できるスケーラブルなデータセンタを維持する必要もない。
【発明の概要】
【0003】
組織は、ソフトウェアまたは基礎となる物理ハードウェアの詳細を知ることなく、仮想環境を介してこれらの物理リソースに効率的にアクセスすることができる。従来のクラウドコンピューティングプラットフォームでは、ハードウェアリソースおよびソフトウェアリソースは、互いを信用しない組織によって共有される場合がある。いずれか1つの組織に対するサービスの拒否を防止するために、従来のクラウドプラットフォームは、共有されるリソースに対する公平なアクセスを維持する手順を提供する。手順の大部分は、かなりの量の状態情報を必要とし、これは、クラウドコンピューティングプラットフォーム内の計算オーバヘッドおよび計算コストを増大させる。
【0004】
例えば、共有手順は、リーキーバケット(leaky bucket)、トークンバケット、およびフェアキューイングを含むことが可能である。リーキーバケット手順は、通信メッセージを待ち行列内に記憶して、一定速度で通信メッセージを送信する。待ち行列が一杯であるとき、通信メッセージは廃棄される。トークンバケット手順は、通信メッセージを待ち行列内に記憶して、その待ち行列に関連するトークンの数に基づいた速度でその通信を送信する。通信メッセージが所定の時間にわたってバケット内で待機する場合、通信メッセージを廃棄することができる。フェアキューイング手順は、通信メッセージを待ち行列内に記憶して、他の通信セッションに関する他の待ち行列が受ける速度に等しいかまたは当該速度に比例した速度で通信メッセージを送信する。これらの手順は、クラウド内でリソースを共有するための機構を提供するが、待ち行列、およびそれらの待ち行列に関連する状態を維持する必要があるため、高いCPUオーバヘッドを有する。
【0005】
本発明の実施形態は、ある意味で、クラウドコンピューティングプラットフォーム、コンピュータ可読記録媒体、およびクラウドコンピューティングプラットフォーム内のバーチャルマシンを成形するコンピュータで実施される方法に関する。クラウドコンピューティングプラットフォームは、通信ネットワークに接続されたコントローラおよびバーチャルマシンを含む。コントローラは、最小オーバヘッドを用いて通信トラフィックを成形するためのステートレス(stateless)機構を提供する。
【0006】
コントローラは、通信ネットワーク上のトラフィックを監視する。コントローラは、通信ネットワークに接続されたバーチャルマシンに関する平均通信速度を計算する。次に、バーチャルマシンに関して所望される送信速度(sending rate)がコントローラによって取得される。コントローラは、平均通信速度に基づいて、バーチャルマシンに関するドロップ確率(drop probability)を決定する。ネットワーク内の通信メッセージは、バーチャルマシンに関するドロップ確率に基づいてドロップされる。
【0007】
この要約は、詳細な説明において下でさらに説明される概念の選択を簡素化された形で紹介するために提供される。この要約は、特許請求される主題の主な特徴もしくは重大な特徴を識別することを意図せず、または特許請求される主題の範囲を決定する際の支援として孤立して使用されることを意図しない。
【図面の簡単な説明】
【0008】
図1】本発明の実施形態による、ある例示的なクラウドコンピューティングプラットフォームを示すネットワーク図である。
図2】本発明の実施形態による、例示的なクラウドコンピューティングプラットフォーム内に例示的なコントローラおよびバーチャルマシンを有する通信システムを例示するブロック図である。
図3】本発明の実施形態による、バーチャルマシン通信トラフィックを管理するためのある例示的な方法を示す論理図である。
図4】本発明の実施形態による、バーチャルマシン通信トラフィックを廃棄するためのある例示的な方法を示す論理図である。
【発明を実施するための形態】
【0009】
本特許は、法定要件を満たすための特異性を用いて、特許に関する主題を記述する。しかし、記述自体は、本特許の範囲を限定することを意図しない。むしろ、本発明者らは、他の現行技術もしくは将来の技術と共に、異なるステップまたは本特許に記述されるステップに類似したステップの組合せを含めるために、特許請求される主題を他の様式で実施することも可能であることを企図している。さらに、「ステップ」および「ブロック」という用語は、本明細書において、用いられる方法の異なる要素を暗示するために使用される場合があるが、個々のステップの順序が明示的に記述されていない限り、かつそのように記述されるときを除いて、これらの用語は、本明細書で開示される様々なステップの間のまたはそれらの2つのステップ同士の間の任意の特定の順序を暗示するとして解釈すべきではない。さらに、実施形態は、その全体が参照により本明細書に組み込まれている、添付の図面を参照して下で詳細に説明される。
【0010】
本明細書で利用される場合、「構成要素」という用語は、ハードウェア、ソフトウェア、およびファームウェアの任意の組合せを指す。
【0011】
クラウドコンピューティングプラットフォームは、バーチャルマシン間のハードウェアリソースおよびソフトウェアリソースの共有を可能にする。いくつかの実施形態では、クラウドコンピューティングプラットフォーム内のリソーススターベーションを防止するために、バーチャルマシントラフィックは制限される。クラウドコンピューティングプラットフォームは、バーチャルマシンによって利用される帯域幅を制限するトラフィック成形手順を実行する。したがって、クラウドコンピューティングプラットフォームは、共有されるリソースを他のバーチャルマシンによるアクセス性を低減させるために過剰リソースにアクセスすることを試みる悪意のあるバーチャルマシンから保護する。クラウドコンピューティングプラットフォームは、共有されるリソースを悪意のないバーチャルマシンによる過剰ネットワークリソースの不注意な使用からも保護する。
【0012】
いくつかの実施形態では、クラウドコンピューティングプラットフォームは、バーチャルマシンに関する帯域幅制限を実施するために、待ち行列のないステートレス機構を利用する。この機構は、それぞれのバーチャルマシンに関するオーバヘッドを低く維持する。一実施形態では、バーチャルマシンに関する通信メッセージは、伝送制御プロトコル(TCP)通信メッセージ、すなわち、パケットである。
【0013】
帯域幅制限は、クラウドコンピューティングプラットフォームの管理者が、バーチャルマシンとの関係に基づいて、所与のバーチャルマシンに利用可能な帯域幅を設定することを可能にする。例えば、小型バーチャルマシンは、100Mbpsに制限されることが可能であり、大型バーチャルマシンは、1Gbpsに制限されることが可能である。これにより、所望される通信速度をクラウドコンピューティングプラットフォーム内のそれぞれのバーチャルマシンと折衝されたサービスレベル合意内に設定することが可能である。
【0014】
当業者が理解することになるように、クラウドコンピューティングプラットフォームは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを含むことが可能である。ハードウェアは、メモリ内に記憶された命令を実行するように構成されたプロセッサおよびメモリを含む。一実施形態では、これらのメモリは、コンピュータで実施される方法に関するコンピュータ使用可能命令を有するコンピュータプログラム製品を記憶するコンピュータ可読記録媒体を含む。コンピュータ可読記録媒体は、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不可能媒体の両方、ならびにデータベース、スイッチ、および様々なその他のネットワーク装置によって読み取り可能な媒体を含む。ネットワークスイッチ、ネットワークルータ、および関連する構成要素は、それらとの通信手段として、本質的に従来型である。限定ではなく、例として、コンピュータ可読記録媒体は、コンピュータ記憶媒体およびコンピュータ通信媒体を含む。コンピュータ記憶媒体、または機械可読記録媒体は、情報を記憶するための任意の方法または技術の形で実施される媒体を含む。記憶される情報の例は、コンピュータ使用可能命令、データ構造、プログラムモジュール、およびその他の表現を含む。コンピュータ記憶媒体は、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、電気消去可能プログラマブル読出し専用メモリ(EEPROM)、フラッシュメモリまたはその他のメモリ技術、コンパクトディスク読出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、ホログラフィック媒体またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、およびその他の磁気記憶装置を含むが、これらに限定されない。これらのメモリ技術は、データを瞬間的に、一時的に、または永久的に記憶することができる。
【0015】
一実施形態では、クラウドコンピューティングプラットフォームは、クライアント装置に利用可能なクラウドアプリケーションを含む。クライアント装置は、1つまたは複数のバーチャルマシン上でクラウドアプリケーションを実行するために、クラウドコンピューティングプラットフォームにアクセスする。クラウドアプリケーションは、クラウドコンピューティングプラットフォーム内で利用可能な記憶リソースおよび処理リソースを使用して実施される。
【0016】
図1は、本発明の実施形態による、ある例示的なコンピューティングシステム100を示すネットワーク図である。ある実施形態では、図1に示されるコンピューティングシステム100は、単なる例であり、範囲または機能性に関して何らの限定を示唆することを意図しない。本発明の実施形態は、多数の他の構成を用いて動作可能である。図1を参照すると、コンピューティングシステム100は、クラウドコンピューティングプラットフォーム110、クラウドアプリケーション120、およびクライアント装置130を含む。
【0017】
クラウドコンピューティングプラットフォーム110は、クライアント装置130によって要求されたクラウドアプリケーション120を実行するように構成される。クラウドコンピューティングプラットフォーム110は、クラウドアプリケーション120を実行するバーチャルマシンを提供するコンピューティング装置を維持する。クラウドコンピューティングプラットフォームは、アプリケーション情報およびシステム情報を記憶する記憶リソースも含む。クラウドコンピューティングプラットフォーム110は、無線ネットワーク、ローカルエリアネットワーク、有線ネットワーク、またはインターネットなど、通信ネットワークを経由してクライアント装置130に接続する。
【0018】
クラウドアプリケーション120は、クライアント装置130に利用可能である。クラウドコンピューティングプラットフォーム110上で実行されるソフトウェアは、クラウドアプリケーション120を実施する。一実施形態では、クラウドコンピューティングプラットフォーム110によって提供されるバーチャルマシンは、クラウドアプリケーション120を実行する。クラウドアプリケーション120は、編集アプリケーション、ネットワーク管理アプリケーション、財務アプリケーション、またはクライアント装置130によって要求または構築された任意のアプリケーションを含むことが可能であるが、これらに限定されない。いくつかの実施形態では、クラウドアプリケーション120のいくつかの機能性をクライアント装置130上で実行することが可能である。
【0019】
クライアント装置130は、クラウドコンピューティングプラットフォーム110によって提供されるクラウドアプリケーション120と相互作用するためにユーザによって利用される。いくつかの実施形態では、クライアント装置130は、クラウドアプリケーション120にアクセスするために、クラウドコンピューティングプラットフォーム110に登録しなければならない。クラウドコンピューティングプラットフォーム110からのアカウントを有する任意のクライアント装置130は、クラウドアプリケーション120、およびクラウドコンピューティングプラットフォーム110内で提供されるその他のリソースにアクセスすることができる。クライアント装置130は、限定なしに、携帯情報端末、スマートフォン、ラップトップ、パーソナルコンピュータ、ゲームシステム、セットトップボックス、または任意のその他の適切なクライアントコンピューティング装置を含む。クライアント装置130は、クライアント装置130上にユーザ情報およびシステム情報を記憶するためのユーザ情報およびシステム情報の記憶装置を含む。ユーザ情報は、検索履歴、クッキー、およびパスワードを含むことが可能である。システム情報は、インターネットプロトコルアドレス、キャッシュウェブページ、およびシステム利用を含むことが可能である。クライアント装置130は、クラウドアプリケーション120から結果を受信するために、クラウドコンピューティングプラットフォーム110と通信する。
【0020】
したがって、コンピューティングシステム100は、クラウドアプリケーション120をクライアント装置130に提供するクラウドコンピューティングプラットフォーム110を用いて構成される。クラウドアプリケーション120は、クライアント装置130上で複数のローカルクライアントアプリケーションを更新および管理する負担を除去する。
【0021】
いくつかの実施形態では、クラウドコンピューティングプラットフォームは、バーチャルマシン通信トラフィックを成形するコントローラを提供する。コントローラは、それぞれのバーチャルマシンにカウンタを提供する。これらのカウンタは、トラフィックの平均送信速度を追跡することができる。クラウドコンピューティングプラットフォームは、バーチャルマシンに関して指数的に重み付けされた平均送信速度を評価することができる。この平均送信速度に基づいて、それぞれのバーチャルマシンに関するドロップ率がコントローラによって計算される。通信メッセージは、計算された平均送信速度に基づいて、コントローラによって無作為にドロップされる。一実施形態では、バーチャルマシンを統制するサービスレベル合意内に含まれたポリシーを用いてドロップ確率を設定することができる。あるいは、クラウドコンピューティングプラットフォームによって検出されたネットワーク輻輳に基づいて、ドロップ確率をセントラルポリシーによってオンデマンドでトリガすることも可能である。
【0022】
図2は、例示的なクラウドコンピューティングプラットローム内に例示的なコントローラ210およびバーチャルマシン222を有する通信システム200を例示するブロック図である。コントローラ210は、通信ネットワークに接続される。通信ネットワークは、クラウド装置220および記憶リソース230に接続する。
【0023】
コントローラ210は、クラウドアプリケーションを実行するバーチャルマシン222に関連する、通信ネットワーク上の通信トラフィックを監視する。コントローラ210は、通信インターフェース212、廃棄ループ214、プロセッサ216、およびノンスエンジン(nonce engine)218を含む。いくつかの実施形態では、コントローラ210は、バーチャルマシンに関して検出された送る速度(send rates)に基づいてアウトバウンドトラフィックの断片を廃棄することによって、バーチャルマシン通信トラフィックを成形するように構成される。コントローラは、バーチャルマシンまたは通信セッションに関する待ち行列を維持せずに、トラフィックを成形することができる。コントローラ210は、それぞれのバーチャルマシンの送信速度を測定して、決定された確率で廃棄するための1つまたは複数の通信メッセージを選択する。
【0024】
通信インターフェース212は、バーチャルマシン222を実行しているクラウドデバイス220から通信メッセージを受信する。通信インターフェースは、やはり、バーチャルマシン222を実行しているクラウドデバイス220に通信メッセージを送信する。通信インターフェース212は、イーサネット(登録商標)、または非同期転送モード(ATM)インターフェースを含むことが可能であるが、これらに限定されない。コントローラ210は、通信インターフェース212を介して、通信メッセージをクラウドデバイス220に送信することができる。
【0025】
廃棄ループ214は、通信メッセージを廃棄するためにコントローラ210によって使用される。地面に接続されたインターフェースにメッセージを送ることによって通信メッセージを廃棄することができる。コントローラ210が、バーチャルマシン222が指定されたしきい値を超えるドロップ確率を有することを決定するとき、通信メッセージが廃棄ループに送られる。
【0026】
プロセッサ216は、コントローラ210に関する計算を実行する。これらの計算は、バーチャルマシン222に関する通信メッセージを廃棄するかどうかを決定するために、コントローラによって使用される。これらの計算は、平均送信速度、ドロップ確率、およびノンスを評価することを含むことが可能である。これらの計算に基づいて、プロセッサ216は、バーチャルマシン222に関する1つまたは複数の通信メッセージを廃棄するためのフラグを設定することができる。
【0027】
プロセッサ216は、クラウドデバイス220によって実行されるバーチャルマシン222に関する現在の送信速度を取得する。別の実施形態では、プロセッサ216は、通信メッセージのサイズを最後の通信メッセージがバーチャルマシン222からコントローラ210によって受信されてからの間隔で除算することによって、バーチャルマシン222から通信メッセージが受信されるたびに、現在の送信速度を計算することができる。現在の送信速度は、ドロップ確率がバーチャルマシン222に関するサービスレベル合意内に設定されていないとき、バーチャルマシン222に関するドロップ確率を決定するために使用される。サービスレベル合意は、ドロップ確率が設定されているかどうかを決定するために、プロセッサ216がアクセスする記憶リソース230内に記憶される。
【0028】
次に、プロセッサ216は、平均送信速度を計算する。一実施形態では、平均送信速度は、指数平均送信速度(ASR)である。プロセッサは、ASR=α*previous_ASR+(1−α)*current_SRを評価することができ、式中、「α」は、クラウドコンピューティングプラットフォームによって設定され「previous_ASR」は、バーチャルマシンに関して先に評価されたASRであり、「current_SR」は、バーチャルマシンに関して検出された現在の送信速度である。「α」は、有理数である。指数平均化は、他の平均化機能よりも少ないメモリを使用する。いくつかの実施形態では、他の平均化機能、例えば、中央送信速度を使用することが可能である。
【0029】
バーチャルマシン220に関して所望される送信速度は、ドロップ確率を評価するためにアクセスされる。所望される送信速度は、サービスレベル合意内に設定可能である。他の実施形態では、管理者は、ネットワーク輻輳に基づいて、所望される送信速度をリアルタイムで設定することができる。さらに別の実施形態では、所望される送信速度は、ネットワーク上で検出された輻輳に基づいて自動的に設定可能である。所望される送信速度は、通信ネットワーク上の輻輳が増大するにつれて自動的に減少する可能性がある。
【0030】
プロセッサ216はドロップ確率(DP)を計算する。プロセッサは、
【0031】
【数1】
を評価し、「β」は、クラウドコンピューティングプラットフォームによって設定される。βは、廃棄される通信メッセージの数を減少または増大させるためにASR管理者によって設定されることも可能である。βは、0から1に及ぶ。
【0032】
ノンスエンジン218は、乱数生成器である。ノンスエンジン218は、プロセッサ216に関する乱数を生成する。ノンスエンジン218は、プロセッサに最大乱数を提供することも可能である。次に、プロセッサ216は、しきい値として使用されるノンス(η)を生成することができる。プロセッサ216は、
【0033】
【数2】
を評価し、「Random_Number」は、ノンスエンジン218によって生成された乱数であり、「Maximum_Random_Number」は、ノンスエンジン218によって提供された最大乱数である。「Random_Number」および「Maximum_Random_Number」は両方とも有理数である。
【0034】
プロセッサ216は、ノンスをドロップ確率と比較する。ドロップ確率がノンスよりも大きいとき、プロセッサ216は、通信メッセージを廃棄することができる。
【0035】
いくつかの実施形態では、バーチャルマシン222に関するドロップ確率は、ネットワーク輻輳に基づいて、サービスレベル合意によって設定可能である。例えば、コントローラ210によって検出されたネットワーク輻輳が存在しないとき、サービスレベル合意は、平均送信速度が所望される送信速度に設定されるべきであることを示すことができる。したがって、ドロップ確率はゼロである。さらに、バーチャルマシン222は、無制限のリソース利用が可能にされる。コントローラ210によってネットワーク輻輳が検出されたとき、平均送信速度は、輻輳レベル、およびクラウドコンピューティングプラットフォーム内のリソースにアクセスしているバーチャルマシン222の数に応じて、特定の数、例えば、50Mbps、20Mbpsに設定される。
【0036】
記憶リソース230は、それぞれのバーチャルマシン222に関するクラウドアプリケーションおよびサービスレベル合意を記憶する。いくつかの実施形態では、バーチャルマシン222は、複数のサービスレベル合意を有することが可能である。それぞれのサービスレベル合意は、バーチャルマシンによって実行される異なるクラウドアプリケーションに対応することができる。サービスレベル合意は、バーチャルマシン222に関して所望される送信速度、クラウドアプリケーションに関して所望される送信速度、およびクラウドデバイス220に関して所望される送信速度を設定することができる。いくつかの実施形態では、サービスレベル合意は、バーチャルマシン222に関するドロップ確率、クラウドアプリケーションに関するドロップ確率、およびクラウドデバイス220に関するドロップ確率を記憶することも可能である。記憶リソース230は、所望される送信速度またはドロップ確率に関する要求に応答して、サービスレベル合意をコントローラ210に送信することができる。
【0037】
一実施形態では、クラウドコンピューティングプラットフォームは、クラウドデバイス上で実行しているバーチャルマシン上でクラウドアプリケーションを実行する。クラウドコンピューティングプラットフォームは、バーチャルマシンに関する通信トラフィックを成形する。クラウドコンピューティングプラットフォームは、バーチャルマシンに関する通信速度を監視して、それらの通信速度に基づいて、パケットを廃棄する。通信速度は、送信速度および受信速度を含むことが可能である。
【0038】
図3は、バーチャルマシン通信トラフィックを管理するためのある例示的な方法を示す論理図である。この方法は、ステップ310で初期化する。クラウドコンピューティングプラットフォームは、ステップ320において、クラウドコンピューティングプラットフォーム内のバーチャルマシンに関する平均通信速度を維持する。クラウドコンピューティングプラットフォームは、バーチャルマシンに関する指数平均または中央平均を使用することができる。ステップ330において、クラウドコンピューティングプラットフォームは、平均通信速度に応じてバーチャルマシンに関するドロップ確率を計算して、バーチャルマシンに関して所望される通信速度を計算する。所望される通信速度は、バーチャルマシンに関して所望される送信速度を指定するサービスレベル合意を記憶している記憶リソースから取得することができる。あるいは、所望される送信速度は、クラウドコンピューティングプラットフォームの管理者によって設定されることが可能である。
【0039】
クラウドコンピューティングプラットフォームは、クラウドコンピューティングプラットフォーム内のバーチャルマシンに関して所望される通信速度を達成するために、バーチャルマシンに関連する送信通信メッセージまたは受信通信メッセージを制限する。一実施形態では、送信通信メッセージまたは受信通信メッセージを制限することは、クラウドコンピューティングプラットフォームがバーチャルマシンにサービス提供しているネットワーク上に輻輳を検出したときにトリガされる。次に、ステップ340において、クラウドコンピューティングプラットフォームは、バーチャルマシンに関するドロップ確率がクラウドコンピューティングプラットフォームによって生成されたノンスよりも大きいとき、バーチャルマシンに関する通信メッセージを無作為にドロップする。この方法はステップ350で終了する。
【0040】
いくつかの実施形態では、クラウドコンピューティングプラットフォームは、クラウドデバイス上で実行しているバーチャルマシンに関する送信速度に基づいて、通信トラフィックを成形する。クラウドコンピューティングプラットフォームは、ネットワーク輻輳全体を削減するために、通信メッセージをドロップすることができる。クラウドコンピューティングプラットフォームは、通信メッセージをドロップするかどうかを決定するとき、バーチャルマシンに関して合意されたサービスレベルを維持することを試みる。
【0041】
図4は、バーチャルマシン通信トラフィックを廃棄するためのある例示的な方法を示す論理図である。バーチャルマシン通信トラフィックは、伝送制御プロトコル(TCP)によって統制されることが可能である。この方法は、ステップ410で初期化する。ステップ420において、クラウドコンピューティングプラットフォームは、バーチャルマシンの送信速度に関して指数的に重み付けされた平均を計算する。指数的に重み付けされた平均送信速度(ASR)は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって評価され、ASR=α*previous_ASR+(1−α)*current_SRであり、「α」は、クラウドコンピューティングプラットフォームによって設定され、「previous_ASR」は、バーチャルマシンに関して先に評価されたARSであり、「current_SR」は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって検出された現在の送信速度である。
【0042】
ステップ430において、クラウドコンピューティングプラットフォームは、バーチャルマシンに関して所望される送信速度を識別する。所望される送信速度(DSR)は、バーチャルマシンに関するサービスレベル合意内に設定可能である。あるいは、所望される送信速度は、クラウドコンピューティングプラットフォームの管理者によって設定されることが可能である。
【0043】
クラウドコンピューティングプラットフォームは、ステップ440において、バーチャルマシンから送信された通信メッセージに関するドロップ確率も評価する。ドロップ確率(DP)は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって評価され、
【0044】
【数3】
であり、βは、クラウドコンピューティングプラットフォームによって設定される。
【0045】
ステップ450において、クラウドコンピューティングプラットフォームは、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって生成されたノンスがドロップ確率よりも大きいとき、通信メッセージをドロップする。ノンス(η)は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって無作為に生成され、
【0046】
【数4】
であり、「Random_Number」は、クラウドコンピューティングプラットフォームによって生成され、「Maximum_Random_Number」は、クラウドコンピューティングプラットフォームによって設定される。ある実施形態では、通信メッセージはパケットであってよい。この方法は、ステップ460において終了する。
【0047】
要約すると、クラウドコンピューティングプラットフォームは、クラウドデバイス上で実行しているバーチャルマシンに関連する通信トラフィックを成形する。クラウドコンピューティングプラットフォームは、通信速度を監視して、クラウドコンピューティングプラットフォーム内のそれぞれのバーチャルマシンに関する通信の適切な速度を維持することを試みる。バーチャルマシンに関連するサービスレベル合意は、バーチャルマシンに関して維持される適切なサービスレベルを確実にするために、クラウドコンピューティングプラットフォームによって処理される。
【0048】
本発明の実施形態の前述の記述は、例示的であり、構成および実装形態における修正は、本記述の範囲内である。例えば、本発明の実施形態は、一般に、図1〜4に関して記述されているが、それらの記述は例示的である。主題は構造的な特徴または方法論的な動作に特定の言語で記述されているが、添付の請求項で定義される主題は、上で記述された特定の特徴または動作に限定されるとは限らない点を理解されたい。むしろ、上で記述された特定の特徴および動作は、請求項を実施する例示的な形として開示されている。本発明の実施形態の範囲は、したがって、以下の請求項によってだけ限定されることが意図される。
【0049】
本発明の実施例に関し、更に以下の項目を開示する。
【0050】
(1)複数のバーチャルマシンを有するクラウドコンピューティング環境内でバーチャルマシン通信トラフィックを管理するためのコンピュータで実施される方法であって、
前記クラウドコンピューティングプラットフォーム内の前記バーチャルマシンに関する平均通信速度を維持するステップと、
前記平均通信速度および前記バーチャルマシンに関して所望される通信速度に応じて、前記バーチャルマシンに関するドロップ確率を計算するステップと、
前記バーチャルマシンに関するドロップ確率が前記クラウドコンピューティングプラットフォームによって生成されたノンスよりも大きいとき、前記バーチャルマシンに関する通信メッセージを無作為にドロップするステップとを含むことを特徴とする方法。
【0051】
(2)前記クラウドコンピューティングプラットフォーム内のそれぞれのバーチャルマシンに関して前記所望される通信速度を達成するために、前記バーチャルマシンに関する送信通信メッセージまたは受信通信メッセージを制限するステップをさらに含むことを特徴とする(1)に記載のコンピュータで実施される方法。
【0052】
(3)送信通信メッセージまたは受信通信メッセージを前記制限するステップが、前記クラウドコンピューティングプラットフォームが前記バーチャルマシンにサービス提供しているネットワーク上に輻輳を検出したときにトリガされることを特徴とする(2)に記載のコンピュータで実施される方法。
【0053】
(4)前記バーチャルマシンに関する前記通信速度を前記制限するステップが待ち行列なしに実行されることを特徴とする(3)に記載のコンピュータで実施される方法。
【0054】
(5)前記平均通信速度が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって評価された平均送信速度(ASR)であり、
ASR+α*previous_ASR+(1−α)*current_SRであり、「α」は、前記クラウドコンピューティングプラットフォームによって設定され、前記「previous_ASR」は、前記バーチャルマシンに関して先に評価された前記ASRであり、「current_SR」は、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって検出された前記現在の送信速度であることを特徴とする(1)に記載のコンピュータで実施される方法。
【0055】
(6)前記所望される通信速度が、前記バーチャルマシンに関する通信ポリシー内に設定された所望される送信速度(DSR)であることを特徴とする(5)に記載のコンピュータで実施される方法。
【0056】
(7)前記ドロップ確率(DP)が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって評価され、
【0057】
【数5】
であり、βが前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする(6)に記載のコンピュータで実施される方法。
【0058】
(8)前記ノンス(η)が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって無作為に生成され、
【0059】
【数6】
であり、「Random_Number」は、前記クラウドコンピューティングプラットフォームによって生成され、「Maximum_Random_Number」は、前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする(1)に記載のコンピュータで実施される方法。
【0060】
(9)バーチャルマシン通信トラフィックをドロップするための方法を実行するための命令を記憶している1つまたは複数のコンピュータ可読記録媒体であって、前記方法が、
バーチャルマシンの前記送信速度に関して指数的に重み付けされた平均を計算するステップと、
前記バーチャルマシンに関して前記所望される送信速度を識別するステップと、
前記バーチャルマシンから送られた通信メッセージに関するドロップ確率を評価するステップと、
前記バーチャルマシンに関して生成されたノンスが前記ドロップ確率よりも大きいとき、通信メッセージをドロップするステップとを含むことを特徴とするコンピュータ可読記録媒体。
【0061】
(10)前記通信メッセージがパケットであり、前記バーチャルマシン通信トラフィックが、伝送制御プロトコル(TCP)によって統制されることを特徴とする(9)に記載のコンピュータ可読記録媒体。
【0062】
(11)前記指数的に重み付けされた平均送信速度(ASR)が、前記バーチャルマシンに関してクラウドコンピューティングプラットフォームによって評価され、ASR=α*previous_ARS+(1−α)*current_SRであり、「α」は、前記クラウドコンピューティングプラットフォームによって設定され、前記「previous_ASR」は、前記バーチャルマシンに関して先に評価された前記ASRであり、「current_SR」は、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって検出された前記現在の送信速度であることを特徴とする(9)に記載のコンピュータ可読記録媒体。
【0063】
(12)前記所望される送信速度(DSR)が、前記バーチャルマシンに関するサービスレベル合意に設定されることを特徴とする(11)に記載のコンピュータ可読記録媒体。
【0064】
(13)前記ドロップ確率(DP)が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって評価され、
【0065】
【数7】
であり、「β」は、前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする(12)に記載のコンピュータ可読記録媒体。
【0066】
(14)前記ノンス(η)は、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって無作為に生成され、
【0067】
【数8】
であり、「Random_Number」は、前記クラウドコンピューティングプラットフォームによって生成され、「Maximum_Random_Number」は、前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする(1)に記載のコンピュータ可読記録媒体。
【0068】
(15)バーチャルマシンに関する通信トラフィックを成形するように構成されたクラウドコンピューティングプラットフォームであって、
ネットワークを介して通信するバーチャルマシンと、
前記バーチャルマシンに関して生成されたノンスが前記ドロップ確率よりも大きいとき、前記バーチャルマシンに関連する通信メッセージをドロップするように構成されたコントローラとを含み、前記コントローラは、前記バーチャルマシンに関する前記平均送信速度(ASR)を評価し、ASR=α*previous_ARS+(1−α)*current_SRであり、「α」は、前記コントローラによって設定され、前記「previous_ASR」は、前記バーチャルマシンに関して先に評価された前記ASRであり、「current_SR」は、前記バーチャルマシンに関して前記コントローラによって検出された前記現在の送信速度であり、前記コントローラは、前記バーチャルマシンに関する前記ドロップ確率(DP)を評価し、
【0069】
【数9】
であり、「β」は、前記コントローラによって設定され、所望される送信速度(DSR)は、前記バーチャルマシンに関するサービスレベル合意内に設定され、前記バーチャルマシンにサービス提供している前記ネットワークが輻輳している場合、前記コントローラによって使用され、前記コントローラは、前記ノンス(η)を無作為に生成し、
【0070】
【数10】
であり、「Random_Number」は、前記コントローラによって生成され、「Maximum_Random_Number」は、前記コントローラによって設定されることを特徴とするクラウドコンピューティングプラットフォーム。
図1
図2
図3
図4