(57)【要約】  ストリームを使用してデータを割り振りエリアに選択的に記憶する手法が提供される。割り振りエリアのセット（例えば、仮想ブロック番号などのブロック番号の範囲）がストレージ装置に対して定義される。特定の特性を有するデータ（例えば、ユーザデータ、メタデータ、ホットデータ、コールドデータ、ランダムにアクセスされるデータ、順次アクセスされるデータ等）が、対応する割り振りエリアにおける選択的記憶のためストレージ装置に送信される。例えば、ファイルシステムがホットデータの書き込みストリームを受信したとき、ホットデータはストリームに割り当てられ得る。ストリームは、ホットデータに対して定義された割り振りエリアを使用してストリームのデータを処理するためにストレージ装置に対するインジケータとして使用されるストリーム識別子を使用してタグ付けされる。こうして、異なる特性を有するデータはストレージ装置の特定の割り振りエリア内に記憶／制限され、フラグメンテーション及び書き込み増幅を低減させる。
2020511714.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する方法であって、
ストレージ装置に書き込むべき第１のデータ及び第２のデータを受信するステップと、
前記第１のデータを、ポリシー内に定義された第１の特性を有するものとして識別するステップと、
前記第２のデータを、前記ポリシー内に定義された第２の特性を有するものとして識別するステップと、
前記第１のデータを、前記第１の特性に対して前記ポリシーにより規定された第１のストリーム識別子でタグ付けされた第１のストリームに割り当てるステップであり、前記第１のストリーム識別子は、前記ストレージ装置内の第１の割り振りエリアに関連づけられる、ステップと、
前記第２のデータを、前記第２の特性に対して前記ポリシーにより規定された第２のストリーム識別子でタグ付けされた第２のストリームに割り当てるステップであり、前記第２のストリーム識別子は、前記ストレージ装置内の第２の割り振りエリアに関連づけられる、ステップと、
前記第１のストリームが前記第１のストリーム識別子でタグ付けされていることに基づいて、前記第１のデータを前記第１の割り振りエリアに書き込むために前記第１のストリームを前記ストレージ装置に送信するステップと、
前記第２のストリームが前記第２のストリーム識別子でタグ付けされていることに基づいて、前記第２のデータを前記第２の割り振りエリアに書き込むために前記第２のストリームを前記ストレージ装置に送信するステップと、
を含む方法。
【請求項２】
前記ポリシーは、前記第１の特性をユーザデータ特性として、及び前記第２の特性をメタデータ特性として規定する、請求項１に記載の方法。
【請求項３】
前記ポリシーは、前記第１の特性を第１のデータ頻度アクセス特性として、及び前記第２の特性を第２のデータ頻度アクセス特性として規定する、請求項１に記載の方法。
【請求項４】
前記ポリシーは、前記第１の特性を順次アクセス特性として、及び前記第２の特性をランダムアクセス特性として規定する、請求項１に記載の方法。
【請求項５】
前記ポリシーは、前記第１の特性を、前記ストレージ装置に関連づけられた第１の集合体の第１のストレージ集合体特性として、及び前記第２の特性を、前記ストレージ装置に関連づけられた第２の集合体の第２のストレージ集合体特性として規定する、請求項１に記載の方法。
【請求項６】
前記第１のデータを前記第１のストリームに、及び前記第２のデータを前記第２のストリームに割り当てるファイルシステム、をさらに含む請求項１乃至５のうちいずれか１項に記載の方法。
【請求項７】
前記ストレージ装置を使用してデータへのアクセスを提供する仮想化レイヤ、をさらに含む請求項１に記載の方法。
【請求項８】
前記仮想化レイヤは、前記ストレージ装置が論理アドレス対物理アドレスマッピングがない場合、前記データへのアクセスを提供する、請求項７に記載の方法。
【請求項９】
マシンにより実行されると前記マシンに請求項１乃至８のうちいずれか１項に記載の方法を実行させる命令を含む非一時的マシン読取可能媒体。
【請求項１０】
方法を実行する命令を含む非一時的マシン読取可能媒体であって、前記命令はマシンにより実行されると前記マシンに、
ストレージ装置の記憶特性に基づいて、前記ストレージ装置の第１の領域を第１の割り振りエリアとして、及び前記ストレージ装置の第２の領域を第２の割り振りエリアとして定義し、
前記ストレージ装置とネゴシエートして、前記ストレージ装置に対して第１のインジケータとして使用される第１のストリーム識別子を規定して、前記第１のストリーム識別子でタグ付けされたストリームが前記第１の割り振りエリアを使用して処理されるべきであると示し、
前記ストレージ装置とネゴシエートして、前記ストレージ装置に対して第２のインジケータとして使用される第２のストリーム識別子を規定して、前記第２のストリーム識別子でタグ付けされたストリームが前記第２の割り振りエリアを使用して処理されるべきであると示し、
第１の特性を有するデータが前記第１の割り振りエリアを使用して処理されるべきであり、第２の特性を有するデータが前記第２の割り振りエリアを使用して処理されるべきであると規定するポリシーを維持し、
前記ストレージ装置に書き込むべきデータの書き込みストリームを受信し、
前記書き込みストリームのデータを、前記データが前記第２の特性でなく前記第１の特性を有することに基づいて前記第１の割り振りエリアを使用して前記ストレージ装置により処理するために、前記第２のストリーム識別子でなく前記第１のストリーム識別子でタグ付けされたストリームを通して前記ストレージ装置に提供する
ことをさせる非一時的マシン読取可能媒体。
【請求項１１】
前記命令は前記マシンに、
前記第１の割り振りエリア及び前記第２の割り振りエリアを、前記ストレージ装置の消去ブロック単位の整数倍として定義する
ことをさせる請求項１０に記載の非一時的マシン読取可能媒体。
【請求項１２】
前記命令は前記マシンに、
前記ストレージ装置に対して割り振りエリアのセットを定義し、
前記割り振りエリアのセットのうちの割り振りエリアにポリシーを割り当て、
前記ポリシーを利用して、前記データの特性に基づいてデータをストリームに割り当て、前記ストリームにストリーム識別子でタグ付けする
ことをさせる請求項１０に記載の非一時的マシン読取可能媒体。
【請求項１３】
前記命令は前記マシンに、
前記割り振りエリアのセットを、前記ポリシーと前記割り振りエリアの利用可能な空き領域とに基づいて、割り振りエリアのソートセットとしてソートする
ことをさせる請求項１２に記載の非一時的マシン読取可能媒体。
【請求項１４】
前記命令は前記マシンに、
前記割り振りエリアのソートセットからターゲット割り振りエリアを、前記ターゲット割り振りエリアが閾を超えるソートランクを有することに基づいて選択し、
ストリーム識別子を、前記ターゲット割り振りエリアに関連づけられるものとして識別し、
ターゲットストリームを前記ストリーム識別子でタグ付けする
ことをさせる請求項１３に記載の非一時的マシン読取可能媒体。
【請求項１５】
前記命令は前記マシンに、
前記第１の割り振りエリアが閾未満の量の空き領域を有すると決定し、
この決定に応答して、前記第１の割り振りエリアに関連づけられた第１のポリシーを終了させる
ことをさせる請求項１０乃至１４のうちいずれか１項に記載の非一時的マシン読取可能媒体。
【請求項１６】
前記命令は前記マシンに、
前記第１の割り振りエリアが閾未満の量の空き領域を有すると決定し、
この決定に応答して、前記第１の割り振りエリアを再定義して前記空き領域の量を増加させる
ことをさせる請求項１０乃至１５のうちいずれか１項に記載の非一時的マシン読取可能媒体。
【請求項１７】
データ記憶のためのコンピューティング装置であって、
命令を記憶させたマシン実行可能コードを含むマシン読取可能媒体を含むメモリと、
前記メモリに結合されたプロセッサと、を含み、
前記プロセッサは、前記マシン実行可能コードを実行して前記プロセッサに請求項１乃至８のうちいずれか１項に記載の方法を実行させるように構成される、コンピューティング装置。
【請求項１８】
データ記憶のためのコンピューティング装置であって、
方法を実行する命令を記憶させたマシン実行可能コードを含むマシン読取可能媒体を含むメモリと、
前記メモリに結合されたプロセッサと、を含み、
前記プロセッサは、前記マシン実行可能コードを実行して前記プロセッサに、
ストレージ装置を使用して仮想化レイヤにより提供される仮想化ストレージに書き込むべき第１のデータ及び第２のデータを受信し、
前記第１のデータを、ポリシー内に定義された第１の特性を有するものとして識別し、
前記第２のデータを、前記ポリシー内に定義された第２の特性を有するものとして識別し、
前記第１のデータを、前記第１の特性に対して前記ポリシーにより規定された第１のストリーム識別子でタグ付けされた第１のストリームに割り当て、前記第１のストリーム識別子は、前記ストレージ装置内の第１の割り振りエリアに関連づけられ、
前記第２のデータを、前記第２の特性に対して前記ポリシーにより規定された第２のストリーム識別子でタグ付けされた第２のストリームに割り当て、前記第２のストリーム識別子は、前記ストレージ装置内の第２の割り振りエリアに関連づけられ、
前記第１のストリームが前記第１のストリーム識別子でタグ付けされていることに基づいて、前記第１のデータを前記第１の割り振りエリアに書き込むために前記第１のストリームを前記ストレージ装置に送信し、
前記第２のストリームが前記第２のストリーム識別子でタグ付けされていることに基づいて、前記第２のデータを前記第２の割り振りエリアに書き込むために前記第２のストリームを前記ストレージ装置に送信する
ことをさせるように構成される、コンピューティング装置。
【請求項１９】
前記ストレージ装置は、第１のパーティション及び第２のパーティションを有する区分されたストレージ装置である、請求項１８に記載のコンピューティング装置。
【請求項２０】
前記ストレージ装置は、第１の記憶媒体及び第２の記憶媒体を含む、請求項１８に記載のコンピューティング装置。
【請求項２１】
前記第１の割り振りエリアは、前記第１の記憶媒体の第１の部分と前記第２の記憶媒体の第２の部分とを含む、請求項２０に記載のコンピューティング装置。
【請求項２２】
前記第１の記憶媒体及び前記第２の記憶媒体はＲＡＩＤ構成を有し、前記第１の割り振りエリアはパリティディスクの第３の部分を含む、請求項２１に記載のコンピューティング装置。
【発明の詳細な説明】
【背景技術】
【０００１】
ストレージコントローラの多くのファイルシステムは、種々のプロトコルに関連づけられた複数のチャネルを通じてデータを受信することができる。ファイルシステムは、そのデータを一ストレージ装置内に又は複数のストレージ装置にわたり記憶することができる。こうしたデータは、例えば、ユーザデータ（例えば、ユーザデータベースファイル）又はメタデータ（例えば、ボリュームのボリュームサイズ、ストレージコントローラのネットワークアドレス、複製ポリシー、及び／又はファイルシステム及び／又はストレージコントローラにより使用される他のデータ）であるなど、種々の特徴を有し得る。別の例において、特性は、ホットデータ（例えば、ファイルシステムにより頻繁に変更されているメタデータなどの、閾頻度を超えてアクセスされているデータ）又はコールドデータ（例えば、閾頻度未満でアクセスされているユーザデータ）に対応することができる。別の例において、特性は、順次アクセスされるデータ（例えば、隣接するブロック内に記憶されるデータ）又はランダムにアクセスされるデータ（例えば、隣接しないブロック内に記憶されるデータ）に対応することができる。
【０００２】
仮想化レイヤは、複数のストレージ装置からの物理ストレージをクライアント及びアプリケーションに対して単一のストレージオブジェクトに見えるものに一緒にグループ化する間接レイヤとして使用できる（例えば、ボリューム又は論理ユニット番号（ＬＵＮ）が、複数の物理ストレージ装置に及ぶ可能性がある）。仮想化レイヤは、ストレージの物理レイアウトを抽象化し、ゆえに、基礎となる物理アドレス空間にマッピングされた論理アドレス空間で動作する。仮想化されたストレージでは、ストレージ装置は、ストレージ装置により選択されたロケーションの中のストレージ装置の物理ブロック内にデータを物理的に記憶する役割を担うことがある。しかしながら、ストレージ装置は、いかなる論理的／物理的分離もなしに、ホットデータ、コールドデータ、ユーザデータ、及びメタデータなどの任意タイプのデータを一緒に記憶する可能性がある。不運なことに、異なる特性を有するデータは、異なるアクセス及び上書きパターンを有する可能性があり、ゆえに、このようなデータが一緒に記憶されているとき、フラグメンテーションが結果として生じる可能性がある。
【０００３】
一例において、ソリッドステートドライブ（ＳＳＤ）は、前に書き込まれたブロックを上書きする能力を有さない場合があり、空の宛先セルにのみ書き込むことができる。ゆえに、宛先セルが再使用されるべきデータを有する場合、データは異なる空セルに移動されることがあり、宛先セルは再プログラム（例えば、消去）されなければならず、それにより、新しいデータが宛先セルに書き込みできる。これは、フラグメンテーションの増加を結果としてもたらし、異なる特性のデータが一緒に記憶されているとき、フラグメンテーションはより著しくなる。ストレージ装置は、領域を予約して、セルを先見的に解放できるバックグラウンドガベージコレクションを提供することができる。しかしながら、ストレージ装置のストレージのうち約２８％又は任意の他のパーセンテージなど、相当量のストレージ領域が予約される可能性がある。これは、オーバープロビジョニングに起因するストレージリソースの非効率的な使用及びコストの増加をもたらす。また、書き込み増幅は後続の上書きで問題になり、ストレージ装置における性能及び摩耗の劣化をもたらす可能性がある。
【図面の簡単な説明】
【０００４】
【図１】本明細書に記載された対策の１つ以上に従う、例示的なクラスタ化ネットワークを示すコンポーネントブロック図である。
【図２】本明細書に記載された対策の１つ以上に従う、例示的なデータストレージシステムを示すコンポーネントブロック図である。
【図３】ストリームを使用してデータを割り振りエリアに選択的に記憶する例示的な方法を示すフローチャートである。
【図４】ストリームを使用してデータを割り振りエリアに選択的に記憶するための例示的なコンピューティング装置を示すコンポーネントブロック図であり、割り振りエリアが定義され、割り振りエリアにポリシーが割り当てられる。
【図５】ストリームを使用してデータを割り振りエリアに選択的に記憶するための例示的なコンピューティング装置を示すコンポーネントブロック図であり、割り振りエリアは複数のストレージ装置にわたり定義される。
【図６】ストリームを使用してデータを割り振りエリアに選択的に記憶する例示的な方法を示すフローチャートである。
【図７】ストリームを使用してデータを割り振りエリアに選択的に記憶するための例示的なコンピューティング装置を示すコンポーネントブロック図である。
【図８】本明細書に記載された対策の１つ以上に従う、コンピュータ読取可能媒体の例である。
【発明を実施するための形態】
【０００５】
次に、請求される対象事項のいくつかの例が図面を参照して記載される。ここで、同様の参照番号は、全体を通して同様の要素を参照するために一般に使用される。以下の記載において、説明の目的で、請求される対象事項の理解を提供するために、多数の特定の詳細が説明される。しかしながら、請求される対象事項はこれらの特定の詳細なしに実施され得ることが明らかであろう。この詳細な説明の如何なる記載も、従来技術として認められない。
【０００６】
ストリームを使用してデータを割り振りエリア（allocation  areas）に選択的に記憶するための１つ以上の手法及び／又はコンピューティング装置が本明細書で提供される。
【０００７】
ストレージ装置は、仮想化されたストレージをクライアントに提供するために仮想化レイヤにより使用されることがある（例えば、仮想化レイヤは、物理ストレージの基礎となる詳細を隠すことがあり、複数の物理装置の物理ストレージをクライアント及びアプリケーションに晒される単一のストレージオブジェクトにグループ化することがある）。ストレージ装置が、論理アドレス空間の物理アドレス空間への十分定義されたマッピングを有さない場合、ストレージ装置は単に、任意タイプのデータを一緒に記憶することになる。ある時間にわたり、異なるタイプのデータ（例えば、異なるアクセス頻度を有するデータ、異なる上書きパターン及び頻度を有するデータ、異なる集合体のデータ、ランダムにアクセスされるデータ、順次アクセスされるデータ、ホットデータ、コールドデータ、ユーザデータ、メタデータ等）を一緒に記憶することは、ストレージ装置のフラグメンテーションを結果としてもたらす可能性がある。書き込み増幅（Write  amplification）もまた、その後の上書きで結果として生じることになる。また、ソリッドステートドライブなどの特定タイプのストレージ装置は、ガベージコレクション機能による使用のためにストレージをオーバープロビジョニングし（例えば、あるパーセンテージの、さもなければ空いているストレージを予約し）、ソリッドステートドライブのセルを先見的に解放する。こうしたオーバープロビジョニングは、さもなければ我々がユーザデータ及び／又はメタデータを記憶するために使用できるストレージ領域を浪費する。ゆえに、フラグメンテーションを低減させ、書き込み増幅を低減させ、ストレージ領域の記憶効率を改善する必要がある。
【０００８】
したがって、本明細書に提供されるように、書き込みストリームのデータは、こうしたデータの特性に基づいて異なるストリームに割り当てられる。詳細には、異なる特性を有するデータがストレージ装置の異なる割り振りエリアに（例えば、ストレージ装置の異なる物理アドレス範囲又は仮想ブロック番号内に）記憶されるべきであると規定する１つ以上のポリシーに基づいて、頻繁にアクセスされるデータが第１のストリームに割り当てられてもよく、稀にアクセスされるデータが第２のストリームに割り当てられてもよく、ランダムにアクセスされるデータが第３のストリームに割り当てられてもよく、順次アクセスされるデータが第４のストリームに割り当てられてもよい、等である。
【０００９】
ポリシーとストリームへのデータの割り当てとはファイルシステムにより実現されてもよく、それにより、ストレージ装置のストレージが仮想化され、かつ／あるいはストレージ装置が物理アドレス空間への論理アドレス空間の十分定義されたマッピングを維持せず、ゆえにさもなければすべてのデータを一緒に又はいかなる識別もなく単に記憶することになるとしても、データはストレージ装置内の別個の場所に記憶できる。各ストリームは、ポリシーにより対応する割り振りエリアに割り当てられた特定のストリーム識別子でタグ付けされてもよい。例えば、ポリシーは、頻繁にアクセスされるデータが割り振りエリア（Ｃ）に記憶されるべきであると規定し、したがって、頻繁にアクセスされるデータの第１のストリームは、第１のストリームのデータが割り振りエリア（Ｃ）を使用して処理される（例えば、その中に記憶される）べきであるというストレージ装置に対するインジケータとして使用されるストリーム識別子でタグ付けされる。同様の特性を有するデータを同じ割り振りエリア内に一緒に記憶し、同様でない文字を有するデータを別個の割り振りエリアに記憶することは、全体的ストレージ装置のフラグメンテーション及び書き込み増幅を低減させる（例えば、頻繁に上書きされるデータは、ストレージ装置全体にわたり拡散されるのと反対に単一の割り振りエリア内に含むことができ、それにより、上書きによるフラグメンテーションは、ストレージ装置全体に影響しないことになる。さもなければ、特に、任意の書き込みオプションに対してデータを新しい位置に書き込むライトエニウェア（write  anywhere）ファイルシステムについて、ストレージ装置全体にわたりフラグメンテーションが結果として生じることになる）。これはまた、バックグラウンドのガベージコレクション処理が必要とされない可能性があり、あるいはガベージコレクションに対してストレージ装置の一層小さい予約エリアを使用する可能性があるため、記憶効率を改善する。
【００１０】
ストリームを使用するデータの割り振りエリアへの選択的記憶を提供するために、図１は、クラスタ化されたネットワーク環境１００又はネットワークストレージ環境の一実施形態を示す。しかしながら、本明細書に記載される手法等は、クラスタ化ネットワーク環境１００、非クラスタネットワーク環境、及び／又はデスクトップコンピューティング環境などの種々の他のコンピューティング環境内に実現されてもよいことが十分理解され得る。すなわち、別記の特許請求の範囲を含む本開示は、本明細書に提供される実施形態に限定されることを意図しない。同一又は同様のコンポーネント、要素、特徴、アイテム、モジュール等が後の図で図示されているが、前の図に関して前に論じられていた場合、（例えば、理解を簡単及び容易にする目的で）後続の図を説明するとき、上記コンポーネント、要素、特徴、アイテム、モジュール等についての同様の（例えば、冗長な）議論は省略され得ることが十分理解されよう。
【００１１】
図１は、本明細書に記載される手法及び／又はシステムの少なくともいくつかの実施形態を実現し得る、クラスタ化ネットワーク環境１００を示すブロック図である。クラスタ化ネットワーク環境１００は、データストレージシステム１０２及び１０４を含み、データストレージシステム１０２及び１０４は、該データストレージシステム１０２及び１０４（及び、例えば、その中の１つ以上のモジュール、コンポーネント等、例えばノード１１６及び１１８など）の間の通信を容易にするプライベートインフィニバンド（Infiniband）、ファイバチャネル（Fibre  Channel、ＦＣ）、又はイーサネット（登録商標）ネットワークとして具現化されたコンピューティングネットワークなどのクラスタファブリック１０６を通じて結合される。２つのデータストレージシステム１０２及び１０４並びに２つのノード１１６及び１１８が図１に示されるが、任意の適切な数のこうしたコンポーネントが企図されることが十分理解されよう。一例において、ノード１１６、１１８は、ストレージコントローラを含み（例えば、ノード１１６が、プライマリ又はローカルストレージコントローラを含んでもよく、ノード１１８が、セカンダリ又はリモートストレージコントローラを含んでもよい）、上記ストレージコントローラは、データストレージ装置１２８、１３０内に記憶されたデータへのアクセスを、ホスト装置１０８、１１０などのクライアント装置に提供する。同様に、本明細書において特に別段提供されない限り、本明細書で参照され及び／又は添付の図面に示される他のモジュール、要素、特徴、アイテム等についても同様である。すなわち、本明細書に開示される特定の数のコンポーネント、モジュール、要素、特徴、アイテム等は、限定的な方法で解釈されることを意図しない。
【００１２】
さらに、クラスタ化ネットワークは、いかなる特定の地理的エリアにも限定されず、ローカルに及び／又はリモートにクラスタ化できることが十分理解されよう。ゆえに、一実施形態において、クラスタ化ネットワークは、複数の地理的ロケーションに位置する複数のストレージシステム及び／又はノードにわたり分散できる。一方、別の実施形態において、クラスタ化ネットワークは、同じ地理的ロケーションに（例えば、データストレージ装置の単一のオンサイトのラックに）存在するデータストレージシステム（例えば、１０２、１０４）を含むことができる。
【００１３】
図示の例において、例えば、クライアント装置、パーソナルコンピュータ（ＰＣ）、記憶のために使用されるコンピューティング装置（例えば、ストレージサーバ）、及び他のコンピュータ又は周辺装置（例えば、プリンタ）を含み得る１つ以上のホスト装置１０８、１１０は、ストレージネットワーク接続１１２、１１４によりそれぞれのデータストレージシステム１０２、１０４に結合される。ネットワーク接続は、例えば、データパケットを交換するための共通インターネットファイルシステム（Common  Internet  File  System、ＣＩＦＳ）プロトコル又はネットワークファイルシステム（Network  File  System、ＮＦＳ）プロトコルなどのネットワークアタッチトストレージ（Network  Attached  Storage、ＮＡＳ）プロトコル、スモールコンピュータシステムインターフェース（Small  Computer  System  Interface、ＳＣＳＩ）又はファイバチャネルプロトコル（Fiber  Channel  Protocol、ＦＣＰ）などのストレージエリアネットワーク（Storage  Area  Network、ＳＡＮ）プロトコル、Ｓ３などのオブジェクトプロトコル等を利用するローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）を含んでもよい。例示的に、ホスト装置１０８、１１０は、アプリケーションを実行する汎用コンピュータであってもよく、情報の交換のためにクライアント／サーバモデルを使用してデータストレージシステム１０２、１０４と相互作用してもよい。すなわち、ホスト装置は、データストレージシステムからのデータ（例えば、ホスト装置によりストレージ装置に対して発行されたＩ／Ｏコマンドを処理するように構成されたネットワークストレージ制御により管理される、該ストレージ装置上のデータ）を要求してもよく、データストレージシステムは、１つ以上のストレージネットワーク接続１１２、１１４を介して、要求の結果をホスト装置に返してもよい。
【００１４】
クラスタ化されたデータストレージシステム１０２、１０４上のノード１１６、１１８は、例えば、リモートのロケーション、クラウドストレージ（例えば、ストレージエンドポイントがデータクラウド内に記憶されてもよい）等を有する企業などに対してデータストレージ及び管理サービスを提供するためにクラスタとして相互接続されたネットワーク又はホストノードを含むことができる。クラスタ化されたネットワーク環境１００内のこうしたノードは、例えば、接続ポイント、再分配ポイント、又は通信エンドポイントとしてネットワークにアタッチされた装置とすることができる。ノードは、ネットワーク通信チャネルを通じて情報を送信、受信、及び／又は転送可能であってもよく、これらの基準のいずれか又は全てを満たす任意の装置を含むことができる。ノードの一例は、ネットワークにアタッチされたデータストレージ及び管理サーバであってもよく、サーバは、データストレージ及び管理システムにおいてサーバとして動作するように特に構成された汎用コンピュータ又はコンピューティング装置を含むことができる。
【００１５】
一例において、ノード１１６、１１８などの第１のノードクラスタ（例えば、１つ以上のストレージ装置の第１の論理グループ化を含む第１のストレージ集合体（storage  aggregate）へのアクセスを提供するように構成された第１のストレージコントローラセット）が、第１のストレージサイトに位置してもよい。図示されていない第２のノードクラスタが、第２のストレージサイトに位置してもよい（例えば、１つ以上のストレージ装置の第２の論理グループ化を含む第２のストレージ集合体へのアクセスを提供するように構成された第２のストレージコントローラセット）。第１のノードクラスタ及び第２のノードクラスタは、災害復旧構成に従って構成されてもよく、災害ノードクラスタを含む災害ストレージサイトで災害が発生した事象において、生き残りのノードクラスタが災害ノードクラスタのストレージ装置への切り替えアクセスを提供する（例えば、第２のストレージサイトで災害が発生した事象において、第１のノードクラスタが、第２のストレージ集合体のストレージ装置への切り替えデータアクセスをクライアント装置に提供する）。
【００１６】
クラスタ化ネットワーク環境１００に示されるように、ノード１１６、１１８は、クラスタのための分散ストレージアーキテクチャを提供するように協調する様々な機能コンポーネントを含むことができる。例えば、ノードは、ネットワークモジュール１２０、１２２と、ディスクモジュール１２４、１２６とを含むことができる。ネットワークモジュール１２０、１２２は、例えば、ノード１１６、１１８（例えば、ネットワークストレージコントローラ）がネットワーク接続１１２、１１４を通じてホスト装置１０８、１１０と接続することを可能にするように構成でき、ホスト装置１０８、１１０が分散ストレージシステムに記憶されたデータにアクセスすることを可能にする。さらに、ネットワークモジュール１２０、１２２は、クラスタファブリック１０６を通して１つ以上の他のコンポーネントとの接続を提供することができる。例えば、図１において、ノード１１６のネットワークモジュール１２０は、ノード１１８のディスクモジュール１２６を通して要求を送信することにより第２のデータストレージ装置にアクセスすることができる。
【００１７】
ディスクモジュール１２４、１２６は、１つ以上のデータストレージ装置１２８、１３０、例えば、ディスク又はディスクアレイ、フラッシュメモリ、又は何らかの他の形式のデータストレージなどを、ノード１１６、１１８に接続するように構成できる。ノード１１６、１１８は、例えば、クラスタファブリック１０６により相互接続でき、クラスタ内のそれぞれのノードが、クラスタ内の異なるノードに接続されたデータストレージ装置１２８、１３０上のデータにアクセスすることを可能にする。しばしば、ディスクモジュール１２４、１２６は、例えば、ＳＣＳＩ又はＦＣＰなどのＳＡＮプロトコルに従ってデータストレージ装置１２８、１３０と通信する。ゆえに、ノード１１６、１１８上のオペレーティングシステムから見られるとき、データストレージ装置１２８、１３０は、オペレーティングシステムにローカルにアタッチされているように見え得る。こうして、異なるノード１１６、１１８等が、抽象ファイルを明示的に要求するのでなくオペレーティングシステムを通してデータブロックにアクセスすることができる。
【００１８】
クラスタ化ネットワーク環境１００は等しい数のネットワーク及びディスクモジュールを示すが、他の実施形態が異なる数のこれらモジュールを含んでよいことを十分理解されたい。例えば、複数のネットワーク及びディスクモジュール間で１対１対応を有さないクラスタ内で相互接続された該ネットワーク及びディスクモジュールがあり得る。すなわち、異なるノードが、異なる数のネットワーク及びディスクモジュールを有することができ、同じノードが、ディスクモジュールとは異なる数のネットワークモジュールを有することができる。
【００１９】
さらに、ホスト装置１０８、１１０は、ストレージネットワーキング接続１１２、１１４を通じてクラスタ内のノード１１６、１１８とネットワーク化されることができる。一例として、クラスタにネットワーク化されたそれぞれのホスト装置１０８、１１０は、クラスタ内のノード１１６、１１８のサービス（例えば、データパケットの形式における情報の交換）を要求してもよく、ノード１１６、１１８は、要求されたサービスの結果をホスト装置１０８、１１０に返すことができる。一実施形態において、ホスト装置１０８、１１０は、データストレージシステム１０２、１０４内のノード１１６、１１８（例えば、ネットワークホスト）に存在するネットワークモジュール１２０、１２２との間で情報を交換することができる。
【００２０】
一実施形態において、データストレージ装置１２８、１３０は、ボリューム（volumes）１３２を含み、ボリューム１３２は、例えば、データのファイルシステムとしてのディスクドライブ又はディスクアレイ又は他のストレージ（例えば、フラッシュ）への情報の記憶の一実現例である。一例において、ディスクアレイは、全ての従来のハードドライブ、全てのフラッシュドライブ、又は従来のハードドライブとフラッシュドライブの組み合わせを含むことができる。ボリュームは、例えば、ディスクの一部分、ディスクの集合、又はディスクの複数部分に及ぶことができ、典型的に、ストレージシステム内のディスク領域上にファイルストレージの全体的論理配置を定義する。一実施形態において、ボリュームは、記憶されたデータを、ボリューム内の階層ディレクトリ構造に存在する１つ以上のファイルとして含むことができる。
【００２１】
ボリュームは、特定のストレージシステムに関連づけられ得るフォーマットで典型的に構成され、それぞれのボリュームフォーマットは、例えばボリュームがクラスタを形成する能力を提供することなどの、ボリュームに対する機能性を提供する特徴を典型的に含む。例えば、第１のストレージシステムがそのボリュームについて第１のフォーマットを利用し得る場合に、第２のストレージシステムはそのボリュームについて第２のフォーマットを利用することがある。
【００２２】
クラスタ化ネットワーク環境１００において、ホスト装置１０８、１１０は、データストレージシステム１０２、１０４を利用して、データを記憶し、ボリューム１３２から取り出すことができる。この実施形態において、例えば、ホスト装置１０８は、データストレージシステム１０２内のノード１１６のネットワークモジュール１２０にデータパケットを送信することができる。ノード１１６は、ディスクモジュール１２４を使用してデータストレージ装置１２８にデータを転送することができ、データストレージ装置１２８は、ボリューム１３２Ａを含む。こうして、この例において、ホスト装置は、ストレージネットワーク接続１１２により接続されたデータストレージシステム１０２を使用して、ボリューム１３２Ａにアクセスしてデータを記憶し、かつ／あるいは取り出すことができる。さらに、この実施形態において、ホスト装置１１０は、データストレージシステム１０４（例えば、これはデータストレージシステム１０２からリモートであり得る）内のノード１１８のネットワークモジュール１２２との間でデータを交換することができる。ノード１１８は、ディスクモジュール１２６を使用してデータストレージ装置１３０にデータを転送することができ、これにより、データストレージ装置１３０に関連づけられたボリューム１３２Ｂにアクセスする。
【００２３】
ストリームを使用してデータを割り振りエリアに選択的に記憶することは、クラスタ化ネットワーク環境１００内で実現されてもよいことが十分理解され得る。一例において、割り振りエリアは、データストレージ装置１２８及び／又はデータストレージ装置１３０内に定義されてもよい。データは、ストリームを通してデータストレージ装置１２８及び／又はデータストレージ装置１３０に選択的に送信されてもよい。ストリームは、こうしたストリームが処理されるべき割り振りエリアに対応するストリーム識別子でタグ付けされてもよい。ストリームを使用してデータを割り振りエリアに選択的に記憶することは、任意タイプのコンピューティング環境に対して及び／又は該コンピューティング環境の間で実現されてもよく、物理装置（例えば、ノード１１６、ノード１１８、デスクトップコンピュータ、タブレット、ラップトップ、ウェアラブルデバイス、モバイルデバイス、ストレージ装置、サーバ等）及び／又は（例えば、クラスタ化ネットワーク環境１００からリモートの）クラウドコンピューティング環境の間で移転可能（transferrable）であってもよいことが十分理解され得る。
【００２４】
図２は、データストレージシステム２００（例えば、図１の１０２、１０４）の一説明例であり、本明細書に記載される手法及び／又はシステムの１つ以上を実現できるコンポーネントの一実施形態のさらなる詳細を提供する。データストレージシステム２００は、ノード２０２（例えば、図１のノード１１６、１１８）と、データストレージ装置２３４（例えば、図１のデータストレージ装置１２８、１３０）とを含む。ノード２０２は、例えば、汎用コンピュータ、又は、ストレージサーバとして動作するように特に構成された何らかの他のコンピューティング装置であってもよい。ホスト装置２０５（例えば、図１の１０８、１１０）は、例えば、ネットワーク２１６を通じてノード２０２に接続されて、データストレージ装置２３４上に記憶されたファイル及び／又は他のデータへのアクセスを提供することができる。一例において、ノード２０２は、データストレージ装置２３４内に記憶されたデータへのアクセスをホスト装置２０５などのクライアント装置に提供するストレージコントローラを含む。
【００２５】
データストレージ装置２３４は、大容量ストレージ装置、例えば、ディスクアレイ２１８、２２０、２２２のディスク２２４、２２６、２２８などを含むことができる。本明細書に記載される手法及びシステムは例示的な実施形態により限定されないことが十分理解されよう。例えば、ディスク２２４、２２６、２２８は、任意タイプの大容量ストレージ装置を含んでもよく、これらに限られないが、磁気ディスクドライブ、フラッシュメモリ、及び、例えばデータ（Ｄ）及び／又はパリティ（Ｐ）情報を含む情報を記憶するように適合された任意の他の同様の媒体が含まれる。
【００２６】
ノード２０２は、システムバス２４２により相互接続された１つ以上のプロセッサ２０４、メモリ２０６、ネットワークアダプタ２１０、クラスタアクセスアダプタ２１２、及びストレージアダプタ２１４を含む。ストレージシステム２００は、例えば、リダンダント・アレイ・オブ・インディペンデント（又はインエクスペンシブ）・ディスク（Redundant  Array  of  Independent  (or  Inexpensive)  Disks、ＲＡＩＤ）最適化手法を実現してアレイ内の機能しなくなったディスクのデータの再構築処理を最適化することができる、ノード２０２のメモリ２０６にインストールされたオペレーティングシステム２０８をさらに含む。
【００２７】
オペレーティングシステム２０８はまた、データストレージシステムの通信と、クラスタファブリック２１５（例えば、図１の１０６）にアタッチされているなどでクラスタ化ネットワーク内にあり得る他のデータストレージシステム間の通信とを管理することができる。ゆえに、ノード２０２、例えばネットワークストレージコントローラなどは、ホスト装置要求に応答して、これらホスト装置要求に従ってデータストレージ装置２３４（例えば、又はさらなるクラスタ化装置）上のデータを管理することができる。オペレーティングシステム２０８は、データストレージシステム２００上の１つ以上のファイルシステムをしばしば確立することができ、ファイルシステムは、例えば、ファイル及びディレクトリの持続的階層名前空間を実現するソフトウェアコード及びデータ構造を含むことができる。一例として、新しいデータストレージ装置（図示されていない）がクラスタ化ネットワークシステムに追加されるとき、オペレーティングシステム２０８は、既存のディレクトリツリー内のどこに新しいデータストレージ装置に関連づけられた新しいファイルが記憶されるべきかを知らされる。これは、ファイルシステムを「マウントすること」としてしばしば参照される。
【００２８】
例示的なデータストレージシステム２００において、メモリ２０６は、関連したソフトウェアアプリケーションコード及びデータ構造を記憶するためにプロセッサ２０４及びアダプタ２１０、２１２、２１４によりアドレス指定可能なストレージロケーションを含むことができる。プロセッサ２０４及びアダプタ２１０、２１２、２１４は、例えば、ソフトウェアコードを実行しデータ構造を操作するように構成された処理要素及び／又は論理回路を含んでよい。オペレーティングシステム２０８は、その一部が典型的にはメモリ２０６に存在し処理要素により実行され、とりわけストレージシステムにより実現されたファイルサービスをサポートするストレージ動作を呼び出すことにより、ストレージシステムを機能的に編成する。本明細書に記載される手法に属するアプリケーション命令を記憶及び／又は実行するために様々なコンピュータ読取可能媒体を含む他の処理及びメモリ機構が使用されてもよいことが当業者に明らかであろう。例えば、オペレーティングシステムはまた、１つ以上の制御ファイル（図示されていない）を利用して仮想マシンの供給を支援することができる。
【００２９】
ネットワークアダプタ２１０は、ネットワーク２１６を通じてデータストレージシステム２００をホスト装置２０５に接続するために必要な機械的、電気的、及びシグナリング回路を含み、ネットワーク２１６は、とりわけ、ポイントツーポイント接続又は共有媒体、例えばローカルエリアネットワークなどを含んでもよい。ホスト装置２０５（例えば、図１の１０８、１１０）は、アプリケーションを実行するように構成された汎用コンピュータであってもよい。上記されたように、ホスト装置２０５は、情報配信のクライアント／ホストモデルに従ってデータストレージシステム２００と相互作用してもよい。
【００３０】
ストレージアダプタ２１４は、ノード２０２上で実行しているオペレーティングシステム２０８と協調して、ホスト装置２０５により要求された情報にアクセスする（例えば、ネットワークストレージコントローラにより管理されたストレージ装置上のデータにアクセスする）。情報は、磁気ディスクドライブ、フラッシュメモリ、及び／又は情報を記憶するように適合された任意の他の同様の媒体などの、任意タイプのアタッチされた書き込み可能媒体アレイに記憶されてもよい。例示的なデータストレージシステム２００において、情報は、ディスク２２４、２２６、２２８上のデータブロックに記憶できる。ストレージアダプタ２１４は、ストレージエリアネットワーク（ＳＡＮ）プロトコル（例えば、スモールコンピュータシステムインターフェース（ＳＣＳＩ）、ｉＳＣＳＩ、ｈｙｐｅｒＳＣＳＩ、ファイバチャネルプロトコル（ＦＣＰ））などの入力／出力（Ｉ／Ｏ）相互接続配置を通じてディスクに結合するＩ／Ｏインターフェース回路を含むことができる。情報は、ストレージアダプタ２１４により取り出され、必要な場合、システムバス２４２を通じてネットワークアダプタ２１０（及び／又は、クラスタ内の別のノードに送信する場合にはクラスタアクセスアダプタ２１２）に転送される前に１つ以上のプロセッサ２０４（又は、ストレージアダプタ２１４自体）により処理され、上記ネットワークアダプタ２１０（及び／又はクラスタアクセスアダプタ２１２）において、情報はデータパケットにフォーマットされ、ネットワーク２１６を通じてホスト装置２０５に返される（かつ／あるいは、クラスタファブリック２１５を通じてクラスタにアタッチされた別のノードに返される）。
【００３１】
一実施形態において、ディスクアレイ２１８、２２０、２２２上の情報のストレージは、ディスク領域の全体的論理配置を定義するディスク２２４、２２６、２２８のクラスタを含む１つ以上のストレージボリューム２３０、２３２として実現できる。１つ以上のボリュームを含むディスク２２４、２２６、２２８は、ＲＡＩＤの１つ以上のグループとして典型的に編成される。一例として、ボリューム２３０は、ディスクアレイ２１８及び２２０の集合体を含み、ディスクアレイ２１８及び２２０は、ディスク２２４及び２２６のクラスタを含む。
【００３２】
一実施形態において、ディスク２２４、２２６、２２８へのアクセスを容易にするために、オペレーティングシステム２０８は、情報をディスク上のディレクトリ及びファイルの階層構造として論理的に編成するファイルシステム（例えば、ライトエニウェアファイルシステム）を実現してもよい。この実施形態において、それぞれのファイルは、情報を記憶するように構成されたディスクブロックのセットとして実現されてもよく、これに対し、ディレクトリは、他のファイル及びディレクトリに関する情報が記憶された特別にフォーマットされたファイルとして実現されてもよい。
【００３３】
このデータストレージシステム２００内の基礎となる物理構成が何であれ、データが物理及び／又は仮想ボリューム内にファイルとして記憶でき、上記ボリュームは、ファイルシステム識別子（ＦＳＩＤ）などのそれぞれのボリューム識別子に関連づけでき、上記ファイルシステム識別子は、一例において長さ３２ビットとすることができる。
【００３４】
物理ボリュームは、そのアドレス、アドレス指定可能空間、ロケーション等が変わらない物理ストレージ装置の少なくとも一部、例えば、１つ以上のデータストレージ装置２３４（例えば、リダンダント・アレイ・オブ・インディペンデント（又はインエクスペンシブ）・ディスク（ＲＡＩＤシステム））のうち少なくともいくつかなどに対応する。典型的に、物理ボリュームのロケーションは、それにアクセスするために使用されるアドレス（の範囲）が一般に一定のままであるという点で、変わらない。
【００３５】
対照的に、仮想ボリュームは、異なる物理ストレージ装置の全く異なる部分の集合体にわたり記憶される。仮想ボリュームは、異なる物理ストレージ装置ロケーションの異なる利用可能部分、例えば、ディスク２２４、２２６、及び／又は２２８の各々からのいくらかの利用可能な領域などの、集合であってもよい。仮想ボリュームはいずれか１つの特定ストレージ装置に「結び付けられ」ないため、仮想ボリュームは抽象化又は仮想化のレイヤを含むと言うことができ、上記抽象化又は仮想化のレイヤは、仮想ボリュームがいくつかの観点でリサイズされ、かつ／あるいは柔軟であることを可能にすることが十分理解されよう。
【００３６】
さらに、仮想ボリュームは、１つ以上の論理ユニット番号（ＬＵＮ）２３８、ディレクトリ２３６、Ｑｔｒｅｅ２３５、及びファイル２４０を含むことができる。とりわけ、これらの特徴、より詳細にはＬＵＮは、例えば、データが記憶される全く異なるメモリロケーションが識別され、データストレージユニットとしてグループ化されることを可能にする。そのようなものとして、ＬＵＮ２３８は、仮想ボリューム内のデータが集合体の範囲内で記憶される仮想ディスク又はドライブを構成するものとして特徴付けられてもよい。例えば、ＬＵＮは、仮想ドライブとしてしばしば参照され、それにより、これらは、ボリュームの様々な部分に記憶されたデータブロックを実際には含むと同時に、汎用コンピュータからのハードドライブをエミュレートする。
【００３７】
一実施形態において、１つ以上のデータストレージ装置２３４が１つ以上の物理ポートを有することができ、各物理ポートはターゲットアドレス（例えば、ＳＣＳＩターゲットアドレス）を割り当てできる。データストレージ装置に記憶されたそれぞれのボリュームを表すために、データストレージ装置上のターゲットアドレスが使用されて、１つ以上のＬＵＮ２３８を識別することができる。ゆえに、例えば、ノード２０２がストレージアダプタ２１４を通してボリューム２３０、２３２に接続するとき、ノード２０２とボリュームの基礎となる１つ以上のＬＵＮ２３８との間の接続が作成される。
【００３８】
一実施形態において、それぞれのターゲットアドレスは複数のＬＵＮを識別することができ、それにより、ターゲットアドレスは複数のボリュームを表すことができる。例えば、ストレージアダプタ２１４内の回路及び／又はソフトウェアとして、又はメモリ２０６に存在しプロセッサ２０４により実行される実行可能コードとして実現できるＩ／Ｏインターフェースは、１つ以上のＬＵＮ２３８を識別する１つ以上のアドレスを使用することによりボリューム２３０に接続することができる。
【００３９】
ストリームを使用してデータを割り振りエリアに選択的に記憶することは、データストレージシステム２００に対して実現されてもよいことが十分理解され得る。一例において、割り振りエリアは、１つ以上のデータストレージ装置２３４内に定義されてもよい。データは、ストリームを通して１つ以上のデータストレージ装置２３４に選択的に送信されてもよい。ストリームは、こうしたストリームが処理されるべき割り振りエリアに対応するストリーム識別子でタグ付けされてもよい。ストリームを使用してデータを割り振りエリアに選択的に記憶することは、任意タイプのコンピューティング環境に対して及び／又は該コンピューティング環境の間で実現されてもよく、物理装置（例えば、ノード２０２、ホスト装置２０５、デスクトップコンピュータ、タブレット、ラップトップ、ウェアラブルデバイス、モバイルデバイス、ストレージ装置、サーバ等）及び／又は（例えば、ノード２０２及び／又はホスト装置２０５に対してリモートの）クラウドコンピューティング環境の間で移転可能であってもよいことが十分理解され得る。
【００４０】
ストリームを使用してデータを割り振りエリアに選択的に記憶する一実施形態が、図３の例示的な方法３００により示される。３０２において、ストレージ装置の第１の領域が、第１の割り振りエリアとして定義され得る。ストレージ装置の第２の領域が、第２の割り振りエリアとして定義されてもよい。ストレージ装置に対して任意数の割り振りエリアが定義されてもよく、かつ／あるいは単一の割り振りエリアが任意の数及びタイプのストレージ装置にわたり及んでもよい（例えば、第１の記憶媒体の第１の部分、第２の記憶媒体の第２の部分等に及ぶ割り振りエリア、ＲＡＩＤ構成の第１のディスク、第２のディスク、及びパリティディスクに及ぶ割り振りエリアなど）ことが十分理解され得る。ストレージ装置は、ソリッドステート装置、フラッシュ装置、区分された（partitioned）ストレージ装置、論理アドレス空間の物理アドレス空間への直接のマッピングがないストレージ装置、ストレージ装置のストレージを仮想化する仮想化レイヤなどの間接レイヤにより使用されるストレージ装置などの、任意タイプのストレージ装置を含んでもよい。一例において、割り振りエリアは、ソリッドステート装置などのストレージ装置の消去ブロック単位の整数倍として定義されてもよい（例えば、データは、複数のセルを含むページ単位でフラッシュメモリに書き込まれ、フラッシュメモリは、複数のページ単位を含むブロック単位と呼ばれるより大きい単位でのみ消去できる）。
【００４１】
３０４において、（例えば、ファイルシステムにより）ストレージ装置とのネゴシエーション（negotiation）が容易にされ、第１のストリーム識別子がストレージ装置に対して第１のインジケータとして使用されることを規定して、第１のストリーム識別子でタグ付けされたストリームが第１の割り振りエリアを使用して処理されるべきであると示し得る（例えば、第１のストリーム識別子でタグ付けされたストリームのデータはストレージ装置により第１の割り振りエリア内に記憶されるべきであり、他の割り振りエリア内に記憶されるべきでない）。３０６において、（例えば、ファイルシステムにより）ストレージ装置とのネゴシエーションが容易にされ、第２のストリーム識別子がストレージ装置に対して第２のインジケータとして使用されることを規定して、第２のストリーム識別子でタグ付けされたストリームが第２の割り振りエリアを使用して処理されるべきであると示し得る。こうして、ストレージ装置は、ファイルシステムによりストリームにタグ付けするために使用されるストリーム識別子に対応する割り振りエリアを使用してこうしたストリームを処理することに同意する。
【００４２】
３０８において、特定の特性を有するデータが特定の割り振りエリアを使用して処理されるべきであると規定するポリシーが維持され（maintained）得る。例えば、ポリシーは、第１の特性を有するデータが第１の割り振りエリアを使用して処理されるべきである（例えば、こうしたデータは、第１の割り振りエリアから記憶され、読み出されるべきである）こと、及び第２の特性を有するデータが第２の割り振りエリアを使用して処理されるべきである（例えば、こうしたデータは、第２の割り振りエリアから記憶され、読み出されるべきである）ことを規定してもよい。単一のポリシーが単一の特性に対して又は複数の特性に対して規定されてもよく（例えば、ポリシーは、ホットデータをどこに記憶するか、コールドデータをどこに記憶するか、ランダムにアクセスされるデータをどこに記憶するか、順次アクセスされるデータをどこに記憶するかを規定する）、かつ／あるいは１つ以上のポリシーが個々の特性又は特性のペア（例えば、ホットデータ及びコールドデータに対する第１のポリシー、ユーザデータ及びメタデータに対する第２のポリシー等）に対して規定されてもよいことが十分理解され得る。ポリシーは、こうしたポリシーが適用されるべき割り振りエリアに割り当てられてもよい。ポリシーは、こうしたポリシーが適用されるべき割り振りエリアに対するストリーム識別子を規定してもよい。
【００４３】
一例において、第１の特性はユーザデータ特性に対応してもよく、第２の特性はメタデータ特性に対応してもよい（例えば、メタデータはユーザデータよりさらに頻繁に上書きされることがあり、ゆえに異なるアクセスパターンを有し、別個に記憶されるべきである）。別の例において、第１の特性は第１のデータ頻度アクセス（data  frequency  access）特性に対応してもよく、第２の特性は第２のデータ頻度アクセス特性に対応してもよい（例えば、ホットデータなどのより頻繁にアクセスされるデータは、コールドデータなどのより頻繁にアクセスされないデータと異なる割り振りエリア内に記憶されてもよい）。別の例において、第１の特性は順次アクセス特性に対応してもよく、第２の特性はランダムアクセス特性に対応してもよい（例えば、順次アクセスされるデータは、ランダムにアクセスされるデータと異なる割り振りエリア内に記憶されてもよい）。別の例において、第１の特性は第１のストレージ集合体特性に対応してもよく、第２の特性は第２のストレージ集合体特性に対応してもよい（例えば、第１のクライアントに提供される第１のストレージ集合体のデータは、第２のクライアントに提供される第２のストレージ集合体のデータと異なる割り振りエリア内に記憶されてもよい）。ポリシー内で様々な他の特性が定義されてもよいことが十分理解され得る。
【００４４】
一例において、ストレージ装置に対して割り振りエリアのセットが定義される。割り振りエリアのセットのうちの割り振りエリアにポリシーが割り当てられてもよい。割り振りエリアのセットは、ポリシー、各割り振りエリアの利用可能な空き領域の量、及び／又は他のソート基準に基づいて、割り振りエリアのソートされたセットとして動的にソートされる（例えば、書き込みストリームが処理のためにファイルシステムにより受信されたとき、オンザフライで（on-the-fly）ソートされ、かつ／あるいは再ソートされる）（例えば、ユーザデータが第１の割り振りエリア及び第５の割り振りエリア内に記憶できる場合、より多くの利用可能ストレージ領域を有する割り振りエリアがより高くランク付けされ、ゆえに使用されてもよい）。ポリシーのセットは、データの特性に基づいてデータをストリームに割り当てるために使用される。ポリシーのセットは、適切なストリーム識別子でストリームにタグ付けするためにも使用される（例えば、ポリシーは、メタデータが第３の割り振りエリア内に記憶されるべきであると示してもよく、ゆえに、ポリシーは、書き込みストリームのメタデータをストリームに割り当てるために使用され、ポリシーは、該ストリームに第３の割り振りエリアのストリーム識別子でタグ付けするために使用される）。
【００４５】
３１０において、ストレージ装置に書き込むべきデータの書き込みストリームが受信される。一例において、ファイルシステムが書き込みストリームを受信する。データの特性が識別されてもよく、例えば、ユーザデータ、メタデータ、及び／又はランダムにアクセスされるデータなどの他タイプのデータなどである。割り振りエリアのソートセットが評価されて、ユーザデータ及びメタデータを処理するために使用されるべき割り振りエリアを識別してもよい。例えば、ポリシーが、第１の割り振りエリア及び／又は他の割り振りエリアがユーザデータを処理するために使用されるべきであると規定してもよい。上記ポリシー又は異なるポリシーが、第２の割り振りエリア及び／又は他の割り振りエリアがメタデータを処理するために使用されるべきであると規定してもよい。したがって、ターゲット割り振りエリアは、ユーザデータを記憶するための割り振りエリアのソートセットから、ターゲット割り振りエリアがユーザデータに関して閾を超えるソートランクを有すること（例えば、第１の割り振りエリアなどの、ユーザデータを記憶するために使用できる最も高いランクの割り振りエリア）に基づいて選択されてもよい。ターゲット割り振りエリアは、メタデータを記憶するための割り振りエリアのソートセットから、ターゲット割り振りエリアがメタデータに関して閾を超えるソートランクを有すること（例えば、第２の割り振りエリアなどの、メタデータを記憶するために使用できる最も高いランクの割り振りエリア）に基づいて選択されてもよい。
【００４６】
３１２において、書き込みストリームのデータは、対応する割り振りエリアのストリーム識別子でタグ付けされたストリームを通してストレージ装置に提供され得る。例えば、ユーザデータは第１のストリームに割り当てられてもよい。第１のストリームは、ユーザデータを処理するために使用されるべき第１の割り振りエリアに対する第１のストリーム識別子でタグ付けされてもよい。こうして、ストレージ装置が第１のストリームを受信したとき、ストレージ装置は、第１のストリーム識別子に基づいて第１の割り振りエリアを使用して第１のストリームのユーザデータを処理することがわかる。メタデータは第２のストリームに割り当てられてもよい。第２のストリームは、メタデータを処理するために使用されるべき第２の割り振りエリアに対する第２のストリーム識別子でタグ付けされてもよい。こうして、ストレージ装置が第２のストリームを受信したとき、ストレージ装置は、第２のストリーム識別子に基づいて第２の割り振りエリアを使用して第２のストリームのメタデータを処理することがわかる。
【００４７】
割り振りエリアは、閾未満の量の空き領域を有するように決定されてもよい。一例において、割り振りエリアのポリシーは終了させることができる（例えば、自動的に終了でき、あるいは、ポリシーを終了させることについて示唆がストレージ管理者に提供されてもよい）。別の例において、割り振りエリアは、空き領域の量を増加させるように再定義されてもよく、ポリシーは、割り振りエリアに対して保持されてもよい。
【００４８】
同様のタイプのデータを一緒に選択的に記憶し、同様でないタイプのデータを別個の割り振りエリアに記憶することは、フラグメンテーションを低減させ、書き込み増幅を低減させ、記憶効率を増加させる。
【００４９】
図４は、ストリームを使用してデータを割り振りエリアに選択的に記憶するシステム４００の一例を示す。割り振りエリアのセットが、ストレージ装置４１６に対して、例えばストレージ装置４１６の記憶媒体４１８に対して規定され得る。例えば、第１の割り振りエリア４２０が、仮想ブロック番号（０）から仮想ブロック番号（４９）までなどの第１のブロック範囲を包含するものとして定義されてもよい。第２の割り振りエリア４２２が、仮想ブロック番号（５０）から仮想ブロック番号（９９）までなどの第２のブロック範囲を包含するものとして定義されてもよい。第３の割り振りエリア４２４が、仮想ブロック番号（１００）から仮想ブロック番号（１４９）までなどの第３のブロック範囲を包含するものとして定義されてもよい。割り振りエリアは互いに同じ又は異なるサイズを有してもよく、ストレージ装置４１６のストレージ領域全体又はストレージ領域の一部のみが割り振りエリアを定義するために使用されてもよいことが十分理解され得る。こうして、任意数の割り振りエリアがストレージ装置４１６に対して定義され得る。
【００５０】
ポリシー４０２は、割り振りエリアに割り当てられ得る。一例において、第１のポリシー４０４が、第１の割り振りエリア４２０及び／又は他の割り振りエリアに割り当てられてもよい。第１のポリシー４０４は、ホットデータ（例えば、閾頻度を超えてアクセスされるデータ）が第１の割り振りエリア４２０及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。第２のポリシー４０６が、第２の割り振りエリア４２２及び／又は他の割り振りエリアに割り当てられてもよい。第２のポリシー４０６は、コールドデータ（例えば、閾頻度未満でアクセスされるデータ）が第２の割り振りエリア４２２及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。
【００５１】
第３のポリシー４０８が、第３の割り振りエリア４２４及び／又は他の割り振りエリアに割り当てられてもよい。第３のポリシー４０８は、ユーザデータ（例えば、ユーザテキストドキュメント）が第３の割り振りエリア４２４及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。第４のポリシー４１０が、第４の割り振りエリア及び／又は他の割り振りエリアに割り当てられてもよい。第４のポリシー４１０は、メタデータ（例えば、ボリュームサイズ情報、パートナーストレージコントローラ情報、複製ポリシー情報、バックアップポリシーなどの、ストレージファイルシステムにより維持されるメタデータ）が第４の割り振りエリア及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。
【００５２】
第５のポリシー４１２が、第５の割り振りエリア及び／又は他の割り振りエリアに割り当てられてもよい。第５のポリシー４１２は、ランダムアクセスデータが第５の割り振りエリア及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。第６のポリシー４１４が、第６の割り振りエリア及び／又は他の割り振りエリアに割り当てられてもよい。第６のポリシー４１４は、順次アクセスされるデータが第６の割り振りエリア及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。
【００５３】
第７のポリシーが、第７の割り振りエリア及び／又は他の割り振りエリアに割り当てられてもよい。第７のポリシーは、第１の集合体のデータが第７の割り振りエリア及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。第８のポリシーが、第８の割り振りエリア及び／又は他の割り振りエリアに割り当てられてもよい。第８のポリシーは、第２の集合体のデータが第８の割り振りエリア及び／又は他の割り振りエリア内に記憶されるべきであると規定してもよい。
【００５４】
任意数のポリシーが単一の割り振りエリアに割り当てられてもよく（例えば、第９のポリシーが、ホットデータが第７の割り振りエリア内に記憶できることを規定し、第１０のポリシーが、メタデータが第７の割り振りエリア内に記憶できることを規定する）、一ポリシーが２つ以上の割り振りエリアに割り当てられてもよい（例えば、ポリシーが、ホットデータが第１の割り振りエリア４２０、第７の割り振りエリア、及び第９の割り振りエリア内に記憶できることを規定する）ことが十分理解され得る。さらに、一ポリシーが、単一の分類のデータ（例えば、ホットデータ）に適用されてもよく、あるいは複数の分類のデータに適用されてもよい（例えば、ポリシーが、ホットデータをどこに記憶するか、コールドデータをどこに記憶するか、ユーザデータをどこに記憶するか等を規定する）ことが十分理解され得る。
【００５５】
図５は、ストリームを使用してデータを割り振りエリアに選択的に記憶するシステム５００の一例を示す。割り振りエリアは、複数のストレージ装置５０２にわたり定義され得る。例えば、第１の割り振りエリア５１２が、第１のストレージ装置５０４、第２のストレージ装置５０６、第３のストレージ装置５０８、パリティストレージ装置５１０、及び／又は他のストレージ装置（例えば、ＲＡＩＤ構成を有するストレージ装置）の第１の部分にわたり定義されてもよい。こうして、第１の割り振りエリア５１２に関連づけられたストリーム識別子でタグ付けされたストリーム内のデータは、第１の割り振りエリア５１２内に記憶され、例えば、第１のストレージ装置５０４、第２のストレージ装置５０６、第３のストレージ装置５０８、及び／又はパリティストレージ装置５１０のうち１つ以上にわたり記憶され得る。
【００５６】
第２の割り振りエリア５１４が、第１のストレージ装置５０４、第２のストレージ装置５０６、第３のストレージ装置５０８、パリティストレージ装置５１０、及び／又は他のストレージ装置の第２の部分にわたり定義されてもよい。こうして、第２の割り振りエリア５１４に関連づけられたストリーム識別子でタグ付けされたストリーム内のデータは、第２の割り振りエリア５１４内に記憶され、例えば、第１のストレージ装置５０４、第２のストレージ装置５０６、第３のストレージ装置５０８、及び／又はパリティストレージ装置５１０のうち１つ以上にわたり記憶され得る。
【００５７】
第３の割り振りエリア５１６が、第１のストレージ装置５０４、第２のストレージ装置５０６、第３のストレージ装置５０８、パリティストレージ装置５１０、及び／又は他のストレージ装置の第３の部分にわたり定義されてもよい。こうして、第３の割り振りエリア５１６に関連づけられたストリーム識別子でタグ付けされたストリーム内のデータは、第３の割り振りエリア５１６内に記憶され、例えば、第１のストレージ装置５０４、第２のストレージ装置５０６、第３のストレージ装置５０８、及び／又はパリティストレージ装置５１０のうち１つ以上にわたり記憶され得る。
【００５８】
任意数の割り振りエリアが、単一のストレージ装置に対して、又は任意数のストレージ装置にわたり定義されてもよいことが十分理解され得る。さらに、割り振りエリアが、単一のストレージ装置内に、又は任意数のストレージ装置にわたり定義されてもよいことが十分理解され得る。
【００５９】
ストリームを使用してデータを割り振りエリアに選択的に記憶する一実施形態が、図６の例示的な方法６００により示される。６０２において、第１のデータ及び第２のデータが受信され得る。例えば、ストレージコントローラのファイルシステムが、クライアントアプリケーションから第１のデータ及び第２のデータを含む書き込みストリームを受信してもよい。一例において、ファイルシステムは、第１のデータ及び第２のデータが書き込まれるべきストレージ装置のデータを仮想化する仮想化レイヤなどの、間接レイヤに関連づけられてもよい。
【００６０】
ポリシーが、第１の特性をユーザデータ特性として、第２の特性をメタデータ特性として、第３の特性をホットデータ特性として、第４の特性をコールドデータ特性などで定義してもよい。６０４において、第１のデータは、ポリシー内に定義された第１の特性を有するものとして識別され得る（例えば、第１のデータは、ユーザデータベース内のユーザデータである）。６０６において、第２のデータは、ポリシー内に定義された第２の特性を有するものとして識別され得る（例えば、第２のデータは、ユーザデータベースの複製を管理するためにストレージコントローラにより使用されるメタデータである）。こうして、第１のデータはユーザデータとして識別され得、第２のデータはメタデータとして識別され得る。
【００６１】
６０８において、第１のデータは第１のストリームに割り当てられる。第１のストリームは、ユーザデータの第１の特性に対してポリシーにより規定された第１のストリーム識別子でタグ付けされる。第１のストリーム識別子は、ユーザデータを記憶するためにポリシーにより定義された、ストレージ装置の第１の割り振りエリアに関連づけられる（例えば、ファイルシステムとストレージ装置とがネゴシエートし（negotiated）て、第１の割り振りエリアを使用して処理されるべきユーザデータのストリームにタグ付けするために第１のストリーム識別子が使用されることを決定していてもよい）。
【００６２】
６１０において、第２のデータは第２のストリームに割り当てられる。第２のストリームは、メタデータの第２の特性に対してポリシーにより規定された第２のストリーム識別子でタグ付けされる。第２のストリーム識別子は、メタデータを記憶するためにポリシーにより定義された、ストレージ装置の第２の割り振りエリアに関連づけられる（例えば、ファイルシステムとストレージ装置とがネゴシエートして、第２の割り振りエリアを使用して処理されるべきメタデータのストリームにタグ付けするために第２のストリーム識別子が使用されることを決定していてもよい）。
【００６３】
６１２において、第１のストリームは、第１のストリームが第１のストリーム識別子でタグ付けされていることに基づいて、ユーザデータの第１のデータを第１の割り振りエリアに書き込むためにストレージ装置に送信される。こうして、ユーザデータは、ユーザデータに対して指定されていない他の割り振りエリア内でなく、第１の割り振りエリア内に選択的に記憶され得る。
【００６４】
６１４において、第２のストリームは、第２のストリームが第２のストリーム識別子でタグ付けされていることに基づいて、メタデータの第２のデータを第２の割り振りエリアに書き込むためにストレージ装置に送信される。こうして、メタデータは、メタデータに対して指定されていない他の割り振りエリア内でなく、第２の割り振りエリア内に選択的に記憶され得る。
【００６５】
図７は、ストリームを使用してデータを割り振りエリアに選択的に記憶するシステム７００の一例を示す。ファイルシステム７０２又は任意の他のハードウェア若しくはソフトウェアモジュールが、ストレージ装置７１２内の１つ以上の割り振りエリアを定義し得る。例えば、第１の割り振りエリア７１４が、ストレージ装置７１２の第１のブロック範囲（例えば、仮想ブロック番号の第１の範囲）に対して定義されてもよい。第２の割り振りエリア７１６が、ストレージ装置７１２の第２のブロック範囲（例えば、仮想ブロック番号の第２の範囲）に対して定義されてもよい。第３の割り振りエリア７１８が、ストレージ装置７１２の第３のブロック範囲（例えば、仮想ブロック番号の第３の範囲）に対して定義されてもよい。こうして、複数の割り振りエリアが、ストレージ装置７１２内に、及び／又は他のストレージ装置にわたり定義されてもよい。
【００６６】
ファイルシステム７０２は、ストレージ装置７１２とネゴシエートして、データのストリームにタグ付けするためにファイルシステム７０２が使用することになるストリーム識別子を決定することができる。ストリーム識別子は、ストリーム識別子でタグ付けされたストリームのデータが対応する割り振りエリア内で処理される（例えば、記憶される）べきであるという、ストレージ装置７１２へのインジケータになる。例えば、第１のストリーム識別子が第１の割り振りエリア７１４に対して規定されてもよい。第２のストリーム識別子７２４が第２の割り振りエリア７１６に対して規定されてもよい。第３のストリーム識別子７２６が第３の割り振りエリア７１８に対して規定されてもよい。
【００６７】
ファイルシステム７０２は、ポリシー７０４を割り振りエリアに割り当てることができる。例えば、ポリシーが、第２の割り振りエリア７１６及び／又は第３の割り振りエリア７１８に割り当てられてもよい。ポリシーは、ホットデータ（例えば、閾より高い頻度でアクセスされるデータ）が第２の割り振りエリア７１６内に記憶されるべきであり、ホットデータのストリームが第２の割り振りエリア７１６に対して規定された第２のストリーム識別子７２４でタグ付けされべきであると規定してもよい。こうして、ホットデータは、他の割り振りエリア内でなく、第２の割り振りエリア７１６内に記憶される／含まれることになる。ゆえに、ホットデータへの頻繁なアクセスから結果として生じるフラグメンテーションが第２の割り振りエリア７１６内に含まれ得、他の割り振りエリアにさらなるフラグメンテーションをもたらさないことになる。
【００６８】
ポリシーは、コールドデータ（例えば、閾未満の頻度でアクセスされるデータ）が第３の割り振りエリア７１８内に記憶されるべきであり、コールドデータのストリームが第３の割り振りエリア７１８に対して規定された第３のストリーム識別子７２６でタグ付けされるべきであると規定してもよい。こうして、コールドデータは、他の割り振りエリア内でなく、第３の割り振りエリア７１８内に記憶される／含まれることになる。ゆえに、有効なデータを宛先セルから空きセルに移動させ、それにより新しいデータをこれら宛先セルに書き込みできるガベージコレクション手法及び／又は他の手法が、コールドデータを不必要にあちこちに移動させない。
【００６９】
割り振りエリアは、割り振りエリアのソートセットへソートされ得る。割り振りエリアは、ポリシー７０４、利用可能な空き領域、及び／又は他のソート基準に基づいてソートされてもよい。例えば、ポリシーが、ランダムにアクセスされるデータが第２の割り振りエリア７１６及び第３の割り振りエリア７１８内に記憶できることを規定してもよい。ランダムにアクセスされるデータの書き込みストリームが受信されたとき、割り振りエリアは、ランダムにアクセスされるデータをストレージ装置７１２内に記憶する現在のシナリオに関連して動的にソートされてもよい。第１の割り振りエリア７１４は、第１の割り振りエリア７１４でなく第２の割り振りエリア７１６及び第３の割り振りエリア７１８がランダムにアクセスされるデータを記憶するために使用されるべきであるとポリシーが規定することに基づいて、第２の割り振りエリア７１６より低く、及び第３の割り振りエリア７１８より低くランク付けされてもよい。第２の割り振りエリア７１６は、第２の割り振りエリア７１６が第３の割り振りエリア７１８より多くの利用可能な空き領域を有することに基づいて、第３の割り振りエリア７１８より高くランク付けされてもよい。
【００７０】
ファイルシステム７０２は、書き込みストリーム７０６を受信することができる。書き込みストリーム７０６は、ホットデータ７０８（例えば、閾より高い頻度でアクセスされるデータ）、コールドデータ７１０（例えば、閾未満の頻度でアクセスされるデータ）、及び／又は他の特性を有するデータを含んでもよい。ファイルシステム７０２は、ポリシー７０４を利用して、第２の割り振りエリア７１６がホットデータ７０８を記憶するために使用されるべきであると決定する（例えば、割り振りエリアをソートし、最も高いランク付けの割り振りエリアを選択する）ことができる。ファイルシステム７０２は、ホットデータ７０８を第１のストリーム７２０に割り当ててもよい。ファイルシステム７０２は、第１のストリーム７２０に第２の割り振りエリア７１６の第２のストリーム識別子７２４でタグ付けしてもよい。こうして、第１のストリーム７２０は、ストレージ装置７１２に提供される。ストレージ装置７１２は、第１のストリーム７２０が第２のストリーム識別子７２４でタグ付けされていることに基づいて、第２の割り振りエリア７１６を使用して第１のストリーム７２０のホットデータ７０８を処理することになる。
【００７１】
ファイルシステム７０２は、ポリシー７０４を利用して、第３の割り振りエリア７１８がコールドデータ７１０を記憶するために使用されるべきであると決定する（例えば、割り振りエリアをソートし、最も高いランク付けの割り振りエリアを選択する）ことができる。ファイルシステム７０２は、コールドデータ７１０を第２のストリーム７２２に割り当ててもよい。ファイルシステム７０２は、第２のストリーム７２２に第３の割り振りエリア７１８の第３のストリーム識別子７２６でタグ付けしてもよい。こうして、第２のストリーム７２２は、ストレージ装置７１２に提供される。ストレージ装置７１２は、第２のストリーム７２２が第３のストリーム識別子７２６でタグ付けされていることに基づいて、第３の割り振りエリア７１８を使用して第２のストリーム７２２のコールドデータ７１０を処理することになる。
【００７２】
さらに別の実施形態には、本明細書に提示される手法の１つ以上を実現するように構成されたプロセッサ実行可能命令を含むコンピュータ読取可能媒体が含まれる。これら方法で考えられるコンピュータ読取可能媒体又はコンピュータ読取可能装置の一例示的な実施形態が図８に示され、実現例８００は、コンピュータ読取可能データ８０６が符号化されたコンピュータ読取可能媒体８０８、例えば、コンパクトディスクレコーダブル（ＣＤ‐Ｒ）、デジタル多用途ディスクレコーダブル（ＤＶＤ‐Ｒ）、フラッシュドライブ、ハードディスクドライブのプラッタ等を含む。このコンピュータ読取可能データ８０６、例えばゼロ又はイチのうち少なくとも一方を含むバイナリデータなどは、本明細書に説明される原理の１つ以上に従い動作するように構成されたプロセッサ実行可能コンピュータ命令８０４を同様に含む。いくつかの実施形態において、プロセッサ実行可能コンピュータ命令８０４は、方法８０２、例えば、図３の例示的な方法３００のうち少なくともいくつか及び／又は図６の例示的な方法６００のうち少なくともいくつかなどを実行するように構成される。いくつかの実施形態において、プロセッサ実行可能コンピュータ命令８０４は、システム、例えば、図４の例示的なシステム４００のうち少なくともいくつか、図５の例示的なシステム５００のうち少なくともいくつか、及び／又は図７の例示的なシステム７００のうち少なくともいくつかなどを実現するように構成される。多くのこうしたコンピュータ読取可能媒体が、本明細書に提示される手法に従い動作するように企図される。
【００７３】
本明細書に記載される処理、アーキテクチャ、及び／又は手順は、ハードウェア、ファームウェア、及び／又はソフトウェアにおいて実現できることが十分理解されよう。さらに、本明細書に記載される対策は、ストレージシステムとして具現化され又はストレージシステムを含む、スタンドアロンコンピュータ又はその一部を含む、任意タイプの専用コンピュータ（例えば、ファイルホスト、ストレージサーバ、及び／又はストレージ供給アプライアンス）及び／又は汎用コンピュータに適用されてもよいことが十分理解されよう。さらに、本明細書における教示は、様々なストレージシステムアーキテクチャに対して構成でき、これらに限られないが、ネットワークアタッチトストレージ環境及び／又はストレージエリアネットワーク、並びにクライアント又はホストコンピュータに直接アタッチされたディスクアセンブリが含まれる。ストレージシステムは、したがって、ストレージ機能を実行するように構成され他の機器又はシステムに関連づけられた任意のサブシステムに追加でこうした配置を含むように広く取られるべきである。
【００７４】
いくつかの実施形態において、本開示において記載及び／又は例示された方法は、全体的又は部分的にコンピュータ読取可能媒体上に実現されてもよい。コンピュータ読取可能媒体は、本明細書に提示される方法の１つ以上を実現するように構成されたプロセッサ実行可能命令を含むことができ、コンピュータシステムによりその後読み出せるこのデータを記憶する任意の機構を含んでもよい。コンピュータ読取可能媒体の例には、（ハード）ドライブ（例えば、ネットワークアタッチトストレージ（ＮＡＳ）を介してアクセス可能）、ストレージエリアネットワーク（ＳＡＮ）、揮発及び不揮発メモリ、例えば、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、及び／又はフラッシュメモリ、コンパクトディスク読取専用メモリ（ＣＤ‐ＲＯＭ）、ＣＤ‐Ｒ、コンパクトディスクリライタブル（ＣＤ‐ＲＷ）、ＤＶＤ、カセット、磁気テープ、磁気ディスクストレージ、光学又は非光学データストレージ装置、及び／又はデータを記憶するために使用できる任意の他の媒体が含まれる。
【００７５】
対象事項が構造的特徴又は方法論動作に固有の言語で記載されたが、別記の特許請求の範囲に定義される対象事項は必ずしも上記された特定の特徴又は動作に限定されないことが理解されるべきである。むしろ、上記された特定の特徴及び動作は、請求項のうち少なくともいくつかを実現する例示的な形式として開示される。
【００７６】
様々な実施形態動作が本明細書において提供される。動作のうちいくつか又はすべてが記載された順序は、これら動作が必ず順序依存であることを示すようにみなされるべきではない。代替的な順序付けが、本説明の恩恵を考慮して十分理解されよう。さらに、すべての動作が必ずしも本明細書に提供された各実施形態に存在するわけではないことが理解されよう。また、いくつかの実施形態においてすべての動作が必要なわけではないことが理解されよう。
【００７７】
さらに、請求される対象事項は、コンピュータを制御して開示された対象事項を実現するためのソフトウェア、ファームウェア、ハードウェア、又はこれらの任意の組み合わせを生み出すように標準のアプリケーション又はエンジニアリング手法を用いて方法、装置、又は製造品として実現される。本明細書において用いられるときの用語「製造品」は、任意のコンピュータ読取可能装置、キャリア、又は媒体からアクセス可能なコンピュータアプリケーションを包含することが意図される。当然ながら、請求される対象事項の範囲又は主旨から逸脱することなくこの構成に対して多くの変更が行われてもよい。
【００７８】
本出願において用いられるとき、用語「コンポーネント」、「モジュール」、「システム」、「インターフェース」などは一般に、コンピュータ関連エンティティ、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアを参照することが意図される。例えば、コンポーネントが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、アプリケーション、又はコンピュータを含む。例示として、コントローラ上で実行するアプリケーションとコントローラとの双方がコンポーネントであり得る。実行のプロセス又はスレッド内に存在する１つ以上のコンポーネントと一コンポーネントとが、１つのコンピュータ上に局所化されてもよく、あるいは２つ以上のコンピュータ間に分散されてもよい。
【００７９】
さらに、「例示的」は本明細書において、必ずしも利点としてでなく、例、事例、例示等の役割を果たすことを意味するために用いられる。本出願において用いられるとき、「又は」は、排他的な「又は」でなく包含的な「又は」を意味することが意図される。さらに、本出願において用いられる一の（“a”、“an”）は一般に、単数形に向けられるように別段指定されるか又は文脈から明らかかでない限り、「１つ以上」を意味するようにみなされるべきである。また、Ａ及びＢのうち少なくとも１つ及び／又は同様のものは一般に、Ａ、又はＢ、及び／又はＡ及びＢの双方を意味する。さらに、「含める」、「有している」、「有する」、「備える」、又はこれらの変形が用いられる範囲で、こうした用語は、用語「含む」と同様に包含的であることが意図される。
【００８０】
請求される対象事項の範囲又は主旨から逸脱することなく多くの変更が本開示に対して行われてもよい。別段指定されない限り、「第１の」、「第２の」などは、時間的態様、空間的態様、順序付け等を示すことは意図されない。むしろ、こうした用語は、特徴、要素、アイテム等のための、識別子、名前等として専ら用いられる。例えば、第１の情報セット及び第２の情報セットは一般に、情報セットＡ及び情報セットＢ、又は２つの異なる若しくは２つの同一の情報セット、又は一の同じ情報セットに対応する。
【００８１】
また、本開示は１つ以上の実現例に関して図示され記載されたが、本明細書及び添付図面を読んで理解した当業者は同等の修正及び変更に気づくであろう。本開示は、すべてのこうした変更及び修正を含み、下記の特許請求の範囲によってのみ限定される。特に、上記されたコンポーネント（例えば、要素、リソース等）により実行される様々な機能に関し、こうしたコンポーネントを記載するために用いられる用語は、別段示されない限り、開示された構造に対して構造的に同等でないとしても、（例えば、機能的に同等である）記載されたコンポーネントの指定された機能を実行する任意のコンポーネントに対応することが意図される。さらに、開示の特定の特徴がいくつかの実現例のうち１つのみに関して開示されている可能性があるが、こうした特徴は、所望され得る他の実現例の１つ以上の他の特徴、及び任意の所与の又は特定の適用のための利点と組み合わせられてもよい。
【図１】
2020511714.tif 000003
【図２】
2020511714.tif 000004
【図３】
2020511714.tif 000005
【図４】
2020511714.tif 000006
【図５】
2020511714.tif 000007
【図６】
2020511714.tif 000008
【図７】
2020511714.tif 000009
【図８】
2020511714.tif 000010
【国際調査報告】
2020511714.tif 000011
2020511714.tif 000012