(57)【特許請求の範囲】
【請求項１】
オブジェクトベースのストレージクラスタとして管理されるストレージデバイスのクラスタの内部に複数のデータ処理ポリシーを提供する機械に実装される方法であって、
コンテナオブジェクトにデータオブジェクトを割り当てる段階と、
前記コンテナオブジェクトの各々を複数の選択可能なデータ処理ポリシーの１つと関連付ける段階と、
前記データオブジェクトのそれぞれの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに部分的に基づき、ストレージデバイスの前記クラスタの内部のストレージデバイスの領域に各々のデータオブジェクトを割り当てる段階と
を備え、
各々のデータオブジェクトを割り当てる前記段階は、
データオブジェクトの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに基づき、複数のコンシステントハッシュリングの１つを選択する段階と、
前記選択されたコンシステントハッシュリングに基づき、前記データオブジェクトをストレージデバイスの領域に割り当てる段階と
を有し、
前記複数のコンシステントハッシュリングが１つのストレージデバイスを共有する、方法。
【請求項２】
前記コンテナオブジェクトのそれぞれの前記データ処理ポリシーに基づき、ストレージデバイスの前記クラスタの内部の前記データオブジェクトを管理する段階をさらに備える請求項１に記載の方法。
【請求項３】
各々のデータオブジェクトを割り当てる前記段階は、
前記データ処理ポリシーの第１の１つと関連付けられるコンテナオブジェクトのデータオブジェクトを前記ストレージデバイスの第１のストレージデバイスの第１領域に割り当てる段階と、
前記データ処理ポリシーの第２の１つと関連付けられるコンテナのデータオブジェクトを前記第１のストレージデバイスの第２領域に割り当てる段階と
を有する請求項１に記載の方法。
【請求項４】
複数のコンシステントハッシュリングの各々を複数のパーティションに分割する段階であって、各々のパーティションは、前記コンシステントハッシュリングのそれぞれのハッシュインデックスの範囲を表す、段階と、
前記コンシステントハッシュリングの各々を前記データ処理ポリシーのそれぞれの１つのポリシー識別子と関連付ける段階と、
前記パーティションのそれぞれのパーティション識別子と、前記コンシステントハッシュリングのそれぞれの前記ポリシー識別子とに基づき、各々のコンシステントハッシュリングの各々のパーティションを前記ストレージデバイスの１つの領域と関連付ける段階と
をさらに備え、
前記各々のデータオブジェクトを割り当てる段階は、前記データオブジェクトの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに基づきデータオブジェクトのために前記コンシステントハッシュリングの１つを選択する段階、前記データオブジェクトのためのハッシュインデックスを計算する段階、前記ハッシュインデックスに基づき前記選択されたコンシステントハッシュリングのパーティションを決定する段階、および前記パーティションと関連付けられる前記ストレージデバイスの前記領域に前記データオブジェクトを割り当てる段階
を有する請求項１に記載の方法。
【請求項５】
前記コンシステントハッシュリングの第１コンシステントハッシュリングのパーティションの前記パーティション識別子は、前記コンシステントハッシュリングの第２コンシステントハッシュリングのパーティションの前記パーティション識別子と同一であり、前記各々のパーティションを関連付ける段階は、
前記パーティション識別子と、前記第１コンシステントハッシュリングの前記ポリシー識別子とに基づき、前記第１コンシステントハッシュリングの前記パーティションを前記ストレージデバイスの第１ストレージデバイスの第１領域と関連付ける段階と、
前記パーティション識別子と、前記第２コンシステントハッシュリングの前記ポリシー識別子とに基づき、前記第２コンシステントハッシュリングの前記パーティションを前記第１ストレージデバイスの第２領域と関連付ける段階と、
を有する、
請求項４に記載の方法。
【請求項６】
前記コンテナオブジェクトの各々を前記データ処理ポリシーの１つと関連付ける前記段階は、
複数のデータ処理ポリシー識別子の１つをメタデータとして各々のコンテナオブジェクトに関連付ける段階であって、各々のデータ処理ポリシー識別子は、前記データ処理ポリシーのそれぞれの１つに対応する、段階を有する、
請求項１に記載の方法。
【請求項７】
前記データ処理ポリシーは、
コンテナオブジェクトのデータオブジェクトを格納および複製するポリシー、および複製なしで、コンテナオブジェクトのデータオブジェクトを格納するポリシーと、
コンテナオブジェクトのデータオブジェクトの第１の数の複製を維持するポリシー、およびコンテナオブジェクトのデータオブジェクトの第２の数の複製を維持するポリシーであって、前記第１の数と前記第２の数は互いに異なる、ポリシーと、
圧縮フォーマットにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
地理的な場所パラメータを満たすストレージデバイスにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
データオブジェクトの複製なしで、地理的な場所パラメータを満たすストレージデバイスにコンテナオブジェクトの前記データオブジェクトを格納するポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ストレージデバイスの前記クラスタの複数のゾーンのそれぞれに前記格納されたデータオブジェクトおよび前記データオブジェクトの複製を分配するポリシーであって、前記複数のゾーンは、１または複数のストレージデバイス識別子、ストレージデバイスタイプ、サーバ識別子、パワーグリッド識別子および地理的な場所に関して定義される、ポリシーと、
ストレージデバイスの前記クラスタの外部にあるストレージシステムにコンテナオブジェクトのデータオブジェクトをマッピングするポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ある期間後に前記コンテナオブジェクトの前記データオブジェクトを保管し、前記データオブジェクトのそれぞれの保管後に前記格納されたデータオブジェクトおよび前記格納されたデータオブジェクトの複製を廃棄するポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ある期間後に消去コードに基づき前記コンテナオブジェクトの前記データオブジェクトを保管し、前記データオブジェクトのそれぞれの保管後に前記格納されたデータオブジェクトおよび前記格納されたデータオブジェクトの複製を廃棄するポリシーと、
の１または複数を有する請求項１から６のいずれか一項に記載の方法。
【請求項８】
請求項１から６のいずれか一項に記載の方法を実行する装置。
【請求項９】
請求項１から６のいずれか一項に記載の方法を実行するための手段を備える装置。
【請求項１０】
請求項１から６のいずれか一項に記載の方法を実行するための機械。
【請求項１１】
請求項１から６のいずれか一項に記載の方法をコンピュータに実行させるプログラム。
【請求項１２】
請求項１から６のいずれか一項に記載の方法を実行するように構成される通信デバイス。
【請求項１３】
請求項１から６のいずれか一項に記載の方法を実行するコンピュータシステム。
【請求項１４】
請求項１から６のいずれか一項に従うチップセットを備えるコンピューティングデバイス。
【請求項１５】
オブジェクトベースのストレージクラスタとして管理されるストレージデバイスのクラスタの内部に複数のデータ処理ポリシーを提供するプロセッサおよびメモリを備える装置であって、前記プロセッサおよびメモリは、
コンテナオブジェクトにデータオブジェクトを割り当て、
前記コンテナオブジェクトの各々を複数の選択可能なデータ処理ポリシーの１つと関連付け、
前記データオブジェクトのそれぞれの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに部分的に基づき、ストレージデバイスの前記クラスタの内部のストレージデバイスの領域に各々のデータオブジェクトを割り当て、
各々のデータオブジェクトを割り当てることは、
データオブジェクトの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに基づき、複数のコンシステントハッシュリングの１つを選択し、
前記選択されたコンシステントハッシュリングに基づき、前記データオブジェクトをストレージデバイスの領域に割り当てることを有し、
前記複数のコンシステントハッシュリングが１つのストレージデバイスを共有する、
装置。
【請求項１６】
前記プロセッサおよびメモリはさらに、前記コンテナオブジェクトのそれぞれの前記データ処理ポリシーに基づき、ストレージデバイスの前記クラスタの内部の前記データオブジェクトを管理する、請求項１５に記載の装置。
【請求項１７】
前記プロセッサおよびメモリはさらに、
前記データ処理ポリシーの第１の１つと関連付けられるコンテナオブジェクトのデータオブジェクトを前記ストレージデバイスの第１のストレージデバイスの第１領域に割り当て、
前記データ処理ポリシーの第２の１つと関連付けられるコンテナのデータオブジェクトを前記第１のストレージデバイスの第２領域に割り当てる、
請求項１５に記載の装置。
【請求項１８】
前記プロセッサおよびメモリはさらに、
複数のコンシステントハッシュリングの各々を複数のパーティションに分割し、各々のパーティションは、前記コンシステントハッシュリングのそれぞれのハッシュインデックスの範囲を表し、
前記コンシステントハッシュリングの各々を前記データ処理ポリシーのそれぞれの１つのポリシー識別子と関連付け、
前記パーティションのそれぞれのパーティション識別子と、前記コンシステントハッシュリングのそれぞれの前記ポリシー識別子とに基づき、各々のコンシステントハッシュリングの各々のパーティションを前記ストレージデバイスの１つの領域と関連付け、
前記データオブジェクトの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに基づき、データオブジェクトのために前記コンシステントハッシュリングの１つを選択し、
前記データオブジェクトのためのハッシュインデックスを計算し、
前記ハッシュインデックスに基づき、前記選択されたコンシステントハッシュリングのパーティションを決定し、
前記パーティションと関連付けられる前記ストレージデバイスの前記領域に前記データオブジェクトを割り当てる、
請求項１５に記載の装置。
【請求項１９】
前記コンシステントハッシュリングの第１コンシステントハッシュリングのパーティションの前記パーティション識別子は、前記コンシステントハッシュリングの第２コンシステントハッシュリングのパーティションの前記パーティション識別子と同一であり、前記プロセッサおよびメモリはさらに、
前記パーティション識別子と、前記第１コンシステントハッシュリングの前記ポリシー識別子とに基づき、前記第１コンシステントハッシュリングの前記パーティションを前記ストレージデバイスの第１ストレージデバイスの第１領域と関連付け、
前記パーティション識別子と、前記第２コンシステントハッシュリングの前記ポリシー識別子とに基づき、前記第２コンシステントハッシュリングの前記パーティションを前記第１ストレージデバイスの第２領域と関連付ける、
請求項１８に記載の装置。
【請求項２０】
前記プロセッサおよびメモリはさらに、複数のデータ処理ポリシー識別子の１つをメタデータとして各々のコンテナオブジェクトに関連付け、各々のデータ処理ポリシー識別子は、前記データ処理ポリシーのそれぞれの１つに対応する、
請求項１５に記載の装置。
【請求項２１】
前記データ処理ポリシーは、
コンテナオブジェクトのデータオブジェクトを格納および複製するポリシー、および複製なしで、コンテナオブジェクトのデータオブジェクトを格納するポリシーと、
コンテナオブジェクトのデータオブジェクトの第１の数の複製を維持するポリシー、およびコンテナオブジェクトのデータオブジェクトの第２の数の複製を維持するポリシーであって、前記第１の数と前記第２の数は互いに異なる、ポリシーと、
圧縮フォーマットにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
地理的な場所パラメータを満たすストレージデバイスにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
前記データオブジェクトの複製なしで、地理的な場所パラメータを満たすストレージデバイスにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ストレージデバイスの前記クラスタの複数のゾーンのそれぞれに前記格納されたデータオブジェクトおよび前記データオブジェクトの複製を分配するポリシーであって、前記複数のゾーンは、１または複数のストレージデバイス識別子、ストレージデバイスタイプ、サーバ識別子、パワーグリッド識別子および地理的な場所に関して定義される、ポリシーと、
ストレージデバイスの前記クラスタの外部にあるストレージシステムにコンテナオブジェクトのデータオブジェクトをマッピングするポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ある期間後に前記コンテナオブジェクトの前記データオブジェクトを保管し、前記データオブジェクトのそれぞれの保管後に前記格納されたデータオブジェクトおよび前記格納されたデータオブジェクトの複製を廃棄するポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ある期間後に消去コードに基づき前記コンテナオブジェクトの前記データオブジェクトを保管し、前記データオブジェクトのそれぞれの保管後に前記格納されたデータオブジェクトおよび前記格納されたデータオブジェクトの複製を廃棄するポリシーと
のうちの１または複数を有する、請求項１５から２０のいずれか一項に記載の装置。
【請求項２２】
オブジェクトベースのストレージクラスタとして管理されるストレージデバイスのクラスタの内部に複数のデータ処理ポリシーをコンピュータに提供させるためのプログラムであって、前記複数のデータ処理ポリシーは、コンテナオブジェクトにデータオブジェクトを割り当てること、
前記コンテナオブジェクトの各々を複数の選択可能なデータ処理ポリシーの１つと関連付けること、および
前記データオブジェクトのそれぞれの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに部分的に基づき、ストレージデバイスの前記クラスタの内部のストレージデバイスの領域に各々のデータオブジェクトを割り当てること
を有し、
各々のデータオブジェクトを割り当てることは、
データオブジェクトの前記コンテナオブジェクトと関連付けられる前記データ処理ポリシーに基づき、複数のコンシステントハッシュリングの１つを選択し、
前記選択されたコンシステントハッシュリングに基づき、前記データオブジェクトをストレージデバイスの領域に割り当てることを有し、
前記複数のコンシステントハッシュリングが１つのストレージデバイスを共有する、
プログラム。
【請求項２３】
前記コンテナオブジェクトのそれぞれの前記データ処理ポリシーに基づき、ストレージデバイスの前記クラスタの内部の前記データオブジェクトをさらに前記コンピュータに管理させる請求項２２に記載のプログラム。
【請求項２４】
請求項１１、２２および２３のいずれか一項に記載のプログラムを格納するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
オブジェクトベースのストレージ、またはオブジェクトストレージは、オブジェクトと呼ばれる個別のデータユニットにアクセスする、アドレスする、および／またはそれを操作するための技術に言及する。オブジェクトは、テキスト、画像、動画、音声および／または他のコンピュータアクセス可能／操作可能なデータを含み得る。
【０００２】
オブジェクトベースのストレージ、またはオブジェクトストレージは、例えば、階層ディレクトリ／サブディレクトリ／ファイル構造ではなく、本明細書でストレージプールと呼ばれるレベルまたはフラットアドレス空間上のオブジェクトを扱う。
【０００３】
複数のストレージデバイスは、一元のオブジェクトベースのストレージシステムまたはクラスタとして構成／アクセスされ得る。
【０００４】
従来のオブジェクトベースのストレージクラスタは、クラスタのストレージデバイスにオブジェクトをマッピングすべく、コンシステントハッシュリング（リング）を利用する。リングは、ハッシュインデックスの範囲を表す。リングは、各々がハッシュインデックスの範囲の一部を表す複数のパーティションへと分割され、パーティションは、クラスタのストレージデバイスにマッピングまたは割り当てされる。ハッシュインデックスは、オブジェクトの名前に部分的に基づきオブジェクトのために計算される。ハッシュインデックスは、オブジェクトストレージリングのパーティションに相互に関連付けられ、オブジェクトは、パーティションと関連付けられるストレージデバイスにマッピングされる。
【０００５】
パーティションの数は、ストレージデバイスの数を超えるように定義され得、それにより各々のストレージデバイスは、複数のパーティションと関連付けられる。この点で、追加のストレージデバイスが、クラスタに加えられるべきである場合、既存のストレージデバイスの各々と関連付けられるパーティションのサブセットは、新たなストレージデバイスに再割り当てされ得る。逆に、ストレージデバイスがクラスタから除去されるべきである場合、ストレージデバイスと関連付けられるパーティションは、クラスタの他のデバイスに再割り当てされ得る。
【０００６】
オブジェクトベースのストレージクラスタは、クラスタの複製ポリシー（例えば、３倍複製）に基づき、データを（例えば、パーティションベースで）複製するリプリケータを含み得る。オブジェクトおよびその複製は、異なるパーティションに割り当てられ得る。
【０００７】
リプリケータは、結果整合性（すなわち、オブジェクトの全ての例が、経時的に互いに一貫性があることを保証すること）を提供するように構成され得る。結果整合性は、即時整合性に比べてパーティション許容範囲および利用可能性に有利である。結果整合性は、デバイスおよび／または電源故障に起因して時々入手可能でなくなり得る、可能性のある多数のパーティションに部分的に起因してクラスタベースのオブジェクトストレージにおいて役立つ。
【０００８】
従来のオブジェクトベースのストレージクラスタは、クラスタ全体にわたって同一の（すなわち、単一の）複製ポリシーを適用する。追加のデータ複製ポリシーが、各々が対応するリソースセット（例えば、ストレージデバイス、プロキシ層リソース、負荷分散装置、ネットワークインフラストラクチャおよび管理／監視フレームワーク）を含む、追加のクラスタのそれぞれにより提供され得る。複数のクラスタは、クラスタの１または複数のリソースが十分利用されていない場合がある、および／または１または複数の他のクラスタのリソースが使いすぎである場合がある点で、比較的非効率であり得る。
【図面の簡単な説明】
【０００９】
説明のために、本明細書に開示される１または複数の機能が、例としておよび／または以下に列挙され、図で表される１または複数の図面を参照して提示および／または説明されてよい。本明細書で開示される方法およびシステムは、しかしながら、そのような例または例示に限定されない。
【図１】オブジェクトのコンテナと関連付けられる選択可能なデータ処理ポリシーに基づき、オブジェクトベースのストレージクラスタにオブジェクトをマッピングする方法のフローチャートである。
【図２】オブジェクトのコンテナと関連付けられるデータ処理ポリシーに基づき、ストレージデバイスにオブジェクトをマッピングする複数のストレージデバイスおよびシステムを含むオブジェクトベースのストレージクラスタのブロック図である。
【図３】複数のオブジェクトストレージリングに基づきストレージデバイスにオブジェクトをマッピングする方法のフローチャートであり、複数のオブジェクトストレージリングの各々は、複数のデータ処理ポリシーのそれぞれの１つと関連付けられ得る。
【図４】分割されたオブジェクトストレージリングの概念図である。
【図５】複数のオブジェクトストレージリングに基づきストレージデバイスにオブジェクトをマッピングするシステムを含むオブジェクトベースのストレージクラスタのブロック図であり、複数のオブジェクトストレージリングの各々は、複数の選択可能なデータ処理ポリシーのそれぞれの１つと関連付けられ得る。
【図６】複数のオブジェクトストレージリングおよび／または複数のデータ処理ポリシーに基づき、ストレージデバイスにオブジェクトをマッピングするように構成されるコンピュータシステムのブロック図である。
【図７】オブジェクトストレージリングのパーティションと、ストレージデバイスとの間のマッピングまたは関連付けの概念図である。
【図８】パーティション対デバイスマッピングの別の概念図である。図において、参照番号の左端の数字は、参照番号が最初に現れた図面を特定する。
【発明を実施するための形態】
【００１０】
図１は、選択可能なデータ処理ポリシーに基づきオブジェクトベースのストレージクラスタにオブジェクトをマッピングする方法１００のフローチャートであり、そこで、各オブジェクトは、バケット、ビン、コンテナオブジェクトまたはコンテナと本明細書で呼ばれる階層ストレージコンストラクトと関連付けられ、各コンテナは、複数のデータ処理ポリシーの選択可能なものと関連付けられる。方法１００は、図２を参照して以下に説明される。しかしながら、方法１００は、図２の例に限定されない。
【００１１】
図２は、オブジェクトのコンテナと関連付けられるデータ処理ポリシーに基づきストレージデバイス２０４にオブジェクトをマッピングする複数のストレージデバイス２０４およびシステム２０２を含むオブジェクトベースのストレージクラスタ２００のブロック図である。オブジェクトベースのストレージクラスタ２００は、分散された結果整合性のオブジェクトベースのストレージクラスタとして構成され得る。
【００１２】
方法１００および／またはシステム２０２は、例えば、限定するものではないが、ストレージデバイス、プロキシ層リソース、負荷分散装置、ネットワークインフラストラクチャおよび管理／監視フレームワークなどのリソースの複製なしで、複数のユーザ選択可能なデータ処理ポリシーを提供するように役立ち得る。
【００１３】
１０４で、各々のコンテナは、複数の選択可能なデータ処理ポリシーの１つと関連付けられる。
【００１４】
データ処理ポリシーは、データ／オブジェクトの分配、配置、複製、保持、削除、圧縮／重複排除、レイテンシ／スループットおよび／または他の要素に関連し得る。データ処理ポリシーは、限定するものではないが、データ複製パラメータ（例えば、複製の数および／または複製技術／アルゴリズム（例えば、消去コード））、保持時間パラメータ、ストレージの場所パラメータ（例えば、デバイス、ノード、ゾーン、および／または地理的パラメータ）および／または他のデータ処理パラメータを含み得る。例示的なデータ処理ポリシーが、以下にさらに提供される。しかしながら、データ処理ポリシーは、本明細書において提供される例に限定されない。
【００１５】
コンテナは、ユーザの入力に基づきデータ処理ポリシーに関連付けられ得る。
【００１６】
各コンテナは、コンテナオブジェクトまたはコンストラクト（データベースなど）として表され得、コンテナのオブジェクトは、それぞれのコンテナオブジェクトまたはコンストラクトの内部に記録され得る。
【００１７】
コンテナのデータ処理ポリシーとの関連付けは、コンテナデータベースのメタデータフィールドに複数のポリシーインデックスの１つを追加することを含み得、そこで、各々のポリシーインデックスはデータ処理ポリシーのそれぞれの１つに対応する。
【００１８】
図２において、システム２０２は、ユーザおよび／または他のシステム／デバイスとインタフェースで接続するためのインタフェース２１６を含む。インタフェース２１６は、プロキシ層リソースを含み得、および／または表し得る。インタフェース２１６は、入力／出力（Ｉ／Ｏ）２１８を介してアクセス要求を受信し得る。アクセス要求は、限定するものではないが、オブジェクトを書き込み／格納する、オブジェクトを読み出し／取得する、オブジェクトをコピーする、および／またはオブジェクトを削除する要求を含み得る。インタフェース２１６は、Ｉ／Ｏ２１８を介して要求されたオブジェクトを提供するように構成され得る。
【００１９】
インタフェース２１６は、それぞれのマッピングに基づき、コンテナを作成し、コンテナをアカウントと関連付け、データ処理ポリシーをコンテナと関連付け、オブジェクトをコンテナと関連付け、オブジェクトをストレージデバイス２０４にマッピングし、および／またはオブジェクトにアクセスすべく、システム２０２の他のリソースを起動するように構成され得る。
【００２０】
ここでコンテナ情報２０５として示されているコンテナに関連する情報は、１または複数のストレージデバイス２０４および／または他のストレージデバイスに格納され得る。図２の例において、コンテナ情報２０５は、コンテナ／オブジェクト関連２０６、およびコンテナ／データ処理ポリシーＩＤ関連２０８を含む。
【００２１】
図１の１０６で、オブジェクトは、それぞれのオブジェクトのコンテナと関連付けられるデータ処理ポリシーに少なくとも部分的に基づき、ストレージデバイスにマッピングされる（例えば、関連付けられる）。
【００２２】
図２において、システム２０２は、インタフェース２１６からコンテナ／オブジェクトＩＤ２１４を受信し、コンテナ／オブジェクトＩＤ２１４のコンテナＩＤ２１５の部分に基づき、データ処理ポリシーインデックスまたは識別子（ポリシーＩＤ）２１２を取得するためのコンテナポリシールックアップエンジン２１０を含む。
【００２３】
コンテナ／オブジェクトＩＤ２１４は、パス名の形式であり得、それは、／｛コンテナ名｝／｛オブジェクト名｝として表され得る。コンテナがアカウントと関連付けられる場合、アカウント／コンテナ／オブジェクトＩＤは、／｛アカウント名｝／｛コンテナ名｝／｛オブジェクト名｝として表され得る。
【００２４】
コンテナがアカウントと関連付けられる場合、コンテナ／オブジェクトＩＤ２１４は、アカウントＩＤ（例えば、／｛アカウント名｝／｛コンテナ名｝／｛オブジェクト名｝）を含み得、コンテナポリシールックアップエンジン２１０は、アカウントＩＤにさらに基づき保持ポリシーＩＤ２１２を取得するように構成され得る。
【００２５】
システム２０２はさらに、それぞれのコンテナ／オブジェクトＩＤ２１４のために取得されたポリシーＩＤ２１２に基づき、コンテナ／オブジェクトＩＤ２１４をストレージデバイス２０４にマッピングするオブジェクトマッピングエンジン２２０を含む。コンテナ／オブジェクトＩＤ２１４および対応するポリシーＩＤ２１２ごとに、オブジェクトマッピングエンジン２２０は、デバイスＩＤ２２２をインタフェース２１６に返す。デバイスＩＤ２２２は、ストレージデバイス２０２、ストレージノード（例えば、１または複数のストレージデバイス２０４と関連付けられるストレージサーバ）、ストレージゾーン、および／またはストレージデバイス２０４の他の指定される機能／態様に対応し得る。
【００２６】
システム２０２は、オブジェクトマッピングパラメータ２２８をオブジェクトマッピングエンジン２２０に提供するオブジェクトマッピング構成エンジン２２６をさらに含み得、その例は、オブジェクトストレージリングに関してさらに以下に提供される。
【００２７】
図１の１０８で、オブジェクトは、１０６で決定されたそれぞれのマッピングに基づきストレージデバイス２０４の内部でアクセスされる。オブジェクトがストレージデバイス２０４に格納されるべきである場合、１０８でアクセスすることは、オブジェクトのコンテナと関連付けられるデータ処理ポリシーに基づきオブジェクトを格納することを含む。
【００２８】
図２において、インタフェース２１６は、デバイスＩＤ２２２に基づき、ストレージデバイス２０２にアクセス命令またはアクセス要求２１９を送信するように構成される。オブジェクトが書き込み／格納されるべきである場合、インタフェース２１６は、ここでオブジェクト２２４として示されるオブジェクトをストレージデバイスに提供する。
【００２９】
システム２０２はさらに、コンテナと関連付けられるデータ処理ポリシーを実施するポリシー実施エンジン２３０を含む。ポリシー実施エンジン２３０は、コンテナに関連付けられるデータ処理ポリシーに基づいて、コンテナのオブジェクト２３２を複製する複製エンジンを含み得る。ポリシー実施エンジン２３０は、それぞれのコンテナのデータ処理ポリシーに従って、オブジェクト２３２とオブジェクトの複製との間に結果整合性を提供するように構成され得る。
【００３０】
システム２０２は、他の構成・管理システムおよびインフラストラクチャ２３２をさらに含み得、それらは、限定するものではないが、プロキシ層リソース、負荷分散装置、ネットワークインフラストラクチャ、保守リソース、および／または監視リソースを含み得る。
【００３１】
方法１００は、図３を参照して以下に説明されるように実行され得る。しかしながら、方法１００は、図３の例に限定されない。
【００３２】
システム２００は、図５を参照して以下に説明されるように構成され得る。しかしながら、システム２０２は、図５の例に限定されない。
【００３３】
図３は、複数のオブジェクトストレージリングに基づき、オブジェクトをストレージデバイスにマッピングする方法３００のフローチャートである。上記に説明されるように、各々のオブジェクトストレージリングは、複数の選択可能なデータ処理ポリシーのそれぞれの１つと関連付けられ得る。方法３００は、図４を参照して以下に説明される。しかしながら、方法３００は、図４の例に限定されない。
【００３４】
図４は、オブジェクトストレージリング（リング）４００の概念図である。リング４００は、スタティックデータ構造を表し得る。リング４００は、０から２ｎまで（なお、ｎは正の整数）としてここで示されるハッシュ値またはインデックスの範囲（ハッシュ範囲）を表す。リング４００は、コンシステントハッシュリングを表し得る。
【００３５】
オブジェクトストレージリングの各々は、互いに関係のある、固有または別個のハッシュ範囲を表し得る。
【００３６】
図３の３０２で、各々のリングは、複数のパーティションに分割され、そこで、各々のパーティションは、それぞれのリングのハッシュ範囲の一部を表す。１つのリングは、２またはそれより多いパーティションに分割され得る。
【００３７】
図４で、リング４００は、説明のために、４０２−０から４０２−３１までの３２個のパーティションに分割される。
【００３８】
リングは、同じ数のパーティションに分割され得、またはリングの１または複数が、リングの１または複数の他のリングのパーティションの数とは異なる数のパーティションに分割され得る。
【００３９】
図３の３０４で、リングのパーティションは、ストレージデバイスにマッピングされる（すなわち、ストレージデバイスに割り当てられる、またはそれと関連付けられる）。パーティションは、１または複数の物理ストレージデバイスのリストまたはセットにマッピングされ得る。ストレージデバイスは、１または複数のオブジェクトストレージリングと関連付けられ得、その例は、図７を参照して以下にさらに提供される。
【００４０】
図４において、リング４００の各パーティション４０２が、４つのタイプのシェーディングの１つを用いて示され、キー４０４が、それぞれのパーティションをストレージデバイスまたはノードの４つのセットの１つにマッピングすることを示すために提供されている。数字の４が、説明のためにここで使用される。パーティション４０２は、１または複数のストレージデバイス／ノードにマッピング（または再マッピング）され得る。
【００４１】
図４の例において、パーティション４０２は、周期的なパターンでデバイス／ノード０からデバイス／ノード３までにマッピングされる。パーティション４０２、および／または複数のオブジェクトストレージリングの他のもののパーティションは、別のパターンに基づき、および／またはランダムまたは疑似ランダムにストレージデバイス／ノードにマッピングされ得る。
【００４２】
図３の３０６で、各々のオブジェクトストレージリングは、複数のデータ処理ポリシーのそれぞれの１つと関連付けられる。
【００４３】
３０８で、オブジェクトは、図１の１０４に関して上記に説明されるようなコンテナと関連付けられる。
【００４４】
３１０で、各々のコンテナは、図１の１０６に関して上記に説明されるような複数のデータ処理ポリシーの１つと関連付けられる。
【００４５】
３１２で、オブジェクトがストレージデバイス／ノードにマッピングされるべきである場合、オブジェクトのコンテナと関連付けられるデータ処理ポリシーに基づき、複数のオブジェクトストレージリングの１つが３１４で選択される。
【００４６】
３１６で、選択されたオブジェクトストレージリングのパーティションが、そのオブジェクトについて計算されるハッシュインデックスに基づき、決定される。
【００４７】
３１８で、３１６において決定されるパーティションと関連付けられるストレージデバイスが、決定される。３１８で決定されるストレージデバイス、または対応するデバイスＩＤは、オブジェクトのマッピングを表し、そのことは、オブジェクトにアクセスするために（すなわち、オブジェクトの書き込み／格納および／または読み出し／取得をするために）使用され得る。
【００４８】
図５は、複数のオブジェクトストレージリングに基づき、オブジェクトをストレージデバイス５０４にマッピングするシステム５０２を含むオブジェクトベースのストレージクラスタ５００のブロック図である。各々のオブジェクトストレージリングは、複数の選択可能なデータ処理ポリシーのそれぞれの１つと関連付けられ得る。オブジェクトベースのストレージクラスタ５００は、分散された結果整合性のオブジェクトベースのストレージクラスタとして構成され得る。
【００４９】
システム５０２は、図２のインタフェース２１６に関して上記に説明されるように、Ｉ／Ｏ５１８を介してユーザおよび／または他のシステム／デバイスとインタフェースで接続するインタフェース５１６を含む。
【００５０】
システム５０２はさらに、図２のコンテナポリシールックアップエンジン２１０に関して上記に説明されるように、コンテナＩＤ５１５および／またはアカウントＩＤに基づきポリシーＩＤ５１２を取得するコンテナポリシールックアップエンジン５１０を含む。
【００５１】
システム５０２はさらに、それぞれのコンテナ／オブジェクトＩＤ５１４のために取得されるポリシーＩＤ５１２に基づき、コンテナ／オブジェクトＩＤ５１４をストレージデバイス５０４にマッピングするオブジェクトマッピングエンジン５２０を含む。コンテナ／オブジェクトＩＤ５１４および対応するポリシーＩＤ５１２ごとに、オブジェクトマッピングエンジン５２０は、デバイスＩＤ５２２を返す。
【００５２】
オブジェクトマッピングエンジン５２０は、複数のオブジェクトストレージリング５４６を含む。オブジェクトストレージリング５４６は、図３の３０２に関して上記に説明されるように、分割され得、パーティションは、図３の３０４に関して上記に説明されるように、ストレージデバイス５０４にマッピングされ得る。各々のオブジェクトストレージリング５４６は、図３の３０６に関して上記に説明されるように、複数のデータ処理ポリシーのそれぞれの１つと関連付けられ得る。
【００５３】
オブジェクトマッピングエンジン５２０はさらに、コンテナ／オブジェクトＩＤ５１４に基づきハッシュインデックス５４２を計算するハッシングエンジン５４０と、ポリシーＩＤ５１２に基づきオブジェクトストレージリング５４６の１つを選択するリングセレクタ５４４とを含む。オブジェクトマッピングエンジン５２０は、ハッシュインデックス５４２に基づき選択されるオブジェクトストレージリングのパーティションを決定し、そのパーティションと関連付けられるストレージデバイス５０４のデバイスＩＤ５２２を決定するように構成される。
【００５４】
オブジェクトマッピングエンジン５２０は、ハッシュインデックス５４２と、１または複数の他の値および／またはパラメータとの組み合わせに基づき、選択されるオブジェクトストレージリングのパーティションを決定するように構成され得る。オブジェクトマッピングエンジン５２０は、例えば、ハッシュインデックス５４２の一部と構成可能なオフセット５２９との組み合わせに基づき、選択されるオブジェクトストレージリングのパーティションを決定するように構成され得る。構成可能なオフセット５２９は、選択されたオブジェクトストレージリングのパーティションの数に基づき決定され得、パーティションの乗数またはパーティションの総数に対応され得る。
【００５５】
システム５０２はさらに、構成・管理システムおよびインフラストラクチャ５４８を含む。
【００５６】
図５の例において、構成・管理システムおよびインフラストラクチャ５４８は、パーティショニングおよびデバイスマッピング情報またはパラメータ５２８、ならびに構成可能なオフセット５２９をオブジェクトマッピングエンジン５２０に提供するリング構成エンジン５５０を含む。
【００５７】
構成・管理システムおよびインフラストラクチャ５４８は、コンテナおよび／またはオブジェクトストレージリング５４６と関連付けられるポリシーを実施するポリシー実施エンジン５３０をさらに含み得る。
【００５８】
システム５０２は、コンテナＩＤ５１５およびコンテナリングに基づき、ストレージデバイス５０４にコンテナデータベースをマッピングするコンテナサーバをさらに含み得る。
【００５９】
システム５０２は、アカウントＩＤおよびアカウントリングに基づき、アカウントデータベースをストレージデバイス５０４にマッピングするアカウントサーバをさらに含み得る。
【００６０】
本明細書で開示される１または複数の機能は、回路、機械、コンピュータシステム、プロセッサおよびメモリ、コンピュータ可読媒体の内部に符号化されたコンピュータプログラム、ならびに／またはそれらの組み合わせで実装され得る。回路は、ディスクリート回路および／または集積回路、特定用途向け集積回路（ＡＳＩＣ）、システムオンチップ（ＳＯＣ）、ならびに、それらの組み合わせを含み得る。ソフトウェアによる情報処理が、ハードウェア資源を用いることにより具体的に実現され得る。
【００６１】
本明細書で説明される１または複数の機能は、プロセッサに、オブジェクトベースのストレージクラスタとして複数のストレージデバイスにアクセスさせるように構成されるコンピュータプログラムおよび／または一組のコンピュータプログラム（例えば、限定するものではないが、ＯｐｅｎＳｔａｃｋとして知られ、ＯｐｅｎＳｔａｃｋ．ｏｒｇで利用可能な一組のコンピュータプログラム）内に統合され得る。
【００６２】
図６は、複数のオブジェクトストレージリングおよび／または複数のデータ処理ポリシーに基づき、オブジェクトをストレージデバイス６５０にマッピングするように構成されるコンピュータシステム６００のブロック図である。
【００６３】
コンピュータシステム６００は、図２のシステム２０２および／または図５のシステム５０２の例示的な実施形態または実装を表し得る。
【００６４】
コンピュータシステム６００は、コンピュータ可読媒体６０４の内部の符号化されたコンピュータプログラム６０６の命令を実行すべく、ここではプロセッサ６０２として示される１または複数のプロセッサを含む。コンピュータ可読媒体６０４は、一時的または非一時的なコンピュータ可読媒体を含み得る。
【００６５】
プロセッサ６０２は、１または複数の命令プロセッサおよび／またはプロセッサコアと、命令プロセッサ／コアとコンピュータ可読媒体６０４との間をインタフェースで接続する制御ユニットとを含み得る。プロセッサ６０２は、限定するものではないが、マイクロプロセッサ、グラフィックスプロセッサ、物理プロセッサ、デジタル信号プロセッサ、ネットワークプロセッサ、フロントエンド通信プロセッサ、コプロセッサ、管理エンジン（ＭＥ）、コントローラもしくはマイクロコントローラ、中央処理装置（ＣＰＵ）、汎用命令プロセッサおよび／または特定用途プロセッサを含み得る。
【００６６】
図６において、コンピュータ可読媒体６０４はさらに、データ６０８を含み、そのことは、コンピュータプログラム６０６の実行中にプロセッサ６０２により使用され得、および／またはコンピュータプログラム６０６の実行中にプロセッサ６０２により生成され得る。
【００６７】
図６の例において、本明細書で１または複数の例において説明されるように、コンピュータプログラム６０６は、プロセッサ６０２にユーザおよび／または他のシステム／デバイスとインタフェースで接続させるインタフェース命令６１０を含む。
【００６８】
コンピュータプログラム６０６はさらに、本明細書で１または複数の例において説明されるように、プロセッサ６０２にポリシーを決定させるコンテナポリシールックアップ命令を含む。コンテナポリシールックアップ命令６１２は、コンテナ／アカウントリング６１４としてここで集合的に図示される、プロセッサ６０２にコンテナデータベースリングおよび／またはアカウントデータベースリングを参照させる命令を含み得る。
【００６９】
コンピュータプログラム６０６はさらに、プロセッサ６０２にオブジェクトをストレージデバイス６５０にマッピングさせる、オブジェクトマッピング命令６１６を含む。本明細書の１または複数の例において説明されるように、オブジェクトマッピング命令６１６は、複数のオブジェクトリング６１８に基づきプロセッサ６０２にオブジェクトをストレージデバイス６５０にマッピングさせる、命令を含み得る。
【００７０】
コンピュータプログラム６０６はさらに、構成および管理命令６２０を含む。図６の例において、本明細書の１または複数の例において説明されるように、構成および管理命令６２０は、プロセッサ６０２にリング６１３を定義させ、分割させ、マッピングさせるリング構成命令６２２を含む。
【００７１】
構成および管理命令６２０はさらに、本明細書の１または複数の例において説明されるように、プロセッサ６０２にデータ処理ポリシー６２６を実施させる、ポリシー実施命令６２４を含む。
【００７２】
コンピュータシステム６００はさらに，コンピュータシステム６００のデバイスおよび／またはリソースの間で通信する通信インフラストラクチャ６４０を含む。
【００７３】
コンピュータシステム６００はさらに、ストレージデバイス６５０および／またはユーザデバイス／アプリケーションプログラミングインタフェース（ＡＰＩ）６５２とインタフェースで接続する１または複数の入力／出力（Ｉ／Ｏ）デバイスおよび／またはコントローラ（Ｉ／Ｏコントローラ）６４２を含む。
【００７４】
ストレージデバイスは、図７を参照して以下に説明されるように、１または複数のオブジェクトストレージリング、および／または複数のデータ処理ポリシーと関連付けられ得る。
【００７５】
図７は、オブジェクトストレージリング７０２のパーティションとストレージデバイス７０４との間のマッピングまたは関連付けの概念図である。リング７０２−０のパーティション７０６、７０８および７１０はそれぞれ、ストレージデバイス７０４−０、７０４−１および７０４−ｉにマッピングされる。これは、それぞれのマッピングまたは関連付け７１２、７１４および７１６により図示される。リング７０２−１のパーティション７１８および７２０はそれぞれ、ストレージデバイス７０４−１および７０４−ｉにマッピングされる。リング７０２−２のパーティション７２２は、ストレージデバイス７０４−１にマッピングされる。
【００７６】
リングのパーティションは、リングのデータ処理ポリシーに基づきストレージデバイスの部分、エリア、または領域にマッピングされ得る。これは、複数のオブジェクトストレージリングがストレージデバイスを共有する（すなわち、複数のオブジェクトストレージリングのパーティションを同じストレージデバイスにマッピングする）のを可能にするのに役立ち得る。別の方法で述べられると、これは、ストレージデバイスが複数のデータ処理ポリシーをサポートするのを可能にするために役立ち得る。
【００７７】
エリアまたは領域は、ストレージデバイスのディレクトリとして概念化され得、および／またはそれに対応し得る。エリアは、パーティションの識別子（例えば、パーティション番号）、およびリングと関連付けられるデータ処理ポリシーの識別子（例えば、ポリシーインデックス）に基づき名前が付けられ得る。パーティション番号は、例えば、ポリシーインデックスが追加され得る。
【００７８】
図７において、リング７０２−０は、データ処理ポリシー７２４（ポリシーＡ）と関連付けられる。リング７０２−１は、データ処理ポリシー７２６（ポリシーＢ）と関連付けられる。リング７０２−２は、データ処理ポリシー７２８（ポリシーＣ）と関連付けられる。
【００７９】
図７においてさらに、リング７０２−０のパーティション７０６は、ストレージデバイス７０４−０のエリア７０６−Ａにマッピングされる。エリア７０６の名前は、パーティション７０６のパーティション番号にポリシーＡと関連付けられるインデックスを追加することにより割り当て／決定され得る。
【００８０】
さらに図７において、リング７０２−０のパーティション７０８は、ストレージデバイス７０４−１のエリア７０８−Ａにマッピングされる。リング７０２−０のパーティション７１０は、ストレージデバイス７０４−ｉのエリア７１０−Ａにマッピングされる。リング７０２−１のパーティション７１８は、ストレージデバイス７０４−１のエリア７１８−Ｂにマッピングされる。リング７０２−１のパーティション７２０は、ストレージデバイス７０４−ｉのエリア７２０−Ｂにマッピングされる。リング７０２−２のパーティション７２２は、ストレージデバイス７０４−ｉのエリア７２２−Ｃにマッピングされる。
【００８１】
図７の例において、ストレージデバイス７０４−０は従って、ポリシーＡをサポートする。ストレージデバイス７０４−１は、ポリシーＡおよびＢをサポートする。ストレージデバイス７０４−ｉは、ポリシーＡ、ＢおよびＣをサポートする。
【００８２】
パーティション識別子およびポリシー識別子の組み合わせに基づきストレージデバイスにパーティションをマッピングすることにより、パーティションごとに固有の識別子を提供する。したがって、複数のリングの同一のパーティション番号でさえも、同じストレージデバイスにマッピングされ得る。例は、図８を参照して以下に提供される。
【００８３】
図８は、図７のパーティション対デバイスマッピングの概念図であり、そこで、リング７０２−１および７０２−２はそれぞれ、ストレージデバイス７０４−ｉにマッピングされ、ここで８２４として表される同一のパーティション番号を含む。具体的には、リング７０２−１のパーティション８２４は、ストレージデバイス７０４−ｉのエリア８２４−Ｂにマッピングされるが、リング７０２−２のパーティション８２４は、ストレージデバイス７０４−ｉのエリア８２４−Ｃにマッピングされる。この例において、「８２４−Ｂ」は、ポリシーＢの識別子またはインデックスが追加されたパーティション番号を表し、「８２４−Ｃ」は、ポリシーＣの識別子またはインデックスが追加されたパーティション番号を表す。
【００８４】
図７および図８の例が、説明のために提供される。本明細書で開示される方法およびシステムは、図７および図８の例に限定されない。
【００８５】
オブジェクトベースのストレージクラスタは、複数のデータ処理ポリシーで構成され得、それは、
コンテナのオブジェクトを格納および複製するポリシー、
複製なしで、コンテナのオブジェクトを格納するポリシー、
コンテナのオブジェクトの第１の数の複製を維持する第１ポリシーおよびコンテナのオブジェクトの第２の数の複製を維持する第２ポリシーであって、第１および第２の数は互いに異なる、第１ポリシーおよび第２ポリシー、
圧縮フォーマットにコンテナのオブジェクトを格納するポリシー、
地理的な場所パラメータを満たすストレージデバイスにコンテナのオブジェクトを格納するポリシー、
オブジェクトの複製なしで、地理的な場所パラメータを満たすストレージデバイスにコンテナのオブジェクトを格納するポリシー、
コンテナのオブジェクトを格納および複製し、オブジェクトベースのストレージクラスタの複数のそれぞれのゾーンに格納されたオブジェクトおよびオブジェクトの複製を分配するポリシーであって、ゾーンは、１または複数のストレージデバイス識別子、ストレージデバイスタイプ、サーバ識別子、パワーグリッド識別子および地理的な場所に関して定義される、ポリシー、
コンテナのオブジェクトを格納および複製し、ある期間後にコンテナのオブジェクトを保管し、格納されたオブジェクトおよびそれぞれのオブジェクトの保管後に格納されたオブジェクトの複製を廃棄するポリシー、
コンテナのオブジェクトを格納および複製し、ある期間後に消去コードに基づきコンテナのオブジェクトを保管し、格納されたオブジェクトおよびそれぞれのオブジェクトの保管後に格納されたオブジェクトの複製を廃棄するポリシー、および／または
外部ストレージシステムのアプリケーションプログラミングインタフェースを介してオブジェクトベースのストレージクラスタの外部にあるストレージシステムにコンテナのオブジェクトをマッピングするポリシー
のうちの１または複数を含み得る。
【００８６】
１または複数の他のデータ処理ポリシーが定義され得る。
【００８７】
データ処理ポリシーは、法的要件に基づき定義および／または選択され得る。
【００８８】
データ処理ポリシーは、災害復帰の検討に基づき定義および／または選択され得る。
【００８９】
ポリシーは、コンテナが作成された場合、コンテナに割り当てられ得る。
【００９０】
各々のコンテナは、ストレージポリシーインデックスコンテナ（例えば、アルファおよび／または数の識別子）と呼ばれる不変のメタデータ要素が提供され得る。コンテナが作成された場合、ヘッダが複数のポリシーインデックスの１つを特定すべく提供され得る。ポリシーインデックスが、新たなコンテナがいつ作成されたかについて特定されない場合、デフォルトポリシーがコンテナに割り当てられ得る。人間可読ポリシー名は、ユーザに提示され得、そのことは、ポリシーインデックスに変換され得る（例えば、プロキシサーバにより）。複数のデータ複製ポリシーのいずれかは、デフォルトポリシーとして設定され得る。
【００９１】
ポリシーインデックスは、複製ポリシー以外の用途のために留保および／または利用され得る。これは、例えば、レガシークラスタ（すなわち、クラスタにわたって適用される単一のオブジェクトリングおよび単一の複製ポリシーを有する）が、（例えば、複数のデータ処理ポリシーをサポートすべく）複数のオブジェクトストレージリングを含むように変更される場合に、役立ち得る。この例において、ユニークなポリシーインデックスは、データ処理ポリシーと関連付けられないレガシーコンテナのオブジェクトにアクセスすべく留保にされ得る。
【００９２】
コンテナは、ポリシーと多対１の関係を有し得、多様なコンテナが、同じポリシーを利用することができることを意味する。
【００９３】
複数の選択可能なデータ処理ポリシーで構成されるオブジェクトベースのストレージクラスタは、アプリケーションの発見および理解（ＡＤＵ）技術に基づき、複数のデータ処理ポリシーをインタフェースアプリケーション（例えば、ユーザインタフェースおよび／またはアプリケーションプログラミングインタフェース）にさらすようにさらに構成され得る。例えば、コンピュータプログラムは、図１の方法１００および／または図３の方法３００（またはそれの一部）を実行する命令を含む場合、ＡＤＵアプリケーションは、コンピュータプログラムと関連付けられるメタデータ構造（例えば、データ要素および／またはビジネスルールのリスト）を決定すべく、コンピュータプログラムのアーティファクトを分析するために使用され得る。コンピュータプログラムと中央メタデータレジストリとの間に見いだされる関係は、インタフェースアプリケーションによる使用のためのメタデータレジストリに格納され得る。
【００９４】
本明細書で開示されるように、オブジェクトベースのストレージシステムは、例えば、複数のレベルのデータ複製をそれぞれ提供すべく、異なるストレージデバイスが、異なるオブジェクトリングと関連付けられること、またはそれに属することを可能にするように構成され得る。
【００９５】
複数のオブジェクトストレージリングで構成されるオブジェクトベースのストレージシステムは、本明細書で提供される例である、様々な用途のためにストレージデバイスのクラスタを分割するのに役立ち得る。
【００９６】
複数のデータ処理ポリシーおよび／または複数のオブジェクトストレージリングは、アプリケーションおよび／またはデプロイヤが、単一のクラスタ内部のオブジェクトストレージを基本的に分離することを可能にするのに役立ち得る。
【００９７】
複数のデータ処理ポリシーおよび／または複数のオブジェクトストレージリングは、単一のクラスタの内部に複数の複製レベルを提供するのに役立ち得る。プロバイダが、例えば、２倍の複製および３倍の複製を提案したいが、２つの別個のクラスタを維持したくない場合、単一のクラスタは、２倍のポリシーおよび３倍のポリシーで構成され得る。
【００９８】
複数のデータ処理ポリシーは、および／または複数のオブジェクトストレージリングは、パフォーマンス用途のために役立ち得る。例えば、従来のソリッドステートディスク（ＳＳＤ）は、アカウントまたはデータベースリングの排他的なメンバとして使用され得るが、ＳＳＤオンリのオブジェクトリングが、低レイテンシ／高パフォーマンスポリシーを提供すべく、作成および使用され得る。
【００９９】
複数のデータ処理ポリシーおよび／または複数のオブジェクトストレージリングは、ノード一式をグループへと集めるために役立ち得る。異なるオブジェクトリングは、特定のポリシーと関連付けられるオブジェクトが、特定のデータセンターまたは地理に配置されるように異なる物理サーバを有し得る。
【０１００】
複数のデータ処理ポリシーおよび／または複数のオブジェクトストレージリングは、複数のストレージ技術をサポートするために役立ち得る。例えば、ノード一式は、特定のデータストレージ技術またはディスクファイル（すなわち、バックエンドのオブジェクトストレージプラグイン・アーキテクチャ）を使用し得、そのことは、オブジェクトベースのストレージ技術とは異なり得る。この例において、ポリシーは、ノード一式がトラフィックをそれらのノードにのみ誘導するように構成され得る。
【０１０１】
複数のデータ処理ポリシーおよび／または複数のオブジェクトストレージリングは、複数の単一ポリシーのクラスタと比較してより良好な効率性を提供し得る。
【０１０２】
本明細書での例において、データ処理ポリシーは、コンテナレベルで適用されるように説明されている。代替的には、またはさらに、複数のデータ処理ポリシーは、例えば、オブジェクトレベルなどの別のレベルで適用され得る。
【０１０３】
コンテナレベルでのデータ処理ポリシーの適用は、インタフェースのアプリケーションが比較的容易にポリシーを利用するのを可能にするのに役立ち得る。
【０１０４】
コンテナレベルでのポリシーの適用は、一度コンテナが作成され、ポリシーと関連付けられると、コンテナと関連付けられる全てのオブジェクトがポリシーに従って保持されることとなる点で、最小のアプリケーション認識を可能とするのに役立ち得る。
【０１０５】
既存の単一ポリシーのストレージクラスタが複数の選択可能なストレージポリシーを含むように再構成される場合、コンテナレベルでポリシーを適用することは、現在使用中の承認システムに対する変更を回避するのに役立ち得る。
【０１０６】
［例］  以下の例は、さらなる実施形態に関する。
【０１０７】
例１は、オブジェクトベースのストレージクラスタとして管理されるストレージデバイスのクラスタの内部に複数のデータ処理ポリシーを提供する方法であり、
コンテナオブジェクトにデータオブジェクトを割り当てる工程と、
コンテナオブジェクトの各々を複数の選択可能なデータ処理ポリシーの１つと関連付ける工程と、
データオブジェクトのそれぞれのコンテナオブジェクトと関連付けられるデータ処理ポリシーに部分的に基づき、ストレージデバイスのクラスタの内部のストレージデバイスの領域に各々のデータオブジェクトを割り当てる工程と
を含む。
【０１０８】
例２において、方法はさらに、コンテナオブジェクトのそれぞれのデータ処理ポリシーに基づき、ストレージデバイスのクラスタの内部のデータオブジェクトを管理する工程を含む。
【０１０９】
例３において、各々のデータオブジェクトを割り当てる工程は、データ処理ポリシーの第１の１つと関連付けられるコンテナオブジェクトのデータオブジェクトをストレージデバイスの第１のストレージデバイスの第１領域に割り当てる工程と、
データ処理ポリシーの第２の１つと関連付けられるコンテナのデータオブジェクトを第１のストレージデバイスの第２領域に割り当てる工程と
を含む。
【０１１０】
例４において、各々のデータオブジェクトを割り当てる工程は、
データオブジェクトのコンテナオブジェクトと関連付けられるデータ処理ポリシーに基づき、複数のコンシステントハッシュリングの１つを選択する工程と、
選択されたコンシステントハッシュリングに基づき、データオブジェクトをストレージデバイスの領域に割り当てる工程と
を含む。
【０１１１】
例５において、方法はさらに、
複数のコンシステントハッシュリングの各々を複数のパーティションに分割する工程であって、各々のパーティションは、コンシステントハッシュリングのそれぞれのハッシュインデックスの範囲を表す、工程と、
コンシステントハッシュリングの各々をデータ処理ポリシーのそれぞれの１つのポリシー識別子と関連付ける工程と、
パーティションのそれぞれのパーティション識別子と、コンシステントハッシュリングのそれぞれのポリシー識別子とに基づき、各々のコンシステントハッシュリングの各々のパーティションをストレージデバイスの１つの領域と関連付ける工程と
を含み、
各々のデータオブジェクトを割り当てる工程は、データオブジェクトのコンテナと関連付けられるデータ処理ポリシーに基づき、データオブジェクトのためにコンシステントハッシュリングの１つを選択する工程と、データオブジェクトのためのハッシュインデックスを計算する工程と、ハッシュインデックスに基づき選択されたコンシステントハッシュリングのパーティションを決定する工程と、パーティションと関連付けられるストレージデバイスの領域にデータオブジェクトを割り当てる工程と
を含む。
【０１１２】
例６において、コンシステントハッシュリングの第１のコンシステントハッシュリングのパーティションのパーティション識別子は、コンシステントハッシュリングの第２のコンシステントハッシュリングのパーティションのパーティション識別子と同一であり、各々のパーティションを関連付ける工程は、
パーティション識別子と、第１コンシステントハッシュリングのポリシー識別子とに基づき、第１コンシステントハッシュリングのパーティションをストレージデバイスの第１ストレージデバイスの第１領域と関連付ける工程と、
パーティション識別子と、第２コンシステントハッシュリングのポリシー識別子とに基づき、第２コンシステントハッシュリングのパーティションを第１ストレージデバイスの第２領域と関連付ける工程と、
を有する。
【０１１３】
例７において、コンテナオブジェクトの各々を関連付ける工程は、
複数のデータ処理ポリシー識別子の１つをメタデータとして各々のコンテナオブジェクトに関連付ける段階であって、各々のデータ処理ポリシー識別子は、データ処理ポリシーのそれぞれの１つに対応する、工程を有する。
【０１１４】
例８は、例１から例７のいずれか１つに従うチップセットを含むコンピューティングデバイスである。
【０１１５】
例９は、例１から例７のいずれか１つの方法を実行するように構成される装置である。
【０１１６】
例１０は、例１から例７のいずれか１つの方法を実行するための手段を含む装置である。  例１１は、例１から例７のいずれか１つの方法を実行する機械である。
【０１１７】
例１２は、コンピューティングデバイス上で実行された場合、例１から例７のいずれか１つに従ってコンピューティングデバイスに方法を実行させる複数の命令を含む少なくとも１つの機械可読媒体である。
【０１１８】
例１３は、例１から例７のいずれか１つの方法を実行するように構成される通信デバイスである。  例１４は、例１から例７のいずれかの方法を実行するコンピュータシステムである。
【０１１９】
例１５は、オブジェクトベースのストレージクラスタとして管理されるストレージデバイスのクラスタの内部に複数のデータ処理ポリシーを提供するように構成されるプロセッサおよびメモリを含む装置であって、複数のデータ処理ポリシーは、
コンテナオブジェクトにデータオブジェクトを割り当てることと、
コンテナオブジェクトの各々を複数の選択可能なデータ処理ポリシーの１つと関連付けることと、
データオブジェクトのそれぞれのコンテナオブジェクトと関連付けられるデータ処理ポリシーに部分的に基づき、ストレージデバイスのクラスタの内部のストレージデバイスの領域に各々のデータオブジェクトを割り当てることと
を含む。
【０１２０】
例１６において、プロセッサおよびメモリはさらに、コンテナオブジェクトのそれぞれのデータ処理ポリシーに基づき、ストレージデバイスのクラスタの内部のデータオブジェクトを管理するように構成される。
【０１２１】
例１７において、プロセッサおよびメモリはさらに、データ処理ポリシーの第１の１つと関連付けられるコンテナオブジェクトのデータオブジェクトをストレージデバイスの第１のストレージデバイスの第１領域に割り当て、データ処理ポリシーの第２の１つと関連付けられるコンテナのデータオブジェクトを第１のストレージデバイスの第２領域に割り当てるように構成される。
【０１２２】
例１８において、プロセッサおよびメモリはさらに、データオブジェクトのコンテナオブジェクトと関連付けられるデータ処理ポリシーに基づき、複数のコンシステントハッシュリングの１つを選択し、選択されたコンシステントハッシュリングに基づき、データオブジェクトをストレージデバイスの領域に割り当てるように構成される。
【０１２３】
例１９において、プロセッサおよびメモリはさらに、複数のコンシステントハッシュリングの各々を複数のパーティションに分割し、
各々のパーティションは、コンシステントハッシュリングのそれぞれのハッシュインデックスの範囲を表し、
コンシステントハッシュリングの各々をデータ処理ポリシーのそれぞれの１つのポリシー識別子と関連付け、
パーティションのそれぞれのパーティション識別子と、コンシステントハッシュリングのそれぞれのポリシー識別子とに基づき、各々のコンシステントハッシュリングの各々のパーティションをストレージデバイスの１つの領域と関連付け、
データオブジェクトのコンテナと関連付けられるデータ処理ポリシーに基づき、データオブジェクトのためにコンシステントハッシュリングの１つを選択し、
データオブジェクトのためのハッシュインデックスを計算し、
ハッシュインデックスに基づき、選択されたコンシステントハッシュリングのパーティションを決定し、
パーティションと関連付けられるストレージデバイスの領域にデータオブジェクトを割り当てる
ように構成される。
【０１２４】
例２０において、コンシステントハッシュリングの第１のコンシステントハッシュリングのパーティションのパーティション識別子は、コンシステントハッシュリングの第２のコンシステントハッシュリングのパーティションのパーティション識別子と同一であり、プロセッサおよびメモリはさらに、
パーティション識別子と、第１コンシステントハッシュリングのポリシー識別子とに基づき、第１コンシステントハッシュリングのパーティションをストレージデバイスの第１ストレージデバイスの第１領域と関連付け、
パーティション識別子と、第２コンシステントハッシュリングのポリシー識別子とに基づき、第２コンシステントハッシュリングのパーティションを第１ストレージデバイスの第２領域と関連付ける
ように構成される。
【０１２５】
例２１において、プロセッサおよびメモリはさらに、複数のデータ処理ポリシー識別子の１つをメタデータとして各々のコンテナオブジェクトに関連付け、各々のデータ処理ポリシー識別子は、データ処理ポリシーのそれぞれの１つに対応する
ように構成される。
【０１２６】
例２２は、オブジェクトベースのストレージクラスタとして管理されるストレージデバイスのクラスタの内部に複数のデータ処理ポリシーをプロセッサに提供させる命令を含む、コンピュータプログラムで符号化される非一時的なコンピュータ可読媒体であって、複数のデータ処理ポリシーは、
コンテナオブジェクトにデータオブジェクトを割り当てること、
コンテナオブジェクトの各々を複数の選択可能なデータ処理ポリシーの１つと関連付けること、
データオブジェクトのそれぞれのコンテナオブジェクトと関連付けられるデータ処理ポリシーに部分的に基づき、ストレージデバイスのクラスタの内部のストレージデバイスの領域に各々のデータオブジェクトを割り当てること
を含む。
【０１２７】
例２３は、コンテナオブジェクトのそれぞれのデータ処理ポリシーに基づき、ストレージデバイスのクラスタの内部のデータオブジェクトをプロセッサに管理させる命令を含む。
【０１２８】
例２４は、プロセッサに、データ処理ポリシーの第１の１つと関連付けられるコンテナオブジェクトのデータオブジェクトをストレージデバイスの第１のストレージデバイスの第１領域に割り当てさせ、データ処理ポリシーの第２の１つと関連付けられるコンテナのデータオブジェクトを第１のストレージデバイスの第２領域に割り当てさせる命令を含む。
【０１２９】
例２５は、プロセッサに、データオブジェクトのコンテナオブジェクトと関連付けられるデータ処理ポリシーに基づき複数のコンシステントハッシュリングの１つを選択させ、選択されたコンシステントハッシュリングに基づきデータオブジェクトをストレージデバイスの領域に割り当てさせる命令を含む。
【０１３０】
例２６は、プロセッサに、
複数のコンシステントハッシュリングの各々を複数のパーティションに分割し、各々のパーティションは、コンシステントハッシュリングのそれぞれのハッシュインデックスの範囲を表させ、
コンシステントハッシュリングの各々をデータ処理ポリシーのそれぞれの１つのポリシー識別子と関連付けさせ、
パーティションのそれぞれのパーティション識別子と、コンシステントハッシュリングのそれぞれのポリシー識別子とに基づき、各々のコンシステントハッシュリングの各々のパーティションをストレージデバイスの１つの領域と関連付けさせ、
データオブジェクトのコンテナと関連付けられるデータ処理ポリシーに基づきデータオブジェクトのためにコンシステントハッシュリングの１つを選択させ、
データオブジェクトのためのハッシュインデックスを計算させ、
ハッシュインデックスに基づき選択されたコンシステントハッシュリングのパーティションを決定させ、
パーティションと関連付けられるストレージデバイスの領域にデータオブジェクトを割り当てさせる
命令を含む。
【０１３１】
例２７において、コンシステントハッシュリングの第１のコンシステントハッシュリングのパーティションの記パーティション識別子は、コンシステントハッシュリングの第２のコンシステントハッシュリングのパーティションのパーティション識別子と同一であり、命令は、プロセッサに、
パーティション識別子と、第１コンシステントハッシュリングのポリシー識別子とに基づき、第１コンシステントハッシュリングのパーティションをストレージデバイスの第１ストレージデバイスの第１領域と関連付けさせ、
パーティション識別子と、第２コンシステントハッシュリングのポリシー識別子とに基づき、第２コンシステントハッシュリングのパーティションを第１ストレージデバイスの第２領域と関連付けさせる
命令を含む。
【０１３２】
例２８は、プロセッサに、複数のデータ処理ポリシー識別子の１つをメタデータとして各々のコンテナオブジェクトに関連付けさせる命令を含み、各々のデータ処理ポリシー識別子は、データ処理ポリシーのそれぞれの１つに対応する。
【０１３３】
例２９において、例１から例２８のいずれか１つのデータ処理ポリシーは、
コンテナオブジェクトのデータオブジェクトを格納および複製するポリシー、および複製なしで、コンテナオブジェクトのデータオブジェクトを格納するポリシーと、
コンテナオブジェクトのデータオブジェクトの第１の数の複製を維持するポリシー、およびコンテナオブジェクトのデータオブジェクトの第２の数の複製を維持するポリシーであって、第１の数と第２の数は互いに異なる、ポリシーと、
圧縮フォーマットにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
地理的な場所パラメータを満たすストレージデバイスにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
データオブジェクトの複製なしで、地理的な場所パラメータを満たすストレージデバイスにコンテナオブジェクトのデータオブジェクトを格納するポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ストレージデバイスのクラスタの複数のゾーンのそれぞれに格納されたデータオブジェクトおよびデータオブジェクトの複製を分配するポリシーであって、ゾーンは、１または複数のストレージデバイス識別子、ストレージデバイスタイプ、サーバ識別子、パワーグリッド識別子および地理的な場所に関して定義される、ポリシーと、
ストレージデバイスのクラスタの外部にあるストレージシステムにコンテナオブジェクトのデータオブジェクトをマッピングするポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ある期間後にコンテナオブジェクトのデータオブジェクトを保管し、データオブジェクトのそれぞれの保管後に格納されたデータオブジェクトおよび格納されたデータオブジェクトの複製を廃棄するポリシーと、
コンテナオブジェクトのデータオブジェクトを格納および複製し、ある期間後に消去コードに基づきコンテナオブジェクトのデータオブジェクトを保管し、データオブジェクトのそれぞれの保管後に格納されたデータオブジェクトおよび格納されたデータオブジェクトの複製を廃棄するポリシーと
のうちの１または複数を有する。
【０１３４】
方法およびシステムは、機能、特徴およびそれらの関係を例示する機能的構成要素を用いて本明細書で開示される。説明の簡便化を目的として、これらの機能的構成要素の複数の境界の少なくともいくつかは、本明細書において任意に定められた。特定の機能、および、それらの関係が適切に実行される限りにおいて、代替的な境界が定められてもよい。本明細書において様々な実施形態が開示されるが、それらは例として提示されていることは理解されるべきである。請求項の範囲は、本明細書で開示される例示的な実施形態のいずれかにより限定されるべきではない。
【図１】
0006798756.tif 000002
【図２】
0006798756.tif 000003
【図３】
0006798756.tif 000004
【図４】
0006798756.tif 000005
【図５】
0006798756.tif 000006
【図６】
0006798756.tif 000007
【図７】
0006798756.tif 000008
【図８】
0006798756.tif 000009