CN101719086B - Fault-tolerant processing method and device of disk array and fault-tolerant system - Google Patents

Fault-tolerant processing method and device of disk array and fault-tolerant system Download PDF

Info

Publication number
CN101719086B
CN101719086B CN200910222688A CN200910222688A CN101719086B CN 101719086 B CN101719086 B CN 101719086B CN 200910222688 A CN200910222688 A CN 200910222688A CN 200910222688 A CN200910222688 A CN 200910222688A CN 101719086 B CN101719086 B CN 101719086B
Authority
CN
China
Prior art keywords
data block
check
block
oblique
horizontal
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
CN200910222688A
Other languages
Chinese (zh)
Other versions
CN101719086A (en
Inventor
王玉林
姚建业
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Chengdu Huawei Technology Co Ltd
Original Assignee
University of Electronic Science and Technology of China
Huawei Symantec Technologies Co Ltd
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 University of Electronic Science and Technology of China, Huawei Symantec Technologies Co Ltd filed Critical University of Electronic Science and Technology of China
Priority to CN200910222688A priority Critical patent/CN101719086B/en
Publication of CN101719086A publication Critical patent/CN101719086A/en
Application granted granted Critical
Publication of CN101719086B publication Critical patent/CN101719086B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The embodiment of the invention discloses fault-tolerant processing method and device of a disk array and a fault-tolerant system. The fault-tolerant processing method of the disk array comprises the steps of: reading p data blocks of a first horizontal checking group stored in the disk array, wherein the first horizontal checking group comprises a first horizontal checking block and the P data blocks, and P is a positive integer; obtaining the first horizontal checking block by carrying out xor operation on the read P data blocks of the first horizontal checking group; reading p data blocks of a first slant checking group stored in the disk array, wherein the first slant checking group comprises the first horizontal checking block, a first slant checking block and the P data blocks; obtaining the first slant checking block by carrying out the xor operation on the first horizontal checking block and the read P data blocks of the first slant checking group; and writing the obtained first horizontal checking block and the obtained first slant checking block into a corresponding storage unit. The embodiment of the invention can relatively reduce the complexity of the fault-tolerant computation of a disk and enhance the enablement.

Description

Disk array fault-tolerance processing method and device and tolerant system
Technical field
The present invention relates to technical field of data storage, be specifically related to a kind of disk array fault-tolerance processing method and device and tolerant system.
Background technology
Along with the popularization and application of networks development and computing machine, people are increasingly high to the performance requirement of storage system, especially in the application of crucial affairs.
Redundant Arrays of Inexpensive Disks (RAID, Redundant Array of Independent Disks) adopts itemize and redundant method to improve capacity, speed and the reliability of storage system, has become the first-selected structure that high-performance data is stored.Present most of storage systems are designed to tolerate single disk failure; But along with disk array scale and disk size constantly increase and the influence of relation factor; The probability that a plurality of disk failures took place in the short time has increased greatly; Feasible single under many circumstances disk failure is fault-tolerant can not to have satisfied actual needs, so the thought of the multi-disk fault-tolerant that industry proposes.
For example existing RAID6 is two disk tolerance mechanism of a kind of pair of checking mode, compares with other RAID level, and RAID6 increases by two independently error-checking blocks (PB, Parity Block), and promptly check block P and check block Q are called the P+Q coding again.RAID6 utilizes different checking algorithms that identical user data is carried out duplicate protection; Each itemize comprises two verification unit: P verification unit and Q verification unit; Wherein, the P verification unit adopts parity check code, and the Q verification unit adopts other check codes such as Reed-Solomon.When the single-deck fault occurring, P+Q RAID changes the RAID5 of N+1 parity checking into; When double disk failure occurring, P+Q RAID changes the RAID0 of no fault-tolerant ability into.
In realizing process of the present invention; The inventor finds; Utilizing RAID6 for example to realize in the process of two disk tolerances, no matter be the write data piece, upgrade check block Q, or two disk situation of makeing mistakes under carry out data and recover, all need carry out Galois Field (Galois Field) conversion; And the Galois Field conversion need be carried out complicated multiply-add operation, computation complexity height very.The write performance of disk array reduces and the enforcement cost of complex and expensive makes RAID6 in practical application, be difficult to carry out.
Summary of the invention
The embodiment of the invention provides a kind of disk array fault-tolerance processing method and device and tolerant system, can effectively reduce the computation complexity of disk tolerance relatively, improves exploitativeness.
For solving the problems of the technologies described above, the embodiment of the invention provides following technical scheme:
A kind of disk array fault-tolerance processing method comprises:
P data block of first horizontal checking group of reading disk array stores, wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, p is a positive integer;
Wherein, carry out XOR through p data block of first horizontal checking group that will read and obtain the said first horizontal check piece;
P the data block that the first oblique verification of reading disk array stores is divided into groups, wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block;
Wherein, carry out XOR through p the data block that the first horizontal check piece and the first oblique verification of reading are divided into groups and obtain the said first oblique check block;
The corresponding stored unit that the said first horizontal check piece that obtains and the first oblique check block are write disk array.
A kind of fault-tolerant processing device comprises:
First read module is used for p data block of first horizontal checking group of reading disk array stores, and wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, and p is a positive integer;
First computing module is used for carrying out XOR through p data block of first horizontal checking group that will read, and obtains the said first horizontal check piece;
Second read module is used for p the data block that the first oblique verification of reading disk array stores is divided into groups, and wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block;
Second computing module is used for obtaining the said first oblique check block through the first horizontal check piece and p the data block that the first oblique verification of reading is divided into groups are carried out XOR;
First writing module is used for the corresponding stored unit that the first horizontal check piece that obtains and the first oblique check block are write disk array.
A kind of tolerant system comprises:
Disk array and fault-tolerant processing device,
Wherein, said fault-tolerant processing device is used for p data block of first horizontal checking group of reading disk array stores, and wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, and p is a positive integer; Wherein, carry out XOR through p data block of first horizontal checking group that will read and obtain the said first horizontal check piece; P the data block that the first oblique verification of reading disk array stores is divided into groups, wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block; Wherein, carry out XOR through p the data block that the first horizontal check piece and the first oblique verification of reading are divided into groups and obtain the said first oblique check block; The corresponding stored unit that the said first horizontal check piece that obtains and the first oblique check block are write disk array.
Therefore; In the embodiment of the invention; Through data block being carried out horizontal fault-tolerant encoding and oblique fault-tolerant encoding, can realize two disk tolerances of disk array, disk fault-tolerant coding methods such as existing RAID6 are compared; Need not to carry out the Galois Field conversion in the embodiment of the invention, can simplify the computation complexity of fault-tolerant encoding and fault recovery greatly; And have very low data block and upgrade cost.
Description of drawings
In order to be illustrated more clearly in the technical scheme in the embodiment of the invention; The accompanying drawing of required use is done to introduce simply in will describing embodiment below; Obviously, the accompanying drawing in describing below only is some embodiments of the present invention, for those of ordinary skills; Under the prerequisite of not paying creative work property, can also obtain other accompanying drawing according to these accompanying drawings.
Fig. 1-a is a kind of data block that provides of the embodiment of the invention and the mapping relations synoptic diagram of complex number plane;
Fig. 1-b is the method flow diagram of a kind of disk array fault-tolerant processing of providing of the embodiment of the invention;
Fig. 2 is the method flow diagram that a kind of disk failure that the embodiment of the invention one provides recovers;
Fig. 3 is the method flow diagram that a kind of disk failure that the embodiment of the invention two provides recovers;
Fig. 4 is the method flow diagram that a kind of disk failure that the embodiment of the invention three provides recovers;
Fig. 5 is the method flow diagram that a kind of disk failure that the embodiment of the invention four provides recovers;
Fig. 6-a is the method flow diagram that a kind of disk failure that the embodiment of the invention five provides recovers;
Fig. 6-b is the path synoptic diagram that a kind of data block that the embodiment of the invention five provides is recovered;
Fig. 7 is the method flow diagram that a kind of disk failure that the embodiment of the invention six provides recovers;
Fig. 8 is a kind of data block method for updating process flow diagram that the embodiment of the invention eight provides;
Fig. 9-a is a kind of fault-tolerant processing device synoptic diagram that the embodiment of the invention nine provides;
Fig. 9-b is the another kind of fault-tolerant processing device synoptic diagram that the embodiment of the invention nine provides;
Fig. 9-c is the another kind of fault-tolerant processing device synoptic diagram that the embodiment of the invention nine provides;
Figure 10 is a kind of data block recovery device synoptic diagram that the embodiment of the invention ten provides;
Figure 11 is a kind of data block updating device synoptic diagram that the embodiment of the invention 11 provides;
Figure 12 is a kind of tolerant system synoptic diagram that the embodiment of the invention 12 provides.
Embodiment
The embodiment of the invention provides a kind of disk array fault-tolerance processing method and device and tolerant system, can effectively reduce the computation complexity of disk tolerance relatively, improves exploitativeness.
For make goal of the invention of the present invention, characteristic, advantage can be more obvious and understandable; To combine the accompanying drawing in the embodiment of the invention below; Technical scheme in the embodiment of the invention is carried out clear, intactly description; Obviously, described embodiment only is the present invention's part embodiment, but not whole embodiment.Based on the embodiment among the present invention, those of ordinary skills are not making the every other embodiment that is obtained under the creative work prerequisite, all belong to the scope of the present invention's protection.
Generally speaking, the index of measurement multi-disk fault-tolerant method mainly contains the adaptability of renewal complexity, computation complexity, disk space redundance, load balancing property and disk number etc.Wherein, upgrading complexity is the primary index of weighing the multi-disk fault-tolerant method, refers to the number of times that need carry out disk operating when upgrading a data in magnetic disk piece, and the write performance that upgrades the high more disk array of complexity is just low more; Computation complexity refers to according to data in magnetic disk piece calculation check piece and according to the realization cost of check block recover data blocks; It is the important indicator of weighing the multi-disk fault-tolerant method; The high more realization cost of computation complexity is big more, and the possibility of in practical application, implementing is low more; The disk space redundance is meant that check block accounts for the ratio of total disk space, and redundance is low more, and the valid data utilization factor of disk space is just high more; Load balancing is meant in data and writes, data are read, in the data reconstruction processes load of each disk identical as far as possible, avoid producing system bottleneck, the balanced multi-disk fault-tolerant method of working load can improve multi-disk fault-tolerant system efficient; The adaptability of disk number is meant that the multi-disk fault-tolerant method can adapt to the adaptive faculty of the disk array of different disk number; Good adaptability can adapt to the disk array of any disk number; Relatively poor adaptability can only adapt to the disk array of the disk number of particular requirement, and the adaptability of disk number is also determining the practicality of multi-disk fault-tolerant method.
The technical scheme of the embodiment of the invention has been considered above factor fully.Carry out detailed introduction through specific embodiment below.
At first explanation is, in the embodiment of the invention, for ease of describing, introduces fault-tolerant encoding matrix M (hereinafter to be referred as matrix M), wherein, the data block of disk array (p-1) * p cell stores is mapped as (the p-1) * p matrix element in the matrix M.
Wherein, the disk array of mentioning in the embodiment of the invention can be Redundant Arrays of Inexpensive Disks, can certainly be the similar disk array of other structure and working method.
Be example (p-1) * p data block of disk array storage is carried out fault-tolerant encoding below, be elaborated based on matrix M.
In practical application, matrix M can comprise: p column data piece and 2 row check blocks promptly comprise the individual matrix element (the following element that is called for short) of p * (p+2).Wherein, the preceding p of matrix M classifies data block row (abbreviation data rows) as, and back two is classified check block row (abbreviation check column) as; The 0th row of matrix M is made as dummy row, introduces dummy row and is in order to simplify fault-tolerant calculation, and the data block of dummy row can be 0 entirely; That is: the 1st to p-1 capable data block of the preceding p row of matrix M is the data block of disk array (p-1) * p cell stores.
Wherein, for ease of statement, (i, the j) element of the capable j row of i among the representing matrix M is with S (i, j) Elements C (i, storage unit j) of the capable j row of storage matrix M i in the expression disk array with C below.Further, (i j) be data block, and (i j) representes also can to use D below then if C; If (i j) be check block, and (i j) representes also can to use P below then C.Wherein, check block is meant the checking data that is used for data block is carried out verification.
Under a kind of application scenarios, for realizing the multi-disk fault-tolerant of disk array, the data block of per 1 row of matrix M can be to be stored in respectively on the different disks, and wherein, a certain disk failure of disk array also just is associated with the data block damage of matrix M corresponding data row.
For ease of understanding, (the 5-1) * p element that is mapped as in the matrix M with the data block with disk array (5-1) * 5 cell stores below is an example, and at this moment, matrix M comprises 5 * (5+2) individual matrix elements, specifically can be as shown in table 1, but be not limited to this:
Table 1
0 0 0 0 0 C(0,5) C(0,6)
C(1,0) C(1,1) C(1,2) C(1,3) C(1,4) C(1,5) C(1,6)
C(2,0) C(2,1) C(2,2) C(2,3) C(2,4) C(2,5) C(2,6)
C(3,0) C(3,1) C(3,2) C(3,3) C(3,4) C(3,5) C(4,6)
C(4,0) C(4,1) C(4,2) C(4,3) C(4,4) C(4,5) C(4,6)
In the matrix M shown in the table 1, the 0th to 4 classifies data rows as, and the 5th to 6 classifies check column as, the 0th behavior dummy row, and the 1st to 4 classifies non-dummy row as.Wherein, the data block of the 1st to 4 row of preceding 5 row of matrix M is the data block of disk array (5-1) * 5 cell stores.The element that for example the 1st row the 0th is listed as in the matrix M shown in C (1,0) the expression table 1 because C (1,0) is a data block, thereby also can be used D (1,0) expression; The element of the 1st row the 5th row in the matrix M shown in C (1,5) the expression table 1 because C (1,5) is a check block, thereby also can be used P (1,5) expression, by that analogy.
For ease of intuitively, can also the data block of matrix M be mapped as the point on the complex number plane, concrete mapping method can be that the data block with same row is mapped on the concentric circles, is mapped to the concentrically ringed same footpath of different radii upwards with the data block of delegation.
For example matrix M comprises 5 * 5 data blocks (comprising the data block of five dummy row), and the mapping relations of these 5 * 5 data blocks and complex number plane can be shown in Fig. 1-a.Wherein, 5 concentric circless of complex number plane are represented the data block of the 0th, 1,2,3,4 row of matrix M successively, and the data block of each row of matrix M is mapped to 5 concentrically ringed same footpaths respectively upwards.
In the embodiment of the invention, matrix M comprises in the two row check columns that wherein the check block of 1 row is used to realize the horizontal check of data block, therefore can be described as the horizontal check piece; Wherein the check block of 1 row is used to realize the oblique verification of data block, therefore can be described as oblique check block.For quoting from conveniently, below the check column that comprises the horizontal check piece in the matrix M is called the horizontal check row, the check column that comprises oblique check block in the matrix M is called oblique check column.
Below, classifying the horizontal check row as with the p of matrix M, p+1 classifies oblique verification as and classifies example as, specifies, and also is not limited to this certainly.
A verification of matrix M comprises the check block and p the data block of participating in the verification computing in dividing into groups; For describing conveniently; Participate in the verification of horizontal check and divide into groups to be called horizontal checking group, wherein, a horizontal checking group comprises p data block and horizontal check piece of the same delegation of matrix M; Participate in the verification of oblique verification and divide into groups to be called oblique verification grouping, wherein, an oblique verification grouping comprises p data block, a horizontal check piece and oblique check block of the different rows of matrix M.
Under a kind of application scenarios, the data block of utilizing the preceding P of matrix M to be listed as can be encoded and generated the check block of back two row.Wherein, Fault-tolerant coding method is: (1≤n≤p-1) is a point of fixity to go up data block n with each row of matrix M the 0th row respectively; At first can be at (p-1) * p matrix (submatrix of matrix M; Be the the 1st to p-1 capable of P row before the matrix M) in be that 0 direction is carried out exclusive or check with slope, do not rotate radially and directly verification, the check block of generation is followed successively by p-1 element of matrix M p row; Then at the matrix (submatrix of matrix M of p * (p+1); Can be the the 0th to p-1 capable of P+1 row before the matrix M) in carry out exclusive or check with slope for negative 1 direction (or be not 0 direction) with other slope, the radially verification after promptly turning clockwise once, the check block of generation is followed successively by p-1 element of matrix M p+1 row.
The algebraic specification of above-mentioned fault-tolerant coding method can be following:
In the matrix M that comprises arbitrary integer p column data piece and 2 row check blocks, the fault-tolerant encoding of each check block of corresponding P row (horizontal check row) is following:
C i , p = ⊕ k = 0 p - 1 C i , k , ( 1 ≤ i ≤ p - 1 ) (formula 1)
The fault-tolerant encoding strategy of each check block of p+1 row (oblique check column) is following:
C i , p + 1 = ⊕ k = 0 p C ( i + Nk ) p , k , ( 1 ≤ i ≤ p - 1 ) (formula 2)
Wherein, (i+nk) in the formula 2 pExpression is to (i+n * k) gets the mould of p, and n is a coefficient of rotary, and wherein n can be positive integer or negative integer.For simplifying the fault-tolerant calculation process, the embodiment of the invention is that example describes with coefficient of rotary n=1.
When coefficient of rotary n=1, each check block generation strategy of oblique check column is following:
C i , p + 1 = ⊕ k = 0 p C ( i + k ) p , k , ( 1 ≤ i ≤ p - 1 ) (formula 3)
According to the fault-tolerant encoding strategy shown in formula 1, utilize all data blocks of the every row of matrix M, can simply generate p-1 the horizontal check piece corresponding respectively with each line data piece; According to the fault-tolerant encoding strategy shown in formula 3, can simply generate p-1 oblique check block, and each check block that will generate writes the corresponding stored unit of disk array.
Wherein, each check block is written to the position of the storage unit of disk array can be given tacit consent to, and perhaps also can be to calculate according to the write-in policy that presets to obtain.When one or more disk failure of storage matrix M data block in the disk array, the corresponding check block of storing in the disk array just capable of using, the data block of being damaged on the recovered failure disk.
Further, for improving the disk space redundance of disk array as much as possible, columns p >=3 of the data block of matrix M.
Referring to Fig. 1-b, the embodiment of the invention provides a kind of disk array fault-tolerance processing method, can comprise:
110, p data block of first horizontal checking group of reading disk array stores, wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, p is a positive integer;
Under a kind of application scenarios, the row of p data block correspondence in the fault-tolerant encoding matrix M number that can obtain first horizontal checking group earlier and row number, wherein, the p of first horizontal checking group data block C I, kRow number be i, the value of row k is respectively 0 to p-1 p integer; And then, read p data block of first horizontal checking group from the corresponding stored unit of disk array according to the corresponding relation of the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array.
120, carry out XOR through p data block of first horizontal checking group that will read and obtain the above-mentioned first horizontal check piece;
Under a kind of application scenarios, utilize formula 1 to obtain the first horizontal check piece.
130, p data block of first of the reading disk array stores oblique verification grouping, wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block;
Under a kind of application scenarios, can obtain the row of p data block correspondence in the fault-tolerant encoding matrix M that the first oblique verification divides into groups number and row number earlier, wherein, p data block of the first oblique verification grouping
Figure G2009102226887D00081
The value of row k is respectively 0 to p-1 p integer approximately, and capable number is (i+nk) p, coefficient of rotary n can be positive integer or negative integer; Then according to the corresponding relation of the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, read p the data block that the first oblique verification is divided into groups from the corresponding stored unit of disk array.
140, carry out XOR through p the data block that the first horizontal check piece and the first oblique verification of reading are divided into groups and obtain the above-mentioned first oblique check block.
Under a kind of application scenarios, utilize formula 2 to obtain the first horizontal check piece.
The corresponding stored unit that the above-mentioned first horizontal check piece that 150, will obtain and the first oblique check block write disk array.
Therefore; Through data block being carried out horizontal fault-tolerant encoding and oblique fault-tolerant encoding; Can realize two disk tolerances of disk array; Disk fault-tolerant coding methods such as existing RAID6 are compared, and need not to carry out the Galois Field conversion in the embodiment of the invention, can simplify the computation complexity of fault-tolerant encoding and fault recovery greatly; And have very low data block and upgrade cost.
For ease of understanding, be that example describes with matrix M as shown in table 1 below, wherein, the check block of matrix M p row generates based on formula 3 based on the check block that formula 1 generates, matrix M p+1 is listed as.
Wherein, based on the fault-tolerant encoding strategy shown in the formula 1, each check block of the matrix M P of generation row can be following:
C ( 1,5 ) = C ( 1,0 ) ⊕ C ( 1,1 ) ⊕ C ( 1,2 ) ⊕ C ( 1,3 ) ⊕ C ( 1,4 )
C ( 2,5 ) = C ( 2,0 ) ⊕ C ( 2 , 1 ) ⊕ C ( 2,2 ) ⊕ C ( 2,3 ) ⊕ C ( 2,4 )
C ( 3,5 ) = C ( 3 , 0 ) ⊕ C ( 3 , 1 ) ⊕ C ( 3 , 2 ) ⊕ C ( 3,3 ) ⊕ C ( 3,4 )
C ( 4,5 ) = C ( 4 , 0 ) ⊕ C ( 4 , 1 ) ⊕ C ( 4 , 2 ) ⊕ C ( 4,3 ) ⊕ C ( 4,4 )
Wherein, based on the fault-tolerant encoding strategy shown in the formula 3, each check block of the matrix M p+1 of generation row can be following:
C ( 1,6 ) = C ( 1,0 ) ⊕ C ( 2,1 ) ⊕ C ( 3,2 ) ⊕ C ( 4,3 ) ⊕ C ( 0,4 ) ⊕ C ( 1,5 )
C ( 2,6 ) = C ( 2,0 ) ⊕ C ( 3,1 ) ⊕ C ( 4,2 ) ⊕ C ( 0,3 ) ⊕ C ( 1,4 ) ⊕ C ( 2,5 )
C ( 3,6 ) = C ( 3,0 ) ⊕ C ( 4,1 ) ⊕ C ( 0,2 ) ⊕ C ( 1,3 ) ⊕ C ( 2,4 ) ⊕ C ( 3,5 )
C ( 4,6 ) = C ( 4,0 ) ⊕ C ( 0,1 ) ⊕ C ( 1,2 ) ⊕ C ( 2,3 ) ⊕ C ( 3,4 ) ⊕ C ( 4,5 )
Based on the fault-tolerant encoding strategy of formula 1 and formula 3, in matrix M as shown in Figure 1, for example data block C (1,0), C (1,1), C (1,2), C (1,3), C (1,4) and the horizontal check piece C (1,5) of the 1st row belong to same horizontal checking group; Data block C (1,0), C (2,1), C (3,2), C (4,3), C (0,4) and horizontal check piece C (1,5) and oblique check block C (1,6) belong to same oblique verification and divide into groups, by that analogy.
With the horizontal check piece C (1,5), C (2,5), C (3,5), the C (4,5) that generate, and oblique check block C (1,6), C (2,6), C (3,6), C (4,6) write the corresponding stored unit of disk array.Wherein, the check block of dummy row (the 0th row) can not write in the disk array.
Further, for reducing failure risk, each data block that belongs to same verification grouping can be stored in the different disk (or different sector) with check block, to reduce the probability of being damaged simultaneously.
For example, if 1 oblique verification grouping comprises 6 data blocks, 1 horizontal check piece and 1 oblique check block, at this moment, can utilize the individual disk of 8 (6+1+1) to store 6 data blocks and 2 check blocks respectively.When 1 or 2 disk failures in 6 disks of 6 data blocks of storage, utilize the data block of remaining several disk storages or the data block that check block just can simply recover damage fast; When 1 or 2 disk failures in two disks of 2 check blocks of storage, also can simply recover the check block of damage according to formula 1 and the fault-tolerant encoding strategy shown in the formula 3.
It is thus clear that; Adopt the disk tolerance coding method of the embodiment of the invention; Through data block being carried out horizontal fault-tolerant encoding and oblique fault-tolerant encoding, can realize two disk tolerances of disk array, disk fault-tolerant coding methods such as existing RAID6 are compared; The scheme of the embodiment of the invention need not to carry out the Galois Field conversion, can simplify the computation complexity of fault-tolerant encoding and fault recovery greatly.
Further, the horizontal check piece is also participated in the fault-tolerant encoding of oblique check block, and the coding dynamics is stronger relatively, and fault-tolerant ability is further improved.
Further, the embodiment of the invention also provides a kind of method of recovering based on the data block of above-mentioned fault-tolerant coding method, can comprise:
According to the row of the first data block correspondence in the fault-tolerant encoding matrix M to be recovered number and row number; Confirm oblique verification is divided into groups under first data block oblique check block, horizontal check piece and the row of other data block correspondence in the fault-tolerant encoding matrix M number and row number, above-mentioned fault-tolerant encoding matrix M comprises p column data piece and two row check blocks;
According to the corresponding relation of the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, read oblique check block, horizontal check piece and other data block that oblique verification is divided into groups under first data block from the corresponding stored unit of disk array;
Data block that reads out and check block are carried out XOR, obtain first data block;
First data block that obtains is write the corresponding stored unit of disk array.
Based on above-mentioned fault-tolerant coding method and different disk failure situation, the embodiment of the invention provides different data recovery schemes.Wherein, the embodiment of the invention one to three is respectively to the recovery of the disk failure of the one-column matrix element of storage matrix M; The embodiment of the invention four to seven is respectively to the recovery of the disk simultaneous faults of the two column matrix elements of storage matrix M.
Embodiment one,
Present embodiment is primarily aimed at the recovery flow process of the disk failure of the single-row data block of storage matrix M in the disk array, and wherein, the data block with damage is that (i j) is example to D below.
Referring to Fig. 2, the method that a kind of disk failure of the embodiment of the invention one recovers can comprise:
201, confirm D (i, the row y of oblique check block in matrix M during oblique verification is divided into groups under j).
In practical application, confirm that the mode of row y can be: y=(i+ (p-j)) %p, can certainly adopt other mathematical way to confirm row y, the present invention does not do qualification.
Wherein, oblique check block is positioned on the oblique check column (p+1 row) of matrix M.
202, read oblique check block P (y, p+1) with horizontal check piece P (y, p).
Wherein, horizontal check piece P (y, p) with oblique check block P (y p+1) belongs to same oblique verification and divides into groups, and horizontal check piece P (y, p) (y p+1) is positioned in the same delegation of matrix M with oblique check block P.
When concrete the realization, can from disk array store oblique check block P (y, p+1) with horizontal check piece P (y, storage unit p), read oblique check block P (y, p+1) with horizontal check piece P (y, p).
203, (y removes D (i, j) outer other data block during oblique verification is divided into groups under p+1) to read oblique check block P.
Wherein, can be from the respective memory unit of disk array, read oblique check block P (y, p+1) under oblique verification remove D (i, j) outer other data block in dividing into groups.
All data blocks and the check block that 204, will read out carry out XOR, and acquisition D (i, j).
It is understandable that, according to above-mentioned fault-tolerant encoding rule, with above-mentioned all data blocks that read out, oblique check block P (y, p+1) with horizontal check piece P (y p) carries out XOR, its result be data block D (i, j).
205, (i j) writes the corresponding stored unit of disk array with the data block D that obtains.
Further, for ease of better understanding technique scheme, be the D(2 in the matrix M as shown in table 1 with the damage data block below, 1) be example, further illustrate.
At first, confirm the row y of oblique check block in matrix M during oblique verification is divided into groups under the D (2,1), wherein, y=(i+ (p-j)) %p=(2+ (5-1)) %5=1.
Can know by inference according to formula 3: oblique verification divides into groups to comprise under the D (2,1): D (1,0), D (2,1), D (3,2), D (4,3), D (0,4), P (1,5), P (1,6).
Then, from disk array, read in oblique check block P (1,6) and horizontal check piece P (1,5) and this oblique verification grouping except that D (2; 1) other data block outside, other comprises: D (1,0), D (3,2), D (4; 3), wherein, D (0; 4) be the data block of dummy row, directly adopt default value (being generally 0), need not read.
Data block that reads out and check block are carried out XOR together, obtain D (2,1).
Wherein, D ( 2,1 ) = D ( 1,0 ) ⊕ D ( 3,2 ) ⊕ D ( 4,3 ) ⊕ D ( 0,4 ) ⊕ P ( 1,5 ) ⊕ P ( 1,6 ) .
At last the data block D (2,1) that obtains is write the corresponding stored unit of disk array.
Above-mentioned flow process is to utilize oblique check block to recover the flow process of individual data piece, equally, utilizes the horizontal check piece can recover the individual data piece equally, no longer this is given unnecessary details here.
Be appreciated that by that analogy according to the reset mode of above-mentioned individual data piece, can be in disk array during the disk failure of the single-row data block of storage matrix M, the data block of each damage that recovers these row one by one repeats no more here.
Technique scheme is visible; Adopt the disk tolerance coding method of the embodiment of the invention; Single disk (storing the disk of single-row several piece) that can the Rapid Realization disk array is fault-tolerant; Disk fault-tolerant coding methods such as existing RAID6 are compared, and the scheme of the embodiment of the invention need not to carry out the Galois Field conversion, can simplify the computation complexity of fault recovery greatly.
Embodiment two,
Present embodiment is primarily aimed at the recovery flow process of the disk failure of the check block of the oblique check column of storage matrix M in the disk array, and wherein, the oblique check block with damage is that (i p+1) is example to P below.
Referring to Fig. 3, the method that a kind of disk failure of the embodiment of the invention two recovers can comprise:
301, make variable k=0;
302, confirm oblique check block P to be recovered (i, the row m of the element of the k row of matrix M during oblique verification is divided into groups under p+1);
Wherein, definite mode of row m is: m=(i+k) %p.P (i, p+1) under verification divide into groups in the element of k row of matrix M possibly be data block (when the k≤p-1), also possibly be horizontal check piece (when the k=p).
303, from disk array read matrix element C (m, k);
304, calculate the XOR value of all matrix elements that read out;
305, make variable k=k+1;
306, whether judgment variable k is less than or equal to p, if then return step 302; If not, execution in step 307 then.
Wherein, this moment is as variable k during greater than p, explains that horizontal check piece that this oblique verification is divided into groups has all read with all data blocks to finish, and the XOR value that all matrix elements that utilization reads out calculate is oblique check block C (i, value p+1).
307, be that (i p+1), and writes the respective memory unit of disk array with it to C with the XOR value that calculates as oblique check block to be recovered.
Being appreciated that step 304 also can carry out between step 306 and step 307, promptly is to read earlier to belong to oblique check block P (i; P+1) the horizontal check piece P (i that oblique verification is divided into groups under; And then calculate the horizontal check piece P that reads out (i is p) with the XOR value of all data blocks p) and all data blocks; The oblique check block that acquisition is to be recovered be C (i, p+1).
The method that present embodiment also provides a kind of disk failure to recover can comprise:
From disk array read belong to oblique check block P to be recovered (i, (i is p) with all data blocks for the horizontal check piece P that oblique verification is divided into groups under p+1);
(i p) carries out XOR with all data blocks and calculates with the horizontal check piece P that reads out;
(i p+1) writes the respective memory unit of disk array as oblique check block P with result of calculation.
Further, for ease of better understanding technique scheme, be the P(2 in the matrix M as shown in table 1 with the damage data block below, 6) be example, further illustrate.
Can know by inference according to formula 3: oblique verification divides into groups to comprise under the P (2,6): D (2,0), D (3,1), D (4,2), D (0,3), D (1,4), P (2,5), P (2,6).
At first, read from disk array and belong to horizontal check piece P (2,5) and all data blocks that oblique verification is divided into groups under the oblique check block P (2,6) to be recovered; Comprise: D (2,0), D (3,1), D (4; 2), D (1,4), wherein D (0; 3) be the data block of dummy row, directly adopt default value (being generally 0), need not read.
All data blocks and check block that oblique verification under the P (2,6) is divided into groups carry out XOR, acquisition P (2,6), and with P (2,6) write disk array to the corresponding stored unit.
Wherein, P ( 2,6 ) = D ( 2,0 ) ⊕ D ( 3,1 ) ⊕ D ( 4,2 ) ⊕ D ( 0,3 ) ⊕ D ( 1,4 ) ⊕ P ( 2,5 ) .
Above-mentioned flow process is for recovering the flow process of single oblique check block; Be appreciated that; According to the reset mode of above-mentioned single oblique check block by that analogy; Can be in disk array during the disk failure of the oblique check column check block of storage matrix M, each damage check block that recovers these row one by one repeats no more here.
Embodiment three,
Present embodiment is primarily aimed at the recovery flow process of disk failure of check block of the horizontal check row of storage matrix M in the disk array, and wherein, the horizontal check piece with damage is that (i p) is example to P below.
Referring to Fig. 4, the method that a kind of disk failure of the embodiment of the invention three recovers can comprise:
401, from disk array read belong to horizontal check piece P to be recovered (i, p) under all data blocks of horizontal checking group;
All data blocks that 402, will read out are carried out XOR and are calculated;
403, (i p), writes the respective memory unit of disk array as horizontal check piece P to be recovered with result of calculation.
Further, for ease of better understanding technique scheme, be the P(1 in the matrix M as shown in table 1 with damage horizontal check piece below, 5) be example, further illustrate.
Can know by inference according to formula 1: horizontal checking group comprises under the P (1,5): D (1,0), D (1,1), D (1,2), D (1,3), D (1,4), P (1,5).
At first, read from disk array and to belong to all data blocks of horizontal checking group under the horizontal check piece P (1,5) to be recovered, comprising: D (1,0), D (1,1), D (1,2), D (1,3), D (1,4);
All data blocks that read out are carried out XOR, obtain horizontal check piece P (1,5), and P (1,5) is write the respective memory unit of disk array.
Wherein, P ( 1,5 ) = D ( 1,0 ) ⊕ D ( 1,1 ) ⊕ D ( 1,2 ) ⊕ D ( 1,3 ) ⊕ D ( 1,4 ) .
Above-mentioned flow process is for recovering the flow process of single horizontal check piece; Be appreciated that; According to the reset mode of above-mentioned single horizontal check piece by that analogy; Can be in disk array during the disk failure of storage matrix M horizontal check row check block, each damage check block that recovers these row one by one repeats no more here.
Above embodiment one to three is respectively to the recovery of the disk failure of the single-row data block of storage matrix M or check block, specifies the recovery to the disk simultaneous faults of the two column matrix elements of storage matrix M through specific embodiment below.Wherein, two column matrix elements to be recovered can be: a horizontal check piece and a column data piece, oblique check block and a column data piece, two column data pieces or two row check blocks.
Embodiment four,
Present embodiment is primarily aimed in the disk array, the recovery of the disk of the check block of the horizontal check row of storage matrix M and the data block disk simultaneous faults of storage individual data row.Wherein, the j that classifies matrix M as with the data of damage below classifies example as.
Referring to Fig. 5, the method that a kind of disk failure of the embodiment of the invention four recovers can comprise:
501, confirm dummy data block D (0, the row y of oblique check block in matrix M during oblique verification is divided into groups under j);
In practical application, confirm that the mode of row y can be: y=(i+ (p-j)) %p, i=0.
502, read oblique check block P (y, p+1);
503, read oblique check block P in the matrix M (y, p+1) y at place remove on capable D (y, j) in addition other data block, and P (y, p+1) under verification other data block of dividing into groups;
All data blocks that 504, will read and oblique check block P (y p+1) carries out XOR, and acquisition data block D (y, j);
Wherein, the result of above-mentioned XOR be treat data recovered piece D (y, j).
505, (y j) writes the corresponding stored unit of disk array with the data block D that obtains.
506, confirm that (y, the row y of oblique check block in matrix M during oblique verification is divided into groups under j) at this moment, confirm that the mode of row y can be: y=(y+ (p-j)) %p to D.
507, judge that whether the above-mentioned row y that determines is 0, if not, then returns step 502; If then execution in step 508.
Be appreciated that; When judging that the above-mentioned row y that determines is not 0, explain that the j row of matrix M need the data recovered piece in addition, so return the recovery that step 502 is proceeded data block; If 0; The j column data piece that matrix M is described recovers to finish, so get into step 508, further carries out the recovery of the check block of matrix M horizontal check row.
508,, recover the check block of horizontal check row, and the check block that recovers is write the corresponding stored unit of disk array according to the data block of the j row of the matrix M of recovering and the data block of other data rows.
Wherein, after the data block of recovering matrix M j row, can be according to the method among the embodiment three, each check block of recovery matrix M horizontal check row one by one.
It is understandable that above-mentioned flow process is the data block with all damages that recover the j row earlier, the check block that recovers all damages of horizontal check row again is an example; Describe; After can certainly being chosen in the data block of a damage that recovers the j row, utilize this data recovered piece, recovery belongs to the horizontal check piece of the damage of the affiliated horizontal checking group of this data block; By that analogy, the check block of all damages of being listed as of one by one data block and the horizontal check of all damages of recovery j row.
Can find out by technique scheme; Adopt the disk tolerance coding method of the embodiment of the invention; Can realize two disk tolerances (storing the disk of single-row data block and horizontal check piece respectively) of disk array; Disk fault-tolerant coding methods such as existing RAID6 are compared, and the scheme of the embodiment of the invention need not to carry out the Galois Field conversion, can simplify the computation complexity of fault recovery greatly.
Embodiment five,
Present embodiment is primarily aimed in the disk array, the recovery of the disk simultaneous faults of the two column data pieces of storage matrix M.Wherein, the data block with damage is the data block of the m row and the n row of matrix M below, and wherein, m<n is an example.
Referring to Fig. 6-a, the method that a kind of disk failure of the embodiment of the invention five recovers can comprise:
601, obtain corresponding dummy row oblique check block P (0, p+1).
Specifically can be, all check blocks of reading disk array stores, and all check blocks that will read out carry out XOR, obtain corresponding dummy row oblique check block P (0, p+1).
Wherein, The data block and the check block of all non-dummy row of storage matrix M in the disk array; Data block and check block for the matrix M dummy row are not stored, and therefore, all check blocks of the disk array storage that reads out do not comprise the horizontal check piece P (0 of corresponding dummy row; P) and oblique check block P (0, p+1).
Can know by inference according to formula 1 and formula 3: P (0, p+1) equal the XOR value of all check blocks ((p-1) * 2) altogether of the matrix M p row and the non-dummy row of p+1 row, obtain P (0, be to prepare p+1) for follow-up data block recovery.
602, confirm dummy data block D (0, the row y of oblique check block in matrix M during oblique verification is divided into groups under m).
In practical application, confirm that the mode of row y can be:
y=(i+(p-j))%p=(0+(p-m))%p。
603, from disk array read level check block P (y, p), oblique check block P (y, p+1) with should be oblique verification remove D (y, n) outer other data block in dividing into groups.
604, with P (y, p+1), P (y p) carries out XOR with all data blocks of reading, obtain data block D (y, n), and with the D that obtains (y n) writes the respective memory unit of disk array.
Can know by inference by formula 1 and formula 3: with P (y, p+1), P (y, the result who p) carries out XOR with all data blocks that read promptly be D (y, n).
Wherein, step 603 and 604 can be regarded as oblique restore data.
605, (y p) removes D (y, m) outer other data block on capable with y to read check block P.
606, with P (y, p) remove on capable with y D (y, other m) outer data block is carried out XOR, (y, m), and (y m) writes the respective memory unit of disk array will to obtain D to obtain D.
Can know by inference by formula 1: remove on y is capable D (y, m) outer other data block and P (y, the result who p) carries out XOR promptly be D (y, m).
Wherein, step 605 and 606 can be regarded as horizontal restore data.
607, confirm D (y, the row y of the data block of matrix M n row during oblique verification is divided into groups under m).
In practical application, confirm that the mode of row y can be: y=(y+ (n-m)) %p, and then definite D (y, the row y of the data block that matrix M n was listed as during the oblique verification under m) was divided into groups.
For example if D (y, m) be specially D (3, m), then confirm D (3, m) under oblique verification divide into groups in row y=(y+ (n-m)) %p=(3+ (the n-m)) %p of data block of matrix M n row.
608, judge whether the row y that determines is 0, if not, returns step 602, if, then show data recovery completion, but process ends.
Need to prove; This instance is to carry out data block with the starting point that the dummy data block of the less data rows (m row) of sequence number in the 0th row is recovered as data block to recover, and can certainly carry out data block with the starting point that the bigger fault data dish of sequence number (n row) dummy data block is recovered as data block and recover.
Further, for improving the resume speed of damage data block, can also select two dummy data block on the damage data rows to carry out parallel recovery simultaneously.
For ease of better understanding, through concrete instance, this enforcement technique scheme is carried out further detailed description below.
For instance, be example still with the matrix M shown in the table 1, wherein, be that example describes with the disk of storing the 2nd column data piece and the disk simultaneous faults of storing the 3rd column data piece.
When carrying out the data block recovery, the starting point that both can select C (0,2) to recover, the starting point that also can select C (0,3) to recover as data block as data block.Certainly, also can select these two data blocks to carry out the data block parallel recovery simultaneously, thereby improve the data block resume speed.
Be example with the starting point of selecting C (0,2) to recover below, specify rejuvenation for data:
At first, obtain the oblique check block of the 6th corresponding dummy row that lists.
Wherein, acquisition methods can be from disk array read level check block C (1,5), C (2,5), C (3,5) and C (4; 5), oblique check block C (1,6), C (2,6), C (3,6) and C (4; 6), the above-mentioned check block that reads out is carried out XOR, the result is C (0,6) just.
Then, be starting point with C (0,2), utilize the C (3,6) can oblique recover data blocks C (1,3); Utilize the C (1,5) can horizontal recover data blocks C (1,2).
Then, utilize C (1,2) and the oblique recover data blocks C of C (4,6) (2,3); Utilize C (2,3) and the horizontal recover data blocks C of C (2,5) (2,2).
Then, utilize data block C (2,2) and the oblique recover data blocks C of C (0,6) (3,3); Utilize data block C (3,3) and the horizontal recover data blocks C of C (3,5) (3,2).
Then, utilize data block C (3,2) and the oblique recover data blocks C of C (1,6) (4,3); Utilize data block C (4,3) and the horizontal recover data blocks C of C (4,5) (4,2), because the data block C (0,3) of the 3rd row dummy row is always 0, and need not storage, so need not to recover.
So far, all data disks D2 and all data blocks on the data disks D3 are replied and are accomplished.
See also Fig. 6-b, the restoration path of above-mentioned data block can be represented as follows:
C(0,2)→C(1,3)→C(1,2)→C(2,3)→C(2,2)
→C(3,3)→C(3,2)→C(4,3)→C(4,2)→C(0,3)
The recovery of above-mentioned data block; Be that data block from dummy row begins to utilize check block on the oblique check column to carry out data block to recover; The check block that is used alternatingly then on horizontal check row and the oblique check column carries out the data block recovery, till all data blocks are all recovered.
Above-mentioned is that being listed as the data rows of decreasing adjacent with two is that example describes for example, and the data block under the non-conterminous situation of data rows that two row decrease recovers also similar.
Can find out by technique scheme; Adopt the disk tolerance coding method of the embodiment of the invention; The two disks (storing the disk of two column data pieces respectively) that can realize disk array are fault-tolerant; Disk fault-tolerant coding methods such as existing RAID6 are compared, and the scheme of the embodiment of the invention need not to carry out the Galois Field conversion, can simplify the computation complexity of fault recovery greatly.
Embodiment six,
Present embodiment is primarily aimed in the disk array, the recovery of the disk of the check block of the oblique check column of storage matrix M and the disk simultaneous faults of the data block of storage individual data row.Wherein, the j that classifies matrix M as with the data of damage below classifies example as.
Referring to Fig. 7, the method that a kind of disk failure of the embodiment of the invention six recovers can comprise:
701, make variable y=1;
702, from disk array read P (y, p), and capable D (y, j) outer other data block removed of k.
703, with the P that reads out (y, p) with y capable remove D (y, other j) outer data block is carried out XOR, obtain D (y, j);
704, (y j) writes the respective memory unit of disk array with the D that obtains.
705, make variable y=y+1, even variable y is from adding 1;
706, whether judge y greater than p-1, if not, then return step 702; If, execution in step 707.
Be appreciated that; When judging that the above-mentioned y that determines is not 0, explain that the j row of matrix M need the data recovered piece in addition, so return the recovery that step 702 is proceeded data block; If 0; The j column data piece that matrix M is described recovers to finish, so execution in step 707 is further carried out the recovery of the check block of the oblique check column of matrix M.
707, according to the data block of each data rows of matrix M and the check block of horizontal check row, recover the oblique check block of oblique check column, and the oblique check block that will recover writes the corresponding stored unit of disk array.
Wherein, after the data block of recovering matrix M j row, can be according to the method among the embodiment two, each check block of the oblique check column of recovery matrix M one by one.
It is understandable that above-mentioned flow process is that the check block that recovers all damages of oblique check column again is an example with the data block of all damages that recover the j row earlier; Describe; After can certainly being chosen in the data block of a damage that recovers the j row, utilize this data recovered piece, recover to belong to the oblique check block of the damage that oblique verification is divided into groups under this data block; By that analogy, one by one the check block of all damages of data block and oblique check column of all damages of recovery j row.
Visible by technique scheme; Adopt the disk tolerance coding method of the embodiment of the invention; The two disks (storing the disk of single-row data block and oblique check block respectively) that can realize disk array are fault-tolerant; Disk fault-tolerant coding methods such as existing RAID6 are compared, and the scheme of the embodiment of the invention need not to carry out the Galois Field conversion, can simplify the computation complexity of fault recovery greatly.
Embodiment seven,
Present embodiment is directed against in the disk array, the recovery of the disk of the check block of the oblique check column of storage matrix M and the disk simultaneous faults of the check block of the horizontal check column of storage.
At first, can recover each check block of horizontal check row earlier according to the method among the embodiment two;
Then, recover each check block of oblique check column according to the method among the embodiment three.
Certainly; After also can being chosen in the horizontal check piece that recovers a damage; Utilize the horizontal check piece of this recovery, recover the oblique check block that oblique verification is divided into groups under this horizontal check piece that belongs to of damage, by that analogy; The horizontal check piece of all damages of recovery one by one and oblique check block, its concrete rejuvenation repeats no more here.
Further, the embodiment of the invention also provides a kind of data block update method based on above-mentioned fault-tolerant coding method, can comprise:
Read the former oblique check block that oblique verification is divided into groups under former horizontal check piece and this former data block of horizontal checking group under former data block to be updated, this former data block from disk array;
Above-mentioned former horizontal check piece, above-mentioned former data block and corresponding new data block are carried out XOR, obtain the new height check block;
Above-mentioned former oblique check block, above-mentioned former data block and corresponding new data block are carried out XOR, obtain new oblique check block; Perhaps above-mentioned former oblique check block, above-mentioned former horizontal check piece and above-mentioned new height check block are carried out XOR, obtain new oblique check block;
Utilize new data block, new height check block, new oblique check block to upgrade former data block, former horizontal check piece and former oblique check block.
Embodiment eight,
Present embodiment is primarily aimed in the disk array, the method for the piece that Updates Information, wherein, below to utilize new data block D (i, the former data block D that j) upgrades 0(i j) is example.
Referring to Fig. 8, a kind of data block method for updating of the embodiment of the invention eight can comprise:
801, obtain and judge the new data block D for preparing to write (i, j) whether the row in matrix M number and row number equate, if equate that then execution in step 802; If unequal, then execution in step 807.
802, read former data block D from disk array 0(i, j);
Wherein, former data block D 0(i j) also can be described as data block D to be updated 0(i, j).
803, read former check block P from disk array 0(i, p) and P 0(i, p+1);
804, utilize D 0(i, j), P 0(i, p) and D (i, j) obtain new check block P (i, p);
Wherein, new height check block P ( i , p ) = D 0 ( i , j ) ⊕ P 0 ( i , p ) ⊕ D ( i , j ) .
805, utilize P (i, p), P 0(i, p+1) and P 0(i, p) obtain new check block P (i, p+1);
Wherein, new oblique check block P ( i , p + 1 ) = P ( i , p ) ⊕ P 0 ( i , p + 1 ) ⊕ P 0 ( i , p ) ;
806, with new data block D (i, j), new check block P (i, p) and P (i p+1) writes the corresponding stored unit of disk array;
So far, the data block renewal process under the i=j situation finishes.
807, read former data block D from disk array 0(i is j) with former check block P 0(i, p);
808, confirm D 0(i j) belongs to the row y of the oblique verification former oblique check block in dividing into groups;
Wherein, confirm that formula can be y=(i+ (p-j)) %p;
809, read former check block P from disk array 0(y, p+1);
810, utilize D 0(i, j), P 0(i, p) and D (i, j) obtain new check block P (i, p).
Wherein, P ( i , p ) = D 0 ( i , j ) ⊕ P 0 ( i , p ) ⊕ D ( i , j ) .
811, utilize D 0(i, j), P 0(y, p+1) and D (i, j) obtain new check block P (y, p+1).
Wherein, P ( y , p + 1 ) = D 0 ( i , j ) ⊕ P 0 ( y , p + 1 ) ⊕ D ( i , j ) .
812, with new data block D (i, j), new check block P (i, p) and P (y p+1) writes the corresponding stored unit of disk array.
So far, the data block renewal process under i ≠ j situation finishes.
For ease of better understanding, through concrete instance, this enforcement technique scheme is carried out further detailed description below.
Situation 1, i=j:
For instance, be example still with the matrix M shown in the table 1, wherein, be D (2,2) with the new data block of obtaining, former data block is D 0(2,2) describe for example.
At first, judge 2=2, therefore read former data block D from disk array 0(2,2), former horizontal check piece P 0(2,5) and former oblique check block P 0(2,6);
Then, utilize D 0(2,2), P 0(2,5) and D (3,2) obtain new height check block P (2,5), wherein, and the new height check block P ( 2,5 ) = D 0 ( 2,2 ) ⊕ P 0 ( 2,5 ) ⊕ D ( 2,2 ) ;
Utilize P (2,5), P 0(2,5) and P 0(2,6) obtain new oblique check block P (2,6), wherein, and new oblique check block P ( 2,6 ) = P ( 2,5 ) ⊕ P 0 ( 2,5 ) ⊕ P 0 ( 2,6 ) .
At last, the corresponding stored unit with new data block D (3,2), new check block P (3,5) and P (1,6) write disk array upgrades and finishes.
Situation 2, i ≠ j:
For instance, be example still with the matrix M shown in the table 1, wherein, be D (3,2) with the new data block of obtaining, former data block is D 0(3,2) describe for example.
At first, judge 3 ≠ 2, therefore read former data block D from disk array 0(3,2) and former check block P 0(3,5); And definite D 0(3,2) belong to the row y of the former oblique check block in the oblique verification grouping, y=(i+ (p-j)) %p=(3+ (5-2)) %5=1;
Then, read former oblique check block P from disk array 0(1,6) utilizes D 0(3,2), P 0(3,5) and D (3,2) obtain new height check block P (3,5), wherein, and the new height check block P ( 3,5 ) = D 0 ( 3,2 ) ⊕ P 0 ( 3,5 ) ⊕ D ( 3,2 ) ;
Utilize D 0(3,2), P 0(3,5) and D (3,2) obtain new oblique check block P (1,6), wherein, and new oblique check block P ( 1,6 ) = D 0 ( 3,2 ) ⊕ P 0 ( 1,6 ) ⊕ D ( 3,2 ) .
At last, the corresponding stored unit with new data block D (3,2), new check block P (3,5) and P (1,6) write disk array upgrades and finishes.
Be appreciated that aforesaid way is suitable for the more new situation of a plurality of data blocks too, for example can the renewal of a plurality of data blocks be decomposed into and repeatedly upgrade the individual data piece, when carrying out the renewal of a plurality of data blocks, can carry out, repeat no more here with reference to aforesaid way.
Optional, also can select directly to upgrade earlier former data block, read out other data block of horizontal checking group that new data block belongs to then, utilize formula 1 to obtain the corresponding horizontal check block; Read out this new data block and belong to other data block and the horizontal check piece that oblique verification is divided into groups, utilize formula 3 to obtain corresponding oblique check block.
Visible by technique scheme, adopt the disk tolerance coding method of the embodiment of the invention, need not to carry out the Galois Field conversion, can realize that lower data block upgrades cost, data block reads that to write indegree few.
Mostly be with two disk tolerances to be that example describes in the above embodiment of the present invention; If need to realize the fault-tolerant of 3 above disks; The fault-tolerant coding method that can use the embodiment of the invention to provide passes through to increase the check column of matrix M, realizes that the damage data block of more disks is recovered.
In addition; A disk in the embodiment of the invention also can be regarded as storage area network (SAN; Storage Area Network) memory node in; The system and method that is about to the multi-disk fault-tolerant in the embodiment of the invention is applied in the SAN technology, and the fault-tolerant encoding and the restoration methods of data block are same as the previously described embodiments.In addition; Fault-tolerant for distributed memory system; With the single disk in the embodiment of the invention as a network node in the distributed memory system; Then can be with being applied in the above embodiment of the present invention in the distributed memory system, the fault-tolerant encoding and the restoration methods of its data block are same as the previously described embodiments.
For ease of the technical scheme of the better implement embodiment of the invention, a kind of fault-tolerant processing device is provided also in the embodiment of the invention.
Embodiment nine,
Referring to Fig. 9-a, a kind of fault-tolerant processing device 900 of the embodiment of the invention nine can comprise: first read module 910, first computing module 920, second read module 930, second computing module 940 and first writing module 950.
First read module 910 is used for p data block of first horizontal checking group of reading disk array stores, and wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, and p is a positive integer;
First computing module 920 is used for carrying out XOR through p data block of first horizontal checking group that will read, and obtains the above-mentioned first horizontal check piece.
Under a kind of application scenarios, first computing module 920 utilizes formula 1 to obtain the first horizontal check piece.
Second read module 930 is used for p the data block that the first oblique verification of reading disk array stores is divided into groups, and wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block.
Second computing module 940 is used for obtaining the above-mentioned first oblique check block through the first horizontal check piece and p the data block that the first oblique verification of reading is divided into groups are carried out XOR.
Under a kind of application scenarios, second computing module 940 utilizes formula 2 to obtain the first horizontal check piece.
First writing module 950 is used for the corresponding stored unit that the first horizontal check piece that obtains and the first oblique check block are write disk array.
Under a kind of application scenarios, first read module 910 can comprise:
First obtains submodule, and p the data block correspondence that is used for obtaining first horizontal checking group be at the row of fault-tolerant encoding matrix M number and row number, wherein, and the p of first horizontal checking group data block C I, kRow number be i, the value of row k is respectively 0 to p-1 p integer;
First reading submodule is used for the corresponding relation according to the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, reads p data block of first horizontal checking group from the corresponding stored unit of disk array.
Second read module 930 can comprise:
Second obtains submodule, and p the data block correspondence that is used to obtain the first oblique verification grouping is in fault-tolerant volume
The row of sign indicating number in the matrix M number and row number, wherein, p the data block that the first oblique verification is divided into groups
Figure G2009102226887D00241
The value of row k be respectively 0 to p-1 p integer, capable number is (i+nk) p, coefficient of rotary n can be positive integer or negative integer;
Second reading submodule is used for the corresponding relation according to the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, reads p the data block that the first oblique verification is divided into groups from the corresponding stored unit of disk array.
Under a kind of application scenarios, coefficient of rotary n is 1.
Referring to Fig. 9-b, under a kind of application scenarios, fault-tolerant processing device 900 also can comprise:
Determination module 960; Be used for based on the first data block correspondence to be recovered at the row of fault-tolerant encoding matrix M number and row number; Confirm oblique verification is divided into groups under first data block oblique check block, horizontal check piece and the row of other data block correspondence in the fault-tolerant encoding matrix M number and row number, this fault-tolerant encoding matrix M comprises p row data block and two row check blocks;
Third reading delivery piece 970; Be used for corresponding relation, read oblique check block, horizontal check piece and other data block that oblique verification is divided into groups under first data block from the corresponding stored unit of disk array based on the memory cell of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array;
The 3rd arithmetic element 980, the data block and the check block that are used for third reading delivery piece 970 is read out carry out XOR, obtain first data block;
Second writing module 990 is used for first data block that the 3rd arithmetic element 980 obtains is write the corresponding stored unit of disk array.
Referring to Fig. 9-c, under a kind of application scenarios, fault-tolerant processing device 900 also can comprise:
The 4th read module 9010 is used for reading the former oblique check block that oblique verification is divided into groups under former horizontal check piece and this former data block of horizontal checking group under former data block to be updated, this former data block from disk array;
The 4th arithmetic element 9020 is used for the former horizontal check piece that the 4th read module 9010 is read, former data block and corresponding new data block and carries out XOR, obtains the new height check block;
The 5th arithmetic element 9030 is used for the former oblique check block that the 4th read module 9010 is read, former data block and corresponding new data block and carries out XOR, obtains new oblique check block; The former oblique check block and the former horizontal check piece that perhaps above-mentioned new height check block and the 4th read module are read carry out XOR, obtain new oblique check block;
Update module 9040 is used to utilize new data block, new height check block, new oblique check block to upgrade former data block, former horizontal check piece and former oblique check block.
Yes be appreciated that the function of fault-tolerant processing device 900 each functional modules of present embodiment can specifically realize that its concrete implementation procedure can repeat no more with reference to the associated description in the foregoing description according to the method among the said method embodiment here.
For ease of the technical scheme of the better implement embodiment of the invention, a kind of data block recovery device is provided also in the embodiment of the invention.
Embodiment ten,
Referring to Figure 10, a kind of data block recovery device 1000 of the embodiment of the invention ten can comprise: determination module 1010, read module 1020, computing module 1030 and writing module 1040.
Wherein, Determination module 1010; Be used for according to the first data block correspondence to be recovered at the row of fault-tolerant encoding matrix M number and row number; Confirm oblique verification is divided into groups under first data block oblique check block, horizontal check piece and the row of other data block correspondence in the fault-tolerant encoding matrix M number and row number, above-mentioned fault-tolerant encoding matrix M comprises p column data piece and two row check blocks;
Read module 1020; Be used for corresponding relation, read oblique check block, horizontal check piece and other data block that oblique verification is divided into groups under first data block from the corresponding stored unit of disk array according to the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array;
Computing module 1030, the data block and the check block that are used for read module 1020 is read out carry out XOR, obtain first data block;
Writing module 1040 is used for first data block that computing module 1030 obtains is write the corresponding stored unit of disk array.
Yes be appreciated that the function of data block recovery device 1000 each functional modules of present embodiment can specifically realize that its concrete implementation procedure can repeat no more with reference to the associated description in the foregoing description according to the method among the said method embodiment here.
For ease of the technical scheme of the better implement embodiment of the invention, a kind of data block updating device is provided also in the embodiment of the invention.
Embodiment 11,
Referring to Figure 11, a kind of data block updating device 1100 of the embodiment of the invention 11 can comprise: acquisition module 1110, read module 1120, first computing module 1130, second computing module 1140 and update module 1150.
Wherein, acquisition module 1110 is used to obtain new data block.
Read module 1120 is used for reading from disk array the former horizontal check piece of horizontal checking group under former data block to be updated, this former data block, the former oblique check block that oblique verification is divided into groups under this former data block.
First computing module 1130 is used for above-mentioned former horizontal check piece, above-mentioned former data block and corresponding new data block are carried out XOR, obtains the new height check block.
Second computing module 1140 is used for above-mentioned former oblique check block, above-mentioned former data block and corresponding new data block are carried out XOR, obtains new oblique check block; Perhaps above-mentioned former oblique check block, above-mentioned former horizontal check piece and above-mentioned new height check block are carried out XOR, obtain new oblique check block.
Update module 1150 is used to utilize above-mentioned new data block, new height check block, new oblique check block to upgrade above-mentioned former data block, former horizontal check piece and former oblique check block.
Yes be appreciated that the function of data block updating device 1100 each functional modules of present embodiment can specifically realize that its concrete implementation procedure can repeat no more with reference to the associated description in the foregoing description according to the method among the said method embodiment here.
For ease of the technical scheme of the better implement embodiment of the invention, a kind of data block updating device is provided also in the embodiment of the invention.
Embodiment 12,
Referring to Figure 12, a kind of tolerant system of the embodiment of the invention 12 can comprise: redundant array of inexpensive disks 1 210 and fault-tolerant processing device 1220.
Wherein, fault-tolerant processing device 1220 is used for p data block of first horizontal checking group of reading disk array 1210 storage, and wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, and p is a positive integer; Wherein, carry out XOR through p data block of first horizontal checking group that will read and obtain the above-mentioned first horizontal check piece; P the data block that the first oblique verification of reading disk array 1210 storages is divided into groups, wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block; Wherein, carry out XOR through p the data block that the first horizontal check piece and the first oblique verification of reading are divided into groups and obtain the above-mentioned first oblique check block; The corresponding stored unit that the first horizontal check piece that obtains and the first oblique check block are write redundant array of inexpensive disks 1 210.
Under a kind of application scenarios, fault-tolerant processing device 1220 can obtain the first horizontal check piece based on formula 1, obtains the first oblique check block based on formula 2.
Yes be appreciated that; Present embodiment fault-tolerant processing device 1220 can comprise like the fault-tolerant processing device 900 among the embodiment nine; The function of each entity of tolerant system can specifically realize according to the method among the said method embodiment; Its concrete implementation procedure can repeat no more with reference to the associated description in the foregoing description here.
Need to prove; For aforesaid each method embodiment, for simple description, so it all is expressed as a series of combination of actions; But those skilled in the art should know; The present invention does not receive the restriction of described sequence of movement, because according to the present invention, some step can adopt other orders or carry out simultaneously.Secondly, those skilled in the art also should know, the embodiment described in the instructions all belongs to preferred embodiment, and related action and module might not be that the present invention is necessary.
In the above-described embodiments, the description of each embodiment is all emphasized particularly on different fields, do not have the part that details among certain embodiment, can be referring to the associated description of other embodiment.
To sum up; In the embodiment of the invention; Through data block being carried out horizontal fault-tolerant encoding and oblique fault-tolerant encoding, can realize two disk tolerances of disk array, disk fault-tolerant coding methods such as existing RAID6 are compared; Need not to carry out the Galois Field conversion in the embodiment of the invention, can simplify the computation complexity of fault-tolerant encoding and fault recovery greatly; And have very low data block and upgrade cost.
One of ordinary skill in the art will appreciate that all or part of step in the whole bag of tricks of the foregoing description is to instruct relevant hardware to accomplish through program; This program can be stored in the computer-readable recording medium; This program can comprise the flow process like the embodiment of above-mentioned each side method when carrying out.Wherein, storage medium can be magnetic disc, CD, read-only storage memory body (Read-Only Memory, ROM) or at random store memory body (Random Access Memory, RAM) etc.
More than disk array fault-tolerance processing method that the embodiment of the invention provided and device and tolerant system are described in detail; Used specific case herein principle of the present invention and embodiment are set forth, the explanation of above embodiment just is used for helping to understand method of the present invention and core concept thereof; Simultaneously, for one of ordinary skill in the art, according to thought of the present invention, the part that all can change in specific embodiments and applications, to sum up, this description should not be construed as limitation of the present invention.

Claims (8)

1. a disk array fault-tolerance processing method is characterized in that, comprising:
P data block of first horizontal checking group of reading disk array stores, wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, p is a positive integer;
Wherein, carry out XOR through p data block of first horizontal checking group that will read and obtain the said first horizontal check piece;
P the data block that the first oblique verification of reading disk array stores is divided into groups, wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block;
Wherein, carry out XOR through p the data block that the first horizontal check piece and the first oblique verification of reading are divided into groups and obtain the said first oblique check block;
The corresponding stored unit that the said first horizontal check piece that obtains and the first oblique check block are write disk array;
Wherein, p data block of first horizontal checking group of said reading disk array stores comprises:
The row of p data block correspondence in the fault-tolerant encoding matrix M number that obtains first horizontal checking group and row number, wherein, the p of first horizontal checking group data block C I, kRow number be i, data block C I, kThe value of row k be respectively 0 to p-1 p integer;
According to the corresponding relation of the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, read p data block of first horizontal checking group from the corresponding stored unit of disk array;
P the data block that the first oblique verification of said reading disk array stores is divided into groups comprises:
Obtain the row of p data block correspondence in the fault-tolerant encoding matrix M that the first oblique verification divides into groups number and row number, wherein, p data block of the first oblique verification grouping
Figure FDA00001723851700011
The value of row k be respectively 0 to p-1 p integer, data block
Figure FDA00001723851700012
Row number be (i+nk) p, coefficient of rotary n is positive integer or negative integer;
According to the corresponding relation of the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, read p the data block that the first oblique verification is divided into groups from the corresponding stored unit of disk array.
2. method according to claim 1 is characterized in that, said coefficient of rotary n value is 1.
3. according to each described method of claim 1 to 2, it is characterized in that said method also comprises:
According to the row of the first data block correspondence in the fault-tolerant encoding matrix M to be recovered number and row number; Confirm oblique verification is divided into groups under first data block oblique check block, horizontal check piece and the row of other data block correspondence in the fault-tolerant encoding matrix M number and row number, said fault-tolerant encoding matrix M comprises p column data piece and two row check blocks;
According to the corresponding relation of the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, read oblique check block, horizontal check piece and other data block that oblique verification is divided into groups under first data block from the corresponding stored unit of disk array;
Data block that reads out and check block are carried out XOR, obtain first data block;
First data block that obtains is write the corresponding stored unit of disk array.
4. according to each described method of claim 1 to 2, it is characterized in that said method also comprises:
Read the former oblique check block that oblique verification is divided into groups under former horizontal check piece and this former data block of horizontal checking group under former data block to be updated, this former data block from disk array;
Said former horizontal check piece, said former data block and corresponding new data block are carried out XOR, obtain the new height check block;
Said former oblique check block, said former data block and corresponding new data block are carried out XOR, obtain new oblique check block; Perhaps said former oblique check block, said former horizontal check piece and said new height check block are carried out XOR, obtain new oblique check block;
Utilize new data block, new height check block, new oblique check block to upgrade former data block, former horizontal check piece and former oblique check block.
5. a fault-tolerant processing device is characterized in that, comprising:
First read module is used for p data block of first horizontal checking group of reading disk array stores, and wherein, first horizontal checking group comprises: the first horizontal check piece and p data block, and p is a positive integer;
First computing module is used for carrying out XOR through p data block of first horizontal checking group that will read, and obtains the said first horizontal check piece;
Second read module is used for p the data block that the first oblique verification of reading disk array stores is divided into groups, and wherein, the first oblique verification grouping comprises the first horizontal check piece, the first oblique check block and p data block;
Second computing module is used for obtaining the said first oblique check block through the first horizontal check piece and p the data block that the first oblique verification of reading is divided into groups are carried out XOR;
First writing module is used for the corresponding stored unit that the said first horizontal check piece that obtains and the first oblique check block are write disk array;
Wherein, first read module comprises:
First obtains submodule, and p the data block correspondence that is used for obtaining first horizontal checking group be at the row of fault-tolerant encoding matrix M number and row number, wherein, and the p of first horizontal checking group data block C I, kRow number be i, data block C I, kThe value of row k be respectively 0 to p-1 p integer;
First reading submodule is used for the corresponding relation according to the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, reads p data block of first horizontal checking group from the corresponding stored unit of disk array;
Second read module comprises:
Second obtains submodule, is used for obtaining p data block correspondence that the first oblique verification divides into groups at the row of fault-tolerant encoding matrix M number and row number, wherein, and p data block of the first oblique verification grouping
Figure FDA00001723851700031
The value of row k be respectively 0 to p-1 p integer, data block
Figure FDA00001723851700032
Row number be (i+nk) p, coefficient of rotary n is positive integer or negative integer;
Second reading submodule is used for the corresponding relation according to the storage unit of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array, reads p the data block that the first oblique verification is divided into groups from the corresponding stored unit of disk array.
6. device according to claim 5 is characterized in that, said device also comprises:
Determination module; Be used for based on the first data block correspondence to be recovered at the row of fault-tolerant encoding matrix M number and row number; Confirm oblique verification is divided into groups under first data block oblique check block, horizontal check piece and the row of other data block correspondence in the fault-tolerant encoding matrix M number and row number, said fault-tolerant encoding matrix M comprises p row data block and two row check blocks;
Third reading delivery piece; Be used for corresponding relation, read oblique check block, horizontal check piece and other data block that oblique verification is divided into groups under first data block from the corresponding stored unit of disk array based on the memory cell of the matrix element of each ranks of fault-tolerant encoding matrix M and disk array;
The 3rd arithmetic element, the data block and the check block that are used for third reading delivery piece is read out carry out XOR, obtain first data block;
Second writing module is used for first data block that the 3rd arithmetic element obtains is write the corresponding stored unit of disk array.
7. device according to claim 5 is characterized in that, said device also comprises:
The 4th read module is used for reading the former oblique check block that oblique verification is divided into groups under former horizontal check piece and this former data block of horizontal checking group under former data block to be updated, this former data block from disk array;
The 4th arithmetic element is used for the former horizontal check piece that the 4th read module is read, former data block and corresponding new data block and carries out XOR, obtains the new height check block;
The 5th arithmetic element is used for the former oblique check block that the 4th read module is read, former data block and corresponding new data block and carries out XOR, obtains new oblique check block; The former oblique check block and the former horizontal check piece that perhaps said new height check block and the 4th read module are read carry out XOR, obtain new oblique check block;
Update module is used to utilize new data block, new height check block, new oblique check block to upgrade former data block, former horizontal check piece and former oblique check block.
8. device according to claim 6 is characterized in that, said device also comprises:
The 4th read module is used for reading the former oblique check block that oblique verification is divided into groups under former horizontal check piece and this former data block of horizontal checking group under former data block to be updated, this former data block from disk array;
The 4th arithmetic element is used for the former horizontal check piece that the 4th read module is read, former data block and corresponding new data block and carries out XOR, obtains the new height check block;
The 5th arithmetic element is used for the former oblique check block that the 4th read module is read, former data block and corresponding new data block and carries out XOR, obtains new oblique check block; The former oblique check block and the former horizontal check piece that perhaps said new height check block and the 4th read module are read carry out XOR, obtain new oblique check block;
Update module is used to utilize new data block, new height check block, new oblique check block to upgrade former data block, former horizontal check piece and former oblique check block.
CN200910222688A 2009-11-30 2009-11-30 Fault-tolerant processing method and device of disk array and fault-tolerant system Active CN101719086B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910222688A CN101719086B (en) 2009-11-30 2009-11-30 Fault-tolerant processing method and device of disk array and fault-tolerant system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910222688A CN101719086B (en) 2009-11-30 2009-11-30 Fault-tolerant processing method and device of disk array and fault-tolerant system

Publications (2)

Publication Number Publication Date
CN101719086A CN101719086A (en) 2010-06-02
CN101719086B true CN101719086B (en) 2012-10-03

Family

ID=42433664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910222688A Active CN101719086B (en) 2009-11-30 2009-11-30 Fault-tolerant processing method and device of disk array and fault-tolerant system

Country Status (1)

Country Link
CN (1) CN101719086B (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043685A (en) * 2010-12-31 2011-05-04 成都市华为赛门铁克科技有限公司 RAID (redundant array of independent disk) system and data recovery method thereof
CN102521067B (en) * 2011-12-01 2013-07-24 华中科技大学 (RAID)-6 code with optimized partial strip writing performance and method for reconstructing RAID-6 code
CN103259856A (en) * 2013-04-27 2013-08-21 华为技术有限公司 Method, device and system for data processing
CN103744750B (en) * 2014-01-13 2017-02-15 杭州华为数字技术有限公司 Method and device for recovering data
CN103942115B (en) * 2014-04-22 2016-09-14 湖南大学 A kind of data storage fault-tolerant coding method of NAND flash memory system
CN104156283B (en) * 2014-08-27 2017-08-25 华为技术有限公司 Data reconstruction method, device and storage system
CN104615380B (en) * 2015-01-13 2017-07-28 浪潮电子信息产业股份有限公司 A kind of disk array construction method based on block encoding
CN104809035B (en) * 2015-05-05 2017-07-28 中国科学技术大学 The storage system construction method that a kind of quick single-deck of energy is repaired
CN104866386B (en) * 2015-05-31 2018-04-27 上海交通大学 Encoding and decoding method with optimal renewal cost
CN108628697B (en) * 2017-12-15 2021-05-04 深圳大学 Binary-based node repairing method and system
CN108170555B (en) * 2017-12-21 2021-07-20 浙江大华技术股份有限公司 Data recovery method and equipment
CN110618895B (en) * 2019-09-29 2023-06-09 北京天融信网络安全技术有限公司 Data updating method and device based on erasure codes and storage medium
CN111930552A (en) * 2020-06-17 2020-11-13 深圳佰维存储科技股份有限公司 Bad block data recovery method and device, storage medium and electronic equipment
CN113296999B (en) * 2021-05-20 2022-11-11 山东云海国创云计算装备产业创新中心有限公司 RAID6 coding method and coding circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271012A (en) * 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US6158017A (en) * 1997-07-15 2000-12-05 Samsung Electronics Co., Ltd. Method for storing parity and rebuilding data contents of failed disks in an external storage subsystem and apparatus thereof
CN1692335A (en) * 2002-11-01 2005-11-02 国际商业机器公司 Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271012A (en) * 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US6158017A (en) * 1997-07-15 2000-12-05 Samsung Electronics Co., Ltd. Method for storing parity and rebuilding data contents of failed disks in an external storage subsystem and apparatus thereof
CN1692335A (en) * 2002-11-01 2005-11-02 国际商业机器公司 Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array

Also Published As

Publication number Publication date
CN101719086A (en) 2010-06-02

Similar Documents

Publication Publication Date Title
CN101719086B (en) Fault-tolerant processing method and device of disk array and fault-tolerant system
CN101625652B (en) Multi-disk fault-tolerant system and methods for generating check block and recovering data block
Huang et al. Pyramid codes: Flexible schemes to trade space for access efficiency in reliable data storage systems
US7321905B2 (en) System and method for efficient data recovery in a storage array utilizing multiple parity slopes
CN101059751B (en) Method and system for increasing parallelism of disk accesses when restoring data in a disk array system
US6557123B1 (en) Data redundancy methods and apparatus
US7934120B2 (en) Storing data redundantly
Hafner et al. Matrix Methods for Lost Data Reconstruction in Erasure Codes.
CN100570573C (en) The disk tolerance method of extensive disk array storage system
Baek et al. Reliability and performance of hierarchical RAID with multiple controllers
CN101236517B (en) Raid system and data recovery apparatus using galois field
US20140310571A1 (en) Local Erasure Codes for Data Storage
CN101504623B (en) Independent disk redundancy array construction method and device
CN102043685A (en) RAID (redundant array of independent disk) system and data recovery method thereof
CN101546249A (en) On-line capacity expansion method for disk arrays
US7870464B2 (en) System and method for recovery of data for a lost sector in a storage system
US7519629B2 (en) System and method for tolerating multiple storage device failures in a storage system with constrained parity in-degree
CN109358980B (en) RAID6 encoding method friendly to data updating and single-disk error recovery
Huang et al. On optimizing XOR-based codes for fault-tolerant storage applications
CN104516679A (en) RAID (Redundant Array Of Independent Disk) data processing method and device
Ivanichkina et al. Mathematical methods and models of improving data storage reliability including those based on finite field theory
CN100470489C (en) A method for processing data multiplication in a disk array and its controller
Li et al. Tier-code: An XOR-based RAID-6 code with improved write and degraded-mode read performance
CN103809919A (en) Efficient and multi-fault-tolerant code quick recovery method and validation matrix generating method thereof
US20070006019A1 (en) Data storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Wang Yulin

Inventor after: Yao Jianye

Inventor before: Yao Jianye

Inventor before: Wang Yulin

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: YAO JIANYE WANG YULIN TO: WANG YULIN YAO JIANYE

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Patentee after: University of Electronic Science and Technology of China

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

Patentee before: University of Electronic Science and Technology of China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221111

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Patentee after: University of Electronic Science and Technology of China

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Patentee before: University of Electronic Science and Technology of China