JP5957647B2 - スケーラブルな記憶装置 - Google Patents

スケーラブルな記憶装置 Download PDF

Info

Publication number
JP5957647B2
JP5957647B2 JP2013515573A JP2013515573A JP5957647B2 JP 5957647 B2 JP5957647 B2 JP 5957647B2 JP 2013515573 A JP2013515573 A JP 2013515573A JP 2013515573 A JP2013515573 A JP 2013515573A JP 5957647 B2 JP5957647 B2 JP 5957647B2
Authority
JP
Japan
Prior art keywords
storage
host
agent
request
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013515573A
Other languages
English (en)
Other versions
JP2013532339A5 (ja
JP2013532339A (ja
Inventor
カネパ、ティモシー、エル.
アムダール、カールトン、ジー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2013532339A publication Critical patent/JP2013532339A/ja
Publication of JP2013532339A5 publication Critical patent/JP2013532339A5/ja
Application granted granted Critical
Publication of JP5957647B2 publication Critical patent/JP5957647B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Description

本願に基づく優先権の利益は、添付の出願データシート、願書、または送付状(該当する場合)にて主張されている。本願の種別につき許可される範囲内で、本願は、以下の出願および本願権利者の全所有物において、参照により以下を本明細書に組み込むものとする。
2010年6月18日付で出願されたTimothy Lawrence Canepa(第一発明者)による米国仮特許出願第61/356,443号(整理番号第SF−10−05号)「SCALABLE STORAGE DEVICES」(スケーラブルな記憶装置)
2011年6月16日付で出願されたTimothy Lawrence Canepa(第一発明者)による米国仮特許出願第61/497,525号(整理番号第 SF−10−05B号)「SCALABLE STORAGE DEVICES」(スケーラブルな記憶装置)
記憶装置のアクセスについては、その性能、効率、および実用性を改善する進歩が必要とされている。
本明細書で説明する技術および概念は、公知または周知であるとの明示的な断りがない限り、その文脈、定義、または比較に関するものを含め、これまでに公知であり、または先行技術の一部であったと解釈すべきものではない。この明細書で文献を引用する場合、特許、特許出願、および出版物を含むそれら全ての引用文献は、全ての目的について具体的に組み込まれているかどうかにかかわらず、参照によりその全体が本明細書に組み込まれるものとする。
この出願の発明に関連する先行技術文献情報としては、以下のものがある(国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む)。
(先行技術文献)
(特許文献)
(特許文献1) 米国特許第3,623,014号明細書
(特許文献2) 米国特許第4,396,984号明細書
(特許文献3) 米国特許第4,455,605号明細書
(特許文献4) 米国特許第5,404,508号明細書
(特許文献5) 米国特許第5,574,863号明細書
(特許文献6) 米国特許第5,594,900号明細書
(特許文献7) 米国特許第5,604,862号明細書
(特許文献8) 米国特許第5,608,865号明細書
(特許文献9) 米国特許第5,615,329号明細書
(特許文献10) 米国特許第5,619,644号明細書
(特許文献11) 米国特許第5,621,884号明細書
(特許文献12) 米国特許第5,644,698号明細書
(特許文献13) 米国特許第5,673,382号明細書
(特許文献14) 米国特許第5,680,580号明細書
(特許文献15) 米国特許第5,682,513号明細書
(特許文献16) 米国特許第5,692,155号明細書
(特許文献17) 米国特許第5,870,537号明細書
(特許文献18) 米国特許第5,802,394号明細書
(特許文献19) 米国特許第6,292,878号明細書
(特許文献20) 米国特許第6,385,673号明細書
(特許文献21) 米国特許第6,408,400号明細書
(特許文献22) 米国特許第6,425,049号明細書
(特許文献23) 米国特許第6,654,831号明細書
(特許文献24) 米国特許第6,304,980号明細書
(特許文献25) 米国特許出願公開第2010/0011177号明細書
(特許文献26) 米国特許第6,442,709号明細書
(特許文献27) 台湾特許第286690号公報
(特許文献28) 台湾特許第285304号公報
(特許文献29) 台湾特許第274353号公報
(特許文献30) 台湾特許第233551号公報
(非特許文献)
(非特許文献1) "Direct and Indirect Accessing of Peripheral Devices",IBM Technical Disclosure Bulletin,vol.33,No.lA,Jun.1990.
(非特許文献2) H.D.Meij et al.,"P/DAS and Enhancements to the IBM 3990−6 and RAMAC Array Family",May 1996.
(非特許文献3) "Maintaining Data Integrity Across Redundant I/O Device Take−Overs",IBM Technical Disclosure Bulletin,vol.36,No.06A,Jun.1993,pp.577−578.
(非特許文献4) Crump,George,"What is Scale−Out Storage?",Aug.23,2010,http://www.storage−switzerland.com/Articles/Entries/2010/8/23_What_Is_Scale−Out_Storage.html.
(非特許文献5) International Search Report and the Written Opinion in the parent PCT/US11/40996,9 pages,Feb.23,2012.
本発明は、多数の方法で実施でき、工程、製造品、機器、システム、組成物、その他コンピュータ可読記憶媒体などのコンピュータ可読媒体(例えば、ディスクなどの光および/または磁気による大容量記憶装置における媒体、あるいはフラッシュ記憶装置などの不揮発性記憶装置を有する集積回路)、あるいは光通信リンクまたは電子通信リンク経由でプログラム命令が送信されるコンピュータネットワークなどとして実施可能である。本明細書では、これらの実施態様、または本発明が取りうる他のいかなる形態も、技術と呼ぶことができる。以降の詳細な説明では、上記で特定した分野において性能、効率、および実用性の改善を可能にする本発明の1若しくはそれ以上の実施形態について解説している。本発明の詳細な説明の項には、この項の他の部分に関する理解を促すため、序論を含めている。この序論には、本明細書で説明する概念に基づいた1若しくはそれ以上のシステム、方法、製造品、およびコンピュータ可読媒体の実施形態例が含まれる。以下、結論の項で詳述するように、本発明は、請求項の範囲内で考えられるすべての変更形態および変形形態を包含する。
図1Aは、スケーラブルな記憶装置用技術の一実施形態の構造を一部選んで詳しく例示した図で、ホスト、ホストから見える(host visible)ストレージであって、それぞれ一次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有する、ホストから見えるストレージ、およびホストから見えない(host invisible)ストレージであって、それぞれ二次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有する、ホストから見えないストレージを含む。 図1Bは、スケーラブルな記憶装置用技術の別の一実施形態の構造を一部選んで詳しく例示した図で、ホスト、ホストから見えるストレージであって、それぞれ一次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有する、ホストから見えるストレージ、およびホストから見えないストレージであって、それぞれ二次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有する、ホストから見えないストレージを含む。 図2は、一次エージェントおよび1若しくはそれ以上の二次エージェントにより実行されるアクションを含め、スケーラブルな記憶装置用技術の実施形態の処理を一部選んで詳しく例示した図である。 図3は、スケーラブルな記憶装置用技術の実施形態におけるホスト、一次エージェント、および二次エージェントのアドレス指定を一部選んで詳しく例示した図である。 図4は、一次エージェントとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示した図である。 図5は、二次エージェントとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示した図である。
Figure 0005957647
Figure 0005957647
以下では、本発明の1若しくはそれ以上の実施形態について、本発明の詳細を一部選んで例示した添付の図面とともに詳細に説明している。本発明については、実施形態に関連付けて説明する。それらの実施形態は本明細書において単に例示的なものと理解され、本発明は、本明細書の実施形態のいずれか若しくはすべてに明示的に限定されず、多くの代替形態、変更形態、および均等物を包含するものである。説明が単調になるのを避けるため、種々の表現ラベル(word label)(第1の、最後の、特定の(certain)、種々の、さらに別の、他の、特定の(particular)、選択された、一部の、および特筆すべき、を含み、かつこれらに限定されない)を別個の実施形態セットに適用する場合がある。本明細書において、このようなラベルは、明示的に、特質、または嗜好若しくは偏見の何らかの形態を伝えることを目的としたものではなく、単に別個のセットを便宜的に区別するためのものである。開示した工程の操作・動作のいくつかは、本発明の範囲内で順序を変えることができる。工程、方法、および/またはプログラム命令の特徴の変形形態を複数の実施形態で説明している場合は、所定の、または動的に決定される基準に基づいて、それぞれ複数の実施形態に対応した複数の操作・動作モードから静的および/または動的に選択される1つを実施する他の実施形態も考えられる。以下の説明では、本発明が完全に理解されるよう具体的な詳細事項を多数記載する。これらの詳細事項は例示目的で提供するものであり、本発明は、これら具体的な詳細事項の一部または全部がなくとも、添付の請求項に従って実施可能である。明瞭性のため、本発明を不要に曖昧にしないよう、本発明に関する技術分野で公知の技術的事項は詳述していない。
序論
本序論は、以降の詳細な説明をより短時間で理解できるよう含めたものである。いかなる序論も必然的に当該主題全体を概説するものであり、完全または限定的な説明を意図したものではないため、本発明は本序論に示す概念(明示的な例がある場合はそれを含む)に限定されるものではない。例えば、以下では、本明細書の紙面および構成の制限上、特定の実施形態だけに関する概要を提供している。本明細書の残りの部分では、最終的に請求項と整合するものも含め、他の実施形態を多数説明している。
頭字語
ここで定義された種々の略称または頭字語の少なくとも一部は、本明細書で使用される特定の要素を指している。
Figure 0005957647
スケーラブルな記憶装置を使用する技術では、単一の論理インターフェースとしてホストからアクセス可能な複数の記憶装置を使用し、これら装置により実装されるストレージを概念的に集約する。前記装置の一次エージェントは、ホストインターフェース・プロトコルを使って前記ホストからの記憶要求を受け付け、前記要求を内部処理し、および/またはピアツーピアプロトコルを使って前記要求をサブ要求として前記記憶装置の二次エージェントに転送する。前記二次エージェントは、前記サブ要求を受け付けて処理し、前記サブ要求ごとに、前記一次エージェントおよび/または前記ホストにサブステータス情報を報告する。前記一次エージェントは、任意選択的に、前記ホストへの提供用に前記サブステータスを全体的なステータスへと蓄積する。前記一次エージェントは、当該一次エージェントにより実装されるストレージのほか、前記二次エージェントにより実装されて集約用に割り当てられるストレージを含む利用可能なストレージを前記ホストに報告する。前記二次エージェントは、利用可能なストレージがゼロである旨、あるいは、集約割り当て後に残ったストレージを前記ホストに報告する。
前記エージェント間のピアツーピア通信は、ホストアクセス中および/または障害復旧中に冗長性情報を通信するため、任意選択的に使用される。種々の障害復旧技術により、ストレージが再割り当てされ、一次・二次・設定可能エージェントが再割り当てされ、冗長性情報を介してデータが回復され、またはこれらの任意の組み合わせが実行される。
PCIeインターフェースは、システムにおけるホスト固有の特異な関係を有する。各PCIeは装置の機能の単一ポータルに相当し、これはその機能が記憶であるか、ネットワーキングであるか、または他の何らかのコンピュータシステム機能であるかにかかわらない。前記システム内の各PCIe装置は、当該システムで明確に区別できる各エンティティに相当する。ただし、ピアツーピアトラフィックを通じていくつかの個別PCIe装置がグループ化されるため、それらの装置は、単一のPCIe装置として前記ホストに認識される。PCIeピアツーピア機能を活用すると、ピアツーピア通信で複数のPCIe記憶装置を1つにギャンギングおよび/またはグループ化することによりスケーラブルなストレージアーキテクチャが可能になり、ギャンギングまたはグループ化された装置が単一のストレージサブシステムとして前記ホストに認識されるようにできる。一部の実施形態において、要求は、LBAだけに基づいて前記PCIe記憶装置に配信される。LBAだけに基づく前記配信において、前記グループ内のいかなる特定装置のストレージも、その特定装置が要求をルーティングする上で機能的である必要はないため、前記ストレージが単一障害点になる可能性は排除される。
一部の実施形態および/または使用シナリオでは、前記ギャンギングまたはグループ化により、単一の論理インターフェースとして前記ホストに認識されたまま、性能および/または能力の向上が可能になる。一部の実施形態および/または使用シナリオでは、LBAベースの要求ルーティングにより、ストレージの単一障害点がすべて排除される。一部の実施形態および/または使用シナリオでは、前記ギャンギングまたはグループ化により、いくつかの記憶装置にわたり要求負荷が分散されるため、能力および性能がホストに対しトランスペアレントにスケーリングされる。この能力および性能のスケーリングは、ホストが、能力および待ち時間(レイテンシ)を除き、前記ギャンギングまたはグループ化を制御および監視する必要がないという意味で、前記ホストにとりトランスペアレントである。一部の実施形態および/または使用シナリオでは、前記ギャンギングまたはグループ化により対称型マルチプロセッサ複合ストレージが提供される。
一部の実施形態および/または使用シナリオでは、前記ギャンギングまたはグループ化により、ホストは、単一の論理装置として、複数の物理的装置にわたって分散された資源(リソース)の集約体にアクセスすることができる。例えば、前記ギャンギングまたはグループ化を行うと、ホストは、単一の論理記憶装置として複数の物理的記憶装置にわたって分散された複数のストレージ範囲の集約体にアクセスすることができる。前記ホストにより前記要求の一部として提供されたLBA(および任意選的に長さ)を転送すると、LBA(および任意選択的な長さ)の情報が維持される。前記LBA(および任意選択的な長さ)の情報を維持してターゲット装置上で変換すると、正確な完全性メタデータ(例えば、DIVまたはDIXによる参照整合性)を維持でき、および/または独立した(例えば、並列の)装置動作が可能になる。
一部の実施形態および/または使用シナリオでは、前記ギャンギングまたはグループ化により、ストレージ能力、例えば種々のRAID、ミラーリング、およびフェイルオーバー実施態様に関連してトランスペアレントな冗長性および/または復旧が可能になる。種々の実施形態において、ホストトラフィックは、その大部分がデータトラフィックである一方、ピアツーピアトラフィックの大部分は、制御トラフィックである。種々の実施形態では、ピアツーピアトラフィックにも、データが含まれる(例えば、RAID復旧動作中、または蓄積されたパリティ情報の伝送中)。
一部の実施形態および/または使用シナリオでは、前記ギャンギングまたはグループ化により、1つまたは複数のSSDに連結されたホストを伴うシステムが実現され、その場合、前記ホストに連結された1若しくはそれ以上のPCIeリンクの帯域幅(それぞれ1若しくはそれ以上のレーンを有する)は、複数のSSD、複数のフラッシュコントローラ(例えば、SSDに使用されるもの)、および/または複数のフラッシュチップにわたり(前記ホストに対してトランスペアレントに)分散される。例えば、ホストに連結された1つのPCIeリンクの帯域幅(例えば、8つのレーンを有する)は、4つのSSDまたは8つのフラッシュコントローラに分散される(各SSDまたは各フラッシュコントローラは、例えば、8レーン未満を伴う1つのPCIeリンクを有する)。別の例として、ホストに連結された4つのPCIeリンクの帯域幅は、64のSSDまたは256のフラッシュコントローラにわたって分散される。別の例として、ホストに連結された1つのPCIeリンクの帯域幅は、32のフラッシュチップまたは64のフラッシュコントローラにわたって分散される。別の例として、ホストに連結された4つのPCIeリンクの帯域幅は、128のフラッシュチップまたは256のフラッシュコントローラにわたって分散される。
種々の実施形態では、一次エージェントが、ホストから二次エージェントへのストレージマッピングを決定する(例えば、どのホストLBA範囲がどの二次エージェントに対応するか)。例えば、ホストLBAは、物理ドライブ全体にわたり所定のサイズ(例えば、64KB)でストライプ化される。別の例として、ホストLBAは、RAID実施態様(例えば、RAID 0、RAID 1、またはRAID 5)に基づいてストライプ化される。さらに別の例として、ストライプ化は、作業負荷に基づいて動的に変更される(例えば、第1のストライプ化は第1の作業負荷に使用され、第2のストライプ化は第2の作業負荷に使用される)。
一部の実施形態では、PCIe記憶装置のグループ(1若しくはそれ以上のホストからアクセス可能)がバストポロジーにより連結されて、相互のピアツーピア通信を可能にする。前記PCIe記憶装置グループは、そのグループでただ1つのPCIe装置だけが特定のホスト論理接続の要求を受信するよう設定される。一部の実施形態では、前記グループに複数の接続があり、当該グループの異なるPCIe記憶装置により受信される要求を供給する異なるホスト論理接続が可能になる。
前記PCIe記憶装置グループの設定は、前記ホストに対し、それらの装置がいかに公開(expose)されるかに応じて異なる。前記グループの全装置が、例えばトランスペアレントなスイッチを介して、前記ホストに直接公開される場合は、ホスト論理接続が可能な装置以外の全装置が、記憶容量がゼロである報告を前記ホストに返す一方、前記ホスト論理接続が可能な装置は、特定のホスト論理接続に関する前記グループの設定済み容量を報告する。この設定済み容量は、前記グループのストレージが複数のホスト論理接続にわたりいかにパーティション分割されるかだけでなく、そのストレージがいかに設定または編成されるか(例えば、JBODまたはRAID)に応じても異なる。前記装置の一部が前記ホストの後方、例えばブリッジまたは非トランスペアレントなスイッチに対して隠される場合、前記ホストに公開されない装置による前記容量ゼロの報告は行われない。ホスト論理接続では、単に単一のPCIe装置インターフェースに要求が送信されたのち、そこから当該グループ内の他の装置に対して要求の配信および調整が行われる。
さらに別の実施形態では、それぞれホスト論理接続が可能な2若しくはそれ以上の装置が、前記装置および/または他の装置の記憶容量内で重複した記憶容量を報告する。例えば、第1のホスト論理接続が可能な第1の装置は、当該第1の装置の合計記憶容量および第2の装置の合計記憶容量を合わせたものに等しい集約記憶容量を報告する。第2のホスト論理接続が可能な第3の装置も、前記集約記憶容量を報告する。前記第1のホスト論理接続経由で受信され、または前記第2のホスト論理接続経由で受信されたホスト要求は、前記第1の装置および前記第2の装置の同じ物理的ストレージを参照する(任意選択的および/または選択的に異なるLBAを使って)。
記憶装置により実装されるストレージは、そのすべてを直接ホストに公開する(または非公開にする)必要はない。例えば、特定の記憶装置は、記憶装置グループに部分的に割り当てられるストレージ(例えば、ホストに直接公開されないもの)と、直接前記ホストに公開されるよう部分的に割り当てられるストレージとを実装する。この特定の記憶装置は、容量がゼロであることを前記ホストに報告する代わりに、前記ホストに直接公開される部分的割り当てに対応したストレージ量を報告する。
一部の実施形態では、前記グループの諸装置の初期設定は、前記ホスト上および/または1若しくはそれ以上のオプションROM内に常駐するソフトウェアにより行われる。前記初期設定の一例は、前記装置のうち、ホスト論理接続を可能にするものと、そうでないものに関する初期設定である。前記初期設定の別の例は、装置グループ用に割り当てるストレージ量とホストへの直接公開用に割り当てるストレージ量とに関するものである。
一部の実施形態において、前記装置グループの設定は、システムの動作中、例えば「ホットスペア」の挿入されている際、または装置が動的に、例えば障害に応答して、前記グループに追加され若しくは当該グループから除外されている際に行われる。例えば、ホットスペア装置の挿入時には、ホスト上の装置ドライバのうち1若しくはそれ以上と、一次エージェントとに関与するディスカバリ工程が、前記挿入された装置を認識してこれを適宜設定する(例えば、障害の発生した装置と交換するため)。前記装置挿入は、例えば前記挿入された装置からのアナウンスメントおよび/または「ホットプラグ」イベントにより示される。
ホストがストレージ読み出し・書き込み要求(例えば、eNVMHCIまたはAHCI対応の要求)を発行すると、当該要求を受信する前記装置は、当該要求のLBA(および任意選択的に長さ)を使って当該要求を前記グループの1つまたは複数の装置へ転送し、そこで前記要求された記憶が実施される。前記要求の長さと前記グループの編成(例えば、JBODまたはRAID)とに応じ、前記要求は、例えば複数のサブ要求として、前記グループの1より多くの装置へルーティングされる。
種々の実施形態によれば、前記グループ内の特定の装置がサブ要求を受信した場合、前記特定の装置は、前記LBA(および任意選択的に、供給された任意の長さ)をローカルLBA(および長さ)に変換して前記サブ要求を処理したのち、そのサブ要求に関するデータをホストメモリとの間で直接送受信する。ホストメモリの一例は、メモリの特定のアドレスにデータを格納する命令の実行を通じて前記ホストにより書き込まれたデータを保持できる要素であって、メモリの前記特定のアドレスからデータを読み出す命令の実行を通じて前記ホストが前記書き込まれたデータを読み出せるようになっている要素である。前記特定の装置は、任意選択的および/または選択的に、(a)前記(転送された)サブ要求から、(b)ホストに常駐する変換構造(例えば、スキャッタ・ギャザーリスト)から、および(c)前記ホストとの制御インターフェースとして機能する装置にプロキシ要求を発行することにより、のうち1若しくはそれ以上からのデータ転送先となるホストメモリアドレスを取得する。一部の実施形態では、IO仮想化についてのみ、プロキシ要求の発行が行われる。
サブ要求ごとの前記データ転送が完了すると、その転送を行った装置は、前記ホストとの制御インターフェースとして機能する前記装置にサブステータスを報告する。次に、前記ホストとの前記制御インターフェースとして機能する前記装置は、前記要求に係わる全装置がサブステータスを報告し終わった時点で、前記ホストにステータスをポストする。
非データコマンド(例えば、SATA IDENTIFY DEVICEコマンド)も同様に処理される。ホストとの制御インターフェースとして機能する特定の装置により非データコマンドが受信されると、その特定の装置は、(必要に応じて)当該グループ内の他の装置に問い合わせを行ったのち、前記問い合わせの要約および/または集約された結果を前記ホストに報告する。
種々の実施形態において、ホストは、複数の装置の集約(例えば、それぞれ×1または×2のPCIe接続を有する装置)を、すべての前記装置のストレージを包含する単一の論理装置として認識する(例えば、前記装置は、単一の論理装置として仮想化される)。種々の実施形態において、前記ホストは、任意またはすべての前記装置を、ストレージ全体の一部を有するものとして認識するため、制御トラフィックだけでなくデータトラフィックの分割も可能にしている。
送信キュー(例えば、並列したアクティビティストリームに関する同時にアクティブな複数の送信キューのうちの1つ)を通じた前記ホストからの要求は、例えば前記ホストが認識している装置のうち特定の1つにより処理される。前記送信キューに含まれる個々の要求は、(前記特定の装置からのピアツーピア要求を介した)サブ要求として、前記要求が参照するストレージの全部または一部を実装する装置に、任意選択的および/または選択的に転送される。例えば、前記ストレージは、個々のLBAまたはLBAグループにより、前記装置にわたってストライプ化される。一部の実施形態および/または使用シナリオでは、LBAグループでストライプ化を行うと、比較的大きなチャンクを個々の装置に集約することで性能上の利点が実現される。複数の送信キューを有する一部の実施形態では、新規送信キューに係る装置のうち特定の1つの装置にホストが通知を行い、その特定の装置が、前記新規送信キューのサービスを他の前記装置へ分散させる。
個々の前記装置は、前記ホストとのデータ転送を含めて、転送されたサブ要求を独立に処理する。一部のプロトコル(例えば、一部のPCIe互換プロトコル)では、各送信キューに関する各完了キューで提供される「完了」が使用される。送信キュー内の各エントリにつき、それに対応した完了通知が各当該完了キューへ返される。前記装置のうちいずれか1つ若しくはそれ以上は、任意選択的および/または選択的に、所与の要求に関する完了情報を「集約」して前記完了キューを更新できるようにされる。種々の実施形態では、原子性(アトミック性)に対応した装置が完了キューごとに1つ割り当てられる。前記割り当てられた装置は、一部の実施形態において、対応する送信キュー内のエントリを処理する装置と同じであるが、他の実施形態では、対応する送信キュー内のエントリを処理する装置と異なる。
実施例
詳細な説明の序論の結びとして、以下では、少なくとも「EC」(Example Combination。組み合わせ例)として明示的に列挙されたいくつかを含む実施形態例集を示し、本明細書で説明する概念に係る種々の実施形態タイプについてさらに説明する。これらの例は、相互に排他的、完全、または限定的であることを意図したものではなく、本発明は、これらの実施形態例に限定されず、特許請求の範囲内で考えられる変更(修正)形態および変形形態をすべて包含するものである。
EC1)システムであって、
ストレージの1つのアドレスにアクセスする要求をホストから受け付ける手段と、
前記アドレスに少なくとも部分的に基づいて、前記要求が複数の記憶装置のうちのいずれの1若しくはそれ以上の記憶装置に対応するかを決定する手段と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する手段と、
前記対応する決定された記憶装置に前記サブ要求を送信する手段と、
前記決定された各記憶装置から各サブステータスを受け付ける手段と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する手段と、
前記全体的なステータスを前記ホストに提供する手段と
を有し、
前記要求を受け付ける手段は、ホストインターフェース・プロトコルと互換性があり、前記サブ要求を送信する手段および前記サブステータスを受け付ける手段は、前記ホストから独立して動作可能なピアツーピアプロトコルと互換性があり、
前記記憶装置のうちの少なくとも1つは、前記サブ要求の1つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも1つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
システム。
EC2)EC1記載のシステムにおいて、前記要求を受け付ける手段、前記サブ要求を送信する手段、前記各サブステータスを受け付ける手段、および前記全体的なステータスを提供する手段のうち2若しくはそれ以上は、共有される物理インターフェース上で動作可能であるシステム。
EC3)EC2記載のシステムにおいて、周辺機器相互接続エクスプレス(PCIe)トポロジーおよびInfiniBandトポロジーのうち少なくとも1つは、前記共有される物理インターフェースを有するものであるシステム。
EC4)EC2記載のシステムにおいて、周辺機器相互接続エクスプレス(PCIe)インターフェースおよびInfiniBandインターフェースのうち少なくとも1つは、前記共有される物理インターフェースを有するものであるシステム。
EC5)EC1記載のシステムにおいて、さらに、
前記要求を受け付ける手段、前記記憶装置を決定する手段、前記サブ要求を決定する手段、前記サブ要求を送信する手段、前記サブステータスを受け付ける手段、前記全体的なステータスを決定する手段、および前記全体的なステータスを提供する手段を有する前記記憶装置のうちの特定の1つを有するものであるシステム。
EC6)EC1記載のシステムにおいて、前記記憶装置のうちの2若しくはそれ以上は、前記ホストインターフェース・プロトコルを介して前記ホストと通信可能であるシステム。
EC7)EC6記載のシステムにおいて、前記記憶装置のうちの前記2若しくはそれ以上とは、前記記憶装置のすべてであるシステム。
EC8)EC1記載のシステムにおいて、前記アドレスは、開始位置および長さを有するものであるシステム。
EC9)EC1記載のシステムにおいて、前記アドレスは、論理ブロックアドレス(LBA)を有するものであるシステム。
EC10)EC1記載のシステムにおいて、前記手段の全ては、単一の集積回路(IC)に集合的に実装されるものであるシステム。
EC11)EC1記載のシステムにおいて、前記手段の全ては、単一のアドインカードに集合的に実装されるものであるシステム。
EC12)EC1記載のシステムにおいて、前記手段全ては、ソリッドステートディスク(SSD)に含まれるものであるシステム。
EC13)EC1記載のシステムにおいて、前記ホストインターフェース・プロトコルは、
ユニバーサルシリアルバス(USB)インターフェース規格と、
コンパクトフラッシュ(登録商標)(CF)インターフェース規格と、
マルチメディアカード(MMC)インターフェース規格と、
セキュアデジタル(SD)インターフェース規格と、
メモリースティック・インターフェース規格と、
xDピクチャーカード・インターフェース規格と
統合ドライブエレクトロニクス(IDE)インターフェース規格と
シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェース規格と、
外部シリアルATA(eSATA)インターフェース規格と、
スモール・コンピュータ・システム・インターフェース(SCSI)インターフェース規格と、
シリアル・アタッチド・スモール・コンピュータ・システム・インターフェース(SAS)インターフェース規格と、
ファイバーチャネル・インターフェース規格と、
イーサネット(登録商標)・インターフェース規格と、
周辺機器相互接続エクスプレス(PCIe)インターフェース規格と
のうち1若しくはそれ以上と互換性があるものであるシステム。
EC14)EC1記載のシステムにおいて、さらに、
前記ホストの全部または任意部分を有するものであるシステム。
EC15)EC14記載のシステムにおいて、前記ホストは、
コンピュータと、
ワークステーション・コンピュータと、
サーバー・コンピュータと、
ストレージ・サーバーと、
パーソナルコンピュータ(PC)と、
ラップトップ・コンピュータと、
ノートブック・コンピュータと、
ネットブック・コンピュータと、
携帯情報端末(PDA)と、
メディアプレーヤーと、
メディアレコーダーと、
デジタルカメラと、
携帯電話ハンドセットと、
コードレスホン・ハンドセットと、
電子ゲームと
のうち1若しくはそれ以上を有するものであるシステム。
EC16)EC1記載のシステムにおいて、さらに、
前記記憶装置の全部または任意部分を有するものであるシステム。
EC17)EC1記載のシステムにおいて、さらに、
前記記憶装置のうち1若しくはそれ以上に有されるフラッシュメモリを有するものであるシステム。
EC18)命令セットを内部に格納するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
ホストからストレージの1つのアドレスにアクセスする要求を受け付ける工程を管理する工程と、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちのいずれの1若しくはそれ以上に前記要求が対応するかを決定する工程を管理する工程と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する工程を管理する工程と、
前記対応する決定された記憶装置に前記サブ要求を送信する工程を管理する工程と、
前記決定された各記憶装置から各サブステータスを受け付ける工程を管理する工程と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する工程を管理する工程と、
前記全体的なステータスを前記ホストに提供する工程を管理する工程と
を有する動作が実行され、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルを介し、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルを介するものであり、
前記記憶装置のうちの少なくとも1つは、前記サブ要求の1つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの少なくとも1つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
コンピュータ可読媒体。
EC19)EC18記載のコンピュータ可読媒体において、前記ホストインターフェース・プロトコルおよび前記ピアツーピアプロトコルは、周辺機器相互接続エクスプレス(PCIe)チャネルと互換性があるものであるコンピュータ可読媒体。
EC20)方法であって、
ストレージの1つのアドレスにアクセスする要求をホストから受け付ける工程と、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちいずれの1若しくはそれ以上に前記要求が対応するかを決定する工程と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する工程と、
前記対応する決定された記憶装置に前記サブ要求を送信する工程と、
前記決定された各記憶装置から各サブステータスを受け付ける工程と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する工程と、
前記全体的なステータスを前記ホストに提供する工程と
を有し、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルと互換性があり、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルと互換性があり、
前記記憶装置のうちの少なくとも1つは、前記サブ要求の1つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも1つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
方法。
EC21)システムであって、
ストレージの1つのアドレスにアクセスする要求をホストから受け付けることのできるホストインターフェース論理ハードウェアと、
制御論理ハードウェアであって、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちどの1若しくはそれ以上に前記要求が対応するか、ならびに前記決定された各記憶装置に対応する各サブ要求を決定し、
前記対応する決定された記憶装置に前記サブ要求を送信し、
前記決定された各記憶装置から各サブステータスを受け付け、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する
ことのできる制御論理ハードウェアと
を有し、
前記ホストインターフェース論理ハードウェアは、さらに、前記全体的なステータスを前記ホストに提供でき、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルと互換性があり、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルと互換性があり、
前記記憶装置のうちの少なくとも1つは、前記サブ要求の1つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも1つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
システム。
EC22)方法であって、
第1の記憶装置が、複数のホスト要求キューのうちの第1のホスト要求キューから第1の要求を読み出す工程と、
第2の記憶装置が、前記ホスト要求キューのうちの第2のホスト要求キューから第2の要求を読み出す工程であって、前記第2のホスト要求キューは、前記第1のホスト要求キューと区別可能であり、当該第2の記憶装置が読み出す工程は、前記第1の記憶装置が読み出す工程から独立したものである、工程と、
前記第1の記憶装置が、前記第1の要求の少なくとも一部を前記第2の記憶装置に転送する工程と、
前記第2の記憶装置が、前記第2の要求の少なくとも一部を前記第1の記憶装置に転送する工程であって、当該第2の記憶装置が転送する工程は、前記第1の記憶装置が転送する工程から独立したものである、工程と、
前記第1の記憶装置が、前記第2の要求の前記少なくとも一部に基づいて、当該第1の記憶装置の第1のストレージにアクセスし、当該第1の記憶装置がアクセスする工程に少なくとも部分的に基づいて、第1のサブステータスを前記第2の記憶装置に送信する工程と、
前記第2の記憶装置が、前記第1の要求の前記少なくとも一部に基づいて、当該第2の記憶装置の第2のストレージにアクセスし、当該第2の記憶装置がアクセスする工程に少なくとも部分的に基づいて、第2のサブステータスを前記第1の記憶装置に送信する工程と
を有する方法。
EC23)システムであって、
第1の記憶装置が、複数のホスト要求キューのうちの第1のホスト要求キューから第1の要求を読み出す手段と、
第2の記憶装置が、前記ホスト要求キューのうちの第2のホスト要求キューから第2の要求を読み出す手段であって、前記第2のホスト要求キューは、前記第1のホスト要求キューと区別可能であり、当該第2の記憶装置による読み出しは、前記第1の記憶装置による読み出しから独立したものである、手段と、
前記第1の記憶装置が、前記第1の要求の少なくとも一部を前記第2の記憶装置に転送する手段と、
前記第2の記憶装置が、前記第2の要求の少なくとも一部を前記第1の記憶装置に転送する手段であって、当該第2の記憶装置による転送は、前記第1の記憶装置による転送から独立したものである、手段と、
前記第1の記憶装置が、前記第2の要求の前記少なくとも一部に基づいて、当該第1の記憶装置の第1のストレージにアクセスし、当該第1の記憶装置によるアクセスに少なくとも部分的に基づいて、第1のサブステータスを前記第2の記憶装置に送信する手段と、
前記第2の記憶装置が、前記第1の要求の前記少なくとも一部に基づいて、当該第2の記憶装置の第2のストレージにアクセスし、当該第2の記憶装置によるアクセスに少なくとも部分的に基づいて、第2のサブステータスを前記第1の記憶装置に送信する手段と
を有するシステム。
EC24)システムであって、
複数のホスト要求キューのうちの第1のホスト要求キューから第1の要求を読み出せる第1の記憶装置のホストインターフェース論理ハードウェアと、
前記ホスト要求キューのうちの第2のホスト要求キューから第2の要求を読み出せる第2の記憶装置のホストインターフェース論理ハードウェアであって、前記第2のホスト要求キューは、前記第1のホスト要求キューと区別可能であり、当該第2の記憶装置による読み出しは、前記第1の記憶装置による読み出しから独立したものである、第2の記憶装置のホストインターフェース論理ハードウェアと、
前記第1の要求の少なくとも一部を前記第2の記憶装置に転送できる前記第1の記憶装置の要求転送論理ハードウェアと、
前記第2の要求の少なくとも一部を前記第1の記憶装置に転送できる前記第2の記憶装置の要求転送論理ハードウェアであって、当該第2の記憶装置による転送は、前記第1の記憶装置による転送から独立したものである、前記第2の記憶装置の要求転送論理ハードウェアと、
前記第2の要求の前記少なくとも一部に基づいて前記第1の記憶装置の第1のストレージにアクセスできる前記第1の記憶装置のストレージインターフェース論理ハードウェアと、
前記第1の記憶装置によるアクセスに少なくとも部分的に基づいて第1のサブステータスを決定できる前記第1の記憶装置のサブステータス生成論理ハードウェアと、
前記第1のサブステータスを前記第2の記憶装置に転送できる前記第1の記憶装置のサブステータス転送論理ハードウェアと、
前記第1の要求の前記少なくとも一部に基づいて前記第2の記憶装置の第2のストレージにアクセスできる前記第2の記憶装置のストレージインターフェース論理ハードウェアと、
前記第2の記憶装置によるアクセスに少なくとも部分的に基づいて第2のサブステータスを決定できる前記第2の記憶装置のサブステータス生成論理ハードウェアと、
前記第2のサブステータスを前記第1の記憶装置に転送できる前記第2の記憶装置のサブステータス転送論理ハードウェアと
を有するシステム。
EC25)方法であって、
第1の記憶装置が、複数のホスト要求キューのうちの第1のホスト要求キューから第1の要求を読み出す工程と、
第2の記憶装置が、前記ホスト要求キューのうちの第2のホスト要求キューから第2の要求を読み出す工程であって、前記第2のホスト要求キューは、前記第1のホスト要求キューと区別可能であり、当該第2の記憶装置が読み出す工程は、前記第1の記憶装置が読み出す工程から独立したものである、工程と、
前記第1の記憶装置が、前記第1の要求の少なくとも一部を前記第2の記憶装置に転送する工程と、
前記第2の記憶装置が、前記第2の要求の少なくとも一部を前記第1の記憶装置に転送する工程であって、当該第2の記憶装置が転送する工程は、前記第1の記憶装置が転送する工程から独立したものである、工程と、
前記第1の記憶装置が、前記第2の要求の前記少なくとも一部に基づいて、第1のストレージにアクセスし、当該第1の記憶装置がアクセスする工程に少なくとも部分的に基づいて、複数のホスト・ステータス・キューのうちの第1のホスト・ステータス・キューに第1のステータスを書き込む工程と、
前記第2の記憶装置が、前記第1の要求の前記少なくとも一部に基づいて、第2のストレージにアクセスし、当該第2の記憶装置がアクセスする工程に少なくとも部分的に基づいて、前記ホスト・ステータス・キューのうちの第2のホスト・ステータス・キューに第2のステータスを書き込む工程であって、前記第2の記憶装置がアクセスする工程は、前記第1の記憶装置がアクセスする工程から独立したものであり、前記第2のストレージは前記第1のストレージと区別可能である、工程と
を有する方法。
EC26)システムであって、
第1の記憶装置が、複数のホスト要求キューのうちの第1のホスト要求キューから第1の要求を読み出す手段と、
第2の記憶装置が、前記ホスト要求キューのうちの第2のホスト要求キューから第2の要求を読み出す手段であって、前記第2のホスト要求キューは、前記第1のホスト要求キューと区別可能であり、当該第2の記憶装置による読み出しは、前記第1の記憶装置による読み出しから独立したものである、手段と、
前記第1の記憶装置が、前記第1の要求の少なくとも一部を前記第2の記憶装置に転送する手段と、
前記第2の記憶装置が、前記第2の要求の少なくとも一部を前記第1の記憶装置に転送する手段であって、当該第2の記憶装置による転送は、前記第1の記憶装置による転送から独立したものである、手段と、
前記第1の記憶装置が、前記第2の要求の前記少なくとも一部に基づいて、第1のストレージにアクセスし、当該第1の記憶装置によるアクセスに少なくとも部分的に基づいて、複数のホスト・ステータス・キューのうちの第1のホスト・ステータス・キューに第1のステータスを書き込む手段と、
前記第2の記憶装置が、前記第1の要求の前記少なくとも一部に基づいて、第2のストレージにアクセスし、当該第2の記憶装置によるアクセスに少なくとも部分的に基づいて、前記ホスト・ステータス・キューのうちの第2のホスト・ステータス・キューに第2のステータスを書き込む手段であって、前記第2の記憶装置によるアクセスは、前記第1の記憶装置によるアクセスから独立したものであり、前記第2のストレージは前記第1のストレージと区別可能である、手段と
を有するシステム。
EC27)システムであって、
複数のホスト要求キューのうちの第1のホスト要求キューから第1の要求を読み出せる第1の記憶装置のホストインターフェース論理ハードウェアと、
前記ホスト要求キューのうちの第2のホスト要求キューから第2の要求を読み出せる第2の記憶装置のホストインターフェース論理ハードウェアであって、前記第2のホスト要求キューは、前記第1のホスト要求キューと区別可能であり、当該第2の記憶装置による読み出しは、前記第1の記憶装置による読み出しから独立したものである、第2の記憶装置のホストインターフェース論理ハードウェアと、
前記第1の要求の少なくとも一部を前記第2の記憶装置に転送できる前記第1の記憶装置の要求転送論理ハードウェアと、
前記第2の要求の少なくとも一部を前記第1の記憶装置に転送できる前記第2の記憶装置の要求転送論理ハードウェアであって、当該第2の記憶装置による転送は、前記第1の記憶装置による転送から独立したものである、前記第2の記憶装置の要求転送論理ハードウェアと、
前記第2の要求の前記少なくとも一部に基づいて第1のストレージにアクセスできる前記第1の記憶装置のストレージインターフェース論理ハードウェアと、
前記第1の記憶装置によるアクセスに少なくとも部分的に基づいて第1のステータスを決定でき、さらに、複数のホスト・ステータス・キューのうちの第1のホスト・ステータス・キューに前記第1のステータスが書き込まれるよう前記第1の記憶装置の前記ホストインターフェース論理ハードウェアに前記第1のステータスを提供できる、前記第1の記憶装置のステータス生成論理ハードウェアと、
前記第1の要求の前記少なくとも一部に基づいて第2のストレージにアクセスできる前記第2の記憶装置のストレージインターフェース論理ハードウェアと、
前記第2の記憶装置によるアクセスに少なくとも部分的に基づいて第2のステータスを決定でき、さらに、前記ホスト・ステータス・キューのうちの第2のホスト・ステータス・キューに前記第2のステータスが書き込まれるよう前記第2の記憶装置の前記ホストインターフェース論理ハードウェアに前記第2のステータスを提供できる前記第1の記憶装置のステータス生成論理ハードウェアであって、前記第2の記憶装置によるアクセスは、前記第1の記憶装置によるアクセスから独立したものであり、前記第2のストレージは前記第1のストレージと区別可能である、前記第1の記憶装置のステータス生成論理ハードウェアと
を有するシステム。
EC28)システムであって、
複数の物理的記憶装置にわたって分散された複数の記憶範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにする手段であって、前記物理的記憶装置のうち1つは一次エージェントとして動作でき、前記物理的記憶装置のうち1若しくはそれ以上は二次エージェントとして動作できる、手段と、
前記一次エージェントと、前記二次エージェントのうち少なくとも1つとの間のピアツーピアトラフィックを通信する手段と
を有し、
前記一次エージェントは、冗長データ記憶用に前記二次エージェントの少なくとも一部を管理でき、
前記ピアツーピアトラフィックは、前記冗長データ記憶を実施するための冗長トラフィックを有するものである
システム。
EC29)EC29記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、蓄積されたパリティ情報を有するものであるシステム。
EC30)EC29記載のシステムにおいて、前記少なくとも一部は、前記一次エージェントおよび/または前記二次エージェントの1つから転送されるものであるシステム。
EC31)EC29記載のシステムにおいて、前記少なくとも一部は、前記二次エージェントの1つであって、前記蓄積されたパリティ情報に対応する蓄積されたパリティ記憶を実施する、前記二次エージェントの1つに転送されるものであるシステム。
EC32)EC28記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、前記一次エージェントにより、前記二次エージェントのうち1若しくはそれ以上に提供されるものであるシステム。
EC33)EC28記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、前記二次エージェントのうち1若しくはそれ以上により、前記一次エージェントに提供されるものであるシステム。
EC34)EC29記載のシステムにおいて、前記冗長トラフィックの少なくとも一部は、複数の前記二次エージェント間のものであるシステム。
EC35)EC28記載のシステムにおいて、前記冗長トラフィックは、制御情報、未変換データ、および変換済みデータのうち1若しくはそれ以上を有するものであるシステム。
EC36)EC35記載のシステムにおいて、前記制御情報は、特定のストレージアドレスについて起こる予定の冗長更新の数に関する指標を有するものであるシステム。
EC37)EC36記載のシステムにおいて、前記一次エージェントおよび前記二次エージェントのうち少なくとも1つは、前記特定のストレージアドレスについての前記冗長更新が起こるまで、前記指標を使って前記冗長更新に関する情報をキャッシュできるものであるシステム。
EC38)EC35記載のシステムにおいて、前記未変換データは、前記ホストからの書き込みデータのうち1若しくはそれ以上の部分を有するものであるシステム。
EC39)EC38記載のシステムにおいて、書き込みデータの前記部分は、ミラーリング動作に少なくとも部分的に基づいて決定されるものであるシステム。
EC40)EC35記載のシステムにおいて、前記変換済みデータは、
前記ホストからの書き込みデータに少なくとも部分的に基づいたパリティデータと、
前記ホストからの書き込みデータに少なくとも部分的に基づいた排他的論理和(XOR)データと、
小型ディスク冗長アレイ(RAID)実施態様に少なくとも部分的に基づいた冗長性情報と
のうち1若しくはそれ以上を有するものであるシステム。
EC41)EC28記載のシステムにおいて、前記冗長トラフィックは、読み出し−修正−書き込み(RMW)動作制御および/またはデータ冗長トラフィックを有するものであるシステム。
EC42)EC41記載のシステムにおいて、前記RMW動作データ冗長トラフィックは、前記ホストからの書き込みデータの全部または任意部分のコピーであるシステム。
EC43)EC41記載のシステムにおいて、前記RMW動作データ冗長トラフィックは、前記ホストからの書き込みデータの一部に少なくとも部分的に基づいた変換済みデータであるシステム。
EC44)EC41記載のシステムにおいて、前記RMW動作制御冗長トラフィックは、特定のアドレスについて起こる予定の冗長更新の数に関する指標であるシステム。
EC45)EC28記載のシステムにおいて、前記冗長トラフィックは、データ回復動作制御および/またはデータ冗長トラフィックを有するものであるシステム。
EC46)EC28記載のシステムにおいて、前記冗長データ記憶は、1若しくはそれ以上の小型ディスク冗長アレイ(RAID)技術に基づいたものであるシステム。
EC47)EC28記載のシステムにおいて、前記一次エージェントは、ストレージにアクセスする要求を前記ホストから受け付け、前記要求を1若しくはそれ以上のサブ要求として前記二次エージェントの全部または任意部分に転送し、且つ前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付けることができるものであるシステム。
EC48)EC47記載のシステムにおいて、前記サブ要求は、前記冗長データ記憶が基づく冗長性技術に少なくとも部分的に基づいて決定されるものであるシステム。
EC49)EC48記載のシステムにおいて、前記冗長性技術は、小型ディスク冗長アレイ(RAID)実施態様に基づいたものであるシステム。
EC50)EC47記載のシステムにおいて、前記サブ要求の少なくとも一部は、当該サブ要求の転送先である前記物理的装置のストライプ化に部分的に基づいたものであるシステム。
EC51)EC50記載のシステムにおいて、前記ストライプ化は、小型ディスク冗長アレイ(RAID)実施態様に基づいたものであるシステム。
EC52)EC50記載のシステムにおいて、前記ストライプ化は、作業負荷に基づいて動的に変更されるものであるシステム。
EC53)EC28記載のシステムにおいて、各前記二次エージェントは、1若しくはそれ以上のサブ要求を前記一次エージェントから受け付け、ローカルストレージにアクセスできるよう前記受け付けられたサブ要求のホストコンテキストアドレス指定情報を変換し、且つ前記ローカルストレージに少なくとも部分的に基づいて前記一次エージェントに各サブステータスを提供できるものであるシステム。
EC54)EC28記載のシステムにおいて、各前記二次エージェントは、1若しくはそれ以上のサブ要求を前記一次エージェントから受け付け、ローカルストレージにアクセスできるよう前記受け付けられたサブ要求のホストコンテキストアドレス指定情報を変換し、前記ローカルストレージにアクセスし、且つ前記アクセスの読み出しまたは書き込みデータであるデータを前記ホストと転送できるものであるシステム。
EC55)EC28記載のシステムにおいて、さらに、
前記ホストと前記一次エージェント間でホストトラフィックを通信する手段を有するものであるシステム。
EC56)EC55記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段は、前記ホストトラフィックを通信する手段の論理チャネルと区別可能な少なくとも1つの論理チャネルを介したものであるシステム。
EC57)EC55記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段は、前記ホストトラフィックを通信する手段の物理チャネルと区別可能な少なくとも1つの物理チャネルを介したものであるシステム。
EC58)EC55記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段および前記ホストトラフィックを通信する手段のうち1若しくはそれ以上は、周辺機器相互接続エクスプレス(PCIe)規格と互換性があるものであるシステム。
EC59)EC55記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段および前記ホストトラフィックを通信する手段のうち1若しくはそれ以上は、InfiniBand規格と互換性があるものであるシステム。
EC60)EC55記載のシステムにおいて、前記ピアツーピアトラフィックを通信する手段は、非トランスペアレントなスイッチの全部または任意部分を有するものであるシステム。
EC61)EC55記載のシステムにおいて、前記ホストトラフィックを通信する手段は、トランスペアレントなスイッチの全部または任意部分を有するものであるシステム。
EC62)方法であって、
複数の物理的記憶装置にわたって分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにする工程であって、前記物理的記憶装置のうち1つは一次エージェントとして動作でき、前記物理的記憶装置のうち1若しくはそれ以上は二次エージェントとして動作できる、工程と、
前記一次エージェントと、前記二次エージェントのうち少なくとも1つとの間のピアツーピアトラフィックを通信する工程と
を有し、
前記一次エージェントは、冗長データ記憶用に前記二次エージェントの少なくとも一部を管理でき、
前記ピアツーピアトラフィックは、前記冗長データ記憶を実施するための冗長トラフィックを有するものである
システム。
EC63)システムであって、
ホストインターフェース論理ハードウェアと、
少なくとも部分的に前記ホストインターフェース論理ハードウェアを介してホストと選択的に通信できる複数の物理的記憶装置であって、前記物理的記憶装置のうち少なくとも1つは一次エージェントとして動作でき、前記物理的記憶装置のうち1若しくはそれ以上それぞれの二次エージェントとして動作できる、複数の物理的記憶装置と、
前記一次エージェントと、前記二次エージェントのうち少なくとも1つとの間のピアツーピアトラフィックを可能にするピアツーピア通信論理ハードウェアと
を有し、
前記物理的記憶装置は、当該物理的記憶装置に分散された複数のストレージ範囲の集約を実装し、
前記一次エージェントは、冗長データ記憶を実施するよう前記二次エージェントの少なくとも一部を管理でき、
前記ピアツーピアトラフィックは、前記冗長データ記憶を実施するための冗長トラフィックを有するものである
システム。
EC64)システムであって、
ピアツーピアプロトコルを介して複数の記憶エージェント間をインターフェース接続する手段と、
前記記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する手段であって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、障害を検出する手段と、
前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる手段であって、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、手段と
を有するシステム。
EC65)EC64記載のシステムにおいて、前記記憶エージェントは、二次エージェントを有するものであるシステム。
EC66)EC64記載のシステムにおいて、前記記憶エージェントは、一次エージェントを有するものであるシステム。
EC67)EC64記載のシステムにおいて、前記手段は一次エージェントに有され、前記記憶エージェントは二次エージェントを有するものであるシステム。
EC68)EC64記載のシステムにおいて、各前記記憶エージェントは、物理的ストレージの少なくとも各部分を実装するものであるシステム。
EC69)EC68記載のシステムにおいて、前記各前記部分は、1若しくはそれ以上の不揮発性メモリを有するものであるシステム。
EC70)EC64記載のシステムにおいて、さらに、
ローカルストレージを有し、前記割り当ての対象であるストレージは、前記ローカルストレージをさらに有するものであるシステム。
EC71)EC64記載のシステムにおいて、前記障害は、部分的障害であり、前記障害の発生した記憶エージェントは、前記部分的障害後、少なくとも一部のストレージを実装し続けるものであるシステム。
EC72)EC71記載のシステムにおいて、前記割り当ての対象であるストレージは、前記少なくとも一部のストレージをさらに有するものであるシステム。
EC73)EC64記載のシステムにおいて、前記検出する手段は、前記記憶エージェントの1つにより少なくとも部分的に実装されるものであるシステム。
EC74)EC64記載のシステムにおいて、前記検出する手段は、装置ドライバにより少なくとも部分的に実装されるものであるシステム。
EC75)EC64記載のシステムにおいて、さらに、
1若しくはそれ以上の冗長性技術によりデータを回復する手段を有するものであるシステム。
EC76)EC75記載のシステムにおいて、前記冗長性技術は、ミラーリング技術を有するものであるシステム。
EC77)EC75記載のシステムにおいて、前記冗長性技術は、小型ディスク冗長アレイ(RAID)技術を有するものであるシステム。
EC78)方法であって、
ピアツーピアプロトコルを介して複数の記憶エージェント間をインターフェース接続する工程と、
前記記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する工程であって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、工程と、
前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる工程であって、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、工程と
を有する方法。
EC79)システムであって、
複数の記憶エージェント間のピアツーピアプロトコル通信を可能にするピアツーピア通信論理ハードウェアと、
前記記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する障害検出論理ハードウェアであって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、障害検出論理ハードウェアと、
命令を実行できるプロセッサであって、前記命令が当該プロセッサにより実行されると、当該プロセッサは、前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる工程を有する動作を実施し、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、プロセッサと
を有するシステム。
EC80)命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
ピアツーピアプロトコルを介して複数の記憶エージェント間をインターフェース接続する工程を管理する工程と、
前記記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する工程を管理する工程であって、前記障害とは、前記障害の発生した記憶エージェントがもはやストレージの特定部分を実装しないことである、工程と、
前記ストレージの前記特定部分を実装する再割り当て対象ストレージを割り当てる工程を管理する工程であって、前記再割り当て対象ストレージは、前記記憶エージェントのうち障害の発生していない記憶エージェントにより実装されるストレージの任意の組み合わせを有する、工程と
を有する動作が実行される、コンピュータ可読媒体。
EC81)システムであって、
複数の記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する手段であって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、障害を検出する手段と、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する手段と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する手段と
を有するシステム。
EC82)EC81記載のシステムにおいて、前記交換用記憶エージェントは、ホットスペアであるシステム。
EC83)EC81記載のシステムにおいて、前記交換用記憶エージェントは、前記障害の発生した記憶エージェント以外の前記記憶エージェントの1つであるシステム。
EC84)EC83記載のシステムにおいて、前記交換用記憶エージェントは、一次エージェントであるシステム。
EC85)EC83記載のシステムにおいて、前記交換用記憶エージェントは、一次エージェントまたは二次エージェントとして選択的に動作可能な設定可能エージェントであるシステム。
EC86)EC81記載のシステムにおいて、前記検出する手段は、前記記憶エージェントの1つにより少なくとも部分的に実装されるものであるシステム。
EC87)EC81記載のシステムにおいて、前記検出する手段は、装置ドライバにより少なくとも部分的に実装されるものであるシステム。
EC88)EC81記載のシステムにおいて、さらに、
ホストインターフェース・プロトコルを介して前記ホストにインターフェース接続する手段であって、前記ホストへのインターフェース接続は、送信キュー内のエントリからの記憶要求読み出しを有し、当該インターフェース接続する手段は、前記単一の論理インターフェース提供に基づくものである、前記ホストにインターフェース接続する手段を有するものであるシステム。
EC89)EC88記載のシステムにおいて、さらに、
前記記憶要求のアドレス情報に少なくとも部分的に基づいて、1若しくはそれ以上の記憶サブ要求を決定する手段を有するものであるシステム。
EC90)EC89記載のシステムにおいて、さらに、
前記記憶エージェントのうちの二次エージェントに前記サブ要求を転送する手段を有するものであるシステム。
EC91)EC90記載のシステムにおいて、さらに、
それぞれ前記サブ要求に対応したサブステータス情報を受信し、且つ前記受信されたサブステータス情報に少なくとも部分的に基づいて全体的なステータスを前記ホストに返す手段を有するものであるシステム。
EC92)EC81記載のシステムにおいて、さらに、
前記記憶エージェント間でピアツーピアトラフィックを通信する手段を有するものであるシステム。
EC93)方法であって、
複数の記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する工程であって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、障害を検出する工程と、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する工程と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する工程と
を有する方法。
EC94)システムであって、
複数の記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する障害検出論理ハードウェアであって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、障害検出論理ハードウェアと、
命令を実行できるプロセッサであって、前記命令が当該プロセッサにより実行されると、当該プロセッサは、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する工程と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する工程と
を有する動作を実施する、プロセッサと
を有するシステム。
EC95)命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
複数の記憶エージェントのうち障害の発生した1つの記憶エージェントの障害を検出する工程を管理する工程であって、前記障害とは、前記障害の発生した記憶エージェントが、もはや、前記複数の記憶エージェントに分散された複数のストレージ範囲の集約体に、単一の論理インターフェースとしてホストがアクセスできるようにしないことである、工程と、
前記障害の発生した記憶エージェントに置き換わる交換用記憶エージェントを識別する工程を管理する工程と、
前記交換用記憶エージェントを設定して前記単一の論理インターフェースを提供する工程を管理する工程と
を有する動作が実行される、コンピュータ可読媒体。
EC96)システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、送信キュー内のエントリから記憶要求を読み出す手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段と、
前記記憶インターフェース手段を介して前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定するアドレス決定手段であって、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アドレス決定手段と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
EC97)EC96記載のシステムにおいて、さらに、
前記アドレス情報に少なくとも部分的に基づいて、蓄積されたパリティデータを転送するため少なくとも1つの送信先を決定する送信先決定手段を有するものであるシステム。
EC98)EC97記載のシステムにおいて、前記少なくとも1つの送信先は、前記ピアツーピアプロトコルを介して到達可能であるシステム。
EC99)EC98記載のシステムにおいて、前記少なくとも1つの送信先は、前記一次エージェントであるシステム。
EC100)EC98記載のシステムにおいて、前記少なくとも1つの送信先は、二次エージェントであるシステム。
EC101)EC96記載のシステムにおいて、前記アドレス決定手段は、1若しくはそれ以上の冗長性技術に基づいて動作するものであるシステム。
EC102)EC101記載のシステムにおいて、前記冗長性技術は、1若しくはそれ以上のミラーリング技術および/または1若しくはそれ以上の小型ディスク冗長アレイ(RAID)技術を有するものであるシステム。
EC103)EC96記載のシステムにおいて、前記ホストインターフェース手段は、前記ホストと前記大容量ストレージ間でデータを転送する手段をさらに有するものであるシステム。
EC104)EC96記載のシステムにおいて、前記同じ物理チャネルは、周辺機器相互接続エクスプレス(PCIe)規格と互換性があるものであるシステム。
EC105)EC96記載のシステムにおいて、前記同じ物理チャネルは、InfiniBand規格と互換性があるものであるシステム。
EC106)EC96記載のシステムにおいて、前記大容量ストレージは、1若しくはそれ以上の不揮発性メモリを有するものであるシステム。
EC107)方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程であって、送信キュー内のエントリから記憶要求を読み出す工程を有する、ホストにインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定する工程であって、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と、
記憶容量がゼロである旨を前記ホストに報告し、且つ前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有し、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
EC108)システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ送信キュー内のエントリから記憶要求を読み出せるホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
前記大容量ストレージ・ハードウェア・インターフェースを介して前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定できるアクセスアドレス決定論理ハードウェアであって、前記決定は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アクセスアドレス決定論理ハードウェアと、
記憶容量がゼロである旨を前記ホストに報告でき、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
EC109)命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程を管理する工程であって、前記ホストにインターフェース接続する工程は、送信キュー内のエントリから記憶要求を読み出す工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程を管理する工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定する工程を管理する工程であって、前記決定する工程は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と、
記憶容量がゼロである旨を前記ホストに報告する工程を管理し、且つ前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有する動作が実行され、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
EC110)システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、前記ホストと前記大容量ストレージ間でデータを転送する手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段であって、前記一次エージェントから転送されてくる記憶要求を受信する手段を有する、一次エージェントインターフェース手段と、
前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定するアドレス決定手段であって、前記転送されてくる記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アドレス決定手段と
を有し、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の1若しくはそれ以上のアドレス範囲を参照し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
EC111)EC110記載のシステムにおいて、さらに、
前記アドレス情報に少なくとも部分的に基づいて、蓄積されたパリティデータを転送するため少なくとも1つの送信先を決定する送信先決定手段を有するものであるシステム。
EC112)EC111記載のシステムにおいて、前記少なくとも1つの送信先は、前記ピアツーピアプロトコルを介して到達可能であるシステム。
EC113)EC112記載のシステムにおいて、前記少なくとも1つの送信先は、前記一次エージェントであるシステム。
EC114)EC112記載のシステムにおいて、前記少なくとも1つの送信先は、二次エージェントであるシステム。
EC115)EC110記載のシステムにおいて、前記アドレス決定手段は、1若しくはそれ以上の冗長性技術に基づいて動作するものであるシステム。
EC116)EC115記載のシステムにおいて、前記冗長性技術は、1若しくはそれ以上のミラーリング技術および/または1若しくはそれ以上の小型ディスク冗長アレイ(RAID)技術を有するものであるシステム。
EC117)EC110記載のシステムにおいて、さらに、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段を有するものであるシステム。
EC118)EC110記載のシステムにおいて、前記同じ物理チャネルは、周辺機器相互接続エクスプレス(PCIe)規格と互換性があるものであるシステム。
EC119)EC110記載のシステムにおいて、前記同じ物理チャネルは、InfiniBand規格と互換性があるものであるシステム。
EC120)EC110記載のシステムにおいて、前記大容量ストレージは、1若しくはそれ以上の不揮発性メモリを有するものであるシステム。
EC121)方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程であって、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、ホストにインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程であって、前記一次エージェントから転送されてくる記憶要求を受信する工程を有する、一次エージェントにインターフェース接続する工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定する工程であって、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と
を有し、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の1若しくはそれ以上のアドレス範囲を参照し、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
EC122)システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ少なくとも部分的に前記大容量ストレージ・ハードウェア・インターフェースを介して前記ホストと前記大容量ストレージ間でデータを転送できる、ホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントから転送されてくる記憶要求の受信を可能にする記憶要求受け付け論理ハードウェアと、
前記大容量ストレージ・ハードウェア・インターフェースを介して前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定できるアクセスアドレス決定論理ハードウェアであって、前記決定は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、アクセスアドレス決定論理ハードウェアと
を有し、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の1若しくはそれ以上のアドレス範囲を参照し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
EC123)命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続する工程を管理する工程であって、前記ホストにインターフェース接続する工程は、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する工程を管理する工程であって、前記一次エージェントにインターフェース接続する工程は、前記一次エージェントから転送されてくる記憶要求を受信する工程を有する、工程と、
前記大容量ストレージにインターフェース接続する工程を介して前記大容量ストレージにアクセスするための少なくとも1つのアドレスを決定する工程を管理する工程であって、前記決定する工程は、前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて動作可能である、工程と
を有する動作が実行され、
前記転送されてくる記憶要求は、送信キューから取得される要求に対応し、前記要求および前記転送されてくる要求は、同一の1若しくはそれ以上のアドレス範囲を参照し、
前記ホストにインターフェース接続する工程および前記一次エージェントにインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
EC124)システムであって、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、送信キュー内のエントリから記憶要求を読み出す手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して二次エージェントにインターフェース接続する二次エージェントインターフェース手段であって、前記二次エージェントに記憶サブ要求を転送する手段を有する、二次エージェントインターフェース手段と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定するサブ要求生成手段と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記二次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
EC125)EC124記載のシステムにおいて、さらに、
大容量ストレージにインターフェース接続するストレージインターフェース手段を有するものであるシステム。
EC126)EC125記載のシステムにおいて、前記大容量ストレージは、1若しくはそれ以上の不揮発性メモリを有するものであるシステム。
EC127)方法であって、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程であって、送信キュー内のエントリから記憶要求を読み出す工程を有する、ホストとインターフェース接続する工程と、
ピアツーピアプロトコルを介して二次エージェントとインターフェース接続する工程であって、前記二次エージェントに記憶サブ要求を転送する工程を有する、二次エージェントとインターフェース接続する工程と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定する工程と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告する工程と
を有し、
前記ホストとインターフェース接続する工程および前記二次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
EC128)システムであって、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ送信キュー内のエントリから記憶要求を読み出せるホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して二次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記二次エージェントに記憶サブ要求を転送できる要求転送論理ハードウェアと、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定できるサブ要求決定論理ハードウェアと、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記二次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
EC129)命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程を管理する工程であって、前記ホストとインターフェース接続する工程は、送信キュー内のエントリから記憶要求を読み出す工程を有する、工程と、
ピアツーピアプロトコルを介して二次エージェントとインターフェース接続する工程を管理する工程であって、前記二次エージェントとインターフェース接続する工程は、前記二次エージェントに記憶サブ要求を転送する工程を有する、工程と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定する工程を管理する工程と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告する工程を管理する工程と
を有する動作が実行され、
前記ホストとインターフェース接続する工程および二次エージェントとインターフェース接続する工程を管理する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
EC130)システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、前記ホストと前記大容量ストレージ間でデータを転送する手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段であって、前記一次エージェントから転送されてくる記憶サブ要求を受信する手段を有する、一次エージェントインターフェース手段と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
EC131)EC130記載のシステムにおいて、前記大容量ストレージは、1若しくはそれ以上の不揮発性メモリを有するものであるシステム。
EC132)方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程であって、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、ホストとインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程であって、前記一次エージェントから転送されてくる記憶サブ要求を受信する工程を有する、一次エージェントとインターフェース接続する工程と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有し、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
EC133)システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ少なくとも部分的に前記大容量ストレージ・ハードウェア・インターフェースを介して前記ホストと前記大容量ストレージ間でデータを転送できる、ホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントから転送されてくる記憶サブ要求を受信できるサブ要求受信論理ハードウェアと、
記憶容量がゼロである旨を前記ホストに報告でき、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
EC134)命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程を管理する工程であって、前記ホストとインターフェース接続する工程は、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程を管理する工程であって、前記一次エージェントとインターフェース接続する工程は、前記一次エージェントから転送されてくる記憶サブ要求を受信する工程を有する、工程と、
記憶容量がゼロである旨を前記ホストに報告する工程を管理し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有する動作が実行され、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
EC135)システムであって、
大容量ストレージにインターフェース接続するストレージインターフェース手段と、
ホストインターフェース・プロトコルを介してホストにインターフェース接続するホストインターフェース手段であって、前記ホストと前記大容量ストレージ間でデータを転送する手段を有する、ホストインターフェース手段と、
ピアツーピアプロトコルを介して一次エージェントにインターフェース接続する一次エージェントインターフェース手段であって、当該一次エージェントインターフェース手段は、前記一次エージェントから転送されてくるサブ要求を受信する手段および前記一次エージェントにサブステータスを送信する手段を有し、前記サブステータスは、前記サブ要求に基づく前記大容量ストレージへのアクセスの結果に少なくとも部分的に基づいたものである、一次エージェントインターフェース手段と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する記憶容量報告手段と
を有し、
前記ホストインターフェース手段および前記一次エージェントインターフェース手段は、同じ物理チャネルにより少なくとも部分的に実装されるものである
システム。
EC136)EC135記載のシステムにおいて、前記一次エージェントインターフェース手段は、前記一次エージェントと冗長性情報を通信する手段をさらに有するものであるシステム。
EC137)EC136記載のシステムにおいて、前記冗長性情報は、1若しくはそれ以上のミラーリング技術および/または1若しくはそれ以上の小型ディスク冗長アレイ(RAID)技術と互換性があるものであるシステム。
EC138)EC135記載のシステムにおいて、前記同じ物理チャネルは、周辺機器相互接続エクスプレス(PCIe)規格と互換性があるものであるシステム。
EC139)EC135記載のシステムにおいて、前記同じ物理チャネルは、InfiniBand規格と互換性があるものであるシステム。
EC146)EC135記載のシステムにおいて、前記大容量ストレージは、1若しくはそれ以上の不揮発性メモリを有するものであるシステム。
EC141)方法であって、
大容量ストレージにインターフェース接続する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程であって、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、ホストとインターフェース接続する工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程であって、当該一次エージェントとインターフェース接続する工程は、前記一次エージェントから転送されてくるサブ要求を受信する工程および前記一次エージェントにサブステータスを送信する手段を有し、前記サブステータスは、前記サブ要求に基づく前記大容量ストレージへのアクセスの結果に少なくとも部分的に基づいたものである、一次エージェントとインターフェース接続する工程と、
記憶容量がゼロである旨を前記ホストに報告し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程と
を有し、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
方法。
EC142)システムであって、
大容量ストレージとインターフェース接続できる大容量ストレージ・ハードウェア・インターフェースと、
ホストとのインターフェース接続を可能にし、ホストインターフェース・プロトコルと互換性があり、且つ少なくとも部分的に前記大容量ストレージ・ハードウェア・インターフェースを介して前記ホストと前記大容量ストレージ間でデータを転送できる、ホストインターフェース論理ハードウェアと、
ピアツーピアプロトコルを介して一次エージェントとのインターフェース接続を可能にするピアツーピア通信論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントから転送されてくる記憶サブ要求を受信できるサブ要求受信論理ハードウェアと、
前記サブ要求に基づいて前記大容量ストレージ・ハードウェア・インターフェースを介した前記大容量ストレージへのアクセスに少なくとも部分的に基づいて、サブステータスを決定できるサブステータス決定論理ハードウェアと、
少なくとも部分的に前記ピアツーピア通信論理ハードウェアを介して前記一次エージェントに前記サブステータスを転送できるサブステータス転送論理ハードウェアと、
記憶容量がゼロである旨を前記ホストに報告でき、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告できる記憶容量報告論理ハードウェアと
を有し、
前記ホストとのインターフェース接続および前記一次エージェントとのインターフェース接続は、同じ物理チャネルにより少なくとも部分的に実施されるものである
システム。
EC143)命令セットを内部に格納して有するコンピュータ可読媒体であって、前記命令セットが処理要素により実行されると、前記処理要素により、
大容量ストレージにインターフェース接続する工程を管理する工程と、
ホストインターフェース・プロトコルを介してホストとインターフェース接続する工程を管理する工程であって、前記ホストとインターフェース接続する工程は、前記ホストと前記大容量ストレージ間でデータを転送する工程を有する、工程と、
ピアツーピアプロトコルを介して一次エージェントとインターフェース接続する工程を管理する工程であって、前記一次エージェントとインターフェース接続する工程は、前記一次エージェントから転送されてくるサブ要求を受信する工程および前記一次エージェントにサブステータスを送信する工程を有し、前記サブステータスは、前記サブ要求に基づく前記大容量ストレージへのアクセスの結果に少なくとも部分的に基づいたものである、工程と、
記憶容量がゼロである旨を前記ホストに報告する工程を管理し、さらに前記大容量ストレージの記憶容量に基づいた記憶容量を前記一次エージェントに報告する工程を管理する工程と
を有する動作が実行され、
前記ホストとインターフェース接続する工程および前記一次エージェントとインターフェース接続する工程は、同じ物理チャネルにより少なくとも部分的に実施されるものである
コンピュータ可読媒体。
EC144)方法であって、
ストレージの1つのアドレスにアクセスする要求をホストから受け付ける工程と、
前記アドレスに少なくとも部分的に基づいて、複数の記憶装置のうちいずれの1若しくはそれ以上に前記要求が対応するかを決定する工程と、
前記アドレスに少なくとも部分的に基づいて、前記決定された各記憶装置に対応する各サブ要求を決定する工程と、
前記対応する決定された記憶装置に前記サブ要求を送信する工程と、
前記決定された各記憶装置から各サブステータスを受け付ける工程と、
各前記サブステータスに少なくとも部分的に基づいて、全体的なステータスを決定する工程と、
前記全体的なステータスを前記ホストに提供する工程と
を有し、
前記要求を受け付ける工程、前記記憶装置を決定する工程、前記サブ要求を決定する工程、前記サブ要求を送信する工程、前記サブステータスを受け付ける工程、前記全体的なステータスを決定する工程、および前記全体的なステータスを提供する工程は、前記記憶装置のうち特定の1つにより実行され、
前記要求を受け付ける工程は、ホストインターフェース・プロトコルを介し、前記サブ要求を送信する工程および前記サブステータスを受け付ける工程は、前記ホストから独立して動作可能なピアツーピアプロトコルを介し、
前記記憶装置のうちの少なくとも1つは、前記サブ要求の1つを介してアクセスできるストレージを実装しており、当該記憶装置のうちの当該少なくとも1つは、前記実装されたストレージへの前記ホストインターフェース・プロトコルを介したアクセスを無効化するものである
方法。
EC145)EC144記載の方法において、前記ホストインターフェース・プロトコルおよび前記ピアツーピアプロトコルは、周辺機器相互接続エクスプレス(PCIe)チャネルと互換性があるものである方法。
EC146)EC144記載の方法において、前記要求を受け付ける工程は、ホストメモリ内に保持された送信キュー内のエントリを読み出す工程を有するものである方法。
EC147)EC144記載の方法において、前記全体的なステータスを提供する工程は、ホストメモリ内に保持された完了キューにエントリを書き込む工程を有するものである方法。
EC148)EC144記載の方法において、さらに、
各前記決定された記憶装置により、前記サブ要求に対応するデータ転送部分を独立して実行する工程を有するものである方法。
EC149)EC148記載の方法において、前記独立して実行する工程は、ホストメモリにアクセスする工程を有するものである方法。
EC150)方法であって、
第1の記憶装置が、複数のホスト要求キューのうちの第1のホスト要求キューから第1の要求を読み出す工程と、
第2の記憶装置が、前記ホスト要求キューのうちの第2のホスト要求キューから第2の要求を読み出す工程であって、前記第2のホスト要求キューは、前記第1のホスト要求キューと区別可能であり、当該第2の記憶装置が読み出す工程は、前記第1の記憶装置が読み出す工程から独立したものである、工程と、
前記第1の記憶装置が、前記第1の要求の少なくとも一部を前記第2の記憶装置に転送する工程と、
前記第2の記憶装置が、前記第2の要求の少なくとも一部を前記第1の記憶装置に転送する工程であって、当該第2の記憶装置が転送する工程は、前記第1の記憶装置が転送する工程から独立したものである、工程と、
前記第1の記憶装置が、前記第2の要求の前記少なくとも一部に基づいて、第1のストレージにアクセスし、当該第1の記憶装置がアクセスする工程に少なくとも部分的に基づいて、第1のステータスを前記第2の記憶装置に返す工程と
前記第2の記憶装置が、前記第1の要求の前記少なくとも一部に基づいて、第2のストレージにアクセスし、当該第2の記憶装置がアクセスする工程に少なくとも部分的に基づいて、前記第1の記憶装置に第2のステータスを返す工程であって、前記第2の記憶装置がアクセスする工程は、前記第1の記憶装置がアクセスする工程から独立したものであり、前記第2のストレージは前記第1のストレージと区別可能である、工程と
を有する方法。
EC151)EC150記載の方法において、前記ホスト要求キューはホストからアクセス可能であり、当該方法は、さらに、前記第2の記憶装置が、前記第2の要求に少なくとも部分的に基づいて、前記ホストに第3のステータスを返す工程と、前記第1の記憶装置が、前記第1の要求に少なくとも部分的に基づいて、前記ホストに第4のステータスを返す工程とを有するものである方法。
EC152)EC150記載の方法において、前記第2の要求の前記少なくとも一部は少なくとも第1の部分であり、当該方法は、さらに、前記第2の記憶装置が、前記第2の要求の少なくとも第2の部分に基づいて、第3のストレージにアクセスする工程を有し、前記第2の要求の前記第1および前記第2の部分は、当該第2の要求の区別可能な部分である方法。
EC153)EC150記載の方法において、前記ホスト要求キューはホストからアクセス可能であり、前記第2の要求の前記少なくとも一部は少なくとも第1の部分であり、当該方法は、さらに、前記第2の記憶装置が、前記第2の要求の少なくとも第2の部分に基づいて、第3のストレージにアクセスする工程と、前記第2の記憶装置が、前記第3のストレージにアクセスする工程に少なくとも部分的に基づいて、前記ホストに第3のステータスを返す工程とを有し、前記第2の要求の前記第1および前記第2の部分は、当該第2の要求の区別可能な部分である方法。
EC154)方法であって、
複数の物理的記憶装置への単一の論理インターフェースをホストに提供する工程であって、前記物理的記憶装置のうち1つは一次エージェントとして動作し、前記物理的記憶装置のうち1若しくはそれ以上は二次エージェントとして動作する、工程
を有し、
前記提供する工程は、
前記一次エージェントが、ストレージにアクセスする要求を前記ホストから受け付け、前記要求を1若しくはそれ以上のサブ要求として前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、且つ少なくとも前記サブステータスに基づいて全体的なステータスを前記ホストに提供する工程と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストアドレス指定情報をローカルコンテキストアドレス指定情報に変換し、前記ローカルコンテキストアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、且つ前記一次エージェントに前記サブステータスを提供する工程と
を有し、
前記一次エージェントは、記憶容量について前記ホストからクエリーを受けると、前記一次エージェントにより実装されたストレージおよび前記二次エージェントにより実装されたストレージに少なくとも部分的に基づく記憶容量を報告し、
各前記二次エージェントは、記憶容量について前記ホストからクエリーを受けると、前記一次エージェントにより報告される記憶容量に少なくとも部分的に基づいて各々の記憶容量を報告する
方法。
EC155)EC154記載の方法において、前記一次エージェントにより報告される記憶容量は、前記二次エージェントのうち特定の1つの二次エージェントにより実装されたストレージの少なくとも一部に基づいて増加され、当該方法は、さらに、前記特定の二次エージェントが、当該特定の二次エージェントにより実装されたストレージの少なくとも一部に基づいて、当該特定の二次エージェントの記憶容量を、減少したものとして前記ホストに報告する工程を有するものである方法。
EC156)EC154記載の方法において、前記二次エージェントのうち特定の1つの二次エージェントは、記憶容量について前記ホストからクエリーを受けると、前記特定の二次エージェントにより実装された全ストレージが前記一次エージェントにより報告される記憶容量に考慮される場合、記憶容量がゼロである旨を報告するものである方法。
EC157)EC154記載の方法において、前記一次エージェントは、ホストインターフェース・プロトコルを介して前記ホストと通信できるものである方法。
EC158)EC154記載の方法において、前記一次エージェントおよび前記二次エージェントは、ピアツーピアプロトコルを介して相互に通信できるものである方法。
EC159)EC154記載の方法において、前記一次エージェントは、同じ物理リンクを介して、前記ホスト、ならびに前記二次エージェントのうち少なくとも1つと通信できるものである方法。
EC160)システムであって、
ホストインターフェース・プロトコルを介してホストにインターフェース接続でき、且つピアツーピアプロトコルを介して二次エージェントにインターフェース接続できるホストインターフェース論理であって、前記ホストへのインターフェース接続は、送信キュー内のエントリから記憶要求を読み出す工程を有し、前記二次エージェントへのインターフェース接続は、前記二次エージェントに記憶サブ要求を転送する工程を有し、前記ホストへのインターフェース接続および前記二次エージェントへのインターフェース接続は、同じ物理チャネルを介したものである、ホストインターフェース論理と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定できるサブ要求生成論理と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告できる記憶容量報告論理と
を有するシステム。
EC161)EC160記載のシステムにおいて、前記物理チャネルは、周辺機器相互接続エクスプレス(PCIe)チャネルおよびInfiniBandチャネルのうちの少なくとも1つと互換性があるものであるシステム。
EC162)EC160記載のシステムにおいて、さらに、
前記ホスト、前記二次エージェント、およびスイッチであって、前記ホストインターフェース論理および/または前記二次エージェントに前記ホストを連結するスイッチ、のうち1若しくはそれ以上を有するものであるシステム。
EC163)EC160記載のシステムにおいて、さらに、
ストレージインターフェース論理および大容量ストレージを有し、前記ストレージインターフェース論理は、前記大容量ストレージにインターフェース接続でき、前記合計記憶容量は、さらに前記大容量ストレージの記憶容量に基づいたものであるシステム。
EC164)EC160記載のシステムにおいて、前記ホストへのインターフェース接続は、完了キュー内のエントリに全体的なステータスを書き込む工程をさらに有し、前記二次エージェントへのインターフェース接続は、前記完了キューに全体的なステータスを書き込む工程を介して、前記全体的なステータスの少なくとも一部としてのサブステータスを前記二次エージェントから前記ホストに転送する工程をさらに有し、当該システムは、さらに、前記サブステータスに少なくとも部分的に基づいて前記全体的なステータスを決定できるサブステータス蓄積論理を有するものであるシステム。
EC165)EC160記載のシステムにおいて、システムは、ソリッドステートディスク(SSD)に有されるものであるシステム。
EC166)システムであって、
ホストインターフェース・プロトコルを介してホストにインターフェース接続でき、且つピアツーピアプロトコルを介して二次エージェントにインターフェース接続できるホストインターフェース論理であって、前記ホストへのインターフェース接続は、送信キュー内のエントリから記憶要求を読み出す工程を有し、前記二次エージェントへのインターフェース接続は、前記二次エージェントに記憶サブ要求を転送する工程を有し、前記ホストへのインターフェース接続および前記二次エージェントへのインターフェース接続は、同じ物理チャネルを介したものである、ホストインターフェース論理と、
前記記憶要求に有されるアドレス情報に少なくとも部分的に基づいて、前記サブ要求を決定できるサブ要求生成論理と、
前記二次エージェントの記憶容量に少なくとも部分的に基づく合計記憶容量を前記ホストに報告できる記憶容量報告論理と
を有するシステム。
EC167)EC166記載のシステムにおいて、前記物理チャネルは、周辺機器相互接続エクスプレス(PCIe)チャネルおよびInfiniBandチャネルのうちの少なくとも1つと互換性があるものであるシステム。
EC168)EC166記載のシステムにおいて、さらに、
前記ホスト、前記一次エージェント、スイッチであって、前記ホストインターフェース論理および/または前記一次エージェントに前記ホストを連結するスイッチ、および前記大容量ストレージの全部または任意部分のうち1若しくはそれ以上を有するものであるシステム。
EC169)EC166記載のシステムにおいて、前記大容量ストレージは、複数のフラッシュ記憶装置を有するものであるシステム。
EC170)EC166記載のシステムにおいて、当該システムは、ソリッドステートディスクに有されるものであるシステム。
EC171)システムであって、
複数の物理的記憶装置と複数のポートを備える物理的スイッチ部分とを有する物理的構成要素を有するストレージサブシステムと、
専用ポイントツーポイントリンクを介して前記複数のポートのうち専用ポートに連結されたホストと
を有し、
各物理的記憶装置は、
少なくとも1つのストレージ範囲と、
各ポイントツーポイントリンクを介して前記複数の各ポートに連結できる少なくとも1つのポートと、
前記物理的記憶装置が、前記ストレージサブシステムの1若しくはそれ以上の一次エージェントおよび1若しくはそれ以上の二次エージェントのうちの少なくとも1つのエージェントとして動作することを可能にするエージェント論理であって、各一次エージェントは、ホストが開始したストレージアクセス要求を受け付け、サブ要求を生成し、且つサブステータスを蓄積することができ、各二次エージェントは、前記サブ要求のうちの少なくとも1つを受け付け、前記サブステータスのうちの少なくとも1つを生成することができるものである、前記エージェント論理と
を有し、
前記ストレージサブシステムは、1若しくはそれ以上の論理記憶装置を動作させることができ、各論理記憶装置により、前記ホストは、前記一次エージェントのうちの1つの一次エージェントおよび前記二次エージェントのうちの少なくとも1つの二次エージェントに対応する前記記憶装置にわたって分散されたストレージ範囲の集約体に、単一の論理インターフェースを介してアクセスすることが可能となるものである
システム。
EC172)EC171記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、少なくとも一部の場合、前記一次エージェントのうちの少なくとも1つとして動作し、少なくとも一部の場合、前記二次エージェントのうちの少なくとも1つとして動作することを可能にする設定可能性(コンフィギュアビリティ)論理を有するものであるシステム。
EC173)EC171記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントのうちの少なくとも1つとして、および前記二次エージェントのうちの少なくとも1つとして、並行して動作することを可能にする並行性論理を有するものであるシステム。
EC174)EC171記載のシステムにおいて、さらに、
前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントおよび前記二次エージェントのうちの1つの専用エージェントとして動作することを可能にする専用エージェント論理を有するものであるシステム。
EC175)EC171記載のシステムにおいて、さらに、
前記論理記憶装置のうちの第1の論理記憶装置は、前記一次エージェントのうちの少なくとも第1の一次エージェントと、1若しくはそれ以上の前記二次エージェントとを有し、
前記物理的スイッチ部分は、前記第1の一次エージェントと各前記二次エージェントとの間で、ホストから遮蔽されたピアツーピア通信を可能にするものである
システム。
EC176)EC171記載のシステムにおいて、さらに、
前記複数のポートを備える物理的スイッチ部分は、第1の複数のポートを備える第1の物理的スイッチ部分であり、前記物理的構成要素は、さらに、第2の複数のポートを備える第2の物理的スイッチ部分を有し、
各物理的記憶装置は、さらに、各ポイントツーポイントリンクを介して各前記第2の複数のポートに連結できる少なくとも1つのポートを有するものである
システム。
EC177)EC176記載のシステムにおいて、さらに、
前記第2の物理的スイッチ部分は、前記第1の物理的スイッチ部分を介した通信に利用可能な帯域幅に大きな影響を及ぼさずに、ピアツーピア通信により実施されるストレージ冗長性技術を可能にするものであるシステム。
EC178)EC177記載のシステムにおいて、さらに、
前記ピアツーピア通信は、前記第2の物理的スイッチ部分を介し、制御情報、未変換冗長性データ、および変換済み冗長性データのうち1若しくはそれ以上を有するものであるシステム。
EC179)EC176記載のシステムにおいて、さらに、
一単位の物理的スイッチは、前記第1の物理的スイッチ部分と、前記第2の物理的スイッチ部分とを有するものであるシステム。
EC180)EC171記載のシステムにおいて、さらに、
前記単一の論理インターフェースは、ホストから遮蔽された前記一次および二次エージェント間のピアツーピア通信により実施されるミラーリング、ストライプ化、RAIDパリティ、およびフェイルオーバーのうち1若しくはそれ以上を可能にするものであるシステム。
EC181)EC171記載のシステムにおいて、さらに、
前記一次エージェントは、第1の一次エージェントと、第2の一次エージェントとを有し、
前記二次エージェントは、第1の二次エージェントと、第2の二次エージェントとを有し、
前記物理的記憶装置は、第1の物理的記憶装置と、第2の物理的記憶装置とを有し、
前記論理記憶装置は、第1の論理記憶装置と、第2の論理記憶装置とを有し、
前記要求の第1のサブセットに対し、前記第1の物理的記憶装置は、前記第1の一次エージェントおよび前記第1の二次エージェントとして動作し、
前記要求の第2のサブセットに対し、前記第2の物理的記憶装置は、前記第2の一次エージェントおよび前記第2の二次エージェントとして動作し、
前記第1の論理記憶装置は、前記第1の一次エージェントと、前記第2の二次エージェントとを有し、前記第2の論理記憶装置は、前記第2の一次エージェントと、前記第1の二次エージェントとを有し、前記第1の論理記憶装置は、前記第2の論理記憶装置と並行して動作するものである
システム。
EC182)EC181記載のシステムにおいて、さらに、
前記要求の前記第1のサブセットは第1のホスト要求キューからであり、前記要求の前記第2のサブセットは第2のホスト要求キューからであるシステム。
EC183)EC181記載のシステムにおいて、さらに、
前記ホストは第1のホストであり、前記要求の前記第1のサブセットは第1のホストからであり、前記要求の前記第2のサブセットは第2のホストからであるシステム。
EC184)EC181記載のシステムにおいて、
前記要求の前記第1のサブセットおよび前記要求の前記第2のサブセットは同一のホスト要求キューからであるシステム。
EC185)EC171記載のシステムにおいて、さらに
前記論理記憶装置のうちの第1の論理記憶装置は、前記一次エージェントのうちの少なくとも第1の一次エージェントと、前記二次エージェントのうちの少なくとも第1の二次エージェントとを有し、
前記第1の論理記憶装置の前記エージェントの前記ストレージ範囲の前記集約体は、第1の論理ストレージのサブ領域であり、
前記エージェント論理はストレージ復旧論理を有し、このストレージ復旧論理は、前記第1の一次エージェントが、1若しくはそれ以上の前記エージェントにより提供される利用可能な空きストレージを識別することを可能にし、且つ前記第1の論理ストレージのサブ領域の特定部分がもはや前記エージェントの1つにより提供されないことが決定された後、前記空きストレージからの割り当てを行うことにより、以前提供されていた前記特定部分を回復することを可能にするものである
システム。
EC186)EC171記載のシステムにおいて、さらに、
前記論理記憶装置のうちの第1の論理記憶装置は、前記一次エージェントのうちの少なくとも第1の一次エージェントと、前記二次エージェントのうちの少なくとも第1の二次エージェントとを有し、
前記物理的記憶装置は、第1の物理的記憶装置と、第2の物理的記憶装置とを有し、
前記第1の物理的装置は、初期、前記第1の一次エージェントとして動作するものであり、
当該システムは、さらに、
前記第1の一次エージェントに障害が発生したことを決定し、他の前記エージェントから選択される1つのエージェントに一次エージェント交換要求を送信することが可能な監視エージェントを有し、
前記第2の物理的装置の前記エージェント論理は、前記第2の物理記憶装置が、前記監視エージェントから前記一次エージェント交換要求を受信すると、それに応答して前記第1の一次エージェントの交換装置として動作することを可能にする一次エージェント交換論理を有するものである
システム。
EC187)方法であって、
一次エージェントとして第1の記憶装置を動作させ、1若しくはそれ以上の二次エージェントとして少なくとも1つの第2の記憶装置を動作させる工程であって、前記一次および二次エージェントの各記憶装置は、それぞれ少なくとも1つのストレージ範囲を有するものである、前記動作させる工程と、
前記一次エージェントが論理インターフェースを提供する工程であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散されたストレージ範囲の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストから送信され、前記一次エージェントにより受け付けられるストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを含むものである、前記提供する工程と、
前記一次エージェントが、1若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される全体的なステータスの各々を算出する工程と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する工程と
を有する方法。
EC188)EC187記載の方法において、さらに、
前記一次エージェントが、前記一次および二次エージェントの前記ストレージ範囲に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する工程と、
前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する工程と、
前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ範囲に相当する部分を除外した各々の記憶容量を報告する工程と
を有するものである方法。
EC189)EC187記載の方法において、さらに、
前記ホストが記憶容量について前記二次エージェントのうち特定の1つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される前記集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する工程を有するものである方法。
EC190)EC187記載の方法において、さらに、
ホストインターフェース・プロトコルに基づいて、前記一次エージェントの前記ホストとの通信の少なくとも一部を実行する工程を有するものである方法。
EC191)EC187記載の方法において、さらに、
同じ物理リンクを共有することにより、前記一次エージェントの前記ホストとの通信の少なくとも一部、および前記一次エージェントの、前記二次エージェントのうち少なくとも1つとの通信の少なくとも一部を実行する工程
を有し、
前記一次エージェントの、前記二次エージェントのうち少なくとも1つとの通信は、前記サブ要求の少なくとも一部と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスの少なくとも一部を有するものである
方法。
EC192)EC187記載の方法において、さらに、
ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する工程
を有し、
前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスを有するものである
方法。
EC193)EC192記載の方法において、
前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して冗長性情報を交換する工程を有するものである方法。
EC194)装置であって、
一次エージェントとして第1の記憶装置を動作させ、1若しくはそれ以上の二次エージェントとして少なくとも第2の記憶装置を動作させる手段であって、前記一次および二次エージェントの各記憶装置は、それぞれ少なくとも1つのストレージ範囲を有するものである、前記動作させる手段と、
前記一次エージェントが論理インターフェースを提供する手段であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散された前記ストレージ範囲の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストへ送信され、前記一次エージェントにより受け付けられたストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを有するものである、前記提供する手段と、
前記一次エージェントが、1若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される各全体的なステータスを算出する手段と、
前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する手段と
を有する装置。
EC195)EC194記載の装置において、さらに、
前記一次エージェントが、前記一次および二次エージェントの前記ストレージ範囲に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する手段と、
前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する手段と、
前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ範囲に相当する部分を除外した各々の記憶容量を報告する手段と
を有するものである装置。
EC196)EC194記載の装置において、さらに、
前記ホストが記憶容量について前記二次エージェントのうち特定の1つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される前記集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する手段を有するものである装置。
EC197)EC194記載の装置において、さらに、
ホストインターフェース・プロトコルに基づいて、前記一次エージェントの前記ホストとの通信の少なくとも一部を実行する手段を有するものである装置。
EC198)EC194記載の装置において、さらに、
同じ物理リンクを共有することにより、前記一次エージェントの前記ホストとの通信の少なくとも一部、および前記一次エージェントの、前記二次エージェントのうち少なくとも1つとの通信の少なくとも一部を実行する手段
を有し、
前記一次エージェントの、前記二次エージェントのうち少なくとも1つとの通信は、前記サブ要求の少なくとも一部と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスの少なくとも一部を有するものである
装置。
EC199)EC194記載の装置において、さらに、
ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する手段
を有し、
前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスを有するものである
装置。
EC200)EC199記載の装置において、
前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して交換される冗長性情報を有するものである装置。
スケーラブルなストレージシステム
図1Aは、スケーラブルな記憶装置用技術の一実施形態の構造を一部選んで詳しく例示したもので、ホストと、それぞれ一次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有し、ホストから見える(host visible)ストレージと、それぞれ二次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有し、ホストから見えない(host invisible)ストレージとを含む。ホスト100は、ホスト−記憶装置連結部180を通じて、ホストから見えるストレージ110およびホストから見えないストレージ120に連結される。前記ホスト−記憶装置連結部に加え、前記ホストから見えるストレージおよびホストから見えないストレージは、プラガブル(pluggable)なモジュール(アドインカード190Aとして図示)として任意選択的に実装され、かつ/または連結部101がケーブルとして任意選択的に実装される。一部の実施形態では、前記アドインカードの全部または任意部分がSSDとして実装される。前記ホストから見えるストレージは、1若しくはそれ以上の記憶装置(記憶装置110.Aおよび記憶装置110.Nとして図示)を有する。同様に、前記ホストから見えないストレージは、1若しくはそれ以上の記憶装置(記憶装置120.Aおよび記憶装置120.Nとして図示)を有する。種々の実施形態では、前記記憶装置のうちいずれか1つ若しくはそれ以上が、SSDなどの物理的記憶装置である。
連結部101、111.A、111.N、121.A、および121.Nにより、前記ホスト、前記ホストから見えるストレージ、および前記ホストから見えないストレージの間の要求、ステータス、およびデータ転送が可能になる。前記連結部のうち1若しくはそれ以上により、ホストインターフェース・プロトコルを介した(例えば、前記ホストがマスターとして機能し、前記ホストから見えるストレージ要素の1つがスレーブとして動作する)転送が可能になる。前記連結部のうち1若しくはそれ以上により、ピアツーピアプロトコルを介した(例えば、前記ホストから見えるストレージ要素の1つが一次エージェントとして動作し、前記ホストから見えないストレージ要素の1つまたは前記ホストから見えるストレージの他の要素の1つが二次エージェントとして動作する)転送が可能になる。種々の実施形態において、前記連結部のうち1若しくはそれ以上は、インターフェース規格(例えば、PCIeまたはInfiniBand)と互換性がある。種々の実施形態では、1若しくはそれ以上のPCIeおよび/またはInfiniBandスイッチを経由してホスト−記憶装置連結部180が実装される。一部の実施形態では、ホストコンピュータ複合体の全部または任意部分としてホスト−記憶装置連結部180が前記ホストと統合される。
前記ホストから見えるストレージ要素はストレージを実装し、初期化中、前記実装されたストレージの少なくとも一部へのホストアクセスが可能になるよう前記要素が構成されることで、ホストインターフェース・プロトコルなどを介して前記ホストから「見える(visible)」ストレージが提供される。前記ホストから見えないストレージ要素もストレージを実装するが、初期化中、前記実装されたストレージの少なくとも一部へのホストアクセスが無効化されるよう前記要素が構成されることで、前記ホストから「見えない(invisible)」ストレージが提供される。ただし、前記ホストから見えないストレージは、前記ホストから見えるストレージの要素を介し、例えばピアツーピアプロトコルを介して、前記ホストから間接的にアクセス可能である。
破線矢印151は、ホスト100と記憶装置110.A間の情報転送を概念的に例示したもので、前記ホストと前記ホストから見えるストレージ110の任意の要素との間の情報転送を表している。これらの情報転送には、ストレージにアクセスするため前記ホストから発信される要求、前記要求に関係したステータス応答、および前記要求に関係したデータ転送のうち1若しくはそれ以上が含まれる。前記要求には、アドレス(例えば、LBA)および長さ(例えば、バイトまたはLBA単位)のうち1若しくはそれ以上が含まれる。前記ホストから前記記憶装置への前記情報転送は、連結部101、ホスト−記憶装置連結部180、そして連結部111.Aを通じて通信され、前記記憶装置から前記ホストへの情報転送は、その逆に通信される。
破線矢印152は、記憶装置110.Aと記憶装置120.A間の情報転送を概念的に例示したもので、前記ホストから見えるストレージ110の任意の要素と、前記ホストから見えないストレージ120の任意の要素との間のピアツーピア情報転送を表している。これらの情報転送には、記憶装置110.A(一次エージェントとして機能する)から前記ホストから見えないストレージ120の任意の要素(二次エージェントとして機能する)へのサブ要求、前記サブ要求に関係したサブステータス応答、および前記サブ要求に関係したデータ転送のうち1若しくはそれ以上が含まれる。前記サブ要求には、アドレス(例えば、LBA)および長さ(例えば、バイトまたはLBA単位)のうち1若しくはそれ以上が含まれる。前記一次エージェントから前記二次エージェントへの前記情報転送は、連結部111.A、ホスト−記憶装置連結部180、そして連結部121.Aを通じて通信され、前記二次エージェントから前記一次エージェントへの情報転送は、その逆に通信される。
破線矢印153は、記憶装置110.Aと記憶装置110.N間の情報転送を概念的に例示したもので、前記ホストから見えるストレージ110の任意の要素同士の間のピアツーピア情報転送を表している。これらの情報転送には、記憶装置110.A(一次エージェントとして機能する)から、前記ホストから見えるストレージ110の任意の他の要素(二次エージェントとして機能する)へのサブ要求、前記サブ要求に関係したサブステータス応答、および前記サブ要求に関係したデータ転送のうち1若しくはそれ以上が含まれる。前記一次エージェントから前記二次エージェントへの前記情報転送は、連結部111.A、ホスト−記憶装置連結部180、そして連結部111.Nを通じて通信され、前記二次エージェントから前記一次エージェントへの情報転送は、その逆に通信される。
破線矢印154は、ホスト100と記憶装置120.A間の情報転送を概念的に例示したもので、前記ホストと前記ホストから見えないストレージ120の任意の要素との間の情報転送を表している。これらの情報転送には、前記要求に関係した全体的なステータス応答、および前記要求に関係したデータ転送のうち1若しくはそれ以上が含まれる。明瞭性のため、図中ではそのように示していないが、前記ホストから前記記憶装置への前記情報転送は、連結部101、ホスト−記憶装置連結部180、そして連結部121.Aを通じて通信され、前記記憶装置から前記ホストへの情報転送は、その逆に通信される。
一部の実施形態において、ホストから発信される要求は、ホストメモリ内の1若しくはそれ以上の送信キューを通じて行われ、それらの送信キューは、連結部101を通じて(例えば、1若しくはそれ以上のDMA動作により送信キュー内のエントリを読み出す一次エージェントにより)アクセス可能である。一部の実施形態において、ホストに提供されるステータスは、ホストメモリ内の1若しくはそれ以上の完了キューを通じて行われ、それらの完了キューは、一次および/または二次エージェントから(例えば、1若しくはそれ以上のDMA動作により完了キュー内のエントリを書き込む一次または二次エージェントにより)アクセス可能である。一部の実施形態において、要求および/またはステータスは、少なくとも部分的に1若しくはそれ以上のドアベルおよび/またはテールレジスタを介して、任意選択的に1若しくはそれ以上の送信および/または完了キューと併せて通信される。一部の実施形態において、要求および/またはステータスは、ホストにより開始される少なくとも部分的にプログラムされた入出力動作を通じて一次エージェントに通信される。一部の実施形態において、送信および/または完了キュー記述子は、ホストにより開始される少なくとも部分的にプログラムされた入出力動作を通じて一次エージェントに通信される。
一部の実施形態において、ホストからの要求を受け付ける工程には、送信キューから1若しくはそれ以上のエントリを読み出す工程が含まれる。例えば、ホストは、ホストメモリ内に保持される送信キューに特定のエントリを書き込み、テールレジスタを適宜修正し、それに対応するドアベルレジスタ(例えば、一次エージェント内に実装され、および/または一次エージェントからアクセス可能なドアベルレジスタ)を設定する。前記ドアベルレジスタが設定されると、それに応答して前記一次エージェントは前記テールレジスタにアクセスし、特定の送信キューエントリを読み出す(例えば、前記ホストメモリからのDMA読み出しにより)。一部の実施形態において、ホストにステータスを提供する工程には、完了キューに1若しくはそれ以上のエントリを書き込む工程が含まれる。例えば、一次エージェントは、ホストメモリ内に保持される完了キューに特定のエントリを書き込み(例えば、前記ホストメモリへのDMA書き込みにより)、テールレジスタを適宜修正し、完成した動作についてホストへの通知を行う(例えば、対応するドアベルレジスタの設定または割り込みの提供により)。前記ドアベルレジスタが設定されると、それに応答して前記ホストは前記テールレジスタにアクセスし、特定の完了キューエントリを読み出す。
一部の実施形態において、サブ要求は、そのサブ要求の元になった要求とは異なるルーティング、アドレス指定、および/またはカプセル化を使って二次エージェントに送信され、前記サブ要求は前記要求と同じ連結部を通じて伝送される。例えば、PCIe連結部を使って要求、サブ要求、およびサブステータストラフィックのいずれかまたは全部を伝送する例示的システムの場合、要求は、読み出し要求から完了として一次エージェントに提供される一方、サブ要求は、MsgD要求の一部として二次エージェントに転送される。一部の実施形態において、サブ要求は、前記サブ要求の元になった要求その他の情報を含むよう再パッケージ化される。例えば、再パッケージ化されたサブ要求には、追加情報、例えばフロー制御、拡張ルーティング情報、または前記要求の内容に関する他の追加情報が含まれる。一部の実施形態では、拡張ルーティング情報により、1若しくはそれ以上の連結部を通じてリモート二次エージェントへのサブ要求の送信が可能になる。
一部の実施形態において、サブステータスは、そのサブステータスに対応する要求と異なるルーティング、アドレス指定、および/またはカプセル化を使って一次エージェントに送信され、前記サブステータスは前記要求と同じ連結部を通じて伝送される。例えば、PCIe連結部を使って要求、サブ要求、およびサブステータストラフィックのいずれかまたは全部を伝送する例示的システムの場合、要求は、読み出し要求から完了として一次エージェントに提供される一方、サブステータスは、MsgD要求の一部として二次エージェントから前記一次エージェントに返される。一部の実施形態において、サブステータスは、当該サブステータスおよび/または当該サブステータスに対応する要求その他の情報を含むよう再パッケージ化される。例えば、再パッケージ化されたサブステータスには、追加情報、例えばフロー制御、拡張ルーティング情報、または前記要求の内容に関する他の追加情報が含まれる。一部の実施形態では、拡張ルーティング情報により、1若しくはそれ以上の連結部を通じてリモート二次エージェントからサブステータスの送信が可能になる。
具体例として、ホスト100はマスターとして機能し、ホストインターフェース・プロトコルを介して、ストレージにアクセスする要求を記憶装置110.Aに提供する(破線矢印151で概念的に例示)。それに対し、記憶装置110.Aはスレーブとして機能し、前記要求に応答する。記憶装置110.Aは、前記ホストインターフェース・プロトコルを介して前記要求を受け付けたのち(これも破線矢印151で概念的に例示)、前記要求に関係したストレージが記憶装置110.Aにより、および/または前記ホストから見えないストレージ120の要素のうち1若しくはそれ以上により、あるいは前記ホストから見えるストレージ110の任意の他の要素により、実装されているかどうかを決定する。次に、記憶装置110.Aは、前記要求を内部処理し(前記ストレージの少なくとも一部が記憶装置110.Aにより実装されている場合)、および/または一次エージェントとして機能し、前記ピアツーピアプロトコルを介して、前記要求を1若しくはそれ以上のピアツーピアサブ要求として記憶装置120.Aに転送する(破線矢印152で概念的に例示)。記憶装置120.Aは、二次として機能し、ピアツーピアプロトコルを介して前記サブ要求を受け付けたのち(これも破線矢印152で概念的に例示)、前記サブ要求を内部処理する。次に、記憶装置120.Aは、前記サブ要求に対応するサブステータスを記憶装置110.Aに返す(これも破線矢印152で概念的に例示)。そして、記憶装置110.Aは、前記要求に関する全体的なステータスを決定し、その全体的なステータスを前記ホストに提供する(破線矢印151で概念的に例示)。あるいは、記憶装置120.Aは、前記サブステータスを記憶装置110.Aに返す(次いでホスト100へ転送)代わりに、前記サブステータスをホスト100に直接返す(破線矢印154で概念的に例示)。
前記具体例について続けると、読み出し用データはステータスと同様に流れる。記憶装置120.Aが前記サブ要求に対応するデータを記憶装置110.Aに返すと(破線矢印152で概念的に例示)、記憶装置110.Aは、前記データを前記ホストに提供する(破線矢印151で概念的に例示)。あるいは、記憶装置120.Aは、前記データを記憶装置110.Aに返す(次いでホスト100へ転送)代わりに、前記データをホスト100に直接返す(破線矢印154で概念的に例示)。特定の要求に関するステータスおよびデータは、同じフローに限定されない。例えば、1つの要求に関するステータスおよびデータは、どちらも二次装置(例えば、記憶装置120.A)から一次エージェント(例えば、記憶装置110.A)経由でホスト100に流れる。別の要求について、ステータスは前記二次エージェントから前記一次エージェント経由で前記ホストに流れ、データは前記二次エージェントから前記ホストに直接流れる。書き込み用データは、前記ホストから前記一次エージェント経由で前記二次エージェントに流れ(破線矢印151および152で概念的に例示)、または前記ホストから前記二次エージェントに直接流れる(破線矢印154で概念的に例示)。
他の例としては、前記ホストから見えるストレージ110の要素のうちいずれか1つ若しくはそれ以上が、1若しくはそれ以上の一次エージェントとして機能し、前記ホストから見えないストレージ120の要素のうちいずれか1つ若しくはそれ以上または前記ホストから見えるストレージ110の他の要素のうちいずれか1つ若しくはそれ以上が、1若しくはそれ以上の二次エージェントとして機能するなどがある。
図1Bは、スケーラブルな記憶装置用技術の別の一実施形態の構造を一部選んで詳しく例示したもので、ホスト、ホストから見えるストレージであって、それぞれ一次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有する、ホストから見えるストレージ、およびホストから見えないストレージであって、それぞれ二次エージェントとして動作可能な1若しくはそれ以上の記憶装置を有する、ホストから見えないストレージを含む。この技術で使用するいくつかの要素は、図1Aで同様に識別されている要素(ホスト100、ホスト−記憶装置連結部180、および連結部101、111.A、111.N、121.A、および121.N)と動作および構造が同一である。ホストから見えるストレージ130は、図1Aのホストから見えるストレージ110と同様であるが、その内部の記憶装置(記憶装置130.Aおよび記憶装置130.N)が、それぞれ追加連結部(それぞれ連結部131.Aおよび131.N)を通じて通信できる点で異なる。ホストから見えないストレージ140は、図1Aのホストから見えないストレージ120と同様であるが、その内部の記憶装置(記憶装置140.Aおよび記憶装置140.N)が、それぞれ追加連結部(それぞれ連結部141.Aおよび141.N)を通じて通信できる点で異なる。装置−記憶装置連結部181は、連結部131.A、131.N、141.A、および141.Nに連結され、ホストから見えるストレージ130およびホストから見えないストレージ140の任意の要素間で、例えばピアツーピア通信に有用な、追加通信帯域幅を可能にする。例えば、装置−記憶装置連結部181は、記憶装置130.Aとホストから見えないストレージ140の任意の要素との間で追加通信帯域幅を可能にする。別の例として、装置−記憶装置連結部181は、記憶装置130.Aと記憶装置130.N間で追加通信帯域幅を可能にする。
前記ホスト−記憶装置連結部および前記装置−記憶装置連結部に加え、前記ホストから見えるストレージおよびホストから見えないストレージは、プラガブルなモジュール(アドインカード190Bとして図示)として任意選択的に実装され、かつ/または連結部101がケーブルとして任意選択的に実装される。一部の実施形態では、前記アドインカードの全部または任意部分がSSDとして実装される。種々の実施形態では、前記記憶装置のうちいずれか1つ若しくはそれ以上がSSDである。
一部の実施形態および/または使用シナリオでは、装置−記憶装置連結部181により提供される追加通信帯域幅により、前記ホストと前記記憶装置間の通信に利用可能な帯域幅にほとんど若しくはまったく影響を及ぼすことなく、ピアツーピア通信により実施されるストレージ冗長性技術(例えば、RAID 5)が可能になる。前記ピアツーピア通信には、未変換データ(例えば、RAIDミラーリング動作中)、変換済みデータ(例えば、RAIDパリティ生成および/または書き込み中、XORデータ)、および制御情報の通信のうち1若しくはそれ以上が含まれる。
一部の実施形態において、RAID冗長性は、ストライプ化した態様で、例えば(非RAID)データの分散態様に直交して、複数の記憶装置にわたりRAIDデータを分散させることにより実現される。一部の状況では、ホスト要求が読み出しの場合、情報は、前記記憶装置のうち2若しくはそれ以上から読み出される。ホスト要求が書き込みの場合、RAID冗長性情報の維持は、任意選択的に、前記記憶装置のうち2若しくはそれ以上に関するRMW動作の実行あるいはデータコピー動作を含む。
一次エージェントまたは二次エージェントが、ホスト書き込み要求の結果としてデータを読み出す場合、それらのエージェントは、ピアツーピア要求を(例えば、装置−記憶装置連結部181を介して)特定のRAIDデータと併せて、別のエージェント(一次エージェントまたは二次エージェント)に通信する。一部の状況において(例えば、ミラーRAID)、前記特定のRAIDデータは前記書き込み要求に関するデータのコピーである。一部の状況において(例えば、RAID 5)、前記特定のRAIDデータは、前記書き込み要求に関するデータ、および前記書き込み要求のLBAに対応する以前のデータに基づいて計算される(例えば、前記以前のデータは、前記書き込み要求に関するデータとのXORなどのRMW演算で使用される)。
例えば、前記書き込み要求に関するデータを受信するエージェントは、前記書き込み要求のLBAに対応する前記以前のデータに対し、前記書き込み要求に関するデータのXORをとることにより、RAIDデルタ(増分)を計算する。前記エージェントは、前記LBAに関連付けてRAID冗長性を格納するエージェントの1つにRAIDデルタを送信する。次に、前記RAID冗長性を格納するエージェントはRMWを実行し、前記RAIDデルタを使って前記RAID冗長性を更新する。前記RAID冗長性を格納するエージェントは、前記RAID冗長性に複数の更新が予測される旨の通知を受けている場合、より効率の高いRMW演算を任意選択的および/または選択的に組み合わせる。
一部の実施形態および/または使用シナリオでは、一次エージェントが、別のエージェント(別の一次エージェントまたは二次エージェント)に対し、特定のLBAについて予測されるRAID更新の数を通知する。通知を受けたエージェントは、種々の実施形態において、前記特定のLBAに関するすべての更新が実行されるまで、前記RAID更新に関係した情報をキャッシュすることができる。種々の実施形態では、RAID更新数がサブ要求の一部として黙示的または明示的に通信される。前記RAID更新が完了すると、前記通知を受けたエージェントは、前記一次エージェントにサブステータスを送信する。
種々の実施形態において、単一のホスト要求に関係した複数のデータ転送は、完全に、または部分的に独立して実行される。例えば、一部のRAID RMWシナリオにおける書き込みデータの転送は、それ以前に蓄積されたパリティデータの転送から独立して行われる。種々の状況において、書き込みデータは、一次エージェントおよび複数の二次エージェントのうちいずれかによりホストメモリから読み出され、蓄積されたパリティデータが、前記一次および二次エージェントのうちいずれかにより記憶装置から読み出されたのち、例えば前記蓄積されたパリティデータの読み出しが行われた記憶装置に、新規パリティデータが書き込まれる。
種々の実施形態において、連結部131.A、131.N、141.A、および141.Nのうち1若しくはそれ以上は、図1Aの連結部111.A、111.N、121.A、および121.Nと同一または実質的に同様である。一部の実施形態において、装置−ストレージ連結部である装置−記憶装置連結部181は、実装上、ホスト−記憶装置連結部180と同一または実質的に同様である。一部の実施形態では、ホスト−記憶装置連結部180および装置−記憶装置連結部181が単一要素へと併合される。一部の実施形態において、連結部131.A、131.N、141.A、および141.Nのうちいずれか1つ若しくはそれ以上は、装置−記憶装置連結部181にではなく、ホスト−記憶装置連結部180の変形形態の追加ポートに連結される。
種々の実施形態、例えば図1Aまたは図1Bに関する一部の実施形態において、ホストから見えるストレージは、それぞれ一次エージェントとして動作可能な1若しくはそれ以上の記憶装置、および二次エージェントとして動作可能なゼロ若しくはそれ以上の記憶装置を有し、ホストから見えないストレージは、それぞれ二次エージェントとして動作可能なゼロ若しくはそれ以上の記憶装置を有する。
種々の実施形態において、記憶装置は物理的記憶装置に対応し、その物理的記憶装置は、1若しくはそれ以上の動作モードに応じて、ホストから見えるストレージおよびホストから見えないストレージの任意の組み合わせを実装できる第1の運用シナリオにおいて、特定の物理的装置は、ホストから見えるストレージだけを実装するよう運用される。第2の運用シナリオにおいて、前記特定の物理的装置は、ホストから見えないストレージだけを実装するよう運用される。第3の運用シナリオにおいて、前記特定の物理的装置は、ホストから見えるストレージおよびホストから見えないストレージの組み合わせを実装するよう運用される。一部の状況では(例えば、作業負荷および/または障害の変化に応答して)、1つの運用シナリオから別の運用シナリオへと運用が動的に変更される。
例えば、図1Aを参照すると、図示したように運用が開始し、ホストから見えるストレージ110は記憶装置110.Aおよび記憶装置110.Nを有し、ホストから見えないストレージ120は記憶装置120.Aおよび記憶装置120.Nを有する。この例について続けると、記憶装置110.A、110.N、120.A、および120.Nは、それぞれ各々の物理的記憶装置に対応する。作業負荷の変化に応答して、記憶装置110.Nは、前記ホストから見えるストレージの要素としての動作から前記ホストから見えないストレージの要素としての動作へと動的に(再)設定される。この動的な再設定後、ホストから見えるストレージ110は記憶装置110.Aを有し、ホストから見えないストレージ120は記憶装置110.N、記憶装置120.Aおよび記憶装置120.Nを有する(図示せず)。
別の例として、図1Bを参照すると、図示したように運用が開始し、ホストから見えるストレージ130は記憶装置130.Aおよび記憶装置130.Nを有し、ホストから見えないストレージ140は記憶装置140.Aおよび記憶装置140.Nを有する。この例について続けると、記憶装置130.A、130.N、140.A、および140.Nは、それぞれ各々の物理的記憶装置に対応する。記憶装置130.Aの障害に応答して、記憶装置140.Aは、前記ホストから見えるストレージの要素として動作するよう動的に(再)設定されるとともに、引き続き前記ホストから見えないストレージの要素として動作する。例えば、記憶装置140.Aにより実装されるストレージは、前記障害が発生するまで記憶装置130.Aにより実装されていたストレージの全部または任意部分の交換用途と、ホストから見えないストレージとしての継続用途との間で割り当てが行われる。前記動的な再設定後、ホストから見えるストレージ130は、記憶装置140.Aおよび記憶装置130.Nにより実装されるストレージの一部を有し、ホストから見えないストレージ140は、記憶装置140.A(記憶装置130.Aを交換するため使用された部分を除く)および記憶装置140.Nを有する(図示せず)。
種々の実施形態において、ホストから見えるストレージは、トランスペアレントなスイッチを介してホストからアクセス可能なストレージであり、および/またはホストから見えないストレージは、非トランスペアレントなスイッチにより前記ホストから隠されるストレージである。前記ホストから見えるストレージおよび前記ホストから見えないストレージは、例えば、前記トランスペアレントおよび/または前記非トランスペアレントなスイッチの全部または任意部分を介して、ピアツーピア通信が可能である。一部の実施形態では、それぞれ上述のトランスペアレントおよび非トランスペアレントなスイッチに対応するトランスペアレントな部分および非トランスペアレントな部分を、統一されたスイッチが提供する。例えば、図1Bを参照すると、ホスト100、連結部101、ホスト−記憶装置連結部180、および装置−記憶装置連結部181の全部または任意部分のうち1若しくはそれ以上は、統一されたスイッチを実装する。この統一されたスイッチは、前記ホストから見えるストレージ130の要素のうち1若しくはそれ以上に対してトランスペアレントなスイッチとして動作可能であり、また同時に前記ホストから見えないストレージ140の要素のうち1若しくはそれ以上に対して非トランスペアレントなスイッチとして動作可能である。
スケーラブルなストレージシステムの動作
図2は、スケーラブルな記憶装置用技術の実施形態の処理を一部選んで詳しく例示した図である。一次エージェントとして機能する記憶装置(例えば、図1Aの前記ホストから見えるストレージ110の要素のうち1若しくはそれ以上)により「一次アクション」209として実行されるアクションのほか、二次エージェントとして機能する記憶装置(例えば、図1Aの前記ホストから見えないストレージ120の要素のうち1若しくはそれ以上および/または前記ホストから見えるストレージ110の他の要素のうち1若しくはそれ以上)により「二次アクション」219として実行されるアクションが例示されている。
まず、ストレージにアクセスする要求が単一の応答エージェントにより満たされるシナリオが記述されたのち、単一の要求が1より多くの応答エージェントにより満たされるシナリオが記述されている。ホスト(例えば、図1Aのホスト100)は、一次エージェントとして機能する記憶装置に、ストレージにアクセスする要求を提供する(「開始」201で概念的に表す)。前記一次エージェントは前記ホストから前記要求を受け付け、例えばホストメモリに保持された送信キューエントリを読み出して、任意選択的に前記ホストとのハンドシェイクを提供してエラーなく前記要求が受け付けられたことを示す(「ホストから要求を受け付け」202)。次いで前記一次エージェントは、前記要求を調べ、その要求が、前記一次エージェントにより実装されたストレージ宛てか決定する(「ローカル?」203)。そうである場合(「はい」203Y)は当該フローが進み、前記一次エージェントが前記要求で提供されたアドレス情報を処理して、前記要求に関連付けられた(ホスト)文脈から、前記一次エージェントが実装する対応ストレージに関連付けられた(一次エージェント)文脈へと、前記アドレス情報を変換する(「ローカルLBAに変換」204)。その一例として、前記要求がLBA 100を指定すると、前記一次エージェントは、当該一次エージェントが実装する(ローカル)ストレージの開始位置に対応したLBA 0にLBA 100を変換する。次に、前記一次エージェントは、前記要求を実行して(「ローカルに処理」205)前記ホストステータスを提供し(「ホストにステータスを提供」206)、例えば、前記ホストメモリに保持される完了キューエントリを書き込んで前記要求に関する処理を完了する(「終了」299)。一部の実施形態において、前記変換は、前記LBAの関数と、ページテーブルと同様なローカル・ストレージ・アドレスとの間でのマッピングを有する。
前記要求が、前記一次エージェントの実装するストレージ宛てではない場合(「いいえ」203N)は、前記一次エージェント内でフローが進み、二次エージェントとして機能する記憶装置に、前記要求がサブ要求として送信される(「二次へ転送」207)。前記一次エージェントは前記要求からサブ要求を決定し、前記一次エージェントから前記二次エージェントへの前記サブ要求通信は、破線「サブ要求」207Rで示されている。前記一次エージェント内でフローが進み、前記二次エージェントによる前記サブ要求の完了が待機される(「完了を待機」208)。前記二次エージェントは、前記サブ要求を完了すると(エラーが起きても起きなくても)、前記一次エージェントにサブステータスを供給する(破線「サブステータス」214Sで概念的に図示)。次いで前記一次エージェントは、前記二次エージェントから前記サブステータスを受け付け、任意選択的に前記二次エージェントとのハンドシェイクを提供して、エラーなく前記サブステータスが受け付けられたことを示す(「二次からサブステータスを受け付け」209A)。次に、前記一次エージェントは、フローを進めて前記サブステータスをステータスとして前記ホストに提供し(「ホストにステータスを提供」206)、前記要求の処理が完了する(「終了」299)。
前記二次エージェント内では、前記一次エージェントから前記サブ要求を受け付けることによりフローが開始し、任意選択的に前記一次エージェントとのハンドシェイクが提供されて、エラーなく前記サブ要求が受け付けられたことが示される(「一次からサブ要求を受け付け」211)。前記サブ要求には、当該サブ要求が対応する前記要求内で前記ホストにより提供されるアドレス情報(例えば、LBA)が含まれる。前記二次エージェントは、前記サブ要求で提供されたアドレス情報を処理して、前記要求に関連付けられた(ホスト)文脈から、前記二次エージェントが実装する対応ストレージに関連付けられた(二次エージェント)文脈へと、前記アドレス情報を変換する(「ローカルLBAに変換」212)。例えば、要求がLBA 200を指定し、前記サブ要求がLBA 200を指定すると、前記二次エージェントは、当該二次エージェントが実装する(ローカル)ストレージの開始位置に対応した(ローカル)LBA 0へと(ホスト)LBA 200を変換する。この例について続けると、別の要求がLBA 201を指定し、それに対応するサブ要求がLBA 201を指定すると、前記二次エージェントは、当該二次エージェントが実装する(ローカル)ストレージの次の位置に対応した(ローカル)LBA 1へと(ホスト)LBA 201を変換する。他の例については、以降、図3で説明している。前記サブ要求の変換後にフローが進み、前記二次エージェントは、前記要求を実行したのち(「ローカルに処理」213)、破線「サブステータス」214Sで図示したように、前記一次エージェントにサブステータスを返す(「一次にサブステータスを提供」214)。
ストレージにアクセスする単一の要求が1より多くの応答エージェントにより満たされるシナリオでは、前記単一の要求が概念的に複数のサブ要求に分割される。前記サブ要求のうちゼロ、1、またはそれ以上は、前記一次エージェントにより満たされ、前記サブ要求のうちゼロ、1、またはそれ以上は、ゼロ、1、またはそれ以上の二次エージェントにより満たされる。例えば、LBA 2つ分の長さのLBA 400への要求は、LBA 400に関する二次エージェントへのサブ要求、およびLBA 401に関する別の二次エージェントへの別のサブ要求により満たされる。各二次エージェントは、独立して、各前記サブ要求のLBAを各前記二次エージェントのローカルストレージに対応するLBAに変換する。
前記一次エージェントは、どの二次エージェント(該当する場合)がサブ要求を受信すべきか、前記要求のアドレスおよび長さ情報に基づいて決定する。そのため図2において、前記要求が、前記一次エージェントにより実装されたストレージ宛てか(「ローカル?」203)は、複数のサブ要求の各々について概念的に決定される。一部の前記サブ要求については、それらのサブ要求がローカルであるという結果になる一方、他の前記サブ要求は、ローカルではないという結果になり、1若しくはそれ以上の二次エージェントにサブ要求として転送される(「二次に転送」207および「サブ要求」207R)。一部のシナリオにおいて、単一の二次エージェントは、単一のサブ要求を受信するが、他のシナリオでは、単一の二次エージェントが複数のサブ要求を受信する。続けて「二次アクション」219で表されるフローが、各前記複数のサブ要求について実行される(種々の実施形態では、逐次および/または並列処理の任意の組み合わせにより)。一部のシナリオでは、複数の二次エージェントが、それぞれ1若しくはそれ以上のサブ要求を受信する。次いで「二次アクション」219で表されるフローが各前記複数の二次エージェントにより独立して実行される。
前記一次エージェントは、「二次へ転送」207で行われる処理の一部として、単一の要求を、いかに1若しくはそれ以上の二次エージェントへの複数のサブ要求にマップするかを、1若しくはそれ以上の関数および/またはマッピングテーブル(例えば、図1Aの記憶装置110.Aにより実装される)により決定する。複数のサブ要求が1若しくはそれ以上の二次エージェントに送信される場合、前記一次エージェントは、他の前記サブ要求から独立した各前記サブ要求について完了を待機し(「完了を待機」208)、それに対応したサブステータスを受け付ける(「二次からサブステータスを受け付け」209A)ことにより、ステータス情報を概念的に累積する。特定の要求の全サブ要求に関するサブステータスが受信されると、前記一次エージェントは全体的なステータスを生成し、「ホストにステータスを提供」206で実行される処理の一部として前記ホストに提供する。
一部の実施形態において、二次エージェントは、要求全体を同一のサブ要求として受信する(または、交互に送信キュー内のエントリから前記要求を読み出す)。次に、各前記二次エージェントは、前記要求のどの部分(該当する場合)を各当該二次エージェントが実行すべきか決定し、蓄積されたパリティデータ(該当する場合)をどのエージェントに送信すべきか任意選択的に決定する。例えば、要求が長さ200 LBAのLBA 500を指定する場合、一次エージェントは、同一のサブ要求を第1および第2の二次エージェントに送信する(あるいは、単一のサブ要求が前記第1および第2の二次エージェントへ送信される)。前記サブ要求は、長さ200 LBAのLBA 500を指定する。前記第1の二次エージェント(前記ホストおよび前記第2の二次エージェントから独立した)は、前記サブ要求のLBA 600〜699が、当該第1の二次エージェントの実行すべき前記サブ要求の一部に対応することを決定する。前記第2の二次エージェント(前記ホストおよび前記第1の二次エージェントから独立した)は、前記サブ要求のLBA 500〜599が、当該第2の二次エージェントの実行すべき前記サブ要求の一部に対応することを決定する。前記第1のおよび前記第2の二次エージェントは、特定の冗長性方式に応じ、前記蓄積されたパリティ情報がそれらのエージェントに適したものであることを決定する。
一部の実施形態および/または使用シナリオでは、一次エージェント経由で転送せず、二次エージェントから前記ホストにステータスが直接提供される(図1Aの破線矢印154で概念的に図示)。例えば、この直接的なステータス提供は、要求全体に関するサブ要求が単一の二次エージェントに転送された場合起こる。その単一の二次エージェントは、次いでステータスを前記ホストへ直接返す(例えば、その単一の二次エージェントが、ホストメモリに保持された完了キューにエントリを書き込むことにより)。なお、前記ホストは、前記単一の二次エージェントが前記エントリを書き込むアクションを、前記一次エージェントが前記エントリを書き込む場合と区別できないため、前記単一の二次エージェントが前記エントリを書き込んでも、その単一の二次エージェントにより前記要求が満たされることは前記ホストにとってトランスペアレントである(認識されない)ことに注意すべきである。一部の実施形態では、二次エージェント(一次エージェントでなく)が特定の要求に対応した複数のサブ要求に関するサブステータスを蓄積し、その蓄積されたサブステータスを全体的なステータスとして前記ホストに提供する。
一部の実施形態では、少なくとも、1若しくはそれ以上のホストからの一部の要求について、1若しくはそれ以上の記憶装置が一次エージェントとして、および二次エージェントとして同時に動作する。例えば、システムは2つの記憶装置を有する。前記記憶装置の第1の記憶装置は、二次エージェントとして動作する当該記憶装置の第2の記憶装置に対し、一次エージェントとして動作し、前記第2の記憶装置は、二次エージェントとして動作する前記第1の記憶装置に対し、一次エージェントとして動作する。より具体的にいうと、前記第1の記憶装置は、前記ホストのうち特定の1つのホストから要求を受け付け、その要求をサブ要求として前記第2の記憶装置に送信する。前記第2の記憶装置は、前記特定のホストから別の要求を受け付け、当該他の要求をサブ要求として前記第1の記憶装置に転送する。一部の実施形態および/または使用シナリオにおいて、前記要求は、同じホスト要求キューからのものである。一部の実施形態および/または使用シナリオにおいて(例えば、前記要求が異なるホストからの場合)、前記要求は、異なるホスト要求キューからのものである。
種々の実施形態によれば、要求、ステータス、およびデータ転送のうち1若しくはそれ以上は、例えば、前記ホスト(またはその一部)(例えば、ホストメモリ)からアクセス可能なメモリと、前記記憶装置の1つ(またはその一部)(例えば、記憶装置に実装されたバッファ)からアクセス可能なメモリとの間のDMAを介す。そのため、前述した要求、ステータス、およびデータ転送のフローのうち1若しくはそれ以上は、1若しくはそれ以上のスキャッタ・ギャザーリスト、およびそれに後続する前記スキャッタ・ギャザーリストに基づいたDMA転送通信による。その追加態様(または代替態様)として、前記要求、ステータス、およびデータ転送のフローのうち1若しくはそれ以上は、完了および/またはステータスキュー情報、ならびにそれに後続する前記キューのエントリとのDMA転送の通信による。種々の実施形態では、前記要求、ステータス、およびデータ転送のいずれも、前記記憶装置のうち1若しくはそれ以上に含まれる1若しくはそれ以上のプロセッサにより直接実行され、および/または管理される。
アドレス指定
図3は、スケーラブルな記憶装置用技術の実施形態におけるホスト、一次エージェント、および二次エージェントのアドレス指定を一部選んで詳しく例示した図である。この図では、ホスト(例えば、図1Aのホスト100)から見たストレージアドレス空間の窓(ホストアドレス空間310)の例を示している。前記ホストのストレージアドレス空間は、ホストLBA範囲1〜5 311〜315を有する。さらに、この図では、一次エージェント(例えば、図1Aの前記ホストから見えるストレージ110の要素のいずれか1つ)から見たストレージアドレス空間の窓(一次アドレス空間320)の例を示している。前記一次エージェントのストレージアドレス空間は、一次LBA範囲1〜3 321〜323を有する。さらに、この図では、2つの二次エージェント(二次エージェントAおよびB、例えば図1Aの前記ホストから見えないストレージ120の要素のいずれか2つ、および/または前記ホストから見えるストレージ110の他の要素のいずれか)から見たストレージアドレス空間の窓(二次アドレス空間330)の例を示している。前記二次エージェントAのストレージアドレス空間は、二次A LBA範囲1〜3 331A、332A、および333Aを有する。前記二次エージェントBのストレージアドレス空間は、二次B LBA範囲1〜2 331Bおよび332Bを有する。特定の縮尺どおりに描画されているわけではないが、この図中、種々のアドレス範囲要素の縦方向の高さは異なっており、これら各範囲内の位置数の違いを概念的に表している。
第1の例において、単一のホストアドレス範囲(ホストLBA範囲1 311)は、二次A(二次A LBA範囲1 331A)の単一のアドレス範囲に対応する。一次エージェント(例えば、図1Aの記憶装置110.A)は、ホストLBA範囲1 311内のアドレスに対するホスト要求が当該一次エージェントにより実装されていないストレージに対応することを決定し(例えば、図2の「ローカル?」203および「いいえ」203Nに関連付けられた処理を通じて)、また前記要求が二次Aにより実装されたストレージに対応することを決定する。次に、前記一次エージェントは二次Aにサブ要求を転送する。すると、二次Aは、前記サブ要求を変換し(例えば、図2の「ローカルLBAに変換」212に関連付けられた処理)、二次A LBA範囲1 331Aを介してアクセス可能なストレージへのローカルアクセスを実行する(例えば、図2の「ローカルに処理」213による処理)。
第2の例では、単一のホストアドレス範囲(ホストLBA範囲2 312)が、二次B(二次B LBA範囲1 331B)の単一のアドレス範囲に対応する。前記一次エージェントは、ホストLBA範囲2 312内のアドレスへの要求が二次Bにより実装されたストレージに対応することを決定して、サブ要求を二次Bに転送する。次に、二次Bが前記サブ要求を変換し、二次B LBA範囲1 331Bを介してアクセス可能なストレージへのローカルアクセスを実行する。
第3の例では、単一のホストアドレス範囲(ホストLBA範囲3 313)が、前記一次エージェント(一次LBA範囲1 321)の単一のアドレス範囲に対応する。前記一次エージェントは、ホストLBA範囲3 313内のアドレスへの要求が前記一次エージェントにより実装されたストレージに対応することを決定し、前記要求を変換して(例えば、「ローカルLBAに変換」204に関連付けられた処理により)、一次LBA範囲1 321を介してアクセス可能なストレージへのローカルアクセスを実行する。
第4の例では、単一のホストアドレス範囲(ホストLBA範囲4 314)が、二次A(二次A LBA範囲2 332Aおよび3 333A)および二次B(二次B LBA範囲2 332B)の単一のアドレス範囲の2つのアドレス範囲に対応する。前記一次エージェントは、ホストLBA範囲4 314内のLBA全体への要求が二次Aおよび二次Bにより実装されたストレージに対応することを決定する(例えば、アクセスすべき開始LBAおよび連続したLBAの数に基づいて)。次に、前記一次エージェントは、二次Aに2つのサブ要求を、二次Bに単一のサブ要求を転送する。二次Aは、前記2つのサブ要求を変換し、二次A LBA範囲2 332Aおよび3 333Aを介してアクセス可能なストレージへのローカルアクセスを実行する(逐次、または完全または部分的に並列に)。二次Bは、前記単一のサブ要求を変換し、二次B LBA範囲2 332Bを介してアクセス可能なストレージへのローカルアクセスを実行する。
第5の例では、単一のホストアドレス範囲(ホストLBA範囲5 315)が、前記一次エージェント(一次LBA範囲2 322および3 323)の2つのアドレス範囲に対応する。前記一次エージェントは、ホストLBA範囲5 315内のLBA全体への要求が当該一次エージェントにより実装されたストレージに対応することを決定する(例えば、アクセスすべき開始LBAおよび連続したLBAの数に基づいて)。前記一次エージェントは2つのローカルLBA範囲への前記要求を変換し、一次LBA範囲2 322および3 323を介してアクセス可能なストレージへのローカルアクセスを実行する。
一部の実施形態において、一次エージェントは、ホスト要求の各サブ要求を、1若しくはそれ以上の二次エージェントのうち特定の1つに別個に転送できる。他の実施形態において、一次エージェントは、ホスト要求の2若しくはそれ以上のサブ要求を、複数の二次エージェントのうち特定の1つに、単一の複合サブ要求として転送できる。例えば、種々の実施形態において、一次エージェントは、ホスト要求の1若しくはそれ以上のサブ要求を処理する1若しくはそれ以上の二次エージェントを決定して、同じLBA範囲および同じ長さの前記ホスト要求を前記1若しくはそれ以上の二次エージェントに転送する。前記1若しくはそれ以上の二次エージェントは、次いで前記LBA範囲および前記長さを解釈し、各前記1若しくはそれ以上の二次エージェントが処理および応答すべき前記ホスト要求の各部分を決定することができる。他の実施形態において、一次エージェントは、ホスト要求のLBA範囲および長さを処理し、前記LBA範囲および前記長さの処理済みバージョンを1若しくはそれ以上の二次エージェントの各々に送信する。例えば、N個のエージェント(N−1個の二次エージェントおよび前記一次エージェント)にわたり64KBの境界でデータがストライプ化される場合、前記一次エージェントは、LBA範囲をN×64KBで除算して前記N−1個の二次エージェントにサブ要求を分散させる。前記N−1個の二次エージェントの各々は、除算後の開始LBAを伴う各サブ要求、前記N個のエージェントにわたるデータのストライプ化に対応した長さの一部、および任意選択的および/または選択的に前記LBA除算後の残りの部分を受信する。そのため、前記二次エージェントのうち第1および/または最後の二次エージェントは、任意選択的に、64KBより小さい転送を処理する。
スケーラブルな記憶装置
図4は、一次エージェント、具体的には図1Aの記憶装置110.Aとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示したものである。この記憶装置には、PCIeバスへのインターフェース(PCIeインターフェース401)が含まれる。前記PCIeインターフェースにはDMAユニットが含まれ、これにより直接ホストメモリと前記PCIeインターフェースのバッファとの間で任意選択的および/または選択的な転送が可能になり、例えば、完了またはステータスキューエントリの読み出しまたは書き込み、および/またはホストメモリとの直接的なデータ転送が可能になる。前記PCIeインターフェースは、変換ブロック(LBA、長さ変換論理402)に連結される。前記変換ブロックは、例えば、図2の「ローカルLBAに変換」204について説明したように、ホストストレージアドレス情報(例えば、LBAおよび長さ)をローカルストレージアドレス情報に変換できる。この変換ブロックは、1若しくはそれ以上の大容量ストレージユニット(まとめて大容量ストレージ404と図示)に連結された大容量ストレージインターフェース(ストレージインターフェース論理403)に連結される。前記大容量ストレージユニットには、フラッシュストレージユニット(フラッシュ404F)、磁気ディスクストレージユニット(磁気404M)、光ディスクストレージユニット(光404O)、および/または任意タイプの不揮発性ストレージユニットのうちいずれか1つ若しくはそれ以上が含まれる。種々の実施形態において、前記フラッシュストレージユニットは、1若しくはそれ以上のフラッシュメモリチップおよび/またはダイ、例えばNANDフラッシュまたはNORフラッシュを有する。
記憶装置110.Aには、一次エージェントとしての動作に関係した種々の動作を実行できる制御ブロック(サブ要求生成およびサブステータス蓄積405)が含まれ、この制御ブロックは、任意選択的に、PCIeインターフェース401、LBA、長さ変換論理402、およびストレージインターフェース論理403のうち1若しくはそれ以上に連結される。その動作としては、例えば図2の前記一次アクション209の要素のうちいずれか1つ若しくはそれ以上に関連付けられた処理を実行および/または管理するなどがある。一部の実施形態において、サブ要求生成およびサブステータス蓄積405は、ホストアドレスがいかに種々の二次装置に割り当てられるか追跡する1つ以上の関数および/またはマッピングテーブルを実装する(例えば、図2の「二次へ転送」207により使用される前記マッピングテーブル)。前記動作には、1若しくはそれ以上の二次エージェント(例えば、図5の記憶装置120.A)により実装された記憶容量が記憶装置110.Aにより実装されているかのように、記憶容量に関するホストの問い合わせに応答する動作がさらに含まれる。
図5は、一次エージェント、具体的には図1Aの二次エージェント、例えば記憶装置120.Aとして動作できるスケーラブルな記憶装置の一実施形態の構造を一部選んで詳しく例示したものである。この記憶装置には、図4で同様に識別されている要素(PCIeインターフェース401、LBA、長さ変換論理402、ストレージインターフェース論理403、ならびにフラッシュ404F、磁気404M、および光404Oを有した大容量ストレージ404)と動作および構造が同一であるいくつかの要素が含まれる。
記憶装置120.Aには、二次エージェントとしての動作に関係した種々の動作を実行できる制御ブロック(サブ要求受け付けおよびサブステータス生成501)が含まれ、この制御ブロックは、任意選択的に、PCIeインターフェース401、LBA、長さ変換論理402、およびストレージインターフェース論理403のうち1若しくはそれ以上に連結される。その動作としては、例えば図2の前記二次アクション219の要素のうちいずれか1つ若しくはそれ以上に関連付けられた処理を実行および/または管理するなどがある。前記動作には、記憶装置120.Aにより実装された記憶容量はないかのように、あるいは(前記ホストから直接ではなく)ホストから一次エージェントを介して行われるアクセス用に割り当てられたストレージが当該記憶装置により実装されていないかのように、記憶容量に関するホストの問い合わせに応答する動作がさらに含まれる。その代わり、記憶装置120.Aにより実装された記憶容量は、一次エージェント、例えば図4の記憶装置110.Aにより報告される。
一部の実施形態において(図示せず)、設定可能な記憶装置は、図4の記憶装置110.A内に例示した全要素の機能に対応する要素を含み、さらに図5のサブ要求受け付けおよびサブステータス生成501の機能に対応する要素を含む。設定可能な記憶装置の一例は、PCIeインターフェース401、LBA、長さ変換論理402、ストレージインターフェース論理403、および大容量ストレージ404だけでなく、サブ要求生成およびサブステータス蓄積405およびサブ要求受け付けおよびサブステータス生成501を含む。この設定可能な記憶装置は、選択的に一次エージェントまたは二次エージェントとして、例えば内部に含まれているプログラム可能なモード状態に応答して動作できる。前記モード状態は、種々の技術、例えば特殊な(例えば、ベンダー特有の)コマンドを使って管理ソフトウェアにより含められたPCIeインターフェースにより、初期化要素、例えば不揮発性メモリ(例えば、フラッシュメモリまたは任意選択的ROM)により、または前記設定可能な記憶装置および/またはその設定可能な記憶装置と通信可能な別の記憶装置によるイベントの検出により、プログラム可能および/または変更可能である。一部の実施形態および/または使用シナリオにおいて、設定可能な記憶装置は動作モードの動的変化を可能にし、例えば二次エージェントが障害の発生した一次エージェントを動的に交換して単一障害点としてのストレージを除外することができる。
障害シナリオ
一次エージェントおよび1若しくはそれ以上の二次エージェントが単一の論理インターフェースとしてホストに見える種々の実施形態および/または使用シナリオでは、いくつかの障害復旧技術が可能である。それらの復旧技術は、ホストに対して完全にトランスペアレントであるか、あるいはホスト上で動作する装置ドライバだけに見える。
第1の障害復旧技術は、二次エージェントの全体または一部に障害が起こり、障害の発生した前記二次エージェントがもはやストレージの特定部分を実装しなくなる場合に適用可能である。前記一次エージェントは、前記障害を認識する(例えば、前記一次エージェントが前記障害を検出するか、前記障害の発生した二次エージェントが前記一次エージェントに前記障害を報告する)。それ応答して、前記一次エージェントは、当該一次エージェントのストレージから、および/または前記二次エージェントのうち、任意選択的および/または選択的に前記障害の発生した二次エージェントを含むゼロ若しくはそれ以上から割り当てを行ってストレージを(再)割り当てすることにより、ストレージの前記特定部分を実装する。次いで前記一次エージェントおよび前記二次エージェントは、図1A、1B、および2〜5を参照して説明した前述の実施形態および/またはシナリオのいずれかに基づいて動作する。
一部の状況、例えば二次エージェントに障害が起こってそのストレージを前記再割り当てに提供できなくなった状況では、前記再割り当てにおいて、前記障害の発生した二次エージェントが除外される。二次エージェントは、種々のシナリオ、例えば動作可能な空きストレージが不十分である、一次エージェントおよび/またはホストと適切に通信できない、物理的に取り外された、または完全に機能不能に陥ったシナリオにおいて、種々の理由でストレージを提供できない。他の状況、例えば二次エージェントに部分的に障害が発生したが少なくとも一部のストレージは引き続き実装される状況では、前記再割り当てにおいて、任意選択的に、前記部分的に障害の発生した二次エージェントのストレージが含められる。関連する代替実施形態および/または使用シナリオでは、ホスト上で動作する装置ドライバ(一次エージェントではなく)が障害を認識し、前記障害について一次エージェントに通知し、および/または再割り当てを実行するよう前記一次エージェントに指示する。
第2の障害復旧技術は、一次エージェントの全体または一部に障害が起こり、その一次エージェントがもはやストレージの特定部分を実装しなくなる場合に適用可能である。この第2の障害復旧技術は前記前記第1の障害復旧技術と同様であるが、ストレージに関する再割り当てが、前記全体または一部に障害が起こった一次エージェントにより実施されない点で異なる。前記第1の障害復旧技術と同様、前記一次エージェントが適切にストレージを実装できないという障害は、前記一次エージェント、二次エージェント、またはホスト上の装置ドライバのうち1若しくはそれ以上により検出可能である。
第3の障害復旧技術は、一次エージェントに障害が起こり、もはや一次エージェントとして適切に動作しなくなる、例えば情報(例えば、サブ要求および/またはサブステータス)を、1若しくはそれ以上の二次エージェントおよび/またはホストと通信しなくなる場合に適用可能である。その場合は監視エージェントが前記障害を認識し、それに応答して交換用一次エージェントとして機能する別の一次または二次エージェントを識別する。一部の実施形態において、その交換用一次エージェントは、ホットスペアである。前記監視エージェントの一例は、前記障害の発生した一次エージェントを含む記憶装置の別の一次(または二次)エージェントである。前記監視エージェントの別の例は、ホスト上の装置ドライバ、例えばOSおよび/または前記ホスト上で動作するアプリケーションと、前記障害の発生した一次エージェントとの間の通信を、前記障害以前、可能にしていた装置ドライバである。また、前記障害の発生した一次エージェントがもはやストレージの特定部分を実装しなくなった場合は、前記交換用一次エージェントがストレージを再割り当てして、例えば前記第2の障害復旧技術で、ストレージの前記特定部分を実装する。その再割り当ては、前記障害の発生した一次エージェント(当該障害の発生した一次エージェントにおいて一部のストレージが依然として動作可能である場合)、前記交換用一次エージェント、および/または前記二次エージェントのうちゼロ若しくはそれ以上、のうちいずれか1つ若しくはそれ以上のストレージからの割り当てによる。前記交換用一次エージェントは、前記障害の発生した一次エージェントが前記障害以前に機能したように機能し、図1A、1B、および2〜5を参照して説明した前述の実施形態および/またはシナリオのいずれかに基づいて動作する。
第4の障害復旧技術は、1若しくはそれ以上の設定可能なエージェントを伴うシステムにおいて可能になり、一次エージェントが一次エージェントとして適切に機能できない場合に適用可能である。前記設定可能なエージェントの一例は、例えば図4および図5の全要素を概念的に含む設定可能な記憶装置に基づいて、一次エージェントまたは二次エージェントのどちらかとして動作可能な設定可能な記憶装置である。前記第3の障害復旧技術と同様、監視エージェントは、一次エージェントとして適切に機能できない一次エージェントの障害を認識すると、それに応答して、交換用一次エージェントとして機能する前記設定可能なエージェントの1つを識別する。前記監視エージェントは、前記識別された設定可能なエージェントが交換用エージェントとして動作するよう構成される(例えば、プログラミングモード情報により)ことを要求する。前記識別された設定可能な要素は、前記設定変更要求に動的に応答し、交換用一次エージェントとして動作する一次エージェントとして機能し始める。前記第3の障害復旧技術と同様、前記障害の発生した一次エージェントがもはやストレージの特定部分を実装しなくなった場合は、前記交換用一次エージェントがストレージを再割り当てして、例えば前記第2の障害復旧技術で、ストレージの前記特定部分を実装する。前記交換用一次エージェントは、前記障害の発生した一次エージェントが前記障害以前に機能したように機能し、図1A、1B、および2〜5を参照して説明した前述の実施形態および/またはシナリオのいずれかに基づいて動作する。
以上の障害復旧技術のうちいずれか1つ若しくはそれ以上では、障害後、任意選択的に、冗長性情報により可能な限りデータが回復される。そのデータ回復は、任意選択的に、ホスト側の連結部(例えば、図1Aまたは1Bのホスト−記憶装置連結部180)と装置側の連結部(例えば、図1Bの装置−記憶装置連結部181)との任意の組み合わせを通じて行われる。本明細書の他の部分で説明したように、前記冗長性情報は、例えば種々のRAIDおよび/またはミラーリング実施態様に基づく。
以上の障害復旧技術のうちいずれか1つ若しくはそれ以上では、前記再割り当てにより任意選択的に利用可能な空き容量が減少し、例えばそれがホストに示される。
以上の障害復旧技術のうちいずれか1つ若しくはそれ以上において、前記再割り当てのうちいずれか1つ若しくはそれ以上は、少なくとも部分的にプロセッサが実行する命令により実行および/または管理される。
以上の障害復旧技術のうちいずれか1つ若しくはそれ以上では、一次または二次エージェントの障害の認識は、エージェントによる障害の特定の検出、エージェントからのハートビート指標の受信不在、および障害発生を知らせるより高レベルの指標のうち1若しくはそれ以上を通じて行われる。前記特定の検出には、一次エージェント、二次エージェント、または装置ドライバが、例えば返されてきたステータスが不適切である、プロトコル違反があった、または要求がタイムアウトしたと決定することによる、別のエージェントでの障害発生の決定のうち、いずれか1つ若しくはそれ以上が含まれる。
トランスペアレントなスイッチが、ホストと、ホストから見えるストレージとの間の通信を可能にする一部の実施形態では、前記ホストから見えるストレージの要素の障害は、例えば前記ホスト上で動作する装置ドライバから見える。前記装置ドライバは、任意選択的に障害からの復旧に参与する。ホストと、ホストから見えないストレージとの間に非トランスペアレントなスイッチを有する一部の実施形態では、前記ホストから見えないストレージの要素の障害は、前記ホストから見えない。その障害からの復旧は、任意選択的に前記ホストから見えない。
種々の実施形態において、図1Aおよび1Bのホストから見えるストレージ110、ホストから見えないストレージ120、ホストから見えるストレージ130、ホストから見えないストレージ140の要素のいずれかのほか、それら内部のユニットおよびサブユニットにより実行される動作の全部または任意部分は、任意選択的に有形のコンピュータ可読媒体内に格納された命令(例えば、ファームウェア)を実行する1若しくはそれ以上のプロセッサにより管理および/または実施される。例えば、サブ要求生成およびサブステータス蓄積405および/またはサブ要求受け付けおよびサブステータス生成501は、コンピュータ可読媒体内に格納された命令(例えば、ファームウェア)を実行するプロセッサにより管理および/または実施される。この例について続けると、前記コンピュータ可読媒体は、前記スケーラブルな記憶装置(例えば、フラッシュ404F)に含まれるフラッシュメモリの一部である。種々の実施形態において、図1Aおよび1Bのホストから見えるストレージ110、ホストから見えないストレージ120、ホストから見えるストレージ130、ホストから見えないストレージ140の要素のいずれかのほか、それら内部のユニットおよびサブユニットにより実行される動作の全部または任意部分は、状態機械により管理および/または実施される。例えば、サブ要求生成およびサブステータス蓄積405および/またはサブ要求受け付けおよびサブステータス生成501の全部または任意部分は、少なくとも部分的に論理ゲート回路により実装された1若しくはそれ以上の状態機械により管理および/または実施される。
種々の実施形態では、1若しくはそれ以上のスケーラブルな記憶装置(一次および/または二次エージェントとして動作できる)を有するスケーラブルなストレージシステムの全部または任意部分は、例えばデータセンター内の機器ラックの1若しくはそれ以上のドロワーおよび/またはシェルフに実装される。前記スケーラブルなストレージシステムは、任意選択的に、1若しくはそれ以上のホスト、例えば前記機器ラックの他のドロワーおよび/またはシェルフに実装されたコンピュータ複合体とともに動作できる。
実施技術例
一部の実施形態において、スケーラブルな記憶装置(例えば、図4の記憶装置110.Aまたは図5の記憶装置120.A)に含まれるブロックと、プロセッサ、マイクロプロセッサ、システムオンアチップ、アプリケーション固有の集積回路、ハードウェアアクセラレータ、または上記動作またはブロックの全部または一部を提供する他の回路の部分とにより実行される動作の全部または一部の種々の組み合わせは、コンピュータシステムによる処理と互換性のある仕様で指定される。その仕様は、種々の記述、例えばハードウェア記述言語、回路記述、ネットリスト記述、マスク記述、レイアウト記述による。記述例としては、Verilog、VHDL、SPICE、SPICE変形形態(例えば、IBIS、LEF、DEF、GDS−II、OASIS)、または他の記述がある。種々の実施形態では、前記処理として、1若しくはそれ以上の集積回路に含める上で適した論理および/または回路を生成、検証、または指定するための解釈、コンパイル、シミュレーション、および合成の任意の組み合わせが含まれる。各集積回路は、種々の実施形態によれば、種々の技術に基づいて設計可能および/または製造可能である。それらの技術としては、プログラマブル技術(例えば、フィールドプログラマブルまたはマスクプログラマブル・ゲートアレイ集積回路)、セミカスタム技術(例えば、全体的または部分的にセルベースの集積回路)、フルカスタム技術(例えば、実質的に特定用途向けの集積回路)、これらの任意の組み合わせ、または集積回路の設計および/または製造と互換性のある他の任意技術などがある。
一部の実施形態において、命令セットを内部に格納したコンピュータ可読媒体による上記動作の全部または一部の各種組み合わせは、1若しくはそれ以上のプログラム命令の実行および/または解釈により、1若しくはそれ以上のソースおよび/またはスクリプト言語ステートメントの解釈および/またはコンパイルにより、あるいはプログラミングおよび/またはスクリプト言語ステートメントで表現された情報をコンパイル、変換、および/または解釈して生成されたバイナリ命令の実行により、実施される。前記ステートメントは、いかなる標準プログラミング言語またはスクリプト言語とも互換性がある(例えば、C、C++、Fortran、Pascal、Ada、Java(登録商標)、VBscript、およびShell)。前記プログラム命令、前記言語ステートメント、またはバイナリ命令のうち1若しくはそれ以上は、選択的に、1若しくはそれ以上のコンピュータ可読記憶媒体要素に格納される。種々の実施形態において、前記プログラム命令の一部、全部、または種々の部分は、1若しくはそれ以上の関数、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその部分として実現される。
結論
上記説明では一定の選択を行っているが、これは単に文章と図面を作成する便宜上のもので、別段の断りがない限り、これらの選択自体が、上記実施形態の構造または動作に関する追加情報を包含すると解釈すべきではない。前記選択の例は、図の参照番号について使用される指定の具体的な構成または割り当て、ならびに前記実施形態の特徴および要素を識別および参照するため使用した前記要素識別子の具体的な構成または割り当て(各要素の囲み線または参照番号)などである。
表現「を含む」または「が含まれる」は、特に非限定的な範囲の論理セットを記述する抽象表現として解釈されるよう意図したものであり、明示的に「内に」という表現を伴わない限り、物理的収納を意味することを意図したものではない。
以上の実施形態については、説明および理解の明瞭化を目的として一部詳しく説明したが、本発明は上記で提供した詳細事項に限定されるものではない。本発明には多くの実施形態がある。開示した実施形態は、例示的なものであって限定的なものではない。
構造、構成、および使用については、前記説明と一貫し、また当該交付済み特許の請求範囲内で多数の変形形態が可能であることが理解されるであろう。例えば、相互接続および機能単位のビット幅、クロック速度、および使用する技術のタイプは、各構成要素ブロックにおける種々の実施形態に応じて異なる。相互接続および論理に与えた名称は単に例示的なものであり、説明された概念を限定するものと解釈されるべきではない。フローチャートの工程、アクション、および機能要素の順序および構成は、種々の実施形態に応じて異なる。また、具体的に別段の断りがない限り、指定した値範囲、使用した最大値および最小値、または他の特定の仕様(例えば、フラッシュメモリ技術のタイプ、ならびにレジスタおよびバッファのエントリまたはステージの数など)は、単に説明した実施形態のものであり、実施態様の技術は改善および変更されることが期待され、本発明を限定するものと解釈すべきではない。
種々の構成要素、サブシステム、動作・操作、機能、ルーチン、サブルーチン、インラインルーチン、プロシージャ、マクロ、またはその部分を実施するため説明した技術については、これらに代えて、当該技術分野で知られた機能的に等価の技術が使用できる。また言うまでもなく、実施形態の多くの機能的態様は、ハードウェア(一般に専用回路)またはソフトウェア(プログラムされたコントローラまたはプロセッサの何らかの態様による)で、実施形態に応じた設計上の制約と、処理高速化(それまでハードウェアに含まれていた機能のソフトウェアへの移行を促す)および集積密度の向上(それまでソフトウェアに含まれていた機能のハードウェアへの移行を促す)という技術トレンドとの関数として、選択的に実現できる。種々の実施形態における具体的な変形形態としては、パーティショニングの違い、フォームファクタおよびコンフィギュレーションの違い、使用するオペレーティングシステムおよび他のシステムソフトウェアの違い、使用するインターフェース規格、ネットワークプロトコル、または通信リンクの違いによる変形形態、ならびに本明細書で説明した概念の実施時、特定用途に関する独自の工学および業務上の制約に基づいて期待される他の変形形態などがあるが、これらに限定されるものではない。
以上の実施形態は、説明した実施形態の多くの態様について必要最低限の実施態様よりはるかに多くの詳細事項および環境的文脈を加えて説明したものである。当業者であれば、一部の実施形態では、本明細書に開示した構成要素または特徴を省略しても、残りの要素間の基本的な協動態様は変わらないことが理解できるであろう。したがって、開示した詳細事項の大部分については、説明した実施形態の種々の態様を実施(実装)しなくともよいことは言うまでもない。前記残りの要素が先行技術と区別可能である限り、省略された構成要素および特徴により本明細書で説明する概念が限定されることはない。
設計におけるそのようないかなる変形形態も、説明した実施形態で開示した内容に対する実質的な変更とはならない。また言うまでもなく、本明細書で説明した実施形態は他のコンピューティング用途およびネットワーキング用途に広い応用性を有し、説明した実施形態の特定の応用または産業に限定されない。このように、本発明は、当該交付済み特許の請求範囲内で、考えられるすべての変更(修正)形態および変形形態を含むものと解釈されるべきである。

Claims (15)

  1. システムであって、
    各々前記システムの内部に供えられた複数の物理的記憶装置と複数のポートを備える物理的スイッチ部分とを有する物理的構成要素を有するストレージサブシステムと、
    専用ポイントツーポイントリンクを介して前記複数のポートのうち専用ポートに連結されたホストと
    を有し、
    各物理的記憶装置は、
    少なくとも1つのストレージ領域と
    前記システム内におけるピアツーピア接続を介して前記複数のポートの各ポートに連結できる少なくとも1つのポートと、
    前記物理的記憶装置が、前記ストレージサブシステムの1若しくはそれ以上の一次エージェントおよび1若しくはそれ以上の二次エージェントのうちの少なくとも1つのエージェントとして動作することを可能にするエージェント論理であって、各一次エージェントは、ホストが開始したストレージアクセス要求を受け付け、サブ要求を生成し、且つサブステータスを蓄積することができ、各二次エージェントは、前記サブ要求のうち少なくとも1つを受け付け、前記サブステータスのうちの少なくとも1つを生成することができるものである、前記エージェント論理と
    を有し、
    前記ストレージサブシステムは、1若しくはそれ以上の論理記憶装置を動作させることができ、各論理記憶装置により、前記ホストは、前記一次エージェントのうちの1つの一次エージェントおよび前記二次エージェントのうちの少なくとも1つの二次エージェントに対応する前記物理的記憶装置にわたって分散されたストレージ領域の集約体に、単一の論理インターフェースを介してアクセスすることが可能となるものである
    システム。
  2. 請求項1記載のシステムにおいて、さらに、
    前記エージェント論理は、前記物理的記憶装置が、少なくとも一部の場合、前記一次エージェントのうちの少なくとも1つとして動作し、少なくとも一部の場合、前記二次エージェントのうちの少なくとも1つとして動作することを可能にする設定可能性(コンフィギュアビリティ)論理を有するものであるシステム。
  3. 請求項1記載のシステムにおいて、さらに
    前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントのうちの少なくとも1つ、および前記二次エージェントのうちの少なくとも1つとして、並行して動作することを可能にする並行性論理を有するものであるシステム。
  4. 請求項1記載のシステムにおいて、さらに、
    前記エージェント論理は、前記物理的記憶装置が、前記一次エージェントおよび前記二次エージェントのうちの1つの専用エージェントとして動作することを可能にする専用エージェント論理を有するものであるシステム。
  5. 請求項1記載のシステムにおいて、さらに、
    前記論理記憶装置のうちの第1の論理記憶装置は、前記一次エージェントのうちの少なくとも第1の一次エージェントと、1若しくはそれ以上の前記二次エージェントとを有し、
    前記物理的スイッチ部分は、前記第1の一次エージェントと各前記二次エージェントとの間で、ホストから遮蔽されたピアツーピア通信を可能にするものである
    システム。
  6. 方法であって、
    ホストに接続された装置内で、一次エージェントとして第1の記憶装置を動作させ、1若しくはそれ以上の二次エージェントとして少なくとも1つの前記装置内の第2の記憶装置を動作させる工程であって、前記一次および二次エージェントの各記憶装置は、それぞれ少なくとも1つのストレージ領域を有するものである、前記動作させる工程と、
    前記一次エージェントが論理インターフェースを提供する工程であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散されたストレージ領域の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストから送信され、前記一次エージェントにより受け付けれられるストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを含むものである、前記提供する工程と、
    前記一次エージェントが、1若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分にピアツーピア接続により転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される全体的なステータスの各々を算出する工程と、
    前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する工程と
    を有する方法。
  7. 請求項6記載の方法において、さらに、
    前記一次エージェントが、前記一次および二次エージェントの前記ストレージ領域に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する工程と、
    前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する工程と、
    前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ領域に相当する部分を除外した各々の記憶容量を報告する工程と
    を有するものである方法。
  8. 請求項6記載の方法において、さらに、
    前記ホストが記憶容量について前記二次エージェントのうち特定の1つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する工程を有するものである方法。
  9. 請求項6記載の方法において、さらに、
    ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する工程
    を有し、
    前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスを有するものである
    方法。
  10. 請求項9記載の方法において、
    前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して冗長性情報を交換する工程を有するものである方法。
  11. ホストに接続された装置であって、
    一次エージェントとして第1の記憶装置を動作させ、1若しくはそれ以上の二次エージェントとして少なくとも第2の記憶装置を動作させる手段であって、前記一次および二次エージェントの各記憶装置は、前記装置内にあって互いにピアツーピア接続され、それぞれ少なくとも1つのストレージ領域を有するものである、前記動作させる手段と、
    前記一次エージェントが論理インターフェースを提供する手段であって、この論理インターフェースは、前記ホストが、前記一次エージェントおよび二次エージェントの前記記憶装置にわたって分散されたストレージ領域の集約体に、一単位の論理装置としてアクセスすることを可能にし、当該論理インターフェースを介した一次エージェントの前記ホストとの通信は、前記ホストから送信され、前記一次エージェントにより受け付けられたストレージアクセス要求と、前記一次エージェントにより前記ホストへ送信される全体的なステータスとを有するものである、前記提供する手段と、
    前記一次エージェントが、1若しくはそれ以上のサブ要求として受け付けられた各要求を前記二次エージェントの全部または任意部分に転送し、前記サブ要求の転送先である前記二次エージェントから、前記サブ要求に関連付けられたサブステータスを受け付け、少なくとも前記サブステータスに基づいて送信される各全体的なステータスを算出する手段と、
    前記二次エージェントの全部または任意部分が、前記サブ要求を受け付け、前記サブ要求のホストコンテキストのアドレス指定情報をローカルコンテキストのアドレス指定情報に変換し、前記ローカルコンテキストのアドレス指定情報に少なくとも部分的に基づいてローカルストレージにアクセスし、前記一次エージェントに前記サブステータスを提供する手段と
    を有する装置。
  12. 請求項11記載の装置において、さらに、
    前記一次エージェントが、前記一次および二次エージェントの前記ストレージ領域に少なくとも部分的に基づいて、前記一単位の論理装置の集約記憶容量を決定する手段と、
    前記ホストが記憶容量について前記一単位の論理装置にクエリーを実行した場合、それに応答して前記一次エージェントが前記集約記憶容量を報告する手段と、
    前記ホストが記憶容量について前記二次エージェントにクエリーを実行した場合、それに応答して、各前記二次エージェントが、前記集約記憶容量における当該二次エージェントのストレージ領域に相当する部分を除外した各々の記憶容量を報告する手段と
    を有する装置。
  13. 請求項11記載の装置において、さらに、
    前記ホストが記憶容量について前記二次エージェントのうち特定の1つの二次エージェントにクエリーを実行した場合、それに応答して、当該特定の二次エージェントが、前記一次エージェントにより決定される前記集約記憶容量において当該特定の二次エージェントにより実装されたストレージに相当する部分を除外した特定の記憶容量を報告する手段を有するものである装置。
  14. 請求項11記載の装置において、さらに、
    ピアツーピアプロトコルに基づいて、一次エージェントの前記二次エージェントとの通信の少なくとも一部を実行する手段
    を有し、
    前記一次エージェントの前記二次エージェントとの通信は、少なくとも前記サブ要求と、前記一次エージェントと前記二次エージェントとの間で交換される前記サブステータスとを有するものである
    装置。
  15. 請求項14記載の装置において、
    前記一次エージェントの前記二次エージェントとの通信は、さらに、ピアツーピアプロトコルを介して交換される冗長性情報を有するものである装置。
