ブロックデータストレージサービスのコンピューティングシステムが実行プログラムに対してリモートのブロックデータストレージ機能を提供するための方法であって、ブロックデータストレージサービスによって提供される非ローカルのブロックデータストレージへの第1の実行プログラムのアクセスを開始する要求を受け取るステップであって、前記第1のプログラムは地理的位置の同じ場所に配置される、1つまたは複数の内部ネットワークを共有する複数のコンピューティングシステムのうちの第1のコンピューティングシステム上で実行され、前記ブロックデータストレージサービスは前記複数のコンピューティングシステムのうちの複数の他のコンピューティングシステムの第1のグループを、複数の実行プログラムに対してブロックデータストレージを提供するブロックデータストレージシステムとして使用し、前記第1のコンピューティングシステムは前記第1のグループの一部ではない、ステップと、前記第1のコンピューティングシステム上で実行して前記内部ネットワークへの前記第1のコンピューティングシステムのアクセスを管理する前記ブロックデータストレージサービスの第1のノードマネージャソフトウェアモジュールの制御の下で、前記ブロックデータストレージサービスによって提供される非ローカルの第1のブロックデータストレージボリュームを表すために前記第1のコンピューティングシステムの論理ローカルストレージデバイスを構成するステップであって、前記論理ローカルストレージデバイスを構成する前記ステップは、前記ブロックデータストレージサービスの前記実行される第1のノードマネージャソフトウェアモジュールによって実行され、および前記複数のコンピューティングシステムの第2のコンピューティングシステム上に配置される前記第1のブロックデータストレージボリュームのプライマリコピーを指示する第1の情報を格納するステップを含み、および前記複数のコンピューティングシステムの第3のコンピューティングシステム上に配置される前記第1のブロックデータストレージボリュームのミラーコピーを指示する第2の情報を格納するステップをさらに含み、前記第2のコンピューティングシステムおよび前記第3のコンピューティングシステムはそれぞれコンピューティングシステムの前記第1のグループの一部である、ステップと、前記論理ローカルストレージデバイスの構成の後に、前記第1のコンピューティングシステムの前記論理ローカルストレージデバイスに対して前記第1の実行プログラムによって開始された1つまたは複数のデータアクセス要求を受け取るステップであって、前記1つまたは複数のデータアクセス要求を受け取る前記ステップは、前記ブロックデータストレージサービスの前記第1の実行ノードマネージャソフトウェアモジュールによって実行される、ステップと、前記格納されている第1の情報を取り出し前記第1の実行プログラムに代わって前記第2のコンピューティングシステム上の前記プライマリコピーと前記内部ネットワーク上でやり取りすることによって前記受け取ったデータアクセス要求に自動的に応答し、前記受け取ったデータアクセス要求を実行するステップであって、前記内部ネットワーク上でやり取りするオペレーションは前記第1の実行プログラムに対して透過的である方法により実行され、自動的に応答する前記ステップは前記第1の実行ノードマネージャソフトウェアモジュールが前記1つまたは複数のデータアクセス要求を受け取った後に前記プライマリコピーの場所の任意の指示を要求せずに前記格納されている第1の情報の使用に基づいて前記ブロックデータストレージサービスの前記第1の実行ノードマネージャソフトウェアモジュールによって実行される、ステップと、前記第1のブロックデータストレージボリューム上で前記受け取ったデータアクセス要求を実行した後に、前記第2のコンピューティングシステム上の前記第1のブロックデータストレージボリュームの前記プライマリコピーが利用不可能であると自動的に判定するステップであって、前記自動的に判定するステップは前記ブロックデータストレージサービスの前記第1の実行ノードマネージャソフトウェアモジュールによって実行される、ステップと、前記第1のコンピューティングシステムの前記論理ローカルブロックストレージデバイスに対して第1の実行プログラムによって開始される1つまたは複数の他のデータアクセス要求を受け取った後に、前記格納されている第2の情報を取り出し前記第1の実行プログラムに代わって前記第3のコンピューティングシステム上の前記ミラーコピーと前記内部ネットワーク上でやり取りすることによって前記受け取った他のデータアクセス要求に自動的に応答し、前記他のデータアクセス要求を実行するステップであって、前記受け取った他のデータアクセス要求に対して自動的に応答する前記ステップは前記第1の実行ノードマネージャソフトウェアモジュールが前記1つまたは複数の他のデータアクセス要求を受け取った後に前記ミラーコピーの場所の任意の指示を要求せずに前記格納されている第2の情報に基づいて前記ブロックデータストレージサービスの前記第1の実行ノードマネージャソフトウェアモジュールによって実行される、ステップとを含む方法。前記ブロックデータストレージサービスに対するシステムマネージャモジュールの制御の下で、前記ブロックデータストレージサービスが前記ブロックデータストレージを前記複数の実行プログラムに提供する前記ステップを管理するステップをさらに含み、前記管理するステップは、前記複数の実行プログラムのうちの1つまたは複数によってそれぞれ使用される複数のブロックデータストレージボリュームを作成するステップであって、前記ブロックデータストレージボリュームのそれぞれを作成する前記ステップは前記複数のブロックデータストレージシステムのうちの一方のブロックデータストレージシステム上に前記ブロックデータストレージボリュームのプライマリコピーを格納するステップを含み、前記複数のブロックデータストレージシステムのうちの他方のブロックデータストレージシステム上に前記ブロックデータストレージボリュームのミラーコピーを格納するステップを含み、前記複数のプログラムは複数の関連付けられているノードマネージャモジュールを有する複数のコンピューティングシステム上で実行される、ステップと、前記ブロックデータストレージボリュームの前記ミラーコピーを、前記作成されたブロックデータストレージボリュームのうちの1つのブロックデータストレージボリュームの前記プライマリコピーを格納するブロックデータストレージシステムが実行プログラムから受け取った書き込みデータアクセス要求に基づいてそのプライマリコピーに格納されているブロックデータに対する修正を実行するときに、前記1つのブロックデータストレージボリュームの前記ミラーコピーに格納されているブロックデータに対しその修正を実行することによって保持するステップと、前記ブロックデータストレージボリュームに対するアクセスを、前記作成されたブロックデータストレージボリュームのうちの1つのブロックデータストレージボリュームの前記プライマリコピーが利用不可能になったときに、前記1つのブロックデータストレージボリュームの前記ミラーコピーを前記1つのブロックデータストレージボリュームの新規プライマリコピーとなるように格上げすることによって保持するステップとを含む請求項1の方法。前記複数のプログラムが、前記複数のコンピューティングシステムのうちのいくつかのコンピューティングシステムの第2のグループ上のプログラム実行サービスによって実行され、前記第2のグループの前記コンピューティングシステムは、前記第1のグループの前記コンピューティングシステムから明確に区別され、前記第1のコンピューティングシステムは、少なくとも1つのプログラムをそれぞれ実行するように構成された複数の仮想マシンをホストし、前記第1の実行プログラムは、前記複数のプログラムのうちの1つであり、および前記第1のコンピューティングシステムによってホストされる前記複数の仮想マシンのうちの少なくとも1つによって実行される仮想マシンのイメージであり、前記第1のノードマネージャソフトウェアモジュールは、前記第1のコンピューティングシステム用の仮想マシンモニターの一部として実行される請求項2の方法。実行プログラムに対してブロックデータストレージ機能を提供するためのコンピュータによって実装される方法であって、第1のプログラムが実行される第1のコンピューティングシステムのローカルにあるブロックストレージデバイスを構成するステップであって、前記ローカルのブロックストレージデバイスは1つまたは複数のネットワーク上でブロックデータストレージサービスの明確に区別される第2のデータストレージシステムによって提供される非ローカルのブロックデータストレージボリュームを表す論理デバイスであり、前記ローカルのブロックストレージデバイスを構成する前記ステップは前記非ローカルのブロックデータストレージボリュームの場所を指示する情報を前記構成されたローカルのブロックストレージデバイスに関連付けるステップを含む、ステップと、前記ローカルのブロックストレージデバイスの構成の後に、前記第1のプログラムによって開始された1つまたは複数のデータアクセス要求の第1のグループの1つまたは複数の指示を受け取るステップと、前記第1の実行プログラムに代わって前記第2のデータストレージシステムと前記1つまたは複数のネットワーク上でやり取りすることによってデータアクセス要求の前記第1のグループの前記受け取った指示に自動的に応答し、前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームによって格納されているブロックデータ上で前記第1のグループの前記データアクセス要求を実行させるステップであって、データアクセス要求の前記第1のグループの前記受け取った指示に自動的に応答する前記ステップは、前記第1のコンピューティングシステム上で実行されるノードマネージャソフトウェアモジュールによって実行され、データアクセス要求の前記第1のグループの前記指示の受け取りの後に前記非ローカルのブロックデータストレージボリュームの前記場所の任意の指示を要求することなく、前記構成されたローカルのブロックストレージデバイスの前記関連付けられた情報を使用するステップを含む、ステップと、前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームが利用不可能になったと判定し、前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームのミラーコピーを収容する第3のデータストレージシステムを自動的に識別するステップであって、前記第3のデータストレージシステムは前記第1のコンピューティングシステムおよび前記第2のデータストレージシステムから明確に区別され前記ブロックデータストレージサービスの一部であり、自動的に識別する前記ステップは前記第1のコンピューティングシステム上で実行される前記ノードマネージャソフトウェアモジュールによって実行され、前記非ローカルのブロックデータストレージボリュームの前記ミラーコピーの場所を指示する前記構成されたローカルのブロックストレージデバイスに関連付けられたさらなる情報を使用するステップを含む、ステップと、前記第3のデータストレージシステムの自動的な識別の後に、前記第1のコンピューティングシステム上の前記ローカルのブロックストレージデバイスに対して前記第1の実行プログラムによって開始される1つまたは複数の他のデータアクセス要求の第2のグループの1つまたは複数の指示を受け取るステップと、前記第1の実行プログラムに代わって前記第3のデータストレージシステムと前記1つまたは複数のネットワーク上でやり取りすることによってデータアクセス要求の前記第2のグループの前記受け取った指示に自動的に応答し、前記識別された第3のデータストレージシステム上の前記非ローカルのブロックデータストレージボリュームのミラーコピー上で前記第2のグループの前記データアクセス要求を実行させるステップであって、データアクセス要求の前記第2のグループの前記受け取った指示に自動的に応答する前記ステップは、前記第1のコンピューティングシステム上で実行される前記ノードマネージャソフトウェアモジュールによって実行され、データアクセス要求の前記第2のグループの前記指示の受け取りの後に前記ミラーコピーの前記場所の任意の指示を要求することなく、前記構成されたローカルのブロックストレージデバイスの前記関連付けられたさらなる情報を使用するステップを含む、ステップと、を含むことを特徴とするコンピュータによって実装される方法。前記第1のコンピューティングシステムのローカルにある前記ブロックストレージデバイスを構成する前記ステップは前記第1の実行プログラムで使用できるように前記非ローカルのブロックデータストレージボリュームを前記第1のコンピューティングシステムにアタッチするステップをさらに含み、前記第1のコンピューティングシステムに前記非ローカルのブロックデータストレージボリュームをアタッチする前記ステップは前記第1のコンピューティングシステムに対する前記論理ローカルブロックストレージデバイスを前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームに関連付けるステップを含む請求項4に記載の方法。前記第1のコンピューティングシステムに前記非ローカルのブロックデータストレージボリュームをアタッチする前に、前記第2のデータストレージシステム上に前記作成されたブロックデータストレージボリュームのプライマリコピーを格納し、前記第3のデータストレージシステム上に前記作成されたブロックデータストレージボリュームの前記ミラーコピーを格納して、前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリューム上の前記第1のグループの前記データアクセス要求の前記実行が、前記非ローカルのブロックデータストレージボリュームの前記格納されているプライマリコピー上で行われるようにすることによって、前記非ローカルのブロックデータストレージボリュームを作成するステップをさらに含む請求項5に記載の方法。前記非ローカルのブロックデータストレージボリュームは、前記ブロックデータストレージサービスによって提供され、前記非ローカルのブロックデータストレージボリュームの前記作成は、前記第1の実行プログラムに関連付けられているユーザからの要求に応答して前記ブロックデータストレージサービスのシステムマネージャモジュールによって実行され、前記ローカルのブロックストレージデバイスを構成する前記ステップは、前記非ローカルのブロックデータストレージボリュームの前記ミラーコピーの前記場所を指示する前記構成されたローカルのブロックストレージデバイスに情報を関連付けるステップをさらに含み、前記ノードマネージャソフトウェアモジュールは前記ブロックデータストレージサービスによって提供され、前記非ローカルのブロックデータストレージボリュームを前記第1のコンピューティングシステムにアタッチする前記ステップは、前記実行ノードマネージャソフトウェアモジュールによって実行される請求項6に記載の方法。前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームが利用不可能になったと判定した後、前記第1のコンピューティングシステム、前記第2のデータストレージシステムおよび前記第3のデータストレージシステムから明確に区別される第4のデータストレージシステム上への前記非ローカルのブロックデータストレージボリュームの他のコピーの作成を自動的に開始するステップをさらに含む請求項4に記載の方法。前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームが、前記第2のデータストレージシステムの障害、前記第2のデータストレージシステムの接続性の障害、および前記第2のデータストレージシステムが前記格納されている非ローカルのブロックデータストレージボリュームに確実にアクセスできない状況のうちの少なくとも1つの状況に基づいて利用不可能になっている請求項8に記載の方法。前記第1のグループの前記データアクセス要求のうちの少なくとも1つのデータアクセス要求の前記実行は、前記第2のデータストレージシステム上の前記非ローカルのブロックデータストレージボリュームに格納されている前記ブロックデータを修正するステップを含み、前記第3のデータストレージシステム上の前記非ローカルのブロックデータストレージボリュームの前記ミラーコピーに格納されているブロックデータを修正することによって前記第3のデータストレージシステム上の前記非ローカルのブロックデータストレージボリュームの前記ミラーコピーを保持するステップをさらに含む請求項4に記載の方法。前記第1のコンピューティングシステムおよび前記第2のデータストレージシステムは、単一の地理的位置の同じ場所に配置されている複数のコンピューティングシステムの部分集合であり、前記複数のコンピューティングシステムは、前記ブロックデータストレージサービスによって提供される複数のブロックデータストレージシステムを含み、前記第2のデータストレージシステムおよび前記第3のデータストレージシステムは、それぞれ、前記複数のブロックデータストレージシステムのうちの明確に区別される1つのブロックデータストレージシステムである請求項4に記載の方法。前記複数のコンピューティングシステムが一緒に配置される前記単一の地理的位置の同じ場所は、データセンターであり、前記方法は、前記データセンターの外部に配置されているリモートのストレージサービスの1つまたは複数アーカイブデータストレージシステム上の前記非ローカルのブロックデータストレージボリュームの少なくとも1つのコピーを作成するステップをさらに含む請求項11に記載の方法。前記第1のプログラムが、前記複数のコンピューティングシステムのうちのいくつかのコンピューティングシステム上の複数のユーザに対し複数のプログラムを実行するプログラム実行サービスによって実行され、前記第1のコンピューティングシステムは、少なくとも1つのプログラムをそれぞれ実行するように構成された複数の仮想マシンをホストし、前記第1の実行プログラムは、前記複数のプログラムのうちの1つであり、および前記第1のコンピューティングシステムによってホストされる前記複数の仮想マシンのうちの少なくとも1つによって実行される仮想マシンのイメージであり、前記データアクセス要求の前記第1のグループの前記指示を受け取る前記ステップと前記他のデータアクセス要求の前記第2のグループの前記指示を受け取る前記ステップとデータアクセス要求の前記第1のグループおよび前記第2のグループの前記受け取った指示に対して自動的に応答する前記ステップは、前記第1のコンピューティングシステム用の仮想マシンモニターの実行の一部として実行され、前記第1のコンピューティングシステムは、前記第1の実行プログラムによる使用のために利用可能である1つまたは複数の他の実際のローカルのストレージデバイスを備える請求項11に記載の方法。コンピュータ可読媒体であって、このコンピュータ可読媒体の内容により1つまたは複数のコンピューティングシステムはブロックデータストレージ機能を実行プログラムに提供することができ、構成された1つまたは複数のコンピューティングシステムのうちの1つである第1のコンピューティングシステム上で実行する第1のプログラムによる使用のためのブロックデータストレージボリュームを構成するステップであって、前記ブロックデータストレージボリュームは1つまたは複数のネットワークによって前記第1のコンピューティングシステムから隔てられている第2のブロックデータストレージシステムによって提供され、ローカル論理ブロックデータストレージデバイスによって前記第1のコンピューティングシステム上で表されて、前記第1のプログラムが前記ローカル論理ブロックデータストレージデバイスとやり取りすることによって前記ブロックデータストレージボリュームに対してデータアクセス要求を開始できるようにし、前記構成は前記構成された1つまたは複数のコンピューティングシステムのうちの少なくとも第1のコンピューティングシステム上で実行しているブロックデータストレージサービスのノードマネージャソフトウェアモジュールによって実行され、前記第2のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの場所に関して前記ローカル論理ブロックデータストレージデバイスに関連付けられた前記第1のコンピューティングシステム上の情報を格納するステップを含む、ステップと、前記構成されたブロックデータストレージボリュームに対する前記第1のプログラムによって開始される1つまたは複数のデータアクセス要求の1つまたは複数の指示を受け取るステップであって、前記受け取りは前記構成された1つまたは複数のコンピューティングシステム上で前記実行ノードマネージャソフトウェアモジュールによって実行される、ステップと、前記ブロックデータストレージボリュームの前記場所に関して前記格納された情報を取り出すことによって、および前記第2のブロックデータストレージシステム上の前記ブロックデータストレージボリューム上の前記データアクセス要求の実行を開始することによって、前記データアクセス要求の前記受け取った指示に自動的に応答するステップであって、前記データアクセス要求の前記受け取った指示に自動的に応答する前記ステップは前記構成された1つまたは複数のコンピューティングシステム上の前記実行ノードマネージャソフトウェアモジュールによって実行され、前記1つまたは複数のネットワーク上で前記データアクセス要求の送信を開始するステップを含む、ステップと、前記第1のコンピューティングシステムおよび前記第2のブロックデータストレージシステムから明確に区別される1つまたは複数の第3のブロックデータストレージシステムのうちの各ブロックデータストレージシステム上に前記ブロックデータストレージボリュームのミラーコピーを自動的に作成し、前記1つまたは複数の第3のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの前記ミラーコピーの場所に関して前記構成されたブロックデータストレージボリュームのさらなる情報を自動的に格納するステップであって、自動的に作成する前記ステップと自動的に格納する前記ステップは前記格納された1つまたは複数のコンピューティングシステムによって実行される、ステップと、前記第2のデータストレージシステムによって提供される前記ブロックデータストレージボリュームが利用不可能になった後に、前記ブロックデータストレージボリュームの前記ミラーコピーの前記場所に関して前記格納されたさらなる情報を取り出すことによって、および前記第3のブロックデータストレージシステムのうちの少なくとも1つの第3のブロックデータストレージシステム上に作成された前記ブロックデータストレージボリュームのミラーコピー上で前記他のデータアクセス要求を実行することによって前記ブロックデータストレージボリュームに対し前記第1のプログラムによって開始される1つまたは複数の他のデータアクセス要求の1つまたは複数の受け取った指示に自動的に応答するステップであって、前記1つまたは複数の他のデータアクセス要求の前記1つまたは複数の受け取った指示に自動的に応答する前記ステップは前記構成された1つまたは複数のコンピューティングシステム上の前記実行ノードマネージャソフトウェアモジュールによって実行される、ステップとを含む方法によって行われるコンピュータ可読媒体。前記第1のグループの前記データアクセス要求の前記実行と前記ブロックデータストレージボリュームの前記ミラーコピーの前記自動作成と前記第2のグループの前記他のデータアクセス要求の前記実行は、前記ブロックデータストレージサービスのシステムマネージャモジュールによって自動的に実行される請求項14に記載のコンピュータ可読媒体。前記第2のブロックデータストレージシステムは、前記データアクセス要求の前記受け取った指示に自動的に応答したときに前記ブロックデータストレージボリュームのプライマリコピーを格納し、前記方法は、前記他のデータアクセス要求の前記受け取った指示に自動的に応答する前に、前記ブロックデータストレージボリュームの前記プライマリコピーが利用不可能になったことを自動的に判定するステップと、前記第3のブロックデータストレージシステムのうちの1つの第3のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの前記ミラーコピーを選択するステップと、前記第3のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの前記選択されたミラーコピーを前記ブロックデータストレージボリュームの現在のプライマリコピーになるよう格上げするステップとをさらに含む請求項14に記載のコンピュータ可読媒体。前記1つまたは複数の第3のブロックデータストレージシステムのうちの各第3のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの前記ミラーコピーを自動作成する前記ステップは、前記データアクセス要求の前記受け取った指示に自動的に応答する前に前記第3のブロックデータストレージシステムのうちの1つの第3のブロックデータストレージシステム上に前記ブロックデータストレージボリュームの第1のミラーコピーを作成するステップを含み、前記データアクセス要求の前記受け取った指示に自動的に応答する前記ステップは、前記ブロックデータストレージボリュームの前記第1のミラーコピー上で前記データアクセス要求を実行するステップをさらに含み、前記ブロックデータストレージボリュームの前記第1のミラーコピーは、前記選択されたミラーコピーであり、前記1つまたは複数の第3のブロックデータストレージシステムのうちの各第3のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの前記ミラーコピーを自動作成する前記ステップは、前記ブロックデータストレージボリュームの前記プライマリコピーが利用不可能になったと判定した後に、前記第3のブロックデータストレージシステムのうちの他方の第3のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの第2のミラーコピーを作成するステップをさらに含む請求項16に記載のコンピュータ可読媒体。前記第2のブロックデータストレージシステムは、前記データアクセス要求の前記受け取った指示に自動的に応答したときに前記ブロックデータストレージボリュームのプライマリコピーを格納し、前記第1のプログラムによって開始された前記指示されている1つまたは複数のデータアクセス要求は、前記第1のプログラムによって開始されたデータアクセス要求の第2のグループであり、前記方法は、前記第2のグループの前記データアクセス要求の前記指示を受け取る前に、前記第1のコンピューティングシステムおよび前記第2のブロックデータストレージシステムおよび前記1つまたは複数の第3のブロックデータストレージシステムから明確に区別される第4のブロックデータストレージシステム上に前記ブロックデータストレージボリュームの初期プライマリコピーを作成するステップと、前記第4のブロックデータストレージシステム上に作成された前記プライマリコピー上で前記第1のグループの前記データアクセス要求を実行することによって前記ブロックデータストレージボリュームに対して前記第1のプログラムによって開始される1つまたは複数のデータアクセス要求の第1のグループの1つまたは複数の受け取った指示に自動的に応答するステップであって、データアクセス要求の前記第1のグループはデータアクセス要求の前記第2のグループの前に前記第1のプログラムによって開始される、ステップと、データアクセス要求の前記第1のグループの前記指示に応答した後に、前記ブロックデータストレージボリュームの前記プライマリコピーを前記第4のブロックデータストレージシステムから前記第2のブロックデータストレージシステムに移動することを決定し、前記ブロックデータストレージボリュームの前記プライマリコピーを前記第2のブロックデータストレージシステムに移動した後に前記ブロックデータストレージボリュームに対し前記第1のプログラムによって開始されるデータアクセス要求が前記第2のブロックデータストレージシステム上の前記ブロックデータストレージボリュームの前記移動されたプライマリコピー上で実行されるようにするステップとをさらに含む請求項14に記載のコンピュータ可読媒体。前記ブロックデータストレージボリュームの前記プライマリコピーを前記第4のブロックデータストレージシステムから前記第2のブロックデータストレージシステムに移動することを決定する前記ステップは、前記第2のブロックデータストレージシステムが、前記ブロックデータストレージボリュームの前記プライマリコピーを提供する能力に関して前記第4のブロックデータストレージシステムに比べて高いとする自動判定と前記ブロックデータストレージボリュームに関連付けられている前記ブロックデータストレージサービスのユーザから受け取った要求のうちの少なくとも1つに基づいて実行される請求項18に記載のコンピュータ可読媒体。前記第1のプログラムは、前記ユーザによって支払われる料金と引き換えに前記プログラム実行サービスの複数のユーザに代わって複数のホストコンピューティングシステム上のプログラム実行サービスによって実行される複数のプログラムのうちの1つであり、前記第1のコンピューティングシステムは、前記複数のホストコンピューティングシステムおよび前記複数のユーザのうちの第1のユーザに代わって実行される前記第1のプログラムのうちの1つであり、前記第1のプログラムによる前記ブロックデータストレージボリュームの使用は、前記第1のプログラムが代わって実行される前記プログラム実行サービスの前記第1のユーザが払う料金と引き換えに実行される請求項14に記載のコンピュータ可読媒体。前記コンピュータ可読媒体は、前記内容を格納する前記構成された1つまたは複数のコンピューティングシステムのうちの1つであるメモリである請求項14に記載のコンピュータ可読媒体。前記内容は、実行されると前記構成された1つまたは複数のコンピューティングシステムに前記方法を実行させる命令である請求項14に記載のコンピュータ可読媒体。ブロックデータストレージ機能を提供するように構成されたコンピューティングシステムであって、第1のプログラムを実行するように構成された1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサのうちの少なくとも1つによって実行されるときに、1つまたは複数のネットワーク上でブロックデータストレージサービスの明確に区別される第2のデータストレージシステムによって提供される非ローカルのブロックデータストレージボリュームを表す論理デバイスである前記コンピューティングシステム上のローカルのブロックストレージデバイスを構成するステップであって、前記ローカルのブロックストレージデバイスを構成する前記ステップは前記非ローカルのブロックデータストレージボリュームの場所を指示する情報を前記構成されたローカルのブロックストレージデバイスに関連付けるステップを含む、ステップと、前記ローカルのブロックストレージデバイスの構成の後に、前記第1の実行プログラムによって開始された1つまたは複数のデータアクセス要求の第1のグループの1つまたは複数の指示を受け取るステップと、前記第1の実行プログラムに代わって前記第2のデータストレージシステムと前記1つまたは複数のネットワーク上でやり取りすることによってデータアクセス要求の前記第1のグループの前記受け取った指示に自動的に応答し、前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームによって格納されているブロックデータ上で前記第1のグループの前記データアクセス要求を実行させるステップであって、データアクセス要求の前記第1のグループの前記受け取った指示に自動的に応答する前記ステップは、ノードマネージャソフトウェアモジュールによって実行され、データアクセス要求の前記第1のグループの前記指示の受け取りの後に前記非ローカルのブロックデータストレージボリュームの前記場所の任意の指示を要求することなく、前記構成されたローカルのブロックストレージデバイスの前記関連付けられた情報を使用するステップを含む、ステップと、前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームが利用不可能になったと判定し、前記第2のデータストレージシステムによって提供される前記非ローカルのブロックデータストレージボリュームのミラーコピーを収容する第3のデータストレージシステムを自動的に識別するステップであって、前記第3のデータストレージシステムは前記コンピューティングシステムおよび前記第2のデータストレージシステムから明確に区別され前記ブロックデータストレージサービスの一部であり、自動的に識別する前記ステップは前記ノードマネージャソフトウェアモジュールによって実行され、前記非ローカルのブロックデータストレージボリュームの前記ミラーコピーの場所を指示する前記構成されたローカルのブロックストレージデバイスに関連付けられたさらなる情報を使用するステップを含む、ステップと、前記第3のデータストレージシステムの自動的な識別の後に、前記コンピューティングシステム上の前記ローカルのブロックストレージデバイスに対して前記第1の実行プログラムによって開始される1つまたは複数の他のデータアクセス要求の第2のグループの1つまたは複数の指示を受け取るステップと、前記第1の実行プログラムに代わって前記第3のデータストレージシステムと前記1つまたは複数のネットワーク上でやり取りすることによってデータアクセス要求の前記第2のグループの前記受け取った指示に自動的に応答し、前記識別された第3のデータストレージシステム上の前記非ローカルのブロックデータストレージボリュームのミラーコピー上で前記第2のグループの前記データアクセス要求を実行させるステップであって、データアクセス要求の前記第2のグループの前記受け取った指示に自動的に応答する前記ステップは、前記ノードマネ図1は、ブロックデータストレージサービスおよび/またはプログラム実行サービスの制御下などにおいて、複数のコンピューティングシステムがプログラムを実行し、信頼できる非ローカルブロックデータストレージにアクセスする例示的な一実施形態を示すネットワーク図である。特に、この例では、プログラム実行サービスが、データセンター100内に配置されているさまざまなホストコンピューティングシステム上のプログラムの実行を管理し、ブロックデータストレージサービスが、データセンターの複数の他のサービスブロックデータストレージシステムを使用して、それらの実行プログラムに信頼できる非ローカルブロックデータストレージを提供する。データセンターの外部にある複数のリモートのアーカイブストレージシステムは、少なくともいくつかのブロックデータストレージボリュームの少なくともいくつかの部分の追加のコピーを格納するために使用することもできる。この例では、データセンター100は、多数のラック105を備え、各ラックは、多数のホストコンピューティングシステム、さらにはこの例示的な実施形態におけるオプションのラックサポートコンピューティングシステム122を備える。例示されているラック105上のホストコンピューティングシステム110a~cは、この例では1つまたは複数の仮想マシン120をそれぞれホストし、さらには、そのホストコンピューティングシステム上の仮想マシンに関連付けられている明確に区別されるノードマネージャモジュール115をホストし、それらの仮想マシンを管理する。1つまたは複数の他のホストコンピューティングシステム135は、この例では1つまたは複数の仮想マシン120をそれぞれホストする。各仮想マシン120は、プログラム実行サービスの顧客などの、ユーザ図示せずのために1つまたは複数のプログラムコピー図示せずを実行する独立したコンピューティングノードとして動作することができる。それに加えて、この例示的なデータセンター100は、明確に区別される仮想マシンを備えていない追加のホストコンピューティングシステム130a~bをさらに備えるが、それでもなお、ユーザのために実行されている1つまたは複数のプログラム図示せずに対してコンピューティングノードとしてそれぞれ動作しうる。この例では、ホストコンピューティングシステム130a~bおよび135から明確に区別されるコンピューティングシステム図示せず上で実行するノードマネージャモジュール125は、それらのホストコンピューティングシステムに関連付けられ、これにより、ホストコンピューティングシステム110のノードマネージャモジュール115と似た方法などで、それらのホストコンピューティングシステムが備えるコンピューティングノードを管理する。ラックサポートコンピューティングシステム122は、さまざまなユーティリティーサービス例えば、プログラムの長期的な格納、計測、およびプログラム実行および/またはラックのローカルにある他のコンピューティングシステムによって実行される非ローカルブロックデータストレージアクセスの他の監視などをそのラック105のローカルにある他のコンピューティングシステムに、さらに場合によっては、データセンター内に配置されている他のコンピューティングシステムに提供することができる。各コンピューティングシステム110、130、および135も、実行プログラムによって作成されるか、または他の何らかの形で使用されるプログラムおよび/またはデータのローカルコピー、さらにはさまざまな他のコンポーネントを格納するなどのために、1つまたは複数のローカルのアタッチされたストレージデバイス図示せずを有することができる。この例では、データセンター内に配置されているホストコンピューティングシステムが備えるコンピューティングノード上のまたは適宜、1つまたは複数の他のデータセンター160内に配置されているコンピューティングシステム、またはデータセンターの外部にある他のリモートのコンピューティングシステム180上のプログラムの実行を管理するのを支援するプログラム実行サービスのために、PESシステムマネージャモジュールを実行するオプションのコンピューティングシステム140も例示されている。別のところでさらに詳しく説明されているように、PESシステムマネージャモジュールは、プログラムの実行を管理することに加えてさまざまなサービスを提供することができ、例えば、ユーザアカウントの管理例えば、作成、削除、課金など、実行すべきプログラムの登録、格納、および配布、プログラムの実行に関係する性能および監査データの収集ならびに処理、プログラムの実行に関する顧客または他のユーザからの対価の徴収などが挙げられる。いくつかの実施形態では、PESシステムマネージャモジュールは、ノードマネージャモジュール115および125との間で、ノードマネージャモジュールに関連付けられているコンピューティングノード上のプログラム実行を管理するための調整を行うことができるが、他の実施形態では、ノードマネージャモジュール115および125は、プログラムのそのような実行の管理を支援できない。この例示的なデータセンター100は、データセンター内に配置されているホストコンピューティングシステムが備えるコンピューティングノード上でまたは適宜、1つまたは複数の他のデータセンター160内に配置されているコンピューティングシステムまたはデータセンターの外部にある他のリモートのコンピューティングシステム180上で実行するプログラムに対する非ローカルブロックデータストレージの可用性を管理するのを支援するブロックデータストレージサービスのために、ブロックデータストレージBDSシステムマネージャモジュールを実行するコンピューティングシステム175も備える。特に、この例では、データセンター100は、複数のサーバブロックデータストレージシステム165のプールを備え、それぞれが、1つまたは複数のボリュームのコピー155を格納する際に使用するためのローカルブロックストレージを有する。コンピューティングノード120および130上で実行されるプログラムからのボリュームのコピー155へのアクセスは、内部ネットワーク複数可185を介して行われる。別のところでさらに詳しく説明されているように、BDSシステムマネージャモジュールは、非ローカルブロックデータストレージ機能を提供することに関係するさまざまなサービスを提供することができ、例えば、ユーザアカウントの管理例えば、作成、削除、課金など、ブロックデータストレージボリュームおよびそれらのボリュームのスナップショットコピーの作成、使用、および削除、ブロックデータストレージボリュームおよびそれらのボリュームのスナップショットコピーの使用に関係する性能および監査データの収集および処理、ブロックデータストレージボリュームおよびそれらのボリュームのスナップショットコピーの使用に関する顧客または他のユーザからの対価の徴収などが挙げられる。いくつかの実施形態では、BDSシステムマネージャモジュールは、ノードマネージャモジュール115および125との間で、関連付けられているコンピューティングノード上で実行されているプログラムによるボリュームの使用を管理するための調整を行うことができるが、他の実施形態では、ノードマネージャモジュール115および125は、そのようなボリューム使用を管理するために使用できない。それに加えて、他の実施形態では、1つまたは複数のBDSシステムマネージャモジュールは、例えば、データセンター内に配置されているホストコンピューティングシステムが備えるコンピューティングノード上で実行するプログラムによる非ローカルブロックデータストレージの管理を共有するために単一のデータセンター内で実行するBDSシステムマネージャの複数のインスタンスを有するなど、および/または例えば、コンピューティングシステム175上に別の集中型BDSシステムマネージャモジュールを備えずに、ピアツーピア方式により複数のサーバブロックデータストレージシステム165のうちの一部、またはすべてにおいて実行するソフトウェアによって分散方式で実現されている、BDSシステムマネージャモジュールの機能のうちの少なくとも一部を有するなど、他の方法で構造化されうる。この例では、さまざまなホストコンピューティングシステム110、130、および135、サーバブロックデータストレージシステム165、ならびにコンピューティングシステム125、140、および175は、図示されていないさまざまなネットワーキングデバイス例えば、ルーター、スイッチ、ゲートウェイなどを備えることができる、データセンターの1つまたは複数の内部ネットワーク185を介して相互接続される。それに加えて、内部ネットワーク185は、この例では外部ネットワーク170例えば、インターネットもしくは他の公衆回線ネットワークに接続され、データセンター100は、データセンター100と外部ネットワーク170との間の相互接続部のところに1つまたは複数のオプションデバイス図示せず例えば、ネットワークプロキシ、ロードバランサー、ネットワークアドレス変換デバイスなどをさらに備えることができる。この例では、データセンター100は、外部ネットワーク170を介して、データセンター100に関して例示されている複数のコンピューティングシステムおよびストレージシステムのうちのいくつか、またはすべて、さらにはデータセンターの外部にある他のリモートのコンピューティングシステム180をそれぞれが備えることができる1つまたは複数の他のデータセンター160に接続される。他のコンピューティングシステム180は、さまざまな目的を持つさまざまな関係者、例えばデータセンター100のオペレータまたは第三者例えば、プログラム実行サービスおよび/またはブロックデータストレージサービスの顧客などによって運用されうる。それに加えて、他のコンピューティングシステム180の1つまたは複数は、別のところでさらに詳しく説明されているように、1つまたは複数の他のコンピューティングシステム180上で、または代わりに、データセンター100の1つまたは複数のコンピューティングシステム上で実行する1つまたは複数のアーカイブマネージャモジュール図示せずの制御下などにおいて、ブロックデータストレージサービスがやり取りすることができるアーカイブストレージシステム例えば、リモートのネットワーク経由でアクセス可能なストレージデバイスの一部としてのとすることができる。さらに、本明細書には例示されていないが、少なくともいくつかの実施形態において、複数のサーバブロックデータストレージシステム165のうちの少なくともいくつかのサーバブロックデータストレージシステムは、サーバストレージシステム165がボリュームデータを例えば、ボリュームのコピーのレプリケーションを行い、および/またはボリュームのプライマリコピーとミラーコピーとの間の整合性を維持することを目的として共有できる高帯域幅接続などにより、1つまたは複数の他のネットワークもしくは他の接続媒体とさらに相互接続することができるが、そのような高帯域幅接続は少なくともいくつかの実施形態におけるさまざまなホストコンピューティングシステム110、130、および135には利用可能でない。図1の例が説明のために簡略化されていること、およびホストコンピューティングシステム、サーバブロックデータストレージシステム、および他のデバイスの数および編成が図1に示されているものと比べてかなり大きなものとなる可能性のあることは理解されるであろう。例えば、例示されている一実施形態において、データセンター毎に約4000台のコンピューティングシステムがあるものとしてよく、これらのコンピューティングシステムのうちの少なくともいくつかは15台の仮想マシンをそれぞれホストすることができるホストコンピューティングシステムであり、および/またはこれらのコンピューティングシステムのうちのいくつかは複数のボリュームのコピーをそれぞれ格納することができるサーバブロックデータストレージシステムである。各ホストされている仮想マシンが1つのプログラムの実行する場合、そのようなデータセンターは、一度に60000個ほどのプログラムコピーを実行することができる。さらに、サーバストレージシステムの数、ボリュームのサイズ、およびボリューム毎のミラーコピーの数に応じて、数百または数千個のまたはそれ以上のボリュームをサーバブロックデータストレージシステム上に格納することができる。他の実施形態では、他の数のコンピューティングシステム、プログラム、およびボリュームが使用されうることは理解されるであろう。図2A~2Fは、信頼できる非ローカルブロックデータストレージ機能をクライアントに提供する例を示している。特に、図2Aおよび2Bは、ブロックデータストレージサービスなどに代わって信頼できる非ローカルブロックデータストレージ機能をクライアント例えば、実行プログラムに提供するために使用されうるサーバブロックデータストレージコンピューティングシステムの例を示しており、図2C~2Fは、いくつかのブロックデータストレージボリュームの少なくともいくつかの部分を格納するためにアーカイブストレージシステムを使用する例を示している。この例では、図2Aは、各ボリュームが1つのプライマリコピーおよび少なくとも1つのミラーコピーを有するような、1つまたは複数のボリュームのコピー155をそれぞれ格納する複数のサーバブロックデータストレージシステム165を示している。他の実施形態では、別のところでさらに詳しく説明されているように、複数のプライマリボリュームのコピーを有すること例えば、プライマリボリュームのコピーのすべてが1つまたは複数のプログラムによる同時読み取りアクセスに利用可能である場合、および/または複数のミラーボリュームのコピーを有することなどによって、他の配置構成も使用することができる。例示的なサーバブロックデータストレージシステム165およびボリュームのコピー155は、例えば、図1のサーバブロックデータストレージシステム165およびボリュームのコピー155の部分集合に対応するものとすることができる。この例では、サーバストレージシステム165aは、ボリュームAに対するプライマリコピー155A-a、ボリュームBに対するミラーコピー155B-a、およびボリュームCに対するミラーコピー155C-aを含む、少なくとも3つのボリュームのコピーを格納する。この例に示されていない1つまたは複数の他のボリュームのコピーは、サーバストレージシステム165aだけでなく、他のサーバストレージシステム165にもさらに格納されうる。他の例示的なサーバブロックデータストレージシステム165bは、この例のボリュームBに対するプライマリコピー155E-bだけでなくボリュームDに対するミラーコピー155D-bをも格納する。それに加えて、例示的なサーバブロックデータストレージシステム165nは、ボリュームAのミラーコピー155A-nおよびボリュームDのプライマリコピー155D-nを含む。したがって、実行プログラム図示せずがボリュームAにアタッチされ、ボリュームAを使用している場合、その実行プログラムに対するノードマネージャは、ボリュームAに対するプライマリコピー155A-aにアクセスするために、サーバブロックデータストレージシステム165a上で実行されるサーバストレージシステムソフトウェア図示せずを介するなどして、サーバブロックデータストレージシステム165aとやり取りすることになる。同様に、ボリュームBおよびDにアタッチされ、ボリュームBおよびDを使用している1つまたは複数の実行プログラム図示せずについて、実行プログラム複数可に対するノードマネージャ複数可は、それぞれボリュームBについてはプライマリコピー155B-bにアクセスし、ボリュームDについては155D-nにアクセスするために、サーバブロックデータストレージシステム165bおよび165nとやり取りする。それに加えて、他のサーバブロックデータストレージシステムがさらに存在する場合もあり例えば、サーバブロックデータストレージシステム165c~165mおよび/または165oとそれ以降、ボリュームCに対するプライマリボリュームのコピー、および/または他のプライマリボリュームのコピーとミラーボリュームのコピーを格納することができるが、この例には示されていない。したがって、この例では、各サーバブロックデータストレージシステムは、複数のボリュームのコピーを格納することができ、またプライマリボリュームのコピーとミラーボリュームのコピーとの組み合わせを格納することができるが、ただし、他の実施形態では他の方法でボリュームを格納することができる。図2Bは、図2Aのものに似ているが、図2Aのサーバストレージシステム165bが故障するか、または他の何らかの形で利用不可能になった後のより最近の時点の、サーバブロックデータストレージシステム165を例示している。サーバストレージシステム165b、およびそれに格納されているボリュームBのプライマリコピーとボリュームDのミラーコピーが利用不可能になった場合の応答として、図2Bのサーバストレージシステム165の格納されているボリュームのコピーが、ボリュームBおよびDが利用可能である状態を維持するように修正されている。特に、ボリュームBのプライマリコピー155B-bが利用不可能になったため、サーバストレージシステム165a上のボリュームBの前のミラーコピー155B-aは、ボリュームBに対する新規プライマリコピーに格上げされた。したがって、1つまたは複数のプログラムがボリュームBの前のプライマリコピー155B-bにすでにアタッチされているか、または他の何らかの方法でやり取りしていたときにそのプライマリコピーが利用不可能になった場合、それらのプログラムは例えば、それらのプログラムに関連付けられているノードマネージャによって自動的に遷移され、サーバブロックデータストレージシステム165aとの進行中のやり取りを続行し、ボリュームBに対する新規プライマリコピー155B-aにアクセスしている可能性がある。それに加えて、ボリュームBに対する新規ミラーコピー155B-cが、サーバストレージシステム165c上に作成されている。図2Aのサーバストレージシステム165nのボリュームAのミラーコピー155A-nは、わかりやすくするために、図2Bに示されていないが、これは引き続きボリュームDのプライマリコピー155D-nとともにサーバストレージシステム165n上で利用可能である。したがって、サーバストレージシステム165bが利用不可能になったときにボリュームDのプライマリコピー155D-nにすでにアタッチされていたか、または他の何らかの方法でやり取りしていたプログラムは、修正することなくサーバストレージシステム165n上のサーバストレージシステム上のその同じプライマリボリュームDのコピー155D-nとやり取りし続ける。しかし、利用不可能なサーバストレージシステム165b上のボリュームDのミラーコピー155D-bが利用不可能になったため、サーバストレージシステム165oのボリュームDのミラーコピー155D-oなどの、ボリュームDの少なくとも1つの追加のミラーコピーが、図2Bにおいて作成されている。それに加えて、図2Bは、サーバストレージシステム165c上の以前から存在していたが図2Aには示されていないボリュームDのミラーコピー155D-cも含むボリュームDなどの、少なくともいくつかのボリュームが複数のミラーコピーを持つことができることを例示している。図2C~2Fは、アーカイブストレージシステムを使用していくつかのブロックデータストレージボリュームの少なくともいくつかの部分を格納する例を示している。この例では、図2Cは、例えばサーバブロックデータストレージシステム165bが利用不可能になる前のある時点において図2Aに示されている例示的なサーバブロックデータストレージシステム165に対応するように、1つまたは複数のボリュームのコピー155をそれぞれ格納する複数のサーバブロックデータストレージシステム165を例示している。図2Cは、例えば図1のコンピューティングシステム180の部分集合に対応しうる、複数のアーカイブストレージシステム180をさらに示している。特に、この例では、図2Cは、図2Aのサーバブロックデータストレージシステム165aおよび165bを示しているが、この例では、ボリュームBのプライマリコピーおよびミラーコピーのみが、これらのサーバブロックデータストレージシステムに関して示されている。図2Aに関して説明されているように、サーバストレージシステム165bは、ボリュームBのプライマリコピー155B-bを格納し、サーバストレージシステム165aは、ボリュームBのミラーコピー155B-aを格納する。図2Cの例では、ボリュームBに関連付けられているユーザが、ボリュームBの新規初期スナップショットコピーを、長期的なバックアップなどのために、リモートのアーカイブストレージシステム上に格納するように要求した。したがって、ボリュームBは、例えばアーカイブストレージシステムの典型的な、もしくは最大のストレージサイズに対応するように、またはブロックデータストレージサービスによって決定されるような別の方法で、アーカイブストレージシステムによってそれぞれ別々に格納される複数のチャンク部分に分けられている。この例では、ボリュームBのプライマリコピー155B-bは、チャンク155B-b1から155B-bNまでのN個のチャンクに分けられており、ボリュームBのミラーコピー155B-aは、同様に、チャンク155B-a1から155B-aNまでN個のチャンクを使用して同じデータを格納する。ボリュームBのN個のチャンクのそれぞれは、2つの例示的なアーカイブストレージシステム180aおよび180bのうちの一方に別のデータオブジェクトとして格納される。したがって、これらの複数の対応する格納されている集合状態のデータオブジェクトは、ボリュームBに対する初期スナップショットボリュームのコピーを形成する。特に、プライマリボリュームBのコピーのチャンク1155B-b1は、アーカイブストレージシステム180a上にデータオブジェクト180B1として格納され、チャンク2155B-b2は、アーカイブストレージシステム180b上にデータオブジェクト180B2として格納され、チャンク3155B-b3は、アーカイブストレージシステム180a上にデータオブジェクト180B3として格納され、チャンクN155B-bNは、アーカイブストレージシステム180a上にデータオブジェクト180BNとして格納される。この例では、複数のチャンクへのボリュームBの分割は、ブロックデータストレージサービスによって実行され、ボリュームBの個別のチャンクは、アーカイブストレージシステムに個別転送されうるが、他の実施形態では、ボリュームB全体が、アーカイブストレージシステムに送られ、そこで、そのボリュームが複数のチャンクに分けられるか、または必要ならば他の何らかの方法でボリュームデータが処理されうる。それに加えて、この例では、アーカイブストレージシステム180bは、アーカイブストレージシステムのオペレーションを管理するために、例えばデータオブジェクトの格納および取り出しを管理する、格納されているどのデータオブジェクトがどのボリュームに対応しているかを追跡する、転送されたボリュームデータを複数のデータオブジェクトに分ける、アーカイブストレージシステムの使用を計測し、他の何らかの方法で追跡するなどの作業を行うために、アーカイブマネージャモジュール190を実行するアーカイブストレージコンピューティングシステムである。アーカイブマネージャモジュール190は、例えば、図2Fに関してさらに詳しく説明されているように、例えばボリュームのスナップショットコピー毎に、特定のボリュームに対応するさまざまなデータオブジェクトに関するさまざまな情報を保持することができるが、他の実施形態では、代わりに、そのようなスナップショットボリュームのコピーの情報は、他の方法で例えば、サーバブロックデータストレージシステムまたはブロックデータストレージサービスの他のモジュールによって保持されうる。他の実施形態では、単一のアーカイブストレージシステムのみが使用されうるか、または、ボリュームBのチャンクに対応するデータオブジェクトが、さらに多くのアーカイブストレージシステム図示せずにまたがって格納されうる。それに加えて、他の実施形態では、各アーカイブストレージシステムは、アーカイブマネージャモジュールの少なくとも一部を実行して、例えば各アーカイブストレージシステムが明確に区別されるアーカイブマネージャモジュールを有することができ、または、アーカイブストレージシステムのすべてがピアツーピア型分散方式でアーカイブマネージャモジュールの機能を提供することができる。他の実施形態では、1つまたは複数のアーカイブマネージャモジュールは、他のブロックデータストレージサービスモジュールのローカルにある1つまたは複数のコンピューティングシステム上で例えば、同じコンピューティングシステムまたはBDSシステムマネージャモジュールを実行するものに近いコンピューティングシステム上で実行されうるか、または、アーカイブストレージシステムのオペレーションは、アーカイブマネージャモジュールを使用せずにブロックデータストレージサービスの1つまたは複数の他のモジュールによって例えば、BDSシステムマネージャモジュールによって直接管理されうる。さらに、少なくともいくつかの実施形態では、アーカイブストレージシステムは、複数のアーカイブストレージシステム上への一部のまたは全部のデータオブジェクトのレプリケーションを行うなどの格納されているデータオブジェクトの信頼性を高めるためのさまざまなオペレーションを実行することができる。したがって、例えば、アーカイブストレージシステム180bの他のデータオブジェクト182bは、アーカイブストレージシステム180aのデータオブジェクト180B1、180B3、および180BNのうちの1つまたは複数のデータオブジェクトのミラーコピーを含むことができ、アーカイブストレージシステム180aの他のデータオブジェクト182aは、アーカイブストレージシステム180bのデータオブジェクト180B2のミラーコピーを同様に格納することができる。さらに、別のところでさらに詳しく説明されているように、いくつかの実施形態では、ボリュームBの少なくともいくつかのチャンクは、ボリュームBのチャンクを表すアーカイブストレージシステム上に格納されているデータオブジェクトがボリュームBの外部記憶域または他のリモートの長期的なバックアップとして使用される場合などにおいて、ボリュームBの初期スナップショットコピーを作成する要求を受け取る前にアーカイブストレージシステム上にすでに格納されている可能性がある。もしそうであれば、アーカイブストレージシステム上のスナップショットコピーは、アーカイブストレージシステム上のデータオブジェクトがボリュームBのチャンクの現在の状態を表す場合などは、むしろ、その時点で追加のボリュームデータを転送することなく作成されうるが、他の実施形態では、追加のステップを実行して、すでに格納されているデータオブジェクトがボリュームBのチャンクに関して必ず最新状態になるようにすることができる。図2Dは、図2Cの例の続きであり、図2Cに関して初期スナップショットコピーが格納された後に実行されるボリュームBへの修正を反映している。特に、この例では、初期スナップショットボリュームのコピーが作成された後に、ボリュームにアタッチされている1つまたは複数のプログラム図示せずなどによって、ボリュームBが修正される。この例では、プライマリボリュームBのチャンク3155B-b3およびチャンクN155B-bNに対応するボリュームBのコピーの少なくとも2つの部分内のデータが修正され、この修正されたチャンクデータはデータ3aおよびNaとしてそれぞれ例示されている。この例では、プライマリボリュームBのコピー155B-bが修正された後、サーバストレージシステム165bは、サーバストレージシステム165a上のミラーボリュームBのコピー155B-aの対応する更新を開始し、ミラーコピーのチャンク3155B-a3は、修正された3aデータを含むように修正され、ミラーコピーのチャンクN155B-aNは、修正されたNaデータを含むように修正される。したがって、ミラーボリュームBのコピーは、この例におけるプライマリボリュームBのコピーの状態と同じ状態に保持される。それに加えて、いくつかの実施形態において、アーカイブストレージシステム上のデータは、ボリュームBへの変更を反映するようにさらに修正されうるが、これは、これらの新規のボリュームBのデータ修正が、現在、ボリュームBに対するスナップショットボリュームのコピーの一部でないとしても反映されうる。特に、チャンク3およびチャンクNのデータの前のバージョンが、アーカイブストレージシステム上に格納されている初期スナップショットボリュームのコピーの一部であるため、対応するデータオブジェクト180B3および180BNは、初期スナップショットボリュームのコピーの作成の後に生じるボリュームBのデータへの変更を反映するようには修正されない。修正されたボリュームBのデータのコピーが適宜作成される場合、これらのコピーは、この例では、チャンク3155B-b3の修正された3aデータに対応するオプションのデータオブジェクト180B3aなど、およびチャンクN155B-bNの修正されたNaデータに対応するオプションのデータオブジェクト180BNaなどの、追加のデータオブジェクトとして格納される。この方法により、初期スナップショットボリュームのコピーに対するデータは、ボリュームBのプライマリコピーおよびミラーコピーに変更が加えられたときでも保持される。オプションのデータオブジェクト180B3aおよび180BNaが作成される場合、この作成は、ミラーボリュームBのコピー155B-aに対し開始された更新と類似の方法でサーバブロックデータストレージシステム165bなどによる、さまざまな方法で開始されうる。図2Eは、図2Dに関してすでに説明されている実施形態に関する代替的実施形態を示している。特に、図2Eの例では、ボリュームBは、ここでもまた、図2Dに関して説明されているのと似た方法でボリュームの初期スナップショットコピーがアーカイブストレージシステム上に格納された後に修正され、したがって、サーバストレージシステム165b上のボリュームBのプライマリコピー155B-bは、チャンク3155B-b3およびチャンクN155B-bNが更新されそれぞれ修正されたデータ3aおよびNaを含むように更新される。しかし、この例では、サーバストレージシステム165a上のボリュームBのミラーコピー155B-aは、ボリュームBの完全コピーとして保持されない。その代わりに、アーカイブストレージシステム上のボリュームBのスナップショットボリュームのコピーをミラーコピー155B-aと併せて使用して、ボリュームBのコピーを保持する。したがって、この例では、初期スナップショットボリュームのコピーの作成後にボリュームBのプライマリコピー155B-bに修正が加えられると、サーバストレージシステム165a上のミラーコピー155B-aにもそれらの修正が加えられ、それにより、そのミラーコピーは、チャンク3155B-a3に対する修正された3aデータおよびチャンクN155B-aNに対する修正されたNaデータを格納する。しかし、ボリュームBのミラーコピーは、アーカイブストレージシステム上のボリュームBのスナップショットボリュームのコピーがそのデータのコピーを含むので、初期スナップショットボリュームのコピーが作成された以降に修正されていないボリュームBの他のチャンクのコピーを最初に格納することはしない。したがって、図2Bに関してすでに説明されているように、サーバストレージシステム165bが後で利用不可能になった場合、サーバストレージシステム165a上のボリュームBのミラーコピー155B-aは、ボリュームBの新規プライマリコピーとして格上げされうる。この例示的な実施形態においてこの格上げを遂行するために、ボリュームBのミラーコピー155B-aの残り部分は、アーカイブストレージシステム上のボリュームBの初期スナップショットボリュームのコピーを使用して復元され、これにより、格納されているデータオブジェクト180B1を使用してチャンク155B-a1を復元すること、格納されているデータオブジェクト180B2を使用してチャンク155B-a2を復元することなどを行う。さらに、この例では、データオブジェクト180B3aおよび180BNaは、同様に、修正された3aおよびNaデータを表すようにアーカイブストレージシステム上に適宜格納される。もしそうであれば、いくつかの実施形態では、修正された3aおよびNaデータは、ミラーコピー155B-aについてサーバブロックデータストレージシステム165a上に最初に格納されることはなく、その代わりに、ミラーコピーのチャンク155B-a3および155B-aNは、他のミラーコピーのチャンクについてすでに説明されている方法と似た方法でアーカイブストレージシステムのデータオブジェクト180B3aおよび180BNaから同様にして復元することができる。ボリュームBのスナップショットボリュームのコピーは、前の例では、ミラーコピーが新規プライマリボリュームのコピーに格上げされるときにボリュームBのミラーコピーを復元するために使用されるが、アーカイブストレージシステム上のスナップショットボリュームのコピーは、他の実施形態では他の方法で使用される。例えば、初期スナップショットボリュームのコピーと一致するボリュームBの新規コピーは、ミラーボリュームのコピーの復元についてすでに説明されている方法と類似の方法で、アーカイブストレージシステム上のスナップショットボリュームのコピーを使用して作成され、これにより、スナップショットボリュームのコピーの現時点においてボリュームBの新規ミラーコピーを作成すること、ボリュームBのスナップショットボリュームのコピーに基づく完全に新規のボリュームを作成すること、一方のサーバブロックストレージシステムから他方のサーバブロックストレージシステムへボリュームBも移動するのを支援することなどを行うことができる。それに加えて、ブロックデータサービスのサーバブロックデータストレージシステムが、複数の明確に区別されるデータセンターまたは他の地理的位置の場所において利用可能である場合、リモートのアーカイブストレージシステムは、それらすべてのサーバブロックデータストレージシステムから利用可能であるものとしてよく、したがって、それらの地理的位置の場所において、リモートのアーカイブストレージシステムを使用して、スナップショットボリュームのコピーに基づいて新規ボリュームのコピーを作成することができる。図2Fは、図2Cおよび2Dの例の続きであり、ボリュームBに対して追加の修正を加えた後のより最近の時点に続く。特に、図2Cまたは2Dに関して説明されているようにチャンク3およびチャンクNに修正が加えられた後、ボリュームBの第2のスナップショットボリュームのコピーがアーカイブストレージシステム上に作成される。その後、チャンク2および3内に格納されているボリュームBのデータに対して追加の修正が加えられる。したがって、図2Fに例示されているようなボリュームBのプライマリコピー155B-bは、チャンク1155B-b1内のオリジナルのデータ1、第2のスナップショットボリュームのコピーの作成後に修正されるチャンク2155B-b2内のデータ2a、第2のスナップショットボリュームのコピーの作成後にこれもまた修正されるチャンク3155B-b3内のデータ3b、および第2のスナップショットボリュームのコピーの作成後ではなくて、初期の第1のスナップショットボリュームのコピーの作成後に修正されたチャンクN155B-bN内のデータNaを含む。したがって、ボリュームBの第3のスナップショットボリュームのコピーが作成されることを指示された後、チャンク155B-b2に対応し、修正されたデータ2aを含むデータオブジェクト180B2aと、チャンク155B-b3に対応し、修正されたデータ3bを含むチャンク180B3bとを有する、第2のスナップショットボリュームのコピーの作成以降に修正された2つのチャンクに対応するように、追加のデータオブジェクトがアーカイブストレージシステム内に作成される。それに加えて、この例では、サーバブロックデータストレージシステム165aは図示されていないが、例えば、アーカイブストレージシステム180b上に、または別のところに格納されるアーカイブマネージャモジュール190によって保持される情報250のコピーは、アーカイブストレージシステム上に格納されるスナップショットボリュームのコピーに関する情報を提供するように示されている。特に、この例では、情報250は、それぞれが明確に区別されるスナップショットボリュームのコピーに対応する複数の行250a~250dを含む。この例における情報の行のそれぞれは、ボリュームのコピーに対する一意的な識別子、スナップショットボリュームのコピーが対応するボリュームの指示、およびスナップショットボリュームのコピーを含むアーカイブストレージシステム上に格納されているデータオブジェクトの順序付きリストの指示を含む。したがって、例えば、行250aは、図2Cに関して説明されているボリュームBの初期スナップショットボリュームのコピーに対応し、初期スナップショットボリュームのコピーが格納されているデータオブジェクト180B1、180B2、180B3など180BNまでを含むことを示す。行250bは、この例には示されていないさまざまな格納済みのデータオブジェクトを含む異なるボリュームAに対する例示的なスナップショットボリュームのコピーに対応する。行250cは、ボリュームBの第2のスナップショットボリュームのコピーに対応し、行250dは、ボリュームBの第3のスナップショットボリュームのコピーに対応する。この例では、ボリュームBに対する第2のボリュームのコピーおよび第3のボリュームのコピーは、完全コピーではなく増分コピーであり、そのため、前のスナップショットボリュームのコピー以降に変更されていないボリュームBのチャンクは、引き続き、同じ格納されているデータオブジェクトを使用して表される。したがって、例えば、行250c内のボリュームBの第2のスナップショットコピーは、第2のスナップショットボリュームのコピーがデータオブジェクト180B1および180B2をボリュームBの初期スナップショットボリュームのコピーのデータオブジェクトおよび場合によっては、チャンク4からチャンクN-1までのデータオブジェクトの一部または全部、ただし図示されていないと共有することを示す。同様に、行250dに示されているボリュームBの第3のスナップショットコピーも、引き続き、初期の、および第2のスナップショットボリュームのコピーと同じデータオブジェクト180B1を使用する。複数のスナップショットボリュームのコピー間で共通のデータオブジェクトを共有することにより、チャンク1などの変更のないボリュームのチャンクの新規コピーは、各スナップショットボリュームのコピーに対するアーカイブストレージシステム上に個別のコピーを有しないため、アーカイブストレージシステム上に格納する量が最小限度に抑えられる。しかし、他の実施形態では、いくつかの、またはすべてのスナップショットボリュームのコピーが増分でなく、その代わりにそれぞれがチャンク内のデータが変更されたかどうかに関係なく各ボリュームのチャンクの個別のコピーを含むことができる。それに加えて、1つまたは複数の重複するデータオブジェクトを1つまたは複数の他のスナップショットボリュームのコピーと共有しうる、増分スナップショットボリュームのコピーが使用される場合、その重複するデータオブジェクトは、スナップショットボリュームのコピーに関して追加の種類のオペレーションが実行されるときに管理される。例えば、行250aで示されているボリュームBに対する初期スナップショットボリュームのコピーを削除する要求を受け取り、したがって、もはや必要なくなったアーカイブストレージシステム上のストレージ領域を解放する場合、その初期スナップショットボリュームのコピーに対して示されているデータオブジェクトの一部のみがアーカイブストレージシステム上から削除されうる。例えば、チャンク3およびチャンクNは、初期スナップショットボリュームのコピーが作成された後に修正され、したがって、初期スナップショットボリュームのコピーの対応する格納されているデータオブジェクト180B3および180BNは、その初期スナップショットボリュームのコピーでしか使用されない。したがって、これら2つのデータオブジェクトは、ボリュームBの初期スナップショットボリュームのコピーが削除された場合に、アーカイブストレージシステム180aから永久的に削除されうる。しかし、データオブジェクト180B1および180B2は、ボリュームBのその初期スナップショットボリュームのコピーが削除される場合であっても保持される。これは、ボリュームBの少なくとも第2のスナップショットボリュームのコピーの一部であり続けるからである。この例には示されていないが、情報250は、どのアーカイブストレージシステムがデータオブジェクトのそれぞれを格納するかに関する情報、誰がどのような状況の下でスナップショットボリュームのコピーの情報にアクセスすることを許可されているかに関する情報などを含む、スナップショットボリュームのコピーに関するさまざまな他の種類の情報を含むことができる。一例として、いくつかの実施形態では、何人かのユーザがスナップショットボリュームのコピーを作成し、それらのスナップショットボリュームのコピーに対する少なくとも何人かの他のユーザのアクセスを、少なくともいくつかの状況において利用可能とすることができる。例えば、他のユーザが、1つまたは複数の特定のスナップショットボリュームのコピーのうちのコピーを作成することを、課金ベースなどにより許可することができる。このような場合、そのようなアクセスに関係する情報は、情報250の中に、または別のところに格納することができ、アーカイブマネージャモジュール190は、そのような情報を使用して、特定のスナップショットボリュームのコピーに対応する情報についてなされた要求に応じるかどうかを決定することができる。あるいは、他の実施形態では、スナップショットボリュームのコピーへのアクセスの管理を、要求が許可されていない限りそれらの要求がアーカイブストレージシステムに送られないようにするなど、ブロックデータストレージサービスの他のモジュール例えば、BBSシステムマネージャモジュールによって行うことができる。図2A~2Fの例が説明のために簡略化されていること、およびサーバブロックデータストレージシステム、アーカイブストレージシステム、および他のデバイスの数および編成が図示されているものと比べてかなり大きなものとなる可能性のあることは理解されるであろう。同様に、他の実施形態では、プライマリボリュームのコピー、ミラーボリュームのコピー、および/またはスナップショットボリュームのコピーは、他の方法で格納され、管理されうる。図3は、クライアントに対する信頼できる非ローカルブロックデータストレージ機能のプロビジョニングおよび使用の運用管理に適した例示的なコンピューティングシステムを示すブロック図である。この例では、サーバコンピューティングシステム300は、BDSシステムマネージャモジュール340の一実施形態を実行して、ホストコンピューティングシステム370および/または少なくともいくつかの他のコンピューティングシステム390上で実行されるプログラムへの、例えばサーバブロックデータストレージシステム360によって提供されるブロックデータストレージボリューム図示せずなどへの非ローカルブロックデータストレージ機能のプロビジョニングを管理する。この例におけるホストコンピューティングシステム370のそれぞれは、さらに、ノードマネージャモジュール380の一実施形態を実行し、例えばネットワーク385例えば、コンピューティングシステム300、360、370、および適宜、他のコンピューティングシステム390のうちの少なくともいくつかを備える、図示されていない、データセンターの内部ネットワーク上でBDSシステムマネージャモジュール340と協調して、複数の非ローカルブロックデータストレージボリュームのうちの少なくともいくつかへのホストコンピューティングシステム上で実行されるプログラム375のアクセスを管理する。他の実施形態では、ノードマネージャモジュール380のいくつか、またはすべてが、1つまたは複数の他のコンピューティングシステム例えば、他のコンピューティングシステム390を管理することができる。それに加えて、それぞれ実行プログラム375によって使用される複数の非ローカルブロックデータストレージボリューム図示せずのうちの少なくともいくつかを格納する複数のサーバブロックデータストレージシステム360が例示されており、これらのボリュームに対するアクセスは、この例では、ネットワーク385を介して行われる。サーバブロックデータストレージシステム360の1つまたは複数は、複数のサーバブロックデータストレージシステム360のうちの1つまたは複数のオペレーション、さらにはサーバブロックデータストレージシステム360によって格納されるデータに関するさまざまな情報図示せずを管理するサーバソフトウェアコンポーネント図示せずもそれぞれ格納することができる。したがって、少なくともいくつかの実施形態では、図3のサーバコンピューティングシステム300は、図1のコンピューティングシステム175に対応するものとしてよく、図1のノードマネージャモジュール115および125のうちの1つまたは複数は、図3のノードマネージャモジュール380に対応するものとしてよく、および/または図3のサーバブロックデータストレージコンピューティングシステム360のうちの1つまたは複数は、図1のサーバブロックデータストレージシステム165に対応するものとしてよい。それに加えて、この例示的な実施形態では、サーバブロックデータストレージシステム360上に格納されている少なくともいくつかのブロックデータストレージボリュームの少なくともいくつかの部分のスナップショットコピーおよび/または他のコピーを格納することができる、複数のアーカイブストレージシステム350が示されている。アーカイブストレージシステム350は、コンピューティングシステム300、360、および370のうちのいくつかまたはすべてとやり取りをすることもでき、いくつかの実施形態では、1つまたは複数の他の外部ネットワーク図示せず上でコンピューティングシステム300、360、および370とやり取りする例えば、図示されていない、リモートのストレージサービスのリモートのアーカイブストレージシステムとすることができる。他のコンピューティングシステム390は、少なくともいくつかの実施形態においてさまざまな種類の他の近くにある、またはリモートのコンピューティングシステムをさらに備えることができ、これは、ブロックデータストレージサービスの顧客または他のユーザがコンピューティングシステム300および/または370とやり取りするために使用するコンピューティングシステムも含む。さらに、他の複数のコンピューティングシステム390のうちの1つまたは複数のコンピューティングシステムは、PESシステムマネージャモジュールをさらに実行して、ホストコンピューティングシステム370および/または他のホストコンピューティングシステム390上のプログラムの実行を調整することができるか、またはコンピューティングシステム300もしくは例示されている他の複数のコンピューティングシステムのうちの1つのコンピューティングシステムが、そのようなPESシステムマネージャモジュールを実行することができるが、ただし、PESシステムマネージャモジュールはこの例では示されていない。この例示的な実施形態では、コンピューティングシステム300は、CPU中央演算処理装置305、ローカルストレージ320、メモリ330、およびさまざまなI/O入出力コンポーネント310を備えるが、この例で示されているI/Oコンポーネントはディスプレイ311、ネットワーク接続部312、コンピュータ可読媒体ドライブ313、および他のI/Oデバイス315例えば、キーボード、マウス、スピーカー、マイクロホンなどを含む。例示されている実施形態において、BDSシステムマネージャモジュール340は、メモリ330において実行されており、1つまたは複数の他のプログラム図示せずも適宜メモリ330において実行されうる。各コンピューティングシステム370も、同様に、CPU371、ローカルストレージ377、メモリ374、およびさまざまなI/Oコンポーネント372例えば、サーバコンピューティングシステム300のI/Oコンポーネント310と類似のI/Oコンポーネントを備える。例示されている実施形態では、ノードマネージャモジュール380は、例えばプログラム実行サービスおよび/またはブロックデータストレージサービスの顧客に代わって、コンピューティングシステム上のメモリ374において実行されている1つまたは複数の他のプログラム375を管理するためにメモリ374において実行されている。いくつかの実施形態では、コンピューティングシステム370のいくつかまたはすべてが、複数の仮想マシンをホストすることができ、もしそうであれば、実行プログラム375のそれぞれは、明確に区別されるホストされている仮想マシンコンピューティングノード上で実行される仮想マシンのイメージ全体例えば、オペレーティングシステムと1つまたは複数のアプリケーションプログラムを含むであるものとしてよい。ノードマネージャモジュール380は、同様に、他のホストされている仮想マシンを管理する特権モードで動作する仮想マシンモニターなどの、他のホストされている仮想マシン上で実行されていてもよい。他の実施形態では、実行プログラムコピー375およびノードマネージャモジュール380は、コンピューティングシステム370上で実行される単一のオペレーティングシステム図示せず上で明確に区別されるプロセスとして実行されうる。この例における各アーカイブストレージシステム350は、CPU351、ローカルストレージ357、メモリ354、およびさまざまなI/Oコンポーネント352例えば、サーバコンピューティングシステム300のI/Oコンポーネント310と類似のI/Oコンポーネントを備えるコンピューティングシステムである。例示されている実施形態では、アーカイブマネージャモジュール355は、例えばブロックデータストレージサービスおよび/またはアーカイブストレージシステムを実現する明確に区別されるストレージサービスの顧客に代わって、複数のアーカイブストレージシステム350のうちの1つまたは複数のアーカイブストレージシステムのオペレーションを管理するためにメモリ354において実行されている。他の実施形態では、アーカイブマネージャモジュール355は、他の複数のコンピューティングシステム390のうちの1つなどの他のコンピューティングシステム、またはBDSシステムマネージャモジュール340と連動するコンピューティングシステム300上で実行されている可能性がある。それに加えて、ここに例示されていないが、いくつかの実施形態では、アーカイブストレージシステム350によって格納されるデータに関するさまざまな情報を、図2Fに関してすでに説明されているような、ストレージ357または別の場所に保持することができる。さらに、ここに例示されていないが、サーバブロックデータストレージシステム360および/または他のコンピューティングシステム390のそれぞれは、CPU、ローカルストレージ、メモリ、およびさまざまなI/Oコンポーネントなどの、アーカイブストレージシステム350に関して例示されている種類のコンポーネントのいくつかまたはすべてを同様に備えることができる。BDSシステムマネージャモジュール340およびノードマネージャモジュール380は、別のところでさらに詳しく説明されているように、クライアント例えば、実行プログラムへの信頼できる非ローカルブロックデータストレージ機能の提供および使用を管理するさまざまなアクションを実行することができる。この例では、BDSシステムマネージャモジュール340は、サーバブロックデータストレージシステム360および/またはアーカイブストレージシステム350上に格納されるボリュームに関する情報を含むデータベース325をストレージ320内に保持することができ例えば、ボリュームを管理する際に使用するために、またはユーザまたブロックデータストレージサービスの他の態様に関するさまざまな他の情報図示せずをさらに格納することができる。他の実施形態では、ボリュームに関する情報は、それらのコンピューティングシステム上のノードマネージャモジュール380によって、および/または他のコンピューティングシステムによって分散方式などの他の方法で格納することができる。それに加えて、この例では、ホストコンピューティングシステム370上の各ノードマネージャモジュール380は、ボリュームのプライマリコピーを提供するサーバブロックデータストレージシステム360とのやり取りを調整すること、およびプライマリボリュームのコピーが利用不可能になった場合にボリュームのミラーコピーに切り替える仕方を決定することなどのために、ホストコンピューティングシステムにアタッチされ、ホストコンピューティングシステム上の実行プログラム375によって使用される現在のボリュームに関する情報378をローカルストレージ377に格納することができる。ここには例示されていないが、各ホストコンピューティングシステムは、実行プログラムにはローカルストレージ377を提供する1つまたは複数の他のローカルの物理的にアタッチされたストレージデバイスと区別できないように見える、ホストコンピューティングシステムにアタッチされ、コンピューティングシステム上で実行されるプログラムによって使用される各ボリュームに対する明確に区別される論理ローカルブロックデータストレージデバイスインターフェイスをさらに備えることができる。コンピューティングシステム300、350、360、370、および390は、単に例示的なものであるにすぎず、本発明の範囲を制限することを意図していないことは理解されるであろう。例えば、コンピューティングシステム300、350、360、370、および/または390は、例えばネットワーク385および/またはインターネットまたはワールドワイドウェブWebなどの1つまたは複数の他のネットワークを介して、例示されていない他のデバイスに接続されうる。より一般的には、コンピューティングノードまたは他のコンピューティングシステムまたはデータストレージシステムは、限定はしないが、デスクトップまたは他のコンピュータ、データベースサーバ、ネットワークストレージデバイスおよび他のネットワークデバイス、PDA、携帯電話、無線電話、ポケベル、電子手帳、インターネットアプライアンス、テレビベースのシステム例えば、セットトップボックスおよび/またはパーソナル/デジタルビデオレコーダーを使用するもの、および適切な通信機能を備えるさまざまな他の消費者製品を含む、説明されている種類の機能を対話操作し、実行することができるハードウェアまたはソフトウェアの任意の組み合わせを備えることができる。それに加えて、例示されているモジュールによって提供される機能は、いくつかの実施形態では、モジュールを減らして組み合わせるか、またはモジュールを追加して分散させることができる。同様に、いくつかの実施形態では、例示されているモジュールのうちのいくつかの機能を提供せず、および/または他の追加機能を利用可能にすることができる。さまざまなアイテムが使用中にメモリ内に、またはストレージ上に格納されているように示されているが、これらのアイテムまたはそれらの部分は、メモリ管理およびデータ保全性のためにメモリと他のストレージデバイスとの間で転送されうることも理解されるであろう。あるいは、他の実施形態では、ソフトウェアモジュールおよび/またはシステムのうちのいくつかまたはすべてが、他のデバイス上のメモリにおいて実行され、コンピュータ間通信を介して例示されているコンピューティングシステムと通信することができる。さらに、いくつかの実施形態では、これらのシステムおよび/またはモジュールのうちのいくつかまたはすべてを、限定はしないが、1つまたは複数の特定用途向け集積回路ASIC、標準的な集積回路、コントローラ例えば、適切な命令を実行すること、およびマイクロコントローラおよび/または組み込みコントローラを備えることにより、フィールドプログラマブルゲートアレイFPGA、コンプレックスプログラマブルロジックデバイスCPLDなどを含む、少なくとも部分的にはファームウェアおよび/またはハードウェアなどの他の手段で実装するか、または構成することができる。これらのモジュール、システム、およびデータ構造のいくつかまたはすべては、適切なドライブによって、または適切な接続を介して読み取られるハードディスク、メモリ、ネットワーク、または持ち運び可能な媒体品などの、コンピュータ可読媒体上に例えば、ソフトウェア命令または構造化データとして格納することもできる。これらのシステム、モジュール、およびデータ構造は、無線方式の、および有線/ケーブル方式の媒体を含む、さまざまなコンピュータ可読伝送媒体上に生成されるデータ信号として例えば、搬送波または他のアナログもしくはデジタル伝搬信号の一部として送信することもでき、さまざまな形態をとりうる例えば、単一の、または多重化されたアナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして。このようなコンピュータプログラム製品は、他の実施形態では他の形態をとることもありうる。したがって、本発明は、他のコンピュータシステム構成を用いて実施することもできる。図4は、ブロックデータストレージシステムマネージャルーチン400の例示的な一実施形態の流れ図である。ルーチンは、例えば、図1のブロックデータストレージシステムマネージャモジュール175および/または図3のBDSシステムマネージャモジュール340の実行によって実現され、これにより実行プログラムによって使用されるブロックデータストレージサービスなどを提供することができる。例示されている実施形態では、このルーチンは、単一のデータセンターまたは他の地理的位置の場所にある複数のサーバブロックデータストレージシステムとやり取りすることができるが例えば、このような各データセンターまたは他の地理的位置の場所にその地理的位置の場所において実行されるルーチンの明確に区別される一実施形態が置かれている場合、他の実施形態では、単一のルーチン400で、複数の明確に区別されるデータセンターもしくは他の地理的位置の場所に対応することができる。ルーチンの例示されている実施形態は、ブロック405から開始し、そこで、要求または他の情報を受け取る。ルーチンは、ブロック410に進み、受け取った要求が、ブロックデータストレージサービスのユーザおよび/または新規ボリュームにアクセスすることを望んでいる実行プログラムなどからの、新規ブロックデータストレージボリュームを作成する要求であったかどうかを判定し、新規ブロックデータストレージボリュームを作成する要求である場合、ブロック415に進み、ボリューム作成を実行する。例示されている実施形態では、ブロック415内のルーチンは、例えば、選択されたサーバストレージシステムの場所および/または機能に少なくとも一部は基づきボリュームのコピーが格納されることになる1つまたは複数のサーバブロックデータストレージシステムを選択し、それらの選択されたサーバストレージシステム上のボリュームのコピーを初期化し、ボリュームに関する格納されている情報を更新して新規ボリュームを反映する。例えば、いくつかの実施形態では、新規ボリュームの作成は、例えば、ブランクにする、他の指示されたボリューム例えば、同じデータセンターまたは他の地理的位置の場所にある他のボリューム、または、リモートの場所に格納されているボリュームのコピーを入れる、指示されたスナップショットボリュームのコピー例えば、アーカイブストレージシステムとやり取りしてスナップショットボリュームのコピーを取得することなどにより、1つまたは複数のアーカイブストレージシステムによって格納されているスナップショットボリュームのコピーのコピーを入れる、など、選択されたサーバの各リニアストレージの指定されたサイズを、指定された方法で初期化することを含みうる。他の実施形態では、1つのボリュームに対する指定されたサイズのリニアストレージの論理ブロックを、単一の論理ブロックとして与えられる複数の不連続ストレージ領域を使用すること、および/または複数のローカルの物理ハードディスクにまたがってリニアストレージの1つの論理ブロックをストライピングすることなどによって、1つまたは複数のサーバブロックデータストレージシステム上に作成することができる。他のデータセンターまたは他の地理的位置の場所にすでに存在しているボリュームのコピーを作成するために、ルーチンは、例えば、その位置におけるブロックデータストレージサービスオペレーションをサポートするルーチン400の他のインスタンスと調整することができる。さらに、いくつかの実施形態では、少なくともいくつかのボリュームは、それぞれ、複数の明確に区別されるサーバストレージシステム上で少なくとも1つのプライマリボリュームのコピー、および1つまたは複数のミラーコピーを含む複数のコピーを有し、この場合、複数のサーバストレージシステムを選択して、初期化することができる。ブロック410において、受け取った要求がボリュームを作成する要求でないと判定される場合、ルーチンは、ブロック420に進み、受け取った要求が、実行プログラムコピーから、または実行プログラムコピーおよび/または指示されたボリュームに関連付けられているユーザに代わって操作される他のコンピューティングシステムから受け取った要求などの、既存のボリュームを実行プログラムコピーにアタッチする要求であるかどうかを判定する。アタッチする要求である場合、ルーチンは、ブロック425に進んで、ボリュームのコピーを格納するサーバブロックデータストレージシステムのうちの少なくとも1つを識別し、識別されたサーバストレージシステムのうちの少なくとも1つを実行プログラムに関連付ける例えば、プライマリボリュームのコピーを表すコンピューティングノードに論理ローカルブロックストレージデバイスをマウントさせることなどによって、そのボリュームに対するプライマリサーバストレージシステムをプログラムが実行されるコンピューティングノードに関連付ける。アタッチされるボリュームは、そのボリュームに対する一意的な識別子および/またはそのボリュームを作成したユーザ、またはそのボリュームに他の何らかの方法で関連付けられているユーザに対する識別子を使用するなど、さまざまな方法で識別されうる。ボリュームを実行プログラムコピーにアタッチした後、ルーチンは、一度に1つのプログラムだけがボリュームにアタッチされることを許される場合、または一度に1つのプログラムだけがそのボリュームへの書き込みアクセス権または他の変更アクセス権を有することを許される場合などにおいて、そのボリュームに関する格納されている情報をさらに更新して、実行プログラムがアタッチしたことを示すことができる。それに加えて、指示されている実施形態において、実行プログラムへのボリュームの実際のアタッチを行いやすくするなどのために、識別されている複数のサーバストレージシステムのうちの少なくとも1つのサーバストレージシステムに関する情報を、実行プログラムに関連付けられているノードマネージャに提供することができる。他の実施形態では、ノードマネージャは、そのような情報に対して他のアクセス権を有している場合がある。ブロック420において、受け取った要求が実行プログラムにボリュームをアタッチする要求でないと判定された場合、ルーチンは、ブロック430に進み、受け取った要求が、そのボリュームに、または、他のコンピューティングシステム例えば、そのボリュームに関連付けられているユーザおよび/または他のユーザのボリュームのスナップショットコピーを作成するアクセス権を購入したユーザによって操作されるコンピューティングシステムにアタッチされている実行プログラムから受け取った要求などの、指示されたボリュームに対するスナップショットコピーを作成する要求であるかどうかを判定する。いくつかの実施形態において、1つのボリュームのスナップショットボリュームのコピーは、そのボリュームが実行プログラムにアタッチされているか、または実行プログラムにより使用中であるかどうかに関係なく、および/またはそのボリュームが、ルーチン400が実行される同じデータセンターもしくは他の地理的位置の場所に格納されるかどうかに関係なく作成されうる。スナップショットコピーを作成する要求であると判定された場合、ルーチンは、ブロック435に進み、1つまたは複数のネットワーク上でアクセス可能なリモートの長期的なストレージサービスなどと連動して、1つまたは複数のアーカイブストレージシステム例えば、リモートの格納場所のアーカイブストレージシステムのオペレーションを調整する1つまたは複数のアーカイブマネージャモジュールとやり取りすることなどにより、指示されたボリュームのスナップショットボリュームのコピーの作成を開始する。いくつかの実施形態では、スナップショットボリュームのコピーの作成は、リモートのストレージサービスがボリュームの少なくともいくつかのチャンクをすでに格納している場合などに、ルーチン400からの命令に応答して第三者のリモートのストレージサービスによって実行されうる。さらに、少なくともいくつかの実施形態では、スナップショットボリュームのコピーが1つまたは複数の他のスナップショットボリュームのコピーに関して増分であるかどうかなどの、さまざまな他のパラメータをさらに指定することができる。ブロック430において、受け取った要求がスナップショットボリュームのコピーを作成する要求でないと判定された場合、ルーチンは、ブロック440に進み、ブロック405で受け取った情報が1つまたは複数のサーバブロックデータストレージシステムまたは他の実施形態では、1つまたは複数のボリュームに障害が発生しているか、または他の形の利用不可能な状態にあるのかを示しているかどうかを判定する。例えば、ブロック485に関して以下で説明されているように、いくつかの実施形態では、ルーチンは、pingメッセージまたは他のメッセージをサーバブロックデータストレージシステムに定期的に、または常時、送信して応答が受信されたかどうかを判定すること、またはサーバストレージシステムのステータスに関する情報を他の何らかの方法で取得することなどによって、複数のサーバブロックデータストレージシステムのうちのいくつかまたはすべてのサーバブロックデータストレージシステムのステータスを監視し、その監視結果に基づき利用不可能であるかどうかの判定を下す。ブロック440において、受け取った情報が1つまたは複数のサーバストレージシステムに障害が発生している可能性を示していると判定された場合、ルーチンは、ブロック445に進み、示された1つまたは複数のサーバストレージシステム上に格納されている1つまたは複数のボリュームが利用可能である状態を維持するアクションを実行する。特に、ブロック445のルーチンは、指示された1つまたは複数のサーバストレージシステム上に格納されるそのようなボリュームが、プライマリボリュームのコピーであるかどうかを判定し、各そのようなプライマリボリュームのコピーについて、他のサーバストレージシステム上のそのボリュームに対する複数のミラーコピーのうちの1つをそのボリュームに対する新規プライマリコピーになるように格上げする。次いで、ブロック450におけるルーチンは、利用不可能であることが示されているボリュームの1つとは別のサーバストレージシステム上で利用可能なボリュームの既存のコピーを使用することなどによって、1つまたは複数の他のサーバストレージシステム上に各ボリュームの少なくとも1つの新規コピーのレプリケーションを作成する。他の実施形態では、プライマリコピーへのミラーコピーへの格上げおよび/または新規ミラーコピーの作成は、例えば、ボリュームのミラーコピー間で選択プロトコルを使用するサーバブロックデータストレージシステムによる分散方式などの、他の方法で実行することができる。それに加えて、いくつかの実施形態では、ミラーボリュームのコピーは、ボリュームのプライマリコピーの部分のみ例えば、そのボリュームのスナップショットコピーが前に作成された以降に修正された部分のみを含む最小のコピーとすることができ、プライマリコピーへのミラーコピーの格上げは、例えば、最新のスナップショットコピーから完全になるように新規プライマリコピーの情報を収集することをさらに含むことができる。次いで、ブロック455では、ルーチンは、適宜、1つまたは複数の利用不可能なサーバストレージシステム上のプライマリボリュームのコピーにすでにアタッチされているプログラムを実行するなどのために、1つまたは複数の実行プログラムをミラーコピーから格上げされた新規プライマリボリュームのコピーにアタッチすることを開始する。他の実施形態では、新規プライマリボリュームのコピーへのそのような再アタッチは、他の方法で例えば、再アタッチが行われる実行プログラムに関連付けられているノードマネージャによって実行される。次いで、ブロック458において、ルーチンは、ブロック450において作成された新規ボリュームのコピーおよびブロック445において格上げされた新規プライマリボリュームを示すなどのために、利用不可能なサーバストレージシステム上のボリュームに関する情報を更新する。他の実施形態では、新規プライマリボリュームのコピーは、他の方法で、例えば、既存のミラーボリュームのコピーを格上げするのではなく新規ボリュームのコピーをプライマリボリュームのコピーとして作成することによって作成することができるが、この作業は既存のミラーボリュームのコピーを格上げする場合に比べて時間がかかることがある。それに加えて、ブロック450において新規ボリュームのコピーのレプリケーション元となるボリュームのコピーが利用可能でない場合、例えば、1つのボリュームに対するプライマリおよびミラーコピーを格納する複数のサーバストレージシステムがすべて実質的に同時に失敗した場合、いくつかの実施形態において、ルーチンは、アーカイブストレージシステム上で利用可能なボリュームに対する1つまたは複数の最近のスナップショットボリュームのコピー、他のデータセンターもしくは他の地理的位置の場所のボリュームのコピーなどから、他の方法でそのようなレプリケーションに使用するためのボリュームの情報を取得しようと試みることができる。ブロック440において、受け取った情報が1つまたは複数のサーバブロックデータストレージシステムに障害が発生しているか、または他の形の利用不可能な状態にあるのかを示す情報でないと判定された場合、ルーチンは、ブロック460に進み、ブロック405で受け取った情報が1つまたは複数のボリュームを1つまたは複数の新規のサーバブロックデータストレージシステムに移動することを示しているかどうかを判定する。このようなボリューム移動は、同じ地理的位置の場所にある他のサーバブロックデータストレージシステムへの移動例えば、既存のボリュームをこれらのボリュームをサポートするのにより適した装備を持つストレージシステムに移動する、および/または1つまたは複数の他のデータセンターもしくは他の地理的位置の場所にある1つまたは複数のサーバデータストレージシステムへの移動を含む、別のところでさらに詳しく説明されているようなさまざまな理由から実行されうる。それに加えて、ボリュームの移動は、ボリュームに関連付けられているブロックデータストレージシステムのユーザからの要求、使用されている現在のサーバストレージシステムより優れているボリュームに対するサーバストレージシステムの自動検出に基づく、ブロックデータストレージサービスの人のオペレータからの要求例えば、現在のサーバストレージシステムの利用過剰および/または新規サーバストレージシステムの利用不足など、さまざまなきっかけで開始されうる。ブロック460において、受け取った情報が1つまたは複数のそのようなボリュームのコピーを移動するための情報であると判定された場合、ルーチンはブロック465に進み、ブロック415に関してすでに説明されている方法と似た方法などにより例えば、サーバブロックデータストレージシステム上の既存のボリュームのコピーを使用すること、1つまたは複数のアーカイブストレージシステム上のそのボリュームのスナップショットまたは他のコピーを使用することなどによって、1つまたは複数の新規サーバブロックデータストレージシステム上に各指示されたボリュームのコピーを1つ作成し、ブロック465においてそのボリュームに対する格納されている情報をさらに更新する。それに加えて、いくつかの実施形態では、ルーチンは、新規ボリュームのコピーが作成された後サーバブロックデータストレージシステムから前のボリュームのコピーを削除するなどの、移動をサポートする追加のアクションを実行することができる。さらに、移動される前のボリュームのコピーに1つまたは複数の実行プログラムがアタッチされた状況では、ルーチンは、実行プログラムに対する移動される前のボリュームのコピーのデタッチを開始することができ、および/または作成される新規ボリュームのコピーへのそのような実行プログラムの再アタッチを、関連付けられている命令をその実行プログラムに対するノードマネージャに送ることなどによって、開始することができる。他の実施形態では、ノードマネージャが、そのようなアクションを実行することができる。ブロック460において、受け取った情報が1つまたは複数のボリュームを移動する命令でないと判定された場合、ルーチンは、ブロック485に進み、1つまたは複数の他の指示されたオペレーションを適宜実行する。他のオペレーションは、さまざまな実施形態においてさまざまな形態をとることができ、例えば、すべてというわけではないが、いくつかのまたはすべてのサーバブロックデータストレージシステムの監視を実行するオペレーション例えば、pingメッセージまたは他のステータスメッセージをサーバブロックデータストレージシステムに送信して、応答が返るのを待つことによって、実行される監視、ボリュームのプライマリコピーを格納するが、そのボリュームの1つまたは複数のミラーコピーを更新することはできないプライマリサーバブロックデータストレージシステムから受け取ったメッセージ、ノードマネージャモジュールから受け取ったメッセージなどに基づく、ボリュームのプライマリコピーまたはミラーコピーが利用不可能であるとの判定に応答して代替プライマリボリュームのコピーおよび/またはミラーボリュームのコピーの作成を開始するオペレーション、1つまたは複数のボリュームのデタッチ、削除、および/または説明を行うオペレーション、1つまたは複数のスナップショットボリュームのコピーの削除、説明、および/またはコピーを行うオペレーション、ユーザによるボリュームおよび/またはスナップショットボリュームのコピーの使用を、例えば対価の支払いを目的としてそのような使用の量を測定するために、追跡するオペレーションなどが挙げられる。ブロック415、425、435、458、465、または485の後、ルーチンは、ステップ495に進み、明示的な終了命令を受け取るまで続けるかどうかを決定する。処理を続ける場合、ルーチンはブロック405に戻り、そうでなければ、ルーチンはブロック499に進んで終了する。それに加えて、少なくともいくつかの種類の要求については、ルーチンは、いくつかの実施形態において、要求側に対して指定されているアクセス権および/または要求の関連付けられているターゲット例えば、指示されているボリュームなどに基づき、要求側がその要求を行う権限を与えられていることをさらに確認することができる。いくつかのそのような実施形態では、対価の支払いが行われない場合にその要求を実行しないなどのために、権限付与の確認は、要求された機能に対する対価を要求側から徴収することまたはそのような対価の支払いがすでに行われていることを確認することをさらに含むことができる。例えば、少なくともいくつかの実施形態および状況において関連する支払いを伴いうる種類の要求としては、ボリュームを作成する要求、ボリュームをアタッチする要求、スナップショットコピーを作成する要求、指示されたボリュームを例えば、プレミアムサーバストレージシースへ移動する要求、および他の種類の指示されたオペレーションが挙げられる。さらに、ユーザに代わって実行されるいくつかの種類またはすべての種類のアクションを監視して計測し、例えば、後から、それらのアクションのうちの少なくともいくつかについて対応する利用毎の料金を決定する際に利用することができる。図5は、ノードマネージャルーチン500の例示的な一実施形態の流れ図である。ルーチンは、例えば、図1のノードマネージャモジュール115および/または125の実行、および/または図3のノードマネージャモジュール380の実行によって実現され、これにより1つまたは複数の実行プログラムによる非ローカルブロックデータストレージの使用を管理することなどを行える。例示されている実施形態では、ブロックデータストレージサービスは、1つまたは複数のBDSシステムマネージャモジュールと複数のノードマネージャモジュール、および適宜、1つまたは複数のアーカイブマネージャモジュールの組み合わせを通じて機能を提供するが、他の実施形態では、他の構成例えば、ノードマネージャモジュールおよび/またはアーカイブマネージャモジュールを伴わない単一のBDSシステムマネージャモジュール、BDSシステムマネージャモジュールを伴わずに調整されたマネージャ内で一緒に実行される複数のノードマネージャモジュールなどを使用することができる。ルーチンの例示されている実施形態は、ブロック505から始まり、そこで、関連付けられているコンピューティングノード上のプログラム実行に関係する要求を受け取る。ルーチンはブロック510に進み、その要求が指示された関連付けられているコンピューティングノード上の1つまたは複数の指示されたプログラムを実行することに関係する要求、例えばプログラム実行サービスおよび/またはそれらのプログラムに関連付けられているユーザからの要求などかどうかを判定する。もしそうであれば、ルーチンはブロック515に進み、指示されたプログラム複数可のコピーを取得し、関連付けられているコンピューティングノード上のプログラム複数可の実行を開始する。いくつかの実施形態では、1つまたは複数の指示されたプログラムは、ブロック505において受け取った要求の一部としてルーチン500に送られる指示されたプログラムに基づいて、ブロック515において取得されうる。他の実施形態では、指示されたプログラムは、ローカルの、または非ローカルのストレージ例えば、リモートのストレージサービスから取り出すことができる。他の実施形態では、ルーチン500は、プログラム実行サービスをサポートする他のルーチンが、関連付けられているコンピューティングノードに代わってそれらのオペレーションを実行する場合などでは、実行プログラムに関係するオペレーションを実行しなくてもよい。ブロック510において、受け取った要求が1つまたは複数の指示されたプログラムを実行する要求でないと判定される場合、ルーチンは、ブロック520に進み、実行プログラム、図4のルーチン400、および/または指示されたボリュームおよび/または指示された実行プログラムに関連付けられているユーザなどから、指示されたボリュームを指示された実行プログラムにアタッチする要求を受け取ったかどうかを判定する。アタッチする要求を受け取った場合、ルーチンはブロック525に進み、そのボリュームのプライマリコピーの指示を取得し、そのプライマリボリュームのコピーをコンピューティングノードに対する代表的な論理ローカルブロックデータストレージデバイスに関連付ける。いくつかの実施形態では、ルーチン500によって、代表的なローカルの論理ブロックデータストレージデバイスを実行プログラムおよび/またはコンピューティングノードに指示することができるが、他の実施形態では、実行プログラムが、ローカルの論理ブロックデータストレージデバイスの作成を開始することができる。例えば、いくつかの実施形態では、ルーチン500は、GNBDグローバルネットワークブロックデバイス技術を使用し、ブロックデバイスを特定の仮想マシンにインポートし、その論理ローカルブロックデータストレージデバイスをマウントすることによって仮想マシンのコンピューティングノード上でその論理ローカルブロックデータストレージデバイスを利用可能にすることができる。いくつかの実施形態では、ルーチンは、ブロック525において、そのボリュームに対する1つまたは複数のミラーボリュームのコピーの指示を取得し格納するアクション、そのプライマリボリュームのコピーが後で利用不可能になった場合にルーチンがミラーボリュームのコピーに動的にアタッチすることを可能にするアクションなどの、他のアクションをさらに実行することができる。ブロック520において、ブロック505の受け取った要求が、指示されたボリュームをアタッチする要求でないと判定された場合、ルーチンはブロック530に進み、受け取った要求が、読み取り要求または書き込み要求などの、アタッチされたボリュームに対する実行プログラムによるデータアクセス要求であるかどうかを判定する。アタッチされたボリュームに対するデータアクセス要求である場合、ルーチンはブロック535に進み、そこで、ルーチンは、データアクセス要求に対応する関連付けられているプライマリボリュームのコピーを例えば、そのデータアクセス要求について実行プログラムによって使用される代表的なローカルの論理ブロックデータストレージデバイスに基づいて識別し、プライマリボリュームのコピーへの要求されたデータアクセスを開始する。別のところでさらに詳しく説明されているように、いくつかの実施形態では、実際のプライマリボリュームのコピーおよび/またはミラーボリュームのコピーを即座に修正して、書き込みデータアクセス要求を反映するが例えば、ミラーボリュームのコピーを常に更新するように、ミラーボリュームのコピーを、そのミラーボリュームのコピーがプライマリボリュームのコピーに格上げされる場合のみ更新するように、など、1つまたは複数のアーカイブストレージシステム上に格納されている対応するチャンクは、書き込みデータアクセス要求を反映するように即座には修正しない例えば、十分な修正がなされたときに、および/または対応する情報に対する読み取りアクセスが要求されたときにアーカイブストレージシステム上に格納されているコピーを最終的に更新するなどなど、遅延書き込み方式を使用することができる。例示されている実施形態では、ミラーボリュームのコピーの保守は、ルーチン500以外のルーチンによって例えば、プライマリボリュームのコピーを格納するプライマリサーバブロックデータストレージシステムによって実行されるが、他の実施形態では、ルーチン500は、ブロック535において、それらのミラーボリュームのコピーへの類似の、もしくは同一のデータアクセス要求を送ることによって複数のミラーボリュームのコピーのうちの1つまたは複数のミラーボリュームのコピーを保守することをさらに支援することができる。さらに、いくつかの実施形態では、対応するユーザによって例えば、そのボリュームのスナップショットコピーを作成する要求の一部として明示的に要求されるまで、ボリュームをアーカイブストレージシステム上に格納しないが、他の実施形態では、例えば、アーカイブストレージシステムのコピーがプライマリボリュームのコピーおよび/またはミラーボリュームのコピーに対する外部記憶域として使用される場合少なくともいくつかのボリュームの少なくともいくつかの部分のコピーを、アーカイブストレージシステム上に保持しうる。ブロック535の後に、ルーチンはブロック540に進み、所定の制限時間内にブロック535で送られた要求についてプライマリサーバブロックデータストレージシステムから、オペレーションの成功を示すなどの、応答を受け取ったかどうかを判定する。応答を受け取っていない場合、ルーチンは、プライマリサーバブロックデータストレージシステムは利用不可能であると判定し、ブロック545に進み、複数のミラーボリュームのコピーのうちの1つを新規プライマリボリュームのコピーとしてアタッチし、そのミラーボリュームのコピーに対するサーバブロックデータストレージシステムを、そのボリュームに対する新規プライマリサーバブロックデータストレージシステムとして関連付ける変更を開始する。さらに、ルーチンは、ブロック535に関して上で示されているのと似た方法で新規プライマリボリュームのコピーにデータアクセス要求を同様に送り、さらにいくつかの実施形態では、適切な応答を受け取ったかどうかを監視し、受け取っていなければ再びブロック545に進むことができる例えば、他のミラーボリュームのコピーを格上げし、このプロセスを繰り返す。いくつかの実施形態において、新規プライマリボリュームのコピーとしてのミラーボリュームのコピーへの変更の開始は、ルーチン400とコンタクトをとってどのミラーボリュームのコピーが新規プライマリボリュームのコピーになるべきかを決定すること、ルーチン500によってミラーボリュームのコピーがプライマリボリュームのコピーになるように格上げされたときに例えば、プライマリボリュームのコピーが利用不可能であるという指示がブロック545のルーチン500によって送られたことがきっかけでルーチン400から命令を受け取ることなどによって、ルーチン400と連携して実行されうる。ブロック530において、受け取った要求が1つのアタッチされているボリュームに対するデータアクセス要求でないと判定された場合、ルーチンは、ブロック585に進み、1つまたは複数の他の指示されたオペレーションを適宜実行する。他のオペレーションは、さまざまな実施形態において、1つまたは複数のボリューム例えば、管理されている1つまたは複数の実行プログラムのアタッチ先となるボリュームに対する新規の格上げされたプライマリボリュームのコピーに対する新規ボリュームの情報の、ルーチン400からの命令、ルーチン500に関連付けられているコンピューティングノード上の実行プログラムからボリュームをデタッチする命令などの、さまざまな形態をとりうる。それに加えて、少なくともいくつかの実施形態では、ルーチン500は、ルーチン500が1つまたは複数の関連付けられている仮想マシンコンピューティングノードを管理する仮想マシンモニターの一部として、またはそのような仮想マシンモニターと連携して動作する場合などに、仮想マシンモニターの1つまたは複数の他のアクションをさらに実行することができる。ブロック515、525、545、もしくは585の後、または、ブロック540において、所定の制限時間内に応答を受け取ったと判定された場合、ルーチンは、ブロック595に進み、明示的な終了命令を受け取るまで続けるかどうかを決定する。処理を続ける場合、ルーチンはブロック505に戻り、そうでなければ、ブロック599に進んで終了する。それに加えて、少なくともいくつかの種類の要求については、ルーチンは、いくつかの実施形態において、要求側に対して指定されているアクセス権および/または要求の関連付けられているターゲット例えば、指示されているボリュームなどに基づき、要求側がその要求を行う権限を与えられていることをさらに確認することができる。いくつかのそのような実施形態では、対価の支払いが行われない場合にその要求を実行しないなどのために、権限付与の確認は、要求された機能に対する対価を要求側から徴収することまたはそのような対価の支払いがすでに行われていることを確認することをさらに含むことができる。例えば、少なくともいくつかの実施形態および状況において関連する支払いを伴いうる種類の要求としては、指示されたプログラムを実行する要求、ボリュームをアタッチする要求、いくつかの種類またはすべての種類のデータアクセス要求を実行する要求、および他の種類の指示されたオペレーションが挙げられる。さらに、ユーザに代わって実行されるいくつかの種類またはすべての種類のアクションを監視して計測し、例えば、後から、それらのアクションのうちの少なくともいくつかについて対応する利用毎の料金を決定する際に利用することができる。図6は、サーバブロックデータストレージシステムのルーチン600の例示的な一実施形態の流れ図である。このルーチンは、例えば、サーバブロックデータストレージシステム上のソフトウェアコンポーネントの実行により、そのサーバストレージシステムにおける1つまたは複数のブロックデータストレージボリューム上のブロックデータの格納を管理するなどのために例えば、図1および/または図2のサーバブロックデータストレージシステム165に対し実行されうる。他の実施形態では、1つまたは複数のサーバブロックデータストレージシステムを管理するために1つまたは複数の他のコンピューティングシステム上でソフトウェアを実行することなどにより、他の方法でルーチンの機能の一部または全部が提供されうる。ルーチンの例示されている実施形態は、ブロック605から開始し、そこで、要求を受け取る。ルーチンは610に進み、受け取った要求が、サーバストレージシステムに対する利用可能なストレージ領域例えば、1つまたは複数のローカルのハードディスク上のストレージ領域の1ブロックを新規の指示されたボリュームに関連付けることなどによって、新規ボリュームを作成することに関係しているかどうかを判定する。この要求は、例えば、ルーチン400から、および/または作成される新規ボリュームに関連付けられているユーザからの要求としてよい。もしそうであれば、ルーチンはブロック615に進み、新規ボリュームに関する情報を格納し、ブロック620において、その新規ボリュームに対するストレージ領域例えば、指示されたサイズのストレージ領域の論理線形ブロックを初期化する。別のところでさらに詳しく説明されているように、いくつかの実施形態では、新規ボリュームは、他の既存のボリュームもしくはスナップショットボリュームのコピーに基づいて作成される場合があり、その場合、ルーチンは、ブロック620において、適切なデータをストレージ領域にコピーすることによって新規ボリュームに対するストレージ領域を初期化することができるが、他の実施形態では、例えば、ストレージ領域をデフォルト値に初期化する、すべてゼロで埋めるなど他の方法で新規ボリュームのストレージ領域を初期化することができる。ブロック610において、受け取った要求が新規ボリュームを作成する要求でないと判定された場合、ルーチンは、ブロック625に進み、データアクセス要求を開始した実行プログラムに関連付けられているノードマネージャなどから、サーバストレージシステム上に格納されている既存のボリュームに対するデータアクセス要求を受け取ったかどうかを判定する。受け取った要求がボリュームに対するデータアクセス要求である場合、ルーチンはブロック630に進み、指示されたボリューム上でデータアクセス要求を実行する。次いで、ルーチンはブロック635に進み、例示されている実施形態では、現在のサーバストレージシステム上の指示されたボリュームがそのボリュームに対するプライマリボリュームのコピーであるなどの場合に、そのボリュームの1つまたは複数のミラーコピーの対応する更新を適宜開始する。他の実施形態では、プライマリボリュームのコピーとミラーボリュームのコピーとの間の整合性は、他の方法で維持されうる。別のところでさらに詳しく説明されているように、いくつかの実施形態では、少なくともいくつかのボリュームの格納されているデータ内容に対する少なくともいくつかの修正も、これらのボリュームのバックアップコピーまたは他のコピーを保持するなどのために、1つまたは複数のアーカイブストレージシステム例えば、リモートのストレージサービスでに対して実行される場合があり、その場合、ルーチンは、アーカイブストレージシステムに対する更新をさらに開始してアーカイブストレージシステム上のボリュームの1つまたは複数のコピーに対する対応する更新を開始することができる。さらに、ルーチンが、ブロック635または別のところで、例えば、ミラーボリュームのコピーおよびそのミラーサーバブロックデータストレージシステムが利用可能であるか定期的にチェックするためにブロック635で送られたデータアクセス要求に、またはルーチン600によって開始されたpingメッセージもしくは他のステータスメッセージに所定の制限時間内に応答できないこと、エラー条件が発生しているか、シャットダウンまたは故障モードオペレーションを開始したという、ミラーサーバブロックデータストレージシステムからのメッセージなどに基づいてボリュームのミラーコピーが利用可能でないと判定した場合、ルーチンは、対応するメッセージを図4のルーチン400に送るか、またはミラーボリュームのコピーの作成を直接開始することなどによって、ボリュームの新規ミラーコピーを作成するアクションを開始することができる。ブロック625において、受け取った要求が1つのボリュームに対するデータアクセス要求でないと判定された場合、ルーチンはブロック685に進み、1つまたは複数の他の指示されたオペレーションを適宜実行する。そのような他のオペレーションは、さまざまな実施形態においてさまざまな形態をとることができ、例えば、すべてというわけではないが、ボリュームを例えば、関連付けられているストレージ領域を他の用途に利用できるようにするなどのために削除するオペレーション、ボリュームを指示されたコピー先に例えば、他のサーバブロックデータストレージシステム上の他の新規ボリュームに、スナップショットボリュームのコピーとして使用するために1つまたは複数のアーカイブストレージシステムに、などコピーするオペレーション、ボリュームの使用率に関する情報を例えば、顧客による課金ベースのボリュームの使用率などのボリュームの使用率の計測のために提供するオペレーション、サーバブロックデータストレージシステムに対する進行中の保守または診断例えば、ローカルのハードディスクのデフラグを実行するオペレーションなどが挙げられる。ブロック620、635、または685の後、ルーチンは、ステップ695に進み、明示的な終了命令を受け取るまで続けるかどうかを決定する。もしそうであれば、ルーチンはブロック605に戻り、そうでなければ、ブロック699に進んで終了する。それに加えて、少なくともいくつかの種類の要求については、ルーチンは、いくつかの実施形態において、要求側に対して指定されているアクセス権および/または要求の関連付けられているターゲット例えば、指示されているボリュームなどに基づき、要求側がその要求を行う権限を与えられていることをさらに確認することができるが、他の実施形態では、このルーチンは、要求を受け取ったルーチン例えば、ノードマネージャルーチンおよび/またはBDSシステムマネージャルーチンによって要求がすでに許可されていると仮定することができる。さらに、ユーザに代わって実行されるいくつかの種類またはすべての種類のアクションを監視して計測し、例えば、後から、それらのアクションのうちの少なくともいくつかについて対応する利用毎の料金を決定する際に利用することができる。図7Aおよび7Bは、PESシステムマネージャルーチン700の例示的な一実施形態の流れ図である。ルーチンは、例えば、図1のPESシステムマネージャモジュール140の実行によって実現されうる。他の実施形態では、ブロックデータストレージサービスの一部としてのルーチン400などによる、他の方法でルーチン700の機能の一部または全部が提供されうる。例示されている実施形態において、ルーチンはブロック705から開始し、そこで、プログラムの実行に関係するステータスメッセージまたは他の要求を受け取る。ルーチンはブロック710に進み、受け取ったメッセージまたは要求の種類を判定する。ブロック710において、要求の種類が、ユーザもしくは実行プログラムなどから、プログラムを実行する要求であると判定された場合、ルーチンはブロック720に進み、プログラム実行に利用可能な候補ホストコンピューティングシステムのグループなどから、指示されたプログラムを実行する1つまたは複数のホストコンピューティングシステムを選択する。いくつかの実施形態では、ユーザの指令または注目する他の指示された基準に従って、1つまたは複数のホストコンピューティングシステムが選択されうる。次いで、ルーチンはブロック725に進み、選択されたホストコンピューティングシステムに関連付けられているノードマネージャとやり取りすることなどによって、選択されたホストコンピューティングシステムのそれぞれによるプログラムの実行を開始する。次いで、ブロック730において、ルーチンは1つまたは複数のハウスキーピングタスク例えば、計測および/または他の課金目的などのために、ユーザによるプログラム実行を監視することを適宜実行する。ブロック710において、受け取った要求が、後から実行するために利用可能であるものとして新規プログラムを登録する要求であると判定された場合、ルーチンは、ブロック740に進み、その使用のためのプログラムおよび関連する管理情報例えば、プログラムを使用する権限を付与されているユーザに関係するアクセス制御情報および/または許可されている使用の種類の指示を格納し、いくつかの状況では、プログラムの少なくとも1つの集中型コピーをさらに格納することができる。次いで、ルーチンはブロック745に進み、後で使用する指示されたプログラムのいくつかのコピーを1つまたは複数のホストコンピューティングシステムに分散配置するオペレーションを適宜開始し、例えばそれらのホストコンピューティングシステムのローカルのストレージから格納されているコピーを取り出すことによってそれらのホストコンピューティングシステムによるプログラムの起動を高速化することなどを行う。他の実施形態では、指示されたプログラムの1つまたは複数のコピーを、1つまたは複数のリモートのアーカイブストレージシステム上に置くなど他の方法で格納することができる。ブロック710において、1つまたは複数のホストコンピューティングシステムに関するステータスメッセージをブロック705で受け取ったと判定された場合、ルーチンは、ブロック750に進み、実行プログラムの使用率および/またはホストコンピューティングシステムに関する他のステータス情報例えば、非ローカルブロックデータストレージボリュームの使用率を追跡するなどのために、それらのホストコンピューティングシステムに関する情報を更新する。いくつかの実施形態では、ステータスメッセージが、ノードマネージャモジュールによって定期的に送信されるが、他の実施形態では、ステータスメッセージは、別のときに例えば、関連する変更が生じた場合に必ず送信されうる。さらに他の実施形態では、ルーチン700は、必要に応じてノードマネージャモジュールおよび/またはホストコンピューティングシステムに情報を要求することができる。ステータスメッセージは、特定のコンピューティングシステム上で現在実行されているプログラムの数およびID、特定のコンピューティングシステム上のローカルのプログラムリポジトリに現在格納されているプログラムのコピーの数およびID、非ローカルブロックデータストレージボリュームのアタッチおよび/または他の使用状況、コンピューティングシステムに対する性能関係およびリソース関係の情報例えば、CPU、ネットワーク、ディスク、メモリなどの利用度、コンピューティングシステムに対する構成情報、ならびに特定のコンピューティングシステム上のハードウェアまたはソフトウェアに関係するエラーもしくは障害状態のレポートなどの、さまざまな種類の情報を含みうる。ブロック705におけるルーチンが、他の種類の要求またはメッセージを受け取ったと判定した場合、このルーチンは、ブロック785に進み、1つまたは複数の他の指示されたオペレーションを適宜実行する。このような他のオペレーションとしては、例えば、現在実行中のプログラムの実行のサスペンドまたは終了、およびプログラム実行サービスのシステム管理の側面を他の何らかの形で管理するオペレーション新規ユーザの登録、プログラム実行サービスの使用に対する対価の決定および徴収などが挙げられる。ブロック745、750、または785の後に、ルーチンはブロック730に進み、1つまたは複数のハウスキーピングタスクを適宜実行する。次いで、ルーチンはステップ795に進み、明示的な終了命令を受け取るまで続けるかどうかを決定する。処理を続ける場合、ルーチンはブロック705に戻り、そうでなければ、ブロック799に進んで終了する。本明細書では例示していないが、少なくともいくつかの実施形態では、ブロックデータストレージサービスと連携するなどして、プログラム実行サービスによってさまざまな種類のプログラムを実行する機能が付加的に提供されうる。少なくともいくつかの実施形態において、1つまたは複数のコンピューティングシステム上の1つのプログラムの1つまたは複数のコピーもしくはインスタンスの実行は、これらのプログラムインスタンスの即時実行に対する現在の実行要求に応答して開始されうる、あるいは、この開始は、今現在のこれらのプログラムインスタンスの、その時点では未来の実行をスケジュールしたか、または他の何らかの方法で予約したすでに受け取っているプログラム実行要求に基づくものとしてよい。プログラム実行要求は、例えば、プログラム実行サービスによって提供される対話型コンソールまたは他のGUIを介してユーザから直接的に、または他のプログラムもしくはそれ自身の1つまたは複数のインスタンスの実行を自動的に開始するユーザの実行プログラムから例えば、ウェブサービスを使用するAPIなどの、プログラム実行サービスによって提供されるAPIを介してなど、さまざまな形で受け取ることができる。プログラム実行要求は、未来の実行のためにすでに登録されているか、または例えば、単一の所望の数のインスタンス、最小および最大数の所望のインスタンスなどとして表される他の何らかの方法で供給されたプログラムの指示などのプログラムの1つまたは複数のインスタンス、および同時に実行すべきプログラムの多数のインスタンスの実行の開始において使用されるさまざまな情報を含むことができる。それに加えて、いくつかの実施形態では、プログラム実行要求は、さまざまな他の種類の情報を含むことができ、これらの情報としては、例えば、すでに登録されているユーザのユーザアカウントの指示または他の指示例えば、すでに格納されているプログラムを識別し、および/または要求されたプログラムインスタンスの実行が許可されているかどうかを判定する際に使用する、プログラムインスタンスの実行のためにプログラム実行サービスに対して支払いを行う際に使用する支払い財源の指示、プログラムインスタンスの実行に対する前払いまたは他の許可の指示例えば、一定時間、一定数のプログラム実行インスタンス、一定のリソース利用度などに対して有効なすでに購入されているサブスクリプション、および/または即座に実行され、および/または後で実行するために格納されるプログラムの実行可能コピーもしくは他のコピーが挙げられる。それに加えて、いくつかの実施形態では、プログラム実行要求は、1つまたは複数のプログラムインスタンスの実行に対するさまざまな他の種類の選好および/または要求条件をさらに含みうる。このような選好および/または要求条件は、プログラムインスタンスのいくつかまたはすべてが、使用のために利用可能な複数のコンピューティングシステムを収容している複数のデータセンターのうちの1つのデータセンター内、互いに近い位置にある複数のコンピューティングシステム上、および/または他の指示された特性例えば、指示されたブロックデータストレージボリュームのコピーを提供するを有するコンピューティングシステムに近い位置にある1つまたは複数のコンピューティングシステム上など、指示された地理的位置および/または論理的位置の場所で実行されるという指示を含むことができる。図8は、アーカイブマネージャルーチン800の例示的な一実施形態の流れ図である。ルーチンは、例えば、図3のアーカイブマネージャモジュール355、図2C~2Fのアーカイブマネージャモジュール190、および/または図1のコンピューティングシステム180上の1つまたは複数のアーカイブマネージャモジュール図示せずのうちの1つのモジュールの実行によって実現されうる。他の実施形態では、ブロックデータストレージサービスの一部としてのルーチン400などによる、他の方法でルーチン800の機能の一部または全部が提供されうる。例示されている実施形態では、アーカイブストレージシステムは、ブロックデータストレージボリュームの一部にそれぞれ対応する複数のチャンクに分けてデータを格納するが、他の実施形態では、他の方法でデータを格納することができる。ルーチン800の例示されている実施形態は、ブロック805から開始し、そこで、情報または要求を受け取る。次いで、ルーチンはブロック810に進み、要求側が課金ベースのアクセスの対価を支払い済みであるか、または指示され要求を実行させるアクセス権を他の何らかの形で有している場合などに、その要求または情報が許可されているかどうかを判定する。ブロック815において、要求または情報が許可されていると判定された場合、ルーチンは820に進み、そうでなければブロック805に戻る。ブロック820において、ルーチンは、受け取った要求が指示されたボリュームに対する新規スナップショットコピーを格納する要求であるかどうかを判定する。新規スナップショットコピーを格納する要求である場合、ルーチンはブロック825に進み、そのボリュームに対する複数のボリュームのチャンクを取得し、各チャンクをアーカイブストレージシステムのデータオブジェクトとして格納し、次いで、そのスナップショットボリュームのコピーに関連付けられているチャンクに対するデータオブジェクトに関する情報を格納する。別のところでさらに詳しく説明されているように、そのボリュームのチャンクは、ブロック805において複数の明確に区別されるブロックとして受け取ること、ブロック805においてブロック825で複数のチャンクに分けられたブロックデータの単一の大きなグループとして受け取ること、ブロック825において個別のチャンク、または複数のチャンクに分けられるブロックデータの単一の大きなグループとして取り出すこと、アーカイブストレージシステム上にすでに格納されていることなどによる、さまざまな方法で取得することができる。ブロック820において、受け取った要求が、新規スナップショットボリュームのコピーを格納する要求でないと判定された場合、ルーチンは、ブロック830に進み、受け取った要求が、前のスナップショットボリュームのコピーからの変更を反映するボリュームの増分のスナップショットコピーを格納する要求であるかどうかを判定する。増分のスナップショットコピーを格納する要求である場合、ルーチンはブロック835に進み、ボリュームの前のスナップショットコピー以降に変更されたスナップショットのチャンクを識別し、ブロック825に関してすでに説明されているのと同様の方法で変更されたスナップショットのチャンクのコピーを取得する。次いで、ルーチンはブロック840に進み、変更されたチャンクのコピーを格納し、新規の変更されたチャンクおよび対応するデータオブジェクトが新規のスナップショットボリュームのコピーに関連付けられている前の他の未変更のチャンクに関する情報を格納する。前のスナップショットボリュームのコピー以降に変更されたチャンクは、ボリュームのプライマリコピーおよび/またはミラーコピーを格納するサーバブロックデータストレージシステムなどによる、さまざまな方法で例えば、そのボリュームに対する書き込みデータアクセス要求または他の修正要求を追跡することによって識別されうる。ブロック830において、受け取った要求が、増分スナップショットボリュームのコピーを格納する要求でないと判定された場合、ルーチンは、ブロック845に進み、その要求が、対応する格納されているデータオブジェクトなどから、スナップショットボリュームのコピーの1つまたは複数のチャンクを提供する要求であるかどうかを判定する。もしそうであれば、ルーチンはブロック850に進み、指示されたスナップショットボリュームのコピーのチャンク複数可に対するデータを取り出して、その取り出されたデータを要求側に送る。そのような要求は、例えば、スナップショットボリュームのコピーに対するチャンクのすべてを取り出すことによって既存のスナップショットボリュームのコピーに基づき新規ボリュームを作成するオペレーションの一部、最小のミラーボリュームのコピーを復元するためにスナップショットボリュームのコピーのチャンクの部分集合を取り出すオペレーションの一部などとすることができる。ブロック845において、受け取った要求が、1つまたは複数のスナップショットボリュームのコピーのチャンクを提供する要求でないと判定された場合、ルーチンはブロック855に進み、受け取った要求が、例えば、それらの格納されているデータオブジェクトがそれらのボリュームのチャンクのための外部記憶域として使用される場合に特定のボリュームのチャンクを表す1つまたは複数のデータオブジェクトに対する読み取りデータアクセス要求および/または書き込みデータアクセス要求を実行するなどのために、スナップショットボリュームのコピーの一部ではない1つまたは複数のボリュームのチャンクに対する1つまたは複数のデータアクセス要求を実行する要求であるかどうかを判定する。ボリュームのチャンクに対するデータアクセス要求を実行する要求である場合、ルーチンはブロック860に進み、指示されたボリュームのチャンク複数可に対応する格納されているデータオブジェクト複数可に対する要求されたデータアクセス要求複数可を実行する。別のところでさらに詳しく説明されているように、少なくともいくつかの実施形態では、格納されているデータオブジェクトを修正するときに、書き込みデータアクセス要求が即座に実行されないように、遅延更新技術が使用される場合がある。その場合、同じデータオブジェクトに対する後の読み取りデータアクセス要求が完了する前に、厳密なデータ整合性を確実にするために1つまたは複数の先行する書き込みデータアクセス要求が実行されうる。ブロック855において、受け取った要求が、1つまたは複数のボリュームのチャンクに対するデータアクセス要求を実行すべきでないと判定された場合、ルーチンは、ブロック885に進み、1つまたは複数の他の指示されたオペレーションを適宜実行する。このような他のオペレーションとしては、例えば、例えば、外部記憶域として、または他の目的のためにそのボリュームを表す対応する格納されているデータオブジェクトを更新するためにボリュームに対して実行される修正に対応する情報を繰り返し受け取り、適切な対応するアクションを起こすオペレーション、格納されているスナップショットボリュームのコピーを削除するか、もしくは他の何らかの形で修正する要求に応答するオペレーション、アーカイブストレージシステムを提供するストレージサービスによるアカウントを管理するユーザの要求に応答するオペレーションなどが挙げられる。ブロック825、840、850、860、または885の後、ルーチンは、ステップ895に進み、明示的な終了命令を受け取るまで続けるかどうかを決定する。処理を続ける場合、ルーチンはブロック805に戻り、そうでなければ、ブロック899に進んで終了する。上で述べたように、少なくともいくつかの種類の要求については、ルーチンは、いくつかの実施形態において、要求側に対して指定されているアクセス権および/または要求の関連付けられているターゲット例えば、指示されているボリュームまたはスナップショットボリュームのコピーなどに基づき、要求側がその要求を行う権限を与えられていることを確認することができるが、他の実施形態では、このルーチンは、要求を受け取ったルーチン例えば、ノードマネージャルーチンおよび/またはBDSシステムマネージャルーチンによって要求がすでに許可されていると仮定することができる。さらに、少なくともいくつかの実施形態では、ユーザに代わって実行されるいくつかの種類またはすべての種類のアクションを監視して計測し、例えば、後から、それらのアクションのうちの少なくともいくつかについて対応する利用毎の料金を決定する際に利用することができる。説明されている技術が使用されうるプログラム実行サービスの例示的な実施形態のオペレーションに関係する追加の詳細は、そのそれぞれが全体として参照により本明細書に組み込まれている、2006年3月31日出願の特許文献1、名称ManagingExecutionOfProgramsByMultipleComputingSystems、特許文献3の一部継続出願である2007年9月6日出願の特許文献2、名称ExecutingProgramsBasedonUser-SpecifiedConstraints、および2008年6月24日出願の特許文献4、名称ManagingCommunicationsBetweenComputingNodesに記載されている。それに加えて、スナップショットボリュームのコピーを格納するために、またはリモートのアーカイブストレージシステムを他の何らかの方法で実現するために使用されうるリモートのストレージサービスの一例のオペレーションに関係する追加の詳細は、参照により本明細書に組み込まれている、2005年12月29日出願の特許文献6の優先権を主張する2007年7月5日公開の特許文献5、名称DistributedStorageSystemWithWebServicesClientInterfaceに記載されている。さらに、ユーザがそのユーザのプログラムまたは他のユーザのための他のデータへの有料アクセスを提供する一例に関係する追加の詳細は、全体として参照により本明細書に組み込まれており、別のところでさらに詳しく説明されているように、ボリュームおよび/またはスナップショットコピーへのさまざまな種類の有料アクセスに対してユーザが他のユーザに課金することについて本明細書において同様に使用されうる、2007年12月21日出願の特許文献7、名称ProvidingConfigurablePricingforExecutionofSoftwareImagesに記載されている。それに加えて、すでに述べているように、いくつかの実施形態では、仮想マシンを使用している場合があり、もしそうであれば、プログラム実行サービスによって実行されるプログラムは、仮想マシンのイメージ全体を含みうる。そのような実施形態では、実行されるプログラムは、オペレーティングシステム全体、ファイルシステムおよび/または他のデータ、ならびに場合によっては、1つまたは複数のユーザレベルのプロセスを含むことができる。他の実施形態では、実行されるプログラムは、一部の機能を提供するように相互運用性を有する1つまたは複数の他の種類の実行可能ファイルを含むことができる。さらに他の実施形態では、実行されるプログラムは、提供されるコンピューティングシステム上でネイティブコードで実行されうる、またはインタプリタ、または他のソフトウェアによって実装されるハードウェア抽象化を用いて間接的に実行されうる命令およびデータの物理的または論理的な集合体を含むことができる。より一般的には、いくつかの実施形態において、実行されるプログラムは、1つまたは複数のアプリケーションプログラム、アプリケーションフレームワーク、ライブラリ、アーカイブ、クラスファイル、スクリプト、コンフィギュレーションファイル、データファイルなどを含みうる。それに加えて、すでに述べているように、少なくともいくつかの実施形態および状況において、ボリュームは、一方のサーバストレージシステムから他方のサーバストレージシステムへと移行されるか、または他の何らかの方法で移動されうる。さまざまな技術が、ボリュームの移動に使用され、そのような移動は、さまざまな方法で開始されうる。いくつかの状況では、この移動は、ボリュームが格納されるサーバストレージシステムに関係する問題例えば、サーバストレージシステムの故障および/またはサーバストレージシステムへのネットワークアクセスの障害を反映することがある。他の状況では、この移動は、優先度の高いボリュームなどについて、既存のサーバストレージシステム上に格納される他のボリュームのコピーを受け入れるために、またはボリュームのコピーを格納する元のサーバストレージシステムを、保守、エネルギー節約などの理由からシャットダウンできるようにするなどのために、限られた数のサーバストレージシステム上のボリュームのコピーのストレージを合併するために実行されうる。特定の一例において、サーバストレージシステム上に格納された1つまたは複数のボリュームのコピーが、そのサーバストレージシステムから利用可能である以上のリソースを必要とする場合、それらのボリュームのコピーのうちの1つまたは複数を追加のリソースを持つ1つまたは複数の他のサーバストレージシステムに移行することができる。1つまたは複数のサーバストレージシステムが予想される以上に少ないリソースを有しているとき、これらのサーバストレージシステムのうちの1つまたは複数が予想許容される以上に多いリソースを使用するとき、または1つまたは複数のサーバストレージシステムの利用可能なリソースが、1つまたは複数の予約されているかまたは格納されているボリュームのコピーの可能なリソース必要量に関して故意に過剰コミットされる実施形態などの、さまざまな理由から、利用可能なリソースの過度の使用が発生することがある。例えば、ボリュームのコピーの予想されるリソースの必要量が利用可能なリソースの範囲内にある場合、リソースの最大必要量は、利用可能なリソースの量を超えることがある。利用可能なリソースの過剰使用も、ボリュームの格納または使用に必要な実際のリソースが利用可能なリソースの量を超えた場合に発生しうる。いくつかの実施形態では、上述のルーチンによって提供される機能が、さらに多くのルーチンに分割されるか、または少数のルーチンにまとめられるなど、代替的な方法で実現されうることは理解されるであろう。同様に、いくつかの実施形態では、例示されているルーチンは、他の例示されているルーチンが、それぞれ、そのような機能を欠いているか、または含んでいるとき、または提供される機能の量が変更されたときなどに、説明されている以上に多い、または少ない機能を備えることもある。それに加えて、さまざまなオペレーションが、特定の方法で例えば、逐次的実行または並列実行で、および/または特定の順序で実行されるように示されていることがあるが、他の実施形態では、これらのオペレーションは、他の順序および他の方法で実行されうる。同様に、上述のデータ構造は、他の実施形態では異なる方法で、例えば、単一のデータ構造を複数のデータ構造に分割すること、または複数のデータ構造を単一のデータ構造にまとめることなどによって構造化され、例えば、他の例示されているデータ構造が、それぞれ、そのような情報を欠いているか、もしくは含んでいるとき、または格納されている情報の量または種類が変更されたときに説明されている以上に多いまたは少ない情報を格納することができる。上記の説明から、本明細書では例示を目的として特定の実施形態が説明されているが、本発明の精神および範囲を逸脱することなくさまざまな修正を加えられることは理解されるであろう。したがって、本発明は、付属の請求項および請求項に記載の要素により定められる場合を除き制限されない。それに加えて、本発明の特定の態様は、特定の請求項の形式で以下に提示されているが、発明者は、利用可能な任意の請求項の形式で本発明のさまざまな態様を考えている。例えば、本発明のいくつかの態様のみが、コンピュータ可読媒体で具現化されるものとして現時点では記載されていることがあるが、他の態様も、同様に、そのように具現化されうる。条項1。ブロックデータストレージサービスのコンピューティングシステムが実行プログラムに対してリモートのブロックデータストレージ機能を提供するための方法であって、ブロックデータストレージサービスによって提供される非ローカルブロックデータストレージへの第1の実行プログラムのアクセスを開始する要求を受け取るステップであって、第1のプログラムは地理的位置の同じ場所に配置される、1つまたは複数の内部ネットワークを共有する複数のコンピューティングシステムのうちの第1のコンピューティングシステム上で実行され、ブロックデータストレージサービスは複数のコンピューティングシステムのうちの複数の他のコンピューティングシステムの第1のグループを、複数の実行プログラムに対してブロックデータストレージを提供するブロックデータストレージシステムとして使用し、第1のコンピューティングシステムは第1のグループの一部ではない、ステップと、内部ネットワークへの第1のコンピューティングシステムのアクセスを管理するブロックデータストレージサービスの第1のノードマネージャモジュールの制御下で、ブロックデータストレージサービスによって提供される非ローカルブロックデータストレージを表す第1のコンピューティングシステムの論議ローカルストレージデバイスに対する第1の実行プログラムによって開始される1つまたは複数のデータアクセス要求を受け取るステップと、第1の実行プログラムに代わって第2のコンピューティングシステムと内部ネットワーク上でやり取りすることによって受け取ったデータアクセス要求に自動的に応答し、第2のコンピューティングシステム上に格納されているプライマリコピーを有し、第3のコンピューティングシステム上に格納されているミラーコピーを有する第1のブロックデータストレージボリューム上で受け取ったデータアクセス要求を実行するステップであって、第2のコンピューティングシステムおよび第3のコンピューティングシステムはそれぞれブロックデータストレージシステムの第1のグループの一部であり、内部ネットワーク上でやり取りするオペレーションは第1の実行プログラムに対して透過的である方法により実行される、ステップと、第1のブロックデータストレージボリューム上で受け取ったデータアクセス要求を実行した後に、第2のコンピューティングシステム上の第1のブロックデータストレージボリュームのプライマリコピーが利用不可能であると自動的に判定するステップと、第1のコンピューティングシステムの論理ローカルブロックストレージデバイスに対して第1の実行プログラムによって開始される1つまたは複数の他のデータアクセス要求を受け取った後に、第1の実行プログラムに代わって第3のコンピューティングシステムと内部ネットワーク上でやり取りすることによって受け取った他のデータアクセス要求に自動的に応答し、第3のコンピューティングシステム上の第1のブロックデータストレージボリュームのミラーコピー上で他のデータアクセス要求を実行するステップとを含む方法。条項2。ブロックデータストレージサービスに対するシステムマネージャモジュールの制御の下で、ブロックデータストレージサービスがブロックデータストレージを複数の実行プログラムに提供するステップを管理するステップをさらに含み、この管理するステップは、複数の実行プログラムのうちの1つまたは複数によってそれぞれ使用される複数のブロックデータストレージボリュームを作成するステップであって、ブロックデータストレージボリュームのそれぞれを作成するステップは複数のブロックデータストレージシステムのうちの一方のブロックデータストレージシステム上にブロックデータストレージボリュームのプライマリコピーを格納するステップを含み、複数のブロックデータストレージシステムのうちの他方のブロックデータストレージシステム上にブロックデータストレージボリュームのミラーコピーを格納するステップを含み、これら複数のプログラムは複数の関連付けられているノードマネージャモジュールを有する複数のコンピューティングシステム上で実行される、ステップと、ブロックデータストレージボリュームのミラーコピーを、作成されたブロックデータストレージボリュームのうちの1つのブロックデータストレージボリュームのプライマリコピーを格納するブロックデータストレージシステムが実行プログラムから受け取った書き込みデータアクセス要求に基づいてそのプライマリコピーに格納されているブロックデータに対する修正を実行するときに、その1つのブロックデータストレージボリュームのミラーコピーに格納されているブロックデータに対しその修正を実行することによって保持するステップと、ブロックデータストレージボリュームに対するアクセスを、作成されたブロックデータストレージボリュームのうちの1つのブロックデータストレージボリュームのプライマリコピーが利用不可能になったときに、その1つのブロックデータストレージボリュームのミラーコピーをその1つのブロックデータストレージボリュームの新規プライマリコピーとなるように格上げすることによって保持するステップとを含む条項1の方法。条項3。複数のプログラムが、複数のコンピューティングシステムのうちのいくつかのコンピューティングシステムの第2のグループ上のプログラム実行サービスによって実行され、第2のグループのコンピューティングシステムは、第1のグループのコンピューティングシステムから明確に区別され、第1のコンピューティングシステムは、少なくとも1つのプログラムをそれぞれ実行することができる複数の仮想マシンをホストし、第1の実行プログラムは、複数のプログラムのうちの1つであり、さらに第1のコンピューティングシステムによってホストされる複数の仮想マシンのうちの少なくとも1つによって実行される仮想マシンのイメージであり、第1のノードマネージャモジュールは、第1のコンピューティングシステム用の仮想マシンモニターの一部として実行される条項2の方法。条項4。実行プログラムに対してブロックデータストレージ機能を提供するためのコンピュータによって実装される方法であって、第1のプログラムが実行される第1のコンピューティングシステムのローカルにあるブロックストレージデバイスに対して第1の実行プログラムによって開始される1つまたは複数のデータアクセス要求の第1のグループの1つまたは複数の指示を受け取るステップであって、ローカルのブロックストレージデバイスは1つまたは複数のネットワーク上で明確に区別される第2のデータストレージシステムによって提供される非ローカルブロックデータストレージボリュームを表す論理デバイスである、ステップと、第1の実行プログラムに代わって第2のデータストレージシステムと1つまたは複数のネットワーク上でやり取りすることによってデータアクセス要求の第1のグループの受け取った指示に自動的に応答し、第2のデータストレージシステムによって提供されるブロックデータストレージボリュームによって格納されているブロックデータ上で第1のグループのデータアクセス要求を実行させるステップと、第2のデータストレージシステムによって提供されるブロックデータストレージボリュームが利用不可能になったと判定し、第2のデータストレージシステムによって提供されるブロックデータストレージボリュームのミラーコピーを収容する第3のデータストレージシステムを自動的に識別するステップであって、第3のデータストレージシステムは第1のコンピューティングシステムおよび第2のデータストレージシステムから明確に区別される、ステップと、第1のコンピューティングシステム上のローカルのブロックストレージデバイスに対して第1の実行プログラムによって開始される1つまたは複数の他のデータアクセス要求の第2のグループの1つまたは複数の指示を受け取るステップと、第1の実行プログラムに代わって第3のデータストレージシステムと1つまたは複数のネットワーク上でやり取りすることによってデータアクセス要求の第2のグループの受け取った指示に自動的に応答し、識別された第3のデータストレージシステム上のブロックデータストレージボリュームのミラーコピー上で第2のグループのデータアクセス要求を実行させるステップとを含むコンピュータによって実装される方法。条項5。1つまたは複数のデータアクセス要求の第1のグループの指示を受け取る前に、第1の実行プログラムで使用できるようにブロックデータストレージボリュームを第1のコンピューティングシステムにアタッチするステップをさらに含み、第1のコンピューティングシステムにブロックデータストレージボリュームをアタッチするステップは第1のコンピューティングシステムに対する論理ローカルブロックストレージデバイスを第2のデータストレージシステムによって提供されるブロックデータストレージボリュームに関連付けるステップを含む条項4の方法。条項6。第1のコンピューティングシステムにブロックデータストレージボリュームをアタッチする前に、第2のデータストレージシステム上に作成されたブロックデータストレージボリュームのプライマリコピーを格納し、第3のデータストレージシステム上にブロックデータストレージボリュームのミラーコピーを格納して、第2のデータストレージシステムによって提供されるブロックデータストレージボリューム上の第1のグループのデータアクセス要求の実行が、ブロックデータストレージボリュームの格納されているプライマリコピー上で行われるようにすることによってブロックデータストレージボリュームを作成するステップをさらに含む条項5の方法。条項7。ブロックデータストレージボリュームは、ブロックデータストレージサービスによって提供され、ブロックデータストレージボリュームの作成は、第1の実行プログラムに関連付けられているユーザからの要求に応答してブロックデータストレージサービスのシステムマネージャモジュールによって実行され、ブロックデータストレージボリュームを第1のコンピューティングシステムにアタッチするステップは、1つまたは複数のネットワークへの第1のコンピューティングシステムのアクセスを管理するブロックデータストレージサービスのノードマネージャモジュールによって実行される条項6の方法。条項8。第2のデータストレージシステムによって提供されるブロックデータストレージボリュームが利用不可能になったと判定した後、第1のコンピューティングシステムから明確に区別され、また第2のデータストレージシステムおよび第3のデータストレージシステムからも明確に区別される第4のデータストレージシステム上へのブロックデータストレージボリュームの他のコピーの作成を自動的に開始するステップをさらに含む条項4の方法。条項9。第2のデータストレージシステムによって提供されるブロックデータストレージボリュームが、第2のデータストレージシステムの障害、第2のデータストレージシステムの接続性の障害、および第2のデータストレージシステムが格納されているブロックデータストレージボリュームに確実にアクセスできない状況のうちの少なくとも1つの状況に基づいて利用不可能になっている条項8の方法。条項10。第1のグループの複数のデータアクセス要求のうちの少なくとも1つのデータアクセス要求の実行は、第2のデータストレージシステム上のブロックデータストレージボリュームに格納されているブロックデータを修正するステップを含み、第3のデータストレージシステム上のブロックデータストレージボリュームのミラーコピーに格納されているブロックデータを修正することによって第3のデータストレージシステム上のブロックデータストレージボリュームのミラーコピーを保持するステップをさらに含む条項4の方法。条項11。第1のコンピューティングシステムおよび第2のデータストレージシステムは、単一の地理的位置の同じ場所に配置されている複数のコンピューティングシステムの部分集合であり、複数のコンピューティングシステムは、ブロックデータストレージサービスによって提供される複数のブロックデータストレージシステムを含み、第2のデータストレージシステムおよび第3のデータストレージシステムは、それぞれ、複数のブロックデータストレージシステムのうちの明確に区別される1つのブロックデータストレージシステムである条項4の方法。条項12。複数のコンピューティングシステムが一緒に配置される単一の地理的位置の同じ場所は、1つのデータセンターであり、方法は、データセンターの外部に配置されているリモートのストレージサービスの1つまたは複数アーカイブデータストレージシステム上のブロックデータストレージボリュームの少なくとも1つのコピーを作成するステップをさらに含む条項11の方法。条項13。第1のプログラムが、複数のコンピューティングシステムのうちのいくつかのコンピューティングシステム上の複数のユーザに対し複数のプログラムを実行するプログラム実行サービスによって実行され、第1のコンピューティングシステムは、少なくとも1つのプログラムをそれぞれ実行することができる複数の仮想マシンをホストし、第1の実行プログラムは、複数のプログラムのうちの1つであり、さらに第1のコンピューティングシステムによってホストされる複数の仮想マシンのうちの少なくとも1つによって実行される仮想マシンのイメージであり、データアクセス要求の第1のグループの指示を受け取るステップと他のデータアクセス要求の第2のグループの指示を受け取るステップとデータアクセス要求の第1のグループおよび第2のグループの受け取った指示に対して自動的に応答するステップは、第1のコンピューティングシステム用の仮想マシンモニターの実行の一部として実行され、第1のコンピューティングシステムは、第1の実行プログラムによる使用のために利用可能である1つまたは複数の他の実際のローカルのストレージデバイスを備える条項11の方法。条項14。コンピュータ可読媒体であって、このコンピュータ可読媒体の内容により1つまたは複数のコンピューティングシステムはブロックデータストレージ機能を実行プログラムに提供することができるが、これは、ブロックデータストレージボリュームに対する第1のコンピューティングシステム上で実行される第1のプログラムによって開始される1つまたは複数のデータアクセス要求の1つまたは複数の指示を受け取るステップであって、ブロックデータストレージボリュームは1つまたは複数のネットワークによって第1のコンピューティングシステムから隔てられている第2のブロックデータストレージシステムによって提供される、ステップと、第2のブロックデータストレージシステム上のブロックデータストレージボリュームに対しデータアクセス要求の実行を開始することによってデータアクセス要求の受け取った指示に自動的に応答するステップと、第1のコンピューティングシステムおよび第2のブロックデータストレージシステムから明確に区別される1つまたは複数の第3のブロックデータストレージシステムのうちの各ブロックデータストレージシステム上にブロックデータストレージボリュームのミラーコピーを自動的に作成するステップと、第2のデータストレージシステムによって提供されるブロックデータストレージボリュームが、利用不可能になった後に、第3のブロックデータストレージシステムのうちの少なくとも1つの第3のブロックデータストレージシステム上に作成されたブロックデータストレージボリュームのミラーコピー上で他のデータアクセス要求を実行することによってブロックデータストレージボリュームに対し第1のプログラムによって開始される1つまたは複数の他のデータアクセス要求の1つまたは複数の受け取った指示に自動的に応答するステップとを含む方法によって行われるコンピュータ可読媒体。条項15。第1のグループのデータアクセス要求の実行とブロックデータストレージボリュームのミラーコピーの自動作成と第2のグループの他のデータアクセス要求の実行は、ブロックデータストレージサービスのシステムマネージャモジュールによって自動的に実行され、第1のプログラムは、第1のコンピューティングシステムのローカルにあり、第2のブロックデータストレージシステムによって提供されるブロックデータストレージボリュームを表す論理ブロックデータストレージデバイスとやり取りすることによってブロックデータストレージボリュームに対するデータアクセス要求を開始し、第1のプログラムによって開始されたデータアクセス要求を受け取るステップは、論理ローカルブロックデータストレージデバイスとの第1のプログラムによるやり取りの後に第1のコンピューティングシステムに関連付けられているブロックデータストレージサービスのノードマネージャモジュールによって実行され、データアクセス要求の受け取った指示に自動的に応答するステップは、1つまたは複数のネットワーク上で受け取ったデータアクセス要求の送信を開始することによって一部はノードマネージャモジュールの制御下で実行される条項14のコンピュータ可読媒体。条項16。第2のブロックデータストレージシステムは、データアクセス要求の受け取った指示に自動的に応答したときにブロックデータストレージボリュームのプライマリコピーを格納し、この方法は、他のデータアクセス要求の受け取った指示に自動的に応答する前に、ブロックデータストレージボリュームのプライマリコピーが利用不可能になったことを自動的に判定するステップと、複数の第3のブロックデータストレージシステムのうちの1つの第3のブロックデータストレージシステム上のブロックデータストレージボリュームのミラーコピーを選択するステップと、第3のブロックデータストレージシステム上のブロックデータストレージボリュームの選択されたミラーコピーをブロックデータストレージボリュームの現在のプライマリコピーになるよう格上げするステップとをさらに含む条項14のコンピュータ可読媒体。条項17。1つまたは複数の第3のブロックデータストレージシステムのうちの各第3のブロックデータストレージシステム上のブロックデータストレージボリュームのミラーコピーを自動作成するステップは、データアクセス要求の受け取った指示に自動的に応答する前に複数の第3のブロックデータストレージシステムのうちの1つの第3のブロックデータストレージシステム上にブロックデータストレージボリュームの第1のミラーコピーを作成するステップを含み、データアクセス要求の受け取った指示に自動的に応答するステップは、ブロックデータストレージボリュームの第1のミラーコピー上でデータアクセス要求を実行するステップをさらに含み、ブロックデータストレージボリュームの第1のミラーコピーは、選択されたミラーコピーであり、1つまたは複数の第3のブロックデータストレージシステムのうちの各第3のブロックデータストレージシステム上のブロックデータストレージボリュームのミラーコピーを自動作成するステップは、ブロックデータストレージボリュームのプライマリコピーが利用不可能になったと判定した後に、複数の第3のブロックデータストレージシステムのうちの他方の第3のブロックデータストレージシステム上のブロックデータストレージボリュームの第2のミラーコピーを作成するステップをさらに含む条項16のコンピュータ可読媒体。条項18。第2のブロックデータストレージシステムは、データアクセス要求の受け取った指示に自動的に応答したときにブロックデータストレージボリュームのプライマリコピーを格納し、第1のプログラムによって開始された指示されている1つまたは複数のデータアクセス要求は、第1のプログラムによって開始されたデータアクセス要求の第2のグループであり、この方法は、第2のグループのデータアクセス要求の指示を受け取る前に、第1のコンピューティングシステムおよび第2のブロックデータストレージシステムおよび1つまたは複数の第3のブロックデータストレージシステムから明確に区別される第4のブロックデータストレージシステム上にブロックデータストレージボリュームの初期プライマリコピーを作成するステップと、第4のブロックデータストレージシステム上に作成されたプライマリコピー上で第1のグループのデータアクセス要求を実行することによってブロックデータストレージボリュームに対して第1のプログラムによって開始される1つまたは複数のデータアクセス要求の第1のグループの1つまたは複数の受け取った指示に自動的に応答するステップであって、データアクセス要求の第1のグループはデータアクセス要求の第2のグループの前に第1のプログラムによって開始される、ステップと、データアクセス要求の第1のグループの指示に応答した後に、ブロックデータストレージボリュームのプライマリコピーを第4のブロックデータストレージシステムから第2のブロックデータストレージシステムに移動することを決定し、ブロックデータストレージボリュームのプライマリコピーを第2のブロックデータストレージシステムに移動した後にブロックデータストレージボリュームに対し第1のプログラムによって開始されるデータアクセス要求が第2のブロックデータストレージシステム上のブロックデータストレージボリュームの移動されたプライマリコピー上で実行されるようにするステップとをさらに含む条項14のコンピュータ可読媒体。条項19。ブロックデータストレージボリュームのプライマリコピーを第4のブロックデータストレージシステムから第2のブロックデータストレージシステムに移動することを決定するステップは、第2のブロックデータストレージシステムが、ブロックデータストレージボリュームのプライマリコピーを提供する能力に関して第4のブロックデータストレージシステムに比べて高いとする自動判定とブロックデータストレージボリュームに関連付けられているブロックデータストレージサービスのユーザから受け取った要求のうちの少なくとも1つに基づいて実行される条項18のコンピュータ可読媒体。条項20。第1のプログラムは、ユーザによって支払われる料金と引き換えにプログラム実行サービスのユーザに代わって複数のホストコンピューティングシステム上のプログラム実行サービスによって実行される複数のプログラムのうちの1つであり、第1のコンピューティングシステムは、複数のホストコンピューティングシステムのうちの1つであり、第1のプログラムによるブロックデータストレージボリュームの使用は、第1のプログラムが代わって実行されるプログラム実行サービスのユーザが払う料金と引き換えに実行される条項14のコンピュータ可読媒体。条項21。コンピュータ可読媒体は、内容を格納するコンピューティングシステムのメモリおよびそれらの内容を含む生成された格納されているデータ信号を含むデータ伝送媒体のうちの少なくとも1つである条項14のコンピュータ可読媒体。条項22。内容は、実行されると1つまたは複数のコンピューティングシステムに方法を実行させる命令である条項14のコンピュータ可読媒体。条項23。実行プログラムに対してブロックデータストレージ機能を提供するように構成されているシステムであって、1つまたは複数のメモリと、複数のブロックデータストレージシステムを使用して、ブロックデータストレージサービスのユーザによって作成され、それらのユーザに関連付けられている1つまたは複数の実行プログラムに代わって1つまたは複数のネットワーク上でアクセスされるブロックデータストレージボリュームを格納するブロックデータストレージサービスを提供するように構成されているブロックデータストレージシステムマネージャモジュールであって、ブロックデータストレージサービスを提供するステップは、1つまたは複数の実行プログラムで使用するための1つまたは複数のブロックデータストレージボリュームを作成するステップであって、ブロックデータストレージボリュームのそれぞれを作成するステップは複数のブロックデータストレージシステムのうちの1つのブロックデータストレージシステム上に格納されるブロックデータストレージボリュームのプライマリコピーを作成するステップを含む、ステップと、データアクセス要求のそれぞれについて、そのデータアクセス要求に対する1つのブロックデータストレージボリュームのプライマリコピーが利用可能である場合に、その利用可能なプライマリコピー上でデータアクセス要求の実行を開始することによって作成された複数のブロックデータストレージボリュームのうちの1つのブロックデータストレージボリュームに対し複数の実行プログラムのうちの1つの実行プログラムによってそれぞれ開始されたデータアクセス要求に応答するステップと、受け取った指示に応答して、複数のブロックデータストレージボリュームのうちの第1のブロックデータストレージボリュームの新規コピーを作成するステップであって、第1のブロックデータストレージシステムのプライマリボリュームがブロックデータストレージシステムの最初のものに格納されており、作成された新規コピーは第1のブロックデータストレージシステムから明確に区別される1つまたは複数の他のデータストレージシステム上に格納される、ステップとを含む、ブロックデータストレージシステムマネージャモジュールとを備えるシステム。条項24。第1のブロックデータストレージボリュームを作成するステップは、第1のブロックデータストレージシステムおよび1つまたは複数の他のデータストレージシステムから明確に区別される複数のブロックデータストレージシステムのうちの第2のブロックデータストレージシステム上に格納される第1のブロックデータストレージボリュームのミラーコピーを作成するステップをさらに含み、データアクセス要求に応答するステップは、第1のブロックデータストレージボリュームに対する複数の実行プログラムのうちの1つの実行プログラムによって開始される各データアクセス要求について、第1のブロックデータストレージボリュームのプライマリコピーが利用可能でない場合に、第2のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームのミラーコピー上でデータアクセス要求の実行を開始するステップをさらに含む条項23のシステム。条項25。データアクセス要求に応答するステップは、第1のブロックデータストレージボリュームに対する複数の実行プログラムのうちの1つの実行プログラムによって開始される各データアクセス要求について、第1のブロックデータストレージボリュームのプライマリコピーが利用可能である場合に、第2のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームのミラーコピー上でデータアクセス要求の実行を開始するステップをさらに含む条項24のシステム。条項26。データアクセス要求に応答するステップは、第1のブロックデータストレージシステム上の第1のブロックデータストレージボリュームのプライマリコピーが利用可能でない第1のブロックデータストレージボリュームに対して複数の実行プログラムのうちの1つの実行プログラムによって開始される初期データアクセス要求について、第2のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームのミラーコピーを、第1のブロックデータストレージシステム上の第1のブロックデータストレージボリュームのプライマリコピーの代わりに、第1のブロックデータストレージボリュームの新規プライマリコピーとなるように格上げし、それにより、第2のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームのミラーコピー上でその初期データアクセス要求の実行を開始するステップが第2のブロックデータストレージシステム上の第1のブロックデータストレージボリュームの格上げされた新規プライマリコピー上で実行され、その初期データアクセス要求の後に第1のブロックデータストレージボリュームに対して複数の実行プログラムのうちの1つの実行プログラムによって開始されるデータアクセス要求が、第2のブロックデータストレージシステム上の第1のブロックデータストレージボリュームの格上げされた新規プライマリコピー上で実行されるようにするステップをさらに含む条項24のシステム。条項27。第2のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームのミラーコピーを第1のブロックデータストレージボリュームの新規プライマリコピーとなるように格上げするステップは、第1のブロックデータストレージシステムおよび第2のブロックデータストレージシステムから明確に区別される複数のブロックデータストレージシステムのうちの第3のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームの第2のミラーコピーを作成するステップをさらに含み、第1のブロックデータストレージボリュームに対する複数の実行プログラムのうちの1つの実行プログラムによって開始される初期データアクセス要求の後の複数のデータアクセス要求のうちの各データアクセス要求に応答するステップは、第3のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームの第2のミラーコピー上でデータアクセス要求の実行を開始するステップをさらに含む条項26のシステム。条項28。第1のブロックデータストレージボリュームの新規コピーは受け取った指示に応答して作成され、この受け取った指示は、第1のブロックデータストレージボリュームのプライマリコピーを第1のブロックデータストレージシステムから明確に区別される第2のブロックデータストレージシステムに移動する決定に基づいており、1つまたは複数の他のデータストレージシステムは、第2のブロックデータストレージシステムであり、第2のブロックデータストレージシステム上に第1のブロックデータストレージボリュームの新規コピーを作成するステップは、第2のブロックデータストレージシステム上に作成された新規コピーを第1のブロックデータストレージボリュームの新規プライマリコピーとして指定するステップを含み、ブロックデータストレージシステムマネージャモジュールがブロックデータストレージサービスを提供するステップは、第1のブロックデータストレージボリュームの新規コピーを作成した後に、第2のブロックデータストレージシステム上に格納されている第1のブロックデータストレージボリュームの新規プライマリコピー上で追加のデータアクセス要求の実行を開始することによって第1のブロックデータストレージボリュームに対する複数の実行プログラムのうちの1つの実行プログラムによってそれぞれ開始される1つまたは複数の追加のデータアクセス要求に応答するステップをさらに含む条項23のシステム。条項29。第1のブロックデータストレージボリュームのプライマリコピーを第1のブロックデータストレージシステムから第2のブロックデータストレージシステムに移動することを決定するステップは、第2のブロックデータストレージシステムが、第1のブロックデータストレージボリュームのプライマリコピーへの1つまたは複数の実行プログラムのアクセスを提供する能力に関して第1のブロックデータストレージシステムに比べて高いとする自動判定と第1のブロックデータストレージボリュームに関連付けられているブロックデータストレージデバイスのユーザから受け取った要求のうちの少なくとも1つに基づいて実行される条項28のシステム。条項30。第1のブロックデータストレージボリュームの新規コピーは受け取った指示に応答して作成され、この受け取った指示は、第1のブロックデータストレージボリュームからリモートにあるストレージサービスを使用して第1のブロックデータストレージボリュームのスナップショットコピーを作成する要求であり、1つまたは複数の他のデータストレージシステムは、リモートのストレージサービスの一部であるアーカイブデータストレージシステムであり、第1のブロックデータストレージボリュームの新規コピーを作成するステップは、リモートのストレージサービスとやり取りして新規の第1のブロックデータストレージボリュームのコピーを第1のブロックデータストレージボリュームのスナップショットコピーとして作成するステップを含む条項23のシステム。条項31。単一の地理的位置の同じ場所に配置されている複数のブロックデータストレージシステムをさらに備え、単一の地理的位置とは別の場所にある、ブロックデータ以外のフォーマットでデータを格納する複数の他のデータストレージシステムを使用するリモートのストレージサービスをさらに備えるシステムであって、ブロックデータストレージシステムマネージャモジュールがブロックデータストレージサービスを提供するステップは、作成された複数のブロックデータストレージボリュームのうちの1つまたは複数のブロックデータストレージボリュームのそれぞれについて、ブロックデータストレージボリュームの複数の部分をリモートのストレージサービスの複数の他のデータストレージシステムのうちの1つまたは複数のデータストレージシステム上に格納し、格納される複数の部分はそれぞれ1つまたは複数のデータアクセス要求によって修正されたブロックデータストレージボリュームの一部を表すステップをさらに含む条項23のシステム。条項32。複数の実行プログラムのうちの1つまたは複数の実行プログラムにそれぞれ関連付けられている複数のノードマネージャモジュールをさらに備え、ノードマネージャモジュールのそれぞれが1つまたは複数のネットワーク上でブロックデータストレージサービスにそれらのデータアクセス要求を転送することによって1つまたは複数の作成されたブロックデータストレージボリュームに対して1つまたは複数の関連付けられている実行プログラムによって開始されるデータアクセス要求を管理する条項23のシステム。条項33。複数のホストコンピューティングシステムを使用してプログラム実行サービスのユーザのために複数のプログラムを実行するプログラム実行サービスを提供するように構成されているプログラム実行サービスシステムマネージャモジュールをさらに備え、プログラム実行サービスによって実行される複数のプログラムは作成された1つまたは複数ブロックデータストレージボリュームを使用する1つまたは複数の実行プログラムを含む条項23のシステム。条項34。システムは、1つまたは複数のメモリのうちの少なくとも1つのメモリを備える第1のコンピューティングシステムを備え、ブロックデータストレージシステムマネージャモジュールは、少なくとも1つのメモリを使用して第1のコンピューティングシステムによって実行されるソフトウェア命令を備える条項23のシステム。条項35。ブロックデータストレージシステムマネージャモジュールは、複数のブロックデータストレージシステムを使用して、ブロックデータストレージサービスのユーザによって作成され、それらのユーザに関連付けられている1つまたは複数の実行プログラムに代わって1つまたは複数のネットワーク上でアクセスされるブロックデータストレージボリュームを格納するブロックデータストレージサービスを提供するための1つまたは複数の手段からなり、ブロックデータストレージサービスを提供するステップは、1つまたは複数の実行プログラムで使用するための1つまたは複数のブロックデータストレージボリュームを作成するステップであって、ブロックデータストレージボリュームのそれぞれを作成するステップは複数のブロックデータストレージシステムのうちの1つのブロックデータストレージシステム上に格納されるブロックデータストレージボリュームのプライマリコピーを作成するステップを含む、ステップと、データアクセス要求のそれぞれについて、そのデータアクセス要求に対する1つのブロックデータストレージボリュームのプライマリコピーが利用可能である場合に、その利用可能なプライマリコピー上でデータアクセス要求の実行を開始することによって作成された複数のブロックデータストレージボリュームのうちの1つのブロックデータストレージボリュームに対し複数の実行プログラムのうちの1つの実行プログラムによってそれぞれ開始されたデータアクセス要求に応答するステップと、受け取った指示に応答して、複数のブロックデータストレージボリュームのうちの第1のブロックデータストレージボリュームの新規コピーを作成するステップであって、第1のブロックデータストレージシステムのプライマリボリュームがブロックデータストレージシステムの最初のものに格納されており、作成された新規コピーは第1のブロックデータストレージシステムから明確に区別される1つまたは複数の他のデータストレージシステム上に格納される、ステップとを含む、ブロックデータストレージシステムマネージャモジュールとを備える条項23のシステム。条項36。ブロックデータストレージサービスのコンピューティングシステムがリモートの格納されているブロックデータへの実行プログラムのアクセスを管理するための方法であって、ブロックデータストレージサービスによって提供される非ローカルブロックデータストレージへの指示されたプログラムの第1のコピーのアクセスを開始する要求を受け取るステップであって、第1のプログラムのコピーは第1の地理的位置の同じ場所に配置される、1つまたは複数の内部ネットワークを共有する複数のコンピューティングシステムのうちの第1のコンピューティングシステム上で実行され、ブロックデータストレージサービスは複数のコンピューティングシステムのうちの複数の他のコンピューティングシステムの第1のグループを、複数の実行プログラムに対してブロックデータストレージを提供するブロックデータストレージシステムとして使用し、第1のコンピューティングシステムは第1のグループの一部ではない、ステップと、受け取った要求に応答して、第1のブロックデータストレージボリュームを、実行する第1のプログラムのコピーで使用できるように第1のコンピューティングシステムにアタッチするステップであって、第1のブロックデータストレージボリュームは第2のコンピューティングシステム上に格納されているプライマリコピーを有し、さらに第3のコンピューティングシステム上に格納されているミラーコピーを有し、第2のコンピューティングシステムおよび第3のコンピューティングシステムはそれぞれブロックデータストレージシステムの第1のグループの一部であり、第1のブロックデータストレージボリュームをアタッチするステップは第1のコンピューティングシステムの第1の論理ローカルブロックストレージデバイスを第1のブロックデータストレージボリュームに関連付けるステップを含む、ステップと、ブロックデータストレージサービスのシステムマネージャモジュールの制御下で、複数の実行プログラムへのブロックデータストレージの提供を、第1の論理ローカルブロックストレージデバイスに対して実行する第1のプログラムのコピーによって開始された1つまたは複数のデータアクセス要求の指示を受け取った後に、第1のブロックデータストレージボリュームのプライマリコピーおよびミラーコピー上でデータアクセス要求を実行するステップであって、データアクセス要求を実行することにより第1のブロックデータストレージボリュームのプライマリコピーおよびミラーコピーのそれぞれに同じ格納済みブロックデータが保持されるような仕方で第1のブロックデータストレージボリューム上に格納されているブロックデータに対して1つまたは複数の修正が加えられる、ステップにより自動的に応答するステップと、データアクセス要求を実行した後に、第1のプログラムのコピーの実行が終了したと自動的に判定し、この判定に応答して、第1のブロックデータストレージボリュームへの指示されたプログラムのアクセスを自動的に保持し、アクセスを保持するステップは明確に区別される第4のコンピューティングシステム上で指示されたプログラムの第2のコピーの実行を開始するステップと第1のブロックデータストレージボリュームを、実行する第2のプログラムのコピーで使用できるように第4のコンピューティングシステムにアタッチするステップとを含み、アタッチするステップは第4のコンピューティングシステムの第2の論理ローカルブロックストレージデバイスを第1のブロックデータストレージボリュームに関連付けるステップを含む、ステップと、第2の論理ローカルブロックストレージデバイスに対して実行する第2のプログラムのコピーによって開始された1つまたは複数の他のデータアクセス要求の指示を受け取った後に、第1のブロックデータストレージボリュームのプライマリコピーおよびミラーコピー上で他のデータアクセス要求を実行するステップであって、データアクセス要求を実行することにより第1のブロックデータストレージボリュームのプライマリコピーおよびミラーコピーがそれぞれ同じブロックデータを格納するような仕方で第1のブロックデータストレージボリューム上に格納されているブロックデータに対して1つまたは複数のさらなる修正が加えられる、ステップにより自動的に応答するステップとによって管理するステップとを含む方法。条項37。第1のブロックデータストレージボリュームを第1のコンピューティングシステムにアタッチするステップは、内部ネットワークへの第1のコンピューティングシステムのアクセスを管理するブロックデータストレージサービスのノードマネージャモジュールによって実行され、この方法は、ノードマネージャモジュールの制御下で、第1論理ローカルブロックストレージデバイスに対して実行する第1のプログラムのコピーによって開始されるデータアクセス要求を受け取るステップと、内部ネットワーク上でシステムマネージャモジュールとやり取りしてデータアクセス要求の指示を送ることによりデータアクセス要求の実行を円滑にするステップであって、内部ネットワーク上でやり取りするステップは実行する第1のプログラムのコピーに対して透過的な方法で実行される、ステップとをさらに含む条項36の方法。条項38。複数のプログラムが、複数のコンピューティングシステムのうちのいくつかのコンピューティングシステムの第2のグループ上のプログラム実行サービスによって実行され、第2のグループのコンピューティングシステムは、第1のグループのコンピューティングシステムから明確に区別され、第1のコンピューティングシステムは、少なくとも1つのプログラムをそれぞれ実行することができる複数の仮想マシンをホストし、指示されたプログラムは、複数のプログラムのうちの1つであり、さらに第1のコンピューティングシステムによってホストされる複数の仮想マシンのうちの少なくとも1つによって実行される仮想マシンのイメージであり、ノードマネージャモジュールは、第1のコンピューティングシステム用の仮想マシンモニターの一部として実行される条項37の方法。条項39。実行プログラムによるブロックデータストレージ機能へのアクセスを管理するためのコンピュータによって実装される方法であって、非ローカルブロックデータストレージボリューム上に格納されているブロックデータにアクセスするために第1のコンピューティングシステム上で実行される第1のプログラムの第1のコピーによって開始された1つまたは複数のデータアクセス要求の第1のグループの1つまたは複数の指示を受け取るステップであって、ブロックデータストレージボリュームは1つまたは複数のネットワーク上で明確に区別される第2のデータストレージシステムによって提供され、第1の実行するプログラムのコピーがブロックデータストレージボリュームを表す第1のコンピューティングシステムのローカルにある第1の論理ブロックストレージデバイスとのやり取りを介してブロックデータストレージボリュームに対するデータアクセス要求を開始するように第1のコンピューティングシステムにアタッチされる、ステップと、第1の実行プログラムのコピーに代わって第2のデータストレージシステムとやり取りすることによってデータアクセス要求の第1のグループの受け取った指示に自動的に応答し、第2のデータストレージシステムによって提供されるブロックデータストレージボリューム上の第1のグループのデータアクセス要求の実行を開始するステップと、第1のプログラムのコピーが利用不可能になったと判定した後に、第1のプログラムの第2のコピーが実行されている、第1のコンピューティングシステムおよび第2のデータストレージシステムから明確に区別される第3のコンピューティングシステムを識別し、第2のプログラムのコピーがブロックデータストレージボリュームを表す第3のコンピューティングシステムのローカルにある第2の論理ブロックストレージデバイスにアクセスできるようにブロックデータストレージボリュームを第3のコンピューティングシステムにアタッチするステップと、第3のコンピューティングシステム上の第2の論理ローカルブロックストレージデバイスとのやり取りを介してブロックデータストレージボリュームに対して第2の実行プログラムのコピーによって開始される1つまたは複数の他のデータアクセス要求の第2のグループの1つまたは複数の指示を受け取るステップと、第2の実行プログラムのコピーに代わって第2のデータストレージシステムとやり取りすることによってデータアクセス要求の第2のグループの受け取った指示に自動的に応答し、第2のデータストレージシステム上のブロックデータストレージボリューム上の第2のグループのデータアクセス要求の実行を開始するステップとを含む方法。条項40。第1のプログラムのコピーが利用不可能になったと自動的に判定するステップをさらに含み、第1のプログラムのコピーが利用不可能である状況は第1のコンピューティングシステムの障害、第1のコンピューティングシステムの接続性の障害、および第1のコンピューティングシステムが第1のプログラムのコピーの実行を継続できない状況のうちの少なくとも1つの状況に基づく条項39の方法。条項41。第1のプログラムの第2のコピーが実行されている第3のコンピューティングシステムを識別するステップおよびブロックデータストレージボリュームを第3のコンピューティングシステムにアタッチするステップは、ブロックデータストレージボリュームへの第1のプログラムのアクセスを保持するために自動的に実行され、アクセスを自動的に維持するステップは第1のプログラムのコピーが利用不可能になったと自動的に判定したことに応答して実行される条項40の方法。条項42。第1のプログラムのコピーが利用不可能になったと判定するステップ、第1のプログラムの第2のコピーが実行されている第3のコンピューティングシステムを識別するステップ、およびブロックデータストレージボリュームを第3のコンピューティングシステムにアタッチするステップのうちの少なくとも1つのステップは、第1のプログラムおよびブロックデータストレージボリュームに関連付けられているユーザから受け取った1つまたは複数の指示に応答して実行される条項39の方法。条項43。第1のプログラムの第2のコピーが実行されている第3のコンピューティングシステムを識別するステップは、第1のプログラムのコピーが利用不可能になったと判定した後に、第3のコンピューティングシステム上で第2のプログラムのコピーの実行を開始するステップを含む条項39の方法。条項44。第1のプログラムの第1のコピーは、複数の明確に区別されるコンピューティングシステム上で実行される第1のプログラムの複数のコピーのうちの1つのコピーであり、これら複数のコピーのうちの少なくとも1つのコピーは、それらの複数のコピーのうちの1つまたは複数の他のコピーに対する代替的コピーであり、第1のプログラムの第2のコピーが実行されている第3のコンピューティングシステムを識別するステップは、少なくとも1つの代替的コピーのうちの1つのコピーである第2のコピーに基づいて第1のプログラムの第2のコピーを選択するステップを含む条項39の方法。条項45。第1のコンピューティングシステムにブロックデータストレージボリュームをアタッチする前に、第2のデータストレージシステム上にブロックデータストレージボリュームを作成し、明確に区別される第4のブロックデータストレージシステム上にブロックデータストレージボリュームのミラーコピーを作成するステップをさらに含み、第1のグループおよび第2のグループのデータアクセス要求に応答するステップは、第1のグループおよび第2のグループのデータアクセス要求の、作成されたミラーコピー上での実行を開始するステップをさらに含む条項39の方法。条項46。1つまたは複数のデータアクセス要求の指示を受け取る前に、第1の実行プログラムのコピーで使用できるようにブロックデータストレージボリュームを第1のコンピューティングシステムにアタッチするステップをさらに含み、ブロックデータストレージボリュームをアタッチするステップは第1の論理ブロックストレージデバイスを第2のデータストレージシステムによって提供されるブロックデータストレージボリュームに関連付けるステップを含み、1つまたは複数のネットワークへの第1のコンピューティングシステムのアクセスを管理するノードマネージャモジュールによって実行され、ノードマネージャモジュールは第1の実行プログラムに関連付けられているユーザからの要求に応答してブロックデータストレージボリュームをすでに作成しているブロックデータストレージサービスの一部である条項39の方法。条項47。第1のコンピューティングシステム、第3のコンピューティングシステム、および第2のデータストレージシステムは、第1の地理的位置の同じ場所に配置されている複数のコンピューティングシステムの部分集合であり、複数のコンピューティングシステムは、ブロックデータストレージサービスによって提供される複数のブロックデータストレージシステムを含み、第2のデータストレージシステムおよび第3のデータストレージシステムは、それぞれ、複数のブロックデータストレージシステムのうちの明確に区別される1つのブロックデータストレージシステムである条項39の方法。条項48。第1の地理的位置の場所は、データセンターであり、第1のプログラムが、データセンターにある複数のコンピューティングシステムのうちのいくつかのコンピューティングシステム上の複数のユーザに対し複数のプログラムを実行するプログラム実行サービスによって実行され、第1のコンピューティングシステムは、少なくとも1つのプログラムをそれぞれ実行することができる複数の仮想マシンをホストし、第1の実行プログラムは、複数のプログラムのうちの1つであり、さらに第1のコンピューティングシステムによってホストされる複数の仮想マシンのうちの少なくとも1つによって実行される仮想マシンのイメージであり、データアクセス要求の第1のグループの指示を受け取るステップと他のデータアクセス要求の第2のグループの指示を受け取るステップとデータアクセス要求の第1のグループおよび第2のグループの受け取った指示に対して自動的に応答するステップは、第1のコンピューティングシステム用の仮想マシンモニターの実行の一部として実行され、第1のコンピューティングシステムは、第1の実行プログラムによる使用のために利用可能である1つまたは複数の他の実際のローカルのストレージデバイスを備える条項47の方法。条項49。コンピュータ可読媒体であって、このコンピュータ可読媒体の内容により1つまたは複数のコンピューティングは実行プログラムによるブロックデータストレージ機能へのアクセスを管理することができ、そのために実行する方法は、第1のコンピューティングシステム上で実行される第1のプログラムによる非ローカルブロックデータストレージボリュームへのアクセスを可能にするステップであって、このアクセスによって第1のプログラムはブロックデータストレージボリュームに対するデータアクセス要求を開始することができ、ブロックデータストレージボリュームは1つまたは複数のネットワークにより第1のコンピューティングシステムから隔てられている第2のブロックデータストレージシステムによって提供される、ステップと、ブロックデータストレージボリュームに対する第1のプログラムによって開始された1つまたは複数のデータアクセス要求の1つまたは複数の受け取った指示に自動的に応答するステップであって、応答するステップは第2のブロックデータストレージシステム上のブロックデータストレージボリュームに対するデータアクセス要求の実行を開始するステップを含む、ステップと、第1のコンピューティングシステム上で実行されている第1のプログラムが利用不可能になった後に、第1のプログラムに許可していたアクセスに代えて、第3のコンピューティングシステム上で実行されている第2のプログラムにブロックデータストレージボリュームへのアクセスを許可するステップと、ブロックデータストレージボリュームに対する第2のプログラムによって開始された1つまたは複数の他のデータアクセス要求の1つまたは複数の受け取った指示に自動的に応答するステップであって、応答するステップは第2のブロックデータストレージシステム上のブロックデータストレージボリュームに対する他のデータアクセス要求の実行を開始するステップを含む、ステップとを含むコンピュータ可読媒体。条項50。第1のプログラムおよび第2のプログラムは、単一のプログラムの実行コピーであり、アクセスを第1のプログラムに許可するステップは、第1の実行プログラムがブロックデータストレージボリュームを表す第1のコンピューティングシステムのローカルにある第1の論理ブロックストレージデバイスとのやり取りを介してブロックデータストレージボリュームに対するデータアクセス要求を開始するようにブロックデータストレージボリュームを第1のコンピューティングシステムにアタッチするステップを含み、アクセスを第2のプログラムに許可するステップは、第2のプログラムが実行される第3のコンピューティングシステムを識別するステップと第2の実行プログラムがブロックデータストレージボリュームを表す第3のコンピューティングシステムのローカルにある第2の論理ブロックストレージデバイスにアクセスできるようにブロックデータストレージボリュームを第3のコンピューティングシステムにアタッチするステップとを含み、第1のプログラムおよび第2のプログラムによるブロックデータストレージボリュームに対するデータアクセス要求は、ブロックデータストレージボリューム上に格納されているブロックデータにアクセスする要求である条項49のコンピュータ可読媒体。条項51。第1のコンピューティングシステム、第3のコンピューティングシステム、および第2のブロックデータストレージシステムは、単一の地理的位置の場所に配置され、第1のコンピューティングシステムおよび第2のブロックデータストレージシステムは、1つまたは複数のネットワークによって隔てられており、第2のブロックデータストレージシステム上のブロックデータストレージボリュームに対するデータアクセス要求および他のデータアクセス要求の実行は、ブロックデータストレージサービスのシステムマネージャモジュールによって自動的に実行され、ブロックデータストレージボリュームへのアクセスを第1の実行プログラムに許可するステップは、第1のコンピューティングシステムに関連付けられ、1つまたは複数のネットワークへの第1の実行プログラムのアクセスを管理するブロックデータストレージサービスのノードマネージャモジュールによって実行され、データアクセス要求の受け取った指示に自動的に応答するステップは、1つまたは複数のネットワーク上で受け取ったデータアクセス要求を第2のブロックデータストレージシステムに送信するステップを開始することによって一部はノードマネージャモジュールの制御下で実行される条項50のコンピュータ可読媒体。条項52。ブロックデータストレージボリュームへのアクセスを第2の実行プログラムに許可するステップは、1つまたは複数のネットワークへの第2の実行プログラムのアクセスをさらに管理するノードマネージャモジュールによって実行され、第3のコンピューティングシステムおよび第1のコンピューティングシステムは、単一の物理的コンピューティングシステムの一部であり、他のデータアクセス要求の受け取った指示に自動的に応答するステップは、1つまたは複数のネットワーク上で受け取った他のデータアクセス要求を第2のブロックデータストレージシステムに送信するステップを開始することによって一部はノードマネージャモジュールの制御下で実行される条項51のコンピュータ可読媒体。条項53。コンピュータ可読媒体は、内容を格納するコンピューティングシステムのメモリおよびそれらの内容を含む生成された格納されているデータ信号を含むデータ伝送媒体のうちの少なくとも1つである条項49のコンピュータ可読媒体。条項54。内容は、実行されると1つまたは複数のコンピューティングシステムに方法を実行させる命令である条項49のコンピュータ可読媒体。条項55。実行プログラムによるブロックデータストレージ機能へのアクセスを管理するように構成されているシステムであって、1つまたは複数のメモリと、複数のブロックデータストレージシステムを使用して、ブロックデータストレージサービスのユーザによって作成され、それらのユーザに関連付けられている1つまたは複数の実行プログラムに代わって1つまたは複数のネットワーク上でアクセスされるブロックデータストレージボリュームを格納するブロックデータストレージサービスを提供するように構成されているブロックデータストレージシステムマネージャモジュールであって、ブロックデータストレージサービスを提供するステップは、1つまたは複数の実行プログラムで使用するための1つまたは複数のブロックデータストレージボリュームを作成するステップであって、ブロックデータストレージボリュームのそれぞれは複数のブロックデータストレージシステムのうちの1つのブロックデータストレージシステム上に格納される、ステップと、作成された複数のブロックデータストレージボリュームのうちの第1のブロックデータストレージボリュームへのアクセスを1つまたは複数の実行プログラムのうちの第1の実行プログラムに許可した後に、第1の作成されたブロックデータストレージボリューム上で1つまたは複数のデータアクセス要求の実行を開始することによって第1の作成されたブロックデータストレージボリュームに対し第1のプログラムによって開始された1つまたは複数のデータアクセス要求に応答するステップと、第1のプログラムが利用不可能になり、第1の作成されたブロックデータストレージボリュームへのアクセスを明確に区別される第2の実行プログラムに許可し、利用不可能になった第1のプログラムに許可されていたアクセスを置き換えた後に、第1の作成されたブロックデータストレージボリューム上で1つまたは複数の他のデータアクセス要求の実行を開始することによって第1の作成されたブロックデータストレージボリュームに対し第2のプログラムによって開始された1つまたは複数の他のデータアクセス要求に応答するステップとを含む、ブロックデータストレージシステムマネージャモジュールを備えるシステム。条項56。第1のプログラムおよび第2のプログラムは、単一のプログラムの実行コピーであり、アクセスを第1のプログラムに許可するステップは、第1の実行プログラムが第1のブロックデータストレージボリュームを表す第1のコンピューティングシステムのローカルにある第1の論理ブロックストレージデバイスとのやり取りを介して第1のブロックデータストレージボリュームに対するデータアクセス要求を開始するように第1のブロックデータストレージボリュームを第1のプログラムを実行している第1のコンピューティングシステムにアタッチするステップを含み、アクセスを第2のプログラムに許可するステップは、第2のプログラムが実行される第3のコンピューティングシステムを識別するステップと第2のプログラムが第1のブロックデータストレージボリュームを表す第3のコンピューティングシステムのローカルにある第2の論理ブロックストレージデバイスにアクセスできるように第1のブロックデータストレージボリュームを第3のコンピューティングシステムにアタッチするステップとを含み、第1のプログラムおよび第2のプログラムによる第1のブロックデータストレージボリュームに対するデータアクセス要求は、ブロックデータストレージボリューム上に格納されているブロックデータにアクセスする要求である条項55のシステム。条項57。第1のブロックデータストレージボリュームは、複数のブロックデータストレージシステムのうちの第1のブロックデータストレージシステム上に格納され、第1のコンピューティングシステム、第3のコンピューティングシステム、および第1のブロックデータストレージシステムは、単一の地理的位置の場所に配置され、1つまたは複数のネットワークによって隔てられており、システムは、1つまたは複数のネットワークへの第1のプログラムおよび第2のプログラムのアクセスを管理するために第1のプログラムおよび第2のプログラムに関連付けられているブロックデータストレージサービスの1つまたは複数のノードマネージャモジュールをさらに備え、これにより、データアクセス要求および他のデータアクセス要求への応答は、1つまたは複数のネットワーク上でデータアクセス要求および他のデータアクセス要求を第1のブロックデータストレージシステムに送信するステップを開始することによって一部は1つまたは複数のノードマネージャモジュールの制御下で実行される条項56のシステム。条項58。第1のブロックデータストレージボリュームの第1のコピーは、複数のブロックデータストレージシステムのうちの第1のブロックデータストレージシステム上に格納され、第1のプログラムによって開始されたデータアクセス要求の実行は、第1のブロックデータストレージボリュームの第1のコピー上で実行され、第1のプログラムは、第1の地理的位置の場所にある第1のブロックデータストレージシステムと同じ場所配置されている第1のコンピューティングシステム上で実行され、第2のプログラムは、明確に区別される第2の地理的位置の場所にある第2のコンピューティングシステム上で実行され、第1の作成されたブロックデータストレージボリュームへのアクセスを第2の実行プログラムに許可するステップは、第2のコンピューティングシステムを第1のブロックデータストレージボリュームの第2のコピーを格納する第2の地理的位置の場所にある第2のブロックデータストレージシステムにアタッチするステップを開始するステップを含む条項55のシステム。条項59。システムは、1つまたは複数のメモリのうちの少なくとも1つのメモリを備える第1のコンピューティングシステムを備え、ブロックデータストレージシステムマネージャモジュールは、少なくとも1つのメモリを使用して第1のコンピューティングシステムによって実行されるソフトウェア命令を備える条項55のシステム。条項60。ブロックデータストレージシステムマネージャモジュールは、複数のブロックデータストレージシステムを使用して、ブロックデータストレージサービスのユーザによって作成され、それらのユーザに関連付けられている1つまたは複数の実行プログラムに代わって1つまたは複数のネットワーク上でアクセスされるブロックデータストレージボリュームを格納するブロックデータストレージサービスを提供するための1つまたは複数の手段からなり、ブロックデータストレージサービスを提供するステップは、1つまたは複数の実行プログラムで使用するための1つまたは複数のブロックデータストレージボリュームを作成するステップであって、ブロックデータストレージボリュームのそれぞれは複数のブロックデータストレージシステムのうちの1つのブロックデータストレージシステム上に格納される、ステップと、作成された複数のブロックデータストレージボリュームのうちの第1のブロックデータストレージボリュームへのアクセスを1つまたは複数の実行プログラムのうちの第1の実行プログラムに許可した後に、第1の作成されたブロックデータストレージボリューム上で1つまたは複数のデータアクセス要求の実行を開始することによって第1の作成されたブロックデータストレージボリュームに対し第1のプログラムによって開始された1つまたは複数のデータアクセス要求に応答するステップと、第1のプログラムが利用不可能になり、第1の作成されたブロックデータストレージボリュームへのアクセスを明確に区別される第2の実行プログラムに許可し、利用不可能になった第1のプログラムに許可されていたアクセスを置き換えた後に、第1の作成されたブロックデータストレージボリューム上で1つまたは複数の他のデータアクセス要求の実行を開始することによって第1の作成されたブロックデータストレージボリュームに対し第2のプログラムによって開始された1つまたは複数の他のデータアクセス要求に応答するステップとを含む条項55のシステム。