JP2017004506A - 永続ストレージにデータを格納するための方法およびストレージ機器 - Google Patents

永続ストレージにデータを格納するための方法およびストレージ機器 Download PDF

Info

Publication number
JP2017004506A
JP2017004506A JP2016099380A JP2016099380A JP2017004506A JP 2017004506 A JP2017004506 A JP 2017004506A JP 2016099380 A JP2016099380 A JP 2016099380A JP 2016099380 A JP2016099380 A JP 2016099380A JP 2017004506 A JP2017004506 A JP 2017004506A
Authority
JP
Japan
Prior art keywords
data
target
vaulted memory
storage device
sds
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.)
Granted
Application number
JP2016099380A
Other languages
English (en)
Other versions
JP6348928B2 (ja
Inventor
マイケル・ダブリュ・シャピロ
W Shapiro Michael
ミハイル・オレル
Orel Mikhail
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.)
EMC Corp
Original Assignee
EMC Corp
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 EMC Corp filed Critical EMC Corp
Publication of JP2017004506A publication Critical patent/JP2017004506A/ja
Application granted granted Critical
Publication of JP6348928B2 publication Critical patent/JP6348928B2/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/0614Improving the reliability 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
    • G06F3/065Replication mechanisms
    • 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
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】マルチキャスティングを使用して永続ストレージにデータを書き込むための方法およびシステムを提供する。【解決手段】あらかじめ規定されたマルチキャストアドレスグループを使用して、永続ストレージにおいてボールテッドメモリセグメントにデータを書き込む。さらに、データを格納するボールテッドメモリセグメントを選択するために、永続ストレージの現在の状態を考慮する。【選択図】図3A

Description

関連出願への相互参照
この出願は、2015年5月19日に出願された米国仮特許出願連続番号第62/163,754号の優先権を主張する。米国仮特許出願連続番号第62/163,754号は、ここでその全文が参照により援用される。
背景
システムが永続ストレージにデータを書き込みかつ永続ストレージからデータを読み出し得るスピードはしばしば、システムの全体の性能の重大なファクタである。永続ストレージシステムにデータを転送するまたは永続ストレージシステムからデータを転送する従来のアプローチは、クライアントシステムおよび永続ストレージシステムの両方上のソフトウェア、ファームウェアおよびハードウェアの複数のレイヤーによる処理を必要とする。ストレージシステムがクライアントデータについて障害レジリエンシーの増加を提供することを望む場合、書込データの複数のコピーがストレージシステムによって作成される。結果として、柔軟性の増加を達成するために、存在するストレージ媒体に一度書き込むのに必要なレイテンシーを越えて余分なレイテンシーが引き起こされる。
当該技術の1つ以上の実施形態に従った例示的なシステムを示す図である。 当該技術の1つ以上の実施形態に従った例示的なストレージデバイスを示す図である。 当該技術の1つ以上の実施形態に従った、ボールテッドメモリにデータを格納するための方法を示す図である。 当該技術の1つ以上の実施形態に従った、ボールテッドメモリにデータを格納するための方法を示す図である。 当該技術の1つ以上の実施形態に従った、ボールテッドメモリにデータを格納するための方法を示す図である。 当該技術の1つ以上の実施形態に従った例を示す図である。 当該技術の1つ以上の実施形態に従った例を示す図である。
詳細な説明
ここで、当該技術の特定の実施形態を添付の図面を参照して詳細に記載する。さまざまな図における同様の要素には、一貫性のために、同様の参照番号が示される。
当該技術の実施形態の以下の詳細な説明において、当該技術のより完全な理解を提供するために多くの特定の詳細が記載される。しかしながら、当該技術がこれらの特定の詳細がなくても実施されてもよいことは当業者には明らかであろう。他の例では、説明を不必要に複雑にすることを回避するよう周知の特徴は詳細に記載されない。
この出願の全体にわたって、順序数(たとえば、第1、第2、第3など)は、ある要素(すなわち当該出願における任意の名詞)についての形容詞として使用され得る。順序数の使用は、要素の任意の特定の順序を暗示または作り出すものではなく、また、たとえば「後に」、「前に」、「単一の」および他のそのような用語といった用語の使用によって明らかに開示されていなければ、任意の要素をただ単一の要素に限定するものではない。むしろ、順序数の使用は要素を区別するためのものである。例として、第1の要素は第2の要素とは異なり、第1の要素は1つより多い要素を含み得、要素の順序において第2の要素に後続する(または先行する)。
一般に、当該技術の実施形態は、レイテンシーを犠牲にすることなく、永続ストレージにデータを信頼性のために複数のコピーとともに書き込むとともに、物理的なストレージ構成における変更に適合するための方法およびシステムに関する。より具体的には、当該技術の実施形態は、マルチキャスティングを使用して、ストレージモジュールのセットにおいて永続メモリセグメントにデータを書き込むことに関する。さらに、当該技術の実施形態は、動的に適切なマルチキャスト構成を選択するために、ストレージモジュールの現在の状態を考慮する。
より具体的には、当該技術の実施形態は、あらかじめ規定されたマルチキャストアドレスグループのセットを作成することに関し、あらかじめ規定されたマルチキャストアドレスグループの各々は、データの少なくとも2つのコピーが永続ストレージにおける異なる位置に書き込まれることを可能にする。あらかじめ規定されたマルチキャストアドレスグループのセットは、データを格納するためにさまざまなストレージデバイスが存在しないか、またはそうでなければ、利用可能ではない場合でも、データの少なくとも2つのコピーが永続ストレージに書き込まれ得るように作成される。さらに、あらかじめ規定されたマルチキャストアドレスグループのセットからの特定のあらかじめ規定されたマルチキャストアドレスグループの選択は、永続ストレージの現在の状態(すなわちどのストレージデバイスがデータを格納するのに利用可能であるか)に基づく。この態様で、当該技術の実施形態は、永続ストレージの状態に関する情報と組み合わせて、あらかじめ規定されたマルチキャストアドレスグループのセットを使用して、I/Oファブリックの動的なマルチキャストインプリメンテーションを可能にする。換言すると、当該技術の実施形態は、永続ストレージの状態と組み合わせて、永続ストレージにおいてデータの少なくとも2つのコピーをどこに書き込むべきかを動的に決定するよう、あらかじめ規定されたマルチキャストアドレスグループのセットを使用する。
当該技術の実施形態は、クライアントからの書込要求に応答して、ストレージ機器が効率的にデータの複数のコピーを格納することを可能にし得る。マルチキャストアドレスグループを有するようにあらかじめ構成される(あらかじめ規定されたマルチキャストアドレスグループとも称される)IOファブリックを使用して、(ソリッドステートストレージに直接的に書き込む代わりに)メモリロケーションにデータを書き込むことにより、効率(または低レイテンシー)が達成され得る。当該技術の一実施形態において、個々のマルチキャストアドレスグループの構成は、I/Oファブリックのオペレーションの間に変化し得ない。換言すると、ひとたびマルチキャストアドレスグループが構成され、かつ、I/Oファブリックがマルチキャストアドレスグループを使用して要求を処理している場合、I/Oファブリックが特定のマルチキャストアドレスグループの使用を、再構成される間に一時停止しなければ、マルチキャストアドレスグループの構成は変更され得ない。
図1は、当該技術の1つ以上の実施形態に従った例示的なシステムを示す。当該システムは、1つ以上のストレージ機器(102)に動作可能に接続される1つ以上のクライアント(100)を含む。これらのコンポーネントの各々は以下に記載される。
当該技術の一実施形態において、各クライアント(100)は、プロセッサ(または別のタイプの処理コンポーネント)と、メモリと、ストレージ機器におけるインプット/アウトプット(IO)ファブリック(104)に接続することを可能にする物理インターフェイスとを含む物理デバイスである。クライアントの各々は、クライアントとIOファブリックとの間で、リンク、すなわち物理的接続、を介してIOファブリックに接続され得る。
さらに、各クライアントは、当該技術の1つ以上の実施形態を実現するために、通信プロトコル(またはその部分)を実現するための機能を含み得る。より具体的には、各クライアントは、要求および/もしくはデータをストレージ機器に(通信プロトコルを使用して)送り、ならびに/または、(通信プロトコルを使用して)ストレージ機器から応答および/もしくはデータを受け取る機能を含み得る。
当該技術の一実施形態において、ペリフェラルコンポーネントインターコネクト(PCI:Peripheral Component Interconnect)、PCIエクスプレス(PCIe: PCI-Express)、PCIエクステンデッド(PCI−X: PCI-eXtended)、ノンボラタイルメモリエクスプレス(NVMe:Non-Volatile Memory Express)、ノンボラタイルメモリエクスプレス(NVMe)オーバPCIエクスプレスファブリック(Non-Volatile Memory Express (NVMe) over a PCI-Express fabric)、ノンボラタイルメモリエクスプレス(NVMe)オーバイーサネット(登録商標)ファブリック(Non-Volatile Memory Express (NVMe) over an Ethernet fabric)、およびノンボラタイルメモリエクスプレス(NVMe)オーバインフィニバンドファブリック(Non-Volatile Memory Express (NVMe) over an Infiniband fabric)といった通信プロトコルの1つ以上を使用して、クライアント(100)はストレージ機器(102)と通信するように構成される。当業者であれば、当該技術は上記のプロトコルに限定されないということを理解するであろう。
当該技術の一実施形態において、ストレージ機器(102)は、IOファブリック(104)、プロセッサ(106)、メモリ(108)および永続ストレージ(110)を含む。これらのコンポーネントの各々は以下に記載される。
当該技術の一実施形態において、IOファブリック(104)は、ストレージ機器(102)において、クライアントとさまざまなコンポーネントとの間の物理的な接続性を提供する1つ以上の物理コンポーネントである。たとえば、図1に示されるように、IOファブリックは、プロセッサ(106)および永続ストレージ(110)(または、より具体的には、そこに位置するストレージデバイス(114A,114N))に物理的に接続される。
さらに、IOファブリックは、マルチキャスティングを実現する機能を含む(たとえば図3A〜図3Cを参照)。より具体的には、当該技術の1つ以上の実施形態において、IOファブリックは、(i)データおよび物理アドレスを含むIOトランザクションを受け取り、(ii)物理アドレスがマルチキャストアドレスグループの一部であると決定し、(iii)(ii)でなされた決定に基づいて、マルチキャスト書込を実行する(すなわちストレージ機器内の2つ以上のメモリロケーション(下に記載される)へのデータのコピーの書き込みを開始する)(たとえば図3Bおよび図3Cを参照)機能を含む。
当該技術の一実施形態において、IOファブリックは、ここで参照により援用される米国特許出願連続番号第14/224,846号に記載されるPCIeファブリックのようなPCIeファブリックである。IOファブリックはPCIeファブリックとして実現されているが、当該技術は、他の通信プロトコルを使用して実現され、および/または、米国特許出願連続番号第14/224,846号に記載されるPCIeファブリックとは異なるアーキテクチャを含むIOファブリックを使用して実現され得る。
当該技術の一実施形態において、プロセッサ(106)は、命令を実行するように構成される単一コアまたはマルチコアを有する電子回路のグループである。当該技術の一実施形態において、プロセッサは、複合命令セット(CISC: Complex Instruction Set)アーキテクチャまたは縮小命令セット(RISC: Reduced Instruction Set)アーキテクチャを使用して実現され得る。プロセッサは、(PCIeプロトコルによって規定されるように)ルートコンプレックスを含み得る。そのような場合、メモリ(108)は、ルートコンプレックスを介してプロセッサに接続され得る。代替的には、メモリ(108)は、別の接続メカニズムを使用して、プロセッサに直接的に接続され得る。当該技術の一実施形態において、メモリ(108)は任意の揮発性メモリに対応する。当該揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスDRAM、SDR SDRAMおよびDDR SDRAMを含むが、これらに限定されない。
当該技術の一実施形態において、永続ストレージ(110)は、各々がデータを格納するように構成される2つ以上のストレージデバイス(114A,114N)を含む。ストレージデバイスは、スライス(112A,112M)へグループ化され得、各スライスは少なくとも2つのストレージデバイスを含む。さらに、各ストレージデバイスは単一のスライスにのみ関連付けられ得る。当該技術の一実施形態において、IOファブリックは1つ以上のスイッチ(図示せず)を含んでおり、各スイッチは、物理的なポートのセットと、1つの物理的なポート上で要求および/またはデータを受け取り、かつ、1つ以上の他の物理的なポートに要求および/またはデータをルーティングする機能とを含む。そのような場合、所与のスライスに関連付けられるすべてのストレージデバイスは、ポートのセットにおける1つのポートを介して同じスイッチに接続される。換言すると、1つのスライス当たり1つのスイッチが存在し得、また、スイッチに接続されるすべてのストレージデバイスは同じスライスに関連付けられる。ストレージデバイスに関する付加的な詳細が図2において以下に提供される。
図2は、当該技術の1つ以上の実施形態に従った例示的なストレージデバイスを示す。ストレージデバイス(200)は、ストレージデバイスコントローラ(202)、ボールテッドメモリ(vaulted memory)(206)、ソリッドステートストレージ(204)およびキャパシタ(210)を含み得る。これらのコンポーネントの各々は以下に記載される。
当該技術の一実施形態において、ストレージデバイスコントローラ(202)は、要求および/またはデータをIOファブリックから受け取るように構成される。さらに、ストレージデバイスコントローラは、永続であるか、または、ソリッドステートストレージへのボールティング(vaulting)により永続化されるメモリへのデータを受け取るように構成される。ストレージデバイスコントローラはさらに、永続メモリおよび/またはソリッドステートストレージからデータを読み出すとともにストレージシステムにおける他のコンポーネントにデータを提供するように構成され得る。
当該技術の一実施形態において、ボールテッドメモリ(206)は、2つ以上のボールテッドメモリセグメント(208A,208P)へ論理的または物理的に分割され、各ボールテッドメモリセグメントはボールテッドメモリセグメントIDに関連付けられる。ボールテッドメモリセグメントは、データがストレージ機器に書き込まれる書込パスの一部として使用される(図3A〜図3Cを参照)。当該技術の一実施形態において、ストレージデバイスコントローラ(202)は、ストレージデバイスにおける電源障害の通知(またはストレージデバイスが電力を失うかもしれない任意の他のイベント)の場合には、ソリッドステートストレージ(204)にボールテッドメモリ(206)の全コンテンツを書き込むように構成される。より具体的には、ストレージデバイスコントローラは、電源障害の通知の時間と、ストレージデバイスへの電力の実際の損失との間に、ソリッドステートストレージ(204)にボールテッドメモリの全コンテンツを書き込むように構成される。当該技術の一実施形態において、キャパシタ(210)は、ボールテッドメモリにおけるすべてのデータがソリッドステートストレージに書き込まれるために、ストレージデバイス(200)に十分な量の電力を放電し得るようにサイズ決めされる。
当該技術の一実施形態において、ソリッドステートストレージ(204)は、永続データを格納するようソリッドステートメモリを使用する任意のデータストレージデバイスに対応する。当該技術の一実施形態において、ソリッドステートメモリは、NANDフラッシュメモリ、NORフラッシュメモリ、磁気RAMメモリ(M−RAM)、スピントルク磁気RAMメモリ(ST−MRAM)、相変化メモリ(PCM)、メモリジスティブメモリ(memristive memory)、または不揮発性ストレージクラスメモリ(SCM)として規定される任意の他のメモリを含んでもよいが、これらに限定されない。当業者であれば、当該技術の実施形態はストレージクラスメモリに限定されないということを理解するであろう。
図3A〜図3Cは、当該技術の1つ以上の実施形態に従った、ボールテッドメモリにデータを格納するための方法を示す。フローチャートにおけるさまざまなステップが順次、提示および記載されるが、当業者であれば、ステップのうちのいくつかまたはすべてが異なる順番で実行されてもよいこと、ステップのうちのいくつかまたはすべてが組み合わせられてもよくまたは省略されてもよいこと、およびステップのうちのいくつかまたはすべてが並列に実行されてもよいことを理解するであろう。
より具体的には、当該技術の1つ以上の実施形態において、クライアントからの書込要求に応答して、ストレージ機器は、データの少なくとも2つのコピーを格納するように構成される。ストレージ機器は、データの複数のコピーを格納するようマルチキャスティングを使用し得る。そのような場合、IOファブリックは、1つ以上のマルチキャストアドレスグループを有するようあらかじめ構成され得、ストレージ機器は、マルチキャストアドレスグループ内の物理アドレスを選択し、その後、選択された物理アドレスを使用して永続ストレージにデータを格納する機能を含み得る。図3A〜図3Cを参照して、図3Aは、永続ストレージにデータを書き込むために物理アドレスを決定するための方法を示す。図3Bおよび図3Cは、永続ストレージにデータを書き込むために前述の物理アドレスを使用するためのさまざまな方法を示す。
図3Aを参照して、ステップ300では、書込要求がストレージ機器によってクライアントから受け取られる。書込要求は、クライアントに格納されるデータの論理アドレスを含み得る。書込要求はさらにそれ自体データを含み得る。当該技術の一実施形態では、論理アドレスは、データがクライアントの視点から見て存在するように思われるアドレスである。当該技術の一実施形態では、論理アドレスは、nタプルにハッシュ関数(たとえばSHA−1、MD−5など)を適用することによって生成されるハッシュ値であり(または当該ハッシュ値を含む)、nタプルは、<オブジェクトID,オフセット>である。そのような実施形態において、オブジェクトIDはファイルを識別し得、オフセットは、ファイルの開始アドレスに対する位置を特定する。当該技術の別の実施形態において、nタプルは<オブジェクトID,オフセット,発生時間>であり、発生時間は、(オブジェクトIDを使用して識別される)ファイルが作成された時間に対応する。代替的には、論理アドレスは、論理オブジェクトIDおよび論理バイトアドレスか、または論理オブジェクトIDおよび論理アドレスオフセットを含んでもよい。当該技術の別の実施形態では、論理アドレスは、オブジェクトIDおよびオフセットを含む。当業者は、論理アドレスが上記の実施形態に限定されないということを認識するであろう。
図3Aの議論を継続して、ステップ302では、ターゲットストレージデバイス(SD)は、永続ストレージにおいて現在利用可能であるストレージデバイスのセットから選択される。SDは、ストレージ機器がデータをSDから読み出すとともにSDにデータを書き込むことが可能である場合、利用可能であると考えられ得る。したがって、SDがストレージ機器において物理的に存在し得る間、別の問題によってSDが読出要求および書込要求を処理することを妨げられていれば、SDは必ずしも利用可能ではない場合がある。ストレージ機器は、ストレージ機器におけるどのSDが利用可能かトラッキングし得る。
ステップ304では、ターゲットSDがひとたび選択されると、ターゲットSDが位置するスライス(たとえば図1を参照)が識別される。ストレージ機器は、ターゲットSDが存在するスライスを識別するよう、SDスライスマッピングを使用し得る。たとえば、ターゲットSDは、(36のうち)SDナンバー7であり得、SDスライスマッピングに基づいて、(スライス0〜5のうちの)スライスナンバー1に位置し得る。
ステップ306では、ステップ304において識別されたスライス内のターゲットSDの論理SDインデックスが決定される。たとえば、ターゲットSDがSDナンバー7であり、ターゲットSDが位置するスライスがSD5、7〜9および14〜15を含む場合、当該スライスについての論理SDインデックスは2である(可能な論理SDインデックスは1〜6と番号付けされる)。
ステップ308では、バッドSDマッピング(bad SD mapping)が得られる。バッドSDマッピングは、スライス(すなわちステップ304において識別されたスライス)についてのバッドSDマッピングか、ステップ304において識別されたスライスを含むスライスのセットについてのバッドSDマッピングか、または、ストレージ機器におけるすべてのスライスについてのバッドSDマッピングであり得る。バッドSDマッピングの範囲にかかわらず、バッドSDマッピングは、少なくともステップ304において識別されるスライスにおけるSDの利用可能性を特定する。たとえば、スライスがSD5、7〜9および14〜15を含み、かつ、SD5および8が利用不可能である場合、バッドSDマッピングは<011011>であり得、0はSD(論理SDインデックスによって参照される)が利用可能ではないことを示しており、また、1はSD(論理SDインデックスによって参照される)が利用可能であることを示す。バッドSDマッピングの他の表現(すなわちビットマップでない表現)は、当該技術から逸脱することがなければ、使用され得る。
ステップ310では、(ステップ306において得られた)論理SDインデックスと、ステップ308において得られたバッドSDマッピングとが、ボールテッドメモリセグメントIDを決定するように使用される。より具体的には、当該技術の一実施形態では、バッドSDマッピングおよび論理SDインデックスは、マルチキャストアドレスグループID(MC GID)を決定するよう使用され、MC GIDは少なくとも1つのボールテッドメモリセグメントIDに関連付けられる。MC GIDがひとたび識別されると、論理SDインデックスは、MC GIDに関連付けられるボールテッドメモリセグメントIDを識別するように使用される。
以下に、当該技術の1つ以上の実施形態に従った、ボールテッドメモリセグメントIDを識別する一例を記載する。この例は当該技術を限定するようには意図されない。
論理SDインデックスが2でありバッドSDマッピングが<001011>であるシナリオを考える。ボールテッドメモリセグメントIDは、上記の情報およびテーブル1を使用して決定され得る。
Figure 2017004506
上記の例を継続して、論理SDインデックス(すなわち2)およびバッドSDマッピング(すなわち<001011>)は、MC GID=G1を識別するために使用される。より具体的には、まず、論理SDインデックスは、G0〜G7からG0〜G3にMC GIDを絞るよう使用され得る。バッドSDマッピング(またはバッドSDマッピングにおける少なくとも最初の3ビット)が、G0〜G3のセットからG1を識別するように使用され得る。ひとたびG1が識別されると、論理SDインデックスは、V1をボールテッドメモリセグメントIDとして識別するよう使用される。
ステップ312では、(物理アドレスの範囲を特定する)マルチキャストアドレスグループは、ステップ310において識別されるボールテッドメモリセグメントIDに基づいて決定される。より具体的には、当該技術の一実施形態において、論理SDインデックスおよびボールテッドメモリセグメントIDの組合せは、マルチキャストアドレス範囲を識別するために使用される。当該技術の一実施形態において、マルチキャストアドレスグループは、論理SDインデックスに関連付けられるSDにおける選択されたボールテッドメモリセグメントへのデータの書込と、ステップ302において選択されたSDと同じスライス内の異なるSDにおける別のボールテッドメモリセグメントへのデータのコピーの書込とを可能にするために、IOファブリック内にあらかじめ構成される。
以下に、当該技術の1つ以上の実施形態に従ったマルチキャストアドレスグループを識別することの一例を記載する。この例は、当該技術を限定するようには意図されない。
ボールテッドメモリセグメントIDがV1であり、論理SDインデックスが2であるシナリオを考える。マルチキャストアドレスグループが、上記の情報およびテーブル2を使用して決定され得る。テーブル2は、ボールテッドメモリセグメントIDとマルチキャストアドレスグループとの間のマッピングを提供する。このマッピングの一部として、テーブル2は、ストレージ機器内においてデータがどのようにミラーリングされるか示す。たとえば、V0がボールテッドメモリセグメントIDである場合、データの1つのコピーは、論理SDインデックス1を使用して識別されたSDにおけるボールテッドメモリに格納され、データの第2のコピーは、論理インデックス2を使用して識別されたSDにおけるボールテッドメモリに格納される。
Figure 2017004506
上記のテーブルを使用して、1つ以上の行を選択するためにボールテッドセグメントメモリIDが使用される。ボールテッドメモリセグメントIDを使用して1つより多い行が識別される場合、上記のテーブルにおいて、適切な行を識別するよう論理SDインデックスが使用される。当該例において、ボールテッドメモリセグメントIDはV1であり、そのため、V1に関連付けられる1つの行だけが存在する。しかしながら、V1に関連付けられる2つの可能なマルチキャストアドレスグループ、すなわちG1およびG3、が存在する。(バッドSDマッピングを使用して決定されるように)すべてのSDが利用可能な場合、マルチキャストアドレスグループとしてG3が選択される。しかしながら、すべてのSDが利用可能であるわけではない場合、マルチキャストアドレスグループG1が選択される。当該例では、すべてのSDが利用可能であるわけではないので、G1がマルチキャストアドレスグループとして選択される。
テーブル2がクライアントからのデータのミラーリングを示している一方、当該技術は、永続ストレージに対するデータの2つより多いコピーの書込を含むよう実現され得る。
図3Aの議論を継続して、ステップ314では、選択されたマルチキャストアドレスグループに関連付けられるアドレス範囲内の物理アドレスが選択される。
このステージでは、物理アドレスが決定されている。前述のマルチキャストアドレスを使用して永続ストレージにデータを書き込むためにさまざまな方法が使用されてもよい。図3Bおよび図3Cは、マルチキャストアドレスを使用するための2つの例示的な方法を示す。(図3Bおよび図3Cに示される方法を除く)他の方法が、当該技術から逸脱することなく、永続ストレージにデータを書き込むために実現され得る。
図3Bを参照して、図3Bは、データがまずストレージ機器のメモリ(たとえば図1の108を参照)に格納され、その後、プロセッサ(たとえば図1の106を参照)が永続ストレージへのデータの書込を開始するシナリオを記載する。より具体的には、ステップ320では、ストレージ機器は、そのメモリ(たとえば図1の108を参照)にクライアントからのデータのコピーを格納する。ステップ320は、ステップ322に先立って任意の時点に行なわれ得る(たとえば、図3Aのステップと並行して行なわれ得る)。当該技術の別の実施形態において、書込要求は、データ(たとえば図3Aのステップ300を参照)を含み得、そのような場合、ステップ320はステップ300の一部として実行され得る。
ステップ322では、プロセッサは、IOファブリックへのIOトランザクションを発行し、IOトランザクションは、クライアントがその書込要求において特定した(たとえば図3Aのステップ300参照)データと、物理アドレスとを含む。IOトランザクションは、任意のフォーマットであり得、かつ、データが永続ストレージに書き込まれるために、IOファブリックがIOトランザクションを処理するように必要とされる任意の他のコンテンツを含む。当該技術の一実施形態において、IOトランザクションはPCIeトランザクションである。当該技術はPCIeトランザクションに限定されない。
ステップ324では、ターゲットSDにおいてボールテッドメモリセグメントにデータの1つのコピーを格納し、同じスライスにおける別のSDのボールテッドメモリにデータの第2のコピーを格納するために、IOファブリックは、IOトランザクションを受け取って処理する。IOトランザクションを処理することは、(i)IOトランザクションにおける物理アドレスがマルチキャストアドレスグループに関連付けられていると決定することと、(ii)(i)での決定に基づいて、ターゲットSDへの1つのIOトランザクションを発行し(図3Aのステップ304を参照)、別のSD(図3Aのステップ312において決定される)に第2のIOトランザクションを発行することとを含み得る。ステップ324の後に、メモリ(108)における1つのコピーと、ターゲットSDでのボールテッドメモリにおける1つのコピーと、ターゲットSDと同じスライスにおける別のSDでのボールテッドメモリにおける1つのコピーといったデータの3つのコピーがストレージ機器に存在し得る。
図3Cを参照して、図3Cは、ステップ314で得られた物理アドレスを使用して、クライアントがIOトランザクションを生成するシナリオを記載する。
ステップ330では、ストレージ機器はクライアントに物理アドレスを提供する。
ステップ332では、クライアントは、IOファブリックにIOトランザクションを発行し、IOトランザクションは、クライアントからのデータと物理アドレスとを含む。IOトランザクションは、任意のフォーマットであり得、かつ、データが永続ストレージに書き込まれるために、IOファブリックがIOトランザクションを処理するように必要とされる任意の他のコンテンツを含む。当該技術の一実施形態において、IOトランザクションはPCIeトランザクションである。当該技術はPCIeトランザクションに限定されない。
ステップ334では、IOファブリックは、メモリにデータの1つのコピーを格納し、ターゲットSDにおけるボールテッドメモリセグメントにデータの1つのコピーを格納し、同じスライスにおける別のSDのボールテッドメモリにデータの1つのコピーを格納するために、IOトランザクションを受け取るとともに処理する。IOトランザクションを処理することは、(i)IOトランザクションにおける物理アドレスがマルチキャストアドレスグループに関連付けられていると決定することと、(ii)(i)での決定に基づいて、ターゲットSDへの1つのIOトランザクションを発行し(図3Aのステップ304を参照)、別のSD(図3Aのステップ312において決定される)に第2のIOトランザクションを発行し、プロセッサに第3のIOトランザクションを発行することとを含み得る。ステップ324の後に、メモリ(108)における1つのコピーと、ターゲットSDでのボールテッドメモリにおける1つのコピーと、ターゲットSDと同じスライスにおける別のSDでのボールテッドメモリにおける1つのコピーといったデータの3つのコピーがストレージ機器に存在し得る。
図3Bまたは図3Cが永続ストレージ内にデータを格納するように実現されるかどうかにかかわらず、何らかの後の時点で、ボールテッドメモリにおけるデータのコピーの各々は、ボールテッドメモリが位置するSDのソリッドステートストレージに格納される。
図4A〜図4Bは、当該技術の1つ以上の実施形態に従った例を示す。当該技術は上記の例に限定されない。
図4Aを参照して、ストレージ機器が複数のスライスを含み、スライス1がSD1、SD2およびSD3を含む(図4Aを参照)シナリオを考える。さらに、スライス1における前述のSDの論理SDインデックスは、それぞれ1、2および3である。
この例において、クライアントがストレージ機器に書込要求を送信すると仮定する。当該要求に応答して、ストレージ機器はターゲットSDとしてSD1を選択する。この情報に基づいて、SD1についての論理SDインデックスは1である。その後、ストレージ機器は、スライス1について、<110>というバッドSDマッピングを得る。論理SDインデックスおよびバッドSDマッピングは、テーブル1(上記)を使用してMC GIDとしてG0を識別するために使用される。論理SDインデックスとともに、MC GIDおよびテーブル1が、V0をボールテッドメモリセグメントIDとして識別するよう使用される。
バッドSDマッピングとともに、ボールテッドメモリセグメントID(V0)およびテーブル2が、G1をマルチキャストアドレスグループとして識別するよう使用される。テーブル2に示されるように、G1の使用(またはより具体的にはG1内の物理アドレス)によって、データのコピーが、SD1におけるボールテッドメモリセグメントID V0に関連付けられるボールテッドメモリセグメントに格納され、かつ、データの別のコピーがSD2におけるボールテッドメモリセグメントID V0に関連付けられるボールテッドメモリセグメントに格納される(図4Aを参照)。
図4Bを参照して、ストレージ機器が複数のスライスを含み、スライス1がSD1、SD2およびSD3を含む(図4Bを参照)シナリオを考える。さらに、スライス1における前述のSDの論理SDインデックスは、それぞれ1、2および3である。
この例において、クライアントがストレージ機器に書込要求を送信すると仮定する。当該要求に応答して、ストレージ機器はターゲットSDとしてSD1を選択する。この情報に基づいて、SD1についての論理SDインデックスは1である。その後、ストレージ機器は、スライス1について、<101>というバッドSDマッピングを得る。論理SDインデックスおよびバッドSDマッピングは、テーブル1(上記)を使用してMC GIDとしてG2を識別するために使用される。論理SDインデックスとともに、MC GIDおよびテーブル1が、V3をボールテッドメモリセグメントIDとして識別するよう使用される。
バッドSDマッピングとともに、ボールテッドメモリセグメントID(V3)およびテーブル2が、G2をマルチキャストアドレスグループとして識別するよう使用される。テーブル2に示されるように、G2の使用(またはより具体的にはG2内の物理アドレス)によって、データのコピーが、SD1におけるボールテッドメモリセグメントID V3に関連付けられるボールテッドメモリセグメントに格納され、かつ、データの別のコピーがSD3におけるボールテッドメモリセグメントID V3に関連付けられるボールテッドメモリセグメントに格納される(図4Bを参照)。
当該技術の実施形態を実行するコンピュータ読取可能プログラムコードの形態にあるソフトウェア命令は、全体的または部分的に、一時的にまたは永久的に、CD、DVD、ストレージデバイス、ディスケット、テープ、フラッシュメモリ、物理メモリまたは任意の他のコンピュータ読取可能記憶媒体のような一時的でないコンピュータ読取可能媒体上に格納され得る。具体的には、ソフトウェア命令は、プロセッサによって実行されると、当該技術の実施形態を実行するように構成されるコンピュータ読取可能プログラムコードに対応し得る。
当該技術を限られた数の実施形態に関して記載したが、この開示の利益を有する当業者であれば、本願明細書において開示される当該技術の範囲から逸脱しない他の実施形態が作り出され得るということを理解するであろう。したがって、当該技術の範囲は、添付の特許請求の範囲によってのみ限定されるべきである。

