JP6778704B2 - 分散ストレージシステム上でデータを分散させること - Google Patents
分散ストレージシステム上でデータを分散させること Download PDFInfo
- Publication number
- JP6778704B2 JP6778704B2 JP2018021208A JP2018021208A JP6778704B2 JP 6778704 B2 JP6778704 B2 JP 6778704B2 JP 2018021208 A JP2018021208 A JP 2018021208A JP 2018021208 A JP2018021208 A JP 2018021208A JP 6778704 B2 JP6778704 B2 JP 6778704B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- maintenance
- chunks
- storage devices
- storage
- 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
- 238000003860 storage Methods 0.000 title claims description 274
- 238000012423 maintenance Methods 0.000 claims description 164
- 238000000034 method Methods 0.000 claims description 95
- 238000005070 sampling Methods 0.000 claims description 26
- 238000009826 distribution Methods 0.000 claims description 19
- 230000010076 replication Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 14
- 238000012937 correction Methods 0.000 claims description 13
- 230000003362 replicative effect Effects 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims description 2
- 239000006185 dispersion Substances 0.000 claims 2
- 238000002360 preparation method Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 19
- 238000004590 computer program Methods 0.000 description 13
- 238000001816 cooling Methods 0.000 description 10
- 238000000605 extraction Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Retry When Errors Occur (AREA)
Description
本開示は、分散ストレージシステム上でデータを分散させることに関する。
一般に、分散システムは、多数のゆるく結合されたコンピュータを含んでおり、当該コンピュータの各々は、典型的には、コンピューティングリソース(例えば1つ以上のプロセッサ)および/またはストレージリソース(例えばメモリ、フラッシュメモリおよび/またはディスク)を含んでいる。分散ストレージシステムは、ストレージアブストラクション(例えばキー/値格納またはファイルシステム)を分散システムのストレージリソースに重ね合わせる。分散ストレージシステムでは、一方のコンピュータで実行されるサーバプロセスは、当該コンピュータのストレージリソースを、他方のコンピュータで実行されるクライアントプロセスにエクスポートし得る。リモートプロシージャコール(remote
procedure calls:RPC)は、サーバプロセスからクライアントプロセスにデータを転送し得る。代替的に、サーバハードウェアからクライアントプロセスにデータを転送するために、リモートダイレクトメモリアクセス(Remote Direct Memory Access:RDMA
)プリミティブが使用されてもよい。
本開示の一局面は、分散ストレージシステムにおいてデータを分散させる方法を提供する。上記方法は、非一時的なメモリ内にファイルを受取るステップと、上記非一時的なメモリと通信するコンピュータプロセッサを用いて、上記受取られたファイルをチャンクに分割するステップとを含む。また、上記方法は、上記分散ストレージシステムのメンテナンス階層に基づいて、チャンクを上記分散ストレージシステムのストレージデバイスに分散させるステップを含む。上記メンテナンス階層は、各々がアクティブ状態と非アクティブ状態とを有するメンテナンスユニットを含む。さらに、各ストレージデバイスは、メンテナンスユニットに関連付けられる。メンテナンスユニットが非アクティブ状態にあるときに上記ファイルのアクセス性を維持するために、上記チャンクは、複数のメンテナンスユニットにわたって分散される。
加または除去することによって上記ストレージデバイスの第1の無作為選択群を修正するステップをさらに含む。上記方法は、単純抽出法、確率抽出法、層別抽出法、または集落抽出法を用いて上記ストレージデバイスの第1の無作為選択群を決定するステップをさらに含み得る。
1つのストライプをデータチャンクおよびコードチャンクに分割する。さらにまたは代替的に、上記コンピュータプロセッサは、上記ストレージデバイスの間で上記データチャンクおよび上記コードチャンクを分散させるのとは異なって、上記ストレージデバイスの間でチャンクをレプリケートし得る。
ストレージシステムは、冗長性を有する複数の層を含み、当該層において、データはレプリケートされて複数のデータセンタに格納される。データセンタは、電気通信およびストレージシステム100(図1A〜図1C)などのコンピュータシステムおよびそれらの関連のコンポーネントを収容している。データセンタは、通常、バックアップ電源と、冗長な通信接続部と、(一定の温度を維持するための)環境制御部と、セキュリティデバイスとを含んでいる。データセンタは、(例えば小さな町と同じぐらいの)大量の電気を使用する大産業規模オペレーションであり得る。データは、さまざまな地理的場所(例えばさまざまな都市、さまざまな国およびさまざまな大陸)に位置し得る。いくつかの例では、(例えば、停電もしくは部品を交換するためのストレージシステムの一部の切離し、またはシステム故障、またはそれらの組み合わせのために)データセンタまたはその一部は
、メンテナンスを必要とする。これらのデータセンタに格納されたデータは、メンテナンス期間中はユーザが利用することはできない可能性があり、その結果、ユーザのオペレーションが損なわれるまたは停止することになる。したがって、ストレージシステム100またはその一部がメンテナンスを受けているにもかかわらずユーザが格納されたデータを検索することができる分散ストレージシステム100を提供することが望ましい。
、および/またはディスク)と通信するコンピューティングリソース112(例えば1つ以上のプロセッサまたは中央処理装置(central processing unit:CPU))を有する
。ストレージリソース114に重ね合わせられるストレージアブストラクション(例えばキー/値格納またはファイルシステム)は、1つ以上のクライアント120,120a〜120nによるストレージリソース114のスケーラブルな使用を可能にする。クライアント120は、(例えばRPCによって)ネットワーク130を介してメモリホスト110と通信し得る。
スすることを担うトランザクション・アプリケーション・プログラミング・インターフェース(application programming interface:API)350(例えば一方向トランザク
ションシステムクライアントライブラリ)を含み得る。データ制御部104は、ストレージリソース114の割当て、対応するネットワークインターフェースコントローラ116へのストレージリソース114の登録、クライアント120とメモリホスト110との間の接続のセットアップ、マシンが故障した場合のエラーへの対処などのタスクにより、ストレージリソース114への割当ておよびアクセスを管理し得る。データストレージ部106は、ゆるく結合されたメモリホスト110,110a〜110nを含み得る。
または、データ復旧を開始させ得る。さらに、キュレータ210は、メモリホスト110上のデータ312の存在および格納場所を追跡し得る。冗長なキュレータ210が可能である。いくつかの実現例では、キュレータ210は、冗長性および/または性能のために、複数のメモリホスト110にわたるデータ312のストライピング、ならびに、所与のストライプの複数のコピーの存在および/または場所を追跡する。コンピュータデータストレージにおいて、データストライピングは、シーケンシャルなセグメントのアクセスが異なる物理的ストレージデバイス114(例えばセル200および/またはメモリホスト110)に対してなされるように、ファイル310(図2)などの論理的にシーケンシャルなデータ312をセグメント化する技術である。ストライピングは、ストレージデバイス114がアクセスを提供できるよりも速く処理装置がデータ312へのアクセスを要求する場合に有用である。複数のデバイスでセグメントアクセスを実行することによって、複数のセグメントに同時にアクセスすることができる。これにより、データアクセススループットが多くなり、プロセッサが無駄にデータアクセスを待つことが回避される。
コードの性能までの)いくつかのエラーが導入されたとしても、当該ファイルは、後に受け手によって復旧されることができる。誤り訂正符号は、ストレージデバイスにおけるデータの完全性を維持するため、性能(遅延)のためにデータを再構築するため、またはより素早くマシンを使い果たすために使用される。
ル1 401a〜レベル5 401e)を特定するために、分散ストレージシステム100のメンテナンス階層400を決定し得る。メンテナンスは、電力メンテナンス、冷却システムメンテナンス(図4C)、ネットワーキングメンテナンス、部品の更新もしくは交換、または分散ストレージシステム100に影響を及ぼす他のメンテナンスもしくは停電を含み得る。
ベル2のメンテナンスユニット402aは、非アクティブ状態にある。バスダクト430aがメンテナンスを受けているときには、バスダクト430aおよびバスダクト430aに依存するレベル4および5の任意のコンポーネントを含むレベル3のメンテナンスユニット402bは、非アクティブ状態にある。ラック440aがメンテナンスを受けているときには、ラック440aおよびラック440aに依存するストレージデバイス114を含むレベル4のメンテナンスユニット402は、非アクティブ状態にある。最後に、ストレージデバイス114aがメンテナンスを受けているときには、レベル5のメンテナンスユニット402dは、ストレージデバイス114を含み、当該ストレージデバイスが非アクティブである。
デバイス114に格納されたデータにユーザがアクセスすることを可能にする。上記のように、非アクティブ状態の間は、ユーザは、メンテナンスを受けているメンテナンスユニット402に関連付けられるストレージデバイス114にアクセスすることができないため、ユーザは、ファイル(すなわち、ストライプレプリカ330nkおよびデータチャンク330ndkおよびコードチャンク330ncmを含むチャンク330)にアクセスすることができない。
クセス性を維持することができないとプロセッサ202が判断すると、プロセッサ202がファイル310のアクセス性を維持することができる選択されたストレージデバイス114Sの無作為選択群150nを特定するまで、プロセッサ202は、選択されたストレージデバイス114Sの無作為選択群150nを作成し続ける。
イルのチャンク330の数に等しい連続的な数のストレージデバイス114a〜114nを有する選択されたリスト162を選択し、順序付き循環リスト160は、第1のストレージデバイス114aから開始する。リスト160は、プロセッサ202の非一時的なメモリ204に格納され得る。次いで、プロセッサ202は、1つ以上の(または閾値数の)メンテナンスユニット402が非アクティブ状態にあるときに、選択されたリスト162からの選択されたストレージデバイス114a〜114nが集合的にファイル310(すなわちストライプ320)のアクセス性を維持することができないか否かを判断する。1つ以上の(または閾値数の)メンテナンスユニット402が非アクティブ状態にあるときに、選択されたストレージデバイス114a〜114nが集合的にファイル310(またはストライプ320)のアクセス性を維持することができないとプロセッサ202が判断すると、プロセッサ202は、ストライプ320またはファイル310のチャンク330の数に等しい連続的な数のストレージデバイス114a〜114nを有する別の選択されたリスト162を、順序付き循環リスト160から選択する。いくつかの例では、選択されたリスト162のストレージデバイス114a〜114nが集合的にファイル310(またはストライプ320)のアクセス性を維持することができないとプロセッサ202が判断すると、プロセッサ202は、順序付き循環リスト160における第1のストレージデバイス114nの後の第2のストレージデバイス114(n+1)に移動する。他の例では、プロセッサ202は、順序付き循環リスト160において予め定められた数の位置を下方に移動させる。いくつかの実現例では、プロセッサ202は、ストレージシステム100のストレージデバイス114の順序付き循環リスト160を決定し、順序付き循環リスト上の隣接するストレージデバイス114または閾値数の連続的なストレージデバイス114は、異なるメンテナンスユニット402に関連付けられる。さらにまたは代替的に、プロセッサ202は、ストレージシステム100のストレージデバイス114の順序付き循環リスト160を決定し、順序付き循環リスト上の隣接するストレージデバイス114または閾値数の連続的なストレージデバイス114は、各々が異なる地理的場所にある。いくつかの例では、順序付き循環リスト160上のストレージデバイス114は、異なるメンテナンスユニット402が順序付きリスト160に沿ってシーケンシャルにデータのばらつきを生じさせるように配置される。例えば、図4Aに示されるように、リストは、同一のバスダクト430aに依存するストレージデバイス114をシーケンシャルに含むことはできない。その代わりに、リスト160上の2つのシーケンシャルなストレージデバイス114は、異なるメンテナンスユニット402からのものであり、データアクセス性が確実に維持される。
選択群150aを決定することによって、および、1つ以上の(または閾値数の)メンテナンスユニット402が非アクティブ状態にあるときに、選択されたストレージデバイス114Sの選択群150aがファイル310(またはストライプ320)のアクセス性を維持することができるか否かを判断することによって、行われる。いくつかの例では、1つ以上の(または閾値数の)メンテナンスユニット402が非アクティブ状態にあるときに、選択されたストレージデバイス114Sの第1の無作為選択群150aがファイル310(またはストライプ320)のアクセス性を維持することができない場合、方法800は、ファイル310(またはストライプ320)のチャンク330の数に一致する選択されたストレージデバイス114Sの第2の無作為選択群150bを決定するステップ、または、1つ以上の無作為に選択されたストレージデバイス114を追加および除去することによってストレージデバイス114Sの第1の無作為選択群150aを修正するステップをさらに含む。方法800は、単純抽出法、確率抽出法、層別抽出法、または集落抽出法(上記で説明)を用いてストレージデバイス114の無作為選択群150を決定するステップをさらに含み得る。いくつかの例では、方法800は、1つ以上のまたは閾値数のメンテナンスユニット402が非アクティブ状態にあるときにストレージデバイス114の選択された無作為選択群150がファイル310(またはストライプ320)のアクセス性を維持することができるまで、選択されたストレージデバイス114Sの第3、第4、第5…などの無作為選択群を決定する。
タチャンク330ndkおよびコードチャンク330ncmに分割するステップを含む。また、方法800は、ストレージデバイス114の間でデータチャンク330ndkおよびコードチャンク330ncmを分散させるのとは異なって、ストレージデバイス114の間でレプリケーションチャンク330を分散させるステップを含み得る。
能な信号として受信するマシン読取可能な媒体を含む。「マシン読取可能な信号」という表現は、マシン命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を指す。
アアプリケーション、スクリプトまたはコードとしても知られている)は、コンパイラ型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語で書込まれてもよく、スタンドアロンのプログラムとして、またはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチンまたは他のユニットとしてなどの任意の形態で配備されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応していない。プログラムは、他のプログラムまたはデータ(例えばマークアップ言語文書に格納された1つ以上のスクリプト)を保持するファイルの一部に格納されてもよく、当該プログラムに専用の単一のファイルに格納されてもよく、または複数の調整されたファイル(例えば1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ、または、一箇所に位置するかもしくは複数の箇所にわたって分散されて通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように配備されてもよい。
格納するのに適したコンピュータ読取可能な媒体は、全ての形態の不揮発性メモリ、媒体およびメモリ装置を含み、一例として例えばEPROM、EEPROMおよびフラッシュメモリ装置といった半導体メモリ装置、例えば内蔵ハードディスクまたは取外し可能なディスクといった磁気ディスク、光磁気ディスク、ならびにCD ROMおよびDVD−ROMディスクを含む。プロセッサおよびメモリは、特殊用途論理回路によって補完されてもよく、または特殊用途論理回路に組み入れられてもよい。
もよい。また、コンピュータは、ユーザによって使用される装置にドキュメントを送り、ユーザによって使用される装置からドキュメントを受信することによって、例えばウェブブラウザから受信された要求に応答してユーザのクライアント装置上でウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。
(例えばインターネット)、ならびにピアツーピアネットワーク(例えばアドホックピアツーピアネットワーク)が挙げられる。
は複数のソフトウェア製品にパッケージングされてもよいということが理解されるべきである。
Claims (18)
- 分散ストレージシステムにおいてデータを分散させる方法であって、
データ処理ハードウェアで論理的にシーケンシャルなファイルを受取るステップを備え、前記ファイルにはファイル記述子が関連付けられており、前記ファイル記述子はクライアントキーを含み、前記受取られたファイルは、レプリケーションコードおよび/または誤り訂正符号を含み、
前記データ処理ハードウェアによって、前記受取られたファイルを複数のストライプに分割するステップと、
前記ファイルがレプリケーションコードを含む場合、少なくとも1つのストライプをレプリケーションチャンクとしてレプリケートするステップと、
前記ファイルが誤り訂正符号を含む場合、少なくとも1つのストライプをデータチャンクおよびコードチャンクに分割するステップとを備え、
前記クライアントキーは、各前記データチャンクおよび各前記コードチャンクに固有であり、各前記データチャンクおよび各前記コードチャンクを読み出すためのものであり、
前記方法は、
前記データ処理ハードウェアによって、前記分散ストレージシステムのメンテナンス階層に基づいて前記分散ストレージシステムのストレージデバイス間での複数のチャンクの分散を決定するステップとを備え、前記メンテナンス階層は、メンテナンスレベルを備え、各メンテナンスレベルは、1つ以上のメンテナンスユニットを備え、各メンテナンスユニットは、アクティブ動作状態と非アクティブ動作状態とを有し、各ストレージデバイスは、メンテナンスユニットに関連付けられ、前記複数のチャンクの前記分散を決定するステップは、前記ストライプのチャンクの数に一致し、かつ、1つ以上のメンテナンスユニットが前記非アクティブ動作状態にあるときに前記ファイルのアクセス性を維持することができる前記ストレージデバイスの無作為選択群を特定するステップを備え、前記方法はさらに、
前記データ処理ハードウェアによって、前記決定された分散に従って前記チャンクを前記分散ストレージシステムのストレージデバイスに分散させるステップとを備える、方法。 - いずれか1つのメンテナンスユニットのストレージデバイスに分散されるチャンクの数を制限するステップをさらに備える、請求項1に記載の方法。
- 前記1つ以上のメンテナンスユニットが前記非アクティブ動作状態にあるときに前記ストレージデバイスの前記無作為選択群が前記ファイルの前記アクセス性を維持することができない場合、前記ファイルのチャンクの数に一致するストレージデバイスの別の無作為選択群を決定する、請求項1に記載の方法。
- 前記1つ以上のメンテナンスユニットが前記非アクティブ動作状態にあるときに前記ストレージデバイスの無作為選択群が前記ファイルのアクセス性を維持することができない場合、1つ以上の無作為に選択されたストレージデバイスを追加および除去することによって前記ストレージデバイスの無作為選択群を修正する、請求項1に記載の方法。
- 単純抽出法、確率抽出法、層別抽出法、または集落抽出法を用いて前記ストレージデバイスの無作為選択群を決定するステップをさらに備える、請求項1に記載の方法。
- 前記データ処理ハードウェアによって、前記複数のチャンクの分散を決定するステップは、前記分散ストレージシステムの前記ストレージデバイスの順序付き循環リストから前記ファイルのチャンクの数に等しい数のストレージデバイスを選択することによって、前記ストレージデバイス間での前記チャンクの前記分散を決定することを含む、請求項1に記載の方法。
- 前記1つ以上のメンテナンスユニットが前記非アクティブ動作状態にあるときに前記選択されたストレージデバイスが全体として前記ファイルの前記アクセス性を維持することができない場合、前記順序付き循環リストから前記ファイルのチャンクの数に等しい別の数のストレージデバイスを選択するステップをさらに備える、請求項6に記載の方法。
- 前記順序付き循環リスト上の隣接するストレージデバイスは、異なるメンテナンスユニットに関連付けられる、請求項6に記載の方法。
- 前記順序付き循環リスト上の連続する番号のストレージデバイスは、各々が異なるメンテナンスユニットに関連付けられるか、または異なる地理的場所にある、請求項8に記載の方法。
- 分散ストレージシステムにおいてデータを分散させるためのシステムであって、
データ処理ハードウェアと、
前記データ処理ハードウェアと通信するメモリハードウェアとを備え、前記メモリハードウェアは、命令を格納し、前記命令は、前記データ処理ハードウェアで実行されたときに前記データ処理ハードウェアにオペレーションを実行させ、前記オペレーションは、
論理的にシーケンシャルなファイルを受取ることを備え、前記ファイルにはファイル記述子が関連付けられており、前記ファイル記述子はクライアントキーを含み、各ファイルは、レプリケーションコードおよび/または誤り訂正符号を含み、
前記論理的にシーケンシャルなファイルを複数のストライプに分割することを備え、
前記ファイルがレプリケーションコードを含む場合、少なくとも1つのストライプをレプリケーションチャンクとしてレプリケートすることと、
前記ファイルが誤り訂正符号を含む場合、少なくとも1つのストライプをデータチャンクおよびコードチャンクに分割することとを備え、
前記クライアントキーは、各前記データチャンクおよび各前記コードチャンクに固有であり、各前記データチャンクおよび各前記コードチャンクを読み出すためのものであり、
前記システムは、
前記分散ストレージシステムのメンテナンス階層に基づいて前記分散ストレージシステムのストレージデバイス間での前記複数のチャンクの分散を決定することを備え、前記メンテナンス階層は、メンテナンスレベルを備え、各メンテナンスレベルは、1つ以上のメンテナンスユニットを備え、各メンテナンスユニットは、アクティブ動作状態と非アクティブ動作状態とを有し、各ストレージデバイスは、メンテナンスユニットに関連付けられ、前記複数のチャンクの分散を決定することは、前記ストライプのチャンクの数に一致し、かつ、1つ以上のメンテナンスユニットが非アクティブ動作状態にあるときに前記ファイルのアクセス性を維持することができる前記ストレージデバイスの無作為選択群を特定することを備え、前記オペレーションはさらに、
前記決定された分散に従って前記チャンクを前記分散ストレージシステムのストレージデバイスに分散させることを備える、システム。 - 前記オペレーションは、いずれか1つのメンテナンスユニットのストレージデバイスに分散されるチャンクの数を制限することをさらに備える、請求項10に記載のシステム。
- 前記オペレーションは、前記1つ以上のメンテナンスユニットが前記非アクティブ動作状態にあるときに前記ストレージデバイスの前記無作為選択群が前記ファイルの前記アクセス性を維持することができない場合、前記ファイルのチャンクの数に一致するストレージデバイスの別の無作為選択群を決定する、請求項10に記載のシステム。
- 前記オペレーションは、前記1つ以上のメンテナンスユニットが前記非アクティブ動作状態にあるときに前記ストレージデバイスの無作為選択群が前記ファイルのアクセス性を維持することができない場合、1つ以上の無作為に選択されたストレージデバイスを追加および除去することによって前記ストレージデバイスの無作為選択群を修正することをさらに備える、請求項10に記載のシステム。
- 前記オペレーションは、単純抽出法、確率抽出法、層別抽出法、または集落抽出法を用いて前記ストレージデバイスの無作為選択群を決定することをさらに備える、請求項10に記載のシステム。
- 前記データ処理ハードウェアによって、前記複数のチャンクの分散を決定するステップは、前記分散ストレージシステムの前記ストレージデバイスの順序付き循環リストから前記ファイルのチャンクの数に等しい数のストレージデバイスを選択することによって、前記ストレージデバイス間での前記チャンクの前記分散を決定することを含む、請求項10に記載のシステム。
- 前記オペレーションは、前記1つ以上のメンテナンスユニットが前記非アクティブ動作状態にあるときに前記選択されたストレージデバイスが全体として前記ファイルの前記アクセス性を維持することができない場合、前記順序付き循環リストから前記ファイルのチャンクの数に等しい数のストレージデバイスを選択することをさらに備える、請求項15に記載のシステム。
- 前記順序付き循環リスト上の隣接するストレージデバイスは、異なるメンテナンスユニットに関連付けられる、請求項15に記載のシステム。
- 前記順序付き循環リスト上の連続的なストレージデバイスは、各々が異なるメンテナンスユニットに関連付けられるか、または異なる地理的場所にある、請求項17に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/097,380 | 2013-12-05 | ||
US14/097,380 US9367562B2 (en) | 2013-12-05 | 2013-12-05 | Distributing data on distributed storage systems |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016536755A Division JP6507167B2 (ja) | 2013-12-05 | 2014-09-24 | 分散ストレージシステム上でデータを分散させること |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018110008A JP2018110008A (ja) | 2018-07-12 |
JP6778704B2 true JP6778704B2 (ja) | 2020-11-04 |
Family
ID=53271375
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016536755A Active JP6507167B2 (ja) | 2013-12-05 | 2014-09-24 | 分散ストレージシステム上でデータを分散させること |
JP2018021208A Active JP6778704B2 (ja) | 2013-12-05 | 2018-02-08 | 分散ストレージシステム上でデータを分散させること |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016536755A Active JP6507167B2 (ja) | 2013-12-05 | 2014-09-24 | 分散ストレージシステム上でデータを分散させること |
Country Status (8)
Country | Link |
---|---|
US (7) | US9367562B2 (ja) |
EP (1) | EP3077917B1 (ja) |
JP (2) | JP6507167B2 (ja) |
CN (1) | CN105765554B (ja) |
AU (1) | AU2014357640B2 (ja) |
CA (3) | CA2931665C (ja) |
DE (1) | DE202014010909U1 (ja) |
WO (1) | WO2015084471A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367562B2 (en) * | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
US10762069B2 (en) * | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10379742B2 (en) * | 2015-12-28 | 2019-08-13 | Netapp, Inc. | Storage zone set membership |
US10514984B2 (en) | 2016-02-26 | 2019-12-24 | Netapp, Inc. | Risk based rebuild of data objects in an erasure coded storage system |
US10055317B2 (en) | 2016-03-22 | 2018-08-21 | Netapp, Inc. | Deferred, bulk maintenance in a distributed storage system |
US10116745B2 (en) | 2016-03-28 | 2018-10-30 | Samsung Electronics Co., Ltd. | Automatic client-server role detection among data storage systems in a distributed data store |
CN105959350B (zh) * | 2016-04-22 | 2018-11-23 | 深圳市永兴元科技股份有限公司 | 分布式数据存储方法及装置 |
CN105847279A (zh) * | 2016-05-03 | 2016-08-10 | 深圳市永兴元科技有限公司 | 分布式数据处理方法及数据中心 |
US10691557B1 (en) * | 2016-06-24 | 2020-06-23 | EMC IP Holding Company LLC | Backup file recovery from multiple data sources |
CN107688493B (zh) * | 2016-08-05 | 2021-06-18 | 阿里巴巴集团控股有限公司 | 训练深度神经网络的方法、装置及系统 |
US9952798B2 (en) * | 2016-08-12 | 2018-04-24 | Google Inc. | Repartitioning data in a distributed computing system |
WO2018032510A1 (zh) * | 2016-08-19 | 2018-02-22 | 华为技术有限公司 | 应用于存储设备中的访问请求的处理方法和装置 |
US10509708B2 (en) * | 2017-06-13 | 2019-12-17 | Vmware, Inc. | Code block resynchronization for distributed multi-mirror erasure coding system |
CN107967211A (zh) * | 2017-12-05 | 2018-04-27 | 郑州云海信息技术有限公司 | 一种存储设备代码分发方法、系统、装置及可读存储介质 |
US11341138B2 (en) * | 2017-12-06 | 2022-05-24 | International Business Machines Corporation | Method and system for query performance prediction |
JP2019194780A (ja) | 2018-05-01 | 2019-11-07 | 富士通株式会社 | 情報処理装置、データ管理プログラム及びデータ管理方法 |
US10719397B2 (en) | 2018-06-08 | 2020-07-21 | Samsung Electronics Co., Ltd. | System, device and method for storage device assisted low-bandwidth data repair |
CN109561153A (zh) * | 2018-12-17 | 2019-04-02 | 郑州云海信息技术有限公司 | 分布式存储系统及业务切换方法、装置、设备、存储介质 |
CN110109889A (zh) * | 2019-05-09 | 2019-08-09 | 重庆大学 | 一种分布式内存文件管理系统 |
US11740899B2 (en) * | 2021-08-31 | 2023-08-29 | Micron Technology, Inc. | In-memory associative processing system |
Family Cites Families (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405284B1 (en) * | 1998-10-23 | 2002-06-11 | Oracle Corporation | Distributing data across multiple data storage devices in a data storage system |
US6553389B1 (en) * | 1999-09-13 | 2003-04-22 | Hewlett-Packard Company | Resource availability determination mechanism for distributed data storage system |
US20010044879A1 (en) * | 2000-02-18 | 2001-11-22 | Moulton Gregory Hagan | System and method for distributed management of data storage |
TWI222020B (en) * | 2000-10-19 | 2004-10-11 | Wistron Corp | Method for installing and pre-setup of software |
US7418620B1 (en) * | 2001-02-16 | 2008-08-26 | Swsoft Holdings, Ltd. | Fault tolerant distributed storage method and controller using (N,K) algorithms |
US6662198B2 (en) * | 2001-08-30 | 2003-12-09 | Zoteca Inc. | Method and system for asynchronous transmission, backup, distribution of data and file sharing |
US20030187853A1 (en) * | 2002-01-24 | 2003-10-02 | Hensley Roy Austin | Distributed data storage system and method |
US20040088380A1 (en) * | 2002-03-12 | 2004-05-06 | Chung Randall M. | Splitting and redundant storage on multiple servers |
US7159150B2 (en) * | 2002-12-31 | 2007-01-02 | International Business Machines Corporation | Distributed storage system capable of restoring data in case of a storage failure |
US7831641B2 (en) * | 2003-04-24 | 2010-11-09 | Neopath Networks, Inc. | Large file support for a network file server |
US7568034B1 (en) * | 2003-07-03 | 2009-07-28 | Google Inc. | System and method for data distribution |
US7188118B2 (en) * | 2003-11-26 | 2007-03-06 | Veritas Operating Corporation | System and method for detecting file content similarity within a file system |
US7165059B1 (en) * | 2003-12-23 | 2007-01-16 | Veritas Operating Corporation | Partial file migration mechanism |
US7269689B2 (en) * | 2004-06-17 | 2007-09-11 | Hewlett-Packard Development Company, L.P. | System and method for sharing storage resources between multiple files |
US7536693B1 (en) * | 2004-06-30 | 2009-05-19 | Sun Microsystems, Inc. | Method for load spreading of requests in a distributed data storage system |
US8266237B2 (en) | 2005-04-20 | 2012-09-11 | Microsoft Corporation | Systems and methods for providing distributed, decentralized data storage and retrieval |
US7571168B2 (en) * | 2005-07-25 | 2009-08-04 | Parascale, Inc. | Asynchronous file replication and migration in a storage network |
US7636767B2 (en) * | 2005-11-29 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for reducing network traffic over low bandwidth links |
US7739239B1 (en) * | 2005-12-29 | 2010-06-15 | Amazon Technologies, Inc. | Distributed storage system with support for distinct storage classes |
US7840618B2 (en) * | 2006-01-03 | 2010-11-23 | Nec Laboratories America, Inc. | Wide area networked file system |
US20070214314A1 (en) * | 2006-03-07 | 2007-09-13 | Reuter James M | Methods and systems for hierarchical management of distributed data |
US7711711B1 (en) * | 2006-03-29 | 2010-05-04 | Emc Corporation | Networked storage system employing information lifecycle management in conjunction with a distributed global file system |
GB2446199A (en) * | 2006-12-01 | 2008-08-06 | David Irvine | Secure, decentralised and anonymous peer-to-peer network |
JP5320678B2 (ja) * | 2007-02-20 | 2013-10-23 | 日本電気株式会社 | データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム |
US7930611B2 (en) | 2007-03-09 | 2011-04-19 | Microsoft Corporation | Erasure-resilient codes having multiple protection groups |
US20080270436A1 (en) * | 2007-04-27 | 2008-10-30 | Fineberg Samuel A | Storing chunks within a file system |
US8046509B2 (en) * | 2007-07-06 | 2011-10-25 | Prostor Systems, Inc. | Commonality factoring for removable media |
US8930651B2 (en) * | 2007-10-05 | 2015-01-06 | Imation Corp. | Archiving system with partitions of individual archives |
US8140787B2 (en) * | 2007-10-05 | 2012-03-20 | Imation Corp. | Methods for implementation of an active archive in an archiving system and managing the data in the active archive |
US7962452B2 (en) * | 2007-12-28 | 2011-06-14 | International Business Machines Corporation | Data deduplication by separating data from meta data |
US7567188B1 (en) * | 2008-04-10 | 2009-07-28 | International Business Machines Corporation | Policy based tiered data deduplication strategy |
JP5236352B2 (ja) | 2008-05-15 | 2013-07-17 | 株式会社日立製作所 | アプリケーション配信制御システム、アプリケーション配信制御方法、情報処理装置、およびクライアント端末 |
US8346824B1 (en) * | 2008-05-21 | 2013-01-01 | Translattice, Inc. | Data distribution system |
US9098519B2 (en) * | 2008-09-16 | 2015-08-04 | File System Labs Llc | Methods and apparatus for distributed data storage |
US8161255B2 (en) * | 2009-01-06 | 2012-04-17 | International Business Machines Corporation | Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools |
US20100262797A1 (en) * | 2009-04-10 | 2010-10-14 | PHD Virtual Technologies | Virtual machine data backup |
US8560639B2 (en) * | 2009-04-24 | 2013-10-15 | Microsoft Corporation | Dynamic placement of replica data |
US8578120B2 (en) * | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US20150006895A1 (en) * | 2009-06-01 | 2015-01-01 | Maidsafe Foundation | Distributed network system |
US20110029729A1 (en) * | 2009-07-30 | 2011-02-03 | Lsi Corporation | Erasure coded data storage capacity and power management |
KR100985169B1 (ko) * | 2009-11-23 | 2010-10-05 | (주)피스페이스 | 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법 |
US8862617B2 (en) | 2010-02-09 | 2014-10-14 | Google Inc. | System and method for replicating objects in a distributed storage system |
US8341457B2 (en) | 2010-03-11 | 2012-12-25 | Lsi Corporation | System and method for optimizing redundancy restoration in distributed data layout environments |
US9811532B2 (en) * | 2010-05-03 | 2017-11-07 | Panzura, Inc. | Executing a cloud command for a distributed filesystem |
US8799413B2 (en) * | 2010-05-03 | 2014-08-05 | Panzura, Inc. | Distributing data for a distributed filesystem across multiple cloud storage systems |
US8224935B1 (en) | 2010-05-12 | 2012-07-17 | Symantec Corporation | Systems and methods for efficiently synchronizing configuration data within distributed computing systems |
GB2483088B (en) * | 2010-08-26 | 2012-07-18 | Giraffic Technologies Ltd | Asynchronous data streaming in a peer-to-peer network |
US8521703B2 (en) | 2010-11-05 | 2013-08-27 | International Business Machines Corporation | Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility |
CN101996111A (zh) * | 2010-11-30 | 2011-03-30 | 华为技术有限公司 | 一种倒换方法、装置及分布式刀片服务器系统 |
US9823981B2 (en) * | 2011-03-11 | 2017-11-21 | Microsoft Technology Licensing, Llc | Backup and restore strategies for data deduplication |
US8452819B1 (en) * | 2011-03-22 | 2013-05-28 | Amazon Technologies, Inc. | Methods and apparatus for optimizing resource utilization in distributed storage systems |
WO2012147087A1 (en) * | 2011-04-29 | 2012-11-01 | Tata Consultancy Services Limited | Archival storage and retrieval system |
EP2710510A4 (en) * | 2011-05-14 | 2015-05-06 | Bitcasa Inc | CLOUD FILE SYSTEM WITH SERVER DEPLOYMENT OF USER UNKNOWN ENCRYPTED FILES |
CN108664555A (zh) * | 2011-06-14 | 2018-10-16 | 慧与发展有限责任合伙企业 | 分布式文件系统中的去重复 |
JP2013025742A (ja) * | 2011-07-26 | 2013-02-04 | Nippon Telegr & Teleph Corp <Ntt> | 分散ファイル管理装置、分散ファイル管理方法及びプログラム |
US8615698B1 (en) | 2011-09-28 | 2013-12-24 | Google Inc. | Skewed orthogonal coding techniques |
US8868647B2 (en) * | 2012-01-11 | 2014-10-21 | Alcatel Lucent | Reducing latency and cost in resilient cloud file systems |
US20130254248A1 (en) * | 2012-03-23 | 2013-09-26 | Alcatel-Lucent Usa Inc. | Method And Apparatus For A Distributed File System In A Cloud Network |
EP2660723A1 (en) * | 2012-05-03 | 2013-11-06 | Thomson Licensing | Method of data storing and maintenance in a distributed data storage system and corresponding device |
US9229657B1 (en) * | 2012-11-01 | 2016-01-05 | Quantcast Corporation | Redistributing data in a distributed storage system based on attributes of the data |
US9367562B2 (en) * | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
US9697228B2 (en) * | 2014-04-14 | 2017-07-04 | Vembu Technologies Private Limited | Secure relational file system with version control, deduplication, and error correction |
US9939865B2 (en) * | 2014-06-13 | 2018-04-10 | Seagate Technology Llc | Selective storage resource powering for data transfer management |
US9417955B2 (en) * | 2014-08-21 | 2016-08-16 | Datrium, Inc. | Data reconstruction in distributed data storage system with key-based addressing |
US9684569B2 (en) * | 2015-03-30 | 2017-06-20 | Western Digital Technologies, Inc. | Data deduplication using chunk files |
US20180107455A1 (en) * | 2015-12-29 | 2018-04-19 | Eyelead Software SA | Real-time collaborative development in a live programming system |
US20190044809A1 (en) * | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
-
2013
- 2013-12-05 US US14/097,380 patent/US9367562B2/en active Active
-
2014
- 2014-09-24 EP EP14868156.2A patent/EP3077917B1/en active Active
- 2014-09-24 JP JP2016536755A patent/JP6507167B2/ja active Active
- 2014-09-24 CN CN201480063767.7A patent/CN105765554B/zh active Active
- 2014-09-24 CA CA2931665A patent/CA2931665C/en active Active
- 2014-09-24 AU AU2014357640A patent/AU2014357640B2/en active Active
- 2014-09-24 CA CA3132946A patent/CA3132946C/en active Active
- 2014-09-24 WO PCT/US2014/057209 patent/WO2015084471A1/en active Application Filing
- 2014-09-24 DE DE202014010909.5U patent/DE202014010909U1/de not_active Expired - Lifetime
- 2014-09-24 CA CA3014694A patent/CA3014694C/en active Active
-
2016
- 2016-06-13 US US15/180,896 patent/US10318384B2/en active Active
-
2018
- 2018-02-08 JP JP2018021208A patent/JP6778704B2/ja active Active
-
2019
- 2019-04-24 US US16/392,904 patent/US10678647B2/en active Active
-
2020
- 2020-05-21 US US16/880,513 patent/US11113150B2/en active Active
-
2021
- 2021-08-18 US US17/445,401 patent/US11620187B2/en active Active
-
2023
- 2023-03-28 US US18/191,371 patent/US12019519B2/en active Active
-
2024
- 2024-06-18 US US18/746,351 patent/US20240338279A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CA3014694A1 (en) | 2015-06-11 |
JP2016541068A (ja) | 2016-12-28 |
US12019519B2 (en) | 2024-06-25 |
US10678647B2 (en) | 2020-06-09 |
CA3014694C (en) | 2020-09-29 |
US20160299815A1 (en) | 2016-10-13 |
US20240338279A1 (en) | 2024-10-10 |
CA2931665C (en) | 2022-10-18 |
AU2014357640A1 (en) | 2016-04-21 |
JP2018110008A (ja) | 2018-07-12 |
CN105765554B (zh) | 2019-01-08 |
CN105765554A (zh) | 2016-07-13 |
EP3077917A1 (en) | 2016-10-12 |
US20230236935A1 (en) | 2023-07-27 |
CA3132946A1 (en) | 2015-06-11 |
US11620187B2 (en) | 2023-04-04 |
AU2014357640B2 (en) | 2016-12-08 |
US20150161163A1 (en) | 2015-06-11 |
EP3077917B1 (en) | 2019-04-17 |
US20210382790A1 (en) | 2021-12-09 |
US20200285541A1 (en) | 2020-09-10 |
CA3132946C (en) | 2023-06-20 |
US11113150B2 (en) | 2021-09-07 |
EP3077917A4 (en) | 2017-05-10 |
US20190250992A1 (en) | 2019-08-15 |
DE202014010909U1 (de) | 2017-01-17 |
JP6507167B2 (ja) | 2019-04-24 |
CA2931665A1 (en) | 2015-06-11 |
US9367562B2 (en) | 2016-06-14 |
US10318384B2 (en) | 2019-06-11 |
WO2015084471A1 (en) | 2015-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6778704B2 (ja) | 分散ストレージシステム上でデータを分散させること | |
US11947423B2 (en) | Data reconstruction in distributed storage systems | |
US10691716B2 (en) | Dynamic partitioning techniques for data streams | |
AU2017203459B2 (en) | Efficient data reads from distributed storage systems | |
US10635644B2 (en) | Partition-based data stream processing framework | |
US20180189367A1 (en) | Data stream ingestion and persistence techniques | |
US20150220398A1 (en) | Prioritizing Data Reconstruction in Distributed Storage Systems | |
US9823948B2 (en) | Efficient resource utilization in data centers | |
US9898360B1 (en) | Preventing unnecessary data recovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180308 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190326 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190626 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191008 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200728 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200828 |
|
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: 20200915 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201012 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6778704 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 |