WO2023151288A1 - 校验数据生成方法、装置、设备及存储介质 - Google Patents

校验数据生成方法、装置、设备及存储介质 Download PDF

Info

Publication number
WO2023151288A1
WO2023151288A1 PCT/CN2022/122787 CN2022122787W WO2023151288A1 WO 2023151288 A1 WO2023151288 A1 WO 2023151288A1 CN 2022122787 W CN2022122787 W CN 2022122787W WO 2023151288 A1 WO2023151288 A1 WO 2023151288A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
disk
matrix
vector
vectors
Prior art date
Application number
PCT/CN2022/122787
Other languages
English (en)
French (fr)
Inventor
吴睿振
陈静静
张永兴
王凛
Original Assignee
苏州浪潮智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 苏州浪潮智能科技有限公司 filed Critical 苏州浪潮智能科技有限公司
Publication of WO2023151288A1 publication Critical patent/WO2023151288A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect

Definitions

  • the present application relates to the technical field of disk arrays, and in particular to a verification data generation method, a verification data generation device, electronic equipment, and a computer non-volatile readable storage medium.
  • RAID Redundant Arrays of Independent Disks
  • a disk array is a disk group with a huge capacity by combining multiple independent disks.
  • Using RAID storage technology can greatly increase the storage capacity, improve the request processing capability of system input and output, and improve the reliability of data through data distributed storage technology, parallel access means and information redundancy technology.
  • RAID 6 is a structure with two independent parity-check code disks for distributed storage, which can recover data when data errors occur on two disks at the same time, further improving the data reliability of the disk array.
  • the purpose of this application is to provide a method for generating verification data, a device for generating verification data, electronic equipment, and a computer non-volatile readable storage medium, so as to improve the speed and efficiency of data recovery.
  • the application provides a verification data generation method, including:
  • the storage state matrix includes a plurality of disk vectors and a plurality of data vectors, and the disk vectors and data vectors are orthogonal;
  • Determining the non-reference vector in the disk vector and performing equal division of data vector elements in the initial data area formed by the non-reference vector to obtain the first data area and the second data area;
  • the double error correction code generation process is performed based on the second matrix to obtain the second verification data, and the second verification data is stored in the second verification disk.
  • the storage state matrix corresponding to the independent redundant disk array including:
  • the number of columns of the storage state matrix is determined by the number of disks, and the number of rows of the storage state matrix is determined by the disk capacity and the stripe capacity; wherein, the number of rows is an even number;
  • a storage state matrix is generated.
  • a storage state matrix including:
  • determine several second-order matrix groups in the first data area and the second data area of the first matrix including:
  • the initial data area is grouped at the granularity of two disk vectors to obtain several third data areas;
  • each third data area is grouped at the granularity of two data vectors to obtain several second-order matrix groups;
  • a target data vector is determined, and the non-target data vectors are grouped with two data vectors as the granularity to obtain several second-order matrix groups.
  • the second matrix includes a plurality of data vectors, and the data vectors include a current data vector;
  • Performing single error correction code generation processing based on the second matrix to obtain first check data including:
  • the corresponding current data stripe is read from the independent redundant disk array, and the current data stripe is XOR-processed to obtain the first parity data corresponding to the current data vector.
  • the second matrix includes a plurality of data vectors, and the data vectors include a current data vector;
  • Performing double error correction code generation processing based on the second matrix to obtain second check data including:
  • the weighted data is obtained by using the weight parameter and the data strip, and XOR processing is performed on the weighted data to obtain the second verification data corresponding to the current data vector.
  • Data recovery is performed on the target disk by using the error recovery data, the target first check data and the target second check data.
  • the present application also provides a device for generating verification data, including:
  • a state generation module configured to obtain a storage state matrix corresponding to the independent redundant disk array; wherein, the storage state matrix includes a plurality of disk vectors and a plurality of data vectors, and the disk vectors and data vectors are orthogonal;
  • the data partition module is used to determine the non-reference vector in the disk vector, and perform equal division processing of the data vector elements in the initial data area formed by the non-reference vector to obtain the first data area and the second data area;
  • a position exchange module configured to perform data exchange processing on the first data area and the second data area in the storage state matrix to obtain the first matrix
  • the element exchange module is used to determine several second-order matrix groups in the first data area and the second data area of the first matrix, and perform position exchange processing on the target disk elements in each second-order matrix group to obtain the second matrix ;
  • the first generation module is configured to perform single error correction code generation processing based on the second matrix to obtain the first check data
  • the second generation module is configured to perform double error correction code generation processing based on the second matrix to obtain second check data.
  • the present application also provides an electronic device, including a memory and a processor, wherein:
  • a processor configured to execute a computer program to realize the above method for generating verification data.
  • the present application also provides a computer non-volatile readable storage medium for storing a computer program, wherein, when the computer program is executed by a processor, the above verification data generation method is realized.
  • the verification data generation method obtains a storage state matrix corresponding to an independent redundant disk array; wherein, the storage state matrix includes a plurality of disk vectors and a plurality of data vectors, and the disk vectors and data vectors are orthogonal; in the disk vector Determine the non-reference vector in , and carry out the data vector element equalization processing in the initial data area formed by the non-reference vector to obtain the first data area and the second data area; for the first data area and the second data area in the storage state matrix Performing data exchange processing to obtain the first matrix; determining several second-order matrix groups in the first data area and the second data area of the first matrix, and performing position exchange processing on the target disk elements in each second-order matrix group, obtaining a second matrix; performing single error correction code generation processing based on the second matrix to obtain first verification data; performing double error correction code generation processing based on the second matrix to obtain second verification data.
  • the method reschedules the relationship between the check data and each data stripe in the independent redundant disk array before the check data is generated.
  • the storage state matrix records the storage relationship of each data strip in each disk in the independent redundant disk array, and is performed through the position exchange between the first data area and the second data area and the target disk elements in each second-order matrix group In the position exchange, the corresponding relationship between the first verification data and the second verification data and the data stripes is remapped.
  • the obtained first verification data and second verification data can participate in data restoration at the same time during data restoration, and there is no need to restore all parameter data, so the data read volume can be divided into the first verification data. and read the second verification data.
  • the two kinds of verification data are usually stored in two disks and can be read in parallel, so the time required for data reading can be reduced, and the speed and efficiency of data recovery can be improved.
  • the present application also provides a verification data generation device, electronic equipment, and a computer non-volatile readable storage medium, which also have the above beneficial effects.
  • Fig. 1 is a flow chart of a verification data generation method provided by the embodiment of the present application.
  • FIG. 2 is a schematic diagram of a specific storage state matrix provided by the embodiment of the present application.
  • FIG. 3 is a schematic diagram of a specific reference vector determination provided in the embodiment of the present application.
  • FIG. 4 is a schematic diagram of a specific second matrix provided by the embodiment of the present application.
  • FIG. 5 is a schematic diagram of a specific double error correction coding provided by the embodiment of the present application.
  • FIG. 6 is a specific schematic diagram of data recovery provided by the embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of a device for generating verification data provided by an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of an electronic device provided in an embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of a data recovery system provided by an embodiment of the present application.
  • FIG. 1 is a flow chart of a verification data generation method provided by an embodiment of the present application. The method includes:
  • the storage state matrix includes multiple disk vectors and multiple data vectors, and the disk vectors and data vectors are orthogonal.
  • the independent redundant disk array includes multiple disks, and each disk stores several data blocks, which may include valid data blocks and blank data blocks.
  • the disk vector is used to represent a vector of each data block of a disk, and the data vector is used to represent a vector in a uniform storage location or with the same unique identification information in each disk.
  • FIG. 2 is a schematic diagram of a specific storage state matrix provided by an embodiment of the present application, wherein three column vectors of disk 1 , disk 2 , and disk 3 form a storage state matrix. Wherein, a 1,1 represents the data block stored in storage location No.
  • a 2,1 represents the data block stored in storage location No. 1 in disk 2, and so on.
  • the data block corresponding to the a x, y element may specifically be a stored valid data block, or may be a blank data block without any valid data written therein. Therefore, it can be determined that the data vector in Figure 2 is a row vector, and the disk vector is a column vector.
  • Each element in the storage state matrix, for example, the specific content of the a x, y element in Figure 2 is not limited, it can uniquely represent a data block, for example, it can be the unique identification information of each data block, the unique identification information The form of can be set as required, for example, as shown in FIG.
  • disk serial number the number of the data block in the disk.
  • intersection of the disk vector and the data vector may be maintained, and both may be row vectors or column vectors.
  • the number of disks in the independent redundant disk array is not limited, but the number and size of data blocks that each disk can store are the same, and the number of data blocks stored on a single disk should be an even number to ensure subsequent verification The data can be generated correctly.
  • This embodiment does not limit the specific way of obtaining the storage state matrix.
  • the electronic device that executes each step in this application (which may be called the execution subject device) can obtain the storage state matrix from other electronic devices, or the execution subject device can The storage state matrix is generated directly according to the state of the corresponding RAID.
  • the number of disks, disk capacity, and stripe capacity of an independent redundant disk array can be obtained, where the stripe capacity is the data block size of a data block. It should be noted that the data of a single disk The number of stripes (that is, data blocks) should be an even number.
  • the number of columns of the storage state matrix can be determined by the number of disks, and the number of rows of the storage state matrix can be determined by disk capacity and stripe capacity, and the number of rows is an even number.
  • a storage state matrix is generated.
  • the relative relationship of data storage locations refers to the relative relationship of the storage locations of each data block in the disk.
  • the stripe identification information corresponding to each data stripe (that is, data block) in each disk can be obtained, such as the identification information a 1,1 in FIG.
  • the relative positional relationship in the disk generates the disk vector corresponding to the disk.
  • the relative positional relationship is the above-mentioned relative positional relationship of data storage, and the initial matrix is generated based on the number of columns and rows.
  • the initial matrix refers to the unfilled elements Blank matrix, use the disk vector to fill the initial matrix, then the storage state matrix can be obtained.
  • S102 Determine non-reference vectors in disk vectors, and perform data vector element equalization processing in the initial data area formed by the non-reference vectors to obtain a first data area and a second data area.
  • FIG. 3 is a schematic diagram of a specific reference vector determination provided by the embodiment of the present application.
  • the disk vector corresponding to disk 1 is determined as the reference vector.
  • the area where it is located is determined as the initial data area, and the elements of each data vector in the initial data area are equally divided into two parts, and the areas where the two elements are respectively located after the equalization are determined as The first data area and the second data area.
  • the data vectors can be marked as group a, group b, group c, and group d respectively.
  • the disk vectors to which a 2 and a 3 belong are non-reference vectors, so the elements in the initial data area include a 2 , b 2 , c 2 , d 2 , a 3 , b 3 , c 3 , d 3 , data vector element equalization processing means that elements are equally divided according to the direction of the data vector (that is, the horizontal direction).
  • the elements of group a and group b in the initial data area can be divided into the first data area
  • the elements of group c and d in the initial data area can be divided into the second data area. It can be understood that it can also be divided according to the manner of group a and group c, group b and group d, or can be divided according to the manner of group a and group d, group b and group c.
  • elements in the two data areas are swapped, that is, data exchange processing is performed to obtain the first matrix. It should be noted that after the data swap, the relative positional relationship between the elements in the first data area and the second data area does not change. For example, the data originally located in the first row of the first data area is swapped After the data area, it is still in the first row of the second data area.
  • S104 Determine several second-order matrix groups in the first data area and the second data area of the first matrix, and perform position exchange processing on target disk elements in each second-order matrix group to obtain a second matrix.
  • the second-order matrix group refers to a data combination composed of four elements in two rows and two columns, and the four elements must belong to two disk vectors and two data vectors respectively.
  • the specific method of determining the second-order matrix groups is not limited.
  • the second-order matrix groups can be selected in sequence according to the vector adjacent order matrix group, or two disk vectors and two data vectors can be randomly selected, and the four elements at their intersection positions are determined to belong to a second-order matrix group.
  • the elements in it belong to two disk vectors, and any two elements belonging to the same disk vector can be determined as target disk elements, and their positions Make an exchange. All the second-order matrix groups are subjected to the above-mentioned processing to obtain the second matrix.
  • FIG. 4 is a specific schematic diagram of a second matrix provided by the embodiment of the present application.
  • each data area forms a second-order matrix group, and the elements belonging to the disk vector of disk 3 in the second-order matrix group are determined as the target disk elements, and then exchanged to obtain the second-order matrix group as shown in Figure 4. matrix.
  • FIG. 4 is a specific schematic diagram of a second matrix provided by the embodiment of the present application.
  • the second-order matrix groups are respectively determined in the first data area and the second data area, there may be a case where the number of rows and/or the number of columns in a certain data area is an odd number, in this case
  • the second matrix can also be generated, so that the method provided by the present application can have a broader scope of application. Specifically, it may be first judged whether the initial data area in the first matrix has an even number of disk vectors, and if there is an even number of disk vectors, the initial data area is grouped at the granularity of two disk vectors to obtain several third data areas . It should be noted that the two disk vectors in grouping in this application may be adjacent or non-adjacent.
  • a target disk vector is determined, and non-target disk vectors are grouped with two disk vectors as the granularity to obtain several third data areas.
  • the third data area is divided, it may be determined whether the initial data area in the first matrix has an even number of data vectors. If there is an even number of data vectors, each third data area is grouped at the granularity of two data vectors to obtain several second-order matrix groups. If there is an odd number of data vectors, a target data vector is determined, and the non-target data vectors are grouped with two data vectors as the granularity to obtain several second-order matrix groups.
  • second-order matrix groups can also be determined, but it is possible that not all disk vectors and/or data vectors can be divided into a certain second-order matrix group.
  • the traditional RAID6 algorithm can be used to recover it.
  • the data block corresponding to the elements that are divided into a certain second-order matrix group In other words, when it is necessary to restore data, only part of the first verification data and second verification data generated subsequently can be read out, so as to reduce the data reading time and increase the speed of data restoration.
  • S105 Perform single error correction code generation processing based on the second matrix to obtain first parity data, and store the first parity data into the first parity disk.
  • the second matrix includes multiple data vectors, and the data vectors include the current data vector.
  • the corresponding current data stripe can be read from the independent redundant disk array, and the current data stripe can be XOR-processed to obtain the first data vector corresponding to the current data vector. Verify data. Specifically, taking Fig.
  • P a , P b , P c , and P d are the first verification data
  • the single error correction code generation method adopted is the RAID5 coding method. Due to the correspondence between data blocks changed so that the new encoding relation is:
  • S106 Perform double error correction code generation processing based on the second matrix to obtain second verification data, and store the second verification data into a second verification disk.
  • the double error correction code generation process is the process of using a double error correction code algorithm to realize the multi-block error correction operation.
  • the double error correction code algorithm can specifically be a cauchy (Cauchy) algorithm or a vandermonde (Vandermonde) algorithm.
  • the second matrix includes multiple data vectors, and the data vectors include the current data vector.
  • the corresponding current data stripe is read from the independent redundant disk array, and the vector serial number corresponding to the current data vector is obtained, and each current data stripe is generated by using the vector serial number The corresponding weight parameters.
  • the weighted data is obtained by using the weight parameter and the data strip, and XOR processing is performed on the weighted data to obtain the second verification data corresponding to the current data vector.
  • q a , q b , q c , and q d in FIG. 4 are the second verification data.
  • coding parameters are introduced, and the result is shown in Fig. 5, which is a schematic diagram of a specific double error correction coding provided by the embodiment of the present application.
  • the encoding relationship matrix in the above formula is obtained based on the matrix change of the vandermonde matrix, which satisfies the characteristics of the vandermonde matrix, so it is full rank and must be reversible. It can be determined that when any one or two disks fail, the vandermonde property still holds, so the huge speed of them can be recovered.
  • the error recovery data can be obtained from the non-target disk in the independent redundant disk array
  • the target first parity data can be obtained from the first parity disk
  • the second parity disk can be obtained from Obtain the second verification data of the target.
  • the first check data and the second check data generally correspond to different data vectors
  • the first check data or the second check data and the error recovery data correspond to the same data vector. Data recovery is performed on the target disk by using the error recovery data, the target first check data and the target second check data.
  • FIG. 6 is a specific schematic diagram of data recovery provided by the embodiment of the present application. If disk 1 fails, the data circled by the dotted line can be read from disk 2, disk 3, parity disk p (ie the first parity disk) and parity disk q (ie the second parity disk). During recovery, for a 1 and b 1 , c 2 , d 3 , p a and d 2 , c 3 , p b can be used for recovery respectively. For c 1 , d 1 , c 2 , d 3 , q c and d 2 , c 3 , q d can be used for restoration respectively.
  • Disk 2 Disk 3 the first parity disk, and the second parity disk
  • the data blocks to be read are two.
  • Disk 3 verification disk p In terms of the cost of four blocks of data per disk, the amount of data read per disk can be reduced by half during single error correction recovery, and the time required for data reading can be significantly reduced.
  • the first verification data and the second verification data calculated in this application are also applicable. Specifically, if the data of Disk 1 and Disk 2 is lost and memory recovery is required, the data of Disk 3 can be used first. The surviving data eliminates the same data in the verification disk p and the verification disk q, and the remaining data relationship is obtained, and the matrix A is constructed as:
  • the recovery method at this time is similar to the erasure correction method.
  • the storage state matrix records the storage relationship of each data strip in each disk in the independent redundant disk array, and is performed through the position exchange between the first data area and the second data area and the target disk elements in each second-order matrix group In the position exchange, the corresponding relationship between the first verification data and the second verification data and the data stripes is remapped.
  • the obtained first verification data and second verification data can participate in data restoration at the same time during data restoration, and there is no need to restore all parameter data, so the data read volume can be divided into the first verification data. and read the second verification data.
  • the two kinds of verification data are usually stored on two disks and can be read in parallel, so the time required for data reading can be reduced, and the speed and efficiency of data recovery can be improved.
  • the verification data generation device provided in the embodiment of the present application is introduced below, and the verification data generation device described below and the verification data generation method described above can be referred to in correspondence.
  • FIG. 7 is a schematic structural diagram of a verification data generation device provided in the embodiment of the present application, including:
  • the state generation module 110 is configured to obtain a storage state matrix corresponding to the independent redundant disk array; wherein, the storage state matrix includes multiple disk vectors and multiple data vectors, and the disk vectors and data vectors are orthogonal;
  • the data partition module 120 is used to determine the non-reference vector in the disk vector, and perform data vector element equalization processing in the initial data area formed by the non-reference vector to obtain the first data area and the second data area;
  • a position exchange module 130 configured to perform data exchange processing on the first data area and the second data area in the storage state matrix to obtain the first matrix
  • the element exchange module 140 is configured to determine several second-order matrix groups in the first data area and the second data area of the first matrix, and perform position exchange processing on the target disk elements in each second-order matrix group to obtain the second matrix;
  • the first generation module 150 is configured to perform single error correction code generation processing based on the second matrix to obtain first check data;
  • the second generation module 160 is configured to perform double error correction code generation processing based on the second matrix to obtain second check data.
  • the state generating module 110 includes:
  • An acquisition unit configured to acquire the number of disks, disk capacity and stripe capacity of the independent redundant disk array
  • the calculation unit is used to determine the number of columns of the storage state matrix by using the number of disks, and determine the number of rows of the storage state matrix by using the disk capacity and the stripe capacity; wherein, the number of rows is an even number;
  • the generating unit is configured to generate a storage state matrix based on the number of columns and rows, and the relative relationship of data storage locations of each disk.
  • generate units including:
  • An identification obtaining unit configured to obtain the identification information of the stripe corresponding to each data stripe in each disk
  • a disk vector generating unit configured to generate a disk vector corresponding to the disk according to the relative positional relationship of the data stripes in the disk;
  • the filling unit is used to generate an initial matrix based on the number of columns and rows, and fill the initial matrix with disk vectors to obtain a storage state matrix.
  • the element exchange module 140 includes:
  • the first judging unit is used to judge whether the initial data area in the first matrix has an even number of disk vectors
  • the first division unit is used to group the initial data area with two disk vectors as the granularity to obtain several third data areas if there is an even number of disk vectors;
  • the second division unit is used to determine a target disk vector if there are an odd number of disk vectors, and group non-target disk vectors with two disk vectors as the granularity to obtain several third data areas;
  • the second judging unit is used to judge whether the initial data area in the first matrix has an even number of data vectors
  • the third division unit is used to group each third data area with two data vectors as the granularity to obtain several second-order matrix groups if there is an even number of data vectors;
  • the fourth dividing unit is configured to determine a target data vector if there is an odd number of data vectors, and group non-target data vectors with two data vectors as a granularity to obtain several second-order matrix groups.
  • the second matrix includes a plurality of data vectors, and the data vectors include a current data vector;
  • the first generation module 150 includes:
  • the XOR calculation unit is used to read the corresponding current data stripe from the independent redundant disk array based on the current data vector, and perform XOR processing on the current data stripe to obtain the first check data corresponding to the current data vector .
  • the second matrix includes a plurality of data vectors, and the data vectors include a current data vector;
  • the second generating module 160 includes:
  • the reading unit is used to read the corresponding current data stripe from the independent redundant disk array based on the current data vector;
  • a weight generating unit configured to obtain a vector serial number corresponding to the current data vector, and use the vector serial number to generate weight parameters corresponding to each current data strip;
  • the weighted XOR unit is used to obtain weighted data by using the weight parameter and the data strip, and perform XOR processing on the weighted data to obtain the second verification data corresponding to the current data vector.
  • the first reading module is used to obtain error recovery data from non-target disks in the independent redundant disk array if a target disk failure is detected;
  • the second reading module is used to obtain the target first parity data from the first parity disk, and obtain the target second parity data from the second parity disk;
  • the recovery module is used for recovering data on the target disk by using the error recovery data, the target first check data and the target second check data.
  • the electronic device provided by the embodiment of the present application is introduced below, and the electronic device described below and the verification data generation method described above may be referred to in correspondence.
  • the electronic device 100 may include a processor 101 and a memory 102 , and may further include one or more of a multimedia component 103 , an information input/information output (I/O) interface 104 and a communication component 105 .
  • a multimedia component 103 may be included in the electronic device 100 .
  • I/O information input/information output
  • the processor 101 is used to control the overall operation of the electronic device 100, so as to complete all or part of the steps in the above verification data generation method;
  • the memory 102 is used to store various types of data to support the operation of the electronic device 100, These data may include, for example, instructions for any application or method operating on the electronic device 100 , as well as application-related data.
  • the memory 102 can be realized by any type of volatile or non-volatile storage device or their combination, such as Static Random Access Memory (Static Random Access Memory, SRAM), Electrically Erasable Programmable Read-Only Memory (Electrically Erasable Programmable Read-Only Memory, EEPROM), Erasable Programmable Read-Only Memory (EPROM), Programmable Read-Only Memory (PROM), Read-Only Memory (Read-Only Memory, One or more of Only Memory, ROM), magnetic memory, flash memory, magnetic disk or optical disk.
  • Static Random Access Memory Static Random Access Memory
  • SRAM Static Random Access Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • EPROM Erasable Programmable Read-Only Memory
  • PROM Programmable Read-Only Memory
  • Read-Only Memory One or more of Only Memory, ROM
  • magnetic memory flash memory
  • flash memory magnetic disk or optical disk.
  • Multimedia components 103 may include screen and audio components.
  • the screen can be, for example, a touch screen, and the audio component is used for outputting and/or inputting audio signals.
  • an audio component may include a microphone for receiving external audio signals.
  • the received audio signal may be further stored in the memory 102 or sent via the communication component 105 .
  • the audio component also includes at least one speaker for outputting audio signals.
  • the I/O interface 104 provides an interface between the processor 101 and other interface modules, which may be a keyboard, a mouse, buttons, and the like. These buttons can be virtual buttons or physical buttons.
  • the communication component 105 is used for wired or wireless communication between the electronic device 100 and other devices.
  • Wireless communication such as Wi-Fi, Bluetooth, near field communication (Near Field Communication, NFC for short), 2G, 3G or 4G, or a combination of one or more of them, so the corresponding communication component 105 may include: Wi-Fi parts, Bluetooth parts, NFC parts.
  • the electronic device 100 may be implemented by one or more Application Specific Integrated Circuit (ASIC for short), Digital Signal Processor (DSP for short), Digital Signal Processing Device (DSPD for short), Programmable Logic Device (Programmable Logic Device, PLD for short), Field Programmable Gate Array (Field Programmable Gate Array, FPGA for short), controller, microcontroller, microprocessor or other electronic components are implemented for implementing the above embodiments The checksum data generation method given.
  • ASIC Application Specific Integrated Circuit
  • DSP Digital Signal Processor
  • DSPD Digital Signal Processing Device
  • PLD Programmable Logic Device
  • Field Programmable Gate Array Field Programmable Gate Array
  • FPGA Field Programmable Gate Array
  • FIG. 9 is a schematic structural diagram of a data recovery system provided by an embodiment of the present application. As shown in the figure, it includes CPU, multiplication and addition operation components and storage system (that is, independent redundant disk array). After an error occurs in independent redundant disk array, it will inform the CPU of the error situation, and the CPU determines the control flow and controls the multiplication and addition.
  • the module reads the corresponding data blocks that need to be involved in the calculation from the storage, and then calculates the required recovery parameters, and uses the CPU or other hardware calculation methods to perform calculations, and the obtained parameters are passed to the multiplication and addition operation module. Through the multiplication and addition operation, the required parameters are obtained. Carry out XOR operation to update the data block of the stored data, and then send it back to the storage for updating to complete the recovery of the data block.
  • the present application also provides a computer non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the above verification data generation method are realized.
  • the non-volatile readable storage medium of the computer may include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk, etc.
  • U disk mobile hard disk
  • read-only memory Read-Only Memory
  • RAM random access memory
  • magnetic disk or optical disk etc.
  • each embodiment in this specification is described in a progressive manner, each embodiment focuses on the difference from other embodiments, and the same or similar parts of each embodiment can be referred to each other.
  • the description is relatively simple, and for relevant details, please refer to the description of the method part.
  • RAM random access memory
  • ROM read-only memory
  • EEPROM electrically programmable ROM
  • EEPROM electrically erasable programmable ROM
  • registers hard disk, removable disk, CD-ROM, or any other Any other known storage medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种校验数据生成方法、装置、电子设备及计算机非易失性可读存储介质,该方法包括:获取与独立冗余磁盘阵列对应的存储状态矩阵(S101);在磁盘向量中确定非参照向量,并在非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区(S102);对存储状态矩阵中的第一数据区和第二数据区进行数据交换处理,得到第一矩阵(S103);在第一矩阵的第一数据区和第二数据区中确定若干个二阶矩阵组,并对各个二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵(S104);基于第二矩阵进行单纠错编码生成处理,得到第一校验数据(S105);基于第二矩阵进行双纠错编码生成处理,得到第二校验数据(S106);该方法可以提高数据恢复速度和效率。

Description

校验数据生成方法、装置、设备及存储介质
相关申请的交叉引用
本申请要求于2022年2月11日提交中国专利局,申请号为202210126966.4,申请名称为“校验数据生成方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及磁盘阵列技术领域,特别涉及一种校验数据生成方法、校验数据生成装置、电子设备及计算机非易失性可读存储介质。
背景技术
RAID(Redundant Arrays of Independent Disks)即具有冗余能力的磁盘阵列,磁盘阵列是通过将多个独立磁盘组合一起,从而得到一个容量巨大的磁盘组。采用RAID存储技术,可以大大提高存储容量,提高系统输入输出的请求处理能力并且通过数据的分布式存储技术,并行访问手段和信息冗余技术提高数据的可靠性。RAID 6是一种带有两个分布存储的奇偶校验码独立磁盘的结构,其能够在同时由两个磁盘发生数据错误时进行数据恢复,进一步提升了磁盘阵列的数据可靠性。然而,RAID 6在向下兼容一个仅有一个磁盘发生数据错误的场景时,数据恢复过程只需要使用其中的一种校验码,且该种校验码需要被全部使用,这使得该校验码对应的存储磁盘IO吞吐数据量极大,导致数据恢复速度较慢。
对发生数据错误的磁盘进行数据恢复时,需要尽可能快的提升数据恢复速度。
发明内容
有鉴于此,本申请的目的在于提供一种校验数据生成方法、校验数据生成装置、电子设备及计算机非易失性可读存储介质,提高数据恢复速度和效率。
为解决上述技术问题,本申请提供了一种校验数据生成方法,包括:
获取与独立冗余磁盘阵列对应的存储状态矩阵;其中,存储状态矩阵包括多个磁盘向量和多个数据向量,磁盘向量和数据向量正交;
在磁盘向量中确定非参照向量,并在非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区;
对存储状态矩阵中的第一数据区和第二数据区进行数据交换处理,得到第一矩阵;
在第一矩阵的第一数据区和第二数据区中确定若干个二阶矩阵组,并对各个二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵;
基于第二矩阵进行单纠错编码生成处理,得到第一校验数据,并将第一校验数据存入第一校验磁盘;
基于第二矩阵进行双纠错编码生成处理,得到第二校验数据,并将第二校验数据存入第二校验磁盘。
可选地,获取与独立冗余磁盘阵列对应的存储状态矩阵,包括:
获取独立冗余磁盘阵列的磁盘数量、磁盘容量和条带容量;
利用磁盘数量确定存储状态矩阵的列数,并利用磁盘容量和条带容量确定存储状态矩阵的行数;其中,行数为偶数;
基于列数和行数,以及各个磁盘的数据存储位置相对关系,生成存储状态矩阵。
可选地,基于列数和行数,以及各个磁盘的数据存储位置相对关系,生成存储状态矩阵,包括:
获取各个磁盘中各个数据条带对应的条带标识信息;
按照数据条带在磁盘中的相对位置关系,生成磁盘对应的磁盘向量;
基于列数和行数生成初始矩阵,并利用磁盘向量填充初始矩阵,得到存储状态矩阵。
可选地,在第一矩阵的第一数据区和第二数据区中确定若干个二阶矩阵组,包括:
判断第一矩阵中的初始数据区是否具有偶数个磁盘向量;
若具有偶数个磁盘向量,则以两个磁盘向量为粒度对初始数据区进行分组,得到若干个第三数据区;
若具有奇数个磁盘向量,则确定一个目标磁盘向量,并对非目标磁盘向量以两个磁盘向量为粒度进行分组,得到若干个第三数据区;
判断第一矩阵中的初始数据区是否具有偶数个数据向量;
若具有偶数个数据向量,则以两个数据向量为粒度对各个第三数据区进行分组,得到若干个二阶矩阵组;
若具有奇数个数据向量,则确定一个目标数据向量,并对非目标数据向量以两个数据向量为粒度进行分组,得到若干个二阶矩阵组。
可选地,第二矩阵包括多个数据向量,数据向量包括当前数据向量;
基于第二矩阵进行单纠错编码生成处理,得到第一校验数据,包括:
基于当前数据向量,从独立冗余磁盘阵列中读出对应的当前数据条带,并对当前数据条带进行异或处理,得到当前数据向量对应的第一校验数据。
可选地,第二矩阵包括多个数据向量,数据向量包括当前数据向量;
基于第二矩阵进行双纠错编码生成处理,得到第二校验数据,包括:
基于当前数据向量,从独立冗余磁盘阵列中读出对应的当前数据条带;
获取当前数据向量对应的向量序号,并利用向量序号生成各个当前数据条带对应的权重参数;
利用权重参数和数据条带得到加权数据,并对加权数据进行异或处理,得到当前数据向量对应的第二校验数据。
可选地,还包括:
若检测到目标磁盘故障,则从独立冗余磁盘阵列中的非目标磁盘中获取错误恢复数据;
从第一校验磁盘中获取目标第一校验数据,并从第二校验磁盘中获取目标第二校验数据;
利用错误恢复数据、目标第一校验数据和目标第二校验数据对目标磁盘进行数据恢复。
本申请还提供了一种校验数据生成装置,包括:
状态生成模块,用于获取与独立冗余磁盘阵列对应的存储状态矩阵;其中,存储状态矩阵包括多个磁盘向量和多个数据向量,磁盘向量和数据向量正交;
数据分区模块,用于在磁盘向量中确定非参照向量,并在非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区;
位置交换模块,用于对存储状态矩阵中的第一数据区和第二数据区进行数据交换处理,得到第一矩阵;
元素交换模块,用于在第一矩阵的第一数据区和第二数据区中确定若干个二阶矩阵组,并对各个二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵;
第一生成模块,用于基于第二矩阵进行单纠错编码生成处理,得到第一校验数据;
第二生成模块,用于基于第二矩阵进行双纠错编码生成处理,得到第二校验数据。
本申请还提供了一种电子设备,包括存储器和处理器,其中:
存储器,用于保存计算机程序;
处理器,用于执行计算机程序,以实现上述的校验数据生成方法。
本申请还提供了一种计算机非易失性可读存储介质,用于保存计算机程序,其中,计算机程序被处理器执行时实现上述的校验数据生成方法。
本申请提供的校验数据生成方法,获取与独立冗余磁盘阵列对应的存储状态矩阵;其中,存储状态矩阵包括多个磁盘向量和多个数据向量,磁盘向量和数据向量正交;在磁盘向量中确定非参照向量,并在非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区;对存储状态矩阵中的第一数据区和第二数据区进行数据交换处理,得到第一矩阵;在第一矩阵的第一数据区和第二数据区中确定若干个二阶矩阵组,并对各个二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵;基于第二矩阵进行单纠错编码生成处理,得到第一校验数据;基于第二矩阵进行双纠错编码生成处理,得到第二校验数据。
可见,该方法在校验数据生成前,对校验数据和独立冗余磁盘阵列中各个数据条带的关系进行了重新调度。存储状态矩阵记录了独立冗余磁盘阵列中各个数据条带在各个磁盘中的存储关系,通过第一数据区和第二数据区之间的位置交换以及各个二阶矩阵组内的目标磁盘元素进行位置交换,对第一校验数据和第二校验数据与数据条带的对应关系进行了重新映射。得到的第一校验数据和第二校验数据在进行数据恢复时能够同时参与数据恢复,且无需全部参数数据恢复,因此可以将数据读取量均分为对第一校验数据的读取和对第二校验数据的读取。两种校验数据通常被存储于两个磁盘,可以并行读取,因此可以减 少数据读取所需的时间,提高数据恢复速度和效率。
此外,本申请还提供了一种校验数据生成装置、电子设备及计算机非易失性可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种校验数据生成方法流程图;
图2为本申请实施例提供的一种具体的存储状态矩阵示意图;
图3为本申请实施例提供的一种具体的参照向量确定示意图;
图4为本申请实施例提供的一种具体的第二矩阵示意图;
图5为本申请实施例提供的一种具体的双纠错编码示意图;
图6为本申请实施例提供的一种具体的数据恢复示意图;
图7为本申请实施例提供的一种校验数据生成装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图;
图9为本申请实施例提供的一种数据恢复系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种校验数据生成方法流程图。该方法包括:
S101:获取与独立冗余磁盘阵列对应的存储状态矩阵。
其中,存储状态矩阵包括多个磁盘向量和多个数据向量,磁盘向量和数据向量正交。独立冗余磁盘阵列中包括多个磁盘,每个磁盘中存储有若干个数据块,其中可以包括有效数据块和空白数据块。磁盘向量,用于表示一个磁盘的各个数据块的向量,数据向量,用于表示各个磁盘中处于统一存储位置或具有同一唯一标识信息的向量。请参考图2,图2为本申请实施例提供的一种具体的存储状态矩阵示意图,其中,盘1、盘2和盘3的三个列向量构成存储状态矩阵。其中,a 1,1表示盘1中1号存储位置存储的数据块,a 2,1表示盘2中1号存储位置存储的数据块,以此类推。可以理解的是,a x,y元素对应的数据块具体可以为存入的有效数据块,或者可以为没有写入任何有效数据的空白数据块。因此可以确定,图2中的数据向量为行向量,磁盘向量为列向量。存储状态矩阵中的各个元素,例如图2中的a x,y元素的具体内容不做限定,其能够唯一表示一个数据块即可,例如可以为各个数据块的唯一标识信息,该唯一标识信息的形式可以根据需要设置,例如如图2所示,其采用(磁盘序号,数据块在磁盘中的序号)的方式唯一标识一个数据块。此外,可以理解的是,磁盘向量和数据向量保持相交即可,二者均可以为行向量或列向量。
需要说明的是,独立冗余磁盘阵列中的磁盘数量不做限定,但是每个磁盘能够存储的数据块数量、大小相同,且单个磁盘存储的数据块数量应当为偶数个,以便保证后续校验数据能够正确生成。
本实施例并不限定存储状态矩阵的具体获取方式,例如,执行本申请中各个步骤的电子设备(可称为执行主体设备)可以从其他电子设备处获取存储状态矩阵,或者,执行主体设备可以直接根据其对应的RAID的状态,生成存储状态矩阵。例如在一种实施方式中,可以获取独立冗余磁盘阵列的磁盘数量、磁盘容量和条带容量,其中,条带容量即为一个数据块的数据块大小,需要说明的是,单个磁盘的数据条带(即数据块)的数量应当为偶数,因此,可以利用磁盘数量确定存储状态矩阵的列数,并利用磁盘容量和条带容量确定存储状态矩阵的行数,且行数为偶数。基于得到的列数和行数,以及各个磁盘的数据存储位置相对关系,生成存储状态矩阵。其中,数据存储位置相对关系,是指磁盘中各个数据块在磁盘中的存储位置的相对关系。
具体的,在一种实施方式中,可以获取各个磁盘中各个数据条带(即数据 块)对应的条带标识信息,例如图2中的a 1,1这一标识信息,并按照数据条带在磁盘中的相对位置关系,生成磁盘对应的磁盘向量,该相对位置关系,即为上述的数据存储位置相对关系,并基于列数和行数生成初始矩阵,初始矩阵,是指元素未填充的空白矩阵,利用磁盘向量填充初始矩阵,即可得到存储状态矩阵。
S102:在磁盘向量中确定非参照向量,并在非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区。
在得到存储状态矩阵后,从其中的若干个磁盘向量中确定出一个参照向量,并将其他确定为非参照向量。示例性的,请参考图3,图3为本申请实施例提供的一种具体的参照向量确定示意图,其在图2的存储状态矩阵中,将盘1对应的磁盘向量确定为参照向量。在确定非参照向量后,将其所处的区域确定为初始数据区,并将初始数据区中各个数据向量的元素均分为两份,将均分后两份元素分别所处的区域确定为第一数据区和第二数据区。
具体的,请参考图3,数据向量可以分别标记为a组、b组、c组和d组,a 2和a 3所属的磁盘向量为非参照向量,因此初始数据区中的元素包括a 2、b 2、c 2、d 2、a 3、b 3、c 3、d 3,数据向量元素均分处理,是指按照数据向量(即横向)的方向,进行元素的均分处理,以图3为例,可以将初始数据区中a组和b组的元素划分至第一数据区,初始数据区中c组和d组划分至第二数据区。可以理解的是,还可以按照a组和c组、b组和d组的方式进行划分,或者可以按照a组和d组、b组和c组的方式进行划分。
S103:对存储状态矩阵中的第一数据区和第二数据区进行数据交换处理,得到第一矩阵。
在确定第一数据区和第二数据区后,将两个数据区中的元素进行对调,即进行数据交换处理,即可得到第一矩阵。需要说明的是,在数据对调之后,第一数据区和第二数据区中各个元素之间的相对位置关系不发生变化,例如原本位于第一数据区第一行的数据,在交换至第二数据区后,仍处于第二数据区的第一行。
S104:在第一矩阵的第一数据区和第二数据区中确定若干个二阶矩阵组,并对各个二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵。
其中,二阶矩阵组,是指由两行两列共四个元素构成的数据组合,其中四 个元素必然分别属于两个磁盘向量和两个数据向量。在得到第一矩阵后,分别在第一数据区和第二数据区中确定若干个二阶矩阵组,二阶矩阵组的具体确定方式不做限定,例如可以按照向量相邻顺序依次选取二阶矩阵组,或者可以随机选取两个磁盘向量和两个数据向量,并将其相交位置的四个元素确定为同属于一个二阶矩阵组。在确定二阶矩阵组后,对于每一个二阶矩阵组来说,其中的元素分别属于两个磁盘向量,可以将同属于一个磁盘向量的任意两个元素确定为目标磁盘元素,并将其位置进行交换。所有的二阶矩阵组均进行上述处理,得到第二矩阵。
示例性的,请参考图4,图4为本申请实施例提供的一种具体的第二矩阵示意图,在对区间1(即第一数据区)和区间2(即第二数据区)进行数据交换后,每个数据区均构成一个二阶矩阵组,将二阶矩阵组中属于盘3的磁盘向量的元素确定为目标磁盘元素,进而进行交换,即可得到如图4所示的第二矩阵。可以理解的是,经过交换后,二阶矩阵组中原本属于不同数据向量的两个元素被重新分配至一个数据向量中。
可以理解的是,由于分别在第一数据区和第二数据区内确定二阶矩阵组,因此可能存在某一数据区内的行数和/或列数为奇数的情况,在这种情况下同样能够生成第二矩阵,使得本申请提供的方法能够具备更广阔的适用范围。具体的,可以首先判断第一矩阵中的初始数据区是否具有偶数个磁盘向量,若具有偶数个磁盘向量,则以两个磁盘向量为粒度对初始数据区进行分组,得到若干个第三数据区。需要说明的是,本申请中的分组时的两个磁盘向量可以相邻或不相邻。若具有奇数个磁盘向量,则确定一个目标磁盘向量,并对非目标磁盘向量以两个磁盘向量为粒度进行分组,得到若干个第三数据区。在划分第三数据区完毕后,可以判断第一矩阵中的初始数据区是否具有偶数个数据向量。若具有偶数个数据向量,则以两个数据向量为粒度对各个第三数据区进行分组,得到若干个二阶矩阵组。若具有奇数个数据向量,则确定一个目标数据向量,并对非目标数据向量以两个数据向量为粒度进行分组,得到若干个二阶矩阵组。
可以理解的是,经过上述处理,同样可以确定若干个二阶矩阵组,只是可能并不是所有的磁盘向量和/或数据向量均能够被划分至某个二阶矩阵组中。对于这个磁盘向量和/或数据向量对应的数据块,在需要对其进行数据恢复时,可 以采用传统的RAID6算法对其进行恢复,对于被划分至某个二阶矩阵组的元素对应的数据块来说,在需要对其进行数据恢复时,则可以仅读出部分后续生成的第一校验数据和第二校验数据,减少数据读取时长,提高数据恢复速度。
S105:基于第二矩阵进行单纠错编码生成处理,得到第一校验数据,并将第一校验数据存入第一校验磁盘。
在得到第二矩阵后,对其进行单纠错编码生成处理,其中,单纠错编码生成处理的具体方式不做限定,可以参考相关技术。例如在一种实施方式中,第二矩阵包括多个数据向量,数据向量包括当前数据向量。在计算第一校验数据时,可以基于当前数据向量,从独立冗余磁盘阵列中读出对应的当前数据条带,并对当前数据条带进行异或处理,得到当前数据向量对应的第一校验数据。具体的,以图4为例,P a、P b、P c、P d即为第一校验数据,采用的单纠错编码生成方式为RAID5的编码方式,由于数据块之间的对应关系发生了变化,因此新的编码关系为:
Figure PCTCN2022122787-appb-000001
S106:基于第二矩阵进行双纠错编码生成处理,得到第二校验数据,并将第二校验数据存入第二校验磁盘。
双纠错编码生成处理,是采用双纠错编码算法以实现多数据块纠错运算的处理,双纠错编码算法具体可以为cauchy(柯西)或vandermonde(范德蒙德)等算法。以范德蒙德算法为例,第二矩阵包括多个数据向量,数据向量包括当前数据向量。在计算第二校验盘时,基于当前数据向量,从独立冗余磁盘阵列中读出对应的当前数据条带,并获取当前数据向量对应的向量序号,并利用向量序号生成各个当前数据条带对应的权重参数。利用权重参数和数据条带得到加权数据,并对加权数据进行异或处理,得到当前数据向量对应的第二校验数据。具体的,基于图4,图4中的q a、q b、q c、q d即为第二校验数据。针对图4中的元素对应关系,引入编码参数,结果如图5所示,图5为本申请实施例提供的一种具体的双纠错编码示意图。在图5所示的矩阵中,因为盘1、盘2、盘3三个列向量所组成的子矩阵满足vandermonde特性,因此一定满 秩,因此其任意子矩阵按照vandermonde特性可知,一定也是满秩矩阵,因此说明图5中的矩阵一定是可解逆矩阵,则第二校验数据的计算过程为:
Figure PCTCN2022122787-appb-000002
可知上述公式中的编码关系矩阵是基于vandermonde矩阵的矩阵变化所得,满足vandermonde矩阵特性,因此满秩,一定可逆。可以确定,当任意一到两个磁盘发生错误时,vandermonde特性依然成立,因此可以对其中的巨快进行恢复。
进一步的,在得到第一校验数据和第二校验数据,并将其分别存入第一校验磁盘和第二校验磁盘后,若某一个磁盘发生故障,例如若检测到目标磁盘故障,需要对其中的数据进行恢复时,可以从独立冗余磁盘阵列中的非目标磁盘中获取错误恢复数据,从第一校验磁盘中获取目标第一校验数据,并从第二校验磁盘中获取目标第二校验数据。需要说明的是,第一校验数据和第二校验数据通常对应于不同的数据向量,且第一校验数据或第二校验数据与错误恢复数据对应的数据向量相同。利用错误恢复数据、目标第一校验数据和目标第二校验数据对目标磁盘进行数据恢复。具体的,请参考图6,图6为本申请实施例提供的一种具体的数据恢复示意图。若盘1发生故障,则可以从盘2、盘3、校验盘p(即第一校验磁盘)和校验盘q(即第二校验磁盘)中读出虚线圆圈圈出的数据。在恢复时,对于a 1、b 1,可以分别使用c 2、d 3、p a以及d 2、c 3、p b进行恢复。对于c 1、d 1,可以分别使用c 2、d 3、q c以及d 2、c 3、q d进行恢复。此时对于盘2、盘3、第一校验磁盘和第二校验磁盘来说,被读取的数据块都是两块,相比于传统RAID 6在做数据恢复时,需要读取盘2、盘3、校验盘p每盘四块数据的代价而言,在单纠错恢复时可以减少每盘一半的数据读取量,明显减少数据读取所需时长。
对于双纠错的场景,本申请计算的第一校验数据和第二校验数据同样适用,具体的,若盘1和盘2的数据发生丢失,需要记性恢复,则可以首先利用盘3的存活数据消除掉校验盘p和校验盘q中的相同数据,得到的剩余数据关 系,并构建矩阵A为:
Figure PCTCN2022122787-appb-000003
此时的恢复方式和纠删方法类似,对矩阵A求秩可得rank(A)=8,可以确定矩阵可逆,因此通过矩阵的逆矩阵关系,可以求出a 1、b 1、c 1、d 1、a 2、b 2、c 2、d 2的值,实现数据恢复。
应用本申请实施例提供的校验数据生成方法,在校验数据生成前,对校验数据和独立冗余磁盘阵列中各个数据条带的关系进行了重新调度。存储状态矩阵记录了独立冗余磁盘阵列中各个数据条带在各个磁盘中的存储关系,通过第一数据区和第二数据区之间的位置交换以及各个二阶矩阵组内的目标磁盘元素进行位置交换,对第一校验数据和第二校验数据与数据条带的对应关系进行了重新映射。得到的第一校验数据和第二校验数据在进行数据恢复时能够同时参与数据恢复,且无需全部参数数据恢复,因此可以将数据读取量均分为对第一校验数据的读取和对第二校验数据的读取。两种校验数据通常被存储于两个磁盘,可以并行读取,因此可以减少数据读取所需的时间,提高数据恢复速度和效率。
下面对本申请实施例提供的校验数据生成装置进行介绍,下文描述的校验数据生成装置与上文描述的校验数据生成方法可相互对应参照。
请参考图7,图7为本申请实施例提供的一种校验数据生成装置的结构示意图,包括:
状态生成模块110,用于获取与独立冗余磁盘阵列对应的存储状态矩阵; 其中,存储状态矩阵包括多个磁盘向量和多个数据向量,磁盘向量和数据向量正交;
数据分区模块120,用于在磁盘向量中确定非参照向量,并在非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区;
位置交换模块130,用于对存储状态矩阵中的第一数据区和第二数据区进行数据交换处理,得到第一矩阵;
元素交换模块140,用于在第一矩阵的第一数据区和第二数据区中确定若干个二阶矩阵组,并对各个二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵;
第一生成模块150,用于基于第二矩阵进行单纠错编码生成处理,得到第一校验数据;
第二生成模块160,用于基于第二矩阵进行双纠错编码生成处理,得到第二校验数据。
可选地,状态生成模块110,包括:
获取单元,用于获取独立冗余磁盘阵列的磁盘数量、磁盘容量和条带容量;
计算单元,用于利用磁盘数量确定存储状态矩阵的列数,并利用磁盘容量和条带容量确定存储状态矩阵的行数;其中,行数为偶数;
生成单元,用于基于列数和行数,以及各个磁盘的数据存储位置相对关系,生成存储状态矩阵。
可选地,生成单元,包括:
标识获取单元,用于获取各个磁盘中各个数据条带对应的条带标识信息;
磁盘向量生成单元,用于按照数据条带在磁盘中的相对位置关系,生成磁盘对应的磁盘向量;
填充单元,用于基于列数和行数生成初始矩阵,并利用磁盘向量填充初始矩阵,得到存储状态矩阵。
可选地,元素交换模块140,包括:
第一判断单元,用于判断第一矩阵中的初始数据区是否具有偶数个磁盘向量;
第一划分单元,用于若具有偶数个磁盘向量,则以两个磁盘向量为粒度对初始数据区进行分组,得到若干个第三数据区;
第二划分单元,用于若具有奇数个磁盘向量,则确定一个目标磁盘向量,并对非目标磁盘向量以两个磁盘向量为粒度进行分组,得到若干个第三数据区;
第二判断单元,用于判断第一矩阵中的初始数据区是否具有偶数个数据向量;
第三划分单元,用于若具有偶数个数据向量,则以两个数据向量为粒度对各个第三数据区进行分组,得到若干个二阶矩阵组;
第四划分单元,用于若具有奇数个数据向量,则确定一个目标数据向量,并对非目标数据向量以两个数据向量为粒度进行分组,得到若干个二阶矩阵组。
可选地,第二矩阵包括多个数据向量,数据向量包括当前数据向量;
第一生成模块150,包括:
异或计算单元,用于基于当前数据向量,从独立冗余磁盘阵列中读出对应的当前数据条带,并对当前数据条带进行异或处理,得到当前数据向量对应的第一校验数据。
可选地,第二矩阵包括多个数据向量,数据向量包括当前数据向量;
第二生成模块160,包括:
读取单元,用于基于当前数据向量,从独立冗余磁盘阵列中读出对应的当前数据条带;
权重生成单元,用于获取当前数据向量对应的向量序号,并利用向量序号生成各个当前数据条带对应的权重参数;
加权异或单元,用于利用权重参数和数据条带得到加权数据,并对加权数据进行异或处理,得到当前数据向量对应的第二校验数据。
可选地,还包括:
第一读取模块,用于若检测到目标磁盘故障,则从独立冗余磁盘阵列中的非目标磁盘中获取错误恢复数据;
第二读取模块,用于从第一校验磁盘中获取目标第一校验数据,并从第二校验磁盘中获取目标第二校验数据;
恢复模块,用于利用错误恢复数据、目标第一校验数据和目标第二校验数据对目标磁盘进行数据恢复。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的校验数据生成方法可相互对应参照。
请参考图8,图8为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的校验数据生成方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application Specific  Integrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的校验数据生成方法。
请参考图9,图9为本申请实施例提供的一种数据恢复系统的结构示意图。如图所示,其中包括CPU、乘加运算部件和存储系统(即独立冗余磁盘阵列),独立冗余磁盘阵列发生错误后,会将错误情况告知CPU,由CPU决定控制流,控制乘加模块从存储里读取相应需要参加运算的数据块,然后计算所需要的恢复参数,利用CPU或是其他硬件运算方式进行计算,得到的参数传递给乘加运算模块,通过乘加运算,得到需要进行异或运算以更新存储数据的数据块,然后传回给存储进行更新,完成数据块的恢复。
下面对本申请实施例提供的计算机非易失性可读存储介质进行介绍,下文描述的计算机非易失性可读存储介质与上文描述的校验数据生成方法可相互对应参照。
本申请还提供一种计算机非易失性可读存储介质,计算机非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的校验数据生成方法的步骤。
该计算机非易失性可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实 现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (20)

  1. 一种校验数据生成方法,其特征在于,包括:
    获取与独立冗余磁盘阵列对应的存储状态矩阵;其中,所述存储状态矩阵包括多个磁盘向量和多个数据向量,所述磁盘向量和所述数据向量正交;
    在所述磁盘向量中确定非参照向量,并在所述非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区;
    对所述存储状态矩阵中的所述第一数据区和所述第二数据区进行数据交换处理,得到第一矩阵;
    在所述第一矩阵的所述第一数据区和所述第二数据区中确定若干个二阶矩阵组,并对各个所述二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵;
    基于所述第二矩阵进行单纠错编码生成处理,得到第一校验数据,并将所述第一校验数据存入第一校验磁盘;
    基于所述第二矩阵进行双纠错编码生成处理,得到第二校验数据,并将所述第二校验数据存入第二校验磁盘。
  2. 根据权利要求1所述的校验数据生成方法,其特征在于,所述获取与独立冗余磁盘阵列对应的存储状态矩阵,包括:
    获取所述独立冗余磁盘阵列的磁盘数量、磁盘容量和条带容量;
    利用所述磁盘数量确定所述存储状态矩阵的列数,并利用所述磁盘容量和所述条带容量确定所述存储状态矩阵的行数;其中,所述行数为偶数;
    基于所述列数和行数,以及各个磁盘的数据存储位置相对关系,生成所述存储状态矩阵。
  3. 根据权利要求2所述的校验数据生成方法,其特征在于,所述基于所述列数和行数,以及各个磁盘的数据存储位置相对关系,生成所述存储状态矩阵,包括:
    获取各个磁盘中各个数据条带对应的条带标识信息;
    按照所述数据条带在所述磁盘中的相对位置关系,生成所述磁盘对应的磁盘向量;
    基于所述列数和行数生成初始矩阵,并利用所述磁盘向量填充所述初始矩阵,得到所述存储状态矩阵。
  4. 根据权利要求1所述的校验数据生成方法,其特征在于,所述在所 述第一矩阵的所述第一数据区和所述第二数据区中确定若干个二阶矩阵组,包括:
    响应于所述第一矩阵中的所述初始数据区具有偶数个所述磁盘向量,则以两个磁盘向量为粒度对所述初始数据区进行分组,得到若干个第三数据区;
    响应于所述第一矩阵中的所述初始数据区具有奇数个所述磁盘向量,则确定一个目标磁盘向量,并对非目标磁盘向量以两个磁盘向量为粒度进行分组,得到若干个第三数据区;
    响应于所述第一矩阵中的所述初始数据区具有偶数个所述数据向量,则以两个数据向量为粒度对各个所述第三数据区进行分组,得到若干个所述二阶矩阵组;
    响应于所述第一矩阵中的所述初始数据区具有奇数个所述数据向量,则确定一个目标数据向量,并对非目标数据向量以两个数据向量为粒度进行分组,得到若干个所述二阶矩阵组。
  5. 根据权利要求1所述的校验数据生成方法,其特征在于,所述第二矩阵包括多个数据向量,所述数据向量包括当前数据向量;
    所述基于所述第二矩阵进行单纠错编码生成处理,得到第一校验数据,包括:
    基于所述当前数据向量,从所述独立冗余磁盘阵列中读出对应的当前数据条带,并对所述当前数据条带进行异或处理,得到所述当前数据向量对应的所述第一校验数据。
  6. 根据权利要求1所述的校验数据生成方法,其特征在于,所述第二矩阵包括多个数据向量,所述数据向量包括当前数据向量;
    所述基于所述第二矩阵进行双纠错编码生成处理,得到第二校验数据,包括:
    基于所述当前数据向量,从所述独立冗余磁盘阵列中读出对应的当前数据条带;
    获取所述当前数据向量对应的向量序号,并利用所述向量序号生成各个所述当前数据条带对应的权重参数;
    利用所述权重参数和所述数据条带得到加权数据,并对所述加权数据进行异或处理,得到所述当前数据向量对应的所述第二校验数据。
  7. 根据权利要求1所述的校验数据生成方法,其特征在于,还包括:
    若检测到目标磁盘故障,则从所述独立冗余磁盘阵列中的非目标磁盘中获取错误恢复数据;
    从所述第一校验磁盘中获取目标第一校验数据,并从所述第二校验磁盘中获取目标第二校验数据;
    利用所述错误恢复数据、所述目标第一校验数据和所述目标第二校验数据对所述目标磁盘进行数据恢复。
  8. 根据权利要求3所述的校验数据生成方法,其特征在于,在按照所述数据条带在所述磁盘中的相对位置关系,生成所述磁盘对应的磁盘向量之前,还包括:
    根据所述条带标识信息,获取所述条带标识信息对应的数据条带的磁盘序号以及所述数据条带在所述磁盘中的序号;
    根据所述数据条带的磁盘序号以及所述数据条带在所述磁盘中的序号,确定所述数据条带在所述磁盘中的相对位置关系;
  9. 根据权利要求1所述的校验数据生成方法,其特征在于,所述在所述磁盘向量中确定非参照向量,包括:
    在所述磁盘向量中确定任意一个磁盘对应的向量为参照向量;
    将所述磁盘向量中除了所述参照向量之外的向量确定为所述非参照向量。
  10. 根据权利要求1所述德校验数据生成方法,其特征在于,所述在所述非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区,包括:
    将所述非参照向量所处的区域确定为初始数据区;
    将所述初始数据区中的各个数据向量元素按照所述数据向量的方向平均分为两份,得到两份数据向量元素;
    将所述两份数据向量元素所处的区域分别确定为所述第一数据区与所述第二数据区。
  11. 根据根据权利要求1所述的校验数据生成方法,其特征在于,对所述存储状态矩阵中的所述第一数据区和所述第二数据区进行数据交换处理,得到第一矩阵,包括:
    获取所述第一数据区中的数据向量元素与所述第二数据区中的数据向量 元素;
    将所述第一数据区中的数据向量元素与所述第二数据区中的数据向量元素在所述存储状态矩阵中的位置进行对调,得到所述第一矩阵。
  12. 根据权利要求11所述的校验数据生成方法,其特征在于,在进行数据对调之后,所述第一数据区和所述第二数据区中的各个数据向量元素之间的相对位置关系不发生变化。
  13. 根据权利要求1所述的校验数据生成方法,其特征在于,所述对各个所述二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵,包括:
    将所述二阶矩阵组中同属于一个磁盘向量的任意两个元素确定为所述目标磁盘元素;
    将所述目标磁盘元素在所述二阶矩阵组中的位置进行交换,得到所述第二矩阵。
  14. 根据权利要求7所述的校验数据生成方法,其特征在于,所述第一校验数据和所述第二校验数据对应于不同的数据向量,且所述第一校验数据或所述第二校验数据与所述错误恢复数据对应的数据向量相同。
  15. 根据权利要求7所述的校验数据生成方法,其特征在于,所述利用所述错误恢复数据、所述目标第一校验数据和所述目标第二校验数据对所述目标磁盘进行数据恢复,包括:
    当单个磁盘发生数据缺失时,确定所述目标磁盘的每个数据块对应的所述错误恢复数据、所述第一校验数据和所述第二校验数据;
    根据所述错误恢复数据、所述第一校验数据和所述第二校验数据,对所述目标磁盘中对应的数据块进行数据恢复。
  16. 根据权利要求7所述的校验数据生成方法,所述利用所述错误恢复数据、所述目标第一校验数据和所述目标第二校验数据对所述目标磁盘进行数据恢复,包括:
    当至少两个磁盘发生数据缺失时,消除所述第一校验数据与所述第二校验数据中,与所述错误恢复数据的相同数据,得到剩余数据;
    根据所述剩余数据之间的数据关系,构建关系矩阵;
    对所述关系矩阵进行计算,得到所述目标磁盘对应的数据块的向量的值;
    根据所述目标磁盘对应的数据块的向量的值,对所述目标磁盘进行数据恢复。
  17. 一种校验数据生成装置,其特征在于,包括:
    状态生成模块,用于获取与独立冗余磁盘阵列对应的存储状态矩阵;其中,所述存储状态矩阵包括多个磁盘向量和多个数据向量,所述磁盘向量和所述数据向量正交;
    数据分区模块,用于在所述磁盘向量中确定非参照向量,并在所述非参照向量构成的初始数据区进行数据向量元素均分处理,得到第一数据区和第二数据区;
    位置交换模块,用于对所述存储状态矩阵中的所述第一数据区和所述第二数据区进行数据交换处理,得到第一矩阵;
    元素交换模块,用于在所述第一矩阵的所述第一数据区和所述第二数据区中确定若干个二阶矩阵组,并对各个所述二阶矩阵组中的目标磁盘元素进行位置交换处理,得到第二矩阵;
    第一生成模块,用于基于所述第二矩阵进行单纠错编码生成处理,得到第一校验数据;
    第二生成模块,用于基于所述第二矩阵进行双纠错编码生成处理,得到第二校验数据。
  18. 根据权利要求17所述的校验数据生成装置,其特征在于,还包括:
    第一读取模块,用于若检测到目标磁盘故障,则从独立冗余磁盘阵列中的非目标磁盘中获取错误恢复数据;
    第二读取模块,用于从第一校验磁盘中获取目标第一校验数据,并从第二校验磁盘中获取目标第二校验数据;
    恢复模块,用于利用错误恢复数据、目标第一校验数据和目标第二校验数据对目标磁盘进行数据恢复。
  19. 一种电子设备,其特征在于,包括存储器和处理器,其中:
    所述存储器,用于保存计算机程序;
    所述处理器,用于执行所述计算机程序,以实现如权利要求1至16任一项所述的校验数据生成方法。
  20. 一种计算机非易失性可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至16任一项所述的校验数据生成方法。
