JP5298393B2 - Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method - Google Patents

Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method 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
Japanese (ja)
Other versions
JP2011504269A (en
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/en
Application granted granted Critical
Publication of JP5298393B2 publication Critical patent/JP5298393B2/en
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)

Abstract

The parallel RS-RAID data storage architecture can aggregate that data and checksums within each cluster into intermediate or partial sums that are transferred or distributed to other clusters. The use of intermediate data symbols, intermediate checksum symbols, cluster configuration information on the assignment of data storage devices to clusters and the operational status of data storage devices, and the like, can reduce the computational burden and latency for the error correction calculations while increasing the scalability and throughput of the parallel RS-RAID distributed data storage architecture.

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のチェックサムシンボルはc,c、…、cで示されてもよい。RS−RAIDアーキテクチャはまた、d,d、…、dで示す情報保持またはデータシンボル用の数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アーキテクチャは、対応するデータ記憶デバイス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 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, C 1, C 2, ..., if any of the following storage devices m of the storage device C m fails, among failed device Each c i (1 ≦ i ≦ m) may be determined so that the content of any of the devices can be reconstructed from intact or non-failed devices. The RS-RAID architecture can provide fault tolerant operations due to the characteristics of the van der monde matrix, which calculates and maintains checksum symbols, and the data and checksum symbols read from the storage device. Used to recover information from. The RS-RAID controller calculates the data in the storage device by calculating the inverse matrix of the (n × n) portion of the added and expanded van der Monde matrix and unit matrix even if the storage device fails. The checksum symbol may be recovered.

チェックサムシンボルを生成するために、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
に等しい。 To generate the checksum symbol, the RS-RAID architecture may weight the data symbols with the elements of the van der Monde matrix and sum the weighted data symbols using the linear function F i according to Equation 1. Since the function F i can be obtained from the i th row of the elements of the van der Monde matrix, F i = [f i, 1 ; f i, 2 ;... F i, n ] T.
Figure 0005298393
In other words, the data and checksum symbols are represented by (n × 1) dimensional and (m × 1) dimensional vectors D = [d 1 , d 2 ,..., D n ] T and C = [c 1 , c, respectively. 2, ..., expressed as c m] T, also, if the function F i is represented as rows of the matrix F, RS-RAID architecture, may be encoded by the equation 2a checksum symbols.
C = FD (Formula 2a)
Equation 2a is
Figure 0005298393
be equivalent to.

有利に設計されたRS−RAID FECコードの場合、F行列は、要素:fi,j=ji−1を有する(m×n)ファンデルモンデ行列でありうる。式中、インデックスi=1、2、…、mおよびj=1、2、…、nは、それぞれ、ファンデルモンデ行列の行および列に対応し、代数演算は、ガロア体の特性を使用して実施される。たとえば、(3×4)ファンデルモンデ行列は、

Figure 0005298393
として書かれうる。 In the case of an advantageously designed RS-RAID FEC code, the F matrix may be an (m × n) van der Monde matrix with elements: f i, j = j i−1 . Where the indices i = 1, 2,..., M and j = 1, 2,..., N correspond to the rows and columns of the van der Monde matrix, respectively, and algebraic operations use the properties of Galois fields. Implemented. For example, the (3x4) van der Monde matrix is
Figure 0005298393
Can be written as

