(57)【要約】様々なリソースに対する認定が、共有リソース環境において、顧客に対して動的に調節される。顧客は、１秒間の入力／出力操作（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｏｐｅｒａｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）（ＩＯＰＳ）の認定レートでデータボリュームをプロビジョニングし、その認定（加えて、あれば超過量）のみに対して、例えば、要求された記憶量と同様に、支払いを行う。顧客は、適切な要求を提示することによってＩＯＰＳの認定レートを実質的に調節することができるか、あるいは、そのレートは、いくつかの基準のうちのいずれかに基づいて自動で調節されてもよい。顧客のためのデータボリュームは、調節されたレートを提供するために、移動、分割、または組み合わせることができる。顧客とデータボリュームとの相互作用は、変化する必要がなく、要求が処理されるレート以外は、レートの調節またはデータボリュームの変更から独立している。
2013524343.tif 000002
【特許請求の範囲】
【請求項１】
共有コンピュータリソースの使用量を調節するコンピュータ実装された方法であって、
実行可能な命令を備えて構成される１つ以上のコンピュータシステムの制御下で、
ある種類のリソースに関して、顧客のための調節された認定要求レートに対する要求を受信することであって、前記顧客が、前記種類のリソースに対する現在の認定要求レートを有し、前記要求が、前記種類のリソースの１つ以上のインスタンスの容量の任意の部分に対応する、認定要求レートを指定する能力がある、受信することと、
前記調節された認定要求レートが、前記現在の認定要求レートよりも低い場合に、前記顧客のための前記種類のリソースの少なくとも１つのインスタンスに対する前記認定要求レートを自動で減少させることと、
前記要求が、前記認定要求レートを増加させることに関連する場合に、前記調節された認定要求レートを得るために、前記種類のリソースの少なくとも１つのインスタンスの利用可能な認定可能レート容量の少なくとも一部分を自動で認定することと、
前記顧客に対する要求対処のレートの管理における使用のために、前記顧客に対する前記調節された認定要求レートの情報を記憶することと、を含む、コンピュータ実装された方法。
【請求項２】
前記認定要求レートを減少させることは、より少数のインスタンスが、前記認定要求レートを提供するために利用可能な場合に、前記種類のリソースのインスタンス数を減少させて、前記顧客に前記認定要求レートを提供することを含む、請求項１に記載のコンピュータ実装された方法。
【請求項３】
前記認定要求レートを増加させるか、または減少させることは、少なくとも１つの要求対処認定を、前記種類のリソースの異なるインスタンスへ自動で移動させて、前記顧客に前記認定要求レートを提供することを含む、請求項１に記載のコンピュータ実装された方法。
【請求項４】
前記調節された認定要求レートは、単一の判定済みインスタンスか、またはそれぞれが前記要求された認定要求レートの少なくとも一部分を提供する複数の判定済みインスタンスによって供給される能力があり、それぞれの判定済みインスタンスが、さらに、前記インスタンスに対する要求容量が追加のユーザを許容する場合、前記リソースを共有する前記追加のユーザを有する能力がある、請求項１に記載のコンピュータ実装された方法。
【請求項５】
ある種類のリソースに対する前記認定要求レートは、データサーバに対する１秒あたりの入力／出力操作（ＩＯＰＳ）の認定レートである、請求項１に記載のコンピュータ実装された方法。
【請求項６】
それぞれのインスタンスは、複数の顧客に対する認定要求レートをサポートする能力があり、それぞれのインスタンスは、さらに、認定要求レートを有しない追加の顧客に対する要求をサポートする能力がある、請求項１に記載のコンピュータ実装された方法。
【請求項７】
少なくとも１つのインスタンスは、前記インスタンスの前記容量の未認定または未使用の部分を使用して、未認定要求レートを有する顧客に対する要求を処理するように構成され、
過負荷状況において、認定要求レートを有する顧客に対する前記要求が、通常のレートで対処され、認定要求レートを有しない顧客に対する要求が、前記過負荷状況を打開するために減速される、請求項１に記載のコンピュータ実装された方法。
【請求項８】
認定要求レートを有する顧客は、前記認定要求レートを上回ることができ、前記認定要求レートを超えるいずれの要求も、レート認定を有しない要求に対するレートでか、またはレート認定を有する要求に対するレートと、有しない要求に対するレートとの混合レートで対処される、請求項１に記載のコンピュータ実装された方法。
【請求項９】
前記種類のリソースの少なくとも１つのインスタンスの利用可能な認定可能要求容量を判定することは、容量または認定情報のうちの少なくとも１つのために、インスタンスにランダムにコンタクトすることを含む、請求項１に記載のコンピュータ実装された方法。
【請求項１０】
前記顧客に、その顧客のためのその種類のリソースに対する前記認定要求レートに少なくとも部分的に基づいて、請求することをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項１１】
共有コンピュータリソースの使用量を調節するためのシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行される際に、前記システムに、
ある種類のリソースに関して、顧客のために調節された認定レートに対する要求を受信することであって、前記顧客が、前記種類のリソースに対する現在の認定レートを有し、前記要求が、前記種類のリソースの１つ以上のインスタンスの容量の任意の部分に対応する認定レートを指定する能力がある、受信することと
前記調節された認定レートが、前記現在の認定レートよりも低い場合に、前記顧客のための前記種類のリソースの少なくとも１つのインスタンスに対する前記認定レートを自動で減少させることと、
前記要求が、前記認定レートを増加させることに関連する場合に、前記調節された認定レートを得るために、前記種類のリソースの少なくとも１つのインスタンスの利用可能な認定可能レート容量の少なくとも一部分を自動で認定することと、
前記顧客に対する要求対処のレートの管理における使用のために、前記顧客に対する前記調節された認定レートの情報を記憶することと、を行わせる命令を含む、メモリと、を備える、システム。
【請求項１２】
前記認定レートを減少させることは、より少数のインスタンスが前記認定レートを提供するために利用可能な場合に、前記種類のリソースのインスタンス数を減少させて、前記顧客に前記認定レートを提供することを含み、
前記認定レートを増加させるか、または減少させることは、少なくとも１つの使用量認定を、前記種類のリソースの異なるインスタンスへ自動で移動させて、前記顧客に前記認定レートを提供することを含む、請求項１１に記載のシステム。
【請求項１３】
共有コンピュータリソースの使用量を管理する、コンピュータ実装された方法であって、
実行可能な命令を備えて構成される１つ以上のコンピュータシステムの制御下で、
ある種類のリソースに対する認定使用レートの要求を受信することであって、前記要求が、前記種類のリソースの１つ以上のインスタンスの使用容量の任意の部分に対応する、認定使用レートを指定する能力がある、受信することと、
前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスを判定することと、
前記少なくとも１つの判定済みインスタンスが前記認定使用レートを提供する能力がある場合に、前記要求された認定使用レートの少なくとも一部分を、それぞれの判定済みインスタンスに割り付けることと、を含み、
前記認定使用レートは、単一の判定済みインスタンスか、またはそれぞれが前記要求された認定使用レートの少なくとも一部分を提供する複数の判定済みインスタンスによって供給される能力があり、それぞれの判定済みインスタンスが、さらに、前記インスタンスの使用容量が追加のユーザを許容する場合、前記リソースを共有する前記追加のユーザを有する能力があり、
ユーザは、前記種類のリソースのいずれの単一インスタンスの前記容量からも実質的に独立している認定使用レートを要求することができる、コンピュータ実装された方法。
【請求項１４】
ある種類のリソースに対する前記認定使用レートは、データサーバに対する１秒あたりの入力／出力操作（ＩＯＰＳ）の認定レートである、請求項１３に記載のコンピュータ実装された方法。
【請求項１５】
前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスを判定することは、他のユーザに対して未認定の、そのインスタンスの前記容量の少なくとも許容可能な一部分を有する、少なくとも１つのインスタンスを判定することを含む、請求項１３に記載のコンピュータ実装された方法。
【請求項１６】
前記要求に対応する前記認定使用レートを提供する能力があると判定されるインスタンスの組み合わせがない場合に、前記要求が拒否される、請求項１３に記載のコンピュータ実装された方法。
【請求項１７】
認定使用レートを有するユーザは、前記認定使用レートを上回ることができ、前記認定使用レートを超えるいずれの要求も、レート認定を有しない要求に対するレートで処理されるか、またはレート認定を有する要求に対するレートと、有しない要求に対するレートとの間の混合レートで処理される、請求項１３に記載のコンピュータ実装された方法。
【請求項１８】
共有コンピュータリソースの使用量を管理するためのシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行される際、前記システムに、
ある種類のリソースに対する認定使用レートの要求を受信することであって、前記要求が前記種類のリソースの１つ以上のインスタンスの使用容量の任意の部分に対応する認定使用レートを指定する能力がある、受信することと、
前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスを判定することと、
前記少なくとも１つの判定済みインスタンスが前記認定使用レートを提供する能力がある場合に、それぞれの判定済みインスタンスへの前記要求された認定使用レートの少なくとも一部分を割り付けることと、を行わせる命令を含む、メモリと、を備え、
前記認定使用レートが、単一の判定済みインスタンスか、またはそれぞれが前記要求された認定使用レートの少なくとも一部分を提供する複数の判定済みインスタンスによって供給される能力があり、それぞれの判定済みインスタンスが、さらに、前記インスタンスの使用容量が追加のユーザを許容する場合に、前記リソースを共有する前記追加のユーザを有する能力があり、
ユーザが、前記種類のリソースのいずれの単一インスタンスの前記容量からも実質的に独立している認定使用レートを要求することができる、システム。
【請求項１９】
前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスの判定は、他のユーザに対して未認定の、そのインスタンスの前記容量の少なくとも許容可能な一部分を有する、少なくとも１つのインスタンスを判定することを含む、請求項１８に記載のシステム。
【請求項２０】
少なくとも１つのインスタンスは、前記インスタンスの前記容量の未認定部分または未使用部分を使用して、未認定要求レートを有するユーザに対する要求を処理するように構成され、
過負荷状況において、認定使用レートを有するユーザに対する前記要求は、通常のレートで処理され、認定使用レートを有しないユーザに対する要求は、前記過負荷状況を打開するために減速される、請求項１８に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連出願の相互参照）
本特許出願は、２０１０年３月２９日に出願された米国特許出願第１２／７４９，４５１号および２０１０年３月２９日に出願された米国特許出願第１２／７４９，４４９号の利益を主張し、その内容は参照により本明細書に組み込まれる。
【０００２】
アプリケーションおよびサービスがインターネット（Ｉｎｔｅｒｎｅｔ）等のネットワーク上で利用可能になる数が増加するにつれて、ますます多くのコンテンツ、アプリケーション、および／またはサービスのプロバイダが、リモートリソースを共有するクラウドコンピューティング等の技術に移行している。クラウドコンピューティングは、一般的に、ウェブサービス等のサービスを通じて電子的リソースへのアクセスを提供し、それらのサービスをサポートするために使用されるハードウェアおよび／またはソフトウェアが、いつでもサービスのニーズを満たすように動的に拡張可能なアプローチである。ユーザまたは顧客は、典型的に、クラウドを通じたリソースへのアクセスをレント、リース、またはその代金を支払うことになり、したがって、これらのリソースへのアクセスを提供するために、ハードウェアおよび／またはソフトウェアを購入ならびに維持する必要がない。
【０００３】
いくつかの環境において、複数のユーザが、データリポジトリ等のリソースを共有することができ、ユーザは、例えば、同一のデータインスタンスに対して実行される複数の読み込みおよび／または書き込み要求を同時に送信することができる。しかしながら、同時要求の数が、インスタンスがそれらの要求を処理する能力を上回る場合、問題が起こる可能性がある。一例において、あるインスタンスのためのデータサーバは、過負荷状況になり、着信要求のレートを減少させ、システムが過負荷状況から復旧することを可能にするために、着信要求に対する圧力を戻し始める場合がある。しかしながら、その押し戻しの結果として、顧客は、要求対処（例えば、受信された要求を満たすか、あるいは処理する）の所望または必要なレートを受け取ることができず、それが顧客を混乱させ、いくつかの事例においては、顧客に、他のプロバイダのデータ記憶および類似のリソースを探させる可能性がある。例えば、特定の顧客が、ある使用量閾値を上回る際、特定の従来的なアプローチは要求を調整しようと試みるが、これらのアプローチは反応性である傾向があり、依然として、リソースの他の顧客が減速および過負荷状況を経験することにつながる場合がある。さらに、従来的なアプローチは、様々なリソースのレートまたは割り当てを容易に調節する能力を、顧客に提供しない。
【０００４】
本開示による様々な実施形態は、図面への参照を用いて説明される。
【図面の簡単な説明】
【０００５】
【図１】様々な実施形態が実装することができる環境を図示する。
【図２】様々な実施形態により使用することができる、管理とホスト構成要素の分離例を図示する。
【図３】様々な実施形態により使用することができる、複数の顧客に対する割り当て例を図示する。
【図４】様々な実施形態により使用することができる、複数のリソースインスタンスにわたる割り当て例を図示する。
【図５】様々な実施形態により使用することができる、単一リソースインスタンス上の複数の顧客に対する割り当て例を図示する。
【図６】様々な実施形態により使用することができる、複数のリソースインスタンスを使用する増加した顧客認定に対する割り当て例を図示する。
【図７】一実施形態により、保証されたレベルのサービスを得るためのプロセス例を図示する。
【図８】様々な実施形態により使用することができる、複数のリソースインスタンスを使用する増加した顧客認定に対する割り当て例を図示する。
【図９】様々な実施形態により使用することができる、複数のリソースインスタンスにわたるデータボリュームの移動および分割を含む、増加した顧客認定に対する割り当てを図示する。
【図１０】一実施形態により、顧客に対するデータボリュームを組み合わせる割り当て例を図示する。
【図１１】様々な実施形態の機能性を利用することができる環境例を図示する。
【発明を実施するための形態】
【０００６】
本開示の様々な実施形態によるシステムおよび方法は、電子環境におけるリソースの共有および割り当ての態様の管理に対する従来のアプローチにおいて経験される、前述および他の不足のうちの１つ以上を打開することができる。例えば、様々な実施形態は、ユーザが、特定のリソースに対する１秒あたりの入力／出力（ＩＯＰＳ）操作の最低限および／または認定のレート等、具体的なサービスの質または処理のレベルを要求できるようにする。要求された量は、それぞれのリソースによって提供される合計量よりも少なくてもよく、従来のアプローチで可能なものよりも細かい粒度を提供する、任意の適切な量であってもよい。複数の顧客を、データサーバ等の単一リソースに割り付けることができ、顧客のそれぞれは、潜在的に保証されたレベルのサービスを受けることができる。様々な実施形態において、単一の利用可能なリソースによって提供することができないレート認定を要求する顧客は、複数のリソースまたはリソースインスタンスに拡散して、認定を有することができる。それぞれのリソースは、許容可能なレベルの保証（例えば、レート認定）を有することができ、それは、リソース上で利用可能な合計量のパーセンテージかまたは部分であってもよく、利用可能な全量であってもよく、または、いくつかの場合には合計量より大きくてもよい。顧客は、認定量（例えば、ＩＯＰＳの保証レート）の全てを使用するとは限らないため、特定のリソースは、利用可能容量の１００％を超えてリソース認定を有してもよい。さらに、他の顧客が、同様にそれらのリソース上にプロビジョニングされてもよい。リソースの全利用可能容量より少ない量がサービスレベルを保証するために認定される場合、残りの顧客は、未認定容量を共有することができる。保証を有する顧客のうちの１つが、保証された量よりも少ない量を使用している場合、他の顧客は、保証された顧客がその容量を使用することを要求するようなときまで、この未使用容量を利用することができる。このようなアプローチは、未認定顧客に対するサービスの質を改善し、同時に保証されたサービスレベルを提供する費用を減少させる。
【０００７】
特定の実施形態における顧客は、顧客の特定の性能要件を満たす、きめ細かい様式でリソースをプロビジョニングすることができる。例えば、顧客が、３００ＩＯＰＳを必要とするデータベースを有する場合、その顧客は、３００ＩＯＰＳの認定レートでデータボリュームをプロビジョニングし、その認定、加えて要求される記憶量に対してのみ代金を支払うことができる。顧客は、そのデータボリュームに対して、ある期間で平均化されて、少なくとも３００ＩＯＰＳを達成することができる。顧客が平均５００ＩＯＰＳを提示する場合、ボリュームは、システムが圧迫されていない場合は、依然として１秒あたり５００を、時間をかけて達成することができるが、システムが圧迫下にある場合でさえも、少なくとも認定済みの３００を、時間をかけて送達することになる。
【０００８】
従来のシステムにおいて、特定のＩＯＰＳレートを要望する顧客は、典型的に、適切な数の物理ディスクを入手し、それらのディスク上の記憶量に対して代金を支払う必要がある。典型的な作業量に対して、顧客は、その結果、所望のＩＯＰＳレートを得るために、記憶を大幅に購入し過ぎなければならない。様々な実施形態のアプローチを使用することで、顧客は、従来のシステムでは不可能なレベルの粒度で、共有記憶ソリューションに対する保証されたサービスの質を得ることができる。より細かい粒度はまた、専用のハードウェアの購入またはレントすることとは対照的に、顧客に有意な費用節減を示すことができる。
【０００９】
様々な実施形態によるシステムおよび方法はまた、自動で（少なくとも１つのコンピューティングデバイスによって実行されるアルゴリズムおよび／または適切な論理を利用して）、データボリュームを移行させ、リソース認定（resource commitment）を調節し、要求レート認定またはサービスレベルの他の質に関連する他のこのようなタスクに対処することができる。いくつかの実施形態において、顧客は、認定レベルの変更を要求することができるか、あるいは、システムまたはサービスが、認定レベルの変更が実行されるべきだと判断してもよい。様々な実施形態によれば、様々なリソースの容量を判定することができ、顧客に対する認定（commitment）は、顧客が、変更を有効にするために、いずれのパラメータ、アプリケーション等をも調節する必要なく、自動で調節することができる。データボリュームは、認定レートまたはレートの変更に少なくとも部分的に基づいて、移行、分割、組み合わせ、あるいはそうでなければ様々な実施形態によって操作されてもよい。変更は、例えば、データプレーンになされる適切なコールを用いて、制御プレーンから管理されてもよい。
【００１０】
様々な実施形態によるシステムおよび方法は、データ記憶等のリソースへのアクセスの管理に対して操作可能である。少なくともいくつかの実施形態において、これらのアプローチは、様々なユーザ、アプリケーション、プロセス、および／またはサービスのうちのいずれかによって、１つ以上のネットワーク上でアクセスならびに使用が可能な、ブロックデータを確実に記憶するために、複数のサーバ記憶システムを使用する、ブロックデータ記憶サービスの提供を含む。ブロックデータ記憶サービスのユーザは、それぞれがブロックデータ記憶空間の一定量を有する、１つ以上のブロックデータ記憶ボリュームを、それぞれ作成することができ、このようなブロックデータ記憶ボリューム（本明細書に「ボリューム」とも称される）の使用を、少なくともいくつかのこのようなボリュームが、実行プログラムに対するボリュームの信頼性および利用可能性を強化するために、複数のサーバ記憶システムのうちの２つ以上によって記憶されるコピーを有する状態で、１つ以上の実行プログラムによって開始することができる。一例として、ブロックデータを記憶する複数のサーバブロックデータ記憶システムは、いくつかの実施形態においては、例えば、１つ以上の物理的に分散されたデータセンターのそれぞれにおいてのように、物理的位置に共同配置される複数の物理サーバ記憶システムをそれぞれ有する１つ以上のプールまたは他のグループ内に編成されてもよく、データセンター内のサーバブロックデータ記憶システム上に記憶されたボリュームを使用するプログラム（１つまたは複数）は、そのデータセンターにおいて、１つ以上の他の物理コンピューティングシステム上で実行してもよい。
【００１１】
さらに、少なくともいくつかの実施形態において、１つ以上のネットワーク上で、１つ以上のこのような非ローカルのブロックデータ記憶ボリュームにアクセスし、それを使用するアプリケーションは、プログラムによって、例えば、ブロックデータ記憶サービスによって提供される、および／または１つ以上のブロックデータサービス（Ｂｌｏｃｋ  Ｄａｔａ  Ｓｅｒｖｉｃｅ）（ＢＤＳ）システム管理者（Ｓｙｓｔｅｍ  ｍａｎａｇｅｒ）モジュールと連動して動作する、ノード管理者モジュールによって、それらの非ローカルのボリュームへのアクセスを管理する、関連ノード管理者をそれぞれ有してもよい。例えば、ブロックデータ記憶サービスの顧客である第１のユーザは、第１のブロックデータ記憶ボリュームを作成し、（例えば、連続的な様式、同時または他の重複様式等で）第１のボリュームにアクセスし、それを使用するように命令される１つ以上のコンピューティングノード上で、１つ以上のプログラムコピーを実行することができる。コンピューティングノード上で実行するアプリケーションが、非ローカルのボリュームの使用を開始する際、（例えば、読み込みおよび書き込みデータアクセス要求を実行するため、ファイルシステムもしくはデータベースまたは他の高レベルデータ構造をボリューム上に実装する等のために）いずれの他のローカルハードドライブ、もしくはコンピューティングノードにアタッチされた他の物理ブロックデータ記憶デバイスと同じ様式で、実行プログラムがローカルの論理ブロックデータ記憶デバイスと相互作用することを可能にする等のために、アプリケーションは、コンピューティングノードに対してローカルであり、非ローカルのボリュームを代表する論理ブロックデータ記憶デバイスを装備することができるか、あるいはそれを提供されてもよい。例えば、少なくともいくつかの実施形態において、代表的な論理的ローカルブロックデータ記憶デバイスは、ＧＮＢＤ（「グローバルネットワークブロックデバイス（Ｇｌｏｂａｌ  Ｎｅｔｗｏｒｋ  Ｂｌｏｃｋ  Ｄｅｖｉｃｅ）」）技術等、適切な技術の使用を介して、実行プログラムに利用可能にすることができる。さらに、アプリケーションが代表的なローカル論理ブロックデータ記憶デバイスと相互作用する場合、関連ノード管理者は、実行プログラムに代わって、その記憶されたボリュームコピー上の相互作用を実行するために、１つ以上のネットワーク上で、（例えば、実行プログラムおよび／またはコンピューティングノードに透過的な様式で）関連する非ローカルボリュームのコピーを記憶するサーバブロックデータ記憶システムと通信することによって、それらの相互作用を管理することができる。さらに、少なくともいくつかの実施形態において、非ローカルのブロックデータ記憶ボリュームに対するアプリケーションおよびサービスのアクセス管理するための、記載される技術の少なくともいくつかは、ノード管理者（Ｎｏｄｅ  Ｍａｎａｇｅｒ）モジュールの実施形態によって自動で実行される。
【００１２】
少なくともいくつかの実施形態において、ブロックデータ記憶ボリューム（またはそれらのボリュームの部分）は、ボリュームコピーを記憶するために使用されるサーバブロックデータ記憶システムとは異なる１つ以上のリモートアーカイバル記憶システム（remote archival storage system）上に、さらに記憶されてもよい。様々な実施形態において、１つ以上のリモートアーカイバル記憶システムは、（例えば、データセンターから離れた位置に、または共同配置されたサーバブロックデータ記憶システムのプールを有する他の物理的位置に）ブロックデータ記憶サービスによって提供されてもよく、あるいはその代わりに、リモートの長期記憶サービスによって提供されて、ブロックデータ記憶によって使用されてもよく、少なくともいくつかの実施形態において、アーカイバル記憶システムは、ブロックデータ以外のフォーマットでデータを記憶することができる（例えば、ボリュームの１つ以上のチャンクまたは部分を異なるオブジェクトとして記憶することができる）。
【００１３】
いくつかの実施形態において、記載の技術のうちの少なくともいくつかは、プログラム実行サービスの複数のユーザを代表して複数のプログラムの実行を管理するプログラム実行サービスを代表して実行される。いくつかの実施形態において、プログラム実行サービスは、複数の共同配置された物理ホストコンピューティングシステムのグループを有することができ、例えば、以下により詳細に説明されるように、プログラム実行サービス（「ＰＥＳ」）のシステム管理者の制御下において、それらの物理ホストコンピューティングシステム上でユーザのプログラムを実行することができる。このような実施形態において、ブロックデータ記憶サービスのユーザでもある、プログラム実行サービスのユーザ（例えば、プログラム実行サービスを使用するために料金を支払う、プログラム実行サービスの顧客）は、ブロックデータ記憶サービスを介して提供される非ローカルブロックデータ記憶ボリュームにアクセスし、それを使用する、プログラムを実行することができる。他の実施形態において、単一の組織は、（例えば、単一サービスの一部等の統合された様式で）プログラム実行サービス能力とブロックデータ記憶サービス能力の両方のうち少なくともいくつかを提供することができ、一方でさらに他の実施形態において、ブロックデータ記憶サービスは、プログラム実行サービスを含まない環境において、（例えば、組織の運営をサポートするために、ビジネスまたは他の組織に内部的に）提供されてもよい。
【００１４】
さらに、プログラムが実行されるホストコンピューティングシステムは、様々な実施形態において、様々な形状を有してもよい。複数のこのようなホストコンピューティングシステムは、例えば、物理位置（例えば、データセンター）内に共同配置することができ、それぞれがホストコンピューティングシステムのうちの１つ以上のサブセットに関連する、複数のノード管理者モジュールによって管理されてもよい。ホストコンピューティングシステムのうちの少なくともいくつかは、複数のプログラムを同時に実行するために十分なコンピューティングリソース（例えば、揮発性メモリ、ＣＰＵサイクルまたは他のＣＰＵ使用量測定、ネットワーク帯域幅、スワップ領域等）をそれぞれ含むことができ、少なくともいくつかの実施形態において、コンピューティングシステムうちのいくつかまたは全ては、実行されるプログラムおよび／またはこのようなプログラムによって使用されるデータのローカルコピーを記憶するために使用可能な１つ以上の物理的にアタッチされたローカルブロックデータ記憶デバイス（例えば、ハードディスク、テープドライブ等）をそれぞれ有してもよい。さらに、いくつかのこのような実施形態におけるホストコンピューティングシステムのうちの少なくともいくつかは、それぞれのこのようなホストコンピューティングシステムが、そのホストコンピューティングシステムのための仮想マシンを管理する、実行ハイパーバイザまたは仮想マシンモニタを有する状態で、別個のユーザの代わりに１つ以上のプログラムをそれぞれ実行することができる、複数の仮想マシンコンピューティングノードをそれぞれホストすることができる。複数の仮想マシンを実行するホストコンピューティングシステムについては、ホストコンピューティングシステムに対する関連ノード管理者モジュールは、いくつかの実施形態において、複数のホスト型仮想マシンのうちの少なくとも１つ上で、（例えば、ホストコンピューティングシステムのための仮想マシンモニタの一部としてか、またはそれと連動して）実行可能であり、一方で他の状況において、ノード管理者は、管理されている１つ以上の他のホストコンピューティングシステムとは異なる物理コンピューティングシステム上で実行してもよい。
【００１５】
ボリュームが記憶されるサーバブロックデータ記憶システムはまた、様々な実施形態において様々な形状を有することができる。少なくともいくつかの実施形態において、サーバブロックデータ記憶システムのうちのいくつかまたは全ては、プログラムを実行するホストコンピューティングシステムに類似の物理コンピューティングシステムであってもよく、いくつかのこのような実施形態においては、それらのサーバ記憶システム上のボリュームのプロビジョニングおよび維持を支援するために、サーバ記憶システムソフトウェアをそれぞれ実行することができる。例えば、少なくともいくつかの実施形態において、このようなサーバブロックデータ記憶コンピューティングシステムのうちの１つ以上は、例えば、１つ以上のＢＤＳシステム管理者モジュールが、複数の相互作用するサーバブロックデータ記憶コンピューティングシステムによって、分散ピアツーピア様式で提供される場合に、ＢＤＳシステム管理者の少なくとも一部分を実行することができる。他の実施形態において、サーバブロックデータ記憶システムのうちの少なくともいくつかは、例えば、それらのサーバ記憶システム上のボリュームのプロビジョニングまたは維持の少なくともいくつかが、他のリモート物理コンピューティングシステムによって（例えば、１つ以上の他のコンピューティングシステム上で実行するＢＤＳシステム管理者モジュールによって）行われる等の場合に、物理コンピューティングシステムのいくつかのＩ／Ｏ構成要素および／または他の構成要素を欠く可能性のある、ネットワーク記憶デバイスであってもよい。さらに、いくつかの実施形態において、少なくともいくつかのサーバブロックデータ記憶システムは、複数のローカルハードディスクをそれぞれ維持し、ローカルハードディスクのうちのいくつかまたは全ての各部分にわたって、少なくともいくつかのボリュームをストライプする。さらに、いくつかの実施形態において、ＬＶＭ（「論理ボリューム管理者（Ｌｏｇｉｃａｌ  Ｖｏｌｕｍｅ  Ｍａｎａｇｅｒ）」）技術を使用することを含む、ボリュームの作成および使用のための様々な種類の技術が使用可能である。
【００１６】
少なくともいくつかの実施形態において、いくつかまたは全てのブロックデータ記憶ボリュームは、例えばボリュームの信頼性および利用可能性を強化するために、２つ以上の異なるサーバブロックデータ記憶システム上に記憶されるコピーをそれぞれ有する。そうすることによって、単一サーバブロックデータ記憶システムの故障は、それらの実行プログラムによるそのボリュームの使用を、そのボリュームのコピーを有する別の利用可能なサーバブロックデータ記憶システムへ切り替えることができるため、損失されるであろうボリュームへの実行プログラムのアクセスを引き起こさない。このような実施形態において、様々な形で複数のサーバブロックデータ記憶システム上のボリュームの複数のコピー間において、整合性を維持することができる。例えば、いくつかの実施形態において、サーバブロックデータ記憶システムのうちの１つは、ボリュームの一次コピーを記憶するように指定され、他の１つ以上のサーバブロックデータ記憶システムは、このような実施形態において、ボリュームのミラーコピーを記憶するように指定され、一次ボリュームコピーを有するサーバブロックデータ記憶システム（ボリュームに対する「一次サーバブロックデータ記憶システム」と称される）は、ボリュームに対するデータアクセス要求を受信し、それに対処し、いくつかのこのような実施形態においては、さらに、（例えば、マスタ−スレーブのコンピューティング関係にあるように、一次ボリュームコピー内のデータが修正される際に、ミラーボリュームコピーを提供する他のサーバブロックデータ記憶システムに更新メッセージを送信することによって）他のミラーボリュームコピーの整合性を維持するための動作をとる。
【００１７】
サーバブロックデータ記憶システムが利用不可能となった場合に、ボリュームコピーを移動させるか、あるいはそうでなければ複製することによって、実行プログラムの、ブロックデータ記憶ボリュームへの信頼性があり利用可能なアクセスを維持することに加えて、ブロックデータ記憶サービスは、ブロックデータ記憶ボリュームへの実行プログラムのアクセスを維持するために、他の状況においては、他の動作を行うことができる。例えば、第１の実行プログラムが予想外に利用不可能となった場合、いくつかの実施形態において、ブロックデータ記憶サービスおよび／またはプログラム実行サービスは、異なる第２の実行プログラム（例えば、異なるホストコンピューティングシステム上で実行中の同一のプログラムの第２のコピー）を、利用不可能な第１のプログラムによって使用中であったいくつかまたは全てのブロックデータ記憶ボリュームにアタッチさせるための動作をとることができ、そうすることで、第２のプログラムは、利用不可能な第１のプログラムから、少なくともいくつかの操作を迅速に引き継ぐことができる。第２のプログラムは、いくつかの状況においては、既存の第１のプログラムの利用不可能性によってその実行が開始される、新しいプログラムであってもよく、一方で他の状況において、第２のプログラムは、既に実行されている（例えば、負荷分散装置によって媒介される際に、複数のプログラムコピーのうちの１つが、第２のプログラムになるように選択されて、異なる着信クライアント要求を受信する複数のウェブサーバプログラム等、複数のプログラムコピーが、作業の全体の負荷を共有するために同時に実行される場合、ならびに第２のプログラムが、例えば、予備プログラムコピーが、既存の第１のプログラムが利用不可能になるまで能動的に使用されることなしに、利用不可能が発生する場合に既存の第１のプログラムから「ホット」スワップを許容するための、実行中のプログラムの予備コピーである場合等）。さらに、いくつかの実施形態において、既存のボリュームの添付物および進行中の使用がそこへ切り替えられる、第２のプログラムは、同一の物理的位置（例えば、同一のデータセンター）内の別のホスト物理コンピューティングシステム上に、第１のプログラムとして存在してもよく、一方で他の実施形態においては、第２のプログラムは、異なる物理的位置（例えば、他のデータセンターに以前または同時に移動されており、その第２のプログラムによって使用されるであろうボリュームのコピーと連動するような、異なるデータセンター）に存在してもよい。さらに、いくつかの実施形態において、例えば、利用不可能な第１のプログラムを対象としたいくつかの通信を、第２のプログラムへリダイレクトすることによって、第２のプログラムへの切り替えをさらに促進するために、他の関連動作がとられてもよい。
【００１８】
前述のように、少なくともいくつかの実施形態において、いくつかまたは全てのブロックデータ記憶ボリュームは、単一の物理的位置、例えば、実行プログラムが、同一のデータセンターまたは他の物理的位置のボリュームコピーおよび実行プログラムの全てを配置することによってボリュームにアクセスする、同一のデータセンター内で、２つ以上の異なるサーバブロックデータ記憶システムに記憶されるコピーをそれぞれ有し、様々な所望のデータアクセス特性、例えば待ち時間およびスループットを、（例えば、データセンターまたは他の物理的位置における１つ以上の内部ネットワークに基づいて）維持することができる。例えば、少なくともいくつかの実施形態において、記載の技法は、ローカル物理ブロックデータ記憶デバイスのアクセス特性に類似か、またはそれよりも良いアクセス特性を有するが、ＲＡＩＤ（「Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ（またはＩｎｅｘｐｅｎｓｉｖｅ）  ｄｉｓｋｓ」）システムおよび／または専用のＳＡＮ（「ストレージエリアネットワーク（Ｓｔｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）」）の信頼性特性と類似か、またはそれを上回る、さらに良い信頼性を有し、費用がより低い、非ローカルブロックデータ記憶へのアクセスを提供することができる。他の実施形態において、少なくともいくつかのボリュームの一次およびミラーコピーは、ボリュームの利用可能性をさらに維持する等のために、データセンター全体が利用不可能になる場合でさえも、代わりに他の様式、例えば異なる物理的位置（例えば、異なるデータセンター）で、記憶されてもよい。ボリュームコピーを異なる物理的位置に記憶することができる実施形態において、ユーザは、いくつかの状況において、比較的高いネットワーク帯域幅、および実行プログラムと一次ボリュームコピーとの間の通信の短い待ち時間を提供する等のために、特定のボリュームに近接して（例えば、一次ボリュームコピーが配置される、同一のデータセンターにおいて）、特定のプログラムが実行されることを要求するか、あるいは、特定のボリュームが特定の実行プログラムに近接して配置されることを要求することができる。
【００１９】
さらに、記載の技法のいくつかまたは全てへのアクセスは、いくつかの実施形態において、少なくともいくつかのユーザに、料金ベースまたは他の有料の様式で提供されてもよい。例えば、ユーザは、ブロックデータ記憶サービスを使用して、ボリュームを記憶し、そこにアクセスするため、プログラム実行サービスを使用してプログラムを実行するため、および／またはアーカイバル記憶システム（例えば、リモートの長期記憶サービスによって提供される）を使用して長期のバックアップもしくはボリュームの他のスナップショットコピーを記憶するために、１回限りの料金、周期的な（例えば、月間の）料金、ならびに／あるいは１つ以上の種類の使用量ベースの料金を支払う場合がある。料金は、以下の非限定的なリストに示されるような、１つ以上の因子および活動に基づいてもよい：例えばボリュームを作成するため（例えば、１回限りの料金として）、進行中の記憶および／またはボリュームの使用を有するために（例えば、月額料金）等、ボリュームのサイズに基づいて；例えば、ミラーコピーの数、一次および／またはミラーのボリュームコピーが記憶されるサーバブロックデータ記憶システムの特性（例えば、データアクセスレート、記憶サイズ等）、ならびに／あるいはボリュームが作り出される様式等（例えば、空の新しいボリューム、既存のボリュームのコピーである新しいボリューム、スナップショットボリュームコピーのコピーである新しいボリューム等）の、ボリュームの非サイズ特性に基づいて；例えば、スナップショットボリュームコピー（例えば、１回限りの料金として）を作成するため、および／またはボリュームの進行中の記憶（例えば、月額料金）を有する等のために、スナップショットボリュームコピーのサイズに基づいて；例えば、スナップショットコピーが、１つ以上の以前のスナップショットコピーに関してインクリメンタルであろうと、単一ボリュームのいくつかのスナップショット等の、１つ以上のスナップショットボリュームコピーの非サイズ特性に基づいて；例えば、ボリュームへおよび／またはそこから転送されるデータ量（例えば、使用されるネットワーク帯域幅の量を反映するために）、ボリュームへ送信されるいくつかのデータアクセス要求、ボリュームにアタッチし、それを使用する（連続的でも同時的でも）いくつかの実行プログラム等、ボリュームの使用量に基づいて等；例えば、ボリュームに対するものと類似の様式で、スナップショットへ転送される、またはそこから転送されるデータ量に基づいて等。さらに、提供されるアクセスは、様々な実施形態において、例えば、１回限りの購入手数料、進行中のレンタル料、および／または別の進行中の登録基準に基づいて等、様々な形状を有してもよい。さらに少なくともいくつかの実施形態および状況において、１つ以上のユーザの第１のグループは、他のユーザに、料金ベースの基準に基づいてデータを提供することができ、そうして、第１のグループの１つ以上のユーザによって作成された現在のボリュームおよび／または歴史的なスナップショットボリュームコピーへのアクセスの受信に対して、１回限りの購入手数料としてか、進行中のレンタル料としてか、または別の進行中の当力基準に基づいてか、に関わらず、他のユーザに料金を請求することができる（例えば、彼らが、ボリュームおよび／またはスナップショットボリュームコピーのコピーである新しいボリュームを作成することを許可することによって、１つ以上の作成されたボリュームを、彼らが使用することを許可することによって等）。
【００２０】
いくつかの実施形態において、１つ以上のアプリケーションプログラミングインターフェース（ＡＰＩ）は、（例えば、他のプログラムのユーザによって指令される際に）他のプログラムが、様々な種類の操作の実行をプログラムで開始できるようにするために、ブロックデータ記憶サービス、プログラム実行サービス、および／またはリモートの長期記憶サービスによって提供されてもよい。このような操作は、前述の種類の機能性のうちのいくつかまたは全ての起動を可能にすることができ、以下の種類の操作を含んでもよいがこれらに限定されない：ボリュームの作成、消去、アタッチ、デタッチ、または記述；スナップショットの作成、消去、コピー、または記述；ボリュームおよび／またはスナップショットに対する他のメタデータのアクセス権の指定；プログラムの実行の管理；他の種類の機能性を得るための支払いの提供；サービスのうちの１つ以上の能力の使用について、および／またはこのような使用に対して支払い済みか、もしくは未払いの料金についての、報告および他の情報の入手等。ＡＰＩによって提供される操作は、例えば、プログラム実行サービスのホストコンピューティングシステム上の実行プログラムによって、ならびに／あるいは、ブロックデータ記憶サービスおよび／またはプログラム実行サービスによって使用される１つ以上の物理的位置の外部の顧客もしくは他のユーザのコンピューティングシステムによって、起動することができる。
【００２１】
図１は、複数のコンピューティングシステムが、例えば、ブロックデータ記憶サービスおよび／またはプログラム実行サービスの制御下において、様々なプログラム、アプリケーション、および／またはサービスを実行するように操作可能であり、信頼性のある非ローカルブロックデータ記憶にアクセスするようにさらに操作可能である、様々な実施形態によるネットワーク構成例１００を図示する。特に、この例において、プログラム実行サービスは、データセンター１０２内に配置される様々なホストコンピューティングシステム上のプログラムの実行を管理し、ブロックデータ記憶サービスは、データセンターで複数の他のサーバブロックデータ記憶システムを使用して、信頼性のある非ローカルブロックデータ記憶をそれらの実行プログラムに提供する。データセンター外部の複数のリモートアーカイバル記憶システムはまた、少なくともいくつかのブロックデータ記憶ボリュームのうちの少なくともいくつかの部分の追加のコピーを記憶するために使用することができる。
【００２２】
この例において、データセンター１０２は、いくつかのラック１０４を含み、それぞれのラックが、いくつかのホストコンピューティングデバイス１０６、ならびにこの例の実施形態においては、任意選択のラックサポートコンピューティングシステム１３４を含む。図示されるラック１０４上のホストコンピューティングシステム１０６は、この例においては、１つ以上の仮想マシン１１０、ならびに、それらの仮想マシンを管理するための、そのホストコンピューティングシステム上の仮想マシンに関連する別個のノード管理者モジュール１０８をそれぞれホストする。１つ以上の他のホストコンピューティングシステム１１６はまた、この例において、１つ以上の仮想マシン１１０をそれぞれホストしてもよい。それぞれの仮想マシン１１０は、プログラム実行サービスの顧客等のユーザ（図示されない）に対して１つ以上のプログラムコピー（図示されない）を実行するための、独立したコンピューティングノードとして機能することができる。さらに、このデータセンター例１０２は、別個の仮想マシンを含まないが、それにも関わらず、ユーザに対して実行されている１つ以上のプログラム（図示されない）のためのコンピューティングノードとしてそれぞれが機能することができる、追加のホストコンピューティングシステム１１４をさらに含む。この例において、ホストコンピューティングシステム１１４および１１６とは異なるコンピューティングシステム（図示されない）上で実行しているノード管理者モジュール１１２は、それらのホストコンピューティングシステムと関連して、例えばホストコンピューティングシステム１０６のためのノード管理者モジュール１０８と類似の様式で、それらのホストコンピューティングシステムによって提供されるコンピューティングノードを管理する。ラックサポートコンピューティングシステム１３４は、そのラック１０２に対してローカルの他のコンピューティングシステムに、ならびに、場合によってはデータセンター内に配置される他のコンピューティングシステムに、様々なユーティリティサービスを提供することができる（例えば、長期プログラム記憶、測定、ならびに、プログラム実行および／またはラックに対してローカルの他のコンピューティングシステムによって実行される非ローカルブロックデータ記憶アクセスの他の監視）。それぞれのコンピューティングシステムはまた、例えば、実行プログラムによって作成されるか、あるいはそうでなければ使用される、プログラムおよび／またはデータのローカルコピー、ならびに様々な他の構成要素を記憶するために、１つ以上のローカルのアタッチされた記憶デバイス（図示されない）を有してもよい。
【００２３】
この例において、データセンター内に配置されるホストコンピューティングシステムによって提供されるコンピューティングノード上（あるいは、任意選択的に１つ以上の他のデータセンター１２８内に配置されるコンピューティングシステム上か、またはデータセンターの外部の他のリモートコンピューティングシステム１３２上）のプログラムの実行を管理することを助けるために、プログラム実行サービスに対してＰＥＳシステム管理者モジュール（ＰＥＳ  Ｓｙｓｔｅｍ  Ｍａｎｅｇｅｒ  ｍｏｄｕｌｅ）を実行する、任意選択のコンピューティングシステム１１８もまた、図示される。他の部分でより詳細に説明されるように、ＰＥＳシステム管理者モジュールは、プログラムの実行を管理することに加えて、ユーザアカウントの管理（例えば、作成、消去、課金等）；実行されるプログラムの登録、記憶、および分散；性能の収集および処理ならびにプログラムの実行に関連するデータの監査；プログラムの実行に対する、顧客または他のユーザからの支払いの入手等を含む、様々なサービスを提供することができる。いくつかの実施形態において、ＰＥＳシステム管理者モジュールは、ノード管理者モジュールに関連するコンピューティングノード上でプログラム実行を管理するためにノード管理者モジュール１０８および１１２と協調することができ、一方で、他の実施形態においては、ノード管理者モジュールは、このようなプログラムの実行の管理を助けなくてもよい。
【００２４】
このデータセンター例１０２はまた、データセンター内に配置されるホストコンピューティングシステムによって提供されるコンピューティングノード上（あるいは、任意選択的に１つ以上の他のデータセンター１２８内に配置されるコンピューティングシステム上か、またはデータセンター外部の他のリモートのコンピューティングシステム１３２上）で実行するプログラムに対する非ローカルブロックデータ記憶の利用可能性の管理を助けるために、ブロックデータ記憶サービスに対してブロックデータ記憶（「ＢＤＳ」）システム管理者モジュールを実行する、コンピューティングシステム１２４を含む。特に、この例において、データセンター１０２は、１つ以上のボリュームコピー１２０を記憶するために使用するためのローカルブロック記憶をそれぞれ有する、複数のサーバブロックデータ記憶システム１２２のプールを含む。ボリュームコピー１２０へのアクセスは、様々なコンピューティングノード１１０および１１４上で実行するプログラムへ、内部ネットワーク（１つまたは複数）１２６上で提供される。他の部分でより詳細に説明されるように、ＢＤＳシステム管理者モジュールは、ユーザアカウントの管理（例えば、作成、消去、課金等）；ブロックデータ記憶ボリュームおよびそれらのボリュームのスナップショットコピーの作成、使用、および消去；性能の収集および処理、ならびにブロックデータ記憶ボリュームおよびそれらのボリュームのスナップショットコピーの使用に関連するデータの監査；ブロックデータ記憶ボリュームおよびそれらのボリュームのスナップショットコピーの使用に対する、顧客または他のユーザからの支払いの入手等を含む、非ローカルブロックデータ記憶の機能性を提供することに関連する様々なサービスを提供することができる。いくつかの実施形態において、ＢＤＳシステム管理者モジュールは、関連するコンピューティングノード上で実行するプログラムによるボリュームの使用を管理するために、ノード管理者モジュールと協調することができ、一方で、他の実施形態においては、ノード管理者モジュールは、このようなボリュームの使用を管理するためには使用されなくてもよい。さらに、他の実施形態において、１つ以上のＢＤＳシステム管理者モジュールは、例えば、（例えば、ホストデータセンター内に配置されるホストコンピューティングシステムによって提供されるコンピューティングノード上で実行するプログラムによる、非ローカルブロックデータ記憶の管理を共有するために）単一データセンター内で実行するＢＤＳシステム管理者の複数のインスタンスを有するために、ならびに／または、（例えば、コンピューティングシステム１２４上のいずれの分離した集中型ＢＤＳシステム管理者モジュールもなしに、ピアツーピア様式において）いくつかまたは全てのサーバブロックデータ記憶システム１２２上で実行するソフトウェアによる分散様式で提供されているＢＤＳシステム管理者モジュールの機能性の少なくともいくつかを有するために、他の様式で構築されてもよい。
【００２５】
この例において、様々なホストコンピューティングシステム、サーバブロックデータ記憶システム、およびコンピューティングシステムは、示されていない様々なネットワークデバイス（例えば、ルータ、スイッチ、ゲートウェイ等）を含むことができる、データセンターの１つ以上の内部ネットワーク１２６を介して相互接続される。さらに、この例において、内部ネットワーク１２６は、外部ネットワーク１３０（例えば、インターネットまたは他の公衆ネットワーク）に接続され、データセンター１０２は、データセンターと外部ネットワークとの間の相互接続に、１つ以上の任意選択のデバイス（図示されない）をさらに含んでもよい（例えば、ネットワークプロキシ、負荷分散装置、ネットワークアドレス変換デバイス等）。この例において、データセンター１０２は、データセンター１０２に関して図示されるコンピューティングシステムおよび記憶システムのいくつかおよび全て、ならびにデータセンターの外部の他のリモートコンピューティングシステム１３２をそれぞれ含んでもよい、１つ以上の他のデータセンター１２８に、外部ネットワーク１３０を介して接続される。他のコンピューティングシステム１３２は、様々な業者によって、例えば、データセンターの操作者または第三者（例えば、プログラム実行サービスおよび／またはブロックデータ記憶サービスの顧客）によって、様々な目的のために操作されてもよい。さらに、他のコンピューティングシステムうちの１つ以上は、ブロックデータ記憶サービスが、例えば、他の部分でより詳細に記載されるように、１つ以上の他のコンピューティングシステム上か、または代わりにデータセンターの１つ以上のコンピューティングシステム上で実行する１つ以上のアーカイバル管理者モジュール（図示されない）の管理下で、相互作用するアーカイバル記憶システム（例えば、リモートのネットワークアクセス可能な記憶サービスの一部として）であってもよい。さらに、本明細書では図示されないが、少なくともいくつかの実施形態において、サーバブロックデータ記憶システム１２２のうちの少なくともいくつかは、（例えば、ボリュームのコピーを複製する、および／またはボリュームの一次コピーとミラーコピーとの間の整合性を維持する目的で）サーバ記憶システム１２２がボリュームデータを共有することができる高帯域幅接続の１つ以上の他のネットワークまたは他の接続媒体と、少なくともいくつかのこのような実施形態において、このような高帯域幅接続が様々なホストコンピューティングシステムには利用可能ではない状態で、相互接続されてもよい。
【００２６】
図１の例が、説明目的のために簡略化されており、ホストコンピューティングシステム、サーバブロックデータ記憶システム、および他のデバイスの数ならびに編成が、図１に描写されるものよりもさらに大きい場合があることを認識されたい。例えば、１つの例示的な実施形態として、データセンターごとにおおよそ４，０００個のコンピューティングシステムが存在してもよく、これらのコンピューティングシステムのうちの少なくともいくつかが、１５個の仮想マシンをそれぞれホストすることができるホストコンピューティングシステムである、および／またはそれらのコンピューティングシステムのいくつかが、数個のボリュームコピーをそれぞれ記憶することができる、サーバブロックデータ記憶システムであってもよい。それぞれのホスト型仮想マシンが、１つのプログラムを実行する場合、このようなデータセンターは、一度に６０，０００個ほどのプログラムコピーを実行することができる。さらに、何百または何千（あるいはそれ以上）ものボリュームを、サーバ記憶システムの数、ボリュームのサイズ、ボリュームごとのミラーコピーの数に応じて、サーバブロックデータ記憶システム上に記憶することができる。他の実施形態においては、他のコンピューティングシステム数、プログラム数、およびボリューム数が使用されてもよいことを認識されたい。
【００２７】
図２は、様々な実施形態によって使用することができる、信頼性のある非ローカルブロックデータ記憶の機能性の、クライアントへのプロビジョニングおよびその使用を管理することに好適なコンピューティングシステムを含む、環境例２００を図示する。この例において、１つ以上の外部に向いた顧客インターフェースを含む１つ以上のサーバコンピュータ等の管理システム２０２は、サーバブロックデータ記憶システム２２０によって提供されるブロックデータ記憶ボリューム（図示されない）等、ホストコンピューティングシステム２０８上および／または少なくともいくつかの他のコンピューティングシステム２１８上で実行するプログラムへ、非ローカルブロックデータ記憶の機能性をプロビジョニングすることを管理するために、少なくとも１つのＢＤＳシステム管理者モジュール２０４の実施形態を実行するようにプログラムされている。この例におけるホストコンピューティングシステム２０８のそれぞれはまた、ホストコンピューティングシステム上で実行するプログラム２１４の、非ローカルブロックデータ記憶ボリュームのうちの少なくともいくつかへのアクセスを管理するために、例えば、ネットワーク２１６（例えば、コンピューティングシステム２０２、２０８、２２０、および任意選択的に他のコンピューティングシステム２１８のうちの少なくともいくつかを含む、示されないデータセンターの内部ネットワーク）上でＢＤＳシステム管理者モジュール２０４と協調する様式で、ノード管理者モジュール２１０の実施形態を実行する。他の実施形態において、ノード管理者モジュール２１０のうちのいくつかまたは全ては、１つ以上の他のコンピューティングシステム（例えば、他のコンピューティングシステム２１８）を代わりに管理することができる。
【００２８】
さらに、この例において、実行プログラム２１４によって使用される、非ローカルブロックデータ記憶ボリューム（図示されない）のうちの少なくともいくつかをそれぞれ記憶することができる、ネットワーク２１６上にも提供されるそれらのボリュームへのアクセスを有する、複数のサーバブロックデータ記憶システム２２０が図示される。サーバブロックデータ記憶システム２２０のうちの１つ以上はまた、サーバブロックデータ記憶システムうちの１つ以上の操作、ならびにサーバブロックデータ記憶システムによって記憶されるデータについての様々な情報（図示されない）を管理する、サーバソフトウェア構成要素（図示されない）をそれぞれ記憶することができる。したがって、少なくともいくつかの実施形態において、図２のサーバコンピューティングシステム２０２は、図１のコンピューティングシステム１２４に対応することができ、図１のノード管理者モジュール１０８および１１２のうちの１つ以上は、図２のノード管理者モジュール２１０に対応することができ、および／または図２のサーバブロックデータ記憶コンピューティングシステム２２０のうちの１つ以上は、図１のサーバブロックデータ記憶システム１２２に対応することができる。さらに、この例の実施形態において、スナップショットコピーおよび／またはサーバブロックデータ記憶システム２２０上に記憶される少なくともいくつかのブロックデータ記憶ボリュームの少なくとも部分の他のコピーを記憶することができる、複数のアーカイバル記憶システム２２２が図示される。アーカイバル記憶システム２２２はまた、コンピューティングシステム２０２、２０８、および２２０のうちのいくつかまたは全てと相互作用することができ、いくつかの実施形態においては、１つ以上の他の外部ネットワーク（図示されない）上でコンピューティングシステムと相互作用する、リモートアーカイバル記憶システム（例えば、示されていないリモート記憶サービスの）であってもよい。
【００２９】
他のコンピューティングシステム２１８は、少なくともいくつかの実施形態において、ブロックデータ記憶サービスの顧客または他のユーザが、それを介して管理および／またはホストシステムと相互作用する、コンピューティングシステムを含む、様々な種類の他の近接またはリモートのコンピューティングシステムをさらに含んでもよい。さらに、ＰＥＳシステム管理者モジュールはこの例には図示されていないが、他のコンピューティングシステム２１８のうちの１つ以上は、ホストコンピューティングシステム２０８および／または他のホストコンピューティングシステム２１８上のプログラムの実行を協調させるために、ＰＥＳシステム管理者モジュールを実行することができるか、あるいは管理システム２０２または他の図示されるコンピューティングシステムのうちの１つが、代わりに、このようなＰＥＳシステム管理者モジュールを実行してもよい。
【００３０】
図示される実施形態において、ノード管理者モジュール２１０は、例えば、プログラム実行サービスおよび／またはブロックデータ記憶サービスの顧客を代表して、コンピューティングシステム上のメモリ内で実行する１つ以上の他のプログラム２１４を管理するために、メモリ内で実行中である。いくつかの実施形態において、コンピューティングシステム２０８のうちのいくつかまたは全ては、複数の仮想マシンをホストしてもよく、その場合、実行プログラム２１４のそれぞれは、別個のホスト型仮想マシンコンピューティングノード上で実行する、全体の仮想マシンイメージ（例えば、オペレーティングシステムおよび１つ以上のアプリケーションプログラムを有する）であってもよい。ノード管理者モジュール２１０は、他のホスト型仮想マシンを管理する特権的仮想マシンモニタ等の、別のホスト型仮想マシン上で同様に実行中であってもよい。他の実施形態においては、実行プログラムコピー２１４およびノード管理者モジュール２１０は、単一のコンピューティングシステム２０８上で実行される単一のオペレーティングシステム（図示されない）上で別個のプロセスとして実行可能である。
【００３１】
アーカイバル記憶システム（archival storage system）２２２は、アーカイバル記憶システムのうちの１つ以上の操作を管理するために、例えば、アーカイバル記憶システムを提供するブロックデータ記憶サービスおよび／または別個の記憶サービスの顧客を代表して、少なくとも１つのアーカイバル管理者モジュール（Ａｒｃｈｉｖａｌ  Ｍａｎａｇｅｒ  ｍｏｄｕｌｅ）２２４を実行するように操作可能である。他の実施形態において、アーカイバル管理者モジュール（１つまたは複数）２２４は、他のコンピューティングシステム２１８のうちの１つ、またはＢＤＳシステム管理者モジュール２０４と連動する管理システム２０２上等、別のコンピューティングシステム上で代わりに実行していてもよい。さらに、本明細書に図示されてはいないが、いくつかの実施形態において、アーカイバル記憶システム２２２によって記憶されるデータについての様々な情報は、アーカイバル記憶システムの記憶または他の場所に維持することができる。
【００３２】
ＢＤＳシステム管理者モジュール２０４およびノード管理者モジュール２１０は、他の部分により詳細に記載されるように、信頼性のある非ローカルブロックデータ記憶の機能性（例えば、実行プログラム）の、クライアントへのプロビジョニングおよび／またはその使用を管理するために、様々な動作をとることができる。この例において、ＢＤＳシステム管理者モジュール２０４は、（例えば、ボリュームの管理における使用のために）サーバブロックデータ記憶システム２２０上および／またはアーカイバル記憶システム２２２上に記憶されるボリュームについての情報を含むデータベース２０６を維持することができ、ブロックデータ記憶サービスのユーザまたは他の態様についての様々な他の情報（図示されない）をさらに記憶することができる。他の実施形態において、ボリュームについての情報は、コンピューティングシステム上のノード管理者モジュール２１０によって、および／または他のコンピューティングシステムによって、分散様式等の他の様式で記憶されてもよい。さらに、この例において、ホストコンピューティングシステム２０８上のそれぞれのノード管理者モジュール２１０は、例えばボリュームの一次コピーを提供するサーバブロックデータ記憶システム２２０との相互作用を協調させるために、一次ボリュームコピーが利用不可能になる場合に、どのようにしてボリュームのミラーコピーに切り替えるかを判定するために、ホストコンピューティングシステムにアタッチされ、ホストコンピューティングシステム上の実行プログラム２１４によって使用される現在のボリュームについての情報２１２を記憶することができる。本明細書に図示されていないが、それぞれのホストコンピューティングシステムは、ホストコンピューティングシステムにアタッチされ、コンピューティングシステム上で実行するプログラムによって使用される、それぞれのボリュームのための、別個の論理ローカルブロックデータ記憶デバイスインターフェースをさらに含んでもよく、それは、実行プログラムには、ローカル記憶を提供する１つ以上の他のローカルの物理的にアタッチされた記憶デバイスとは区別できないように見える場合がある。
【００３３】
図１〜２に関して図示されるもの等の環境は、様々な顧客間で共有されるリソースの提供および管理に使用することができる。一実施形態において、仮想化された記憶システムは、いくつかのデータサーバを使用して提供することができ、それぞれが、そこにアタッチされたいくつかの記憶デバイス（例えば、記憶ディスク）を有する。記憶システムは、例えば、ウェブサービスとして顧客に記憶を公開することができる。顧客は、次いで、ウェブサービス要求か、あるいは他の適切な要求またはコールを提示して、それらのサーバ上の記憶を割り付ける、および／またはそれらの顧客に対してプロビジョニングされるインスタンスからその記憶にアクセスすることができる。特定の実施形態において、ユーザは、これらの記憶デバイスのデータボリュームへ、それらの記憶デバイスが従来のブロックデバイスかのように、アクセスすることができる。データボリュームは、顧客インスタンスにとって、それぞれのボリュームがディスクドライブまたは同様のブロックデバイスであるかのように見えるため、オフセット、長さ、および他のこのような従来のブロックデバイスの態様を用いて、ボリュームをアドレス指定することができる。さらに、このようなシステムは、本明細書に「リードアフターライト」整合性として称されるものを提供することができ、データは、データがこれらのデータボリュームのうちの１つに書き込まれるとすぐに、そのデータから読み出し可能であることを保証される。このようなシステムは、比較的短い待ち時間、例えば約１０ミリ秒未満の待ち時間を提供することができる。このようなシステムは、したがって、様々な意味で、従来のストレージエリアネットワーク（ＳＡＮ）として機能するが、改善された性能および拡張性を有する。
【００３４】
図２に図示されるような管理システムを使用して、例えば、顧客は、データボリュームをプロビジョニングし、そのボリュームをその顧客のためのデータインスタンスへアタッチするために、システムのウェブサービス層の適切なＡＰＩに、ウェブサービスのコールをかけることができる。管理システムは、データボリュームおよびブロック記憶デバイスが別個のデータプレーンまたはデータ環境内に存在する状態で、制御プレーンまたは制御環境内に存在しているとして考えることができる。一実施形態において、少なくとも１つのプロビジョニングされたインスタンスを有する顧客は、ウェブサービスを介して、顧客が、割り当てられる記憶の量を指定することができる量、例えば、１ＧＢインクリメントにおいて、１ＧＢから１ＴＢの値等を指定することを可能にする、「ボリュームの作成」または類似のＡＰＩをコールすることができる。ＢＤＳシステム管理者モジュール等の、制御プレーンの構成要素は、利用可能なリソースから所望の記憶量を割り当てるために、データプレーンにコールをかけることができ、そのデータボリュームのための識別子を顧客に提供することができる。いくつかの実施形態において、顧客は、次に「ボリュームのアタッチ」または類似のＡＰＩをコールすることができ、顧客は、インスタンスのオペレーティングシステム等の因子に応じて、オペレーティングシステムがハードドライブおよび類似の記憶デバイスに提供するスキームを使用して、見かけ上差異のない内部インスタンスから、少なくとも機能性および命名の観点から、物理ハードドライブからとして、インスタンス識別子、ボリューム識別子、およびデバイス名等のパラメータに値を提供することができる。顧客が、プロビジョニングされたインスタンスへデータボリュームをアタッチした後、顧客は、ファイルシステムの構築、データシステムのための未加工記憶としての使用、または通常は従来の記憶デバイスで実行されるであろう任意の他のこのような活動のために、様々な機能性を実行することができる。顧客が、もはやデータボリュームを必要としない場合、またはいずれの他の適切な理由でも、顧客は、「ボリュームのデタッチ」または類似のＡＰＩをコールすることができ、そのボリュームへのインスタンスの関連性を取り除くことができる。いくつかの実施形態において、顧客は、次に、新しいインスタンスをアタッチするか、またはいくつかの他のこのような活動のうちのいずれかを実行することができる。データボリュームは、いくつかの実施形態において、インスタンスから独立して失敗するため、顧客は、現在の関連するインスタンスが失敗する場合、新しいインスタンスにボリュームをアタッチすることができる。
【００３５】
特定のアプローチにおいて、データボリュームを要求する顧客は、特定の種類のボリューム、または特定の種類の性能を選択あるいは要求することができない。顧客は、典型的に、ある量の記憶を付与され、その性能は「最善の努力」型のアプローチに従い、顧客の要求は、要求の際に、システムの能力、負荷、および他のこのような因子に基づいて実行される。それぞれの顧客は、典型的に、１ヶ月あたりの記憶のギガバイトごとで同一の金額、ならびに、１ヶ月あたりのＩ／Ｏ要求の数ごとで同一の金額等の、単位測定あたりで同一の量を請求され、１ヶ月あたり何百万個の要求のインクリメント等の、量で請求される。
【００３６】
しかしながら、上述のように、このようなアプローチは、インスタンスによって処理されることを待機している要求の数が、インスタンスがそれらの要求を処理する能力を上回るような状況において、問題になる場合がある。顧客が、その顧客に対して予期された要求数または割り当てられた要求数内である場合でさえも、そのインスタンスへ要求を提示する他の顧客は、それらの割り当てを上回ることができ、インスタンスのためのデータサーバが、着信要求のレートを減少させるために、着信要求にかかる圧力を戻し始めることができる、過負荷状況を作り出し、システムが過負荷状況から抜け出すことを可能にする。したがって、保留中の要求を有するデバイス上のそれぞれの顧客は、要求対処のレート（「要求レート」）の減少、ならびに利用可能な記憶の減少等の他の問題を経験する場合がある。
【００３７】
様々な実施形態によるシステムおよび方法は、それぞれの顧客が１つ以上の認定要求レート（commited request rate）または他の性能保証を指定することを可能にすることによって、顧客が、性能の最低レベルを確保することを可能にする。記憶の最低量に加えて、それぞれの顧客は、操作の認定レート、例えば、１秒あたりの入力／出力（Ｉ／Ｏ）操作（ＩＯＰＳ）の特定数を購入することができる。以前のシステムにおいて、性能の保証は、しばしば過剰である専用の帯域幅等とともに、全体のマシンをある顧客専用にすることによって得られた。本明細書に説明される実施形態は、顧客が、任意の適切なレベルの粒度で性能の保証を購入することを可能にすることができる。様々なリソース上の顧客に対する性能の割り当てを管理することによって、様々な実施形態によるシステムおよび方法は、顧客が、１ＩＯＰＳから５，０００ＩＯＰＳの間等の任意の適切なレベルで、ＩＯＰＳ保証を有するボリュームを購入することを可能にすることができる。ディスク、スピンドル、および他のこのようなリソースの部分を割り当てることによって、システムは、保証されたレベルの記憶および／またはＩＯＰＳを顧客に提示することができる。
【００３８】
様々な実施形態によるシステムおよび方法は、ユーザが、リソースを共有することを可能にし、従来のソリューションでは不可能なレベルの粒度でそれらのリソースに関する指定の保証または認定を提供する。様々な事例において、顧客は、１秒あたりのＩ／Ｏ操作（ＩＯＰＳ）の最低数等、最低処理レートを指定することを望む場合がある。様々な実施形態によるアプローチは、少なくとも認定レベルの性能を提供するために必要な、所望の量のサーバおよび他のリソースを認定することができる。あるレベルの性能を認定することによって、顧客は、デバイスまたはリソースを共有する他の顧客の性能によって影響されない、一定のサービスレベルの品質を受け取ることができる。過負荷状況においてさえも、顧客は、少なくとも保証されたレベルのサービスを受けることができる。保証されたサービスの量は、様々な因子、ならびに顧客によって指定され、支払われる量に依存する。
【００３９】
例えば、図３は、サーバ３０２の処理容量が複数の顧客間で割り当てられる、分散例３００を図示する。この例において、サーバは、約５００ＩＯＰＳの容量を有すると判定される。この値は、試算値または平均値であってもよく、監視される性能または他のこのような情報に基づいて、経時的に判定または調節されてもよい。いくつかの実施形態において、全ての５００ＩＯＰＳを割り当てることができる一方で、他の実施形態においては、保証する合計容量の閾値量、パーセンテージ、または他の部分のみを割り付けることが望ましい場合がある。それぞれの要求に対する処理時間が変化する可能性があるため、いずれの時点におけるＩＯＰＳの数も同様に変化してもよく、そのため全ての５００ＩＯＰＳを割り当てることは、実際の性能が約４５０ＩＯＰＳの際に、処理されている要求の性質等のために、顧客が短時間の間保証を受け取ることができないことをもたらす場合がある。
【００４０】
この例において、本システムは、サーバ３０２に対して利用可能な５００ＩＯＰＳのうち４００まで割り当てることができる。見てわかるように、顧客Ａは、認定２００ＩＯＰＳを割り当てられており、顧客Ｂは、認定１００ＩＯＰＳを割り当てられており、顧客Ｃは、認定５５ＩＯＰＳを割り当てられている。サーバ上の残りの顧客は、次に、残りの１４５ＩＯＰＳ（平均で）を共有して「最高の性能」または類似のアプローチを利用することができる。残りのＩＯＰＳを共有する顧客の数は、いくつかの因子に基づいて選択または制限することができ、そうすることで残りの顧客は、依然として、大部分の時間、所望のレベルの性能を得ることができる。
【００４１】
様々な事例において、しかしながら、顧客Ａ、Ｂ、およびＣは、全てが、それらの全体の認定容量を利用するわけではない。それらの顧客のそれぞれは、レベルが必要な場合に利用可能であるように、性能のレベルを保証するために、料金を支払う場合があるが、しばしば、実際にはそのピーク容量近くで稼動しているわけではない。この状況において、それらの顧客は、現在使用されていない認定ＩＯＰＳから利用可能な容量を利用することができるため、残りの顧客Ｄ〜Ｚは、実際には残りの１４５ＩＯＰＳよりも多くを共有することができる。これは、顧客が、保証されたレベルの性能を受け取ることができるが、それらのレベルが、完全には利用されていない場合、残りの容量を、他の顧客要求をサービスするために使用することができるため、別の利点を提供する。このようなアプローチは、プロバイダが余剰容量を購入するか、または大部分の時間、利用されていない容量を提供する必要なく、通常の顧客（保証なし）が改善された性能を受け取ることを可能にする。
【００４２】
いくつかの実施形態において、顧客Ａ〜Ｃのいずれかは、それらの性能保証を上回ることができる。例えば、顧客Ａは、しばらくの間、約２５０ＩＯＰＳの要求を提示することができる。認定レートを超える５０ＩＯＰＳについては、いくつかの実施形態においてはそれらの要求を、通常の要求として扱うことができ、顧客Ｄ〜Ｚのものと同一の性能レベルで処理することができる。過負荷状況においては、処理におけるいずれのスロットル、減速、または他の減少も、保証対象ではない１４５程度のＩＯＰＳに適用することができる。オーバーフロー調節は未認定部分に行われるため、顧客Ａ、Ｂ、およびＣの保証レベルは、影響されない。したがって、未保証レベルのサービスを有する顧客は、要求、期間等あたりで、低い価格を請求され得る。
【００４３】
他の実施形態において、顧客Ａ〜Ｃのいずれかが、その性能保証を上回る場合、その顧客は、「混合」または他のレベルのサービスを受けることができる。認定レートを超えるいずれの単一の要求も、認定レートを有しない要求として扱われるように、顧客のそれぞれの要求が個別またはコンテキストなしで扱われる状況において、その顧客の他の要求への悪影響が存在する場合がある。例えば、顧客Ａが、２５０ＩＯＰＳの認定レートを有し、ある時点で１秒間に２５１の要求を発行する場合、レート認定を超えるその単一の要求は、他の要求よりも非常に遅く、例えば、１ｍｓの代わりに２０ｍｓで、処理されてもよい。顧客のアプリケーションが約１ｍｓの性能レベルを期待し、１つの要求に関して減速を経験する場合、それは、他の要求の処理にも同様に影響を与え、顧客が短時間で少しだけ閾値を上回っただけでも、アプリケーションの著しい減速または他の問題を引き起こす可能性がある。
【００４４】
様々な実施形態によるシステムおよび方法は、レート保証を有し、それらの保証を上回る顧客に、「ブースト」または混合レートを提供することによって、このような状況に取り組み、認定レートと未認定レートの間のレベルのサービスを提供する。例えば、レート保証を有する顧客は、未認定要求の「待ち行列」の先頭かまたはその付近に置かれた任意の過剰要求を有してもよい。他の実施形態において、顧客は、例えば、約５ｍｓの遅れを経験する可能性がある等、それらの要求に対してより低いレート認定を受け取る場合があり、それらは、認定レート内の要求と同じレートで処理されないが、認定レートを有しない顧客に対してよりも迅速に処理される。遅れの量は、いくつかの実施形態において、超過量に対して少なくともいくらかは比例する、比較的均一な性能の劣化を提供するために、顧客が保証レートを超えた超過量および時間の長さに関連してもよい。例えば、１００ＩＯＰＳの保証レートを有し、１秒あたり５００のレートで要求を連続して送信している顧客は、２５０ＩＯＰＳの保証レートを有し、少数の要求によって時折超過する顧客ほどのブーストを受け取る可能性は低い。いくつかの実施形態において、顧客は、あらゆる超過量に対して同一のレートを提供されてもよいが、そのような要求に対する割り増し料金を請求される場合がある。多数の他の変形が、様々な実施形態の範囲内において、同様に可能である。
【００４５】
認定を管理するために、制御プレーンの構成要素は、本質的に、データプレーン内の指定のサーバまたは他のリソースに対して予約を行うことができる。３つの顧客が合計３５５ＩＯＰＳの認定を求める図３において、制御プレーンは、例えば、単一サーバに対してそのレベルを予約することができ、残りを、そのサーバ上でプロビジョニングされる任意の他の顧客に割り付けることができる。制御プレーンはまた、空間制限、保証が必要なＩ／Ｏ数、またはいずれの他のこのような因子のために、サーバが対処できるものより多くのボリュームが、サーバに割り当てられないことを確実にすることができる。
【００４６】
いくつかの事例において、顧客は、所定のリソースに対する「認定可能」容量を超えるサービスの保証レベルを求める場合がある。例えば、図３において、サーバは４００ＩＯＰＳを割り当てることができるが、３５５は既に顧客Ａ〜Ｃに割り当てられていることが示された。別の顧客が３００ＩＯＰＳを求める場合、その数は、サーバの許容量（ならびに平均容量）を超えることになる。したがって、顧客は、そのサーバ上で所望の認定を受け取ることができない。しかしながら、制御プレーンの管理構成要素を使用して、認定レートを複数のサーバにわたって割り当てることができる。例えば、図４の割り当て４００において、顧客Ａが、３００ＩＯＰＳの保証を要求するユーザデバイス４０２から要求を送信することが示される。いくつかの実施形態における制御プレーンは、サーバが、３００ＩＯＰＳが保証に残された状態で利用可能かどうかを判定するために、利用可能なサーバを検索することができる。利用可能でない場合、制御プレーンは、可能な限り少数のサーバにわたってＩＯＰＳを拡散しようと試みることができる。この場合、制御プレーンは、３つのサーバにわたってＩＯＰＳ保証を割り当てることを決め、第１のサーバ４０４が１００ＩＯＰＳの保証を提供し、第２のサーバ４０６が１２５ＩＯＰＳの保証を提供し、第３のサーバ４０８が７５ＩＯＰＳの保証を提供する。したがって、ボリュームは、多くの従来のシステムのように単一サーバ上に常駐する必要はないが、複数のサーバにわたって分配される可能性がある。複数のサーバにわたる割り当てはまた、データを複数のサーバにわたって拡散することができるため、顧客がより大きなデータボリューム、例えば、１テラバイトの代わりに５０テラバイトのボリューム、を利用することを可能にする。このような実施形態において、顧客は、１ＧＢから５０ＴＢの記憶を、例えば、０ＩＯＰＳから５，０００ＩＯＰＳのレート等の所望の認定レートで、購入することができる。顧客によって選択されるこれらの値の１つ以上に基づいて、制御プレーンは、データプレーン内の利用可能なリソースを使用して、それらの保証を提供するために、最適ではなくとも適切な手段を判定することができる。
【００４７】
いくつかの実施形態において、認定レートは、サーバの容量の１００％まで割り当てられてもよい。未認定の使用量は、顧客が、リソースが利用可能になるときにのみリソースを取ろうとする限り、完全に認定されているリソースにいくつかの顧客を割り当てることができるように、予測および／または監視することができる。特定の顧客は、特に特定の書き込みに対して、いつＩＯＰＳが発生するかに関心がない場合があり、そのためいくつかの顧客は、それらの全保証レベルを利用する可能性が低いことを知りながらも、１００％まで保証されているリソースを利用するためにより低いレートを進んで支払うであろう。このようなアプローチは、プロバイダが、そうでなければ「完全に」認定されているリソース上に、未認定のＩＯＰＳを割り当てることによって、それぞれのリソースの利用を最大化することを助ける。
【００４８】
さらに、異なる種類の顧客は、異なる要件を有する。例えば、ディスクが１００ＴＢの空間および１００ＩＯＰＳの容量を有する場合、第１の顧客は、ほとんどアクセスされない９０ＴＢの休暇の写真を記憶することを望む可能性がある。その顧客は、未認定レベルのＩＯＰＳとともに、９０ＴＢの記憶空間の購入に関心を持つ可能性がある。別のユーザは、日常的に使用されることになる１ＴＢのデータベースを求める場合があり、そのためユーザは約１００ＩＯＰＳを求める可能性がある。この例において、第１の顧客は、記憶の９０％を販売されてもよく、他の顧客は、認定として、ディスクの９０％（あるいはそれ以上）のＩＯＰＳを割り当てられてもよい。顧客の性質のために、それらはいずれも、そうでなければそれぞれが専用のディスクを要求される可能性のある、同一のディスク上にプロビジョニングすることができる。
【００４９】
他の顧客が、ある顧客の認定割り当ての未使用部分を利用することを可能にすることは、その顧客が、全割り当てを支払わなくてもよく、したがって、専用のリソースに対して要求されるであろう低い費用を受け取ることができるため、同様にその顧客の利益にもなる場合がある。さらに、顧客は、依然として、保証されたレベルのサービスを受ける。顧客が、完全な認定レベルにある場合、そのデバイス上の他の顧客は、彼らの要求のレートを減少させる必要があるか、あるいは要求ごとにより長く待機することになる。いくつかの実施形態において、リソースは、完全に認定可能であり、他のユーザが、リソースの未使用部分を利用するために、デバイス上にさらにプロビジョニングされてもよい。いくつかの事例において、予測および監視が、このような使用を的確にサポートする場合、リソースは、１００％を超えて認定することさえでき、割り当て顧客による実際の使用は、１００％に等しくなるか、またはそれを上回ることがほとんどない。このような実施形態において、リソースが過負荷になる、起こりそうにないイベントの場合に、あらゆる超過量を引き受けることができる他のリソースが存在してもよい。
【００５０】
新しいリソース（またはリソースの新しいインスタンス）上で認定を行うために、特定のデフォルト情報を使用して認定を行うことができる。リソースの過剰認定を避けるために、比較的控えめな数字をデフォルトとして使用することが望ましい場合がある。例えば、制御プレーン構成要素は、特定の種類の各スピンドルが、１００〜１２０ＩＯＰＳに対処可能な一般的なデフォルト情報を使用することができる。サーバあたり１２個のスピンドルがある場合、サーバあたり約１２００〜１４４０のＩＯＰＳが存在してもよい。制御プレーン構成要素は、そのリソースの性能および使用量についての詳細が得られるまで、初めは控えめであってもよく、例えば４００ＩＯＰＳまで、第１の量を割り当てることができる。特定の例において、顧客の利用は約１０％であり、そのため多くのインスタンスにおいて、顧客は、利用可能なＩＯＰＳの１０％のみを使用している。したがって、４０％を保証ＩＯＰＳ専用にすることは、実際に使用されているものよりも依然として４倍多く、したがって、依然として控えめな数字である可能性が高い。データプレーン内のそれぞれのサーバは、サーバ上の利用可能空間量を追跡することができ、そのサーバに認定されるＩＯＰＳ数を記憶することができる。したがって、新しいボリュームが作成されようとする際、制御プレーン構成要素は、その４００ＩＯＰＳを超えて、サーバがそのボリュームを進んで認定することに利用可能な容量を十分に有するサーバを判定することができる。一実施形態におけるアプローチは、ランダムまたは特定の順序で、サーバに、それらが特定数のＩＯＰＳを取ることができるかどうかを尋ねることであり、これは、サーバがそのＩＯＰＳを受け入れることができるところに配置されるまで、継続する。情報が制御プレーン内にも記憶される場合は、しかしながら、制御プレーンは、まず適切なサーバを選択し、次にそのサーバとコンタクトしてそのボリュームを取ることができる。
【００５１】
いくつかの事例において、認定ＩＯＰＳレートまたは他のリソース認定を有する顧客は、そのレートの調節を望むか、あるいは必要とする場合がある。例えば、顧客のアプリケーションは、クラウド上へ押し出される場合のある、追加のユーザまたは追加の機能性をサポートすることができる。別の例において、顧客は、その顧客がもはや現在の認定容量を必要としない場合に、認定ＩＯＰＳの数を減少させることを望む場合がある。さらに他の例において、顧客は、ピーク使用期間には、より高い認定レートを求めるが、他の全時間においては、より低い認定レートを求める可能性がある。顧客が、認定レートの変更を望む可能性のある様々な他の状況が、同様に起こり得る。
【００５２】
上述のように、多くの従来のシステムは、より高い認定レートを求めるユーザに、追加のハードウェアを購入するか、あるいは入手することを要求し、それは、しばしばユーザにとって費用効果がなく、入手、インストール、および／または起動するためにかなりの時間がかかる場合がある。同様に、低い認定を求めるユーザは、しばしば、既に購入済のハードウェアを使い続けるか、あるいは出費のいくらかを補おうとするために、ハードウェアを転売しようとすることが残されている。
【００５３】
様々な実施形態によるシステムおよび方法は、顧客要求、設定済み閾値、使用量の変化、またはいくつかの他のこのような基準もしくは入力のいずれかに応答して、レート認定が動的に調節されることを可能にする。本システムは、例えば、追加のリソースのプロビジョニングまたは割り当て、データボリュームの追加または移動、複数のリソースにわたる顧客の分割、あるいは本明細書に記載および提案されるようないくつかの他の動作のいずれかのために、必要に応じてリソースを自動で調節することができる。様々な実施形態におけるシステムは、データ環境内のリソースの使用量を監視し、設定された基準に基づいてリソースの利用を調節するように操作可能な少なくとも１つの監視構成要素を含む。制御プレーンはまた、顧客が特定の変更を要求するか、あるいはそのような変更を行う際に使用される基準を設定することを可能にする１つ以上のインターフェース（例えば、ウェブサービスＡＰＩ）を含んでもよい。様々な他のアプローチが、様々な実施形態の範囲内で、同様に使用可能である。
【００５４】
図５は、４つの異なる顧客のそれぞれが共通のサーバ５０２に対して保証されるレートを有する、状況例５００を図示する。この例において、サーバは、４００ＩＯＰＳの（認定可能な）レート容量を有し、それぞれの顧客は、１００ＩＯＰＳの認定レートを有する。上述のように、多数の顧客は、それらの認定割り当ての全てを利用せず、そのため、これらの顧客の１つ以上によるいずれの超過量も、他のユーザのうちの１つ以上に認定された未使用容量を使用して処理できる可能性が高いため、サーバの全容量は、様々な実施形態において認定可能である。
【００５５】
特定の場合においては、しかしながら、レート認定がそのサーバを利用する顧客のうちの少なくとも１つに提供される手段を調節することが望ましい場合がある。例えば、顧客のうちの１つが、この例において、より高いレート認定を必要とする場合、より高いレートに適応するために十分な認定可能容量がサーバ上に存在しないであろう。このような状況において、追加のレート認定が必要であるデータボリュームは、いずれの知識または動作も顧客側に要求されることなく、別のサーバへ自動で移動させることができる。
【００５６】
図６に図示されるように、第１の例６００において、図５からの顧客Ａは、１００ＩＯＰＳから２００ＩＯＰＳへのＩＯＰＳレート認定の増加を受け取る。見ればわかるように、現在のサーバインスタンス５０２の全認定可能容量は、既に割り付けられ、そのためサーバは、顧客Ａに追加の認定を提供することができない。この実施形態において、システム（またはサービス）は、顧客Ａに全レート認定を提供するために必要な利用可能容量を有するリソースインスタンス６０２を配置する。したがって、管理システムのプロセスまたはワークフロー（または別のそのような構成要素もしくはプロセス）は、データボリュームを移動させることができ、顧客のＩ／Ｏ要求は、対応するクライアントアプリケーション等にいずれの変更も必要なく、第２のサーバインスタンス６０２へ向けられ、それによって対処されるようにすることができる。管理プロセスは、例えば、新しいデータインスタンスのプロビジョニングおよび／または顧客データの移動、データプレーン内のアドレスマッピングの更新等のため、いずれの適切な動作も実行されるようにすることができ、そうすることで顧客は、いずれの動作または変更も顧客側で取られる必要なく、より高い認定レートを受け取ることができる。
【００５７】
上述のもの等の構成要素を使用して、図７は、様々な実施形態によって、リソースの保証されたレベルのサービスまたは処理の認定レートを既定の顧客に対して更新することができる、プロセス例７００を図示する。理解されるべきものとして、図示されるステップは例であり、追加的、より少ない、あるいは代替的なステップが、様々な実施形態の範囲内において、類似もしくは代替的順序で、または並行して実行可能である。さらに、プロセスは、制御プレーンまたは類似のデータ制御アプリケーションもしくはサービスを使用して、ここではデータプレーンであるデータ環境内の、少なくとも１つのデータインスタンス、リポジトリ、あるいは他のそのようなデータソース等、いずれの適切な構成要素または要素に対して実行可能である。用語「顧客」は、本明細書において、特定のデータ、またはデータストアもしくはシステムによってホストされるインスタンスの「所有者」を指して使用されるが、顧客という用語は、単に便宜のために使用され、いずれの適切なユーザまたは開発者も、様々な実施形態において、制御プレーンまたはデータプレーンにアクセスすることを許容されてもよいことを理解されたい。
【００５８】
レート変更がユーザ要求によってトリガーされる実施形態において、ウェブサービスコールまたは類似の要求は、複数のＡＰＩ、または他のそのような顧客向けインターフェース構成要素７０２のうちの１つを通じて受信される。要求は、必要な場合に、要求を処理するために必要な任意の動作を判定するために分析することができる。上述のように、これは、要求される動作（１つまたは複数）を判定するために、要求を解析するウェブサービス層の構成要素の形態をとることができる。ＡＰＩが、実行されるべき特定の動作に対応する要求を受信する実施形態において、ウェブサービス層は、実行される動作の態様またはパラメータを判定することに使用される情報を、要求から抽出することができる。
【００５９】
１つ以上の要求された（または必要な）動作が判定されると、システムは、顧客が現在使用しているリソース（１つまたは複数）（例えば、サーバ）を判定することができ７０４、リソース（１つまたは複数）の追加の認定可能容量を判定することができる７０６。上述のように、いくつかの実施形態において、これは、リソースが所望の容量を有するかどうかを判定するために、管理システム、または他のそのようなリポジトリにアクセス可能なデータストア内のテーブルに対する検索を含む。他の実施形態において、これは、個別にサーバにコンタクトすることを伴ってもよい。容量が複数のリソースインスタンスによって提供可能であっても、少なくとも管理の観点からは、顧客要求を別のリソースへ拡散させる代わりに、顧客が既に使用しているリソースを使用して、追加のレート認定を提供しようとすることが好ましい場合がある。その顧客によって使用されている現在のリソース（１つまたは複数）が、要求を満たすための追加の認定可能容量を有する場合７０８、プロセスは、リソース（１つまたは複数）に追加の認定を割り当てさせることができ７１０、それによって追加のレートを、顧客に対して即座に利用可能にすることが可能である。認定の変更についての情報は、管理システムにアクセス可能なテーブルに記憶することができる７１８。
【００６０】
顧客に割り当てられたリソース上に十分な認定可能容量がない場合は、プロセスは、新しいレート要求を満たすために、容量を有する少なくとも１つのリソースを配置しようと試みることができる７１２。いくつかの実施形態において、所望の容量を提供することができる単一のリソースインスタンスが利用可能な場合、顧客割り当ては、複数のインスタンスにわたって拡散される代わりに、その単一のリソースインスタンスに移すことができる。他の実施形態において、追加の容量は、別の利用可能なリソースインスタンスの追加の容量を追加することによって、提供することができる。いくつかの実施形態において、システムは、可能な場合に、単一の顧客に割り当てられるインスタンス数を最小化するか、または少なくとも減少させるために、顧客に対する割り当ての統合を試みることができる。様々な他のアプローチが、様々な実施形態の範囲内で、同様に使用されてもよい。
【００６１】
追加の認定を提供することができる少なくとも１つの追加のリソースインスタンスが、配置される場合に、プロセスは、リソース（１つまたは複数）に追加の認定を割り当てさせることができる７１４。追加のリソース（１つまたは複数）のマッピング情報は、要求を適正に顧客へ向けるために生成される７１６。認定の変更についての情報は、管理システムにアクセス可能なテーブルまたはリポジトリに記憶することができる７１８。認定が適用され、いずれの必要な構成またはプロビジョニング動作が実行された後、顧客は、保証が適用されていたリソースに直接アクセスすることができ、次の要求は、増加した認定を使用して処理することができる７２０。前述のように、例えば、動作が、データの移動または別の類似動作につながった場合、顧客またはアプリケーションが同一のＤＮＳアドレスを使用し続けることができるように、ユーザは、適切な位置に向けられるＤＮＳアドレスおよびポート番号を提供されてもよい。
【００６２】
いくつかの実施形態において、顧客は、単一のリソースインスタンスに割り付けられなくてもよい。例えば、全認定を満たすのに十分な容量を有する単一のインスタンスが存在しない場合がある。他の事例において、システムは、可能であれば、既存の顧客割り当てを現在のリソース上に残す一方で、単一のリソースを使用して追加の容量を追加するように構成することができ、それによってボリュームの変更の最小化等を行う。他の実施形態において、システムは、追加のリソースを割り当てる前に、既存のリソースインスタンスの容量を満たすことが好ましい場合がある。
【００６３】
図８は、上述または他の適切な理由のいずれかにより、全認定が、単一のリソースインスタンスによって提供されない例８００を図示する。さらに、図５の初期割り当て例を開始位置として使用して、この例においては、顧客Ａに対するもともとの１００ＩＯＰＳは、依然としてサーバＸ５０２によって提供される。追加の１００ＩＯＰＳについては、しかしながら、追加の要求が第２のサーバであるサーバＹ８０２に割り当てられる。この例において、第２のサーバインスタンスは、他の顧客に対する要求に対処するが、顧客Ａに対する追加の割り当てに対処するために十分な利用可能な認定可能容量を有する。上述のように、いくつかの実施形態において、第２のサーバインスタンスは、適切なサーバを配置して追加の認定レートを提供するために、制御プレーンのデータストア内に記憶されるデータを分析することによって選択されてもよい。他の実施形態において、サーバは、少なくとも顧客に対する追加のリソース認定を受け入れることができるサーバが見つかるまで、個別にコンタクトされる場合がある。
【００６４】
いくつかの事例において、要求された認定増加は、単一のリソースインスタンスによって提供することができない。例えば、図５の初期開始位置を継続して、それぞれのサーバは、４００ＩＯＰＳを認定することのみが可能な場合がある。顧客Ａが、１００ＩＯＰＳから６００ＩＯＰＳへの増加を求める場合、認定レートは、単一リソースによって提供することはできない。したがって、もともとの１００ＩＯＰＳが第１のサーバインスタンス５０２によって提供され続ける場合に、少なくとも２つの追加のリソースインスタンスが必要となる。いくつかの実施形態においては、しかしながら、例えば管理の複雑さおよびマッピングを減少させるため等の理由により、可能な限り少数のリソースにわたって顧客を分配するかまたは割り当てることが好ましい。図９は、顧客Ａに対する要求が、サーバＸ５０２から取り除かれ、データボリュームが移動および分割され、全認定レートが、２つのリソースインスタンスにわたって割り付けられる、割り当て例９００を図示する。ここでは、４００ＩＯＰＳが、サーバＹ９０２に割り付けられて、２００ＩＯＰＳが、第３のリソースインスタンスであるサーバＺ９０４に割り付けられるが、他の相対的な割り当てが同様に使用されてもよいことは明らかであろう。初期の要求を第１のリソースインスタンス５０２から移動させることによって、システムは、３つではなく２つのリソースインスタンスを使用して、要求されたレート認定を提供することができる。
【００６５】
明らかであるべきものとして、既定のユーザに対するレート認定はまた、いくつかの類似の理由のいずれかにより、減少する場合がある。したがって、認定を増加させるために上で使用されたアプローチのうちの少なくともいくつかは、レート認定を減少させるために、実質的に逆に使用可能である。例えば、ユーザが、２つのリソースインスタンスにわたって均等に分割される２００ＩＯＰＳを有する図６において、ユーザのレートが１００ＩＯＰＳに減少する場合、システムは、どちらのインスタンスが１００ＩＯＰＳ認定を保持するかを選択し、もう一方が認定を解放することを可能にすることができる。レートがサーバのうちの１つ上で利用可能な１００ＩＯＰＳよりも高いレベル、例えば、１５０ＩＯＰＳのレートまで落ちる場合、第３のサーバをより完全に利用し、第２のサーバ上の利用可能な容量を増加させるために、システムは、１つのサーバ上に１００ＩＯＰＳを残し、他の５０ＩＯＰＳを現在の第２のサーバ上に残すか、あるいはそれらのＩＯＰＳをそのサーバ上に約５０ＩＯＰＳを有する第３のサーバ上に移動させるかのいずれかである。
【００６６】
図９の状況において、ユーザは、サーバＸ上の１００ＩＯＰＳからサーバＹ上の４００ＩＯＰＳおよびサーバＺ上の２００ＩＯＰＳへ移動した。ユーザが、２００ＩＯＰＳまたは４００ＩＯＰＳに戻った場合、システムは、顧客に割り付けられたその量を既に有するサーバを単純に利用し、他のサーバ上の認定を解放することができる。ユーザが、１００ＩＯＰＳに下がった場合、システムは、サーバＹまたはＺのいずれか上の割り当てを１００ＩＯＰＳまで減少させるか、あるいは、サーバＸが、依然として利用可能な１００ＩＯＰＳを有する場合、サーバＸの使用量を最大化し、サーバＹおよびＺ上の利用可能容量を最大化するために、顧客をサーバＸに戻すことができる。他の事例において、システムは、所望のＩＯＰＳレベルに最も近く一致する容量を有するさらに別のサーバ（図示されない）に、顧客を移動させることを決定してもよい。
【００６７】
容量を調節する際に、既存のリソースを移動、統合、あるいはそうでなければ管理することに加えて、様々な実施形態によるシステムおよび方法はまた、利用可能なリソースの変化を監視することができ、これらの変化に応答してリソース割り当てを更新することができる。例えば、図１０は、顧客が４００ＩＯＰＳの認定レートを有する割り当て例１０００を図示する。認定レートは、３つの異なるサーバ１００２、１００４、１００６を使用して、提供される。いくつかの実施形態において、システムは、認定可能な容量４００ＩＯＰＳを有することを示す、サーバＺ１００８等のリソースインスタンスが利用可能になる際にそれを検出することができる。新しい顧客要求を、新たに利用可能なリソースインスタンスに割り当てる代わりに、特定の実施形態において、システムは、より少ないデバイスおよび／またはインスタンスに既存の顧客を統合することを試みるために、既存の割り当てを分析することができる。この例において、サーバＺ８０８が４００の利用可能なＩＯＰＳを有し、顧客Ａが、３つのサーバにわたって拡散する４００ＩＯＰＳの認定レートを有することが判定される。可能な限り多く統合するためには、システムは、顧客Ａに全４００ＩＯＰＳを提供するために、サーバＺを利用することを決定することができる。このようなアプローチは、上述のように、様々なリソースインスタンス等の管理およびマッピングの複雑性を低くすることを助けることができる。
【００６８】
より少数のデバイスへ顧客を統合するという決定は、いくつかのイベントのいずれかによってトリガーされてもよい。いくつかの実施形態において、制御プレーンは、利用可能な容量の変化の際にそれを判定するために、それぞれのリソースインスタンスと定期的に通信することができ、そうして統合が可能になり得る。いくつかの実施形態において、リソースインスタンスに対する認定に減少がある場合、例えば、顧客が認定レートを下げるか、もはやリソースを利用しない場合、タスクは、管理者データストア（Ａｄｍｉｎ  ｄａｔａ  ｓｔｏｒｅ）または他の位置内の認定を調べ、統合が可能かどうかを判定するために、制御環境のジョブ待ち行列内に設定することができる。類似のアプローチが、新しいリソースインスタンスがデータ環境内でプロビジョニングされる場合はいつでも利用可能であり、そうすることで新しい記録は、例えば制御環境内に記憶されるようになる。様々な他のアプローチも、例えば、制御環境内に記憶される認定情報を定期的に分析して、統合のために可能なアプローチを判定するために、同様に使用することができる。ユーザが認定の増加または減少を一時的にのみ要求する場合は、しかしながら、システムは、データのコピー、マッピングの更新等を最小化するために、統合することを決定しなくてもよい。したがって、特定の基準（例えば、認定使用量、現在の認定レベルにおける時間の長さ等）は、いずれの既定のユーザのリソースをも統合するかどうかを判定するために、様々な実施形態において利用することができる。
【００６９】
上述のように、異なる認定レベルが割り当てられてもよく、および／またはデータボリュームが様々な実施形態の範囲内で、いくつかの理由のうちのいずれかのために、移動されてもよい。例えば、顧客は、ウェブサービス要求を管理システムの適切なＡＰＩに送信すること等によって、リソース認定の変更を明確に求めることができる。顧客はまた、顧客の代わりにこのような要求を提示することができる、管理者または他の承認ユーザにコンタクトしてもよい。
【００７０】
様々な実施形態において、調節は、データプレーン内のリソースのいくつかの異なる態様のうちのいずれか、ならびにそれらのリソースの使用量における変化を検出することに少なくとも部分的に起因して行われてもよい。例えば、特定のリソースインスタンスは、指定の基準または閾値に基づく可能性がある等、許容可能なものよりも長い時間の過負荷状況において存在する場合がある。このような状況において、システムは、しばしば過負荷になるリソースインスタンス上の平均負荷を減少させるために、少なくとも１つの顧客を異なるインスタンスへ移動させることを決定することができる。他の実施形態において、顧客は、認定レートを頻繁に上回る場合があり、そうしてシステムが、その顧客に対するデータボリュームをより大きな容量を有するリソースへ移動させることを決定できるようになる。
【００７１】
いくつかの実施形態において、システムは、様々なユーザのレートまたは他のリソース認定を自動で調節することができる。例えば、顧客は、異なる時間に異なるレベルの認定の料金を進んで支払う場合があるが、顧客が認定容量をあまり使用していない場合は、最高の認定レートの支払いを望まない場合がある。１つのこのような実施形態において、顧客は、様々な時間において、認定レートに使用可能な２つ以上のレベル、階層、または他の値を選択することができる。例えば、顧客は、認定レートの少なくとも７５％の容量が使用されている場合、５００ＩＯＰＳまでの認定レートの料金を進んで支払うことがある。一定期間の使用量が７５％未満の場合、認定レートは、３５０ＩＯＰＳ等のより低い値の認定レートまで落ちることがある。レートは、一定期間の使用量が、レートが２００ＩＯＰＳに調節される可能性のある、７５％の３５０ＩＯＰＳ未満に落ちるまでか、一定期間の使用量が、認定レートが５００ＩＯＰＳに調節し戻される可能性のある、認定レートの少なくとも１１０％まで増加するまで、３５０ＩＯＰＳに留まってもよい。顧客は、例えば、要求に対する認定レートをできるだけ多く有するか、絶対に必要な場合により高い認定レートにのみ料金を支払うかのいずれかを好むため、認定レートを増加または減少させるために必要な期間は、異なる可能性がある。さらに、様々な実施形態の範囲内で、任意の適切な閾値、階層の数、可能なレート、または他のこのような値が存在してもよい。
【００７２】
いくつかの実施形態において、レート認定の増加は、顧客に対するＩ／Ｏ要求の処理性能と関係する場合がある。例えば、特定の認定レートを有する顧客は、顧客のＩ／Ｏ要求が時宜に即して処理されている限りは、レートの増加を望まない可能性がある。上述のように、過剰要求は、リソース上に十分な未認定容量があるか、または未使用の認定容量がある限りは、時宜に即して処理することができる。リソースが、過負荷状況に入る場合、例えば、過剰要求は、時宜に即して処理されない可能性があり、過剰な負荷から復旧しようと試みるために、減速される場合がある。顧客はこのような状態のシステムが、同一のリソースまたは異なるリソース上で、顧客からの次の要求が時宜に即して処理されることを確実にするために、自動で認定レートを増加させることを承認することができる。同様に、容量が存在する場合に、いずれの過剰要求も著しい遅れなしに処理される可能性がある限りは、顧客が、より低い認定レートまで落とすことができるように、様々なリソースの使用量を監視することができる。
【００７３】
認定を様々な粒度で提供することによって、プロバイダは、いくつかの異なる料金付けスキームを提供することができる。例えば、ユーザは、ユーザが実際にその量を使用するかどうかに関わらず、それぞれの認定ＩＯＰＳに対して特定額、例えば保証ＩＯＰＳあたり＄０．３０を支払う場合がある。したがって、ユーザが、１ヶ月間１００ＩＯＰＳの認定を購入する場合、ユーザは、その認定に対して料金を支払うため、実際の使用量にかかわらず＄３０を支払うことになる。様々な階層状の料金付けスキーム等、様々な他の料金付けアプローチも同様に使用可能である。他の実施形態において、ユーザは、認定ＩＯＰＳのレベルに対して割り増し料金を支払う場合があるが、その額は、他のユーザによって使用された未使用の認定の量との相殺であってもよい。例えば、ユーザは、１ヶ月間の１００ＩＯＰＳに対して＄３０を支払う場合があるが、他のユーザがその顧客に割り当てられたそれらの認定ＩＯＰＳのうちの２５を使用した場合、顧客は、ＩＯＰＳあたり＄０．０５等の減額があり、合計の月額が＄２５であることを確認することができる。レートが、特定の期間で調節される場合、顧客への請求額は、その期間にわたって割り振られた異なるレートを反映することができる。
【００７４】
上述のように、顧客は、それらの認定量もまた超えてもよい。様々な料金付けアプローチを、様々な実施形態の範囲内で、それらの追加ＩＯＰＳに対して使用することができる。一実施形態において、顧客は、その追加ＩＯＰＳに対して未認定のＩＯＰＳ（例えば、ＩＯＰＳあたり＄０．１０）を有する任意の顧客と同じように請求され、顧客要求はこれらの要求と同じように扱われる。他の実施形態において、顧客は、他の要求とともに対処されるが、標準の要求よりも優先度を与えられるように、ＩＯＰＳごとに追加料金を支払うことを選択することができる。いくつかの実施形態において、顧客は、彼らの過剰要求を利用可能な別の顧客の認定リソース内で処理するために、追加料金を支払うことができ、そうすることで、リソース上の少なくとも１つの他の顧客が認定レベルに満たない限り、要求は認定要求として処理されることになる。顧客は、必要であれば、要求レートをスパイクする能力を求める場合がある一方で、特定の実施形態において、ユーザは、顧客費用の制限、サービス品質の一定レベルの確保、または他のこのような理由のために、特定のレベルを上限とされてもよい。保証レベルを上回る能力はまた、システムまたはアプリケーションを拡張する顧客にとっても有益な場合がある。顧客は、サービスの品質に重大な問題なく、必要な領域を判定することができる。
【００７５】
図１１は、様々な実施形態による態様を利用する、および／または活用することができる、環境例１１００を図示する。理解されるように、ウェブベースの環境は、説明の目的で使用されるが、様々な実施形態を実装するために、適切な異なる環境が使用されてもよい。示される環境１１００は、テストまたは開発部分（もしくは側）と製造部分の両方を含む。製造部分は、電子クライアントデバイス１１０２を含み、このデバイスは、適切なネットワーク１１０４上で要求、メッセージ、または情報を送信および受信するように、ならびにデバイスのユーザへ情報を伝達し戻すように操作可能な任意の適切なデバイスを含む。このようなクライアントデバイスの例には、パーソナルコンピュータ、携帯電話、携帯用メッセージングデバイス、ラップトップコンピュータ、セットトップボックス、個人用情報端末、および電子ブックリーダ等が挙げられる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のこのようなネットワークもしくはその組み合わせを含む、任意の適切なネットワークを含むことができる。このようなシステムに使用される構成要素は、ネットワークの種類および／または選択される環境に、少なくとも部分的に依存してもよい。このようなネットワークを介する通信のためのプロトコルおよび構成要素は、周知であり、本明細書において詳細は説明されない。ネットワーク上の通信は、有線または無線接続、もしくはその組み合わせによって可能であってもよい。この例において、ネットワークは、環境が、要求の受信およびそれに応答してコンテンツをサービスするためのウェブサーバ１１０６を含むため、インターネットを含むが、他のネットワークについては、当業者には明らかなように、同様の目的をサービスする代替のデバイスが使用されてもよい。
【００７６】
例示的な環境は、少なくとも１つのアプリケーションサーバ１１０８およびデータストア１１１０を含む。連鎖しているか、あるいはそうでなければ構成されていてもよく、適切なデータストアからデータを入手する等のタスクを実行するために相互作用可能な、複数のアプリケーションサーバ、層、または他の要素、プロセス、もしくは構成要素が存在してもよいことを理解されたい。本明細書に使用される際、用語「データストア」は、データの記憶、アクセス、および読み出し能力のある、任意のデバイスまたはデバイスの組み合わせを指し、それは、任意の標準、分散、またはクラスタ化された環境における、データサーバ、データベース、データ記憶デバイス、およびデータ記憶媒体の任意の組み合わせ、ならびに任意の数のそれらを含んでもよい。アプリケーションサーバは、クライアントデバイスに対する１つ以上のアプリケーションの態様を実行するために、必要に応じて、データストアと統合するための任意の適切なハードウェアおよびソフトウェアを含み、アプリケーションのためのデータアクセスとビジネスロジックの大半に対処することができる。アプリケーションサーバは、データストアと連携して、アクセス制御サービスを提供し、ユーザに転送される、文字、図、音声、および／または映像等のコンテンツを生成することができ、そのコンテンツは、この例においては、ウェブサーバによって、ＨＴＭＬ、ＸＭＬ、または別の適切な構造化言語の形態で、ユーザにサービスすることが可能である。全ての要求および応答の対処、ならびにクライアントデバイス１１０２とアプリケーションサーバ１１０８との間のコンテンツ送達は、ウェブサーバによって対処することができる。ウェブサーバおよびアプリケーションサーバは、本明細書に記載の構造化コードが、本明細書の別の部分に記載されるように、任意の適切なデバイスまたはホストマシン上で実行可能であるため、必要ではなく、単なる構成要素例である。さらに、環境は、テスト自動化フレームワークが、ユーザまたはアプリケーションが登録可能なサービスとして提供することができるような方法で、設計することができる。テスト自動化フレームワークは、本明細書に記載の様々なテストパターンのいずれかの実装として提供されてもよいが、様々な他の実装も、本明細書に記載または提案されるように、同様に使用可能である。
【００７７】
環境はまた、開発者、データ管理者、またはテスター等のユーザがシステムにアクセスすることを可能にする、ユーザデバイス１１１８を含む、開発側および／またはテスト側を含む。ユーザデバイス１１１８は、クライアントデバイス１１０２に関して上述されたような、任意の適切なデバイスまたはマシンであってもよい。環境はまた、例えば、アプリケーションサーバ１１０８と同じように機能するが、典型的に、コードが製造側で展開され実行されて、外部ユーザにアクセス可能になる前に、開発およびテストの間にコードを走らせる、開発サーバ１１２０を含む。いくつかの実施形態において、アプリケーションサーバは、開発サーバとして機能することができ、別個の製造およびテスト記憶が使用されなくてもよい。
【００７８】
データストア１１１０は、特定の態様に関連するデータを記憶するために、複数の別個のデータテーブル、データベース、または他のデータ記憶機構および媒体を含むことができる。例えば、図示されるデータストアは、製造側にコンテンツを供給するために使用可能である、製造データ１１１２およびユーザ情報１１１６を記憶するための機構を含む。データストアはまた、テスト側のユーザ情報とともに使用可能である、テストデータ１１１４を記憶するための機構を含むことが示される。例えば、ページイメージ情報およびアクセス権情報については、データストア内に記憶される必要のある多数の他の態様があってもよく、これらの態様は、適切として上に挙げられた機構のいずれか、またはデータストア１１１０内の追加の機構内に記憶してもよいことを理解されたい。データストア１１１０は、それに関連するロジックを通じて、アプリケーションサーバ１１０８または開発サーバ１１２０から命令を受信し、それに応答してデータを入手、更新、またはそうでなければ処理するように、操作可能である。一実施形態において、ユーザは、特定の種類のアイテムに対する検索要求を提示する場合がある。この場合において、データストアは、ユーザの識別を検証するために、ユーザ情報にアクセスすることができ、その種類のアイテムについての情報を入手するために、カタログの詳細情報にアクセスすることができる。情報は、次いで、例えば、ユーザが、ユーザデバイス１１０２上のブラウザを介して閲覧可能なウェブページ上の、結果一覧において、ユーザに返却することが可能である。関心のある特定のアイテムについての情報は、ブラウザの専用ページまたはウィンドウで閲覧可能である。
【００７９】
それぞれのサーバは、典型的に、そのサーバの一般的な管理および操作に、実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的に、サーバのプロセッサによって実行される際に、サーバが目的の機能を実行することを可能にする、記憶命令を記憶したコンピュータ可読媒体を含む。オペレーティングシステムの好適な実装およびサーバの一般的な機能性は、既知または市販であり、特に、本明細書の開示の観点からは、当業者によって容易に実装される。
【００８０】
一実施形態における環境は、１つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続される、いくつかのコンピュータシステムおよび構成要素を利用する、分散コンピューティング環境である。しかしながら、このようなシステムが、図１１に図示されるものよりも、少ないかまたは多い数の構成要素を有するシステムにおいても、同様に良好に作動可能であることは、当業者には認識されるであろう。したがって、図１１のシステム１１００の描写は、事実上例示としてとらえられるべきであり、本開示の範囲を制限するべきものではない。
【００８１】
図１１に例示されるような環境は、複数のホストがコンテンツの供給、ユーザの認証、支払いトランザクションの実行、またはいくつかの他のこのようなタスクのいずれかの実行等のタスクを実行するために使用される場合のある、電子市場等のプロバイダにとって有用であり得る。これらのホストのいくつかは、同様の機能性を提示するように構成されてもよく、一方で他のサーバが、少なくともいくつかの異なる機能を実行するように構成されてもよい。この場合の電子環境は、以下に詳細が記載される図２の構成２００に例示されるもの等の追加の構成要素および／または他の配列を含んでもよい。
【００８２】
上述のように、様々な実施形態は、ある場合には、いくつかのアプリケーションのうちのいずれかを操作するために使用可能な１つ以上のユーザコンピュータ、コンピューティングデバイス、またはプロセッシングデバイスを含むことができる、幅広い種類の操作環境において実装可能である。ユーザデバイスまたはクライアントデバイスは、標準のオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ、ならびにモバイルソフトウェアを実行し、多数のネットワークおよびメッセージプロトコルをサポートする能力のある、セルラー、無線、およびハンドヘルドデバイス等の、多数の汎用パーソナルコンピュータのいずれかを含むことができる。このようなシステムはまた、開発およびデータベース管理等の目的で、市販のオペレーティングシステムおよび他の既知のアプリケーションを実行する、いくつかのワークステーションを含むことができる。これらのデバイスはまた、ネットワークを介して通信する能力のある、ダミー端末、シンクライアント、ゲーム機、および他のデバイス等、他の電子デバイスを含むことができる。
【００８３】
様々な態様はまた、少なくとも１つのサービスまたはウェブサービスの一部として、例えば、サービス指向のアーキテクチャの一部として、実装可能である。ウェブサービス等のサービスは、任意の適切な種類のメッセージを使用して、例えば、拡張マークアップ言語（ＸＭＬ）形式で書かれ、ＳＯＡＰ（「Ｓｉｍｐｌｅ  Ｐｕｒｐｏｓｅ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ」に由来）等の適切なプロトコルを使用して交換されたメッセージを使用して、通信可能である。このようなサービスによって提供または実行されるプロセスは、ウェブサービス記述言語（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）（ＷＳＤＬ）等の任意の適切な言語で書き込み可能である。ＷＳＤＬ等の言語を使用することで、様々なＳＯＡＰフレームワークにおいて、クライアント側のコードの自動生成等の機能が可能になる。
【００８４】
ほとんどの実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋ等の様々な種類の市販のプロトコルのいずれかを使用する通信をサポートすることで当業者によく知られている、少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレスネットワーク、およびこれらの組み合わせであってもよい。
【００８５】
ウェブサーバを利用する実施形態において、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、ジャバサーバ、およびビジネスアプリケーションを含む、様々なサーバまたは中間層アプリケーションのいずれかを実行することができる。サーバ（１つまたは複数）はまた、例えば、Ｊａｖａ（商標）、Ｃ、Ｃ＃、またはＣ＋＋等の任意のプログラム言語、あるいはＰｅｒｌ、Ｐｙｔｈｏｎ、またはＴＣＬ等の任意のスクリプト言語、ならびにこれらの組み合わせで書かれた、１つ以上のスクリプトまたはプログラムとして実装可能な１つ以上のウェブアプリケーションを実行することによって、ユーザデバイスからの要求に応じてプログラムまたはスクリプトを実行する能力があってもよい。サーバ（１つまたは複数）はまた、Ｏｒａｃｌｅ（商標）、Ｍｉｃｒｏｓｏｆｔ（商標）、Ｓｙｂａｓｅ（商標）、およびＩＢＭ（商標）から市販のものを含むが、これらに限定されないデータベースサーバを含んでもよい。
【００８６】
環境は、上述のように、様々なデータストアならびに他のメモリおよび記憶媒体を含むことができる。これらは、様々な位置、例えば、コンピュータの１つ以上にローカル（および／またはその中に存在する）か、あるいはネットワークにわたるコンピュータのいくつかまたは全てからリモートの記憶媒体上に、存在してもよい。特定のセットの実施形態において、情報は、当業者によく知られているストレージエリアネットワーク（「ＳＡＮ」）内に存在してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実行するためのいずれの必要なファイルも、必要に応じて、ローカルおよび／またはリモートに記憶されてもよい。システムが、コンピュータ化されたデバイスを含む場合、それぞれのこのようなデバイスは、バスを介して電気的に連結されてもよいハードウェア要素を含むことができ、その要素には、例えば、少なくとも１つの中央処理装置（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチ画面、またはキーパッド）、ならびに少なくとも１つの出力デバイス（例えば、画面デバイス、プリンタ、またはスピーカ）が挙げられる。このようなシステムはまた、１つ以上の記憶デバイス、例えば、ディスクドライブ、光学記憶デバイス、ランダムアクセスメモリ（「ＲＡＭ」）または読み込み専用メモリ（「ＲＯＭ」）等のソリッドステート記憶デバイス、ならびに取り外し可能メディアデバイス、メモリカード、フラッシュカード等を含んでもよい。
【００８７】
このようなデバイスはまた、上述のように、コンピュータ可読記憶媒体リーダ、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイス等）、および作業メモリを含んでもよい。コンピュータ可読記憶媒体リーダは、リモート、ローカル、固定、および／または取り外し可能記憶デバイス、ならびに一時的および／またはより恒久的にコンピュータ可読情報を収容、記憶、伝送、および読み出すための記憶媒体を代表する、コンピュータ可読記憶媒体に接続されるか、それを受信するように構成されてもよい。システムおよび様々なデバイスはまた、典型的に、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステムおよびアプリケーションプログラムを含む、少なくとも１つの作業メモリデバイス内に配置される、多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替の実施形態が、多数の上述のものからの変形を有してもよいことを理解されたい。例えば、カスタマイズされたハードウェアもまた使用可能であり、および／または特定の要素がハードウェア、ソフトウェア（アプレット等のポータブルソフトウェアを含む）、または両方において実装されてもよい。さらに、ネットワーク入力／出力デバイス等の、他のコンピューティングデバイスへの接続も、採用可能である。
【００８８】
コードまたはコードの部分を収容するための記憶媒体およびコンピュータ可読媒体は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用可能であり、システムデバイス内でアクセス可能ないずれの他の媒体を含む、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の、情報の記憶および／または伝送のための任意の方法または技術で実装される、揮発性および不揮発性媒体、取り外し可能または取り外し不可媒体であるが、これらに限定はされない、記憶媒体および通信媒体を含む、当該技術分野で既知か、または使用されている任意の適切な媒体を含んでもよい。
【００８９】
本明細書および図面は、必要に応じて、限定的意味というよりはむしろ例示的な意味と見なされる。しかしながら、様々な修正および変更が、請求項に記載の本発明の広い趣旨と範囲から逸脱することなく、そこへなされてもよいことは明白であろう。
【００９０】
項１．共有コンピュータリソースの使用量を調節するコンピュータ実装された方法であって、
実行可能な命令を備えて構成される１つ以上のコンピュータシステムの制御下で、
ある種類のリソースに関して、顧客のための調節された認定要求レートに対する要求を受信することであって、前記顧客が、前記種類のリソースに対する現在の認定要求レートを有し、前記要求が、前記種類のリソースの１つ以上のインスタンスの容量の任意の部分に対応する、認定要求レートを指定する能力がある、受信することと、
前記調節された認定要求レートが、前記現在の認定要求レートよりも低い場合に、前記顧客のための前記種類のリソースの少なくとも１つのインスタンスに対する前記認定要求レートを自動で減少させることと、
前記要求が、前記認定要求レートを増加させることに関連する場合に、前記調節された認定要求レートを得るために、前記種類のリソースの少なくとも１つのインスタンスの利用可能な認定可能レート容量の少なくとも一部分を自動で認定することと、
前記顧客に対する要求対処のレートの管理における使用のために、前記顧客に対する前記調節された認定要求レートの情報を記憶することと、を含む、コンピュータ実装された方法。
【００９１】
項２．前記認定要求レートを減少させることは、より少数のインスタンスが、前記認定要求レートを提供するために利用可能な場合に、前記種類のリソースのインスタンス数を減少させて、前記顧客に前記認定要求レートを提供することを含む、第１項に記載のコンピュータ実装された方法。
【００９２】
項３．前記認定要求レートを増加させるか、または減少させることは、少なくとも１つの要求対処認定を、前記種類のリソースの異なるインスタンスへ自動で移動させて、前記顧客に前記認定要求レートを提供することを含む、第１項に記載のコンピュータ実装された方法。
【００９３】
項４．前記調節された認定要求レートは、単一の判定済みインスタンスか、またはそれぞれが前記要求された認定要求レートの少なくとも一部分を提供する複数の判定済みインスタンスによって供給される能力があり、それぞれの判定済みインスタンスが、さらに、前記インスタンスに対する要求容量が追加のユーザを許容する場合、前記リソースを共有する前記追加のユーザを有する能力がある、第１項に記載のコンピュータ実装された方法。
【００９４】
項５．ある種類のリソースに対する前記認定要求レートは、データサーバに対する１秒あたりの入力／出力操作（ＩＯＰＳ）の認定レートである、第１項に記載のコンピュータ実装された方法。
【００９５】
項６．それぞれのインスタンスは、複数の顧客に対する認定要求レートをサポートする能力があり、それぞれのインスタンスは、さらに、認定要求レートを有しない追加の顧客に対する要求をサポートする能力がある、第１項に記載のコンピュータ実装された方法。
【００９６】
項７．少なくとも１つのインスタンスは、前記インスタンスの前記容量の未認定または未使用の部分を使用して、未認定要求レートを有する顧客に対する要求を処理するように構成され、
過負荷状況において、認定要求レートを有する顧客に対する前記要求が、通常のレートで対処され、認定要求レートを有しない顧客に対する要求が、前記過負荷状況を打開するために減速される、第１項に記載のコンピュータ実装された方法。
【００９７】
項８．認定要求レートを有する顧客は、前記認定要求レートを上回ることができ、前記認定要求レートを超えるいずれの要求も、レート認定を有しない要求に対するレートでか、またはレート認定を有する要求に対するレートと、有しない要求に対するレートとの混合レートで対処される、第１項に記載のコンピュータ実装された方法。
【００９８】
項９．前記種類のリソースの少なくとも１つのインスタンスの利用可能な認定可能要求容量を判定することは、容量または認定情報のうちの少なくとも１つのために、インスタンスにランダムにコンタクトすることを含む、第１項に記載のコンピュータ実装された方法。
【００９９】
項１０．前記顧客に、その顧客のためのその種類のリソースに対する前記認定要求レートに少なくとも部分的に基づいて、請求することをさらに含む、第１項に記載のコンピュータ実装された方法。
【０１００】
項１１．共有コンピュータリソースの使用量を調節するためのシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行される際に、前記システムに、
ある種類のリソースに関して、顧客のために調節された認定レートに対する要求を受信することであって、前記顧客が、前記種類のリソースに対する現在の認定レートを有し、前記要求が、前記種類のリソースの１つ以上のインスタンスの容量の任意の部分に対応する認定レートを指定する能力がある、受信することと
前記調節された認定レートが、前記現在の認定レートよりも低い場合に、前記顧客のための前記種類のリソースの少なくとも１つのインスタンスに対する前記認定レートを自動で減少させることと、
前記要求が、前記認定レートを増加させることに関連する場合に、前記調節された認定レートを得るために、前記種類のリソースの少なくとも１つのインスタンスの利用可能な認定可能レート容量の少なくとも一部分を自動で認定することと、
前記顧客に対する要求対処のレートの管理における使用のために、前記顧客に対する前記調節された認定レートの情報を記憶することと、を行わせる命令を含む、メモリと、を備える、システム。
【０１０１】
項１２．前記認定レートを減少させることは、より少数のインスタンスが前記認定レートを提供するために利用可能な場合に、前記種類のリソースのインスタンス数を減少させて、前記顧客に前記認定レートを提供することを含み、前記認定レートを増加させるか、または減少させることは、少なくとも１つの使用量認定を、前記種類のリソースの異なるインスタンスへ自動で移動させて、前記顧客に前記認定レートを提供することを含む、第１１項に記載のシステム。
【０１０２】
項１３．共有コンピュータリソースの使用量を管理する、コンピュータ実装された方法であって、
実行可能な命令を備えて構成される１つ以上のコンピュータシステムの制御下で、
ある種類のリソースに対する認定使用レートの要求を受信することであって、前記要求が、前記種類のリソースの１つ以上のインスタンスの使用容量の任意の部分に対応する、認定使用レートを指定する能力がある、受信することと、
前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスを判定することと、
前記少なくとも１つの判定済みインスタンスが前記認定使用レートを提供する能力がある場合に、前記要求された認定使用レートの少なくとも一部分を、それぞれの判定済みインスタンスに割り付けることと、を含み、
前記認定使用レートは、単一の判定済みインスタンスか、またはそれぞれが前記要求された認定使用レートの少なくとも一部分を提供する複数の判定済みインスタンスによって供給される能力があり、それぞれの判定済みインスタンスが、さらに、前記インスタンスの使用容量が追加のユーザを許容する場合、前記リソースを共有する前記追加のユーザを有する能力があり、
ユーザは、前記種類のリソースのいずれの単一インスタンスの前記容量からも実質的に独立している認定使用レートを要求することができる、コンピュータ実装された方法。
【０１０３】
項１４．ある種類のリソースに対する前記認定使用レートは、データサーバに対する１秒あたりの入力／出力操作（ＩＯＰＳ）の認定レートである、第１３項に記載のコンピュータ実装された方法。
【０１０４】
項１５．前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスを判定することは、他のユーザに対して未認定の、そのインスタンスの前記容量の少なくとも許容可能な一部分を有する、少なくとも１つのインスタンスを判定することを含む、第１３項に記載のコンピュータ実装された方法。
【０１０５】
項１６．前記要求に対応する前記認定使用レートを提供する能力があると判定されるインスタンスの組み合わせがない場合に、前記要求が拒否される、第１３項に記載のコンピュータ実装された方法。
【０１０６】
項１７．認定使用レートを有するユーザは、前記認定使用レートを上回ることができ、前記認定使用レートを超えるいずれの要求も、レート認定を有しない要求に対するレートで処理されるか、またはレート認定を有する要求に対するレートと、有しない要求に対するレートとの間の混合レートで処理される、第１３項に記載のコンピュータ実装された方法。
【０１０７】
項１８．共有コンピュータリソースの使用量を管理するためのシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行される際、前記システムに、
ある種類のリソースに対する認定使用レートの要求を受信することであって
前記要求が前記種類のリソースの１つ以上のインスタンスの使用容量の任意の部分に対応する認定使用レートを指定する能力がある、受信することと、
前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスを判定することと、
前記少なくとも１つの判定済みインスタンスが前記認定使用レートを提供する能力がある場合に、それぞれの判定済みインスタンスへの前記要求された認定使用レートの少なくとも一部分を割り付けることと、を行わせる命令を含む、メモリと、を備え、
前記認定使用レートが、単一の判定済みインスタンスか、またはそれぞれ
前記要求された認定使用レートの少なくとも一部分を提供する複数の判定済みインスタンスによって供給される能力があり、それぞれの判定済みインスタンスが、さらに、前記インスタンスの使用容量が追加のユーザを許容する場合に、前記リソースを共有する前記追加のユーザを有する能力があり、
ユーザが、前記種類のリソース任意の単一インスタンスの前記容量から実質的に独立している認定使用レートを要求することができる、システム。
【０１０８】
項１９．前記要求された認定使用レートの少なくとも一部分を提供するように操作可能な前記種類のリソースの少なくとも１つのインスタンスの判定は、他のユーザに対して未認定の、そのインスタンスの前記容量の少なくとも許容可能な一部分を有する、少なくとも１つのインスタンスを判定することを含む、第１８項に記載のシステム。
【０１０９】
項２０．少なくとも１つのインスタンスは、前記インスタンスの前記容量の未認定部分または未使用部分を使用して、未認定要求レートを有するユーザに対する要求を処理するように構成され、
過負荷状況において、認定使用レートを有するユーザに対する前記要求は、通常のレートで処理され、認定使用レートを有しないユーザに対する要求は、前記過負荷状況を打開するために減速される、第１８項に記載のシステム。
【図１】
2013524343.tif 000003
【図２】
2013524343.tif 000004
【図３】
2013524343.tif 000005
【図４】
2013524343.tif 000006
【図５】
2013524343.tif 000007
【図６】
2013524343.tif 000008
【図７】
2013524343.tif 000009
【図８】
2013524343.tif 000010
【図９】
2013524343.tif 000011
【図１０】
2013524343.tif 000012
【図１１】
2013524343.tif 000013
【国際調査報告】
2013524343.tif 000014