JP5298393B2 - Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method - Google Patents
Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method Download PDFInfo
- Publication number
- JP5298393B2 JP5298393B2 JP2010534958A JP2010534958A JP5298393B2 JP 5298393 B2 JP5298393 B2 JP 5298393B2 JP 2010534958 A JP2010534958 A JP 2010534958A JP 2010534958 A JP2010534958 A JP 2010534958A JP 5298393 B2 JP5298393 B2 JP 5298393B2
- Authority
- JP
- Japan
- Prior art keywords
- data storage
- data
- checksum
- raid
- storage device
- 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
- 238000000034 method Methods 0.000 title claims description 12
- 238000013500 data storage Methods 0.000 claims abstract description 105
- 230000036961 partial effect Effects 0.000 claims abstract description 15
- 238000012937 correction Methods 0.000 claims abstract description 12
- 239000011159 matrix material Substances 0.000 claims description 71
- 238000004891 communication Methods 0.000 claims description 42
- 239000004744 fabric Substances 0.000 claims description 38
- 239000013598 vector Substances 0.000 claims description 13
- 238000011084 recovery Methods 0.000 claims description 9
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 20
- 230000008859 change Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009897 systematic 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1054—Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1057—Parity-multiple bits-RAID6, i.e. RAID 6 implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本出願は、2007年11月21日に出願された米国仮出願第60/989,670号「Parallel RAID Implementation for RAID6 and Reed−Solomon Code」の利益を主張し、参照によりその全体が本明細書に組込まれる全ての引用された参考文献を含む。 This application claims the benefit of US Provisional Application No. 60 / 989,670 “Parallel RAID Implementation for RAID 6 and Reed-Solomon Code” filed on Nov. 21, 2007, which is hereby incorporated by reference in its entirety. Includes all cited references incorporated into.
RAID(redundant array of inexpensive disks)アーキテクチャは、ハードディスクなどのデータ記憶ユニットのグループを使用して、耐故障性を有するデータ記憶装置を提供する。RAIDアーキテクチャは、誤りおよびディスク故障から情報を保護するために、前方誤り訂正(forward error correction)(FEC)コードおよび予備のデータ記憶ユニットを使用する。情報シンボルは、ビット、バイト、またはワードであってよい。情報シンボルは、符合化されて、データおよびチェックサムまたはパリティシンボルを含むコードシンボルを形成しうる。組織的な前方誤り訂正コードの場合、情報シンボルは、コードシンボルのデータシンボル部分において明示的に表されうる。 The RAID (Redundant Array of Inexpensive Disks) architecture uses a group of data storage units such as hard disks to provide a fault-tolerant data storage device. The RAID architecture uses a forward error correction (FEC) code and a spare data storage unit to protect information from errors and disk failures. An information symbol may be a bit, byte, or word. Information symbols may be encoded to form code symbols including data and checksum or parity symbols. In the case of a systematic forward error correction code, the information symbol can be explicitly represented in the data symbol part of the code symbol.
リードソロモンコードは、チェックサムシンボルの数に等しい記憶ユニットの故障の数を許容するために、RAIDアーキテクチャ(RS−RAID)で使用されうる。たとえば、データ用に20の記憶ユニットを、チェックサム用に4つの記憶ユニットを割当てる4重誤り訂正RS−RAIDアーキテクチャは、4つを含む4つまでの記憶デバイスにおける故障を許容しうる。 The Reed-Solomon code can be used in a RAID architecture (RS-RAID) to allow a number of storage unit failures equal to the number of checksum symbols. For example, a quad error correction RS-RAID architecture that allocates 20 storage units for data and 4 storage units for checksum can tolerate failures in up to four storage devices, including four.
RS−RAIDアーキテクチャは、通常、データ記憶ユニットに書込まれるデータシンボルを保護するために単一のRAIDコントローラを使用する。単一のRAIDコントローラが使用されて、チェックサム、符号化、および復号化計算を実施するとき、RAIDアーキテクチャのスループットまたはデータ記憶量および取出し速度は、RAIDでなくかつ耐故障性を有さないデータ記憶アーキテクチャと比べて低減される可能性がある。 RS-RAID architecture typically uses a single RAID controller to protect data symbols written to the data storage unit. When a single RAID controller is used to perform checksum, encoding, and decoding calculations, the RAID architecture's throughput or data storage and retrieval speed is not RAID and data storage is not fault tolerant. May be reduced compared to architecture.
したがって、高スループットで耐故障性を有する分散型のデータ記憶アーキテクチャが望ましい場合がある。 Thus, a distributed data storage architecture with high throughput and fault tolerance may be desirable.
高性能記憶アーキテクチャでは、複数のRAIDコントローラは、通信ファブリックと呼ぶ通信経路の共通集合を通じて互いに通信してもよい。通信ファブリックは、RAIDコントローラと所与のRAIDコントローラに割当てられた記憶デバイスとの間の通信経路と比較して高いレーテンシを有する可能性がある。レーテンシの高い通信ファブリックは、RAIDコントローラ間のデータ、メッセージ、構成などのトラフィックが、耐故障性を有する分散データ記憶装置のタスクに整合しなければ、RAIDデータ記憶アーキテクチャのスループットを減少させる可能性がある。通信ファブリックと割当てられたデータ記憶デバイスの集合との間に介在してもよい、それぞれのRAIDコントローラは、データ記憶アーキテクチャのノードと呼ばれてもよい。RAIDコントローラおよび割当てられたデータ記憶デバイスは、データ記憶クラスタと呼ばれてもよい。 In a high performance storage architecture, multiple RAID controllers may communicate with each other through a common set of communication paths called a communication fabric. The communication fabric may have a high latency compared to the communication path between the RAID controller and the storage device assigned to a given RAID controller. A high-latency communication fabric can reduce the throughput of a RAID data storage architecture if the traffic between RAID controllers, such as data, messages, and configuration traffic, does not match the fault-tolerant distributed data storage task. . Each RAID controller, which may intervene between the communications fabric and the assigned collection of data storage devices, may be referred to as a data storage architecture node. The RAID controller and assigned data storage device may be referred to as a data storage cluster.
リードソロモン(Reed−Solomon)RAID(RS−RAID)アーキテクチャは、冗長なデータ記憶デバイスを含むことによって、ハードディスクなどの記憶デバイスに書込まれ、また、記憶デバイスから読出される情報シンボルを保護しうる。mのチェックサムデバイスを使用するRS−RAIDアーキテクチャは、データ記憶デバイスのm程度の同時故障を許容しうる。mのチェックサムシンボルはc1,c2、…、cmで示されてもよい。RS−RAIDアーキテクチャはまた、d1,d2、…、dnで示す情報保持またはデータシンボル用の数nのデータ記憶デバイスを含みうる。 The Reed-Solomon RAID (RS-RAID) architecture can protect redundant information storage devices to protect information symbols written to and read from storage devices such as hard disks . An RS-RAID architecture that uses m checksum devices can tolerate as many as m simultaneous failures of data storage devices. The checksum symbols of m may be denoted by c 1 , c 2 ,..., cm . RS-RAID architecture also, d 1, d 2, ... , it may include a data storage device of the number n of information holding or data symbols indicated by d n.
チェックサムおよびデータ記憶デバイスは、データおよびチェックサムシンボルを、ビット、バイト、ワードなどとして記憶してもよい。リードソロモン(RS)コードなどのあるタイプの前方誤り訂正コード(forward error correction codes)(FEC)は、通常、バイトを使用することが留意されてもよい。たとえば、RSコードは、255のバイトブロック内の233のデータバイトと32のチェックサムバイトに233の情報バイトを符合化するブロックなどのバイトブロックに作用しうる。 The checksum and data storage device may store data and checksum symbols as bits, bytes, words, etc. It may be noted that certain types of forward error correction codes (FEC), such as Reed-Solomon (RS) codes, typically use bytes. For example, the RS code may operate on a byte block, such as a block that encodes 233 information bytes into 233 data bytes and 32 checksum bytes in a 255 byte block.
RS−RAIDアーキテクチャは、対応するデータ記憶デバイスD1、D2、…、Dnによって保持されるデータシンボルd1,d2、…、dnを使用して、i番目のチェックサムデバイスCiに記憶されるチェックサムシンボルciを計算しうる。RS−RAIDアーキテクチャは、D1、D2、…、Dn、C1、C2、…、Cmの記憶デバイスのうちの任意のm以下の記憶デバイスが故障する場合、故障したデバイスのうちの任意のデバイスのコンテンツが、損なわれていないまたは故障していないデバイスから再構築されうるように各ci(1≦i≦m)を確定しうる。RS−RAIDアーキテクチャは、ファンデルモンデ行列の特性により耐故障性を有する演算を提供することができ、ファンデルモンデ行列は、チェックサムシンボルを計算し維持し、記憶デバイスから読出したデータおよびチェックサムシンボルから情報を回復するのに使用される。RS−RAIDコントローラは、記憶デバイスが故障しても、添加されるかまたは拡大されたファンデルモンデ行列と単位行列の(n×n)部分の逆行列を計算することによって、記憶デバイスにおけるデータおよび/またはチェックサムシンボルを回復しうる。
RS-RAID architecture, the corresponding data storage device D 1, D 2, ..., the data symbols d 1, d 2, which is held by the D n, ..., using the d n, i-th checksum device C i The checksum symbol c i stored in can be calculated. RS-RAID architecture, D 1, D 2, ... , D n,
チェックサムシンボルを生成するために、RS−RAIDアーキテクチャは、データシンボルを、ファンデルモンデ行列の要素で重み付けし、式1によって線形関数Fiを使用して重み付けされたデータシンボルを合計しうる。関数Fiは、ファンデルモンデ行列の要素のi番目の行から得られうるため、Fi=[fi,1;fi,2;…;fi,n]Tである。
C=FD (式2a)
式2aは、
C = FD (Formula 2a)
Equation 2a is
有利に設計されたRS−RAID FECコードの場合、F行列は、要素:fi,j=ji−1を有する(m×n)ファンデルモンデ行列でありうる。式中、インデックスi=1、2、…、mおよびj=1、2、…、nは、それぞれ、ファンデルモンデ行列の行および列に対応し、代数演算は、ガロア体の特性を使用して実施される。たとえば、(3×4)ファンデルモンデ行列は、
誤りを含む可能性があるコードワードまたはコードシンボルから(n×1)情報ベクトル
拡張形態では、式
換言すれば、RS−RAIDアーキテクチャの各記憶デバイスは、拡大行列Aの行および列ベクトルE=[d1、d2、…、dn、c1、c2、…、cm]Tの対応する要素によって表されうる。mの冗長記憶デバイス中のいずれの冗長記憶デバイスも故障しない場合、回復される情報シンボルは、Aのnの行の任意の部分集合およびEのnの対応する要素を選択することによって確定されて、データ回復行列として記述されてもよい正方行列A'および対応するデータ記憶ユニットから読出されるデータのベクトル
たとえば、第3の、第5の、または、第3と第5の両方のデータ記憶デバイスが故障する場合、
並列RS−RAIDデータ記憶アーキテクチャは、各クラスタ内のデータおよびチェックサムを、全てのクラスタに転送されるかまたは配信される中間または部分和に集計しうる。中間データシンボル、中間チェックサムシンボル、データ記憶デバイスのクラスタへの割当てに関するクラスタ構成情報、およびデータ記憶デバイスの作動に関する状態などの使用は、並列RS−RAID分散データ記憶アーキテクチャのスケーラビリティおよびスループットを向上させながら、誤り訂正計算についての計算負荷およびレーテンシを低減しうる。 A parallel RS-RAID data storage architecture may aggregate data and checksums within each cluster into intermediate or partial sums that are transferred or distributed to all clusters. Use of intermediate data symbols, intermediate checksum symbols, cluster configuration information regarding allocation of data storage devices to clusters, and status regarding operation of data storage devices, etc., improves scalability and throughput of parallel RS-RAID distributed data storage architecture. However, the calculation load and latency for error correction calculation can be reduced.
本開示は、同じ数字が同じ要素を表す添付図面を参照することになる。 The present disclosure will refer to the accompanying drawings in which like numerals represent like elements.
図1は、データ記憶のための並列RS−RAIDアーキテクチャ100の例である。並列RS−RAIDアーキテクチャ100は、通信ファブリック1200、RAIDコントローラ1111〜1113、および記憶デバイス1001〜1012を含みうる。記憶デバイス1001〜1004、1005〜1008、および1009〜1012は、それぞれ、RAIDコントローラ1111〜1113に結合されうる。換言すれば、記憶デバイス1001〜1012の部分集合またはクラスタは、それぞれの対応するRAIDコントローラ1111〜1113に結合しうる。各RAIDコントローラ1111〜1113に結合しうる記憶デバイスの数は、等しくても、等しくなくてもよく、また、耐故障性を改善する、スループットを改善するなどのために、記憶デバイスのRAIDコントローラに対する構成またはマッピングは動的に変わってもよい。たとえば、記憶デバイス1001〜1012のRAIDコントローラ1111〜1113に対する割当ては、構成行列または同様のデータ構造によって確定されてもよい。
FIG. 1 is an example of a parallel RS-
図2は、変数「t」を含みうる構成行列200の例を示し、変数「t」は、RAIDコントローラの数のインデックスまたはカウンタである。たとえば、構成行列200の行206は、RAIDコントローラインデックス番号「t」と、RAIDコントローラ1111〜1113などのそれぞれのRAIDコントローラとの間のマッピング関数Q(t)を示す。行202はRAID記憶デバイス開始インデックスQS(t)を示し、行204はRAID記憶デバイス終了インデックスQE(t)を示す。たとえば、QS(2)=1005であり、QE(2)=1008である。デバイス番号のオフセットが、関数J()によって供給されてもよいため、J(QS(2))=5であり、これは、たとえば、5番目の記憶デバイスが第2の記憶デバイスクラスタで開始することを示しうることが留意されてもよい。構成行列200は、記憶デバイスを対応するRAIDコントローラにマッピングしうる。換言すれば、構成行列200は、記憶デバイスのどの部分集合またはクラスタが、所与のRAIDコントローラに割当てられるかを確定するかまたは制御しうる。計算のために、構成行列200は、以下で述べるように、コードワードを符合化するかまたは復号化しうる重み付き部分和の始まりと終わりを確定しうる、チェックサムおよびデータを更新するかまたは維持しうるなどを行いうる。
FIG. 2 shows an example of a
通信ファブリック1200は、RAIDコントローラ1111〜1113間で、また、並列RS−RAIDアーキテクチャ100と外部デバイスとの間で入力および出力(I/O)デジタル信号を結合しうる。たとえば、通信ファブリック1200は、RAIDコントローラ1111〜1113間で、データシンボル、チェックサムシンボル、中間データおよびチェックサムシンボルなどのようなデジタル信号を結合しうる。通信ファブリック1200は、並列バス構造、直列データリンク、光バックプレーンなどを使用してもよい。通信ファブリック1200は、外部通信用に1つのタイプのバス、リンク、またはバックプレーン構造を、RAIDコントローラ1111〜1113間の通信用に別のタイプを使用してもよい。
RAIDコントローラ1111〜1113は、構成行列200などの構成行列または他のデータ構造によって与えられた、割当てられた記憶デバイスの部分集合またはクラスタ内の各記憶デバイスについてデータチェックサムシンボルを計算しうる。RAIDコントローラ1111〜1113は、誤り訂正コード計算の部分和を集計するかまたは蓄積し、集計されたデータおよびパリティ計算結果を、通信ファブリック1200を通じて、並列RS−RAIDアーキテクチャ100内の他のRAIDコントローラに報告しうる。データおよびチェックサムシンボルについての部分和計算の詳細が、特定のRAIDコントローラを参照して述べられてもよいが、対応する計算は、RAIDコントローラ1111などの、並列RS−RAIDアーキテクチャ100内の任意のRAIDコントローラによって実施されてもよい。
The
図3は、通信ファブリックインタフェース1111a、RAIDコントロールユニット1111b、中間和デバイス1111c、記憶デバイスインタフェース1111g、および記憶デバイス故障センスユニット1111hを含みうるRAIDコントローラ1111の例を示す。通信ファブリックインタフェース1111aは、通信ファブリック1200などの通信ファブリックへのまた通信ファブリックからの信号を、中間和デバイス1111cおよびRAIDコントロールユニット1111bに結合しうる。RAIDコントロールユニット1111bは、中間和デバイス1111c、記憶デバイスインタフェース1111g、および記憶デバイス故障センスユニット1111hに結合しうる。記憶デバイスインタフェース1111gは、RAIDコントロールユニット1111b、中間和デバイス1111c、および記憶デバイス故障センスユニット1111hに結合しうる。RAIDコントローラ1111は、先に述べたように、通信ファブリック1200へまた通信ファブリック1200から結合し、記憶デバイスインタフェース1111gを介して記憶デバイス1001〜1004などの記憶デバイスへまた記憶デバイスから結合しうる。
FIG. 3 shows an example of a
中間和デバイス1111cは、中間和計算器1111d、再計算器1111e、および計算コントロール1111fを含みうる。中間和計算器1111dは、通信ファブリックインタフェース1111a、記憶デバイスインタフェース1111g、再計算器1111e、および計算コントロール1111fに結合しうる。再計算器1111eは、通信ファブリックインタフェース1111a、中間和計算器1111d、計算コントロール1111f、および記憶デバイスインタフェース1111gに結合しうる。計算コントロール1111fは、中間和計算器1111d、再計算器1111e、および記憶デバイスインタフェース1111gに結合しうる。
The
通信ファブリックインタフェース1111aは、並列RS−RAIDアーキテクチャ100と外部デバイスとの間で情報シンボルを転送し、通信ファブリック1200とRAIDコントローラ1111の要素との間で、情報シンボル、情報シンボルの所定部分、データシンボル、中間チェックサムシンボルなどのチェックサムシンボル、コントロール信号、クロック信号などを結合しうる。通信ファブリックインタフェース1111aは、情報シンボルをビットからバイト、ワード、または他のシンボルにリフォーマットしうる、信号を多重化し逆多重化しうる、データ転送を同期化しうる、ラインドライバおよび受信機によって信号をバッファリングしうるなどを行いうる。換言すれば、通信ファブリックインタフェース1111aは、デジタルバスなどの通信ファブリックを通じて送信するためにデジタル信号を調節しうる、データ転送をバッファリングしうるなどを行いうる。
The
RAIDコントロールユニット1111bは、通信ファブリックインタフェース1111aおよび記憶デバイスから信号を受信しうる、情報シンボルの部分集合からデータシンボルを選択しうる、記憶デバイスにわたってデータおよびチェックサムシンボルをストライピングしうる、前方誤り訂正コード(forward−error correction code)(FECcode)によって中間和デバイス1111cの作動を制御しうるなどを行いうる。たとえば、情報シンボルの部分集合は、データシンボルによって表され、かつ、RAIDコントローラ1111によって制御される作動可能なデータ記憶デバイスに記憶される情報シンボルでありうる。中間和デバイス1111cは、記憶デバイス故障センスユニット1111hから状態情報を得ることができるRAIDコントロールユニット1111bから作動可能な記憶デバイスの数に関する状態情報を受信してもよい。
記憶デバイス故障センスユニット1111hは、RAIDコントローラ1111に結合する任意の記憶デバイスの作動に関する状態を確定し、作動可能な記憶デバイスのリストを確定しうる。換言すれば、記憶デバイス故障センスユニット1111hは、所与の記憶デバイスが、データおよびチェックサムの確実な記憶に適さなくなったかどうかを判定しうる。記憶デバイス故障センスユニット1111hは、信頼性のある作動について記憶デバイスを試験しうる、所与の記憶デバイスがオンラインであるかどうかを判定しうる、所与の記憶デバイスからの応答が、所定のタイムアウト間隔内に受信されない場合、ユニットオフラインを宣言しうる、信号品質メトリックが、記憶デバイスから読出されたデータについて閾品質より小さいかどうかを判定しうる、作動可能な記憶デバイスを挙げうるなどを行いうる。記憶デバイス故障センスユニット1111hは、こうした試験の結果を記録し、RAIDコントロールユニット1111bなどのRAIDコントローラ1111の要素のために、作動可能な記憶デバイスのリストを配信しうる。
The storage device
中間和計算器1111dは、中間的でローカルで部分的な和を計算することができ、この和内に、チェックサムおよびデータについての誤り訂正コード計算が、式8および式13に関してそれぞれ述べたように分解されうる。中間的なまたは部分的な和は、RAIDコントローラ1111に報告するクラスタ内の作動可能な記憶デバイスから読出されるシンボルの重み付き和であってよい。たとえば、記憶デバイスのクラスタおよびこうした部分和の合計の対応する制限は、構成行列200などの構成行列または他のデータ構造から確定されてもよい。中間和計算器1111dは、RAIDコントローラ1112またはRAIDコントローラ1113などの他のRAIDコントローラから対応する部分和を受信した後、データおよびチェックサムシンボルを計算しうる。
The
再計算器1111eは、RAIDコントローラ1111に直接結合する記憶デバイスからのデータに基づいて中間的なローカルのチェックサムを、また、通信ファブリックインタフェース1111aを通して転送される他のRAIDコントローラからのローカルでない中間チェックサムを再計算しうる。換言すれば、データまたはチェックサムシンボルの変化が、RAIDコントローラ1111に直接結合するローカルの記憶デバイスにおいて起こるか、または、通信ファブリック1200を通じてRAIDコントローラ1111に送信される中間チェックサムによって起こると、再計算器1111eは、中間和計算器1111dからの結果を相応して修正しうる。
The
計算コントロール1111fは、中間チェックサム計算結果または再計算されたチェックサムが、FECのために使用されるべきかどうかを判定するために、中間和計算器1111dと再計算器1111eの両方を制御しうる。RAIDコントロール1111bは、中間和計算器1111dの結果と再計算器1111eの結果のいずれが計算されるかを判定するために、直接にまたは通信ファブリックインタフェース1111aを通して計算コントロール1111fに合図し(signal)うる。RAIDコントロール1111bは、記憶デバイス故障センスユニット1111hから、データ記憶デバイスに関する作動に関する状態などの状態情報を得ることができる。
The
並列RAIDコントローラ1111〜1113は、
RAIDコントローラ1111などのt番目のRS−RAIDコントローラは、
中間チェックサムci,tの使用は、通信ファブリック1200上のデータトラフィックを低減することができ、並列RS−RAIDアーキテクチャ100のスループットを増加させることができる。たとえば、8+4RS−RAIDアーキテクチャでは、単一の主要なRAIDコントローラが、記憶デバイスの全てを制御し、チェックサムを計算する場合、8つのデータシンボルが、通信ファブリックを通じて転送されうる。対照的に、8+4並列RS−RAIDアーキテクチャからの中間チェックサム計算器結果を使用して、2つの中間チェックサムシンボルだけが、通信ファブリックを通じて転送される必要がある可能性がある。
The use of intermediate checksums c i, t can reduce data traffic on
中間チェックサムおよび全チェックサムを計算することに加えて、並列RS−RAIDアーキテクチャ100は、データシンボルが変化すると、チェックサムシンボルを修正するかまたは維持しうる。たとえば、データシンボルが、djからd'jに変化すると、チェックサムは、
c'i=ci+fi,j(d'j−dj) 式9
によって、再計算されうる。式9の計算を実施するとき、RAIDコントローラ1111は、データ差(d'j−dj)を計算し、ファンデルモンデ要素fi,j、すなわち、
c ′ i = c i + f i, j (d ′ j −d j )
Can be recalculated. When performing the calculation of
個々の並列RAIDコントローラ1111〜1113は、一時的な成分c'i,tをRAIDコントローラ1111〜1113の他のコントローラに送出しうる。
Individual
RS−RAIDコントローラ1111〜1113は、
記憶デバイスが故障する、たとえば、記憶デバイス故障センスユニット1111hがハードディスククラッシュを検出すると、拡大行列の逆行列Inv(A)が、並列RAIDコントローラ1111〜1113によって修正されて、残りのまたは作動可能なデータ記憶デバイスに対応する逆行列Inv(A')が形成される。行列Inv(A')は、記憶デバイスのさらなる故障が起こらない限り、静的データ構造である可能性がある。別の記憶デバイスが故障すると、Inv(A')が一回計算され、その後、RAIDコントローラ1111〜1113などの全ての作動可能なRAIDコントローラにブロードキャストされうる。より多くの記憶デバイスが後で故障する場合、新しい逆行列Inv(A'')が、再計算され、全てのRAIDコントローラにブロードキャストされてもよい。
When a storage device fails, for example, when the storage device
並列RS−RAIDアーキテクチャ100は、記憶デバイスが故障しても、各RAIDコントローラにおいてローカルで計算される中間和または部分和を使用して、データシンボルを回復しうる。回復されるデータ
他の並列RS−RAIDコントローラから、中間データシンボルなどのメッセージを受信すると、個々のRAIDコントローラは、最初に中間データシンボル
図4Aは、データ記憶用の並列RS−RAIDアーキテクチャのためのチェックサムプログラムフローチャート400Aの例を示す。プログラムフローチャート400Aは、プログラムステップS410で開始し、並列RS−RAIDアーキテクチャの構成行列が読出されうるプログラムステップS420に進みうる。たとえば、構成行列は、図2に関して述べた構成行列などの、所与のRAIDコントローラに関連する記憶デバイスについての開始デバイス番号と終了デバイス番号を指定しうる。各RAIDコントローラは、構成行列のローカルなコピーを記憶しうる、構成行列を他のRAIDコントローラと調和させうる、構成行列を、高レベルのRAIDデバイスまたはネットワークコントローラから受信しうるなどを行いうることが理解されてもよい。
FIG. 4A shows an example of a
プログラムステップS420から、プログラムフローは、プログラムステップS425に進むことができ、プログラムステップS425にて、プログラムは、外部デバイスから、記憶される情報保持データシンボルを読出すことができる。たとえば、プログラムは、通信ファブリックを通じて受信される2Kビットのデータブロックの集合をフラッシュドライブから受信しうる。 From program step S420, the program flow can proceed to program step S425, where the program can read the stored information holding data symbols from the external device. For example, the program may receive a set of 2K bit data blocks received from the flash drive through the communication fabric.
プログラムステップS425から、プログラムは、中間チェックサムが計算されうるプログラムステップS430に進むことができる。たとえば、中間チェックサムまたはデータおよびパリティ計算は、式8およびガロア体の特性を使用した、データワードの線形結合から計算されうる。プログラムステップS430は、中間チェックサムを計算し、1)所与のRAIDコントローラにコードワードシンボルの所定部分を供給する個々の作動可能な記憶ユニットからの記憶されたコードワードシンボルを使用して中間チェックサムを更新するかまたは維持し、2)通信ファブリックを通じて所与のRAIDコントローラと通信する他のRAIDコントローラからの中間チェックサムを集計しうる。換言すれば、ローカルな部分集合データ記憶ユニットからの低レーテンシのデータおよびパリティビット、バイト、またはワードは、他のデータ記憶ユニットからの、ci,tの形態の、高レーテンシの、蓄積されるかまたは部分的に合計されたデータおよびパリティと結合されうる。その後、プログラムは、プログラムステップS460に進む。
From program step S425, the program can proceed to program step S430 where an intermediate checksum can be calculated. For example, an intermediate checksum or data and parity calculation may be calculated from a linear combination of data
ステップS460にて、プログラムは、中間チェックサムを異なるRS−RAIDコントローラに配信しうる。たとえば、Q(t)=tである場合、プログラムステップS460は、第1のRAIDコントローラからの第1の中間チェックサムc1,1を第2および第3のRAIDコントローラに配信しうる。 In step S460, the program may distribute the intermediate checksum to different RS-RAID controllers. For example, if Q (t) = t, program step S460 may distribute the first intermediate checksum c 1,1 from the first RAID controller to the second and third RAID controllers.
プログラムステップS460から、プログラムフローは、プログラムステップS470に進むことができ、プログラムステップS470にて、プログラムは、他のRAIDコントローラから中間チェックサムを受信しうる。プログラムステップS470から、プログラムはプログラムステップS480に進みうる。中間チェックサムの集合によって、各RAIDコントローラが、式8によって完全なチェックサムciを計算し、その後の誤り訂正および検出計算についてciを記憶することが可能になる。たとえば、プログラムは、第2および第3の中間チェックサムci,2およびci,3を受信することができ、第2および第3の中間チェックサムci,2およびci,3は、ローカルに計算された第1のチェックサムci,1と共に、c1を計算するためのチェックサムの十分な集合を形成しうる。
From program step S460, program flow can proceed to program step S470, where the program can receive an intermediate checksum from another RAID controller. From program step S470, the program can proceed to program step S480. The set of intermediate checksums allows each RAID controller to calculate a complete checksum c i according to
プログラムステップS480から、プログラムフローは、プログラムステップS490に進むことができ、プログラムステップS490にて、プログラムは、プログラムを実行するRAIDコントローラに割当てられるデータおよび完全なチェックサムシンボルを記憶しうる。たとえば、プログラムは、ディスクのアレイにわたってデータおよびチェックサムシンボルをストライピングしうる。プログラムステップS490から、プログラムフローは、プログラム実行が停止しうるプログラムステップS495に進みうる。 From program step S480, program flow can proceed to program step S490, where the program can store data assigned to the RAID controller executing the program and a complete checksum symbol. For example, a program may strip data and checksum symbols across an array of disks. From program step S490, the program flow can proceed to program step S495 where program execution can stop.
図4Bは、データ記憶用の並列RS−RAIDアーキテクチャのためのチェックサム更新プログラムフローチャート400Bの例を示す。プログラムフローチャート400Bは、ステップS440で開始し、ステップS442に進む。
FIG. 4B shows an example of a checksum
ステップS442にて、並列RS−RAIDアーキテクチャは、データの変化を受信する可能性がある。たとえば、記憶デバイスは、古いデータシンボルを置換するために新しいデータシンボルを受信してもよい。その後、プログラムフローはステップS444に進みうる。 At step S442, the parallel RS-RAID architecture may receive a data change. For example, the storage device may receive new data symbols to replace old data symbols. Thereafter, the program flow can proceed to step S444.
ステップS444にて、記憶デバイスに結合するRAIDコントローラは、式10によって、一時的な成分を計算しうる。RAIDコントローラは、新しいデータシンボルと古いデータシンボルとのデータ差を得、ファンデルモンデ行列要素によってデータ差に重み付けしてもよい。その後、プログラムフローはステップS446に進みうる。
In step S444, the RAID controller coupled to the storage device may calculate a temporary component according to
ステップS446にて、一時的な成分は、他のRAIDコントローラに伝達されうる。ある実施形態では、通信ファブリックは、種々のRAIDコントローラを結合してもよい。通信ファブリックは、データ変化に対応する一時的な成分を、チェックサムを記憶する記憶デバイスを制御するRAIDコントローラに伝達しうる。その後、プログラムフローはステップS448に進みうる。 In step S446, the temporary component can be communicated to other RAID controllers. In certain embodiments, the communication fabric may combine various RAID controllers. The communication fabric may communicate a temporary component corresponding to the data change to a RAID controller that controls the storage device that stores the checksum. Thereafter, the program flow may proceed to step S448.
ステップS448にて、チェックサムを記憶する記憶デバイスを制御するRAIDコントローラは、たとえば、式11によって、受信した一時的な成分に基づいてチェックサムを更新してもよい。その後、プログラムフローはステップS450に進み、停止しうる。 In step S448, the RAID controller that controls the storage device that stores the checksum may update the checksum based on the received temporary component, for example, using Equation 11. Thereafter, the program flow may proceed to step S450 and stop.
図5は、データ記憶用の並列RS−RAIDアーキテクチャのためのデータプログラムフローチャート500の例を示す。プログラムフローチャート500は、ステップS510で開始し、ステップS520に進むことができ、ステップS520にて、並列RS−RAIDアーキテクチャの構成行列が、図4Aに関して説明したように読出されうる。プログラムステップS520から、プログラムフローは、プログラムステップS525に進むことができ、プログラムステップS525にて、データおよびチェックサムシンボルが、記憶デバイスから読出されうる。たとえば、8つのデータおよび4つのチェックサムシンボルは、12の記憶デバイスから読出されうる。この例では、少なくとも8つのデータまたはチェックサムシンボルが、作動可能な記憶デバイスから読出されうる。
FIG. 5 shows an example of a data
プログラムステップS425から、プログラムフローは、プログラムステップS530に進むことができ、プログラムステップS530にて、プログラムは、中間データシンボルを計算しうる。たとえば、プログラムは、式13によって、中間データシンボルを計算しうる。式13で使用される重み係数ai,jは、予め計算され、RAIDコントローラに配信されるか、または、プログラムステップS520において構成行列を読出した後などに、必要に応じて再計算されてもよいことが理解されてもよい。プログラムステップS530から、プログラムフローは、プログラムステップS540に進むことができ、プログラムステップS540にて、プログラムは、中間データシンボルを並列RAIDコントローラに配信しうる。 From program step S425, the program flow can proceed to program step S530, where the program can calculate intermediate data symbols. For example, the program may calculate intermediate data symbols according to Equation 13. The weighting factors a i, j used in Equation 13 may be calculated in advance and distributed to the RAID controller, or may be recalculated as necessary, such as after reading the configuration matrix in program step S520. It may be understood that it is good. From program step S530, program flow can proceed to program step S540, where the program can distribute the intermediate data symbols to the parallel RAID controller.
プログラムステップS540から、プログラムフローは、プログラムステップS550に進むことができ、プログラムステップS550にて、プログラムは、並列RAIDコントローラから中間データシンボルを受信しうる。プログラムステップS550から、プログラムフローは、プログラムステップS560に進むことができ、プログラムステップS560にて、プログラムは、ローカルなRAIDコントローラと並列RAIDコントローラの両方から来た中間データシンボルから、回復されるデータシンボルを計算しうる。換言すれば、プログラムは、式14によって、中間データシンボルを合計しうる。プログラムステップS560から、プログラムフローは、プログラム実行が停止しうるプログラムステップS570に進むことができる。 From program step S540, the program flow can proceed to program step S550, where the program can receive intermediate data symbols from the parallel RAID controller. From program step S550, program flow can proceed to program step S560, where the program recovers data symbols from intermediate data symbols that came from both the local RAID controller and the parallel RAID controller. Can be calculated. In other words, the program may sum the intermediate data symbols according to Equation 14. From program step S560, the program flow can proceed to program step S570 where program execution can stop.
本発明は、本発明の特定の例示的な実施形態に関連して述べられたが、多くの代替、修正、および変形が当業者に明らかになることが明らかである。したがって、本明細書で述べる本発明の実施形態は、制限的でなく、例証的であることを意図される。本発明の精神および範囲から逸脱することなく行われてもよい変更が存在する。 Although the invention has been described with reference to specific exemplary embodiments of the invention, it will be apparent that many alternatives, modifications, and variations will be apparent to those skilled in the art. Accordingly, the embodiments of the invention described herein are intended to be illustrative rather than limiting. There are changes that may be made without departing from the spirit and scope of the invention.
Claims (26)
複数の並列データ記憶クラスタであって、
複数のデータシンボルを記憶する複数のデータ記憶デバイス、および、
前記複数のデータ記憶デバイスのそれぞれに結合し、前記複数のデータシンボルからローカルな中間チェックサムを計算し、前記ローカルな中間チェックサムを含む複数の中間チェックサムに基づいて前記複数のデータシンボルのチェックサムを計算するよう構成されたRAIDコントローラを含む、複数の並列データ記憶クラスタと、
前記複数の並列データ記憶クラスタのそれぞれに結合し、前記複数の中間チェックサムを前記複数の並列データ記憶クラスタに配信する通信ファブリックとを備える分散データ記憶デバイス。 A distributed data storage device,
A plurality of parallel data storage clusters,
A plurality of data storage devices for storing a plurality of data symbols; and
Coupling to each of the plurality of data storage devices, calculating a local intermediate checksum from the plurality of data symbols, and checking the plurality of data symbols based on a plurality of intermediate checksums including the local intermediate checksum A plurality of parallel data storage clusters including a RAID controller configured to calculate a sum;
A distributed data storage device comprising: a communication fabric coupled to each of the plurality of parallel data storage clusters and delivering the plurality of intermediate checksums to the plurality of parallel data storage clusters.
複数のデータ記憶デバイスを複数の並列データ記憶クラスタに割当てること、
前記複数の並列データ記憶クラスタのそれぞれに複数のデータシンボルを記憶すること、
前記複数の並列データ記憶クラスタのそれぞれに含まれる複数のRAIDコントローラのそれぞれが、前記複数のデータシンボルの重み付き和から中間チェックサムを計算すること、
前記複数のRAIDコントローラの少なくとも1つが、前記複数のRAIDコントローラの他のRAIDコントローラのそれぞれから前記中間チェックサムを受信すること、
前記複数のRAIDコントローラの少なくとも1つが、計算した前記中間チェックサムおよび前記他のRAIDコントローラのそれぞれから受信した前記中間チェックサムに基づいて前記複数のデータシンボルのチェックサムを計算すること、および、
前記複数のデータ記憶デバイスの少なくとも1つに前記チェックサムを記憶することを含むデータ記憶方法。 A data storage method,
Assigning multiple data storage devices to multiple parallel data storage clusters;
Storing a plurality of data symbols in each of the plurality of parallel data storage clusters;
Each of a plurality of RAID controllers included in each of the plurality of parallel data storage clusters calculates an intermediate checksum from a weighted sum of the plurality of data symbols;
At least one of the plurality of RAID controllers receives the intermediate checksum from each of the other RAID controllers of the plurality of RAID controllers ;
At least one of the plurality of RAID controllers calculates a checksum of the plurality of data symbols based on the calculated intermediate checksum and the intermediate checksum received from each of the other RAID controllers ; and
A data storage method comprising storing the checksum in at least one of the plurality of data storage devices.
通信ファブリックを使用して、前記複数の並列データ記憶クラスタに前記選択されたデータシンボルを配信することをさらに含む請求項20に記載のデータ記憶方法。 Selecting the plurality of data symbols from a subset of information symbols; and
21. The data storage method of claim 20 , further comprising distributing the selected data symbols to the plurality of parallel data storage clusters using a communication fabric.
前記中間データシンボルの和から、回復されるデータシンボルを計算することをさらに含む請求項24に記載のデータ記憶方法。 Delivering the intermediate data symbols to each of the plurality of parallel data storage clusters; and
The data storage method of claim 24 , further comprising calculating a recovered data symbol from the sum of the intermediate data symbols.
複数のデータ記憶デバイスを複数の並列データ記憶クラスタに割当てる構成行列を読出すこと、
複数のデータシンボルを前記複数の並列データ記憶クラスタに記憶すること、
前記複数の並列データ記憶クラスタのそれぞれに含まれる複数のRAIDコントローラのそれぞれが、前記割当てられたデータ記憶デバイスに記憶された前記複数のデータシンボルから中間チェックサムを計算することであって、それにより、少なくとも1つの中間チェックサムがそれぞれのデータ記憶クラスタについて計算される、計算すること、
前記複数のRAIDコントローラの少なくとも1つが、前記複数のRAIDコントローラの他のRAIDコントローラのそれぞれから前記中間チェックサムを受信すること、
チェックサムを形成するために、前記複数のRAIDコントローラの少なくとも1つが、計算した前記中間チェックサムおよび前記他のRAIDコントローラのそれぞれから受信した前記中間チェックサムを合計すること、および、
前記チェックサムを少なくとも1つのデータ記憶デバイスに記憶する方法。 A method for error correction in a distributed data architecture, comprising:
Reading a configuration matrix that allocates a plurality of data storage devices to a plurality of parallel data storage clusters;
Storing a plurality of data symbols in the plurality of parallel data storage clusters;
Each of a plurality of RAID controllers included in each of the plurality of parallel data storage clusters calculates an intermediate checksum from the plurality of data symbols stored in the assigned data storage device, thereby Calculating at least one intermediate checksum for each data storage cluster;
At least one of the plurality of RAID controllers receives the intermediate checksum from each of the other RAID controllers of the plurality of RAID controllers ;
At least one of the plurality of RAID controllers sums the calculated intermediate checksum and the intermediate checksum received from each of the other RAID controllers to form a checksum; and
A method of storing the checksum in at least one data storage device.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US98967007P | 2007-11-21 | 2007-11-21 | |
US60/989,670 | 2007-11-21 | ||
PCT/US2008/012944 WO2009070235A2 (en) | 2007-11-21 | 2008-11-20 | Parallel reed-solomon raid (rs-raid) architecture, device, and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011504269A JP2011504269A (en) | 2011-02-03 |
JP5298393B2 true JP5298393B2 (en) | 2013-09-25 |
Family
ID=40643226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010534958A Active JP5298393B2 (en) | 2007-11-21 | 2008-11-20 | Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method |
Country Status (5)
Country | Link |
---|---|
US (3) | US8219887B2 (en) |
EP (2) | EP2212796B1 (en) |
JP (1) | JP5298393B2 (en) |
KR (1) | KR101543369B1 (en) |
WO (1) | WO2009070235A2 (en) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8265177B2 (en) * | 2006-12-04 | 2012-09-11 | Samsung Electronics Co., Ltd. | System and method for wireless communication of uncompressed high definition video data using beambook-constructed beamforming signals |
US8040856B2 (en) * | 2006-12-04 | 2011-10-18 | Samsung Electronics Co., Ltd. | System and method for wireless communication of uncompressed high definition video data using a beamforming acquisition protocol |
US8259836B2 (en) * | 2006-12-04 | 2012-09-04 | Samsung Electronics Co., Ltd. | Method and system for generating candidate beamforming coefficients for transmission of data over a wireless medium |
US20080130778A1 (en) * | 2006-12-04 | 2008-06-05 | Samsung Electronics Co., Ltd. | System and method for wireless communication of uncompressed high definition video data using a transfer matrix for beamforming estimation |
US8223873B2 (en) * | 2007-08-13 | 2012-07-17 | Samsung Electronics Co., Ltd. | System and method for acquiring beamforming vectors using training sequences with adaptive spreading gains |
US9135115B2 (en) * | 2010-02-27 | 2015-09-15 | Cleversafe, Inc. | Storing data in multiple formats including a dispersed storage format |
US8850113B2 (en) * | 2010-02-27 | 2014-09-30 | Cleversafe, Inc. | Data migration between a raid memory and a dispersed storage network memory |
US9009569B2 (en) * | 2010-10-18 | 2015-04-14 | Xyratex Technology Limited | Detection and correction of silent data corruption |
US8667326B2 (en) | 2011-05-23 | 2014-03-04 | International Business Machines Corporation | Dual hard disk drive system and method for dropped write detection and recovery |
US8683296B2 (en) | 2011-12-30 | 2014-03-25 | Streamscale, Inc. | Accelerated erasure coding system and method |
US8914706B2 (en) | 2011-12-30 | 2014-12-16 | Streamscale, Inc. | Using parity data for concurrent data authentication, correction, compression, and encryption |
CN103959185B (en) * | 2012-06-26 | 2016-05-04 | 东芝三菱电机产业系统株式会社 | Data gathering system and method for data capture |
US10055477B2 (en) * | 2012-06-26 | 2018-08-21 | Toshiba Mitsubishi-Electric Industrial Systems Corporation | Data collection apparatus and data collection program |
WO2014016860A1 (en) | 2012-07-23 | 2014-01-30 | Hitachi, Ltd. | Raid storage system and rebuild process |
US9537609B2 (en) * | 2012-08-02 | 2017-01-03 | International Business Machines Corporation | Storing a stream of data in a dispersed storage network |
US10651975B2 (en) | 2012-08-02 | 2020-05-12 | Pure Storage, Inc. | Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system |
US9613656B2 (en) | 2012-09-04 | 2017-04-04 | Seagate Technology Llc | Scalable storage protection |
RU2502124C1 (en) * | 2012-09-12 | 2013-12-20 | Общество с ограниченной ответственностью "РЭЙДИКС" | Method of recovering records in storage device and system for realising said method |
US9354975B2 (en) * | 2013-03-15 | 2016-05-31 | Emc Corporation | Load balancing on disks in raid based on linear block codes |
US9459957B2 (en) | 2013-06-25 | 2016-10-04 | Mellanox Technologies Ltd. | Offloading node CPU in distributed redundant storage systems |
US9594634B2 (en) * | 2014-06-02 | 2017-03-14 | Intel Corporation | Techniques to efficiently compute erasure codes having positive and negative coefficient exponents to permit data recovery from more than two failed storage units |
CN104156283B (en) * | 2014-08-27 | 2017-08-25 | 华为技术有限公司 | Data reconstruction method, device and storage system |
US9710320B2 (en) | 2015-03-23 | 2017-07-18 | Microsoft Technology Licensing, Llc | Data processing validation |
US10705909B2 (en) * | 2015-06-25 | 2020-07-07 | International Business Machines Corporation | File level defined de-clustered redundant array of independent storage devices solution |
KR102549605B1 (en) * | 2016-03-04 | 2023-06-30 | 삼성전자주식회사 | Recovering method of raid storage device |
EP3849089A1 (en) * | 2020-01-09 | 2021-07-14 | Microsoft Technology Licensing, LLC | Encoding for data recovery in storage systems |
RU2758943C1 (en) * | 2020-12-07 | 2021-11-03 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Method for distributed data storage with proven integrity |
CN112799875B (en) * | 2020-12-18 | 2023-01-06 | 苏州浪潮智能科技有限公司 | Method, system, device and medium for verification recovery based on Gaussian elimination |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849978A (en) * | 1987-07-02 | 1989-07-18 | International Business Machines Corporation | Memory unit backup using checksum |
US5889934A (en) * | 1997-02-24 | 1999-03-30 | Data General Corporation | Data validation system for a group of data storage disks |
US6952797B1 (en) * | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US6742081B2 (en) * | 2001-04-30 | 2004-05-25 | Sun Microsystems, Inc. | Data storage array employing block checksums and dynamic striping |
JP2003131818A (en) * | 2001-10-25 | 2003-05-09 | Hitachi Ltd | Configuration of raid among clusters in cluster configuring storage |
US6751136B2 (en) * | 2002-06-17 | 2004-06-15 | Lsi Logic Corporation | Drive failure recovery via capacity reconfiguration |
US7219289B2 (en) * | 2005-03-15 | 2007-05-15 | Tandberg Data Corporation | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same |
US7496785B2 (en) * | 2006-03-21 | 2009-02-24 | International Business Machines Corporation | Enclosure-based raid parity assist |
US8370715B2 (en) * | 2007-04-12 | 2013-02-05 | International Business Machines Corporation | Error checking addressable blocks in storage |
-
2008
- 2008-11-20 JP JP2010534958A patent/JP5298393B2/en active Active
- 2008-11-20 KR KR1020107010285A patent/KR101543369B1/en active IP Right Grant
- 2008-11-20 US US12/274,874 patent/US8219887B2/en active Active
- 2008-11-20 EP EP08854634.6A patent/EP2212796B1/en active Active
- 2008-11-20 EP EP13000066.4A patent/EP2605140B1/en active Active
- 2008-11-20 WO PCT/US2008/012944 patent/WO2009070235A2/en active Application Filing
-
2012
- 2012-06-29 US US13/537,828 patent/US8359524B2/en active Active
-
2013
- 2013-01-22 US US13/746,779 patent/US8645798B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2009070235A3 (en) | 2010-03-25 |
EP2605140A1 (en) | 2013-06-19 |
US8219887B2 (en) | 2012-07-10 |
EP2212796B1 (en) | 2019-02-27 |
KR101543369B1 (en) | 2015-08-11 |
JP2011504269A (en) | 2011-02-03 |
US8359524B2 (en) | 2013-01-22 |
EP2212796A2 (en) | 2010-08-04 |
WO2009070235A2 (en) | 2009-06-04 |
US20090132851A1 (en) | 2009-05-21 |
KR20100095525A (en) | 2010-08-31 |
US8645798B2 (en) | 2014-02-04 |
US20130138881A1 (en) | 2013-05-30 |
US20120266049A1 (en) | 2012-10-18 |
EP2605140B1 (en) | 2020-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5298393B2 (en) | Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method | |
KR101758544B1 (en) | Synchronous mirroring in non-volatile memory systems | |
RU2501072C2 (en) | Distributed storage of recoverable data | |
US9690657B2 (en) | Writing data across storage devices in an erasure-coded system | |
US9104790B2 (en) | Arranging data handling in a computer-implemented system in accordance with reliability ratings based on reverse predictive failure analysis in response to changes | |
CN103793182A (en) | Scalable storage protection | |
US20110264949A1 (en) | Disk array | |
US7093069B2 (en) | Integration of a RAID controller with a disk drive module | |
JP5124792B2 (en) | File server for RAID (Redundant Array of Independent Disks) system | |
US8484506B2 (en) | Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality | |
CN105122213A (en) | Methods and apparatus for error detection and correction in data storage systems | |
CN102520890B (en) | RS (Reed-Solomon) - DRAID( D redundant array of independent disk) system based on GPUs (graphic processing units) and method for controlling data of memory devices | |
WO2011015134A1 (en) | Multi-disks fault-tolerant system and method for generating check blocks and recovering data blocks | |
US20080133967A1 (en) | Distributed object sharing system and method thereof | |
CN114816837A (en) | Erasure code fusion method and system, electronic device and storage medium | |
CN109358980A (en) | A kind of pair of data update and single disk error repairs friendly RAID6 coding method | |
CN101719050A (en) | Data storage method and equipment | |
CN109791472B (en) | Data protection for cold storage systems | |
CN110532128B (en) | Erasure code coding and data reconstruction method for reducing data updating cost | |
CN113391945B (en) | Method, electronic device and computer program product for storage management | |
JP5360666B2 (en) | Method and system for performing I / O operations of multiple disk arrays | |
CN109343998B (en) | Erasure code-based full-distribution restoration method | |
JP3676793B2 (en) | Disk array device | |
CN112463812A (en) | Optimization method for updating repair data based on multi-machine frame of Ceph distributed system | |
CN113094213B (en) | GPyramid-Code layout and data recovery and storage method for single-disk failure of layout |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130115 |
|
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: 20130521 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130531 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5298393 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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |