JP2015519648A - 分散型データ記憶システムにおいてデータを記憶および保守する方法、ならびにそれに対応するデバイス - Google Patents

分散型データ記憶システムにおいてデータを記憶および保守する方法、ならびにそれに対応するデバイス Download PDF

Info

Publication number
JP2015519648A
JP2015519648A JP2015509372A JP2015509372A JP2015519648A JP 2015519648 A JP2015519648 A JP 2015519648A JP 2015509372 A JP2015509372 A JP 2015509372A JP 2015509372 A JP2015509372 A JP 2015509372A JP 2015519648 A JP2015519648 A JP 2015519648A
Authority
JP
Japan
Prior art keywords
storage device
data
storage
file
cluster
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.)
Withdrawn
Application number
JP2015509372A
Other languages
English (en)
Other versions
JP2015519648A5 (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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2015519648A publication Critical patent/JP2015519648A/ja
Publication of JP2015519648A5 publication Critical patent/JP2015519648A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file 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
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0689Disk arrays, e.g. RAID, JBOD
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Abstract

本発明は、一般に、分散型データ記憶システムに関する。特に、本発明は、データ・ブロックのクラスタ化と、記憶方法および関連する修復方法に関する所要記憶スペースおよびデバイス間通信コストの点で分散型データ記憶システムを効率化するデータ・ブロックのランダム線形結合の使用とを含む、分散型データ記憶システムにおいてデータを記憶する方法に関する。

Description

本発明は、一般に、分散型データ記憶システムに関する。特に、本発明は、データ可用性が高いことと、ネットワーク記憶デバイス間のデータの交換に必要な帯域幅の点、およびデータ項目を記憶するために必要なネットワーク記憶デバイスの数の点でネットワークおよびデータ記憶リソースへの影響が小さいこととを兼ね備えた、分散型データ記憶システムにおいてデータを記憶する方法に関する。本発明は、また、このような分散型データ記憶システムにおいて故障した記憶デバイスを修復する方法、および本発明を実施するデバイスにも関する。
映像および画像を扱うデバイスなど、大量のデータを扱うデバイスの導入が急速に広がっており、直接記憶のために、またはバックアップ記憶の一部として、大量のデータを高い信頼性で記憶することが必要とされている。ネットワーク接続性を備えるデバイスが増えるにつれて、ネットワーク接続されたデバイス(「記憶デバイス」)へのデータの分散型記憶は、費用対効果の高い解決策であると考えられるようになっている。インターネットなど、非管理ネットワーク上に展開することができるこのような分散型データ記憶システムでは、同じデータ項目を複数のネットワーク接続デバイスにコピーして、データ可用性とデータ喪失耐性とを保証する方法が開発されている。これは、データ・レプリケーションまたは冗長性追加と呼ばれる。冗長性は、広い意味で解釈する必要があり、単なるデータの複製だけでなく、消去符号または再生符号などのコード化技術を使用することも含む(耐障害性のために符号化データが記憶デバイスに配置される)。デバイスの障害によって永久にデータが失われる危険性、または一時的にデバイスが利用不能になることによって一時的にデータが失われる危険性に対処するためには、冗長性が高いことが望ましい。しかし、通信および必要な記憶サイズ(いわゆるレプリケーション・コスト)の点でコストを低下させるためには、むしろ冗長性が低いことが望ましい。
従って、冗長性は、信頼性の低い構成要素に基づいて信頼性の高いサービスを提供しなければならない実際のいかなるシステムでも、重要な特徴である。記憶システムは、不可避のディスクの利用不能性および障害をマスクするために冗長性を利用するサービスの代表例である。上述のように、この冗長性は、基本的なレプリケーションまたはコード化技術を用いて実現することができる。消去符号は、基本的なレプリケーションよりはるかに高い効率を実現することができるが、現行のシステムでは完全には導入されていない。消去符号を使用する際の大きな懸念は、符号化/復号動作によって複雑さが増すことを除けば、故障した記憶デバイスの保守によるものである。実際に、記憶デバイスが故障すると、データの耐久性を保証するためには、その記憶デバイスが記憶していた様々なファイルの全てのブロックを置換しなければならない。これは、喪失したブロックごとに、新たなブロックを1つだけ再生するために、そのブロックの出所であるファイル全体をダウンロードして復号しなければならないということである。基本的なデータ・レプリケーションと比較したときのこの帯域幅および復号動作のオーバヘッドにより、障害つまり修復が例外的なものでなく一般的なものであるシステムにおいて消去符号を使用することは、かなり制限される。それでも、ネットワーク・コード化を使用すれば、保守プロセス中に必要となる帯域幅を大幅に減少させることができる。こうして、符号化されているファイルの保守に対処するように特に設計され、消去符号の既知の欠点を軽減しながら消去符号の効率性を利用する、新たな分散型記憶システムが登場する下地ができた。
高いレベルのデータ可用性を実現する、可用性要件とレプリケーション・コストを併せて考慮した分散型データ記憶手段が必要とされている。
本発明は、従来技術の欠点のいくつかを改善することを目的とする。
分散型データ記憶システムにおけるデータ記憶を最適化するために、本発明は、ネットワーク中で相互接続された複数の記憶デバイスを含む分散型データ記憶システムにデータを記憶する方法であって、前記分散型データ記憶システムに記憶するデータ・ファイルごとに実行される、
前記データ・ファイルをk個のデータ・ブロックに分割し、前記k個のデータ・ブロックのランダム線形結合によって前記k個のデータ・ブロックから少なくともn個の符号化データ・ブロックを作成するステップと、
前記ファイルの前記少なくともn個の符号化データ・ブロックを、同じ記憶デバイス・クラスタに含まれている前記少なくともn個の記憶デバイスにわたって拡散させることによって、前記少なくともn個の符号化データ・ブロックを記憶するステップであり、各クラスタが、異なる記憶デバイスのセットを含み、前記ファイルの前記少なくともn個の符号化データ・ブロックが、各記憶デバイス・クラスタが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの記憶デバイスのそれぞれが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶するように、1つの記憶デバイス・クラスタの前記少なくともn個の記憶デバイスにわたって分散されるステップと、を含む方法を提案する。
本発明は、また、本発明の記憶方法に従ってデータが記憶され、記憶されたファイルがk個のデータ・ブロックに分割される分散型データ記憶システムにおいて故障した記憶デバイスを修復する方法であって、
前記故障した記憶デバイスが属している記憶デバイス・クラスタに置換記憶デバイスを追加するステップと、
前記置換記憶デバイスが、前記記憶デバイス・クラスタ内のk+1個の残りの記憶デバイスのうちの何れかから、前記k+1個の記憶デバイスのそれぞれが記憶している2つの異なるファイルXおよびYの2つの符号化データ・ブロックから生成されるk+1個の新たなランダム線形結合を受け取るステップと、
代数演算を使用して、受け取った前記新たなランダム線形結合をそれらの間で結合して、ファイルXのみに関係するものが1つとファイルYのみに関係するものが1つの2つのブロックが得られる2つの線形結合を得るステップと、
前記2つの線形結合を前記置換記憶デバイスに記憶するステップと、を含む方法も含む。
この修復方法の変形実施形態によれば、この修復方法は、前記分散型データ・システムに復帰する故障した記憶デバイスを前記記憶デバイス・クラスタに再統合するステップを含む。
本発明は、また、ネットワーク中で相互接続された複数の記憶デバイスを含む分散型データ記憶システムでデータ・ファイルの記憶を管理するデバイスであって、前記データ・ファイルをk個のデータ・ブロックに分割し、前記k個のデータ・ブロックのランダム線形結合によって前記k個のデータ・ブロックから少なくともn個の符号化データ・ブロックを作成するデータ・スプリッタを備え、前記ファイルの前記少なくともn個の符号化データ・ブロックを同じ記憶デバイス・クラスタに含まれる前記少なくともn個の記憶デバイスにわたって拡散させることによって、前記少なくともn個の符号化データ・ブロックを記憶する記憶配分器であり、各クラスタが、異なる記憶デバイスのセットを含み、前記ファイルの前記少なくともn個の符号化データ・ブロックを、各記憶デバイス・クラスタが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの記憶デバイスのそれぞれが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶するように、1つの記憶デバイス・クラスタの前記少なくともn個の記憶デバイスにわたって分散させる記憶配分器をさらに備えるデバイスも含む。
本発明は、また、本発明の記憶方法に従ってデータが記憶される分散型データ記憶システムにおいて故障した記憶デバイスの修復を管理するデバイスにも関する。この修復を管理するデバイスは、前記故障した記憶デバイスが属している記憶デバイス・クラスタに置換記憶デバイスを追加する置換器と、前記記憶デバイス・クラスタ内のk+1個の残りの記憶デバイスのうちの何れかから前記置換記憶デバイスに、前記k+1個の記憶デバイスのそれぞれが記憶している2つの異なるファイルXおよびYの2つの符号化データ・ブロックから生成されたk+1個の新たなランダム線形結合を分配する配分器と、代数演算を用いて前記新たなランダム線形結合をそれらの間で結合して、Xのみに関係するものが1つとYのみに関係するものが1つの2つのブロックが得られる2つの線形結合を得る結合器と、前記2つの線形結合を前記置換記憶デバイスに記憶するデータ書込み器とを備える。
本発明のさらなる利点は、本発明の具体的な非制限的な実施形態の説明から、明らかになるであろう。
実施形態について、以下の図面を参照して説明する。
本発明の記憶方法の具体的な詳細を示す図である。 本発明の記憶方法によるデータのクラスタ化の例を示す図である。 記憶デバイスの障害の修復プロセスを示す図である。 本発明を実施することができるデバイスを示す図である。 本発明の方法の特定の実施形態を実施するアルゴリズムを示す図である。 ネットワーク中で相互接続された複数の記憶デバイスを含む分散型データ・システムにおけるデータ・ファイルの記憶を管理するデバイスを示す図である。 本発明の記憶方法に従ってデータが記憶される分散型データ記憶システムにおける故障した記憶デバイスの修復を管理するデバイスを示す図である。
上述のように、消去符号は、データ記憶システムの基本的なレプリケーションよりはるかに高い効率を実現することができることが分かっている。それでも実際には、このような記憶システムへの消去符号の適用は、その明白な利点にもかかわらず普及していない。消去符号が比較的適用されていない理由の1つは、現況技術のコード化方法では、ブロックを挿入または修復する必要が生じるたびに新たな記憶デバイスが発見される可能性があると考えている、すなわち、無制限の記憶デバイスのリソースが存在すると仮定しているからである。さらに、記憶デバイスの可用性も、考慮されていない。この2つの前提条件が、現在の分散型データ記憶システムに消去符号を単純に適用することの実際上の障壁となり、これらの重要な問題の答えとなる設計の選択を行わなければならないときに混乱を生じている。これらの欠点を解消するために、本発明は、分散型データ記憶システムの冗長性を構成するデータ・ブロックのホスティングを担当する記憶デバイスのクラスタ化を提案し、さらに、消去符号を使用および展開する実際上の手段を提案する。次いで、本発明は、単純なレプリケーション方式およびコード化方式の両方と比較して優位に性能を向上させることを可能にする。本発明によるクラスタ化によって、個々のファイル・レベルではなく記憶デバイス・レベル(すなわち多数のファイルの多数のブロックを含む記憶デバイス)で保守を行うことが可能になり、消去符号を適用することによって、効率的なデータ・レプリケーションが可能になり、それにより、複数の修復を利用し、分散型データ記憶システムの性能向上を改善することができる。
消去符号の効率は、最大距離分離(MDS)符号を使用するときに最大となり、いわゆる「最適」となる。これは、所与の記憶オーバヘッドに対して、MDS符号が、データ可用性という点では可能な限り最高の効率を与えるということである。MDS符号は、喪失したデータを再構築するのに、n個の冗長性ブロック(=符号化データ・ブロック)のうちのk個からなる任意のサブセットで十分であるような符号である。これは、Mバイトのファイルを再構築するためには、正確にMバイトをダウンロードする必要があるということである。リード・ソロモン(RS)は、MDS符号の旧来の例である。ランダム性によって、MDS符号を構築する柔軟な方法が得られる。
本発明は、ネットワーク中で相互接続された複数の記憶デバイスを含む分散型データ記憶システムにデータ・ファイルを記憶する特定の方法を提案する。この方法は、分散型データ記憶システムに記憶するデータ・ファイルごとに実行される、以下のステップを含む。
データ・ファイルをk個のデータ・ブロックに分割し、これらのk個のデータ・ブロックのランダム線形結合によってこれらのk個のブロックからn個の符号化データ・ブロックを作成するステップ。
このファイルのこれらのn個の符号化データ・ブロックを、同じ記憶デバイス・クラスタに含まれているn個の記憶デバイスにわたって拡散するステップ。各クラスタは、異なる記憶デバイスのセットを含み、このファイルのこれらのn個の符号化データ・ブロックは、各記憶デバイス・クラスタが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの記憶デバイスのそれぞれが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶するように、1つの記憶デバイス・クラスタのn個の記憶デバイスにわたって分散される。
図1は、1つのファイルがk=2個のデータ・ブロックに分割される本発明の記憶方法の具体例、ならびにそれに関連するn=4個の符号化データ・ブロックを生成する線形結合方法を示す図である。これは、次のように行われる。すなわち、各ファイルX(10)を、同じ大きさのk個のデータ・ブロック(12、13)にチャンク化し、次いで、これらのk個のブロックのランダム線形結合としてn個の符号化データ・ブロックXj(15、16、17、18)を作成する。次いで、分散型記憶システムの各記憶デバイスjが、これらのk個のデータ・ブロックのランダム線形結合である符号化データ・ブロックXjを記憶する。関連するランダム係数α(例えばブロック15では2および7)は、体Fqで一様にランダムに選択される。すなわち、Fqは、q個の要素を有する「有限体」の意味である。有限体を利用することは、誤り訂正符号を実施するのに必要であり、当業者には既知である。簡単に言うと、有限体とは、離散数のセットなど1組の数のセットであるが、離算数で一般に既知であるように異なる加算と乗算の規則を有するセットである。
n個の符号化データ・ブロックXj(15〜18)を記憶するだけでなく、関連するランダム係数αも記憶する必要がある。ランダム係数の大きさはブロックXjの大きさと比較して無視できるので、これらの係数を記憶するために必要な記憶スペースも、無視することができる。一般に、本明細書で(ランダム)線形結合という表現を用いるときには、関連する係数も含む。
実際の例として、ファイルX(10)がM=1ギガバイトの大きさを有する場合を考える。パラメータk(ファイル・チャンクの数)およびn(k個のファイル・チャンクのランダム線形結合の数)は、例えばk=2、およびn=4など、符号の実施が存在するように選択される。関連するランダム係数αは、1からqの範囲の離散数を生成するようにパラメータ化された従来技術の乱数発生器で生成することができる。
n/kは、分散型記憶システムの設計者が希望する冗長性レベルに応じて選択される。例えば、k=2、およびn=4の符号では、発明者等は、n/k=2とし、従って、1Gbのファイルを記憶するためには、システムは2Gbの記憶スペースを必要とする。さらに、n/kは、システムが許容することができる障害の数(故障した記憶デバイスの数)を表す。k=2、n=4とした例では、k=2個の符号化データ・ブロックが残っている限り、元のファイルを回復することができる。従って、導入する冗長性の量と、分散型記憶システムの障害許容度との間の兼ね合いがある。
このようにして分散型記憶システムに記憶されたファイルの再構築は、次のように行われる。数学的には、k個のデータ・ブロックからランダム線形結合によってこのようにして作成されたn個の符号化データ・ブロックXjはそれぞれ、これらのk個のデータ・ブロックが及んでいるサブスペースのランダム・ベクトルとして表すことができる。従って、ファイルXの再構築には、このサブスペース中でk個の独立したベクトルを得れば十分である。この独立性要件は、関連するランダム係数αがそれ以前にファイルXの記憶中に上述の乱数発生器によって生成されているので、満たされる。実際には、1次独立であるk個のベクトルの全てのファミリが、反転させることができる正則行列を形成するので、ファイルXは、非常に高い確率(すなわち1に近い確率)で再構築することができる。あるいは、より正式には、Dを、F に属するn個の冗長ブロックXj、換言すればn個のランダム・ベクトルが及んでいるサブスペースの次元を表すランダムな変数とすると、次のように表すことができる。
Figure 2015519648
この数式は、m個のランダム・ベクトルが及んでいるサブスペースの次元が正確にnであり、これらのn個のベクトルのファミリが1次独立である確率を与えるものである。この確率は、通常は2または216である実際の体の大きさを使用するときには、全てのnに対して1に非常に近いことが分かっている。上述のように、体の大きさは、有限体Fqの要素の数である。値2または216は、有限体の1つの要素はそれぞれ1バイトまたは2バイト(8ビットまたは16ビット)に相当するので、実際の値である。例えば、体の大きさが216で、n=16である(これらは伝統的な実際値である)場合には、正確にn=16個の記憶デバイスに接触するときには、ファイルXを再構築することができる確率は、0.999985である。このように、ランダムな(MDS)符号は、データを最適に符号化する柔軟な方法を提供する。これらの符号は、固定された符号化行列を使用し、従ってレートk/nが固定されている、すなわち冗長性システムが一定数を超える数の冗長な独立したブロックを作成することができない、伝統的な消去符号とは異なる。実際に、本発明で提案するランダム符号を使用するときには、単にファイルXのk個のブロックXjの新たなランダム結合を作成するだけで、冗長ブロックXjを必要なだけ生成することができるので、レートの概念は消滅する。この性質により、ランダム符号は、噴水符号(fountain code)とも呼ばれるレート・レス符号となる。このレート・レスの性質により、以下でさらに述べるように、誤って「喪失」とされた記憶デバイスの再統合が可能になるので、これらの符号は、分散型記憶システムの状況に非常に適している。
上述の喪失したデータの修復を容易且つ効率的にする(上述のパラメータk、nの)MDS消去符号の使用に関連して、本発明は、複数のファイルに属する喪失データの同時修復を活用する特定のデータ・クラスタ化方法を利用することを提案する。クラスタの大きさは、符号の種類によって決まる。さらに厳密には、MDS符号がk個のブロックからn個の符号化データ・ブロックを生成している場合には、クラスタの大きさは、正確にnになるものとする。本発明の記憶方法によるこのようなクラスタ化の例を、図2に示す。全ての記憶デバイスからなる集合を、複数の互いに素なクラスタに分割する。従って、各記憶デバイスは、1つのクラスタのみに属する。次いで、このように編成された分散型記憶システムに記憶する各ファイルを、特定のクラスタに記憶する。クラスタは、異なるファイルからのデータを含む。記憶デバイスは、異なるファイルからのデータを含む。さらに、記憶デバイスは、そのクラスタに記憶される全てのファイルからの1つのデータ・ブロックを含む。図2は、これらのファイルのk個のブロックのランダム線形結合であるn=3個の符号化データ・ブロックXjをそれぞれ含む6個のファイルX1からX6の場合の例を与える図である。2つの記憶クラスタは、それぞれ3つの記憶デバイスのセットを含み、第1のクラスタ1(20)は、記憶デバイス1、2、および3(200、201、および202)を含み、第2のクラスタ2(21)は、3つの記憶デバイス4、5、および6(210、211、および212)を含む。ファイルX1の3つ(n=3)の符号化データ・ブロックXjは、クラスタ1(20)に記憶される。具体的には、第1のブロック(2000)は、記憶デバイス1(200)に記憶され、第2のブロック(2010)は、記憶デバイス2(201)に記憶され、第3のブロック(2020)は、記憶デバイス3(202)に記憶される。ファイルX2の3つの符号化データ・ブロックXjは、クラスタ2(21)に記憶される。具体的には、第1のブロック2100は、記憶デバイス4(210)に記憶され、第2のブロック2110は、記憶デバイス5(211)に記憶され、第3のブロック2120は、記憶デバイス6(212)に記憶される。同様に、クラスタ1は、ファイルX3の符号化データ・ブロックXj(2001、2011、2021)、およびファイルX5の符号化データ・ブロックXj(2002、2012、2022)も、記憶デバイス1、2、および3(それぞれ200、201、および202)に記憶する。同様に、クラスタ2は、ファイルX4の符号化データ・ブロックXj(2101、2111、および2121)、およびファイルX6の符号化データ・ブロックXj(2102、2112、および2122)も、記憶デバイス4、5、および6(それぞれ210、211、および212)に記憶する。これらのファイルは、選択されたロード・バランシング・ポリシーに従って、到着順に記憶される(例えばファイルX1がクラスタ1に、ファイルX2がクラスタ2に、ファイルX3がクラスタ1に、など)。
これらのファイルを管理するためには、各ファイルをクラスタにマッピングする指標と、各記憶デバイスをクラスタにマッピングする指標の、2つの指標を維持すれば十分である。本発明の特定の実施形態によれば、記憶デバイスは、それぞれのIP(インターネット・プロトコル)アドレスによって識別することができる。
本発明のデータ・ブロック配置ストラテジは、分散型記憶システムに記憶されたファイルの数によく対応する単純なファイル管理を示しながら、以下でさらに説明するように、このようなシステムの保守プロセスを直接提供する。なお、クラスタがどのように構成されているか、およびクラスタがどのように様々なファイルで充填されるかは、一様サンプリングと同様に任意のポリシーに従って、または特定のプロトコルを使用して、決定することができることに留意されたい。実際に、現況技術では、例えばロード・バランシングに焦点を当てたものや可用性に焦点を当てたものなど、様々な配置ストラテジが存在する。
配置ストラテジおよび保守(修復)プロセスは、通常は独立して設計される2つのビルディング・ブロックと考えられる。
本発明では、配置ストラテジは、以下でさらに説明するように、保守プロセスを直接提供する。分散型データ記憶システムは、その商業的な実施規模の大きさのために、システムの障害が起きやすい。通常、分散型データ記憶システムは、インターネット加入者からこのサービスへのデータを記憶する役割を果たし、ハードディスク・ドライブを備える何千もの記憶デバイスを利用する。従って、これらの障害によって生じるデータ喪失を修復するために、信頼性の高い保守機構が必要である。そのためには、システムは、記憶デバイスをモニタリングする必要があり、従来は、修復を実行しなければならないかどうかを判断するタイムアウト式のトリガ機構を使用している。本発明のクラスタ化方法の第1の実用的な点は、記憶デバイスのクラスタが管理しやすく、また、自身をモニタリングして必要に応じて自身を再生する(すなわちデータ喪失を修復する)自律型クラスタを作成することにより、完全に非集中的な方法でモニタリングを実施することができる点である。これは、故障した記憶デバイスを修復するためには、故障した記憶デバイスと置換する記憶デバイスが、故障した記憶デバイスが記憶していた各冗長ブロックに関連する全てのファイルにアクセスする必要があり、その際、接触すべき記憶デバイスは任意の位置に位置している可能性があるので、置換記憶デバイスは、修復を行う前にまずそれらの位置を問い合わせる必要がある、現行の記憶システムとは対照的である。こうしたことは、所与のクラスタで配置が構造化されているので、本発明では行われない。
この従来技術に従って、記憶デバイスの十分に大きなセットへのデータの一様なランダム配置を用いる場合によくあるように記憶した各ファイルへのアクセスを独立した事象とみなす場合には、そのセット内の全ての記憶デバイスに接触することに成功する確率は、様々なファイルの冗長ブロックが同じ記憶デバイスのセットに記憶されていない場合には、ブロック数とともに低下する。これは、各ホスト記憶デバイスが実際には特定の確率で利用可能であり、アクセス対象のこのようなホスト記憶デバイスの数が増加すると、所与の時点で全ての必要なブロックにアクセスすることができる確率が低下することによるものである。上述した従来技術の解決策とは対照的に、本発明のクラスタ型配置方法を使用すると、置換記憶デバイスにとって極めて重要なブロックに協働してホスティングするように記憶デバイスがグループ化されるので、修復が成功する確率は、故障した記憶デバイスに記憶されるブロックの数に依存しなくなる。さらに、置換記憶デバイスが接続する必要がある記憶デバイスの数は、故障した記憶デバイスに記憶されていたブロックの数に依存しない。その代わりに、この数は、システム・オペレータによって予め定義される固定されたクラスタの大きさに依存するので、置換記憶デバイスが保守する必要がある接続の数が減少する。
この記憶方法の具体的な効率性は、以下でさらに述べる、故障した記憶デバイスの修復を示す図3を援用することで最もよく説明される。
図3を用いて説明する本発明の方法とは対照的に、従来技術の修復プロセスは、従来の消去符号を使用するときには、次のようになる。所与のファイルの1つのデータ・ブロックを修復するためには、置換記憶デバイスは、(未符号化のプレーン・データの)ファイルを再生するために、十分に冗長な消去符号符号化ブロックをダウンロードして、それらを復号しなければならない。この動作が行われたら、置換記憶デバイスは、そのファイルを再符号化して、喪失した冗長データ・ブロックを再生することができるが、喪失したブロックごとに、再符号化を繰り返さなければならない。この従来技術の方法には、これらの種類の符号を使用することによって生じる以下の欠点がある。
1.1つのブロックを修復するために、すなわち1つのファイルの小さな一部分を修復するために、置換記憶デバイスは、そのファイルのブロックを記憶しているその他の記憶デバイスに記憶されている全てのブロックをダウンロードしなければならない。これは、通信コストがかかり、またこの第1のステップが完了しないうちは第2のステップ(後述)に取り掛かることができないので、時間もかかる。
2.第1のステップが完了した後で、置換記憶デバイスは、未符号化のプレーン・データ・ファイルを再生することができるようにダウンロードしたブロックを判読しなければならない。これは、計算負荷が高い動作であり、大きなファイルではさらに計算負荷は高くなる。
3.次いで、符号化アルゴリズムを使用して、再生したプレーン・データ・ファイルから喪失したブロックを符号化することによって、喪失したブロックを再作成しなければならない。
この従来技術の方法とは対照的に、本発明の記憶方法のクラスタ型配置ストラテジおよびランダム符号の使用により、修復プロセスにおいて重要な利点が得られる。既に示したように、従来技術の修復方法によれば、同じファイルの複数のブロックを、それらの間で結合する。本発明の方法によれば、ファイル・レベルではなくシステム・レベルでネットワーク・コード化を使用する。すなわち、本発明の修復方法は、複数のファイルのデータ・ブロックを結合することを含み、これにより、修復中に記憶デバイス間で交換されるメッセージの数が大幅に減少する。記憶デバイスによって記憶される符号化データ・ブロックXjは、代数演算を実行することができる単なる代数要素である。
修復プロセスの終了時に得られるのは、故障した記憶デバイスの修復である。本発明の状況では、故障した記憶デバイスの修復とは、故障した記憶デバイスが符号化データ・ブロックXjを記憶していた各ファイルのランダム・ベクトルの作成である。任意のランダム・ベクトルは、冗長な、または符号化された、データ・ブロックである。従って、故障した記憶デバイスの修復プロセスで必要な動作は、故障した記憶デバイスに記憶されていたデータそのものを置換することではなく、故障した記憶デバイスによって喪失した量のデータを再生することである。この選択により、記憶デバイスの再統合と呼ばれるものに関するさらなる利点が得られることについて、以下でさらに述べる。
図3は、本発明のデータを記憶する方法を使用する分散型データ記憶システムに基づく、本発明による故障した記憶デバイスの修復を示す図である。ここで、クラスタ(30000)は、最初に、4つの記憶デバイス(30、31、32、33)を含む。各記憶デバイスは、2つのファイル、ファイルXおよびファイルYのランダム符号ブロックXjを記憶している。両方のファイルXおよびYについて、k=2である(すなわち、ファイルXおよびYは、k=2個のブロックにチャンク化される)。第1の記憶デバイス(30)は、ランダム符号ブロック(=符号化データ・ブロック)300および301を記憶する。第2の記憶デバイス(31)は、ランダム符号ブロック310および311を記憶する。第3の記憶デバイス(32)は、ランダム符号ブロック320および321を記憶する。第4の記憶デバイス(33)は、ランダム符号ブロック330および331を記憶する。第4の記憶デバイス(33)が故障して、修復しなければならないものと仮定する。これは、次のように行われる。
1.第5の置換記憶デバイス(39)を、クラスタ(30000)に追加する。この置換記憶デバイスは、クラスタ内のk+1個の残りの記憶デバイスから、各記憶デバイスに記憶されているランダム符号から生成されたランダム符号の新たなランダム線形結合(および関連する係数α)を受け取る。これは、枠34から36および矢印3000から3005で示してある。
2.その結果得られた生成された新たなランダム線形結合を、ファクタXおよびYがそれぞれ消去された2つの線形結合が残るように、それらの間で結合する。すなわち、一方の線形結合はXのみと関係し、もう一方の線形結合はYのみと関係する。この除去は、例えば従来の「ガウス消去」代数演算を用いて、これらの結合の係数を慎重に選択することによって行われる。
3.残りの2つの線形結合を、置換記憶デバイス39に記憶する。これは、矢印3012および3013で示してある。
これで、修復動作は完了し、システムは再び安定した動作状態になっていると考えられる。
ほとんどの分散型記憶システムでは、記憶デバイスが故障した記憶デバイスであると宣言する判断は、タイムアウトを用いて行われる。重要なことは、これが、エラーが起こりやすい不確実な判断であることである。実際に、記憶デバイスは、誤ってタイムアウトする可能性があり、修復が行われた後で予期せずに再接続する可能性がある。もちろん、タイムアウトが長くなるほど、エラーの数は少なくなる。しかし、長いタイムアウトを使用すると、記憶システムの反応性が低下し、そのため障害バーストが起こったときに修繕不能なデータ喪失が生じる恐れがあるので、危険である。再統合という概念は、誤ってタイムアウトしている記憶デバイスを再統合することである。再統合は、消去符号を使用するときには対処されていない。再統合を実施しない場合には、誤って故障しているとみなされた記憶デバイスの修復は不要であり、従って、追加の障害の許容に寄与することができないので、資源の無駄となる。これは、修復された記憶デバイスが、他の記憶デバイスから独立した冗長性を含んでおらず、従って追加の冗長性の利点をもたらさないことから生じる。
本発明の特定の有利な実施形態は、誤って故障とされた記憶デバイス、すなわち例えば接続タイムアウトが検出されたときに分散型データ記憶装置によって故障しているとみなされたがシステムに再接続するデバイスの再統合を含む。本発明で、このような再統合が可能であるのは、このような再統合が、単にさらなる冗長データをクラスタに追加するだけであり、誤って故障とされた記憶デバイスの修復は、一見すると不要であるように見えるが、クラスタの冗長性を高めることになるので、次に同じクラスタの任意の記憶デバイスが故障したときに、修復を実行する必要がなくなるからである。これは、本発明によるクラスタ化方式とともに、ランダム符号の性質から得られるものである。従って、再統合により、分散型データ記憶システムのリソースの利用効率が高まる。
この記憶デバイス再統合の概念を利用した、本発明の様々な変形実施形態も可能である。
第1の変形実施形態によれば、クラスタのサイズを、正確にn個の記憶デバイスに維持する。記憶デバイスが故障した場合には、本発明の故障した記憶デバイスを修復する方法に従って、その記憶デバイスを、符号化データ・ブロックを備える置換記憶デバイスで置換する。故障した記憶デバイスが復帰した場合(すなわちそのデバイスは一時的に利用不能になっていただけ)には、そのデバイスは、クラスタの記憶デバイスのうちの1つとしてクラスタに再統合されるのではなく、必要に応じてこのクラスタの置換デバイスとして、または変形形態では別のクラスタの置換デバイスとして使用することができる記憶デバイスのプールにフリー・デバイスとして統合される。
第2の変形実施形態によれば、修復された、すなわち別の置換記憶デバイスで置換され、クラスタに復帰する故障したデバイスは、クラスタに再統合される。これは、そのクラスタが、それまではn個の記憶デバイスを有していたが、特定の期間(すなわち次の障害まで)にわたってn+1個の記憶デバイスのレベルに維持されることを意味する。2通りの場合が当てはまる。すなわち、故障したデバイスが一時的に存在しない間に、n個のノードでデータの変更が行われず、既にクラスタに含まれているn個の記憶ノードにノードを単純に追加することができる場合。これに対して、データが変更された場合には、故障したノードを、そのクラスタの残りのn個のノードと同期させる必要がある。この同期は、故障したノードの完全な修復に必要な動作を必要とするわけではなく、単に図1を援用して上述したように、そのデバイスが存在しない間にクラスタに記憶された新たなファイルのそれぞれの1つのブロックの新たなランダム線形結合を生成し、生成した新たなランダム線形結合を故障した記憶デバイスに記憶すればよい。もちろん、クラスタがn+1個の記憶デバイスのレベルのままである場合には、クラスタに追加される任意の新たなファイルを、クラスタのn+1個のノードにわたって拡散させなければならない。これは、デバイス障害が存在しない限り続く。次のデバイス障害の後で、クラスタのサイズは、再びnに減少する。
上述のように、変形実施形態によれば、n個の記憶デバイスを含む代わりに、クラスタは、n+1個、またはn+2個、またはn+10個、またはn+m個の記憶デバイスを含むことができる(mは任意の整数)。これによって本発明のデータを記憶する方法が変化することはなく、また修復方法が変化することもなく、記憶方法では、k個のデータ・ブロックに分割されたファイルから、n個ではなくn+m個の符号化データ・ブロックが作成され、クラスタに含まれているn+m個の記憶デバイスにわたって拡散されることを考慮しているだけでよい。1つのクラスタ内にn個を超える記憶デバイスを有すると、クラスタの冗長性が高まるという利点があるが、データ記憶のオーバヘッドも大きくなる。
図4は、本発明によるデータ項目を記憶する方法を実施する分散型記憶システムにおいて記憶デバイスとして使用することができるデバイスを示す図である。デバイス400は、記憶デバイスの管理デバイスの役割を果たす汎用デバイスとすることができる。このデバイスは、ディジタル・データ/アドレス・バス414によって相互接続された、以下の構成要素を含む。
処理ユニット411(または中央処理装置(CPU))。
不揮発性メモリNVM410。
揮発性メモリVM420。
デバイス400の構成要素間の動作同期用、およびタイミング用の参照クロック信号を供給するクロック412。
デバイス400を、接続415を介してネットワーク中に接続された他のデバイスと相互接続するためのネットワーク・インタフェース413。
なお、メモリ410および420の説明で用いる「レジスタ」という用語は、これらのメモリのそれぞれにおいて、いくつかの2値データを記憶することができる小容量メモリ領域と、実行可能なプログラムまたはデータ・セット全体を記憶することができる大容量メモリ領域とを指すことに留意されたい。
処理ユニット411は、マイクロプロセッサ、カスタム・チップ、および専用(マイクロ)制御装置などとして実装することができる。不揮発性メモリNVM410は、ハード・ディスク、不揮発性ランダム・アクセス・メモリ、およびEPROM(消去可能プログラマブルROM)など、任意の形態の不揮発性メモリとして実装することができる。
不揮発性メモリNVM410は、特に、本発明による正確な修復方法を格納する実行可能なプログラムを表すプログラムを保持するレジスタ4101と、永続パラメータを含むレジスタ4102とを含む。電源が投入されると、処理ユニット411は、NVMレジスタ4101に含まれる命令をロードし、それらをVMレジスタ4201にコピーし、それらを実行する。
VMメモリ420は、特に、
NVMレジスタ4101のプログラム「prog」のコピーを含むレジスタ4201と、
データ記憶装置4202と、を含む。
デバイス400などのデバイスは、本発明のデータ項目を記憶する方法を実施するのに適しており、このデバイスは、
データ・ファイルをk個のデータ・ブロックに分割し(CPU411、VMレジスタ4202)、これらのk個のデータ・ブロックのランダム線形結合によってこれらのk個のブロックからn個の符号化データ・ブロックを作成する手段と、
このファイルのこれらのn個の符号化データ・ブロックを、同じ記憶デバイス・クラスタに含まれているn個の記憶デバイスにわたって拡散する手段(CPU411、ネットワーク・インタフェース413)と、を備え、各クラスタは、異なる記憶デバイスのセットを含み、このファイルのこれらのn個の符号化データ・ブロックは、各記憶デバイス・クラスタが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの記憶デバイスのそれぞれが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶するように、1つの記憶デバイス・クラスタのn個の記憶デバイスにわたって分散される。
変形実施形態によれば、本発明は、例えば専用構成要素として(例えばASIC(特定用途向け集積回路)、FPGA(フィールド・プログラマブル・ゲート・アレイ)、もしくはVLSI(超大規模集積回路)として)またはデバイスに一体化された別個の電子構成要素として、完全にハードウェアで実装される、あるいはハードウェアとソフトウェアの混成形態で実装される。
図5aは、本発明による分散型データ記憶システムでデータ・ファイルを記憶する方法を流れ図の形態で示す図である。
第1のステップ500で、この方法を初期化する。この初期化は、この方法の適用に必要な変数およびメモリ・スペースの初期化を含む。ステップ501で、記憶するファイルをk個のデータ・ブロックに分割し、これらのk個のデータ・ブロックのランダム線形結合によって、これらのk個のデータ・ブロックからn個の符号化データ・ブロックを作成する。ステップ502で、このファイルのn個のデータ・ブロックを、同じ記憶デバイス・クラスタに含まれている分散型データ記憶システムの記憶デバイスにわたって拡散させる。分散型データ記憶システムの各クラスタは、異なる記憶デバイスのセットを含む。このファイルのn個の符号化データ・ブロックは、同じ記憶デバイス・クラスタにわたって分散し(またはこれまでに用いていた表現を用いれば、拡散し)、各記憶デバイス・クラスタが2つ以上のファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの記憶デバイスのそれぞれが、少なくとも2つのファイルからの符号化データを記憶するようになる(図2およびその説明も参照されたい)。ステップ503で、この方法が行われる。
本発明による分散型データ記憶システムにおけるこれらのステップの実行は、このシステム内のデバイスが様々な方法で行うことができる。
例えば、ステップ501は、管理デバイスによって、すなわち分散型データ記憶システムを管理する管理デバイスまたは特定のクラスタを管理する管理デバイスによって実行される。このような管理デバイスは、特定のデバイスでなく、管理デバイスの役割も果たす記憶デバイスなどの任意のデバイスであってもよい。
図5bは、本発明の記憶方法に従ってファイルがk個のデータ・ブロックに分割され、データが記憶される分散型データ記憶システムにおいて故障した記憶デバイスを修復する方法を流れ図の形態で示す図である。
第1のステップ600で、この方法を初期化する。この初期化は、この方法の適用に必要な変数およびメモリ・スペースの初期化を含む。ステップ601で、故障した記憶デバイスが属している記憶デバイス・クラスタに置換記憶デバイスを追加する。次いで、ステップ602で、置換記憶デバイスが、その記憶デバイス・クラスタ内のk+1個の残りの記憶デバイスの全てから、ランダム線形結合を受け取る。これらの結合は、2つの異なるファイルXおよびYの2つの符号化データ・ブロックから生成される(なお、本発明によるデータを記憶する方法では、各記憶デバイスが、少なくとも2つの異なるファイルの符号化データ・ブロックを記憶することに留意されたい)。次いで、ステップ603で、これらの受け取った新たなランダム線形結合を、ファイルXのみに関係するものが1つとファイルYのみに関係するものが1つの2つの線形結合が得られるように、それらの間で結合する。最後から2番目のステップ604で、これらの2つの結合を置換デバイスに記憶し、修復を行う(ステップ605)。
この修復方法は、所望のレベルのデータ冗長性が所定レベル未満に低下したことを検出したことによってトリガすることができる。
図6aは、ネットワーク中で相互接続された複数の記憶デバイスを含む分散型データ・システムでデータ・ファイルの記憶を管理するデバイス700を示す図である。デバイス700は、記憶管理デバイスとも呼ぶ。この記憶管理デバイスは、ネットワークに接続するためのネットワーク接続705に対するネットワーク・インタフェース703を備える。記憶管理デバイス700は、さらに、データ・ファイルをk個のデータ・ブロックに分割し、これらのk個のデータ・ブロックのランダム線形結合によってこれらのk個のデータ・ブロックから少なくともn個の符号化データ・ブロックを作成するデータ・スプリッタ701を備える。記憶管理デバイス700は、さらに、このファイルの少なくともn個の符号化データ・ブロックを同じ記憶デバイス・クラスタに含まれる少なくともn個の記憶デバイスにわたって拡散させることによって、少なくともn個の符号化データ・ブロックを記憶する記憶配分器702を備える。各クラスタは、異なる記憶デバイスのセットを含み、このファイルの少なくともn個の符号化データ・ブロックは、各記憶デバイス・クラスタが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの記憶デバイスのそれぞれが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶するように、1つの記憶デバイス・クラスタの少なくともn個の記憶デバイスにわたって分散される。データ・スプリッタ701と、記憶配分器702と、ネットワーク・インタフェース703とは、記憶管理デバイス700内の通信バスを介して相互接続される。
特定の実施形態によれば、記憶管理デバイスは、それ自体が、分散型データ・システムの記憶デバイスのうちの1つである。
図6bは、本発明の記憶方法に従ってデータが記憶され、記憶されたファイルがk個のデータ・ブロックに分割される分散型データ記憶システムにおいて故障した記憶デバイスの修復を管理するデバイス710を示す図である。このデバイス710は、修復管理デバイスとも呼ぶ。修復管理デバイス710は、接続715を介して分散型データ記憶システム内のデバイスに接続するためのネットワーク・インタフェース713と、故障した記憶デバイスが属している記憶デバイス・クラスタに置換記憶デバイスを追加する置換器711と、記憶デバイス・クラスタ内のk+1個の残りの記憶デバイスのうちの何れかから置換記憶デバイスに、k+1個の記憶デバイスのそれぞれが記憶している2つの異なるファイルXおよびYの2つの符号化データ・ブロックから生成されたk+1個の新たなランダム線形結合を分配する配分器712とを備える。修復管理デバイス710は、さらに、代数演算を用いて新たなランダム線形結合をそれらの間で結合して、Xのみに関係するものが1つとYのみに関係するものが1つの2つのブロックが得られる2つの線形結合を得る、結合器716を備える。最後に、修復管理デバイスは、これらの2つの線形結合を置換記憶デバイスに記憶するデータ書込み器717を備える。ネットワーク・インタフェース713と、配分器712と、置換器711と、結合器716と、データ書込み器717とは、内部通信バス714を介して相互接続される。
特定の実施形態によれば、記憶修復管理デバイスは、それ自体が、分散型データ・システムの記憶デバイスのうちの1つである。

Claims (5)

  1. ネットワーク中で相互接続された複数の記憶デバイスを含む分散型データ記憶システムにデータ・ファイルを記憶する方法であって、前記分散型データ記憶システムに記憶する前記データ・ファイルごとに実行される、以下のステップ、すなわち
    前記データ・ファイルをk個のデータ・ブロックに分割し、前記k個のデータ・ブロックのランダム線形結合によって前記k個のデータ・ブロックから少なくともn個の符号化データ・ブロックを作成するステップと、
    前記ファイルの前記少なくともn個の符号化データ・ブロックを、同じ記憶デバイス・クラスタに含まれている前記少なくともn個の記憶デバイスにわたって拡散させることによって、前記少なくともn個の符号化データ・ブロックを記憶するステップであり、各クラスタが、異なる記憶デバイスのセットを含み、前記ファイルの前記少なくともn個の符号化データ・ブロックが、各記憶デバイス・クラスタが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの前記記憶デバイスのそれぞれが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶するように、1つの記憶デバイス・クラスタの前記少なくともn個の記憶デバイスにわたって分散されるステップと、を含む、前記方法。
  2. 請求項1に記載の方法に従ってデータが記憶され、記憶されたファイルがk個のデータ・ブロックに分割される分散型データ記憶システムにおいて故障した記憶デバイスを修復する方法であって、以下のステップ、すなわち
    前記故障した記憶デバイスが属している記憶デバイス・クラスタに置換記憶デバイスを追加するステップと、
    前記置換記憶デバイスが、前記記憶デバイス・クラスタ内のk+1個の残りの記憶デバイスのうちの何れかから、前記k+1個の記憶デバイスのそれぞれが記憶している2つの異なるファイルXおよびYの2つの符号化データ・ブロックから生成されるk+1個の新たなランダム線形結合を受け取るステップと、
    代数演算を使用して、受け取った前記新たなランダム線形結合をそれらの間で結合して、ファイルXのみに関係するものが1つとファイルYのみに関係するものが1つの2つのブロックが得られる2つの線形結合を得るステップと、
    前記2つの線形結合を前記置換記憶デバイスに記憶するステップと、を含む、前記方法。
  3. 前記分散型データ・システムに復帰する故障した記憶デバイスを前記記憶デバイス・クラスタに再統合するステップを含む、請求項2に記載の方法。
  4. ネットワーク中で相互接続された複数の記憶デバイスを含む分散型データ記憶システムにおいてデータ・ファイルの記憶を管理するデバイス(700)であって、以下の手段、すなわち
    前記データ・ファイルをk個のデータ・ブロックに分割し、前記k個のデータ・ブロックのランダム線形結合によって前記k個のデータ・ブロックから少なくともn個の符号化データ・ブロックを作成するデータ・スプリッタ(701)と、
    前記ファイルの前記少なくともn個の符号化データ・ブロックを同じ記憶デバイス・クラスタに含まれる前記少なくともn個の記憶デバイスにわたって拡散させることによって、前記少なくともn個の符号化データ・ブロックを記憶する記憶配分器(702)であり、各クラスタが、異なる記憶デバイスのセットを含み、前記ファイルの前記少なくともn個の符号化データ・ブロックを、各記憶デバイス・クラスタが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶し、且つ1つの記憶デバイス・クラスタの前記記憶デバイスのそれぞれが、少なくとも2つの異なるファイルからの符号化データ・ブロックを記憶するように、1つの記憶デバイス・クラスタの前記少なくともn個の記憶デバイスにわたって分散させる記憶配分器(702)と、を備える、前記デバイス(700)。
  5. 請求項1に記載の方法に従ってデータが記憶され、記憶されたファイルがk個のデータ・ブロックに分割される分散型データ記憶システムにおいて故障した記憶デバイスの修復を管理するデバイス(710)であって、以下の手段、すなわち
    前記故障した記憶デバイスが属している記憶デバイス・クラスタに置換記憶デバイスを追加する置換器(711)と、
    前記記憶デバイス・クラスタ内のk+1個の残りの記憶デバイスのうちの何れかから前記置換記憶デバイスに、前記k+1個の記憶デバイスのそれぞれが記憶している2つの異なるファイルXおよびYの2つの符号化データ・ブロックから生成されたk+1個の新たなランダム線形結合を分配する配分器(712)と、
    代数演算を用いて前記新たなランダム線形結合をそれらの間で結合して、Xのみに関係するものが1つとYのみに関係するものが1つの2つのブロックが得られる2つの線形結合を得る結合器(716)と、
    前記2つの線形結合を前記置換記憶デバイスに記憶するデータ書込み器(717)と、を備える、前記デバイス(710)。
JP2015509372A 2012-05-03 2013-04-24 分散型データ記憶システムにおいてデータを記憶および保守する方法、ならびにそれに対応するデバイス Withdrawn JP2015519648A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP12166706.7A EP2660723A1 (en) 2012-05-03 2012-05-03 Method of data storing and maintenance in a distributed data storage system and corresponding device
EP12166706.7 2012-05-03
PCT/EP2013/058430 WO2013164227A1 (en) 2012-05-03 2013-04-24 Method of data storing and maintenance in a distributed data storage system and corresponding device

Publications (2)

Publication Number Publication Date
JP2015519648A true JP2015519648A (ja) 2015-07-09
JP2015519648A5 JP2015519648A5 (ja) 2016-06-16

Family

ID=48227226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015509372A Withdrawn JP2015519648A (ja) 2012-05-03 2013-04-24 分散型データ記憶システムにおいてデータを記憶および保守する方法、ならびにそれに対応するデバイス

Country Status (6)

Country Link
US (1) US20150089283A1 (ja)
EP (2) EP2660723A1 (ja)
JP (1) JP2015519648A (ja)
KR (1) KR20150008440A (ja)
CN (1) CN104364765A (ja)
WO (1) WO2013164227A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101621752B1 (ko) 2015-09-10 2016-05-17 연세대학교 산학협력단 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US20150142863A1 (en) * 2012-06-20 2015-05-21 Singapore University Of Technology And Design System and methods for distributed data storage
US9367562B2 (en) 2013-12-05 2016-06-14 Google Inc. Distributing data on distributed storage systems
US9323615B2 (en) * 2014-01-31 2016-04-26 Google Inc. Efficient data reads from distributed storage systems
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US20220027064A1 (en) * 2015-04-10 2022-01-27 Pure Storage, Inc. Two or more logical arrays having zoned drives
US9672125B2 (en) * 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
CA2989334A1 (en) * 2015-07-08 2017-01-12 Cloud Crowding Corp. System and method for secure transmission of signals from a camera
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10007585B2 (en) * 2015-09-21 2018-06-26 TigerIT Americas, LLC Fault-tolerant methods, systems and architectures for data storage, retrieval and distribution
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
EP3408956B1 (en) 2016-01-29 2020-12-23 Massachusetts Institute of Technology Apparatus and method for multi-code distributed storage
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
DE102017216974A1 (de) * 2017-09-25 2019-05-16 Bundesdruckerei Gmbh Dataculestruktur und Verfahren zum manipulationssicheren Speichern von Daten
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
CN108062419B (zh) * 2018-01-06 2021-04-20 深圳市网心科技有限公司 一种文件存储方法、电子设备、系统和介质
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
EP3713094A1 (en) * 2019-03-22 2020-09-23 Zebware AB Application of the mojette transform to erasure correction for distributed storage
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11151093B2 (en) * 2019-03-29 2021-10-19 International Business Machines Corporation Distributed system control for on-demand data access in complex, heterogenous data storage
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
CN110895451A (zh) * 2019-11-14 2020-03-20 北京京航计算通讯研究所 基于分布式系统的数据访问性能优化方法
CN110825791A (zh) * 2019-11-14 2020-02-21 北京京航计算通讯研究所 基于分布式系统的数据访问性能优化系统
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
CN112445656B (zh) * 2020-12-14 2024-02-13 北京京航计算通讯研究所 分布式存储系统中数据的修复方法及装置
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100525288C (zh) * 2000-10-26 2009-08-05 普里斯梅迪亚网络有限公司 网络中大有效负载分布的方法和装置
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication
US8051362B2 (en) * 2007-06-15 2011-11-01 Microsoft Corporation Distributed data storage using erasure resilient coding
US8738855B2 (en) * 2008-05-05 2014-05-27 Amplidata Nv Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method
US20100094972A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Hybrid distributed streaming system comprising high-bandwidth servers and peer-to-peer devices
US20100138717A1 (en) * 2008-12-02 2010-06-03 Microsoft Corporation Fork codes for erasure coding of data blocks
RU2501072C2 (ru) * 2009-02-03 2013-12-10 Битторрент, Инк. Распределенное хранение восстанавливаемых данных
US8458287B2 (en) * 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
US8631269B2 (en) * 2010-05-21 2014-01-14 Indian Institute Of Science Methods and system for replacing a failed node in a distributed storage network
WO2012089701A1 (en) * 2010-12-27 2012-07-05 Amplidata Nv A distributed object storage system comprising performance optimizations
US8645799B2 (en) * 2010-12-31 2014-02-04 Microsoft Corporation Storage codes for data recovery
US8538029B2 (en) * 2011-03-24 2013-09-17 Hewlett-Packard Development Company, L.P. Encryption key fragment distribution
WO2013164228A1 (en) * 2012-05-04 2013-11-07 Thomson Licensing Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices
US10303659B2 (en) * 2012-08-16 2019-05-28 Empire Technology Development Llc Storing encoded data files on multiple file servers
WO2014131148A1 (zh) * 2013-02-26 2014-09-04 北京大学深圳研究生院 一种最小存储再生码的编码和存储节点修复方法
WO2014151928A2 (en) * 2013-03-14 2014-09-25 California Institute Of Technology Distributed storage allocation for heterogeneous systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101621752B1 (ko) 2015-09-10 2016-05-17 연세대학교 산학협력단 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법

Also Published As

Publication number Publication date
EP2845099A1 (en) 2015-03-11
KR20150008440A (ko) 2015-01-22
EP2660723A1 (en) 2013-11-06
WO2013164227A1 (en) 2013-11-07
US20150089283A1 (en) 2015-03-26
CN104364765A (zh) 2015-02-18

Similar Documents

Publication Publication Date Title
JP2015519648A (ja) 分散型データ記憶システムにおいてデータを記憶および保守する方法、ならびにそれに対応するデバイス
CA2751358C (en) Distributed storage of recoverable data
US9104603B2 (en) Method of exact repair of pairs of failed storage nodes in a distributed data storage system and corresponding device
US20160283337A1 (en) Decoupled reliability groups
CN111149093B (zh) 分布式存储系统的数据编码、解码及修复方法
CN110750382B (zh) 用于提高数据修复性能的最小存储再生码编码方法及系统
US20150127974A1 (en) Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices
CN105378676A (zh) 本地生成的简单纠删码
CN106776129B (zh) 一种基于最小存储再生码的多节点数据文件的修复方法
CN104052576A (zh) 一种云存储下基于纠错码的数据恢复方法
EP2413506A1 (en) Method for adding redundancy data to a distributed data storage system and corresponding device
CN112799875B (zh) 基于高斯消元进行校验恢复的方法、系统、设备及介质
CN107689983B (zh) 基于低修复带宽的云存储系统及方法
CN103729151A (zh) 一种基于改进型纠删码的失效数据修复方法
Han et al. Update-efficient regenerating codes with minimum per-node storage
US8510625B1 (en) Multi-site data redundancy
JP2012033169A (ja) バックアップシステムにおける符号化を使用して、ライブチェックポインティング、同期、及び/又は復旧をサポートするための方法及び装置
US9450617B2 (en) Distribution and replication of erasure codes
CN112732203A (zh) 一种再生码构造方法、文件重构方法及节点修复方法
TW201351126A (zh) 分佈式資料儲存系統內資料檔案之儲存方法和管理裝置以及故障儲存裝置之修理方法和修理管理裝置
Rai On adaptive (functional MSR code based) distributed storage systems
CN107615248B (zh) 分布式数据存储方法、控制设备和系统
CN108683422A (zh) 一种可容多错交叉循环卷积码的局部性修复编码方法
CN116610645B (zh) 基于异构再生码变换的数据分布式存储方法及系统
CN111030701B (zh) 一种基于Harary图的部分重复码的构造方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160419

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160419

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20160627