JP2018055707A - 仮想マシンプールにおけるリソースの割り当て - Google Patents
仮想マシンプールにおけるリソースの割り当て Download PDFInfo
- Publication number
- JP2018055707A JP2018055707A JP2017228719A JP2017228719A JP2018055707A JP 2018055707 A JP2018055707 A JP 2018055707A JP 2017228719 A JP2017228719 A JP 2017228719A JP 2017228719 A JP2017228719 A JP 2017228719A JP 2018055707 A JP2018055707 A JP 2018055707A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- standby
- task
- virtual
- pool
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5014—Reservation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】クラウドコンピューティング環境において仮想マシンにリソースを割り当てる、および関連付けるための方法を提供する。
【解決手段】クラウドコンピューティング環境における仮想マシンが、ユーザーに対応するプールに、専用のマシン、スタンバイマシン、またはプリエンプション可能なマシンとして割り当てられる、または関連付けられる。様々な状態が、クラウドコンピューティング環境の運用者がリソース利用を増大させることも可能にしながら、所望されるレベルのリソースをユーザーに提供する。
【選択図】図3
【解決手段】クラウドコンピューティング環境における仮想マシンが、ユーザーに対応するプールに、専用のマシン、スタンバイマシン、またはプリエンプション可能なマシンとして割り当てられる、または関連付けられる。様々な状態が、クラウドコンピューティング環境の運用者がリソース利用を増大させることも可能にしながら、所望されるレベルのリソースをユーザーに提供する。
【選択図】図3
Description
[0001]大規模な計算ジョブを実行するための従来の方法には、コンピューティングプラットフォームの役割をするコンピューターハードウェアをユーザーが購入することを、しばしば必要とした。このことは、通常の多くのユーザーは、コンピューティングリソースの定常的なニーズとは異なるピークレベルのコンピューティングニーズを有するので、様々な非効率につながる可能性がある。ピークリソースニーズを満たすのに十分なハードウェアを購入することは、コンピューターリソースの低い利用率につながり得る。代替として、定常的な利用レベルにハードウェアを合わせることは、所望される一部の計算が現実的でなくなることをもたらし得る。最近になって、処理速度およびネットワーク伝送速度の向上が、クラウドコンピューティング環境を、ローカルコンピューティングプラットフォームに対する存続可能な代替にしている。
[0002]様々な実施形態において、クラウドコンピューティング環境においてリソースを割り当てるため、および関連付けるためのシステムおよび方法が提供される。クラウドコンピューティング環境における仮想マシンが、ユーザーに対応するプールに、専用のマシン、スタンバイマシン、またはプリエンプション可能なマシンとして割り当てられる、または関連付けられることが可能である。様々な状態が、クラウドコンピューティング環境の運用者がリソース利用を増大させることも可能にしながら、所望されるレベルのリソースをユーザーに提供する。
[0003]この概要は、詳細な説明において後段でさらに説明される選定された概念を簡略化した形態で概説するように与えられる。この概要は、主張される主題の重要な特徴、または不可欠な特徴を特定することは意図しておらず、それ自体で、主張される主題の範囲を確定する助けとして使用されることも意図していない。
[0004]本発明は、添付の図面を参照して後段で詳細に説明される。
[0012](概要)ネットワーク上のデータ伝送の速度の増加、および他のネットワークフィーチャの向上により、大きなネットワークにわたってコンピューティングリソースが分散されている環境において大規模なコンピューティングタスクを実行することが、ますます可能になる。第1のロケーションにおけるユーザーが、コンピューティングサービスにジョブまたはコンピューティングタスクをサブミットして、そのタスクを、ユーザーが直接の知識を有さないグループのコンピューター上で実行させることが可能である。そのユーザーのタスクを実行するためのコンピューティングリソースは、複数のロケーションにわたって分散していることが可能である。1つまたは複数のロケーションに位置する第1のグループのコンピューティングリソースが、そのユーザーのコンピューティングタスクを実行するためのデータおよび他の情報を格納することが可能である一方で、同一のロケーションにおける、または、場合により、異なるセットの1つまたは複数のロケーションにおける第2のグループのコンピューティングリソースが、そのコンピューティングタスクを実行するのに使用されることが可能である。
[0013]様々な分散したコンピューティングリソースへのアクセスが、ユーザーが、それらのコンピューティングリソースがどこに位置しているかを気にすることなしに、ジョブタスクを実行することを可能にする。また、それらの分散したリソースは、ユーザーが、指定された時間までにコンピューティングタスクを完了することなどの、コンピューティングタスクに関する目標を満たすために使用されるリソースの量をスケールアップする(またはスケールダウンする)機会ももたらす。しかし、ユーザーにこの柔軟性を提供することは、それらの分散したコンピューティングリソースの運用者(または所有者)にいくつかの課題をもたらす。需要を満たすために、分散したネットワークリソースの運用者は、好ましくは、ピーク需要時にリソース要求を満たすのに十分な利用可能なリソースを有する。
[0014](定義)「アカウント」は、クラウドコンピューティング環境内でグローバル一意識別されたエンティティーである。或る実施形態において、後段で説明されるリソースおよびタスクのすべてが、アカウントの範囲内に含まれる。通常、ユーザーは、クラウドコンピューティングシステムのリソースを使用する前にまず、アカウントを作成する。アカウントを作成した後、ユーザーは、そのアカウントを使用して、作業アイテムをシステムにサブミットし、それらの作業アイテムに基づいて、ジョブを実行するためのリソースを管理することができる。
[0015]「作業アイテム」は、クラウドコンピューティング環境において実行されるべきジョブの静的表現である。作業アイテムは、ジョブバイナリー、処理されるべきデータに対するポインター、および、オプションとして、ジョブを実行するためにタスクを起動するコマンドラインを含む、ジョブの様々な態様を指定することができる。さらに、作業アイテムは、再出現スケジュール、優先度、および制約を指定することが可能である。例えば、作業アイテムは、毎日、午後5時に起動されるように指定することができる。
[0016]「ジョブ」は、作業アイテムの実行されているインスタンスである。ジョブは、分散型の計算を実行するように協働するタスクのコレクションを含む。それらのタスクは
、クラウドコンピューティング環境において1つまたは複数の仮想マシン上で実行され得る。
、クラウドコンピューティング環境において1つまたは複数の仮想マシン上で実行され得る。
[0017]「タスク」は、ジョブの基本的な実行単位である。各タスクは、仮想マシン上で実行される。ユーザーは、各タスクに関して、コマンドラインに対するさらなる入力、および入力データに対するポインターを指定することができる。タスクは、そのタスクが実行されている最中に、そのタスクを実行している仮想マシン上で、そのタスクの作業ディレクトリの下にファイルの階層を作成することが可能である。
[0018]「ジョブマネージャータスク」(JMタスク)は、ジョブにおける特殊なタスクである。ジョブマネージャータスクは、オプションであり、したがって、一部のジョブは、JMタスクを使用することなしに実行され得る。ジョブマネージャータスクは、ジョブ内のタスクのすべてに関する単一の制御ポイントをもたらし、そのジョブに関する「マスター」タスクとして使用され得る。ジョブがJMタスクを有する場合、システムは、そのJMタスクを、そのジョブにおける最初のタスクとして起動する。次に、そのJMタスクが、さらなるタスクをそのジョブにサブミットすることができ、さらにこれらのタスクの進行を監視するとともに、タスクの次のバッチをいつサブミットすべきかを制御することができる。このようにして、JMタスクは、ジョブにおけるすべてのタスクのスケジューリングを調整すること、およびタスクの間の依存関係を管理することができる。好ましくは、ジョブマネージャータスクに関してノードまたは仮想マシンに障害が生じた場合、そのJMタスクは、そのJMタスクが、対応するジョブに関して常に実行されているように、別の仮想マシン上で自動的に再スタートされる。さらに、ユーザーは、JMタスクが完了すると、システムが、対応するジョブにおけるすべてのタスクを終了させることができることをシステムに指定することができる。
[0019](仮想マシンプール)仮想マシンとは、処理能力の論理単位を指す。仮想マシンは、物理的プロセッサーと1対1対応を有することが可能であり、または仮想マシンは、複数のプロセッサーに対応することが可能であり、または仮想マシンは、1つまたは複数のプロセッサー上の処理時間のパーセンテージを表すことが可能である。プールに割り当てられた仮想マシンは、任意の所与の時点でそのプールに関する1つまたは複数のタスクを実行することができる。
[0020]様々な実施形態において、作業アイテムに基づいてジョブを潜在的に実行することが可能な仮想マシンが、使用に先立ってその作業アイテムに関するアカウント(すなわち、ユーザー)に対応する少なくとも1つのプールに割り当てられる。「プール」は、仮想マシンの論理グループ化である。作業アイテムは、その作業アイテムに対応するジョブを実行すべき関連する少なくとも1つのプールを常に有する。各アカウントが、そのアカウントに関連する作業アイテムを実行する際に使用するために、そのアカウントがアクセスを得る1つまたは複数のプールを作成することが可能である。通常、アカウントは、そのアカウントに関連するプールに対する排他的アクセスを有する。プールは、作業アイテムがユーザーによってサブミットされた際に作成されることが可能であり、または作業アイテムが、既存のプールに関連付けられることが可能である。プールは、ジョブを実行すべきシステムによって自動的に作成されてもよい。例えば、毎日、特定の時刻に実行される再出現する作業アイテムが、開始時刻にそのジョブを実行するようにプールを自動的に作成させることによって扱われ得る。このプールは、その再出現する作業アイテムを完了した後、毎日、削除され得る。オプションとして、プールは、単一の作業アイテム、単一のジョブ、またはアカウントに対応する作業アイテムの別のサブセットで使用されるように関連付けられることが可能である。
[0021]作業アイテムがユーザーによってサブミットされると、その作業アイテムは、仮
想マシンの1つまたは複数のプールに関連付けられることが可能である。仮想マシンは、任意の好都合な様態でプール内で編成され得る。例えば、すべての仮想マシンが、仮想マシンに関する基礎をなすプロセッサーの地理的ロケーションにかかわらず、単一のプールの中に編成され得る、または単一のプールに割り当てられ得る。別のオプションは、プールに関するすべての仮想マシンが所与の地理的ロケーションにあるように、地理的ロケーションに基づいて仮想マシンを編成することである。さらに別のオプションは、他の変数(例えば、ストレージリソース、ネットワーク待ち時間、ユーザーロケーション/選好、セキュリティ要件)に対する近さなどの、地理的ロケーション以外に基づいて仮想マシンを編成することである。さらに別のオプションは、作業アイテムまたはジョブが作成される際に、プールを自動的に作成し、その後、その作業アイテム、またはそのジョブが終えられると、そのプールを自動的に解体することである。
想マシンの1つまたは複数のプールに関連付けられることが可能である。仮想マシンは、任意の好都合な様態でプール内で編成され得る。例えば、すべての仮想マシンが、仮想マシンに関する基礎をなすプロセッサーの地理的ロケーションにかかわらず、単一のプールの中に編成され得る、または単一のプールに割り当てられ得る。別のオプションは、プールに関するすべての仮想マシンが所与の地理的ロケーションにあるように、地理的ロケーションに基づいて仮想マシンを編成することである。さらに別のオプションは、他の変数(例えば、ストレージリソース、ネットワーク待ち時間、ユーザーロケーション/選好、セキュリティ要件)に対する近さなどの、地理的ロケーション以外に基づいて仮想マシンを編成することである。さらに別のオプションは、作業アイテムまたはジョブが作成される際に、プールを自動的に作成し、その後、その作業アイテム、またはそのジョブが終えられると、そのプールを自動的に解体することである。
[0022]仮想マシンプールは、仮想マシンを編成するための一方法である。仮想マシンに関する別の編成単位が、仮想マシンクラスターである。仮想マシンクラスターは、タスクテナントプロセスなどの、クラウド環境におけるプロセスによって一緒に管理される仮想マシンのグループである。仮想マシンクラスターの中の仮想マシンは、好都合な様態で一緒にグループ化された物理的マシンに対応することが可能である。例えば、仮想マシンクラスターは、米国内もしくは米国の北東部分内などの同一の地理的区域内に、シアトル郡もしくはサンディエゴ郡のような都市内もしくは大都市圏内などの同一の一般的なロケーション内に、またはコンピューティングセンターもしくはデータセンターを形成する接続された、もしくは近くの1つまたは複数の建造物内などの同一の特定のロケーション内に位置する物理的マシンのグループに対応することが可能である。別のオプションは、クラウド環境におけるストレージの指定された部分に対して有利なデータ転送速度を有する物理的マシンのグループに基づく仮想マシンを形成することである。さらに別のオプションは、所与のロケーションにおける物理的マシンに基づいて、複数の仮想マシンクラスターを形成することである。仮想マシンプールは、複数の仮想マシンクラスターにわたることが可能である。タスクテナントなどの、仮想マシンクラスターを管理するためのプロセスは、仮想マシンプールからの仮想マシンを割り当てること、および割り当て解除することができる。また、タスクテナント(または仮想マシンクラスターを管理するための他のプロセス)は、クラスター内の仮想マシン上にタスクをスケジュールすることを、その仮想マシンが割り当てられたプールに対応するジョブのキューに基づいて行うこともできる。タスクテナントが、仮想マシンプールに十分な数を割り当てるためにさらなるマシンを必要とする場合、タスクテナントは、一般的なクラウドコンピューティング環境からさらなる仮想マシンを獲得することができる。同様に、タスクテナントが、余分な仮想マシンを有する場合、タスクテナントは、それらの余分なマシンを一般的なクラウドコンピューティング環境に戻すことができる。
[0023](専用マシン、スタンバイマシン、およびプリエンプション可能なマシン)仮想マシンがプールに割り当てられる際、その仮想マシンは、2つのタイプのうちのいずれかとして割り当てられることが可能である。その仮想マシンは、専用の仮想マシンとして、またはプリエンプション可能な仮想マシンとしてプールに割り当てられることが可能である。専用の仮想マシンまたはプリエンプション可能な仮想マシンとしての仮想マシンのステータスは、その仮想マシンがプールの中に入っている間に変わり得る。
[0024]「専用の」仮想マシンは、プールに、そのプールに割り当てられた作業アイテムまたはジョブによって専用で使用されるように割り当てられるマシンである。オプションとして、専用の仮想マシンは、そのプールにサブミットされた任意のジョブに全般的に利用可能であるのではなく、関連する1つまたは複数の作業アイテムのために専用で使用されるように割り当てられてもよい。仮想マシンは、専用のステータスを有するが、このマシンは、そのプールに関連付けられたアカウントによって使用されるように確保される。
専用のマシンには、他のアカウントからのリソースは与えられず、他のアカウントのためにジョブを実行することはない。
専用のマシンには、他のアカウントからのリソースは与えられず、他のアカウントのためにジョブを実行することはない。
[0025]「プリエンプション可能な」仮想マシンは、或るアカウントのために或るプールの中でタスクを現在、実行しているが、その仮想マシンがそのプールに割り当てられ利用可能でありつづけるという保証はない仮想マシンである。プリエンプション可能な仮想マシンが或るプールに利用可能にされると、そのプリエンプション可能なマシンは、そのプールに割り当てられる。次に、そのプリエンプション可能なマシンにプロビジョニングが行われて、そのプリエンプション可能なマシンが、そのプールのためにジョブを実行するのに使用される。そのプリエンプション可能なマシンは、そのプールに(対応するアカウントのために)、リソース競売においてそのプリエンプション可能な仮想マシン上の処理時間を勝ち取らせることによってなど、任意の好都合な方法で提供されることが可能である。
[0026]専用の仮想マシン、およびプリエンプション可能な仮想マシンを割り当てる際のさらなる因子は、仮想マシンを求める要求が、特定の仮想マシンクラスターに対する親和性を含むかどうかである。仮想マシンクラスターに対する親和性は、様々な理由に基づくことが可能である。仮想マシンクラスターに対する親和性を求める要求の一例が、仮想マシン上で実行されるジョブのためにデータストレージに対する、より良好なアクセス(高いデータ転送速度などの)を有する仮想マシンを得ることが所望されること、または必要とされることによる。このタイプのストレージ親和性に関して、親和性要求は、データに対する所望されるアクセスを有する1つまたは複数の仮想マシンクラスターからの仮想マシンの割り当てを指定することができる。このことは、例えば、データストレージセンターに対して所望される物理的データ接続を有する物理的マシンに対応する仮想マシンのグループを表すことが可能である。別のタイプの親和性が、ジョブ親和性である。仮想マシンによって実行される一部のタイプのジョブには、同一のジョブ、または類似したジョブで作業している仮想マシンの間の相当な量の通信が関与する可能性がある。ジョブ親和性状況において、或るジョブで作業しているすべての仮想マシンが、それらの仮想マシンの間でメッセージが受け渡しされるのを円滑にするために、単一の仮想マシンクラスター(または他の仮想マシン編成単位)内に位置しているようにすることが有益であり得る。単一の仮想マシンクラスターから仮想マシンを選択することは、同一の地理的ロケーションにおける物理的マシンに対応する仮想マシンを選択することに対応し得る。
[0027]プリエンプション可能な仮想マシンとしてアカウントに使用されるように提供される仮想マシンは、通常、クラウドコンピューティング環境において別の目的を有する仮想マシンである。例えば、プリエンプション可能な仮想マシンの1つの源が、障害回復目的でクラウドコンピューティング環境所有者/運用者によって提供される仮想マシンである。安定した動作を提供するため、クラウドコンピューティング環境は、予備で保持される1つまたは複数のグループ仮想マシンを含み得る。これらの仮想マシンは、プロセッサー障害、ネットワーク障害、またはジョブを実行するのにもはや適していないクラウド環境の一部分をもたらす他の任意の種類の事象によって失われたリソースに取って代わるように利用可能である。或るプールに割り当てられた1つまたは複数の専用の仮想マシンが、或る事象のために失われると、それらの失われたマシンが、予備の仮想マシンを使用して置き換えられることが可能である。このことは、クラウドコンピューティング環境におけるリソースの利用可能性を向上させる。しかし、障害事象は稀であることが望ましいので、予備の障害回復マシンを有することは、多数の仮想マシンが、使用されるのを待ってアイドルに置かれていることを、しばしば、意味する。障害事象を扱うために指定されたこれらの仮想マシンのCPUサイクルを無駄にするのではなく、これらの仮想マシンのCPUサイクルが、作業アイテムまたはジョブを実行するプリエンプション可能な仮想マシンとしてプールに割り当てられることが可能である。障害が生じ、システムが、専用のリソースの要件を満たすようにプリエンプション可能なリソースを取り上げる必要がある場合、そのような仮想マシン上で実行されるプリエンプション可能なジョブは、そのプリエンプション可能な仮想マシンが、失われたリソース、または障害が生じたリソースに取って代わる本来の目的のために使用され得るように、実行可能な限り早く(場合により、即時に)停止される。
[0028]プリエンプション可能なマシンの別の源が、余分な容量の仮想マシンである。通常、いずれのネットワークのピーク負荷も、平均負荷とは異なる。その結果、ピーク負荷状況を扱うのに十分なリソースを有するコンピューティング環境には、しばしば、他の時間中に余分なリソースが利用可能である。これらの余分なリソースは、リソースクッションをもたらす。ユーザーが、さらなる専用の仮想マシンを求める要求を行った際、これらの余分な仮想マシンが、ユーザーの要求を満たすように使用され得る。クラウドコンピューティング環境が、専用のマシンのためのピーク負荷未満の負荷を有する場合、1つまたは複数の仮想マシンは、空いている。予備の容量をもたらすために指定されたこれらの仮想マシンのCPUサイクルを無駄にするのではなく、これらの仮想マシンのCPUサイクルが、プリエンプション可能にユーザーおよびプールに割り当てられることが可能である。専用の仮想マシンを求める要求の負荷が増加するにつれ、これらの余分な仮想マシン上で実行されているプリエンプション可能なジョブが、実行可能な限り早く(場合により、即時に)停止される。このことは、これらのプリエンプション可能な仮想マシンが、必要とされる場合にさらなる専用のリソースをもたらすという、これらの仮想マシンの本来の目的で使用されることを可能にする。さらに、または代替として、専用のマシンに関する負荷の一部の増加は、専用のマシンを求めるスケジュールされた要求に起因する。或る仮想マシンが、スケジュールされた時刻における専用のマシンとしての使用のために利用できなくなる場合、その仮想マシンに割り当てられたプリエンプション可能なジョブが、そのスケジュールされた時刻より前に停止されて、そのプリエンプション可能なジョブから専用のリソースへの秩序正しい遷移をもたらすことが可能である。
[0029]一部の状況において、ユーザーが、何らかの将来の時点で多数の専用のマシンにアクセスを有することを所望する可能性がある。一部の状況において、ユーザーは、1つまたは複数の仮想マシンをスタンバイ仮想マシンとして確保することができる。仮想マシンのスタンバイ確保は、将来の何らかの時点で使用されるようにプールまたはアカウントに割り当てられるべき仮想マシンに関するプールまたはアカウントに関連する確保である。使用のために仮想マシンをプロビジョニングすることは、単に、クラウドコンピューティング環境内で十分な仮想マシンリソースが特定され、さらに/または確保されて、要求された際に専用の仮想マシンに変換されるように仮想マシンリソースが利用可能であるようにすることを意味し得る。オプションとして、スタンバイマシンをプロビジョニングすることは、データ、実行ファイル、またはデータと実行ファイルの組み合わせを仮想マシンにプロビジョニングすることを含むことも可能である。
[0030]スタンバイ仮想マシン確保は、仮想マシンの割り振りでも、割り当てでもない。そうではなく、スタンバイ仮想マシン確保は、アイドルな仮想マシン、またはプリエンプション可能な仮想マシンが、スタンバイ確保に関連付けられたユーザーまたはプールに割り当てられた専用の仮想マシンに変換される将来における権利を確保する。プリエンプション可能なジョブは、スタンバイ確保に関連付けられたプールもしくはアカウント、異なる別のプール、または異なる別のアカウントに関連付けられたジョブであり得る。スタンバイ確保がプールまたはアカウントによって行われる際、仮想マシンクラスターからの仮想マシンが、そのプール、またはそのアカウントに割り当てられることはない。そうではなく、その仮想マシンクラスターに対応するスタンバイ確保の数のカウントが記録されて、十分な数のアイドルな仮想マシンまたはプリエンプション可能な仮想マシンが、その仮想マシンクラスターに対応するスタンバイ確保を満たすように利用可能であるようにされる。
[0031]仮想マシンスタンバイ確保は、様々な理由でプールに関連付けられることが可能である。スタンバイマシンの1つの用途は、特定の時間枠中にだけ生じる高い優先度の計算ジョブを有するユーザーのためである。例えば、金融会社が、証券取引所または商品取引所などの1つまたは複数の金融市場の日々の活動の分析を実行することを所望することが可能である。金融市場は、午前9時30分に開き、午後4時00分に閉じるなどの、規定されたスケジュールで開閉する。金融企業は、金融市場が開いている時間帯からのデータを、分析またはシミュレーションを実行する際に使用するために集約することを所望する。分析の目標は、翌日に市場が開く前に従業員に情報を提供することである。そのような分析は、多数の仮想マシンを要求する可能性があるが、それらの仮想マシンは、例えば、午後6時00分から翌朝の午前3時30分までの時間帯の間にしか必要とされない。この時間中、その金融会社は、仮想マシンの利用可能性の保証を所望する。1日のうちの残りの時間中は、その金融会社は、それらのマシンを必要としない。仮想マシン確保をその金融会社のアカウントに関連付けることにより、この目標が実現され得る。確保価格を支払うことと引き換えに、その金融会社は、所望される時間中にそれらのマシンの利用可能性を保証される。所望される時間枠外では、それらの仮想マシンは、その金融企業および/または他のユーザーのためのプリエンプション可能なマシンとして使用され得る。
[0032]スタンバイ確保は、アイドルな仮想マシン、またはプリエンプション可能な仮想マシンを、時間ベースの基準、または負荷ベースの基準に基づいて、ユーザーに対応するプールに割り当てられた専用のマシンに変換するのに使用され得る。一部の状況において、スタンバイ確保は、少なくとも部分的に、所定の時刻、および/または所定の日付に基づく、アイドルな仮想マシン、またはプリエンプション可能な仮想マシンの専用の仮想マシンへの変換を生じさせることが可能である。そのような状況において、スタンバイ確保に基づいて専用の仮想マシンに変換されているプリエンプション可能な仮想マシンは、スケジュールされた利用可能性事象より前に、秩序正しい様態で停止されることが可能である。このことは、時間ベースの基準を有するスタンバイ確保として定義される。時間ベースの基準は、負荷ベースの閾値を定義するのに使用される負荷ベースの基準と対比される。負荷ベースの閾値は、1つまたは複数のクラウドリソースの使用および/または実行に基づく閾値に当たる。好ましくは、負荷ベースの閾値は、時間ベースの基準の使用を除外する。時間ベースの基準、および負荷ベースの基準に加えて、スタンバイ確保に対応する1つまたは複数の仮想マシンを専用の仮想マシンに変換するためのさらに別のオプションは、ユーザーまたはシステム管理者からの要求に基づく。
[0033]スタンバイ確保の別の用途が、ジョブをスケールアウトする際に向上したパフォーマンスを可能にすることである。例えば、小売店が、小売業者のウェブサイトを調べるため、および発注するためのオンライントラフィックなどの、休日を控えたショッピングシーズン中のさらなるオンライントラフィックを扱うのにクラウドコンピューティングリソースを使用することが可能である。過去の経験に基づいて、その小売業者が、或るレベルのオンライン活動を予期し、対応する数の専用の仮想マシンを確保する。しかし、オンライン活動が予期されるより多い場合、その小売業者は、スタンバイ確保を介してさらなるマシンを確保することもする。次に、その小売業者は、予期されるよりも高いレベルの活動を示す1つまたは複数の閾値を設定することができる。これらの閾値が生じると、スタンバイ確保が、アイドルな仮想マシン、またはプリエンプション可能な仮想マシンを専用のマシンに変換して、その小売業者の顧客に遅い応答時間を経験させることなしに、その小売業者がその追加のオンライントラフィックを扱うことを可能にするのに使用され得る。この状況において、スタンバイ確保は、活動閾値がいつ満たされる分らない可能性があるので、予測不能な時刻に専用のマシンに変換される可能性がある。活動閾値が満たされると、アイドルな仮想マシン、またはプリエンプション可能な仮想マシンが、スタンバイ確保に関連付けられたプールに割り当てられた専用の仮想マシンに変換される。変換に先立ってその仮想マシン上でプリエンプション可能なタスクが実行されている場合、そのプリエンプション可能なタスクが、その仮想マシンを専用のマシンに変換するのに先立って停止される。オプションとして、活動閾値は、時間ベースの基準を含まない。
[0034](分散ネットワーク環境におけるコンピューティングリソースの編成の例)クラウドコンピューティング環境のユーザーは、通常、クラウドコンピューティングリソースを使用してジョブを実行することを所望する。それらのジョブには、通常、クラウドコンピューティング環境を介してアクセス可能なロケーションに格納されたデータに対してジョブを実行することがかかわる。運用者がクラウドコンピューティング環境を提供する一方法が、その環境をいくつかの層として提供することである。図1は、クラウドコンピューティング環境内でタスクを実行することに適したシステムの例を概略で示す。図1のシステムは、タスクランタイム層110と、第三者タスクランタイム層120と、リソース管理層130と、スケジューリング−実行層140とを含む。
[0035]図1に示される実施形態において、タスクランタイム層110は、ユーザー105からのタスクのための実行環境およびセキュリティコンテキストをセットアップすることを担う。また、タスクランタイム層110は、タスクを起動すること、およびタスクのステータスを監視することも可能である。タスクランタイム層110は、各仮想マシン上で実行されているシステムエージェントの形態をとることが可能である。また、タスクランタイム層は、ユーザーのタスク実行ファイルの中にリンクされ得るランタイムライブラリーを含むことも可能である。タスクランタイム層110の一部としてランタイムライブラリーを有することにより、システムエージェントによって実行されるタスクに、潜在的に、より豊かな能力がもたらされ得る。ランタイムライブラリーの例には、タスクの間の迅速な通信を可能にする1つまたは複数の効率的な通信ライブラリー、他の仮想マシンおよび/または他のタスクからファイルを読み取る効率的な遠隔ファイルアクセスライブラリーサポート、タスクがチェックポイント設定すること(例えば、バイナリーラージオブジェクトの中に)、および再開することを可能にするチェックポイントライブラリー、ログ記録ライブラリー、および仮想マシンのプール内で所与のタスクを実行する複数の仮想マシンにわたって使用されるべき分散ファイルシステムを提供するためのライブラリーが含まれる。
[0036]第三者タスクランタイム層120は、タスクランタイム層110の上にさらなるランタイムが構築されて、実行されることを可能にする。また、第三者タスクランタイム層120は、ジョブに関するタスクの実行を調整するためのさらなる能力をもたらすことも可能である。例には、仮想マシンのプール内で所与のタスクを実行する複数の仮想マシンにわたって使用されるべき分散ファイルシステムを提供するためのライブラリーに対するMapReduceランタイムが含まれ得る。このことは、ユーザーが、ユーザーのジョブまたはタスクに合わせて仕立てられた様態でクラウドコンピューティング環境を編成することを可能にする。一部の実施形態において、ジョブマネージャータスクが、ユーザーが第三者ランタイム層を使用して、クラウドコンピューティングリソースを実行すること、および/または制御することを可能にすることを円滑にすることができる。
[0037]リソース管理層130は、クラウドコンピューティング環境において利用可能なコンピューティングリソースを管理することを扱う。1つのオプションは、リソース管理層130に異なる3つのレベルでリソースを管理させることである。第1のレベルで、リソース管理層130が、ジョブ(すなわち、作業アイテムの実行)に関連付けられた仮想マシンの割り当ておよび割り当て解除、ならびにタスクに関連付けられた各仮想マシン上に格納されたファイルを管理する。第2のレベルで、ジョブに関連付けられた仮想マシンが、マシンのプールにグループ化され得る。プールは、1つまたは複数のジョブおよび/
または作業アイテムに関連付けられた仮想マシンを包含することが可能である。実施形態に依存して、単一のプールは、データセンター内のすべての仮想マシンクラスター、地理的区域内の複数のデータセンターにわたる複数の仮想マシンクラスター、または複数の地理的区域におけるデータセンターにわたる複数のクラスターなどの、複数の仮想マシンクラスターにわたることが可能である。単一のプールが、数百万などの、多数の仮想マシンを包含することが可能である。仮想マシンは、最大で数十億までなど、多数のプールの中に包含されることが可能である。第3のレベルで、リソース管理層は、所与のグループのプールの中でジョブまたは作業アイテムに関連付けるのに利用可能な仮想マシンの量を管理する。このことは、システムの現在の負荷に基づいた、使用されるコンピューターリソースの量の動的な調整を可能にする。さらに、現在のグループのプールによって使用されていない仮想マシンが、他のグループのプールに組み込まれるように、解放されてクラウドコンピューティング環境に戻されることが可能である。
または作業アイテムに関連付けられた仮想マシンを包含することが可能である。実施形態に依存して、単一のプールは、データセンター内のすべての仮想マシンクラスター、地理的区域内の複数のデータセンターにわたる複数の仮想マシンクラスター、または複数の地理的区域におけるデータセンターにわたる複数のクラスターなどの、複数の仮想マシンクラスターにわたることが可能である。単一のプールが、数百万などの、多数の仮想マシンを包含することが可能である。仮想マシンは、最大で数十億までなど、多数のプールの中に包含されることが可能である。第3のレベルで、リソース管理層は、所与のグループのプールの中でジョブまたは作業アイテムに関連付けるのに利用可能な仮想マシンの量を管理する。このことは、システムの現在の負荷に基づいた、使用されるコンピューターリソースの量の動的な調整を可能にする。さらに、現在のグループのプールによって使用されていない仮想マシンが、他のグループのプールに組み込まれるように、解放されてクラウドコンピューティング環境に戻されることが可能である。
[0038]図1に示される実施形態において、スケジューリング−実行層140は、ユーザーによって実行されている作業アイテム、ジョブ、およびタスクを管理する。スケジューリング−実行層140は、スケジューリング決定を行い、ジョブおよびタスクを起動することを担うとともに、障害が生じると、再試行する。そのようなスケジューリング−実行層140は、様々なレベルでジョブおよび/またはタスクを管理するための構成要素を含み得る。
[0039]前述した層は、複数の地理的ロケーションにおけるプロセッサーを含むクラウドコンピューティング環境において実施され得る。図2は、異なるロケーションにおけるプロセッサーがどのように単一のクラウドコンピューティングアーキテクチャ内部で統合され得るかの例を概略で示す。
[0040]図2で、1つまたは複数のタスクテナント215が、仮想マシンのプールを管理するのに使用されることが可能である。タスクテナント215は、セットの仮想マシンを保持することが可能である。1名または複数名のユーザーのジョブが、仮想マシンの1つまたは複数のプールの一部としてのタスクテナント215内の仮想マシン上で実行されることが可能である。1つまたは複数のタスクテナント215が、所与の地理的区域内で使用され得る。タスクテナント215の責務には、セットの仮想マシンを保持すること、タスクテナント内のリソース利用に基づいて、タスクテナントを動的に成長させること、または縮小することが含まれ得る。このことは、タスクテナント215が、増大した顧客需要に対応するようにタスクテナント内の仮想マシンの数を増やすことを可能にする。また、このことは、タスクテナント215が、使用されていない仮想マシンを解放することを可能にして、それらの仮想マシンが、他の顧客のためのサービスを扱うデータセンター内のホストされる他のサービスに割り当てられ得るようにもする。タスクテナント215の別の責務は、プール割り当て/割り当て解除/管理ロジックの一部を実施することであり得る。このことは、タスクテナント215が、顧客のためのタスクに関連付けられたプールに仮想マシンがどのように割り当てられるかを決定することに参加することを可能にする。また、タスクテナント215は、タスクテナント内の仮想マシン上のタスクのスケジューリングおよび実行を担うことも可能である。
[0041]図2に示される実施形態において、複数のタスクテナント215を制御する1つまたは複数のタスクロケーションサービス225が提供される。その複数のタスクテナントは、所与の地理的区域内のすべてのタスクテナント、世界中からの様々なタスクテナント、またはタスクテナントの他の任意の好都合なグループ化に対応することが可能である。図2で、「米国北部」および「米国南部」というラベルが付けられた地域にサービスを提供するタスクロケーションサービス225が示される。タスクロケーションサービス225の責務は、その所与の地理的区域に関するタスクアカウントの管理を含み得る。また、タスクロケーションサービス225は、ユーザーがクラウドコンピューティング環境と対話することを可能にするためのアプリケーションプログラミングインターフェース(API)も含み得る。そのようなAPIは、仮想マシンのプール、プール管理ロジック、および所与の地理的区域内のタスクテナントにわたるプール管理ロジックの調整に関連するAPIを扱うことを含み得る。また、それらのAPIには、ユーザーによってサブミットされたタスクを扱うため、ならびにユーザータスクに関連する作業アイテムまたはジョブを保持するため、スケジュールするため、および終了させるためのAPIがさらに含まれ得る。それらのAPIには、地理的区域内のすべての作業アイテム、ジョブ、タスク、およびプールに関する統計収集、集計、および報告のためのAPIがさらに含まれ得る。さらに、それらのAPIには、利用可能な仮想マシンを、仮想マシンのスポット市場に基づいて短期でユーザーにプリエンプション可能な仮想マシンとして競売することを可能にするためのAPIが含まれ得る。また、それらのAPIには、使用量を測定するため、および料金請求サポートをもたらすためのAPIがさらに含まれ得る。
[0042]タスクロケーションサービス225は、グローバルロケーションサービス235によって一緒に結び付けられることが可能である。グローバルロケーションサービス235は、タスクロケーションサービス225と連携してタスクアカウントを管理することを含め、アカウント作成、およびアカウントの管理を担うことが可能である。このことには、障害回復を担うこと、ならびに大規模なデータセンター障害が生じた場合に、作業アイテムおよびジョブの利用可能性を担うことが含まれる。このことには、何らかの理由でデータセンターが利用できないことにより、異なるロケーションにおいて作業アイテムまたはジョブを実行することが含まれ得る。また、このことには、顧客が、顧客の作業アイテム、ジョブ、およびプールを1つのデータセンターから別のデータセンターに移すことを可能にすることがさらに含まれ得る。通常、1つだけの活性のグローバルロケーションサービス235が存在する。この活性のグローバルロケーションサービス235は、様々なタスクロケーションサービス225、ならびにデータストレージ(図示せず)を管理するためのサービス構成要素と通信状態にある。グローバルロケーションサービスは、グローバルアカウントネームスペース237を保持することが可能である。
[0043]図2におけるシステムの動作の例として、架空の顧客またはユーザー217が、グローバルロケーションサービス235によって提供されるインターフェースを介してタスクアカウントを作成することが可能である。この例において、架空の顧客は、サリーと呼ばれる。タスクアカウントを作成するユーザー要求が、オプションとして、そのアカウントが作成される必要がある地理的区域を指定してもよい。この例において、サリーが、米国北部地域に関連するアカウントを要求する。これに応答して、グローバルロケーションサービス235が、そのアカウントを作成するよう、要求された地理的区域(米国北部)に対応するタスクロケーションサービス225と連絡をとる。地域が要求されていない場合、タスクアカウントは、要求側のユーザーに関連するロケーションに基づくなどの、任意の好都合な方法で選択された地域内で作成されることが可能である。また、グローバルロケーションサービス235は、米国南部などの少なくとも別の地域と連絡をとって、そのアカウントの障害回復コピーが作成されるようにもする。オプションとして、サリーが、US南部が障害回復のためのフェイルオーバ地域の役割をすることを要求することも可能であり、または米国南部が、任意の好都合な方法でシステムによって自動的に割り当てられることも可能である。タスクロケーションサービス225は、タスクロケーションサービス225の地理的区域内のすべてのアカウントに関するすべての情報を保持する。米国北部および米国南部に関してタスクロケーションサービス225においてアカウントを作成することに成功した後、グローバルロケーションサービス235は、米国北部に関するタスクロケーションサービス225の仮想IPアドレスをポイントするようにサリーのアカウントに関するタスクサービスエンドポイントを登録する。例えば、「sally.task.core.windows.net」のようなホスト名を、米国北部におけるタスクロケーションサービス225の仮想IPアドレスにマップするドメインネームサービス(DNS)レコードが、作成されることが可能である。このことにより、サリーに関するタスクアカウントの作成が完了する。データセンター障害が将来の時点で生じた場合、グローバルロケーションサービス235は、米国南部をポイントするようにDNSレコードを更新することができる。
[0044]アカウントが作成された後、顧客、サリーは、そのアカウントにアクセスし、ホスト名「sally.task.core.windows.net」に照らしてクラウドコンピューティング環境と対話するためのAPIにアクセスする要求を送信することが可能である。例えば、サリーは、新たな作業アイテム、または新たなタスクを作成する要求を発行するようAPIにアクセスすることが可能である。次に、DNSサーバーが、そのホスト名を解決することが可能であり、その要求が、正しいタスクロケーションサービステナント225にルーティングされる。この例において、要求は、米国北部に関するタスクロケーションサービステナント225にルーティングされ、タスクロケーションサービステナント225が、その要求を処理し、要求された作業アイテム、ジョブ、またはタスクを作成する。
[0045]図3は、タスクロケーションサービスに関する潜在的な構成である。図3に示される構成において、タスクロケーションサービスは、1つまたは複数のアカウントサーバー321を含み得る。これらのアカウントサーバーは、作成、削除、またはプロパティー更新を含む、所与の地理的区域におけるアカウントに関するアカウント管理を扱う。アカウントフロントエンド322が、アカウントサービスのためのフロントエンドノードの役割をする。アカウントフロントエンド322は、図に示されるとおり、アカウント仮想IPアドレス324の背後にある。アカウントフロントエンド322は、アカウントを作成するAPI要求、またはアカウントを削除するAPI要求などの、グローバルロケーションサービスから来るアカウントAPI要求を処理する。
[0046]図3の構成は、1つまたは複数のプールサーバー331をさらに含む。プールサーバー331は、所与の地理的区域内の仮想マシンのプールに関するプール管理およびプールトランザクションを扱う。プールサーバー331は、プール作成、プール削除、およびプールプロパティー更新を扱う。プールサーバー331は、複数のタスクテナントにわたる高レベルの仮想マシン割り当てアルゴリズムをさらに管理する。仮想マシン割り当ては、所与のユーザーのためのストレージに対する仮想マシンの接続を考慮に入れることが可能である。プールサーバーは、仮想マシンの割り当てと関係する他のタスクをさらに実行することが可能である。
[0047]図3の構成は、1つまたは複数の作業アイテムスケジューラーまたはジョブスケジューラー(WIJ)336をさらに含む。WIJスケジューラー336は、作業アイテムまたはジョブの作成、削除、および更新を扱う。さらに、作業アイテムまたはジョブが開始する、または終了する際に、ユーザーがプールの自動的な作成および/または破壊を要求した場合、WIJスケジューラー336は、それらの作業アイテムまたはジョブに関連付けられたプールの作成および削除を開始することが可能である。WIJスケジューラー336は、スケーリングのために汎用のパーティション機構をさらに使用する。或る実施形態において、各タスクロケーションサービスにおいて複数のWIJスケジューラー336が存在し、それらのWIJスケジューラーのそれぞれが、或る範囲の作業アイテムを扱う。
[0048]プールサーバー331およびWIJスケジューラー336は、タスクロケーションサービスフロントエンド338を介してユーザーから要求を受信する。タスクロケーションフロントエンド338は、ユーザーからの要求を処理するように対応する構成要素を呼び出すことも担う。タスクロケーションサービスフロントエンド338は、図に示されるとおり、アカウント仮想IPアドレス334の背後にある。
[0049]図3の構成は、タスクロケーションサービスマスター342をさらに含む。或る実施形態において、タスクロケーションサービスマスター342は、2つの主要な責務を有する。第1に、タスクロケーションサービスマスター325は、タスクロケーションサービス225において対応するサーバーに関するパーティションロジックを実施するためのマスターシステムの役割をする。さらに、タスクロケーションサービスマスター342は、タスクロケーションサービスの地理的区域全体に関して、各スポット周期の始めにプリエンプション可能な仮想マシンに関する新たな市場価格を計算することを担うことが可能である。タスクロケーションサービスマスター342は、プールサーバーおよびタスクテナントから現在の指値、およびリソース利用可能性情報を収集することができ、それに相応して新たな市場価格を計算する。代替として、タスクロケーションサービスマスターは、指値およびリソース利用可能性情報をスポット価格市場サービスに送信することができる。また、タスクロケーションサービスマスター342は、地理的区域内のすべてのタスクテナントにわたるプリエンプション可能な仮想マシンについての高レベルの割り当て誘導をプールサーバーに対してさらに行う。
[0050]コンピューティング環境の活動および振る舞いを追跡するために、タスクロケーションサービスマスター342が、1つまたは複数の統計集計サーバー355と通信することが可能である。統計集計サーバーは、タスク、ジョブ、作業アイテム、およびプールに関する詳細な統計を収集すること、および集計することを担う。システムにおけるその他の構成要素は、タスクおよび仮想マシンに関する細かい統計を発する。統計集計サーバーは、タスクレベルの統計、または仮想マシンレベルの統計からのこれらの細かい統計を集計して、作業アイテム統計、アカウントレベルの統計および/またはプールレベルの統計にする。その統計が、APIを介して使用されるように公開されることが可能である。さらに、統計集計サーバーは、料金請求の際に使用するために各アカウントに関する時間ごとの測定レコードを生成することを担うことが可能である。
[0051]図4は、タスクテナントに関する構成要素、および対応する責務の例を含む、タスクテナントの実施形態の例示的な高レベルのアーキテクチャを示す。前述したとおり、タスクテナントは、仮想マシンのプールを管理することを支援することが可能である。図4に示される実施形態において、タスクテナントは、1つまたは複数のタスクテナントフロントエンド422を含む。タスクテナントフロントエンド422は、タスクロケーションサービスとタスクテナントの間で要求を受け渡しすることを含む、タスクテナントと、そのタスクテナントに対応するタスクロケーションサービスの間の通信のために内部で使用されるタスクテナント仮想IPアドレス424の背後にある。
[0052]図4に示される実施形態において、タスクテナントは、タスクスケジューラー436をさらに含む。タスクスケジューラー436は、タスクテナント内でローカルタスクスケジューリング決定を行うことを担い得る。タスクスケジューラー436は、タスクスケジューラー536が制御する各仮想マシン上でいずれのタスクが実行されるべきかを決定する。例えば、ユーザーによってサブミットされた作業アイテムまたはジョブが、スケジュールされるべきタスクのリストを包含するキューのセットを有することが可能である。タスクスケジューラー436は、キューのそのセットからタスクを受け取り、そのジョブに関連付けられたプールの中の利用可能な1つまたは複数の仮想マシンを選択し、その仮想マシンと連絡をとって、これらのタスクをスケジュールする。タスクスケジューラー436は、ジョブに関連付けられた優先度値に基づいてスケジューリング決定を行うことも可能である。さらに、タスクスケジューラー436は、タスクテナント内部の仮想マシンを常に把握している。タスクスケジューラー436は、プールサーバーと協働して、プールに/から仮想マシンを割り当てる/割り当て解除する。さらに、タスクスケジューラー436は、それらの仮想マシンに対してハートビートを維持し、ハートビートを介してプールメンバシップについて仮想マシンと同期し、さらにそれらの仮想マシンの再スタート/イメージ再作成を制御する。タスクスケジューラー436のさらに別の機能は、タスクテナントのサイズを常に把握していることであり得る。タスクテナント内の仮想マシンの現在の利用に基づいて、タスクスケジューラーは、タスクテナントを成長させ、または縮小して、タスクテナントが、そのタスクテナントに関連付けられたタスクを実行するのに十分な数の仮想マシンを有するようにすることができる。同様に、タスクテナント内に余りにも多くの仮想マシンが置かれている場合、それらのマシンが、データセンター内のホストされる他のサービスによって使用されるように解放され得る。
[0053]また、図4は、タスクテナントに関連付けられた複数の仮想マシンも示す。図4に示される実施形態において、それらの仮想マシンのそれぞれは、タスク仮想マシンエージェント450(TVM)を含む。或る実施形態において、タスク仮想マシンエージェント450は、仮想マシン上でタスクを起動すること、ならびにそれらのタスクに関するディレクトリ構造および許可をセットアップすることを担う。タスク仮想マシンエージェント450は、同一のプール内の仮想マシン間のトラフィックだけを許すように(そのプールが内部通信を必要とする場合)、仮想マシン上でオペレーティングシステムファイアウォールをさらに構成する。前述したとおり、タスクスケジューラー436が、タスク仮想マシンエージェント450を介して仮想マシンに対してハートビートを維持する。このことは、タスクスケジューラー436が、それらの仮想マシンの健康状態を監視すること、およびタスク仮想マシンエージェントに関するプールメンバシップ情報を同期することを可能にする。
[0054](クラウドコンピューティング環境におけるジョブの実行の例)後段の架空の例は、クラウドコンピューティング環境における専用の仮想マシン、スタンバイ仮想マシン、およびプリエンプション可能な仮想マシンの動作および対話を例示するように与えられる。これらの例において、説明および添付の図を簡単にするために少数の仮想マシンが説明される。しかし、本明細書で説明される概念は、所望される任意の数の仮想マシンに拡大され得ることが当業者には認識されよう。
[0055]アベルという名前のユーザーが、クラウドコンピューティング環境においてジョブを実行するためのアカウントを有する。ジョブは、ビジネスのデータマイニングおよび管理を実行すること、科学的計算を実行すること、または最終消費者トラフィックを扱うことなどの任意のタイプのコンピューティングを実行するためであり得る。初期要求の中で、アベルが、5つの専用のマシン、および3つのスタンバイマシンを要求する。この例において、演算は、ストレージの中に保持されている関連するデータを有し、アベルは、アベルのデータに関するストレージサーバーに対して、より高い通信速度、および/またはより良好な接続を有するマシンの選好を示す。
[0056]図5は、アベルの要求を満足させるようにマシンを割り当てること、および関連付けることの例を示す。図5で、異なる2つのタスクテナント510および511の内部の仮想マシンが示される。タスクテナント510は、アベルのデータが格納されているストレージ520に対する、より高いデータ転送速度、および/またはより高い接続性に対応する別の特徴を有する。このより高い接続性を活用することを所望する、アベルなどのユーザーが、タスクテナント510に対する親和性を有する要求をサブミットすることが可能である。図5は、タスクテナント510内、およびタスクテナント511内にそれぞれ9つの仮想マシンを示す。図5に示される仮想マシンは、代表的であり、任意の好都合な数のさらなるマシンが、タスクテナント510、またはタスクテナント511によって管理され得る。
[0057]図5で、タスクテナント内にいくつかの状態にあるマシンが示され得る。ユーザーに対応するプールに割り当てられた仮想マシンは、(?)Dという表記で示される専用のマシン、または(?)Pという表記で示されるプリエンプション可能なマシンであり得る。さらに、タスクテナント内のマシンは、アイドルであり得る。各タスクテナントは、タスクテナントに関連付けられた要求されるスタンバイ確保の数を追跡するカウントも含む。スタンバイ確保が、特定のタスクテナント(または他の仮想マシンクラスター)に対する親和性を有する要求の一部ではない場合、スタンバイ確保は、任意の好都合なタスクテナントに関連付けられ得る。オプションとして、グローバルカウントおよび/またはユーザー別のカウントが、スタンバイ確保の数を追跡するのに使用されることも可能である。そのようなグローバルカウントおよび/またはユーザー別のカウントは、タスクテナントに関するスタンバイ確保を追跡することの代わりに、またはそうすることに加えて使用されることが可能である。タスクテナントに対する親和性を有するスタンバイ確保の場合、タスクテナントに関連付けられたスタンバイ確保を追跡することが、選好される。
[0058]図5で、アベルによって要求された5つの専用の仮想マシンが、タスクテナント510における利用可能な仮想マシンから割り当てられる。これらの専用のマシンは、図5における参照符号531で示され、アベル専用であることを表す表記A(D)を含む。仮想マシン546は、デイビッド、つまり、D(D)に関連付けられた専用のマシンである。図5に示される初期構成において、残り3つの仮想マシン557は、アイドルである。ユーザー、アベルに対応するプールのための3つのスタンバイ確保が、スタンバイカウント517によってやはり追跡される。アベルのためのスタンバイ確保は、タスクテナントに対する要求される親和性のため、タスクテナント510に関連付けられる。タスクテナント511が、他の1名または複数名のユーザーに専用のマシンとして割り当てられた2つのマシン562を含む。これらのマシンは、R(D)として表される。タスクテナント511における残りの仮想マシン588は、アイドルである。他のユーザーからのスタンバイ確保のため、タスクテナント511に関するスタンバイカウント518は、7である。タスクテナント511に関するスタンバイカウントは、タスクテナント511に対する親和性を有するスタンバイ確保を示すことが可能であり、またはそのスタンバイカウントは、タスクテナント511に対するスタンバイ確保の名目上の関連付けを反映することが可能であり、したがって、何らかのタスクテナントが、現在のすべてのスタンバイ確保を満足させる十分な数の専用でないマシンを保持する責務を有する。
[0059]アベルのアカウントに仮想マシンを割り当てた後、アベルによってサブミットされた任意の作業アイテムが、専用のマシン531上で実行される。作業アイテムが全く利用可能でない場合、専用の仮想マシンは、アイドルのままである。
[0060]或る期間の後、ユーザー、ベイカーおよびオリバーが、さらなるいくつかのコンピューティングリソースを使用することを決定する。さらなるリソースの使用のタイミングは、緊急ではなく、したがって、ベイカーおよびオリバーはそれぞれ、5つのプリエンプション可能な仮想マシンを要求する。次の割り当て期間中、オリバーとベイカーの両方からもたらされる指値が、要求された5つのプリエンプション可能な仮想マシンの割り当てを獲得するのに十分である。この例において、オリバーからもたらされる指値の方が、ベイカーからもたらされる指値より高い。このことにより、オリバーのためのプリエンプション可能なマシンが、ベイカーのためのプリエンプション可能なマシンと比べて、より高い優先度を有することがもたらされる。図6は、ユーザー、オリバーに今や、タスクテナント510および511において、プリエンプション可能なマシンとして仮想マシン672および673、つまり、O(P)が割り当てられている。これらのマシンは、オリバーに対応するプールに割り当てられる。同様に、タスクテナント511における仮想マシン677が、B(P)表記で示されるとおり、ベイカーに対応するプールに割り当てられる。
[0061]図7は、スタンバイ確保を専用の仮想マシンに変換することを求めるアベルによる要求の後、アベルに割り当てられた仮想マシンに関する構成の例を示す。仮想マシン546は、専用のマシンとしてデイビッドに割り当てられ、したがって、さらなる専用のマシンを求めるアベルからの要求による影響を受けない。代わりに、オリバーに割り当てられたタスクテナント510からの3つのプリエンプション可能な仮想マシンが、アベルに割り当てられた専用の仮想マシン733に変換される。アベルは、すべてのスタンバイ確保を専用の仮想マシンに変換しており、さらなるスタンバイ確保を全く要求していないため、タスクテナント510に関するスタンバイカウントは、0に減少する。
[0062]図7に示される例において、タスクテナント510においてオリバーに割り当てられた仮想マシンに、アベルによって要求された親和性のためにプリエンプションが行われるように選択されている。しかし、プリエンプション可能な仮想マシンに関するオリバーの指値の方が、ベイカーの指値より高く、オリバーに割り当てられたプリエンプション可能な仮想マシンのより高い優先度につながっている。オリバーのより高い優先度のプリエンプション可能なマシンを復元するのに、3つの仮想マシンが、タスクテナント511からオリバーに割り当てられることが可能である。通常、1つのプールからのプリエンプション可能なマシンの、別のプールの中のプリエンプション可能なマシンへの割り当ての変更は、新たな割り当て期間の始めに行われる。しかし、専用の仮想マシンを求めるアベルの要求によるオリバーの移動のため、タスクテナント511におけるプリエンプション可能なマシンが、割り当て期間の終わりを待つことなしに、オリバーに再割り当てされることが可能である。このことが、オリバーに対するマシン874のプリエンプション可能な仮想マシンとしての割り当てによって図8に示される。この例において、オリバーに再割り当てされる仮想マシンは、最低の優先度を有する仮想マシンを選択することによって選択される。このことは、アイドルである仮想マシン、最低の指値に対応する仮想マシン、または別の理由で最低の優先度を有するプリエンプション可能な仮想マシンを表すことが可能である。
[0063]いくつかの所望される演算ジョブを完了した後、アベルのコンピューティングリソースの必要性は、元のレベルに戻る。手動で、または自動的に、アベルは、5つの専用のマシン、および3つのスタンバイマシンへのリソースの低減を要求する。この低減要求の結果が、図9に概略で示される。アベルによって要求された専用のリソースの低減は、利用可能な仮想マシンの数の増加をもたらす。このことは、プリエンプション可能なマシンを求めるベイカーの要求の残りの部分が、仮想マシン978によって示されるとおり、満足させられることを可能にする。また、タスクテナント510に関するスタンバイカウントも、タスクテナント510に対する親和性を有するアベルによって要求されたスタンバイ確保を反映するように3に再び増加される。
[0064](さらなる実施形態)本発明の様々な実施形態の概略を簡単に説明してきたので、次に、仮想マシンを実装するのに適した例示的な動作環境を説明する。図面を全体的に参照し、特に図10を最初に参照すると、本発明の実施形態を実装するための例示的な動作環境が示され、コンピューティングデバイス1000として全体的に示されている。コンピューティングデバイス1000は、適切なコンピューティング環境の一例に過ぎず、本発明の用法または機能の範囲について全く限定を示唆することを意図するものではない。また、コンピューティングデバイス1000が、例示される構成要素のうちのいずれの構成要素に関しても、いずれの組み合わせに関しても全く依存関係も要件も有するものと解釈してはならない。
[0065]本発明の実施形態は、コンピューター、または携帯情報端末もしくは他のハンド
ヘルドデバイスなどの他のマシンによって実行されている、プログラムモジュールなどのコンピューター実行可能命令を含むコンピューターコードまたはマシンによる使用が可能な命令の一般的な脈絡で説明され得る。一般に、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含むプログラムモジュールとは、特定のタスクを実行する、または特定の抽象データ型を実装するコードを指す。本発明は、ハンドヘルドデバイス、家庭用電子機器、汎用コンピューター、さらなる専用コンピューティングデバイスなどを含む、様々なシステム構成で実施され得る。また、本発明は、通信ネットワークを介して結び付けられた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実施されることも可能である。
ヘルドデバイスなどの他のマシンによって実行されている、プログラムモジュールなどのコンピューター実行可能命令を含むコンピューターコードまたはマシンによる使用が可能な命令の一般的な脈絡で説明され得る。一般に、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含むプログラムモジュールとは、特定のタスクを実行する、または特定の抽象データ型を実装するコードを指す。本発明は、ハンドヘルドデバイス、家庭用電子機器、汎用コンピューター、さらなる専用コンピューティングデバイスなどを含む、様々なシステム構成で実施され得る。また、本発明は、通信ネットワークを介して結び付けられた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実施されることも可能である。
[0066]図10を引き続き参照すると、コンピューティングデバイス1000が、以下のデバイス、すなわち、メモリー1012、1つまたは複数のプロセッサー1014、オプションの1つまたは複数のプレゼンテーション構成要素1016、入出力(I/O)ポート1018、オプションの入出力構成要素1020、および例示的な電源1022を直接に、または間接的に結合するバス1010を含む。バス1010は、1つまたは複数のバス(アドレスバス、データバス、またはアドレスバスとデータバスの組み合わせ)であり得るものを表す。図10の様々なブロックは、明瞭にするために線で示されるものの、現実には、様々な構成要素を線引きすることは、そのように明確ではなく、喩えとして、線は、より正確にはグレーであり、あいまいであることになる。例えば、ディスプレイデバイスなどのプレゼンテーション構成要素を入出力構成要素と見なすこともできる。さらに、多くのプロセッサーは、メモリーを有する。本発明の発明者らは、当技術分野の性質がそのようなものであることを認識しており、図10の図面は、本発明の1つまたは複数の実施形態に関連して使用され得る例示的なコンピューティングデバイスを例示するに過ぎないことを繰り返しておく。「ワークステーション」、「サーバー」、「ラップトップ」、「ハンドヘルドデバイス」などのカテゴリーの間の区別は、これらすべてのカテゴリーが、図10の範囲内で企図され、「コンピューティングデバイス」を参照するので、行われない。
[0067]コンピューティングデバイス1000は、通常、様々なコンピューター可読媒体を含む。コンピューター可読媒体は、コンピューティングデバイス1000によってアクセスされ得る任意の利用可能な媒体であることが可能であり、揮発性媒体と不揮発性媒体、リムーバブルメディアと非リムーバブルメディアをともに含む。例として、限定としてではなく、コンピューター可読媒体は、コンピューター記憶媒体と、通信媒体とを備えることが可能である。コンピューター記憶媒体には、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実装された揮発性媒体および不揮発性媒体、リムーバブルメディアおよび非リムーバブルメディアが含まれる。コンピューター記憶媒体には、ランダムアクセスメモリー(RAM)、読み取り専用メモリー(ROM)、電子的に消去可能なプログラマブル読み取り専用メモリー(EEPROM)、フラッシュメモリーもしくは他のメモリー技術、CD−ROM、デジタルバーサタイルディスク(DVD)もしくは他のホログラフィックメモリー、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望される情報を符号化するのに使用され得るとともに、コンピューティングデバイス500によってアクセスされ得る他の任意の媒体が含まれるが、以上には限定されない。或る実施形態において、コンピューター記憶媒体は、実体のあるコンピューター記憶媒体から選択され得る。別の実施形態において、コンピューター記憶媒体は、一時的でないコンピューター記憶媒体から選択され得る。
[0068]通信媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータを通常、搬送波または他のトランスポート機構などの変調されたデータ信号として実現し、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、
信号内に情報を符号化するように特性のうちの1つまたは複数が設定された、または変更された信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークもしくは直接配線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、および他のワイヤレス媒体などのワイヤレス媒体が含まれる。また、前述の媒体のうちの任意の媒体の組み合わせも、コンピューター可読媒体の範囲内に含められなければならない。
信号内に情報を符号化するように特性のうちの1つまたは複数が設定された、または変更された信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークもしくは直接配線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、および他のワイヤレス媒体などのワイヤレス媒体が含まれる。また、前述の媒体のうちの任意の媒体の組み合わせも、コンピューター可読媒体の範囲内に含められなければならない。
[0069]メモリー1012は、揮発性メモリーおよび/または不揮発性メモリーの形態のコンピューター記憶媒体を含み得る。このメモリーは、リムーバブルであっても、非リムーバブルであっても、リムーバブルと非リムーバブルの組み合わせであってもよい。例示的なハードウェアデバイスは、ソリッドステートメモリー、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス1000は、メモリー1012または入出力構成要素1020などの様々なエンティティーからデータを読み取る1つまたは複数のプロセッサーを含む。プレゼンテーション構成要素1016は、ユーザーまたは他のデバイスにデータ指示を提示する。例示的なプレゼンテーション構成要素には、ディスプレイデバイス、スピーカ、印刷構成要素、振動構成要素などが含まれる。
[0070]入出力ポート1018は、コンピューティングデバイス1000が、いくつかは組み込まれていることが可能な、入出力構成要素1020を含む他のデバイスに論理上、結合されることを可能にすることができる。例示的な構成要素には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、プリンター、ワイヤレスデバイスなどが含まれ得る。
[0071]本発明の実施形態は、すべての点で、限定するのではなく、例示することを意図している特定の実施形態に関連して説明されてきた。本発明の範囲を逸脱することなく、代替の実施形態が、本発明が属する技術分野の業者には明白となろう。
[0072]図11は、本発明による方法の実施例を示す。図11で、第1のユーザーに対応する第1の仮想マシンプールに関連付けられた仮想マシンの1つまたは複数のスタンバイ確保を求める要求が、受信される(1110)。1つまたは複数のプリエンプション可能な仮想マシンが、第2のユーザーに対応する第2の仮想マシンプールに割り当てられる(1120)。割り当てられたプリエンプション可能な仮想マシン上で第2の仮想マシンプールに関する1つまたは複数のタスクが、実行される(1130)。次に、負荷ベースの閾値が満たされるかどうかが判定される(1140)。この負荷ベースの閾値は、スタンバイ確保を、第1の仮想マシンプールに割り当てられた専用のマシンに変換するための閾値に対応する。第2の仮想マシンプールに割り当てられた少なくとも1つのプリエンプション可能な仮想マシンが、プリエンプションのために選択される(1150)。この選択は、例えば、その選択される仮想マシンが、最低の指値に関連付けられていること、またはタスクを実行していた時間がより短いことなどの、最低の優先度を有することに基づくことが可能である。さらに、または代替として、この選択は、第2の仮想マシンプールに割り当てられたマシンを包含する仮想マシンクラスターに対する第1の仮想マシンプールの親和性に基づくことが可能である。親和性は、例えば、データストレージロケーションに対する仮想マシンクラスターのより良好な接続性、または同一の(またはいくつかの)仮想マシンクラスターの中に第1の仮想マシンプールの中の仮想マシンを有するための親和性に基づくことが可能である。少なくとも1つの選択された仮想マシン上のタスクの実行が、停止される(1160)。次に、少なくとも1つの選択された仮想マシンが、第1の仮想マシンプールに専用の仮想マシンとして割り当てられる(1170)。
[0073]図12は、本発明による方法の別の例を示す。図12で、或るユーザーに対応する仮想マシンプールに関連付けられた仮想マシンのスタンバイ確保の数が追跡される(1
210)。専用の仮想マシンの数を第1の量だけ増加し、さらにスタンバイ仮想マシンの数を第2の量だけ増加する要求が、そのユーザーから受信される(1220)。オプションとして、この要求は、ユーザーからの複数の通信、および/または複数の自動的にトリガされたメッセージの形態であり得る。その1つまたは複数のスタンバイ確保のうちの少なくとも1つが、その仮想マシンプールに割り当てられた専用の仮想マシンに変換される(1230)。さらなる1つまたは複数のスタンバイ確保が、仮想マシンプールに関連付けられ(1240)、関連付けられるさらなるスタンバイ確保の数は、第2の量だけの要求される増加を実現するのに十分である。その少なくとも1つの変換された仮想マシンを使用して、仮想マシンプールに関する1つまたは複数のタスクが実行される(1250)。
210)。専用の仮想マシンの数を第1の量だけ増加し、さらにスタンバイ仮想マシンの数を第2の量だけ増加する要求が、そのユーザーから受信される(1220)。オプションとして、この要求は、ユーザーからの複数の通信、および/または複数の自動的にトリガされたメッセージの形態であり得る。その1つまたは複数のスタンバイ確保のうちの少なくとも1つが、その仮想マシンプールに割り当てられた専用の仮想マシンに変換される(1230)。さらなる1つまたは複数のスタンバイ確保が、仮想マシンプールに関連付けられ(1240)、関連付けられるさらなるスタンバイ確保の数は、第2の量だけの要求される増加を実現するのに十分である。その少なくとも1つの変換された仮想マシンを使用して、仮想マシンプールに関する1つまたは複数のタスクが実行される(1250)。
[0074]図13は、本発明による方法のさらに別の例を示す。図13で、第1の仮想マシンクラスターからの第1の仮想マシンが、プリエンプション可能な仮想マシンとして第1の仮想マシンプールに割り当てられる(1310)。この割り当ては、或る割り当て期間わたって行われ得る。第2の仮想マシンクラスターからの第2の仮想マシンが、その割り当て期間にわたってプリエンプション可能な仮想マシンとして第2の仮想マシンプールにさらに割り当てられる(1320)。第1のプリエンプション可能な仮想マシン上、および第2のプリエンプション可能な仮想マシン上で1つまたは複数のタスクが実行される(1330)。第1のプリエンプション可能な仮想マシン上の1つまたは複数のタスクは、第2のプリエンプション可能な仮想マシン上のタスクと比べて、より高い優先度を有する。次に、1つまたは複数の専用の仮想マシンを求める要求が、第3の仮想マシンプールから受信される(1340)。次に、第1のプリエンプション可能な仮想マシンが、第3の仮想マシンプールに割り当てられた専用の仮想マシンに変換される(1350)。第2のプリエンプション可能な仮想マシンの割り当てが、第2の仮想マシンプールから除去される(1360)。次に、第2のプリエンプション可能な仮想マシンが、第1の仮想マシンプールに割り当てられる(1370)。第1の仮想マシンプールに関する少なくとも1つのタスクが、第2のプリエンプション可能な仮想マシン上で開始される(1380)。この少なくとも1つのタスクは、その割り当て期間の終わりに先立って開始される。
[0075]或る実施形態において、クラウドコンピューティング環境においてリソースを提供するための方法が提供される。この方法は、第1のユーザーから、第1のユーザーに対応する第1の仮想マシンプールに関連付けられた仮想マシンの1つまたは複数のスタンバイ確保を求める要求を受信すること、1つまたは複数のプリエンプション可能な仮想マシンを、第2のユーザーに対応する第2の仮想マシンプールに割り当てること、割り当てられたプリエンプション可能な仮想マシンを使用して、第2の仮想マシンプールに関する1つまたは複数のタスクを実行すること、第1の仮想マシンプールに関する少なくとも1つのスタンバイ確保の変換のための負荷ベースの閾値が満たされたと判定すること、第2の仮想マシンプールに関連付けられた入札価格と、プリエンプション可能な仮想マシン上でタスクを実行するための時間の長さのうちの少なくともいずれかに基づいて、第2の仮想マシンプールに割り当てられた少なくとも1つのプリエンプション可能な仮想マシンをプリエンプションのために選択すること、選択された少なくとも1つの仮想マシン上でタスクの実行を停止すること、選択された少なくとも1つの仮想マシンを専用の仮想マシンとして第1の仮想マシンに割り当てることを含む。
[0076]別の実施形態において、クラウドコンピューティング環境においてリソースを提供するための方法が提供される。この方法は、ユーザーに対応する仮想マシンプールに関連付けられた仮想マシンのスタンバイ確保の数を追跡すること、そのユーザーから、仮想マシンプールに割り当てられた専用のマシンを第1の量だけ増加すること、および仮想マシンプールに関連付けられたスタンバイ確保の数を第2の量だけ増加することを求める要求を受信すること、その1つまたは複数のスタンバイ確保のうちの少なくとも1つを、仮
想マシンプールに割り当てられた専用の仮想マシンに変換すること、さらなる1つまたは複数のスタンバイ確保を仮想マシンプールに関連付け、さらなるスタンバイ確保の数は、スタンバイ確保の数を第2の量だけ増加させることを実現するのに十分であること、変換された少なくとも1つの専用の仮想マシンを使用して仮想マシンプールに関する1つまたは複数のタスクを実行することを含む。
想マシンプールに割り当てられた専用の仮想マシンに変換すること、さらなる1つまたは複数のスタンバイ確保を仮想マシンプールに関連付け、さらなるスタンバイ確保の数は、スタンバイ確保の数を第2の量だけ増加させることを実現するのに十分であること、変換された少なくとも1つの専用の仮想マシンを使用して仮想マシンプールに関する1つまたは複数のタスクを実行することを含む。
[0077]さらに別の実施形態において、クラウドコンピューティング環境においてリソースを提供するための方法が提供される。この方法は、第1の仮想マシンクラスターからの第1の仮想マシンを、或る割り当て期間にわたってプリエンプション可能な仮想マシンとして第1の仮想マシンに割り当てること、第2の仮想マシンクラスターからの第2の仮想マシンを、その割り当て期間にわたってプリエンプション可能な仮想マシンとして第2の仮想マシンプールに割り当てること、第1のプリエンプション可能な仮想マシン上、および第2のプリエンプション可能な仮想マシン上で1つまたは複数のタスクを実行し、第1のプリエンプション可能な仮想マシン上の1つまたは複数のタスクは、第2のプリエンプション可能な仮想マシン上の1つまたは複数のタスクと比べて、より高い優先度を有すること、第3の仮想マシンプールから、1つまたは複数の専用の仮想マシンを求める要求を受信し、この要求は、前記第1の仮想マシンクラスターに対する親和性を含むこと、第1のプリエンプション可能な仮想マシンを、第3の仮想マシンプールに割り当てられた専用の仮想マシンに変換すること、第2の仮想マシンプールから第2のプリエンプション可能な仮想マシンの割り当てを除去すること、第2のプリエンプション可能な仮想マシンを第1の仮想マシンプールに割り当てること、およびその割り当て期間の終わりに先立って、第2のプリエンプション可能な仮想マシン上で第1の仮想マシンプールに関する少なくとも1つのタスクを開始することを含む。
[0078]以上のことから、本発明は、前段に記載されるすべての目標および目的、ならびに明白であり、その構造に本来備わった他の利点を実現するのによく適した発明であることが理解されよう。
[0079]いくつかの特徴、および部分的組み合わせが、役に立ち、他の特徴、および他の部分的組み合わせを参照することなしに使用され得ることが理解されよう。このことは、特許請求の範囲によって企図され、特許請求の範囲に含まれる。
Claims (15)
- クラウドコンピューティング環境においてリソースを提供するための、コンピュータにより実行される方法であって、
スタンバイ確保を求める要求を受信するステップであって、各スタンバイ確保は、ユーザに対応する仮想マシンプールに関連付けられ、各スタンバイ確保は、前記仮想マシンプールへの仮想マシンの割り当て個数及び条件を定義する、ステップと、
各スタンバイ確保によって定義された仮想マシンの個数を1つ又は複数のカウントを用いて追跡するステップであって、前記1つ又は複数のカウントは、各スタンバイ確保に対して十分な個数のアイドルの仮想マシン又はプリエンプション可能な仮想マシンが利用可能であることを保証するために使用される、ステップと、
第1のユーザから、第1のスタンバイ確保によって定義された仮想マシンの個数を増加することを求める要求を受信することに基づいて、前記1又は複数のカウントをある量だけ増加させるステップと、
前記第1のスタンバイ確保によって定義された条件が満たされていると判断されたことに基づいて、前記増加させた個数の仮想マシンを、前記第1のユーザに対応する前記仮想マシンプールに割り当てるステップであって、該割り当ては、前記アイドルの仮想マシン又はプリエンプション可能な仮想マシンの中からなされる、ステップと、
前記割り当てられた仮想マシンの少なくとも1つを使用して、前記第1のユーザに対応する仮想マシンプールに対して1つまたは複数のタスクを実行するステップと、
を備え、
前記スタンバイ確保は、仮想マシンの割り当てではなく、前記スタンバイ確保の中の少なくとも1つのスタンバイ確保により確保された1つ又は複数の仮想マシンを将来において1つ又は複数の専用の仮想マシンに変換する権利の確保である、
方法。 - 前記第1のスタンバイ確保によって定義された前記条件は負荷ベースの閾値に基づく、請求項1に記載の方法。
- 前記第1のスタンバイ確保は、仮想マシンクラスターに対する親和性を含み、前記割り当ては、前記親和性に基づき前記仮想マシンクラスターから専用の仮想マシンへの変換を含む、請求項1に記載の方法。
- 前記親和性は、前記割り当てられた仮想マシンの少なくとも1つによって実行されるジョブのためにデータストレージに対する所望のデータ転送速度に基づく、請求項3に記載の方法。
- クラウドコンピューティング環境においてリソースを提供するための、コンピュータにより実行される方法であって、
複数のスタンバイ確保の各スタンバイ確保によって定義された仮想マシンの個数を1つ又は複数のカウントを用いて追跡するステップであって、各スタンバイ確保は、ユーザに対応する仮想マシンプールに関連付けられ、各スタンバイ確保は、前記仮想マシンプールへの仮想マシンの割り当て個数及び条件を定義し、前記1つ又は複数のカウントは、各スタンバイ確保に対して十分な個数のアイドルの仮想マシン又はプリエンプション可能な仮想マシンが利用可能であることを保証するために使用される、ステップと、
第1のスタンバイ確保によって定義された条件が満たされていると判断されたことに基づいて、増加させた個数の仮想マシンを、第1のユーザに対応する前記仮想マシンプールに割り当てるステップであって、該割り当ては、前記アイドルの仮想マシン又はプリエンプション可能な仮想マシンの中からなされる、ステップと、
前記割り当てられた仮想マシンの少なくとも1つを使用して、前記第1のユーザに対応する仮想マシンプールに対して1つまたは複数のタスクを実行するステップと、
を備え、
前記スタンバイ確保は、仮想マシンの割り当てではなく、前記スタンバイ確保の中の少なくとも1つのスタンバイ確保により確保された1つ又は複数の仮想マシンを将来において1つ又は複数の専用の仮想マシンに変換する権利の確保である、
方法。 - 前記割り当ては、前記第1のスタンバイ確保及び前記第1のユーザによって特定される所定の時刻、及び/又は、所定の日付に少なくとも部分的に基づいてなされる、請求項5に記載の方法。
- 前記割り当ては、仮想マシンを前記第1のユーザに別のユーザから専用の仮想マシンとして再割り当てすることによりなされる、請求項5に記載の方法。
- 前記割り当ては、前記第1のユーザに関連付けられた負荷ベースの閾値に部分的に基づいてなされる、請求項5に記載の方法。
- 前記仮想マシンプールに割り当てられた専用の仮想マシンを第1の量だけ増加させるという前記第1のユーザからの要求を受信するステップを含む、請求項5に記載の方法。
- 第1のスタンバイ確保によって定義された仮想マシンの個数を第2の量だけ増加させるという前記第1のユーザからの要求を受信するステップと、
前記受信された要求に基づいて、前記1つ又は複数のカウントを第2の量だけ増加させるステップと
を含む、請求項5に記載の方法。 - 少なくとも1つの付加的な仮想マシンを前記仮想マシンプールに専用の仮想マシンとして割り当てるステップを含む、請求項5に記載の方法。
- 前記第1のスタンバイ確保は、仮想マシンクラスターに対する親和性を含み、前記割り当ては、前記親和性に基づき前記仮想マシンクラスターから専用の仮想マシンへの変換を含む、請求項5に記載の方法。
- 前記仮想マシンクラスターに対する親和性は、前記仮想マシンプールに割り当てられた仮想マシンとの接続性、又は、ストレージに対する接続性に基づく少なくとも1つの親和性を含む、請求項5に記載の方法。
- コンピューティング・デバイスに請求項1〜13のいずれか1項に記載の方法を実行させるためのプログラムを記録した1つ又は複数のコンピュータ記録媒体。
- コンピューティング・デバイスに請求項1〜13のいずれか1項に記載の方法を実行させるためのプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/346,416 US8904008B2 (en) | 2012-01-09 | 2012-01-09 | Assignment of resources in virtual machine pools |
US13/346,416 | 2012-01-09 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014552220A Division JP2015507281A (ja) | 2012-01-09 | 2013-01-07 | 仮想マシンプールにおけるリソースの割り当て |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018055707A true JP2018055707A (ja) | 2018-04-05 |
Family
ID=48744742
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014552220A Pending JP2015507281A (ja) | 2012-01-09 | 2013-01-07 | 仮想マシンプールにおけるリソースの割り当て |
JP2017228719A Pending JP2018055707A (ja) | 2012-01-09 | 2017-11-29 | 仮想マシンプールにおけるリソースの割り当て |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014552220A Pending JP2015507281A (ja) | 2012-01-09 | 2013-01-07 | 仮想マシンプールにおけるリソースの割り当て |
Country Status (6)
Country | Link |
---|---|
US (4) | US8904008B2 (ja) |
EP (2) | EP2802998B1 (ja) |
JP (2) | JP2015507281A (ja) |
KR (1) | KR102005595B1 (ja) |
CN (1) | CN104040526B (ja) |
WO (1) | WO2013106257A1 (ja) |
Families Citing this family (191)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US8966027B1 (en) | 2010-05-24 | 2015-02-24 | Amazon Technologies, Inc. | Managing replication of computing nodes for provided computer networks |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8744367B2 (en) * | 2010-08-31 | 2014-06-03 | At&T Intellectual Property I, L.P. | Tail optimization protocol for cellular radio resource allocation |
WO2012045021A2 (en) | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system |
US8527627B2 (en) | 2010-12-14 | 2013-09-03 | At&T Intellectual Property I, L.P. | Intelligent mobility application profiling with respect to identified communication bursts |
US8793684B2 (en) * | 2011-03-16 | 2014-07-29 | International Business Machines Corporation | Optimized deployment and replication of virtual machines |
US9264872B2 (en) | 2011-06-20 | 2016-02-16 | At&T Intellectual Property I, L.P. | Controlling traffic transmissions to manage cellular radio resource utilization |
US9220066B2 (en) | 2011-06-20 | 2015-12-22 | At&T Intellectual Property I, L.P. | Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization |
US8601473B1 (en) | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US9116633B2 (en) | 2011-09-30 | 2015-08-25 | Commvault Systems, Inc. | Information management of virtual machines having mapped storage devices |
US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
WO2014032287A1 (zh) | 2012-08-31 | 2014-03-06 | 华为技术有限公司 | 中央处理器资源分配方法和计算节点 |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
US20140181038A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods to categorize unprotected virtual machines |
US9378035B2 (en) * | 2012-12-28 | 2016-06-28 | Commvault Systems, Inc. | Systems and methods for repurposing virtual machines |
US9544348B2 (en) * | 2013-01-04 | 2017-01-10 | Google Inc. | Cloud-based rendering |
US9384517B2 (en) | 2013-03-14 | 2016-07-05 | Google Inc. | Rendering |
US9804890B1 (en) * | 2013-02-15 | 2017-10-31 | Amazon Technologies, Inc. | Termination policies for scaling compute resources |
US11669441B1 (en) | 2013-03-14 | 2023-06-06 | Amazon Technologies, Inc. | Secure virtual machine reboot via memory allocation recycling |
US9740422B1 (en) * | 2013-03-14 | 2017-08-22 | EMC IP Holding Company LLC | Version-based deduplication of incremental forever type backup |
US9507540B1 (en) | 2013-03-14 | 2016-11-29 | Amazon Technologies, Inc. | Secure virtual machine memory allocation management via memory usage trust groups |
US9984206B2 (en) * | 2013-03-14 | 2018-05-29 | Volcano Corporation | System and method for medical resource scheduling in a distributed medical system |
US9323552B1 (en) * | 2013-03-14 | 2016-04-26 | Amazon Technologies, Inc. | Secure virtual machine memory allocation management via dedicated memory pools |
US9645840B2 (en) * | 2013-04-02 | 2017-05-09 | Amazon Technologies, Inc. | User-defined pools |
US9634958B2 (en) | 2013-04-02 | 2017-04-25 | Amazon Technologies, Inc. | Burst capacity for user-defined pools |
US10025610B2 (en) * | 2013-04-30 | 2018-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Availability management of virtual machines hosting highly available applications |
US9665386B2 (en) | 2013-06-14 | 2017-05-30 | Nutanix, Inc. | Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment |
US9740514B1 (en) | 2013-06-26 | 2017-08-22 | Nutanix, Inc. | Method and system to share data with snapshots in a virtualization environment |
US9400718B2 (en) | 2013-08-02 | 2016-07-26 | Sanovi Technologies Pvt. Ltd. | Multi-tenant disaster recovery management system and method for intelligently and optimally allocating computing resources between multiple subscribers |
US20150055456A1 (en) * | 2013-08-26 | 2015-02-26 | Vmware, Inc. | Traffic and load aware dynamic queue management |
US20150066553A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for multi-tenant service catalog for a software defined cloud |
US9923837B2 (en) * | 2013-08-29 | 2018-03-20 | Ericsson Ab | Method and system to allocate bandwidth based on task deadline in cloud computing networks |
GB2518894A (en) * | 2013-10-07 | 2015-04-08 | Ibm | A method and a system for operating programs on a computer cluster |
US10193963B2 (en) * | 2013-10-24 | 2019-01-29 | Vmware, Inc. | Container virtual machines for hadoop |
US10216758B2 (en) * | 2013-10-24 | 2019-02-26 | Vmware, Inc. | Multi-tenant production and test deployments of Hadoop |
US10476760B2 (en) * | 2013-10-30 | 2019-11-12 | Oracle International Corporation | System and method for placement logic in a cloud platform environment |
US20150121373A1 (en) * | 2013-10-30 | 2015-04-30 | Alistair Black | User Privacy Systems And Methods |
US9298485B2 (en) | 2013-11-19 | 2016-03-29 | International Business Machines Corporation | Maintaining virtual machines for cloud-based operators in a streaming application in a ready state |
US10545917B2 (en) | 2014-02-19 | 2020-01-28 | Snowflake Inc. | Multi-range and runtime pruning |
US10325032B2 (en) * | 2014-02-19 | 2019-06-18 | Snowflake Inc. | Resource provisioning systems and methods |
US11243707B2 (en) | 2014-03-12 | 2022-02-08 | Nutanix, Inc. | Method and system for implementing virtual machine images |
US9594584B2 (en) * | 2014-03-31 | 2017-03-14 | Electronics And Telecommunications Research Institute | Apparatus and method for mapping of tenant based dynamic processor |
WO2015157897A1 (zh) | 2014-04-14 | 2015-10-22 | 华为技术有限公司 | 一种云计算架构下的容灾数据中心配置方法及装置 |
RU2568282C2 (ru) * | 2014-04-18 | 2015-11-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде |
US9459892B2 (en) | 2014-05-05 | 2016-10-04 | International Business Machines Corporation | Optimization of virtual machines |
CN105335207B (zh) | 2014-05-29 | 2019-04-12 | 国际商业机器公司 | 用于管理虚拟机实例的方法和装置 |
US10547562B2 (en) | 2014-07-31 | 2020-01-28 | Hewlett Packard Enterprise Development Lp | Cloud resource pool |
US10452837B1 (en) * | 2014-09-26 | 2019-10-22 | Amazon Technologies, Inc. | Inbound link handling |
US9678773B1 (en) * | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9715402B2 (en) * | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US20160117246A1 (en) * | 2014-10-27 | 2016-04-28 | Thomson Licensing | Method and apparatus for cross-core covert channel |
JP6506534B2 (ja) * | 2014-11-07 | 2019-04-24 | 三星ディスプレイ株式會社Samsung Display Co.,Ltd. | 有機電界発光素子用材料及びこれを用いた有機電界発光素子 |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
CN105786587B (zh) * | 2014-12-23 | 2019-11-26 | 华为技术有限公司 | 一种虚拟机vm的伸缩方法和设备 |
US9929969B1 (en) * | 2014-12-31 | 2018-03-27 | VCA IP Holding Company LLC | Tenant-based management system and method for distributed computing environments |
US9971621B1 (en) * | 2015-02-02 | 2018-05-15 | Amazon Technologies, Inc. | Hotpooling virtual machines |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9471775B1 (en) | 2015-02-04 | 2016-10-18 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9727725B2 (en) | 2015-02-04 | 2017-08-08 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
CN105022668B (zh) * | 2015-04-29 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种作业调度方法及系统 |
WO2016195562A1 (en) | 2015-06-03 | 2016-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Allocating or announcing availability of a software container |
US10848574B2 (en) | 2015-06-11 | 2020-11-24 | Microsoft Technology Licensing, Llc | Computing resource management system |
US9948711B2 (en) | 2015-06-15 | 2018-04-17 | International Business Machines Corporation | Allocating and managing cloud computing resources for disaster recovery |
US9563514B2 (en) | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs |
US10084873B2 (en) | 2015-06-19 | 2018-09-25 | Commvault Systems, Inc. | Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs |
EP3113026B1 (en) * | 2015-06-29 | 2019-07-24 | aicas GmbH | Automatic memory management using a memory management unit |
US9760398B1 (en) | 2015-06-29 | 2017-09-12 | Amazon Technologies, Inc. | Automatic placement of virtual machine instances |
US10505869B2 (en) | 2015-08-04 | 2019-12-10 | International Business Machines Corporation | Mimicking a presence notification from an application executing on a virtual component to optimize computing resource allocation/utilization |
CN106453457B (zh) | 2015-08-10 | 2019-12-10 | 微软技术许可有限责任公司 | 云计算平台内的多优先级服务实例分配 |
EP3332332A4 (en) * | 2015-08-25 | 2018-08-08 | Huawei Technologies Co., Ltd. | System and method for network function virtualization resource management |
US9928108B1 (en) | 2015-09-29 | 2018-03-27 | Amazon Technologies, Inc. | Metaevent handling for on-demand code execution environments |
US10042660B2 (en) | 2015-09-30 | 2018-08-07 | Amazon Technologies, Inc. | Management of periodic requests for compute capacity |
US10013267B1 (en) | 2015-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US9830175B1 (en) | 2015-12-16 | 2017-11-28 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US9811363B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US9830449B1 (en) | 2015-12-16 | 2017-11-28 | Amazon Technologies, Inc. | Execution locations for request-driven code |
US10395219B1 (en) * | 2015-12-18 | 2019-08-27 | Amazon Technologies, Inc. | Location policies for reserved virtual machine instances |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US10002026B1 (en) | 2015-12-21 | 2018-06-19 | Amazon Technologies, Inc. | Acquisition and maintenance of dedicated, reserved, and variable compute capacity |
US10162682B2 (en) * | 2016-02-16 | 2018-12-25 | Red Hat, Inc. | Automatically scaling up physical resources in a computing infrastructure |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US10333962B1 (en) | 2016-03-30 | 2019-06-25 | Amazon Technologies, Inc. | Correlating threat information across sources of distributed computing systems |
US10142290B1 (en) * | 2016-03-30 | 2018-11-27 | Amazon Technologies, Inc. | Host-based firewall for distributed computer systems |
US10178119B1 (en) | 2016-03-30 | 2019-01-08 | Amazon Technologies, Inc. | Correlating threat information across multiple levels of distributed computing systems |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10148675B1 (en) | 2016-03-30 | 2018-12-04 | Amazon Technologies, Inc. | Block-level forensics for distributed computing systems |
US10613947B2 (en) | 2016-06-09 | 2020-04-07 | Nutanix, Inc. | Saving and restoring storage devices using application-consistent snapshots |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US9952896B2 (en) | 2016-06-28 | 2018-04-24 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US9977691B2 (en) | 2016-06-29 | 2018-05-22 | Amazon Technologies, Inc. | Adjusting variable limit on concurrent code executions based on communication between frontends |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10528374B2 (en) | 2016-08-25 | 2020-01-07 | International Business Machines Corporation | Volume management by virtual machine affiliation auto-detection |
US10108459B2 (en) | 2016-09-12 | 2018-10-23 | Bmc Software, Inc. | System and method to dynamically allocate varying processing capacity entitlements based on workload importance |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US20180109469A1 (en) | 2016-10-17 | 2018-04-19 | International Business Machines Corporation | Systems and methods for controlling process priority for efficient resource allocation |
US10616317B2 (en) * | 2016-11-10 | 2020-04-07 | Trilliant Networks, Inc. | Method and system for affinity load balancing |
US10331479B2 (en) | 2017-01-13 | 2019-06-25 | Microsoft Technology Licensing, Llc | Computing on transient resources |
US10949308B2 (en) | 2017-03-15 | 2021-03-16 | Commvault Systems, Inc. | Application aware backup of virtual machines |
US10853195B2 (en) | 2017-03-31 | 2020-12-01 | Commvault Systems, Inc. | Granular restoration of virtual machine application data |
US10715403B2 (en) * | 2017-04-11 | 2020-07-14 | Nerdio, Inc. | Scalable, standardized I.T. deployment platform |
US11500663B1 (en) * | 2017-06-07 | 2022-11-15 | Amazon Technologies, Inc. | Predictive virtual machine launch-based capacity management |
KR102263361B1 (ko) * | 2017-06-15 | 2021-06-11 | 한국전자통신연구원 | 다중 클라우드 기반의 클라우드 브로커리지 서비스 제공 장치 및 그 방법 |
US10824522B2 (en) | 2017-11-27 | 2020-11-03 | Nutanix, Inc. | Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications |
US10565021B2 (en) * | 2017-11-30 | 2020-02-18 | Microsoft Technology Licensing, Llc | Automated capacity management in distributed computing systems |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10303492B1 (en) | 2017-12-13 | 2019-05-28 | Amazon Technologies, Inc. | Managing custom runtimes in an on-demand code execution system |
CN108366095A (zh) * | 2018-01-16 | 2018-08-03 | 厦门集微科技有限公司 | 一种软件即服务平台 |
US11762706B1 (en) | 2018-02-01 | 2023-09-19 | Vmware, Inc. | Computing environment pooling |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10572375B1 (en) | 2018-02-05 | 2020-02-25 | Amazon Technologies, Inc. | Detecting parameter validity in code including cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
JP7166765B2 (ja) * | 2018-02-28 | 2022-11-08 | 富士フイルム株式会社 | アプリケーション提供装置、アプリケーション提供方法、およびアプリケーション提供プログラム |
US10970125B2 (en) * | 2018-05-31 | 2021-04-06 | Microsoft Technology Licensing, Llc | Dynamic compute resource assignment and scalable computing environment generation for live environments |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11500685B2 (en) * | 2018-07-24 | 2022-11-15 | Citrix Systems, Inc. | Mixed instance catalogs |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
CN111158962B (zh) * | 2018-11-07 | 2023-10-13 | 中移信息技术有限公司 | 一种异地容灾方法、装置、系统、电子设备及存储介质 |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US20200174844A1 (en) * | 2018-12-04 | 2020-06-04 | Huawei Technologies Canada Co., Ltd. | System and method for resource partitioning in distributed computing |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US10817046B2 (en) | 2018-12-31 | 2020-10-27 | Bmc Software, Inc. | Power saving through automated power scheduling of virtual machines |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US20210004387A1 (en) * | 2019-07-03 | 2021-01-07 | Hewlett Packard Enterprise Development Lp | Changing the number of replicas of a pod based on size of message queue |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
CN112698908A (zh) * | 2019-10-23 | 2021-04-23 | 阿里巴巴集团控股有限公司 | 云计算资源的伸缩处理方法及装置、存储介质及处理器 |
CN110865872B (zh) * | 2019-11-14 | 2022-07-08 | 北京京航计算通讯研究所 | 基于资源合理化应用的虚拟化集群资源调度系统 |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
EP4066112A1 (en) * | 2019-11-27 | 2022-10-05 | Amazon Technologies Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US11907764B2 (en) * | 2020-05-20 | 2024-02-20 | GE Precision Healthcare LLC | Managing computer resources for clinical applications |
CN112272162A (zh) * | 2020-09-27 | 2021-01-26 | 西安万像电子科技有限公司 | 登录方法、装置及系统 |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11797351B2 (en) * | 2021-04-28 | 2023-10-24 | Salesforce, Inc. | High-availability continuous delivery of datacenter builds on cloud computing platforms |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US20230072962A1 (en) * | 2021-09-03 | 2023-03-09 | International Business Machines Corporation | Distributed system workload management via node autonomy |
CN113472956A (zh) * | 2021-09-03 | 2021-10-01 | 北京健康之家科技有限公司 | 一种云手机管理方法及装置 |
CN114416274A (zh) * | 2021-10-18 | 2022-04-29 | 徐州医科大学 | 一种虚拟资源管理系统及其方法 |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
KR102424596B1 (ko) * | 2022-03-30 | 2022-07-28 | 주식회사 클라우드시스템즈 | 애플리케이션 가상화 서비스 제공 방법 |
US11928513B1 (en) | 2022-12-28 | 2024-03-12 | International Business Machines Corporation | Cloud affinity based on evaluation of static and dynamic workload characteristics |
CN117891618B (zh) * | 2024-03-15 | 2024-05-24 | 杭州宇泛智能科技有限公司 | 人工智能模型训练平台的资源任务处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007257097A (ja) * | 2006-03-22 | 2007-10-04 | Nec Corp | 仮想計算機システム及びその物理リソース再構成方法並びにプログラム |
JP2011090594A (ja) * | 2009-10-26 | 2011-05-06 | Hitachi Ltd | サーバ管理装置およびサーバ管理方法 |
WO2011087982A1 (en) * | 2010-01-12 | 2011-07-21 | Amazon Technologies, Inc. | Managing private use of program execution capacity |
Family Cites Families (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5062037A (en) | 1988-10-24 | 1991-10-29 | Ibm Corp. | Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network |
US5392430A (en) | 1992-10-30 | 1995-02-21 | International Business Machines | Hierarchical scheduling method for processing tasks having precedence constraints on a parallel processing system |
US5832262A (en) | 1995-09-14 | 1998-11-03 | Lockheed Martin Corporation | Realtime hardware scheduler utilizing processor message passing and queue management cells |
KR19990013427A (ko) | 1997-07-15 | 1999-02-25 | 포만제프리엘 | 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물 |
US6223202B1 (en) | 1998-06-05 | 2001-04-24 | International Business Machines Corp. | Virtual machine pooling |
US7290009B1 (en) | 1999-08-25 | 2007-10-30 | The Trustees Of Columbia University In The City Of New York | System and method for allocating resources using spot market and derivative market techniques |
US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
US6865591B1 (en) | 2000-06-30 | 2005-03-08 | Intel Corporation | Apparatus and method for building distributed fault-tolerant/high-availability computed applications |
JP2002041305A (ja) | 2000-07-26 | 2002-02-08 | Hitachi Ltd | 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム |
US6985951B2 (en) | 2001-03-08 | 2006-01-10 | International Business Machines Corporation | Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment |
US7337226B2 (en) | 2002-05-10 | 2008-02-26 | Oracle International Corporation | Method and mechanism for implementing dynamic sizing of session pools |
US7395334B2 (en) | 2003-04-25 | 2008-07-01 | International Business Machines Corporation | System for determining unreturned standby resource usage |
US7596790B2 (en) | 2003-08-29 | 2009-09-29 | Intel Corporation | Allocating computing resources in a distributed environment |
US8560671B1 (en) * | 2003-10-23 | 2013-10-15 | Netapp, Inc. | Systems and methods for path-based management of virtual servers in storage network environments |
EP1706820A2 (en) | 2004-01-08 | 2006-10-04 | Koninklijke Philips Electronics N.V. | Resource management in a multi-processor system |
JP2005266917A (ja) | 2004-03-16 | 2005-09-29 | Nec Corp | 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム |
US7177878B2 (en) | 2004-04-13 | 2007-02-13 | International Business Machines Corporation | Simple persistence mechanism for server based web applications |
JP4308086B2 (ja) | 2004-05-31 | 2009-08-05 | 富士通株式会社 | 自律制御プログラム及びその記録媒体、自律制御装置並びに自律制御方法 |
US7739685B2 (en) | 2005-01-06 | 2010-06-15 | International Business Machines Corporation | Decoupling a central processing unit from its tasks |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
AU2007208093A1 (en) | 2006-01-24 | 2007-08-02 | Citrix Systems, Inc. | Methods and systems for providing access to a computing environment |
JP2007323439A (ja) | 2006-06-01 | 2007-12-13 | Nec Corp | リソース割当システム、情報処理装置、リソース割当方法及びリソース割当プログラム |
US8151277B2 (en) | 2007-05-15 | 2012-04-03 | Dynatrace Software Gmbh | Method and system for dynamic remote injection of in-process agents into virtual machine based applications |
US8677353B2 (en) | 2007-01-11 | 2014-03-18 | Nec Corporation | Provisioning a standby virtual machine based on the prediction of a provisioning request being generated |
US20080189700A1 (en) | 2007-02-02 | 2008-08-07 | Vmware, Inc. | Admission Control for Virtual Machine Cluster |
US8380880B2 (en) | 2007-02-02 | 2013-02-19 | The Mathworks, Inc. | Scalable architecture |
US20080244607A1 (en) | 2007-03-27 | 2008-10-02 | Vladislav Rysin | Economic allocation and management of resources via a virtual resource market |
US8065676B1 (en) | 2007-04-24 | 2011-11-22 | Hewlett-Packard Development Company, L.P. | Automated provisioning of virtual machines for a virtual machine buffer pool and production pool |
KR101040117B1 (ko) | 2007-12-13 | 2011-06-09 | 한국전자통신연구원 | 다중 시스템 워크로드 관리 시스템 및 방법 |
US8930946B1 (en) | 2008-02-14 | 2015-01-06 | Google Inc. | Leasing prioritized tasks |
US10372490B2 (en) * | 2008-05-30 | 2019-08-06 | Red Hat, Inc. | Migration of a virtual machine from a first cloud computing environment to a second cloud computing environment in response to a resource or services in the second cloud computing environment becoming available |
US8112526B2 (en) | 2008-06-24 | 2012-02-07 | International Business Machines Corporation | Process migration based on service availability in a multi-node environment |
US20100042670A1 (en) | 2008-08-13 | 2010-02-18 | Electronic Data Systems Corporation | Integrated development engine for a cloud computing environment |
US8434087B2 (en) | 2008-08-29 | 2013-04-30 | International Business Machines Corporation | Distributed acceleration devices management for streams processing |
US7870044B2 (en) | 2008-10-02 | 2011-01-11 | Verizon Patent And Licensing Inc. | Methods, systems and computer program products for a cloud computing spot market platform |
US10095533B1 (en) * | 2008-10-06 | 2018-10-09 | Veritas Technologies Llc | Method and apparatus for monitoring and automatically reserving computer resources for operating an application within a computer environment |
US10025627B2 (en) | 2008-11-26 | 2018-07-17 | Red Hat, Inc. | On-demand cloud computing environments |
US8291414B2 (en) | 2008-12-11 | 2012-10-16 | International Business Machines Corporation | Shared resource service provisioning using a virtual machine manager |
US9344401B2 (en) | 2009-02-04 | 2016-05-17 | Citrix Systems, Inc. | Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment |
KR20100092850A (ko) | 2009-02-13 | 2010-08-23 | 경희대학교 산학협력단 | 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법 |
US8751627B2 (en) | 2009-05-05 | 2014-06-10 | Accenture Global Services Limited | Method and system for application migration in a cloud |
US9201485B2 (en) * | 2009-05-29 | 2015-12-01 | Red Hat, Inc. | Power management in managed network having hardware based and virtual resources |
US20100318454A1 (en) | 2009-06-16 | 2010-12-16 | Microsoft Corporation | Function and Constraint Based Service Agreements |
US8112659B2 (en) | 2009-06-19 | 2012-02-07 | Oracle International Corporation | Reducing recovery time for business organizations in case of disasters |
US8261275B2 (en) | 2009-06-29 | 2012-09-04 | Oracle America, Inc. | Method and system for heuristics-based task scheduling |
CA2674402C (en) | 2009-07-31 | 2016-07-19 | Ibm Canada Limited - Ibm Canada Limitee | Optimizing on demand allocation of virtual machines using a stateless preallocation pool |
US20110078303A1 (en) | 2009-09-30 | 2011-03-31 | Alcatel-Lucent Usa Inc. | Dynamic load balancing and scaling of allocated cloud resources in an enterprise network |
US20110113426A1 (en) | 2009-11-09 | 2011-05-12 | Hsiang-Tsung Kung | Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods |
US8589921B2 (en) | 2009-11-30 | 2013-11-19 | Red Hat Israel, Ltd. | Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm |
US9135018B2 (en) | 2009-12-11 | 2015-09-15 | Deutsche Telekom Ag | Computer cluster and method for providing a disaster recovery functionality for a computer cluster |
US8924569B2 (en) | 2009-12-17 | 2014-12-30 | Intel Corporation | Cloud federation as a service |
US8631403B2 (en) | 2010-01-04 | 2014-01-14 | Vmware, Inc. | Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure |
US20110173626A1 (en) | 2010-01-12 | 2011-07-14 | Nec Laboratories America, Inc. | Efficient maintenance of job prioritization for profit maximization in cloud service delivery infrastructures |
US8301746B2 (en) * | 2010-01-26 | 2012-10-30 | International Business Machines Corporation | Method and system for abstracting non-functional requirements based deployment of virtual machines |
US9703586B2 (en) | 2010-02-17 | 2017-07-11 | Microsoft Technology Licensing, Llc | Distribution control and tracking mechanism of virtual machine appliances |
US20110214124A1 (en) * | 2010-02-26 | 2011-09-01 | James Michael Ferris | Systems and methods for generating cross-cloud computing appliances |
US8489674B2 (en) * | 2010-03-11 | 2013-07-16 | Yahoo! Inc. | Distributed publish/subscribe system |
US8464255B2 (en) * | 2010-03-12 | 2013-06-11 | Microsoft Corporation | Managing performance interference effects on cloud computing servers |
US8271814B2 (en) | 2010-03-22 | 2012-09-18 | Microsoft Corporation | Migrating a client computer to a virtual machine server when the client computer is deemed to be idle |
US9342801B2 (en) | 2010-03-29 | 2016-05-17 | Amazon Technologies, Inc. | Managing committed processing rates for shared resources |
EP2553638B1 (en) | 2010-03-29 | 2018-07-18 | Amazon Technologies, Inc. | Managing committed request rates for shared resources |
US8738745B1 (en) | 2010-03-31 | 2014-05-27 | Amazon Technologies, Inc. | Managing use of intermediate destination hardware devices for provided computer networks |
US9116731B2 (en) | 2010-04-07 | 2015-08-25 | Accenture Global Services Limited | Cloud reference model framework |
US8667171B2 (en) | 2010-05-28 | 2014-03-04 | Microsoft Corporation | Virtual data center allocation with bandwidth guarantees |
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 |
CN102271145A (zh) | 2010-06-04 | 2011-12-07 | 国云科技股份有限公司 | 一种虚拟计算机集群及其实施方法 |
US8656387B2 (en) | 2010-06-17 | 2014-02-18 | Gridcentric Inc. | Method and system for workload distributing and processing across a network of replicated virtual machines |
US9329947B2 (en) | 2010-06-22 | 2016-05-03 | Red Hat Israel, Ltd. | Resuming a paused virtual machine without restarting the virtual machine |
US8887163B2 (en) | 2010-06-25 | 2014-11-11 | Ebay Inc. | Task scheduling based on dependencies and resources |
US8719415B1 (en) | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US8739170B1 (en) | 2010-06-30 | 2014-05-27 | Amazon Technologies, Inc. | Managing requests for computing capacity |
US20120011077A1 (en) * | 2010-07-12 | 2012-01-12 | Bhagat Bhavesh C | Cloud Computing Governance, Cyber Security, Risk, and Compliance Business Rules System and Method |
CN101938416B (zh) | 2010-09-01 | 2012-08-08 | 华南理工大学 | 一种基于动态重配置虚拟资源的云计算资源调度方法 |
US8533103B1 (en) | 2010-09-14 | 2013-09-10 | Amazon Technologies, Inc. | Maintaining latency guarantees for shared resources |
CN102307208B (zh) * | 2010-09-25 | 2014-08-06 | 广东电子工业研究院有限公司 | 基于云计算的虚拟机运行控制装置及其运行控制方法 |
JP2014038364A (ja) | 2010-10-27 | 2014-02-27 | Hitachi Ltd | リソース管理サーバ、リソース管理方法及びリソース管理プログラム |
US9237194B2 (en) | 2010-11-05 | 2016-01-12 | Verizon Patent And Licensing Inc. | Load balancer and firewall self-provisioning system |
JP5845571B2 (ja) | 2010-11-30 | 2016-01-20 | 富士通株式会社 | 計算システムおよび計算システム管理方法 |
US20120159234A1 (en) | 2010-12-15 | 2012-06-21 | Microsoft Corporation | Providing resilient services |
US8918784B1 (en) * | 2010-12-21 | 2014-12-23 | Amazon Technologies, Inc. | Providing service quality levels through CPU scheduling |
US10678602B2 (en) * | 2011-02-09 | 2020-06-09 | Cisco Technology, Inc. | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures |
US8639595B1 (en) | 2011-03-10 | 2014-01-28 | Amazon Technologies, Inc. | Statistically cost-following accounting model for dedicated resources |
US8806015B2 (en) * | 2011-05-04 | 2014-08-12 | International Business Machines Corporation | Workload-aware placement in private heterogeneous clouds |
US20120311575A1 (en) | 2011-06-02 | 2012-12-06 | Fujitsu Limited | System and method for enforcing policies for virtual machines |
US9015708B2 (en) | 2011-07-28 | 2015-04-21 | International Business Machines Corporation | System for improving the performance of high performance computing applications on cloud using integrated load balancing |
US20130061220A1 (en) * | 2011-09-06 | 2013-03-07 | Xerox Corporation | Method for on-demand inter-cloud load provisioning for transient bursts of computing needs |
US9038063B2 (en) * | 2011-09-07 | 2015-05-19 | International Business Machines Corporation | Determining virtual machine image pattern distributions in a networked computing environment |
US8631131B2 (en) * | 2011-09-07 | 2014-01-14 | Red Hat Israel, Ltd. | Virtual machine pool cache |
US20130091376A1 (en) | 2011-10-05 | 2013-04-11 | International Business Machines Corporation | Self-repairing database system |
US8856797B1 (en) | 2011-10-05 | 2014-10-07 | Amazon Technologies, Inc. | Reactive auto-scaling of capacity |
US9229749B2 (en) | 2011-10-31 | 2016-01-05 | Cisco Technology, Inc. | Compute and storage provisioning in a cloud environment |
US20130145004A1 (en) * | 2011-12-05 | 2013-06-06 | International Business Machines Corporation | Provisioning using presence detection |
US8966085B2 (en) | 2012-01-04 | 2015-02-24 | International Business Machines Corporation | Policy-based scaling of computing resources in a networked computing environment |
-
2012
- 2012-01-09 US US13/346,416 patent/US8904008B2/en active Active
-
2013
- 2013-01-07 EP EP13736422.0A patent/EP2802998B1/en active Active
- 2013-01-07 KR KR1020147018922A patent/KR102005595B1/ko active IP Right Grant
- 2013-01-07 EP EP17169977.0A patent/EP3223156A1/en active Pending
- 2013-01-07 JP JP2014552220A patent/JP2015507281A/ja active Pending
- 2013-01-07 CN CN201380005099.8A patent/CN104040526B/zh active Active
- 2013-01-07 WO PCT/US2013/020443 patent/WO2013106257A1/en active Application Filing
-
2014
- 2014-10-28 US US14/526,447 patent/US10241812B2/en active Active
-
2017
- 2017-11-29 JP JP2017228719A patent/JP2018055707A/ja active Pending
-
2019
- 2019-02-18 US US16/278,665 patent/US11194604B2/en active Active
-
2021
- 2021-11-23 US US17/534,403 patent/US11922198B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007257097A (ja) * | 2006-03-22 | 2007-10-04 | Nec Corp | 仮想計算機システム及びその物理リソース再構成方法並びにプログラム |
JP2011090594A (ja) * | 2009-10-26 | 2011-05-06 | Hitachi Ltd | サーバ管理装置およびサーバ管理方法 |
WO2011087982A1 (en) * | 2010-01-12 | 2011-07-21 | Amazon Technologies, Inc. | Managing private use of program execution capacity |
Also Published As
Publication number | Publication date |
---|---|
US11194604B2 (en) | 2021-12-07 |
US8904008B2 (en) | 2014-12-02 |
EP2802998A4 (en) | 2016-01-27 |
US20190278622A1 (en) | 2019-09-12 |
US10241812B2 (en) | 2019-03-26 |
EP2802998B1 (en) | 2020-03-18 |
EP2802998A1 (en) | 2014-11-19 |
CN104040526B (zh) | 2017-12-01 |
KR20140111671A (ko) | 2014-09-19 |
JP2015507281A (ja) | 2015-03-05 |
US20130179574A1 (en) | 2013-07-11 |
WO2013106257A1 (en) | 2013-07-18 |
CN104040526A (zh) | 2014-09-10 |
US20150067682A1 (en) | 2015-03-05 |
US11922198B2 (en) | 2024-03-05 |
KR102005595B1 (ko) | 2019-07-30 |
EP3223156A1 (en) | 2017-09-27 |
US20220156098A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11922198B2 (en) | Assignment of resources in virtual machine pools | |
JP6254949B2 (ja) | 仮想マシンプールにおけるリソースの価格設定 | |
EP2802981B1 (en) | Decoupling paas resources, jobs, and scheduling | |
JP6165777B2 (ja) | 自動スケーリングのためのコンピューティングシステム、コンピュータ記憶メモリ、及び、コンピュータ実装方法 | |
US20130179894A1 (en) | Platform as a service job scheduling | |
US11106508B2 (en) | Elastic multi-tenant container architecture | |
US10996994B2 (en) | Task queuing and dispatching mechanisms in a computational device | |
US11175948B2 (en) | Grouping of tasks for distribution among processing entities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180906 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20181210 |