PCT/CN2022/122787 2022-02-11 2022-09-29 校验数据生成方法、装置、设备及存储介质 WO2023151288A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210126966.4 2022-02-11
CN202210126966.4A CN114168087B (zh) 2022-02-11 2022-02-11 校验数据生成方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
WO2023151288A1 true WO2023151288A1 (zh) 2023-08-17

Family

ID=80489717

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/122787 WO2023151288A1 (zh) 2022-02-11 2022-09-29 校验数据生成方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN114168087B (zh)
WO (1) WO2023151288A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168087B (zh) * 2022-02-11 2022-04-22 苏州浪潮智能科技有限公司 校验数据生成方法、装置、设备及存储介质
CN114415983B (zh) * 2022-03-30 2022-06-07 苏州浪潮智能科技有限公司 一种raid编解码方法、装置、设备及可读存储介质
CN115543693B (zh) * 2022-11-24 2023-03-21 苏州浪潮智能科技有限公司 数据恢复方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138125A (en) * 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
CN101625652A (zh) * 2009-08-04 2010-01-13 成都市华为赛门铁克科技有限公司 多磁盘容错系统及生成校验块、恢复数据块的方法
US20130124776A1 (en) * 2011-11-15 2013-05-16 XtremlO Ltd. Secure data storage in raid memory devices
CN103733175A (zh) * 2013-08-09 2014-04-16 华为技术有限公司 一种文件处理方法、装置及存储设备
CN112749039A (zh) * 2019-10-31 2021-05-04 伊姆西Ip控股有限责任公司 用于数据写入和数据恢复的方法、设备和程序产品
CN114168087A (zh) * 2022-02-11 2022-03-11 苏州浪潮智能科技有限公司 校验数据生成方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138125A (en) * 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
CN101625652A (zh) * 2009-08-04 2010-01-13 成都市华为赛门铁克科技有限公司 多磁盘容错系统及生成校验块、恢复数据块的方法
US20130124776A1 (en) * 2011-11-15 2013-05-16 XtremlO Ltd. Secure data storage in raid memory devices
CN103733175A (zh) * 2013-08-09 2014-04-16 华为技术有限公司 一种文件处理方法、装置及存储设备
CN112749039A (zh) * 2019-10-31 2021-05-04 伊姆西Ip控股有限责任公司 用于数据写入和数据恢复的方法、设备和程序产品
CN114168087A (zh) * 2022-02-11 2022-03-11 苏州浪潮智能科技有限公司 校验数据生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN114168087A (zh) 2022-03-11
CN114168087B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
WO2023151288A1 (zh) 校验数据生成方法、装置、设备及存储介质
CN104160452B (zh) 用于存储数据和对擦除进行纠正的方法、系统和装置
US7934120B2 (en) Storing data redundantly
US20140372838A1 (en) Bad disk block self-detection method and apparatus, and computer storage medium
CN110532126B (zh) 纠删码存储系统数据快速恢复方法、装置及存储介质
US8522125B1 (en) System and method for efficient horizontal maximum distance separable raid
US10558524B2 (en) Computing system with data recovery mechanism and method of operation thereof
KR20080018560A (ko) 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
JP2004227560A (ja) 外部格納サブシステムにおけるパリティー格納方法及びエラーブロック復旧方法
CN114090345B (zh) 一种磁盘阵列数据恢复方法、系统、存储介质及设备
WO2023165536A1 (zh) 一种数据存储方法、系统、设备以及介质
US20060179345A1 (en) Method and system for wire-speed parity generation and data rebuild in RAID systems
EP2695300A2 (en) Encoding and decoding techniques using low-density parity check codes
CN114816278B (zh) 一种存储服务器的数据迁移方法、系统、设备及存储介质
EP3182601B1 (en) Data processing method and system based on quasi-cyclic ldpc
CN111240597A (zh) 存储数据的方法、装置、设备和计算机可读存储介质
KR102004928B1 (ko) 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법
CN114546272A (zh) 快速通用的raid降级为raid5的方法、系统、设备和存储介质
WO2023184843A1 (zh) 一种raid编解码方法、装置、设备及可读存储介质
CN104932836B (zh) 一种提高单写性能的三盘容错编码和解码方法
EP4369201A1 (en) Data processing method and apparatus
US11042440B2 (en) Data checksums without storage overhead
WO2018165943A1 (zh) 存储控制器、数据处理芯片及数据处理方法
CN114691414A (zh) 一种校验块生成方法及一种数据恢复方法
WO2020029423A1 (zh) 一种修复二进制阵列码校验矩阵的构造方法及修复方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22925646

Country of ref document: EP

Kind code of ref document: A1