Claims (20)

  1. 永続ストレージにデータを格納するための方法であって、
    前記永続ストレージにおける複数のストレージデバイス(SD)のうちの1つであるターゲットストレージデバイス(SD)を決定することと、
    前記複数のSDのうち少なくとも前記ターゲットSDおよび第2のSDがデータを格納するのに利用可能であることを示すバッドSDマップを使用して、あらかじめ規定されたマルチキャストアドレスグループのセットからあらかじめ規定されたマルチキャストアドレスグループを選択することと、
    前記あらかじめ規定されたマルチキャストアドレスグループに関連付けられる物理アドレスを選択することと、
    前記物理アドレスを使用して、前記ターゲットSDに前記データを書き込み、かつ、前記第2のSDに前記データのコピーを書き込むこととを含む、方法。
  2. 前記あらかじめ規定されたマルチキャストアドレスグループを選択する前に、前記あらかじめ規定されたマルチキャストアドレスグループを有するインプット/アウトプット(IO)ファブリックを構成することをさらに含み、
    前記ターゲットSDおよび前記第2のSDに前記データを書き込むことは、前記ターゲットSDに前記データを書き込むよう前記IOファブリックを使用することを含む、請求項1に記載の方法。
  3. 前記ターゲットSDおよび前記第2のSDは前記IOファブリック内のスライスに存在する、請求項2に記載の方法。
  4. 前記スライスは第2の複数のSDを含み、前記第2の複数のSDは前記ターゲットSDおよび前記第2のSDを含み、前記複数のSDは前記第2の複数のSDを含み、
    前記バッドSDマップは、前記第2の複数のSDの各々の状態を含む、請求項3に記載の方法。
  5. 前記ターゲットSDは、複数のボールテッドメモリセグメントを含むボールテッドメモリを含み、前記データは、前記複数のボールテッドメモリセグメントの1つに書き込まれる、請求項1に記載の方法。
  6. 前記ターゲットSDはソリッドステートストレージをさらに含み、
    前記方法はさらに、前記ボールテッドメモリセグメントにおける前記データを前記ソリッドステートストレージへコピーすることを含む、請求項5に記載の方法。
  7. 永続ストレージにデータを格納するための方法であって、
    永続ストレージにおける複数のストレージデバイス(SD)のうちの1つであるターゲットストレージデバイス(SD)を決定することと、
    前記ターゲットSDにおいてボールテッドメモリセグメントを識別することと、
    前記ボールテッドメモリセグメントおよび前記複数のSDの第2のSDにおける第2のボールテッドメモリセグメントに関連付けられるあらかじめ規定されたマルチキャストアドレスグループを識別することと、
    前記あらかじめ規定されたマルチキャストアドレスグループに関連付けられる物理アドレスを選択することと、
    前記物理アドレスを使用して前記永続ストレージに前記データを書き込むこととを含む、方法。
  8. 前記あらかじめ規定されたマルチキャストアドレスグループを識別する前に、前記あらかじめ規定されたマルチキャストアドレスグループを有するインプット/アウトプット(IO)ファブリックを構成することをさらに含み、
    前記永続ストレージに前記データを書き込むことは、前記ターゲットSDに前記データを書き込むために前記IOファブリックを使用することを含み、
    前記ターゲットSDおよび前記第2のSDは前記IOファブリック内のスライスに存在する、請求項7に記載の方法。
  9. 前記ターゲットSDは、複数のボールテッドメモリセグメントを含むボールテッドメモリを含み、前記ボールテッドメモリセグメントは、前記複数のボールテッドメモリセグメントの1つである、請求項7に記載の方法。
  10. 前記ターゲットSDはNANDフラッシュをさらに含み、
    前記方法はさらに、前記ボールテッドメモリセグメントにおける前記データを前記NANDフラッシュにコピーすることを含み、前記データ、請求項7に記載の方法。
  11. 前記ボールテッドメモリセグメントを識別することは、
    バッドSDマップを得ることを含み、前記バッドSDマップは前記ターゲットSDの状態を含み、
    前記ボールテッドメモリセグメントは、少なくとも部分的に、前記バッドSDマップを使用して識別される、請求項7に記載の方法。
  12. 前記ボールテッドメモリセグメントを識別することは、
    第2の複数のSDを含むスライスを識別することを含み、前記第2の複数のSDは前記ターゲットSDおよび前記第2のSDを含み、前記複数のSDは前記第2の複数のSDを含み、前記ボールテッドメモリセグメントを識別することはさらに、
    前記スライスについて、第1の複数のSDの各々の状態を含むバッドSDマップを得ることと、
    前記スライスにおいて前記ターゲットSDについて論理SDインデックスを決定することとを含み、
    前記ボールテッドメモリセグメントは、少なくとも部分的に、前記スライスについて前記論理SDインデックスおよび前記バッドSDマッピングを使用して識別される、請求項7に記載の方法。
  13. 前記スライスについて前記論理SDインデックスおよび前記バッドSDマッピングを少なくとも部分的に使用して、前記第2のボールテッドメモリセグメントを識別することをさらに含む、請求項12に記載の方法。
  14. ストレージ機器であって、
    メモリと、
    永続ストレージとを含み、前記永続ストレージは、
    ボールテッドメモリセグメントおよび第1のソリッドステートストレージを含む第1のストレージデバイス(SD)と、
    第2のボールテッドメモリセグメントおよび第2のソリッドステートストレージを含む第2のSDと、
    前記プロセッサと前記永続ストレージとの間に配置されるインプット/アウトプット(IO)ファブリックとを含み、
    前記ストレージ機器は、
    少なくとも前記第1のSDおよび前記第2のSDを示すバッドSDマップを使用して、あらかじめ規定されたマルチキャストアドレスグループのセットからあらかじめ規定されたマルチキャストアドレスグループを選択することと、
    前記あらかじめ規定されたマルチキャストアドレスグループに関連付けられる物理アドレスを選択することと、
    前記物理アドレスを使用して、前記ターゲットSDに前記データを書き込み、かつ、前記第2のSDに前記データのコピーを書き込むことを行うようにプログラムされる、ストレージ機器。
  15. 前記ストレージ機器はさらに、
    前記あらかじめ規定されたマルチキャストアドレスグループを選択する前に、前記あらかじめ規定されたマルチキャストアドレスグループを有するインプット/アウトプット(IO)ファブリックを構成するようにプログラムされ、
    前記第1のSDおよび前記第2のSDに前記データを書き込むことは、前記第1のSDに前記データを書き込むよう前記IOファブリックを使用することを含む、請求項14に記載のストレージ機器。
  16. 前記第1のSDおよび前記第2のSDは前記IOファブリック内のスライスに存在する、請求項15に記載のストレージ機器。
  17. 前記スライスは第2の複数のSDを含み、前記第2の複数のSDは前記第1のSDおよび前記第2のSDを含み、前記複数のSDは前記第2の複数のSDを含み、
    前記バッドSDマップは、第2の複数のSDの各々の状態を含む、請求項16に記載のストレージ機器。
  18. 前記第1のSDは、複数のボールテッドメモリセグメントを含むボールテッドメモリを含み、前記データは、前記複数のボールテッドメモリセグメントの1つに書き込まれる、請求項14に記載のストレージ機器。
  19. 前記第1のSDはさらにソリッドステートストレージを含み、
    前記方法はさらに、前記ボールテッドメモリセグメントにおける前記データを前記ソリッドステートストレージへコピーすることを含む、請求項18に記載のストレージ機器。
  20. 前記IOファブリックは、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe: Peripheral Component Interconnect Express)を使用して実現される、請求項14に記載のストレージ機器。
JP2016099380A 2015-05-19 2016-05-18 永続ストレージにデータを格納するための方法およびストレージ機器 Active JP6348928B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562163754P 2015-05-19 2015-05-19
US62/163,754 2015-05-19
US14/788,129 US10019168B2 (en) 2015-05-19 2015-06-30 Method and system for multicasting data to persistent memory
US14/788,129 2015-06-30

Publications (2)

Publication Number Publication Date
JP2017004506A true JP2017004506A (ja) 2017-01-05
JP6348928B2 JP6348928B2 (ja) 2018-06-27

Family

ID=56081257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016099380A Active JP6348928B2 (ja) 2015-05-19 2016-05-18 永続ストレージにデータを格納するための方法およびストレージ機器

Country Status (4)

Country Link
US (1) US10019168B2 (ja)
EP (1) EP3096220B1 (ja)
JP (1) JP6348928B2 (ja)
CN (1) CN106407128B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314415B2 (en) 2019-09-11 2022-04-26 Kioxia Corporation Storage system, storage device, and method of controlling storage system

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10613977B1 (en) * 2018-09-27 2020-04-07 Amazon Technologies, Inc. Target port with distributed transactions
US10831693B1 (en) 2018-09-27 2020-11-10 Amazon Technologies, Inc. Multicast master
CN112748858B (zh) 2019-10-30 2024-04-19 伊姆西Ip控股有限责任公司 用于管理盘阵列的方法、电子设备和计算机程序产品
US11741350B2 (en) 2019-11-27 2023-08-29 Amazon Technologies, Inc. Efficient utilization of processing element array

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301832B1 (en) * 2012-03-23 2012-10-30 DSSD, Inc. Storage system with guaranteed read latency
WO2013142673A1 (en) * 2012-03-23 2013-09-26 DSSD, Inc. System and methods for storing data using table of contents entries

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2785422B1 (fr) * 1998-10-29 2000-12-15 Schlumberger Ind Sa Dispositif et procede pour la securisation d'un circuit integre
US6665780B1 (en) * 2000-10-06 2003-12-16 Radiant Data Corporation N-way data mirroring systems and methods for using the same
ATE480822T1 (de) * 2001-02-13 2010-09-15 Candera Inc Failover-verarbeitung in einem speicherungssystem
US8386727B2 (en) * 2001-12-31 2013-02-26 Hewlett-Packard Development Company, L.P. Supporting interleaved read/write operations from/to multiple target devices
US7962562B1 (en) 2004-04-30 2011-06-14 Netapp, Inc. Multicasting message in a network storage system to local NVRAM and remote cluster partner
EP2800314A3 (en) * 2005-10-05 2015-01-14 Nortel Networks Limited Provider link state bridging
US7603529B1 (en) * 2006-03-22 2009-10-13 Emc Corporation Methods, systems, and computer program products for mapped logical unit (MLU) replications, storage, and retrieval in a redundant array of inexpensive disks (RAID) environment
US20080082533A1 (en) * 2006-09-28 2008-04-03 Tak Fung Wang Persistent locks/resources for concurrency control
US8344475B2 (en) * 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US9208025B2 (en) * 2009-07-30 2015-12-08 Cleversafe, Inc. Virtual memory mapping in a dispersed storage network
US9407533B2 (en) * 2011-06-28 2016-08-02 Brocade Communications Systems, Inc. Multicast in a trill network
US8909864B2 (en) 2011-09-30 2014-12-09 Hewlett-Packard Development Company, L.P. Multicast write commands
US8554963B1 (en) 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301832B1 (en) * 2012-03-23 2012-10-30 DSSD, Inc. Storage system with guaranteed read latency
WO2013142673A1 (en) * 2012-03-23 2013-09-26 DSSD, Inc. System and methods for storing data using table of contents entries

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11314415B2 (en) 2019-09-11 2022-04-26 Kioxia Corporation Storage system, storage device, and method of controlling storage system

Also Published As

Publication number Publication date
EP3096220A1 (en) 2016-11-23
EP3096220B1 (en) 2021-04-21
US20160342329A1 (en) 2016-11-24
JP6348928B2 (ja) 2018-06-27
CN106407128B (zh) 2019-06-11
US10019168B2 (en) 2018-07-10
CN106407128A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
US10592162B2 (en) Distributed storage location hinting for non-volatile memories
JP6348928B2 (ja) 永続ストレージにデータを格納するための方法およびストレージ機器
US8819304B2 (en) Storage system with multicast DMA and unified address space
US8301832B1 (en) Storage system with guaranteed read latency
US10852955B2 (en) Method and system for accessing data objects stored in a storage system using object descriptors allocated by clients
US20160077996A1 (en) Fibre Channel Storage Array Having Standby Controller With ALUA Standby Mode for Forwarding SCSI Commands
US9176917B2 (en) SAS latency based routing
US10013370B2 (en) Method and system for providing access of a storage system using a shared storage module as a transport mechanism
US8392428B1 (en) Method and system for hash fragment representation
WO2019028799A1 (zh) 一种数据访问方法、装置和系统
US10229085B2 (en) Fibre channel hardware card port assignment and management method for port names
EP3278235B1 (en) Reading data from storage via a pci express fabric having a fully-connected mesh topology
US20190042133A1 (en) Technologies for providing adaptive data access request routing in a distributed storage system
JP5893028B2 (ja) キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
CN107533526B (zh) 经由具有完全连接网格拓扑的pci express结构向存储写入数据
US9921753B2 (en) Data replication across host systems via storage controller
US20230359389A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
US10705905B2 (en) Software-assisted fine-grained data protection for non-volatile memory storage devices
CN108804029B (zh) 使用原子多播的快速排序写入的方法和系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180601

R150 Certificate of patent or registration of utility model

Ref document number: 6348928

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250