[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2014526083A - ネットワーク利用の制御 - Google Patents

ネットワーク利用の制御 Download PDF

Info

Publication number
JP2014526083A
JP2014526083A JP2014518571A JP2014518571A JP2014526083A JP 2014526083 A JP2014526083 A JP 2014526083A JP 2014518571 A JP2014518571 A JP 2014518571A JP 2014518571 A JP2014518571 A JP 2014518571A JP 2014526083 A JP2014526083 A JP 2014526083A
Authority
JP
Japan
Prior art keywords
network
application
vms
host
statistics
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014518571A
Other languages
English (en)
Other versions
JP5984926B2 (ja
Inventor
フライズ,ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014526083A publication Critical patent/JP2014526083A/ja
Application granted granted Critical
Publication of JP5984926B2 publication Critical patent/JP5984926B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

任意のアプリケーションのネットワーク利用が、アプリケーションの一部をホストする仮想マシン(VM)を少なくとも含むVMのネットワーク利用統計を追跡することによって制御される。ネットワーク利用制御について、VMは、アプリケーションの要素のためのネットワークプロキシの役割をする。アプリケーションのネットワーク要件に関する仕様が、ネットワーク利用統計に照らして評価される。アプリケーションの或る要素に至る/或る要素からの/或る要素を経由する、ネットワーク容量要件が満たされない場合、1つまたは複数のVMが、その要件を満たすように適合されている。例えば、或るVMを、余分なネットワーク帯域幅を有するホストロケーションまたはネットワークロケーションから移行させてもよい。または、例えば、要件未満のVMに関するネットワーク帯域幅利用可能性を増加させ、適切なホストロケーションまたはネットワークロケーションにおけるVMに関する帯域幅利用可能性を低減することも可能である。したがって、アプリケーションレベルの通信パス要件は、VM適合を使用して満たすことが可能である。

Description

[0001]最新のコンピューティング環境において、分散アプリケーションは、様々なホスト上で実行する、ネットワークを介して協調する、ブラウザーなどのクライアントとインターフェースをとる、データベースサーバーにアクセスする、といったことを行う多数の自律的なユニットから成ることが可能である。ピアツーピアアプリケーション、多階層ウェブアプリケーション、分散ハッシュテーブル、サーバープールまたはサーバークラスターが、分散アプリケーションの例である。そのような分散アプリケーションは、クラウド、データセンターなどにおいて実行し得る。
[0002]ネットワーク通信は、そのようなアプリケーションを効率的に動作させるために必要である。いくつかの事例において、アプリケーションが様々なネットワークパフォーマンス特性、例えば、構成要素間の帯域幅、インターネットに対する、またはインターネット上のクライアントに対する平均スループット、アプリケーションインスタンス当たりの平均帯域幅などを有することが望ましい場合もあり得る。換言すれば、アプリケーションレベルのネットワークパフォーマンス保証を有することが望ましい場合もある。
[0003]しかし、今日まで、そのような保証は達成できていない。ネットワークパフォーマンス保証は、ネットワークレベルで提供されてきた。ルーターが、サービス品質(QoS)保証を与えるのに使用されてきたが、これらの保証は、分散アプリケーション全体に向けられてはいない。換言すれば、帯域幅レベルまたは容量レベルを保証するための通常の手段は、アプリケーションにではなく、データネットワーク自体に向けられている。さらに、分散アプリケーションが実行可能な環境において、異なるアプリケーション間でリソースを共有することなどの問題により、分散アプリケーションを通る通信経路に沿うネットワークリソースを保証することは困難になっている。
[0004]ネットワークリソースプロビジョニングがアプリケーションレベルで提供されてきた可能性がある事例においてさえ、ネットワークリソース要件を獲得する、または維持するのに使用される技法には、伝送レート制御機構、スロットリング機構、および他のネットワーク指向のトラフィック制御機構などの技法が関与してきた。分散アプリケーション要素は、しばしば、仮想マシン(VM)においてホストされるものの、VM技術は、アプリケーションレベルのネットワーク要件を保証するのに役立つように活用されてはいない。
[0005]仮想マシン(VM)技術を使用して分散アプリケーションのためにネットワークリソースを制御することに関係する技法が、以下に説明される。
[0006]以下の概要は、後段の「発明を実施するための形態」で説明されるいくつかの概念を紹介するためにのみ含められるにすぎない。この概要は、包括的ではなく、添付の特許請求の範囲に記載される、特許請求される主題の範囲を線引きすることも意図していない。
[0007]任意のアプリケーションのネットワーク利用は、そのアプリケーションの一部をホストする仮想マシン(VM)を少なくとも含むVMのネットワーク利用統計を追跡することによって制御される。ネットワーク利用制御に関して、VMは、アプリケーションの要素についてネットワークプロキシの役割をする。アプリケーションのネットワーク要件に関する仕様が、ネットワーク利用統計に照らして評価される。アプリケーションの或る要素に至る/或る要素からの/或る要素を経由する、ネットワーク容量要件が満たされない場合、1つまたは複数のVMが、その要件を満たすように適合されている。例えば、或るVMを、余分なネットワーク帯域幅を有するホストロケーションまたはネットワークロケーションから移行させてもよい。または、例えば、要件未満のVMに関するネットワーク帯域幅利用可能性を増加させ、適切なホストロケーションまたはネットワークロケーションにおけるVMに関する帯域幅利用可能性を低減することも可能である。したがって、アプリケーションレベルの通信パス要件は、VM適合を使用して満たすことが可能である。
[0008]付帯的な特徴の多くは、添付の図面に関連して考慮される後段の詳細な説明を参照して、後段で説明される。
[0009]本明細書の説明は、添付の図面に鑑みて読まれる後段の詳細な説明から、よりよく理解され、図面では、同様の参照符号が、付随する説明における同様の部分を指し示すのに使用される。
[0010]例示的な仮想化層を示す図である。 [0011]仮想マシンおよび仮想マシンイメージと関連して仮想化層の処理および対話を示す図である。 [0012]分散アプリケーションの例を示す図である。 [0013]分散アプリケーションの別の例を示す図である。 [0014]仮想マシン(VM)適合を使用して分散アプリケーションに関するネットワーク容量を指定するため、およびネットワーク容量をプロビジョニングするためのシステムを示す図である。 [0015]VMネットワーク報告およびネットワーク使用操作を円滑にする仮想化拡張を伴うホストの例を示す図である。 [0016]図3の例示的な分散アプリケーションと関連して図5のシステムを示す図である。 [0017]VMにおいて実行される分散アプリケーションをホストするホストを示す図である。 [0018]図8の一部分を詳細に示す図である。 [0019]例示的なアプリケーションネットワーク仕様を示す図である。 例示的なアプリケーションネットワーク仕様を示す図である。
概説および仮想化
[0020]以下に説明される実施形態は、VM技術を使用して、動的なネットワーク条件が存在する状態でネットワーク容量をもたらすことに関する。説明は、ハイパーバイザー(hypervisor)などの仮想化構成要素を含む仮想化技術の概説から始まる。分散アプリケーション、および分散アプリケーションの例が、次に説明される。ネットワークプロビジョニングのためにVM技術を使用することの概説がなされ、その後に、関連するVM拡張の説明、およびそれらの拡張がどのように使用されるかの詳細な説明をする。
[0021]図1は、例示的な仮想化層100を示す。コンピューター102が、中央処理装置(CPU)106と、メモリー108と、ネットワークインターフェース110と、不揮発性ストレージ112と、バス、ディスプレイアダプタなどの、図示されない他の構成要素とを含むハードウェア104を有する。仮想化層100は、仮想マシン114の実行を管理し、円滑にする。図1に示されないものの、各仮想マシン114は、通常、関連する仮想ディスクイメージと、ゲストオペレーティングシステムとを有する。簡潔にするため、格納され、さらに仮想マシン114に関連する仮想ディスクイメージから実行される、仮想マシン114のオペレーティングシステム、場合によりアプリケーションソフトウェアは、ときとしてゲストと呼ばれる。便宜上、「ハイパーバイザー」という用語が、様々な形態の仮想化層を指すのに本明細書で使用される。さらに、後段で説明されるように、仮想マシン114が、分散アプリケーションの要素をホストするのに使用される。
[0022]仮想化層100は、Hyper−V Server(商標)、VM Warc ESXサーバー(商標)、Xen、Oracle VM(商標)などの様々な任意の知られている実装形態、または将来の実装形態とすることができる。仮想化層のアーキテクチャーは、仮想マシンモニタ(VMM)がホストオペレーティングシステム上で実行される、ホストされるタイプであっても、ハイパーバイザーなどがコンピューター102のハードウェア104上で直接に実行されるベアメタル(bare−metal、仮想化)タイプであってもよい。本明細書で使用される場合、「仮想マシン」という用語は、任意の特定のハードウェアアーキテクチャー(例えば、x86)をシミュレートして、そのハードウェアアーキテクチャーのためのネイティブコードを実行することができるシステムタイプの仮想マシンを指し、ゲストには、仮想マシンは、ハードウェアマシンとほとんど区別がつかないことが可能である。本明細書で説明される仮想マシンは、Java(登録商標)仮想マシンなどの抽象タイプまたはプロセスタイプの仮想マシンではない。
[0023]仮想化層100は、仮想化層100自体によっても、仮想マシン114によっても、仮想マシン114を管理し、ハードウェア104を共有するという基本機能を実行する。様々な技法のいずれかが、ハードウェア104から仮想マシン114を切り離すのに使用され得る。一実施形態において、仮想化層は、仮想マシン114に対応する様々な切り離された環境(すなわち、パーティションまたはドメイン)をもたらすことが可能である。共有される仮想デバイスドライバ、仮想マシン間通信ファシリティー、および仮想マシン管理API(アプリケーションプログラミングインターフェース)などの仮想化層100のいくらかが、特権のあるパーティションまたはドメインの中で実行されて、コンパクトで効率的なハイパーバイザーを可能にしてもよい。他の実施形態において、仮想マシン管理、およびハードウェア104の整合性のとれた共有のための機能が、一体構造のオンザメタルハイパーバイザーの中に常駐することが可能である。
[0024]図2は、仮想マシン114および仮想マシンイメージ140と関連して仮想化層100のプロセスおよび対話を示す。仮想化層100は、場合により、対応する仮想マシン構成パラメーターに従って、仮想マシン114を開始し、さらに実行するプロセス142を実行する。仮想マシン114(VM)が開始されると、仮想化層は、関連する仮想マシンイメージ140を識別する。実際には、任意の仮想マシンイメージ140が、任意の仮想マシン114によって使用され得る。仮想マシンイメージ140は、仮想化層100のファイルシステム141上に特別にフォーマットされたファイル(例えば、VHD)とすることができる。仮想化層100は、識別された仮想マシンイメージ140をロードする。開始された仮想マシン114は、仮想マシンイメージ140をマウントして、読み取り、おそらく、マスタブートレコードまたは他のブート情報を探し求め、ゲストオペレーティングシステムをブートして、ゲストオペレーティングシステムは実行を始める。
[0025]仮想化層100は、ゲストのカーネルに対するある種の呼び出し、ハイパーコールなどを扱い、基礎をなすハードウェア104に対する仮想マシン114のアクセスを協調させながら、仮想マシン114の実行を管理する。ゲスト、およびゲストのソフトウェアが動作すると、仮想化層100は、仮想ディスクイメージ140上のゲストの状態を保持することが可能であり、ゲスト、またはゲストによって動作されるアプリケーションが「ディスク」にデータを書き込むと、仮想化層100が、そのデータを仮想ディスクイメージ140のフォーマットに変換し、このイメージに書き込む。
[0026]仮想化層100は、仮想マシン114をシャットダウンするためのプロセス144を実行することが可能である。仮想マシン114を停止する命令が受け取られると、仮想マシン114、および仮想マシン114のゲストの状態が、仮想ディスクイメージ140に保存され、さらに実行されている仮想マシン114プロセス(またはパーティション)が削除される。仮想マシン114の仕様は、仮想マシン114の後の再起動のためにそのままであることが可能である。
分散アプリケーション
[0027]図3は、分散アプリケーション160の例を示す。図3の例は、プレゼンテーション層162と、アプリケーション層164と、データ層166とを有する多層アプリケーションである。図示していないものの、この分散アプリケーションは、要素が、ルーター、ブリッジ、スイッチ、ゲートウェイ、ロードバランサーなどの通信ノードを介して通信するデータネットワークにおいて実行される。プレゼンテーション層162は、分散アプリケーション160を使用するクライアントとインターフェースをとるウェブサーバーインスタンス168または他のサーバーもしくはアプリケーションから成る。中間層164が、分散アプリケーション160のメインロジックを実装すること、データベースの中のオブジェクトおよびデータの間で変換を行うこと、クライアント要求をデータベースクエリに変換することなどが可能であるアプリケーションインスタンス170によって形成される。データ層164が、いくつかのデータベースサーバー172、データベースインターフェース、データストア、または他の形態の永続的で、効率的なデータストレージを有することが可能である。ロードバランサー174が、各層における要素にわたって負荷を分散させることが可能である。各層における要素、例えば、ウェブサーバーインスタンス168は、様々な実行状態を有する複製実行可能なまたはソフトウェアスタックである。
[0028]動作の際、分散アプリケーション160が、例えば、クライアント、他のアプリケーション、サービスなどから要求を受信する。これらの要求は、アプリケーションインスタンス170を相手にトランザクション、またはそれ以外で通信を開始することが可能な、ウェブサーバーインスタンス168によって扱われる。次に、アプリケーションインスタンス170が、データベースサーバー172との対話を有することが可能である。
[0029]図3における各実線は、ネットワーク通信の可能なパスを表す。分散アプリケーション160のネットワーク要件に関して、同様の要素の間の実線のうちのいずれか(例えば、パス176)、もしくは線の様々な任意のセット(例えば、パスセット178)(例えば、ウェブサーバー168とロードバランサー174の間の線のすべて)、またはこれらの組合せが、ネットワーク要件が指定され、評価され、さらにプロビジョニング可能な潜在的なポイントである。
[0030]図4は、別の例示的な分散アプリケーションである、ピアツーピアアプリケーション200を示す。複数のピア202が、様々なホスト上で(または様々なゲストにおいて)実行される。各ピア202は、様々な動作状態ではあるが、概して、同様に振る舞い、さらに同一の機能を実行する。ピアツーピアアプリケーション200は、分散ハッシュテーブル、分散ストレージシステム、ネットワークサービスなどであることが可能である。ピアツーピアアプリケーションは、ピア202同士の間の接続を有することが可能である。ピア202は、インターネット204を介して外部エンティティと通信することが可能である。また、ピア202は、リレーショナルデータベース208をもたらすデータベースサーバー206などの様々なサービスを使用することも可能である。ピア202は、外部要求について実質的にサービス提供するために、ならびにピアレベル相互接続の内部メンテナンスのために通信することが可能である。外部要求が、ピア202によって直接に扱われることも、またはそのピアが、その要求についてサービス提供し、応答を戻す他のピア202にその要求を渡すことを可能にする情報を有することも可能になり得る。
[0031]図4などにあるような実線は、要素間のネットワークパスを表す。ピア202間の線は、ピア間ネットワークパスを表し、さらにピアツーピアアプリケーション200に至る線は、任意のピア202または複数のピア202に至るパスを表す。図4などにあるような線のうちのいずれか(例えば、パス210、212)、または線のセット(例えば、パス214)が、ネットワーク容量または帯域幅要件を指定するため、測定された条件に照らして要件を評価するため、および要件を満たすようにVMを調整するための候補ターゲットであることが可能である。
アプリケーションレベルのネットワークプロビジョニング(provisioning)
[0032]図5は、仮想マシン(VM)適合を使用して、分散アプリケーション230に関するネットワーク容量を指定するため、およびネットワーク容量をプロビジョニングするためのシステムを示す。ネットワークコントローラー232が、ネットワーク条件、および分散アプリケーション232のニーズを評価するための、後段で説明されるプロセスを実行する。分散アプリケーション230に関するネットワーク要件(または選好)を指定するネットワーク仕様234が与えられる。ネットワーク仕様234は、分散アプリケーション230に関するネットワーク要件236を含む。
[0033]ネットワーク要件236が、分散アプリケーション230の要素間のアプリケーションレベルのネットワークパスまたはネットワーク接続(例えば、接続をもたらす基礎をなすルーターなどにかかわらず要素間の接続)を特定することが可能である。例えば、図3の例において、ネットワーク要件236は、パス176またはパスセット178を指定することが可能である。図4の例において、ネットワーク要件は、パス210、212、またはパス214を特定することが可能である。そのようなパスまたは接続は、抽象的には、分散アプリケーションのアプリケーション要素238、および/または分散アプリケーション230に接続される外部要素240(アプリケーション要素は、ピア202、ウェブサーバー168、ネットワークサービスなどの様々なホスト上、またはVMゲスト上で実行される分散アプリケーション230の部分であることが可能である)の点で特定される。図5の例において、パス242および244は、対応するネットワーク要件236を有する。また、ネットワーク要件236は、ネットワーク要件236のパス(または複数のパス、もしくはパスのクラス)に対応するネットワークリソース要件をさらに指定する。例えば、パス242に関するネットワーク要件236が、50キロバイト/秒(KBS)などの特定の(または動的に計算される)帯域幅要件を指定することも可能である。ネットワーク仕様の詳細は、図10および図11を参照して後段で説明される。
[0034]また、図5は、ネットワーク統計データ246も示す。ネットワーク統計データ246は、アプリケーション要素238および/またはネットワーク通信ノード(例えば、ルーター、アグレゲーター、ゲートウェイなど)から報告されるネットワーク統計248を格納する。また、ネットワーク統計は、ネットワークコントローラー232が、基礎をなすデータネットワークの現在のトポロジーのモデルを構築するのに使用するネットワークトポロジー情報を含むことも可能である。そのようなトポロジー情報は、収集されたBGP(境界ゲートウェイプロトコル)ルーティングデータまたはOSPF(オープンショーテストパスファースト)ルーティングデータから導き出すことが可能である。ネットワークトポロジー情報およびトポロジーモデルは、ネットワークプロビジョニングのために必須ではないことに留意されたい。
[0035]より具体的には、ネットワーク統計データ246は、アプリケーション要素238、アプリケーション要素238をホストするホスト、アプリケーション要素をホストするVMなどによって消費される現在のネットワーク帯域幅、または履歴上のネットワーク帯域幅についての情報を含むことが可能である。一実施形態において、アプリケーション要素238が内部で実行される、VMを管理するハイパーバイザーが、場合により、利用(例えば、帯域幅値)をVMのIDに関連付ける情報を含め、個々のVMのネットワーク利用を監視し、報告する構成要素(図6のメーター270参照)を有することが可能である。一実施形態において、分散アプリケーション230の要素をホストする各VMのネットワーク活動またはネットワーク消費が、報告され、さらに追跡される。この事例において、システムは、いずれのVMがいずれのアプリケーション要素238をホストするかを常に把握している。実際、VMは、アプリケーション要素238のネットワーク追跡プロキシの役割をする。ネットワーク統計248およびネットワーク統計データ246の詳細、およびさらなる例が、後段で説明される。
[0036]図5に戻ると、ネットワークコントローラー232が、分散アプリケーション230のネットワーク要件236を対照してネットワーク統計データ246を評価する。ネットワークコントローラー232は、ネットワーク要件236の中で指定された何らかのパス、またはパスのセットもしくはクラス(またはその組合せ)が満たされていない(または満たされない可能性が高い)場合、そのことを判定することが可能である。次に、ネットワークコントローラー232は、ホストに、アプリケーション要素238が実行されているVMをホストするホスト、またはそのような複数のホストにネットワークコントローラー232が発行するVM適合250を決定する。
[0037]VM適合250は、第1のホスト上のVMを停止させること、そのVMのディスクイメージを第2のホストに移すこと(必要な場合)、およびそのVMを第2のホスト上で開始させることによって第1のホストから第2のホストにVM(または複数のVM)を移行させる、1つまたは複数のVM管理構成要素(図6の管理構成要素274を参照)に対する命令であることが可能である。VM適合250は、ハイパーバイザーによって管理されるVMのうちの1つまたは複数に関するネットワーク容量を増加させる、または低減させるハイパーバイザーに対する命令であることが可能である。一実施形態において、ハイパーバイザーは、個々のVMのネットワークスループットを制御するロジック(図6のレギュレーター272を参照)を有する。スロットリングおよび移行は、ネットワーク利用を制御するための効果的で、単純明快な技法であるが、他の技法が使用されてもよい。例えば、一実施形態において、全体の帯域幅が、アプリケーション層におけるインスタンスの数を減らすことによって低減し得る。別の実施形態において、ゲストオペレーティングシステムが、例えば、ゲストオペレーティングシステムのTCP(伝送制御プロトコル)レート制御アルゴリズムに対してネットワーク飽和条件をスプーフィングすることによって、ネットワーク利用を調整するようシグナリングされる。
[0038]ネットワークコントローラー232の実施に関して、ネットワークコントローラー232は、様々なコンピューターにおいて実施可能である。一実施形態において、ネットワークコントローラー232は、ネットワーク全体にわたってVMを管理する仮想マシン管理システム、例えば、システムセンター仮想マシンマネージャ(商標)、WMWare VirtualCenter(商標)などの中に含められる。別の実施形態において、ネットワークコントローラー232は、ネットワーク接続を有する任意のホスト上で実行されるスタンドアロンのアプリケーションである。さらに別の実施形態において、ネットワークコントローラー232はそれ自体、分散アプリケーションである。ネットワークコントローラー232は、分散アプリケーション230の一部として実施可能である(場合により、帯域幅がどのように管理され得るかについての制限を伴って)。一実施形態において、ネットワークコントローラー232は、同一のネットワーク、および同一のホストを共有する異なる多くの分散アプリケーションを管理する。その場合、ネットワークコントローラー232は、1つのアプリケーションに利用可能な帯域幅を、別のアプリケーションの要件を満たすのに役立つように増やす、または減らす能力を有することが可能である。
[0039]図6は、VMネットワーク報告およびネットワーク利用操作を円滑にする仮想化拡張を有するホスト268の例を示す。ハイパーバイザー274が、VM276、278を実行するために、前述したように、知られている仮想化機能を実行する。さらに、ハイパーバイザー274は、レギュレーター272と、メーター270とを有する。メーター270は、ホスト268上のVMに/から伝送されるネットワークデータの量(および/またはレート)についての統計を収集する。一実施形態において、ハイパーバイザーは、VMごとに仮想NIC(ネットワークインターフェースカード)デバイスを有することが可能であり、さらに統計は、この仮想NICデバイスを介して生成される。
[0040]レギュレーター272は、ハイパーバイザー274が、ハイパーバイザー274が管理するVMのネットワークスループットを制御することを可能にする。様々な制御アルゴリズムが使用されてもよい。知られているネットワークレート制御アルゴリズムが使用されてもよい(例えば、キューに入れられたパケットを遅延させてから、伝送することによって)。一部の事例において、いくつかのVM(例えば、分散アプリケーションの一部ではないVM278)に関する帯域幅を低減して、アプリケーション要素238をホストするVM276に関する帯域幅の増加を可能にすることができる。ハイパーバイザーまたは仮想NICは、パケットが通過する際、パケットを検査して、対応する実際のネットワークパスを理解し、さらにいずれのネットワークセッションをスロットリングすべきかを判定することができることに留意されたい。
[0041]また、ホスト268は、ネットワーク管理を円滑にする管理構成要素280を有することも可能である。一実施形態において、管理構成要素280は、メーター270から統計を収集し、この統計を、ネットワーク統計データ246の中に格納するために送信する。また、管理構成要素280は、ネットワークコントローラー232からの命令に従ってレギュレーター272を制御することも可能である。また、管理構成要素280は、ネットワークコントローラー232からのVM適合に応答してVMを移行させる命令を実行することも可能である。
[0042]また、管理構成要素280は、ネットワークコントローラー232が、様々な仮想化実装形態とインターフェースをとることを可能にする便利な手段であることも可能であり、様々な管理構成要素280の実装形態が、それぞれの仮想化実装形態に関して与えられることが可能である。それぞれの仮想化実装形態が、同一のコントローラーに面するAPI(アプリケーションプログラミングインターフェース)を実施するとともに、別の仮想化実装形態に適した別の仮想化に面するロジックを実施することが可能である。
[0043]管理構成要素280、レギュレーター272、およびメーター270の機能は、使用されている特定の仮想化実装形態に適した仮想化層における任意の箇所に含められ得る。さらに、これらの構成要素は、実際のディスクリートのユニットとして存在する必要はなく、対応する機能が、様々な設計で実行可能である。
[0044]図7は、図3の例示的な分散アプリケーション160と関連して図5のシステムを示す。ホスト268は、前述したように、VM276を有し、VM276は、ウェブサーバー168、アプリケーションインスタンス170、およびデータベースサーバー172などのアプリケーション要素をホストすることが可能である。メーター270およびレギュレーター272は、想定されるが、図示されない。より小さいバージョンのホスト268は、より大きいバージョンのホスト268と同一である。より大きいバージョンは、図8に示されるホスト268の詳細を示す。図8は、VM276において実行される分散アプリケーション160をホストするホスト268を示す。これらのホストのうちのいくつかは、指定されたパスの構成要素であることが可能なサブネットワーク300内に常駐する。ネットワークコントローラー232は、VM276を、データベースサーバー172、アプリケーションインスタンス170などのアプリケーション要素にマップする情報を保持する。VM276のネットワーク統計が、ネットワーク統計データストア246の中に蓄積される。一実施形態において、ネットワーク通信ノード302(例えば、ルーター、ゲートウェイ、アグレゲーター)が、VM276にネットワーク通信をもたらす。
[0045]図9は、図8の任意の部分の詳細な図を示す。ホスト268Bのメーター270が、ネットワーク統計データ246に送信され格納されるVM276メーター統計320を蓄積する。ネットワーク通信ノード302が、ネットワーク統計、例えば、リンク帯域幅レート、インターフェース統計などをさらにサブミットすることも、サブミットしないことも可能である。ネットワークコントローラー332は、任意のネットワーク統計を格納するためのプロセス334を実行することが可能であり、このことには、統計を受信すること、および統計をネットワーク統計データ246の中に格納することを伴ってもよい。
[0046]ネットワークコントローラー232は、ネットワーク内のネットワークトラフィック負荷を移すためのプロセスを実行する。ネットワークコントローラー232は、ネットワーク仕様のコレクション336から、分散アプリケーションに対応するネットワーク仕様234Aを選択する。次に、この仕様が、分散アプリケーションと関係するネットワーク統計を対照して繰り返し評価される。ネットワークコントローラー232が、実際の条件が、(ネットワーク仕様234Aに従って)分散アプリケーションの要件または選好に適合するようにするのに調整が要求されると判定した場合はいつでも、ネットワークコントローラーは、場合により、いずれのVMホストがアプリケーションのいずれの要素をホストするかを考慮に入れて、ネットワークからの現在の、または最近のトラフィック統計を解析して、ネットワークトラフィック負荷を移すための1つまたは複数のターゲットを識別する。したがって、ネットワークコントローラー232は、それらのターゲットに対してVM適合を実行する。
[0047]VM適合に関して、一実施形態において、ネットワークコントローラー232は、ホスト268A上のVM276Aをターゲットとして識別して、VM172A、移行元ホスト268A、および移行先ホスト268Bを識別することが可能な「移行実行」命令338を送信する。これに応答して、ホスト268A、268Bが、VM172Aをホスト268Bに移行させる。VM移行に関する技法は、本明細書以外で知られており、説明されている。概して、VM276Aが、ホスト268A上で停止させられ、停止させられたVMのディスクイメージ338が、ホスト268Bに移され、または利用可能にされ、さらに、その後、ホスト268Bの仮想化構成要素が、受信された/アクセスされたディスクイメージ338からVM276Aを再起動させる。
[0048]同一の実施形態、または他の実施形態において、ネットワークコントローラー232は、ターゲットVMのネットワーク容量を調整すること(例えば、様々なVM伝送レートを下げること、および上げること)によって、ネットワークトラフィックが移されるべきであると判定することが可能である。例えば、コントローラー232は、指定されたパス要件(例えば、VM276Bを含むパス)が満たされていないと判定することが可能である。次に、ネットワークコントローラー232は、現在、帯域幅が低減され得る適切な(複数の)ホストにおける1つまたは複数のVM(例えば、しばしば、ホスト268B以外のホスト上にあることが可能な別のアプリケーションに関するVM340)を識別することが可能であり、その後、それらのターゲットVMに関するネットワークレートまたは帯域幅割当てを増やす/減らす命令342を送信する。次に、受取側の(複数の)ホストの、換言すれば、この実施例では、ホスト268Bのレギュレーター272が、ターゲットVMの割当てを変更することによって応答する。
[0049]さらに別の実施形態において、ネットワークコントローラーは、様々な負荷の下で伝送の待機時間を監視することによって、ホストの外部のネットワーク要素(例えば、ルーター)の実行能力を推測する。例えば、待機時間は、帯域幅の関数であり、さらに時間とともに待機時間/帯域幅曲線が構築される場合、VM配置の調整を伝えるようにその曲線(または待機時間と帯域幅を互いに関係付ける他の情報)を使用することが可能である。また、ネットワークパフォーマンスを探るように仮想NICにおいて追加のパケットを注入することも可能である。そのようなプローブパケットは、送信元で注入され、さらに宛先で取り除かれる。
[0050]VMレート調節とVM移行(もしくは作成、削除、または一時停止)とのいずれか、あるいは両方が使用され得ることが理解されよう。ネットワーク通信ノード302によって報告されるネットワークトポロジーまたはネットワーク統計は、ネットワークコントローラー232の意思決定プロセスに伝わっても、伝わらなくてもよい。また、ネットワーク仕様およびネットワークプロビジョニングは、この仕様が、アプリケーション要素の点でパスを指定し、ネットワーク統計が、それらの要素に関して報告されるとともに、それらの要素と互いに関係付けられ、さらに解析および調整が、それらのアプリケーション要素に関して実行されるので、実際、アプリケーションレベルで行われることも理解されよう。このため、必ずしも、ネットワークレベルに入り込むことなしに(そうするのに要求される特権も有さずに)、分散アプリケーションを通る(さらに、場合により、分散アプリケーションに至る/分散アプリケーションからの)パスに関してレート/帯域幅を保証しようと試みることが可能である。とはいえ、一実施形態において、ネットワークコントローラー232は、ネットワーク容量が必要とされる場所にネットワーク容量を移すためのさらなる手段としてネットワーク通信ノード302に対して命令を発行することも可能である。一部のクラウドまたはデータセンターにおいて、ネットワーク帯域幅は、異なる時点(例えば、時間帯、曜日など)で異なる費用を有することがあり得、さらにシステムは、全体の費用限度または最小化関数を満たすようにネットワーク利用を調整するように構成され得る。
[0051]図10および図11は、例示的なアプリケーションネットワーク仕様234A、234Bを示す。ネットワーク仕様234A、234Bは、XML(拡張マークアップ言語)で書くことができる。実施例におけるXML要素は、自明である。対応する分散アプリケーションの構成要素または要素、例えば、「InternetGatway」、「Tier1App」などが定義され得ることを考慮されたい。次に、パスに関する容量仕様が、それらの構成要素の点で定義される。例えば、ネットワーク仕様234において、Tier1Apps(さらに、暗黙に、Tier1AppsのVM)からInternetGatwayに至るパスの平均帯域幅が1.5MBS(メガバイト/秒)であるべきことを容量仕様が示す。別の仕様は、すべてのTier1−Tier2パスの合計が0.5MBSを超えなければならないことを示す。一実施形態では、或る仕様は、仕様ステートメントの中のパラメーターの順序によって示されるように、方向感受性とすることができる。ネットワーク仕様は、豊かな表現言語を定義することができ、複雑なパスおよび条件を指定することが可能になる。複雑な条件も指定され得る。また、是正措置も指定され得る。例えば、或る要件が、第1のパス条件、ならびにこの条件を満たすようにターゲットとされるべき別のパスを指定することが可能である。或る要件が、或るパスにおける複数の要素、例えば、構成要素Aから構成要素Cを経由して構成要素Bに至る帯域幅を指定することも可能である。
結論
[0052]前述した実施形態および特徴は、揮発性または不揮発性のコンピューター可読の媒体またはデバイス可読の媒体の中に格納された情報の形態で実現可能である。この媒体には、光ストレージ(例えば、コンパクトディスク読取り専用メモリー(CD−ROM))、磁気媒体、フラッシュ読取り専用メモリー(ROM)、またはデジタル情報を格納する任意の現在の手段もしくは将来の手段などの媒体が少なくとも含まれるものと考えられる。格納された情報は、コンピューティングデバイスが、前述した様々な実施形態を実行することを可能にする、またはそのような実施形態を実行するように構成するのに使用され得るマシン実行可能命令(例えば、コンパイルされた実行可能バイナリコード)、ソースコード、バイトコード、または他の任意の情報の形態であることが可能である。また、この媒体には、或る実施形態を実行しているプログラムの実行中に中央処理装置(CPU)命令などの情報を格納するランダムアクセスメモリー(RAM)メモリーおよび/または仮想メモリーなどの揮発性メモリー、ならびに実行可能なプログラムをロードし実行することを可能にする情報を格納する不揮発性媒体が少なくとも含まれると考えられる。これらの実施形態および特徴は、ポータブルデバイス、ワークステーション、サーバー、モバイルワイヤレスデバイスなどを含む任意のタイプのコンピューティングデバイス上で実行可能である。

Claims (15)

  1. ネットワーク内で実行する分散アプリケーションに関するネットワーク帯域幅を、前記ネットワーク内のホスト上で実行する仮想マシン(VM)において指定し、割り当てる方法であって、
    アプリケーションネットワーク仕様を格納するステップであって、各アプリケーションネットワーク仕様は、複数の前記ホスト上の複数の前記VM上で実行するアプリケーション要素を有する分散アプリケーションのネットワーク要件を指定する、ステップと、
    前記ネットワークにおけるネットワーク利用を監視するステップと、
    前記アプリケーションネットワーク仕様および前記監視するステップに基づいて、ネットワーク帯域幅要件を判定するステップと、
    前記ネットワーク内の前記VMのうちの1つまたは複数を移行させること、および/または前記ホストのうちの1つのホスト上のハイパーバイザーが、ハイパーバイザーよって管理されるVMのネットワーク伝送を増加させること、もしくは低減させることによって前記ネットワーク帯域幅要件を満たすステップと
    を含む、方法。
  2. アプリケーションネットワーク仕様は、対応する分散アプリケーションの要素を通る複数の通信パスを指定し、前記方法は、前記パスのうちの1つのネットワーク要件を満たすように第1のホストから第2のホストにVMを移行させるステップをさらに含む、請求項1に記載の方法。
  3. 前記監視するステップは、前記ホスト上のハイパーバイザーにおいてVMのネットワーク統計を取り込み、さらに前記ネットワーク統計を、格納されるように送信するステップを含む、請求項1に記載の方法。
  4. 前記監視するステップは、前記ネットワークの1つまたは複数のルーター、スイッチ、またはロードバランサーによって報告されるネットワーク統計を受信するステップをさらに含む、請求項3に記載の方法。
  5. 前記監視するステップは、ハイパーバイザーが、プローブパケットを生成し挿入して送信するステップと、前記プローブパケットを受信するステップと、前記プローブパケットに応じてネットワーク統計を測定するステップと、前記プローブパケットを取り除いて、前記プローブパケットが仮想マシンに渡されないようにするステップとをさらに含む、請求項3に記載の方法。
  6. 費用最小化関数に基づいて前記ネットワーク帯域幅要件を動的に計算するステップをさらに含み、前記費用最小化関数により、帯域幅費用は、時間を関数として変化する、請求項1に記載の方法。
  7. ネットワークを介して通信する仮想マシン(VM)をホストする複数のホストの間でネットワーク利用を分散させる方法であって、各ホストは、ホスト上で実行するVMを管理するハイパーバイザーを有し、前記方法は、
    1つまたは複数のコンピューターによって格納されたネットワーク情報にアクセスするステップであって、前記ネットワーク情報は、前記VM上で動作するそれぞれの分散アプリケーションのネットワーク要件を指定する情報からなり、各分散アプリケーションは、複数の前記VM上で実行する、ステップと、
    前記ホストの間でVMを移行させること、または前記ハイパーバイザーが、前記ハイパーバイザーが管理する前記VMが利用できるネットワーク容量を増加させること、もしくは低減させることによって、前記アプリケーションの前記ネットワーク要件を満たそうと試みるステップと
    を含む方法。
  8. 前記ネットワークは、ルーター、スイッチ、およびロードバランサーを備え、前記保証するステップは、前記ルーター、前記スイッチ、または前記ロードバランサーにおけるネットワーク割当てを増加させる、または低減するステップをさらに含む、請求項7に記載の方法。
  9. 前記ルーター、前記スイッチ、および前記ロードバランサーのパフォーマンス特性のモデルを構築するステップと、前記モデルを、ネットワーク割当ての前記増加、または前記低減に使用するステップとをさらに含む、請求項8に載の方法。
  10. 前記ネットワーク情報は、所与の分散アプリケーションに関するアプリケーション仕様を含み、前記アプリケーション仕様は、前記分散アプリケーションのそれぞれのアプリケーション要素を表す2つの構成要素を含むネットワーク通信パスを指定し、前記アプリケーション仕様は、前記通信パスに関するネットワーク要件をさらに指定する、請求項7に記載の方法。
  11. 前記分散アプリケーションは、前記構成要素のうちの第1の構成要素に対応するアプリケーションインスタンスの第1のセットと、前記構成要素のうちの第2の構成要素に対応するアプリケーションインスタンスの第2のセットとを含む、請求項7に記載の方法。
  12. 前記第1のセットの中の前記アプリケーションインスタンスのうちの1つまたは複数と前記第2のセットの中の前記アプリケーションインスタンスのうちの1つまたは複数との間で単一の帯域幅要件を保証するステップをさらに含む、請求項11に記載の方法。
  13. 個々のVMのVMネットワーク利用統計を格納するステップと、前記VMネットワーク利用統計を、移行させられるべき、または利用できるネットワーク容量が増加される、もしくは低減されるべき1つまたは複数のVMを選択するのに使用するステップとをさらに含む、請求項7に記載の方法。
  14. VMのネットワーク容量を、前記VMを一時停止することによって低減するステップをさらに含む、請求項13に記載の方法。
  15. 前記ネットワーク要件のうちの1つに従って特定のVMを識別するステップと、前記特定のVMをホストするホストによって報告された前記特定のVMのネットワーク統計を選択するステップと、前記ネットワーク統計を前記ネットワーク要件のうちの前記1つと比較するステップをさらに含む、請求項7に記載の方法。
JP2014518571A 2011-06-29 2012-05-30 ネットワーク利用の制御 Active JP5984926B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/171,445 US10013281B2 (en) 2011-06-29 2011-06-29 Controlling network utilization
US13/171,445 2011-06-29
PCT/US2012/039961 WO2013002936A1 (en) 2011-06-29 2012-05-30 Controlling network utilization

Publications (2)

Publication Number Publication Date
JP2014526083A true JP2014526083A (ja) 2014-10-02
JP5984926B2 JP5984926B2 (ja) 2016-09-06

Family

ID=47391801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014518571A Active JP5984926B2 (ja) 2011-06-29 2012-05-30 ネットワーク利用の制御

Country Status (7)

Country Link
US (1) US10013281B2 (ja)
EP (1) EP2726984B1 (ja)
JP (1) JP5984926B2 (ja)
KR (1) KR101906632B1 (ja)
CN (1) CN103635882B (ja)
ES (1) ES2765032T3 (ja)
WO (1) WO2013002936A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160133A (ja) * 2018-03-16 2019-09-19 株式会社リコー 情報処理装置、情報処理システムおよび方法
JP2021164004A (ja) * 2020-03-30 2021-10-11 横河電機株式会社 通信処理装置、プログラム、及び通信処理方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5772395B2 (ja) * 2011-08-29 2015-09-02 富士通株式会社 送信レート制御のためのプログラム、制御方法及び情報処理装置
US8914515B2 (en) * 2011-10-28 2014-12-16 International Business Machines Corporation Cloud optimization using workload analysis
US20130227164A1 (en) * 2012-02-23 2013-08-29 Yahoo! Inc. Method and system for distributed layer seven traffic shaping and scheduling
US10031782B2 (en) * 2012-06-26 2018-07-24 Juniper Networks, Inc. Distributed processing of network device tasks
US9256473B1 (en) * 2012-09-26 2016-02-09 Emc Corporation Provision a virtual environment based on topology of virtual nodes, node dependencies and base node configuration information
KR101539496B1 (ko) * 2013-02-18 2015-07-24 단국대학교 산학협력단 가상 머신 모니터링 장치 및 그 방법
US9251115B2 (en) 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US9843624B1 (en) 2013-06-13 2017-12-12 Pouya Taaghol Distributed software defined networking
US9307018B2 (en) * 2013-09-11 2016-04-05 International Business Machines Corporation Workload deployment with real-time consideration of global network congestion
US9807014B2 (en) * 2013-09-27 2017-10-31 International Business Machines Corporation Reactive throttling of heterogeneous migration sessions in a virtualized cloud environment
JP6213303B2 (ja) * 2014-02-26 2017-10-18 富士通株式会社 情報処理システム、制御装置及び制御プログラム
EP2966807B1 (en) * 2014-05-08 2018-09-19 Accenture Global Services Limited Network usage monitoring and analytics for differentiated data services
US11182185B2 (en) * 2014-06-27 2021-11-23 Vmware, Inc. Network-based signaling to control virtual machine placement
US10067800B2 (en) * 2014-11-06 2018-09-04 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
EP3021521A1 (en) * 2014-11-11 2016-05-18 Alcatel Lucent A method and system for scaling, telecommunications network and computer program product
EP3035619B1 (en) * 2014-12-15 2019-02-13 Alcatel Lucent A method and system for scaling and a telecommunications network
US9923965B2 (en) 2015-06-05 2018-03-20 International Business Machines Corporation Storage mirroring over wide area network circuits with dynamic on-demand capacity
KR101665461B1 (ko) * 2015-06-26 2016-10-19 건국대학교 산학협력단 실시간성이 요구되는 어플리케이션이 탑재된 머신의 가상화 장치 및 방법
US10581680B2 (en) 2015-11-25 2020-03-03 International Business Machines Corporation Dynamic configuration of network features
US9923784B2 (en) 2015-11-25 2018-03-20 International Business Machines Corporation Data transfer using flexible dynamic elastic network service provider relationships
US10057327B2 (en) 2015-11-25 2018-08-21 International Business Machines Corporation Controlled transfer of data over an elastic network
US10177993B2 (en) * 2015-11-25 2019-01-08 International Business Machines Corporation Event-based data transfer scheduling using elastic network optimization criteria
US9923839B2 (en) 2015-11-25 2018-03-20 International Business Machines Corporation Configuring resources to exploit elastic network capability
US10216441B2 (en) 2015-11-25 2019-02-26 International Business Machines Corporation Dynamic quality of service for storage I/O port allocation
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
US10257043B2 (en) * 2016-01-11 2019-04-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Balancing utilization of infrastructure in a networked computing environment
US10812588B2 (en) 2016-01-13 2020-10-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Storage performance based on data placement
US10623330B2 (en) 2016-09-23 2020-04-14 Google Llc Distributed bandwidth allocation and throttling
US10942758B2 (en) 2017-04-17 2021-03-09 Hewlett Packard Enterprise Development Lp Migrating virtual host bus adaptors between sets of host bus adaptors of a target device in order to reallocate bandwidth to enable virtual machine migration
US10795583B2 (en) 2017-07-19 2020-10-06 Samsung Electronics Co., Ltd. Automatic data placement manager in multi-tier all-flash datacenter
US10496541B2 (en) 2017-11-29 2019-12-03 Samsung Electronics Co., Ltd. Dynamic cache partition manager in heterogeneous virtualization cloud cache environment
JP7081514B2 (ja) * 2019-01-30 2022-06-07 日本電信電話株式会社 オートスケール型性能保証システム及びオートスケール型性能保証方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016599A (ja) * 1999-12-02 2002-01-18 Hitachi Ltd ネットワーク計測制御システムとネットワーク計測制御方法
JP2011503713A (ja) * 2007-11-06 2011-01-27 クレディ スイス セキュリティーズ (ユーエスエイ) エルエルシー サービスレベル契約に従ったリソース割り振りの予測及び管理

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5896531A (en) 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US6732139B1 (en) 1999-08-16 2004-05-04 International Business Machines Corporation Method to distribute programs using remote java objects
US6674717B1 (en) * 2000-03-30 2004-01-06 Network Physics, Inc. Method for reducing packet loss and increasing internet flow by feedback control
US20020032754A1 (en) * 2000-04-05 2002-03-14 Gary Logston Method and apparatus for profiling in a distributed application environment
AU2001267719C1 (en) * 2000-07-05 2008-04-10 Ernst & Young Llp Method and apparatus for providing computer services
US6823382B2 (en) * 2001-08-20 2004-11-23 Altaworks Corporation Monitoring and control engine for multi-tiered service-level management of distributed web-application servers
US6976134B1 (en) * 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US7668966B2 (en) * 2001-11-02 2010-02-23 Internap Network Services Corporation Data network controller
US20030154236A1 (en) * 2002-01-22 2003-08-14 Shaul Dar Database Switch enabling a database area network
US6968535B2 (en) * 2002-03-21 2005-11-22 Sun Microsystems, Inc. Service mapping method of enterprise application modeling and development for multi-tier service environments
US7167915B2 (en) 2002-10-18 2007-01-23 International Business Machines Corporation Monitoring storage resources used by computer applications distributed across a network
US20040181589A1 (en) * 2003-03-14 2004-09-16 Sun Microsystems,Inc. Storage virtual channels and method for using the same
JP4457581B2 (ja) * 2003-05-28 2010-04-28 日本電気株式会社 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
US20040267897A1 (en) * 2003-06-24 2004-12-30 Sychron Inc. Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers
US7934020B1 (en) * 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7496661B1 (en) 2004-03-29 2009-02-24 Packeteer, Inc. Adaptive, application-aware selection of differentiated network services
US8489720B1 (en) * 2004-03-31 2013-07-16 Blue Coat Systems, Inc. Cost-aware, bandwidth management systems adaptive to network conditions
US7957266B2 (en) * 2004-05-28 2011-06-07 Alcatel-Lucent Usa Inc. Efficient and robust routing independent of traffic pattern variability
US7702779B1 (en) 2004-06-30 2010-04-20 Symantec Operating Corporation System and method for metering of application services in utility computing environments
US7554983B1 (en) * 2004-12-20 2009-06-30 Packeteer, Inc. Probing hosts against network application profiles to facilitate classification of network traffic
WO2006078953A2 (en) 2005-01-21 2006-07-27 Internap Network Services Corporation System and method for application acceleration on a distributed computer network
US7644162B1 (en) * 2005-06-07 2010-01-05 Hewlett-Packard Development Company, L.P. Resource entitlement control system
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20070118653A1 (en) 2005-11-22 2007-05-24 Sabre Inc. System, method, and computer program product for throttling client traffic
US8161475B2 (en) 2006-09-29 2012-04-17 Microsoft Corporation Automatic load and balancing for virtual machines to meet resource requirements
JP4871174B2 (ja) * 2007-03-09 2012-02-08 株式会社日立製作所 仮想計算機システム
US7970903B2 (en) * 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
US9086901B2 (en) * 2008-03-07 2015-07-21 Sap Se Migration of applications from physical machines to virtual machines
US8040799B2 (en) * 2008-05-15 2011-10-18 International Business Machines Corporation Network on chip with minimum guaranteed bandwidth for virtual communications channels
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US8102781B2 (en) * 2008-07-31 2012-01-24 Cisco Technology, Inc. Dynamic distribution of virtual machines in a communication network
US20100036903A1 (en) * 2008-08-11 2010-02-11 Microsoft Corporation Distributed load balancer
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
US9143554B2 (en) * 2008-10-13 2015-09-22 Hewlett-Packard Development Company, L.P. Control of a computing system having adjustable inputs
CN101419558A (zh) 2008-11-13 2009-04-29 湖南大学 Cuda图形子系统虚拟化方法
US8214829B2 (en) * 2009-01-15 2012-07-03 International Business Machines Corporation Techniques for placing applications in heterogeneous virtualized systems while minimizing power and migration cost
US20100281478A1 (en) * 2009-05-01 2010-11-04 Microsoft Corporation Multiphase virtual machine host capacity planning
US8751627B2 (en) * 2009-05-05 2014-06-10 Accenture Global Services Limited Method and system for application migration in a cloud
US8335943B2 (en) * 2009-06-22 2012-12-18 Citrix Systems, Inc. Systems and methods for stateful session failover between multi-core appliances
US8914511B1 (en) * 2009-06-26 2014-12-16 VMTurbo, Inc. Managing resources in virtualization systems
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
CN101626598B (zh) 2009-07-23 2013-08-07 华为技术有限公司 传输资源管理的方法和系统
US8359374B2 (en) * 2009-09-09 2013-01-22 Vmware, Inc. Fast determination of compatibility of virtual machines and hosts
US8253588B2 (en) * 2009-11-02 2012-08-28 Oracle America, Inc. Facilitating power supply unit management using telemetry data analysis
US8537860B2 (en) * 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US8250213B2 (en) * 2009-11-16 2012-08-21 At&T Intellectual Property I, L.P. Methods and apparatus to allocate resources associated with a distributive computing network
US8352953B2 (en) * 2009-12-03 2013-01-08 International Business Machines Corporation Dynamically provisioning virtual machines
US9036504B1 (en) * 2009-12-07 2015-05-19 Amazon Technologies, Inc. Using virtual networking devices and routing information to associate network addresses with computing nodes
US9098335B2 (en) * 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
US8224971B1 (en) * 2009-12-28 2012-07-17 Amazon Technologies, Inc. Using virtual networking devices and routing information to initiate external actions
US8719804B2 (en) * 2010-05-05 2014-05-06 Microsoft Corporation Managing runtime execution of applications on cloud computing systems
US8606897B2 (en) * 2010-05-28 2013-12-10 Red Hat, Inc. Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
US8417812B1 (en) * 2010-07-12 2013-04-09 Vmware, Inc. Methods and systems for detecting anomalies during IO accesses
US20120317249A1 (en) * 2011-06-13 2012-12-13 Salsburg Michael A Methods and systems for extreme capacity management
US8694400B1 (en) * 2010-09-14 2014-04-08 Amazon Technologies, Inc. Managing operational throughput for shared resources
US8418185B2 (en) * 2010-10-19 2013-04-09 International Business Machines Corporation Memory maximization in a high input/output virtual machine environment
US8824286B2 (en) * 2010-10-29 2014-09-02 Futurewei Technologies, Inc. Network aware global load balancing system and method
US8924539B2 (en) * 2010-11-24 2014-12-30 Red Hat, Inc. Combinatorial optimization of multiple resources across a set of cloud-based networks
US8745734B1 (en) * 2010-12-29 2014-06-03 Amazon Technologies, Inc. Managing virtual computing testing
US9467507B2 (en) * 2011-01-03 2016-10-11 Verizon Patent And Licensing Inc. Wireless network cloud computing resource management
CN102082830B (zh) 2011-01-18 2013-03-06 浙江大学 面向不稳定网络的基于品质感知的分布式文件存储方法
US9055003B2 (en) * 2011-03-03 2015-06-09 International Business Machines Corporation Regulating network bandwidth in a virtualized environment
US8949931B2 (en) * 2012-05-02 2015-02-03 Cisco Technology, Inc. System and method for monitoring application security in a network environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016599A (ja) * 1999-12-02 2002-01-18 Hitachi Ltd ネットワーク計測制御システムとネットワーク計測制御方法
JP2011503713A (ja) * 2007-11-06 2011-01-27 クレディ スイス セキュリティーズ (ユーエスエイ) エルエルシー サービスレベル契約に従ったリソース割り振りの予測及び管理

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019160133A (ja) * 2018-03-16 2019-09-19 株式会社リコー 情報処理装置、情報処理システムおよび方法
JP7259203B2 (ja) 2018-03-16 2023-04-18 株式会社リコー 情報処理装置、情報処理システムおよび方法
JP2021164004A (ja) * 2020-03-30 2021-10-11 横河電機株式会社 通信処理装置、プログラム、及び通信処理方法
JP7400587B2 (ja) 2020-03-30 2023-12-19 横河電機株式会社 通信処理装置、プログラム、及び通信処理方法

Also Published As

Publication number Publication date
EP2726984B1 (en) 2019-10-30
CN103635882B (zh) 2017-07-18
KR101906632B1 (ko) 2018-10-10
CN103635882A (zh) 2014-03-12
EP2726984A4 (en) 2015-03-11
JP5984926B2 (ja) 2016-09-06
US20130007254A1 (en) 2013-01-03
EP2726984A1 (en) 2014-05-07
US10013281B2 (en) 2018-07-03
ES2765032T3 (es) 2020-06-05
KR20140035970A (ko) 2014-03-24
WO2013002936A1 (en) 2013-01-03

Similar Documents

Publication Publication Date Title
JP5984926B2 (ja) ネットワーク利用の制御
US10791168B1 (en) Traffic aware network workload management system
US9934073B2 (en) Extension of resource constraints for service-defined containers
US10530678B2 (en) Methods and apparatus to optimize packet flow among virtualized servers
He et al. Performance evaluation of live virtual machine migration in SDN-enabled cloud data centers
US9489222B2 (en) Techniques for workload balancing among a plurality of physical machines
US10841235B2 (en) Methods and apparatus to optimize memory allocation in response to a storage rebalancing event
US9405571B2 (en) Method and system for abstracting virtual machines in a network comprising plurality of hypervisor and sub-hypervisors
US20150341223A1 (en) Automatic placement of clients in a distributed computer system based on at least physical network topology information
JP2017084406A (ja) ファブリック分散リソースのスケジューリング
US10616319B2 (en) Methods and apparatus to allocate temporary protocol ports to control network load balancing
EP2425339A1 (en) Methods and apparatus to get feedback information in virtual environment for server load balancing
US20220382529A1 (en) Systems and methods for managing releases of global services in a controlled manner
US11513721B2 (en) Method and system for performance control in a cloud computing environment
US9934059B2 (en) Flow migration between virtual network appliances in a cloud computing network
AU2018351990A1 (en) Method to track SSL session states for SSL optimization of SaaS based applications
US20150263960A1 (en) Method and apparatus for cloud bursting and cloud balancing of instances across clouds
US11140073B2 (en) System and method for canary deployment using DNS SRV records
US11477102B2 (en) Upgrading user space networking stacks without disruptions to network traffic
US20230059940A1 (en) Systems and methods for application health based network traffic routing in a geographically distributed cloud service
US20240231922A1 (en) Anti-affinity for containerized computing service
Costache et al. Use Cases of Virtualization in the Management of Distributed and Parallel Systems
Zhang et al. Virtual Machine Migration in Cloud Computing Environments
Computing Hussein T. Mouftah University of Ottawa, Canada Burak Kantarci University of Ottawa, Canada

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150508

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150515

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160617

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160802

R150 Certificate of patent or registration of utility model

Ref document number: 5984926

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250