JP7311280B2 - 格納システム及びそのホスト格納ドライブ並びにデータ格納方法 - Google Patents
格納システム及びそのホスト格納ドライブ並びにデータ格納方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI 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)である。
例示的に、制御エンティティーは、通常的に方策基盤基準(policy-based criteria)を利用して、どのデータがそれらの制御の下で、どの従属された格納装置に格納されるかを判断する。
したがって、このようなCPU-制御データ保護方法を実行することは、通常的に複数の格納サーバーリソースを消費する。
データ伝送でのCPU参与は、CPUキャッシュ汚染、重大なDRAM使用、同期化ソフトウェア業務負荷、そして追加的なプロセシングの結果としてレイテンシを誘発する可能性がある。
例えば、ソリッドステートドライブ(SSD)、特に不揮発性メモリエクスプレス(NVMe)SSDは、他の機能のために使用される相対的に大量のDRAMを有する。
例えば、NVMeSSDのためのDRAMは、読出し/書込みバッファを提供するのに使用され、内部SSDメタデータ格納のために使用され、そして制御メモリバッファを提供するのに使用される。
制御メモリバッファは、入力/出力(I/O)メモリ待機列、データバッファ等のためにSSDがホストに公開(exposure)するSSDのDRAMの部分である。
また、格納装置の使用されないリソース及び能力を利用することができる改善された格納装置及びドライブツードライブ(drive-to-drive)格納方法が要求されている。
このような改善された格納装置及び格納方法は、データ保護及びバックアップに必要であるホストリソースの量を減少させることができる。
また、本発明の他の目的は、格納装置の使用されないリソース及び能力の長所を採用することができる改善された格納システム及びそのホスト格納ドライブ並びにデータ格納方法を提供することにある。
しかし、本発明は多様な他の形態で具現されることができ、ここに説明された実施形態のみに限定されることと看做されてはならない。
一方、このような実施形態は、この記載がさらに徹底であり、完全になり、そして本発明の側面及び特徴をこの分野に熟練された者に完全に伝達する例として提供される。
したがって、本発明の側面及び特徴の完全な理解のためにこの分野に通常的な技術を有する者に必須的ではないプロセス、要素、そして技術は説明されないこともある。
別途、言及されなければ、添付された図面及び記載された説明全体で類似の参照符号は類似の要素を指し、したがってそれらの説明は繰り返さない。
図面で、要素、階層、及び領域の相対的なサイズは、明確性のために強調することができる。
また、1つの要素又は階層が2つの要素又は階層の間にあることと参照される時、1つの要素は2つの要素又は階層の間の唯一の要素又は階層であり、又は1つ以上の介している要素又は階層もまた存在することができる。
ここに使用される用語は、特定の実施形態のみを説明する目的のためのものであり、本発明を制限することを意図しない。
ここで使用するように、文脈が明確に相違を示さない限り、単数形は複数形をまた含むことを意図する。
ここで使用するように、“及び/又は”の用語は1つ以上の関連して羅列された項目の任意の、そしてすべての組み合わせを含む。
要素の目録に先行する時に、“少なくとも1つの”のような表現は要素の全体目録を変更し、目録の個別要素を変更しない。
本発明の実施形態を説明する時に、“することができる”の使用は“本発明の1つ以上の実施形態”を参照する。
ここで使用するように、“使用する”、“使う”、そして“使用された”の用語は“活用する”、“活用する”、そして“活用された”の用語と類意語として看做される。また、“模範的な”の用語は例又は事例を参照することを意図する。
例えば、このような装置の多様な構成要素は、1つの集積回路(IC)チップに又は別のICチップに形成することができる。
また、このような装置の多様な構成要素は、柔軟印刷回路フィルム、テープキャリヤーパッケージ(TCP)、印刷回路基板(PCB)に具現されるか、又は1つの基板の上に形成することができる。
コンピュータプログラム命令は、例えばランダムアクセスメモリ(RAM)のような標準メモリ装置を利用してコンピューティング装置で具現することができるメモリに格納される。
コンピュータプログラム命令は、また、例えばCD-ROM、フラッシュドライブ等のような他の非一時的(non-transitory)コンピュータ読出し可能媒体に格納することができる。
また、この分野に熟練された者は、本発明の模範的な実施形態の思想及び範囲から逸脱することなく、多様なコンピューティング装置の機能が単一コンピューティング装置に組み合わされる又は集積されることができ、又は特定なコンピューティング装置の機能が1つ以上のコンピューティング装置に亘って分散されることを理解されなければならない。
共通に使用される辞書に定義されたような用語は、関連した分野及び/又は本明細書の脈絡でそれらの意味と一致する意味を有することと解釈されなければならなく、ここにこのように明確に定義されなければ、理想化されるか、或いは過度に形式的な意味として解釈されなければならないことが理解されるべきである。
ホスト格納装置の実施形態は、1つ以上の格納装置へのデータの直接ピアツーピア伝送を開示して、方策基盤(policy-based)自律データ伝送サービスを提供することができる。
これはホストCPUが追加的なI/Oを遂行して複製(replication)及び他のデータ保護サービスをホスト格納装置に提供することを効果的にオフロードし(offload)、ホストCPU演算要求を減らし、そしてデータ伝送で減少された格納サーバーCPU参与による格納システムレイテンシを低くする。
追加的な実施形態は、元の格納装置を格納装置販売者(又は、供給業者、製造業者)-定義(vendor-defined)の方法、あるいは、プライベートな方法として定義する機会を提供する。
また、追加的な実施形態は、プッシュ又はプルモデルがデータ保護目的のための格納装置の間の書込みトラフィックを同期化することができるようにする格納装置を含む。
図1で、ノード(10、20、30)は、格納サーバーである。
各ノード(10、20、30)は、CPU(11、21、31)、DRAM(13、23、33)、そして1つ以上の格納ドライブ(12、22、32)を含む。
データを格納するために、ノード10のCPU11は、ノード10のローカルドライブ12に書込み命令を発行する。
格納されるデータは、ローカルドライブ12に格納される前にノード10のローカルDRAM13に先にキャッシュされる。
ノード10のCPU11は、ノード20のCPU21を初期化してデータを格納する。
CPU11は、CPU21を通じてドライブ22に書込み命令を発行する。
データはローカルドライブ22に格納される前にノード20のローカルDRAM23に先にキャッシュされる。
また、ノード10のCPU11は、データをノード30の追加ドライブにコミットすることができる。
CPU11は、ノード30のCPU31を開始し、CPU11はノード20に対する時と同一のプロセスにしたがって、CPU31を通じてデータをローカルドライブ32に書き込む。
したがって、伝送活動は、データ伝送経路にしたがってローカルCPUキャッシュ及びDRAMを関与させ、多様なローカルドライブに亘った格納のためのCPU能力使用を必要とする。
また、多様なノードにわたってデータの格納を同期化するために追加的なソフトウェアが必要となる可能性がある。
例えば、格納サーバーソフトウェアは、同期式及び非同期式機能を提供するために複製プロセスの両終端を調整することができる。
図2で、ノードは格納サーバー(100、200、300)である。
各ノード(100、200、300)は、CPU(110、210、310)、DRAM(130、230、330)、そして1つ以上の格納ドライブ(120、220、330)を含む。
追加的な実施形態で、1つ以上の格納ドライブ(120、220、320)は、NVMeSSDである。
一部の実施形態で、CPU(210、310)及びDRAM(230、330)は、省略することができ、ノード(200、300)は、格納ドライブ(220、320)のみを含むことができる。
また、格納ドライブ(120、220、320)は、格納ドライブ(120、220、320)がピアツーピアで接続されるPCIe直接構成、スイッチファブリック構成、又は任意の他の構成で互いに接続される。
一部の実施形態で、格納ドライブ(120、220、320)は、専用ポート又は再プログラムされたスイッチポートを通じて互いに接続され得る。
格納ドライブ(120、220、320)は、現存するプロトコル又は販売者(又は、供給業者、製造業者、以下、販売者で記す)固有の具現を利用して通信することができる。
格納ドライブ(120、220、320)は、ピアツーピア接続性のために構成された追加的な構成オプションを含むことができる。
このような構成制御経路の例は、ゲット(get)、又はセット(set)「ログ_ペイジ」(log_page)(peer_config)である。
これはピアツーピアロジックのために特別に定義された新しいログページである。
ピアツーピア構成の一部として、接続及び通信プロトコルは、格納ドライブ(120、220、320)が互いに通信するようにし、デュアルモードに構成されるようにし、データ伝送を可能するようにするハードウェアリソースを共有するようにし、そして一部の実施形態で、販売者固有の伝送(transport)及びシグナリング(signaling)メカニズムを提供するようにすることができる。
この構成で、遠隔格納ドライブ(220、320)は、図2では別途のCPU(例えば、210、310)に接続されるが、図3に示すように、別途のCPUを有する必要はない(格納ドライブ(220、320)は、ホストCPUに直接接続されなく、代わりにそれら各々のCPU(220、320)を通じて、又は格納ドライブ120のような他の格納ドライブを通じてホストCPU110と接続されるので、格納ドライブ(220、320)は、また、遠隔格納ドライブとも称される)。
スイッチ150は、また、格納ドライブ(220、320)に各々接続されたスイッチ250、350に接続される。
スイッチ(150、250、350)は、PCIeスイッチ又は他の適切な専用の、又は再プログラムされたスイッチポートである。
例えば、スイッチ(150、250、350)がネットワークファブリック構成内のネットワークスイッチであれば、格納ドライブ(120、220、320)は、PCIeの代わりにネットワークプロトコルを通じて互いに直接付着されたネットワークである。
このような実施形態で、同期化のためのメモリアクセスは、マッピングされた(mapped)ネットワークメモリである。
格納ドライブ(120、220、320)がデータを互いに直接伝送するので、これは、本質的に、格納ドライブ(120、220、320)間のサービス品質(QoS)チャンネルを生成する。
一実施形態で、CPU(110、210、310)は、トップダウン構成で格納ドライブ(120、220、320)間のピアツーピア接続を管理する。
例えば、各々の格納ドライブ(120、220、320)のためのCPU(110、210、310)は、ペアリング(pairing)のためにドライブのピアアクセスを管理することができる。
又は、格納ドライブ(120、220、320)がネットワーク(例えば、スイッチファブリック構成で)に存在すれば、CPU(110、210、310)は、ネットワークスイッチをプログラムしてピアツーピア接続をするようにすることができる。
この命令は、ホストCPU110によって管理され、各格納ドライブで具現され、トップダウン構成のみを必要とする。
各々の格納ドライブ(120、220、320)に対するCPU(110、210、310)は、また、エラー経路を管理することができる。
格納ドライブ(120、220、320)は、従属的な遠隔格納ドライブのマスター制御器を選択するか、そうでなければ、提供して、例えばRAIDフォーメーションに自己管理(self-managed)クラスターを形成することができる。
一部の実施形態で、格納ドライブ120(以下でホストドライブ120とも称される)は、従属した格納ドライブ(220、320)に対してマスター制御器として動作することができる。
ホストドライブ120がクラスターチェーンに位置すれば、CPU110上のソフトウェアは、ホストドライブ120をプログラムすることができる。
一部の実施形態で、「ログ_ペイジ」命令は、どんなドライブがホストドライブ120であるか、そしていずれのものが遠隔格納ドライブ(220、320)であるかを明示し、識別することができる。
プッシュモデルの実施形態は、RAIDフォーメーションを使用することができる。
このような実施形態で、CPU110に接続されたホストドライブ120は、LBA空間及びデータ移動を誘導するマスター制御器として機能する。
EC/RAID0/5で、一部のLBA空間は、ホストドライブ120に対してローカルであり、他のLAB空間は、遠隔格納ドライブ(220、320)にある。
ローカルデータは、ホストドライブ120に書き込まれ、遠隔格納ドライブ(220、320)にあるLBA範囲のデータは、これらにプッシュされる。
ここで、ホストドライブ120は、データ移動を調整する。
このプルモデルの実施形態は、制御メッセージが、格納ドライブ(120、220、320)にプッシュされ、そしてデータが遠隔格納ドライブ(220、320)によってプルされるRAID1(複製)フォーメーションを利用することができる。
プッシュ及びプルモデルの全ては、書込みトラフィックをホストCPU110からのデータフローに応じて同期化する。
追加的な実施形態で、ホストドライブ120は、エラー及び代替(alternate)経路を管理することができ、そしてCPU110は、ホストドライブ120によって管理されるエラーフロー通知に加入することができる。
一部の実施形態で、ホストドライブ120は、可視的な(visible)ドライブのみのエラーを正常エラーフローとしてホストCPU110に公開(exposure)することができる。
他の実施形態で、ホストドライブ120は、このようなドライブのエラーを非可視的にし、そして追加的なソフトウェアを必要とする特別な通知を通じてホストCPU110のみに通知することができる。
格納ドライブ(120、220、320)がホストCPU110に透明な後者の場合に、保護スキームを発見し、構成し、そして修正するための外部メカニズムが必要である。
これは、幾つかの例として、別の制御プレーン、BMC、又はスイッチ管理ポートを通じて達成することができる。
トップダウン又はボトムアップ構成によってピアツーピア接続が確立されるような場合、ホストドライブ120は、ホストドライブ120を認識している他の格納サーバー(200、300)の1つ以上の遠隔格納ドライブ(220、320)に命令することができるソフトウェアを含む。
ソフトウェアは、図4に示すようにホスト格納ドライブ120のDRAM121の制御メモリバッファ122に格納され得る。
制御メモリバッファ122は、本発明の実施形態のデータ伝送メカニズムのためにホストCPU110に公開(exposure)され得るホスト格納ドライブ120のDRAM121のメモリの部分であるNVMeドライブ定義(definition)である。
通知自体は、伝送の固有のもの、例えばPCIeのためのTLPである。
この構造は、ホストドライブ120の制御メモリバッファ122の部分が複製及びデータ伝送ステージング領域(staging area)として実行するようにする。
制御メモリバッファ122は、ホストドライブ120によってデータペイロード及び同期化メモリポインターを公開(exposure)するのに使用することができる。
ホストドライブ120は、自分のバッファ管理スキーム及び同期化方法をこの方式に公開(exposure)して、効果的なバッファ管理を具現する。
しかし、このようなメカニズムは、NVMeのような現存するプロトコルのスペックを厳格に従わない可能性があり、したがってプライベート又は販売者固有のプロトコルとして具現される可能性がある。
このピアツーピア接続は、CPU(110、210、310)の作業負荷を効果的にオフロードすることによって、ホストCPUの演算要求を減らし、そしてデータ伝送において格納サーバーのCPU関与を減らす結果、格納システムのレイテンシを低減するのに役立つ。
データをローカルにバックアップするために、ノード100のCPU110は、前述で、図1に対して説明したものと同様の方法で、データをホストドライブ120に格納する。
CPU110は、ホストドライブ120に書込み命令を発行する(ステップS1)。
格納されるデータは、ホストドライブ120に格納される前に、先にノード100のローカルDRAM130(図2参照)にキャッシュされる。
通知自体は、ホストドライブ120と遠隔格納ドライブ(220、320)との間の有線メッセージである。
提供された情報(例えば、名称空間/LUN、LBA、バイトの数等)は、また、データバッファ以前のヘッダーとしてDMA要請に提供することができる。
これは別途の呼出(call)を利用して、又はホストドライブメモリポインターを原子性(不可分性)(atomically)に直接操作するDMA動作によって発生させることができる。
図5に対して、上述したように、全体プロセスは格納サーバーのノード(100、200、300)に同様に進行させることができる。
しかし、遠隔格納ドライブ(220、302)がCMBを有し、そして、これらが活性化されれば、このような各々のCMBは、上述したプッシュモデルで使用されて、ホストドライブ120によってペイロードを複製することができる。
デイジーチェーン及びトーラストポロジーの全ては、スイッチが無い相互接続である。
ドライブツードライブ通信は、直接的であり、標準基盤プロトコルに従う必要はない。
USB、FireWire(登録商標)、Thunderbolt(登録商標)、イーサーネット(登録商標)のような接続は、デイジーチェーンで使用される他の例である。
例えば、この構成の実施形態で、ホストドライブ120は、遠隔格納ドライブ(220、320)の両方と接続され、遠隔格納ドライブ220は、ホストドライブ120及び遠隔格納ドライブ320と接続され、遠隔格納ドライブ320は、ホストドライブ120及び遠隔格納ドライブ220の全てに接続される。
費用もまた減少したハードウェア要求によって、このようなトポロジーで減少させることができる。
また、この構成でドライブの近い近接性は、減少されたレイテンシ及びスケーリング(scaling)長所を誘導することができる。
現存する通信プロトコルを選択することは、ホストドライブに追加的なハードウェア/ファームウェアリソースを必要とするコナーケース及びエラー条件を含む現存するプロトコルのすべての要求を遵守することを必要とする。
このようなプライベート定義の例は、イーサーネット(登録商標)上のNVMe及びネットワーク上のNVMe販売者固有の具現のようなファブリック上の共用NVMe(NVMe-oF)定義及びNVMeの販売者固有の具現である。
これは本発明の実施形態で使用されるために調整された元の定義の骨子のみを残したバーションが作成される。
他の実施形態で、ホストドライブがピアリングされた遠隔格納ドライブと直接対話することを可能にするするためにネットワークインターコネクトを使用することができる。
このプライベートネットワークは、同様に販売者固有の定義で簡潔にすることができる。
したがって、上の例に示したプライベート装置接続性は、現在使用されるプロトコル伝送と比較して格納装置間で情報をさらに効率的に伝達する販売者固有の駆動方法を許容する公共仕様(public specifications)によって販売者固有で、制限されないように作成することができるので、一貫された性能を提供する。
複製のために、サンプルペイロードがホストドライブに到達した時に、これはすべてのピアリングされた(peered)遠隔格納ドライブが該当書き込み要請に同期化される時までマッピングの更新を遅延することができる。
ドライブが内部的構成定義を外部ソフトウェアに公開しておらず、ピア及び販売者ピアの間でドライブレイアウトを完全に隠されているので、これが可能である。
これは原子性(不可分性)が達成されることができる1つの方法である。
また、上の実施形態は、複製サンプルセットのようなデータ保護サンプルセットの間で原子性(不可分性)を提供する。
格納サーバーCPUを無くすことによって、格納サーバーは潜在的にさらに大きい数の格納装置を支援することができ、又は、相変わらず同一の数の格納装置を支援しながら、CPUの電力消費が減少させることができる。
上述の実施形態は、また複数のドライブの間を調整するホストソフトウェアを単純化し、格納ドライブがホストシステムをそれ以上使用しなくとも、データ伝送を遂行することができるので、格納装置同期化が一端セットアップされれば、ホストソフトウェアは、I/O性能及びレイテンシメトリックに影響を及ぼさない。
本発明の実施形態の可能な使用は、これに限定されないが、データ複製、直接データ(direct data)のためのスナップショット、そして間接データ(indirect data)のためのキー値タイプ使用を含む。
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)
- ドライブツードライブ(drive-to-drive)格納システムであって、
ホストCPUと、ホスト格納ドライブと、を含むホストサーバーと、
1つ以上の遠隔格納ドライブと、
前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続するピアツーピア(Peer to Peer)リンクと、を有し、
前記ホスト格納ドライブは、プロセッサ及びメモリを含み、
前記メモリは、前記プロセッサによって実行される時、書込み命令を発行する前記ホストCPUの少なくとも一部に基づいて、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送するようにする命令を格納し、
前記書込み命令は、前記ホスト格納ドライブから前記1つ以上の遠隔格納ドライブへの通知をトリガーするように構成され、
前記1つ以上の遠隔格納ドライブは、メモリを含み、
前記1つ以上の遠隔格納ドライブは、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリにメモリアクセス要求を発行するように構成され、
前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内のメモリブロックの位置またはオフセットの内の少なくとも1つを含み、
前記ホスト格納ドライブは、前記メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させ、前記1つ以上の遠隔格納ドライブによる前記メモリアクセス要求の完了に対しカウンタを減少させるように構成されることを特徴とする格納システム。 - 前記メモリは、ダイナミックランダムアクセスメモリ(DRAM)であることを特徴とする請求項1に記載の格納システム。
- 前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記命令は、前記制御メモリバッファに格納されることを特徴とする請求項2に記載の格納システム。
- 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する2次ポート、PCIeスイッチファブリック、又はネットワークファブリックを含むことを特徴とする請求項1に記載の格納システム。
- 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含むことを特徴とする請求項1に記載の格納システム。
- 前記ピアツーピアリンクは、1つ以上の特定の命令を通じて前記メモリに構成されることを特徴とする請求項1に記載の格納システム。
- ホスト格納ドライブであって、
前記ホスト格納ドライブを1つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、
プロセッサ及びメモリと、を有し、
前記メモリは、前記プロセッサによって実行された時に、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送するようにする命令を格納し、
前記ホスト格納ドライブは、通知を前記1つ以上の遠隔格納ドライブへ送信するように構成され、
前記1つ以上の遠隔格納ドライブは、メモリを含み、
前記1つ以上の遠隔格納ドライブは、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリにメモリアクセス要求を発行するように構成され、
前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内のメモリブロックの位置またはオフセットの内の少なくとも1つを含み、
前記ホスト格納ドライブは、前記メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させ、前記1つ以上の遠隔格納ドライブによる前記メモリアクセス要求の完了に対しカウンタを減少させるように構成されることを特徴とするホスト格納ドライブ。 - 前記メモリは、ダイナミックランダムアクセスメモリである請求項7に記載のホスト格納ドライブ。
- 前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記命令は、前記制御メモリバッファに格納されることを特徴とする請求項8に記載のホスト格納ドライブ。
- 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する2次ポート、PCIeスイッチファブリック、又はネットワークファブリックを含むことを特徴とする請求項7に記載のホスト格納ドライブ。
- 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含むことを特徴とする請求項7に記載のホスト格納ドライブ。
- 前記ピアツーピアリンクは、1つ以上の特定の命令を通じて前記メモリに構成されることを特徴とする請求項7に記載のホスト格納ドライブ。
- ドライブツードライブ格納システムを用いてデータを格納する方法であって、
前記ドライブツードライブ格納システムは、ホストCPUと、プロセッサ及びメモリを含むホスト格納ドライブと、を含むホストサーバーと、
1つ以上の遠隔格納ドライブと、
前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、を有し、
前記データを格納する方法は、データを前記ホスト格納ドライブに書き込むための書込み命令を開始する段階と、
直接メモリアクセスを用いて前記データを前記ホスト格納ドライブの前記メモリに伝送する段階と、
前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送する段階と、を有し、
前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記1つ以上の遠隔格納ドライブに伝送する段階は、
前記データに関する情報を提供するために、前記ホスト格納ドライブから前記1つ以上の遠隔格納ドライブへの通知をトリガーする段階と、
ここで、前記1つ以上の遠隔格納ドライブは、メモリを含み、
前記ホスト格納ドライブによって、メモリブロックが参照されていることを示す前記データが書き込まれている前記1つ以上の遠隔格納ドライブのカウンタを増加させる段階と、
前記1つ以上の遠隔格納ドライブによって、前記ホスト格納ドライブからの前記通知に基づいて、前記ホスト格納ドライブの前記メモリからそれぞれのメモリへの直接メモリアクセス要求を発行する段階と、
前記ホスト格納ドライブによって、前記1つ以上の遠隔格納ドライブによる前記直接メモリアクセス要求の完了に対しカウンタを減少させる段階と、を含み、
前記通知は、前記データのための前記ホスト格納ドライブの前記メモリ内の前記メモリブロックの位置またはオフセットの内の少なくとも1つを含むことを特徴とするデータ格納方法。 - 前記ピアツーピアリンクを通じて前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する段階をさらに有することを特徴とする請求項13に記載のデータ格納方法。
- 前記1つ以上の遠隔格納ドライブで前記情報を受信し、前記情報に応答して直接メモリアクセス要求を発行する段階をさらに有することを特徴とする請求項13に記載のデータ格納方法。
- 前記情報に応答して前記直接メモリアクセスを完了し、前記完了を前記ホスト格納ドライブに通知する段階をさらに有することを特徴とする請求項15に記載のデータ格納方法。
- 前記ホスト格納ドライブの前記メモリは、ダイナミックランダムアクセスメモリであることを特徴とする請求項13に記載のデータ格納方法。
- 前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記データは、前記制御メモリバッファから伝送されることを特徴とする請求項17に記載のデータ格納方法。
- 前記ピアツーピアリンクは、前記ホスト格納ドライブを前記1つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含み、
前記データは、前記専用ポート又は前記再プログラムされたスイッチポートを通じて前記1つ以上の遠隔格納ドライブに各々伝送されることを特徴とする請求項13に記載のデータ格納方法。
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)
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)
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)
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 |
-
2018
- 2018-04-19 US US15/957,773 patent/US11321249B2/en active Active
- 2018-12-18 TW TW107145535A patent/TWI795491B/zh active
-
2019
- 2019-03-11 JP JP2019043503A patent/JP7311280B2/ja active Active
- 2019-03-22 CN CN201910223119.8A patent/CN110362515A/zh active Pending
-
2022
- 2022-05-02 US US17/734,908 patent/US11775454B2/en active Active
-
2023
- 2023-09-27 US US18/373,711 patent/US20240020247A1/en active Pending
Patent Citations (5)
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 |