CN114416424A - RAID encoding and decoding method, device, equipment and readable storage medium - Google Patents
RAID encoding and decoding method, device, equipment and readable storage medium Download PDFInfo
- Publication number
- CN114416424A CN114416424A CN202210321311.2A CN202210321311A CN114416424A CN 114416424 A CN114416424 A CN 114416424A CN 202210321311 A CN202210321311 A CN 202210321311A CN 114416424 A CN114416424 A CN 114416424A
- Authority
- CN
- China
- Prior art keywords
- array
- unknown data
- parameter values
- new
- data blocks
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 239000000126 substance Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 2
- 238000012937 correction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013506 data mapping Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
The application discloses a RAID coding and decoding method, a device, equipment and a readable storage medium in the technical field of computers. According to the method, firstly, a target set comprising n mutually-unequal numerical values, and a first preset value and a second preset value which are mutually unequal are set as parameters, and then a ternary one-time encoding/decoding equation set is constructed in a Galois field to solve 3 unknowns. The set n values are different from each other, and the first preset value and the second preset value are different from each other, so that the situation that the solution cannot be solved can be avoided, and the method is suitable for large-strip coding and decoding. Because the division in the Galois field can not generate decimal, the situation of incomplete division can be avoided, and the coding and decoding precision is improved. The scheme can solve 3 unknowns, and the fault tolerance rate is higher than that of RAID5 and RAID 6. Accordingly, the RAID coding and decoding device, the apparatus and the readable storage medium provided by the present application also have the technical effects described above.
Description
Technical Field
The present application relates to the field of computer technologies, and in particular, to a RAID encoding and decoding method, apparatus, device, and readable storage medium.
Background
Currently, a large-capacity disk group called a disk array (RAID) can be formed by using a plurality of Disks. Accordingly, techniques such as RAID 0, RAID 1, RAID5, RAID6, etc. are derived, and RAID5 and RAID6 are currently commonly used.
RAID5 may allow up to 1 data block error on a stripe and RAID6 may allow up to 2 data block errors on a stripe. In the RAID6 codec scheme, division operation is required, so that a situation of incomplete division may occur, where the incomplete division may affect encoding accuracy, which is specifically represented as: unless a certain length of decimal place needs to be reserved, then this necessarily results in: the retained data is deviated from the actual data, and thus there is an error in accuracy. Also, when the stripe is large, the coefficients in the equations of different data blocks may be the same, and an unsolvable situation may occur.
Therefore, how to improve the RAID coding and decoding accuracy and avoid the situation that the solution cannot be performed is a problem to be solved by those skilled in the art.
Disclosure of Invention
In view of this, an object of the present application is to provide a RAID encoding and decoding method, apparatus, device and readable storage medium, so as to improve RAID encoding and decoding accuracy and avoid the situation that the solution cannot be obtained. The specific scheme is as follows:
in a first aspect, the present application provides a RAID coding and decoding method, including:
acquiring any one stripe needing encoding/decoding in the RAID, and determining a target set; the target set includes: n different values, wherein n is the number of disks corresponding to the strip;
determining a first preset value and a second preset value which are not equal to each other;
if the strip comprises 3 unknown data blocks, constructing a ternary one-time coding/decoding equation set in a Galois field by using all known data blocks, the 3 unknown data blocks, the target set, the first preset value and the second preset value which are comprised by the strip;
aiming at the ternary one-time coding/decoding equation set, forming an array by parameter values obtained by Galois field division calculation in any equation to obtain a first array and a second array;
selecting two parameter values corresponding to the same unknown data block from the first array and the second array, and updating the first array and the second array by using the two parameter values to obtain a new first array and a new second array;
determining parameter values corresponding to unselected unknown data blocks in the new first array and the new second array, and determining a dividend based on the parameter values corresponding to the unselected unknown data blocks;
and determining 3 unknown data blocks based on the parameter values corresponding to the unselected unknown data blocks, the dividend, the number of disks corresponding to the strip and all known data blocks.
Optionally, the ternary one-time encoding/decoding equation set includes:
p 1⊕d 2⊕...⊕p 2⊕p 3=0;
GF_div[1/(a1+b 1)]p 1⊕GF_div[1/(a1+b 2)]d 2⊕...⊕GF_div[1/(a1+b n-1)]p 2⊕GF_ div[1/(a1+b n)]p 3=0;
GF_div[1/(a2+b 1)]p 1⊕GF_div[1/(a2+b 2)]d 2⊕...⊕GF_div[1/(a2+b n-1)]p 2⊕GF_ div[1/(a2+b n)]p 3=0;
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the number of discs corresponding to the strip;d 1 ,d 2 ,…,d n-3n-3 known data blocks;GF_divrepresenting galois field division; a is1Is a first preset value; a is2The second preset value is set;b 1 ,b 2 ,…,b nn mutually unequal numerical values in the target set are obtained; and ≧ galois field addition.
Optionally, the updating the first array and the second array by using the two parameter values to obtain a new first array and a new second array includes:
carrying out Galois field addition on each parameter value in the first array by using the parameter value selected from the first array to obtain a new first array;
and carrying out Galois field addition on each parameter value in the second array by using the parameter value selected from the second array to obtain the new second array.
Optionally, the determining a dividend based on the parameter values corresponding to the unselected unknown data blocks includes:
calculating the dividend according to a first formula; the first formula is:p_deno=GF_mul(p1_32,p2_22)⊕GF_mul(p2_32,p1_22);
wherein the content of the first and second substances,p_denois the dividend;GF_mulrepresenting a galois field multiplication;p1_32 is the unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is the unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is the unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is the unselected unknown data block in the new first arrayp 1Corresponding parameter values; and ≧ galois field addition.
Optionally, the determining 3 unknown data blocks based on the parameter values corresponding to the unselected unknown data blocks, the dividend, the number of disks corresponding to the stripe, and all known data blocks includes:
calculating 3 unknown data blocks according to a second formula; the second formula includes:
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the number of discs corresponding to the strip;GF_divrepresenting galois field division;GF_mulrepresenting a galois field multiplication; ≧ represents galois field addition;p1_32 is the unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is the unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is the unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is the unselected unknown data block in the new first arrayp 1Corresponding parameter values;v2'(i) For the known data block in the new second arrayiCorresponding toA parameter value;v1'(i) For the known data block in the new first arrayiCorresponding parameter values;p_denois the dividend;d i for a known data blocki。
Optionally, the method further comprises:
if any known data block serving as user data in the stripe is changed, determining the check difference of the check data in the stripe based on the difference between the changed known data block and the original known data block, and updating the check data based on the check difference.
Optionally, the n mutually unequal values are: 20,21,…,2n-1。
Optionally, the method further comprises:
and if the stripe comprises 1 unknown data block, performing exclusive-or on other blocks except the unknown data block in the stripe to determine the unknown data block.
Optionally, the method further comprises:
if the strip comprises 2 unknown data blocks, determining parameter values of the 2 unknown data blocks calculated by Galois field division in the ternary primary coding/decoding equation set;
determining the 2 unknown data blocks based on the determined parameter values, the parameter values calculated by Galois field division in the ternary one-time coding/decoding equation set for the blocks other than the 2 unknown data blocks and other blocks.
In a second aspect, the present application provides a RAID encoding and decoding apparatus, including:
the system comprises an acquisition module, a target set and a processing module, wherein the acquisition module is used for acquiring any one stripe needing encoding/decoding in the RAID and determining the target set; the target set includes: n different values, wherein n is the number of disks corresponding to the strip;
the first determining module is used for determining a first preset value and a second preset value which are not equal to each other;
a construction module, configured to construct a ternary one-time coding/decoding equation set in a galois field by using all known data blocks, the 3 unknown data blocks, the target set, the first preset value, and the second preset value included in the stripe if the stripe includes 3 unknown data blocks;
the composition module is used for composing an array by parameter values obtained by Galois field division calculation in any equation aiming at the ternary one-time coding/decoding equation set to obtain a first array and a second array;
the updating module is used for selecting two parameter values corresponding to the same unknown data block from the first array and the second array, and updating the first array and the second array by using the two parameter values to obtain a new first array and a new second array;
a second determining module, configured to determine, in the new first array and the new second array, a parameter value corresponding to an unselected unknown data block, and determine a dividend based on the parameter value corresponding to the unselected unknown data block;
and a third determining module, configured to determine 3 unknown data blocks based on the parameter value corresponding to the unselected unknown data block, the dividend, the number of disks corresponding to the stripe, and all known data blocks.
In a third aspect, the present application provides an electronic device, comprising:
a memory for storing a computer program;
and the processor is used for executing the computer program to realize the RAID coding and decoding method disclosed in the foregoing.
In a fourth aspect, the present application provides a readable storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the RAID coding and decoding method disclosed above.
According to the above scheme, the present application provides a RAID encoding and decoding method, including: acquiring any one stripe needing encoding/decoding in the RAID, and determining a target set; the target set includes: n different values, wherein n is the number of disks corresponding to the strip; determining a first preset value and a second preset value which are not equal to each other; if the strip comprises 3 unknown data blocks, constructing a ternary one-time coding/decoding equation set in a Galois field by using all known data blocks, the 3 unknown data blocks, the target set, the first preset value and the second preset value which are comprised by the strip; aiming at the ternary one-time coding/decoding equation set, forming an array by parameter values obtained by Galois field division calculation in any equation to obtain a first array and a second array; selecting two parameter values corresponding to the same unknown data block from the first array and the second array, and updating the first array and the second array by using the two parameter values to obtain a new first array and a new second array; determining parameter values corresponding to unselected unknown data blocks in the new first array and the new second array, and determining a dividend based on the parameter values corresponding to the unselected unknown data blocks; and determining 3 unknown data blocks based on the parameter values corresponding to the unselected unknown data blocks, the dividend, the number of disks corresponding to the strip and all known data blocks.
It can be seen that, in the present application, firstly, a target set including n mutually unequal numerical values, and mutually unequal first preset values and second preset values are set as parameters, and then, when 3 unknowns need to be solved, a ternary primary coding/decoding equation set is constructed in a galois field based on the parameters, known quantities (all known data blocks included in a band), and unknowns (i.e., 3 unknowns). Meanwhile, division in the Galois field can not generate decimal, so that the situation of incomplete division can be avoided, and the coding and decoding precision is improved. In this scheme, the unknown data block to be solved may be: the check block to be calculated in the encoding process may also be a corrupted data block to be calculated in the decoding process. Namely: the scheme describes an encoding process and a decoding process, and RAID encoding and RAID decoding can be completed based on the same logic. The scheme can solve 3 unknown data blocks, so that the fault tolerance rate is higher than that of RAID5 and RAID6, and the method is suitable for large-stripe (such as stripes with the number of corresponding disks not less than 32) encoding and decoding.
Accordingly, the RAID coding and decoding device, the apparatus and the readable storage medium provided by the present application also have the technical effects described above.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below, it is obvious that the drawings in the following description are only embodiments of the present application, and for those skilled in the art, other drawings can be obtained according to the provided drawings without creative efforts.
FIG. 1 is a flowchart of a first RAID encoding and decoding method disclosed in the present application;
FIG. 2 is a schematic diagram of a RAID encoding and decoding apparatus disclosed herein;
fig. 3 is a schematic diagram of an electronic device disclosed in the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
At present, in the RAID6 coding and decoding scheme, division operation is required, so that a situation of incomplete division may occur, where the incomplete division may affect encoding accuracy, which is specifically represented as: unless a certain length of decimal place needs to be reserved, then this necessarily results in: the retained data is deviated from the actual data, and thus there is an error in accuracy. Also, when the stripe is large, the coefficients in the equations of different data blocks may be the same, and an unsolvable situation may occur. Therefore, the RAID coding and decoding scheme is provided, the RAID coding and decoding precision can be improved, the situation that the solution cannot be achieved is avoided, and the fault tolerance rate is higher than that of RAID5 and RAID 6.
Referring to fig. 1, an embodiment of the present application discloses a RAID encoding and decoding method, including:
s101, acquiring any one stripe needing encoding/decoding in RAID, and determining a target set.
A RAID may consist of several disks of the same or different types, and the different disks may be located on the same or different cabinets. Each cabinet corresponds to one controller and is used for controlling data of the local cabinet to fall into a disk, and storage spaces on different cabinets are integrated through cloud service. User data are respectively distributed and stored in different disks through a distribution strategy and a control mode corresponding to the RAID, and at this time, for a disk array, a unit for realizing a check service that spans different hard disks is called a stripe.
Wherein the target set comprises: n are different values, and n is the number of disks corresponding to the strip. The number of disks corresponding to one stripe is the total number of disks constituting the current RAID. If the total number of disks is n, a stripe includes n data blocks, which are located on n disks, respectively. Specifically, n data blocks included in one stripe may be recorded as n = k + m based on the current RAID mode. For example: if the RAID scheme is RAID5, n = k +1 (the number of parity blocks). If the RAID scheme is RAID6, n = k +2 (the number of parity blocks). While the present embodiment provides n = k +3 (number of parity chunks). It can be seen that the target set includes n unequal values, which correspond to the disks in the RAID one-to-one and also correspond to the blocks in one stripe.
In a specific embodiment, the n unequal values included in the target set can be flexibly valued. Such as: taking natural numbers of 1-n, or taking out values out of order in the natural numbers as follows: 1. 4,7, 8 and 9 … …, until n natural numbers are obtained, or the values are arithmetic series and geometric series. Preferably, a base number of 2 is used as a value, and then n mutually unequal values are: 20,21,…,2n-1。
It should be noted that, when there is a certain value rule for n different values (e.g. 2)0,21,…,2n-1) The encoding and decoding process can be simplified. Due to the fact thatSolving equations for coefficients based on the n mutually unequal values may be simplified.
S102, determining a first preset value and a second preset value which are not equal to each other.
The first preset value and the second preset value can be flexibly valued. If two natural numbers are taken: 1 and 2, or optionally two from the target set.
The target set, the first preset value and the second preset value can be determined by software or hardware.
S103, if the strip comprises 3 unknown data blocks, constructing a ternary one-time coding/decoding equation set in the Galois field by utilizing all the known data blocks, the 3 unknown data blocks, the target set, the first preset value and the second preset value which are comprised by the strip.
If 3 unknown data blocks need to be solved, then the solution cannot be completed using RAID5 and RAID 6. For this purpose, the present embodiment constructs a ternary one-time coding/decoding equation set in the galois field based on the target set, the first preset value, the second preset value, and all the known data blocks and 3 unknown data blocks involved in the solution.
In one embodiment, the ternary one-time encoding/decoding equation set comprises:
p 1⊕d 2⊕...⊕p 2⊕p 3=0;
GF_div[1/(a1+b 1)]p 1⊕GF_div[1/(a1+b 2)]d 2⊕...⊕GF_div[1/(a1+b n-1)]p 2⊕GF_ div[1/(a1+b n)]p 3=0;
GF_div[1/(a2+b 1)]p 1⊕GF_div[1/(a2+b 2)]d 2⊕...⊕GF_div[1/(a2+b n-1)]p 2⊕GF_ div[1/(a2+b n)]p 3=0。
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the number of discs corresponding to the strip;d 1 ,d 2 ,…,d n-3n-3 known data blocks;GF_divrepresenting galois field division; a is1Is a first preset value; a is2The second preset value is set;b 1 ,b 2 ,…,b nn mutually unequal numerical values in the target set; and ≧ galois field addition. Since the number of disks corresponding to a stripe is n, in the case that the stripe includes 3 unknown data blocks, n-3 known data blocks remain in the stripe, that is:d 1 ,d 2 ,…, d n-3。
s104, aiming at the ternary one-time coding/decoding equation set, forming an array by using the parameter values obtained by Galois field division calculation in any equation to obtain a first array and a second array.
The system of ternary one-pass coding/decoding equations as shown above, which includes 3 equations in total, 2 of the 3 equations relate to galois field division, so that the coefficients of the known data block and the unknown data block in the 2 equations are extracted to obtain 2 sets: a first array and a second array.
Specifically, the parameter values in the first array are:. The values of the parameters in the second array are:。
s105, selecting two parameter values corresponding to the same unknown data block from the first array and the second array, and updating the first array and the second array by using the two parameter values to obtain a new first array and a new second array.
And selecting two parameter values corresponding to the same unknown data block in the first array and the second array. Such as: selecting unknown data blocksp 1Two parameter values corresponding in the first array and the second array:and(ii) a Or selecting unknown data blocksp 2Two corresponding parameter values in the first array and the second array; or selecting unknown data blocksp 3Two corresponding parameter values in the first array and the second array. It can be seen that no matter which of the 3 unknown data blocks is selected, only corresponding changes are needed when the first array and the second array are updated subsequently, but the solving process can be completed.
Assuming n =16, the target set comprises 16 mutually unequal values, 1,2,3,4, …,16 respectively. The first preset value a1=1 and the second preset value a2=2, then according to the above, the parameter values in the first array are: [142,244, …,216,114]And the parameter values in the second array are: [244,71, …,114,192]. Hypothesis selection of unknown data blocksp 3Two parameter values corresponding in the first array and the second array: 114 (i.e., the last parameter value in the first array), 192 (i.e., the last parameter value in the second array). Then using the unknown data block in the first arrayp 3The corresponding parameter value 144 is subjected to galois field addition (i.e., exclusive or operation) with each parameter in the first array to obtain a new first array: [252,134, …,170,0]. Accordingly, the unknown data block in the second array is usedp 3The corresponding parameter value 192 is added to each parameter in the second array in a galois field manner to obtain a new second array: [52,135, …,178,0]. At this point, the updating of the first array and the second array is completed.
And each element in the first array, the second array, the new first array and the new second array is a decimal number. When the first array and the second array are updated, the parameter values in the first array and the second array are converted into binary numbers from decimal numbers, and then the XOR operation is carried out.
In one embodiment, updating the first array and the second array with two parameter values to obtain a new first array and a new second array includes: carrying out Galois field addition on each parameter value in the first array by using the parameter value selected from the first array to obtain a new first array; and carrying out Galois field addition on each parameter value in the second array by using the parameter value selected from the second array to obtain a new second array.
S106, determining parameter values corresponding to the unselected unknown data blocks in the new first array and the new second array, and determining the dividend based on the parameter values corresponding to the unselected unknown data blocks.
In one embodiment, determining the dividend based on the parameter values corresponding to the unselected unknown data blocks includes: calculating a dividend according to a first formula; the first formula is:p_deno=GF_mul(p1_32,p2_22)⊕GF_mul(p2_32,p1_ 22); wherein the content of the first and second substances,p_denois a dividend;GF_mulrepresenting a galois field multiplication;p1_32 is an unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is an unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is an unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is an unselected unknown data block in the new first arrayp 1Corresponding parameter values; and ≧ galois field addition.
If the unknown data block selected in step S105 isp 3Then the unselected unknown data blocks remainp 1 、p 2. In accordance with the above-described example,p 1the corresponding parameter value in the new first array is 252,p 1the corresponding parameter value in the new second array is 52;p 2the corresponding parameter value in the new first array is 170,p 2the corresponding parameter value in the new second array is 178. Substituting these parameter values into the first formula yields:p_deno=GF_mul(52,170)⊕GF_mul(178,252). At this point, the dividend can be foundp_deno。
And S107, determining 3 unknown data blocks based on the parameter values corresponding to the unselected unknown data blocks, the dividend, the number of disks corresponding to the stripe and all known data blocks.
In one embodiment, determining 3 unknown data blocks based on the parameter values corresponding to the unselected unknown data blocks, the dividend, the number of disks corresponding to the stripe, and all known data blocks includes: calculating 3 unknown data blocks according to a second formula; the second formula includes:
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the number of discs corresponding to the strip;GF_divrepresenting galois field division;GF_mulrepresenting a galois field multiplication; ≧ represents galois field addition;p1_32 is the unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is the unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is the unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is the unselected unknown data block in the new first arrayp 1Corresponding parameter values;v2'(i) For the known data block in the new second arrayiCorresponding parameter values;v1'(i) For the known data block in the new first arrayiCorresponding parameter values;p_denois the dividend;d i for a known data blocki。i=1,2,3,…,n-3。
In a second formulap 1 、p 2 、p 3The solution can be carried out in parallel, so that the operation speed is improved.
It can be seen that, in this embodiment, firstly, a target set including n mutually unequal numerical values, and a first preset value and a second preset value which are mutually unequal are set as parameters, and then, when 3 unknowns need to be solved, a ternary primary encoding/decoding equation set is constructed in a galois field based on the parameters, known quantities (all known data blocks included in a band), and the unknowns (i.e., 3 unknowns). Meanwhile, division in the Galois field can not generate decimal, so that the situation of incomplete division can be avoided, and the coding and decoding precision is improved. In this scheme, the unknown data block to be solved may be: the check block to be calculated in the encoding process may also be a corrupted data block to be calculated in the decoding process. Namely: the scheme describes an encoding process and a decoding process, and RAID encoding and RAID decoding can be completed based on the same logic. The scheme can solve 3 unknown data blocks, so that the fault tolerance rate is higher than that of RAID5 and RAID6, and the method is suitable for large-stripe (such as stripes with the number of corresponding disks not less than 32) encoding and decoding.
Based on the above embodiments, it should be noted that, after storing data according to the present application, a stripe composed of n blocks includes 3 check blocks in a process corresponding to a RAID encoding process for storing data:p 1 、p 2 、p 3(ii) a n-3 user data blocks:d 1 , d 2 ,…,d n-3. If any user data block in the stripe (b:)d 1 ,d 2 ,…,d n-3Any of the above), the difference between the data block after the change and the data block before the change can be directly determined, then the corresponding change needed to be made by the 3 parity chunks can be determined based on the difference, and then the 3 parity chunks can be directly changed to complete the change of one stripe.
In a specific embodiment, if any known data block in the stripe as the user data is changed, a check difference of the check data in the stripe is determined based on a difference between the changed known data block and an original known data block, and the check data is updated based on the check difference.
Suppose a user data blockd x If a change occurs, the check block may be updated using the following formulap 1:
d x '=d x ⊕Δd x ;
Δp 1=GF_div(GF_mul(GF_mul(p1_22,v2'(x))⊕GF_mul(p1_32,v1'(x)),d x ),p_ deno);
p 1'=p 1⊕Δp 1。
Wherein the content of the first and second substances,d x is' after modificationd x ,Δd x To be modifiedd x Before modificationd x Difference of (a)p 1Is composed ofp 1The corresponding changes that need to be made(i.e. thep 1The check for discrepancies),p 1is' after modificationp 1。v1'(x) As in the new first arrayd x The value of the corresponding parameter is set to,v2'(x) As in the new second arrayd x The corresponding parameter value.
Similarly, the check block can be updated accordinglyp 2Andp 3thus, updated 3 parity chunks are obtained:p 1'、p 2'、p 3'。
based on the above embodiments, it should be noted that the maximum fault tolerance of the RAID coding and decoding scheme provided by the present application is 3, and the RAID coding and decoding scheme may also be downgraded to 2 and 1, that is, downgraded to RAID5 and RAID 6. Namely: the present application can correct errors and complete data recovery when there are 3 block errors, 2 block errors, and 1 block error in one stripe.
Data recovery can be accomplished according to the above embodiment when there are 3 block errors in a stripe.
If a stripe includes 1 unknown data block (i.e., 1 block error in a stripe), then the blocks in the stripe other than the unknown data block are xored to determine the unknown data block. For example: suppose a block of datad 2If an error occurs, then the data block is solvedd 2The formula of (1) is:d 2=d 1⊕d 3⊕d 4⊕…⊕p 1⊕p 2⊕p 3。
if the stripe comprises 2 unknown data blocks (namely when one stripe has 2 block errors), determining the parameter value of the 2 unknown data blocks calculated by Galois field division in the ternary one-time coding/decoding equation set; determining the 2 unknown data blocks based on the determined parameter values, the parameter values calculated by Galois field division in the ternary one-time coding/decoding equation set for the blocks other than the 2 unknown data blocks and other blocks.
For example: suppose thatp 1、d 2Make a mistakeError, then solvep 1、d 2The formula of (1) is:
wherein the content of the first and second substances,d 1 ,d 2 ,…,d n-3 ,p 1 ,p 2 ,p 3for the n data blocks in a stripe,p 1 、d 22 unknown data blocks in the data block;GF_divrepresenting galois field division; a is1Is a first preset value;b 1 ,b 2 ,…,b nn mutually unequal numerical values in the target set; and ≧ galois field addition.
Therefore, when two errors occur, the coefficient corresponding to each block in any equation including galois field division in the ternary one-time coding/decoding equation set is needed.
Based on the above embodiments, it should be noted that galois field generally uses GF8, whose polynomial is: p (x) = x8+ x4+ x3+ x1+ 1. The corresponding data mapping table is shown in table 1.
TABLE 1
Data mapping may be performed according to table 1. When the data is a decimal number 10, 10 can be represented as binary 01110100 by the above galois field primitive polynomial p (x) conversion. By this conversion, each data is converted into a binary number of 8 bits, and a four-way operation based on the binary number of 8 bits is performed.
In the galois field operation, the following coding formula can be designed:
wherein the content of the first and second substances,d 1 ,d 2 ,…,d n in a stripnIndividual user data block, a1Is a first preset value; a is2The second preset value is set;b 1 ,b 2 ,…,b nn mutually unequal values in the target set.
If the total number of disks corresponding to one stripe is still n, then 3 check blocks are added in the coding formula:p 1 、p 2 、 p 3then n = (n-3) +3, we can get the ternary one-time coding/decoding equation system:
of course, the positions of the added 3 parity chunks are determined by mechanisms such as load balancing in the current RAID system, and the positions of the 3 parity chunks in the ternary one-time encoding/decoding equation set are merely exemplary illustrations.
Then, the first array and the second array are determined based on the ternary one-time coding/decoding equation set, and then the first array and the second array are updated, so that the dividend is determined and 3 check blocks are solved, which can be referred to the related introduction of the above embodiment.
Therefore, according to the method and the device, the encoding and decoding process is completed according to the corresponding parameter values of the blocks in the array, three-error correction encoding and decoding can be realized, the operation process is simple and efficient, the problems of decimal and precision can not occur, and the method and the device are suitable for large-strip encoding and decoding. And may be downgraded to RAID5, RAID 6. Of course, the method is also suitable for different Galois fields, and under the polynomial of different Galois fields, the generated arrays are different, but the operation logics are the same, and an inverse matrix is not required, so that the method has obvious advantages of high speed and flexibility.
In the following, a RAID encoding and decoding apparatus provided in an embodiment of the present application is introduced, and a RAID encoding and decoding apparatus described below and a RAID encoding and decoding method described above may be referred to each other.
Referring to fig. 2, an embodiment of the present application discloses a RAID encoding and decoding apparatus, including:
an obtaining module 201, configured to obtain any stripe in RAID that needs to be encoded/decoded, and determine a target set; the set of targets includes: n number of unequal values, n being the number of disks corresponding to the strip;
a first determining module 202, configured to determine a first preset value and a second preset value that are not equal to each other;
a constructing module 203, configured to construct a ternary one-time encoding/decoding equation set in a galois field by using all known data blocks, 3 unknown data blocks, a target set, a first preset value, and a second preset value included in a stripe if the stripe includes 3 unknown data blocks;
a composition module 204, configured to compose an array of parameter values calculated by galois field division in any equation to obtain a first array and a second array for a ternary one-time encoding/decoding equation set;
an updating module 205, configured to select two parameter values corresponding to the same unknown data block from the first array and the second array, and update the first array and the second array using the two parameter values to obtain a new first array and a new second array;
a second determining module 206, configured to determine a parameter value corresponding to an unselected unknown data block in the new first array and the new second array, and determine a dividend based on the parameter value corresponding to the unselected unknown data block;
and a third determining module 207, configured to determine 3 unknown data blocks based on the parameter value corresponding to the unselected unknown data block, the dividend, the number of disks corresponding to the stripe, and all known data blocks.
In one embodiment, the ternary one-time encoding/decoding equation set is:
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the number of discs corresponding to the strip;d 1 ,d 2 ,…,d n-3n-3 known data blocks;GF_divrepresenting galois field division; a is1Is a first preset value; a is2The second preset value is set;b 1 ,b 2 ,…,b nn mutually unequal numerical values in the target set; and ≧ galois field addition.
In a specific embodiment, the update module is specifically configured to:
carrying out Galois field addition on each parameter value in the first array by using the parameter value selected from the first array to obtain a new first array;
and carrying out Galois field addition on each parameter value in the second array by using the parameter value selected from the second array to obtain a new second array.
In a specific embodiment, the second determining module is specifically configured to:
calculating a dividend according to a first formula; the first formula is:p_deno=GF_mul(p1_32,p2_22)⊕GF_mul(p2_32,p1_22);
wherein the content of the first and second substances,p_denois the dividend;GF_mulrepresenting a galois field multiplication;p1_32 is the unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is the unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is the unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is the unselected unknown data block in the new first arrayp 1Corresponding parameter values; and ≧ galois field addition.
In a specific embodiment, the third determining module is specifically configured to:
calculating 3 unknown data blocks according to a second formula; the second formula includes:
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the number of discs corresponding to the strip;GF_divrepresenting galois field division;GF_mulrepresenting a galois field multiplication; ≧ represents galois field addition;p1_32 is the unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is the unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is the unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is the unselected unknown data block in the new first arrayp 1Corresponding parameter values;v2'(i) For the known data block in the new second arrayiCorresponding parameter values;v1'(i) For the known data block in the new first arrayiCorresponding parameter values;p_denois the dividend;d i for a known data blocki。
In a specific embodiment, the method further comprises the following steps:
and the change module is used for determining the check difference of the check data in the strip based on the difference between the changed known data block and the original known data block and updating the check data based on the check difference if any known data block serving as the user data in the strip is changed.
In one embodiment, the n values that are not equal to each other are: 20,21,…,2n-1。
In a specific embodiment, the method further comprises the following steps:
and the single error correction module is used for performing exclusive OR on other blocks except the unknown data block in the stripe to determine the unknown data block if the stripe comprises 1 unknown data block.
In a specific embodiment, the method further comprises the following steps:
the double error correction module is used for calculating 2 unknown data blocks according to a third formula if the stripe comprises 2 unknown data blocks; the third formula is:
wherein the content of the first and second substances,d 1 、d 22 unknown data blocks;d 1 ,d 2 ,…,d nn data blocks in a stripe;GF_divrepresenting galois field division; a is1Is a first preset value;b 1 ,b 2 ,…,b nn mutually unequal numerical values in the target set; and ≧ galois field addition.
For more specific working processes of each module and unit in this embodiment, reference may be made to corresponding contents disclosed in the foregoing embodiments, and details are not described here again.
Therefore, the RAID coding and decoding device provided by the embodiment can improve the RAID coding and decoding accuracy, avoid the situation that the solution cannot be performed, and is higher in fault tolerance than RAID5 and RAID 6.
In the following, an electronic device provided by an embodiment of the present application is introduced, and an electronic device described below and an RAID encoding and decoding method and apparatus described above may be referred to each other.
Referring to fig. 3, an embodiment of the present application discloses an electronic device, including:
a memory 301 for storing a computer program;
a processor 302 for executing the computer program to implement the method disclosed in any of the embodiments above.
In the following, a readable storage medium provided by an embodiment of the present application is introduced, and a readable storage medium described below and a RAID encoding and decoding method, apparatus, and device described above may be referred to each other.
A readable storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the RAID coding and decoding method disclosed in the foregoing embodiments. For the specific steps of the method, reference may be made to the corresponding contents disclosed in the foregoing embodiments, which are not described herein again.
References in this application to "first," "second," "third," "fourth," etc., if any, are intended to distinguish between similar elements and not necessarily to describe a particular order or sequence. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or described herein. Furthermore, the terms "comprises" and "comprising," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, or apparatus that comprises a list of steps or elements is not necessarily limited to those steps or elements expressly listed, but may include other steps or elements not expressly listed or inherent to such process, method, or apparatus.
It should be noted that the descriptions in this application referring to "first", "second", etc. are for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. In addition, technical solutions between various embodiments may be combined with each other, but must be realized by a person skilled in the art, and when the technical solutions are contradictory or cannot be realized, such a combination should not be considered to exist, and is not within the protection scope of the present application.
The embodiments are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same or similar parts among the embodiments are referred to each other.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in Random Access Memory (RAM), memory, Read Only Memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of readable storage medium known in the art.
The principle and the implementation of the present application are explained herein by applying specific examples, and the above description of the embodiments is only used to help understand the method and the core idea of the present application; meanwhile, for a person skilled in the art, according to the idea of the present application, there may be variations in the specific embodiments and the application scope, and in summary, the content of the present specification should not be construed as a limitation to the present application.
Claims (12)
1. A RAID encoding and decoding method is characterized by comprising the following steps:
acquiring any one stripe needing encoding/decoding in the RAID, and determining a target set; the target set includes: n different values, wherein n is the number of disks corresponding to the strip;
determining a first preset value and a second preset value which are not equal to each other;
if the strip comprises 3 unknown data blocks, constructing a ternary one-time coding/decoding equation set in a Galois field by using all known data blocks, the 3 unknown data blocks, the target set, the first preset value and the second preset value which are comprised by the strip;
aiming at the ternary one-time coding/decoding equation set, forming an array by parameter values obtained by Galois field division calculation in any equation to obtain a first array and a second array;
selecting two parameter values corresponding to the same unknown data block from the first array and the second array, and updating the first array and the second array by using the two parameter values to obtain a new first array and a new second array;
determining parameter values corresponding to unselected unknown data blocks in the new first array and the new second array, and determining a dividend based on the parameter values corresponding to the unselected unknown data blocks;
and determining 3 unknown data blocks based on the parameter values corresponding to the unselected unknown data blocks, the dividend, the number of disks corresponding to the strip and all known data blocks.
2. The method of claim 1, wherein the ternary system of one-time coding/decoding equations comprises:
p 1⊕d 2⊕...⊕p 2⊕p 3=0;
GF_div[1/(a1+b 1)]p 1⊕GF_div[1/(a1+b 2)]d 2⊕...⊕GF_div[1/(a1+b n-1)]p 2⊕GF_div[1/(a1+b n)]p 3=0;
GF_div[1/(a2+b 1)]p 1⊕GF_div[1/(a2+b 2)]d 2⊕...⊕GF_div[1/(a2+b n-1)]p 2⊕GF_div[1/(a2+b n)]p 3=0;
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the number of discs corresponding to the strip;d 1 ,d 2 ,…,d n-3n-3 known data blocks;GF_divrepresenting galois field division; a is1Is a first preset value; a is2The second preset value is set;b 1 ,b 2 ,…,b nn mutually unequal numerical values in the target set are obtained; and ≧ galois field addition.
3. The method of claim 1, wherein updating the first array and the second array with the two parameter values to obtain a new first array and a new second array comprises:
carrying out Galois field addition on each parameter value in the first array by using the parameter value selected from the first array to obtain a new first array;
and carrying out Galois field addition on each parameter value in the second array by using the parameter value selected from the second array to obtain the new second array.
4. The method of claim 1, wherein determining a dividend based on the parameter values corresponding to the unselected unknown data blocks comprises:
calculating the dividend according to a first formula; the first formula is:p_deno=GF_mul(p1_32,p2_22)⊕GF_ mul(p2_32,p1_22);
wherein the content of the first and second substances,p_denois the dividend;GF_mulrepresenting a galois field multiplication;p1_32 is the unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is the unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is the unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is theUnselected unknown data blocks in the new first arrayp 1Corresponding parameter values; and ≧ galois field addition.
5. The method of claim 1, wherein determining 3 unknown data blocks based on the parameter values corresponding to the unselected unknown data blocks, the dividend, the number of disks corresponding to the stripe, and all known data blocks comprises:
calculating 3 unknown data blocks according to a second formula; the second formula includes:
wherein the content of the first and second substances,p 1 、p 2 、p 3is 3 unknown data blocks; n is the strip correspondenceThe number of discs;GF_divrepresenting galois field division;GF_mulrepresenting a galois field multiplication; ≧ represents galois field addition;p1_32 is the unselected unknown data block in the new second arrayp 1Corresponding parameter values;p2_22 is the unselected unknown data block in the new first arrayp 2Corresponding parameter values;p2_32 is the unselected unknown data block in the new second arrayp 2Corresponding parameter values;p1_22 is the unselected unknown data block in the new first arrayp 1Corresponding parameter values;v2'(i) For the known data block in the new second arrayiCorresponding parameter values;v1'(i) For the known data block in the new first arrayiCorresponding parameter values;p_denois the dividend;d i for a known data blocki。
6. The method of any of claims 1 to 5, further comprising:
if any known data block serving as user data in the stripe is changed, determining the check difference of the check data in the stripe based on the difference between the changed known data block and the original known data block, and updating the check data based on the check difference.
7. A method according to any one of claims 1 to 5, characterized in that the n mutually unequal values are: 20,21,…,2n-1。
8. The method of any of claims 1 to 5, further comprising:
and if the stripe comprises 1 unknown data block, performing exclusive-or on other blocks except the unknown data block in the stripe to determine the unknown data block.
9. The method of any of claims 1 to 5, further comprising:
if the strip comprises 2 unknown data blocks, determining parameter values of the 2 unknown data blocks calculated by Galois field division in the ternary primary coding/decoding equation set;
determining the 2 unknown data blocks based on the determined parameter values, the parameter values calculated by Galois field division in the ternary one-time coding/decoding equation set for the blocks other than the 2 unknown data blocks and other blocks.
10. A RAID encoding and decoding apparatus comprising:
the system comprises an acquisition module, a target set and a processing module, wherein the acquisition module is used for acquiring any one stripe needing encoding/decoding in the RAID and determining the target set; the target set includes: n different values, wherein n is the number of disks corresponding to the strip;
the first determining module is used for determining a first preset value and a second preset value which are not equal to each other;
a construction module, configured to construct a ternary one-time coding/decoding equation set in a galois field by using all known data blocks, the 3 unknown data blocks, the target set, the first preset value, and the second preset value included in the stripe if the stripe includes 3 unknown data blocks;
the composition module is used for composing an array by parameter values obtained by Galois field division calculation in any equation aiming at the ternary one-time coding/decoding equation set to obtain a first array and a second array;
the updating module is used for selecting two parameter values corresponding to the same unknown data block from the first array and the second array, and updating the first array and the second array by using the two parameter values to obtain a new first array and a new second array;
a second determining module, configured to determine, in the new first array and the new second array, a parameter value corresponding to an unselected unknown data block, and determine a dividend based on the parameter value corresponding to the unselected unknown data block;
and a third determining module, configured to determine 3 unknown data blocks based on the parameter value corresponding to the unselected unknown data block, the dividend, the number of disks corresponding to the stripe, and all known data blocks.
11. An electronic device, comprising:
a memory for storing a computer program;
a processor for executing the computer program to implement the method of any one of claims 1 to 9.
12. A readable storage medium for storing a computer program, wherein the computer program when executed by a processor implements the method of any one of claims 1 to 9.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321311.2A CN114416424B (en) | 2022-03-30 | 2022-03-30 | RAID encoding and decoding method, device, equipment and readable storage medium |
PCT/CN2022/115341 WO2023184843A1 (en) | 2022-03-30 | 2022-08-28 | Raid encoding/decoding method and apparatus, device and readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321311.2A CN114416424B (en) | 2022-03-30 | 2022-03-30 | RAID encoding and decoding method, device, equipment and readable storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114416424A true CN114416424A (en) | 2022-04-29 |
CN114416424B CN114416424B (en) | 2022-06-17 |
Family
ID=81263944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210321311.2A Active CN114416424B (en) | 2022-03-30 | 2022-03-30 | RAID encoding and decoding method, device, equipment and readable storage medium |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114416424B (en) |
WO (1) | WO2023184843A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023184843A1 (en) * | 2022-03-30 | 2023-10-05 | 苏州浪潮智能科技有限公司 | Raid encoding/decoding method and apparatus, device and readable storage medium |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078643A1 (en) * | 2001-10-23 | 2004-04-22 | Sukha Ghosh | System and method for implementing advanced RAID using a set of unique matrices as coefficients |
CN104467875A (en) * | 2014-12-09 | 2015-03-25 | 山东大学 | Blind recognition method for RS code and punctured convolutional code cascaded code parameters |
US20190347162A1 (en) * | 2017-01-24 | 2019-11-14 | Arizona Board Of Regents On Behalf Of The University Of Arizona | Method and system utilizing quintuple parity to provide fault tolerance |
CN112165337A (en) * | 2020-09-30 | 2021-01-01 | 电子科技大学 | Convolutional code random interleaving sequence interleaving relation estimation method based on linear constraint |
CN113297001A (en) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | RAID (redundant array of independent disks) coding and decoding method and coding and decoding circuit |
CN113297000A (en) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | RAID (redundant array of independent disks) coding circuit and coding method |
CN113986147A (en) * | 2021-12-24 | 2022-01-28 | 苏州浪潮智能科技有限公司 | RAID6 hardware acceleration circuit structure and RAID6 hardware acceleration implementation method |
CN114063973A (en) * | 2022-01-14 | 2022-02-18 | 苏州浪潮智能科技有限公司 | Galois field multiplier and erasure coding and decoding system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850504B (en) * | 2015-05-26 | 2017-12-22 | 华中科技大学 | A kind of equation parallel calculating method for accelerating the encoding-decoding process of RAID 6 based on XOR |
US10394651B2 (en) * | 2015-12-29 | 2019-08-27 | Cnex Labs, Inc. | Computing system with circular-shift recovery mechanism and method of operation thereof |
CN113296999B (en) * | 2021-05-20 | 2022-11-11 | 山东云海国创云计算装备产业创新中心有限公司 | RAID6 coding method and coding circuit |
CN114416424B (en) * | 2022-03-30 | 2022-06-17 | 苏州浪潮智能科技有限公司 | RAID encoding and decoding method, device, equipment and readable storage medium |
-
2022
- 2022-03-30 CN CN202210321311.2A patent/CN114416424B/en active Active
- 2022-08-28 WO PCT/CN2022/115341 patent/WO2023184843A1/en unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078643A1 (en) * | 2001-10-23 | 2004-04-22 | Sukha Ghosh | System and method for implementing advanced RAID using a set of unique matrices as coefficients |
CN104467875A (en) * | 2014-12-09 | 2015-03-25 | 山东大学 | Blind recognition method for RS code and punctured convolutional code cascaded code parameters |
US20190347162A1 (en) * | 2017-01-24 | 2019-11-14 | Arizona Board Of Regents On Behalf Of The University Of Arizona | Method and system utilizing quintuple parity to provide fault tolerance |
CN112165337A (en) * | 2020-09-30 | 2021-01-01 | 电子科技大学 | Convolutional code random interleaving sequence interleaving relation estimation method based on linear constraint |
CN113297001A (en) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | RAID (redundant array of independent disks) coding and decoding method and coding and decoding circuit |
CN113297000A (en) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | RAID (redundant array of independent disks) coding circuit and coding method |
CN113986147A (en) * | 2021-12-24 | 2022-01-28 | 苏州浪潮智能科技有限公司 | RAID6 hardware acceleration circuit structure and RAID6 hardware acceleration implementation method |
CN114063973A (en) * | 2022-01-14 | 2022-02-18 | 苏州浪潮智能科技有限公司 | Galois field multiplier and erasure coding and decoding system |
Non-Patent Citations (1)
Title |
---|
左志权等: "3维最小二乘表面匹配泛型数学模型及在机载LiDAR条带平差中的应用", 《遥感学报》, vol. 17, no. 06, 25 November 2013 (2013-11-25), pages 1546 - 1558 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023184843A1 (en) * | 2022-03-30 | 2023-10-05 | 苏州浪潮智能科技有限公司 | Raid encoding/decoding method and apparatus, device and readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN114416424B (en) | 2022-06-17 |
WO2023184843A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9081752B2 (en) | Redundant disk encoding via erasure decoding | |
US9405623B2 (en) | Method of, and apparatus for, layout rectification of erasure encoded storage systems | |
CN107526531B (en) | Method and apparatus for selecting a Redundant Array of Independent Disks (RAID) level for mapping a RAID | |
CN114415983B (en) | RAID encoding and decoding method, device, equipment and readable storage medium | |
JP4982580B2 (en) | Memory system and memory system data writing / reading method | |
WO2013114230A1 (en) | Erasure correcting codes for storage arrays | |
WO2023184911A1 (en) | Data storage method and apparatus, and device and non-volatile readable storage medium | |
CN103886915B (en) | Circuitry and method for correcting 3-bit errors containing adjacent 2-bit error | |
CN107086870A (en) | Repair the MDS array codes coding and coding/decoding method of more piece point failure | |
CN114416424B (en) | RAID encoding and decoding method, device, equipment and readable storage medium | |
CN107239362B (en) | Parallel CRC (Cyclic redundancy check) code calculation method and system | |
CN102468855A (en) | Apparatus and method for correcting at least one bit error within a coded bit sequence | |
EP3758238A1 (en) | Xor-based erasure coding technique for distributed storage systems storing | |
CN105808170B (en) | A kind of RAID6 coding methods that can repair single disk error | |
Lenz et al. | Duplication-correcting codes | |
CN114816278A (en) | Data migration method, system, equipment and storage medium of storage server | |
CN114816837A (en) | Erasure code fusion method and system, electronic device and storage medium | |
CN104348588A (en) | Efficient Error Correction of Multi-Bit Errors | |
CN114116297A (en) | Data encoding method, device, equipment and medium | |
US6175945B1 (en) | Reed-Solomon decoder | |
KR101566088B1 (en) | Techniques for encoding and decoding using a combinatorial number system | |
Chen et al. | A new Zigzag MDS code with optimal encoding and efficient decoding | |
US20080140740A1 (en) | Systems and methods for processing data sets in parallel | |
US20060010363A1 (en) | Method and system for correcting low latency errors in read and write non volatile memories, particularly of the flash type | |
CN103151078A (en) | Memorizer Error detection and correction code generation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |