(57)【要約】      （修正有）【課題】ストレージシステムが、データボリュームの動的構成を実現するシステムを提供する。【解決手段】ストレージシステム内でのデータボリュームのクライアント利用を、追跡またはモニタする。データボリュームの利用に基づいて、データボリュームオファリングに従ってデータボリュームを再構成するための構成推奨を決定する。認証された構成推奨に従ってデータボリュームを構成する。システムにおいて、このような推奨をクライアントに提供し、実施する構成推奨の選択を受信する。システムにおいて、構成推奨は、データボリュームを構成するために予め提供された認証に基づいて自動的に行われてもよい。【選択図】図６
2020024733.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムであって、
１つまたは複数のリソースホストであって、ブロックベースストレージサービスの複数のクライアントのために複数のデータボリュームを格納するように構成されており、前記複数のデータボリュームの少なくとも１つが前記複数のデータボリュームの別のものと同一のリソースホストに格納される、前記１つまたは複数のリソースホストと、
前記ストレージシステムのための構成マネージャであって、前記データボリュームの所与のデータボリュームに関して、
前記データボリュームのクライアント利用を追跡し、
前記データボリュームの前記クライアント利用に少なくとも一部基づいて、前記ブロックベースストレージサービスの１つまたは複数のデータボリュームオファリングに従って前記データボリュームを再構成するための１つまたは複数の構成推奨を決定し、前記１つまたは複数のデータボリュームオファリングは、様々なタイプ及び／またはリソース割り当てを含む前記データボリュームの構成を示し、
前記クライアントに前記１つまたは複数の構成推奨を提供し、
前記構成推奨の１つを実施するための前記クライアントによって示されたクライアント認証を受信し、
その後の前記データボリュームの利用が前記再構成されたデータボリュームに従って行われるように、前記クライアント認証された構成推奨に従って前記データボリュームの構成を指示する、
ように構成される、前記構成マネージャと、
を備え、
前記クライアント認証された構成推奨に従って前記データボリュームの構成を指示することは、前記データボリュームをマイグレートせずに、前記１つまたは複数のリソースホストを更新することを含み、前記１つまたは複数リソースホストを更新することは、追加のＩＯＰＳを前記データボリュームに割り当てることを含むる、ネットワークベースのブロックベースストレージシステム。
【請求項２】
前記１つまたは複数の構成推奨を決定して、前記データボリュームを再構成するために、前記構成マネージャが、前記データボリュームに関して、
パフォーマンス最適化目的、または
コスト最適化目的のうちの少なくとも一方を含む１つまたは複数の最適化目的、を特定し、
前記構成推奨として提供するために、前記最適化目的に対して前記データボリュームを改善する前記１つまたは複数のデータボリュームオファリングを決定する、
ように構成される、請求項１に記載のシステム。
【請求項３】
前記１つまたは複数の構成推奨が、グラフィカルユーザインターフェースを介して前記クライアントに提供され、
前記クライアント認証を検出して１つの前記構成推奨を実施するために、前記構成マネージャが、前記グラフィカルユーザインターフェースを介して前記クライアントから１つの前記構成推奨の指示を受信する、
請求項１に記載のシステム。
【請求項４】
方法であって、
１つまたは複数のコンピューティングデバイスによって、
データボリュームのクライアント利用履歴に少なくとも一部基づいて、ブロックベースストレージサービスの１つまたは複数のデータボリュームオファリングに従って前記ブロックベースストレージサービス内でクライアントのためにホストされる前記データボリュームを再構成するための１つまたは複数の構成推奨を決定することであって、前記１つまたは複数のデータボリュームオファリングは、様々なタイプ及び／またはリソース割り当てを含む前記データボリュームの構成を示す、前記決定することと、
前記クライアントに前記１つまたは複数の構成推奨を提供することと、
前記構成推奨の１つを実施するためにクライアント認証を検出することであって、前記１つの前記構成推奨を実施するためにクライアント認証を検出することは、前記クライアントから前記１つの前記構成推奨の指示を受信することを含む、前記検出することと、
前記データボリュームのその後の利用が前記再構成されたデータボリュームに従って行われるように、前記クライアント認証された構成推奨に従って前記データボリュームを構成することと、
を実行すること、を含み、
前記クライアント認証された構成推奨に従って前記データボリュームを構成することが、前記データボリュームをマイグレートせずに、前記データボリュームの１つまたは複数のホストを更新することを含み、前記１つまたは複数のホストを更新することは、追加のＩＯＰＳを前記データボリュームに割り当てることを含む、前記方法。
【請求項５】
前記データボリュームに関する推奨事象を検出することをさらに含み、前記推奨事象は、前記構成推奨を決定する及び／または実行するための事象であり、
前記構成推奨を決定することが、前記推奨事象の検出に応じて行われる、
請求項４に記載の方法。
【請求項６】
前記データボリュームを再構成するために前記１つまたは複数の構成推奨を決定することが、
前記データボリュームに関して、１つまたは複数の最適化目的を特定することであって、前記１つまたは複数の最適化目的の少なくとも１つがパフォーマンス最適化目的である、前記特定することと、
前記最適化目的に対して前記データボリュームを改善する前記１つまたは複数のデータボリュームオファリングを決定することと、
を含む、請求項４に記載の方法。
【請求項７】
前記クライアント認証された構成推奨が、前記データボリュームに関して１つまたは複数のリソース割り当てを変更することを含む、
請求項４に記載の方法。
【請求項８】
前記ブロックベースストレージサービスがプロバイダネットワークの一部として実装される、
請求項４に記載の方法。
【請求項９】
前記クライアント認証された構成推奨は、前記データボリュームを異なるデータボリュームタイプへ変更することを含む、
請求項４に記載の方法。
【請求項１０】
前記１つまたは複数の構成推奨が、グラフィカルユーザインターフェースを介して前記クライアントに提供され、前記受信される指示は、前記グラフィカルユーザインターフェースのユーザインタフェース要素の選択であり、
前記グラフィカルユーザインターフェースの前記ユーザインターフェース要素の前記選択に応答して、前記クライアント認証された構成推奨に従って前記データボリュームを構成することが
行われる、
請求項４に記載の方法。
【請求項１１】
１つまたは複数のコンピューティングデバイスによって実行される際、前記１つまたは複数のコンピューティングデバイスに、
ブロックベースストレージサービス内でクライアントのためにホストされるデータボリュームのクライアント利用をモニタすることと、
前記データボリュームの前記クライアント利用に少なくとも一部基づいて、前記ブロックベースストレージサービスの１つまたは複数のデータボリュームオファリングに従って前記データボリュームを再構成するための１つまたは複数の構成推奨を決定することであって、前記１つまたは複数のデータボリュームオファリングは、様々なタイプ及び／またはリソース割り当てを含む前記データボリュームの構成を示す、前記決定することと、
前記クライアントに前記１つまたは複数の構成推奨を提供することと、
前記構成推奨の１つを実施するためにクライアント認証を検出することであって、前記１つの前記構成推奨を実施するためにクライアント認証を検出することは、前記クライアントから前記１つの前記構成推奨の指示を受信することを含む、前記検出することと、
その後の前記データボリュームの利用が前記再構成されたデータボリュームに従って行われるように、前記クライアント認証された構成推奨に従って前記データボリュームを構成することと、
を実施させるプログラム命令を記憶する、コンピュータ読み取り可能記憶媒体であって、
前記クライアント認証された構成推奨に従って前記データボリュームを構成する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、前記再構成されたデータボリュームを提供するために、前記データボリュームをマイグレートせずに、前記データボリュームの１つまたは複数のホストを更新することを実施させ、前記１つまたは複数のホストを更新することは、追加のＩＯＰＳを前記データボリュームに割り当てることを含む、コンピュータ読み取り可能記憶媒体。
【請求項１２】
前記データボリュームを再構成するために前記１つまたは複数の構成推奨を決定する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、
前記データボリュームに関して、１つまたは複数の最適化目的を特定することであって、前記最適化目的の少なくとも１つがコスト最適化目的である、前記特定することと、
前記最適化目的に対して前記データボリュームを改善する前記１つまたは複数のデータボリュームオファリングを決定することと、
を実施させる、請求項１１に記載のコンピュータ読み取り可能記憶媒体。
【請求項１３】
前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、
前記データボリュームに関して推奨事象を検出することをさらに実施させ、前記推奨事象は、前記構成推奨を決定する及び／または実行するための事象であり、
前記構成推奨を決定することが、前記推奨事象を検出することに応答して行われる、
請求項１１に記載のコンピュータ読み取り可能記憶媒体。
【請求項１４】
前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、
グラフィカルユーザインターフェースを介して前記クライアントに前記１つまたは複数の構成推奨を提供することをさらに実施させ、
１つの前記構成推奨を実施するために前記クライアント認証を検出する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、前記グラフィカルユーザインターフェースを介して前記クライアントから１つの前記構成推奨の指示を受信することを実施させる、
請求項１１に記載のコンピュータ読み取り可能記憶媒体。
【請求項１５】
前記データボリュームを再構成するために前記１つまたは複数の構成推奨を決定する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、
前記データボリュームに関して、１つまたは複数の最適化目的を特定することであって、前記最適化目的の少なくとも１つがパフォーマンス最適化目的である、前記特定することと、
前記最適化目的に対して前記データボリュームを改善する前記１つまたは複数のデータボリュームオファリングを決定することと、
を実施させる、
請求項１１に記載のコンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ハードウェアリソース、ソフトウェア及びネットワークにわたる情報記憶の仮想化を動的に共有するための最近の技術革新は、コンピューティングの信頼性、スケーラビリティ及びコスト効率を高めてきた。より具体的には、仮想化の出現を通してオンデマンドで仮想コンピューティングリソース及びストレージを提供できるようになったことは、リソース及びストレージを処理するコンシューマが、コンピューティング及びストレージの必要性を直ちに認識し、それに応じてそのコンピューティング及びストレージのコストを柔軟に構築することを可能にしてきた。仮想化によって、コンシューマは、生産の遅れやコストならびにハードウェアの配置によって要求されるプロビジョニングサイクルにおける固定されたハードウェアを購入またはリースするのではなく、需要が生じた時にプロセッササイクル及びストレージを獲得することが可能になる。コンピューティング及びストレージの可用性を判定するための将来の需要の正確な予測に依存するのではなく、ユーザは、必要に応じて比較的瞬時にコンピューティング及びストレージリソースの使用を獲得することができる。
【背景技術】
【０００２】
仮想化されたコンピューティング環境は、コンピューティングリソースの可用性及び耐久性に関して様々な保証を与えることができる。多重リソースホストの中でも分散コンピューティングリソースは、様々な可用性及び耐久性の特徴を提供することができる。例えば仮想コンピューティングリソースは、ブロックベースのストレージを提供する場合がある。そのようなブロックベースストレージは、一連の標準化されたストレージの呼び出しを通じて、多様な計算仮想化環境とやり取りすることができるストレージシステムを提供する。この標準化されたストレージの呼び出しは、ブロックベースストレージを、それがサポートするボリュームの構造的及び機能的な詳細、ならびにそれがストレージの可用性を提供する仮想化環境上で実行中のオペレーティングシステムに機能的に依存しない状態にする。ブロックベースストレージは、多くの方法で構成されて良く、そのうちの一部は、特定のケースに関して他のものよりもより最適な場合がある。しかしながらブロックベースストレージが構成され得る方法は多数あるため、最初にストレージを設定する際、最適な構成を見つけることが難しい場合がある。
【図面の簡単な説明】
【０００３】
【図１】一部の実施形態による、データボリュームの動的な構成を例示する一連の論理ブロック図である。
【図２】一部の実施形態による、データボリュームの動的な構成を実現するブロックベースストレージサービスを含むプロバイダネットワークを例示するブロック図である。
【図３】一部の実施形態による、データボリュームの動的な構成を実現する構成マネージャを図示する論理ブロック図である。
【図４】一部の実施形態による、データボリュームの動的な構成を構成するためのクライアントとストレージサービスの間の対話を例示する論理ブロック図である。
【図５】一部の実施形態による、データボリュームに関する構成推奨の通知の一例の図である。
【図６】一部の実施形態による、データボリュームの動的な構成を実現するための種々の方法及び技術を図示するハイレベルのフローチャートである。
【図７】一部の実施形態による、構成推奨を決定するための種々の方法及び技術を図示するハイレベルのフローチャートである。
【図８】一部の実施形態による、データボリュームを構成するための種々の方法及び技術を図示するハイレベルのフローチャートである。
【図９】一部の実施形態による、一例のコンピューティングシステムを例示するブロック図である。
【発明を実施するための形態】
【０００４】
複数の実施形態及び例示の図面に関する一例として、いくつかの実施形態が本明細書に記載されるが、当業者は、これらの実施形態が記載される実施形態または図面に限定されないことを理解するであろう。図面及びそれに対する詳細な記載は、実施形態を開示される特定の形態に限定することは意図するものではなく、むしろ添付の特許請求の範囲によって定義される精神及び範囲の範囲内にあるすべての修正形態、等価物及び代替形態を包含することが意図されることを理解されたい。本明細書で使用される表題は、単に編成する目的であって、記載または特許請求の範囲の範囲を限定するのに使用されることは意味していない。本出願の全体を通して使用される際、用語「ｍａｙ（して良い）」は、義務的な意味（すなわちｍｕｓｔ（しなければならない）の意味）ではなく、許可を意味するのに使用されている。同様の用語「ｉｎｃｌｕｄｅ（含む）」、「ｉｎｃｌｕｄｅｓ（含む）」及び「ｉｎｃｌｕｄｅｓ（含む）」は、含んでいることを意味するが、それに限定されるものではない。
【０００５】
本明細書に記載されるシステム及び方法は、データボリュームの動的な構成を実現することができる。データボリュームは、種々の実施形態において様々なクライアントに対してブロックベースストレージを提供して良い。このようなクライアントは、例えばデータベースシステム、仮想デスクトップ、開発及びテスト環境、ビジネスアプリケーションまたはデータアーカイブなどの多くの異なるアプリケーションを実行する一環としてデータボリュームを利用する。より最適なパフォーマンス及び／またはコスト利益を提供するために、データボリュームは、様々に構成されて良い。例えば一部のデータボリュームは、大きなＩ／Ｏワークロードを受け取る場合があるが、他のデータボリュームは、めったにアクセスされない場合もある。予想されるデータボリュームの利用が、実際のデータボリュームの利用と等しくならない場合があるため、適切なデータボリューム構成を決定することが難しい場合がある。よって、データボリュームの利用が始まった時点で、選択されたデータボリュームの最初の構成が、特定のタスクに関して最適なものであると証明されない場合もある。データボリュームの動的な構成は、データボリュームの実際の利用に基づいて最適なデータボリュームを見つけるための１つの方法を提供することができる。データボリューム構成に対する変更は自動で行われる場合、または明白な認証によって行われる場合がある。
【０００６】
図１は、一部の実施形態による、データボリュームの動的な構成を例示する一連の論理ブロック図である。シーン１０２に例示されるように、クライアント１３０は、データボリューム１１２を利用して１４０、様々なクライアントアプリケーション、タスク及び／または機能に対してブロックベースストレージを提供する。例えばクライアント１３０は、データボリューム１１２内にデータベースに関するデータを保存するデータベースエンジンであって良く、データベースに関するデータを取得し更新するために様々な読み取り及び書き込みリクエストを行う。ストレージシステム１１０は、特定の構成においてクライアント１３０に関するデータボリューム１１２をホストすることができる。例えば、データボリューム１１２は、データボリュームにデータを保存するためにソリッドステートドライブ（ＳＳＤ）または磁気ストレージドライブ（例えばＨＤＤ）によって実現されて良い。データボリュームは、多くの異なるタイプの１つとして実現されて良い。さらに異なるボリュームタイプに関して異なるリソースの割り当てが用いられる場合がある（例えばデータボリュームに対するアクセスを行うために割り当てられるストレージスペースの大きさまたはＩＯＰＳの数）。データボリューム構成は、ストレージシステム１１０によって提供されるデータボリュームオファリングに従って構築されて良い。例えば、特定のタイプのデータボリュームは、異なるリソース割り当て（例えば１００ＩＯＰＳの単位で
のＩＯＰＳの割り当て、または特定の範囲におけるユーザ定義のリソース割り当てを可能にする）を有する場合がある。
【０００７】
ストレージシステム１１０は、構成マネージャ１２０を実装することでデータボリューム１１２のクライアントの利用を追跡する１４２場合がある。シーン１０４に図示されるように、構成マネージャ１２０は、データボリューム１１２を再構成するために構成推奨（複数可）１４４を提供して良い。そのような推奨される構成は、種々の実施形態において、ストレージシステム１１０のデータボリュームのオファリングに従って、データボリュームのパフォーマンス及び／またはコストを改善し、データボリュームのタイプ及び／またはリソース割り当てを変えることができる。例えばデータボリューム１１２がＨＤＤ内に格納される場合、ＳＳＤによってバックアップされるボリュームタイプへの変更がデータボリュームのワークロードの最大限度を高める可能性があることを構成推奨が示す場合がある。この推奨は、ＳＳＤによってバックアップされるボリュームタイプを含むデータボリュームオファリングを示して良い。図６及び図７は、以下に、構成推奨（複数可）の決定の種々の例を提供する。
【０００８】
シーン１０６に例示されるように、推奨された構成推奨のうちの１つを認証するために、再構成認証１４６が提供されて良い。例えば選択は、実行する構成推奨を指示するグラフィカルユーザインターフェースまたはアプリケーションプログラミングインターフェース（ＡＰＩ）リクエストを介して提供されて良い。構成マネージャ１４８が、再構成されたデータボリューム１１４を実現するように再構成を指示する１４８ことができる。一部の実施形態では、再構成されたデータボリュームをホストすることが可能であり得る他のホストにデータボリュームを移動させるためにマイグレーション操作が行われる場合もある。シーン１０６に例示されるように、クライアント１３０は、再構成の間もデータボリューム１１２へのアクセスを続けることができる。ひとたび完了すると、クライアント１３０は、再構成されたデータボリューム１１４にアクセスし、新たな構成に従ってデータボリュームを利用する１５０ことができる。
【０００９】
先の記載は、限定することを意図するものではなく、単にデータボリュームの動的な構成の一例として提供されていることに留意されたい。種々の構成要素が、構成の管理を行う場合がある。異なる数またはタイプのデータボリューム及びクライアントが利用される場合もある。
【００１０】
本明細書は、プロバイダネットワークの一般的な記載によって始まり、これはブロックベースストレージサービスを介して提供されるデータボリュームの動的な構成を実現することができる。そしてブロックベースストレージサービス内でデータボリュームを構成する一環として利用され得る種々の構成要素／モジュールまたは構成要素／モジュールの配置を含め、ブロックベースストレージサービスの種々の例が考察される。データボリュームの動的な構成を実現するためのいくつかの異なる方法及び技術がこのとき考察されており、その一部は、添付のフローチャートに図示されている。最後に、種々の構成要素、モジュール、システム及び／またはノードが実装され得る一例のコンピューティングシステムの記載が提供されている。種々の例は、本明細書を通して提供される。
【００１１】
図２は、一部の実施形態による、データボリュームの動的な構成を実現するブロックベースストレージサービスを含むプロバイダネットワークを例示するブロック図である。プロバイダネットワーク２００は、インターネット及び／または他のネットワークを介してアクセス可能な１つまたは複数のサービス（例えば様々な種類のクラウドベースのコンピューティングまたはストレージ）をクライアント２１０に提供するために、例えば企業または公共部門機構などのエンティティによって設定されて良い。プロバイダネットワーク２００は、プロバイダネットワーク２００によって提供されるインフラ及びサービスを実
行し分散させるのに必要とされる、例えば物理的及び／または仮想化コンピュータサーバ、ストレージデバイス、ネットワーキング機器など（例えば、図９に関して以下に記載されるコンピューティングシステム１０００）の集まりなどの種々のリソースプールをホストする非常に多くのデータセンターを含んで良い。いくつかの実施形態において、プロバイダネットワーク２００は、例えば仮想コンピュートサービス２３０などのコンピューティングリソース、ブロックベースストレージサービス２２０及び他のストレージサービス２４０などのストレージサービス（これは例えばオブジェクト／キー値ベースのデータストア、もしくは種々のタイプのデータベースシステムなどの様々なストレージタイプを含み得る）及び／または他のタイプのネットワークベースサービス２５０などを提供する場合がある。クライアント２１０は、ネットワーク２６０を介して、プロバイダネットワーク２００によって提供されるこれらの種々のサービスにアクセスして良い。同様のネットワークベースサービスが、それ自体で通信する、及び／または互いを利用して異なるサービスを提供する場合もある。例えば仮想または物理コンピュートインスタンスまたはストレージインスタンスなどの「インスタンス」と呼ばれるユニットにおいて、クライアント２１０によって提供されるコンピューティングリソースは、特定のデータボリューム２２６を利用して、コンピュートインスタンスのための仮想ブロックストレージを提供する場合もある。
【００１２】
上記で指摘したように、仮想コンピュートサービス２３０は、種々のコンピュートインスタンスをクライアント２１０に提供して良い。仮想コンピュートインスタンスは、例えば指定された計算容量（これはＣＰＵのタイプ及び数、メインメモリのサイズなどを示すことによって特定され得る）、ならびに指定されたソフトウェアスタック（例えばハイパーバイザのトップで可動し得るオペレーティングシステムの特定のバージョン）を備えた１つまたは複数のサーバを備えて良い。種々の実施形態において、専用コンピュータサーバ、ストレージデバイス、ネットワークデバイスなどを含め、仮想コンピュートサービス２３０のコンピュートインスタンスを実装するためにいくつかの異なるタイプのコンピューティングデバイスが単独で、または組み合わせて使用される場合がある。いくつかの実施形態において、インスタンスクライアント２１０または他の任意の他のユーザが、ネットワークトラフィックをコンピュートインスタンスへと誘導するように構成され（及び／または認証され）て良い。種々の実施形態において、様々な動作を行うために永続的なブロックベースストレージを獲得するために、コンピュートインスタンスは、ブロックベースストレージサービス２２０によって提供される１つまたは複数のデータボリューム２２６にアタッチまたはマップすることができる。
【００１３】
コンピュートインスタンスは、例えばクライアント２１０が特定のインスタンスにアクセスすることを必要とせずに、例えばアプリケーションサーバインスタンス、Ｊａｖａ（商標）仮想マシン(ＪＶＭ)、専用オペレーティングシステム、種々の解読された、もしくはコンパイルされたプログラミング言語、例えばＲｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋などをサポートするプラットフォーム、またはクライアントアプリケーションを実行するのに適したハイパフォーマンスコンピューティングプラットフォームなどの多様な種類の異なるプラットフォームを動作させるまたは実装することができる。いくつかの実施形態において、コンピュートインスタンスは、予想される稼働率に基づいて異なるタイプまたは構成を有する。特定のコンピュートインスタンスの稼働率は、そのインスタンスが作動される時間量と、そのインスタンスが予約される総時間量の比として定義されて良い。稼働率はまた、一部の実装形態では利用率と呼ばれる場合もある。クライアントが、そのインスタンスが予約される時間のうち比較的短い時間にわたって（例えば１年を通じた予約のうちの３０％〜３５％）コンピュートインスタンスを使用することを予想する場合、クライアントは、そのインスタンスを低稼働率のインスタンスとして予約することを決め、関連する値付け方針に従って割引された１時間毎の利用料を支払うことができる。クライアントが、ほとんどの時間インスタンスを立ち上げることを必要する定常状態の
ワークロードを有することを予想する場合、クライアントは、高稼働率のインスタンスを予約し、場合によっては均一なより低額の１時間毎の利用料を支払う場合もあるが、一部の実施形態では、実際の使用時間数に関係なく、値付け方針に従って、予約の継続期間全体にわたって時間毎の料金が課される場合もある。対応する値付け方針による中程度の稼働率のインスタンスの場合のオプションも一部の実施形態において同様にサポートされて良く、この場合、先払いコストと時間当たりコストは、対応する高稼働率のコストと低稼働率のコストの間になる。
【００１４】
コンピュートインスタンス構成はまた、汎用または専用の目的を有する、例えば計算集約アプリケーションのための計算ワークロード（例えばハイトラフィックウェブアプリケーション、アドサービング、バッチ処理、ビデオエンコーディング、分散分析、高エネルギー力学、ゲノム分析及び計算流体力学）、グラフィック集約ワークロード（例えばゲームストリーミング、３Ｄアプリケーションストリーミング、サーバサイドグラフィックワークロード、レンダリング、金融モデリング及びエンジニアリングデザイン）、メモリ集約ワークロード（例えば高パフォーマンスデータベース、分散メモリキャッシュ、イン−メモリ分析、ゲノムアセンブリ及び分析）ならびにストレージ最適化ワークロード（例えばデータウェアハウジング及びクラスタファイルシステム）などのコンピュートインスタンスを含む場合がある。コンピュートインスタンスのサイズ、例えば特定の数の仮想ＣＰＵコア、メモリ、キャッシュ、ストレージならびに任意の他のパフォーマンス特徴。コンピュートインスタンスの構成はまた、特定のデータセンター、利用可能ゾーン、地理的なロケーションなどにおける、それぞれのロケーションと、（リザーブドコンピュートインスタンスの場合）予約期間の長さを含んで良い。
【００１５】
種々の実施形態において、プロバイダネットワーク２００はまた、ストレージ動作を実行するためにブロックベースのストレージサービス２２０を実装して良い。ブロックベースストレージサービス２２０は、複数の独立したリソースホスト２２４ａ、２２４ｂ、２２４ｃ〜２２４ｎまで（例えばサーバブロックデータストレージシステムまたはストレージノード）のプールで構成されるストレージシステムであり、これらのリソースホストは、１つまたは複数のセットのデータボリューム、すなわちデータボリューム（複数可）２２６ａ、２２６ｂ、２２６ｃ〜２２６ｎまでを格納するためのブロックレベルのストレージを提供する。データボリューム２２６は、ネットワークを介して特定のクライアント（例えば仮想コンピュートサービス２３０の仮想コンピュートインスタンス）に対してマップまたはアタッチされて良く、隣接したセットの論理ブロックとして仮想ブロックベースストレージ（例えばハードディスクストレージまたは他の永続的ストレージ）を提供する。いくつかの実施形態において、データボリューム２２６は、例えばスナップショット動作またはレプリケーション動作など他のブロックストレージ動作を行うために複数のデータチャンクまたはデータパーティション（１つまたは複数のデータブロックを含む）に分割されて良い。データボリューム２２６のボリュームスナップショットは、データボリューム２２６の状態の固定された特定の時点を表示するものであって良い。いくつかの実施形態において、ボリュームスナップショットは、データボリュームを維持するリソースホスト２２４から離れて、例えば別のストレージサービス２４０内などに保存される場合もある。スナップショット動作は、所与のデータボリュームのスナップショットを別の記憶場所、例えば他のストレージサービス２４０におけるリモートスナップショットデータストアなどに送信する、コピーする、及び／またはそうでなければ保存するために行われる場合がある。
【００１６】
リソースホスト２２４は、１つまたは複数のコンピューティングシステムまたはデバイスであって良く、例えばストレージサーバまたは他のコンピューティングシステム（例えば図９に関して以下に記載されるコンピューティングシステム１０００）であって良い。各々のリソースホスト２２４は、データボリュームのそれぞれのレプリカを維持して良い
。一部の実施形態では、一部のデータボリュームは、他のデータボリュームとは構成が異なる場合がある。したがって一部のリソースホスト２２４は、異なる構成を有し得る複数のデータボリュームをホストする場合がある。データボリュームの一部の構成は、種々のタイプ、仕様及び他のパフォーマンス特徴のデータボリュームを提供するために、特定のタイプのハードウェア（例えばソリッドステートストレージドライブ（ＳＳＤ）もしくは磁気ディスクストレージ（例えばハードディスクドライブ（ＨＤＤ））またはソフトウェア（例えば種々のストレージマネージャオペレーション／アプリケーション）によって、リソースホストにおいて実現されて良い。例えば一部のリソースホストは、より高いスループット能力を提供するために（例えば１秒当たりの入／出力回数(ＩＯＰＳ)）、永続的なブロックストレージのためにＳＳＤを実装する場合があり、その一方で他のリソースホストは、より大きなストレージ能力を有し得る（仮にスループット能力がより低いとすると）ＨＤＤまたは他の磁気ベースの永続的なストレージデバイスを実装する場合もある。
【００１７】
リソースホストはまた、マルチ−テナントストレージを提供する場合もある。例えばいくつかの実施形態において、１つのリソースホストは、ブロックベースストレージサービス２２０の１つのアカウントに対して１つのデータボリュームを維持し、その一方で同一のリソースホストに維持される別のデータボリュームは、異なるアカウントに対して維持されて良い。リソースホストは、そのそれぞれのデータボリュームを、それぞれのリソースホストを実装しているコンピューティングシステムまたはデバイスに直接アタッチされ得る１つまたは複数のブロックベースストレージデバイス（例えばハードディスクドライブ、ソリッドステートドライブなど）内で持続させることができる。リソースホストは、異なる永続的ストレージデバイスを実装する場合もある。
【００１８】
ブロックベースストレージサービス２２０は、様々な種類の異なる方法でデータボリュームを管理し維持する場合がある。データボリュームの異なるパーティションにおいてデータボリュームの同一のレプリカを維持する分散リソースとしての２つ以上のリソースホストの中の一部のデータボリュームに関して様々な耐久性スキームが実行されて良い。例えば、データボリュームに関する単一障害点をなくすことによってデータボリュームの耐久性を高めるために、例えば種々のタイプのミラーリング及び／またはレプリカ技術が実行されて良い（例えばＲＡＩＤ  １）。データボリュームへのアクセスを行うために、リソースホストは、このときデータボリュームのレプリカを維持する２つ以上のリソースホストの間で、書き込みリクエストなどのＩ／Ｏリクエストを調整することができる。例えば所与のデータボリュームに関して、１つのリソースホストが、マスターリソースホストとして機能して良い。マスターリソースホストは、種々の実施形態において、データボリュームのクライアントからリクエスト（例えばＩ／Ｏリクエスト）を受信しこれを処理することができる。これによりマスターリソースホストは次いで、スレーブリソースホストとして機能する１つまたは複数の他のリソースホストに対して、例えば書き込みリクエストなどのＩ／Ｏリクエストのレプリケーション、またはそのデータボリュームに対する任意の他の変更もしくは修正を調整することができる。その後、マスターリソースホストにおいてデータボリュームに関して書き込みリクエストが受信される際、マスターリソースホストは、その書き込みリクエストをスレーブリソースホスト（複数可）に転送し、書き込みリクエストがマスターリソースホストにおいて完了する前にスレーブリソースホスト（複数可）が書き込みリクエストを完璧に承認するまで待つことができる。マスターリソースホストは、スナップショット動作または他のＩ／Ｏ動作（例えば読み取りリクエストを満たす）などのデータボリュームに関する他の動作を指示する場合もある。
【００１９】
いくつかの実施形態においては、マスター及びスレーブリソースホストの役割はデータボリューム毎に割り当てられる場合もあることに留意されたい。例えば１つのリソースホストにおいて維持されるデータボリュームに関して、このリソースホストは、マスターリソースホストとして機能して良い。同一のリソースホストにおいて維持される別のデータ
ボリュームに関して、リソースホストが、スレーブリソースホストとして機能する場合もある。リソースホストは、それぞれのＩ／Ｏマネージャを実装して良い。Ｉ／Ｏマネージャは、特定のリソースホストにおいて維持されるデータボリュームに向けられたＩ／Ｏリクエストを扱うことができる。これにより例えばＩ／Ｏマネージャは、リソースホストにおけるボリュームに対する書き込みリクエストを処理し扱うことができる。Ｉ／Ｏマネージャは、ブロックベースストレージサービスアプリケーションプログラミングインターフェース（ＡＰＩ）及び／または他の通信プロトコル、例えばインターネットスモールコンピュータシステムインターフェース（ｉＳＣＳＩ）に従ってＩ／Ｏリクエストを処理するように構成されて良い。
【００２０】
リソースホストは、異なるインフラストラクチャゾーン内に配置されて良い。インフラストラクチャゾーンは、サーバラック、ネットワーキングスイッチ、ルータもしくは他の構成要素、電源（または他のリソースホストサプライヤ）などのデバイス、または物理的もしくは地理的ロケーション（例えば特定の行、空間、建物、データセンター、フォールト・トレラントゾーンなど）によって規定されて良い。インフラストラクチャゾーンは、リソースホスト（及びリソースホスト上に構築されたデータボリュームのレプリカ）が複数の異なるタイプのインフラストラクチャゾーン内、例えば特定のネットワークルータまたはブリック、特定の空間ロケーション、特定のサイト内などにあるように有効範囲が変化する場合がある。
【００２１】
上記で指摘したように、ブロックベースストレージサービス２２０は、例えば異なるタイプのデータボリュームまたは異なるリソース割り当てなどの多様な種類の異なる構成のデータボリュームを提供することで、様々なパフォーマンス特徴を提供することができる。ブロックベースストレージサービス２２０によって提供される異なるデータボリュームオファリングは、クライアントによる利用に対して様々なタイプ及び／またはリソース割り当てのデータボリュームを組み合わせることができる。例えば、少なくとも一部の実施形態では、ブロックベースストレージサービス２２０は、例えば（これに限定するものではないが）汎用データボリューム、プロビジョンドアクセスデータボリューム及び／またはコスト効率の良いデータボリュームなどの異なるタイプのデータボリュームを含むデータボリュームオファリングを提供することができる。データボリュームオファリングは、クライアントがデータボリュームのパフォーマンス及び／またはコストを（変動する精度によって）選択することを可能にすることができる。
【００２２】
少なくとも一部の実施形態では、汎用データボリュームは、ＳＳＤによってバックアップされて良く、例えば小型から中型サイズのデータベース、開発及びテスト環境、ならびにブートデータボリュームなどの多くの異なるタイプのワークロードに対して十分なパフォーマンスを提供することができる。ブートデータボリュームは、一部の実施形態では、例えば仮想コンピュートサービス２３０によって提供されるインスタンス、などの仮想コンピュートインスタンスが、ブートデータボリュームから直接ブートすることを可能にする。ブートデータボリュームからブートされた仮想インスタンスは、停止され、その後再始動させることができ、ブートデータボリュームにセーブされるいずれかのその状態を保持し、インスタンスが停止される間の仮想コンピュートインスタンスの一部の特性の修正を可能にする。汎用データボリュームに関するリソース割り当ては、多くの方法で構成されて良い。例えば、汎用データボリュームは、異なるストレージサイズ（例えば１ギガバイト〜１テラバイト）の範囲内で構成されて良い。
【００２３】
保存されたデータへのアクセスを行うためのリソース割り当ても同様に変化し得る。例えば、いくつかの実施形態において、汎用データボリュームの種々のデータボリュームオファリングは、ベースラインアクセスパフォーマンス（例えば１つのデータボリュームに関して１秒当たり１２８メガバイトまでの総スループットを有するギガバイト当たり３Ｉ
ＯＰＳ）を提供することができる。利用可能なまたは基準とする様々なシェアリングまたはスケジューリングスキームとして、追加のアクセスパフォーマンス容量が提供されて良い。例えば、汎用データボリュームは、バーストパフォーマンス（例えばボリューム当たり３，０００ＩＯＰＳまでバーストする能力）に対して追加のアクセス容量を提供することができる。このようなバーストパフォーマンス容量は、いくつかの実施形態において、ボリュームサイズに左右される場合がある（例えば２０ＧＢデータボリュームまたは９００ＧＢデータボリュームに関して３，０００ＩＯＰＳのバーストパフォーマンスを可能にする）。一部の実施形態では、どのくらいの追加のアクセス容量がデータボリュームに対して提供され得るかを判定するためのクレジットバランススキームを実行することによって、バーストパフォーマンス容量が割り当てられる場合がある。例えばデータボリュームの記憶サイズは、データボリュームのクレジットバランスに関するクレジット補充速度に結びつけられて良い。クレジットは、一定の期間にわたる追加のアクセス容量を保証することができる（例えば１秒間に３，０００ＩＯＰＳを保証する）。追加の容量が利用される各々の期間において、データボリュームに関するクレジットバランスからクレジットが差し引かれて良い。クレジット補充速度に従って新たなクレジットをクレジットバランスに加えることができる。データボリュームに関する全てのクレジットが使用されたならば、一部の実施形態では、データボリュームに対するアクセスは、ベースラインパフォーマンスレベルまで抑制される場合がある。
【００２４】
ブロックベースストレージサービス２００は、一部の実施形態ではプロビジョンドアクセスデータボリュームタイプを提供する場合がある。プロビジョンドアクセスデータボリュームは、安定した低レイテンシパフォーマンスをストレージに与えることができ、これはＩ／Ｏ集約ワークロード（例えばデータベース）を伴うクライアントの利用に関して有益であり得る。少なくとも一部の実施形態では、プロビジョンドアクセスデータボリュームは、ＳＳＤによってバックアップされて良い。例えばプロビジョンドアクセスデータボリュームは、１つのデータボリュームに関して特定の数のＩＯＰＳまでをサポートする（例えばＧＢ当たり３０ＩＯＰＳ、これは１３４ＧＢほどの小さいプロビジョンドアクセスデータボリュームに関して４，０００ＩＯＰＳがプロビジョンされることを可能にする）。プロビジョンドアクセスデータボリュームは、達成すべきデータボリュームに関して異なるスループットレベルを可能にし得る（例えば特定のデータボリュームに対する５００ＩＯＰＳのプロビジョニングは、１２８ＭＢ／Ｓスループットまでを可能にし得る）。いくつかの実施形態において、複数のボリュームを論理的に組み合わせる（例えばＲＡＩＤフォーマット内で併せてストライプ化される）ことができ、これはアクセス及びスループットパフォーマンスを高めることができる。いくつかの実施形態において、低レイテンシで安定したパフォーマンスを実現するために、プロビジョンドアクセスを最適化するように構成された仮想コンピュートインスタンスタイプが、プロビジョンドアクセスデータボリュームと組み合わせて利用される場合もある。
【００２５】
ブロックベースストレージサービス２００は、一部の実施形態においてコスト効率の高いデータボリュームタイプを提供する場合がある。コスト効率の高いデータボリュームタイプは、他のデータボリュームタイプよりもデータの記憶に関してより低いコストを実現することができる。例えば、いくつかの実施形態において、コスト効率の高いデータボリュームは、磁気ストレージドライブ（例えばＨＤＤ）によってバックアップされて良い。コスト効率の高いデータボリュームは、データが頻繁にアクセスされるデータボリュームの利用に関して、及び／または最も低い記憶コストが重要なシナリオに関して効率的なストレージを実現することができる。コスト効率の高いデータボリュームは、様々なアクセス能力（例えば数百ＩＯＰＳまでバーストする能力を有する１００ＩＯＰＳベースラインパフォーマンス）を提供し得る。
【００２６】
ブロックベースストレージサービス２２０は、ブロックベースストレージサービス２２
０の操作を支援するためにブロックベースストレージサービス制御プレーン２２２を実装する場合がある。種々の実施形態において、ブロックベースストレージサービス制御プレーン２２２は、例えば仮想コンピュートサービス２３０によって提供されるコンピュートインスタンス上で実行中のプログラム及び／もしくはプロバイダネットワーク２００内に配置された他のネットワークベースサービス及び／もしくは１つまたは複数の他のデータセンター内に配置された任意選択のコンピューティングシステム（図示せず）、またはネットワーク２６０を介して利用可能なプロバイダネットワーク２００の外部の他のコンピューティングシステムなど、クライアントに対するブロックデータストレージの可用性を管理するのを支援する。データボリューム２２６へのアクセスは、ブロックデータトランザクション命令に応答して、プロバイダネットワーク２００内の内部ネットワークを介して、またはネットワーク２６０を介して外部から行われて良い。
【００２７】
ブロックベースストレージサービス制御プレーン２２２は、ユーザアカウントの管理を含め、提供するブロックレベルのストレージ機能に関連した様々な種類のサービス（例えば作成、削除、請求書作成、支払いの徴収など）を提供することができる。ブロックベースストレージサービス制御プレーン２２２はさらに、配置リクエストに応答して、データボリューム２２６の形成、利用及び削除に関連したサービスを提供する場合もある。少なくとも一部の実施形態において、ブロックベースストレージサービス制御プレーン２２２は、図３に関して以下でさらに詳細に記載されるような構成マネージャ２２７、及び図４に関して以下に記載されるようなインターフェース２２９を実装する場合がある。ブロックベースストレージサービス制御プレーン２２２はまた、他のストレージサービス２４０上でのボリュームスナップショットの形成、利用及び削除に関連したサービスを提供する場合もある。ブロックベースストレージサービス制御プレーン２２２はまた、データボリューム２２６の利用及びそれらのボリュームのスナップショットに関連した収集、パフォーマンスの処理及びデータの審査に関連したサービスを提供する場合もある。
【００２８】
プロバイダネットワーク２００はまた、上記で指摘したように別のストレージサービス２４０を実装する場合もある。他のストレージサービス２４０は、ブロックベースストレージサービス２２０によって提供されるものと同一のまたは異なるタイプのストレージを提供する場合がある。例えば、いくつかの実施形態において、他のストレージサービス２４０は、オブジェクトベースのストレージサービスを提供する場合があり、これはデータオブジェクトとしてデータを保存し管理することができる。例えば、種々のデータボリューム２２６のボリュームスナップショットは、特定のデータボリューム２２６に関するスナップショットオブジェクトとして保存されて良い。少なくとも一部の実施形態では、構成推奨が、データボリュームが別のストレージサービス（例えばスナップショットまたはアーカイブされたコピーなど）内に移動されるまたは格納されることを示す場合がある。他のストレージサービス２４０に加えて、プロバイダネットワーク２００は、他のネットワークベースサービス２５０を実装する場合もあり、これは、クライアント２１０ならびにプロバイダネットワーク２００の他のサービス（例えばブロックベースストレージサービス２２０、仮想コンピュートサービス２３０及び／または他のストレージサービス２４０）が種々のタスクを実行するまたはリクエストすることを可能にする種々の異なるタイプの分析、計算、記憶または他のネットワークベースのシステムを含んで良い。
【００２９】
クライアント２１０は、ネットワークプロバイダ２００にリクエストを発信するように構成可能な任意のタイプのクライアントを包含して良い。例えば、所与のクライアント２１０は、好適なバージョンのウェブブラウザを含んで良い、またはプラグインモジュール、もしくはウェブブラウザによって提供される実行環境に対する拡張機能として、もしくはその実行環境内で実行するように構成された他のタイプのコードモジュールを含む場合もある。あるいは、クライアント２１０は、データベースアプリケーション（またはそのユーザインターフェース）、メディアアプリケーション、オフィスアプリケーションもし
くはコンピュートインスタンスを利用し得る任意の他のアプリケーション、データボリューム２２６、または種々の動作を行うためのプロバイダネットワーク２００内の他のネットワークベースサービスなどのアプリケーションを包含する場合もある。いくつかの実施形態において、そのようなアプリケーションは、全てのタイプのネットワークベースのデータに関して必ずしもフルブラウザサポートを実行せずに、ネットワークベースサービスリクエストを生成し処理するのに十分なプロトコルサポート（好適なバージョンのハイパーテキストトランスファープロトコル（ＨＴＴＰ））を含んで良い。いくつかの実施形態において、クライアント２１０は、レプレゼンテーショナル・ステート・トランスファー(ＲＥＳＴ)−スタイルのネットワークベースサービスアーキテクチャ、ドキュメント−もしくはメッセージベースのネットワークベースサービスアーキテクチャ、または別の好適なネットワークベースサービスアーキテクチャに従ってネットワークベースサービスリクエストを生成するように構成されて良い。いくつかの実施形態において、クライアント２１０（例えば計算クライアント）は、データボリューム２２６によって提供されるコンピュートインスタンスまたはブロックストレージによって提供される計算リソースを利用するクライアント２１０上のアプリケーション実装に対してトランスペアレントなやり方で、コンピュートインスタンスまたはデータボリューム２２６に対するアクセスを行うように構成されて良い。
【００３０】
クライアント２１０は、外部ネットワーク２６０を介してネットワークベースサービスリクエストをプロバイダネットワーク２００に伝達することができる。種々の実施形態において、外部ネットワーク２６０は、クライアント２１０とプロバイダネットワーク２００の間にネットワークベースの通信を確立するのに必要なネットワーキングハードウェアと、プロトコルの任意の好適な組み合わせを包含して良い。例えば、ネットワーク２６０は一般に、インターネットを集合的に構築する種々の電気通信ネットワーク及びサービスプロバイダを包含して良い。ネットワーク２６０は、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）などのプライベートネットワークならびに公共のまたはプライベート無線ネットワークなども含んで良い。例えば、所与のクライアント２１０及びプロバイダネットワーク２００は両方とも、その独自の内部ネットワークを有するエンタープライズにおいてそれぞれプロビジョンされる場合もある。そのような実施形態では、ネットワーク２６０は、所与のクライアント２１０とインターネット間、ならびにインターネットとプロバイダネットワーク２００間にネットワーキングリンクを確立するのに必要なハードウェア（例えばモデム、ルータ、スイッチ、ロードバランサー、プロキシサーバなど）、及びソフトウェア（例えばプロトコルスタック、アカウンティングソフトウェア、ファイアウォール／セキュリティソフトウェアなど）を含んで良い。一部の実施形態では、クライアント２１０は、公共のインターネットではなく、プライベートネットワークを利用してプロバイダネットワーク２００と通信する場合もあることに留意されたい。
【００３１】
図３は、一部の実施形態による、データボリュームの動的な構成を実現する構成マネージャを図示する論理ブロック図である。構成マネージャ２２７は、図４〜図８に関して以下で考察されるものなど、様々な技術を実装することでデータボリュームの動的な構成を実現することができる。構成マネージャ２２７は、構成推奨を決定する及び／または実行するための推奨事象を検出することができる。いくつかの実施形態において、再構成は、クライアント（複数可）３５０に構成推奨の通知を提供する、及び／または構成推奨を行うための選択または認証を受け取ることができる。いくつかの実施形態において、構成推奨は、（例えば予め受信した認証及び／または予め選択された最適化目的に基づいて）自動で行われて良い。
【００３２】
上記で指摘したように、ブロックベースストレージサービスを提供するために、複数のリソースホスト、例えばリソースホスト(複数可)３００が実装されて良い。種々の実施形
態において、構成マネージャ２２７は、クライアント利用モニタ３２０を実装することで、履歴となるクライアントの利用データを収集する、追跡する及びまたはモニタすることができる。例えば、クライアント利用モニタ３２０は、リソースホスト(複数可)上でホストされるデータボリュームのクライアントの利用を示す情報、メトリクスまたはメタデータに関するクエリによってリソースホスト(複数可)３００を周期的にスイープすることができる。例えば、クライアント利用データは、種々の実施形態において、データボリュームがクライアントのために使用されてきた様々な局面を示す場合がある。例えば、ストレージ利用は、そのデータボリュームに割り当てられた総ストレージ（例えば２００ギガバイト）からの特定のデータボリューム（例えば１０ギガバイト）内に保存されたデータの全体量を示して良い。アクセス利用（またはデータボリュームへのアクセスを行ったワークロードの何らかのその他の指示）が収集される場合もある（例えば利用されたＩＯＰＳの数）。他のパフォーマンス特徴、クライアント利用を示す、またはそれに関連し得る、例えばスループット（例えば毎秒当たりに転送されるバイト数）またはレイテンシ（例えばデータボリュームにおいて特定の動作またはトランザクションを実行するための時間量）が収集されて良い。クライアント利用モニタ３２０は、履歴クライアント利用ストア３２２にデータを保存することができ、このストアは収集したデータを永続的に維持することができる。いくつかの実施形態において、履歴クライアント利用ストア３２２は、データベースとして、またはそうでなければ検索可能／照会可能なストレージシステムとして実装されることで、構成マネージャ２２７の他の構成要素（例えば構成推奨を決定するために、推奨エンジン３１０によって）またはブロックベースストレージサービス制御プレーン２２６に対してアクセスを行うことができる。
【００３３】
少なくとも一部の実施形態では、クライアント利用モニタ３２０は、推奨事象（または構成推奨を実施するための事象）を検出またはトリガすることができる。例えば、現在のストレージ利用がほぼ全体の容量に近い場合、クライアントモニタ３２０は、推奨事象をトリガして良く、これに関して推奨エンジン３１０が構成推奨(複数可)を検出し決定することができる（例えば増大したストレージサイズを有するようにデータボリュームを構成するために）。種々の実施形態において、データボリュームを決定するためのトリガは、認証管理３４０を介してクライアント３５０(複数可)によって構成及び／または決定されて良い。
【００３４】
構成マネージャ２２７は、種々の実施形態において推奨エンジン３１０を実装することで、リソースホスト(複数可)３００におけるデータボリュームに関する推奨事象を検出する及び／または構成推奨を決定することができる。推奨エンジン３１０は、再構成後のデータボリュームへのその後アクセスが新たな構成において行われるように、種々の推奨技術を実行して、データボリュームに関して様々な構成推奨を特定して、データボリュームを再構成することができる。例えば、履歴クライアント利用データの分析に基づいて、データボリュームに関するベースラインまたは見込まれる利用または要件が決定されて良い。例えば、データボリュームのワークロードが１００から５００ＩＯＰＳの間で変動する場合、このとき５００ＩＯＰＳのベースライン要件が特定されて良い。少なくとも一部の実施形態では、データボリュームの現在の構成に関してベースラインまたは見込まれる利用が検討されて良い。上記の例を考慮すると、この場合データボリュームに関して時として５００ＩＯＰＳまで利用される場合もある。現在の構成は、データボリュームにおけるワークロードに関して保証された１００ＩＯＰＳのパフォーマンスのみを提供するコスト効率の高いデータボリュームタイプにおいて構築されて良い。データボリュームに関するワークロードが、そのタイプのデータボリュームに関して設けられた保証を超えるため、異なる構成のデータボリュームが、より最適なサービスの保証を提供する場合もある（例えばより高度のベースラインＩＯＰＳパフォーマンスを有する汎用データボリュームタイプ）。データボリュームのワークロードに適合する能力を提供するデータボリュームオファリングが推奨のために特定されて良い。
【００３５】
パフォーマンス及び／またはコストに関してデータボリュームを最適化するまたは改良し得る構成推奨が決定されて良い。それがパフォーマンスの欠陥（例えば上記の例で記載されたような）に関して特定されようと、コストの欠陥（例えばコストが浪費されるような全てのデータボリュームを利用しない）に関して特定されようと、構成の目的が、データボリュームに関して特定されて良い。いくつかの実施形態において、構成の目的は、クライアントによって明白に定義されて良い（例えばパフォーマンスを高め、かつコストを下げる構成推奨のみを提供する）。他の実施形態では、構成の目的は、上記に記載したパフォーマンス及び／もしくはコストの欠陥に基づいて、ならびに／またはボリューム構成を変更する必要があり得る（例えばデータボリュームが利用可能なストレージ以外で稼働していることを検知する）トリガ、アラームまたはシナリオに基づいて動的に特定される場合もある。データボリュームの可能な構成に基づいて特定された構成の目的を解決するために様々な最適化技術を実行することで（例えば、様々な有限の、反復の、またはヒューリスティックベースの技術を実行する）、特定された目的の１つまたは複数に関してデータボリュームを改善する構成を見いだすことができる。構成推奨は、データボリュームのタイプ（例えば、汎用、プロビジョンドアクセスもしくはコスト効率）及び／またはデータボリュームのリソース割り当てもしくは利用（例えばストレージボリューム）に対する変更を含む場合がある。いくつかの実施形態において、異なるローカリティ（例えば、異なるリソースホストまたはインフラストラクチャゾーン）がデータボリュームに関してより最適なパフォーマンスを提供し得る（例えば、データボリュームへのより最適なネットワークアクセスを行うために、ネットワーク利用がより少ないローカリティにおいてデータボリュームを構成する）という判断に基づいて構成推奨が生成される場合もある。一部の実施形態において、推奨構成を提供する適切なデータボリュームオファリングが特定されて良い。複数の構成推奨が１つのデータボリュームに関して生成される場合もある。
【００３６】
構成マネージャ２２７は、以下で考察するように、種々の実施形態において、クライアント（複数可）３５０に構成推奨の通知を提供する場合がある。例えば、認証管理３４０が実装されて、構成推奨を含む通知（例えば電子メールメッセージ、クライアントにモニタされるメッセージボードへの投稿メッセージ、または他の通信技術）を生成し送信する場合がある。認証管理３４０は、一部の実施形態において、図４に関して以下で考察するように、データボリュームの自動再構成に関する認証を行う及び／または設定することが許された構成推奨の返信である選択を受信するためのインターフェースを提供する場合もある。
【００３７】
構成マネージャ２２７は、認証された構成を実行するために再構成コーディネータ３３０を実装して良い。例えば、少なくとも一部の実施形態ではマイグレーション操作が行われて、新たな推奨構成においてデータボリュームをホストする能力及び／または容量を備えた異なるリソースホストにデータボリュームを移動させる場合がある。マイグレーション操作は、一部の実施形態では、データボリュームを移動先のリソースホストに移し替えるように現在のリソースホストに命じることによって実施されて良い。いくつかの実施形態において、リソースを移動先のリソースホストに送る前に、マイグレーションワーカータスクまたはノードなどの仲介物が、リソースに命じる及び／またはリソースを受け取る場合もある。一部の実施形態では、複数のマイグレーション操作を行って、複数のレプリカまたはコピー（例えば、マスター及びスレーブ（複数可））を有するデータボリュームを移動させる場合もある。マイグレーション操作は、データボリュームのクライアント利用を妨害したり、それに影響を与えたりしないようなやり方で行われて良い。例えば、マイグレーション操作は、データボリュームの１つまたは複数のレプリカが、データボリュームへのサービスアクセスリクエストに対して利用可能であるようにして常に行われて良い（例えば、新たな構成において２つのレプリカが第３のレプリカを追加し、この第３のレプリカにデータボリュームをコピーし、最初の２つのレプリカのうちの１つを削除し、
第２の新たなレプリカを新たな構成において追加することを繰り返し、最後に、新たな構成において２つのレプリカを有するために古い構成の第２のレプリカを削除する）。少なくとも一部の実施形態では、データボリュームを構成する作業は、データボリュームをマイグレートせずに、リソースホストを更新して新たな構成においてデータボリュームを提供することを含む場合がある（例えば、追加のストレージをデータボリュームに割り当てる、追加のＩＯＰＳをデータボリュームに割り当てるなど）。データボリュームを再構成することによって成された変更を反映するために、様々なメタデータ、アカウント情報、請求書作成、メータリング、またはクライアントに関する他のデータに対する更新が行われる場合もある（例えば、新たなボリューム構成を反映するために請求率または他のメータリング情報を更新する）。
【００３８】
図４は、一部の実施形態による、データボリュームの動的な構成を構成するためのクライアントとストレージサービスの間の対話を例示する論理ブロック図である。図２に関して上記で考察されたインターフェース２２９が、ブロックベースストレージサービス２２０に関して実装されてクライアント（複数可）４００、例えば、プロバイダネットワーク２００の外部のクライアント（例えばクライアント２１０）またはプロバイダネットワーク２００の内部のクライアント（例えば他のサービス２３０、２４０など）に、ブロックベースストレージサービス２２０によって提供される種々のサービス及び機能へのアクセスを与えることができる。インターフェース２２９は、ネットワークベースのサイト（例えばウェブサイト）において実装され得るような、プログラムに基づいたインターフェース（例えばアプリケーションプログラミングインターフェース（ＡＰＩ））及び／またはグラフィカルユーザインターフェース（ＧＵＩ）として実装されて良い。一部の実施形態では、以下に記載される様々なリクエスト、応答、通知及び他の通信が、インターフェース２２９を介して提供されて良い。例えば、専用ＡＰＩリクエストは、リクエスト４１０及び４３０ならびに応答４２０及び４４０用にフォーマットされて良い。
【００３９】
自動構成を認証する１つまたは複数のリクエスト（複数可）４１０が、インターフェース２２９を介して送信されて良い。例えば、ポップアップウィンドウ、一連のインターフェース（例えばウィザード）または他のグラフィカルユーザインターフェースが、データボリュームの自動構成を構成するための１つまたは複数のオプションまたは選択を提供することができる。例えば、特定のデータボリュームを特定するためのインターフェース要素（例えば特定のユーザアカウントに対応付けられたデータボリュームのドロップメニュー）、またはデータボリュームの名前または他の識別子が入力され得るサーチインターフェースが実装されて良い。選択または入力４１０が行われてデータボリュームを特定することができる。同一の及び／または異なるユーザインターフェース要素（例えば「私は同意します」というボタン）を介して自動再構成を行うための認証または同意が伝達されて良い。少なくとも一部の実施形態では、自動構成は、特定の状況において行われるようにさらに構成される場合もある。例えば、再構成が行われ得ることに応答してトリガ事象またはアラームが設定されて良い（図６に関して以下で考察するように）。一部の実施形態では、推奨または構成事象をトリガするための様々なメトリクス、情報または他のシナリオが、自動構成リクエスト４１０に関する認証の一部として指定される場合もある。
【００４０】
インターフェース２２９（または何らかの他の通信技術）を介して推奨通知（複数可）４２０がクライアント（複数可）４００に提供されて良い。例えば推奨通知（複数可）４２０は、クライアントに対して直接送信されるＡＰＩフォーマット化された応答を介して提供されて良い。いくつかの実施形態において、代替の通信プロトコルまたは技術、例えば電子メール（ｅ−メール）、可聴メッセージ（例えば携帯電話に対する）、またはＳＭＳもしくはＭＭＳテキストメッセージを利用して推奨通知を提供する場合もある。少なくとも一部の実施形態では、図５に関して以下で考察するように、グラフィカルユーザインターフェース通知が提供されて良い。例えばｅ−メールが、ユーザアカウントに登録され
たｅ−メールアドレスまたは推奨通知に関して認証された受取人に送信されて良く、これは推奨通知を含むグラフィカルユーザインターフェースを実装するネットワークベースのサイトへのリンクを提供することができる。通知は、サイトダッシュボード、メッセージボード、またはグラフィカルユーザインターフェースを介して提供される他の通信インターフェースに投稿または表示される場合もある。
【００４１】
図５は、一部の実施形態による、データボリュームに関する構成推奨の通知の一例の図である。推奨通知５００は、データボリュームに関して推奨される構成（複数可）の指示を与えるためにテキストの要素及び／またはグラフィカル要素を含んで良い。例えば、推奨通知は、データボリュームの名前または識別子によって特定のデータボリュームを特定することができる。少なくとも一部の実施形態において、概要の提示またはセクションが、構成推奨を行うように選択することによって達成され得る、見込まれる変更を示すことができる。例えば、図５に例示されるように、「再構成することによってデータボリューム４９２ＳＡ１０４ＸＺに関して書き込みパフォーマンスをＸ％増大させ、コストをＸ％セーブする」ことが述べられている。
【００４２】
いくつかの実施形態において、現在の構成の要素５１０は、そのデータボリュームの現在の構成を表す詳細を提供して良い。例えば、現在の構成５１０は、現在のデータボリュームタイプ（例えばソリッドステートストレージにバックアップされる、もしくは磁気ストレージにバックアップされる）、ストレージサイズ（例えば全体及び／または現在利用される）、どのようにストレージスループットが管理されるか／割り当てられるか（例えばクレジットベース、プロビジョンされる）、及び／または現在のコスト、を表示することができる。少なくとも一部の実施形態では、１つまたは複数のクライアント利用のメトリクスまたは履歴パフォーマンス５１２が提供される場合もある（例えばＩＯＰＳ）。例えば、説明する目的で（または推奨される構成と対比させるために）メトリクスが推進するまたはトリガする推奨が含まれる場合もある。図５に例示されるように、履歴パフォーマンス５１２は、点線の閾値を横断する際、急激な低下を示す利用のメトリクスを図示している（例えばＩＯＰＳクレジットバランスを超えたときのＩ／Ｏスロットリングを図示する）。
【００４３】
構成推奨５２０が推奨通知５００の中に含まれて良く、様々な変更（例えばボリュームタイプ、リソース割り当てもしくは他の変更、位置及び／またはコストの変更など）及び／または推奨される変更を提供するデータボリュームオファリングを記載して良い。少なくとも一部の実施形態では、可能性のある上昇傾向または最適化（例えばパフォーマンス及び／またはコストに対する）を例示するために示される、推定されるパフォーマンス５２２の表示が含まれる場合もある。例えば、推定されるパフォーマンス５２２は、点線（例えばプロビジョンされたＩＯＰＳ閾値）を超えないように図示され、これは（履歴パフォーマンス５１２に図示される変動とは対照的に）より安定したパフォーマンスを示すことができる。図５には１つの推奨される構成が図示されているが、推奨通知５００には複数の推奨される構成が含まれて良く（そのうちの１つが選択されて良い）、よって図５は、含まれ得る推奨構成の数に関して例示することは意図されないことに留意されたい。
【００４４】
少なくとも一部の実施形態では、構成推奨は、異なるデータボリュームオファリングとして表示される場合があり、さらなる詳細の表示のために選択され得る複数の異なるデータボリュームオファリングをリストアップする。例えば、異なるより大きなストレージサイズを提供するデータボリュームオファリングが、例えばリストアップされて良い。異なるデータボリュームオファリングのうちの１つの選択などのやり取りが、パフォーマンス特徴及び／またはコストなどの、さらなる情報を提供することができる。少なくとも一部の実施形態では、異なるデータボリュームオファリングに対して異なる値付けモデルが実行される場合もある。例えば、市場モデルによって、プロバイダネットワークまたは第三
者プロバイダ／ファシリテータ／オペレータによって、特定の構成を有するデータボリュームオファリングがリストアップされることを可能にすることができる。データボリュームオファリングは、現在の要求（例えばそのボリュームオファリングに従ってデータボリュームを再構成するコストを変更する）に基づいて提供されて良い、及び／または異なる利用期間（例えば異なる値札付けスキームの長さ、予約されたもしくは割り込み可能なサービスなど）を提供する場合もある。
【００４５】
図５に例示されるように、推奨通知５００に対する応答を行うために、１つまたは複数のグラフィカルユーザインターフェース要素５３０及び５４０が実装されて良い。例えば、図５において、構成推奨５２０に従ってデータボリュームを再構成するために「はい」という要素５３０が選択されて良い。少なくとも一部の実施形態では、「はい」の要素５３０は、ひとたび選択されると、さらなるユーザ対話なしで再構成が自動で行われるような「ワン−クリック」ユーザエクスペリエンスを提供することができる。他のそのようなユーザインターフェース要素も同様のワン−クリックエクスペリエンス（例えば複数の構成推奨のリストの各々の隣の「はい」の要素など）を提供することができる。一部の実施形態では、再構成の実施を拒否するために「いいえ」というインターフェース要素５４０が選択される場合もある。
【００４６】
グラフィカルユーザインターフェースとして構成されても、テキスト通知として構成されても、または他の形態の通知として構成されても、図５に関して上記で考察した情報の種々の部分の多くがこの通知に含まれて良い。同様に、上記で考察した種々のユーザインターフェース要素に加えて、またはその代わりに構成選択４３０がテキスト応答として提供される（例えばコマンドラインインターフェースを介して）場合もある。したがって先の考察は、他の形態の推奨通知（複数可）４２０または構成選択４３０に関して限定することは意図されていない。
【００４７】
少なくとも一部の実施形態では、データボリュームの再構成が完了すると、インターフェース２２９を介して構成完了通知が送信されて良い４４０。構成が自動で行われた例では、例えば、構成推奨に関して上記で考察したようなさらなる詳細（例えばボリュームタイプ、リソース割り当て、位置に対する変更など）が提供される場合もある。いくつかの実施形態において、通知４４０は、グラフィカル通知システム、または推奨通知（複数可）４２０に関して上記で考察したようなカスタマ−アカウントに関するメッセージボードを介して提供されて良い。
【００４８】
図２〜図５に関して上記で考察した一例のデータボリュームの動的構成は、ブロックベースストレージサービスに関して提供されてきた。データボリュームを提供する種々の他のタイプまたは構成のストレージシステムまたはサービスがこのような技術を実行する場合がある。上記に記載した種々のモジュール、構成要素、システム及び／またはサービスの異なる構成が、データボリュームの動的な構成を実現して良く、構成推奨を決定し、認証を検出して構成推奨を実行し、データボリュームを構成するように構成されて良い。図６は、一部の実施形態による、データボリュームの動的な構成を実現するための種々の方法及び技術を図示するハイレベルのフローチャートである。これらの技術は、図２〜図５に関して上記に記載したような、制御プレーン、構成マネージャ、またはデータボリュームをストレージシステム内で構成するための他の構成要素を利用して実行されて良い。
【００４９】
６１０に示されるように、クライアントのためにストレージサービス内にホストされるデータボリュームのクライアント利用がモニタされて良い。クライアント利用データは、種々の実施形態において、そのデータボリュームに割り当てられた総ストレージからの特定のデータボリューム内に保存されるデータの全体量、ＩＯＰＳ（またはデータボリュームにアクセスするために行われるワークロードの何らかの他の表示）などのアクセス利用
、データボリュームのクライアント利用を示す、もしくはそれに関連し得るスループット（例えば毎秒当たり転送されるバイト数）またはレイテンシ（例えばデータボリュームにおいて特定の動作もしくはトランザクションを実行するための時間量）などの、何らかの他のパフォーマンス特徴を示すストレージ利用であって良い。
【００５０】
６２０に示されるように、推奨事象が検出されて良い。推奨事象は、いくつかの実施形態において、特定のアラーム、またはモニタされるクライアント利用データによって示されるシナリオ（例えばデータボリュームがＸ回バーストアクセスクレジットバランス超えたこと）に基づいてトリガされて良い。いくつかの実施形態において、推奨事象は単に、データボリュームに関して周期的な推奨を生成させる（例えば１週間または１ヶ月に一回）タイマーまたは他の事象である場合もある。いくつかの実施形態において、構成推奨（複数可）は、検出された推奨事象に応答して決定される場合もある。
【００５１】
６３０に示されるように、一部の実施形態では、データボリュームのクライアント利用に少なくとも一部基づいて、サービスのデータボリュームオファリングに従ってデータボリュームを再構成するための構成推奨（複数可）が決定されて良い。再構成後のデータボリュームへのその後のアクセスが新たな構成を介して行われるように、種々の推奨技術を実行して、データボリュームを再構成する利用可能なデータボリュームオファリングに従って、データボリュームに関する構成推奨を決定することができる。例えば、履歴クライアント利用データの分析に基づいて、データボリュームに関するベースラインまたは見込まれる利用または要件が決定されて良い。例えば、データボリュームの利用されるストレージが４５０から６５０ギガバイトの間で変動する場合、このとき６５０ギガバイトのベースライン要件が特定されて良い。パフォーマンス及び／またはコストに関してデータボリュームを最適化し得る、または改善し得る構成推奨が決定されて良い。以下で考察される図７は、構成の目的を最適化するために構成分析の種々の例を提供する。いくつかの実施形態において、構成の目的は、クライアントによって明白に定義されてよい（例えばパフォーマンスを高め、かつコストを下げる構成推奨のみを提供する）。他の実施形態において、構成の目的は、上記に記載したパフォーマンスの欠陥及び／またはコストの欠陥、もしくはボリューム構成を変更する必要があり得る（例えばデータボリュームが利用可能なストレージ以外で稼働していることを検出する）他のトリガ、アラームまたはシナリオに基づいて動的に特定される場合もある。
【００５２】
データボリュームの可能な構成に基づいて特定された構成の目的を解決するために様々な最適化技術を実行する（例えば様々な有限の、反復の、またはヒューリスティックベースの技術を実行する）ことで、特定された目的の１つまたは複数に関してデータボリュームを改善する構成を見いだすことができる。構成推奨は、データボリュームタイプ（例えば上記で考察した汎用、プロビジョンドアクセスまたはコスト効率）及び／またはデータボリュームのリソース割り当てもしくは利用（ストレージ、ＩＯＰＳ）に対する変更を含む場合もある。例えば、構成推奨は、データボリュームタイプを変更してＩＯＰＳを増大させる場合、またはストレージサイズを変更してＩＯＰＳを増大させる場合がある。いくつかの実施形態において、異なるローカリティ（例えば異なるリソースホストまたはインフラストラクチャゾーン）が特定のデータボリュームに関してより最適なパフォーマンスを提供し得る（例えばそのデータボリュームに対するより最適なネットワークアクセスを行うために、よりネットワーク利用がより少ないローカリティにおいてデータボリュームを構成する）という判断に基づいて、構成推奨が生成される場合もある。一部の実施形態において、推奨構成を提供する適切なデータボリュームオファリングが特定されて良い。複数の構成推奨が１つのデータボリュームに関して生成される場合もある。
【００５３】
６４０に示されるように、推奨を実施するためのクライアント認証が検出されて良い。クライアント認証は、一部の実施形態では、インターフェースを介して明白に受信され検
知されて良い。例えば、図５に関して上記で考察したグラフィカルユーザインターフェースが実装されて良く、これは選択されたならば、構成推奨を実施すべきことを示す単独のユーザインターフェース要素を提供することができる。他のタイプの構成、または構成推奨の選択の指示、例えばコマンドラインインターフェースから生成されたＡＰＩリクエストなどが受信される場合もある。少なくとも一部の実施形態では、特定の最適化の目的（例えばコスト及びパフォーマンス）、またはトリガ事象（例えば利用可能な記憶容量が不十分である）のいずれかに関して、クライアントまたはユーザがクライアント推奨を事前に認証する場合もある。ユーザアカウント設定、データストア、またはそれに関して事前の認証が承諾されたデータボリュームを（及びどのタイプの構成推奨かについて）指示するその他のセットの情報が維持されて良い。
【００５４】
６５０に示されるように、この構成推奨に従ってデータボリュームが再構成されて良い。例えば、マイグレーション操作が行われて、新たな推奨される構成においてデータボリュームをホストする能力及び／または容量を備えた異なるリソースホストにデータボリューム移動させることができる。マイグレーション操作は、一部の実施形態ではデータボリュームを移動先のリソースホストに移し替えるように現在のリソースホストに指示することによって実施されて良い。いくつかの実施形態において、リソースを移動先のリソースホストに送る前に、マイグレーションワーカータスクまたはノードなどの仲介物がリソースに命じる及び／またはリソースを受け取る場合もある。一部の実施形態では複数のマイグレーション操作を行って、複数のレプリカまたはコピー（例えばマスター及びスレーブ（複数可））を有するデータボリュームを移動させる場合もある。マイグレーション操作は、データボリュームのクライアント利用を妨害したりそれに影響を与えたりしないようなやり方で行われて良い。少なくとも一部の実施形態では、データボリュームを構成する作業は、データボリュームをマイグレートせずに、リソースホストを更新して新たな構成においてデータボリュームを提供することを含む場合がある。一部の実施形態では、新たな構成を反映するために、メタデータ、アクセスもしくは利用ポリシー、ストレージマッピング、またはどのようにデータボリュームがホスト（複数可）において実現されるのかを制御する他のデータが更新される場合もある。
【００５５】
データボリュームのグループを評価して推奨される変更を行うために、制御プレーンまたは他のストレージサービス管理システムの一部として、図６に関して上記に記載した技術が実施されて良い。例えば、多くの異なるクライアントまたはユーザアカウントに関するデータボリュームが制御プレーンによって周期的に評価されることで、異なる構成がデータボリュームのコストを下げる（パフォーマンスを下げることなく）可能性があるかどうか判定することができる。そうであるならば、データボリュームのこのグループに関してコスト削減を達成するために、制御プレーンは、このグループのデータボリュームを再構成することができる。
【００５６】
図７は、一部の実施形態による、構成推奨を決定するための種々の方法及び技術を図示するハイレベルのフローチャートである。７１０で示されるように、データボリュームに関する最適化の目的が特定されて良い。最適化の目的は、一部の実施形態では、データボリュームのユーザまたはクライアントによって明白に定義されて良い、または設定されて良い。例えば、そのデータボリュームに関してコストの改善が確認された場合、データボリュームは自動構成に関して認証されて良い。同様に、推奨の通知を受信したとき、ユーザが明白に認証するまたは拒否し得る、パフォーマンスの改善を考慮するためのデータボリュームが特定される場合もある。少なくとも一部の実施形態では、複数の目的（例えばコスト、パフォーマンス及びコストとパフォーマンスの両方）が特定される場合もある。
【００５７】
７２０、７３０及び７４０に示されるように、コスト最適化の目的、パフォーマンス最適化の目的、及びパフォーマンスとコストを改善するための最適化の目的が特定されて良
い。７２２、７３２及び７４２に示されるように、データボリュームオファリングのそれぞれの決定は、これらの目的の各々、それぞれに関してデータボリュームを改善するように行われて良い。異なる最適化目的の各々にどのように到達し得るかを評価するために、データボリュームの履歴クライアント利用データが分析されて良い。例えば、履歴クライアント利用データが、データボリュームにおいて行われるＩＯＰＳが、データボリュームのプロビジョンドアクセス容量を完全には利用しなかったこと、及び汎用データボリュームを含むデータボリュームオファリングによって提供されるバースト容量が、同様のパフォーマンス体験を提供するのに十分であることを示したならば、コスト最適化の目的は、プロビジョンドアクセスから汎用ボリュームへとボリュームタイプを変更することが、そのデータボリュームに対するアクセス容量に対して全く（またはほとんど）影響せずに特定のデータ量を保存し、これにアクセスするためのコストを下げる可能性があることを認識し得る。コスト最適化の目的の別の例では、そのデータがあまりにもまれにしかアクセスされないため、コスト効率の高いデータボリュームを含むデータボリュームオファリングへのボリュームタイプの変更は、データボリュームのパフォーマンスに対して全く（またはほとんど）影響せずにデータボリュームに対してより低コストを実現するであろうと、データボリュームの評価が判定する場合もある。
【００５８】
同様の分析が、パフォーマンス目的に関しても行われて良い。例えば、コスト効率の高いデータボリュームタイプで実現されたデータボリュームの履歴クライアント利用は、汎用またはプロビジョンドアクセスボリュームタイプを含むデータボリュームオファリングへの変更が、そのデータボリュームへのより最適なアクセスを提供することを示す場合がある。上記で指摘したような一部のデータボリュームオファリングは、データボリュームに対するリソース割り当てに対する変更を含む場合がある（たとえボリュームタイプに対する変更がなくても）。例えば、別のパフォーマンス最適化の例では、アクセスクレジットが不足しているため、データボリュームへのアクセスが抑制されていることを示すクライアント利用履歴の分析に基づいて、バーストアクセスクレジットがそのデータボリュームに関するクレジットバランスに加えられる補充速度を上げるために、汎用ボリュームのストレージサイズに対して推奨される増加が決定される場合がある。
【００５９】
いくつかの実施形態において、パフォーマンス及びコストは、７４２に示されるように共に最適化されて良い（これはコストまたはパフォーマンスを個々に最適化するのではなく、異なるデータボリュームオファリングを提供することができる）。例えば、履歴クライアント利用データが、データボリュームに対して行われるアクセスが不十分である（例えばＩＯＰＳが十分でない）ことを示す場合がある。バーストアクセスクレジットに関してより高速の補充速度を実現するために、データボリュームのストレージサイズが大きい場合もあるが、ストレージサイズの一部のみが実際には利用される。履歴クライアント利用データによって示されるＩＯＰＳ要件を満たすようにプロビジョンされたＩＯＰＳの数を有するプロビジョンドアクセスボリュームとして、より小さい（及びより安い）ストレージサイズを有するようにデータボリュームを構成するために、データボリュームオファリングが特定されて良い。
【００６０】
少なくとも一部の実施形態では、データボリュームオファリング（複数可）は、改善閾値を超える構成推奨（複数可）として提供されて良い。改善閾値は、構成を実施するコストに匹敵すべき利益のいかなる閾値も満たさない推奨を除外するために、クライアント及び／またはストレージシステムによって決定されて良い。例えば、ストレージシステムは、この閾値を実行することで、ごくわずかな利益の推奨は提供されないこと、及び／または自動的に行われてシステムリソースを無駄にすることがないことを保証することができる。同様に、クライアントは、この利益がある特定の意味がある場合のみ（例えば特定の分量のコストを削減する）推奨を受けるように選択することができる。
【００６１】
７６０に示されるように、構成推奨（複数可）の通知が提供７６０されて良い。図４及び図５に関して上記で考察したように、通知は、クライアントに直接送信されるＡＰＩフォーマット化された応答を介して提供されて良い。いくつかの実施形態において、代替の通信プロトコルまたは技術、例えば電子メール（ｅ−メール）、可聴メッセージ（例えば携帯電話に対する）またはＳＭＳもしくはＭＭＳテキストメッセージを利用して、推奨通知を提供する場合もある。少なくとも一部の実施形態では、グラフィカルユーザインターフェース通知が提供される場合もある。通知は、サイトダッシュボード、メッセージボード、またはグラフィカルユーザインターフェースを介して提供される他の通信インターフェースに投稿または表示されて良い。
【００６２】
図８は、一部の実施形態による、データボリュームを構成するための種々の方法及び技術を図示するハイレベルのフローチャートである。上記で考察した様々な技術に従ってデータボリュームの認証された構成推奨が決定されて良い。データボリュームの構成作業は、再構成される際、データボリュームをホストする能力及び容量を備えたリソースホストを特定することを含んで良い。８１０に示されるように、一部の実施形態において、データボリュームの認証された再構成に関するホストの位置が特定されて良い。例えば、再構成されたデータボリュームをホストするための記憶容量及びアクセス容量（例えばＩＯＰＳ）を備えたそのようなリソースホストを特定するために、ホスト利用データ及び／または構成データが評価されて良い。同様に、再構成されたデータボリュームを提供するためにハードウェア（例えばＳＳＤまたはＨＤＤ）及び／またはソフトウェアを備えたホストの位置が特定されて良い。
【００６３】
少なくとも一部の実施形態において、８２０に示されるように、最初の判断は、現在データボリュームをホストするリソースホストが構成後もこのデータボリュームを継続してホストするかどうかについてのチェックであって良い。例えば、ホストがＳＳＤバックアップストレージをホストし、かつ構成推奨が、共にＳＳＤバックアップストレージを利用するボリュームタイプの間での変更を含む場合、ホストは、再構成後もデータボリュームをホストすることができる。８５０に示されるように、そのようなシナリオにおいて、一部の実施形態では、データボリュームを再構成するために現在のホスト（複数可）が更新されて良い。例えば、新たな構成を反映するために（例えばストレージサイズを増大／縮小する、ＩＯＰＳを増大／減少するなど）、メタデータアクセスもしくは利用ポリシー、ストレージマッピング、またはデータボリュームがこのホスト（複数可）においていかにして実現されるかを管理する他のデータが更新されて良い。
【００６４】
８２０からの肯定的な出口として示されるように、データボリュームが移動される場合、８３０に示されるように、特定されたホストの位置にデータボリュームを再配置するためにマイグレーション操作（複数可）が始動されて良い。種々の実施形態において、要素８５０に関して上記で考察したように、特定されたホスト位置は、データボリュームを新たな構成で実現するように構成されて良い（例えばメタデータ、アクセスまたは利用ポリシー、ストレージマッピング、もしくはどのようにデータボリュームが実現されるかを管理する他のデータを更新する）。マイグレーション操作は、いくつかの実施形態において、データボリュームを移動先のリソースホストに移し替えるように現在のリソースホストに指示することによって実施されて良い。いくつかの実施形態において、リソースを移動先のリソースホストに送る前に、マイグレーションワーカータスクまたはノードなどの仲介物がリソースに命じる及び／またはリソースを受け取る場合もある。一部の実施形態では、複数のマイグレーション操作を行って、複数のレプリカまたはコピー（例えばマスター及びスレーブ（複数可））を有するデータボリュームを移動させる場合もある。マイグレーション操作は、データボリュームのクライアント利用を妨害したりそれに影響を与えたりしないようなやり方で行われて良い。例えば、マイグレーション操作が完了していない間も、データボリュームへのアクセスはなおもデータボリュームの現在の構成に従って
行われて良い。マイグレーション操作が完了すると、種々の実施形態において、８６０に示されるように、再構成が完了したことを示す通知が送信されて良い。
【００６５】
本開示の実施形態を、以下の条項を鑑みて記載することができる。
１．  １つまたは複数のストレージノードであって、
ブロックベースストレージサービスの複数のクライアントのために複数のデータボリュームを格納するように構成されており、前記複数のデータボリュームの少なくとも１つが前記複数のデータボリュームの別のものと同一のストレージノードに格納される、前記１つまたは複数のストレージノードと、
前記ストレージシステムのための構成マネージャであって、
前記データボリュームの所与のデータボリュームに関して、
前記データボリュームのクライアント利用を追跡し、
前記データボリュームの前記クライアント利用に少なくとも一部基づいて、前記ブロックベースストレージサービスの１つまたは複数のデータボリュームオファリングに従って前記データボリュームを再構成するために１つまたは複数の構成推奨を決定し、
前記クライアントに前記１つまたは複数の構成推奨を提供し、
前記構成推奨の１つを実施するためのクライアント認証を受信し、
その後の前記データボリュームの利用が前記再構成されたデータボリュームに従って行われるように、前記認証された構成推奨に従って前記データボリュームの構成を指示するように構成される、前記構成マネージャと、
を備える、ネットワークベースのブロックベースストレージサービス。
２．前記１つまたは複数の構成推奨を決定して、前記データボリュームを再構成するために、前記構成マネージャが、前記データボリュームに関して、
パフォーマンス最適化目的、または
コスト最適化目的のうちの少なくとも一方を含む１つまたは複数の最適化目的、を特定し、
前記構成推奨として提供するために、前記最適化目的に対して前記データボリュームを改善する前記１つまたは複数のデータボリュームオファリングを決定する、
ように構成される、条項１に記載のシステム。
３．前記認証された構成推奨に従って前記データボリュームの構成を指示するために、前記構成マネージャが、前記認証された構成推奨を提供することが可能な１つまたは複数の異なるリソースホストに前記データボリュームを再配置するために、１つまたは複数のマイグレーション操作を開始するように構成される、
条項１に記載のシステム。
４．前記１つまたは複数の構成推奨が、グラフィカルユーザインターフェースを介して前記クライアントに提供され、
前記クライアント認証を検出して前記１つの構成推奨を実施するために、前記構成マネージャが、前記グラフィカルユーザインターフェースを介して前記クライアントから前記１つの構成推奨の指示を受信する、
条項１に記載のシステム。
５．方法であって、
１つまたは複数のコンピューティングデバイスによって、
データボリュームのクライアント利用履歴に少なくとも一部基づいて、ブロックベースストレージサービスの１つまたは複数のデータボリュームオファリングに従って、前記ブロックベースストレージサービス内でクライアントのためにホストされる前記データボリュームを再構成するために、１つまたは複数の構成推奨を決定することと、
前記構成推奨の１つを実施するためにクライアント認証を検出することと、
前記データボリュームのその後の利用が前記再構成されたデータボリュームに従って行われるように、前記認証された構成推奨に従って前記データボリュームを構成することと、
を実行すること、を含む前記方法。
６．前記方法がさらに、前記クライアントに前記１つまたは複数の構成推奨を提供することを含み、
前記１つの構成推奨を実施するためにクライアント認証を検出することは、前記クライアントから前記１つの構成推奨の指示を受信することを含む、
条項５に記載の方法。
７．前記１つまたは複数の構成推奨は、グラフィカルユーザインターフェースを介して前記クライアントに提供され、前記受信される指示は、前記グラフィカルユーザインターフェースのユーザインターフェース要素の選択であり、
前記グラフィカルユーザインターフェースの前記ユーザインターフェース要素の前記選択に応答して、前記認証された構成推奨に従って前記データボリュームを構成することが行われる、
条項６に記載の方法。
８．前記データボリュームに関する推奨事象を検出することをさらに含み、
前記構成推奨を決定することが、前記推奨事象の検出に応じて行われる、
条項５に記載の方法。
９．前記データボリュームを再構成するために前記１つまたは複数の構成推奨を決定することが、
前記データボリュームに関して、１つまたは複数の最適化目的を特定することであって、前記１つまたは複数の最適化目的の少なくとも１つがパフォーマンス最適化目的である、前記特定することと、
前記最適化目的に対して前記データボリュームを改善する前記１つまたは複数のデータボリュームオファリングを決定することと、
を含む、条項５に記載の方法。
１０．前記認証された構成推奨が、前記データボリュームを異なるデータボリュームタイプに変更することを含む、条項５に記載の方法。
１１．前記認証された構成推奨が、前記データボリュームに関して１つまたは複数のリソース割り当てを変更することを含む、条項５に記載の方法。
１２．前記認証された構成推奨に従って前記データボリュームを構成することが、前記認証された構成推奨を提供することが可能な１つまたは複数の異なるリソースホストに前記データボリュームを再配置するために、１つまたは複数のマイグレーション操作を行うことを含む、条項５に記載の方法。
１３．前記ブロックベースストレージサービスがプロバイダネットワークの一部として実装され、前記認証された構成推奨に従って前記データボリュームを構成することが、前記プロバイダネットワークの一部として実装された別のストレージサービスに前記データボリュームをマイグレートすることを含む、条項５に記載の方法。
１４．１つまたは複数のコンピューティングデバイスによって実行される際、前記１つまたは複数のコンピューティングデバイスに、
ブロックベースストレージサービス内でクライアントのためにホストされるデータボリュームのクライアント利用をモニタすることと、
前記データボリュームの前記クライアント利用に少なくとも一部基づいて、前記ブロックベースストレージサービスの１つまたは複数のデータボリュームオファリングに従って前記データボリュームを再構成するために１つまたは複数の構成推奨を決定することと、
前記構成推奨の１つを実施するためにクライアント認証を検出することと、
その後の前記データボリュームの利用が前記再構成されたデータボリュームに従って行われるように、前記認証された構成推奨に従って前記データボリュームを構成することと、
を実施させるプログラム命令を記憶する、非一時的なコンピュータ読み取り可能記憶媒体。
１５．前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、前
記クライアントに対して前記１つまたは複数の構成推奨を提供することをさらに実施させ、かつ
前記特定の構成推奨を実施するためにクライアント認証を検出する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、前記クライアントから前記１つの構成推奨の指示を受信することを実施させる、
条項１４に記載の非一時的なコンピュータ読み取り可能記憶媒体。
１６．前記データボリュームを再構成するために前記１つまたは複数の構成推奨を決定する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、
前記データボリュームに関して、１つまたは複数の最適化目的を特定することであって、前記最適化目的の少なくとも１つがコスト最適化目的である、前記特定することと、
前記最適化目的に対して前記データボリュームを改善する前記１つまたは複数のデータボリュームオファリングを決定することと、
を実施させる、条項１４に記載の非一時的なコンピュータ読み取り可能記憶媒体。
１７．前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、
前記データボリュームに関して推奨事象を検出することをさらに実施させ、
前記構成推奨を決定することが、前記推奨事象を検出することに応答して行われる、
条項１４に記載の非一時的なコンピュータ読み取り可能記憶媒体。
１８．前記認証された構成推奨に従って前記データボリュームを構成する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、前記再構成されたデータボリュームを提供するために、前記データボリュームの１つまたは複数のホストを更新することを実施させる、
条項１４に記載の非一時的なコンピュータ読み取り可能記憶媒体。
１９．前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、前記データボリュームの前記構成が完了したとき、前記データボリュームの構成が完了したことを示す通知を前記クライアントに提供することをさらに実施させる、
条項１４に記載の非一時的なコンピュータ読み取り可能記憶媒体。
２０．前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、
グラフィカルユーザインターフェースを介して前記クライアントに前記１つまたは複数の構成推奨を提供することをさらに実施させ、
前記１つの構成推奨を実施するために前記クライアント認証を検出する際、前記プログラム命令が、前記１つまたは複数のコンピューティングデバイスに、前記グラフィカルユーザインターフェースを介して前記クライアントから前記１つの構成推奨の指示を受信することを実施させる、
条項１４に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【００６６】
本明細書に記載される方法は、種々の実施形態において、ハードウェア及びソフトウェアの任意の組み合わせによって実行されて良い。例えば一実施形態において、プロセッサに結合されたコンピュータ読み取り可能記憶媒体に保存されたプログラム命令を実行する１つまたは複数のプロセッサを含むコンピュータシステム（例えば図９におけるようなコンピュータシステム）によって、方法は実行されて良い。プログラム命令は、本明細書に記載される機能（例えば種々のサーバ、リソースホスト、制御プレーン、マネージャ及び／または他の構成要素、例えば本明細書に記載されるブロックベースストレージサービスを実装するものなど）を実行するように構成されて良い。図面に例示される及び本明細書に記載される種々の方法は、方法の一例の実施形態を表している。任意の方法の順序は変更されて良く、種々の要素が追加される、順序が変えられる、組み合わされる、削除される、修正されるなどする場合もある。
【００６７】
本明細書に記載されるデータボリュームの動的構成の実施形態は、種々の他のデバイスと対話することができる１つまたは複数のコンピュータシステム上で実行されて良い。図９は、種々の実施形態による、一例のコンピュータシステムを例示するブロック図である
。例えば、コンピュータシステム１０００は、種々の実施形態において、コンピュータクラスタ、データストア及び／またはクライアントのストレージ及び／またはコンピュートノードを実装するように構成されて良い。コンピュータシステム１０００は、種々のタイプのデバイスのいずれかであって良く、これは、限定するものではないが、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、コンシューマデバイス、アプリケーションサーバ、ストレージデバイス、電話、携帯電話、または一般的な任意のタイプのコンピューティングデバイスが含まれる。
【００６８】
コンピュータシステム１０００は、入力／出力（Ｉ／Ｏ）インターフェース１０３０を介してシステムメモリ１０２０に結合された１つまたは複数のプロセッサ１０１０（そのうちの一部は、多重コアを含んで良く、これは単一または多重スレッドであって良い）を含む。コンピュータシステム１０００はさらに、Ｉ／Ｏインターフェース１０３０に結合されたネットワークインターフェース１０４０を含む。種々の実施形態において、コンピュータシステム１０００は、１つのプロセッサ１０１０を含む単一プロセッサシステム、または複数（例えば２つ、４つ、８つ、またはその他の好適な数の）のプロセッサ１０１０を含むマルチプロセッサシステムであって良い。プロセッサ１０１０は、命令を実行することが可能な任意の好適なプロセッサであって良い。例えば、種々の実施形態において、プロセッサ１０１０は、多様な種類の命令セットアーキテクチャ（ＩＳＡ）、例えばｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣもしくはＭＩＰＳ  ＩＳＡ、または任意の他の好適なＩＳＡを実装する汎用もしくはエンベデッドプロセッサであって良い。マルチプロセッサシステムにおいて、プロセッサ１０１０の各々は共通して、但し必須ではないが、同一のＩＳＡを実装する場合がある。コンピュータシステム１０００はまた、通信ネットワークを介して（例えばインターネット、ＬＡＮなど）他のシステム及び／または構成要素と通信するために、１つまたは複数のネットワーク通信デバイス（例えばネットワークインターフェース１０４０）を含む。
【００６９】
例示される実施形態では、コンピュータシステム１０００はまた、１つまたは複数の永続的なストレージデバイス１０６０及び／または１つまたは複数のＩ／Ｏデバイス１０８０を含む。種々の実施形態において、永続的なストレージデバイス１０６０は、ディスクドライブ、テープドライブ、ソリッドステートメモリ、他のマスストレージデバイス、ブロックベースストレージデバイス、または任意の他の永続的なストレージデバイスに相当し得る。コンピュータシステム１０００（またはそこで動作する分散アプリケーションまたはオペレーティングシステム）は、所望により永続的なストレージデバイス１０６０に命令及び／またはデータを保存することができ、保存された命令及び／またはデータを必要に応じて取り出すことができる。例えば、いくつかの実施形態において、コンピュータシステム１０００は、ストレージシステムサーバノードをホストして良く、永続的ストレージ１０６０は、このサーバノードにアタッチされたＳＳＤを含んで良い。
【００７０】
コンピュータシステム１０００は、プロセッサ（複数可）１０１０によってアクセス可能な命令及びデータを保存するように構成された１つまたは複数のシステムメモリ１０２０を含む。種々の実施形態において、システムメモリ１０２０は、任意の好適なメモリ技術（例えば１つまたは複数のキャッシュ、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ＤＲＡＭ、ＲＤＲＡＭ、ＥＤＯ  ＲＡＭ、ＤＤＲ  １０  ＲＡＭ、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、ランバスＲＡＭ、ＥＥＰＲＯＭ、不揮発性／フラッシュタイプメモリ、または任意の他のタイプのメモリ）を利用して実装されて良い。システムメモリ１０２０は、本明細書に記載される方法及び技術を実行するためにプロセッサ（複数可）１０１０によって実行可能なプログラム命令１０２５を収容して良い。種々の実施形態において、プログラム命令１０２５は、プラットフォームネイティブバイナリ、Ｊａｖａ（
商標）バイトコードなどの何らかの解読された言語、またはＣ／Ｃ＋＋、Ｊａｖａ（商標）などの任意の他の言語、またはそれらの何らかの組み合わせにおいてエンコードされて良い。例えば、図示される実施形態では、プログラム命令１０２５は、種々の実施形態において、リソースホストの機能を実行するために実行可能なプログラム命令を含む。いくつかの実施形態において、プログラム命令１０２５は、複数の別個のクライアント、ノード及び／または他の構成要素を組み込む場合もある。
【００７１】
いくつかの実施形態において、プログラム命令１０２５は、オペレーティングシステム（図示せず）を実施するために実行可能な命令を含んで良く、このオペレーティングシステムは、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ、Ｓｏｌａｒｉｓ（商標）、ＭａｃＯＳ（商標）、Ｗｉｎｄｏｗｓ（商標）などの種々のオペレーティングシステムのいずれかであって良い。プログラム命令１０２５のいずれかまたは全ては、そこに保存された命令を有する非一時的コンピュータ読み取り可能記憶媒体を含み得るコンピュータプログラム製品またはソフトウェアとして提供されて良く、このプログラム命令を使用して、種々の実施形態によってプロセスを実行するためのコンピュータシステム（または他の電子デバイス）をプログラムすることができる。非一時的コンピュータ読み取り可能記憶媒体は、機械（例えばコンピュータ）によって読み取ることが可能な形態（例えばソフトウェア、プロセッシングアプリケーション）で情報を保存するための何らかの機構を含んで良い。一般的に言えば、非一時的コンピュータアクセス可能媒体は、磁気または光学媒体などのコンピュータ読み取り可能記憶媒体またはメモリ媒体、例えばＩ／Ｏインターフェース１０３０を介してコンピュータシステム１０００に結合されたディスクまたはＤＶＤ／ＣＤ−ＲＯＭを含んで良い。非一時的コンピュータ読み取り可能記憶媒体はまた、ＲＡＭ(例えばＳ
ＤＲＡＭ、ＤＤＲＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの任意の揮発性または不揮発性媒体を含む場合もあり、これは、システムメモリ１０２０または別のタイプのメモリとしてコンピュータシステム１０００の一部の実施形態に含まれて良い。他の実施形態において、プログラム命令は、光学、音響、またはネットワークインターフェース１０４０を介して実装され得るようなネットワーク及び／または無線リンクなどの通信媒体を介して伝えられる他の形態の伝播信号（搬送波、赤外線信号、デジタル信号など）を利用して伝達されて良い。
【００７２】
いくつかの実施形態において、システムメモリ１０２０は、データストア１０４５を含んで良く、これは本明細書で記載されるように構成されて良い。一般に、システムメモリ１０２０（例えばシステムメモリ１０２０内のデータストア１０４５）、永続的ストレージ１０６０及び／またはリモートストレージ１０７０は、データブロック、データブロックに対応付けたメタデータ及び／もしくはその状態、構成情報、ならびに／または本明細書に記載される方法及び技術を実行するのに利用可能な任意の他の情報を保存して良い。
【００７３】
一実施形態において、Ｉ／Ｏインターフェース１０３０は、ネットワークインターフェース１０４０または他の周辺インターフェースを経由することを含め、プロセッサ１０１０、システムメモリ１０２０及びシステム内の周辺装置間のＩ／Ｏトラフィックを調整するように構成されて良い。いくつかの実施形態において、Ｉ／Ｏインターフェース１０３０は、任意の必須のプロトコル、タイミングまたは他のデータ変換を行うことで、特定の構成要素（例えばシステムメモリ１０２０）から別の構成要素（例えばプロセッサ１０１０）によって使用するのに適したフォーマットにデータ信号を変換することができる。いくつかの実施形態において、Ｉ／Ｏインターフェース１０３０は、例えば、周辺構成要素相互接続（ＰＣＩ）バス標準またはユニバーサルシリアルバス（ＵＳＢ）標準の変形などの様々な種類の周辺バスを含んで良い。いくつかの実施形態において、Ｉ／Ｏインターフェース１０３０の機能は、２つ以上の別個の構成要素、例えば、ノースブリッジとサウスブリッジに分けられて良い。また、いくつかの実施形態において、Ｉ／Ｏインターフェース１０３０の機能の一部または全て、例えばシステムメモリ１０２０へのインターフェー
スなどは、プロセッサ１０１０に直接組み込まれる場合もある。
【００７４】
ネットワークインターフェース１０４０は、コンピュータシステム１０００と、ネットワークにアタッチされた他のデバイス、例えば他のコンピュータシステム１０９０の間でデータをやり取りすることを可能にするように構成されて良い。加えてネットワークインターフェース１０４０は、コンピュータシステム１０００と種々のＩ／Ｏデバイス１０５０及び／またはリモートストレージ１０７０の間で通信することを可能にするように構成されて良い。入力／出力デバイス１０５０は、いくつかの実施形態において、１つまたは複数のディスプレイターミナル、キーボード、キーパッド、タッチパッド、スキャンデバイス、音声もしくは光学認識デバイス、または１つまたは複数のコンピュータシステム１０００によってデータを入力するまたは取り出すのに好適な任意の他のデバイスを含んで良い。複数の入力／出力デバイス１０５０が、コンピュータシステム１０００内に存在する場合がある、またはコンピュータシステム１０００を含む分散システムの多様なノード上に分散される場合もある。いくつかの実施形態において、同様の入／出力デバイスがコンピュータシステム１０００から切り離される場合もあり、ネットワークインターフェース１０４０を介するなどして、有線または無線接続を通してコンピュータシステム１０００を含む分散システムの１つまたは複数のノードとやり取りすることができる。ネットワークインターフェース１０４０は、１つまたは複数の無線ネットワーキングプロトコル（例えば、Ｗｉ−Ｆｉ／ＩＥＥＥ  ８０２．１１または別の無線ネットワーキング標準）を共通してサポートして良い。しかしながら種々の実施形態において、ネットワークインターフェース１０４０は、任意の好適な有線または無線の一般的なデータネットワーク、例えば、他のタイプのイーサネット（登録商標）ネットワークなどを介する通信をサポートする場合もある。追加として、ネットワークインターフェース１０４０は、例えばアナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信／電話通信ネットワークを介して、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  ＳＡＮなどのストレージエリアネットワークを介して、または任意の他の好適なタイプのネットワーク及び／もしくはプロトコルを介して、通信をサポートする場合もある。種々の実施形態において、コンピュータシステム１０００は、図９に例示されるものより多くの、より少ない、または異なる構成要素（例えばディスプレイ、ビデオカード、音響カード、周辺機器、他のネットワークインターフェース、例えば、ＡＴＭインターフェース、イーサネットインターフェース、フレームリレーインターフェースなど）を含む場合がある。
【００７５】
本明細書に記載される分散システム実施形態のいずれか、またはその構成要素のいずれかは、１つまたは複数のネットワークベースサービスとして実装され得ることに留意されたい。例えば、コンピューティングサービスにおけるコンピュータクラスタは、コンピューティング及び／もしくはストレージサービス、ならびに／または本明細書に記載される分散コンピューティングシステムを利用する他のタイプのサービスをネットワークベースサービスとしてクライアントに提示することができる。いくつかの実施形態において、ネットワークベースサービスは、ネットワークを介する相互利用可能なマシン間の対話をサポートするように設計されたソフトウェア及び／またはハードウェアシステムによって実現されて良い。ネットワークベースサービスは、ウェブサービス記述言語（ＷＳＤＬ）などのマシン処理可能なフォーマットで記載されたインターフェースを有することができる。他のシステムは、ネットワークベースサービスのインターフェースの記述によって定められたやり方でネットワークベースサービスとやり取りすることができる。例えば、ネットワークベースサービスは、他のシステムが起動し得る種々の動作を定義することができ、種々の動作をリクエストする際、他のシステムが従うことが予測され得る特定のアプリケーションプログラミングインターフェース（ＡＰＩ）を定義する場合もある。
【００７６】
種々の実施形態において、ネットワークベースサービスは、ネットワークベースサービスのリクエストに対応付けられたパラメータ及び／またはデータを含むメッセージの利用
を通してリクエストされて良い、または呼び出されて良い。そのようなメッセージは、例えば、拡張マークアップ言語（ＸＭＬ）などの特定のマークアップ言語に従ってフォーマットされて良い、及び／またはシンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）などのプロトコルを利用してカプセル化されて良い。ネットワークベースサービスを実施するために、ネットワークベースサービスのクライアントは、そのリクエストを含むメッセージをアセンブルし、ハイパーテキスト転送プロトコル（ＨＴＴＰ）などのインターネットベースのアプリケーションレイヤ転送プロトコルを利用して、そのネットワークベースサービスに相当するアドレサブルなエンドポイント（例えばユニフォームリソースロケータ（ＵＲＬ））にメッセージを伝えることができる。
【００７７】
いくつかの実施形態において、ネットワークベースサービスは、メッセージによる技術ではなく、リプリゼンテーションステート転送（「ＲＥＳＴｆｕｌ」）技術を用いて実現される場合もある。例えば、ＲＥＳＴｆｕｌ技術によって実現されたネットワークベースサービスは、ＳＯＡＰメッセージの中カプセル化されるのではなく、例えばＰＵＴ、ＧＥＴまたはＤＥＬＥＴＥなどのＨＴＴＰ法に含まれるパラメータを通して呼び出すことができる。
【００７８】
上記の実施形態を、考慮すべき詳細において記載してきたが、上記の開示が完全に理解されたならば当業者に明らかであるように、多くの変形形態及び修正形態が形成される可能性がある。以下の特許請求の範囲は、全てのそのような修正形態及び変更を包含するように解釈されるように意図されており、したがって上記の記載は、限定する意味ではなく、例示の意味とみなすべきである。
【図１】
2020024733.tif 000003
【図２】
2020024733.tif 000004
【図３】
2020024733.tif 000005
【図４】
2020024733.tif 000006
【図５】
2020024733.tif 000007
【図６】
2020024733.tif 000008
【図７】
2020024733.tif 000009
【図８】
2020024733.tif 000010
【図９】
2020024733.tif 000011
【外国語明細書】
2020024733000001.pdf