誤りを含む可能性があるコードワードまたはコードシンボルから(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がファンデルモンデ行列であるため反転可能であることが留意されてもよい。 (N × 1) information vector from a codeword or code symbol that may contain errors
Figure 0005298393
In order to recover the parallel RS-RAID architecture, an expanded or partitioned matrix including a van der Monde matrix and an added ((n−m) × (n−m)) identity matrix denoted I An inverse matrix of A can be determined, and the inverse matrix of A can be post-multiplied from the right, respectively, by the data read from the operable storage unit and the sets D and C of checksum symbols. Symbolically, the recovered information vector
Figure 0005298393
Is
Figure 0005298393
Can be obtained from Where the expansion matrix is
Figure 0005298393
And
Figure 0005298393
Are the expanded data and checksum symbol vectors. The notation Inv (A) yields an inverse matrix based on A, such as the inverse of a subset of the rows of A that form a regular (n × n) square matrix, and, as described below,
Figure 0005298393
May be understood to be a function that is conformal to the corresponding selected or selected set of n rows of the column matrix E. The process of finding the inverse of the A matrix may be viewed as an inversion of the selected set of rows of A, and the selection is for conformality in the computation of multiplying the list and matrix of operable data storage devices by a vector. Determined by the requirements of It may be noted that all subsets of the n rows of the ((n + m) × n) augmented matrix A can be inverted because F is a van der Monde matrix.

拡張形態では、式

Figure 0005298393
は、
Figure 0005298393
として表されうる。式中、共形性は、行列Aの選択された部分を反転する前に、EおよびAの対応する行を選択することによって実施される。 In expanded form, the expression
Figure 0005298393
Is
Figure 0005298393
Can be expressed as Where conformality is implemented by selecting the corresponding rows of E and A before inverting the selected portion of matrix 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つのエンティティから抽出された回復されるデータシンボルのベクトルでありうる。 In other words, the respective storage devices of RS-RAID architecture, the row of the augmented matrix A and a column vector E = [d 1, d 2 , ..., d n, c 1, c 2, ..., c m] corresponding T Can be represented by If no redundant storage device in m redundant storage devices fails, the recovered information symbols are determined by selecting any subset of A's n rows and E's n corresponding elements. A square matrix A ′, which may be described as a data recovery matrix, and a vector of data read from the corresponding data storage unit
Figure 0005298393
Can be formed. In other words, Inv (A) = (A ′) −1 , and
Figure 0005298393
It is. For example, in the case of a 4 + 2RS-RAID architecture, the data to be recovered or decoded
Figure 0005298393
Is
Figure 0005298393
Can be a vector of recovered data symbols extracted from the first four rows of the expanded van der Monde matrix and the data read from the storage device array and the first four entities of the checksum.

たとえば、第3の、第5の、または、第3と第5の両方のデータ記憶デバイスが故障する場合、

Figure 0005298393
は、以下の通りに、作動可能なデバイスに対応する4つの行を選択することによって、E'から回復されうる。
Figure 0005298393
Figure 0005298393
Figure 0005298393
式中、2重末梢線は記憶デバイスの故障を示し、1重末梢線は、逆行列を形成し、その後の計算を実施するための記憶デバイスの選択解除を示しうる。逆行列は、ガウス消去法または別の方法によって計算されてもよい。
Figure 0005298393
の値が得られると、回復されるかまたは推定される任意のチェックサムベクトル
Figure 0005298393
が、
Figure 0005298393
を使用して、データベクトル
Figure 0005298393
に基づいて計算されてもよい。 For example, if the third, fifth, or both third and fifth data storage devices fail,
Figure 0005298393
Can be recovered from E ′ by selecting the four rows corresponding to the ready devices as follows.
Figure 0005298393
Figure 0005298393
Figure 0005298393
Where the double peripheral line indicates a failure of the storage device and the single peripheral line forms an inverse matrix and may indicate deselection of the storage device for performing subsequent calculations. The inverse matrix may be calculated by Gaussian elimination or another method.
Figure 0005298393
An arbitrary checksum vector that is recovered or estimated once the value of is obtained
Figure 0005298393
But,
Figure 0005298393
Use the data vector
Figure 0005298393
May be calculated based on

並列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.

並列RS−RAID(Reed−Solomon redundant array of inexpensive disk)の例を示す図である。It is a figure which shows the example of parallel RS-RAID (Reed-Solomon redundant array of inexpensive disk). 構成行列の例を示す図である。It is a figure which shows the example of a structure matrix. RAIDコントローラの例を示す図である。It is a figure which shows the example of a RAID controller. チェックサムプログラムの例のフローチャートである。It is a flowchart of the example of a checksum program. チェックサム更新プログラムの例のフローチャートである。It is a flowchart of the example of a checksum update program. データプログラムの例のフローチャートである。It is a flowchart of the example of a data program.

図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-RAID architecture 100 for data storage. The parallel RS-RAID architecture 100 may include a communication fabric 1200, RAID controllers 1111 to 1113, and storage devices 1001 to 1012. Storage devices 1001-1004, 1005-1008, and 1009-1012 may be coupled to RAID controllers 1111-1113, respectively. In other words, a subset or cluster of storage devices 1001-1012 can be coupled to their corresponding RAID controllers 1111-1113. The number of storage devices that can be coupled to each RAID controller 1111 to 1113 may or may not be equal, and the storage devices are configured for the RAID controller to improve fault tolerance, improve throughput, and the like. Or the mapping may change dynamically. For example, the assignment of storage devices 1001-1012 to RAID controllers 1111-1113 may be determined by a configuration matrix or similar data structure.

図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 configuration matrix 200 that may include a variable “t”, where the variable “t” is an index or counter of the number of RAID controllers. For example, the row 206 of the configuration matrix 200 indicates the mapping function Q (t) between the RAID controller index number “t” and each RAID controller such as the RAID controllers 1111 to 1113. Row 202 shows a RAID storage device start index QS (t), and row 204 shows a RAID storage device end index QE (t). For example, QS (2) = 1005 and QE (2) = 1008. Since the device number offset may be supplied by the function J (), J (QS (2)) = 5, for example, the fifth storage device starts with the second storage device cluster. It may be noted that this can be shown. The configuration matrix 200 may map storage devices to corresponding RAID controllers. In other words, the configuration matrix 200 may determine or control which subset or cluster of storage devices are assigned to a given RAID controller. For computation, the configuration matrix 200 updates or maintains the checksum and data, which can determine the beginning and end of a weighted partial sum that can be encoded or decoded, as described below. It can be done.

通信ファブリック1200は、RAIDコントローラ1111〜1113間で、また、並列RS−RAIDアーキテクチャ100と外部デバイスとの間で入力および出力(I/O)デジタル信号を結合しうる。たとえば、通信ファブリック1200は、RAIDコントローラ1111〜1113間で、データシンボル、チェックサムシンボル、中間データおよびチェックサムシンボルなどのようなデジタル信号を結合しうる。通信ファブリック1200は、並列バス構造、直列データリンク、光バックプレーンなどを使用してもよい。通信ファブリック1200は、外部通信用に1つのタイプのバス、リンク、またはバックプレーン構造を、RAIDコントローラ1111〜1113間の通信用に別のタイプを使用してもよい。   Communication fabric 1200 may couple input and output (I / O) digital signals between RAID controllers 1111-1113 and between parallel RS-RAID architecture 100 and external devices. For example, the communication fabric 1200 may combine digital signals such as data symbols, checksum symbols, intermediate data, checksum symbols, etc. between RAID controllers 1111-1113. The communication fabric 1200 may use a parallel bus structure, a serial data link, an optical backplane, or the like. The communication fabric 1200 may use one type of bus, link, or backplane structure for external communication and another type for communication between the RAID controllers 1111-1113.

RAIDコントローラ1111〜1113は、構成行列200などの構成行列または他のデータ構造によって与えられた、割当てられた記憶デバイスの部分集合またはクラスタ内の各記憶デバイスについてデータチェックサムシンボルを計算しうる。RAIDコントローラ1111〜1113は、誤り訂正コード計算の部分和を集計するかまたは蓄積し、集計されたデータおよびパリティ計算結果を、通信ファブリック1200を通じて、並列RS−RAIDアーキテクチャ100内の他のRAIDコントローラに報告しうる。データおよびチェックサムシンボルについての部分和計算の詳細が、特定のRAIDコントローラを参照して述べられてもよいが、対応する計算は、RAIDコントローラ1111などの、並列RS−RAIDアーキテクチャ100内の任意のRAIDコントローラによって実施されてもよい。   The RAID controllers 1111 to 1113 may calculate data checksum symbols for each storage device in the allocated subset of storage devices or clusters given by a configuration matrix such as the configuration matrix 200 or other data structure. The RAID controllers 1111 to 1113 totalize or accumulate partial sums of error correction code calculations, and the aggregated data and parity calculation results are transmitted to other RAID controllers in the parallel RS-RAID architecture 100 through the communication fabric 1200. Can be reported. Details of the partial sum calculation for data and checksum symbols may be described with reference to a particular RAID controller, but the corresponding calculation can be performed in any parallel RS-RAID architecture 100, such as RAID controller 1111. It may be implemented by a RAID controller.

図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 RAID controller 1111 that may include a communication fabric interface 1111a, a RAID control unit 1111b, an intermediate sum device 1111c, a storage device interface 1111g, and a storage device failure sense unit 1111h. Communication fabric interface 1111a may couple signals to and from a communication fabric such as communication fabric 1200 to intermediate sum device 1111c and RAID control unit 1111b. The RAID control unit 1111b may be coupled to the intermediate sum device 1111c, the storage device interface 1111g, and the storage device failure sense unit 1111h. The storage device interface 1111g may be coupled to the RAID control unit 1111b, the intermediate sum device 1111c, and the storage device failure sense unit 1111h. The RAID controller 1111 can be coupled to and from the communication fabric 1200 as described above, and can be coupled to and from the storage devices such as the storage devices 1001 to 1004 via the storage device interface 1111g.

中間和デバイス1111cは、中間和計算器1111d、再計算器1111e、および計算コントロール1111fを含みうる。中間和計算器1111dは、通信ファブリックインタフェース1111a、記憶デバイスインタフェース1111g、再計算器1111e、および計算コントロール1111fに結合しうる。再計算器1111eは、通信ファブリックインタフェース1111a、中間和計算器1111d、計算コントロール1111f、および記憶デバイスインタフェース1111gに結合しうる。計算コントロール1111fは、中間和計算器1111d、再計算器1111e、および記憶デバイスインタフェース1111gに結合しうる。   The intermediate sum device 1111c may include an intermediate sum calculator 1111d, a recalculator 1111e, and a calculation control 1111f. The intermediate sum calculator 1111d may be coupled to the communication fabric interface 1111a, the storage device interface 1111g, the recalculator 1111e, and the calculation control 1111f. The recalculator 1111e may be coupled to the communication fabric interface 1111a, the intermediate sum calculator 1111d, the calculation control 1111f, and the storage device interface 1111g. Calculation control 1111f may couple to intermediate sum calculator 1111d, recalculator 1111e, and storage device interface 1111g.

通信ファブリックインタフェース1111aは、並列RS−RAIDアーキテクチャ100と外部デバイスとの間で情報シンボルを転送し、通信ファブリック1200とRAIDコントローラ1111の要素との間で、情報シンボル、情報シンボルの所定部分、データシンボル、中間チェックサムシンボルなどのチェックサムシンボル、コントロール信号、クロック信号などを結合しうる。通信ファブリックインタフェース1111aは、情報シンボルをビットからバイト、ワード、または他のシンボルにリフォーマットしうる、信号を多重化し逆多重化しうる、データ転送を同期化しうる、ラインドライバおよび受信機によって信号をバッファリングしうるなどを行いうる。換言すれば、通信ファブリックインタフェース1111aは、デジタルバスなどの通信ファブリックを通じて送信するためにデジタル信号を調節しうる、データ転送をバッファリングしうるなどを行いうる。   The communication fabric interface 1111a transfers an information symbol between the parallel RS-RAID architecture 100 and an external device, and an information symbol, a predetermined part of the information symbol, a data symbol between the communication fabric 1200 and the RAID controller 1111 Checksum symbols such as intermediate checksum symbols, control signals, clock signals, and the like. The communication fabric interface 1111a can reformat information symbols from bits to bytes, words, or other symbols, can multiplex and demultiplex signals, can synchronize data transfer, and buffers signals by line drivers and receivers You can ring and so on. In other words, the communication fabric interface 1111a may adjust digital signals for transmission over a communication fabric such as a digital bus, may buffer data transfers, and so on.

RAIDコントロールユニット1111bは、通信ファブリックインタフェース1111aおよび記憶デバイスから信号を受信しうる、情報シンボルの部分集合からデータシンボルを選択しうる、記憶デバイスにわたってデータおよびチェックサムシンボルをストライピングしうる、前方誤り訂正コード(forward−error correction code)(FECcode)によって中間和デバイス1111cの作動を制御しうるなどを行いうる。たとえば、情報シンボルの部分集合は、データシンボルによって表され、かつ、RAIDコントローラ1111によって制御される作動可能なデータ記憶デバイスに記憶される情報シンボルでありうる。中間和デバイス1111cは、記憶デバイス故障センスユニット1111hから状態情報を得ることができるRAIDコントロールユニット1111bから作動可能な記憶デバイスの数に関する状態情報を受信してもよい。   RAID control unit 1111b may receive signals from communication fabric interface 1111a and storage device, may select data symbols from a subset of information symbols, may strip data and checksum symbols across storage devices, and forward error correction code The operation of the intermediate sum device 1111c can be controlled by (forward-error correction code) (FECcode). For example, the subset of information symbols may be information symbols that are represented by data symbols and stored in an operable data storage device that is controlled by RAID controller 1111. The intermediate sum device 1111c may receive status information regarding the number of operable storage devices from the RAID control unit 1111b that can obtain status information from the storage device failure sense unit 1111h.

記憶デバイス故障センスユニット1111hは、RAIDコントローラ1111に結合する任意の記憶デバイスの作動に関する状態を確定し、作動可能な記憶デバイスのリストを確定しうる。換言すれば、記憶デバイス故障センスユニット1111hは、所与の記憶デバイスが、データおよびチェックサムの確実な記憶に適さなくなったかどうかを判定しうる。記憶デバイス故障センスユニット1111hは、信頼性のある作動について記憶デバイスを試験しうる、所与の記憶デバイスがオンラインであるかどうかを判定しうる、所与の記憶デバイスからの応答が、所定のタイムアウト間隔内に受信されない場合、ユニットオフラインを宣言しうる、信号品質メトリックが、記憶デバイスから読出されたデータについて閾品質より小さいかどうかを判定しうる、作動可能な記憶デバイスを挙げうるなどを行いうる。記憶デバイス故障センスユニット1111hは、こうした試験の結果を記録し、RAIDコントロールユニット1111bなどのRAIDコントローラ1111の要素のために、作動可能な記憶デバイスのリストを配信しうる。   The storage device failure sense unit 1111h may determine a state relating to the operation of any storage device coupled to the RAID controller 1111 and determine a list of operational storage devices. In other words, the storage device failure sense unit 1111h may determine whether a given storage device is no longer suitable for reliable storage of data and checksums. The storage device failure sense unit 1111h can test the storage device for reliable operation, can determine whether the given storage device is online, a response from the given storage device is a predetermined timeout If not received within an interval, a unit offline may be declared, a signal quality metric may be determined if the data read from the storage device is less than a threshold quality, an operational storage device may be listed, etc. . The storage device failure sense unit 1111h may record the results of such tests and distribute a list of operational storage devices for elements of the RAID controller 1111 such as the RAID control unit 1111b.

中間和計算器1111dは、中間的でローカルで部分的な和を計算することができ、この和内に、チェックサムおよびデータについての誤り訂正コード計算が、式8および式13に関してそれぞれ述べたように分解されうる。中間的なまたは部分的な和は、RAIDコントローラ1111に報告するクラスタ内の作動可能な記憶デバイスから読出されるシンボルの重み付き和であってよい。たとえば、記憶デバイスのクラスタおよびこうした部分和の合計の対応する制限は、構成行列200などの構成行列または他のデータ構造から確定されてもよい。中間和計算器1111dは、RAIDコントローラ1112またはRAIDコントローラ1113などの他のRAIDコントローラから対応する部分和を受信した後、データおよびチェックサムシンボルを計算しうる。   The intermediate sum calculator 1111d can calculate an intermediate, local and partial sum, within which the error correction code calculation for the checksum and data is as described with respect to Equation 8 and Equation 13, respectively. Can be broken down into The intermediate or partial sum may be a weighted sum of symbols read from an operational storage device in the cluster that reports to the RAID controller 1111. For example, the corresponding limit on the cluster of storage devices and the sum of these partial sums may be determined from a configuration matrix such as the configuration matrix 200 or other data structure. The intermediate sum calculator 1111d may calculate data and checksum symbols after receiving corresponding partial sums from other RAID controllers such as RAID controller 1112 or RAID controller 1113.

再計算器1111eは、RAIDコントローラ1111に直接結合する記憶デバイスからのデータに基づいて中間的なローカルのチェックサムを、また、通信ファブリックインタフェース1111aを通して転送される他のRAIDコントローラからのローカルでない中間チェックサムを再計算しうる。換言すれば、データまたはチェックサムシンボルの変化が、RAIDコントローラ1111に直接結合するローカルの記憶デバイスにおいて起こるか、または、通信ファブリック1200を通じてRAIDコントローラ1111に送信される中間チェックサムによって起こると、再計算器1111eは、中間和計算器1111dからの結果を相応して修正しうる。   The recalculator 1111e performs an intermediate local checksum based on data from the storage device directly coupled to the RAID controller 1111 and a non-local intermediate check from other RAID controllers transferred through the communication fabric interface 1111a. Sam can be recalculated. In other words, if the data or checksum symbol change occurs in a local storage device that is directly coupled to the RAID controller 1111 or is caused by an intermediate checksum sent to the RAID controller 1111 through the communication fabric 1200, the recalculation Unit 1111e may modify the result from intermediate sum calculator 1111d accordingly.

計算コントロール1111fは、中間チェックサム計算結果または再計算されたチェックサムが、FECのために使用されるべきかどうかを判定するために、中間和計算器1111dと再計算器1111eの両方を制御しうる。RAIDコントロール1111bは、中間和計算器1111dの結果と再計算器1111eの結果のいずれが計算されるかを判定するために、直接にまたは通信ファブリックインタフェース1111aを通して計算コントロール1111fに合図し(signal)うる。RAIDコントロール1111bは、記憶デバイス故障センスユニット1111hから、データ記憶デバイスに関する作動に関する状態などの状態情報を得ることができる。   The calculation control 1111f controls both the intermediate sum calculator 1111d and the recalculator 1111e to determine whether the intermediate checksum calculation result or the recalculated checksum should be used for FEC. sell. The RAID control 1111b can signal the calculation control 1111f directly or through the communication fabric interface 1111a to determine whether the result of the intermediate sum calculator 1111d or the result of the recalculator 1111e is calculated. . The RAID control 1111b can obtain state information such as a state relating to an operation related to the data storage device from the storage device failure sense unit 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であるように、オフセットを減算しうる。 The parallel RAID controllers 1111 to 1113 are
Figure 0005298393
Can calculate and store the checksum. Where index t can range from 1 to the number r of RAID controllers, and c i, t is the i th intermediate checksum for the t th index. For example, r is equal to 3 for the parallel RAID architecture 100. As described with respect to the configuration matrix 200, QS (t) and QE (t) limit the sum of the partial sums that map the start and end storage devices to the RAID controller and generate the respective intermediate checksums c i, j. Can be determined. The function J (•) may subtract the offset such that J (1002) = 2, for example.

RAIDコントローラ1111などのt番目のRS−RAIDコントローラは、

Figure 0005298393
によって、中間チェックサムci,tを計算しうる。 The t-th RS-RAID controller such as the RAID controller 1111 is
Figure 0005298393
Can calculate an intermediate checksum c i, t .

中間チェックサム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 communication fabric 1200 and can increase the throughput of parallel RS-RAID architecture 100. For example, in an 8 + 4 RS-RAID architecture, if a single primary RAID controller controls all of the storage devices and calculates the checksum, eight data symbols can be transferred through the communication fabric. In contrast, using the intermediate checksum calculator results from the 8 + 4 parallel RS-RAID architecture, only two intermediate checksum symbols may need to be transferred through the communication fabric.

中間チェックサムおよび全チェックサムを計算することに加えて、並列RS−RAIDアーキテクチャ100は、データシンボルが変化すると、チェックサムシンボルを修正するかまたは維持しうる。たとえば、データシンボルが、dからd'に変化すると、チェックサムは、
c'=c+fi,j(d'−d) 式9
によって、再計算されうる。式9の計算を実施するとき、RAIDコントローラ1111は、データ差(d'−d)を計算し、ファンデルモンデ要素fi,j、すなわち、

Figure 0005298393
によって、データ差に重み付けしうる。 In addition to calculating the intermediate checksum and the full checksum, the parallel RS-RAID architecture 100 may modify or maintain the checksum symbol as the data symbol changes. For example, if the data symbol changes from d j to d ′ j , the checksum is
c ′ i = c i + f i, j (d ′ j −d j ) Equation 9
Can be recalculated. When performing the calculation of Equation 9, the RAID controller 1111 calculates the data difference (d ′ j −d j ), and the van der Monde element fi , j ,
Figure 0005298393
Can weight the data difference.

個々の並列RAIDコントローラ1111〜1113は、一時的な成分c'i,tをRAIDコントローラ1111〜1113の他のコントローラに送出しうる。 Individual parallel RAID controllers 1111 to 1113 can send temporary components c ′ i, t to other controllers of RAID controllers 1111 to 1113.

RS−RAIDコントローラ1111〜1113は、

Figure 0005298393
によって、それぞれの割当てられた記憶デバイスを更新しうる。 The RS-RAID controllers 1111 to 1113 are
Figure 0005298393
Can update each assigned storage device.

記憶デバイスが故障する、たとえば、記憶デバイス故障センスユニット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 failure sense unit 1111h detects a hard disk crash, the inverse matrix Inv (A) of the expanded matrix is modified by the parallel RAID controllers 1111-1113 to leave the remaining or ready data An inverse matrix Inv (A ′) corresponding to the storage device is formed. The matrix Inv (A ′) may be a static data structure unless further storage device failure occurs. If another storage device fails, Inv (A ′) can be calculated once and then broadcast to all operational RAID controllers, such as RAID controllers 1111 to 1113. If more storage devices fail later, a new inverse matrix Inv (A ″) may be recalculated and broadcast to all RAID controllers.

並列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コントローラの制御下にある全てのデータまたはチェックサムシンボルの集合であると理解される。 The parallel RS-RAID architecture 100 can recover data symbols using intermediate sums or partial sums calculated locally at each RAID controller even if a storage device fails. Data recovered
Figure 0005298393
Is
Figure 0005298393
May be recovered from. In the formula, the element of Inv (A ′) may be represented by a i, j (1 ≦ i ≦ n and 1 ≦ j ≦ n). Corresponding data and elements of the checksum symbol E ′ = [e 1 , e 2 ,..., E n ] T are operational and can be read from the selected data storage device. Parallel RS-RAID architecture 100 may select or select E rows and corresponding subsets of added identity and van der Monde matrices to form E ′ and Inv (A ′), respectively. . In other words, the parallel RS-RAID architecture 100 performs data recovery computation as follows:
Figure 0005298393
Can be decomposed into a set of partial sums or intermediate data symbols. Where ej is understood to be the set of all data or checksum symbols under the control of the t th RS-RAID controller.

他の並列RS−RAIDコントローラから、中間データシンボルなどのメッセージを受信すると、個々のRAIDコントローラは、最初に中間データシンボル

Figure 0005298393
を計算し、次に、
Figure 0005298393
によって、回復されるデータ
Figure 0005298393
を計算しうる。 When a message, such as an intermediate data symbol, is received from another parallel RS-RAID controller, each RAID controller first starts with an intermediate data symbol
Figure 0005298393
And then
Figure 0005298393
Recovered data by
Figure 0005298393
Can be calculated.

図4Aは、データ記憶用の並列RS−RAIDアーキテクチャのためのチェックサムプログラムフローチャート400Aの例を示す。プログラムフローチャート400Aは、プログラムステップS410で開始し、並列RS−RAIDアーキテクチャの構成行列が読出されうるプログラムステップS420に進みうる。たとえば、構成行列は、図2に関して述べた構成行列などの、所与のRAIDコントローラに関連する記憶デバイスについての開始デバイス番号と終了デバイス番号を指定しうる。各RAIDコントローラは、構成行列のローカルなコピーを記憶しうる、構成行列を他のRAIDコントローラと調和させうる、構成行列を、高レベルのRAIDデバイスまたはネットワークコントローラから受信しうるなどを行いうることが理解されてもよい。   FIG. 4A shows an example of a checksum program flowchart 400A for a parallel RS-RAID architecture for data storage. Program flowchart 400A may begin at program step S410 and proceed to program step S420, where a parallel RS-RAID architecture configuration matrix may be read. For example, the configuration matrix may specify starting and ending device numbers for storage devices associated with a given RAID controller, such as the configuration matrix described with respect to FIG. Each RAID controller may store a local copy of the configuration matrix, may reconcile the configuration matrix with other RAID controllers, may receive the configuration matrix from a higher level RAID device or network controller, etc. May be understood.

プログラムステップ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 words using Equation 8 and Galois field properties. Program step S430 calculates an intermediate checksum and 1) uses the stored codeword symbols from each operable storage unit to supply a given portion of the codeword symbols to a given RAID controller. The sum may be updated or maintained, and 2) intermediate checksums from other RAID controllers communicating with a given RAID controller through the communication fabric may be aggregated. In other words, low latency data and parity bits, bytes, or words from the local subset data storage unit are stored in high latency, in the form of ci , t , from other data storage units. Or may be combined with partially summed data and parity. Thereafter, the program proceeds to program step S460.

