(57)【特許請求の範囲】
【請求項１】
システムであって、
各々前記システムの内部に供えられた複数の物理的記憶装置と複数のポートを備える物理的スイッチ部分とを有する物理的構成要素を有するストレージサブシステムと、
専用のポイントツーポイントリンクを介して前記複数のポートのうち専用ポートに連結されたホストと
を有し、
各物理的記憶装置は、
少なくとも１つのストレージ領域と、
前記システム内におけるピアツーピア接続を介して前記複数のポートの各ポートに連結できる少なくとも１つのポートと、
前記物理的記憶装置が、前記ストレージサブシステムの１若しくはそれ以上の一次エージェントおよび１若しくはそれ以上の二次エージェントのうちの少なくとも１つのエージェントとして動作することを可能にするエージェント論理であって、各一次エージェントは、ホストが開始したストレージアクセス要求を受け付け、サブ要求を生成し、且つサブステータスを蓄積することができ、各二次エージェントは、前記サブ要求のうち少なくとも１つを受け付け、前記サブステータスのうちの少なくとも１つを生成することができるものである、前記エージェント論理と
を有し、
前記ストレージサブシステムは、１若しくはそれ以上の論理記憶装置を動作させることができ、各論理記憶装置により、前記ホストは、前記一次エージェントのうちの１つの一次エージェントおよび前記二次エージェントのうちの少なくとも１つの二次エージェントに対応する前記物理的記憶装置にわたって分散されたストレージ領域の集約体に、単一の論理インターフェースを介してアクセスすることが可能となるものである
システム。
【請求項２】
請求項１記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、少なくとも一部の場合、前記一次エージェントのうちの少なくとも１つとして動作し、少なくとも一部の場合、前記二次エージェントのうちの少なくとも１つとして動作することを可能にする設定可能性（コンフィギュアビリティ）論理を有するものであるシステム。
【請求項３】
請求項１記載のシステムにおいて、さらに
前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントのうちの少なくとも１つ、および前記二次エージェントのうちの少なくとも１つとして、並行して動作することを可能にする並行性論理を有するものであるシステム。
【請求項４】
請求項１記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントおよび前記二次エージェントのうちの１つの専用エージェントとして動作することを可能にする専用エージェント論理を有するものであるシステム。
【請求項５】
請求項１記載のシステムにおいて、さらに、
前記論理記憶装置のうちの第１の論理記憶装置は、前記一次エージェントのうちの少なくとも第１の一次エージェントと、１若しくはそれ以上の前記二次エージェントとを有し、
前記物理的スイッチ部分は、前記第１の一次エージェントと各前記二次エージェントとの間で、ホストから遮蔽されたピアツーピア通信を可能にするものである
システム。
【請求項６】
方法であって、
ホストに接続された装置内で、一次エージェントとして第１の記憶装置を動作させ、１若しくはそれ以上の二次エージェントとして少なくとも１つの前記装置内の第２の記憶装置を動作させる工程であって、前記一次および二次エージェントの各記憶装置は、それぞれ少なくとも１つのストレージ領域を有するものである、前記動作させる工程と、
前記一次エージェントが論理インターフェースを提供する工程であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散されたストレージ領域の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストから送信され、前記一次エージェントにより受け付けれられるストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを含むものである、前記提供する工程と、
前記一次エージェントが、１若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分にピアツーピア接続により転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される全体的なステータスの各々を算出する工程と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する工程と
を有する方法。
【請求項７】
請求項６記載の方法において、さらに、
前記一次エージェントが、前記一次および二次エージェントの前記ストレージ領域に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する工程と、
前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する工程と、
前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ領域に相当する部分を除外した各々の記憶容量を報告する工程と
を有するものである方法。
【請求項８】
請求項６記載の方法において、さらに、
前記ホストが記憶容量について前記二次エージェントのうち特定の１つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する工程を有するものである方法。
【請求項９】
請求項６記載の方法において、さらに、
ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する工程
を有し、
前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスを有するものである
方法。
【請求項１０】
請求項９記載の方法において、
前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して冗長性情報を交換する工程を有するものである方法。
【請求項１１】
ホストに接続された装置であって、
一次エージェントとして第１の記憶装置を動作させ、１若しくはそれ以上の二次エージェントとして少なくとも第２の記憶装置を動作させる手段であって、前記一次および二次エージェントの各記憶装置は、前記装置内にあって互いにピアツーピア接続され、それぞれ少なくとも１つのストレージ領域を有するものである、前記動作させる手段と、
前記一次エージェントが論理インターフェースを提供する手段であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散されたストレージ領域の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストから送信され、前記一次エージェントにより受け付けられたストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを有するものである、前記提供する手段と、
前記一次エージェントが、１若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される各全体的なステータスを算出する手段と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する手段と
を有する装置。
【請求項１２】
請求項１１記載の装置において、さらに、
前記一次エージェントが、前記一次および二次エージェントの前記ストレージ領域に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する手段と、
前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する手段と、
前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ領域に相当する部分を除外した各々の記憶容量を報告する手段と
を有する装置。
【請求項１３】
請求項１１記載の装置において、さらに、
前記ホストが記憶容量について前記二次エージェントのうち特定の１つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される前記集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する手段を有するものである装置。
【請求項１４】
請求項１１記載の装置において、さらに、
ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する手段
を有し、
前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスとを有するものである
装置。
【請求項１５】
請求項１４記載の装置において、
前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して交換される冗長性情報を有するものである装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願に基づく優先権の利益は、添付の出願データシート、願書、または送付状（該当する場合）にて主張されている。本願の種別につき許可される範囲内で、本願は、以下の出願および本願権利者の全所有物において、参照により以下を本明細書に組み込むものとする。
【０００２】
２０１０年６月１８日付で出願されたＴｉｍｏｔｈｙ  Ｌａｗｒｅｎｃｅ  Ｃａｎｅｐａ（第一発明者）による米国仮特許出願第６１／３５６，４４３号（整理番号第ＳＦ−１０−０５号）「ＳＣＡＬＡＢＬＥ  ＳＴＯＲＡＧＥ  ＤＥＶＩＣＥＳ」（スケーラブルな記憶装置）
２０１１年６月１６日付で出願されたＴｉｍｏｔｈｙ  Ｌａｗｒｅｎｃｅ  Ｃａｎｅｐａ（第一発明者）による米国仮特許出願第６１／４９７，５２５号（整理番号第  ＳＦ−１０−０５Ｂ号）「ＳＣＡＬＡＢＬＥ  ＳＴＯＲＡＧＥ  ＤＥＶＩＣＥＳ」（スケーラブルな記憶装置）
【背景技術】
【０００３】
記憶装置のアクセスについては、その性能、効率、および実用性を改善する進歩が必要とされている。
【０００４】
本明細書で説明する技術および概念は、公知または周知であるとの明示的な断りがない限り、その文脈、定義、または比較に関するものを含め、これまでに公知であり、または先行技術の一部であったと解釈すべきものではない。この明細書で文献を引用する場合、特許、特許出願、および出版物を含むそれら全ての引用文献は、全ての目的について具体的に組み込まれているかどうかにかかわらず、参照によりその全体が本明細書に組み込まれるものとする。
この出願の発明に関連する先行技術文献情報としては、以下のものがある（国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む）。
（先行技術文献）
（特許文献）
（特許文献１）  米国特許第３，６２３，０１４号明細書
（特許文献２）  米国特許第４，３９６，９８４号明細書
（特許文献３）  米国特許第４，４５５，６０５号明細書
（特許文献４）  米国特許第５，４０４，５０８号明細書
（特許文献５）  米国特許第５，５７４，８６３号明細書
（特許文献６）  米国特許第５，５９４，９００号明細書
（特許文献７）  米国特許第５，６０４，８６２号明細書
（特許文献８）  米国特許第５，６０８，８６５号明細書
（特許文献９）  米国特許第５，６１５，３２９号明細書
（特許文献１０）  米国特許第５，６１９，６４４号明細書
（特許文献１１）  米国特許第５，６２１，８８４号明細書
（特許文献１２）  米国特許第５，６４４，６９８号明細書
（特許文献１３）  米国特許第５，６７３，３８２号明細書
（特許文献１４）  米国特許第５，６８０，５８０号明細書
（特許文献１５）  米国特許第５，６８２，５１３号明細書
（特許文献１６）  米国特許第５，６９２，１５５号明細書
（特許文献１７）  米国特許第５，８７０，５３７号明細書
（特許文献１８）  米国特許第５，８０２，３９４号明細書
（特許文献１９）  米国特許第６，２９２，８７８号明細書
（特許文献２０）  米国特許第６，３８５，６７３号明細書
（特許文献２１）  米国特許第６，４０８，４００号明細書
（特許文献２２）  米国特許第６，４２５，０４９号明細書
（特許文献２３）  米国特許第６，６５４，８３１号明細書
（特許文献２４）  米国特許第６，３０４，９８０号明細書
（特許文献２５）  米国特許出願公開第２０１０／００１１１７７号明細書
（特許文献２６）  米国特許第６，４４２，７０９号明細書
（特許文献２７）  台湾特許第２８６６９０号公報
（特許文献２８）  台湾特許第２８５３０４号公報
（特許文献２９）  台湾特許第２７４３５３号公報
（特許文献３０）  台湾特許第２３３５５１号公報
（非特許文献）
（非特許文献１）  "Ｄｉｒｅｃｔ  ａｎｄ  Ｉｎｄｉｒｅｃｔ  Ａｃｃｅｓｓｉｎｇ  ｏｆ  Ｐｅｒｉｐｈｅｒａｌ  Ｄｅｖｉｃｅｓ"，ＩＢＭ  Ｔｅｃｈｎｉｃａｌ  Ｄｉｓｃｌｏｓｕｒｅ  Ｂｕｌｌｅｔｉｎ，ｖｏｌ．３３，Ｎｏ．ｌＡ，Ｊｕｎ．１９９０．
（非特許文献２）  Ｈ．Ｄ．Ｍｅｉｊ  ｅｔ  ａｌ．，"Ｐ／ＤＡＳ  ａｎｄ  Ｅｎｈａｎｃｅｍｅｎｔｓ  ｔｏ  ｔｈｅ  ＩＢＭ  ３９９０−６  ａｎｄ  ＲＡＭＡＣ  Ａｒｒａｙ  Ｆａｍｉｌｙ"，Ｍａｙ  １９９６．
（非特許文献３）  "Ｍａｉｎｔａｉｎｉｎｇ  Ｄａｔａ  Ｉｎｔｅｇｒｉｔｙ  Ａｃｒｏｓｓ  Ｒｅｄｕｎｄａｎｔ  Ｉ／Ｏ  Ｄｅｖｉｃｅ  Ｔａｋｅ−Ｏｖｅｒｓ"，ＩＢＭ  Ｔｅｃｈｎｉｃａｌ  Ｄｉｓｃｌｏｓｕｒｅ  Ｂｕｌｌｅｔｉｎ，ｖｏｌ．３６，Ｎｏ．０６Ａ，Ｊｕｎ．１９９３，ｐｐ．５７７−５７８．
（非特許文献４）  Ｃｒｕｍｐ，Ｇｅｏｒｇｅ，"Ｗｈａｔ  ｉｓ  Ｓｃａｌｅ−Ｏｕｔ  Ｓｔｏｒａｇｅ？"，Ａｕｇ．２３，２０１０，ｈｔｔｐ：／／ｗｗｗ．ｓｔｏｒａｇｅ−ｓｗｉｔｚｅｒｌａｎｄ．ｃｏｍ／Ａｒｔｉｃｌｅｓ／Ｅｎｔｒｉｅｓ／２０１０／８／２３＿Ｗｈａｔ＿Ｉｓ＿Ｓｃａｌｅ−Ｏｕｔ＿Ｓｔｏｒａｇｅ．ｈｔｍｌ．
（非特許文献５）  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｅａｒｃｈ  Ｒｅｐｏｒｔ  ａｎｄ  ｔｈｅ  Ｗｒｉｔｔｅｎ  Ｏｐｉｎｉｏｎ  ｉｎ  ｔｈｅ  ｐａｒｅｎｔ  ＰＣＴ／ＵＳ１１／４０９９６，９  ｐａｇｅｓ，Ｆｅｂ．２３，２０１２．
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明は、多数の方法で実施でき、工程、製造品、機器、システム、組成物、その他コンピュータ可読記憶媒体などのコンピュータ可読媒体（例えば、ディスクなどの光および／または磁気による大容量記憶装置における媒体、あるいはフラッシュ記憶装置などの不揮発性記憶装置を有する集積回路）、あるいは光通信リンクまたは電子通信リンク経由でプログラム命令が送信されるコンピュータネットワークなどとして実施可能である。本明細書では、これらの実施態様、または本発明が取りうる他のいかなる形態も、技術と呼ぶことができる。以降の詳細な説明では、上記で特定した分野において性能、効率、および実用性の改善を可能にする本発明の１若しくはそれ以上の実施形態について解説している。本発明の詳細な説明の項には、この項の他の部分に関する理解を促すため、序論を含めている。この序論には、本明細書で説明する概念に基づいた１若しくはそれ以上のシステム、方法、製造品、およびコンピュータ可読媒体の実施形態例が含まれる。以下、結論の項で詳述するように、本発明は、請求項の範囲内で考えられるすべての変更形態および変形形態を包含する。
【図面の簡単な説明】
【０００６】
【図１Ａ】図１Ａは、スケーラブルな記憶装置用技術の一実施形態の構造を一部選んで詳しく例示した図で、ホスト、ホストから見える（ｈｏｓｔ  ｖｉｓｉｂｌｅ）ストレージであって、それぞれ一次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有する、ホストから見えるストレージ、およびホストから見えない（ｈｏｓｔ  ｉｎｖｉｓｉｂｌｅ）ストレージであって、それぞれ二次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有する、ホストから見えないストレージを含む。
【図１Ｂ】図１Ｂは、スケーラブルな記憶装置用技術の別の一実施形態の構造を一部選んで詳しく例示した図で、ホスト、ホストから見えるストレージであって、それぞれ一次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有する、ホストから見えるストレージ、およびホストから見えないストレージであって、それぞれ二次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有する、ホストから見えないストレージを含む。
【図２】図２は、一次エージェントおよび１若しくはそれ以上の二次エージェントにより実行されるアクションを含め、スケーラブルな記憶装置用技術の実施形態の処理を一部選んで詳しく例示した図である。
【図３】図３は、スケーラブルな記憶装置用技術の実施形態におけるホスト、一次エージェント、および二次エージェントのアドレス指定を一部選んで詳しく例示した図である。
【図４】図４は、一次エージェントとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示した図である。
【図５】図５は、二次エージェントとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示した図である。
【発明を実施するための形態】
【０００７】
【表１】
0005957647.tif 000002
0005957647.tif 000003
【０００８】
以下では、本発明の１若しくはそれ以上の実施形態について、本発明の詳細を一部選んで例示した添付の図面とともに詳細に説明している。本発明については、実施形態に関連付けて説明する。それらの実施形態は本明細書において単に例示的なものと理解され、本発明は、本明細書の実施形態のいずれか若しくはすべてに明示的に限定されず、多くの代替形態、変更形態、および均等物を包含するものである。説明が単調になるのを避けるため、種々の表現ラベル（ｗｏｒｄ  ｌａｂｅｌ）（第１の、最後の、特定の（ｃｅｒｔａｉｎ）、種々の、さらに別の、他の、特定の（ｐａｒｔｉｃｕｌａｒ）、選択された、一部の、および特筆すべき、を含み、かつこれらに限定されない）を別個の実施形態セットに適用する場合がある。本明細書において、このようなラベルは、明示的に、特質、または嗜好若しくは偏見の何らかの形態を伝えることを目的としたものではなく、単に別個のセットを便宜的に区別するためのものである。開示した工程の操作・動作のいくつかは、本発明の範囲内で順序を変えることができる。工程、方法、および／またはプログラム命令の特徴の変形形態を複数の実施形態で説明している場合は、所定の、または動的に決定される基準に基づいて、それぞれ複数の実施形態に対応した複数の操作・動作モードから静的および／または動的に選択される１つを実施する他の実施形態も考えられる。以下の説明では、本発明が完全に理解されるよう具体的な詳細事項を多数記載する。これらの詳細事項は例示目的で提供するものであり、本発明は、これら具体的な詳細事項の一部または全部がなくとも、添付の請求項に従って実施可能である。明瞭性のため、本発明を不要に曖昧にしないよう、本発明に関する技術分野で公知の技術的事項は詳述していない。
【０００９】
序論
本序論は、以降の詳細な説明をより短時間で理解できるよう含めたものである。いかなる序論も必然的に当該主題全体を概説するものであり、完全または限定的な説明を意図したものではないため、本発明は本序論に示す概念（明示的な例がある場合はそれを含む）に限定されるものではない。例えば、以下では、本明細書の紙面および構成の制限上、特定の実施形態だけに関する概要を提供している。本明細書の残りの部分では、最終的に請求項と整合するものも含め、他の実施形態を多数説明している。
【００１０】
頭字語
ここで定義された種々の略称または頭字語の少なくとも一部は、本明細書で使用される特定の要素を指している。
【００１１】
【表２】
0005957647.tif 000004
【００１２】
スケーラブルな記憶装置を使用する技術では、単一の論理インターフェースとしてホストからアクセス可能な複数の記憶装置を使用し、これら装置により実装されるストレージを概念的に集約する。前記装置の一次エージェントは、ホストインターフェース・プロトコルを使って前記ホストからの記憶要求を受け付け、前記要求を内部処理し、および／またはピアツーピアプロトコルを使って前記要求をサブ要求として前記記憶装置の二次エージェントに転送する。前記二次エージェントは、前記サブ要求を受け付けて処理し、前記サブ要求ごとに、前記一次エージェントおよび／または前記ホストにサブステータス情報を報告する。前記一次エージェントは、任意選択的に、前記ホストへの提供用に前記サブステータスを全体的なステータスへと蓄積する。前記一次エージェントは、当該一次エージェントにより実装されるストレージのほか、前記二次エージェントにより実装されて集約用に割り当てられるストレージを含む利用可能なストレージを前記ホストに報告する。前記二次エージェントは、利用可能なストレージがゼロである旨、あるいは、集約割り当て後に残ったストレージを前記ホストに報告する。
【００１３】
前記エージェント間のピアツーピア通信は、ホストアクセス中および／または障害復旧中に冗長性情報を通信するため、任意選択的に使用される。種々の障害復旧技術により、ストレージが再割り当てされ、一次・二次・設定可能エージェントが再割り当てされ、冗長性情報を介してデータが回復され、またはこれらの任意の組み合わせが実行される。
【００１４】
ＰＣＩｅインターフェースは、システムにおけるホスト固有の特異な関係を有する。各ＰＣＩｅは装置の機能の単一ポータルに相当し、これはその機能が記憶であるか、ネットワーキングであるか、または他の何らかのコンピュータシステム機能であるかにかかわらない。前記システム内の各ＰＣＩｅ装置は、当該システムで明確に区別できる各エンティティに相当する。ただし、ピアツーピアトラフィックを通じていくつかの個別ＰＣＩｅ装置がグループ化されるため、それらの装置は、単一のＰＣＩｅ装置として前記ホストに認識される。ＰＣＩｅピアツーピア機能を活用すると、ピアツーピア通信で複数のＰＣＩｅ記憶装置を１つにギャンギングおよび／またはグループ化することによりスケーラブルなストレージアーキテクチャが可能になり、ギャンギングまたはグループ化された装置が単一のストレージサブシステムとして前記ホストに認識されるようにできる。一部の実施形態において、要求は、ＬＢＡだけに基づいて前記ＰＣＩｅ記憶装置に配信される。ＬＢＡだけに基づく前記配信において、前記グループ内のいかなる特定装置のストレージも、その特定装置が要求をルーティングする上で機能的である必要はないため、前記ストレージが単一障害点になる可能性は排除される。
【００１５】
一部の実施形態および／または使用シナリオでは、前記ギャンギングまたはグループ化により、単一の論理インターフェースとして前記ホストに認識されたまま、性能および／または能力の向上が可能になる。一部の実施形態および／または使用シナリオでは、ＬＢＡベースの要求ルーティングにより、ストレージの単一障害点がすべて排除される。一部の実施形態および／または使用シナリオでは、前記ギャンギングまたはグループ化により、いくつかの記憶装置にわたり要求負荷が分散されるため、能力および性能がホストに対しトランスペアレントにスケーリングされる。この能力および性能のスケーリングは、ホストが、能力および待ち時間（レイテンシ）を除き、前記ギャンギングまたはグループ化を制御および監視する必要がないという意味で、前記ホストにとりトランスペアレントである。一部の実施形態および／または使用シナリオでは、前記ギャンギングまたはグループ化により対称型マルチプロセッサ複合ストレージが提供される。
【００１６】
一部の実施形態および／または使用シナリオでは、前記ギャンギングまたはグループ化により、ホストは、単一の論理装置として、複数の物理的装置にわたって分散された資源（リソース）の集約体にアクセスすることができる。例えば、前記ギャンギングまたはグループ化を行うと、ホストは、単一の論理記憶装置として複数の物理的記憶装置にわたって分散された複数のストレージ範囲の集約体にアクセスすることができる。前記ホストにより前記要求の一部として提供されたＬＢＡ（および任意選的に長さ）を転送すると、ＬＢＡ（および任意選択的な長さ）の情報が維持される。前記ＬＢＡ（および任意選択的な長さ）の情報を維持してターゲット装置上で変換すると、正確な完全性メタデータ（例えば、ＤＩＶまたはＤＩＸによる参照整合性）を維持でき、および／または独立した（例えば、並列の）装置動作が可能になる。
【００１７】
一部の実施形態および／または使用シナリオでは、前記ギャンギングまたはグループ化により、ストレージ能力、例えば種々のＲＡＩＤ、ミラーリング、およびフェイルオーバー実施態様に関連してトランスペアレントな冗長性および／または復旧が可能になる。種々の実施形態において、ホストトラフィックは、その大部分がデータトラフィックである一方、ピアツーピアトラフィックの大部分は、制御トラフィックである。種々の実施形態では、ピアツーピアトラフィックにも、データが含まれる（例えば、ＲＡＩＤ復旧動作中、または蓄積されたパリティ情報の伝送中）。
【００１８】
一部の実施形態および／または使用シナリオでは、前記ギャンギングまたはグループ化により、１つまたは複数のＳＳＤに連結されたホストを伴うシステムが実現され、その場合、前記ホストに連結された１若しくはそれ以上のＰＣＩｅリンクの帯域幅（それぞれ１若しくはそれ以上のレーンを有する）は、複数のＳＳＤ、複数のフラッシュコントローラ（例えば、ＳＳＤに使用されるもの）、および／または複数のフラッシュチップにわたり（前記ホストに対してトランスペアレントに）分散される。例えば、ホストに連結された１つのＰＣＩｅリンクの帯域幅（例えば、８つのレーンを有する）は、４つのＳＳＤまたは８つのフラッシュコントローラに分散される（各ＳＳＤまたは各フラッシュコントローラは、例えば、８レーン未満を伴う１つのＰＣＩｅリンクを有する）。別の例として、ホストに連結された４つのＰＣＩｅリンクの帯域幅は、６４のＳＳＤまたは２５６のフラッシュコントローラにわたって分散される。別の例として、ホストに連結された１つのＰＣＩｅリンクの帯域幅は、３２のフラッシュチップまたは６４のフラッシュコントローラにわたって分散される。別の例として、ホストに連結された４つのＰＣＩｅリンクの帯域幅は、１２８のフラッシュチップまたは２５６のフラッシュコントローラにわたって分散される。
【００１９】
種々の実施形態では、一次エージェントが、ホストから二次エージェントへのストレージマッピングを決定する（例えば、どのホストＬＢＡ範囲がどの二次エージェントに対応するか）。例えば、ホストＬＢＡは、物理ドライブ全体にわたり所定のサイズ（例えば、６４ＫＢ）でストライプ化される。別の例として、ホストＬＢＡは、ＲＡＩＤ実施態様（例えば、ＲＡＩＤ  ０、ＲＡＩＤ  １、またはＲＡＩＤ  ５）に基づいてストライプ化される。さらに別の例として、ストライプ化は、作業負荷に基づいて動的に変更される（例えば、第１のストライプ化は第１の作業負荷に使用され、第２のストライプ化は第２の作業負荷に使用される）。
【００２０】
一部の実施形態では、ＰＣＩｅ記憶装置のグループ（１若しくはそれ以上のホストからアクセス可能）がバストポロジーにより連結されて、相互のピアツーピア通信を可能にする。前記ＰＣＩｅ記憶装置グループは、そのグループでただ１つのＰＣＩｅ装置だけが特定のホスト論理接続の要求を受信するよう設定される。一部の実施形態では、前記グループに複数の接続があり、当該グループの異なるＰＣＩｅ記憶装置により受信される要求を供給する異なるホスト論理接続が可能になる。
【００２１】
前記ＰＣＩｅ記憶装置グループの設定は、前記ホストに対し、それらの装置がいかに公開（ｅｘｐｏｓｅ）されるかに応じて異なる。前記グループの全装置が、例えばトランスペアレントなスイッチを介して、前記ホストに直接公開される場合は、ホスト論理接続が可能な装置以外の全装置が、記憶容量がゼロである報告を前記ホストに返す一方、前記ホスト論理接続が可能な装置は、特定のホスト論理接続に関する前記グループの設定済み容量を報告する。この設定済み容量は、前記グループのストレージが複数のホスト論理接続にわたりいかにパーティション分割されるかだけでなく、そのストレージがいかに設定または編成されるか（例えば、ＪＢＯＤまたはＲＡＩＤ）に応じても異なる。前記装置の一部が前記ホストの後方、例えばブリッジまたは非トランスペアレントなスイッチに対して隠される場合、前記ホストに公開されない装置による前記容量ゼロの報告は行われない。ホスト論理接続では、単に単一のＰＣＩｅ装置インターフェースに要求が送信されたのち、そこから当該グループ内の他の装置に対して要求の配信および調整が行われる。
【００２２】
さらに別の実施形態では、それぞれホスト論理接続が可能な２若しくはそれ以上の装置が、前記装置および／または他の装置の記憶容量内で重複した記憶容量を報告する。例えば、第１のホスト論理接続が可能な第１の装置は、当該第１の装置の合計記憶容量および第２の装置の合計記憶容量を合わせたものに等しい集約記憶容量を報告する。第２のホスト論理接続が可能な第３の装置も、前記集約記憶容量を報告する。前記第１のホスト論理接続経由で受信され、または前記第２のホスト論理接続経由で受信されたホスト要求は、前記第１の装置および前記第２の装置の同じ物理的ストレージを参照する（任意選択的および／または選択的に異なるＬＢＡを使って）。
【００２３】
記憶装置により実装されるストレージは、そのすべてを直接ホストに公開する（または非公開にする）必要はない。例えば、特定の記憶装置は、記憶装置グループに部分的に割り当てられるストレージ（例えば、ホストに直接公開されないもの）と、直接前記ホストに公開されるよう部分的に割り当てられるストレージとを実装する。この特定の記憶装置は、容量がゼロであることを前記ホストに報告する代わりに、前記ホストに直接公開される部分的割り当てに対応したストレージ量を報告する。
【００２４】
一部の実施形態では、前記グループの諸装置の初期設定は、前記ホスト上および／または１若しくはそれ以上のオプションＲＯＭ内に常駐するソフトウェアにより行われる。前記初期設定の一例は、前記装置のうち、ホスト論理接続を可能にするものと、そうでないものに関する初期設定である。前記初期設定の別の例は、装置グループ用に割り当てるストレージ量とホストへの直接公開用に割り当てるストレージ量とに関するものである。
【００２５】
一部の実施形態において、前記装置グループの設定は、システムの動作中、例えば「ホットスペア」の挿入されている際、または装置が動的に、例えば障害に応答して、前記グループに追加され若しくは当該グループから除外されている際に行われる。例えば、ホットスペア装置の挿入時には、ホスト上の装置ドライバのうち１若しくはそれ以上と、一次エージェントとに関与するディスカバリ工程が、前記挿入された装置を認識してこれを適宜設定する（例えば、障害の発生した装置と交換するため）。前記装置挿入は、例えば前記挿入された装置からのアナウンスメントおよび／または「ホットプラグ」イベントにより示される。
【００２６】
ホストがストレージ読み出し・書き込み要求（例えば、ｅＮＶＭＨＣＩまたはＡＨＣＩ対応の要求）を発行すると、当該要求を受信する前記装置は、当該要求のＬＢＡ（および任意選択的に長さ）を使って当該要求を前記グループの１つまたは複数の装置へ転送し、そこで前記要求された記憶が実施される。前記要求の長さと前記グループの編成（例えば、ＪＢＯＤまたはＲＡＩＤ）とに応じ、前記要求は、例えば複数のサブ要求として、前記グループの１より多くの装置へルーティングされる。
【００２７】
種々の実施形態によれば、前記グループ内の特定の装置がサブ要求を受信した場合、前記特定の装置は、前記ＬＢＡ（および任意選択的に、供給された任意の長さ）をローカルＬＢＡ（および長さ）に変換して前記サブ要求を処理したのち、そのサブ要求に関するデータをホストメモリとの間で直接送受信する。ホストメモリの一例は、メモリの特定のアドレスにデータを格納する命令の実行を通じて前記ホストにより書き込まれたデータを保持できる要素であって、メモリの前記特定のアドレスからデータを読み出す命令の実行を通じて前記ホストが前記書き込まれたデータを読み出せるようになっている要素である。前記特定の装置は、任意選択的および／または選択的に、（ａ）前記（転送された）サブ要求から、（ｂ）ホストに常駐する変換構造（例えば、スキャッタ・ギャザーリスト）から、および（ｃ）前記ホストとの制御インターフェースとして機能する装置にプロキシ要求を発行することにより、のうち１若しくはそれ以上からのデータ転送先となるホストメモリアドレスを取得する。一部の実施形態では、ＩＯ仮想化についてのみ、プロキシ要求の発行が行われる。
【００２８】
サブ要求ごとの前記データ転送が完了すると、その転送を行った装置は、前記ホストとの制御インターフェースとして機能する前記装置にサブステータスを報告する。次に、前記ホストとの前記制御インターフェースとして機能する前記装置は、前記要求に係わる全装置がサブステータスを報告し終わった時点で、前記ホストにステータスをポストする。
【００２９】
非データコマンド（例えば、ＳＡＴＡ  ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンド）も同様に処理される。ホストとの制御インターフェースとして機能する特定の装置により非データコマンドが受信されると、その特定の装置は、（必要に応じて）当該グループ内の他の装置に問い合わせを行ったのち、前記問い合わせの要約および／または集約された結果を前記ホストに報告する。
【００３０】
種々の実施形態において、ホストは、複数の装置の集約（例えば、それぞれ×１または×２のＰＣＩｅ接続を有する装置）を、すべての前記装置のストレージを包含する単一の論理装置として認識する（例えば、前記装置は、単一の論理装置として仮想化される）。種々の実施形態において、前記ホストは、任意またはすべての前記装置を、ストレージ全体の一部を有するものとして認識するため、制御トラフィックだけでなくデータトラフィックの分割も可能にしている。
【００３１】
送信キュー（例えば、並列したアクティビティストリームに関する同時にアクティブな複数の送信キューのうちの１つ）を通じた前記ホストからの要求は、例えば前記ホストが認識している装置のうち特定の１つにより処理される。前記送信キューに含まれる個々の要求は、（前記特定の装置からのピアツーピア要求を介した）サブ要求として、前記要求が参照するストレージの全部または一部を実装する装置に、任意選択的および／または選択的に転送される。例えば、前記ストレージは、個々のＬＢＡまたはＬＢＡグループにより、前記装置にわたってストライプ化される。一部の実施形態および／または使用シナリオでは、ＬＢＡグループでストライプ化を行うと、比較的大きなチャンクを個々の装置に集約することで性能上の利点が実現される。複数の送信キューを有する一部の実施形態では、新規送信キューに係る装置のうち特定の１つの装置にホストが通知を行い、その特定の装置が、前記新規送信キューのサービスを他の前記装置へ分散させる。
【００３２】
個々の前記装置は、前記ホストとのデータ転送を含めて、転送されたサブ要求を独立に処理する。一部のプロトコル（例えば、一部のＰＣＩｅ互換プロトコル）では、各送信キューに関する各完了キューで提供される「完了」が使用される。送信キュー内の各エントリにつき、それに対応した完了通知が各当該完了キューへ返される。前記装置のうちいずれか１つ若しくはそれ以上は、任意選択的および／または選択的に、所与の要求に関する完了情報を「集約」して前記完了キューを更新できるようにされる。種々の実施形態では、原子性（アトミック性）に対応した装置が完了キューごとに１つ割り当てられる。前記割り当てられた装置は、一部の実施形態において、対応する送信キュー内のエントリを処理する装置と同じであるが、他の実施形態では、対応する送信キュー内のエントリを処理する装置と異なる。  
実施例
【００３３】
詳細な説明の序論の結びとして、以下では、少なくとも「ＥＣ」（Ｅｘａｍｐｌｅ  Ｃｏｍｂｉｎａｔｉｏｎ。組み合わせ例）として明示的に列挙されたいくつかを含む実施形態例集を示し、本明細書で説明する概念に係る種々の実施形態タイプについてさらに説明する。これらの例は、相互に排他的、完全、または限定的であることを意図したものではなく、本発明は、これらの実施形態例に限定されず、特許請求の範囲内で考えられる変更（修正）形態および変形形態をすべて包含するものである。
【００３４】
ＥＣ１）システムであって、
ストレージの１つのアドレスにアクセスする要求をホストから受け付ける手段と、
前記アドレスに少なくとも部分的に基づいて、前記要求が複数の記憶装置のうちのいずれの１若しくはそれ以上の記憶装置に対応するかを決定する手段と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する手段と、
前記対応する決定された記憶装置に前記サブ要求を送信する手段と、
前記決定された各記憶装置から各サブステータスを受け付ける手段と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する手段と、
前記全体的なステータスを前記ホストに提供する手段と
を有し、
前記要求を受け付ける手段は、ホストインターフェース・プロトコルと互換性があり、前記サブ要求を送信する手段および前記サブステータスを受け付ける手段は、前記ホストから独立して動作可能なピアツーピアプロトコルと互換性があり、
前記記憶装置のうちの少なくとも１つは、前記サブ要求の１つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも１つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
システム。
【００３５】
ＥＣ２）ＥＣ１記載のシステムにおいて、前記要求を受け付ける手段、前記サブ要求を送信する手段、前記各サブステータスを受け付ける手段、および前記全体的なステータスを提供する手段のうち２若しくはそれ以上は、共有される物理インターフェース上で動作可能であるシステム。
【００３６】
ＥＣ３）ＥＣ２記載のシステムにおいて、周辺機器相互接続エクスプレス（ＰＣＩｅ）トポロジーおよびＩｎｆｉｎｉＢａｎｄトポロジーのうち少なくとも１つは、前記共有される物理インターフェースを有するものであるシステム。
【００３７】
ＥＣ４）ＥＣ２記載のシステムにおいて、周辺機器相互接続エクスプレス（ＰＣＩｅ）インターフェースおよびＩｎｆｉｎｉＢａｎｄインターフェースのうち少なくとも１つは、前記共有される物理インターフェースを有するものであるシステム。
【００３８】
ＥＣ５）ＥＣ１記載のシステムにおいて、さらに、
前記要求を受け付ける手段、前記記憶装置を決定する手段、前記サブ要求を決定する手段、前記サブ要求を送信する手段、前記サブステータスを受け付ける手段、前記全体的なステータスを決定する手段、および前記全体的なステータスを提供する手段を有する前記記憶装置のうちの特定の１つを有するものであるシステム。
【００３９】
ＥＣ６）ＥＣ１記載のシステムにおいて、前記記憶装置のうちの２若しくはそれ以上は、前記ホストインターフェース・プロトコルを介して前記ホストと通信可能であるシステム。
【００４０】
ＥＣ７）ＥＣ６記載のシステムにおいて、前記記憶装置のうちの前記２若しくはそれ以上とは、前記記憶装置のすべてであるシステム。
【００４１】
ＥＣ８）ＥＣ１記載のシステムにおいて、前記アドレスは、開始位置および長さを有するものであるシステム。
【００４２】
ＥＣ９）ＥＣ１記載のシステムにおいて、前記アドレスは、論理ブロックアドレス（ＬＢＡ）を有するものであるシステム。
【００４３】
ＥＣ１０）ＥＣ１記載のシステムにおいて、前記手段の全ては、単一の集積回路（ＩＣ）に集合的に実装されるものであるシステム。
【００４４】
ＥＣ１１）ＥＣ１記載のシステムにおいて、前記手段の全ては、単一のアドインカードに集合的に実装されるものであるシステム。
【００４５】
ＥＣ１２）ＥＣ１記載のシステムにおいて、前記手段全ては、ソリッドステートディスク（ＳＳＤ）に含まれるものであるシステム。
【００４６】
ＥＣ１３）ＥＣ１記載のシステムにおいて、前記ホストインターフェース・プロトコルは、
ユニバーサルシリアルバス（ＵＳＢ）インターフェース規格と、
コンパクトフラッシュ（登録商標）（ＣＦ）インターフェース規格と、
マルチメディアカード（ＭＭＣ）インターフェース規格と、
セキュアデジタル（ＳＤ）インターフェース規格と、
メモリースティック・インターフェース規格と、
ｘＤピクチャーカード・インターフェース規格と
統合ドライブエレクトロニクス（ＩＤＥ）インターフェース規格と
シリアル・アドバンスド・テクノロジー・アタッチメント（ＳＡＴＡ）インターフェース規格と、
外部シリアルＡＴＡ（ｅＳＡＴＡ）インターフェース規格と、
スモール・コンピュータ・システム・インターフェース（ＳＣＳＩ）インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース（ＳＡＳ）インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット（登録商標）・インターフェース規格と、
周辺機器相互接続エクスプレス（ＰＣＩｅ）インターフェース規格と
のうち１若しくはそれ以上と互換性があるものであるシステム。
【００４７】
ＥＣ１４）ＥＣ１記載のシステムにおいて、さらに、
前記ホストの全部または任意部分を有するものであるシステム。
【００４８】
ＥＣ１５）ＥＣ１４記載のシステムにおいて、前記ホストは、
コンピュータと、
ワークステーション・コンピュータと、
サーバー・コンピュータと、
ストレージ・サーバーと、
パーソナルコンピュータ（ＰＣ）と、
ラップトップ・コンピュータと、
ノートブック・コンピュータと、
ネットブック・コンピュータと、
携帯情報端末（ＰＤＡ）と、
メディアプレーヤーと、
メディアレコーダーと、
デジタルカメラと、
携帯電話ハンドセットと、
コードレスホン・ハンドセットと、
電子ゲームと
のうち１若しくはそれ以上を有するものであるシステム。
【００４９】
ＥＣ１６）ＥＣ１記載のシステムにおいて、さらに、
前記記憶装置の全部または任意部分を有するものであるシステム。
【００５０】
ＥＣ１７）ＥＣ１記載のシステムにおいて、さらに、
前記記憶装置のうち１若しくはそれ以上に有されるフラッシュメモリを有するものであるシステム。
【００５１】
ＥＣ１８）命令セットを内部に格納するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
ホストからストレージの１つのアドレスにアクセスする要求を受け付ける工程を管理する工程と、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちのいずれの１若しくはそれ以上に前記要求が対応するかを決定する工程を管理する工程と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する工程を管理する工程と、
前記対応する決定された記憶装置に前記サブ要求を送信する工程を管理する工程と、
前記決定された各記憶装置から各サブステータスを受け付ける工程を管理する工程と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する工程を管理する工程と、
前記全体的なステータスを前記ホストに提供する工程を管理する工程と
を有する動作が実行され、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルを介し、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルを介するものであり、
前記記憶装置のうちの少なくとも１つは、前記サブ要求の１つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの少なくとも１つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
コンピュータ可読媒体。
【００５２】
ＥＣ１９）ＥＣ１８記載のコンピュータ可読媒体において、前記ホストインターフェース・プロトコルおよび前記ピアツーピアプロトコルは、周辺機器相互接続エクスプレス（ＰＣＩｅ）チャネルと互換性があるものであるコンピュータ可読媒体。
【００５３】
ＥＣ２０）方法であって、
ストレージの１つのアドレスにアクセスする要求をホストから受け付ける工程と、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちいずれの１若しくはそれ以上に前記要求が対応するかを決定する工程と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する工程と、
前記対応する決定された記憶装置に前記サブ要求を送信する工程と、
前記決定された各記憶装置から各サブステータスを受け付ける工程と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する工程と、
前記全体的なステータスを前記ホストに提供する工程と
を有し、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルと互換性があり、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルと互換性があり、
前記記憶装置のうちの少なくとも１つは、前記サブ要求の１つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも１つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
方法。
【００５４】
ＥＣ２１）システムであって、
ストレージの１つのアドレスにアクセスする要求をホストから受け付けることのできるホストインターフェース論理ハードウェアと、
制御論理ハードウェアであって、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちどの１若しくはそれ以上に前記要求が対応するか、ならびに前記決定された各記憶装置に対応する各サブ要求を決定し、
前記対応する決定された記憶装置に前記サブ要求を送信し、
前記決定された各記憶装置から各サブステータスを受け付け、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する
ことのできる制御論理ハードウェアと
を有し、
前記ホストインターフェース論理ハードウェアは、さらに、前記全体的なステータスを前記ホストに提供でき、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルと互換性があり、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルと互換性があり、
前記記憶装置のうちの少なくとも１つは、前記サブ要求の１つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも１つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
システム。
【００５５】
ＥＣ２２）方法であって、
第１の記憶装置が、複数のホスト要求キューのうちの第１のホスト要求キューから第１の要求を読み出す工程と、
第２の記憶装置が、前記ホスト要求キューのうちの第２のホスト要求キューから第２の要求を読み出す工程であって、前記第２のホスト要求キューは、前記第１のホスト要求キューと区別可能であり、当該第２の記憶装置が読み出す工程は、前記第１の記憶装置が読み出す工程から独立したものである、工程と、
前記第１の記憶装置が、前記第１の要求の少なくとも一部を前記第２の記憶装置に転送する工程と、
前記第２の記憶装置が、前記第２の要求の少なくとも一部を前記第１の記憶装置に転送する工程であって、当該第２の記憶装置が転送する工程は、前記第１の記憶装置が転送する工程から独立したものである、工程と、
前記第１の記憶装置が、前記第２の要求の前記少なくとも一部に基づいて、当該第１の記憶装置の第１のストレージにアクセスし、当該第１の記憶装置がアクセスする工程に少なくとも部分的に基づいて、第１のサブステータスを前記第２の記憶装置に送信する工程と、
前記第２の記憶装置が、前記第１の要求の前記少なくとも一部に基づいて、当該第２の記憶装置の第２のストレージにアクセスし、当該第２の記憶装置がアクセスする工程に少なくとも部分的に基づいて、第２のサブステータスを前記第１の記憶装置に送信する工程と
を有する方法。
【００５６】
ＥＣ２３）システムであって、
第１の記憶装置が、複数のホスト要求キューのうちの第１のホスト要求キューから第１の要求を読み出す手段と、
第２の記憶装置が、前記ホスト要求キューのうちの第２のホスト要求キューから第２の要求を読み出す手段であって、前記第２のホスト要求キューは、前記第１のホスト要求キューと区別可能であり、当該第２の記憶装置による読み出しは、前記第１の記憶装置による読み出しから独立したものである、手段と、
前記第１の記憶装置が、前記第１の要求の少なくとも一部を前記第２の記憶装置に転送する手段と、
前記第２の記憶装置が、前記第２の要求の少なくとも一部を前記第１の記憶装置に転送する手段であって、当該第２の記憶装置による転送は、前記第１の記憶装置による転送から独立したものである、手段と、
前記第１の記憶装置が、前記第２の要求の前記少なくとも一部に基づいて、当該第１の記憶装置の第１のストレージにアクセスし、当該第１の記憶装置によるアクセスに少なくとも部分的に基づいて、第１のサブステータスを前記第２の記憶装置に送信する手段と、
前記第２の記憶装置が、前記第１の要求の前記少なくとも一部に基づいて、当該第２の記憶装置の第２のストレージにアクセスし、当該第２の記憶装置によるアクセスに少なくとも部分的に基づいて、第２のサブステータスを前記第１の記憶装置に送信する手段と
を有するシステム。
【００５７】
ＥＣ２４）システムであって、
複数のホスト要求キューのうちの第１のホスト要求キューから第１の要求を読み出せる第１の記憶装置のホストインターフェース論理ハードウェアと、
前記ホスト要求キューのうちの第２のホスト要求キューから第２の要求を読み出せる第２の記憶装置のホストインターフェース論理ハードウェアであって、前記第２のホスト要求キューは、前記第１のホスト要求キューと区別可能であり、当該第２の記憶装置による読み出しは、前記第１の記憶装置による読み出しから独立したものである、第２の記憶装置のホストインターフェース論理ハードウェアと、
前記第１の要求の少なくとも一部を前記第２の記憶装置に転送できる前記第１の記憶装置の要求転送論理ハードウェアと、
前記第２の要求の少なくとも一部を前記第１の記憶装置に転送できる前記第２の記憶装置の要求転送論理ハードウェアであって、当該第２の記憶装置による転送は、前記第１の記憶装置による転送から独立したものである、前記第２の記憶装置の要求転送論理ハードウェアと、
前記第２の要求の前記少なくとも一部に基づいて前記第１の記憶装置の第１のストレージにアクセスできる前記第１の記憶装置のストレージインターフェース論理ハードウェアと、
前記第１の記憶装置によるアクセスに少なくとも部分的に基づいて第１のサブステータスを決定できる前記第１の記憶装置のサブステータス生成論理ハードウェアと、
前記第１のサブステータスを前記第２の記憶装置に転送できる前記第１の記憶装置のサブステータス転送論理ハードウェアと、
前記第１の要求の前記少なくとも一部に基づいて前記第２の記憶装置の第２のストレージにアクセスできる前記第２の記憶装置のストレージインターフェース論理ハードウェアと、
前記第２の記憶装置によるアクセスに少なくとも部分的に基づいて第２のサブステータスを決定できる前記第２の記憶装置のサブステータス生成論理ハードウェアと、
前記第２のサブステータスを前記第１の記憶装置に転送できる前記第２の記憶装置のサブステータス転送論理ハードウェアと
を有するシステム。
【００５８】
ＥＣ２５）方法であって、
第１の記憶装置が、複数のホスト要求キューのうちの第１のホスト要求キューから第１の要求を読み出す工程と、
第２の記憶装置が、前記ホスト要求キューのうちの第２のホスト要求キューから第２の要求を読み出す工程であって、前記第２のホスト要求キューは、前記第１のホスト要求キューと区別可能であり、当該第２の記憶装置が読み出す工程は、前記第１の記憶装置が読み出す工程から独立したものである、工程と、
前記第１の記憶装置が、前記第１の要求の少なくとも一部を前記第２の記憶装置に転送する工程と、
前記第２の記憶装置が、前記第２の要求の少なくとも一部を前記第１の記憶装置に転送する工程であって、当該第２の記憶装置が転送する工程は、前記第１の記憶装置が転送する工程から独立したものである、工程と、
前記第１の記憶装置が、前記第２の要求の前記少なくとも一部に基づいて、第１のストレージにアクセスし、当該第１の記憶装置がアクセスする工程に少なくとも部分的に基づいて、複数のホスト・ステータス・キューのうちの第１のホスト・ステータス・キューに第１のステータスを書き込む工程と、
前記第２の記憶装置が、前記第１の要求の前記少なくとも一部に基づいて、第２のストレージにアクセスし、当該第２の記憶装置がアクセスする工程に少なくとも部分的に基づいて、前記ホスト・ステータス・キューのうちの第２のホスト・ステータス・キューに第２のステータスを書き込む工程であって、前記第２の記憶装置がアクセスする工程は、前記第１の記憶装置がアクセスする工程から独立したものであり、前記第２のストレージは前記第１のストレージと区別可能である、工程と
を有する方法。
【００５９】
ＥＣ２６）システムであって、
第１の記憶装置が、複数のホスト要求キューのうちの第１のホスト要求キューから第１の要求を読み出す手段と、
第２の記憶装置が、前記ホスト要求キューのうちの第２のホスト要求キューから第２の要求を読み出す手段であって、前記第２のホスト要求キューは、前記第１のホスト要求キューと区別可能であり、当該第２の記憶装置による読み出しは、前記第１の記憶装置による読み出しから独立したものである、手段と、
前記第１の記憶装置が、前記第１の要求の少なくとも一部を前記第２の記憶装置に転送する手段と、
前記第２の記憶装置が、前記第２の要求の少なくとも一部を前記第１の記憶装置に転送する手段であって、当該第２の記憶装置による転送は、前記第１の記憶装置による転送から独立したものである、手段と、
前記第１の記憶装置が、前記第２の要求の前記少なくとも一部に基づいて、第１のストレージにアクセスし、当該第１の記憶装置によるアクセスに少なくとも部分的に基づいて、複数のホスト・ステータス・キューのうちの第１のホスト・ステータス・キューに第１のステータスを書き込む手段と、
前記第２の記憶装置が、前記第１の要求の前記少なくとも一部に基づいて、第２のストレージにアクセスし、当該第２の記憶装置によるアクセスに少なくとも部分的に基づいて、前記ホスト・ステータス・キューのうちの第２のホスト・ステータス・キューに第２のステータスを書き込む手段であって、前記第２の記憶装置によるアクセスは、前記第１の記憶装置によるアクセスから独立したものであり、前記第２のストレージは前記第１のストレージと区別可能である、手段と
を有するシステム。
【００６０】
ＥＣ２７）システムであって、
複数のホスト要求キューのうちの第１のホスト要求キューから第１の要求を読み出せる第１の記憶装置のホストインターフェース論理ハードウェアと、
前記ホスト要求キューのうちの第２のホスト要求キューから第２の要求を読み出せる第２の記憶装置のホストインターフェース論理ハードウェアであって、前記第２のホスト要求キューは、前記第１のホスト要求キューと区別可能であり、当該第２の記憶装置による読み出しは、前記第１の記憶装置による読み出しから独立したものである、第２の記憶装置のホストインターフェース論理ハードウェアと、
前記第１の要求の少なくとも一部を前記第２の記憶装置に転送できる前記第１の記憶装置の要求転送論理ハードウェアと、
前記第２の要求の少なくとも一部を前記第１の記憶装置に転送できる前記第２の記憶装置の要求転送論理ハードウェアであって、当該第２の記憶装置による転送は、前記第１の記憶装置による転送から独立したものである、前記第２の記憶装置の要求転送論理ハードウェアと、
前記第２の要求の前記少なくとも一部に基づいて第１のストレージにアクセスできる前記第１の記憶装置のストレージインターフェース論理ハードウェアと、
前記第１の記憶装置によるアクセスに少なくとも部分的に基づいて第１のステータスを決定でき、さらに、複数のホスト・ステータス・キューのうちの第１のホスト・ステータス・キューに前記第１のステータスが書き込まれるよう前記第１の記憶装置の前記ホストインターフェース論理ハードウェアに前記第１のステータスを提供できる、前記第１の記憶装置のステータス生成論理ハードウェアと、
前記第１の要求の前記少なくとも一部に基づいて第２のストレージにアクセスできる前記第２の記憶装置のストレージインターフェース論理ハードウェアと、
前記第２の記憶装置によるアクセスに少なくとも部分的に基づいて第２のステータスを決定でき、さらに、前記ホスト・ステータス・キューのうちの第２のホスト・ステータス・キューに前記第２のステータスが書き込まれるよう前記第２の記憶装置の前記ホストインターフェース論理ハードウェアに前記第２のステータスを提供できる前記第１の記憶装置のステータス生成論理ハードウェアであって、前記第２の記憶装置によるアクセスは、前記第１の記憶装置によるアクセスから独立したものであり、前記第２のストレージは前記第１のストレージと区別可能である、前記第１の記憶装置のステータス生成論理ハードウェアと
を有するシステム。
【００６１】
ＥＣ２８）システムであって、
複数の物理的記憶装置にわたって分散された複数の記憶範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにする手段であって、前記物理的記憶装置のうち１つは一次エージェントとして動作でき、前記物理的記憶装置のうち１若しくはそれ以上は二次エージェントとして動作できる、手段と、
前記一次エージェントと、前記二次エージェントのうち少なくとも１つとの間のピアツーピアトラフィックを通信する手段と
を有し、
前記一次エージェントは、冗長データ記憶用に前記二次エージェントの少なくとも一部を管理でき、
前記ピアツーピアトラフィックは、前記冗長データ記憶を実施するための冗長トラフィックを有するものである
システム。
【００６２】
ＥＣ２９）ＥＣ２９記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、蓄積されたパリティ情報を有するものであるシステム。
【００６３】
ＥＣ３０）ＥＣ２９記載のシステムにおいて、前記少なくとも一部は、前記一次エージェントおよび／または前記二次エージェントの１つから転送されるものであるシステム。
【００６４】
ＥＣ３１）ＥＣ２９記載のシステムにおいて、前記少なくとも一部は、前記二次エージェントの１つであって、前記蓄積されたパリティ情報に対応する蓄積されたパリティ記憶を実施する、前記二次エージェントの１つに転送されるものであるシステム。
【００６５】
ＥＣ３２）ＥＣ２８記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、前記一次エージェントにより、前記二次エージェントのうち１若しくはそれ以上に提供されるものであるシステム。
【００６６】
ＥＣ３３）ＥＣ２８記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、前記二次エージェントのうち１若しくはそれ以上により、前記一次エージェントに提供されるものであるシステム。
【００６７】
ＥＣ３４）ＥＣ２９記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、複数の前記二次エージェント間のものであるシステム。
【００６８】
ＥＣ３５）ＥＣ２８記載のシステムにおいて、前記冗長トラフィックは、制御情報、未変換データ、および変換済みデータのうち１若しくはそれ以上を有するものであるシステム。
【００６９】
ＥＣ３６）ＥＣ３５記載のシステムにおいて、前記制御情報は、特定のストレージアドレスについて起こる予定の冗長更新の数に関する指標を有するものであるシステム。
【００７０】
ＥＣ３７）ＥＣ３６記載のシステムにおいて、前記一次エージェントおよび前記二次エージェントのうち少なくとも１つは、前記特定のストレージアドレスについての前記冗長更新が起こるまで、前記指標を使って前記冗長更新に関する情報をキャッシュできるものであるシステム。
【００７１】
ＥＣ３８）ＥＣ３５記載のシステムにおいて、前記未変換データは、前記ホストからの書き込みデータのうち１若しくはそれ以上の部分を有するものであるシステム。
【００７２】
ＥＣ３９）ＥＣ３８記載のシステムにおいて、書き込みデータの前記部分は、ミラーリング動作に少なくとも部分的に基づいて決定されるものであるシステム。
【００７３】
ＥＣ４０）ＥＣ３５記載のシステムにおいて、前記変換済みデータは、
前記ホストからの書き込みデータに少なくとも部分的に基づいたパリティデータと、
前記ホストからの書き込みデータに少なくとも部分的に基づいた排他的論理和（ＸＯＲ）データと、
小型ディスク冗長アレイ（ＲＡＩＤ）実施態様に少なくとも部分的に基づいた冗長性情報と
のうち１若しくはそれ以上を有するものであるシステム。
【００７４】
ＥＣ４１）ＥＣ２８記載のシステムにおいて、前記冗長トラフィックは、読み出し−修正−書き込み（ＲＭＷ）動作制御および／またはデータ冗長トラフィックを有するものであるシステム。
【００７５】
ＥＣ４２）ＥＣ４１記載のシステムにおいて、前記ＲＭＷ動作データ冗長トラフィックは、前記ホストからの書き込みデータの全部または任意部分のコピーであるシステム。
【００７６】
ＥＣ４３）ＥＣ４１記載のシステムにおいて、前記ＲＭＷ動作データ冗長トラフィックは、前記ホストからの書き込みデータの一部に少なくとも部分的に基づいた変換済みデータであるシステム。
【００７７】
ＥＣ４４）ＥＣ４１記載のシステムにおいて、前記ＲＭＷ動作制御冗長トラフィックは、特定のアドレスについて起こる予定の冗長更新の数に関する指標であるシステム。
【００７８】
ＥＣ４５）ＥＣ２８記載のシステムにおいて、前記冗長トラフィックは、データ回復動作制御および／またはデータ冗長トラフィックを有するものであるシステム。
【００７９】
ＥＣ４６）ＥＣ２８記載のシステムにおいて、前記冗長データ記憶は、１若しくはそれ以上の小型ディスク冗長アレイ（ＲＡＩＤ）技術に基づいたものであるシステム。
【００８０】
ＥＣ４７）ＥＣ２８記載のシステムにおいて、前記一次エージェントは、ストレージにアクセスする要求を前記ホストから受け付け、前記要求を１若しくはそれ以上のサブ要求として前記二次エージェントの全部または任意部分に転送し、且つ前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付けることができるものであるシステム。
【００８１】
ＥＣ４８）ＥＣ４７記載のシステムにおいて、前記サブ要求は、前記冗長データ記憶が基づく冗長性技術に少なくとも部分的に基づいて決定されるものであるシステム。
【００８２】
ＥＣ４９）ＥＣ４８記載のシステムにおいて、前記冗長性技術は、小型ディスク冗長アレイ（ＲＡＩＤ）実施態様に基づいたものであるシステム。
【００８３】
ＥＣ５０）ＥＣ４７記載のシステムにおいて、前記サブ要求の少なくとも一部は、当該サブ要求の転送先である前記物理的装置のストライプ化に部分的に基づいたものであるシステム。
【００８４】
ＥＣ５１）ＥＣ５０記載のシステムにおいて、前記ストライプ化は、小型ディスク冗長アレイ（ＲＡＩＤ）実施態様に基づいたものであるシステム。
【００８５】
ＥＣ５２）ＥＣ５０記載のシステムにおいて、前記ストライプ化は、作業負荷に基づいて動的に変更されるものであるシステム。
【００８６】
ＥＣ５３）ＥＣ２８記載のシステムにおいて、各前記二次エージェントは、１若しくはそれ以上のサブ要求を前記一次エージェントから受け付け、ローカルストレージにアクセスできるよう前記受け付けられたサブ要求のホストコンテキストアドレス指定情報を変換し、且つ前記ローカルストレージに少なくとも部分的に基づいて前記一次エージェントに各サブステータスを提供できるものであるシステム。
【００８７】
ＥＣ５４）ＥＣ２８記載のシステムにおいて、各前記二次エージェントは、１若しくはそれ以上のサブ要求を前記一次エージェントから受け付け、ローカルストレージにアクセスできるよう前記受け付けられたサブ要求のホストコンテキストアドレス指定情報を変換し、前記ローカルストレージにアクセスし、且つ前記アクセスの読み出しまたは書き込みデータであるデータを前記ホストと転送できるものであるシステム。
【００８８】
ＥＣ５５）ＥＣ２８記載のシステムにおいて、さらに、
前記ホストと前記一次エージェント間でホストトラフィックを通信する手段を有するものであるシステム。
【００８９】
ＥＣ５６）ＥＣ５５記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段は、前記ホストトラフィックを通信する手段の論理チャネルと区別可能な少なくとも１つの論理チャネルを介したものであるシステム。
【００９０】
ＥＣ５７）ＥＣ５５記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段は、前記ホストトラフィックを通信する手段の物理チャネルと区別可能な少なくとも１つの物理チャネルを介したものであるシステム。
【００９１】
ＥＣ５８）ＥＣ５５記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段および前記ホストトラフィックを通信する手段のうち１若しくはそれ以上は、周辺機器相互接続エクスプレス（ＰＣＩｅ）規格と互換性があるものであるシステム。
【００９２】
ＥＣ５９）ＥＣ５５記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段および前記ホストトラフィックを通信する手段のうち１若しくはそれ以上は、ＩｎｆｉｎｉＢａｎｄ規格と互換性があるものであるシステム。
【００９３】
ＥＣ６０）ＥＣ５５記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段は、非トランスペアレントなスイッチの全部または任意部分を有するものであるシステム。
【００９４】
ＥＣ６１）ＥＣ５５記載のシステムにおいて、前記ホストトラフィックを通信する手段は、トランスペアレントなスイッチの全部または任意部分を有するものであるシステム。
【００９５】
ＥＣ６２）方法であって、
複数の物理的記憶装置にわたって分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにする工程であって、前記物理的記憶装置のうち１つは一次エージェントとして動作でき、前記物理的記憶装置のうち１若しくはそれ以上は二次エージェントとして動作できる、工程と、
前記一次エージェントと、前記二次エージェントのうち少なくとも１つとの間のピアツーピアトラフィックを通信する工程と
を有し、
前記一次エージェントは、冗長データ記憶用に前記二次エージェントの少なくとも一部を管理でき、
前記ピアツーピアトラフィックは、前記冗長データ記憶を実施するための冗長トラフィックを有するものである
システム。
【００９６】
ＥＣ６３）システムであって、
ホストインターフェース論理ハードウェアと、
少なくとも部分的に前記ホストインターフェース論理ハードウェアを介してホストと選択的に通信できる複数の物理的記憶装置であって、前記物理的記憶装置のうち少なくとも１つは一次エージェントとして動作でき、前記物理的記憶装置のうち１若しくはそれ以上それぞれの二次エージェントとして動作できる、複数の物理的記憶装置と、
前記一次エージェントと、前記二次エージェントのうち少なくとも１つとの間のピアツーピアトラフィックを可能にするピアツーピア通信論理ハードウェアと
を有し、
前記物理的記憶装置は、当該物理的記憶装置に分散された複数のストレージ範囲の集約を実装し、
前記一次エージェントは、冗長データ記憶を実施するよう前記二次エージェントの少なくとも一部を管理でき、
前記ピアツーピアトラフィックは、前記冗長データ記憶を実施するための冗長トラフィックを有するものである
システム。
【００９７】
ＥＣ６４）システムであって、
ピアツーピアプロトコルを介して複数の記憶エージェント間をインターフェース接続する手段と、
前記記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する手段であって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、障害を検出する手段と、
前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる手段であって、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、手段と
を有するシステム。
【００９８】
ＥＣ６５）ＥＣ６４記載のシステムにおいて、前記記憶エージェントは、二次エージェントを有するものであるシステム。
【００９９】
ＥＣ６６）ＥＣ６４記載のシステムにおいて、前記記憶エージェントは、一次エージェントを有するものであるシステム。
【０１００】
ＥＣ６７）ＥＣ６４記載のシステムにおいて、前記手段は一次エージェントに有され、前記記憶エージェントは二次エージェントを有するものであるシステム。
【０１０１】
ＥＣ６８）ＥＣ６４記載のシステムにおいて、各前記記憶エージェントは、物理的ストレージの少なくとも各部分を実装するものであるシステム。
【０１０２】
ＥＣ６９）ＥＣ６８記載のシステムにおいて、前記各前記部分は、１若しくはそれ以上の不揮発性メモリを有するものであるシステム。
【０１０３】
ＥＣ７０）ＥＣ６４記載のシステムにおいて、さらに、
ローカルストレージを有し、前記割り当ての対象であるストレージは、前記ローカルストレージをさらに有するものであるシステム。
【０１０４】
ＥＣ７１）ＥＣ６４記載のシステムにおいて、前記障害は、部分的障害であり、前記障害の発生した記憶エージェントは、前記部分的障害後、少なくとも一部のストレージを実装し続けるものであるシステム。
【０１０５】
ＥＣ７２）ＥＣ７１記載のシステムにおいて、前記割り当ての対象であるストレージは、前記少なくとも一部のストレージをさらに有するものであるシステム。
【０１０６】
ＥＣ７３）ＥＣ６４記載のシステムにおいて、前記検出する手段は、前記記憶エージェントの１つにより少なくとも部分的に実装されるものであるシステム。
【０１０７】
ＥＣ７４）ＥＣ６４記載のシステムにおいて、前記検出する手段は、装置ドライバにより少なくとも部分的に実装されるものであるシステム。
【０１０８】
ＥＣ７５）ＥＣ６４記載のシステムにおいて、さらに、
１若しくはそれ以上の冗長性技術によりデータを回復する手段を有するものであるシステム。
【０１０９】
ＥＣ７６）ＥＣ７５記載のシステムにおいて、前記冗長性技術は、ミラーリング技術を有するものであるシステム。
【０１１０】
ＥＣ７７）ＥＣ７５記載のシステムにおいて、前記冗長性技術は、小型ディスク冗長アレイ（ＲＡＩＤ）技術を有するものであるシステム。
【０１１１】
ＥＣ７８）方法であって、
ピアツーピアプロトコルを介して複数の記憶エージェント間をインターフェース接続する工程と、
前記記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する工程であって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、工程と、
前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる工程であって、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、工程と
を有する方法。
【０１１２】
ＥＣ７９）システムであって、
複数の記憶エージェント間のピアツーピアプロトコル通信を可能にするピアツーピア通信論理ハードウェアと、
前記記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する障害検出論理ハードウェアであって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、障害検出論理ハードウェアと、
命令を実行できるプロセッサであって、前記命令が当該プロセッサにより実行されると、当該プロセッサは、前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる工程を有する動作を実施し、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、プロセッサと
を有するシステム。
【０１１３】
ＥＣ８０）命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
ピアツーピアプロトコルを介して複数の記憶エージェント間をインターフェース接続する工程を管理する工程と、
前記記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する工程を管理する工程であって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、工程と、
前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる工程を管理する工程であって、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、工程と
を有する動作が実行される、コンピュータ可読媒体。
【０１１４】
ＥＣ８１）システムであって、
複数の記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する手段であって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、障害を検出する手段と、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する手段と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する手段と
を有するシステム。
【０１１５】
ＥＣ８２）ＥＣ８１記載のシステムにおいて、前記交換用記憶エージェントは、ホットスペアであるシステム。
【０１１６】
ＥＣ８３）ＥＣ８１記載のシステムにおいて、前記交換用記憶エージェントは、前記障害の発生した記憶エージェント以外の前記記憶エージェントの１つであるシステム。
【０１１７】
ＥＣ８４）ＥＣ８３記載のシステムにおいて、前記交換用記憶エージェントは、一次エージェントであるシステム。
【０１１８】
ＥＣ８５）ＥＣ８３記載のシステムにおいて、前記交換用記憶エージェントは、一次エージェントまたは二次エージェントとして選択的に動作可能な設定可能エージェントであるシステム。
【０１１９】
ＥＣ８６）ＥＣ８１記載のシステムにおいて、前記検出する手段は、前記記憶エージェントの１つにより少なくとも部分的に実装されるものであるシステム。
【０１２０】
ＥＣ８７）ＥＣ８１記載のシステムにおいて、前記検出する手段は、装置ドライバにより少なくとも部分的に実装されるものであるシステム。
【０１２１】
ＥＣ８８）ＥＣ８１記載のシステムにおいて、さらに、
ホストインターフェース・プロトコルを介して前記ホストにインターフェース接続する手段であって、前記ホストへのインターフェース接続は、送信キュー内のエントリからの記憶要求読み出しを有し、当該インターフェース接続する手段は、前記単一の論理インターフェース提供に基づくものである、前記ホストにインターフェース接続する手段を有するものであるシステム。
【０１２２】
ＥＣ８９）ＥＣ８８記載のシステムにおいて、さらに、
前記記憶要求のアドレス情報に少なくとも部分的に基づいて、１若しくはそれ以上の記憶サブ要求を決定する手段を有するものであるシステム。
【０１２３】
ＥＣ９０）ＥＣ８９記載のシステムにおいて、さらに、
前記記憶エージェントのうちの二次エージェントに前記サブ要求を転送する手段を有するものであるシステム。
【０１２４】
ＥＣ９１）ＥＣ９０記載のシステムにおいて、さらに、
それぞれ前記サブ要求に対応したサブステータス情報を受信し、且つ前記受信されたサブステータス情報に少なくとも部分的に基づいて全体的なステータスを前記ホストに返す手段を有するものであるシステム。
【０１２５】
ＥＣ９２）ＥＣ８１記載のシステムにおいて、さらに、
前記記憶エージェント間でピアツーピアトラフィックを通信する手段を有するものであるシステム。
【０１２６】
ＥＣ９３）方法であって、
複数の記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する工程であって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、障害を検出する工程と、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する工程と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する工程と
を有する方法。
【０１２７】
ＥＣ９４）システムであって、
複数の記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する障害検出論理ハードウェアであって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、障害検出論理ハードウェアと、
命令を実行できるプロセッサであって、前記命令が当該プロセッサにより実行されると、当該プロセッサは、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する工程と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する工程と
を有する動作を実施する、プロセッサと
を有するシステム。
【０１２８】
ＥＣ９５）命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
複数の記憶エージェントのうち障害の発生した１つの記憶エージェントの障害を検出する工程を管理する工程であって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、工程と、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する工程を管理する工程と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する工程を管理する工程と
を有する動作が実行される、コンピュータ可読媒体。
【０１２９】
ＥＣ９６）システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、送信キュー内のエントリから記憶要求を読み出す手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段と、
前記記憶インターフェース手段を介して前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定するアドレス決定手段であって、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アドレス決定手段と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
【０１３０】
ＥＣ９７）ＥＣ９６記載のシステムにおいて、さらに、
前記アドレス情報に少なくとも部分的に基づいて、蓄積されたパリティデータを転送するため少なくとも１つの送信先を決定する送信先決定手段を有するものであるシステム。
【０１３１】
ＥＣ９８）ＥＣ９７記載のシステムにおいて、前記少なくとも１つの送信先は、前記ピアツーピアプロトコルを介して到達可能であるシステム。
【０１３２】
ＥＣ９９）ＥＣ９８記載のシステムにおいて、前記少なくとも１つの送信先は、前記一次エージェントであるシステム。
【０１３３】
ＥＣ１００）ＥＣ９８記載のシステムにおいて、前記少なくとも１つの送信先は、二次エージェントであるシステム。
【０１３４】
ＥＣ１０１）ＥＣ９６記載のシステムにおいて、前記アドレス決定手段は、１若しくはそれ以上の冗長性技術に基づいて動作するものであるシステム。
【０１３５】
ＥＣ１０２）ＥＣ１０１記載のシステムにおいて、前記冗長性技術は、１若しくはそれ以上のミラーリング技術および／または１若しくはそれ以上の小型ディスク冗長アレイ（ＲＡＩＤ）技術を有するものであるシステム。
【０１３６】
ＥＣ１０３）ＥＣ９６記載のシステムにおいて、前記ホストインターフェース手段は、前記ホストと前記大容量ストレージ間でデータを転送する手段をさらに有するものであるシステム。
【０１３７】
ＥＣ１０４）ＥＣ９６記載のシステムにおいて、前記同じ物理チャネルは、周辺機器相互接続エクスプレス（ＰＣＩｅ）規格と互換性があるものであるシステム。
【０１３８】
ＥＣ１０５）ＥＣ９６記載のシステムにおいて、前記同じ物理チャネルは、ＩｎｆｉｎｉＢａｎｄ規格と互換性があるものであるシステム。
【０１３９】
ＥＣ１０６）ＥＣ９６記載のシステムにおいて、前記大容量ストレージは、１若しくはそれ以上の不揮発性メモリを有するものであるシステム。
【０１４０】
ＥＣ１０７）方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程であって、送信キュー内のエントリから記憶要求を読み出す工程を有する、ホストにインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定する工程であって、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と、
記憶容量がゼロである旨を前記ホストに報告し、且つ前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有し、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
【０１４１】
ＥＣ１０８）システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ送信キュー内のエントリから記憶要求を読み出せるホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
前記大容量ストレージ・ハードウェア・インターフェースを介して前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定できるアクセスアドレス決定論理ハードウェアであって、前記決定は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アクセスアドレス決定論理ハードウェアと、
記憶容量がゼロである旨を前記ホストに報告でき、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
【０１４２】
ＥＣ１０９）命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程を管理する工程であって、前記ホストにインターフェース接続する工程は、送信キュー内のエントリから記憶要求を読み出す工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程を管理する工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定する工程を管理する工程であって、前記決定する工程は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と、
記憶容量がゼロである旨を前記ホストに報告する工程を管理し、且つ前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有する動作が実行され、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
【０１４３】
ＥＣ１１０）システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、前記ホストと前記大容量ストレージ間でデータを転送する手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段であって、前記一次エージェントから転送されてくる記憶要求を受信する手段を有する、一次エージェントインターフェース手段と、
前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定するアドレス決定手段であって、前記転送されてくる記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アドレス決定手段と
を有し、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の１若しくはそれ以上のアドレス範囲を参照し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
【０１４４】
ＥＣ１１１）ＥＣ１１０記載のシステムにおいて、さらに、
前記アドレス情報に少なくとも部分的に基づいて、蓄積されたパリティデータを転送するため少なくとも１つの送信先を決定する送信先決定手段を有するものであるシステム。
【０１４５】
ＥＣ１１２）ＥＣ１１１記載のシステムにおいて、前記少なくとも１つの送信先は、前記ピアツーピアプロトコルを介して到達可能であるシステム。
【０１４６】
ＥＣ１１３）ＥＣ１１２記載のシステムにおいて、前記少なくとも１つの送信先は、前記一次エージェントであるシステム。
【０１４７】
ＥＣ１１４）ＥＣ１１２記載のシステムにおいて、前記少なくとも１つの送信先は、二次エージェントであるシステム。
【０１４８】
ＥＣ１１５）ＥＣ１１０記載のシステムにおいて、前記アドレス決定手段は、１若しくはそれ以上の冗長性技術に基づいて動作するものであるシステム。
【０１４９】
ＥＣ１１６）ＥＣ１１５記載のシステムにおいて、前記冗長性技術は、１若しくはそれ以上のミラーリング技術および／または１若しくはそれ以上の小型ディスク冗長アレイ（ＲＡＩＤ）技術を有するものであるシステム。
【０１５０】
ＥＣ１１７）ＥＣ１１０記載のシステムにおいて、さらに、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段を有するものであるシステム。
【０１５１】
ＥＣ１１８）ＥＣ１１０記載のシステムにおいて、前記同じ物理チャネルは、周辺機器相互接続エクスプレス（ＰＣＩｅ）規格と互換性があるものであるシステム。
【０１５２】
ＥＣ１１９）ＥＣ１１０記載のシステムにおいて、前記同じ物理チャネルは、ＩｎｆｉｎｉＢａｎｄ規格と互換性があるものであるシステム。
【０１５３】
ＥＣ１２０）ＥＣ１１０記載のシステムにおいて、前記大容量ストレージは、１若しくはそれ以上の不揮発性メモリを有するものであるシステム。
【０１５４】
ＥＣ１２１）方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程であって、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、ホストにインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程であって、前記一次エージェントから転送されてくる記憶要求を受信する工程を有する、一次エージェントにインターフェース接続する工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定する工程であって、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と
を有し、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の１若しくはそれ以上のアドレス範囲を参照し、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
【０１５５】
ＥＣ１２２）システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ少なくとも部分的に前記大容量ストレージ・ハードウェア・インターフェースを介して前記ホストと前記大容量ストレージ間でデータを転送できる、ホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントから転送されてくる記憶要求の受信を可能にする記憶要求受け付け論理ハードウェアと、
前記大容量ストレージ・ハードウェア・インターフェースを介して前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定できるアクセスアドレス決定論理ハードウェアであって、前記決定は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アクセスアドレス決定論理ハードウェアと
を有し、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の１若しくはそれ以上のアドレス範囲を参照し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
【０１５６】
ＥＣ１２３）命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程を管理する工程であって、前記ホストにインターフェース接続する工程は、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程を管理する工程であって、前記一次エージェントにインターフェース接続する工程は、前記一次エージェントから転送されてくる記憶要求を受信する工程を有する、工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも１つのアドレスを決定する工程を管理する工程であって、前記決定する工程は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と
を有する動作が実行され、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の１若しくはそれ以上のアドレス範囲を参照し、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
【０１５７】
ＥＣ１２４）システムであって、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、送信キュー内のエントリから記憶要求を読み出す手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して二次エージェントにインターフェース接続する二次エージェントインターフェース手段であって、前記二次エージェントに記憶サブ要求を転送する手段を有する、二次エージェントインターフェース手段と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定するサブ要求生成手段と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記二次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
【０１５８】
ＥＣ１２５）ＥＣ１２４記載のシステムにおいて、さらに、
大容量ストレージにインターフェース接続するストレージインターフェース手段を有するものであるシステム。
【０１５９】
ＥＣ１２６）ＥＣ１２５記載のシステムにおいて、前記大容量ストレージは、１若しくはそれ以上の不揮発性メモリを有するものであるシステム。
【０１６０】
ＥＣ１２７）方法であって、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程であって、送信キュー内のエントリから記憶要求を読み出す工程を有する、ホストとインターフェース接続する工程と、
ピアツーピアプロトコルを介して二次エージェントとインターフェース接続する工程であって、前記二次エージェントに記憶サブ要求を転送する工程を有する、二次エージェントとインターフェース接続する工程と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定する工程と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告する工程と
を有し、
前記ホストとインターフェース接続する工程および前記二次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
【０１６１】
ＥＣ１２８）システムであって、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ送信キュー内のエントリから記憶要求を読み出せるホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して二次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記二次エージェントに記憶サブ要求を転送できる要求転送論理ハードウェアと、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定できるサブ要求決定論理ハードウェアと、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記二次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
【０１６２】
ＥＣ１２９）命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程を管理する工程であって、前記ホストとインターフェース接続する工程は、送信キュー内のエントリから記憶要求を読み出す工程を有する、工程と、
ピアツーピアプロトコルを介して二次エージェントとインターフェース接続する工程を管理する工程であって、前記二次エージェントとインターフェース接続する工程は、前記二次エージェントに記憶サブ要求を転送する工程を有する、工程と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定する工程を管理する工程と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告する工程を管理する工程と
を有する動作が実行され、
前記ホストとインターフェース接続する工程および二次エージェントとインターフェース接続する工程を管理する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
【０１６３】
ＥＣ１３０）システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、前記ホストと前記大容量ストレージ間でデータを転送する手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段であって、前記一次エージェントから転送されてくる記憶サブ要求を受信する手段を有する、一次エージェントインターフェース手段と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
【０１６４】
ＥＣ１３１）ＥＣ１３０記載のシステムにおいて、前記大容量ストレージは、１若しくはそれ以上の不揮発性メモリを有するものであるシステム。
【０１６５】
ＥＣ１３２）方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程であって、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、ホストとインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程であって、前記一次エージェントから転送されてくる記憶サブ要求を受信する工程を有する、一次エージェントとインターフェース接続する工程と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有し、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
【０１６６】
ＥＣ１３３）システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ少なくとも部分的に前記大容量ストレージ・ハードウェア・インターフェースを介して前記ホストと前記大容量ストレージ間でデータを転送できる、ホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントから転送されてくる記憶サブ要求を受信できるサブ要求受信論理ハードウェアと、
記憶容量がゼロである旨を前記ホストに報告でき、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
【０１６７】
ＥＣ１３４）命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程を管理する工程であって、前記ホストとインターフェース接続する工程は、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程を管理する工程であって、前記一次エージェントとインターフェース接続する工程は、前記一次エージェントから転送されてくる記憶サブ要求を受信する工程を有する、工程と、
記憶容量がゼロである旨を前記ホストに報告する工程を管理し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有する動作が実行され、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
【０１６８】
ＥＣ１３５）システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、前記ホストと前記大容量ストレージ間でデータを転送する手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段であって、当該一次エージェントインターフェース手段は、前記一次エージェントから転送されてくるサブ要求を受信する手段および前記一次エージェントにサブステータスを送信する手段を有し、前記サブステータスは、前記サブ要求に基づく前記大容量ストレージへのアクセスの結果に少なくとも部分的に基づいたものである、一次エージェントインターフェース手段と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
【０１６９】
ＥＣ１３６）ＥＣ１３５記載のシステムにおいて、前記一次エージェントインターフェース手段は、前記一次エージェントと冗長性情報を通信する手段をさらに有するものであるシステム。
【０１７０】
ＥＣ１３７）ＥＣ１３６記載のシステムにおいて、前記冗長性情報は、１若しくはそれ以上のミラーリング技術および／または１若しくはそれ以上の小型ディスク冗長アレイ（ＲＡＩＤ）技術と互換性があるものであるシステム。
【０１７１】
ＥＣ１３８）ＥＣ１３５記載のシステムにおいて、前記同じ物理チャネルは、周辺機器相互接続エクスプレス（ＰＣＩｅ）規格と互換性があるものであるシステム。
【０１７２】
ＥＣ１３９）ＥＣ１３５記載のシステムにおいて、前記同じ物理チャネルは、ＩｎｆｉｎｉＢａｎｄ規格と互換性があるものであるシステム。
【０１７３】
ＥＣ１４６）ＥＣ１３５記載のシステムにおいて、前記大容量ストレージは、１若しくはそれ以上の不揮発性メモリを有するものであるシステム。
【０１７４】
ＥＣ１４１）方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程であって、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、ホストとインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程であって、当該一次エージェントとインターフェース接続する工程は、前記一次エージェントから転送されてくるサブ要求を受信する工程および前記一次エージェントにサブステータスを送信する手段を有し、前記サブステータスは、前記サブ要求に基づく前記大容量ストレージへのアクセスの結果に少なくとも部分的に基づいたものである、一次エージェントとインターフェース接続する工程と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有し、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
【０１７５】
ＥＣ１４２）システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ少なくとも部分的に前記大容量ストレージ・ハードウェア・インターフェースを介して前記ホストと前記大容量ストレージ間でデータを転送できる、ホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントから転送されてくる記憶サブ要求を受信できるサブ要求受信論理ハードウェアと、
前記サブ要求に基づいて前記大容量ストレージ・ハードウェア・インターフェースを介した前記大容量ストレージへのアクセスに少なくとも部分的に基づいて、サブステータスを決定できるサブステータス決定論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントに前記サブステータスを転送できるサブステータス転送論理ハードウェアと、
記憶容量がゼロである旨を前記ホストに報告でき、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
【０１７６】
ＥＣ１４３）命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程を管理する工程であって、前記ホストとインターフェース接続する工程は、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程を管理する工程であって、前記一次エージェントとインターフェース接続する工程は、前記一次エージェントから転送されてくるサブ要求を受信する工程および前記一次エージェントにサブステータスを送信する工程を有し、前記サブステータスは、前記サブ要求に基づく前記大容量ストレージへのアクセスの結果に少なくとも部分的に基づいたものである、工程と、
記憶容量がゼロである旨を前記ホストに報告する工程を管理し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程を管理する工程と
を有する動作が実行され、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
【０１７７】
ＥＣ１４４）方法であって、
ストレージの１つのアドレスにアクセスする要求をホストから受け付ける工程と、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちいずれの１若しくはそれ以上に前記要求が対応するかを決定する工程と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する工程と、
前記対応する決定された記憶装置に前記サブ要求を送信する工程と、
前記決定された各記憶装置から各サブステータスを受け付ける工程と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する工程と、
前記全体的なステータスを前記ホストに提供する工程と
を有し、
前記要求を受け付ける工程、前記記憶装置を決定する工程、前記サブ要求を決定する工程、前記サブ要求を送信する工程、前記サブステータスを受け付ける工程、前記全体的なステータスを決定する工程、および前記全体的なステータスを提供する工程は、前記記憶装置のうち特定の１つにより実行され、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルを介し、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルを介し、
前記記憶装置のうちの少なくとも１つは、前記サブ要求の１つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも１つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
方法。
【０１７８】
ＥＣ１４５）ＥＣ１４４記載の方法において、前記ホストインターフェース・プロトコルおよび前記ピアツーピアプロトコルは、周辺機器相互接続エクスプレス（ＰＣＩｅ）チャネルと互換性があるものである方法。
【０１７９】
ＥＣ１４６）ＥＣ１４４記載の方法において、前記要求を受け付ける工程は、ホストメモリ内に保持された送信キュー内のエントリを読み出す工程を有するものである方法。
【０１８０】
ＥＣ１４７）ＥＣ１４４記載の方法において、前記全体的なステータスを提供する工程は、ホストメモリ内に保持された完了キューにエントリを書き込む工程を有するものである方法。
【０１８１】
ＥＣ１４８）ＥＣ１４４記載の方法において、さらに、
各前記決定された記憶装置により、前記サブ要求に対応するデータ転送部分を独立して実行する工程を有するものである方法。
【０１８２】
ＥＣ１４９）ＥＣ１４８記載の方法において、前記独立して実行する工程は、ホストメモリにアクセスする工程を有するものである方法。
【０１８３】
ＥＣ１５０）方法であって、
第１の記憶装置が、複数のホスト要求キューのうちの第１のホスト要求キューから第１の要求を読み出す工程と、
第２の記憶装置が、前記ホスト要求キューのうちの第２のホスト要求キューから第２の要求を読み出す工程であって、前記第２のホスト要求キューは、前記第１のホスト要求キューと区別可能であり、当該第２の記憶装置が読み出す工程は、前記第１の記憶装置が読み出す工程から独立したものである、工程と、
前記第１の記憶装置が、前記第１の要求の少なくとも一部を前記第２の記憶装置に転送する工程と、
前記第２の記憶装置が、前記第２の要求の少なくとも一部を前記第１の記憶装置に転送する工程であって、当該第２の記憶装置が転送する工程は、前記第１の記憶装置が転送する工程から独立したものである、工程と、
前記第１の記憶装置が、前記第２の要求の前記少なくとも一部に基づいて、第１のストレージにアクセスし、当該第１の記憶装置がアクセスする工程に少なくとも部分的に基づいて、第１のステータスを前記第２の記憶装置に返す工程と
前記第２の記憶装置が、前記第１の要求の前記少なくとも一部に基づいて、第２のストレージにアクセスし、当該第２の記憶装置がアクセスする工程に少なくとも部分的に基づいて、前記第１の記憶装置に第２のステータスを返す工程であって、前記第２の記憶装置がアクセスする工程は、前記第１の記憶装置がアクセスする工程から独立したものであり、前記第２のストレージは前記第１のストレージと区別可能である、工程と
を有する方法。
【０１８４】
ＥＣ１５１）ＥＣ１５０記載の方法において、前記ホスト要求キューはホストからアクセス可能であり、当該方法は、さらに、前記第２の記憶装置が、前記第２の要求に少なくとも部分的に基づいて、前記ホストに第３のステータスを返す工程と、前記第１の記憶装置が、前記第１の要求に少なくとも部分的に基づいて、前記ホストに第４のステータスを返す工程とを有するものである方法。
【０１８５】
ＥＣ１５２）ＥＣ１５０記載の方法において、前記第２の要求の前記少なくとも一部は少なくとも第１の部分であり、当該方法は、さらに、前記第２の記憶装置が、前記第２の要求の少なくとも第２の部分に基づいて、第３のストレージにアクセスする工程を有し、前記第２の要求の前記第１および前記第２の部分は、当該第２の要求の区別可能な部分である方法。
【０１８６】
ＥＣ１５３）ＥＣ１５０記載の方法において、前記ホスト要求キューはホストからアクセス可能であり、前記第２の要求の前記少なくとも一部は少なくとも第１の部分であり、当該方法は、さらに、前記第２の記憶装置が、前記第２の要求の少なくとも第２の部分に基づいて、第３のストレージにアクセスする工程と、前記第２の記憶装置が、前記第３のストレージにアクセスする工程に少なくとも部分的に基づいて、前記ホストに第３のステータスを返す工程とを有し、前記第２の要求の前記第１および前記第２の部分は、当該第２の要求の区別可能な部分である方法。
【０１８７】
ＥＣ１５４）方法であって、
複数の物理的記憶装置への単一の論理インターフェースをホストに提供する工程であって、前記物理的記憶装置のうち１つは一次エージェントとして動作し、前記物理的記憶装置のうち１若しくはそれ以上は二次エージェントとして動作する、工程
を有し、
前記提供する工程は、
前記一次エージェントが、ストレージにアクセスする要求を前記ホストから受け付け、前記要求を１若しくはそれ以上のサブ要求として前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、且つ少なくとも前記サブステータスに基づいて全体的なステータスを前記ホストに提供する工程と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストアドレス指定情報をローカルコンテキストアドレス指定情報に変換し、前記ローカルコンテキストアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、且つ前記一次エージェントに前記サブステータスを提供する工程と
を有し、
前記一次エージェントは、記憶容量について前記ホストからクエリーを受けると、前記一次エージェントにより実装されたストレージおよび前記二次エージェントにより実装されたストレージに少なくとも部分的に基づく記憶容量を報告し、
各前記二次エージェントは、記憶容量について前記ホストからクエリーを受けると、前記一次エージェントにより報告される記憶容量に少なくとも部分的に基づいて各々の記憶容量を報告する
方法。
【０１８８】
ＥＣ１５５）ＥＣ１５４記載の方法において、前記一次エージェントにより報告される記憶容量は、前記二次エージェントのうち特定の１つの二次エージェントにより実装されたストレージの少なくとも一部に基づいて増加され、当該方法は、さらに、前記特定の二次エージェントが、当該特定の二次エージェントにより実装されたストレージの少なくとも一部に基づいて、当該特定の二次エージェントの記憶容量を、減少したものとして前記ホストに報告する工程を有するものである方法。
【０１８９】
ＥＣ１５６）ＥＣ１５４記載の方法において、前記二次エージェントのうち特定の１つの二次エージェントは、記憶容量について前記ホストからクエリーを受けると、前記特定の二次エージェントにより実装された全ストレージが前記一次エージェントにより報告される記憶容量に考慮される場合、記憶容量がゼロである旨を報告するものである方法。
【０１９０】
ＥＣ１５７）ＥＣ１５４記載の方法において、前記一次エージェントは、ホストインターフェース・プロトコルを介して前記ホストと通信できるものである方法。
【０１９１】
ＥＣ１５８）ＥＣ１５４記載の方法において、前記一次エージェントおよび前記二次エージェントは、ピアツーピアプロトコルを介して相互に通信できるものである方法。
【０１９２】
ＥＣ１５９）ＥＣ１５４記載の方法において、前記一次エージェントは、同じ物理リンクを介して、前記ホスト、ならびに前記二次エージェントのうち少なくとも１つと通信できるものである方法。
【０１９３】
ＥＣ１６０）システムであって、
ホストインターフェース・プロトコルを介してホストにインターフェース接続でき、且つピアツーピアプロトコルを介して二次エージェントにインターフェース接続できるホストインターフェース論理であって、前記ホストへのインターフェース接続は、送信キュー内のエントリから記憶要求を読み出す工程を有し、前記二次エージェントへのインターフェース接続は、前記二次エージェントに記憶サブ要求を転送する工程を有し、前記ホストへのインターフェース接続および前記二次エージェントへのインターフェース接続は、同じ物理チャネルを介したものである、ホストインターフェース論理と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定できるサブ要求生成論理と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告できる記憶容量報告論理と
を有するシステム。
【０１９４】
ＥＣ１６１）ＥＣ１６０記載のシステムにおいて、前記物理チャネルは、周辺機器相互接続エクスプレス（ＰＣＩｅ）チャネルおよびＩｎｆｉｎｉＢａｎｄチャネルのうちの少なくとも１つと互換性があるものであるシステム。
【０１９５】
ＥＣ１６２）ＥＣ１６０記載のシステムにおいて、さらに、
前記ホスト、前記二次エージェント、およびスイッチであって、前記ホストインターフェース論理および／または前記二次エージェントに前記ホストを連結するスイッチ、のうち１若しくはそれ以上を有するものであるシステム。
【０１９６】
ＥＣ１６３）ＥＣ１６０記載のシステムにおいて、さらに、
ストレージインターフェース論理および大容量ストレージを有し、前記ストレージインターフェース論理は、前記大容量ストレージにインターフェース接続でき、前記合計記憶容量は、さらに前記大容量ストレージの記憶容量に基づいたものであるシステム。
【０１９７】
ＥＣ１６４）ＥＣ１６０記載のシステムにおいて、前記ホストへのインターフェース接続は、完了キュー内のエントリに全体的なステータスを書き込む工程をさらに有し、前記二次エージェントへのインターフェース接続は、前記完了キューに全体的なステータスを書き込む工程を介して、前記全体的なステータスの少なくとも一部としてのサブステータスを前記二次エージェントから前記ホストに転送する工程をさらに有し、当該システムは、さらに、前記サブステータスに少なくとも部分的に基づいて前記全体的なステータスを決定できるサブステータス蓄積論理を有するものであるシステム。
【０１９８】
ＥＣ１６５）ＥＣ１６０記載のシステムにおいて、システムは、ソリッドステートディスク（ＳＳＤ）に有されるものであるシステム。
【０１９９】
ＥＣ１６６）システムであって、
ホストインターフェース・プロトコルを介してホストにインターフェース接続でき、且つピアツーピアプロトコルを介して二次エージェントにインターフェース接続できるホストインターフェース論理であって、前記ホストへのインターフェース接続は、送信キュー内のエントリから記憶要求を読み出す工程を有し、前記二次エージェントへのインターフェース接続は、前記二次エージェントに記憶サブ要求を転送する工程を有し、前記ホストへのインターフェース接続および前記二次エージェントへのインターフェース接続は、同じ物理チャネルを介したものである、ホストインターフェース論理と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定できるサブ要求生成論理と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告できる記憶容量報告論理と
を有するシステム。
【０２００】
ＥＣ１６７）ＥＣ１６６記載のシステムにおいて、前記物理チャネルは、周辺機器相互接続エクスプレス（ＰＣＩｅ）チャネルおよびＩｎｆｉｎｉＢａｎｄチャネルのうちの少なくとも１つと互換性があるものであるシステム。
【０２０１】
ＥＣ１６８）ＥＣ１６６記載のシステムにおいて、さらに、
前記ホスト、前記一次エージェント、スイッチであって、前記ホストインターフェース論理および／または前記一次エージェントに前記ホストを連結するスイッチ、および前記大容量ストレージの全部または任意部分のうち１若しくはそれ以上を有するものであるシステム。
【０２０２】
ＥＣ１６９）ＥＣ１６６記載のシステムにおいて、前記大容量ストレージは、複数のフラッシュ記憶装置を有するものであるシステム。
【０２０３】
ＥＣ１７０）ＥＣ１６６記載のシステムにおいて、当該システムは、ソリッドステートディスクに有されるものであるシステム。
【０２０４】
ＥＣ１７１）システムであって、
複数の物理的記憶装置と複数のポートを備える物理的スイッチ部分とを有する物理的構成要素を有するストレージサブシステムと、
専用ポイントツーポイントリンクを介して前記複数のポートのうち専用ポートに連結されたホストと
を有し、
各物理的記憶装置は、
少なくとも1つのストレージ範囲と、
各ポイントツーポイントリンクを介して前記複数の各ポートに連結できる少なくとも１つのポートと、
前記物理的記憶装置が、前記ストレージサブシステムの１若しくはそれ以上の一次エージェントおよび１若しくはそれ以上の二次エージェントのうちの少なくとも１つのエージェントとして動作することを可能にするエージェント論理であって、各一次エージェントは、ホストが開始したストレージアクセス要求を受け付け、サブ要求を生成し、且つサブステータスを蓄積することができ、各二次エージェントは、前記サブ要求のうちの少なくとも１つを受け付け、前記サブステータスのうちの少なくとも１つを生成することができるものである、前記エージェント論理と
を有し、
前記ストレージサブシステムは、１若しくはそれ以上の論理記憶装置を動作させることができ、各論理記憶装置により、前記ホストは、前記一次エージェントのうちの１つの一次エージェントおよび前記二次エージェントのうちの少なくとも１つの二次エージェントに対応する前記記憶装置にわたって分散されたストレージ範囲の集約体に、単一の論理インターフェースを介してアクセスすることが可能となるものである
システム。
【０２０５】
ＥＣ１７２）ＥＣ１７１記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、少なくとも一部の場合、前記一次エージェントのうちの少なくとも１つとして動作し、少なくとも一部の場合、前記二次エージェントのうちの少なくとも１つとして動作することを可能にする設定可能性（コンフィギュアビリティ）論理を有するものであるシステム。
【０２０６】
ＥＣ１７３）ＥＣ１７１記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントのうちの少なくとも１つとして、および前記二次エージェントのうちの少なくとも１つとして、並行して動作することを可能にする並行性論理を有するものであるシステム。
【０２０７】
ＥＣ１７４）ＥＣ１７１記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントおよび前記二次エージェントのうちの１つの専用エージェントとして動作することを可能にする専用エージェント論理を有するものであるシステム。
【０２０８】
ＥＣ１７５）ＥＣ１７１記載のシステムにおいて、さらに、
前記論理記憶装置のうちの第１の論理記憶装置は、前記一次エージェントのうちの少なくとも第１の一次エージェントと、１若しくはそれ以上の前記二次エージェントとを有し、
前記物理的スイッチ部分は、前記第１の一次エージェントと各前記二次エージェントとの間で、ホストから遮蔽されたピアツーピア通信を可能にするものである
システム。
【０２０９】
ＥＣ１７６）ＥＣ１７１記載のシステムにおいて、さらに、
前記複数のポートを備える物理的スイッチ部分は、第１の複数のポートを備える第１の物理的スイッチ部分であり、前記物理的構成要素は、さらに、第２の複数のポートを備える第２の物理的スイッチ部分を有し、
各物理的記憶装置は、さらに、各ポイントツーポイントリンクを介して各前記第２の複数のポートに連結できる少なくとも１つのポートを有するものである
システム。
【０２１０】
ＥＣ１７７）ＥＣ１７６記載のシステムにおいて、さらに、
前記第２の物理的スイッチ部分は、前記第１の物理的スイッチ部分を介した通信に利用可能な帯域幅に大きな影響を及ぼさずに、ピアツーピア通信により実施されるストレージ冗長性技術を可能にするものであるシステム。
【０２１１】
ＥＣ１７８）ＥＣ１７７記載のシステムにおいて、さらに、
前記ピアツーピア通信は、前記第２の物理的スイッチ部分を介し、制御情報、未変換冗長性データ、および変換済み冗長性データのうち１若しくはそれ以上を有するものであるシステム。
【０２１２】
ＥＣ１７９）ＥＣ１７６記載のシステムにおいて、さらに、
一単位の物理的スイッチは、前記第１の物理的スイッチ部分と、前記第２の物理的スイッチ部分とを有するものであるシステム。
【０２１３】
ＥＣ１８０）ＥＣ１７１記載のシステムにおいて、さらに、
前記単一の論理インターフェースは、ホストから遮蔽された前記一次および二次エージェント間のピアツーピア通信により実施されるミラーリング、ストライプ化、ＲＡＩＤパリティ、およびフェイルオーバーのうち１若しくはそれ以上を可能にするものであるシステム。
【０２１４】
ＥＣ１８１）ＥＣ１７１記載のシステムにおいて、さらに、
前記一次エージェントは、第１の一次エージェントと、第２の一次エージェントとを有し、
前記二次エージェントは、第１の二次エージェントと、第２の二次エージェントとを有し、
前記物理的記憶装置は、第１の物理的記憶装置と、第２の物理的記憶装置とを有し、
前記論理記憶装置は、第１の論理記憶装置と、第２の論理記憶装置とを有し、
前記要求の第１のサブセットに対し、前記第１の物理的記憶装置は、前記第１の一次エージェントおよび前記第１の二次エージェントとして動作し、
前記要求の第２のサブセットに対し、前記第２の物理的記憶装置は、前記第２の一次エージェントおよび前記第２の二次エージェントとして動作し、
前記第１の論理記憶装置は、前記第１の一次エージェントと、前記第２の二次エージェントとを有し、前記第２の論理記憶装置は、前記第２の一次エージェントと、前記第１の二次エージェントとを有し、前記第１の論理記憶装置は、前記第２の論理記憶装置と並行して動作するものである
システム。
【０２１５】
ＥＣ１８２）ＥＣ１８１記載のシステムにおいて、さらに、
前記要求の前記第１のサブセットは第１のホスト要求キューからであり、前記要求の前記第２のサブセットは第２のホスト要求キューからであるシステム。
【０２１６】
ＥＣ１８３）ＥＣ１８１記載のシステムにおいて、さらに、
前記ホストは第１のホストであり、前記要求の前記第１のサブセットは第１のホストからであり、前記要求の前記第２のサブセットは第２のホストからであるシステム。
【０２１７】
ＥＣ１８４）ＥＣ１８１記載のシステムにおいて、
前記要求の前記第１のサブセットおよび前記要求の前記第２のサブセットは同一のホスト要求キューからであるシステム。
【０２１８】
ＥＣ１８５）ＥＣ１７１記載のシステムにおいて、さらに
前記論理記憶装置のうちの第１の論理記憶装置は、前記一次エージェントのうちの少なくとも第１の一次エージェントと、前記二次エージェントのうちの少なくとも第１の二次エージェントとを有し、
前記第１の論理記憶装置の前記エージェントの前記ストレージ範囲の前記集約体は、第１の論理ストレージのサブ領域であり、
前記エージェント論理はストレージ復旧論理を有し、このストレージ復旧論理は、前記第１の一次エージェントが、１若しくはそれ以上の前記エージェントにより提供される利用可能な空きストレージを識別することを可能にし、且つ前記第１の論理ストレージのサブ領域の特定部分がもはや前記エージェントの１つにより提供されないことが決定された後、前記空きストレージからの割り当てを行うことにより、以前提供されていた前記特定部分を回復することを可能にするものである
システム。
【０２１９】
ＥＣ１８６）ＥＣ１７１記載のシステムにおいて、さらに、
前記論理記憶装置のうちの第１の論理記憶装置は、前記一次エージェントのうちの少なくとも第１の一次エージェントと、前記二次エージェントのうちの少なくとも第１の二次エージェントとを有し、
前記物理的記憶装置は、第１の物理的記憶装置と、第２の物理的記憶装置とを有し、
前記第１の物理的装置は、初期、前記第１の一次エージェントとして動作するものであり、
当該システムは、さらに、
前記第１の一次エージェントに障害が発生したことを決定し、他の前記エージェントから選択される１つのエージェントに一次エージェント交換要求を送信することが可能な監視エージェントを有し、
前記第２の物理的装置の前記エージェント論理は、前記第２の物理記憶装置が、前記監視エージェントから前記一次エージェント交換要求を受信すると、それに応答して前記第１の一次エージェントの交換装置として動作することを可能にする一次エージェント交換論理を有するものである
システム。
【０２２０】
ＥＣ１８７）方法であって、
一次エージェントとして第１の記憶装置を動作させ、１若しくはそれ以上の二次エージェントとして少なくとも１つの第２の記憶装置を動作させる工程であって、前記一次および二次エージェントの各記憶装置は、それぞれ少なくとも１つのストレージ範囲を有するものである、前記動作させる工程と、
前記一次エージェントが論理インターフェースを提供する工程であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散されたストレージ範囲の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストから送信され、前記一次エージェントにより受け付けられるストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを含むものである、前記提供する工程と、
前記一次エージェントが、１若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される全体的なステータスの各々を算出する工程と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する工程と
を有する方法。
【０２２１】
ＥＣ１８８）ＥＣ１８７記載の方法において、さらに、
前記一次エージェントが、前記一次および二次エージェントの前記ストレージ範囲に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する工程と、
前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する工程と、
前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ範囲に相当する部分を除外した各々の記憶容量を報告する工程と
を有するものである方法。
【０２２２】
ＥＣ１８９）ＥＣ１８７記載の方法において、さらに、
前記ホストが記憶容量について前記二次エージェントのうち特定の１つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される前記集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する工程を有するものである方法。
【０２２３】
ＥＣ１９０）ＥＣ１８７記載の方法において、さらに、
ホストインターフェース・プロトコルに基づいて、前記一次エージェントの前記ホストとの通信の少なくとも一部を実行する工程を有するものである方法。
【０２２４】
ＥＣ１９１）ＥＣ１８７記載の方法において、さらに、
同じ物理リンクを共有することにより、前記一次エージェントの前記ホストとの通信の少なくとも一部、および前記一次エージェントの、前記二次エージェントのうち少なくとも１つとの通信の少なくとも一部を実行する工程
を有し、
前記一次エージェントの、前記二次エージェントのうち少なくとも１つとの通信は、前記サブ要求の少なくとも一部と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスの少なくとも一部を有するものである
方法。
【０２２５】
ＥＣ１９２）ＥＣ１８７記載の方法において、さらに、
ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する工程
を有し、
前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスを有するものである
方法。
【０２２６】
ＥＣ１９３）ＥＣ１９２記載の方法において、
前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して冗長性情報を交換する工程を有するものである方法。
【０２２７】
ＥＣ１９４）装置であって、
一次エージェントとして第１の記憶装置を動作させ、１若しくはそれ以上の二次エージェントとして少なくとも第２の記憶装置を動作させる手段であって、前記一次および二次エージェントの各記憶装置は、それぞれ少なくとも１つのストレージ範囲を有するものである、前記動作させる手段と、
前記一次エージェントが論理インターフェースを提供する手段であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散された前記ストレージ範囲の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストへ送信され、前記一次エージェントにより受け付けられたストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを有するものである、前記提供する手段と、
前記一次エージェントが、１若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される各全体的なステータスを算出する手段と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する手段と
を有する装置。
【０２２８】
ＥＣ１９５）ＥＣ１９４記載の装置において、さらに、
前記一次エージェントが、前記一次および二次エージェントの前記ストレージ範囲に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する手段と、
前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する手段と、
前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ範囲に相当する部分を除外した各々の記憶容量を報告する手段と
を有するものである装置。
【０２２９】
ＥＣ１９６）ＥＣ１９４記載の装置において、さらに、
前記ホストが記憶容量について前記二次エージェントのうち特定の１つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される前記集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する手段を有するものである装置。
【０２３０】
ＥＣ１９７）ＥＣ１９４記載の装置において、さらに、
ホストインターフェース・プロトコルに基づいて、前記一次エージェントの前記ホストとの通信の少なくとも一部を実行する手段を有するものである装置。
【０２３１】
ＥＣ１９８）ＥＣ１９４記載の装置において、さらに、
同じ物理リンクを共有することにより、前記一次エージェントの前記ホストとの通信の少なくとも一部、および前記一次エージェントの、前記二次エージェントのうち少なくとも１つとの通信の少なくとも一部を実行する手段
を有し、
前記一次エージェントの、前記二次エージェントのうち少なくとも１つとの通信は、前記サブ要求の少なくとも一部と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスの少なくとも一部を有するものである
装置。
【０２３２】
ＥＣ１９９）ＥＣ１９４記載の装置において、さらに、
ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する手段
を有し、
前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスを有するものである
装置。
【０２３３】
ＥＣ２００）ＥＣ１９９記載の装置において、
前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して交換される冗長性情報を有するものである装置。
【０２３４】
スケーラブルなストレージシステム
図１Ａは、スケーラブルな記憶装置用技術の一実施形態の構造を一部選んで詳しく例示したもので、ホストと、それぞれ一次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有し、ホストから見える（ｈｏｓｔ  ｖｉｓｉｂｌｅ）ストレージと、それぞれ二次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有し、ホストから見えない（ｈｏｓｔ  ｉｎｖｉｓｉｂｌｅ）ストレージとを含む。ホスト１００は、ホスト−記憶装置連結部１８０を通じて、ホストから見えるストレージ１１０およびホストから見えないストレージ１２０に連結される。前記ホスト−記憶装置連結部に加え、前記ホストから見えるストレージおよびホストから見えないストレージは、プラガブル（ｐｌｕｇｇａｂｌｅ）なモジュール（アドインカード１９０Ａとして図示）として任意選択的に実装され、かつ／または連結部１０１がケーブルとして任意選択的に実装される。一部の実施形態では、前記アドインカードの全部または任意部分がＳＳＤとして実装される。前記ホストから見えるストレージは、１若しくはそれ以上の記憶装置（記憶装置１１０．Ａおよび記憶装置１１０．Ｎとして図示）を有する。同様に、前記ホストから見えないストレージは、１若しくはそれ以上の記憶装置（記憶装置１２０．Ａおよび記憶装置１２０．Ｎとして図示）を有する。種々の実施形態では、前記記憶装置のうちいずれか１つ若しくはそれ以上が、ＳＳＤなどの物理的記憶装置である。
【０２３５】
連結部１０１、１１１．Ａ、１１１．Ｎ、１２１．Ａ、および１２１．Ｎにより、前記ホスト、前記ホストから見えるストレージ、および前記ホストから見えないストレージの間の要求、ステータス、およびデータ転送が可能になる。前記連結部のうち１若しくはそれ以上により、ホストインターフェース・プロトコルを介した（例えば、前記ホストがマスターとして機能し、前記ホストから見えるストレージ要素の１つがスレーブとして動作する）転送が可能になる。前記連結部のうち１若しくはそれ以上により、ピアツーピアプロトコルを介した（例えば、前記ホストから見えるストレージ要素の１つが一次エージェントとして動作し、前記ホストから見えないストレージ要素の１つまたは前記ホストから見えるストレージの他の要素の１つが二次エージェントとして動作する）転送が可能になる。種々の実施形態において、前記連結部のうち１若しくはそれ以上は、インターフェース規格（例えば、ＰＣＩｅまたはＩｎｆｉｎｉＢａｎｄ）と互換性がある。種々の実施形態では、１若しくはそれ以上のＰＣＩｅおよび／またはＩｎｆｉｎｉＢａｎｄスイッチを経由してホスト−記憶装置連結部１８０が実装される。一部の実施形態では、ホストコンピュータ複合体の全部または任意部分としてホスト−記憶装置連結部１８０が前記ホストと統合される。
【０２３６】
前記ホストから見えるストレージ要素はストレージを実装し、初期化中、前記実装されたストレージの少なくとも一部へのホストアクセスが可能になるよう前記要素が構成されることで、ホストインターフェース・プロトコルなどを介して前記ホストから「見える（ｖｉｓｉｂｌｅ）」ストレージが提供される。前記ホストから見えないストレージ要素もストレージを実装するが、初期化中、前記実装されたストレージの少なくとも一部へのホストアクセスが無効化されるよう前記要素が構成されることで、前記ホストから「見えない（ｉｎｖｉｓｉｂｌｅ）」ストレージが提供される。ただし、前記ホストから見えないストレージは、前記ホストから見えるストレージの要素を介し、例えばピアツーピアプロトコルを介して、前記ホストから間接的にアクセス可能である。
【０２３７】
破線矢印１５１は、ホスト１００と記憶装置１１０．Ａ間の情報転送を概念的に例示したもので、前記ホストと前記ホストから見えるストレージ１１０の任意の要素との間の情報転送を表している。これらの情報転送には、ストレージにアクセスするため前記ホストから発信される要求、前記要求に関係したステータス応答、および前記要求に関係したデータ転送のうち１若しくはそれ以上が含まれる。前記要求には、アドレス（例えば、ＬＢＡ）および長さ（例えば、バイトまたはＬＢＡ単位）のうち１若しくはそれ以上が含まれる。前記ホストから前記記憶装置への前記情報転送は、連結部１０１、ホスト−記憶装置連結部１８０、そして連結部１１１．Ａを通じて通信され、前記記憶装置から前記ホストへの情報転送は、その逆に通信される。
【０２３８】
破線矢印１５２は、記憶装置１１０．Ａと記憶装置１２０．Ａ間の情報転送を概念的に例示したもので、前記ホストから見えるストレージ１１０の任意の要素と、前記ホストから見えないストレージ１２０の任意の要素との間のピアツーピア情報転送を表している。これらの情報転送には、記憶装置１１０．Ａ（一次エージェントとして機能する）から前記ホストから見えないストレージ１２０の任意の要素（二次エージェントとして機能する）へのサブ要求、前記サブ要求に関係したサブステータス応答、および前記サブ要求に関係したデータ転送のうち１若しくはそれ以上が含まれる。前記サブ要求には、アドレス（例えば、ＬＢＡ）および長さ（例えば、バイトまたはＬＢＡ単位）のうち１若しくはそれ以上が含まれる。前記一次エージェントから前記二次エージェントへの前記情報転送は、連結部１１１．Ａ、ホスト−記憶装置連結部１８０、そして連結部１２１．Ａを通じて通信され、前記二次エージェントから前記一次エージェントへの情報転送は、その逆に通信される。
【０２３９】
破線矢印１５３は、記憶装置１１０．Ａと記憶装置１１０．Ｎ間の情報転送を概念的に例示したもので、前記ホストから見えるストレージ１１０の任意の要素同士の間のピアツーピア情報転送を表している。これらの情報転送には、記憶装置１１０．Ａ（一次エージェントとして機能する）から、前記ホストから見えるストレージ１１０の任意の他の要素（二次エージェントとして機能する）へのサブ要求、前記サブ要求に関係したサブステータス応答、および前記サブ要求に関係したデータ転送のうち１若しくはそれ以上が含まれる。前記一次エージェントから前記二次エージェントへの前記情報転送は、連結部１１１．Ａ、ホスト−記憶装置連結部１８０、そして連結部１１１．Ｎを通じて通信され、前記二次エージェントから前記一次エージェントへの情報転送は、その逆に通信される。
【０２４０】
破線矢印１５４は、ホスト１００と記憶装置１２０．Ａ間の情報転送を概念的に例示したもので、前記ホストと前記ホストから見えないストレージ１２０の任意の要素との間の情報転送を表している。これらの情報転送には、前記要求に関係した全体的なステータス応答、および前記要求に関係したデータ転送のうち１若しくはそれ以上が含まれる。明瞭性のため、図中ではそのように示していないが、前記ホストから前記記憶装置への前記情報転送は、連結部１０１、ホスト−記憶装置連結部１８０、そして連結部１２１．Ａを通じて通信され、前記記憶装置から前記ホストへの情報転送は、その逆に通信される。
【０２４１】
一部の実施形態において、ホストから発信される要求は、ホストメモリ内の１若しくはそれ以上の送信キューを通じて行われ、それらの送信キューは、連結部１０１を通じて（例えば、１若しくはそれ以上のＤＭＡ動作により送信キュー内のエントリを読み出す一次エージェントにより）アクセス可能である。一部の実施形態において、ホストに提供されるステータスは、ホストメモリ内の１若しくはそれ以上の完了キューを通じて行われ、それらの完了キューは、一次および／または二次エージェントから（例えば、１若しくはそれ以上のＤＭＡ動作により完了キュー内のエントリを書き込む一次または二次エージェントにより）アクセス可能である。一部の実施形態において、要求および／またはステータスは、少なくとも部分的に１若しくはそれ以上のドアベルおよび／またはテールレジスタを介して、任意選択的に１若しくはそれ以上の送信および／または完了キューと併せて通信される。一部の実施形態において、要求および／またはステータスは、ホストにより開始される少なくとも部分的にプログラムされた入出力動作を通じて一次エージェントに通信される。一部の実施形態において、送信および／または完了キュー記述子は、ホストにより開始される少なくとも部分的にプログラムされた入出力動作を通じて一次エージェントに通信される。
【０２４２】
一部の実施形態において、ホストからの要求を受け付ける工程には、送信キューから１若しくはそれ以上のエントリを読み出す工程が含まれる。例えば、ホストは、ホストメモリ内に保持される送信キューに特定のエントリを書き込み、テールレジスタを適宜修正し、それに対応するドアベルレジスタ（例えば、一次エージェント内に実装され、および／または一次エージェントからアクセス可能なドアベルレジスタ）を設定する。前記ドアベルレジスタが設定されると、それに応答して前記一次エージェントは前記テールレジスタにアクセスし、特定の送信キューエントリを読み出す（例えば、前記ホストメモリからのＤＭＡ読み出しにより）。一部の実施形態において、ホストにステータスを提供する工程には、完了キューに１若しくはそれ以上のエントリを書き込む工程が含まれる。例えば、一次エージェントは、ホストメモリ内に保持される完了キューに特定のエントリを書き込み（例えば、前記ホストメモリへのＤＭＡ書き込みにより）、テールレジスタを適宜修正し、完成した動作についてホストへの通知を行う（例えば、対応するドアベルレジスタの設定または割り込みの提供により）。前記ドアベルレジスタが設定されると、それに応答して前記ホストは前記テールレジスタにアクセスし、特定の完了キューエントリを読み出す。
【０２４３】
一部の実施形態において、サブ要求は、そのサブ要求の元になった要求とは異なるルーティング、アドレス指定、および／またはカプセル化を使って二次エージェントに送信され、前記サブ要求は前記要求と同じ連結部を通じて伝送される。例えば、ＰＣＩｅ連結部を使って要求、サブ要求、およびサブステータストラフィックのいずれかまたは全部を伝送する例示的システムの場合、要求は、読み出し要求から完了として一次エージェントに提供される一方、サブ要求は、ＭｓｇＤ要求の一部として二次エージェントに転送される。一部の実施形態において、サブ要求は、前記サブ要求の元になった要求その他の情報を含むよう再パッケージ化される。例えば、再パッケージ化されたサブ要求には、追加情報、例えばフロー制御、拡張ルーティング情報、または前記要求の内容に関する他の追加情報が含まれる。一部の実施形態では、拡張ルーティング情報により、１若しくはそれ以上の連結部を通じてリモート二次エージェントへのサブ要求の送信が可能になる。
【０２４４】
一部の実施形態において、サブステータスは、そのサブステータスに対応する要求と異なるルーティング、アドレス指定、および／またはカプセル化を使って一次エージェントに送信され、前記サブステータスは前記要求と同じ連結部を通じて伝送される。例えば、ＰＣＩｅ連結部を使って要求、サブ要求、およびサブステータストラフィックのいずれかまたは全部を伝送する例示的システムの場合、要求は、読み出し要求から完了として一次エージェントに提供される一方、サブステータスは、ＭｓｇＤ要求の一部として二次エージェントから前記一次エージェントに返される。一部の実施形態において、サブステータスは、当該サブステータスおよび／または当該サブステータスに対応する要求その他の情報を含むよう再パッケージ化される。例えば、再パッケージ化されたサブステータスには、追加情報、例えばフロー制御、拡張ルーティング情報、または前記要求の内容に関する他の追加情報が含まれる。一部の実施形態では、拡張ルーティング情報により、１若しくはそれ以上の連結部を通じてリモート二次エージェントからサブステータスの送信が可能になる。
【０２４５】
具体例として、ホスト１００はマスターとして機能し、ホストインターフェース・プロトコルを介して、ストレージにアクセスする要求を記憶装置１１０．Ａに提供する（破線矢印１５１で概念的に例示）。それに対し、記憶装置１１０．Ａはスレーブとして機能し、前記要求に応答する。記憶装置１１０．Ａは、前記ホストインターフェース・プロトコルを介して前記要求を受け付けたのち（これも破線矢印１５１で概念的に例示）、前記要求に関係したストレージが記憶装置１１０．Ａにより、および／または前記ホストから見えないストレージ１２０の要素のうち１若しくはそれ以上により、あるいは前記ホストから見えるストレージ１１０の任意の他の要素により、実装されているかどうかを決定する。次に、記憶装置１１０．Ａは、前記要求を内部処理し（前記ストレージの少なくとも一部が記憶装置１１０．Ａにより実装されている場合）、および／または一次エージェントとして機能し、前記ピアツーピアプロトコルを介して、前記要求を１若しくはそれ以上のピアツーピアサブ要求として記憶装置１２０．Ａに転送する（破線矢印１５２で概念的に例示）。記憶装置１２０．Ａは、二次として機能し、ピアツーピアプロトコルを介して前記サブ要求を受け付けたのち（これも破線矢印１５２で概念的に例示）、前記サブ要求を内部処理する。次に、記憶装置１２０．Ａは、前記サブ要求に対応するサブステータスを記憶装置１１０．Ａに返す（これも破線矢印１５２で概念的に例示）。そして、記憶装置１１０．Ａは、前記要求に関する全体的なステータスを決定し、その全体的なステータスを前記ホストに提供する（破線矢印１５１で概念的に例示）。あるいは、記憶装置１２０．Ａは、前記サブステータスを記憶装置１１０．Ａに返す（次いでホスト１００へ転送）代わりに、前記サブステータスをホスト１００に直接返す（破線矢印１５４で概念的に例示）。
【０２４６】
前記具体例について続けると、読み出し用データはステータスと同様に流れる。記憶装置１２０．Ａが前記サブ要求に対応するデータを記憶装置１１０．Ａに返すと（破線矢印１５２で概念的に例示）、記憶装置１１０．Ａは、前記データを前記ホストに提供する（破線矢印１５１で概念的に例示）。あるいは、記憶装置１２０．Ａは、前記データを記憶装置１１０．Ａに返す（次いでホスト１００へ転送）代わりに、前記データをホスト１００に直接返す（破線矢印１５４で概念的に例示）。特定の要求に関するステータスおよびデータは、同じフローに限定されない。例えば、１つの要求に関するステータスおよびデータは、どちらも二次装置（例えば、記憶装置１２０．Ａ）から一次エージェント（例えば、記憶装置１１０．Ａ）経由でホスト１００に流れる。別の要求について、ステータスは前記二次エージェントから前記一次エージェント経由で前記ホストに流れ、データは前記二次エージェントから前記ホストに直接流れる。書き込み用データは、前記ホストから前記一次エージェント経由で前記二次エージェントに流れ（破線矢印１５１および１５２で概念的に例示）、または前記ホストから前記二次エージェントに直接流れる（破線矢印１５４で概念的に例示）。
【０２４７】
他の例としては、前記ホストから見えるストレージ１１０の要素のうちいずれか１つ若しくはそれ以上が、１若しくはそれ以上の一次エージェントとして機能し、前記ホストから見えないストレージ１２０の要素のうちいずれか１つ若しくはそれ以上または前記ホストから見えるストレージ１１０の他の要素のうちいずれか１つ若しくはそれ以上が、１若しくはそれ以上の二次エージェントとして機能するなどがある。
【０２４８】
図１Ｂは、スケーラブルな記憶装置用技術の別の一実施形態の構造を一部選んで詳しく例示したもので、ホスト、ホストから見えるストレージであって、それぞれ一次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有する、ホストから見えるストレージ、およびホストから見えないストレージであって、それぞれ二次エージェントとして動作可能な１若しくはそれ以上の記憶装置を有する、ホストから見えないストレージを含む。この技術で使用するいくつかの要素は、図１Ａで同様に識別されている要素（ホスト１００、ホスト−記憶装置連結部１８０、および連結部１０１、１１１．Ａ、１１１．Ｎ、１２１．Ａ、および１２１．Ｎ）と動作および構造が同一である。ホストから見えるストレージ１３０は、図１Ａのホストから見えるストレージ１１０と同様であるが、その内部の記憶装置（記憶装置１３０．Ａおよび記憶装置１３０．Ｎ）が、それぞれ追加連結部（それぞれ連結部１３１．Ａおよび１３１．Ｎ）を通じて通信できる点で異なる。ホストから見えないストレージ１４０は、図１Ａのホストから見えないストレージ１２０と同様であるが、その内部の記憶装置（記憶装置１４０．Ａおよび記憶装置１４０．Ｎ）が、それぞれ追加連結部（それぞれ連結部１４１．Ａおよび１４１．Ｎ）を通じて通信できる点で異なる。装置−記憶装置連結部１８１は、連結部１３１．Ａ、１３１．Ｎ、１４１．Ａ、および１４１．Ｎに連結され、ホストから見えるストレージ１３０およびホストから見えないストレージ１４０の任意の要素間で、例えばピアツーピア通信に有用な、追加通信帯域幅を可能にする。例えば、装置−記憶装置連結部１８１は、記憶装置１３０．Ａとホストから見えないストレージ１４０の任意の要素との間で追加通信帯域幅を可能にする。別の例として、装置−記憶装置連結部１８１は、記憶装置１３０．Ａと記憶装置１３０．Ｎ間で追加通信帯域幅を可能にする。
【０２４９】
前記ホスト−記憶装置連結部および前記装置−記憶装置連結部に加え、前記ホストから見えるストレージおよびホストから見えないストレージは、プラガブルなモジュール（アドインカード１９０Ｂとして図示）として任意選択的に実装され、かつ／または連結部１０１がケーブルとして任意選択的に実装される。一部の実施形態では、前記アドインカードの全部または任意部分がＳＳＤとして実装される。種々の実施形態では、前記記憶装置のうちいずれか１つ若しくはそれ以上がＳＳＤである。
【０２５０】
一部の実施形態および／または使用シナリオでは、装置−記憶装置連結部１８１により提供される追加通信帯域幅により、前記ホストと前記記憶装置間の通信に利用可能な帯域幅にほとんど若しくはまったく影響を及ぼすことなく、ピアツーピア通信により実施されるストレージ冗長性技術（例えば、ＲＡＩＤ  ５）が可能になる。前記ピアツーピア通信には、未変換データ（例えば、ＲＡＩＤミラーリング動作中）、変換済みデータ（例えば、ＲＡＩＤパリティ生成および／または書き込み中、ＸＯＲデータ）、および制御情報の通信のうち１若しくはそれ以上が含まれる。
【０２５１】
一部の実施形態において、ＲＡＩＤ冗長性は、ストライプ化した態様で、例えば（非ＲＡＩＤ）データの分散態様に直交して、複数の記憶装置にわたりＲＡＩＤデータを分散させることにより実現される。一部の状況では、ホスト要求が読み出しの場合、情報は、前記記憶装置のうち２若しくはそれ以上から読み出される。ホスト要求が書き込みの場合、ＲＡＩＤ冗長性情報の維持は、任意選択的に、前記記憶装置のうち２若しくはそれ以上に関するＲＭＷ動作の実行あるいはデータコピー動作を含む。
【０２５２】
一次エージェントまたは二次エージェントが、ホスト書き込み要求の結果としてデータを読み出す場合、それらのエージェントは、ピアツーピア要求を（例えば、装置−記憶装置連結部１８１を介して）特定のＲＡＩＤデータと併せて、別のエージェント（一次エージェントまたは二次エージェント）に通信する。一部の状況において（例えば、ミラーＲＡＩＤ）、前記特定のＲＡＩＤデータは前記書き込み要求に関するデータのコピーである。一部の状況において（例えば、ＲＡＩＤ  ５）、前記特定のＲＡＩＤデータは、前記書き込み要求に関するデータ、および前記書き込み要求のＬＢＡに対応する以前のデータに基づいて計算される（例えば、前記以前のデータは、前記書き込み要求に関するデータとのＸＯＲなどのＲＭＷ演算で使用される）。
【０２５３】
例えば、前記書き込み要求に関するデータを受信するエージェントは、前記書き込み要求のＬＢＡに対応する前記以前のデータに対し、前記書き込み要求に関するデータのＸＯＲをとることにより、ＲＡＩＤデルタ（増分）を計算する。前記エージェントは、前記ＬＢＡに関連付けてＲＡＩＤ冗長性を格納するエージェントの１つにＲＡＩＤデルタを送信する。次に、前記ＲＡＩＤ冗長性を格納するエージェントはＲＭＷを実行し、前記ＲＡＩＤデルタを使って前記ＲＡＩＤ冗長性を更新する。前記ＲＡＩＤ冗長性を格納するエージェントは、前記ＲＡＩＤ冗長性に複数の更新が予測される旨の通知を受けている場合、より効率の高いＲＭＷ演算を任意選択的および／または選択的に組み合わせる。
【０２５４】
一部の実施形態および／または使用シナリオでは、一次エージェントが、別のエージェント（別の一次エージェントまたは二次エージェント）に対し、特定のＬＢＡについて予測されるＲＡＩＤ更新の数を通知する。通知を受けたエージェントは、種々の実施形態において、前記特定のＬＢＡに関するすべての更新が実行されるまで、前記ＲＡＩＤ更新に関係した情報をキャッシュすることができる。種々の実施形態では、ＲＡＩＤ更新数がサブ要求の一部として黙示的または明示的に通信される。前記ＲＡＩＤ更新が完了すると、前記通知を受けたエージェントは、前記一次エージェントにサブステータスを送信する。
【０２５５】
種々の実施形態において、単一のホスト要求に関係した複数のデータ転送は、完全に、または部分的に独立して実行される。例えば、一部のＲＡＩＤ  ＲＭＷシナリオにおける書き込みデータの転送は、それ以前に蓄積されたパリティデータの転送から独立して行われる。種々の状況において、書き込みデータは、一次エージェントおよび複数の二次エージェントのうちいずれかによりホストメモリから読み出され、蓄積されたパリティデータが、前記一次および二次エージェントのうちいずれかにより記憶装置から読み出されたのち、例えば前記蓄積されたパリティデータの読み出しが行われた記憶装置に、新規パリティデータが書き込まれる。
【０２５６】
種々の実施形態において、連結部１３１．Ａ、１３１．Ｎ、１４１．Ａ、および１４１．Ｎのうち１若しくはそれ以上は、図１Ａの連結部１１１．Ａ、１１１．Ｎ、１２１．Ａ、および１２１．Ｎと同一または実質的に同様である。一部の実施形態において、装置−ストレージ連結部である装置−記憶装置連結部１８１は、実装上、ホスト−記憶装置連結部１８０と同一または実質的に同様である。一部の実施形態では、ホスト−記憶装置連結部１８０および装置−記憶装置連結部１８１が単一要素へと併合される。一部の実施形態において、連結部１３１．Ａ、１３１．Ｎ、１４１．Ａ、および１４１．Ｎのうちいずれか１つ若しくはそれ以上は、装置−記憶装置連結部１８１にではなく、ホスト−記憶装置連結部１８０の変形形態の追加ポートに連結される。
【０２５７】
種々の実施形態、例えば図１Ａまたは図１Ｂに関する一部の実施形態において、ホストから見えるストレージは、それぞれ一次エージェントとして動作可能な１若しくはそれ以上の記憶装置、および二次エージェントとして動作可能なゼロ若しくはそれ以上の記憶装置を有し、ホストから見えないストレージは、それぞれ二次エージェントとして動作可能なゼロ若しくはそれ以上の記憶装置を有する。
【０２５８】
種々の実施形態において、記憶装置は物理的記憶装置に対応し、その物理的記憶装置は、１若しくはそれ以上の動作モードに応じて、ホストから見えるストレージおよびホストから見えないストレージの任意の組み合わせを実装できる第１の運用シナリオにおいて、特定の物理的装置は、ホストから見えるストレージだけを実装するよう運用される。第２の運用シナリオにおいて、前記特定の物理的装置は、ホストから見えないストレージだけを実装するよう運用される。第３の運用シナリオにおいて、前記特定の物理的装置は、ホストから見えるストレージおよびホストから見えないストレージの組み合わせを実装するよう運用される。一部の状況では（例えば、作業負荷および／または障害の変化に応答して）、１つの運用シナリオから別の運用シナリオへと運用が動的に変更される。
【０２５９】
例えば、図１Ａを参照すると、図示したように運用が開始し、ホストから見えるストレージ１１０は記憶装置１１０．Ａおよび記憶装置１１０．Ｎを有し、ホストから見えないストレージ１２０は記憶装置１２０．Ａおよび記憶装置１２０．Ｎを有する。この例について続けると、記憶装置１１０．Ａ、１１０．Ｎ、１２０．Ａ、および１２０．Ｎは、それぞれ各々の物理的記憶装置に対応する。作業負荷の変化に応答して、記憶装置１１０．Ｎは、前記ホストから見えるストレージの要素としての動作から前記ホストから見えないストレージの要素としての動作へと動的に（再）設定される。この動的な再設定後、ホストから見えるストレージ１１０は記憶装置１１０．Ａを有し、ホストから見えないストレージ１２０は記憶装置１１０．Ｎ、記憶装置１２０．Ａおよび記憶装置１２０．Ｎを有する（図示せず）。
【０２６０】
別の例として、図１Ｂを参照すると、図示したように運用が開始し、ホストから見えるストレージ１３０は記憶装置１３０．Ａおよび記憶装置１３０．Ｎを有し、ホストから見えないストレージ１４０は記憶装置１４０．Ａおよび記憶装置１４０．Ｎを有する。この例について続けると、記憶装置１３０．Ａ、１３０．Ｎ、１４０．Ａ、および１４０．Ｎは、それぞれ各々の物理的記憶装置に対応する。記憶装置１３０．Ａの障害に応答して、記憶装置１４０．Ａは、前記ホストから見えるストレージの要素として動作するよう動的に（再）設定されるとともに、引き続き前記ホストから見えないストレージの要素として動作する。例えば、記憶装置１４０．Ａにより実装されるストレージは、前記障害が発生するまで記憶装置１３０．Ａにより実装されていたストレージの全部または任意部分の交換用途と、ホストから見えないストレージとしての継続用途との間で割り当てが行われる。前記動的な再設定後、ホストから見えるストレージ１３０は、記憶装置１４０．Ａおよび記憶装置１３０．Ｎにより実装されるストレージの一部を有し、ホストから見えないストレージ１４０は、記憶装置１４０．Ａ（記憶装置１３０．Ａを交換するため使用された部分を除く）および記憶装置１４０．Ｎを有する（図示せず）。
【０２６１】
種々の実施形態において、ホストから見えるストレージは、トランスペアレントなスイッチを介してホストからアクセス可能なストレージであり、および／またはホストから見えないストレージは、非トランスペアレントなスイッチにより前記ホストから隠されるストレージである。前記ホストから見えるストレージおよび前記ホストから見えないストレージは、例えば、前記トランスペアレントおよび／または前記非トランスペアレントなスイッチの全部または任意部分を介して、ピアツーピア通信が可能である。一部の実施形態では、それぞれ上述のトランスペアレントおよび非トランスペアレントなスイッチに対応するトランスペアレントな部分および非トランスペアレントな部分を、統一されたスイッチが提供する。例えば、図１Ｂを参照すると、ホスト１００、連結部１０１、ホスト−記憶装置連結部１８０、および装置−記憶装置連結部１８１の全部または任意部分のうち１若しくはそれ以上は、統一されたスイッチを実装する。この統一されたスイッチは、前記ホストから見えるストレージ１３０の要素のうち１若しくはそれ以上に対してトランスペアレントなスイッチとして動作可能であり、また同時に前記ホストから見えないストレージ１４０の要素のうち１若しくはそれ以上に対して非トランスペアレントなスイッチとして動作可能である。
【０２６２】
スケーラブルなストレージシステムの動作
図２は、スケーラブルな記憶装置用技術の実施形態の処理を一部選んで詳しく例示した図である。一次エージェントとして機能する記憶装置（例えば、図１Ａの前記ホストから見えるストレージ１１０の要素のうち１若しくはそれ以上）により「一次アクション」２０９として実行されるアクションのほか、二次エージェントとして機能する記憶装置（例えば、図１Ａの前記ホストから見えないストレージ１２０の要素のうち１若しくはそれ以上および／または前記ホストから見えるストレージ１１０の他の要素のうち１若しくはそれ以上）により「二次アクション」２１９として実行されるアクションが例示されている。
【０２６３】
まず、ストレージにアクセスする要求が単一の応答エージェントにより満たされるシナリオが記述されたのち、単一の要求が１より多くの応答エージェントにより満たされるシナリオが記述されている。ホスト（例えば、図１Ａのホスト１００）は、一次エージェントとして機能する記憶装置に、ストレージにアクセスする要求を提供する（「開始」２０１で概念的に表す）。前記一次エージェントは前記ホストから前記要求を受け付け、例えばホストメモリに保持された送信キューエントリを読み出して、任意選択的に前記ホストとのハンドシェイクを提供してエラーなく前記要求が受け付けられたことを示す（「ホストから要求を受け付け」２０２）。次いで前記一次エージェントは、前記要求を調べ、その要求が、前記一次エージェントにより実装されたストレージ宛てか決定する（「ローカル？」２０３）。そうである場合（「はい」２０３Ｙ）は当該フローが進み、前記一次エージェントが前記要求で提供されたアドレス情報を処理して、前記要求に関連付けられた（ホスト）文脈から、前記一次エージェントが実装する対応ストレージに関連付けられた（一次エージェント）文脈へと、前記アドレス情報を変換する（「ローカルＬＢＡに変換」２０４）。その一例として、前記要求がＬＢＡ  １００を指定すると、前記一次エージェントは、当該一次エージェントが実装する（ローカル）ストレージの開始位置に対応したＬＢＡ  ０にＬＢＡ  １００を変換する。次に、前記一次エージェントは、前記要求を実行して（「ローカルに処理」２０５）前記ホストステータスを提供し（「ホストにステータスを提供」２０６）、例えば、前記ホストメモリに保持される完了キューエントリを書き込んで前記要求に関する処理を完了する（「終了」２９９）。一部の実施形態において、前記変換は、前記ＬＢＡの関数と、ページテーブルと同様なローカル・ストレージ・アドレスとの間でのマッピングを有する。
【０２６４】
前記要求が、前記一次エージェントの実装するストレージ宛てではない場合（「いいえ」２０３Ｎ）は、前記一次エージェント内でフローが進み、二次エージェントとして機能する記憶装置に、前記要求がサブ要求として送信される（「二次へ転送」２０７）。前記一次エージェントは前記要求からサブ要求を決定し、前記一次エージェントから前記二次エージェントへの前記サブ要求通信は、破線「サブ要求」２０７Ｒで示されている。前記一次エージェント内でフローが進み、前記二次エージェントによる前記サブ要求の完了が待機される（「完了を待機」２０８）。前記二次エージェントは、前記サブ要求を完了すると（エラーが起きても起きなくても）、前記一次エージェントにサブステータスを供給する（破線「サブステータス」２１４Ｓで概念的に図示）。次いで前記一次エージェントは、前記二次エージェントから前記サブステータスを受け付け、任意選択的に前記二次エージェントとのハンドシェイクを提供して、エラーなく前記サブステータスが受け付けられたことを示す（「二次からサブステータスを受け付け」２０９Ａ）。次に、前記一次エージェントは、フローを進めて前記サブステータスをステータスとして前記ホストに提供し（「ホストにステータスを提供」２０６）、前記要求の処理が完了する（「終了」２９９）。
【０２６５】
前記二次エージェント内では、前記一次エージェントから前記サブ要求を受け付けることによりフローが開始し、任意選択的に前記一次エージェントとのハンドシェイクが提供されて、エラーなく前記サブ要求が受け付けられたことが示される（「一次からサブ要求を受け付け」２１１）。前記サブ要求には、当該サブ要求が対応する前記要求内で前記ホストにより提供されるアドレス情報（例えば、ＬＢＡ）が含まれる。前記二次エージェントは、前記サブ要求で提供されたアドレス情報を処理して、前記要求に関連付けられた（ホスト）文脈から、前記二次エージェントが実装する対応ストレージに関連付けられた（二次エージェント）文脈へと、前記アドレス情報を変換する（「ローカルＬＢＡに変換」２１２）。例えば、要求がＬＢＡ  ２００を指定し、前記サブ要求がＬＢＡ  ２００を指定すると、前記二次エージェントは、当該二次エージェントが実装する（ローカル）ストレージの開始位置に対応した（ローカル）ＬＢＡ  ０へと（ホスト）ＬＢＡ  ２００を変換する。この例について続けると、別の要求がＬＢＡ  ２０１を指定し、それに対応するサブ要求がＬＢＡ  ２０１を指定すると、前記二次エージェントは、当該二次エージェントが実装する（ローカル）ストレージの次の位置に対応した（ローカル）ＬＢＡ  １へと（ホスト）ＬＢＡ  ２０１を変換する。他の例については、以降、図３で説明している。前記サブ要求の変換後にフローが進み、前記二次エージェントは、前記要求を実行したのち（「ローカルに処理」２１３）、破線「サブステータス」２１４Ｓで図示したように、前記一次エージェントにサブステータスを返す（「一次にサブステータスを提供」２１４）。
【０２６６】
ストレージにアクセスする単一の要求が１より多くの応答エージェントにより満たされるシナリオでは、前記単一の要求が概念的に複数のサブ要求に分割される。前記サブ要求のうちゼロ、１、またはそれ以上は、前記一次エージェントにより満たされ、前記サブ要求のうちゼロ、１、またはそれ以上は、ゼロ、１、またはそれ以上の二次エージェントにより満たされる。例えば、ＬＢＡ  ２つ分の長さのＬＢＡ  ４００への要求は、ＬＢＡ  ４００に関する二次エージェントへのサブ要求、およびＬＢＡ  ４０１に関する別の二次エージェントへの別のサブ要求により満たされる。各二次エージェントは、独立して、各前記サブ要求のＬＢＡを各前記二次エージェントのローカルストレージに対応するＬＢＡに変換する。
【０２６７】
前記一次エージェントは、どの二次エージェント（該当する場合）がサブ要求を受信すべきか、前記要求のアドレスおよび長さ情報に基づいて決定する。そのため図２において、前記要求が、前記一次エージェントにより実装されたストレージ宛てか（「ローカル？」２０３）は、複数のサブ要求の各々について概念的に決定される。一部の前記サブ要求については、それらのサブ要求がローカルであるという結果になる一方、他の前記サブ要求は、ローカルではないという結果になり、１若しくはそれ以上の二次エージェントにサブ要求として転送される（「二次に転送」２０７および「サブ要求」２０７Ｒ）。一部のシナリオにおいて、単一の二次エージェントは、単一のサブ要求を受信するが、他のシナリオでは、単一の二次エージェントが複数のサブ要求を受信する。続けて「二次アクション」２１９で表されるフローが、各前記複数のサブ要求について実行される（種々の実施形態では、逐次および／または並列処理の任意の組み合わせにより）。一部のシナリオでは、複数の二次エージェントが、それぞれ１若しくはそれ以上のサブ要求を受信する。次いで「二次アクション」２１９で表されるフローが各前記複数の二次エージェントにより独立して実行される。
【０２６８】
前記一次エージェントは、「二次へ転送」２０７で行われる処理の一部として、単一の要求を、いかに１若しくはそれ以上の二次エージェントへの複数のサブ要求にマップするかを、１若しくはそれ以上の関数および／またはマッピングテーブル（例えば、図１Ａの記憶装置１１０．Ａにより実装される）により決定する。複数のサブ要求が１若しくはそれ以上の二次エージェントに送信される場合、前記一次エージェントは、他の前記サブ要求から独立した各前記サブ要求について完了を待機し（「完了を待機」２０８）、それに対応したサブステータスを受け付ける（「二次からサブステータスを受け付け」２０９Ａ）ことにより、ステータス情報を概念的に累積する。特定の要求の全サブ要求に関するサブステータスが受信されると、前記一次エージェントは全体的なステータスを生成し、「ホストにステータスを提供」２０６で実行される処理の一部として前記ホストに提供する。
【０２６９】
一部の実施形態において、二次エージェントは、要求全体を同一のサブ要求として受信する（または、交互に送信キュー内のエントリから前記要求を読み出す）。次に、各前記二次エージェントは、前記要求のどの部分（該当する場合）を各当該二次エージェントが実行すべきか決定し、蓄積されたパリティデータ（該当する場合）をどのエージェントに送信すべきか任意選択的に決定する。例えば、要求が長さ２００  ＬＢＡのＬＢＡ  ５００を指定する場合、一次エージェントは、同一のサブ要求を第１および第２の二次エージェントに送信する（あるいは、単一のサブ要求が前記第１および第２の二次エージェントへ送信される）。前記サブ要求は、長さ２００  ＬＢＡのＬＢＡ  ５００を指定する。前記第１の二次エージェント（前記ホストおよび前記第２の二次エージェントから独立した）は、前記サブ要求のＬＢＡ  ６００〜６９９が、当該第１の二次エージェントの実行すべき前記サブ要求の一部に対応することを決定する。前記第２の二次エージェント（前記ホストおよび前記第１の二次エージェントから独立した）は、前記サブ要求のＬＢＡ  ５００〜５９９が、当該第２の二次エージェントの実行すべき前記サブ要求の一部に対応することを決定する。前記第１のおよび前記第２の二次エージェントは、特定の冗長性方式に応じ、前記蓄積されたパリティ情報がそれらのエージェントに適したものであることを決定する。
【０２７０】
一部の実施形態および／または使用シナリオでは、一次エージェント経由で転送せず、二次エージェントから前記ホストにステータスが直接提供される（図１Ａの破線矢印１５４で概念的に図示）。例えば、この直接的なステータス提供は、要求全体に関するサブ要求が単一の二次エージェントに転送された場合起こる。その単一の二次エージェントは、次いでステータスを前記ホストへ直接返す（例えば、その単一の二次エージェントが、ホストメモリに保持された完了キューにエントリを書き込むことにより）。なお、前記ホストは、前記単一の二次エージェントが前記エントリを書き込むアクションを、前記一次エージェントが前記エントリを書き込む場合と区別できないため、前記単一の二次エージェントが前記エントリを書き込んでも、その単一の二次エージェントにより前記要求が満たされることは前記ホストにとってトランスペアレントである（認識されない）ことに注意すべきである。一部の実施形態では、二次エージェント（一次エージェントでなく）が特定の要求に対応した複数のサブ要求に関するサブステータスを蓄積し、その蓄積されたサブステータスを全体的なステータスとして前記ホストに提供する。
【０２７１】
一部の実施形態では、少なくとも、１若しくはそれ以上のホストからの一部の要求について、１若しくはそれ以上の記憶装置が一次エージェントとして、および二次エージェントとして同時に動作する。例えば、システムは２つの記憶装置を有する。前記記憶装置の第１の記憶装置は、二次エージェントとして動作する当該記憶装置の第２の記憶装置に対し、一次エージェントとして動作し、前記第２の記憶装置は、二次エージェントとして動作する前記第１の記憶装置に対し、一次エージェントとして動作する。より具体的にいうと、前記第１の記憶装置は、前記ホストのうち特定の１つのホストから要求を受け付け、その要求をサブ要求として前記第２の記憶装置に送信する。前記第２の記憶装置は、前記特定のホストから別の要求を受け付け、当該他の要求をサブ要求として前記第１の記憶装置に転送する。一部の実施形態および／または使用シナリオにおいて、前記要求は、同じホスト要求キューからのものである。一部の実施形態および／または使用シナリオにおいて（例えば、前記要求が異なるホストからの場合）、前記要求は、異なるホスト要求キューからのものである。
【０２７２】
種々の実施形態によれば、要求、ステータス、およびデータ転送のうち１若しくはそれ以上は、例えば、前記ホスト（またはその一部）（例えば、ホストメモリ）からアクセス可能なメモリと、前記記憶装置の１つ（またはその一部）（例えば、記憶装置に実装されたバッファ）からアクセス可能なメモリとの間のＤＭＡを介す。そのため、前述した要求、ステータス、およびデータ転送のフローのうち１若しくはそれ以上は、１若しくはそれ以上のスキャッタ・ギャザーリスト、およびそれに後続する前記スキャッタ・ギャザーリストに基づいたＤＭＡ転送通信による。その追加態様（または代替態様）として、前記要求、ステータス、およびデータ転送のフローのうち１若しくはそれ以上は、完了および／またはステータスキュー情報、ならびにそれに後続する前記キューのエントリとのＤＭＡ転送の通信による。種々の実施形態では、前記要求、ステータス、およびデータ転送のいずれも、前記記憶装置のうち１若しくはそれ以上に含まれる１若しくはそれ以上のプロセッサにより直接実行され、および／または管理される。
【０２７３】
アドレス指定
図３は、スケーラブルな記憶装置用技術の実施形態におけるホスト、一次エージェント、および二次エージェントのアドレス指定を一部選んで詳しく例示した図である。この図では、ホスト（例えば、図１Ａのホスト１００）から見たストレージアドレス空間の窓（ホストアドレス空間３１０）の例を示している。前記ホストのストレージアドレス空間は、ホストＬＢＡ範囲１〜５  ３１１〜３１５を有する。さらに、この図では、一次エージェント（例えば、図１Ａの前記ホストから見えるストレージ１１０の要素のいずれか１つ）から見たストレージアドレス空間の窓（一次アドレス空間３２０）の例を示している。前記一次エージェントのストレージアドレス空間は、一次ＬＢＡ範囲１〜３  ３２１〜３２３を有する。さらに、この図では、２つの二次エージェント（二次エージェントＡおよびＢ、例えば図１Ａの前記ホストから見えないストレージ１２０の要素のいずれか２つ、および／または前記ホストから見えるストレージ１１０の他の要素のいずれか）から見たストレージアドレス空間の窓（二次アドレス空間３３０）の例を示している。前記二次エージェントＡのストレージアドレス空間は、二次Ａ  ＬＢＡ範囲１〜３  ３３１Ａ、３３２Ａ、および３３３Ａを有する。前記二次エージェントＢのストレージアドレス空間は、二次Ｂ  ＬＢＡ範囲１〜２  ３３１Ｂおよび３３２Ｂを有する。特定の縮尺どおりに描画されているわけではないが、この図中、種々のアドレス範囲要素の縦方向の高さは異なっており、これら各範囲内の位置数の違いを概念的に表している。
【０２７４】
第１の例において、単一のホストアドレス範囲（ホストＬＢＡ範囲１  ３１１）は、二次Ａ（二次Ａ  ＬＢＡ範囲１  ３３１Ａ）の単一のアドレス範囲に対応する。一次エージェント（例えば、図１Ａの記憶装置１１０．Ａ）は、ホストＬＢＡ範囲１  ３１１内のアドレスに対するホスト要求が当該一次エージェントにより実装されていないストレージに対応することを決定し（例えば、図２の「ローカル？」２０３および「いいえ」２０３Ｎに関連付けられた処理を通じて）、また前記要求が二次Ａにより実装されたストレージに対応することを決定する。次に、前記一次エージェントは二次Ａにサブ要求を転送する。すると、二次Ａは、前記サブ要求を変換し（例えば、図２の「ローカルＬＢＡに変換」２１２に関連付けられた処理）、二次Ａ  ＬＢＡ範囲１  ３３１Ａを介してアクセス可能なストレージへのローカルアクセスを実行する（例えば、図２の「ローカルに処理」２１３による処理）。
【０２７５】
第２の例では、単一のホストアドレス範囲（ホストＬＢＡ範囲２  ３１２）が、二次Ｂ（二次Ｂ  ＬＢＡ範囲１  ３３１Ｂ）の単一のアドレス範囲に対応する。前記一次エージェントは、ホストＬＢＡ範囲２  ３１２内のアドレスへの要求が二次Ｂにより実装されたストレージに対応することを決定して、サブ要求を二次Ｂに転送する。次に、二次Ｂが前記サブ要求を変換し、二次Ｂ  ＬＢＡ範囲１  ３３１Ｂを介してアクセス可能なストレージへのローカルアクセスを実行する。
【０２７６】
第３の例では、単一のホストアドレス範囲（ホストＬＢＡ範囲３  ３１３）が、前記一次エージェント（一次ＬＢＡ範囲１  ３２１）の単一のアドレス範囲に対応する。前記一次エージェントは、ホストＬＢＡ範囲３  ３１３内のアドレスへの要求が前記一次エージェントにより実装されたストレージに対応することを決定し、前記要求を変換して（例えば、「ローカルＬＢＡに変換」２０４に関連付けられた処理により）、一次ＬＢＡ範囲１  ３２１を介してアクセス可能なストレージへのローカルアクセスを実行する。
【０２７７】
第４の例では、単一のホストアドレス範囲（ホストＬＢＡ範囲４  ３１４）が、二次Ａ（二次Ａ  ＬＢＡ範囲２  ３３２Ａおよび３  ３３３Ａ）および二次Ｂ（二次Ｂ  ＬＢＡ範囲２  ３３２Ｂ）の単一のアドレス範囲の２つのアドレス範囲に対応する。前記一次エージェントは、ホストＬＢＡ範囲４  ３１４内のＬＢＡ全体への要求が二次Ａおよび二次Ｂにより実装されたストレージに対応することを決定する（例えば、アクセスすべき開始ＬＢＡおよび連続したＬＢＡの数に基づいて）。次に、前記一次エージェントは、二次Ａに２つのサブ要求を、二次Ｂに単一のサブ要求を転送する。二次Ａは、前記２つのサブ要求を変換し、二次Ａ  ＬＢＡ範囲２  ３３２Ａおよび３  ３３３Ａを介してアクセス可能なストレージへのローカルアクセスを実行する（逐次、または完全または部分的に並列に）。二次Ｂは、前記単一のサブ要求を変換し、二次Ｂ  ＬＢＡ範囲２  ３３２Ｂを介してアクセス可能なストレージへのローカルアクセスを実行する。
【０２７８】
第５の例では、単一のホストアドレス範囲（ホストＬＢＡ範囲５  ３１５）が、前記一次エージェント（一次ＬＢＡ範囲２  ３２２および３  ３２３）の２つのアドレス範囲に対応する。前記一次エージェントは、ホストＬＢＡ範囲５  ３１５内のＬＢＡ全体への要求が当該一次エージェントにより実装されたストレージに対応することを決定する（例えば、アクセスすべき開始ＬＢＡおよび連続したＬＢＡの数に基づいて）。前記一次エージェントは２つのローカルＬＢＡ範囲への前記要求を変換し、一次ＬＢＡ範囲２  ３２２および３  ３２３を介してアクセス可能なストレージへのローカルアクセスを実行する。
【０２７９】
一部の実施形態において、一次エージェントは、ホスト要求の各サブ要求を、１若しくはそれ以上の二次エージェントのうち特定の１つに別個に転送できる。他の実施形態において、一次エージェントは、ホスト要求の２若しくはそれ以上のサブ要求を、複数の二次エージェントのうち特定の１つに、単一の複合サブ要求として転送できる。例えば、種々の実施形態において、一次エージェントは、ホスト要求の１若しくはそれ以上のサブ要求を処理する１若しくはそれ以上の二次エージェントを決定して、同じＬＢＡ範囲および同じ長さの前記ホスト要求を前記１若しくはそれ以上の二次エージェントに転送する。前記１若しくはそれ以上の二次エージェントは、次いで前記ＬＢＡ範囲および前記長さを解釈し、各前記１若しくはそれ以上の二次エージェントが処理および応答すべき前記ホスト要求の各部分を決定することができる。他の実施形態において、一次エージェントは、ホスト要求のＬＢＡ範囲および長さを処理し、前記ＬＢＡ範囲および前記長さの処理済みバージョンを１若しくはそれ以上の二次エージェントの各々に送信する。例えば、Ｎ個のエージェント（Ｎ−１個の二次エージェントおよび前記一次エージェント）にわたり６４ＫＢの境界でデータがストライプ化される場合、前記一次エージェントは、ＬＢＡ範囲をＮ×６４ＫＢで除算して前記Ｎ−１個の二次エージェントにサブ要求を分散させる。前記Ｎ−１個の二次エージェントの各々は、除算後の開始ＬＢＡを伴う各サブ要求、前記Ｎ個のエージェントにわたるデータのストライプ化に対応した長さの一部、および任意選択的および／または選択的に前記ＬＢＡ除算後の残りの部分を受信する。そのため、前記二次エージェントのうち第１および／または最後の二次エージェントは、任意選択的に、６４ＫＢより小さい転送を処理する。
【０２８０】
スケーラブルな記憶装置
図４は、一次エージェント、具体的には図１Ａの記憶装置１１０．Ａとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示したものである。この記憶装置には、ＰＣＩｅバスへのインターフェース（ＰＣＩｅインターフェース４０１）が含まれる。前記ＰＣＩｅインターフェースにはＤＭＡユニットが含まれ、これにより直接ホストメモリと前記ＰＣＩｅインターフェースのバッファとの間で任意選択的および／または選択的な転送が可能になり、例えば、完了またはステータスキューエントリの読み出しまたは書き込み、および／またはホストメモリとの直接的なデータ転送が可能になる。前記ＰＣＩｅインターフェースは、変換ブロック（ＬＢＡ、長さ変換論理４０２）に連結される。前記変換ブロックは、例えば、図２の「ローカルＬＢＡに変換」２０４について説明したように、ホストストレージアドレス情報（例えば、ＬＢＡおよび長さ）をローカルストレージアドレス情報に変換できる。この変換ブロックは、１若しくはそれ以上の大容量ストレージユニット（まとめて大容量ストレージ４０４と図示）に連結された大容量ストレージインターフェース（ストレージインターフェース論理４０３）に連結される。前記大容量ストレージユニットには、フラッシュストレージユニット（フラッシュ４０４Ｆ）、磁気ディスクストレージユニット（磁気４０４Ｍ）、光ディスクストレージユニット（光４０４Ｏ）、および／または任意タイプの不揮発性ストレージユニットのうちいずれか１つ若しくはそれ以上が含まれる。種々の実施形態において、前記フラッシュストレージユニットは、１若しくはそれ以上のフラッシュメモリチップおよび／またはダイ、例えばＮＡＮＤフラッシュまたはＮＯＲフラッシュを有する。
【０２８１】
記憶装置１１０．Ａには、一次エージェントとしての動作に関係した種々の動作を実行できる制御ブロック（サブ要求生成およびサブステータス蓄積４０５）が含まれ、この制御ブロックは、任意選択的に、ＰＣＩｅインターフェース４０１、ＬＢＡ、長さ変換論理４０２、およびストレージインターフェース論理４０３のうち１若しくはそれ以上に連結される。その動作としては、例えば図２の前記一次アクション２０９の要素のうちいずれか１つ若しくはそれ以上に関連付けられた処理を実行および／または管理するなどがある。一部の実施形態において、サブ要求生成およびサブステータス蓄積４０５は、ホストアドレスがいかに種々の二次装置に割り当てられるか追跡する１つ以上の関数および／またはマッピングテーブルを実装する（例えば、図２の「二次へ転送」２０７により使用される前記マッピングテーブル）。前記動作には、１若しくはそれ以上の二次エージェント（例えば、図５の記憶装置１２０．Ａ）により実装された記憶容量が記憶装置１１０．Ａにより実装されているかのように、記憶容量に関するホストの問い合わせに応答する動作がさらに含まれる。
【０２８２】
図５は、一次エージェント、具体的には図１Ａの二次エージェント、例えば記憶装置１２０．Ａとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示したものである。この記憶装置には、図４で同様に識別されている要素（ＰＣＩｅインターフェース４０１、ＬＢＡ、長さ変換論理４０２、ストレージインターフェース論理４０３、ならびにフラッシュ４０４Ｆ、磁気４０４Ｍ、および光４０４Ｏを有した大容量ストレージ４０４）と動作および構造が同一であるいくつかの要素が含まれる。
【０２８３】
記憶装置１２０．Ａには、二次エージェントとしての動作に関係した種々の動作を実行できる制御ブロック（サブ要求受け付けおよびサブステータス生成５０１）が含まれ、この制御ブロックは、任意選択的に、ＰＣＩｅインターフェース４０１、ＬＢＡ、長さ変換論理４０２、およびストレージインターフェース論理４０３のうち１若しくはそれ以上に連結される。その動作としては、例えば図２の前記二次アクション２１９の要素のうちいずれか１つ若しくはそれ以上に関連付けられた処理を実行および／または管理するなどがある。前記動作には、記憶装置１２０．Ａにより実装された記憶容量はないかのように、あるいは（前記ホストから直接ではなく）ホストから一次エージェントを介して行われるアクセス用に割り当てられたストレージが当該記憶装置により実装されていないかのように、記憶容量に関するホストの問い合わせに応答する動作がさらに含まれる。その代わり、記憶装置１２０．Ａにより実装された記憶容量は、一次エージェント、例えば図４の記憶装置１１０．Ａにより報告される。
【０２８４】
一部の実施形態において（図示せず）、設定可能な記憶装置は、図４の記憶装置１１０．Ａ内に例示した全要素の機能に対応する要素を含み、さらに図５のサブ要求受け付けおよびサブステータス生成５０１の機能に対応する要素を含む。設定可能な記憶装置の一例は、ＰＣＩｅインターフェース４０１、ＬＢＡ、長さ変換論理４０２、ストレージインターフェース論理４０３、および大容量ストレージ４０４だけでなく、サブ要求生成およびサブステータス蓄積４０５およびサブ要求受け付けおよびサブステータス生成５０１を含む。この設定可能な記憶装置は、選択的に一次エージェントまたは二次エージェントとして、例えば内部に含まれているプログラム可能なモード状態に応答して動作できる。前記モード状態は、種々の技術、例えば特殊な（例えば、ベンダー特有の）コマンドを使って管理ソフトウェアにより含められたＰＣＩｅインターフェースにより、初期化要素、例えば不揮発性メモリ（例えば、フラッシュメモリまたは任意選択的ＲＯＭ）により、または前記設定可能な記憶装置および／またはその設定可能な記憶装置と通信可能な別の記憶装置によるイベントの検出により、プログラム可能および／または変更可能である。一部の実施形態および／または使用シナリオにおいて、設定可能な記憶装置は動作モードの動的変化を可能にし、例えば二次エージェントが障害の発生した一次エージェントを動的に交換して単一障害点としてのストレージを除外することができる。
障害シナリオ
一次エージェントおよび１若しくはそれ以上の二次エージェントが単一の論理インターフェースとしてホストに見える種々の実施形態および／または使用シナリオでは、いくつかの障害復旧技術が可能である。それらの復旧技術は、ホストに対して完全にトランスペアレントであるか、あるいはホスト上で動作する装置ドライバだけに見える。
【０２８５】
第１の障害復旧技術は、二次エージェントの全体または一部に障害が起こり、障害の発生した前記二次エージェントがもはやストレージの特定部分を実装しなくなる場合に適用可能である。前記一次エージェントは、前記障害を認識する（例えば、前記一次エージェントが前記障害を検出するか、前記障害の発生した二次エージェントが前記一次エージェントに前記障害を報告する）。それ応答して、前記一次エージェントは、当該一次エージェントのストレージから、および／または前記二次エージェントのうち、任意選択的および／または選択的に前記障害の発生した二次エージェントを含むゼロ若しくはそれ以上から割り当てを行ってストレージを（再）割り当てすることにより、ストレージの前記特定部分を実装する。次いで前記一次エージェントおよび前記二次エージェントは、図１Ａ、１Ｂ、および２〜５を参照して説明した前述の実施形態および／またはシナリオのいずれかに基づいて動作する。
【０２８６】
一部の状況、例えば二次エージェントに障害が起こってそのストレージを前記再割り当てに提供できなくなった状況では、前記再割り当てにおいて、前記障害の発生した二次エージェントが除外される。二次エージェントは、種々のシナリオ、例えば動作可能な空きストレージが不十分である、一次エージェントおよび／またはホストと適切に通信できない、物理的に取り外された、または完全に機能不能に陥ったシナリオにおいて、種々の理由でストレージを提供できない。他の状況、例えば二次エージェントに部分的に障害が発生したが少なくとも一部のストレージは引き続き実装される状況では、前記再割り当てにおいて、任意選択的に、前記部分的に障害の発生した二次エージェントのストレージが含められる。関連する代替実施形態および／または使用シナリオでは、ホスト上で動作する装置ドライバ（一次エージェントではなく）が障害を認識し、前記障害について一次エージェントに通知し、および／または再割り当てを実行するよう前記一次エージェントに指示する。
【０２８７】
第２の障害復旧技術は、一次エージェントの全体または一部に障害が起こり、その一次エージェントがもはやストレージの特定部分を実装しなくなる場合に適用可能である。この第２の障害復旧技術は前記前記第１の障害復旧技術と同様であるが、ストレージに関する再割り当てが、前記全体または一部に障害が起こった一次エージェントにより実施されない点で異なる。前記第１の障害復旧技術と同様、前記一次エージェントが適切にストレージを実装できないという障害は、前記一次エージェント、二次エージェント、またはホスト上の装置ドライバのうち１若しくはそれ以上により検出可能である。
【０２８８】
第３の障害復旧技術は、一次エージェントに障害が起こり、もはや一次エージェントとして適切に動作しなくなる、例えば情報（例えば、サブ要求および／またはサブステータス）を、１若しくはそれ以上の二次エージェントおよび／またはホストと通信しなくなる場合に適用可能である。その場合は監視エージェントが前記障害を認識し、それに応答して交換用一次エージェントとして機能する別の一次または二次エージェントを識別する。一部の実施形態において、その交換用一次エージェントは、ホットスペアである。前記監視エージェントの一例は、前記障害の発生した一次エージェントを含む記憶装置の別の一次（または二次）エージェントである。前記監視エージェントの別の例は、ホスト上の装置ドライバ、例えばＯＳおよび／または前記ホスト上で動作するアプリケーションと、前記障害の発生した一次エージェントとの間の通信を、前記障害以前、可能にしていた装置ドライバである。また、前記障害の発生した一次エージェントがもはやストレージの特定部分を実装しなくなった場合は、前記交換用一次エージェントがストレージを再割り当てして、例えば前記第２の障害復旧技術で、ストレージの前記特定部分を実装する。その再割り当ては、前記障害の発生した一次エージェント（当該障害の発生した一次エージェントにおいて一部のストレージが依然として動作可能である場合）、前記交換用一次エージェント、および／または前記二次エージェントのうちゼロ若しくはそれ以上、のうちいずれか１つ若しくはそれ以上のストレージからの割り当てによる。前記交換用一次エージェントは、前記障害の発生した一次エージェントが前記障害以前に機能したように機能し、図１Ａ、１Ｂ、および２〜５を参照して説明した前述の実施形態および／またはシナリオのいずれかに基づいて動作する。
【０２８９】
第４の障害復旧技術は、１若しくはそれ以上の設定可能なエージェントを伴うシステムにおいて可能になり、一次エージェントが一次エージェントとして適切に機能できない場合に適用可能である。前記設定可能なエージェントの一例は、例えば図４および図５の全要素を概念的に含む設定可能な記憶装置に基づいて、一次エージェントまたは二次エージェントのどちらかとして動作可能な設定可能な記憶装置である。前記第３の障害復旧技術と同様、監視エージェントは、一次エージェントとして適切に機能できない一次エージェントの障害を認識すると、それに応答して、交換用一次エージェントとして機能する前記設定可能なエージェントの１つを識別する。前記監視エージェントは、前記識別された設定可能なエージェントが交換用エージェントとして動作するよう構成される（例えば、プログラミングモード情報により）ことを要求する。前記識別された設定可能な要素は、前記設定変更要求に動的に応答し、交換用一次エージェントとして動作する一次エージェントとして機能し始める。前記第３の障害復旧技術と同様、前記障害の発生した一次エージェントがもはやストレージの特定部分を実装しなくなった場合は、前記交換用一次エージェントがストレージを再割り当てして、例えば前記第２の障害復旧技術で、ストレージの前記特定部分を実装する。前記交換用一次エージェントは、前記障害の発生した一次エージェントが前記障害以前に機能したように機能し、図１Ａ、１Ｂ、および２〜５を参照して説明した前述の実施形態および／またはシナリオのいずれかに基づいて動作する。
【０２９０】
以上の障害復旧技術のうちいずれか１つ若しくはそれ以上では、障害後、任意選択的に、冗長性情報により可能な限りデータが回復される。そのデータ回復は、任意選択的に、ホスト側の連結部（例えば、図１Ａまたは１Ｂのホスト−記憶装置連結部１８０）と装置側の連結部（例えば、図１Ｂの装置−記憶装置連結部１８１）との任意の組み合わせを通じて行われる。本明細書の他の部分で説明したように、前記冗長性情報は、例えば種々のＲＡＩＤおよび／またはミラーリング実施態様に基づく。
【０２９１】
以上の障害復旧技術のうちいずれか１つ若しくはそれ以上では、前記再割り当てにより任意選択的に利用可能な空き容量が減少し、例えばそれがホストに示される。
【０２９２】
以上の障害復旧技術のうちいずれか１つ若しくはそれ以上において、前記再割り当てのうちいずれか１つ若しくはそれ以上は、少なくとも部分的にプロセッサが実行する命令により実行および／または管理される。
【０２９３】
以上の障害復旧技術のうちいずれか１つ若しくはそれ以上では、一次または二次エージェントの障害の認識は、エージェントによる障害の特定の検出、エージェントからのハートビート指標の受信不在、および障害発生を知らせるより高レベルの指標のうち１若しくはそれ以上を通じて行われる。前記特定の検出には、一次エージェント、二次エージェント、または装置ドライバが、例えば返されてきたステータスが不適切である、プロトコル違反があった、または要求がタイムアウトしたと決定することによる、別のエージェントでの障害発生の決定のうち、いずれか１つ若しくはそれ以上が含まれる。
【０２９４】
トランスペアレントなスイッチが、ホストと、ホストから見えるストレージとの間の通信を可能にする一部の実施形態では、前記ホストから見えるストレージの要素の障害は、例えば前記ホスト上で動作する装置ドライバから見える。前記装置ドライバは、任意選択的に障害からの復旧に参与する。ホストと、ホストから見えないストレージとの間に非トランスペアレントなスイッチを有する一部の実施形態では、前記ホストから見えないストレージの要素の障害は、前記ホストから見えない。その障害からの復旧は、任意選択的に前記ホストから見えない。
【０２９５】
種々の実施形態において、図１Ａおよび１Ｂのホストから見えるストレージ１１０、ホストから見えないストレージ１２０、ホストから見えるストレージ１３０、ホストから見えないストレージ１４０の要素のいずれかのほか、それら内部のユニットおよびサブユニットにより実行される動作の全部または任意部分は、任意選択的に有形のコンピュータ可読媒体内に格納された命令（例えば、ファームウェア）を実行する１若しくはそれ以上のプロセッサにより管理および／または実施される。例えば、サブ要求生成およびサブステータス蓄積４０５および／またはサブ要求受け付けおよびサブステータス生成５０１は、コンピュータ可読媒体内に格納された命令（例えば、ファームウェア）を実行するプロセッサにより管理および／または実施される。この例について続けると、前記コンピュータ可読媒体は、前記スケーラブルな記憶装置（例えば、フラッシュ４０４Ｆ）に含まれるフラッシュメモリの一部である。種々の実施形態において、図１Ａおよび１Ｂのホストから見えるストレージ１１０、ホストから見えないストレージ１２０、ホストから見えるストレージ１３０、ホストから見えないストレージ１４０の要素のいずれかのほか、それら内部のユニットおよびサブユニットにより実行される動作の全部または任意部分は、状態機械により管理および／または実施される。例えば、サブ要求生成およびサブステータス蓄積４０５および／またはサブ要求受け付けおよびサブステータス生成５０１の全部または任意部分は、少なくとも部分的に論理ゲート回路により実装された１若しくはそれ以上の状態機械により管理および／または実施される。
【０２９６】
種々の実施形態では、１若しくはそれ以上のスケーラブルな記憶装置（一次および／または二次エージェントとして動作できる）を有するスケーラブルなストレージシステムの全部または任意部分は、例えばデータセンター内の機器ラックの１若しくはそれ以上のドロワーおよび／またはシェルフに実装される。前記スケーラブルなストレージシステムは、任意選択的に、１若しくはそれ以上のホスト、例えば前記機器ラックの他のドロワーおよび／またはシェルフに実装されたコンピュータ複合体とともに動作できる。
【０２９７】
実施技術例
【０２９８】
一部の実施形態において、スケーラブルな記憶装置（例えば、図４の記憶装置１１０．Ａまたは図５の記憶装置１２０．Ａ）に含まれるブロックと、プロセッサ、マイクロプロセッサ、システムオンアチップ、アプリケーション固有の集積回路、ハードウェアアクセラレータ、または上記動作またはブロックの全部または一部を提供する他の回路の部分とにより実行される動作の全部または一部の種々の組み合わせは、コンピュータシステムによる処理と互換性のある仕様で指定される。その仕様は、種々の記述、例えばハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、レイアウト記述による。記述例としては、Ｖｅｒｉｌｏｇ、ＶＨＤＬ、ＳＰＩＣＥ、ＳＰＩＣＥ変形形態（例えば、ＩＢＩＳ、ＬＥＦ、ＤＥＦ、ＧＤＳ−ＩＩ、ＯＡＳＩＳ）、または他の記述がある。種々の実施形態では、前記処理として、１若しくはそれ以上の集積回路に含める上で適した論理および／または回路を生成、検証、または指定するための解釈、コンパイル、シミュレーション、および合成の任意の組み合わせが含まれる。各集積回路は、種々の実施形態によれば、種々の技術に基づいて設計可能および／または製造可能である。それらの技術としては、プログラマブル技術（例えば、フィールドプログラマブルまたはマスクプログラマブル・ゲートアレイ集積回路）、セミカスタム技術（例えば、全体的または部分的にセルベースの集積回路）、フルカスタム技術（例えば、実質的に特定用途向けの集積回路）、これらの任意の組み合わせ、または集積回路の設計および／または製造と互換性のある他の任意技術などがある。
【０２９９】
一部の実施形態において、命令セットを内部に格納したコンピュータ可読媒体による上記動作の全部または一部の各種組み合わせは、１若しくはそれ以上のプログラム命令の実行および／または解釈により、１若しくはそれ以上のソースおよび／またはスクリプト言語ステートメントの解釈および／またはコンパイルにより、あるいはプログラミングおよび／またはスクリプト言語ステートメントで表現された情報をコンパイル、変換、および／または解釈して生成されたバイナリ命令の実行により、実施される。前記ステートメントは、いかなる標準プログラミング言語またはスクリプト言語とも互換性がある（例えば、Ｃ、Ｃ＋＋、Ｆｏｒｔｒａｎ、Ｐａｓｃａｌ、Ａｄａ、Ｊａｖａ（登録商標）、ＶＢｓｃｒｉｐｔ、およびＳｈｅｌｌ）。前記プログラム命令、前記言語ステートメント、またはバイナリ命令のうち１若しくはそれ以上は、選択的に、１若しくはそれ以上のコンピュータ可読記憶媒体要素に格納される。種々の実施形態において、前記プログラム命令の一部、全部、または種々の部分は、１若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその部分として実現される。
【０３００】
結論
上記説明では一定の選択を行っているが、これは単に文章と図面を作成する便宜上のもので、別段の断りがない限り、これらの選択自体が、上記実施形態の構造または動作に関する追加情報を包含すると解釈すべきではない。前記選択の例は、図の参照番号について使用される指定の具体的な構成または割り当て、ならびに前記実施形態の特徴および要素を識別および参照するため使用した前記要素識別子の具体的な構成または割り当て（各要素の囲み線または参照番号）などである。
【０３０１】
表現「を含む」または「が含まれる」は、特に非限定的な範囲の論理セットを記述する抽象表現として解釈されるよう意図したものであり、明示的に「内に」という表現を伴わない限り、物理的収納を意味することを意図したものではない。
【０３０２】
以上の実施形態については、説明および理解の明瞭化を目的として一部詳しく説明したが、本発明は上記で提供した詳細事項に限定されるものではない。本発明には多くの実施形態がある。開示した実施形態は、例示的なものであって限定的なものではない。
【０３０３】
構造、構成、および使用については、前記説明と一貫し、また当該交付済み特許の請求範囲内で多数の変形形態が可能であることが理解されるであろう。例えば、相互接続および機能単位のビット幅、クロック速度、および使用する技術のタイプは、各構成要素ブロックにおける種々の実施形態に応じて異なる。相互接続および論理に与えた名称は単に例示的なものであり、説明された概念を限定するものと解釈されるべきではない。フローチャートの工程、アクション、および機能要素の順序および構成は、種々の実施形態に応じて異なる。また、具体的に別段の断りがない限り、指定した値範囲、使用した最大値および最小値、または他の特定の仕様（例えば、フラッシュメモリ技術のタイプ、ならびにレジスタおよびバッファのエントリまたはステージの数など）は、単に説明した実施形態のものであり、実施態様の技術は改善および変更されることが期待され、本発明を限定するものと解釈すべきではない。
【０３０４】
種々の構成要素、サブシステム、動作・操作、機能、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその部分を実施するため説明した技術については、これらに代えて、当該技術分野で知られた機能的に等価の技術が使用できる。また言うまでもなく、実施形態の多くの機能的態様は、ハードウェア（一般に専用回路）またはソフトウェア（プログラムされたコントローラまたはプロセッサの何らかの態様による）で、実施形態に応じた設計上の制約と、処理高速化（それまでハードウェアに含まれていた機能のソフトウェアへの移行を促す）および集積密度の向上（それまでソフトウェアに含まれていた機能のハードウェアへの移行を促す）という技術トレンドとの関数として、選択的に実現できる。種々の実施形態における具体的な変形形態としては、パーティショニングの違い、フォームファクタおよびコンフィギュレーションの違い、使用するオペレーティングシステムおよび他のシステムソフトウェアの違い、使用するインターフェース規格、ネットワークプロトコル、または通信リンクの違いによる変形形態、ならびに本明細書で説明した概念の実施時、特定用途に関する独自の工学および業務上の制約に基づいて期待される他の変形形態などがあるが、これらに限定されるものではない。
【０３０５】
以上の実施形態は、説明した実施形態の多くの態様について必要最低限の実施態様よりはるかに多くの詳細事項および環境的文脈を加えて説明したものである。当業者であれば、一部の実施形態では、本明細書に開示した構成要素または特徴を省略しても、残りの要素間の基本的な協動態様は変わらないことが理解できるであろう。したがって、開示した詳細事項の大部分については、説明した実施形態の種々の態様を実施（実装）しなくともよいことは言うまでもない。前記残りの要素が先行技術と区別可能である限り、省略された構成要素および特徴により本明細書で説明する概念が限定されることはない。
【０３０６】
設計におけるそのようないかなる変形形態も、説明した実施形態で開示した内容に対する実質的な変更とはならない。また言うまでもなく、本明細書で説明した実施形態は他のコンピューティング用途およびネットワーキング用途に広い応用性を有し、説明した実施形態の特定の応用または産業に限定されない。このように、本発明は、当該交付済み特許の請求範囲内で、考えられるすべての変更（修正）形態および変形形態を含むものと解釈されるべきである。
【図１Ａ】
0005957647.tif 000005
【図１Ｂ】
0005957647.tif 000006
【図２】
0005957647.tif 000007
【図３】
0005957647.tif 000008
【図４】
0005957647.tif 000009
【図５】
0005957647.tif 000010