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 PDF

Info

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
Application number
CN202210321311.2A
Other languages
Chinese (zh)
Other versions
CN114416424B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202210321311.2A priority Critical patent/CN114416424B/en
Publication of CN114416424A publication Critical patent/CN114416424A/en
Application granted granted Critical
Publication of CN114416424B publication Critical patent/CN114416424B/en
Priority to PCT/CN2022/115341 priority patent/WO2023184843A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

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

RAID encoding and decoding method, device, equipment and readable storage medium
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 1d 2⊕...⊕p 2p 3=0;
GF_div[1/(a1+b 1)]p 1GF_div[1/(a1+b 2)]d 2⊕...⊕GF_div[1/(a1+b n-1)]p 2GF_ div[1/(a1+b n)]p 3=0;
GF_div[1/(a2+b 1)]p 1GF_div[1/(a2+b 2)]d 2⊕...⊕GF_div[1/(a2+b n-1)]p 2GF_ 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:
p 1 =
Figure 965295DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p1_22,v2'(i))⊕GF_mul(p1_32,v1'(i)),d i ),p_deno);
p 2 =
Figure 950700DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p2_32,v1'(i))⊕GF_mul(p2_22,v2'(i)),d i ),p_deno);
p 3 =
Figure 902475DEST_PATH_IMAGE001
GF_mul(GF_div(GF_mul((p1_32⊕p2_31),v1'(i))⊕GF_mul((p2_22⊕p1_22),v2'(i)),p_deno)⊕1),d i );
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 1d 2⊕...⊕p 2p 3=0;
GF_div[1/(a1+b 1)]p 1GF_div[1/(a1+b 2)]d 2⊕...⊕GF_div[1/(a1+b n-1)]p 2GF_ div[1/(a1+b n)]p 3=0;
GF_div[1/(a2+b 1)]p 1GF_div[1/(a2+b 2)]d 2⊕...⊕GF_div[1/(a2+b n-1)]p 2GF_ 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:
Figure 640624DEST_PATH_IMAGE002
. The values of the parameters in the second array are:
Figure 160598DEST_PATH_IMAGE003
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:
Figure 616987DEST_PATH_IMAGE004
and
Figure 247820DEST_PATH_IMAGE005
(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:
p 1 =
Figure 840475DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p1_22,v2'(i))⊕GF_mul(p1_32,v1'(i)),d i ),p_deno);
p 2 =
Figure 265772DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p2_32,v1'(i))⊕GF_mul(p2_22,v2'(i)),d i ),p_deno);
p 3 =
Figure 209457DEST_PATH_IMAGE001
GF_mul(GF_div(GF_mul((p1_32⊕p2_31),v1'(i))⊕GF_mul((p2_22⊕p1_22),v2'(i)),p_deno)⊕1),d i );
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 blockii=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 1v1'(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 1d 3d 4p 1p 2p 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 1d 2Make a mistakeError, then solvep 1d 2The formula of (1) is:
Figure 643980DEST_PATH_IMAGE006
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
Figure 356721DEST_PATH_IMAGE007
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:
Figure 952919DEST_PATH_IMAGE008
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:
Figure 118321DEST_PATH_IMAGE009
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:
Figure 215590DEST_PATH_IMAGE009
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:
p 1 =
Figure 658204DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p1_22,v2'(i))⊕GF_mul(p1_32,v1'(i)),d i ),p_deno);
p 2 =
Figure 549936DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p2_32,v1'(i))⊕GF_mul(p2_22,v2'(i)),d i ),p_deno);
p 3 =
Figure 343580DEST_PATH_IMAGE001
GF_mul(GF_div(GF_mul((p1_32⊕p2_31),v1'(i))⊕GF_mul((p2_22⊕p1_22),v2'(i)),p_deno)⊕1),d i );
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:
Figure 244540DEST_PATH_IMAGE010
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 1d 2⊕...⊕p 2p 3=0;
GF_div[1/(a1+b 1)]p 1GF_div[1/(a1+b 2)]d 2⊕...⊕GF_div[1/(a1+b n-1)]p 2GF_div[1/(a1+b n)]p 3=0;
GF_div[1/(a2+b 1)]p 1GF_div[1/(a2+b 2)]d 2⊕...⊕GF_div[1/(a2+b n-1)]p 2GF_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:
p 1 =
Figure 6614DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p1_22,v2'(i))⊕GF_mul(p1_32,v1'(i)),d i ),p_deno);
p 2 =
Figure 685857DEST_PATH_IMAGE001
GF_div(GF_mul(GF_mul(p2_32,v1'(i))⊕GF_mul(p2_22,v2'(i)),d i ),p_deno);
p 3 =
Figure 444866DEST_PATH_IMAGE001
GF_mul(GF_div(GF_mul((p1_32⊕p2_31),v1'(i))⊕GF_ mul((p2_22⊕p1_22),v2'(i)),p_deno)⊕1),d i );
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.
CN202210321311.2A 2022-03-30 2022-03-30 RAID encoding and decoding method, device, equipment and readable storage medium Active CN114416424B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
左志权等: "3维最小二乘表面匹配泛型数学模型及在机载LiDAR条带平差中的应用", 《遥感学报》, vol. 17, no. 06, 25 November 2013 (2013-11-25), pages 1546 - 1558 *

Cited By (1)

* Cited by examiner, † Cited by third party
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