JP5298393B2 - 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法 - Google Patents

並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法 Download PDF

Info

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
Application number
JP2010534958A
Other languages
English (en)
Other versions
JP2011504269A (ja
Inventor
プルーチ、アービンド
Original Assignee
マーベル ワールド トレード リミテッド
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 マーベル ワールド トレード リミテッド filed Critical マーベル ワールド トレード リミテッド
Publication of JP2011504269A publication Critical patent/JP2011504269A/ja
Application granted granted Critical
Publication of JP5298393B2 publication Critical patent/JP5298393B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1054Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-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)

Description

本出願は、2007年11月21日に出願された米国仮出願第60/989,670号「Parallel RAID Implementation for RAID6 and Reed−Solomon Code」の利益を主張し、参照によりその全体が本明細書に組込まれる全ての引用された参考文献を含む。
RAID(redundant array of inexpensive disks)アーキテクチャは、ハードディスクなどのデータ記憶ユニットのグループを使用して、耐故障性を有するデータ記憶装置を提供する。RAIDアーキテクチャは、誤りおよびディスク故障から情報を保護するために、前方誤り訂正(forward error correction)(FEC)コードおよび予備のデータ記憶ユニットを使用する。情報シンボルは、ビット、バイト、またはワードであってよい。情報シンボルは、符合化されて、データおよびチェックサムまたはパリティシンボルを含むコードシンボルを形成しうる。組織的な前方誤り訂正コードの場合、情報シンボルは、コードシンボルのデータシンボル部分において明示的に表されうる。
リードソロモンコードは、チェックサムシンボルの数に等しい記憶ユニットの故障の数を許容するために、RAIDアーキテクチャ(RS−RAID)で使用されうる。たとえば、データ用に20の記憶ユニットを、チェックサム用に4つの記憶ユニットを割当てる4重誤り訂正RS−RAIDアーキテクチャは、4つを含む4つまでの記憶デバイスにおける故障を許容しうる。
RS−RAIDアーキテクチャは、通常、データ記憶ユニットに書込まれるデータシンボルを保護するために単一のRAIDコントローラを使用する。単一のRAIDコントローラが使用されて、チェックサム、符号化、および復号化計算を実施するとき、RAIDアーキテクチャのスループットまたはデータ記憶量および取出し速度は、RAIDでなくかつ耐故障性を有さないデータ記憶アーキテクチャと比べて低減される可能性がある。
したがって、高スループットで耐故障性を有する分散型のデータ記憶アーキテクチャが望ましい場合がある。
高性能記憶アーキテクチャでは、複数のRAIDコントローラは、通信ファブリックと呼ぶ通信経路の共通集合を通じて互いに通信してもよい。通信ファブリックは、RAIDコントローラと所与のRAIDコントローラに割当てられた記憶デバイスとの間の通信経路と比較して高いレーテンシを有する可能性がある。レーテンシの高い通信ファブリックは、RAIDコントローラ間のデータ、メッセージ、構成などのトラフィックが、耐故障性を有する分散データ記憶装置のタスクに整合しなければ、RAIDデータ記憶アーキテクチャのスループットを減少させる可能性がある。通信ファブリックと割当てられたデータ記憶デバイスの集合との間に介在してもよい、それぞれのRAIDコントローラは、データ記憶アーキテクチャのノードと呼ばれてもよい。RAIDコントローラおよび割当てられたデータ記憶デバイスは、データ記憶クラスタと呼ばれてもよい。
リードソロモン(Reed−Solomon)RAID(RS−RAID)アーキテクチャは、冗長なデータ記憶デバイスを含むことによって、ハードディスクなどの記憶デバイスに書込まれ、また、記憶デバイスから読出される情報シンボルを保護しうる。mのチェックサムデバイスを使用するRS−RAIDアーキテクチャは、データ記憶デバイスのm程度の同時故障を許容しうる。mのチェックサムシンボルはc,c、…、cで示されてもよい。RS−RAIDアーキテクチャはまた、d,d、…、dで示す情報保持またはデータシンボル用の数nのデータ記憶デバイスを含みうる。
チェックサムおよびデータ記憶デバイスは、データおよびチェックサムシンボルを、ビット、バイト、ワードなどとして記憶してもよい。リードソロモン(RS)コードなどのあるタイプの前方誤り訂正コード(forward error correction codes)(FEC)は、通常、バイトを使用することが留意されてもよい。たとえば、RSコードは、255のバイトブロック内の233のデータバイトと32のチェックサムバイトに233の情報バイトを符合化するブロックなどのバイトブロックに作用しうる。
RS−RAIDアーキテクチャは、対応するデータ記憶デバイスD、D、…、Dによって保持されるデータシンボルd,d、…、dを使用して、i番目のチェックサムデバイスCに記憶されるチェックサムシンボルcを計算しうる。RS−RAIDアーキテクチャは、D、D、…、Dn、、C、…、Cの記憶デバイスのうちの任意のm以下の記憶デバイスが故障する場合、故障したデバイスのうちの任意のデバイスのコンテンツが、損なわれていないまたは故障していないデバイスから再構築されうるように各c(1≦i≦m)を確定しうる。RS−RAIDアーキテクチャは、ファンデルモンデ行列の特性により耐故障性を有する演算を提供することができ、ファンデルモンデ行列は、チェックサムシンボルを計算し維持し、記憶デバイスから読出したデータおよびチェックサムシンボルから情報を回復するのに使用される。RS−RAIDコントローラは、記憶デバイスが故障しても、添加されるかまたは拡大されたファンデルモンデ行列と単位行列の(n×n)部分の逆行列を計算することによって、記憶デバイスにおけるデータおよび/またはチェックサムシンボルを回復しうる。
チェックサムシンボルを生成するために、RS−RAIDアーキテクチャは、データシンボルを、ファンデルモンデ行列の要素で重み付けし、式1によって線形関数Fを使用して重み付けされたデータシンボルを合計しうる。関数Fは、ファンデルモンデ行列の要素のi番目の行から得られうるため、F=[fi,1;fi,2;…;fi,nである。
Figure 0005298393
換言すれば、データおよびチェックサムシンボルが、それぞれ、(n×1)次元および(m×1)次元ベクトルD=[d,d、…、dおよびC=[c、c、…、cとして表され、また、関数Fが行列Fの行として表される場合、RS−RAIDアーキテクチャは、チェックサムシンボルを式2aによって符合化しうる。
C=FD (式2a)
式2aは、
Figure 0005298393
に等しい。
有利に設計されたRS−RAID FECコードの場合、F行列は、要素:fi,j=ji−1を有する(m×n)ファンデルモンデ行列でありうる。式中、インデックスi=1、2、…、mおよびj=1、2、…、nは、それぞれ、ファンデルモンデ行列の行および列に対応し、代数演算は、ガロア体の特性を使用して実施される。たとえば、(3×4)ファンデルモンデ行列は、
Figure 0005298393
として書かれうる。
誤りを含む可能性があるコードワードまたはコードシンボルから(n×1)情報ベクトル
Figure 0005298393
を回復するために、並列RS−RAIDアーキテクチャは、ファンデルモンデ行列およびIで示す添加された((n−m)×(n−m))単位行列を含む拡大されるかまたは分割された行列Aの逆行列を求め、Aの逆行列に、作動可能な記憶ユニットから読出されるデータおよびチェックサムシンボルの集合DおよびCをそれぞれ右から乗算し(post−multiply)うる。記号的には、回復される情報ベクトル
Figure 0005298393
は、
Figure 0005298393
から得られうる。式中、拡大行列は
Figure 0005298393
であり、
Figure 0005298393
は、拡大されたデータおよびチェックサムシンボルベクトルである。表記Inv(A)は、正則な(n×n)正方行列を形成するAの行の部分集合の逆行列などのAに基づく逆行列をもたらし、また、以下で述べるように、
Figure 0005298393
で示す列行列Eのnの行の、対応する選択されるかまたは選抜された集合に共形的である関数であると理解されてもよい。A行列の逆行列を求めるプロセスは、Aの行の選択された集合の反転とみなされてもよく、選択は、作動可能なデータ記憶デバイスのリストおよび行列にベクトルを掛ける計算における共形性についての要件によって確定される。((n+m)×n)拡大行列Aのnの行の全ての部分集合は、Fがファンデルモンデ行列であるため反転可能であることが留意されてもよい。
拡張形態では、式
Figure 0005298393
は、
Figure 0005298393
として表されうる。式中、共形性は、行列Aの選択された部分を反転する前に、EおよびAの対応する行を選択することによって実施される。
換言すれば、RS−RAIDアーキテクチャの各記憶デバイスは、拡大行列Aの行および列ベクトルE=[d、d、…、d、c、c、…、cの対応する要素によって表されうる。mの冗長記憶デバイス中のいずれの冗長記憶デバイスも故障しない場合、回復される情報シンボルは、Aのnの行の任意の部分集合およびEのnの対応する要素を選択することによって確定されて、データ回復行列として記述されてもよい正方行列A'および対応するデータ記憶ユニットから読出されるデータのベクトル
Figure 0005298393
が形成されうる。換言すれば、Inv(A)=(A')−1であり、また、
Figure 0005298393
である。たとえば、4+2RS−RAIDアーキテクチャの場合、回復されるかまたは復号化されるデータ
Figure 0005298393
は、
Figure 0005298393
によって、拡大されたファンデルモンデ行列の最初の4つの行および記憶デバイスアレイから読出されたデータおよびチェックサムの最初の4つのエンティティから抽出された回復されるデータシンボルのベクトルでありうる。
たとえば、第3の、第5の、または、第3と第5の両方のデータ記憶デバイスが故障する場合、
Figure 0005298393
は、以下の通りに、作動可能なデバイスに対応する4つの行を選択することによって、E'から回復されうる。
Figure 0005298393
Figure 0005298393
Figure 0005298393
式中、2重末梢線は記憶デバイスの故障を示し、1重末梢線は、逆行列を形成し、その後の計算を実施するための記憶デバイスの選択解除を示しうる。逆行列は、ガウス消去法または別の方法によって計算されてもよい。
Figure 0005298393
の値が得られると、回復されるかまたは推定される任意のチェックサムベクトル
Figure 0005298393
が、
Figure 0005298393
を使用して、データベクトル
Figure 0005298393
に基づいて計算されてもよい。
並列RS−RAIDデータ記憶アーキテクチャは、各クラスタ内のデータおよびチェックサムを、全てのクラスタに転送されるかまたは配信される中間または部分和に集計しうる。中間データシンボル、中間チェックサムシンボル、データ記憶デバイスのクラスタへの割当てに関するクラスタ構成情報、およびデータ記憶デバイスの作動に関する状態などの使用は、並列RS−RAID分散データ記憶アーキテクチャのスケーラビリティおよびスループットを向上させながら、誤り訂正計算についての計算負荷およびレーテンシを低減しうる。
本開示は、同じ数字が同じ要素を表す添付図面を参照することになる。
並列RS−RAID(Reed−Solomon redundant array of inexpensive disk)の例を示す図である。 構成行列の例を示す図である。 RAIDコントローラの例を示す図である。 チェックサムプログラムの例のフローチャートである。 チェックサム更新プログラムの例のフローチャートである。 データプログラムの例のフローチャートである。
図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に対する割当ては、構成行列または同様のデータ構造によって確定されてもよい。
図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は、以下で述べるように、コードワードを符合化するかまたは復号化しうる重み付き部分和の始まりと終わりを確定しうる、チェックサムおよびデータを更新するかまたは維持しうるなどを行いうる。
通信ファブリック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コントローラによって実施されてもよい。
図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などの記憶デバイスへまた記憶デバイスから結合しうる。
中間和デバイス1111cは、中間和計算器1111d、再計算器1111e、および計算コントロール1111fを含みうる。中間和計算器1111dは、通信ファブリックインタフェース1111a、記憶デバイスインタフェース1111g、再計算器1111e、および計算コントロール1111fに結合しうる。再計算器1111eは、通信ファブリックインタフェース1111a、中間和計算器1111d、計算コントロール1111f、および記憶デバイスインタフェース1111gに結合しうる。計算コントロール1111fは、中間和計算器1111d、再計算器1111e、および記憶デバイスインタフェース1111gに結合しうる。
通信ファブリックインタフェース1111aは、並列RS−RAIDアーキテクチャ100と外部デバイスとの間で情報シンボルを転送し、通信ファブリック1200とRAIDコントローラ1111の要素との間で、情報シンボル、情報シンボルの所定部分、データシンボル、中間チェックサムシンボルなどのチェックサムシンボル、コントロール信号、クロック信号などを結合しうる。通信ファブリックインタフェース1111aは、情報シンボルをビットからバイト、ワード、または他のシンボルにリフォーマットしうる、信号を多重化し逆多重化しうる、データ転送を同期化しうる、ラインドライバおよび受信機によって信号をバッファリングしうるなどを行いうる。換言すれば、通信ファブリックインタフェース1111aは、デジタルバスなどの通信ファブリックを通じて送信するためにデジタル信号を調節しうる、データ転送をバッファリングしうるなどを行いうる。
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の要素のために、作動可能な記憶デバイスのリストを配信しうる。
中間和計算器1111dは、中間的でローカルで部分的な和を計算することができ、この和内に、チェックサムおよびデータについての誤り訂正コード計算が、式8および式13に関してそれぞれ述べたように分解されうる。中間的なまたは部分的な和は、RAIDコントローラ1111に報告するクラスタ内の作動可能な記憶デバイスから読出されるシンボルの重み付き和であってよい。たとえば、記憶デバイスのクラスタおよびこうした部分和の合計の対応する制限は、構成行列200などの構成行列または他のデータ構造から確定されてもよい。中間和計算器1111dは、RAIDコントローラ1112またはRAIDコントローラ1113などの他のRAIDコントローラから対応する部分和を受信した後、データおよびチェックサムシンボルを計算しうる。
再計算器1111eは、RAIDコントローラ1111に直接結合する記憶デバイスからのデータに基づいて中間的なローカルのチェックサムを、また、通信ファブリックインタフェース1111aを通して転送される他のRAIDコントローラからのローカルでない中間チェックサムを再計算しうる。換言すれば、データまたはチェックサムシンボルの変化が、RAIDコントローラ1111に直接結合するローカルの記憶デバイスにおいて起こるか、または、通信ファブリック1200を通じてRAIDコントローラ1111に送信される中間チェックサムによって起こると、再計算器1111eは、中間和計算器1111dからの結果を相応して修正しうる。
計算コントロール1111fは、中間チェックサム計算結果または再計算されたチェックサムが、FECのために使用されるべきかどうかを判定するために、中間和計算器1111dと再計算器1111eの両方を制御しうる。RAIDコントロール1111bは、中間和計算器1111dの結果と再計算器1111eの結果のいずれが計算されるかを判定するために、直接にまたは通信ファブリックインタフェース1111aを通して計算コントロール1111fに合図し(signal)うる。RAIDコントロール1111bは、記憶デバイス故障センスユニット1111hから、データ記憶デバイスに関する作動に関する状態などの状態情報を得ることができる。
並列RAIDコントローラ1111〜1113は、
Figure 0005298393
によって、チェックサムを計算し記憶しうる。式中、インデックスtは、1からRAIDコントローラの数rまでの範囲にあることができ、ci,tは、t番目のインデックスについてのi番目の中間チェックサムである。たとえば、rは、並列RAIDアーキテクチャ100の場合、3に等しい。構成行列200に関して述べたように、QS(t)およびQE(t)は、開始および終了記憶デバイスをRAIDコントローラにマッピングし、それぞれの中間チェックサムci,jを生成する部分和の合計の制限を確定しうる。関数J(・)は、たとえば、J(1002)=2であるように、オフセットを減算しうる。
RAIDコントローラ1111などのt番目のRS−RAIDコントローラは、
Figure 0005298393
によって、中間チェックサムci,tを計算しうる。
中間チェックサムci,tの使用は、通信ファブリック1200上のデータトラフィックを低減することができ、並列RS−RAIDアーキテクチャ100のスループットを増加させることができる。たとえば、8+4RS−RAIDアーキテクチャでは、単一の主要なRAIDコントローラが、記憶デバイスの全てを制御し、チェックサムを計算する場合、8つのデータシンボルが、通信ファブリックを通じて転送されうる。対照的に、8+4並列RS−RAIDアーキテクチャからの中間チェックサム計算器結果を使用して、2つの中間チェックサムシンボルだけが、通信ファブリックを通じて転送される必要がある可能性がある。
中間チェックサムおよび全チェックサムを計算することに加えて、並列RS−RAIDアーキテクチャ100は、データシンボルが変化すると、チェックサムシンボルを修正するかまたは維持しうる。たとえば、データシンボルが、dからd'に変化すると、チェックサムは、
c'=c+fi,j(d'−d) 式9
によって、再計算されうる。式9の計算を実施するとき、RAIDコントローラ1111は、データ差(d'−d)を計算し、ファンデルモンデ要素fi,j、すなわち、
Figure 0005298393
によって、データ差に重み付けしうる。
個々の並列RAIDコントローラ1111〜1113は、一時的な成分c'i,tをRAIDコントローラ1111〜1113の他のコントローラに送出しうる。
RS−RAIDコントローラ1111〜1113は、
Figure 0005298393
によって、それぞれの割当てられた記憶デバイスを更新しうる。
記憶デバイスが故障する、たとえば、記憶デバイス故障センスユニット1111hがハードディスククラッシュを検出すると、拡大行列の逆行列Inv(A)が、並列RAIDコントローラ1111〜1113によって修正されて、残りのまたは作動可能なデータ記憶デバイスに対応する逆行列Inv(A')が形成される。行列Inv(A')は、記憶デバイスのさらなる故障が起こらない限り、静的データ構造である可能性がある。別の記憶デバイスが故障すると、Inv(A')が一回計算され、その後、RAIDコントローラ1111〜1113などの全ての作動可能なRAIDコントローラにブロードキャストされうる。より多くの記憶デバイスが後で故障する場合、新しい逆行列Inv(A'')が、再計算され、全てのRAIDコントローラにブロードキャストされてもよい。
並列RS−RAIDアーキテクチャ100は、記憶デバイスが故障しても、各RAIDコントローラにおいてローカルで計算される中間和または部分和を使用して、データシンボルを回復しうる。回復されるデータ
Figure 0005298393
は、
Figure 0005298393
から回復される可能性がある。式中、Inv(A')の要素は、ai,j(1≦i≦nおよび1≦j≦n)で示されてもよい。対応するデータおよびチェックサムシンボルE'=[e、e、…、eの要素は、作動可能でかつ選択されたデータ記憶デバイスから読出されうる。並列RS−RAIDアーキテクチャ100は、Eの行ならびに添加された単位行列とファンデルモンデ行列の対応する部分集合を選択するかまたは選抜して、それぞれ、E'およびInv(A')が形成されうる。換言すれば、並列RS−RAIDアーキテクチャ100は、データ回復計算を、
Figure 0005298393
によって、部分和または中間データシンボルの集合に分解しうる。式中、eは、t番目のRS−RAIDコントローラの制御下にある全てのデータまたはチェックサムシンボルの集合であると理解される。
他の並列RS−RAIDコントローラから、中間データシンボルなどのメッセージを受信すると、個々のRAIDコントローラは、最初に中間データシンボル
Figure 0005298393
を計算し、次に、
Figure 0005298393
によって、回復されるデータ
Figure 0005298393
を計算しうる。
図4Aは、データ記憶用の並列RS−RAIDアーキテクチャのためのチェックサムプログラムフローチャート400Aの例を示す。プログラムフローチャート400Aは、プログラムステップS410で開始し、並列RS−RAIDアーキテクチャの構成行列が読出されうるプログラムステップS420に進みうる。たとえば、構成行列は、図2に関して述べた構成行列などの、所与のRAIDコントローラに関連する記憶デバイスについての開始デバイス番号と終了デバイス番号を指定しうる。各RAIDコントローラは、構成行列のローカルなコピーを記憶しうる、構成行列を他のRAIDコントローラと調和させうる、構成行列を、高レベルのRAIDデバイスまたはネットワークコントローラから受信しうるなどを行いうることが理解されてもよい。
プログラムステップS420から、プログラムフローは、プログラムステップS425に進むことができ、プログラムステップS425にて、プログラムは、外部デバイスから、記憶される情報保持データシンボルを読出すことができる。たとえば、プログラムは、通信ファブリックを通じて受信される2Kビットのデータブロックの集合をフラッシュドライブから受信しうる。
プログラムステップS425から、プログラムは、中間チェックサムが計算されうるプログラムステップS430に進むことができる。たとえば、中間チェックサムまたはデータおよびパリティ計算は、式8およびガロア体の特性を使用した、データワードの線形結合から計算されうる。プログラムステップS430は、中間チェックサムを計算し、1)所与のRAIDコントローラにコードワードシンボルの所定部分を供給する個々の作動可能な記憶ユニットからの記憶されたコードワードシンボルを使用して中間チェックサムを更新するかまたは維持し、2)通信ファブリックを通じて所与のRAIDコントローラと通信する他のRAIDコントローラからの中間チェックサムを集計しうる。換言すれば、ローカルな部分集合データ記憶ユニットからの低レーテンシのデータおよびパリティビット、バイト、またはワードは、他のデータ記憶ユニットからの、ci,tの形態の、高レーテンシの、蓄積されるかまたは部分的に合計されたデータおよびパリティと結合されうる。その後、プログラムは、プログラムステップS460に進む。
ステップS460にて、プログラムは、中間チェックサムを異なるRS−RAIDコントローラに配信しうる。たとえば、Q(t)=tである場合、プログラムステップS460は、第1のRAIDコントローラからの第1の中間チェックサムc1,1を第2および第3のRAIDコントローラに配信しうる。
プログラムステップS460から、プログラムフローは、プログラムステップS470に進むことができ、プログラムステップS470にて、プログラムは、他のRAIDコントローラから中間チェックサムを受信しうる。プログラムステップS470から、プログラムはプログラムステップS480に進みうる。中間チェックサムの集合によって、各RAIDコントローラが、式8によって完全なチェックサムcを計算し、その後の誤り訂正および検出計算についてcを記憶することが可能になる。たとえば、プログラムは、第2および第3の中間チェックサムci,2およびci,3を受信することができ、第2および第3の中間チェックサムci,2およびci,3は、ローカルに計算された第1のチェックサムci,1と共に、cを計算するためのチェックサムの十分な集合を形成しうる。
プログラムステップS480から、プログラムフローは、プログラムステップS490に進むことができ、プログラムステップS490にて、プログラムは、プログラムを実行するRAIDコントローラに割当てられるデータおよび完全なチェックサムシンボルを記憶しうる。たとえば、プログラムは、ディスクのアレイにわたってデータおよびチェックサムシンボルをストライピングしうる。プログラムステップS490から、プログラムフローは、プログラム実行が停止しうるプログラムステップS495に進みうる。
図4Bは、データ記憶用の並列RS−RAIDアーキテクチャのためのチェックサム更新プログラムフローチャート400Bの例を示す。プログラムフローチャート400Bは、ステップS440で開始し、ステップS442に進む。
ステップS442にて、並列RS−RAIDアーキテクチャは、データの変化を受信する可能性がある。たとえば、記憶デバイスは、古いデータシンボルを置換するために新しいデータシンボルを受信してもよい。その後、プログラムフローはステップS444に進みうる。
ステップS444にて、記憶デバイスに結合するRAIDコントローラは、式10によって、一時的な成分を計算しうる。RAIDコントローラは、新しいデータシンボルと古いデータシンボルとのデータ差を得、ファンデルモンデ行列要素によってデータ差に重み付けしてもよい。その後、プログラムフローはステップS446に進みうる。
ステップS446にて、一時的な成分は、他のRAIDコントローラに伝達されうる。ある実施形態では、通信ファブリックは、種々のRAIDコントローラを結合してもよい。通信ファブリックは、データ変化に対応する一時的な成分を、チェックサムを記憶する記憶デバイスを制御するRAIDコントローラに伝達しうる。その後、プログラムフローはステップS448に進みうる。
ステップS448にて、チェックサムを記憶する記憶デバイスを制御するRAIDコントローラは、たとえば、式11によって、受信した一時的な成分に基づいてチェックサムを更新してもよい。その後、プログラムフローはステップS450に進み、停止しうる。
図5は、データ記憶用の並列RS−RAIDアーキテクチャのためのデータプログラムフローチャート500の例を示す。プログラムフローチャート500は、ステップS510で開始し、ステップS520に進むことができ、ステップS520にて、並列RS−RAIDアーキテクチャの構成行列が、図4Aに関して説明したように読出されうる。プログラムステップS520から、プログラムフローは、プログラムステップS525に進むことができ、プログラムステップS525にて、データおよびチェックサムシンボルが、記憶デバイスから読出されうる。たとえば、8つのデータおよび4つのチェックサムシンボルは、12の記憶デバイスから読出されうる。この例では、少なくとも8つのデータまたはチェックサムシンボルが、作動可能な記憶デバイスから読出されうる。
プログラムステップS425から、プログラムフローは、プログラムステップS530に進むことができ、プログラムステップS530にて、プログラムは、中間データシンボルを計算しうる。たとえば、プログラムは、式13によって、中間データシンボルを計算しうる。式13で使用される重み係数ai,jは、予め計算され、RAIDコントローラに配信されるか、または、プログラムステップS520において構成行列を読出した後などに、必要に応じて再計算されてもよいことが理解されてもよい。プログラムステップS530から、プログラムフローは、プログラムステップS540に進むことができ、プログラムステップS540にて、プログラムは、中間データシンボルを並列RAIDコントローラに配信しうる。
プログラムステップS540から、プログラムフローは、プログラムステップS550に進むことができ、プログラムステップS550にて、プログラムは、並列RAIDコントローラから中間データシンボルを受信しうる。プログラムステップS550から、プログラムフローは、プログラムステップS560に進むことができ、プログラムステップS560にて、プログラムは、ローカルなRAIDコントローラと並列RAIDコントローラの両方から来た中間データシンボルから、回復されるデータシンボルを計算しうる。換言すれば、プログラムは、式14によって、中間データシンボルを合計しうる。プログラムステップS560から、プログラムフローは、プログラム実行が停止しうるプログラムステップS570に進むことができる。
本発明は、本発明の特定の例示的な実施形態に関連して述べられたが、多くの代替、修正、および変形が当業者に明らかになることが明らかである。したがって、本明細書で述べる本発明の実施形態は、制限的でなく、例証的であることを意図される。本発明の精神および範囲から逸脱することなく行われてもよい変更が存在する。

Claims (26)

  1. 分散データ記憶デバイスであって、
    複数の並列データ記憶クラスタであって、
    複数のデータシンボルを記憶する複数のデータ記憶デバイス、および、
    前記複数のデータ記憶デバイスのそれぞれに結合し、前記複数のデータシンボルからローカルな中間チェックサムを計算し、前記ローカルな中間チェックサムを含む複数の中間チェックサムに基づいて前記複数のデータシンボルのチェックサムを計算するよう構成されたRAIDコントローラを含む、複数の並列データ記憶クラスタと、
    前記複数の並列データ記憶クラスタのそれぞれに結合し、前記複数の中間チェックサムを前記複数の並列データ記憶クラスタに配信する通信ファブリックとを備える分散データ記憶デバイス。
  2. 前記RAIDコントローラは、前記複数のデータシンボルの重み付き和に基づいて前記ローカルな中間チェックサムを計算する、請求項1に記載の分散データ記憶デバイス。
  3. 前記複数の並列データ記憶クラスタの複数のRAIDコントローラの少なくとも1つは、他の並列データ記憶クラスタから前記中間チェックサムを受信し、前記複数の並列なデータ記憶クラスタの複数のデータ記憶デバイスのうちの1つに記憶するためのチェックサムを、前記受信した中間チェックサムと、前記ローカルな中間チェックサムとに基づいて生成する、請求項1又は2に記載の分散データ記憶デバイス。
  4. 前記RAIDコントローラは、前記チェックサムをデータ記憶デバイスに記憶するようさらに構成される請求項1から3のいずれか1項に記載の分散データ記憶デバイス。
  5. 前記通信ファブリックは、前記複数のデータシンボルを含む複数の情報シンボルを前記複数の並列データ記憶クラスタに配信するようさらに構成される請求項1から4のいずれか1項に記載の分散データ記憶デバイス。
  6. 前記RAIDコントローラは、前記複数の情報シンボルのサブセットから前記複数のデータシンボルを選択するRAIDコントロールユニットをさらに備える請求項に記載の分散データ記憶デバイス。
  7. 前記RAIDコントロールユニットは、前記複数のデータ記憶デバイスから作動可能なデータ記憶デバイスのリストを確定する記憶デバイス故障センスユニットをさらに備える請求項に記載の分散データ記憶デバイス。
  8. 前記RAIDコントロールユニットは、作動可能なデータ記憶デバイスの前記リストに基づいてデータ回復行列を計算するようさらに構成される請求項に記載の分散データ記憶デバイス。
  9. 前記通信ファブリックは、作動可能なデータ記憶デバイスの前記リストが変化すると、前記データ回復行列を前記複数の並列データ記憶クラスタに配信するようさらに構成される請求項に記載の分散データ記憶デバイス。
  10. 前記RAIDコントローラは、作動可能なデータ記憶デバイスのリストに基づいて前記中間チェックサムを計算するよう構成された中間和デバイスをさらに備える請求項に記載の分散データ記憶デバイス。
  11. 前記中間和デバイスは、データシンボルが変化すると、前記ローカルな中間チェクサムを更新するよう構成された再計算器をさらに備える請求項10に記載の分散データ記憶デバイス。
  12. 前記RAIDコントロールユニットは、前記データ回復行列を計算するために、添加された単位行列とファンデルモンデ行列の逆行列を求めるようさらに構成される請求項に記載の分散データ記憶デバイス。
  13. 中間和デバイスは、前記データ回復行列に基づく中間データシンボル、ならびに、前記記憶デバイスから読出されるリードデータシンボルおよびリードチェックサムシンボルの少なくとも一方のベクトルを計算するようさらに構成される請求項12に記載の分散データ記憶デバイス。
  14. 前記RAIDコントロールユニットは、前記添加された単位行列とファンデルモンデ行列の行の集合ならびに作動可能なデータ記憶デバイスの前記リストに基づくベクトルを選択し、前記データ回復行列を形成するために前記行の集合の逆行列を求めるようさらに構成される請求項12に記載の分散データ記憶デバイス。
  15. 前記RAIDコントローラは、中間和デバイスに中間データシンボルを計算させるメッセージを前記複数の並列データ記憶クラスタに送出するようさらに構成される請求項14に記載の分散データ記憶デバイス。
  16. 前記通信ファブリックは、前記中間データシンボルを前記複数の並列データ記憶クラスタのそれぞれに配信するようさらに構成される請求項15に記載の分散データ記憶デバイス。
  17. 前記RAIDコントローラは、複数の中間データシンボルから、回復されるデータシンボルを計算するようさらに構成される請求項16に記載の分散データ記憶デバイス。
  18. 前記ローカルな中間チェックサムは、前記RAIDコントローラに割当てられた前記複数のデータ記憶デバイスに対応する前記複数のデータシンボルの部分集合の部分和(partial sum)である請求項1から17のいずれか1項に記載の分散データ記憶デバイス。
  19. 前記中間データシンボルは、前記RAIDコントローラに割当てられた前記データ記憶デバイスに対応する前記データシンボルの部分集合および前記リードチェックサムシンボルの部分和である請求項13に記載の分散データ記憶デバイス。
  20. データ記憶方法であって、
    複数のデータ記憶デバイスを複数の並列データ記憶クラスタに割当てること、
    前記複数の並列データ記憶クラスタのそれぞれに複数のデータシンボルを記憶すること、
    前記複数の並列データ記憶クラスタのそれぞれに含まれる複数のRAIDコントローラのそれぞれが、前記複数のデータシンボルの重み付き和から中間チェックサムを計算すること、
    前記複数のRAIDコントローラの少なくとも1つが、前記複数のRAIDコントローラの他のRAIDコントローラのそれぞれから前記中間チェックサムを受信すること、
    前記複数のRAIDコントローラの少なくとも1つが、計算した前記中間チェックサムおよび前記他のRAIDコントローラのそれぞれから受信した前記中間チェックサムに基づいて前記複数のデータシンボルのチェックサムを計算すること、および、
    前記複数のデータ記憶デバイスの少なくとも1つに前記チェックサムを記憶することを含むデータ記憶方法。
  21. 情報シンボルの部分集合から前記複数のデータシンボルを選択すること、および、
    通信ファブリックを使用して、前記複数の並列データ記憶クラスタに前記選択されたデータシンボルを配信することをさらに含む請求項20に記載のデータ記憶方法。
  22. 前記複数の並列データ記憶クラスタのそれぞれの中の作動可能なデータ記憶デバイスの集合を検知することをさらに含む請求項21に記載のデータ記憶方法。
  23. 作動可能なデータ記憶デバイスの前記集合に基づくデータ回復行列を、前記複数の並列データ記憶クラスタのそれぞれに配信することをさらに含む請求項22に記載のデータ記憶方法。
  24. 前記データ回復行列に基づく中間データシンボルならびに前記記憶デバイスから読出されるリードデータシンボルおよびリードチェックサムシンボルの少なくとも一方のベクトルを計算することをさらに含む請求項23に記載のデータ記憶方法。
  25. 前記中間データシンボルを前記複数の並列データ記憶クラスタのそれぞれに配信すること、および、
    前記中間データシンボルの和から、回復されるデータシンボルを計算することをさらに含む請求項24に記載のデータ記憶方法。
  26. 分散データアーキテクチャにおける誤り訂正のための方法であって、
    複数のデータ記憶デバイスを複数の並列データ記憶クラスタに割当てる構成行列を読出すこと、
    複数のデータシンボルを前記複数の並列データ記憶クラスタに記憶すること、
    前記複数の並列データ記憶クラスタのそれぞれに含まれる複数のRAIDコントローラのそれぞれが、前記割当てられたデータ記憶デバイスに記憶された前記複数のデータシンボルから中間チェックサムを計算することであって、それにより、少なくとも1つの中間チェックサムがそれぞれのデータ記憶クラスタについて計算される、計算すること、
    前記複数のRAIDコントローラの少なくとも1つが、前記複数のRAIDコントローラの他のRAIDコントローラのそれぞれから前記中間チェックサムを受信すること、
    チェックサムを形成するために、前記複数のRAIDコントローラの少なくとも1つが、計算した前記中間チェックサムおよび前記他のRAIDコントローラのそれぞれから受信した前記中間チェックサムを合計すること、および、
    前記チェックサムを少なくとも1つのデータ記憶デバイスに記憶する方法。
JP2010534958A 2007-11-21 2008-11-20 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法 Active JP5298393B2 (ja)

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 (ja) 2011-02-03
JP5298393B2 true JP5298393B2 (ja) 2013-09-25

Family

ID=40643226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010534958A Active JP5298393B2 (ja) 2007-11-21 2008-11-20 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法

Country Status (5)

Country Link
US (3) US8219887B2 (ja)
EP (2) EP2605140B1 (ja)
JP (1) JP5298393B2 (ja)
KR (1) KR101543369B1 (ja)
WO (1) WO2009070235A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
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
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
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
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
US20090046798A1 (en) * 2007-08-13 2009-02-19 Samsung Electronics Co., Ltd. System and method for acquiring a training matrix for a breamforming acquisition protocol using a butson matrix
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
KR101461364B1 (ko) * 2012-06-26 2014-11-13 도시바 미쓰비시덴키 산교시스템 가부시키가이샤 데이터 수집 장치 및 데이터 수집 프로그램이 기록된 기록 매체
KR101447419B1 (ko) * 2012-06-26 2014-10-06 도시바 미쓰비시덴키 산교시스템 가부시키가이샤 데이터 수집 시스템 및 데이터 수집 시스템 프로그램이 기록된 기록매체
US9047220B2 (en) * 2012-07-23 2015-06-02 Hitachi, Ltd. Storage system and data management method
US10651975B2 (en) 2012-08-02 2020-05-12 Pure Storage, Inc. Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system
US9258177B2 (en) 2012-08-02 2016-02-09 International Business Machines Corporation Storing a data stream in a set of storage devices
US9613656B2 (en) * 2012-09-04 2017-04-04 Seagate Technology Llc Scalable storage protection
RU2502124C1 (ru) * 2012-09-12 2013-12-20 Общество с ограниченной ответственностью "РЭЙДИКС" Способ восстановления записей в запоминающем устройстве и система для его осуществления
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 (zh) * 2014-08-27 2017-08-25 华为技术有限公司 数据恢复方法、装置及存储系统
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 (ko) * 2016-03-04 2023-06-30 삼성전자주식회사 Raid 스토리지 장치의 리커버리 방법
EP3849089A1 (en) * 2020-01-09 2021-07-14 Microsoft Technology Licensing, LLC Encoding for data recovery in storage systems
RU2758943C1 (ru) * 2020-12-07 2021-11-03 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Способ распределенного хранения данных с подтвержденной целостностью

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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 (ja) * 2001-10-25 2003-05-09 Hitachi Ltd クラスタ構成ストレージにおけるクラスタ間raid構成
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

Also Published As

Publication number Publication date
US20090132851A1 (en) 2009-05-21
EP2605140B1 (en) 2020-08-26
WO2009070235A3 (en) 2010-03-25
WO2009070235A2 (en) 2009-06-04
US8645798B2 (en) 2014-02-04
EP2212796B1 (en) 2019-02-27
KR20100095525A (ko) 2010-08-31
JP2011504269A (ja) 2011-02-03
EP2605140A1 (en) 2013-06-19
US20130138881A1 (en) 2013-05-30
US20120266049A1 (en) 2012-10-18
KR101543369B1 (ko) 2015-08-11
EP2212796A2 (en) 2010-08-04
US8359524B2 (en) 2013-01-22
US8219887B2 (en) 2012-07-10

Similar Documents

Publication Publication Date Title
JP5298393B2 (ja) 並列リードソロモンraid(rs−raid)アーキテクチャ、デバイス、および方法
KR101758544B1 (ko) 비휘발성 메모리 시스템에서의 동기 미러링
US8392752B2 (en) Selective recovery and aggregation technique for two storage apparatuses of a raid
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 (zh) 可扩展存储保护
US7093069B2 (en) Integration of a RAID controller with a disk drive module
JP5124792B2 (ja) RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ
US20150121169A1 (en) Writing data across storage devices in an erasure-coded system
CN105122213A (zh) 用于数据存储系统中的错误检测和纠正的方法和装置
US8484506B2 (en) Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality
CN102520890B (zh) 基于gpu的rs-draid系统及存储设备数据控制方法
WO2011015134A1 (zh) 多磁盘容错系统及生成校验块、恢复数据块的方法
CN106484559A (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
US7849355B2 (en) Distributed object sharing system and method thereof
CN114816837A (zh) 一种纠删码融合方法、系统、电子设备及存储介质
US7992072B2 (en) Management of redundancy in data arrays
CN101719050A (zh) 一种数据存储方法及设备
CN109791472B (zh) 冷存储系统的数据保护
JP2015082150A (ja) ストレージシステム、及びストレージプログラム
CN110532128B (zh) 一种降低数据更新代价的纠删码编码及数据重构方法
CN113391945B (zh) 用于存储管理的方法、电子设备以及计算机程序产品
CN109343998B (zh) 一种基于纠删码的全分布修复方法
JP3676793B2 (ja) ディスクアレイ装置
JP3699473B2 (ja) ディスクアレイ装置
CN112463812A (zh) 一种基于Ceph分布式系统多机架更新修复数据的优化方法

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