ステップ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によって完全なチェックサムcを計算し、その後の誤り訂正および検出計算についてcを記憶することが可能になる。たとえば、プログラムは、第2および第3の中間チェックサムci,2およびci,3を受信することができ、第2および第3の中間チェックサムci,2およびci,3は、ローカルに計算された第1のチェックサムci,1と共に、cを計算するためのチェックサムの十分な集合を形成しうる。 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 Equation 8 and store c i for subsequent error correction and detection calculations. For example, the program can receive the second and third intermediate checksum c i, 2, and c i, 3, second and third intermediate checksum c i, 2, and c i, 3 is With the first checksum c i, 1 calculated locally, a sufficient set of checksums to calculate c 1 may be formed.

プログラムステップ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 update program flowchart 400B for a parallel RS-RAID architecture for data storage. Program flowchart 400B starts in step S440 and proceeds to step S442.

ステップ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 Equation 10. The RAID controller may obtain the data difference between the new data symbol and the old data symbol and weight the data difference by van der Monde matrix elements. Thereafter, the program flow can proceed to step S446.

ステップ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 program flow chart 500 for a parallel RS-RAID architecture for data storage. Program flowchart 500 may begin at step S510 and proceed to step S520, where a configuration matrix for a parallel RS-RAID architecture may be read as described with respect to FIG. 4A. From program step S520, program flow can proceed to program step S525, where data and checksum symbols can be read from the storage device. For example, 8 data and 4 checksum symbols can be read from 12 storage devices. In this example, at least eight data or checksum symbols can be read from the operable storage device.

プログラムステップ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コントローラは、前記複数のデータシンボルの重み付き和に基づいて前記ローカルな中間チェックサムを計算する、請求項1に記載の分散データ記憶デバイス。The distributed data storage device of claim 1, wherein the RAID controller calculates the local intermediate checksum based on a weighted sum of the plurality of data symbols. 前記複数の並列データ記憶クラスタの複数のRAIDコントローラの少なくとも1つは、他の並列データ記憶クラスタから前記中間チェックサムを受信し、前記複数の並列なデータ記憶クラスタの複数のデータ記憶デバイスのうちの1つに記憶するためのチェックサムを、前記受信した中間チェックサムと、前記ローカルな中間チェックサムとに基づいて生成する、請求項1又は2に記載の分散データ記憶デバイス。At least one of the plurality of RAID controllers of the plurality of parallel data storage clusters receives the intermediate checksum from another parallel data storage cluster, and is configured to include a plurality of data storage devices of the plurality of parallel data storage clusters. The distributed data storage device according to claim 1 or 2, wherein a checksum for storing in one is generated based on the received intermediate checksum and the local intermediate checksum. 前記RAIDコントローラは、前記チェックサムをデータ記憶デバイスに記憶するようさらに構成される請求項1から3のいずれか1項に記載の分散データ記憶デバイス。 The RAID controller, distributed data storage device according to any one of the three further from configured claim 1 to store the checksum in the data storage device. 前記通信ファブリックは、前記複数のデータシンボルを含む複数の情報シンボルを前記複数の並列データ記憶クラスタに配信するようさらに構成される請求項1から4のいずれか1項に記載の分散データ記憶デバイス。 The communication fabric, distributed data storage device according to the plurality of information symbols from further configured claim 1 to deliver to the plurality of parallel data storage clusters to any one of 4, including a plurality of data symbols. 前記RAIDコントローラは、前記複数の情報シンボルのサブセットから前記複数のデータシンボルを選択するRAIDコントロールユニットをさらに備える請求項に記載の分散データ記憶デバイス。 6. The distributed data storage device of claim 5 , wherein the RAID controller further comprises a RAID control unit that selects the plurality of data symbols from the subset of the plurality of information symbols. 前記RAIDコントロールユニットは、前記複数のデータ記憶デバイスから作動可能なデータ記憶デバイスのリストを確定する記憶デバイス故障センスユニットをさらに備える請求項に記載の分散データ記憶デバイス。 The distributed data storage device of claim 6 , wherein the RAID control unit further comprises a storage device failure sense unit that establishes a list of operable data storage devices from the plurality of data storage devices. 前記RAIDコントロールユニットは、作動可能なデータ記憶デバイスの前記リストに基づいてデータ回復行列を計算するようさらに構成される請求項に記載の分散データ記憶デバイス。 The distributed data storage device of claim 7 , wherein the RAID control unit is further configured to calculate a data recovery matrix based on the list of operable data storage devices. 前記通信ファブリックは、作動可能なデータ記憶デバイスの前記リストが変化すると、前記データ回復行列を前記複数の並列データ記憶クラスタに配信するようさらに構成される請求項に記載の分散データ記憶デバイス。 The distributed data storage device of claim 8 , wherein the communication fabric is further configured to deliver the data recovery matrix to the plurality of parallel data storage clusters when the list of operational data storage devices changes. 前記RAIDコントローラは、作動可能なデータ記憶デバイスのリストに基づいて前記中間チェックサムを計算するよう構成された中間和デバイスをさらに備える請求項に記載の分散データ記憶デバイス。 The distributed data storage device of claim 6 , wherein the RAID controller further comprises an intermediate sum device configured to calculate the intermediate checksum based on a list of operational data storage devices. 前記中間和デバイスは、データシンボルが変化すると、前記ローカルな中間チェクサムを更新するよう構成された再計算器をさらに備える請求項10に記載の分散データ記憶デバイス。 The distributed data storage device of claim 10 , wherein the intermediate sum device further comprises a recalculator configured to update the local intermediate checksum when a data symbol changes. 前記RAIDコントロールユニットは、前記データ回復行列を計算するために、添加された単位行列とファンデルモンデ行列の逆行列を求めるようさらに構成される請求項に記載の分散データ記憶デバイス。 9. The distributed data storage device of claim 8 , wherein the RAID control unit is further configured to determine an inverse matrix of an added unit matrix and van der Monde matrix to calculate the data recovery matrix. 中間和デバイスは、前記データ回復行列に基づく中間データシンボル、ならびに、前記記憶デバイスから読出されるリードデータシンボルおよびリードチェックサムシンボルの少なくとも一方のベクトルを計算するようさらに構成される請求項12に記載の分散データ記憶デバイス。 Intermediate sum device intermediate data symbols based on the data recovery matrix, and, according to further configured claim 12 to calculate at least one of the vectors of the read data symbols and the read checksum symbol is read from the storage device Distributed data storage device. 前記RAIDコントロールユニットは、前記添加された単位行列とファンデルモンデ行列の行の集合ならびに作動可能なデータ記憶デバイスの前記リストに基づくベクトルを選択し、前記データ回復行列を形成するために前記行の集合の逆行列を求めるようさらに構成される請求項12に記載の分散データ記憶デバイス。 The RAID control unit selects a vector based on the set of rows of the added identity matrix and van der Monde matrix and the list of operable data storage devices to form the data recovery matrix. The distributed data storage device of claim 12 , further configured to determine an inverse matrix of the set. 前記RAIDコントローラは、中間和デバイスに中間データシンボルを計算させるメッセージを前記複数の並列データ記憶クラスタに送出するようさらに構成される請求項14に記載の分散データ記憶デバイス。 15. The distributed data storage device of claim 14 , wherein the RAID controller is further configured to send a message to the plurality of parallel data storage clusters that causes an intermediate sum device to calculate intermediate data symbols. 前記通信ファブリックは、前記中間データシンボルを前記複数の並列データ記憶クラスタのそれぞれに配信するようさらに構成される請求項15に記載の分散データ記憶デバイス。 The distributed data storage device of claim 15 , wherein the communication fabric is further configured to distribute the intermediate data symbols to each of the plurality of parallel data storage clusters. 前記RAIDコントローラは、複数の中間データシンボルから、回復されるデータシンボルを計算するようさらに構成される請求項16に記載の分散データ記憶デバイス。 The distributed data storage device of claim 16 , wherein the RAID controller is further configured to calculate recovered data symbols from a plurality of intermediate data symbols. 前記ローカルな中間チェックサムは、前記RAIDコントローラに割当てられた前記複数のデータ記憶デバイスに対応する前記複数のデータシンボルの部分集合の部分和(partial sum)である請求項1から17のいずれか1項に記載の分散データ記憶デバイス。 Said local intermediate checksum, any one of the partial sum of a subset of said plurality of data symbols corresponding to said plurality of data storage devices assigned to the RAID controller (partials sum) at a claims 1 to 17 The distributed data storage device according to item . 前記中間データシンボルは、前記RAIDコントローラに割当てられた前記データ記憶デバイスに対応する前記データシンボルの部分集合および前記リードチェックサムシンボルの部分和である請求項13に記載の分散データ記憶デバイス。 14. The distributed data storage device of claim 13 , wherein the intermediate data symbols are a subset of the data symbols corresponding to the data storage device assigned to the RAID controller and a partial sum of the read checksum symbols. データ記憶方法であって、
複数のデータ記憶デバイスを複数の並列データ記憶クラスタに割当てること、
前記複数の並列データ記憶クラスタのそれぞれに複数のデータシンボルを記憶すること、
前記複数の並列データ記憶クラスタのそれぞれに含まれる複数の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.
前記複数の並列データ記憶クラスタのそれぞれの中の作動可能なデータ記憶デバイスの集合を検知することをさらに含む請求項21に記載のデータ記憶方法。 The data storage method of claim 21 , further comprising detecting a set of operable data storage devices in each of the plurality of parallel data storage clusters. 作動可能なデータ記憶デバイスの前記集合に基づくデータ回復行列を、前記複数の並列データ記憶クラスタのそれぞれに配信することをさらに含む請求項22に記載のデータ記憶方法。 23. The data storage method of claim 22 , further comprising distributing a data recovery matrix based on the set of operable data storage devices to each of the plurality of parallel data storage clusters. 前記データ回復行列に基づく中間データシンボルならびに前記記憶デバイスから読出されるリードデータシンボルおよびリードチェックサムシンボルの少なくとも一方のベクトルを計算することをさらに含む請求項23に記載のデータ記憶方法。 24. The data storage method of claim 23 , further comprising calculating a vector of at least one of an intermediate data symbol based on the data recovery matrix and a read data symbol and a read checksum symbol read from the storage device. 前記中間データシンボルを前記複数の並列データ記憶クラスタのそれぞれに配信すること、および、
前記中間データシンボルの和から、回復されるデータシンボルを計算することをさらに含む請求項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.
JP2010534958A 2007-11-21 2008-11-20 Parallel Reed-Solomon RAID (RS-RAID) architecture, device, and method Active JP5298393B2 (en)

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)

* 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
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)

* 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 (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

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