JP2013515573A 2010-06-18 2011-06-17 スケーラブルな記憶装置 Expired - Fee Related JP5957647B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US35644310P 2010-06-18 2010-06-18
US61/356,443 2010-06-18
US201161497525P 2011-06-16 2011-06-16
US61/497,525 2011-06-16
PCT/US2011/040996 WO2011160094A2 (en) 2010-06-18 2011-06-17 Scalable storage devices

Publications (3)

Publication Number Publication Date
JP2013532339A JP2013532339A (ja) 2013-08-15
JP2013532339A5 JP2013532339A5 (ja) 2014-08-07
JP5957647B2 true JP5957647B2 (ja) 2016-07-27

Family

ID=45348918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013515573A Expired - Fee Related JP5957647B2 (ja) 2010-06-18 2011-06-17 スケーラブルな記憶装置

Country Status (7)

Country Link
US (3) US8677068B2 (ja)
EP (1) EP2583184A4 (ja)
JP (1) JP5957647B2 (ja)
KR (2) KR101466592B1 (ja)
CN (2) CN104166441B (ja)
TW (1) TWI475379B (ja)
WO (1) WO2011160094A2 (ja)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
WO2013101209A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Thin translation for system access of non volatile semicondcutor storage as random access memory
US9875001B2 (en) * 2012-08-26 2018-01-23 Avaya Inc. Network device management and visualization
US9501437B2 (en) * 2012-11-15 2016-11-22 Empire Technology Development Llc Scalable storage system having multiple storage channels
US9122515B2 (en) 2012-12-19 2015-09-01 Dell Products L.P. Completion notification for a storage device
CN103902472B (zh) * 2012-12-28 2018-04-20 华为技术有限公司 基于内存芯片互连的内存访问处理方法、内存芯片及系统
US9720627B2 (en) * 2013-01-17 2017-08-01 Western Digital Technologies, Inc. Data management for a data storage device
TWI614670B (zh) * 2013-02-12 2018-02-11 Lsi公司 連鎖且可擴展之儲存系統及在一連鎖且可擴展之儲存系統中存取資料之方法
US9348537B2 (en) * 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories
BR112016009230B1 (pt) 2013-11-27 2022-07-26 Intel Corporation Sistema de computador, módulo de memória multiportas e método de manutenção para arquitetura de servidor
US10067829B2 (en) 2013-12-13 2018-09-04 Intel Corporation Managing redundancy information in a non-volatile memory
US9430599B2 (en) * 2014-02-18 2016-08-30 Optima Design Automation Ltd Determining soft error infliction probability
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
WO2015128976A1 (ja) * 2014-02-27 2015-09-03 三菱電機株式会社 データ記憶装置
KR102318478B1 (ko) * 2014-04-21 2021-10-27 삼성전자주식회사 스토리지 컨트롤러, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
KR101512181B1 (ko) * 2014-04-23 2015-04-16 주식회사 백프로 내부 저장모듈을 구비한 sas 데이터 컨버팅 시스템
US8868825B1 (en) * 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
KR101459750B1 (ko) * 2014-07-15 2014-11-13 주식회사 백프로 안정성을 개선한 sas 데이터 컨버팅 시스템
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
KR102173089B1 (ko) 2014-08-08 2020-11-04 삼성전자주식회사 인터페이스 회로 및 그것의 패킷 전송 방법
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9558125B2 (en) 2014-10-27 2017-01-31 Sandisk Technologies Llc Processing of un-map commands to enhance performance and endurance of a storage device
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
CN104486384A (zh) * 2014-11-28 2015-04-01 华为技术有限公司 一种存储系统及交换扩展装置
US20160202924A1 (en) * 2015-01-13 2016-07-14 Telefonaktiebolaget L M Ericsson (Publ) Diagonal organization of memory blocks in a circular organization of memories
US10912428B2 (en) * 2015-02-12 2021-02-09 Visibelle Derma Institute, Inc. Tip for skin cleansing device
US9647697B2 (en) 2015-03-16 2017-05-09 Sandisk Technologies Llc Method and system for determining soft information offsets
US9772796B2 (en) * 2015-04-09 2017-09-26 Sandisk Technologies Llc Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address
US9864545B2 (en) 2015-04-14 2018-01-09 Sandisk Technologies Llc Open erase block read automation
US9753653B2 (en) 2015-04-14 2017-09-05 Sandisk Technologies Llc High-priority NAND operations management
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US10223000B2 (en) * 2015-05-21 2019-03-05 International Business Machines Corporation Data compression for grid-oriented storage systems
US9870149B2 (en) 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US9715939B2 (en) 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US10108377B2 (en) 2015-11-13 2018-10-23 Western Digital Technologies, Inc. Storage processing unit arrays and methods of use
TWI597953B (zh) * 2015-11-25 2017-09-01 財團法人工業技術研究院 具故障轉移能力的快速周邊元件互連網路系統與操作方法
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
EP3261302B1 (en) * 2016-04-29 2020-01-15 Huawei Technologies Co., Ltd. Storage network element discovery method and device
US20170329640A1 (en) * 2016-05-10 2017-11-16 HGST Netherlands B.V. Systems and methods for designating storage processing units as communication hubs and allocating processing tasks in a storage processor array
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
KR102631351B1 (ko) * 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
US11216194B2 (en) 2016-10-19 2022-01-04 Aliane Technologies Corporation Memory management system and method thereof
US20180107392A1 (en) * 2016-10-19 2018-04-19 Aliane Technologies Co., Memory management system and method thereof
US10628196B2 (en) * 2016-11-12 2020-04-21 Vmware, Inc. Distributed iSCSI target for distributed hyper-converged storage
CN108614746A (zh) * 2016-12-09 2018-10-02 中国移动通信有限公司研究院 一种数据处理方法及其系统、服务器
US10255134B2 (en) * 2017-01-20 2019-04-09 Samsung Electronics Co., Ltd. Control plane method and apparatus for providing erasure code protection across multiple storage devices
US10860508B2 (en) * 2017-05-25 2020-12-08 Western Digital Technologies, Inc. Offloaded disaggregated storage architecture
US10430333B2 (en) 2017-09-29 2019-10-01 Intel Corporation Storage system with interconnected solid state disks
US10608951B2 (en) * 2017-09-30 2020-03-31 Oracle International Corporation Live resegmenting of partitions in distributed stream-processing platforms
DE102018125297A1 (de) 2017-11-17 2019-05-23 Samsung Electronics Co., Ltd. Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt
US10419265B2 (en) 2017-11-29 2019-09-17 Bank Of America Corporation Request processing system using a combining engine
KR102446733B1 (ko) 2017-11-30 2022-09-23 삼성전자주식회사 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치
CN108365926A (zh) * 2018-01-17 2018-08-03 北京和利时智能技术有限公司 一种新型冗余系统
US10740181B2 (en) 2018-03-06 2020-08-11 Western Digital Technologies, Inc. Failed storage device rebuild method
US10860446B2 (en) 2018-04-26 2020-12-08 Western Digital Technologiies, Inc. Failed storage device rebuild using dynamically selected locations in overprovisioned space
US10929319B2 (en) * 2018-05-11 2021-02-23 Seagate Technology Llc Data storage device with front end bus
KR102570581B1 (ko) 2018-06-07 2023-08-24 삼성전자 주식회사 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템
KR102471219B1 (ko) 2018-06-30 2022-11-25 후아웨이 테크놀러지 컴퍼니 리미티드 NVMe 기반의 데이터 판독 방법, 장치, 및 시스템
US10725941B2 (en) 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices
US10409511B1 (en) * 2018-06-30 2019-09-10 Western Digital Technologies, Inc. Multi-device storage system with distributed read/write processing
EP3792743A4 (en) 2018-06-30 2021-06-30 Huawei Technologies Co., Ltd. NVME-BASED DATA WRITING PROCESS, DEVICE AND SYSTEM
US10831603B2 (en) 2018-08-03 2020-11-10 Western Digital Technologies, Inc. Rebuild assist using failed storage device
US10649843B2 (en) * 2018-08-03 2020-05-12 Western Digital Technologies, Inc. Storage systems with peer data scrub
US10824526B2 (en) * 2018-08-03 2020-11-03 Western Digital Technologies, Inc. Using failed storage device in peer-to-peer storage system to perform storage-centric task
US10901848B2 (en) 2018-08-03 2021-01-26 Western Digital Technologies, Inc. Storage systems with peer data recovery
US10592144B2 (en) 2018-08-03 2020-03-17 Western Digital Technologies, Inc. Storage system fabric with multichannel compute complex
US11061604B2 (en) 2018-09-28 2021-07-13 Infortrend Technology, Inc. Method and storage system architecture for accessing data by means of a compatible module
EP3857859B1 (en) 2018-11-16 2023-07-19 VMWare, Inc. Active-active architecture for distributed iscsi target in hyper-converged storage
US11182258B2 (en) 2019-01-04 2021-11-23 Western Digital Technologies, Inc. Data rebuild using dynamic peer work allocation
JP6942163B2 (ja) * 2019-08-06 2021-09-29 株式会社日立製作所 ドライブボックス、ストレージシステム及びデータ転送方法
US20210042255A1 (en) * 2019-08-09 2021-02-11 Sony Interactive Entertainment LLC Methods for Using High-Speed Data Communication Fabric to Enable Cross-System Command Buffer Writing for Data Retrieval in Cloud Gaming
KR20210087628A (ko) 2020-01-03 2021-07-13 삼성전자주식회사 네트워크 기반 스토리지 장치의 구동 방법 및 이를 이용한 스토리지 시스템의 구동 방법
US11507409B2 (en) 2020-01-22 2022-11-22 Vmware, Inc. Object-based load balancing approaches in distributed storage system
US11500667B2 (en) 2020-01-22 2022-11-15 Vmware, Inc. Object-based approaches to support internet small computer system interface (ISCSI) services in distributed storage system
US11316917B2 (en) 2020-03-04 2022-04-26 Samsung Electronics Co., Ltd. Methods and apparatus for peer-to-peer data channels for storage devices
US11734131B2 (en) * 2020-04-09 2023-08-22 Micron Technology, Inc. Memory device having redundant media management capabilities
US11372785B2 (en) * 2020-05-06 2022-06-28 Microsoft Technology Licensing, Llc Local non-volatile memory express virtualization device
US11468169B1 (en) 2021-04-28 2022-10-11 Dell Products L.P. Dark storage support for as-a-service model
US20230110067A1 (en) * 2021-10-07 2023-04-13 Samsung Electronics Co., Ltd. Systems, methods, and devices for near storage elasticity
US11734207B1 (en) * 2022-02-02 2023-08-22 Western Digital Technologies, Inc. Dynamic port allocation in PCIe bifurcation system
US11983428B2 (en) * 2022-06-07 2024-05-14 Western Digital Technologies, Inc. Data migration via data storage device peer channel
US12019917B2 (en) 2022-06-27 2024-06-25 Western Digital Technologies, Inc. Peer RAID control among peer data storage devices
CN117687889B (zh) * 2024-01-31 2024-04-05 苏州元脑智能科技有限公司 一种内存扩展设备的性能测试装置及方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304980B1 (en) * 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US6442709B1 (en) * 1999-02-09 2002-08-27 International Business Machines Corporation System and method for simulating disaster situations on peer to peer remote copy machines
US6654831B1 (en) * 2000-03-07 2003-11-25 International Business Machine Corporation Using multiple controllers together to create data spans
US20040103163A1 (en) * 2002-11-27 2004-05-27 Hao-Hsing Lin Serial bus disk extender and portable storage device
US7174433B2 (en) * 2003-04-03 2007-02-06 Commvault Systems, Inc. System and method for dynamically sharing media in a computer network
US7574529B2 (en) * 2004-06-22 2009-08-11 International Business Machines Corporation Addressing logical subsystems in a data storage system
TWI274353B (en) * 2005-02-21 2007-02-21 Transcend Information Inc Flash disk with expansion capacity, stackable mobile storage device and control circuit thereof
JP4990505B2 (ja) * 2005-04-04 2012-08-01 株式会社日立製作所 記憶制御装置及びストレージシステム
WO2007014296A2 (en) * 2005-07-25 2007-02-01 Parascale, Inc. Scalable distributed file storage access and management
WO2007024740A2 (en) * 2005-08-25 2007-03-01 Silicon Image, Inc. Smart scalable storage switch architecture
TWI286690B (en) * 2005-08-29 2007-09-11 Via Tech Inc Expanded structure of peripheral storage device having a connector port multiplier
TWI285304B (en) * 2005-10-20 2007-08-11 Quanta Comp Inc Extendable storage apparatus for blade server system
US7685227B2 (en) * 2006-11-10 2010-03-23 Gerber Robert H Message forwarding backup manager in a distributed server system
JP2009175824A (ja) * 2008-01-22 2009-08-06 Hitachi Ltd メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法
US8090907B2 (en) * 2008-07-09 2012-01-03 International Business Machines Corporation Method for migration of synchronous remote copy service to a virtualization appliance
US8234470B2 (en) * 2009-08-25 2012-07-31 International Business Machines Corporation Data repository selection within a storage environment

Also Published As

Publication number Publication date
CN103080917A (zh) 2013-05-01
US9116624B2 (en) 2015-08-25
TWI475379B (zh) 2015-03-01
CN104166441A (zh) 2014-11-26
KR101466592B1 (ko) 2014-12-01
WO2011160094A2 (en) 2011-12-22
US20130086336A1 (en) 2013-04-04
CN104166441B (zh) 2018-05-11
US20130159622A1 (en) 2013-06-20
TW201214105A (en) 2012-04-01
WO2011160094A3 (en) 2012-04-26
EP2583184A4 (en) 2014-07-09
CN103080917B (zh) 2014-08-20
US20140258598A1 (en) 2014-09-11
US8677068B2 (en) 2014-03-18
KR20140107487A (ko) 2014-09-04
KR20130055632A (ko) 2013-05-28
EP2583184A2 (en) 2013-04-24
KR101491484B1 (ko) 2015-02-10
JP2013532339A (ja) 2013-08-15

Similar Documents

Publication Publication Date Title
JP5957647B2 (ja) スケーラブルな記憶装置
US10445018B2 (en) Switch and memory device
US10509731B1 (en) Methods and apparatus for memory tier page cache coloring hints
US9740409B2 (en) Virtualized storage systems
JP5833756B2 (ja) 二重化共有メモリアクセス方法と二重化共有メモリアクセス方法を用いたストレージ装置
US20070067432A1 (en) Computer system and I/O bridge
JP2015532985A (ja) 大規模なデータ記憶および受け渡しシステム
US20090307435A1 (en) Distributed Computing Utilizing Virtual Memory
WO2015080690A1 (en) Method and apparatus for storing data
US11409454B1 (en) Container ownership protocol for independent node flushing
KR20210075038A (ko) 분산형 블록 저장시스템, 방법, 장치, 장비와 매체
US11809720B2 (en) Techniques for storage management
US8893160B2 (en) Block storage interface for virtual memory
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
US20230280917A1 (en) Storage system and method of operating the same
CN116401043A (zh) 一种计算任务的执行方法和相关设备
US11201788B2 (en) Distributed computing system and resource allocation method
Choi et al. A scale-out enterprise storage architecture
US20240126469A1 (en) Apparatus and method for controlling a pooled memory device or a memory expander
US12112074B2 (en) Maintaining quality of service of non-volatile memory devices in heterogeneous environment
US20240345770A1 (en) Exclusive ownership of logical address slices and associated metadata
JP2015043226A (ja) ストレージシステム及びストレージシステムのデータ転送方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150630

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150930

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151029

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160329

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20160427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160608

R150 Certificate of patent or registration of utility model

Ref document number: 5957647

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees