JP7311280B2 - 格納システム及びそのホスト格納ドライブ並びにデータ格納方法 - Google Patents

格納システム及びそのホスト格納ドライブ並びにデータ格納方法 Download PDF

Info

Publication number
JP7311280B2
JP7311280B2 JP2019043503A JP2019043503A JP7311280B2 JP 7311280 B2 JP7311280 B2 JP 7311280B2 JP 2019043503 A JP2019043503 A JP 2019043503A JP 2019043503 A JP2019043503 A JP 2019043503A JP 7311280 B2 JP7311280 B2 JP 7311280B2
Authority
JP
Japan
Prior art keywords
host
memory
storage
drive
data
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.)
Active
Application number
JP2019043503A
Other languages
English (en)
Other versions
JP2019175445A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019175445A publication Critical patent/JP2019175445A/ja
Application granted granted Critical
Publication of JP7311280B2 publication Critical patent/JP7311280B2/ja
Active 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/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
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or 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/0656Data buffering arrangements
    • 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/0658Controller construction arrangements
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Automatic Disk Changers (AREA)
  • Vehicle Body Suspensions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、アレイを形成するソリッドステートドライブに関し、特に、アレイ内でソリッドステートドライブを自律的に管理するメカニズムを有する格納システム及びそのホスト格納ドライブ並びにデータ格納方法に関する。
近年エンタープライズ用のデータ格納システムは、相当な量の重要なデータを格納する。
このようなデータは、格納装置の故障の結果としてデータ損失することを防止する保護手段を必要とする。
通常、1つ以上の制御エンティティー(entity:実体)がこのような目標を達成する複数の保護方法を実行する。
このようなエンティティー(実体)は、通常、格納サーバーユニット中央処理部(CPU)である。
格納装置の観点から、格納サーバーCPUは、監督する方式によって、格納及び保護方法を遂行し、格納装置は厳格に従属された装置に参与する。
例示的に、制御エンティティーは、通常的に方策基盤基準(policy-based criteria)を利用して、どのデータがそれらの制御の下で、どの従属された格納装置に格納されるかを判断する。
CPU及び格納装置の間の伝送活動は、ネットワークリソースの使用のみならず、データ伝送経路に対応する少なくともローカルCPUキャッシュ及びダイナミックランダムアクセスメモリ(DRAM)を伴う。
したがって、このようなCPU-制御データ保護方法を実行することは、通常的に複数の格納サーバーリソースを消費する。
データ伝送でのCPU参与は、CPUキャッシュ汚染、重大なDRAM使用、同期化ソフトウェア業務負荷、そして追加的なプロセシングの結果としてレイテンシを誘発する可能性がある。
一方、格納装置は、しばしば利用可能な使用されないリソース及び能力を有する。
例えば、ソリッドステートドライブ(SSD)、特に不揮発性メモリエクスプレス(NVMe)SSDは、他の機能のために使用される相対的に大量のDRAMを有する。
例えば、NVMeSSDのためのDRAMは、読出し/書込みバッファを提供するのに使用され、内部SSDメタデータ格納のために使用され、そして制御メモリバッファを提供するのに使用される。
制御メモリバッファは、入力/出力(I/O)メモリ待機列、データバッファ等のためにSSDがホストに公開(exposure)するSSDのDRAMの部分である。
CPU又は他の制御エンティティーを必要とせずに、自律的なデータ格納及びデータ保護サービスを遂行することができる改善された格納装置及びドライブツードライブ(drive-to-drive)格納方法が要求されている。
また、格納装置の使用されないリソース及び能力を利用することができる改善された格納装置及びドライブツードライブ(drive-to-drive)格納方法が要求されている。
このような改善された格納装置及び格納方法は、データ保護及びバックアップに必要であるホストリソースの量を減少させることができる。
米国特許第9,817,607号明細書 米国特許出願公開第2014/0181435号明細書 米国特許出願公開第2015/0278246号明細書
本発明は上記従来のデータ格納システムにおける課題に鑑みてなされたものであって、本発明の目的は、CPU又は他の制御エンティティーを必要とせずに、自律的にデータ格納及びデータ保護サービスを実行することができる改善された格納システム及びそのホスト格納ドライブ並びにデータ格納方法を提供することにある。
また、本発明の他の目的は、格納装置の使用されないリソース及び能力の長所を採用することができる改善された格納システム及びそのホスト格納ドライブ並びにデータ格納方法を提供することにある。
上記目的を達成するためになされた本発明による格納システムは、ドライブツードライブ(drive-to-drive)格納システムであって、ホストCPUと、ホスト格納ドライブと、を含むホストサーバーと、1つ以上の遠隔格納ドライブと、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続するピアツーピア(Peer to Peer)リンクと、を有し、前記ホスト格納ドライブは、プロセッサ及びメモリを含み、前記メモリは、前記プロセッサによって実行される時、書込み命令を発行する前記ホストCPUの少なくとも一部に基づいて、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送するようにする命令を格納し、前記書込み命令は、前記ホスト格納ドライブから前記1つ以上の遠隔格納ドライブへの通知をトリガーするように構成され、前記1つ以上の遠隔格納ドライブは、メモリを含み、前記1つ以上の遠隔格納ドライブは、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリにメモリアクセス要求を発行するように構成され、前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内のメモリブロックの位置またはオフセットの内の少なくとも1つを含み、前記ホスト格納ドライブは、前記メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させ、前記1つ以上の遠隔格納ドライブによる前記メモリアクセス要求の完了に対しカウンタを減少させるように構成されることを特徴とする。
上記目的を達成するためになされた本発明によるホスト格納ドライブは、前記ホスト格納ドライブを1つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、プロセッサ及びメモリと、を有し、前記メモリは、前記プロセッサによって実行された時に、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送するようにする命令を格納し、前記ホスト格納ドライブは、通知を前記1つ以上の遠隔格納ドライブへ送信するように構成され、前記1つ以上の遠隔格納ドライブは、メモリを含み、前記1つ以上の遠隔格納ドライブは、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリにメモリアクセス要求を発行するように構成され、前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内のメモリブロックの位置またはオフセットの内の少なくとも1つを含み、前記ホスト格納ドライブは、前記メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させ、前記1つ以上の遠隔格納ドライブによる前記メモリアクセス要求の完了に対しカウンタを減少させるように構成されることを特徴とする。
上記目的を達成するためになされた本発明によるデータ格納方法は、ドライブツードライブ格納システムを用いてデータを格納する方法であって、前記ドライブツードライブ格納システムは、ホストCPUと、プロセッサ及びメモリを含むホスト格納ドライブと、を含むホストサーバーと、1つ以上の遠隔格納ドライブと、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、を有し、前記データを格納する方法は、データを前記ホスト格納ドライブに書き込むための書込み命令を開始する段階と、直接メモリアクセスを用いて前記データを前記ホスト格納ドライブの前記メモリに伝送する段階と、前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送する段階と、を有し、前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送する段階は、前記データに関する情報を提供するために、前記ホスト格納ドライブから前記1つ以上の遠隔格納ドライブへの通知をトリガーする段階と、ここで、前記1つ以上の遠隔格納ドライブは、メモリを含み、前記ホスト格納ドライブによって、メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させる段階と、前記1つ以上の遠隔格納ドライブによって、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリへの直接メモリアクセス要求を発行する段階と、前記ホスト格納ドライブによって、前記1つ以上の遠隔格納ドライブによる前記直接メモリアクセス要求の完了に対しカウンタを減少させる段階と、を含み、前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内の前記メモリブロックの位置またはオフセットの内の少なくとも1つを含むことを特徴とする。

本発明に係る格納システム及びそのホスト格納ドライブ並びにデータ格納方法によれば、自律的にデータ格納及びデータ保護サービスを実行することができ、また、格納装置の使用されないリソース及び能力の長所を採用することによって、データ保護及びバックアップに必要であるホストリソースの量を減らすことができるという効果がある。
データ保護のためのCPU制御システムを説明するための概略図である。 本発明の実施形態に係るドライブツードライブ格納システムを説明するための概略図である。 格納システム内の格納ドライブが専用ポート又は再プログラムされたスイッチポートを通じて接続された図2の他の実施形態を説明するための概略図である。 本発明の実施形態に係るホスト格納ドライブの概略構成を示す概略図である。 図2又は図3のドライブツードライブ格納システムを用いてデータを格納するための方法を説明するためのブロック図である。
次に、本発明に係る格納システム及びそのホスト格納ドライブ並びにデータ格納方法を実施するための形態の具体例を図面を参照しながら説明する。
類似の参照符号は全体的に類似は要素を示す。
しかし、本発明は多様な他の形態で具現されることができ、ここに説明された実施形態のみに限定されることと看做されてはならない。
一方、このような実施形態は、この記載がさらに徹底であり、完全になり、そして本発明の側面及び特徴をこの分野に熟練された者に完全に伝達する例として提供される。
したがって、本発明の側面及び特徴の完全な理解のためにこの分野に通常的な技術を有する者に必須的ではないプロセス、要素、そして技術は説明されないこともある。
別途、言及されなければ、添付された図面及び記載された説明全体で類似の参照符号は類似の要素を指し、したがってそれらの説明は繰り返さない。
図面で、要素、階層、及び領域の相対的なサイズは、明確性のために強調することができる。
1つの要素又は階層が他の1つの要素又は階層の“上にある”、“接続された”又は“結合された”ことと参照される時、1つの要素又は階層は他の要素又は階層の直接上にあるか、直接接続させるか、又は直接結合されることができ、又は1つ以上の介している要素又は階層が存在することができる。
また、1つの要素又は階層が2つの要素又は階層の間にあることと参照される時、1つの要素は2つの要素又は階層の間の唯一の要素又は階層であり、又は1つ以上の介している要素又は階層もまた存在することができる。
ここに使用される用語は、特定の実施形態のみを説明する目的のためのものであり、本発明を制限することを意図しない。
ここで使用するように、文脈が明確に相違を示さない限り、単数形は複数形をまた含むことを意図する。
詳細な説明で使用される時に、“含む”、“包含する”の用語は言及された特徴、整数、段階、動作、要素、及び/又は構成要素の存在を明示し、1つ以上の特徴、整数、段階、動作、要素、構成要素、及び/又はこれらのグループの存在又は追加を排除しない。
ここで使用するように、“及び/又は”の用語は1つ以上の関連して羅列された項目の任意の、そしてすべての組み合わせを含む。
要素の目録に先行する時に、“少なくとも1つの”のような表現は要素の全体目録を変更し、目録の個別要素を変更しない。
本発明の実施形態を説明する時に、“することができる”の使用は“本発明の1つ以上の実施形態”を参照する。
ここで使用するように、“使用する”、“使う”、そして“使用された”の用語は“活用する”、“活用する”、そして“活用された”の用語と類意語として看做される。また、“模範的な”の用語は例又は事例を参照することを意図する。
ここに記載した本発明の実施形態に係る電子又は電気装置、及び/又は任意の他の関連された装置又は構成要素は適切なハードウェア、ファームウェア(例えば、応用固有の集積回路)、ソフトウェア又はソフトウェア、ファームウェア、そしてハードウェアの組み合わせを利用して具現することができる。
例えば、このような装置の多様な構成要素は、1つの集積回路(IC)チップに又は別のICチップに形成することができる。
また、このような装置の多様な構成要素は、柔軟印刷回路フィルム、テープキャリヤーパッケージ(TCP)、印刷回路基板(PCB)に具現されるか、又は1つの基板の上に形成することができる。
また、このような装置の多様な構成要素は、1つ以上のコンピューティング装置でコンピュータプログラム命令を実行し、そしてここに記述された多様な機能を遂行するために他のシステム構成要素と相互作用する1つ以上のプロセッサによって実行されるプロセス又はスレッドである。
コンピュータプログラム命令は、例えばランダムアクセスメモリ(RAM)のような標準メモリ装置を利用してコンピューティング装置で具現することができるメモリに格納される。
コンピュータプログラム命令は、また、例えばCD-ROM、フラッシュドライブ等のような他の非一時的(non-transitory)コンピュータ読出し可能媒体に格納することができる。
また、この分野に熟練された者は、本発明の模範的な実施形態の思想及び範囲から逸脱することなく、多様なコンピューティング装置の機能が単一コンピューティング装置に組み合わされる又は集積されることができ、又は特定なコンピューティング装置の機能が1つ以上のコンピューティング装置に亘って分散されることを理解されなければならない。
別途に定義されない限り、ここで使用するすべての用語(技術的及び科学的用語を含んで)は本発明が属する分野に通常的な技術を有する者によって通常的に理解されることと同一である意味を有する。
共通に使用される辞書に定義されたような用語は、関連した分野及び/又は本明細書の脈絡でそれらの意味と一致する意味を有することと解釈されなければならなく、ここにこのように明確に定義されなければ、理想化されるか、或いは過度に形式的な意味として解釈されなければならないことが理解されるべきである。
本発明の実施形態は、格納装置としてホストCPUに対する自分の接続性を認識し、そして1つ以上の格納装置に対する自分の接続性を認識する格納装置(例えば、ホスト格納装置)を含む。
ホスト格納装置の実施形態は、1つ以上の格納装置へのデータの直接ピアツーピア伝送を開示して、方策基盤(policy-based)自律データ伝送サービスを提供することができる。
これはホストCPUが追加的なI/Oを遂行して複製(replication)及び他のデータ保護サービスをホスト格納装置に提供することを効果的にオフロードし(offload)、ホストCPU演算要求を減らし、そしてデータ伝送で減少された格納サーバーCPU参与による格納システムレイテンシを低くする。
一部の実施形態は、特定の格納プロトコルをCPUツーSSD方法から格納装置のSSDツーSSD方法にオフロードする。
追加的な実施形態は、元の格納装置を格納装置販売者(又は、供給業者、製造業者)-定義(vendor-defined)の方法、あるいは、プライベートな方法として定義する機会を提供する。
また、追加的な実施形態は、プッシュ又はプルモデルがデータ保護目的のための格納装置の間の書込みトラフィックを同期化することができるようにする格納装置を含む。
図1は、格納サーバーのCPUがデータの格納を制御するデータ保護のためのCPU制御システムを説明するための概略図である。
図1で、ノード(10、20、30)は、格納サーバーである。
各ノード(10、20、30)は、CPU(11、21、31)、DRAM(13、23、33)、そして1つ以上の格納ドライブ(12、22、32)を含む。
1つ以上の格納ドライブ(12、22、32)がデュアルポート格納装置であれば、1つ以上の格納ドライブ(12、22、32)は、PCIeスイッチファブリック、ネットワークファブリック、又は他の適切なコネクターのような2次ポートを通じてそれらの各々のCPU(11、21、31)と接続される。
データを格納するために、ノード10のCPU11は、ノード10のローカルドライブ12に書込み命令を発行する。
格納されるデータは、ローカルドライブ12に格納される前にノード10のローカルDRAM13に先にキャッシュされる。
ローカルドライブ12への格納と共に、ノード10のCPU11は、ノード20の遠隔ドライブ22への同一のデータの書き込みを開始して方策基盤(policy-based)複製要求を満足させることができる。
ノード10のCPU11は、ノード20のCPU21を初期化してデータを格納する。
CPU11は、CPU21を通じてドライブ22に書込み命令を発行する。
データはローカルドライブ22に格納される前にノード20のローカルDRAM23に先にキャッシュされる。
他の実施形態で、2次書込みは、ノード20のCPU21が関与しないデュアルポートドライブで構成することができる。
また、ノード10のCPU11は、データをノード30の追加ドライブにコミットすることができる。
CPU11は、ノード30のCPU31を開始し、CPU11はノード20に対する時と同一のプロセスにしたがって、CPU31を通じてデータをローカルドライブ32に書き込む。
図1にしたがうプロセスで、ノード(サーバー)のCPU(11、21、31)は、データ伝送を調整する。
したがって、伝送活動は、データ伝送経路にしたがってローカルCPUキャッシュ及びDRAMを関与させ、多様なローカルドライブに亘った格納のためのCPU能力使用を必要とする。
また、多様なノードにわたってデータの格納を同期化するために追加的なソフトウェアが必要となる可能性がある。
例えば、格納サーバーソフトウェアは、同期式及び非同期式機能を提供するために複製プロセスの両終端を調整することができる。
図2は、本発明の実施形態に係るドライブツードライブ格納システムを説明するための概略図である。
図2で、ノードは格納サーバー(100、200、300)である。
各ノード(100、200、300)は、CPU(110、210、310)、DRAM(130、230、330)、そして1つ以上の格納ドライブ(120、220、330)を含む。
一部の実施形態で、1つ以上の格納ドライブ(120、220、320)は、SSDである。
追加的な実施形態で、1つ以上の格納ドライブ(120、220、320)は、NVMeSSDである。
一部の実施形態で、CPU(210、310)及びDRAM(230、330)は、省略することができ、ノード(200、300)は、格納ドライブ(220、320)のみを含むことができる。
1つ以上の格納ドライブ(120、220、320)は、例えば、格納ドライブ(120、220、320)がデュアルポート格納装置であれば、PCIeスイッチファブリック、ネットワークファブリック、又は他の適切なコネクターのような2次ポートを通じてそれらの各々のCPU(110、210、310)と接続される。
また、格納ドライブ(120、220、320)は、格納ドライブ(120、220、320)がピアツーピアで接続されるPCIe直接構成、スイッチファブリック構成、又は任意の他の構成で互いに接続される。
一部の実施形態で、格納ドライブ(120、220、320)は、専用ポート又は再プログラムされたスイッチポートを通じて互いに接続され得る。
格納ドライブ(120、220、320)は、現存するプロトコル又は販売者(又は、供給業者、製造業者、以下、販売者で記す)固有の具現を利用して通信することができる。
以下で説明するように、ピアツーピア構成の一部として、このような接続及び通信プロトコルは、直接メモリアクセス(DMA)要請及び格納ドライブ(120、220、320)の間の同期化を実行できるようにする。
格納ドライブ(120、220、320)は、ピアツーピア接続性のために構成された追加的な構成オプションを含むことができる。
このような構成制御経路の例は、ゲット(get)、又はセット(set)「ログ_ペイジ」(log_page)(peer_config)である。
これはピアツーピアロジックのために特別に定義された新しいログページである。
一部の実施形態で、現存する、広く公知され、標準化されたログページである、SMARTログページが使用することができる。
ピアツーピア構成の一部として、接続及び通信プロトコルは、格納ドライブ(120、220、320)が互いに通信するようにし、デュアルモードに構成されるようにし、データ伝送を可能するようにするハードウェアリソースを共有するようにし、そして一部の実施形態で、販売者固有の伝送(transport)及びシグナリング(signaling)メカニズムを提供するようにすることができる。
図3は、格納ドライブが専用ポート又は再プログラムされたスイッチポートを通じて接続された図2の他の実施形態を説明するための概略図である。
この構成で、遠隔格納ドライブ(220、320)は、図2では別途のCPU(例えば、210、310)に接続されるが、図3に示すように、別途のCPUを有する必要はない(格納ドライブ(220、320)は、ホストCPUに直接接続されなく、代わりにそれら各々のCPU(220、320)を通じて、又は格納ドライブ120のような他の格納ドライブを通じてホストCPU110と接続されるので、格納ドライブ(220、320)は、また、遠隔格納ドライブとも称される)。
この実施形態で、格納サーバー100は、格納サーバー100をホスト格納ドライブ120と接続されたスイッチ150に接続するルートコンプレックス装置140を含む。
スイッチ150は、また、格納ドライブ(220、320)に各々接続されたスイッチ250、350に接続される。
スイッチ(150、250、350)は、PCIeスイッチ又は他の適切な専用の、又は再プログラムされたスイッチポートである。
スイッチ(150、250、350)は、例えば、PCIeスイッチが使用されれば、アクセス制御サービス(ACS)又は適切な通信プロトコルを支援して格納ドライブ(120、220、320)が互いに通信し、そしてデータ伝送のためのハードウェアリソースを共有するようにする。
例えば、スイッチ(150、250、350)がネットワークファブリック構成内のネットワークスイッチであれば、格納ドライブ(120、220、320)は、PCIeの代わりにネットワークプロトコルを通じて互いに直接付着されたネットワークである。
このような実施形態で、同期化のためのメモリアクセスは、マッピングされた(mapped)ネットワークメモリである。
一旦、ピアツーピアリンクに接続されれば、図2及び図3の格納ドライブ(120、220、320)は、通信して方策基盤(policy-based)データ伝送を実行することができる。
格納ドライブ(120、220、320)がデータを互いに直接伝送するので、これは、本質的に、格納ドライブ(120、220、320)間のサービス品質(QoS)チャンネルを生成する。
一実施形態で、CPU(110、210、310)は、トップダウン構成で格納ドライブ(120、220、320)間のピアツーピア接続を管理する。
例えば、各々の格納ドライブ(120、220、320)のためのCPU(110、210、310)は、ペアリング(pairing)のためにドライブのピアアクセスを管理することができる。
CPU(110、210、310)は、また、格納ドライブ(120、220、320)間の関連したスイッチ(150、250、350)をプログラムして、使用された通信プロトコル(例えば、PCIeスイッチが使用されれば、ACS)を通じてピアツーピア接続をするようにすることができる。
又は、格納ドライブ(120、220、320)がネットワーク(例えば、スイッチファブリック構成で)に存在すれば、CPU(110、210、310)は、ネットワークスイッチをプログラムしてピアツーピア接続をするようにすることができる。
一部の実施形態で、CPU110は、セット(set)「ログ_ペイジ」(log_page)(peer_config)命令を格納ドライブ(120、220、320)に使用して、格納ドライブ(120、220、320)のピア接続性及び保護グループを、格納ドライブ(120、220、320)に指示することができる。
この命令は、ホストCPU110によって管理され、各格納ドライブで具現され、トップダウン構成のみを必要とする。
各々の格納ドライブ(120、220、320)に対するCPU(110、210、310)は、また、エラー経路を管理することができる。
代案的な実施形態で、格納ドライブ(120、220、320)は、ボトムアップ(bottom-up)構成で格納ドライブ(120、220、320)間のピアツーピア接続を管理することができる。
格納ドライブ(120、220、320)は、従属的な遠隔格納ドライブのマスター制御器を選択するか、そうでなければ、提供して、例えばRAIDフォーメーションに自己管理(self-managed)クラスターを形成することができる。
一部の実施形態で、格納ドライブ120(以下でホストドライブ120とも称される)は、従属した格納ドライブ(220、320)に対してマスター制御器として動作することができる。
ホストドライブ120は、1つの管理ビュー(view)、そして必要であれば、1つのアドレス範囲を提供する格納プールリソース(storage pool resources)を統合することができる。
ホストドライブ120がクラスターチェーンに位置すれば、CPU110上のソフトウェアは、ホストドライブ120をプログラムすることができる。
一部の実施形態で、「ログ_ペイジ」命令は、どんなドライブがホストドライブ120であるか、そしていずれのものが遠隔格納ドライブ(220、320)であるかを明示し、識別することができる。
ボトムアップ構成の一部の実施形態で、ホストドライブ120は、データフローを制御することができ、そして自分のローカル経路にデータを含むか、又はCPU110からのデータを末端格納装置である格納ドライブ(遠隔格納ドライブ)(220、320)に直接プッシュ(push)することができる。
プッシュモデルの実施形態は、RAIDフォーメーションを使用することができる。
このような実施形態で、CPU110に接続されたホストドライブ120は、LBA空間及びデータ移動を誘導するマスター制御器として機能する。
EC/RAID0/5で、一部のLBA空間は、ホストドライブ120に対してローカルであり、他のLAB空間は、遠隔格納ドライブ(220、320)にある。
ローカルデータは、ホストドライブ120に書き込まれ、遠隔格納ドライブ(220、320)にあるLBA範囲のデータは、これらにプッシュされる。
ここで、ホストドライブ120は、データ移動を調整する。
他の実施形態で、遠隔格納ドライブ(220、320)は、データを自分の方にプル(pull)する。
このプルモデルの実施形態は、制御メッセージが、格納ドライブ(120、220、320)にプッシュされ、そしてデータが遠隔格納ドライブ(220、320)によってプルされるRAID1(複製)フォーメーションを利用することができる。
プッシュ及びプルモデルの全ては、書込みトラフィックをホストCPU110からのデータフローに応じて同期化する。
ボトムアップ構成の一部の実施形態で、ホストドライブ120は、論理ブロックアドレス(LBA)情報を制御し、そしてホストドライブのDRAM121(図4参照)の制御メモリバッファ122を制御することができる。
追加的な実施形態で、ホストドライブ120は、エラー及び代替(alternate)経路を管理することができ、そしてCPU110は、ホストドライブ120によって管理されるエラーフロー通知に加入することができる。
一部の実施形態で、ホストドライブ120は、可視的な(visible)ドライブのみのエラーを正常エラーフローとしてホストCPU110に公開(exposure)することができる。
他の実施形態で、ホストドライブ120は、このようなドライブのエラーを非可視的にし、そして追加的なソフトウェアを必要とする特別な通知を通じてホストCPU110のみに通知することができる。
ボトムアップ構成で、格納ドライブ(120、220、320)が、方策基盤(policy-based)データ保護スキームのためのピアツーピア構成に置かれれば、これらはホストCPU110に対し独立的に(そして、一部のケースで透明に)、自律的に動作する。
格納ドライブ(120、220、320)がホストCPU110に透明な後者の場合に、保護スキームを発見し、構成し、そして修正するための外部メカニズムが必要である。
これは、幾つかの例として、別の制御プレーン、BMC、又はスイッチ管理ポートを通じて達成することができる。
トップダウン又はボトムアップ構成によってピアツーピア接続が確立されるような場合、ホストドライブ120は、ホストドライブ120を認識している他の格納サーバー(200、300)の1つ以上の遠隔格納ドライブ(220、320)に命令することができるソフトウェアを含む。
図4は、本発明の実施形態に係るホスト格納ドライブの概略構成を示す概略図である。
ソフトウェアは、図4に示すようにホスト格納ドライブ120のDRAM121の制御メモリバッファ122に格納され得る。
制御メモリバッファ122は、本発明の実施形態のデータ伝送メカニズムのためにホストCPU110に公開(exposure)され得るホスト格納ドライブ120のDRAM121のメモリの部分であるNVMeドライブ定義(definition)である。
制御メモリバッファ(CMB)122は、制御及びデータペイロードパケットを共有するのに使用することができる。
通知自体は、伝送の固有のもの、例えばPCIeのためのTLPである。
この構造は、ホストドライブ120の制御メモリバッファ122の部分が複製及びデータ伝送ステージング領域(staging area)として実行するようにする。
制御メモリバッファ122は、ホストドライブ120によってデータペイロード及び同期化メモリポインターを公開(exposure)するのに使用することができる。
ホストドライブ120は、それらのバッファ管理オプション及び制御と共に1つ以上の遠隔格納ドライブ(220、320)を調整し、1つ以上の遠隔格納ドライブ(220、320)は同様に応答する。
ホストドライブ120は、自分のバッファ管理スキーム及び同期化方法をこの方式に公開(exposure)して、効果的なバッファ管理を具現する。
しかし、このようなメカニズムは、NVMeのような現存するプロトコルのスペックを厳格に従わない可能性があり、したがってプライベート又は販売者固有のプロトコルとして具現される可能性がある。
このピアツーピア接続は、CPU(110、210、310)の作業負荷を効果的にオフロードすることによって、ホストCPUの演算要求を減らし、そしてデータ伝送において格納サーバーのCPU関与を減らす結果、格納システムのレイテンシを低減するのに役立つ。
図5は、図2又は図3のドライブツードライブ格納システムを用いてデータを格納するための方法を説明するためのブロック図である。
データをローカルにバックアップするために、ノード100のCPU110は、前述で、図1に対して説明したものと同様の方法で、データをホストドライブ120に格納する。
CPU110は、ホストドライブ120に書込み命令を発行する(ステップS1)。
格納されるデータは、ホストドライブ120に格納される前に、先にノード100のローカルDRAM130(図2参照)にキャッシュされる。
データを遠隔に格納するために(即ち、データを格納ドライブ(220、320)に格納するために)、CPU110がホストドライブ120に書込み命令を発行する(ステップS1)時、ホストドライブ120は、ホストCPU110に直接メモリアクセス(DMA)要請を利用して書き込まれるデータをDRAM121に伝送する(ステップS2)ようにし、したがって現在ホストサーバーのDRAM130のデータがホストドライブのDRAM121の制御メモリバッファ122に書き込まれるようにする。
ホストドライブ120は、また、書き込まれるデータ、それの制御メモリバッファ112内での位置及びオフセット、そして名称空間/LUN、LBAオフセット、バイトの数、及び/又は格納を開始するために必要とするデータに対する任意の他の情報のような追加的な詳細に関する情報を、1つ以上の遠隔格納ドライブ(220、230)に通知する(ステップS3、ステップS4)。
通知自体は、ホストドライブ120と遠隔格納ドライブ(220、320)との間の有線メッセージである。
ホストドライブ120は、また、関連したメモリブロックが参照され、そして自分の追跡のためにつながる参照が解除されないことを示すフラッグを設定(例えば、ホストドライブ120は、各遠隔格納ドライブ(220、320)に対する参照カウントを増加させることができ、方策基盤(policy-based)データ保護スキームにしたがってデータを書き込む)することができる。
1つ以上の遠隔格納ドライブ(220、320)は、受信した情報を利用して、ホストドライブの制御メモリバッファ121から、それら各々のメモリ(DRAM)(221、331)へのDMA要請を与えられた情報を用いて構成し、発行する。
提供された情報(例えば、名称空間/LUN、LBA、バイトの数等)は、また、データバッファ以前のヘッダーとしてDMA要請に提供することができる。
個別DMAが完了し、したがって遠隔格納が完了すれば、関連した1つ以上の遠隔格納ドライブ(220、320)は、ホストドライブ120に完了の信号を送り(ステップS7、ステップS8)、ホストドライブ120が制御メモリバッファ122の参照カウントを減少するようにする。
これは別途の呼出(call)を利用して、又はホストドライブメモリポインターを原子性(不可分性)(atomically)に直接操作するDMA動作によって発生させることができる。
図5に対して、上述したように、全体プロセスは格納サーバーのノード(100、200、300)に同様に進行させることができる。
上の実施形態で、遠隔格納ドライブ(220、320)は、活性化されたCMB(制御メモリバッファ)を有する必要がない。
しかし、遠隔格納ドライブ(220、302)がCMBを有し、そして、これらが活性化されれば、このような各々のCMBは、上述したプッシュモデルで使用されて、ホストドライブ120によってペイロードを複製することができる。
他の実施形態で、データ分散は、「ホストドライブ」ツー(to)「1つ以上の遠隔格納ドライブ」の代わりにデイジーチェーン(daisy-chain)又はトーラス(torus)方式のような他の方法でも達成することができる。
デイジーチェーン及びトーラストポロジーの全ては、スイッチが無い相互接続である。
デイジーチェーンモデルで、システムに含まれた任意の数の格納ドライブに対してドライブは直列に接続され、ホストドライブ120は第1遠隔格納ドライブ(例えば、遠隔格納ドライブ220)に接続され、第1遠隔格納ドライブは次の遠隔格納ドライブ(例えば、遠隔格納ドライブ320)に接続される。
ドライブツードライブ通信は、直接的であり、標準基盤プロトコルに従う必要はない。
USB、FireWire(登録商標)、Thunderbolt(登録商標)、イーサーネット(登録商標)のような接続は、デイジーチェーンで使用される他の例である。
トーラストポロジーで、各格納ドライブは、ドライブの間(1D、2D、3D~ND)のスイッチ無しで、並列システム構成で1つより多い他の格納ドライブと直接接続される。
例えば、この構成の実施形態で、ホストドライブ120は、遠隔格納ドライブ(220、320)の両方と接続され、遠隔格納ドライブ220は、ホストドライブ120及び遠隔格納ドライブ320と接続され、遠隔格納ドライブ320は、ホストドライブ120及び遠隔格納ドライブ220の全てに接続される。
各ドライブで、可用であるデータ保護クラスターの充分な構成及び末端(end-point)情報を有し、データはさらに効果的な方式にこれらの間に分散させることができる。
費用もまた減少したハードウェア要求によって、このようなトポロジーで減少させることができる。
また、この構成でドライブの近い近接性は、減少されたレイテンシ及びスケーリング(scaling)長所を誘導することができる。
追加的な実施形態で、格納ドライブ(120、220、320)は、制御の外に、甚だしく格納サーバーのCPU(110、210、310)のビューの外にプライベートネットワークを追加的に構成することができる。
現存する通信プロトコルを選択することは、ホストドライブに追加的なハードウェア/ファームウェアリソースを必要とするコナーケース及びエラー条件を含む現存するプロトコルのすべての要求を遵守することを必要とする。
しかし、ホストドライブ及び1つ以上の遠隔格納ドライブが1つの販売者からのものであれば、現存するプロトコル制限の一部は、強要されない販売者固有の方法を利用して緩和させることができる。
このようなプライベート定義の例は、イーサーネット(登録商標)上のNVMe及びネットワーク上のNVMe販売者固有の具現のようなファブリック上の共用NVMe(NVMe-oF)定義及びNVMeの販売者固有の具現である。
PCIeに対して、DMFT固有の定義及びそれの必要である互換性及び時間仕様を除去することによって、PCIエクスプレス上のMCTPが販売者固有の具現で再定義することができる。
これは本発明の実施形態で使用されるために調整された元の定義の骨子のみを残したバーションが作成される。
他の実施形態で、ホストドライブがピアリングされた遠隔格納ドライブと直接対話することを可能にするするためにネットワークインターコネクトを使用することができる。
このプライベートネットワークは、同様に販売者固有の定義で簡潔にすることができる。
したがって、上の例に示したプライベート装置接続性は、現在使用されるプロトコル伝送と比較して格納装置間で情報をさらに効率的に伝達する販売者固有の駆動方法を許容する公共仕様(public specifications)によって販売者固有で、制限されないように作成することができるので、一貫された性能を提供する。
また、ピア格納ドライブの間の販売者固有の伝送定義として、ドライブは、自己の原子性(不可分性)をSSDのFTL階層及び論理ツー物理マッピング(Logical-to-Physical mapping:L2P)にコミット(commit)して公開(exposure)することができる。
複製のために、サンプルペイロードがホストドライブに到達した時に、これはすべてのピアリングされた(peered)遠隔格納ドライブが該当書き込み要請に同期化される時までマッピングの更新を遅延することができる。
ピアの全てが成功裏に書き込みをコミットすれば、ピアに戻るフラッシュL2Pマッピングを更新する追加的な同期化関連メッセージがある。
ドライブが内部的構成定義を外部ソフトウェアに公開しておらず、ピア及び販売者ピアの間でドライブレイアウトを完全に隠されているので、これが可能である。
これは原子性(不可分性)が達成されることができる1つの方法である。
また、上の実施形態は、複製サンプルセットのようなデータ保護サンプルセットの間で原子性(不可分性)を提供する。
上述の実施形態は、格納装置がCPUの介入無しで互いに直接通信するようにするホスト格納装置及び方法を提供し、したがって通常的にサーバーCPUが関与するデータ移動活動をオフロードする。
格納サーバーCPUを無くすことによって、格納サーバーは潜在的にさらに大きい数の格納装置を支援することができ、又は、相変わらず同一の数の格納装置を支援しながら、CPUの電力消費が減少させることができる。
上述の実施形態は、また複数のドライブの間を調整するホストソフトウェアを単純化し、格納ドライブがホストシステムをそれ以上使用しなくとも、データ伝送を遂行することができるので、格納装置同期化が一端セットアップされれば、ホストソフトウェアは、I/O性能及びレイテンシメトリックに影響を及ぼさない。
本発明の実施形態の可能な使用は、これに限定されないが、データ複製、直接データ(direct data)のためのスナップショット、そして間接データ(indirect data)のためのキー値タイプ使用を含む。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
100、200、300 格納サーバー(ノード)
110、210、310 CPU(ホストCPU)
120 格納ドライブ(ホストドライブ)
121、130、221、230、321、330 DRAM
122 制御メモリバッファ(CMB)
140 ルートコンプレックス
150、250、350 スイッチ
210 CPU
310 CPU
220 格納ドライブ(遠隔格納ドライブ)
320 格納ドライブ(遠隔格納ドライブ)

Claims (19)

  1. ドライブツードライブ(drive-to-drive)格納システムであって、
    ホストCPUと、ホスト格納ドライブと、を含むホストサーバーと、
    1つ以上の遠隔格納ドライブと、
    前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続するピアツーピア(Peer to Peer)リンクと、を有し、
    前記ホスト格納ドライブは、プロセッサ及びメモリを含み、
    前記メモリは、前記プロセッサによって実行される時、書込み命令を発行する前記ホストCPUの少なくとも一部に基づいて、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送するようにする命令を格納し、
    前記書込み命令は、前記ホスト格納ドライブから前記1つ以上の遠隔格納ドライブへの通知をトリガーするように構成され、
    前記1つ以上の遠隔格納ドライブは、メモリを含み、
    前記1つ以上の遠隔格納ドライブは、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリにメモリアクセス要求を発行するように構成され、
    前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内のメモリブロックの位置またはオフセットの内の少なくとも1つを含み、
    前記ホスト格納ドライブは、前記メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させ、前記1つ以上の遠隔格納ドライブによる前記メモリアクセス要求の完了に対しカウンタを減少させるように構成されることを特徴とする格納システム。
  2. 前記メモリは、ダイナミックランダムアクセスメモリ(DRAM)であることを特徴とする請求項1に記載の格納システム。
  3. 前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記命令は、前記制御メモリバッファに格納されることを特徴とする請求項2に記載の格納システム。
  4. 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する2次ポート、PCIeスイッチファブリック、又はネットワークファブリックを含むことを特徴とする請求項1に記載の格納システム。
  5. 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含むことを特徴とする請求項1に記載の格納システム。
  6. 前記ピアツーピアリンクは、1つ以上の特定の命令を通じて前記メモリに構成されることを特徴とする請求項1に記載の格納システム。
  7. ホスト格納ドライブであって、
    前記ホスト格納ドライブを1つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、
    プロセッサ及びメモリと、を有し、
    前記メモリは、前記プロセッサによって実行された時に、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送するようにする命令を格納し、
    前記ホスト格納ドライブは、通知を前記1つ以上の遠隔格納ドライブへ送信するように構成され、
    前記1つ以上の遠隔格納ドライブは、メモリを含み、
    前記1つ以上の遠隔格納ドライブは、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリにメモリアクセス要求を発行するように構成され、
    前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内のメモリブロックの位置またはオフセットの内の少なくとも1つを含み、
    前記ホスト格納ドライブは、前記メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させ、前記1つ以上の遠隔格納ドライブによる前記メモリアクセス要求の完了に対しカウンタを減少させるように構成されることを特徴とするホスト格納ドライブ。
  8. 前記メモリは、ダイナミックランダムアクセスメモリである請求項7に記載のホスト格納ドライブ。
  9. 前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記命令は、前記制御メモリバッファに格納されることを特徴とする請求項8に記載のホスト格納ドライブ。
  10. 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する2次ポート、PCIeスイッチファブリック、又はネットワークファブリックを含むことを特徴とする請求項7に記載のホスト格納ドライブ。
  11. 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含むことを特徴とする請求項7に記載のホスト格納ドライブ。
  12. 前記ピアツーピアリンクは、1つ以上の特定の命令を通じて前記メモリに構成されることを特徴とする請求項7に記載のホスト格納ドライブ。
  13. ドライブツードライブ格納システムを用いてデータを格納する方法であって、
    前記ドライブツードライブ格納システムは、ホストCPUと、プロセッサ及びメモリを含むホスト格納ドライブと、を含むホストサーバーと、
    1つ以上の遠隔格納ドライブと、
    前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、を有し、
    前記データを格納する方法は、データを前記ホスト格納ドライブに書き込むための書込み命令を開始する段階と、
    直接メモリアクセスを用いて前記データを前記ホスト格納ドライブの前記メモリに伝送する段階と、
    前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送する段階と、を有し、
    前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送する段階は、
    前記データに関する情報を提供するために、前記ホスト格納ドライブから前記1つ以上の遠隔格納ドライブへの通知をトリガーする段階と、
    ここで、前記1つ以上の遠隔格納ドライブは、メモリを含み、
    前記ホスト格納ドライブによって、メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させる段階と、
    前記1つ以上の遠隔格納ドライブによって、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリへの直接メモリアクセス要求を発行する段階と、
    前記ホスト格納ドライブによって、前記1つ以上の遠隔格納ドライブによる前記直接メモリアクセス要求の完了に対しカウンタを減少させる段階と、を含み、
    前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内の前記メモリブロックの位置またはオフセットの内の少なくとも1つを含むことを特徴とするデータ格納方法。
  14. 前記ピアツーピアリンクを通じて前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する段階をさらに有することを特徴とする請求項13に記載のデータ格納方法。
  15. 前記1つ以上の遠隔格納ドライブで前記情報を受信し、前記情報に応答して直接メモリアクセス要求を発行する段階をさらに有することを特徴とする請求項13に記載のデータ格納方法。
  16. 前記情報に応答して前記直接メモリアクセスを完了し、前記完了を前記ホスト格納ドライブに通知する段階をさらに有することを特徴とする請求項15に記載のデータ格納方法。
  17. 前記ホスト格納ドライブの前記メモリは、ダイナミックランダムアクセスメモリであることを特徴とする請求項13に記載のデータ格納方法。
  18. 前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記データは、前記制御メモリバッファから伝送されることを特徴とする請求項17に記載のデータ格納方法。
  19. 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含み、
    前記データは、前記専用ポート又は前記再プログラムされたスイッチポートを通じて前記1つ以上の遠隔格納ドライブに各々伝送されることを特徴とする請求項13に記載のデータ格納方法。
JP2019043503A 2018-03-26 2019-03-11 格納システム及びそのホスト格納ドライブ並びにデータ格納方法 Active JP7311280B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862648292P 2018-03-26 2018-03-26
US62/648,292 2018-03-26
US15/957,773 US11321249B2 (en) 2018-03-26 2018-04-19 Mechanism to autonomously manage SSDS in an array
US15/957,773 2018-04-19

Publications (2)

Publication Number Publication Date
JP2019175445A JP2019175445A (ja) 2019-10-10
JP7311280B2 true JP7311280B2 (ja) 2023-07-19

Family

ID=67985075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019043503A Active JP7311280B2 (ja) 2018-03-26 2019-03-11 格納システム及びそのホスト格納ドライブ並びにデータ格納方法

Country Status (4)

Country Link
US (3) US11321249B2 (ja)
JP (1) JP7311280B2 (ja)
CN (1) CN110362515A (ja)
TW (1) TWI795491B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321249B2 (en) * 2018-03-26 2022-05-03 Samsung Electronics Co., Ltd. Mechanism to autonomously manage SSDS in an array
US12086431B1 (en) * 2018-05-21 2024-09-10 Pure Storage, Inc. Selective communication protocol layering for synchronous replication
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US10846020B2 (en) * 2018-11-02 2020-11-24 Dell Products L.P. Drive assisted storage controller system and method
US11048447B2 (en) 2019-10-17 2021-06-29 International Business Machines Corporation Providing direct data access between accelerators and storage in a computing environment, wherein the direct data access is independent of host CPU and the host CPU transfers object map identifying object of the data
US11316917B2 (en) * 2020-03-04 2022-04-26 Samsung Electronics Co., Ltd. Methods and apparatus for peer-to-peer data channels for storage devices
US11656795B2 (en) * 2021-01-21 2023-05-23 EMC IP Holding Company LLC Indicating optimized and non-optimized paths to hosts using NVMe-oF in a metro cluster storage system
US12072795B1 (en) 2023-03-14 2024-08-27 Dell Products L.P. Providing access to a namespace via multiple storage arrays

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091897A (ja) 2000-09-13 2002-03-29 Nec Corp データコピー方法およびデータコピー用プログラムを記録したプログラム記録媒体
JP2014528107A (ja) 2011-06-29 2014-10-23 マイクロソフト コーポレーション リモート・ダイレクト・メモリー・アクセスによる任意サイズの移送動作
JP2015537310A (ja) 2013-10-29 2015-12-24 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理システム及びデータ処理方法
JP2016170696A (ja) 2015-03-13 2016-09-23 株式会社東芝 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム
JP2017512350A (ja) 2014-03-08 2017-05-18 ディアマンティ インコーポレイテッド 集中型ネットワーキング及びストレージのための方法及びシステム

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520263A (ja) * 1991-07-15 1993-01-29 Nec Corp データ転送制御装置
KR20000021045A (ko) 1998-09-25 2000-04-15 차동해 컴퓨터 제어의 이중화 방법 및 그 시스템
CN101187849A (zh) * 2003-07-07 2008-05-28 日立超大规模集成电路系统株式会社 存储装置和存储系统
JP2005293435A (ja) 2004-04-05 2005-10-20 Konica Minolta Business Technologies Inc データ転送装置およびその設定方法
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US7660943B2 (en) * 2006-02-17 2010-02-09 International Business Machines Corporation Data storage drive for automated data storage library
EP2761472B1 (en) * 2011-09-30 2020-04-01 Intel Corporation Memory channel that supports near memory and far memory access
US9158461B1 (en) * 2012-01-18 2015-10-13 Western Digital Technologies, Inc. Measuring performance of data storage systems
US10651975B2 (en) * 2012-08-02 2020-05-12 Pure Storage, Inc. Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system
US9983953B2 (en) 2012-12-20 2018-05-29 Intel Corporation Multiple computer system processing write data outside of checkpointing
EP2960800B1 (en) 2013-02-20 2019-06-19 Panasonic Intellectual Property Management Co., Ltd. Wireless access device and wireless access system
US9483431B2 (en) * 2013-04-17 2016-11-01 Apeiron Data Systems Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA)
US8949486B1 (en) * 2013-07-17 2015-02-03 Mellanox Technologies Ltd. Direct memory access to storage devices
US9727503B2 (en) * 2014-03-17 2017-08-08 Mellanox Technologies, Ltd. Storage system and server
US9678910B2 (en) * 2014-04-25 2017-06-13 Liqid Inc. Power handling in a scalable storage system
US9294567B2 (en) 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
US9817607B1 (en) 2014-06-20 2017-11-14 EMC IP Holding Company LLC Optimizations to avoid intersocket links
EP3158455B1 (en) * 2014-06-23 2020-03-18 Liqid Inc. Modular switched fabric for data storage systems
WO2016068903A1 (en) * 2014-10-29 2016-05-06 Hewlett Packard Enterprise Development Lp Trans-fabric instruction set for a communication fabric
US9712619B2 (en) * 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US9565269B2 (en) * 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9934177B2 (en) * 2014-11-04 2018-04-03 Cavium, Inc. Methods and systems for accessing storage using a network interface card
US10061719B2 (en) * 2014-12-25 2018-08-28 Intel Corporation Packed write completions
US9772794B2 (en) * 2015-06-05 2017-09-26 University Of Florida Research Foundation, Incorporated Method and apparatus for big data cloud storage resource management
US9892071B2 (en) * 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
CN108702374A (zh) * 2015-09-02 2018-10-23 科内克斯实验室公司 用于以太网类型网络上的存储器和I/O的远程访问的NVM Express控制器
CN106557429B (zh) 2015-09-29 2019-11-05 华为技术有限公司 一种内存数据的迁移方法和节点控制器
US10083144B2 (en) * 2015-09-30 2018-09-25 International Business Machines Corporation Programming interface operations in a port in communication with a driver for reinitialization of storage controller elements
US10223313B2 (en) 2016-03-07 2019-03-05 Quanta Computer Inc. Scalable pooled NVMe storage box that comprises a PCIe switch further connected to one or more switches and switch ports
CN109564558A (zh) * 2016-06-10 2019-04-02 利奇得公司 数据存储系统中的多端口插入器架构
PL3317205T3 (pl) 2016-07-06 2019-06-28 Nestec S.A. Opakowanie nadające się do recyklingu zawierające miękką torebkę
US10091904B2 (en) * 2016-07-22 2018-10-02 Intel Corporation Storage sled for data center
US10613974B2 (en) * 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10860508B2 (en) * 2017-05-25 2020-12-08 Western Digital Technologies, Inc. Offloaded disaggregated storage architecture
US11138103B1 (en) * 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US20190034306A1 (en) * 2017-07-31 2019-01-31 Intel Corporation Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs
US10802753B2 (en) * 2018-02-15 2020-10-13 Seagate Technology Llc Distributed compute array in a storage system
US11054991B2 (en) * 2018-03-21 2021-07-06 Western Digital Technologies, Inc. Data storage system scale-out with local address remapping
US11321249B2 (en) * 2018-03-26 2022-05-03 Samsung Electronics Co., Ltd. Mechanism to autonomously manage SSDS in an array
US10678433B1 (en) * 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US11385792B2 (en) * 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002091897A (ja) 2000-09-13 2002-03-29 Nec Corp データコピー方法およびデータコピー用プログラムを記録したプログラム記録媒体
JP2014528107A (ja) 2011-06-29 2014-10-23 マイクロソフト コーポレーション リモート・ダイレクト・メモリー・アクセスによる任意サイズの移送動作
JP2015537310A (ja) 2013-10-29 2015-12-24 華為技術有限公司Huawei Technologies Co.,Ltd. データ処理システム及びデータ処理方法
JP2017512350A (ja) 2014-03-08 2017-05-18 ディアマンティ インコーポレイテッド 集中型ネットワーキング及びストレージのための方法及びシステム
JP2016170696A (ja) 2015-03-13 2016-09-23 株式会社東芝 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム

Also Published As

Publication number Publication date
JP2019175445A (ja) 2019-10-10
TWI795491B (zh) 2023-03-11
US20240020247A1 (en) 2024-01-18
US20190294565A1 (en) 2019-09-26
KR20190112626A (ko) 2019-10-07
US11775454B2 (en) 2023-10-03
US11321249B2 (en) 2022-05-03
US20220327068A1 (en) 2022-10-13
CN110362515A (zh) 2019-10-22
TW201945946A (zh) 2019-12-01

Similar Documents

Publication Publication Date Title
JP7311280B2 (ja) 格納システム及びそのホスト格納ドライブ並びにデータ格納方法
US11461263B2 (en) Disaggregated memory server
TW202145025A (zh) 用於管理記憶體資源的系統以及實行遠端直接記憶體存取的方法
US10205653B2 (en) Fabric discovery for a cluster of nodes
CN110941576B (zh) 具有多模pcie功能的存储控制器的系统、方法和设备
Sharma et al. An introduction to the compute express link (cxl) interconnect
CN107209725A (zh) 处理写请求的方法、处理器和计算机
US12079506B2 (en) Memory expander, host device using memory expander, and operation method of sever system including memory expander
US20190018814A1 (en) Networked storage system with access to any attached storage device
KR102705791B1 (ko) 어레이 내에서 솔리드 스테이트 드라이브들을 자율적으로 관리하는 메커니즘
TWI850550B (zh) 管理記憶體資源的系統及實行遠端直接記憶體存取的方法
US20190303316A1 (en) Hardware based virtual memory management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230523

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: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230706

R150 Certificate of patent or registration of utility model

Ref document number: 7311280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150