(57)【特許請求の範囲】
【請求項１】
コンピューティングリソース使用をプロファイルするためのシステムであって、前記システムは
１つ以上のプロセッサと、
実行可能命令を含むコンピュータ可読メモリと、
を具え、
前記実行可能命令は、前記１つ以上のプロセッサによって実行されるとき、
第２の仮想マシンの少なくとも１つのインスタンスを稼動することから判定される運用メトリクスに少なくとも部分的に基づいて、第１の仮想マシンのインスタンスの運用に関係する１つ以上の特徴が運用制約を満たすか否かを判定し、
前記第１の仮想マシンをインスタンス化するためのリクエストを受信し、
前記リクエストに応答して、
複数のホストコンピューティングデバイスのうち、前記１つ以上の特徴に関連付けられる１つのホストコンピューティングデバイスを、前記１つ以上の特徴が前記運用制約を満たすか否かの判定に部分的に基づいて、識別し、
少なくとも部分的に、前記第１の仮想マシンの新しいインスタンスを、前記ホストコンピューティングデバイス上にインスタンス化させる、
ように前記システムを構成する、
システム。
【請求項２】
前記運用メトリクスのうちの少なくとも１つが、中央処理装置（ＣＰＵ）利用、メモリ利用、ネットワーク利用、ハードディスク利用、または、電力利用に関係する、
請求項１に記載のシステム。
【請求項３】
前記１つ以上の特徴のうちの少なくとも１つが、メモリ容量、中央処理装置（ＣＰＵ）容量、ネットワーク帯域幅、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット、または、性能メトリクスの分散を含む、
請求項１に記載のシステム。
【請求項４】
前記運用制約が、前記ホストコンピューティングデバイスによって提供されるコンピューティングリソースの予想使用量に関係する、
請求項１に記載のシステム。
【請求項５】
前記予想使用量が、前記第１の仮想マシンに関連付けられる顧客から受信されるデータに少なくとも部分的に更に基づく、
請求項４に記載のシステム。
【請求項６】
前記ホストコンピューティングデバイス上の前記新しいインスタンスの運用に関する追加の運用メトリクスであって、前記１つ以上の特徴に関係する、追加の運用メトリクスを受信し、
前記追加の運用メトリクスに基づいて、前記１つ以上の特徴がもはや前記運用制約を満たさないという判定に応答して、前記新しいインスタンスを、前記運用制約を満たす１つ以上の追加の特徴に関連付けられる第２のコンピューティングデバイスへ転送する、
ように更に構成される、
請求項１に記載のシステム。
【請求項７】
コンピューティングリソース使用をプロファイルするためのコンピュータによって実装される方法であって、
前記方法は、１つ以上のコンピューティングデバイスを備えるデータセンター管理構成要素によって、リソース使用のプロファイルおよび運用メトリクスのプロファイルである運用プロファイルに関連付けられるソフトウェア作業負荷の初期化に対するリクエストを受信するステップを含み、前記運用プロファイルは、前記ソフトウェア作業負荷に関連付けられる複数の履歴運用メトリクスに少なくとも部分的に基づき、
前記方法は、前記リクエストに応答して、
複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスを、前記運用プロファイルおよび前記コンピューティングデバイスに関連付けられる１つ以上の特徴に少なくとも部分的に基づいて識別するステップと、
前記ソフトウェア作業負荷を前記コンピューティングデバイス上で初期化させるステップと、
を含む、
コンピュータによって実装される方法。
【請求項８】
前記運用プロファイルが、第１のコンピューティングリソースに関連付けられる第１の予想リソース使用量を含み、前記第１の予想リソース使用量が、前記第１のコンピューティングリソースの使用に関する複数の履歴運用メトリクスに少なくとも部分的に基づき、前記１つ以上の特徴のうちの１つの特徴が、前記第１のコンピューティングリソースの可用性を含む、
請求項７に記載のコンピュータによって実装される方法。
【請求項９】
前記第１のコンピューティングリソースの使用に関する前記複数の履歴運用メトリクスの各々が、使用測定値が記録された時刻に関連付けられ、前記運用プロファイルが、前記複数の履歴運用メトリクスの各々が記録された前記時刻に少なくとも部分的に更に基づく、
請求項８に記載のコンピュータによって実装される方法。
【請求項１０】
前記ソフトウェア作業負荷に関連付けられる顧客とのサービスレベル合意書に少なくとも部分的に基づいて、前記運用プロファイルを判定するステップと、
前記コンピューティングデバイス上の前記ソフトウェア作業負荷の運用に関する実質的に最新の運用メトリクスであって、前記１つ以上の特徴に関係する、実質的に最新の運用メトリクスを受信するステップと、
前記実質的に最新の運用メトリクスに基づいて、前記コンピューティングデバイスに関連付けられる前記１つ以上の特徴のうちのいずれもが所望される特徴に対応しないと判定することに応答して、前記ソフトウェア作業負荷を、前記所望される特徴に対応する特徴に関連付けられる第２のコンピューティングデバイスへ転送するステップと、
を更に含む、
請求項７に記載のコンピュータによって実装される方法。
【請求項１１】
前記運用プロファイルが、複数の既定の運用プロファイルのうちの第１の既定の運用プロファイルを含む、
請求項７に記載のコンピュータによって実装される方法。
【請求項１２】
前記既定の運用プロファイルが、運用階層内のレベルに関連付けられ、前記第１の既定の運用プロファイルが、前記ソフトウェア作業負荷に対して、前記運用階層のより上位のレベルに関連付けられる、
請求項１１に記載のコンピュータによって実装される方法。
【請求項１３】
前記運用プロファイルが、顧客指定の運用プロファイルを含み、前記複数の履歴運用メトリクスが、前記顧客による前記ソフトウェア作業負荷の初期化または使用に関連付けられる、
請求項７に記載のコンピュータによって実装される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
一般的に記述すると、コンピューティングデバイスは、データを交換するために、通信網、または一連の通信網を利用する。企業および組織は、業務をサポートまたは第三者にサービスを提供するために、いくつかのコンピューティングデバイスを相互接続するコンピュータネットワークを運用する。コンピューティングシステムは、単一の地理的場所に位置する、または（例えば、民営または公共の通信網を介して相互接続される）複数の別々の地理的場所に位置する可能性がある。具体的には、データセンターまたはデータ処理センターは、本明細書において概して「データセンター」と言及され、データセンターのユーザーに対してコンピューティングリソースを提供するためのいくつかの相互接続されたコンピューティングシステムを含むことができる。データセンターは、組織の代わりに運用される民営のデータセンター、あるいは一般市民の代わりにまたは一般市民の利益のために運用される公共のデータセンターの場合がある。
【０００２】
データセンターのリソースの増加した利用を助長するために、仮想技術は、物理的に単一のホストコンピューティングデバイスが、データセンターのユーザーには、独立したコンピューティングデバイスのように見え、かつ作動する、仮想マシンインスタンス構成のうちの１つ以上のインスタンスをホストすることを可能にすることができる。仮想化に伴い、物理的に単一のホストコンピューティングデバイスは、動的様式において仮想マシンインスタンスを作成、保守、削除、またはその他管理することが可能である。これによって、ユーザーは、単一のコンピューティングデバイスまたはネットワーク接続されたコンピューティングデバイスの構成をリクエストすることが可能で、可変数の仮想マシンリソースが提供されることが可能になる。
【０００３】
ホストコンピューティングデバイスによって提供されるコンピューティングリソースとして、コンピューティング能力、メモリおよび他の記憶装置、帯域幅等を挙げることができる。何千台ものホストコンピューティングデバイスを備えるデータセンター環境において、１台の仮想マシンの１つのインスタンスは、ターゲットのホストコンピューティングデバイスが、十分かつ利用可能なコンピューティングデバイスリソース（例えば、処理装置、メモリ等）等の指定条件を満たす限り、１台の無作為なホストコンピューティングデバイス上にインスタンス化されてもよい。１台の仮想マシンの１つのインスタンスが、１台の物理的ホストコンピューティングデバイス上にインスタンス化されると、１つ以上のコンピューティングリソースの既定量が仮想マシンインスタンスによって使用されるために予約されてもよい。データセンター環境のコンピューティングリソースプロバイダまたはその他の運用者は、仮想マシンインスタンスに対して、ターゲットのコンピューティングデバイス上のコンピューティングリソースのうち予約された量の可用性を保証することができる。
【０００４】
図面中、参照番号は参照される要素間の対応を示すために再使用されてもよい。図面は、本明細書に記載の例示的実施形態を図示するために提供され、本開示の範囲を限定することを目的としない。
【図面の簡単な説明】
【０００５】
【図１】１つの管理構成要素、複数のホストコンピューティングデバイス、および複数の顧客を含む、例示的ネットワークコンピューティング環境のブロック図である。
【図２】多様なモジュールおよび記憶構成要素を含む、例示的な管理構成要素のブロック図である。
【図３】コンピューティングリソースの使用を自動的にプロファイルするための例示的プロセスの流れ図である。
【図４】コンピューティングデバイスによって提供されるコンピューティングリソースを利用する仮想マシンをホストする例示的なホストコンピューティングデバイスのブロック図である。
【図５】ホストコンピューティングデバイス上で仮想マシンを起動することと、コンピューティングリソースを割り当てかつオーバーサブスクリプションすることと、コンピューティングリソースの利用を更に最適化するために、現在稼動している仮想マシンを移行することのための例示的プロセスの流れ図である。
【図６】多様なコンピューティングリソースがオーバーサブスクリプションされ、過剰な容量が利用可能なままである、例示的なホストコンピューティングデバイスのブロック図である。
【図７】ホストコンピューティングデバイス上で稼動する各仮想マシンのリソース利用が最低であるために、多様なコンピューティングリソースが実質的にオーバーサブスクリプションされる、例示的なホストコンピューティングデバイスのブロック図である。
【図８】オーバーサブスクリプション、および利用可能なコンピューティングリソース容量の欠落を起因として、あるホストコンピューティングデバイスから別のホストコンピューティングデバイスへの仮想マシンの例示的な移行のブロック図である。
【発明を実施するための形態】
【０００６】
一般的に記述すると、本開示は、コンピューティングリソースの利用に関する。具体的には、本開示は、現実のリソース使用測定値および他の運用メトリクスの解析に基づいて、コンピューティングリソースの消費者のためにリソース使用および運用メトリクスのプロファイルを自動的に判定することに関する。いくつかの実施形態において、顧客仕様に従ってインスタンス化された仮想マシンインスタンス（例えば、顧客仕様に従ってオペレーティングシステムおよびアプリケーションソフトウェアを備えて構成された仮想マシンからインスタンス化された仮想マシンインスタンス）等のコンピューティングリソースの消費者は、ホストの物理的コンピューティングデバイス上にインスタンス化されてもよい。仮想マシンインスタンスは、仮想マシンインスタンスによる１つ以上のコンピュータソフトウェアプログラムの実行または他の作業負荷に基づいて、多様なコンピューティングリソースを消費することができる。仮想マシンインスタンスは次いで、実行を中止することができる、またはその他異なる目的のために構成することができる。
【０００７】
１つの顧客または１組の顧客等、特異的なエンティティに対して、仮想マシンインスタンスをインスタンス化するプロセスが繰り返されてもよい。仮想マシンインスタンスのライフサイクルを処理する一環として、仮想マシンインスタンスを提供することと関連付けられるサービスプロバイダは、リソースの消費を観察し、記録することができる。サービスプロバイダは次いで、処理リソース消費測定値および他の運用メトリクス情報に基づいて、仮想マシンインスタンスのリソース使用および運用メトリクスのプロファイルを判定することができる。
【０００８】
本開示の追加の態様は、概して運用プロファイルと言及される、リソース使用および運用メトリクスのプロファイルを一般化することに関する。例えば、何千もの仮想マシンインスタンスがインスタンス化される場合があり、データセンター等、単一のネットワークコンピューティング環境でリソースを利用する場合がある。各仮想マシンインスタンスのために個別のカスタマイズされた運用プロファイルを判定し、保守するのではなく、仮想マシンインスタンスは、一般化されたまたはデフォルトの運用プロファイルに割り当てられてもよい。したがって、仮想マシンインスタンス群が、多様な組織条件に従って分類され、同じ運用プロファイルに割り当てられてもよい。いくつかの場合、運用プロファイルは、特定の仮想マシンインスタンスの構成が特定の運用プロファイルと、それ自体が複数の仮想マシンインスタンス構成と関連付けられるより一般的な運用プロファイルとも関連付けられるように、階層的であってもよい。階層には複数のレベルが存在してもよく、可能性として、何千もの仮想マシンインスタンス構成が、単一の一般的な運用プロファイルまたは少数の最上位の運用プロファイル、および階層内の各レベルにあるより多数のより特異的な運用プロファイルと関連付けられる。階層の最下位レベルには、特定の顧客によって使用される単一の仮想マシンインスタンス構成と関連付けられる、特定の運用プロファイルが存在してもよい。
【０００９】
本開示の更なる態様は、自動的に判定された運用プロファイルに基づいて、仮想マシンインスタンスに対するコンピューティングリソースを提供するためにターゲットのホストコンピューティングデバイスを識別することに関する。いくつかの実施形態において、特定の物理的ホストコンピューティングデバイスは、同時に複数の仮想マシンインスタンスにターゲットのコンピューティングリソースを提供するように構成されてもよい。単一の仮想マシンインスタンスによって使用されるために、コンピューティングリソースの既定量が予約されてもよい。仮想マシンインスタンスの運用プロファイルが、その仮想マシンインスタンスがそのインスタンスのために予約されていたコンピューティングデバイスリソースを消費する可能性が低いことを示すと、ホストコンピューティングデバイスは、追加の仮想マシンインスタンスをインスタンス化してもよい。追加の仮想マシンインスタンスは、以前にインスタンス化された仮想マシンインスタンスと同時にホストコンピューティングリソースと関連付けられても、またはホストコンピューティングリソースへのアクセスを有してもよい。加えて、仮想マシンインスタンスのうちのいずれかが、消費が仮想マシンインスタンスの運用プロファイルに指定された１つ以上の閾値に到達または超過するようにリソースを消費する、そうでなければリソースへのアクセスを制限する場合、仮想マシンインスタンスのうちの１つ以上が、別のホストコンピューティングデバイスへ転送されてもよい。例えば、閾値を超える消費と関連付けられる仮想マシンインスタンスが転送されてもよく、または他の仮想マシンインスタンスが転送されてもよい。
【００１０】
いくつかのコンピューティングリソースは必ずしも、ホストコンピューティングデバイスによって提供されず、そうではなく、ホスト以外のリソースによって提供される。例えば、ネットワークトポロジーは、１つ以上のリンク（例えば、スイッチと他のネットワーク構成要素との間のネットワーク接続）を横断するために、あるホストコンピューティングデバイスから、第２のホストコンピューティングデバイスへの通信を必要とする場合がある。いくつかのリンクは、第３のホストコンピューティングデバイスへの通信のために異なっていてもよい。リンクトラフィックに関するデータおよび通信がホスト間を横断するリンクの数は、リソース消費測定値または運用メトリクスとして記録されてもよい。このデータは、別のホストコンピューティングデバイスと通信する可能性がある仮想マシンインスタンスをインスタンス化するのがどのホストコンピューティングデバイスであるかを判定するために、将来使用されてもよい。加えて、いくつかのコンピューティングリソースの消費は、一般的に他の仮想マシンインスタンスまたは消費者のために利用可能であるリソースの量を必ずしも削減しない。例えば、特定の命令セットのようにホストコンピューティングデバイスによって提供される特徴は、概して、コンピューティングリソースとして言及されてもよい。しかしながら、命令セットの使用は、別の仮想マシンインスタンス、アプリケーション、または他の消費者に対する命令セットの可用性を必ずしも削減しない。
【００１１】
本開示に記載される実施形態の態様は、例示の目的のため、管理構成要素と、サーバーコンピューティングデバイスと、顧客の代わりにサーバーコンピューティングデバイス上でインスタンス化された仮想マシンとの間の関係および相互作用を中心とするが、当業者は、本明細書に開示される技法は、任意の数のハードウェアあるいはソフトウェアプロセスまたはアプリケーションに適用されてもよいことを理解するであろう。例えば、仮想マシンインスタンスは概して、例示的なコンピューティングリソース消費者として使用される一方、他のプログラムまたは作業負荷は、アプリケーションソフトウェア、オペレーティングシステム、ストレージエリアネットワーク（ＳＡＮ）ノード等と置換されてもよい。加えて、メモリ、ＣＰＵ容量、およびネットワーク帯域幅等のコンピューティングリソースは、例示的なコンピューティングリソースとして使用されるが、ネットワークリンクトラフィック、レイテンシ、プロセッサ命令セット等の他のコンピューティングリソースが置換されてもよい。さらに、本開示の多様な態様は、図示例および実施形態を参照して説明されるが、当業者は、開示される実施形態および例は限定として解釈されてはならないことを理解するであろう。本開示の多様な態様は所定の例および実施形態に関して説明されるが、これらは例示を目的とし、本開示を制限するものではない。
【００１２】
図１は、それらのプロファイルに基づくリソースの使用およびリソースの割り当ての自動プロファイル化が実装されてもよい、例示的なネットワークコンピューティング環境１００を図示する。運用プロファイルおよびリソースの割り当ては、実際のリソース使用の事前の測定値および他の運用メトリクス、ならびにリソースの予想される将来の使用に基づくことができる。ネットワークコンピューティング環境１００は、管理構成要素１０２と、ネットワーク１１０を介して通信状態にある任意の数の物理的ホストコンピューティングデバイス１０４ａ〜１０４ｎとを含むことができる。１つ以上の顧客１２２が、ネットワーク１２０を介して、ネットワークコンピューティング環境１００の構成要素と通信してもよい。
【００１３】
図１に図示されるようなネットワークコンピューティング環境１００は、複数のホストコンピューティングデバイス１０４ａ〜１０４ｎがコンピューティングサービスおよびリソースを内部または外部の顧客１２２に提供する、データセンターおよび他の環境に実装されてもよい。以下に詳細を説明するように、各顧客１２２は、コンピューティング処理を開始するために、ネットワークコンピューティング環境１００内部の管理構成要素１０２または何らかの他の構成要素に接続してもよい。コンピューティング処理の開始は、ホストコンピューティングデバイス１０４上での仮想マシンインスタンスのインスタンス化、または動作環境および１つ以上のソフトウェアアプリケーションの構成を含んでもよい。仮想マシンインスタンスは、ユーザーの代わりに、ホストコンピューティングデバイス１０４、ネットワーク１１０等のコンピューティングリソースを消費することを実行してもよい。本開示は、例示のみを目的として、仮想マシンの使用を通じて外部または内部の顧客１２２にコンピューティングサービスを提供するネットワークコンピューティング環境１００の運用を中心とするが、本明細書に記載されるシステムおよび処理は、別の顧客１２２エンティティを全く含まないまたは仮想マシン使用を全く含まないものも含めて、ネットワークコンピューティング環境１００の任意の実装に適用されてもよい。
【００１４】
各ホストコンピューティングデバイス１０４は、ブレードサーバーのようなサーバーコンピュータであってもよい。任意選択的に、ホストコンピューティングデバイス１０４は、複数の仮想マシンインスタンスのような複数の消費者にコンピューティングサービスおよびリソースを同時に提供するように構成されるミッドレンジコンピューティングデバイス、メインフレームコンピュータ、または任意の他のコンピューティングデバイスであってもよい。典型的な実装において、ホストコンピューティングデバイス１０４は、ネットワーク１１０を介して、ネットワークコンピューティング環境１００の他のホストコンピューティングデバイス１０４、管理構成要素１０２、または何らかの他の構成要素と通信するように構成することができる。
【００１５】
ネットワーク１１０は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、何らかの他のネットワーク、またはこれらの組み合わせであってもよい。加えて、ネットワークコンピューティング環境１００は、企業または大学のネットワークのような別のネットワーク１２０、またはインターネットのような独立したエンティティによって運用されるネットワークの集合に接続してもよい。ネットワークコンピューティング環境１００の顧客１２２は、ネットワーク１２０、１１０の組み合わせ上から、ホストコンピューティングデバイス１０４と通信してもよい。いくつかの実施形態において、顧客１２２は、コンピューティングデバイス１０２に仮想マシンインスタンスを起動させて、顧客１２２のためにまたは代わりに多様なコンピューティング演算を実行させてもよい。所与の時点で、単一のホストコンピューティングデバイス１０４上で任意の数の仮想マシンインスタンスが実行していてもよい。加えて、ホストコンピューティングデバイス１０４上で実行している多様な仮想マシンインスタンスは、単一の顧客１２２と、またはいくつかの異なる顧客１２２と関連付けられてもよい。
【００１６】
管理構成要素１０２は、ハードウェアとして、またはハードウェアおよびソフトウェアの組み合わせとして実装されてもよい。例えば、管理構成要素１０２は、本明細書に記載される機能を実施するために、１つ以上のソフトウェアプログラムを実行するように構成された１つ以上のコンピューティングデバイスのコンピューティングシステムであってもよい。いくつかの実施形態において、管理構成要素は、ホストコンピューティングデバイス１０４ａ〜１０４ｎのうちの１つ以上を含んでもよい。
【００１７】
図２は、サンプルの管理構成要素１０２を詳細に図示する。管理構成要素１０２は、プロファイル判定モジュール２０２と、配置モジュール２０４と、移行モジュール２０６と、運用メトリクスデータストア２０８と、プロファイルデータストア２１０とを含むことができる。いくつかの実施形態において、管理構成要素１０２は、図２に図示されるよりも多いまたはより少ないモジュールおよびデータストアを含んでもよい。例えば、移行機能が実装されない場合、または配置モジュール２０４によって実装される場合、別の移行モジュール２０６が存在しない場合がある。別の例示的実施形態において、一般化された顧客プロファイルのために追加のデータストアが存在してもよい。
【００１８】
運用中、プロファイル判定モジュール２０２は、特定の顧客１２２と関連付けられる全ての仮想マシンインスタンスのうち、特定の時点での特定の仮想マシンインスタンス構成のインスタンス等によって、運用メトリクスおよびリソース使用に関する運用データを取得することができる。プロファイル判定モジュール２０２は、運用データを解析し、プロファイルされている仮想マシンインスタンスまたは仮想マシンインスタンス群によって利用されるコンピューティングリソースの運用プロファイルを開発することができる。例えば、運用データは、利用されたメモリ量、中央処理装置（ＣＰＵ）利用、送信または受信されたネットワークトラフィック量、利用されたハードディスク容量、ディスク操作の数、利用された電気の量（例えば、仮想マシンインスタンスに貢献することができるホストコンピューティングデバイス１０４によって利用された量）、開始されたネットワークリンクトラフィックの量等に関する履歴測定値を含んでもよい。プロファイル判定モジュール２０２は次いで、特定の仮想マシンインスタンス構成または仮想マシンインスタンス構成群のインスタンスと関連付けられる測定値のそれぞれの平均を判定し、平均を運用プロファイルに記憶することができる。運用プロファイルは、平均測定値に制限される必要はない。例えば、運用プロファイルは、中間値、標準偏差、使用ヒストグラム、あるいは任意の他の適切または有用なデータ等、他の統計解析を含むことができる。いくつかの実施形態において、運用プロファイルは更に、時刻、日等のような、使用の時間的な特徴に従って特徴付けられてもよい。
【００１９】
運用プロファイルはまた、予想測定値および予想運用メトリクスに従って特徴付けられてもよい。例えば、一般にジッターと呼ばれる、予想性能メトリクスからの分散が観察され、運用プロファイルに含まれる場合がある。このようなデータは、設計の目標、サービスレベル合意および顧客に対する他の約束または義務が満たされているかを判定するために、またはどの程度の頻度で満たされないかを判定するために使用されてもよい。配置モジュール２０４は、将来の配置の判定を行う際にジッターを考慮することができ、同じ運用メトリクスが予想範囲外にならないことを保証するように務める、そうでなければ消費者義務が満足されることを保証する。いくつかの実施形態において、運用プロファイルは、レイテンシの優先または要件、命令セットの優先または要件等、他のデータを含んでもよい。このようなデータは、消費者によって提供されてもよく、またはプロファイル判定モジュール２０２によって仮想マシンインスタンス運用の解析を通じて判定されてもよい。
【００２０】
図示されるように、サービスプロバイダは、小型、中型、および大型の３つのクラスの仮想マシンを提供してもよい。各クラスは、仮想マシンのインスタンスによって使用するために予約される、各コンピューティングリソースの既定量と関連付けられてもよい（例えば、小型のＶＭは２ＧＢのＲＡＭを有してもよく、中型のＶＭは８ＧＢのＲＡＭを有してもよく、大型のＶＭは３２ＧＢのＲＡＭを有してもよい）。顧客は、ウェブサーバーソフトウェアで構成された大型の仮想マシンのように、オペレーティングシステムおよびアプリケーションソフトウェアで構成された仮想マシンのインスタンスをインスタンス化してもよい。ウェブサーバーソフトウェアで構成された大型の仮想マシンのインスタンスによって、コンピューティングリソースの使用に関する測定値が記録されてもよい。プロファイル判定モジュール２０２は次いで、例えば、ウェブサーバーとして使用される場合、仮想マシンインスタンス構成の将来のインスタンスに対する予想リソース使用量を計算することができる。予想リソース使用量は、プロファイル判定モジュール２０２によって判定された運用プロファイルの根拠を形成してもよい。プロファイル判定モジュール２０２は次いで、実際のリソース使用の測定値を含むデータセットが経時的に構築されるにつれて、運用プロファイルを変更してもよい。
【００２１】
プロファイル判定モジュール２０２によって使用されるプロファイルデータは、多様なソースから取得されてもよい。上記のように、データは、仮想マシンと関連付けられるエンティティから取得されてもよい。データはまた、仮想マシンインスタンスが稼動しているホストコンピューティングデバイス１０４の作業負荷解析構成要素から直接取得されてもよい。いくつかの実施形態において、データは、運用メトリクスデータストア２０８から取得することができる。運用メトリクスデータストア２０８は、図２に図示されるように、管理構成要素１０２と統合されてもよく、または専用のリレーショナルデータベース管理システム（ＲＤＢＭＳ）サーバーのような別のコンピューティングデバイス上に物理的に位置してもよい。プロファイル判定モジュール２０２によって判定される運用プロファイルは、プロファイルデータストア２１０に記憶されてもよい。運用メトリクスデータストア２０８に類似して、プロファイルデータストア２１０は、管理構成要素１０２と統合されてもよく、または専用ＲＤＢＭＳサーバーのように別のコンピューティングデバイス上に位置してもよい。
【００２２】
いくつかのネットワークコンピューティング環境１００において、プロファイルする何千以上もの仮想マシンインスタンスが存在する場合があり、それぞれの運用プロファイルは、例えば、特定の仮想マシンインスタンス構成または特定の顧客の使用に対して固有な使用データの解析に基づく場合がある。ホストコンピューティングデバイス１０４ａ〜１０４ｎ上の仮想マシンインスタンスのインスタンス化に関する配置判定を行うために運用プロファイルを効率的に利用するために、運用プロファイルは一般化されてもよい。したがって、いくつかの異なる仮想マシンインスタンス構成は、各仮想マシンインスタンス構成と関連付けられる実際のリソース使用において分散が存在する場合であっても、同じ、または実質的に類似の運用プロファイルと関連付けられてもよい。例えば、プロファイル判定モジュール２０２は、各仮想マシンインスタンス構成に対してカスタマイズされた運用プロファイルを記憶するのではなく、仮想マシンインスタンス構成を既定の予想使用量と関連付けてもよい。既定の運用プロファイルは、測定されるそれぞれのコンピューティングリソースに対する利用範囲を含んでもよい。加えて、運用プロファイルは、特定の仮想マシンインスタンス構成が特定の運用プロファイルと、複数の仮想マシンインスタンス構成とそれ自体が関連付けられるより一般的な運用プロファイルとも関連付けられるように階層的であってもよい。
【００２３】
いくつかの実施形態において、運用プロファイルは、カテゴリに更に一般化されてもよい。例えば、それぞれが異なるネットワーク使用量と関連付けられる、いくつかの仮想マシンインスタンス構成は、使用測定値が何らかの閾値を上回るか、または下回るかに応じて、「軽量ネットワークアプリケーション」または「重量ネットワークアプリケーション」として分類されてもよい。このような分類スキームにおいて、インスタンス化されると、主にローカルのコンピューティング演算を実施し、ネットワーク接続をまれに利用する仮想マシンインスタンス構成は、ネットワーク接続をしばしば利用するが、仮想マシンインスタンスが稼動するホストコンピューティングデバイス１０４ａ〜１０４ｎに利用可能であるネットワーク帯域幅の量と比較するとわずかな場合がある非常に少ない伝送のためだけである、仮想マシンインスタンス構成と同じ「軽量ネットワークアプリケーション」カテゴリに分類されてもよい。このような一般化された運用プロファイルもまた、「軽量ネットワークアプリケーション／重量ＣＰＵアプリケーション」および「軽量ネットワークアプリケーション／軽量ＣＰＵアプリケーション」等、２つ以上のカテゴリの複合に基づいてもよい。前例に戻ると、２つの仮想マシンインスタンス構成は、異なるカテゴリと関連付けられてもよい。インスタンス化されると、主にローカルのコンピューティング演算を実施し、ネットワーク接続をまれに利用する仮想マシンインスタンス構成は、「軽量ネットワークアプリケーション／重量ＣＰＵアプリケーション」と分類されてもよく、一方、インスタンス化されると、少量のネットワーク伝送をしばしば開始する仮想マシンインスタンス構成は、仮想マシンインスタンスのＣＰＵ利用が閾値を下回る場合、「軽量ネットワークアプリケーション／軽量ＣＰＵアプリケーション」と分類されてもよい。
【００２４】
上記のように、運用プロファイルは、１つの仮想マシンインスタンス構成に特異的またはいくつかの仮想マシンインスタンス構成に一般化されているかどうかに関わらず、仮想マシンインスタンスを配置するホストコンピューティングデバイス１０４ａ〜１０４ｎを識別するために使用されてもよい。配置モジュール２０４は、顧客１２２がコンピューティングセッションを開始するとき、または仮想マシンがその他インスタンス化されるときに起動されてもよい。配置モジュール２０４は、現時点でどの運用プロファイルが仮想マシンインスタンスと関連付けられるかを判定してもよい。例えば、運用プロファイルは、現在の月間の現在の時刻の仮想マシンインスタンスと関連付けられる実際のリソース使用の測定値等を含む、カスタマイズされたプロファイルであってもよい。いくつかの場合において、測定値は、特定の顧客に特異的であってもよく、特定の顧客の運用プロファイルが作成され、アクセスされてもよい。顧客特異的な運用プロファイルは、特異的な仮想マシンインスタンス構成に適用することができるか、または複数の個別の仮想マシンインスタンス構成に一般的に適用してもよい。任意選択的に、運用プロファイルは、仮想マシンインスタンスと関連付けられるリソース使用の全体的な特徴に基づいて一般化されたプロファイルであってもよく、現在の時刻等にも基づいてもよい。仮想マシン配置モジュール２０４は次いで、ホストコンピューティングデバイス１０４ａ〜１０４ｎのリソース可用性、および運用プロファイルから判定された仮想マシンインスタンスの予想されるリソース使用に基づいて仮想マシンインスタンスを起動するホストコンピューティングデバイス１０４を選択することができる。
【００２５】
リソース利用は、特異的な仮想マシンインスタンス構成の単一のインスタンスの寿命にわたって、および特異的な仮想マシンインスタンス構成の複数のインスタンスにわたって動的であってもよい。管理構成要素１０２の移行モジュール２０６は、各稼動中の仮想マシンインスタンスおよび仮想マシンインスタンスが稼動しているホストコンピューティングデバイス１０４のリソース利用を監視してもよい。リソース利用が変化すると、移行モジュール２０６は、上記の仮想マシン配置モジュール２０４に類似して、仮想マシンインスタンスを配置する適切なホストコンピューティングデバイス１０４を選択してもよい。仮想マシンの新しいインスタンスが選択されたホストコンピューティングデバイス１０４上で起動されてもよく、仮想マシンインスタンスの稼動状態（メモリ、入力等）が新しい仮想マシンインスタンスにコピーされてもよい。新しい仮想マシンインスタンスが稼動を開始する準備が整うと、前の仮想マシンインスタンスは、データの損失なく、かつ性能の実質的な低下なく、終了されてもよい。新しい仮想マシンインスタンスは、利用可能なリソースのために、より効率的に稼動することができる。
【００２６】
いくつかの実施形態において、異なるホストコンピューティングデバイス上で仮想マシンの新しいインスタンスをインスタンス化し、前のインスタンスを終了するのではなく、リソースが再割り当てされてもよい。リソース利用または性能メトリクスが変化すると、追加のリソース（例えば、メモリ）が特定の仮想マシンに割り当てられてもよい。例えば、リソースは、そのリソースを完全に利用することが予想されない他の仮想マシンから再割り当てされてもよい。
【００２７】
ここで図３を参照して、仮想マシンインスタンス構成のために運用プロファイルを判定するための例示的プロセス３００を説明する。プロセス３００は、管理構成要素１０２によって実行されてもよい。管理構成要素１０２は、顧客１２２からリクエストを受信してもよく、そうでなければ仮想マシンをインスタンス化するように通知されてもよい。仮想マシンインスタンスをインスタンス化した後、インスタンス化された仮想マシンインスタンスを特定した後、または仮想マシンをインスタンス化させた後、管理構成要素１０２は、仮想マシンインスタンスと関連付けられるコンピューティングリソース利用に関する運用データを監視してもよく、そうでなければ受信してもよい。リソース使用および運用メトリクスデータに基づいて、管理構成要素１０２は、仮想マシンインスタンス構成の運用プロファイルを判定または更新、あるいは既存の運用プロファイルを更新することができる。有利に、運用プロファイルが他の運用プロファイルと比較され、一般化されてもよく、仮想マシンインスタンス構成がリソース使用のカテゴリと関連付けられてもよい。
【００２８】
プロセス３００は、ブロック３０２で開始する。プロセス３００は、仮想マシンをインスタンス化するリクエストの受信に応答する等、自動的に開始してもよい。例えば、プロセス３００は、１組の実行可能プログラム命令において具現化され、管理構成要素１０２が関連付けられるコンピューティングシステムのコンピュータ可読媒体ドライブ上に記憶されてもよい。プロセス３００が開始すると、実行可能プログラム命令は、ＲＡＭ等のメモリにロードされ、コンピューティングシステムの１つ以上のプロセッサによって実行され得る。いくつかの実施形態において、コンピューティングシステムは、サーバーのようなコンピューティングデバイスを複数含んでもよく、プロセス３００は、複数のサーバーによって、逐次または同時に実行されてもよい。
【００２９】
ブロック３０４で、管理構成要素１０２または何らかの他の構成要素が、仮想マシンインスタンスを起動する。図５を参照して以下に詳細を説明するように、管理構成要素は、仮想マシンインスタンスによって消費されることが予想されるリソース、およびホストコンピューティングデバイス１０４ａ〜１０４ｎが現在利用可能にしているリソースに基づいて、仮想マシンインスタンスを起動するホストコンピューティングデバイス１０４を選択してもよい。仮想マシンインスタンスによって消費されることが予想される、または仮想マシンインスタンスに利用可能になるリソースは、予め存在する運用プロファイルから、顧客１２２または仮想マシンインスタンスを起動することをリクエストする他のエンティティから受信された情報等から、判定されてもよい。
【００３０】
プロセス３００は、ブロック３０６に進むことができ、新しく起動された仮想マシンインスタンスについて、運用メトリクスを取得し、運用プロファイルを作成または変更する。プロセス３００が進む間、本来存在したのと同じ運用プロファイル、または以前に起動された仮想マシンインスタンスのためにプロセス３００の実行中に変更された運用プロファイルに基づいて、ブロック３０４で、任意の数の追加の仮想マシンインスタンスが起動および／または配置されてもよい。このように、プロセス３００は、一般に、特定の時点で実行されている可能性がある運用プロファイル（またはプロファイルの階層において、その階層のより上位のレベルからのプロファイル）と関連付けられる仮想マシンインスタンスの数に対応する、任意の数の同時インスタンスにおいて実行されてもよい。
【００３１】
ブロック３０６で、仮想マシンインスタンスによって利用されるリソースが監視されてもよく、リソース使用測定値および他の運用メトリクスが取得されてもよい。ブロック３０８で、運用メトリクスが記録されてもよい。監視は、管理構成要素１０２によって、または仮想マシンインスタンスが稼動しているホストコンピューティングデバイス１０４の作業負荷解析構成要素４２１等、何らかの他の構成要素によって実行されてもよい。運用メトリクスは、運用メトリクスデータストア２０８に記憶されてもよい。作業負荷解析構成要素４２１を使用する実施形態において、作業負荷解析構成要素４２１は、運用メトリクスを一時的または長期的に記憶してもよい。作業負荷解析構成要素は、実質的に実時間に、予定された間隔で、仮想マシンの終了時に、何らかの他の時点で記憶するために運用メトリクスに関するデータを管理構成要素１０２へ伝送してもよく、または全く伝送しなくてもよい。
【００３２】
図４は、ホストコンピューティングデバイス１０４によって複数の仮想マシンインスタンスに提供されるいくつかのリソースの利用の測定値を図示する。図４に図示されるように、ホストコンピューティングデバイス１０４は、メモリ４０２、ＣＰＵ４０４、およびネットワーク帯域幅４０６等のコンピューティングリソースを提供することができる。いくつかの実施形態において、追加の、またはこれより少ないコンピューティングリソースが仮想マシンインスタンスに提供されてもよい。例えば、仮想マシンインスタンスは、他のデバイスと通信することが許可されない場合があり、従って、ネットワークインターフェース４０６の利用を測定する必要がない。別の例において、ホストコンピューティングデバイス１０４は、ハードディスクの空き容量、ハードディスクの運用、電力等の利用を提供し、追跡する。
【００３３】
いくつかの実施形態において、ネットワークコンピューティング環境１００の運用者等、コンピューティングリソースのプロバイダは、仮想マシンインスタンスを実行する一定量のコンピューティングリソースを顧客に提供する。例えば、顧客１２２は、その仮想マシンインスタンス構成のうちの１つのために、ランダムアクセスメモリ（ＲＡＭ）等のメモリの既定量、ＣＰＵコア等のコンピューティング能力の既定量、およびネットワークインターフェースによって提供されるネットワーク帯域幅の既定量を予約する場合がある。ホストコンピューティングデバイス１０４のメモリ４０２は、単一の仮想マシンインスタンスのために（例えば、部分４１２、４１４）、またはホストコンピューティングデバイス１０４の運用および他の内部手順のために（例えば、部分４１０）に予約される部分４１０、４１２、４１４に隔離されてもよい。ホストコンピューティングデバイス１０４の運用のために予約される部分は、仮想マシンインスタンス、オペレーティングシステム、ドライバ等の起動、実行、および終了を支援するためのハイパーバイザを含むことができる。加えて、ホストコンピューティングデバイス１０４は、リソース利用および任意選択的に管理構成要素１０２との通信を監視する作業負荷解析構成要素４２１を含むことができる。作業負荷解析構成要素４２１もまたメモリ空間４１０に所在してもよく、ハイパーバイザ４２０に統合されてもよく、メモリ空間４１０を共有する独立構成要素であってもよい。いくつかの実施形態において、作業負荷解析構成要素４２１は、顧客の仮想マシンインスタンスに予約されたメモリ空間４１２、４１４に所在してもよい。このような場合、作業負荷解析構成要素４２１は、仮想マシンインスタンス構成に統合されても、またはインスタンス化時に仮想マシンインスタンスに含まれてもよい。更なる実施形態において、作業負荷解析構成要素４２１は、そのために予約された別のメモリ空間に所在してもよく、ホストコンピューティングデバイス１０４のメモリ４０２を共有しない、独立したハードウェアデバイスのような構成要素として実装されてもよい。
【００３４】
多くの場合、仮想マシンインスタンスは、そのために予約されたリソースの全体部分を利用しない可能性がある。例えば、図４に図示されるＶＭ１  ４２２は、顧客１２２の仮想マシンインスタンスであってもよく、その全体がＶＭ１  ４２２による使用のために予約されたメモリ空間４１２に起動されてもよい。運用中、ＶＭ１  ４２２は、メモリ空間４１２全体を利用しない可能性があり、いくつかの場合、予約されたメモリ空間４１２のほんの一部を利用する可能性がある。しかしながら、時には、メモリ空間４１２の利用が変化する可能性があり、ＶＭ１  ４２２は、メモリ空間４１２の実質的に全てを利用する可能性がある。作業負荷解析構成要素４２１は、これらの変化を監視し、測定値および時刻、特異的な仮想マシンインスタンス構成、または存在する場合、ホストコンピューティングデバイス１０４上で稼動している他の仮想マシンインスタンス等の他のデータを記録することができる。作業負荷解析構成要素４２１は、データを管理構成要素１０２またはデータストアへ伝送することができる。いくつかの実施形態において、作業負荷解析構成要素４２１は、データを一時的に記憶し、その後、スケジュールに従って、またはＶＭ１  ４２２の終了等のトリガーイベントに応答して等、それを管理構成要素１０２へ転送することができる。メモリ４０２の利用に関するデータの測定および記録に類似して、作業負荷解析構成要素４２１または何らかの他の構成要素は、ＣＰＵ４０４、ネットワークインターフェース４０６、またはＶＭ１  ４２２によって利用される任意の他のコンピューティングリソースの使用を監視することができる。
【００３５】
予想または好ましい運用メトリクスからの任意の分散に関するデータが取得され、記録されてもよい。例えば、予想または好ましいメトリクスからの分散が存在するかどうかを判定するために、リソース使用測定値および他の運用メトリクスが記録され、運用プロファイルと比較されてもよい。いくつかの場合、運用メトリクスは顧客別に記録されてもよい。将来の配置または移行の判定を分散に基づいて行うことができるように、分散に関するデータが記録されてもよい。加えて、レイテンシ、リンクトラフィック等のホスト以外のリソースに関するデータが記録されてもよい。作業負荷解析構成要素４２１がこのようなデータを記録してもよく、またはホストの外部の何らかの構成要素（例えば、管理構成要素１０２またはスイッチ）が運用メトリクスを観察してもよい。いくつかの実施形態において、リソースの可用性を必ずしも削減しないリソース使用が判定されてもよい。例えば、その上で稼動している仮想マシンインスタンスまたはアプリケーションソフトウェアが、所定の暗号演算を実行する場合、あるいは所定の暗号機能または命令を呼び出していることが観察される場合、そのようなデータが記録されてもよい。配置モジュール２０４または移行モジュール２０６は、仮想マシンのインスタンスを起動または移行する際にこのようなデータを考慮することができる。Ｉｎｔｅｌ（登録商標）Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ  （ＡＥＳ）  Ｎｅｗ  Ｉｎｓｔｒｕｃｔｉｏｎｓ（ＡＥＳ−ＮＩ）をサポートするデバイスまたは類似のデバイス等、より効率的またはより強力な暗号命令を提供するホストコンピューティングデバイスが選択されてもよい。
【００３６】
ブロック３１０で、プロファイル判定モジュール２０２または管理構成要素１０２の何らかの他のモジュールは、仮想マシンインスタンスと関連付けられる運用プロファイルを変更するか、または新しい運用プロファイルを作成することができる。前述のように、運用プロファイルは、典型的または予想されるリソース使用、予想または所望される運用メトリクスからの分散等の情報を含むことができる。例えば、運用プロファイルは、単一の仮想マシンインスタンス構成のいくつかの異なるインスタンスのそれぞれの平均測定値からなる場合がある。各リソースは、特定の顧客、時刻、日、または他の環境因子に基づいて運用することに対応する複数の測定値と関連付けられてもよい。
【００３７】
いくつかの実施形態において、運用プロファイルの各リソースは、１つの統計測定値ではなく、利用のスコアまたは何らかの他の指標と関連付けられてもよい。例えば、各リソースには１〜１０のスコアが割り当てられる場合があり、より大きい数字は、リソースの最重量および／または最も頻繁なユーザーと関連付けられる。いくつかの実施形態において、運用プロファイルは、更に一般化されてもよい。既定の１組の一般化された運用プロファイルは、各リソースの測定値またはスコアの範囲を網羅してもよい。例えば、ＶＭ１  ４２２がインスタンス化された仮想マシンインスタンス構成は、夜間、ＶＭ１  ４２２がそのメモリ空間４１２の２５％以下を利用するが、そのＣＰＵ可用性のほぼ１００％を利用する場合、１つの一般化された運用プロファイルに割り当てられる場合がある。一般化された運用プロファイルは、時刻または他の因子に応じて、各リソースの測定値の複数の範囲を含むことができる。前の例に戻ると、ＶＭ１  ４２２がインスタンス化された仮想マシンインスタンス構成は、仮想マシンインスタンスが、夜間は前述の様式でリソースを典型的に利用するが、日中はそのメモリセグメント４１２およびＣＰＵ可用性の５０％を利用する場合は、代わりに異なる既定の運用プロファイルに割り当てられてもよい。複数の一般化された運用プロファイルは、特定の顧客による使用に基づいて、特定の仮想マシンインスタンス構成に割り当てられてもよい。例えば、仮想マシンインスタンス構成を使用する各顧客は、異なる運用プロファイルと関連付けられてもよい。
【００３８】
いくつかの実施形態において、各顧客１２２は、いくつかの異なる仮想マシンインスタンス構成を有する場合であっても、各仮想マシンインスタンス構成がリソースを異なって利用する可能性がある場合であっても、１つの一般化された運用プロファイルと関連付けられてもよい。顧客１２２は、図４のＶＭ１  ４２２がインスタンス化される構成等、１つの仮想マシンインスタンス構成を有してもよく、軽量ＣＰＵアプリケーションとして独立的にプロファイルされてもよく、一方、ＶＭ２  ４２４がインスタンス化される構成等、別の仮想マシンインスタンス構成は、重量ＣＰＵアプリケーションとして独立的にプロファイルされてもよい。顧客１２２は、その平均ＣＰＵ使用が中程度であるため、中程度のＣＰＵユーザーとしてプロファイルされてもよい。任意選択的に、顧客１２２は、重量ＣＰＵアプリケーションである少なくとも１つの仮想マシンインスタンス構成を有するため、重量ＣＰＵユーザーとしてプロファイルされてもよい。他の実施形態において、顧客は、各仮想マシンイメージ構成のためのいくつかの関連運用プロファイルを有することができる。ＶＭ１  ４２２等、実質的に同じ仮想マシンイメージの異なる顧客またはユーザーは、仮想マシンイメージが共通の構成であっても、異なる量のリソースを使用する可能性がある。特定のＶＭを起動する所与の顧客は、以前に記録されたのと同じ方式でそのＶＭを使用する可能性がより高くなり、ほぼ同じリソースを消費する可能性がある。
【００３９】
各仮想マシンインスタンス構成の運用プロファイルは、プロファイルデータストア２１０に記憶されてもよい。各プロファイルの実際の測定値が運用プロファイルに記憶されてもよく、あるいは、仮想マシンインスタンス構成が関連付けられるカテゴリまたは一般化された運用プロファイルのＩＤまたは指標が記憶されてもよい。仮想マシンプロファイルの代わりに、またはそれに加えて顧客プロファイルを判定かつ利用する実施形態において、顧客プロファイルデータは、同じデータストア２１０または異なるデータストアに記憶されてもよい。
【００４０】
ブロック３１２で、関係する運用プロファイルまたは一般化された運用プロファイルを作成または変更することができる。例えば、階層プロファイルが使用される場合、より上位のレベルのプロファイルを作成または変更してもよい。履歴運用メトリクスは、いくつかの場合、仮想マシンインスタンス構成がどの下位レベルのプロファイルに関連付けられるかに関わらず、より上位レベルの運用プロファイルと関連付けられる各仮想マシンインスタンス構成の運用メトリクスデータストア２０８からアクセスされてもよい。統計解析が実行されてもよく、前述のように運用メトリクス分散が判定されてもよい。有利に、変更された上位レベルの運用プロファイルまたは一般化された運用プロファイルは、プロセス３００の現在の実行と関連付けられる仮想マシンインスタンスとは異なる仮想マシンインスタンスをインスタンス化または移行するとき、配置モジュール２０４または移行モジュール２０６によってアクセスされ、使用されてもよい。したがって、１つの仮想マシンインスタンスと関連付けられる記録された運用メトリクスは、同じ仮想マシンインスタンス構成からインスタンス化されていない場合であっても、他の仮想マシンインスタンスの配置および実行を微調整するために使用されてもよい。
【００４１】
ここで図５を参照して、運用プロファイルに基づいて仮想マシンインスタンスの配置を判定するための例示的プロセス５００を説明する。プロセス５００は、管理構成要素１０２によって実行されてもよい。管理構成要素１０２は、顧客１２２からリクエストを受信してもよく、そうでなければ特定の仮想マシンインスタンス構成またはイメージから、仮想マシンのインスタンスを起動するように通知されてもよい。管理構成要素１０２は、仮想マシンインスタンスをホストし、利用可能なコンピューティングリソースに関して、ホストコンピューティングデバイス１０４ａ〜１０４ｎの現在のステータスを判定することが可能である、ホストコンピューティングデバイス１０４ａ〜１０４ｎを識別することができる。有利に、管理構成要素１０２はまた、インスタンス化される仮想マシンインスタンス構成の運用プロファイルを取得し、利用可能なリソースの観点から、利用可能なホストコンピューティングデバイス１０４ａ〜１０４ｎのうちどれが最も効果的に仮想マシンをホストすることができるかを判定することができる。既に仮想マシンを実行していて、かつ既に実行している仮想マシンをホストするために、そのリソースのほとんどまたは全てをコミットしている、ホストコンピューティングデバイス１０４が選択されてもよい。現在実行している仮想マシンインスタンスおよび起動される仮想マシンインスタンスの運用プロファイルに基づいて、管理構成要素１０２は、ホストコンピューティングデバイス１０４が、仮想マシンインスタンスが消費する可能性が高いコンピューティングリソースを提供することができると管理構成要素１０２が判定した場合、ホストコンピューティングデバイス１０４上で仮想マシンインスタンスを起動してもよい。いくつかの場合、これは、リソースをオーバーサブスクリプションすることを含む（例えば、同じリソースを複数の仮想マシンインスタンスに割り当てる）。その上、管理構成要素１０２は、ホストコンピューティングデバイス１０４上の仮想マシンインスタンスの実行を監視し、各仮想マシンインスタンスを満足させる十分なコンピューティングリソースが存在しない場合、１つ以上の仮想マシンインスタンスの実行を別のホストコンピューティングデバイス１０４へ転送することができる。
【００４２】
プロセス５００は、ブロック５０２で開始する。プロセス５００は、仮想マシンインスタンスを起動するリクエストの受信に応答する等、自動的に開始してもよい。例えば、プロセス５００は、１組の実行可能プログラム命令において具現化され、管理構成要素１０２が関連付けられるコンピューティングシステムの非一時的コンピュータ可読媒体ドライブ上に記憶されてもよい。プロセス５００が開始すると、実行可能プログラム命令は、ＲＡＭ等のメモリにロードされ、コンピューティングシステムの１つ以上のプロセッサによって実行され得る。いくつかの実施形態において、コンピューティングシステムは、サーバーのようなコンピューティングデバイスを複数含んでもよく、プロセス５００は、複数のサーバーによって、逐次または同時に実行されてもよい。
【００４３】
ブロック５０４で、管理構成要素１０２は、仮想マシンインスタンスを初期化するためのリクエスト、そうでなければ何らかの他の通知を受信することができる。通知は、顧客１２２、ホストコンピューティングデバイス１０４、あるいは何らかの他の構成要素またはエンティティから受信されてもよい。いくつかの実施形態において、仮想マシンインスタンスは、別の仮想マシンインスタンス、同じ仮想マシンインスタンス構成またはイメージの別のインスタンス等の初期化をリクエストしてもよい。
【００４４】
ブロック５０６で、管理構成要素１０２のＶＭ配置モジュール２０４または何らかの他のモジュールは、起動される仮想マシンインスタンスの運用プロファイルを取得することができる。運用プロファイルは、プロファイルデータストア２１０からロード、または何らかの他の情報源から取得されてもよい。ＶＭ配置モジュール２０４は、仮想マシンインスタンスが利用する可能性が高いリソース、およびその数量を判定するために、運用プロファイルを確認することができる。前述のように、仮想マシンインスタンス構成の運用プロファイルは、時刻等の環境因子に応じて異なっていてもよい。このような場合、管理構成要素１０２のＶＭ配置モジュール２０４は、運用プロファイルを確認する際にこのような環境因子を考慮することができる。
【００４５】
ブロック５０８で、管理構成要素１０２のＶＭ配置モジュール２０４または何らかの他のモジュールは、利用可能なリソースおよび運用プロファイルに基づいて、仮想マシンインスタンスを起動するホストコンピューティングデバイス１０４を選択することができる。例えば、ネットワークコンピューティング環境１００は、いくつかのホストコンピューティングデバイス１０４ａ〜１０４ｎを含む場合がある。ホストコンピューティングデバイス１０４ａ〜１０４ｎは同一である必要はなく、いくつかは他よりも多いまたは少ないＲＡＭ、より性能が高いまたは低いプロセッサ、あるいは異なる数のプロセッサ等を有することができる。ＶＭ配置モジュール２０４は、運用プロファイルおよび各コンピューティングデバイスで利用可能になるリソースによって識別される予想リソース利用に基づいて、仮想マシンインスタンスを起動するホストコンピューティングデバイス１０４を選択することができる。
【００４６】
いくつかの実施形態において、ホストコンピューティングデバイス１０４は、特定の仮想マシン、または特定のクラスの仮想マシンの一定数のインスタンスをホストするように構成されてもよい。図４に示されるように、ホストコンピューティングデバイス１０４はある量のメモリ４０２を有することができるので、ハイパーバイザ４２０のために既定のメモリ空間４１０、および仮想マシンのために規定サイズの２つの追加のメモリ空間４１２、４１４を予約することができる。２つの仮想マシンインスタンス４２２、４２４は、ホストコンピューティングデバイス１０４上で起動されてもよく、それぞれの仮想マシンインスタンス４２２、４２４が別のメモリ空間４１２、４１４に割り当てられる。顧客１２２は、構成する特定のクラスの仮想マシン（例えば、前述のように小型、中型、または大型）を選択することによって等、その仮想マシンインスタンス４２２、４２４に利用可能になる特定量のリソースを予約することができる。メモリ空間４１２、４１４は、顧客１２２によって予約されるように、仮想マシンインスタンス４２２、４２４に利用可能である最大許容量のリソースに対応してもよい。しかしながら、実際には、仮想マシンインスタンス４２２、４２４は、それらのために予約されるコンピューティングリソースの全体量を利用しない場合がある。例えば、図４に見られるように、仮想マシンインスタンス４２２、４２４は、それらのために予約されたメモリ空間４１２、４１４の一部しか利用していない。現在実行している仮想マシンインスタンス全てをサービスするため、または運用しているホストコンピューティングデバイス１０４ａ〜１０４ｎのリソースをより効率的に利用するために必要なホストコンピューティングデバイス１０４ａ〜１０４ｎの数を削減するために、このような過剰のメモリ空間および他の過剰なコンピューティングリソースを利用することは利点であり得る。
【００４７】
図６は、オーバーサブスクリプションされたコンピューティングリソースを含むホストコンピューティングデバイス１０４を図示する。第３の仮想マシンインスタンス４２６は、ホストコンピューティングデバイス１０４が仮想マシンインスタンスのために利用可能な２つのメモリ空間４１２、４１４しか含まないにもかかわらず、ホストコンピューティングデバイス１０４上で起動されている。仮想マシンインスタンス４２２、４２４、４２６のそれぞれと関連付けられる運用プロファイルに基づいて、ＶＭ配置モジュール２０４は、ＶＭ２  ４２２が利用可能なメモリ空間４１４の一部しか利用せず、ＶＭ３  ４２６もまた、起動されるときにその利用可能なメモリ空間の一部しか使用しないことを判定することができる。したがって、ＶＭ配置モジュール２０４は、ＶＭ２  ４２４と同じコンピューティングデバイス上でＶＭ３  ４２６を起動し、それらを同じメモリ空間４１４に割り当てることができる。
【００４８】
図６に見られるように、ＶＭ１  ４２２は、そのメモリ空間４１２の実質的に全てを利用し、したがって、ＶＭ配置モジュール２０４は、ＶＭ１  ４２２の運用プロファイルのために、同じメモリ空間４１２に別の仮想マシンインスタンスを割り当てない場合がある。しかしながら、ＶＭ１  ４２２は、少量のＣＰＵ容量４４２しか利用せず、したがって、ＶＭ１  ４２２が稼動しているホストコンピューティングデバイス１０４は、仮想マシンインスタンスの運用プロファイルが補完的である場合、オーバーサブスクリプションの候補であり得る。図６に図示される例において、ＶＭ２  ４２４は、大量のＣＰＵ容量４４４を利用する。しかしながら、ＶＭ３  ４２６の運用プロファイルが、それがＣＰＵ容量の軽量ユーザーであることを示す場合、３つの仮想マシンインスタンスＶＭ１  ４２２、ＶＭ２  ４２４、およびＶＭ３  ４２６は、インスタンス化されている仮想マシンインスタンス構成のオーバーラップではなく、補完的運用プロファイルであるためにオーバーサブスクリプションの候補であり得る。ホストコンピューティングデバイス１０４上で稼動している各仮想マシンインスタンスが、典型的に要求する各コンピューティングリソース量に容易に利用可能になっていることを確実にするために、追加のリソースがオーバーサブスクリプションの判定に考慮されてもよい。例えば、ネットワーク帯域幅利用４０６もまた、図６に図示されるように、ＶＭ３  ４２６の運用プロファイルが、それが重量のネットワーク帯域幅アプリケーションであることを示す場合であっても、ＶＭ１  ４２２およびＶＭ２  ４２４が少量のネットワーク帯域幅しか利用しないために、前述のオーバーサブスクリプションの判定例をサポートする。
【００４９】
ブロック５１０で、管理構成要素１０２のＶＭ配置モジュール２０４または何らかの他のモジュールは、ブロック５０８で識別されるホストコンピューティングデバイス１０４上に仮想マシンインスタンスを配置することができる。前述のように、仮想マシンインスタンスは、ホストコンピューティングデバイス１０４によって提供される量を合計または超過するコンピューティングリソースの予約量を有する他の仮想マシンインスタンスと共にホストコンピューティングデバイス１０４上に配置される場合がある。いくつかの事例において、オーバーサブスクリプションは相当量の場合がある。
【００５０】
図７は、相当にオーバーサブスクリプションされたホストコンピューティングデバイス１０４を図示する。前述のように、顧客１２２は、顧客の仮想マシンインスタンスによって使用するために、指定量のコンピューティングリソースを予約することができる。しかしながら、いくつかの事例において、顧客１２２は、その仮想マシンインスタンスが実際に使用する可能性があるコンピューティングリソースの量をかなり過大に見積もった可能性がある。極端な事例では、顧客１２２は、大量のコンピューティングリソースを予約し、これらのリソースと関連付けられる仮想マシンインスタンスを起動してから、次いで、仮想マシンインスタンスを待機状態のままにするか、そうでなければ予約したリソースを実質的に十分に活用していない。時間の経過とともに、予約されたリソースが実質的に十分に活用されていないことを反映する運用プロファイルが、仮想マシンインスタンスのために、または顧客１２２のために開発される場合がある。管理構成要素１０２は次いで、単一のホストコンピューティングデバイス１０４上でこのような利用が低い仮想マシンインスタンスを大量に起動する可能性がある。図７のホストコンピューティングデバイス１０４は、図４および６を参照して上述したように、典型的に２つの仮想マシンインスタンスのためだけに予約される場合があるコンピューティングリソースを共有する７つの異なる仮想マシンインスタンス４２２、４２４、４２６、７２２、７２４、７２６、７２８を含む。しかしながら、３つのコンピューティングリソース４０２、４０４、４０６のそれぞれの過剰な容量がまだ存在する。いくつかの事例において、ホストコンピューティングデバイス１０４が大量の利用可能なコンピューティングリソースを有し、仮想マシンインスタンスが実質的に待機状態である等、何百以上もの仮想マシンインスタンスがホストコンピューティングデバイス１０４上に配置される場合がある。
【００５１】
ブロック５１２で、各仮想マシンインスタンスのリソース利用が監視されてもよい。特異的な仮想マシンインスタンスの寿命の間、作業負荷解析構成要素４２１は、運用を監視し、仮想マシンインスタンスのうちの１つが、オーバーサブスクリプションされたホストコンピューティングデバイス１０４によってサービス可能ではないレベルでリソースを利用し始めた場合、またはリソース使用または運用メトリクスが何らかの理由で予想量または所望量と異なる場合、管理構成要素１０２に通知する。いくつかの実施形態において、管理構成要素１０２が監視を実行してもよい。
【００５２】
ブロック５１４で、管理構成要素１０２は、リソース使用または運用メトリクスが予想量または所望量と異なるかどうかを判定することができる。例えば、管理構成要素は、リソース使用の変化が閾値を超えるか、またはその他所望されない性能低下を発生させる可能性があるかを判定することができる。仮想マシンインスタンスは、予想よりも多くのコンピューティングリソースを利用し始め、その運用プロファイルおよび管理構成要素１０２によって判定された配置に基づいて、より少ない範囲までオーバーサブスクリプションされているホストコンピューティングデバイス１０４、または全くオーバーサブスクリプションされていないホストコンピューティングデバイス１０４へ転送される場合がある。このような場合、プロセス５００の実行はブロック５０８に戻ることができ、ＶＭ移行モジュール２０６または何らかの他の管理構成要素１０２が、仮想マシン８４２をどのコンピューティングデバイスへ転送するかを判定する。
【００５３】
図８は、ＣＰＵ容量４０４ａをオーバーサブスクリプションしたホストコンピューティングデバイス１０４ａを図示する。仮想マシンインスタンスＶＭ４  ８４２は、その運用プロファイルに反して、大量の利用可能なＣＰＵ容量４０４ａの消費を開始してもよい。しかしながら、仮想マシンインスタンスＶＭ４  ８４２と関連付けられる顧客１２２は、ＶＭ４  ８４２がインスタンス化されている仮想マシンインスタンス構成のために大量のＣＰＵ容量を予約していた可能性があり、したがって、オーバーサブスクリプションされたホストコンピューティングデバイス１０４ａが提供できるよりも多くのＣＰＵ容量を仮想マシンインスタンスＶＭ４  ８４２に提供することが望ましい場合がある。図８に示されるように、ホストコンピューティングデバイス１０４ｂは、このような転送の候補であってもよい。仮想マシンインスタンスＶＭ８  ８４４は現在、ホストコンピューティングデバイス１０４ｂ上で利用可能なＣＰＵ容量４０４ｂのほんの一部しか消費しておらず、管理構成要素１０２は、ＶＭ８  ８４４と関連付けられる運用プロファイルが、これ以上消費する可能性が低いことを示すと判定する場合がある。ＶＭ移行モジュール２０６は、ホストコンピューティングデバイス１０４ａからホストコンピューティングデバイス１０４ｂへのＶＭ４  ８４２の転送を開始することができる。
【００５４】
仮想マシンインスタンスの転送は、まず、ソースホストコンピューティングデバイス１０４ａ上の仮想マシンインスタンスが継続して実行している間に、同じ仮想マシンインスタンス構成またはイメージのインスタンスをターゲットホストコンピューティングデバイス１０４ｂ上で起動することを含んでもよい。ソースホストコンピューティングデバイス１０４ｂ上の仮想マシンインスタンスの実行状態は、仮想マシンインスタンスと関連付けられるメモリ空間またはハードディスク内のデータを含めて、仮想マシンインスタンスによって確立されたネットワーク接続等を次いで、ターゲットホストコンピューティングデバイス１０４ｂで複製することができる。ソースホストコンピューティングデバイス１０４ａ上の仮想マシンインスタンスは終了することができ、ターゲットホストコンピューティングデバイス１０４ｂ上の仮想マシンインスタンスはその時点から実行を継続することができる。
【００５５】
いくつかの実施形態において、ソフトウェア作業負荷（例えば、アプリケーションまたは記憶ノード）の初期配置または転送は、ソフトウェア作業負荷が必ずしもそれ自体仮想マシンインスタンスでなくても、ソフトウェア作業負荷の仮想マシンインスタンス使用または相互作用と関連付けられてもよい。例えば、ソフトウェア作業負荷は、データを使用する場合がある仮想マシンインスタンスの予測に応じて、データ記憶エージェントとして実装される記憶ノードからなる場合がある。このような場合、作業負荷（この場合、記憶ノード）の初期配置または転送は、その近辺に配置すること、仮想マシンインスタンスまたはそれを使用する予定のインスタンスによってよりアクセスしやすくすることに基づいてもよい。
【００５６】
本開示の多様な実施形態は、以下の付記の観点で記載することができる。
付記１．コンピューティングリソース使用をプロファイルするためのシステムであって、
１つ以上のプロセッサと、
コンピュータ可読メモリと、
コンピュータ可読メモリに記憶される実行可能命令を含む管理モジュールであって、１つ以上のプロセッサによって実行されるとき、
第１のコンピューティングリソースの予想リソース使用量であって、１つ以上の類似の仮想マシンインスタンス構成のインスタンスによる、第１のコンピューティングリソースの使用量と関連付けられる複数の事前測定値に少なくとも部分的に基づく、予想使用量と関連する仮想マシンインスタンス構成の新しいインスタンスの初期化のためのリクエストを受信し、かつ
リクエストに応答して、
コンピューティングデバイス上の第１のコンピューティングリソースの利用可能量が予想量よりも大きいかどうかに少なくとも基づいて、複数のコンピューティングデバイスのうちのコンピューティングデバイスを識別し、かつ
少なくとも部分的に、新しいインスタンスをコンピューティングデバイス上で初期化させるように構成される、管理モジュールと、を備える、システム。
付記２．  第１のコンピューティングリソースの使用は、中央処理装置（ＣＰＵ）利用、メモリ利用、ネットワーク利用、ハードディスク利用、または電力利用のうちの１つを含む、付記１に記載のシステム。
付記３．  管理モジュールが、実行されるとき、
第１のコンピューティングリソースの使用に関する複数の事前測定値を取得し、
複数の事前測定値に少なくとも部分的に基づいて、仮想マシンインスタンス構成の運用プロファイルであって、予想リソース使用量を含む運用プロファイルを判定するように更に構成される、付記１に記載のシステム。
付記４．  運用プロファイルが、コンピューティングデバイスの所望される運用特徴を更に含む、付記３に記載のシステム。
付記５．  所望される運用特徴が、メモリ容量、中央処理装置（ＣＰＵ）容量、ネットワーク帯域幅、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット、または性能メトリクスの分散に関する、付記４に記載のシステム。
付記６．  コンピューティングデバイスを識別することが、コンピューティングデバイスと関連付けられる特徴が所望される特徴に対応することを判定することを含む、付記４に記載のシステム。
付記７．    コンピューティングリソース使用をプロファイルするためのシステムであって、
１つ以上のプロセッサと、
コンピュータ可読メモリであって、１つ以上のプロセッサによって実行されるとき、
類似の仮想マシンの少なくとも１つのインスタンスを稼動することから判定される運用メトリクスに少なくとも部分的に基づいて、仮想マシンのインスタンスに対する運用制約を判定し、
仮想マシンをインスタンス化するためのリクエストを受信し、かつ
リクエストに応答して、
複数のホストコンピューティングデバイスのうち、仮想マシンインスタンスの運用に関係する１つ以上の運用特徴と関連付けられる１つのホストコンピューティングデバイスを、１つ以上の特徴が運用制約を満たすかどうかに部分的に基づいて、識別し、かつ
少なくとも部分的に、仮想マシンの新しいインスタンスを、ホストコンピューティングデバイス上にインスタンス化させるように、システムを構成する実行可能命令を含むコンピュータ可読メモリと、を備える、システム。
付記８．  運用メトリクスのうちの少なくとも１つが、中央処理装置（ＣＰＵ）利用、メモリ利用、ネットワーク利用、ハードディスク利用、または電力利用に関係する、付記７に記載のシステム。
付記９．  １つ以上の特徴のうちの少なくとも１つが、メモリ容量、中央処理装置（ＣＰＵ）容量、ネットワーク帯域幅、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット、または性能メトリクスの分散を含む、付記７に記載のシステム。
付記１０．  運用制約が、ホストコンピューティングデバイスによって提供されるコンピューティングリソースの予想使用量に関係する、付記７に記載のシステム。
付記１１．  予想使用量が、仮想マシンと関連付けられる顧客から受信されるデータに少なくとも部分的に更に基づく、付記１０に記載のシステム。
付記１２．  モジュールが、実行されるとき、
ホストコンピューティングデバイス上の新しいインスタンスの運用に関する追加の運用メトリクスであって、１つ以上の運用特徴に関係する、追加の運用メトリクスを受信し、かつ
追加の運用メトリクスに基づいて、１つ以上の運用特徴がもはや運用制約を満たさないという判定に応答して、新しいインスタンスを、運用制約を満たす１つ以上の追加の運用特徴と関連付けられる第２のコンピューティングデバイスへ転送するように、更に構成される、付記７に記載のシステム。
付記１３．    コンピューティングリソースの使用をプロファイルするためのコンピュータによって実装される方法であって、
１つ以上のコンピューティングデバイスを備えるデータセンター管理構成要素によって、運用プロファイルであって、ソフトウェア作業負荷と関連付けられる複数の履歴運用メトリクスに少なくとも部分的に基づく、運用プロファイルと関連付けられるソフトウェア作業負荷の初期化に対するリクエストを受信することと、
リクエストに応答して、
複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスを、運用プロファイルおよびコンピューティングデバイスと関連付けられる１つ以上の運用特徴に少なくとも部分的に基づいて識別することと、
ソフトウェア作業負荷をコンピューティングデバイス上で初期化させることと、を含む、コンピュータによって実装される方法。
付記１４．  ソフトウェア作業負荷が、仮想マシンインスタンス、オペレーティングシステム、ストレージエリアネットワーク（ＳＡＮ）ノード、またはアプリケーションを含む、付記１３に記載のコンピュータによって実装される方法。
付記１５．  複数の履歴運用メトリクスのうちの少なくとも１つが、中央処理装置（ＣＰＵ）利用、メモリ利用、ネットワーク利用、ハードディスク利用、または電力利用に関係する、付記１３に記載のコンピュータによって実装される方法。
付記１６．  １つ以上の運用特徴のうちの少なくとも１つが、メモリ容量、中央処理装置（ＣＰＵ）容量、ネットワーク帯域幅、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット、または性能メトリクスの分散を含む、付記１３に記載のコンピュータによって実装される方法。
付記１７．  運用プロファイルが、第１のコンピューティングリソースと関連付けられる第１の予想リソース使用量を含み、第１の予想リソース使用量が、第１のリソースの使用に関する複数の履歴運用メトリクスに少なくとも部分的に基づき、１つ以上の特徴のうちの１つの特徴が、第１のコンピューティングリソースの可用性を含む、付記１３に記載のコンピュータによって実装される方法。
付記１８．  第１のリソースの使用に関する複数の履歴運用メトリクスの各々が、使用測定値が記録された時刻に関連付けられ、運用プロファイルが、複数の履歴運用メトリクスの各々が記録された時刻に少なくとも部分的に更に基づく、付記１７に記載のコンピュータによって実装される方法。
付記１９．  ソフトウェア作業負荷、またはソフトウェア作業負荷を実行している複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスのいずれかと関連付けられる運用解析構成要素からの複数の履歴運用メトリクスの少なくとも一部を取得することを更に含む、付記１３に記載のコンピュータによって実装される方法。
付記２０．  複数の履歴運用メトリクスに少なくとも部分的に基づいて、運用プロファイルを判定することを更に含む、付記１３に記載のコンピュータによって実装される方法。
付記２１．  ソフトウェア作業負荷と関連付けられる顧客とのサービスレベル合意に少なくとも部分的に基づいて、運用プロファイルを判定することを更に含む、付記１３に記載のコンピュータによって実装される方法。
付記２２．  運用プロファイルが、コンピューティングデバイスの所望される運用特徴を含む、付記１３に記載のコンピュータによって実装される方法。
付記２３．  コンピューティングデバイスを識別することは更に、コンピューティングデバイスと関連付けられる１つ以上の運用特徴のうちの１つの運用特徴が、所望される運用特徴に対応することを判定することに少なくとも部分的に基づく、付記２２に記載のコンピュータによって実装される方法。
付記２４．    コンピューティングデバイス上のソフトウェア作業負荷に関する実質的に最新の運用メトリクスであって、１つ以上の運用特徴に関係する、実質的に最新の運用メトリクスを受信することと、
実質的に最新の運用メトリクスに基づいて、コンピューティングデバイスと関連付けられる１つ以上の運用特徴のうちのどれもが所望される運用特徴に対応しないと判定することに応答して、ソフトウェア作業負荷を、所望される運用特徴に対応する運用特徴と関連付けられる第２のコンピューティングデバイスへ転送することと、を更に含む、
付記２２に記載のコンピュータによって実装される方法。
付記２５．  運用プロファイルが、複数の既定の運用プロファイルのうちの第１の既定の運用プロファイルを含む、付記１３に記載のコンピュータによって実装される方法。
付記２６．  既定の運用プロファイルが、運用階層内のレベルと関連付けられ、第１の既定の運用プロファイルが、ソフトウェア作業負荷に対して、運用階層のより上位のレベルと関連付けられる、付記２５に記載のコンピュータによって実装される方法。
付記２７．  運用プロファイルが、顧客に特異的な運用プロファイルを含み、複数の履歴運用メトリクスが、顧客によるソフトウェア作業負荷の初期化または使用と関連付けられる、付記１３に記載のコンピュータによって実装される方法。
付記２８．  運用プロファイルが、履歴運用メトリクスの中間値、標準偏差、または使用ヒストグラムを含む、付記１３に記載のコンピュータによって実装される方法。
付記２９．  運用プロファイルが、特定期間の履歴運用メトリクスに少なくとも部分的に基づく、付記１３に記載のコンピュータによって実装される方法。
付記３０．  共有コンピューティングリソースを管理するためのシステムであって、
１つ以上のプロセッサと、
コンピュータ可読メモリであって、１つ以上のプロセッサによって実行されるとき、
第１のコンピューティングリソースの第１の予想使用量であって、類似の仮想マシンの少なくとも１つのインスタンスを以前に実行させたことから判定された運用メトリクスに少なくとも部分的に基づく、第１の予想使用量と関連付けられる第１の仮想マシンの第１のインスタンスを初期化するためのリクエストを受信し、
第１のコンピューティングリソースを提供するように構成された複数のコンピューティングデバイスのうちの１つのコンピューティングデバイスであって、第２の仮想マシンの第２のインスタンスがそのコンピューティングデバイス上で稼動し、第１のコンピューティングリソースの既定量が第２のインスタンスによって使用されるために予約され、そのコンピューティングリソースが、第１のコンピューティングリソースの、第２のインスタンスと関連付けられる、第１の予想使用量および第２の予想使用量の和よりも大きい既定量に少なくとも部分的に基づいて選択される、コンピューティングリソースを選択し、
少なくとも部分的に、第１のインスタンスをそのコンピューティングデバイス上で初期化させ、第１のインスタンスおよび第２のインスタンスが、第１のコンピューティングリソースの既定量を共有するように、システムを構成する実行可能命令を記憶する、コンピュータ可読メモリと、を備える、システム。
付記３１．  第１のコンピューティングリソースが、中央処理装置（ＣＰＵ）の容量、メモリ空間、ネットワーク帯域幅、ハードディスクの空き容量、または電力利用のうちの１つを含む、付記３０に記載のシステム。
付記３２．  第１のインスタンスおよび第２のインスタンスが異なる顧客と関連付けられる、付記３０に記載のシステム。
付記３３．  実行可能命令が、
少なくとも部分的に、第３の仮想マシンの第３のインスタンスをコンピューティングデバイス上で初期化させるようにシステムを更に構成し、
第３のインスタンスが、第１のコンピューティングリソースの第３の予想使用量と関連付けられ、
既定量が、第１の予想使用量、第２の予想使用量、および第３の予想使用量よりも更に大きく、
第１のインスタンス、第２のインスタンス、および第３のインスタンスが、第１のコンピューティングリソースの既定量を共有する、付記３０に記載のシステム。
付記３４．  実行可能命令が、
第１のインスタンスによる第１のコンピューティングリソースの使用の第１の測定値、および第２のインスタンスによる第１のコンピューティングリソースの使用の第２の測定値を取得し、
第１の測定値または第２の測定値が閾値を超過すると判定することに応答して、第１のインスタンスまたは第２のインスタンスを第２のコンピューティングデバイスへ転送するようにシステムを更に構成する、付記３０に記載のシステム。
付記３５．  共有コンピューティングリソースを管理するためのコンピュータによって実装される方法であって、
１つ以上のコンピューティングデバイスを備えるデータセンター管理システムによって、ホストコンピューティングデバイス上の第１のソフトウェア作業負荷の運用に関する第１の複数の履歴運用メトリクスに少なくとも部分的に基づく第１の運用制約と関連付けられる第１のソフトウェア作業負荷を初期化するためのリクエストを受信することと、
リクエストに応答して、第１の運用制約および第１のホストコンピューティングデバイスと関連付けられる１つ以上の運用特徴に少なくとも基づいて、複数のホストコンピューティングデバイスのうちの第１のホストコンピューティングデバイスを識別することと、を含み、
第１のホストコンピューティングデバイスが、第２の運用制約と関連付けられる第２のソフトウェア作業負荷を備え、
識別することが、第１のホストコンピューティングデバイスの１つ以上の運用特徴が、第１の運用制約および第２の運用制約の両方を満足させる可能性が高いかどうかを判定することと、
少なくとも部分的に、第１のソフトウェア作業負荷を第１のホストコンピューティングデバイス上に配置させることと、を含む、コンピュータによって実装される方法。
付記３６．  第１のソフトウェア作業負荷または第２のソフトウェア作業負荷が、仮想マシンインスタンス、アプリケーションインスタンス、またはオペレーティングシステムを含む、付記３５に記載のコンピュータによって実装される方法。
付記３７．  第１のソフトウェア作業負荷が、ストレージノードを含み、識別することが、第１のホストコンピューティングデバイス上にストレージノードを配置することが、ストレージノードを使用する仮想マシンと関連付けられる運用制約を満足させるかどうかを判定することを更に含む、付記３５に記載のコンピュータによって実装される方法。
付記３８．  １つ以上の運用特徴のうちの少なくとも１つは、メモリ容量、中央処理装置（ＣＰＵ）容量、ネットワーク帯域幅、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット、性能メトリクスの分散、または電力容量を含む、付記３５に記載のコンピュータによって実装される方法。
付記３９．  第１の運用制約または第２の運用制約が、メモリ利用、中央処理装置（ＣＰＵ）利用、ネットワーク帯域幅利用、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット可用性、性能メトリクスの分散、または電力利用に関係する、付記３５に記載のコンピュータによって実装される方法。
付記４０．  第１の運用制約が、第１のコンピューティングリソースの第１の予想使用量に関係し、第２の運用制約が、第１のコンピューティングリソースの第２の予想使用量に関係し、第１のコンピュータ実行可能プログラムおよび第２のコンピュータ実行可能プログラムが、第１のコンピューティングリソースの第１の予想使用量および第２の予想使用量をそれぞれ同時に消費することが可能である、付記３５に記載のコンピュータによって実装される方法。
付記４１．  １つ以上の運用特徴のうちの１つの運用特徴が、第１のコンピューティングリソースの利用可能量を含み、
少なくとも部分的に、第１のコンピュータ実行可能プログラムおよび第２のコンピュータ実行可能プログラムが合計で、第１のコンピューティングリソースの利用可能量を超えて消費することを防止することを更に含む、付記４０に記載のコンピュータによって実装される方法。
付記４２．  少なくとも部分的に、第３のコンピュータ実行可能プログラムを第１のホストコンピューティングデバイス上で初期化させることを更に含み、
第３のコンピュータ実行可能プログラムが第３の運用制約と関連付けられ、
第１のホストコンピューティングデバイスの１つ以上の運用特徴が、第１の運用制約、第２の運用制約、および第３の運用制約のそれぞれを満足させる可能性が高い、付記３５に記載のコンピュータによって実装される方法。
付記４３．第１のホストコンピューティングデバイス上の第１のコンピュータ実行可能プログラムの運用に関する１つ以上の運用メトリクスを取得することと、
少なくとも部分的に１つ以上の運用メトリクスに基づいて、第１の制約が満足させられる可能性がもはや低いと判定することに応答して、第１のコンピュータ実行可能プログラムまたは第２のコンピュータ実行可能プログラムを第２のホストコンピューティングデバイスへ転送することと、を更に含む、付記３５に記載のコンピュータによって実装される方法。
付記４４．  第１のホストコンピューティングデバイス上の第２のコンピュータ実行可能プログラムの運用に関する１つ以上の運用メトリクスを取得することと、
少なくとも部分的に１つ以上の運用メトリクスに基づいて、第２の制約が満足させられる可能性がもはや低いと判定することに応答して、第１のコンピュータ実行可能プログラムまたは第２のコンピュータ実行可能プログラムを第２のホストコンピューティングデバイスへ転送することと、を更に含む、付記３５に記載のコンピュータによって実装される方法。
付記４５．  第１のホストコンピューティングデバイスの１つ以上の運用特徴に関する１つ以上の運用メトリクスを取得することと、
少なくとも部分的に１つ以上の運用メトリクスに基づいて、第１の制約または第２の制約が満足させられる可能性がもはや低いと判定することに応答して、第１のコンピュータ実行可能プログラムまたは第２のコンピュータ実行可能プログラムを第２のホストコンピューティングデバイスへ転送することと、を更に含む、付記３５に記載のコンピュータによって実装される方法。
付記４６．  共有コンピューティングリソースを管理するためのシステムであって、
１つ以上のプロセッサと、
コンピュータ可読メモリであって、１つ以上のプロセッサによって実行されるとき、
ホストコンピューティングデバイス上の第１のコンピュータ実行可能プログラムの運用に関する第１の複数の履歴運用メトリクスに少なくとも部分的に基づく第１の運用制約と関連付けられる第１のコンピュータ実行可能プログラムを初期化するためのリクエストを受信し、
複数のホストコンピューティングデバイスのうちの第１のホストコンピューティングデバイスであって、１つ以上の運用特徴と関連付けられる第１のホストコンピューティングデバイスを識別するように、システムを構成する実行可能命令を記憶する、コンピュータ可読メモリと、を備え、
第１のホストコンピューティングデバイスが、第２の運用制約と関連付けられる第２のコンピュータ実行可能プログラムを備え、
第１のホストコンピューティングデバイスが、第１の運用制約および第２の運用制約の両方を満足させる１つ以上の運用特徴に少なくとも部分的に基づいて識別される、システム。
付記４７．  実行可能命令が、少なくとも部分的に、第１のホストコンピューティングデバイス上で第１のコンピュータ実行可能プログラムを実行させるようにシステムを更に構成する、付記４６に記載のシステム。
付記４８．  第１のコンピュータ実行可能プログラムまたは第２のコンピュータ実行可能プログラムが、仮想マシンインスタンス、アプリケーションインスタンス、またはオペレーティングシステムのうちの１つを含む、付記４６に記載のシステム。
付記４９．  １つ以上の運用特徴のうちの少なくとも１つが、メモリ容量、中央処理装置（ＣＰＵ）容量、ネットワーク帯域幅、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット、性能メトリクスの分散、または電力容量を含む、付記４６に記載のシステム。
付記５０．  第１の運用制約または第２の運用制約が、メモリ利用、中央処理装置（ＣＰＵ）利用、ネットワーク帯域幅利用、ネットワークレイテンシ、ネットワークトポロジー内の位置、命令セット可用性、性能メトリクスの分散、または電力利用に関係する、付記４６に記載のシステム。
付記５１．  第１の運用制約が、第１のコンピューティングリソースの第１の予想使用量に関係し、第２の運用制約が、第１のコンピューティングリソースの第２の予想使用量に関係し、第１のコンピュータ実行可能プログラムおよび第２のコンピュータ実行可能プログラムが、第１のコンピューティングリソースの第１の予想使用量および第２の予想使用量をそれぞれ同時に消費することが可能である、付記４６に記載のシステム。
付記５２．  実行可能命令が、第１のコンピュータ実行可能プログラムおよび第２のコンピュータ実行可能プログラムが合計で、第１のコンピューティングリソースの利用可能量を超えて消費することを少なくとも部分的に防止するようにシステムを更に構成する、付記５１に記載のシステム。
付記５３．  実行可能命令が、
第１のホストコンピューティングデバイスの１つ以上の運用特徴が、第１の運用制約、第２の運用制約、および第３のコンピュータ実行可能プログラムと関連付けられる第３の運用制約のそれぞれを満足させる可能性が高いかどうかを判定し、
少なくとも部分的に、第３のコンピュータ実行可能プログラムを第１のホストコンピューティングデバイス上で初期化させるようにシステムを更に構成する、付記４６に記載のシステム。
付記５４．  実行可能命令が、
第１のホストコンピューティングデバイス上の第１のコンピュータ実行可能プログラムの運用に関する１つ以上の運用メトリクスを取得し、
少なくとも部分的に１つ以上の運用メトリクスに基づいて、第１の制約が満足させられる可能性がもはや低いと判定することに応答して、第１のコンピュータ実行可能プログラム、または第２のコンピュータ実行可能プログラムを第２のホストコンピューティングデバイスへ転送するようにシステムを更に構成する、付記４６に記載のシステム。
付記５５．  実行可能命令が、
第１のホストコンピューティングデバイス上の第２のコンピュータ実行可能プログラムの運用に関する１つ以上の運用メトリクスを取得し、
少なくとも部分的に１つ以上の運用メトリクスに基づいて、第２の制約が満足させられる可能性がもはや低いと判定することに応答して、第１のコンピュータ実行可能プログラムまたは第２のコンピュータ実行可能プログラムを第２のホストコンピューティングデバイスへ転送するようにシステムを更に構成する、付記４６に記載のシステム。
付記５６．  実行可能命令が、
第１のホストコンピューティングデバイスの１つ以上の運用特徴に関する１つ以上の運用メトリクスを取得し、
少なくとも部分的に１つ以上の運用メトリクスに基づいて、第１の制約または第２の制約が満足させられる可能性がもはや低いと判定することに応答して、第１のコンピュータ実行可能プログラムまたは第２のコンピュータ実行可能プログラムを第２のホストコンピューティングデバイスへ転送するようにシステムを更に構成する、付記４６に記載のシステム。
【００５７】
実施形態に依存して、本明細書に記載されるプロセスまたはアルゴリズムのうちのいずれかの所定の動作、イベント、または機能は異なる順序で実施することができ、追加、統合、またはまとめて省略することができる（例えば、記載の演算またはイベントすべてがアルゴリズムの実践に必要ではない）。その上、所定の実施形態において、演算またはイベントは、例えば、マルチスレッド処理、中断処理、あるいはマルチプロセッサまたはプロセッサコアあるいは順次にではなく他の並列アーキテクチャを通じて同時に実施することができる。
【００５８】
本明細書に開示される実施形態に関して記載される多様な例示の論理ブロック、モジュール、ルーチン、アルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、またはこれらの組み合わせとして実装することができる。ハードウェアとソフトウェアの相互互換性を明確に示すため、多様な例示的構成要素、ブロック、モジュール、およびステップは、上記において一般にそれらの機能性の観点から説明される。このような機能性がハードウェアまたはソフトウェアとして実装されるかどうかは、システム全体に課される特定の用途および設計制約に依存する。記載の機能性は、それぞれ特定の用途のために可変方式で実装できるが、このような実装判断は、本開示の範囲からの逸脱を生じさせると解釈されてはならない。
【００５９】
本明細書に開示される実施形態に関連して説明される方法、プロセス、ルーチン、またはアルゴリズムのステップは、ハードウェア内、プロセッサによって実行されるソフトウェアモジュール内、またはこれらの２つの組み合わせにおいて直接具現化することができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、着脱式ディスク、ＣＤ−ＲＯＭ、または任意の他の形式の非一時的コンピュータ可読記憶媒体に所在することができる。例示的記憶媒体は、プロセッサが記憶媒体から情報を読み出し、記憶媒体へ情報を書き込むことができるように、プロセッサに結合することができる。代替として、記憶媒体は、プロセッサに一体化することができる。プロセッサおよび記憶媒体は、ＡＳＩＣ内に所在することができる。ＡＳＩＣは、ユーザー端末に所在することができる。代替として、プロセッサおよび記憶媒体は、ユーザー端末の個別構成要素に所在することができる。
【００６０】
特に「〜することができる」、「〜することが可能である」、「〜するかもしれない」、「〜してもよい」、「例えば」等のように本明細書に使用される条件付き語は、その他特に記載のない限り、またはその他使用される文脈で理解されない限り、所定の実施形態が、他の実施形態は含まないが、所定の特性、要素、および／またはステップを含むことを伝達することを一般に意図する。このため、このような条件付き語は、特性、要素、および／またはステップが１つ以上の実施形態に何としても必要であること、または１つ以上の実施形態が必ず、これらの特性、要素および／またはステップが任意の特定の実施形態に含まれる、または実施されるかを、作成者の入力または問い合わせを用いてまたは用いずに、判定するためのロジックを含むということを暗示することを一般に意図しない。「備える」、「含む」、「有する」等の用語は、同義語であり、制約がない様式において包括的に使用され、追加の要素、特性、動作、操作等を排除しない。さらに、「または」という用語は、その包括的意味において（その排除的意味ではなく）使用されるので、例えば、要素のリストを接続するために使用され、「または」という用語は、リストの中の要素のうちの１つ、いくつか、または全てを意味する。
【００６１】
語句「Ｘ、Ｙ、およびＺのうちの少なくとも１つ」のような接続語は、その他特に記載のない限り、項目、条件等がＸ、Ｙ、またはＺ、あるいはこれらの組み合わせのいずれかであってもよいことを伝達するために一般に使用される文脈で理解されるものとする。このため、このような接続語は、所定の実施形態が、Ｘのうちの少なくとも１つ、Ｙのうちの少なくとも１つ、およびＺのうちの少なくとも１つがそれぞれ存在することを要求することを暗示することを概して意図しない。
【００６２】
上記の詳細説明で、多様な実施形態に適用される革新的特性を示し、記載し、指摘したが、図示されたデバイスまたはアルゴリズムの形式および詳細における多様な省略、置換、および変更は本開示の精神を逸脱することなく行うことができることを理解することができる。理解できるように、本明細書に記載される本発明の所定の実施形態は、いくつかの特性は他から分離して使用または実践できるため、本明細書に記載の特性および利点の全てを提供しない形式内で具現化できる。本明細書に開示される所定の発明の範囲は、前述の説明ではなく、添付の請求項によって示される。請求項の均等の意義および範囲内に入る全ての変更はそれらの範囲内に抱合される。
【図１】
0006049887.tif 000002
【図２】
0006049887.tif 000003
【図３】
0006049887.tif 000004
【図４】
0006049887.tif 000005
【図５】
0006049887.tif 000006
【図６】
0006049887.tif 000007
【図７】
0006049887.tif 000008
【図８】
0006049887.tif 000009