WO2024021594A1 - Raid6磁盘阵列的编码方法、解码方法、装置及介质 - Google Patents

Raid6磁盘阵列的编码方法、解码方法、装置及介质 Download PDF

Info

Publication number
WO2024021594A1
WO2024021594A1 PCT/CN2023/077973 CN2023077973W WO2024021594A1 WO 2024021594 A1 WO2024021594 A1 WO 2024021594A1 CN 2023077973 W CN2023077973 W CN 2023077973W WO 2024021594 A1 WO2024021594 A1 WO 2024021594A1
Authority
WO
WIPO (PCT)
Prior art keywords
disk
raid6
data
stripe
group
Prior art date
Application number
PCT/CN2023/077973
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 WO2024021594A1 publication Critical patent/WO2024021594A1/zh

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • Embodiments of the present application relate to the field of storage, and in particular to a coding method, decoding method, device and non-volatile readable storage medium for a RAID6 disk array.
  • RAID Redundant Arrays of Independent Disks
  • a disk array is a disk array that combines multiple Independent disks are combined together to obtain a disk group with a huge capacity.
  • Using RAID storage technology can greatly increase storage capacity, improve the system's input and output request processing capabilities, and improve data reliability through distributed data storage technology, parallel access methods and information redundancy technology. After the design idea of RAID was proposed, it was quickly accepted by the industry. As a high-performance and highly reliable storage technology, RAID technology has been widely used in people's production and life.
  • RAID mainly uses data striping, data verification and mirroring technologies to obtain stronger performance, higher reliability, better fault tolerance and stronger scalability. According to different data application requirements, the strategies and architectures of these three technologies can be used or combined. Therefore, according to different strategies and architectures, RAID can be divided into different levels: RAID 0, 1, 5, 6, 10.
  • RAID 0 is the earliest RAID mode, namely Data Stripping technology.
  • RAID 0 is the simplest form of setting up a disk array. It only requires more than two hard disks. It is low-cost and can improve the performance and throughput of the entire disk. RAID 0 does not provide redundancy or error recovery capabilities, but is the lowest cost to implement.
  • RAID 0 is the simplest The implementation method is to connect N identical hard disks in hardware through an intelligent disk controller or in software using the disk driver in the operating system to create a large volume set. During use, computer data is written to each hard drive in sequence. Its biggest advantage is that it can double the capacity of the hard drive. If three 80GB hard drives are used to form a RAID 0 mode, the disk capacity will be 240GB. In terms of speed, it is exactly the same as that of a single hard drive. The biggest disadvantage is that if any hard disk fails, the entire system will be destroyed, and the reliability is only 1/N of a single hard disk.
  • RAID 1 is called disk mirroring.
  • the principle is to mirror the data of one disk to another disk. That is to say, when the data is written to one disk, an image file will be generated on another idle disk without affecting the performance.
  • the system can run normally even when half of the hard disks have problems. When it fails, the system will ignore the hard disk and use the remaining mirror disk to read and write data, which has good disk redundancy capabilities. Although this is absolutely safe for data, the cost will also increase significantly.
  • the disk utilization rate is 50%. With four hard drives with a capacity of 80GB, the available disk space is only 160GB.
  • RAID 1 is mostly used in situations where critical and important data is saved.
  • RAID 5 independent disk structure with distributed parity. Its parity code exists on all disks, where p0 represents the parity value of the 0th zone, and the other meanings are the same.
  • the read efficiency of RAID 5 is very high, the write efficiency is average, and the block collective access efficiency is good. Because the parity codes are on different disks, reliability is improved. However, it does not solve the parallelism of data transmission well, and the design of the controller is also quite difficult.
  • RAID 5 most data transfers only operate on one disk and can be operated in parallel. There is a "write loss" in RAID 5, that is, each write operation will generate four actual read/write operations, of which two read the old data and parity information, and two write the new data and parity information.
  • RAID 6 is a parity independent disk structure with two types of distributed storage.
  • RAID 6 is an extension of RAID 5 and is mainly used in situations where data must be absolutely error-free. Due to the introduction of the second parity value, N+2 disks are required, and the design of the controller becomes very complicated, which improves the data reliability of the disk array. More space is required to store the check value, and there is a higher performance penalty during write operations.
  • RAID6 technology is widely used in today's distributed storage servers. RAID 6 can recover two error blocks. However, each data recovery is still limited by the speed limit of reading large amounts of data from each disk. Therefore, there is an urgent need for RAID6 The encoding and decryption methods of disk arrays have been improved.
  • Embodiments of the present application provide a RAID6 disk array encoding method, a RAID6 disk array decoding method, a RAID6 disk array encoding method, and a RAID6 disk array decoding method.
  • a method for encoding a RAID6 disk array includes:
  • the encoding method further includes:
  • the step of dividing all disks in a RAID6 disk array into two groups to obtain a first disk group and a second disk group includes:
  • all disks constituting the RAID6 disk array are evenly divided into two groups;
  • all disks constituting the RAID6 disk array are divided into one group with one disk more than the other group.
  • the step of dividing all disks constituting a RAID6 disk array into two groups equally includes:
  • the step of dividing all disks constituting a RAID6 disk array into two groups equally includes:
  • Disks corresponding to all odd-numbered digits and all disks corresponding to even-numbered digits in the disk arrangement sequence are respectively regarded as one group.
  • all disks constituting a RAID6 disk array are divided into one group with one disk more than another group.
  • the steps include:
  • Disks corresponding to all odd-numbered digits and all disks corresponding to even-numbered digits in the disk arrangement sequence are respectively regarded as one group.
  • the step of pairing all stripes under the RAID6 disk array to obtain several stripe pairs includes:
  • all strips are paired in such a manner that two consecutive strips form a pair based on the strip arrangement order;
  • the remaining strips except the first strip or the last strip are paired based on the strip arrangement order in such a manner that two consecutive strips form a pair.
  • the load balancing of the RAID6 disk array satisfies any one of the following modes: left-hand alignment, left-hand misalignment, right-hand alignment, and right-hand misalignment.
  • a decoding method for a RAID6 disk array is provided.
  • the RAID6 disk array is encoded using the encoding method described above.
  • the decoding method includes:
  • the first decoded data is read in a manner that the minimum decoding unit is two stripes, wherein the first decoded data includes: the disk to which the single error belongs All data on the two stripes of the certain stripe pair on other disks in the group, and all data on one stripe of the certain stripe pair on each disk of the disk group without an error;
  • Decoding is performed based on the first rule, the second rule and the first decoded data to obtain restored data.
  • the decoding method further includes:
  • the second decoded data is read in a manner that the minimum decoding unit is one stripe, wherein the second decoded data includes other than the occurrence of the single disk error. All data on the disk on that strip;
  • Decoding is performed based on the first rule, the third rule and the second decoded data to obtain restored data.
  • an encoding device for a RAID6 disk array includes:
  • a disk grouping module is configured to divide all disks under the RAID6 disk array into two groups to obtain a first disk group and a second disk group;
  • the stripe pairing module is configured to pair all stripes under the RAID6 disk array in pairs to obtain to several strip pairs;
  • the calculation module is configured to calculate two check codes of each strip in the plurality of strip pairs according to the first rule and the second rule, wherein the first rule is the check code on each strip.
  • the XOR operation result of each data of the first disk group and the second disk group is equal to zero
  • the second rule is that each data of the first disk group on one stripe of the same stripe pair is multiplied by the corresponding disk number, and each data of the second disk group on another stripe is multiplied by the corresponding disk number and the result of the XOR operation is equal to zero.
  • a decoding device for a RAID6 disk array is provided.
  • the RAID6 disk array is encoded using the encoding device described above.
  • the decoding device includes:
  • a judgment module configured to determine the disk group to which the single disk error belongs in response to a single disk error occurring in the RAID6 disk array
  • a first reading module the first reading module is configured to read the first decoding in a manner that the minimum decoding unit is two stripes in response to a single disk error corresponding to a stripe belonging to the plurality of stripe pairs.
  • data wherein the first decoded data includes: all the data on the two stripes of the certain stripe pair of other disks in the disk group to which a single error occurs, and the data on each disk of the disk group in which no error occurs. All data on one stripe of a stripe pair;
  • a first decoding module configured to perform decoding based on the first rule, the second rule and the first decoded data to obtain restored data.
  • the decoding device further includes:
  • the second reading module is configured to read the second decoded data in a manner that the minimum decoding unit is one stripe in response to a single disk error corresponding to a stripe that does not belong to any stripe pair, wherein, the second decoded data includes all data on the stripe of other disks except when a single disk error occurs;
  • a second decoding module configured to perform decoding based on the first rule, the third rule and the second decoded data to obtain restored data.
  • a computer device including:
  • the memory stores a computer program that can be run on the processor.
  • the processor executes the program, it executes the aforementioned encoding method of the RAID6 disk array or the decoding method of the RAID6 disk array.
  • a non-volatile readable storage medium stores a computer program.
  • the computer program is executed by the processor, the aforementioned RAID6 disk array is executed. Encoding method or decoding method of RAID6 disk array.
  • the above encoding method of a RAID6 disk array divides all disks under the RAID6 disk array into two groups. Obtain the first disk group and the second disk group, then pair all stripes under the RAID6 disk array to obtain several stripe pairs, and finally calculate each of the several stripe pairs according to the first rule and the second rule.
  • the two check codes of the stripe enable two stripes belonging to the same stripe pair to be cross-coded according to the disk grouping, which enriches the encoding and decoding method of the RAID6 disk array and helps to reduce the reads required to recover data when a single disk error occurs. amount of data to improve RAID6 performance.
  • embodiments of the present application also provide a RAID6 disk array decoding method, a RAID6 disk array encoding device, a RAID6 disk array decoding device, a computer device and a non-volatile readable storage
  • the medium can also achieve the above technical effects, so I won’t go into details here.
  • Figure 1 is a schematic flow chart of a RAID6 disk array encoding method provided by an embodiment of the present application
  • Figure 2 is a schematic flow chart of a decoding method for a RAID6 disk array provided by another embodiment of the present application;
  • Figure 3 is a schematic diagram of the structure of RAID6 with 6 disks in the case of left-hand misalignment provided by another embodiment of the present application;
  • Figure 4 is a schematic diagram of RAID6 configuration of 6 disks with odd-numbered stripes provided by another embodiment of the present application.
  • Figure 5 is a schematic structural diagram of an encoding device of a RAID6 disk array provided by another embodiment of the present application.
  • Figure 6 is a schematic structural diagram of a decoding device of a RAID6 disk array provided by another embodiment of the present application.
  • Figure 7 is an internal structural diagram of a computer device in another embodiment of the present application.
  • This embodiment of the present application provides a RAID6 disk array encoding method 100, which optionally includes the following steps:
  • Step 101 Divide all disks under the RAID6 disk array into two groups to obtain the first disk group and the second disk group;
  • Step 102 Pair all the stripes under the RAID6 disk array into two groups to obtain several stripe pairs
  • Step 103 Calculate two check codes for each stripe in the plurality of stripe pairs according to the first rule and the second rule, where the first rule is the first disk group and all the stripes on each stripe.
  • the XOR operation result of each data of the second disk group is equal to zero
  • the second rule is that each data of the first disk group on one stripe of the same stripe pair is multiplied by the corresponding disk number, and the other stripe
  • Each data of the above-mentioned second disk group is multiplied by the corresponding disk number and the result of the XOR operation is equal to zero.
  • the above encoding method of a RAID6 disk array divides all disks under the RAID6 disk array into two groups to obtain the first disk group and the second disk group, and then pairs all stripes under the RAID6 disk array into two groups to obtain several strip pairs, and finally calculate two check codes for each strip in the plurality of strip pairs according to the first rule and the second rule, so that the two strips belonging to the same strip pair are cross-coded according to the disk grouping, enriching
  • the encoding and decoding method of the RAID6 disk array helps reduce the amount of data read to recover data when a single disk error occurs, and improves RAID6 performance.
  • the encoding method further includes:
  • the step of dividing all disks in a RAID6 disk array into two groups to obtain a first disk group and a second disk group includes:
  • all disks constituting the RAID6 disk array are evenly divided into two groups;
  • all disks constituting the RAID6 disk array are divided into one group with one disk more than the other group.
  • the step of dividing all disks constituting a RAID6 disk array into two groups equally includes:
  • the step of dividing all disks constituting a RAID6 disk array into two groups equally includes:
  • Disks corresponding to all odd-numbered digits and all disks corresponding to even-numbered digits in the disk arrangement sequence are respectively regarded as one group.
  • the step of dividing all disks constituting a RAID6 disk array into one group with one disk more than another group includes:
  • Disks corresponding to all odd-numbered digits and all disks corresponding to even-numbered digits in the disk arrangement sequence are respectively regarded as one group.
  • the step of pairing all stripes under the RAID6 disk array to obtain several stripe pairs includes:
  • all strips are paired in such a manner that two consecutive strips form a pair based on the strip arrangement order;
  • the remaining strips except the first strip or the last strip are paired based on the strip arrangement order in such a manner that two consecutive strips form a pair.
  • the load balancing of the RAID6 disk array satisfies any one of the following modes: left-hand alignment, left-hand misalignment, right-hand alignment, and right-hand misalignment.
  • This embodiment of the present application also provides a decoding method 200 for a RAID6 disk array.
  • the RAID6 disk array is encoded using the encoding method described above.
  • the decoding method includes:
  • Step 201 in response to a single disk error occurring in the RAID6 disk array, determine the disk group to which the single disk error belongs;
  • Step 202 in response to the fact that the stripes corresponding to the single disk error belong to the plurality of stripe pairs, read the first decoded data in a manner that the minimum decoding unit is two stripes, wherein the first decoded data includes: a single All data on the two stripes of the certain stripe pair on other disks in the disk group to which the error occurred, and all data on one stripe of the certain stripe pair on each disk of the disk group in which the error did not occur ;
  • Step 203 performs decoding based on the first rule, the second rule and the first decoded data to obtain restored data.
  • the above-mentioned RAID6 disk array decoding method can recover erroneous data without reading all the data in the case of a single disk error, reducing the amount of data that needs to be read to recover data when a single disk error occurs, and improving RAID6 performance.
  • the decoding method further includes:
  • the second decoded data is read in a manner that the minimum decoding unit is one stripe, wherein the second decoded data includes other than the occurrence of the single disk error. All data on the disk on that strip;
  • Decoding is performed based on the first rule, the third rule and the second decoded data to obtain restored data.
  • RAID6 is designed so that after the RAID group is completed, errors in any two or one disk group can be recovered. It is the most commonly used erasure solution for general storage products today. The error recovery of RAID6 requires reading all the remaining data for calculation, so the performance comparison of different implementation solutions mainly focuses on the speed of data encoding and decoding. In actual application scenarios, although RAID6 can guarantee the recovery of two arbitrary errors, it According to the statistics of actual scenarios, a single error scenario accounts for 99.75% of all errors. Therefore, regardless of any optional implementation of RAID, the core speed improvement should be an improvement for a single error scenario. In order to facilitate understanding of the solution of the embodiment of the present application, this embodiment separately explains the traditional RAID6 algorithm principle, the encoding method and the decryption method of the RAID6 disk array provided by the embodiment of the present application.
  • Part 1 The traditional RAID6 algorithm principle is as follows:
  • p and q in formula (1) represent the two check codes formed under RAID6. Through p and q, any two errors under the RAID6 group can be recovered.
  • x and y in formula (1) represent the position of p and q in the formula. The position is determined by the stripe relationship in the disk corresponding to the RAID group.
  • RAID6 decoding requires reading and decoding all remaining data blocks.
  • data reading is limited by transmission channels and protocols. This often becomes the main limitation on the speed of this work, so the core of designing an advanced RAID6 solution is to consider how to reduce the data reading requirements for encoding and decoding, thereby increasing the speed.
  • Part 2 The optional implementation methods of the RAID6 disk array encoding method provided in this embodiment are as follows:
  • the embodiment of this application recommends dividing the number of strips into an even number, so as to achieve the maximum optimization effect. If based on actual needs, the number of strips can only be divided into an odd number.
  • the advantages of the embodiment of this application will be affected to a certain extent, but it can still be achieved. Implementation, optional odd-numbered examples are used to illustrate, and the example division is shown in Figure 4.
  • the amount of disks is divided into two groups AB.
  • the division method is to divide them in half according to the amount of disks. If the amount of disks is an odd number n, it is divided into two groups: Quantity of two groups. The two groups can be divided sequentially, and every two strips are divided in the same way. If the total number of stripes is an odd number, the last remaining strip will not be divided and the traditional RAID6 solution will be used directly for encoding and decoding, as shown in the "remaining odd number of strips" example in Figure 4.
  • Part 3 The optional implementation methods of the RAID6 disk array decryption method provided in this embodiment are as follows:
  • the decoding embodiment of the present application only needs to read the data blocks in the odd or even stripes for the other group of data.
  • the decoding method is based on formula (5) For the relationship expressed, reading different odd numbers or even numbers only requires adjusting the parameter relationship as shown in formulas (6) and (7) (the parameter relationship conforms to the relationship corresponding to the solid line or dotted line in Figure 4).
  • the amount of data you need to read is equal to the amount of data required for decoding of RAID6. If the minimum decoding unit is 2 stripes, it can be reduced.
  • the decoding method is the same as the traditional RAID6 decryption method. All remaining data need to be read and then decoded based on a RAID6-like method. For example, if an error occurs on disks 1 and 2, the decoding method is: two error scenarios, because the embodiment of the present application divides all data into two groups according to the grouping method during encoding, so when two errors occur, , divided into two scenarios, two errors in the same group or two errors in two groups respectively. Examples are given below.
  • d4 and p3 can be solved based on formula (10) in the RAID6 manner, and d1 and d5 can be obtained in the same way. This completes the decoding operation of all data. It can be seen that the amount of data read in this situation is also the same as the traditional RAID6 method.
  • the solution proposed in the embodiment of the present application changes the minimum unit of decoding to an even number of strips, so that it can reduce the number of errors in a single error.
  • the number of stripes that satisfies the even number relationship is m, and the number of disks that satisfies the even number is n
  • data block reading requirements For two errors, the decoding meets the same data reading amount as RAID6.
  • RAID6 For stripes other than even-numbered stripes (the remaining stripe in odd-numbered cases), traditional RAID6 can be used for calculations.
  • the minimum unit is two stripes at a time, operation, but in this case the operation is completed by padding the remaining strips with zeros. In actual scenarios, striping is determined by design, so this situation usually does not occur.
  • the encoding method of the RAID6 disk array and the decryption method of the RAID6 disk array in the embodiment of the present application can reduce the amount of recovered data reading by about half when a single error occurs, thereby achieving the advantage of about doubling the speed, while encoding or double
  • the actual speed can reach the characteristics of standard RAID6, thereby improving the decoding speed of single errors with less loss.
  • This embodiment of the present application also provides an encoding device 300 for a RAID6 disk array.
  • the encoding device 300 includes:
  • Disk grouping module 301 is configured to divide all disks under the RAID6 disk array into two groups to obtain a first disk group and a second disk group;
  • the stripe pairing module 302 is configured to pair all stripes under the RAID6 disk array into two groups to obtain several stripe pairs;
  • the calculation module 303 is configured to calculate the plurality of strip pairs according to the first rule and the second rule. Two check codes for each strip in the strip, wherein the first rule is that the XOR operation result of each data of the first disk group and the second disk group on each strip is equal to zero, and the third The second rule is that each data of the first disk group on one stripe of the same stripe is multiplied by the corresponding disk number, and each data of the second disk group on the other stripe is multiplied by the corresponding disk number for XOR. The result of the operation is equal to zero.
  • the encoding device 300 of the above-mentioned RAID6 disk array divides all the disks under the RAID6 disk array into two groups to obtain the first disk group and the second disk group, and then pairs all stripes under the RAID6 disk array into two groups to obtain Several stripe pairs, and finally calculate two check codes for each stripe in the several stripe pairs according to the first rule and the second rule, so that the two stripes belonging to the same stripe pair are cross-coded according to the disk grouping,
  • the encoding and decoding methods of RAID6 disk arrays are enriched, which helps reduce the amount of data read to recover data when a single disk error occurs, and improves RAID6 performance.
  • the encoding device 300 further includes:
  • the disk grouping module 301 is configured to:
  • all disks constituting the RAID6 disk array are evenly divided into two groups;
  • all disks constituting the RAID6 disk array are divided into one group with one disk more than the other group.
  • the disk grouping module 301 is configured to:
  • the disk grouping module 301 is configured as:
  • Disks corresponding to all odd-numbered digits and all disks corresponding to even-numbered digits in the disk arrangement sequence are respectively regarded as one group.
  • the disk grouping module 301 is configured to:
  • Disks corresponding to all odd-numbered digits and all disks corresponding to even-numbered digits in the disk arrangement sequence are respectively regarded as one group.
  • the stripe pair module 302 is configured to:
  • all strips are arranged into two consecutive strip groups based on the strip arrangement order. Paired in pairs;
  • the remaining strips except the first strip or the last strip are paired based on the strip arrangement order in such a manner that two consecutive strips form a pair.
  • the load balancing of the RAID6 disk array satisfies any one of the following modes: left-hand alignment, left-hand misalignment, right-hand alignment, and right-hand misalignment.
  • Each module in the encoding device of the above-mentioned RAID6 disk array can be implemented in whole or in part by software, hardware and combinations thereof.
  • Each of the above modules may be embedded in or independent of the processor of the computer device in the form of hardware, or may be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
  • This embodiment of the present application also provides a decoding device 400 for a RAID6 disk array.
  • the RAID6 disk array is encoded using the encoding device described above.
  • the decoding device 400 includes :
  • Determination module 401 the determination module 401 is configured to determine the disk group to which the single disk error belongs in response to a single disk error occurring in the RAID6 disk array;
  • the first reading module 402 is configured to read in a manner that the minimum decoding unit is two stripes in response to a single disk error corresponding to a stripe belonging to the plurality of stripe pairs.
  • First decoded data wherein the first decoded data includes: all data on the two stripes of the two stripes of a certain stripe pair of other disks in the disk group to which the single error belongs, as well as each disk of the disk group in which no error occurred All data on one of the stripes of a certain stripe pair;
  • the first decoding module 403 is configured to perform decoding based on the first rule, the second rule and the first decoded data to obtain restored data.
  • the above-mentioned RAID6 disk array decoding device 400 can recover erroneous data without reading all the data when a single disk error occurs, reducing the amount of data that needs to be read to recover data when a single disk error occurs, and improving RAID6 performance.
  • the decoding device 400 further includes:
  • the second reading module is configured to read the second decoded data in a manner that the minimum decoding unit is one stripe in response to a single disk error corresponding to a stripe that does not belong to any stripe pair, wherein, the second decoded data includes all data on the stripe of other disks except when a single disk error occurs;
  • a second decoding module configured to perform decoding based on the first rule, the third rule and the second decoded data to obtain restored data.
  • a computer device may be a server.
  • the computer equipment includes a processor, memory, network connected through a system bus network interface and database.
  • the processor of the computer device is used to provide computing and control capabilities.
  • the memory of the computer device includes non-volatile storage media and internal memory.
  • the non-volatile storage medium stores operating systems, computer programs and databases. This internal memory provides an environment for the execution of operating systems and computer programs in non-volatile storage media.
  • the computer device's database is used to store data.
  • the network interface of the computer device is used to communicate with external terminals through a network connection.
  • a non-volatile readable storage medium on which a computer program is stored.
  • the computer program is executed by a processor, the above-mentioned encoding method of a RAID6 disk array or the above-mentioned encoding method is implemented.
  • Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory may include random access memory (RAM) or external cache memory.
  • RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous chain Synchlink DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
  • SRAM static RAM
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • DDRSDRAM double data rate SDRAM
  • ESDRAM enhanced SDRAM
  • SLDRAM synchronous chain Synchlink DRAM
  • Rambus direct RAM
  • DRAM direct memory bus dynamic RAM
  • RDRAM memory bus dynamic RAM

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本申请实施例涉及存储领域,尤其涉及一种RAID6磁盘阵列的编码方法、解码方法、装置及介质。所述编码方法包括:将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组;将RAID6磁盘阵列下全部条带两两组对以得到若干条带对;根据第一规则和第二规则计算若干条带对中每个条带的两个校验码,第一规则为每一条带上第一磁盘组和第二磁盘组的各个数据进行异或运算结果等于零,第二规则为同一条带对中一个条带上第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。本申请实施例的方案丰富了RAID6磁盘阵列的编解码方式,有助于减少单一磁盘错误时读取的数据量。

Description

RAID6磁盘阵列的编码方法、解码方法、装置及介质
相关申请的交叉引用
本申请要求于2022年7月26日提交中国专利局,申请号为202210887332.0,申请名称为“RAID6磁盘阵列的编码方法、解码方法、装置及介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及存储领域,尤其涉及一种RAID6磁盘阵列的编码方法、解码方法、装置及非易失性可读存储介质。
背景技术
伴随着通讯技术和网络科技的迅速发展,数字化信息呈指数爆炸式增长,数据存储技术也因此迎来了巨大的挑战。存储系统中数据的可靠性问题以及存储系统的能耗问题越来越被人们所关注。现如今面对如此庞大的数据规模,存储系统中数据的可靠性和存储系统中包含的组件数量成反比关系,即存储系统组件数越多,那么存储系统中数据的可靠性就越低。根据相关调查显示,在一个由600个磁盘构成的互联网数据中心中,每月大约会有30个磁盘出现损坏的情况,在大规模存储系统中,磁盘故障造成的数据可靠性下降是相当严重的问题,对此人们展开了相关容错技术的研究。
在1988年,加州大学伯克利分校的D.A.Patterson等教授提出的RAID结构成为了提升存储空间的一个关键技术,RAID(Redundant Arrays of Independent Disks)即具有冗余能力的磁盘阵列,磁盘阵列是通过将多个独立磁盘组合一起,从而得到一个容量巨大的磁盘组。采用RAID存储技术,可以大大提高存储容量,提高系统输入输出的请求处理能力并且通过数据的分布式存储技术,并行访问手段和信息冗余技术提高数据的可靠性。RAID的设计思想被提出之后,很快就被业界所接纳,RAID技术作为高性能、高可靠的存储技术,目前已经在人们的生产和生活中得到了极其广泛的应用。RAID主要利用数据条带、数据校验和镜像技术来获得较强的性能、更高的可靠性、较好的容错能力和较强的扩展性。根据不同的数据应用需求,可以运用或者组合运用这三种技术的策略和架构,所以按照不同的策略和架构,RAID可以被分为不同的等级:RAID 0,1,5,6,10。
RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。RAID 0最简单 的实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写入到各块硬盘中,它的最大优点就是可以整倍的提高硬盘的容量。如使用了三块80GB的硬盘组建成RAID 0模式,那么磁盘容量就会是240GB。其速度方面,和单独一块硬盘的速度完全相同。最大的缺点在于任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独一块硬盘的1/N。
RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,以四块80GB容量的硬盘来讲,可利用的磁盘空间仅为160GB。另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。因此,RAID 1多用在保存关键性的重要数据的场合。
RAID 5(分布式奇偶校验的独立磁盘结构)。它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。RAID 5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
RAID 6是带两种分布存储的奇偶校验码独立磁盘结构,RAID 6是对RAID 5的扩展,主要是用于要求数据绝对不能出错的场合。由于引入了第二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,提升了磁盘阵列的数据可靠性。需要更多的空间来存储校验值,同时在写操作中具有更高的性能损失。RAID6技术在当今分布式存储服务器中得到了广泛的应用,RAID 6可以恢复两个的错误块,但是每次数据恢复依然受限于各个盘大量数据读取时的速度限制,因此亟需对RAID6磁盘阵列的编码和解密方式进行改进。
发明内容
有鉴于此,有必要针对传统RAID6编解码方式导致数据恢复受限于数据读取量的问题,本申请实施例提供了一种RAID6磁盘阵列的编码方法、RAID6磁盘阵列的解码方法,一种RAID6磁盘阵列的编码装置,一种RAID6磁盘阵列的解码装置、一种计算机设备及一种非易失性可读存储介质。
根据本申请实施例的第一方面,提供了一种RAID6磁盘阵列的编码方法,所述编码方法包括:
将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组;
将RAID6磁盘阵列下全部条带两两组对以得到若干条带对;
根据第一规则和第二规则计算所述若干条带对中每个条带的两个校验码,其中,所述第一规则为每一条带上所述第一磁盘组和所述第二磁盘组的各个数据进行异或运算结果等于零,所述第二规则为同一条带对中一个条带上所述第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上所述第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
在一些实施例中,所述编码方法还包括:
响应于RAID6磁盘阵列下条带总数为奇数,则根据第一规则和第三规则计算未组对条带的两个校验码,其中,所述第三规则为同一条带上所述第一磁盘组和第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
在一些实施例中,所述将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组的步骤包括:
获取RAID6磁盘阵列的磁盘总数;
响应于所述磁盘总数为偶数,则将构成RAID6磁盘阵列的所有磁盘平均分成两组;
响应于所述磁盘总数为奇数,则将构成RAID6磁盘阵列的所有磁盘划分成一组比另一组多一个磁盘。
在一些实施例中,所述将构成RAID6磁盘阵列的所有磁盘平均分成两组的步骤包括:
获取RAID6磁盘阵列的磁盘排列顺序;
将磁盘排列顺序中的前一半和后一半分别作为一组。
在一些实施例中,所述将构成RAID6磁盘阵列的所有磁盘平均分成两组的步骤包括:
获取RAID6磁盘阵列的磁盘排列顺序;
将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
在一些实施例中,所述将构成RAID6磁盘阵列的所有磁盘划分成一组比另一组多一个磁 盘的步骤包括:
获取RAID6磁盘阵列的磁盘排列顺序;
将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
在一些实施例中,所述将RAID6磁盘阵列下全部条带两两组对以得到若干条带对的步骤包括:
获取RAID6磁盘阵列的条带总数以及条带排列顺序;
响应于所述条带总数为偶数,则基于所述条带排列顺序将全部条带按照连续两个条带组成一对方式组对;
响应于所述条带总数为奇数,则基于所述条带排列顺序将除首个条带或最后一个条带以外的剩余条带按照连续两个条带组成一对方式组对。
在一些实施例中,所述RAID6磁盘阵列的负载均衡满足以下方式中的任意一种:左旋对齐、左旋不对齐、右旋对齐和右旋不对齐。
根据本申请实施例的第二方面,提供了一种RAID6磁盘阵列的解码方法,RAID6磁盘阵列采用以上所述的编码方法进行编码,所述解码方法包括:
响应于RAID6磁盘阵列发生单一磁盘错误,则判断单一磁盘错误所属的磁盘组;
响应于单一磁盘错误对应的条带属于所述若干条带对,则以最小解码单位为两个条带的方式读取第一解码数据,其中,所述第一解码数据包括:单一错误所属磁盘组中其他磁盘在所述某一条带对的两个条带上的所有数据,以及未发生错误的磁盘组的各个磁盘在所述某一条带对的其中一个条带上的所有数据;
基于第一规则、第二规则以及所述第一解码数据进行解码以得到恢复数据。
在一些实施例中,所述解码方法还包括:
响应于单一磁盘错误对应的条带不属于任何条带对,则以最小解码单位为一个条带的方式读取第二解码数据,其中所述第二解码数据包括除发生单一磁盘错误以外的其他磁盘在该条带上的所有数据;
基于第一规则、第三规则以及所述第二解码数据进行解码以得到恢复数据。
根据本申请实施例的第三方面,提供了一种RAID6磁盘阵列的编码装置,所述编码装置包括:
磁盘分组模块,所述磁盘分组模块被配置为,将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组;
条带组对模块,所述条带组对模块被配置为将RAID6磁盘阵列下全部条带两两组对以得 到若干条带对;
计算模块,所述计算模块被配置为根据第一规则和第二规则计算所述若干条带对中每个条带的两个校验码,其中,所述第一规则为每一条带上所述第一磁盘组和所述第二磁盘组的各个数据进行异或运算结果等于零,所述第二规则为同一条带对中一个条带上所述第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上所述第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
根据本申请实施例的第四方面,提供了一种RAID6磁盘阵列的解码装置,RAID6磁盘阵列采用以上所述的编码装置进行编码,所述解码装置包括:
判断模块,所述判断模块被配置为响应于RAID6磁盘阵列发生单一磁盘错误,则判断单一磁盘错误所属的磁盘组;
第一读取模块,所述第一读取模块被配置为响应于单一磁盘错误对应的条带属于所述若干条带对,则以最小解码单位为两个条带的方式读取第一解码数据,其中,所述第一解码数据包括:单一错误所属磁盘组中其他磁盘在所述某一条带对的两个条带上的所有数据,以及未发生错误的磁盘组的各个磁盘在所述某一条带对的其中一个条带上的所有数据;
第一解码模块,所述第一解码模块被配置为基于第一规则、第二规则以及所述第一解码数据进行解码以得到恢复数据。
在一些实施例中,所述解码装置还包括:
第二读取模块,所述第二读取模块被配置为响应于单一磁盘错误对应的条带不属于任何条带对,则以最小解码单位为一个条带的方式读取第二解码数据,其中,所述第二解码数据包括除发生单一磁盘错误以外的其他磁盘在该条带上的所有数据;
第二解码模块,所述第二解码模块被配置为基于第一规则、第三规则以及所述第二解码数据进行解码以得到恢复数据。
根据本申请实施例的第五方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的RAID6磁盘阵列的编码方法或RAID6磁盘阵列的解码方法。
根据本申请实施例的第六方面,还提供了一种非易失性可读存储介质,非易失性可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的RAID6磁盘阵列的编码方法或RAID6磁盘阵列的解码方法。
上述一种RAID6磁盘阵列的编码方法,通过将RAID6磁盘阵列下所有磁盘划分成两组以 得到第一磁盘组和第二磁盘组,然后将RAID6磁盘阵列下全部条带两两组对以得到若干条带对,最后根据第一规则和第二规则计算所述若干条带对中每个条带的两个校验码,使属于同条带对的两个条带根据磁盘分组交叉编码,丰富了RAID6磁盘阵列的编解码方式,有助于减少单一磁盘错误时恢复数据所需读取的数据量,提升RAID6性能。
此外,本申请实施例还提供了一种RAID6磁盘阵列的解码方法,一种RAID6磁盘阵列的编码装置,一种RAID6磁盘阵列的解码装置、一种计算机设备及一种非易失性可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1本申请一个实施例提供的一种RAID6磁盘阵列的编码方法流程示意图;
图2为本申请另一个实施例提供的一种RAID6磁盘阵列的解码方法流程示意图;
图3为本申请另一个实施例提供的6块磁盘的RAID6左旋不对齐情况下的组建形式示意图;
图4为本申请另一个实施例提供的6块磁盘奇数个条带的RAID6组建示意图;
图5为本申请又一个实施例提供的一种RAID6磁盘阵列的编码装置结构示意图;
图6为本申请又一个实施例提供的一种RAID6磁盘阵列的解码装置结构示意图;
图7为本申请另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,以下结合可选的实施例,并参照附图,对本申请实施例进行详细说明。
需要说明的是,本申请实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本申请实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图1所示,本申请实施例提供了一种RAID6磁盘阵列的编码方法100,可选的包括以下步骤:
步骤101,将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组;
步骤102,将RAID6磁盘阵列下全部条带两两组对以得到若干条带对;
步骤103,根据第一规则和第二规则计算所述若干条带对中每个条带的两个校验码,其中,所述第一规则为每一条带上所述第一磁盘组和所述第二磁盘组的各个数据进行异或运算结果等于零,所述第二规则为同一条带对中一个条带上所述第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上所述第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
上述一种RAID6磁盘阵列的编码方法,通过将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组,然后将RAID6磁盘阵列下全部条带两两组对以得到若干条带对,最后根据第一规则和第二规则计算所述若干条带对中每个条带的两个校验码,使属于同条带对的两个条带根据磁盘分组交叉编码,丰富了RAID6磁盘阵列的编解码方式,有助于减少单一磁盘错误时恢复数据所需读取的数据量,提升RAID6性能。
在一些实施例中,所述编码方法还包括:
响应于RAID6磁盘阵列下条带总数为奇数,则根据第一规则和第三规则计算未组对条带的两个校验码,其中,所述第三规则为同一条带上所述第一磁盘组和第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
在一些实施例中,所述将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组的步骤包括:
获取RAID6磁盘阵列的磁盘总数;
响应于所述磁盘总数为偶数,则将构成RAID6磁盘阵列的所有磁盘平均分成两组;
响应于所述磁盘总数为奇数,则将构成RAID6磁盘阵列的所有磁盘划分成一组比另一组多一个磁盘。
在一些实施例中,所述将构成RAID6磁盘阵列的所有磁盘平均分成两组的步骤包括:
获取RAID6磁盘阵列的磁盘排列顺序;
将磁盘排列顺序中的前一半和后一半分别作为一组。
在一些实施例中,所述将构成RAID6磁盘阵列的所有磁盘平均分成两组的步骤包括:
获取RAID6磁盘阵列的磁盘排列顺序;
将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
在一些实施例中,所述将构成RAID6磁盘阵列的所有磁盘划分成一组比另一组多一个磁盘的步骤包括:
获取RAID6磁盘阵列的磁盘排列顺序;
将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
在一些实施例中,所述将RAID6磁盘阵列下全部条带两两组对以得到若干条带对的步骤包括:
获取RAID6磁盘阵列的条带总数以及条带排列顺序;
响应于所述条带总数为偶数,则基于所述条带排列顺序将全部条带按照连续两个条带组成一对方式组对;
响应于所述条带总数为奇数,则基于所述条带排列顺序将除首个条带或最后一个条带以外的剩余条带按照连续两个条带组成一对方式组对。
在一些实施例中,所述RAID6磁盘阵列的负载均衡满足以下方式中的任意一种:左旋对齐、左旋不对齐、右旋对齐和右旋不对齐。
在又一个实施例中,请参照图2所示,本申请实施例还提供了一种RAID6磁盘阵列的解码方法200,RAID6磁盘阵列采用以上所述的编码方法进行编码,所述解码方法包括:
步骤201,响应于RAID6磁盘阵列发生单一磁盘错误,则判断单一磁盘错误所属的磁盘组;
步骤202,响应于单一磁盘错误对应的条带属于所述若干条带对,则以最小解码单位为两个条带的方式读取第一解码数据,其中,所述第一解码数据包括:单一错误所属磁盘组中其他磁盘在所述某一条带对的两个条带上的所有数据,以及未发生错误的磁盘组的各个磁盘在所述某一条带对的其中一个条带上的所有数据;
步骤203基于第一规则、第二规则以及所述第一解码数据进行解码以得到恢复数据。
上述一种RAID6磁盘阵列的解码方法,针对单一磁盘错误的情形无需读取全部的数据即可恢复出错误数据,减少单一磁盘错误时恢复数据所需读取的数据量,提升RAID6性能。
在一些实施例中,所述解码方法还包括:
响应于单一磁盘错误对应的条带不属于任何条带对,则以最小解码单位为一个条带的方式读取第二解码数据,其中所述第二解码数据包括除发生单一磁盘错误以外的其他磁盘在该条带上的所有数据;
基于第一规则、第三规则以及所述第二解码数据进行解码以得到恢复数据。
在又一个实施例中,RAID6的设计是为了使得RAID组完成后,可以实现任意两个或一个的磁盘组中的错误,都可以被恢复,是当今通用存储产品应用最多的纠删方案。而RAID6的错误恢复需要读取剩余所有的数据进行计算,因此不同的实现方案所比较的性能主要集中在数据编解码的速度上。实际应用的场景中,RAID6虽然可以保证两个任意错误的恢复,但是 按照实际场景的统计数据表示,单一错误的场景占了所有错误的99.75%,因此不管任何RAID的可选的实现方案,核心的速度提升应该是针对单一错误场景的改善。为了便于理解本申请实施例的方案,本实施例对传统的RAID6的算法原理、本申请实施例提供的RAID6磁盘阵列的编码方法、解密方法进行分别说明。
第一部分:传统的RAID6的算法原理如下:
传统的RAID6的算法原理使用的是:
其中,公式(1)中的p和q表示RAID6下组建的两个校验码,通过p和q可以实现RAID6组下的任意两个错误的恢复。公式(1)中的x和y表示p和q所在公式中的位置,位置通过组建RAID组对应的磁盘中的条带关系决定,服务器组建时,为了保证各个盘的IO(Input Output,输入输出)压力相同,实现负载均衡,通常需要通过负载均衡算法将其均匀放在各盘上。假设此时共6块磁盘,组建RAID6,因此其中4块为用户的数据盘,2块为校验盘,为了满足负载均衡,我们选择左旋不对齐的方式举例说明,其组建情况如图3所示。相应的,负载均衡的常见方法还有左旋对齐,右旋不对齐和右旋对齐方式,在实际的性能表现上四者类似,在实际的应用中随机试用。因此这里我们采用左旋不对齐进行举例说明。因为RAID6的算法关系基于范德蒙算法,可选的实现使用时可完全基于位置进行配置,这样实现的编解码方式对于实际产品的硬件架构和固件配置更为友好。以图3情况进行举例,则在位置关系配置下,所得到RAID6的关系为:
基于公式(2)进行校验码p1-p6的计算,即可完成图3例子中的RAID6的编码组建。对于一个或两个错误的情况下,RAID6的解码(降级读)需要取出其他剩余所有数据,以公式(2)中的2进行举例说明:
如果d5错误举例说明单一错误时:
如果d5d8错误举例说明两个错误时:
上公式(4)可知,传统编解码方式下任意(一个或两个)错误下,RAID6的解码需要将剩余所有数据块读取,进行译码。而在存储系统中,数据的读取受限于传输通道及协议,往 往成为该工作的速度主要限制原因,因此设计先进的RAID6方案的核心就是考虑如何减少编解码的数据读取需求量,从而提高速度。
第二部分:本实施例提供的RAID6磁盘阵列的编码方法可选的实施方式如下:
本申请实施例针对RAID6传统的编解码方法进行改进,其编码的方式改进为如图4所示:
(1)条带量确定
本申请实施例建议将条带数量划分为偶数,这样可以达到优化的效果最大,如果基于实际需求,条带量只能划分为奇数,本申请实施例的优势会受到一定的影响,但是依然可以实施,可选的以奇数举例说明,举例划分见图4。
(2)针对磁盘量划分为AB两组,划分方式为按照其磁盘量对半分,如果磁盘量为奇数n,则划分为数量的两组。两组的划分方式可以顺序进行划分,每2个条带进行相同的划分。如果条带总数为奇数,则对于剩余的最后一个条带,不做划分,直接使用传统的RAID6方案进行编解码,如图4中的“剩余奇数条带”示例。则对于以上准备工作完成后,RAID6的编码组建关系如图4所示:当前用户磁盘量n=6,则基于对半分原则,分为AB组分别数量为3,按照顺序划分的原则,条带1-条带4的AB如图4所示。以条带1和条带2进行举例说明本申请实施例的RAID6组建关系表示为:
从公式(5)可知,RAID6的编码参数关系与原本RAID6赋值方式相同(范德蒙),编码的第一行公式相同,第二行公式的满足条件在相同参数关系的前提下,调整为AB组交错实现。即是P1P2的编码关系中,第一行关系使用原本的编码关系实现,第二行的关系使用跨组方式实现。对于奇数条带情况下,每两个条带组成一个上述公式(5)的关系,剩余的一个条带,如上图4中的“剩余奇数条带”,使用原本的RAID6编码实现即可,条带3-4具有类似条带1和2的编码方式。
第三部分:本实施例提供的RAID6磁盘阵列的解密方法可选的实施方式如下:
(a)解码对于单一错误时,首先判断错误发生的磁盘是在A组还是B组,读取错误所在组内存活(正确)的所有数据块,然后读取另外一组内的奇数(或偶数)的条带的数据块,即可完成解码。以图4中磁盘1发生错误举例说明,因为磁盘1发生错误,其在组B内,所以首先读取磁盘2,3的所有数据。然后选择组A的奇数或偶数条带数据进行读取,当我们读取的是奇数条带,亦即是磁盘4、5、6的条带1、3的情况下,结合公式(5)可知解码方式如下所示:
同理,当我们读取的是偶数条带,则上述的运算解法为:
可知当单一错误时,本申请实施例解码除了读取错误所在组内的所有数据之外,另外一组的数据只需要读取奇数或偶数条带内的数据块,解码方法基于公式(5)所表述的关系,不同的奇数或偶数的读取,只需要如公式(6)和(7)调整参数关系(参数关系符合图4中实线或虚线对应的关系)即可。解码时,如果如同RAID6正常的解法每次解码一个条带内的待解码值,则需要读取数据量等同于RAID6的解码需求数据量,而如果解码最小单元为2个条带,则可减少未发生错误磁盘组一半条带的数据读取需求。这样实现下,假设条带划分下满足偶数关系的条带量是m条,磁盘量满足偶数为n,则使用本申请实施例对于任意一个错误的恢复(降级读)场景,都可以减少个数据块的读取。
(b)发生任意两个错误时,解码方法如同传统RAID6解密方式一样,需要读取剩余所有的数据,然后基于RAID6类似的方式进行解码。举例说明,假如磁盘1和2发生错误时,则其解码方式为:两个错误的场景,因为本申请实施例方案在编码将所有的数据按照分组的方式分为了两组,因此两个错误时,分为两种场景,两个错误在同一组或两个错误分别在两组两个场景。下面分别举例说明。
b1、当两个错误发生在同一组时,以磁盘1和磁盘3发生错误为例进行说明。此时对于d1d3d5d7四个数据块发生错误需要恢复为例,其数据关系为:
由公式(8)可知在同一组的四个数据块发生错误时,解码关系符合RAID6解码关系,但单一条带解码时的数据读取量会大出一个条带的组数据量。但如公式(8)所表述,我们设置每两个条带作为解码的最小单位进行解码时,此时数据读取量和传统RAID6解码完全相同。
b2、当两个错误发生在不同组时,以磁盘1和4发生错误为例进行说明。此时对于d1d4d5p3四个数据块发生错误需要恢复为例,其数据关系为:
为了方便说明,公式(9)中的四个关系公式进行了编号“1,2,3,4”。可知此时如果按照传统的RAID6条带的运算方式则无法解码,因此当发生在不同组时,确定每次解码两个条带为其最小单位,则会得到如上公式(9)的关系。此时对1和2进行基于d2消元处理,对3和4进行基于d5进行消元处理(这步的消元处理只有唯一解,或是23消元以及14消元),则会得到:
满足多项式有解且有唯一的要求,则可基于公式(10)按照RAID6的方式解出d4,p3,同理相应的得到d1,d5.从而完成所有数据的解码运算。由此可见此种情形所读取的数据量同样与传统RAID6方式相同。
综上所述,本申请实施例所提出的方案解码时改变解码的最小单位为偶数条带,则可实现在单一错误时减少(满足偶数关系的条带量是m条,磁盘量满足偶数为n)的数据块读取量需求,对于两个错误时,解码符合与RAID6有相同的数据读取量。而对于符合偶数条带之外的条带(奇数情况下剩余的一个条带),使用传统RAID6进行运算即可,在本申请实施例的实现架构下,虽然每次最小单元两个条带进行运算,但在这种情况下,剩余的条带通过补0即可完成运算。而在实际的场景下条带划分由设计决定,因此这种情况下通常不会出现。
本申请实施例的RAID6磁盘阵列的编码方法和RAID6磁盘阵列的解密方法,针对发生单一错误时,恢复的数据读取量可以减少一半左右,从而达到速度提升一倍左右的优势,而编码或双错误的解码时通过流水线复用的方式,可以实现其实际速度达到标准RAID6的特点,从而以较小的损耗实现单错误的解码速度改进。
在又一个实施例中,请参照图5所示,本申请实施例还提供了一种RAID6磁盘阵列的编码装置300,所述编码装置300包括:
磁盘分组模块301,所述磁盘分组模块301被配置为将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组;
条带组对模块302,所述条带组对模块302被配置为将RAID6磁盘阵列下全部条带两两组对以得到若干条带对;
计算模块303,所述计算模块303被配置为根据第一规则和第二规则计算所述若干条带对 中每个条带的两个校验码,其中,所述第一规则为每一条带上所述第一磁盘组和所述第二磁盘组的各个数据进行异或运算结果等于零,所述第二规则为同一条带对中一个条带上所述第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上所述第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
上述一种RAID6磁盘阵列的编码装置300,通过将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组,然后将RAID6磁盘阵列下全部条带两两组对以得到若干条带对,最后根据第一规则和第二规则计算所述若干条带对中每个条带的两个校验码,使属于同条带对的两个条带根据磁盘分组交叉编码,丰富了RAID6磁盘阵列的编解码方式,有助于减少单一磁盘错误时恢复数据所需读取的数据量,提升RAID6性能。
在一些实施例中,所述编码装置300还包括:
响应于RAID6磁盘阵列下条带总数为奇数,则根据第一规则和第三规则计算未组对条带的两个校验码,其中,所述第三规则为同一条带上所述第一磁盘组和第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
在一些实施例中,所述磁盘分组模块301被配置为:
获取RAID6磁盘阵列的磁盘总数;
响应于所述磁盘总数为偶数,则将构成RAID6磁盘阵列的所有磁盘平均分成两组;
响应于所述磁盘总数为奇数,则将构成RAID6磁盘阵列的所有磁盘划分成一组比另一组多一个磁盘。
在一些实施例中,所述磁盘分组模块301被配置为:
获取RAID6磁盘阵列的磁盘排列顺序;
将磁盘排列顺序中的前一半和后一半分别作为一组。
所述磁盘分组模块301被配置为:
获取RAID6磁盘阵列的磁盘排列顺序;
将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
在一些实施例中,所述磁盘分组模块301被配置为:
获取RAID6磁盘阵列的磁盘排列顺序;
将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
在一些实施例中,所述条带组对模块302被配置为:
获取RAID6磁盘阵列的条带总数以及条带排列顺序;
响应于所述条带总数为偶数,则基于所述条带排列顺序将全部条带按照连续两个条带组 成一对方式组对;
响应于所述条带总数为奇数,则基于所述条带排列顺序将除首个条带或最后一个条带以外的剩余条带按照连续两个条带组成一对方式组对。
在一些实施例中,所述RAID6磁盘阵列的负载均衡满足以下方式中的任意一种:左旋对齐、左旋不对齐、右旋对齐和右旋不对齐。
需要说明的是,关于RAID6磁盘阵列的编码装置的限定可以参见上文中对RAID6磁盘阵列的编码方法的限定,在此不再赘述。上述RAID6磁盘阵列的编码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在又一个实施例中,请参照图6所示,本申请实施例还提供了一种RAID6磁盘阵列的解码装置400,RAID6磁盘阵列采用以上所述的编码装置进行编码,所述解码装置400包括:
判断模块401,所述判断模块401被配置为响应于RAID6磁盘阵列发生单一磁盘错误,则判断单一磁盘错误所属的磁盘组;
第一读取模块402,所述第一读取模402块被配置为响应于单一磁盘错误对应的条带属于所述若干条带对,则以最小解码单位为两个条带的方式读取第一解码数据,其中,所述第一解码数据包括:单一错误所属磁盘组中其他磁盘在所述某一条带对的两个条带上的所有数据,以及未发生错误的磁盘组的各个磁盘在所述某一条带对的其中一个条带上的所有数据;
第一解码模块403,所述第一解码模块403被配置为基于第一规则、第二规则以及所述第一解码数据进行解码以得到恢复数据。
上述一种RAID6磁盘阵列的解码装置400,针对单一磁盘错误的情形无需读取全部的数据即可恢复出错误数据,减少单一磁盘错误时恢复数据所需读取的数据量,提升RAID6性能。
在一些实例中,所述解码装置400还包括:
第二读取模块,所述第二读取模块被配置为响应于单一磁盘错误对应的条带不属于任何条带对,则以最小解码单位为一个条带的方式读取第二解码数据,其中,所述第二解码数据包括除发生单一磁盘错误以外的其他磁盘在该条带上的所有数据;
第二解码模块,所述第二解码模块被配置为基于第一规则、第三规则以及所述第二解码数据进行解码以得到恢复数据。
根据本申请实施例的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网 络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的RAID6磁盘阵列的编码方法或所述的RAID6磁盘阵列的解码方法。
根据本申请实施例的又一方面,提供了一种非易失性可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的RAID6磁盘阵列的编码方法或所述的RAID6磁盘阵列的解码方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请实施例所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请实施例的几种实施方式,其描述较为丰富和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请实施例构思的前提下,还可以做出若干变形和改进,这些都属于本申请实施例的保护范围。因此,本申请实施例专利的保护范围应以所附权利要求为准。

Claims (20)

  1. 一种RAID6磁盘阵列的编码方法,其特征在于,所述编码方法包括:
    将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组;
    将所述RAID6磁盘阵列下全部条带两两组对以得到N个条带对,其中,N为大于或等于2的正整数;
    根据第一规则和第二规则计算所述N个条带对中每个条带的两个校验码,其中,所述第一规则为每一条带上所述第一磁盘组和所述第二磁盘组的各个数据进行异或运算结果等于零,所述第二规则为同一条带对中一个条带上所述第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上所述第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
  2. 根据权利要求1所述的RAID6磁盘阵列的编码方法,所述编码方法还包括:
    响应于RAID6磁盘阵列下条带总数为奇数,则根据第一规则和第三规则计算未组对条带的两个校验码,其中,所述第三规则为同一条带上所述第一磁盘组和第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
  3. 根据权利要求1所述的RAID6磁盘阵列的编码方法,其特征在于,所述将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组的步骤包括:
    获取RAID6磁盘阵列的磁盘总数;
    响应于所述磁盘总数为偶数,则将构成RAID6磁盘阵列的所有磁盘平均分成两组;
    响应于所述磁盘总数为奇数,则将构成RAID6磁盘阵列的所有磁盘划分成一组比另一组多一个磁盘。
  4. 根据权利要求3所述的RAID6磁盘阵列的编码方法,其特征在于,所述将构成RAID6磁盘阵列的所有磁盘平均分成两组的步骤包括:
    获取RAID6磁盘阵列的磁盘排列顺序;
    将磁盘排列顺序中的前一半和后一半分别作为一组。
  5. 根据权利要求3所述的RAID6磁盘阵列的编码方法,其特征在于,所述将构成RAID6磁盘阵列的所有磁盘平均分成两组的步骤包括:
    获取RAID6磁盘阵列的磁盘排列顺序;
    将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
  6. 根据权利要求3所述的RAID6磁盘阵列的编码方法,其特征在于,所述将构成RAID6磁盘阵列的所有磁盘划分成一组比另一组多一个磁盘的步骤包括:
    获取RAID6磁盘阵列的磁盘排列顺序;
    将所述磁盘排列顺序中所有奇数位对应的磁盘和所有偶数位对应的磁盘分别作为一组。
  7. 根据权利要求1所述的RAID6磁盘阵列的编码方法,其特征在于,所述将RAID6磁盘阵列下全部条带两两组对以得到N个条带对的步骤包括:
    获取RAID6磁盘阵列的条带总数以及条带排列顺序;
    响应于所述条带总数为偶数,则基于所述条带排列顺序将全部条带按照连续两个条带组成一对方式组对;
    响应于所述条带总数为奇数,则基于所述条带排列顺序将除首个条带或最后一个条带以外的剩余条带按照连续两个条带组成一对方式组对。
  8. 根据权利要求1所述的RAID6磁盘阵列的编码方法,其特征在于,所述RAID6磁盘阵列的负载均衡满足以下方式中的任意一种:左旋对齐、左旋不对齐、右旋对齐和右旋不对齐。
  9. 根据权利要求1所述的RAID6磁盘阵列的编码方法,其特征在于,所述根据第一规则和第二规则计算所述N个条带对中每个条带的两个校验码,包括:
    根据第一规则和第二规则计算所述N个条带对中每个条带的两个校验码,使属于同条带对的两个条带根据磁盘分组交叉编码。
  10. 一种RAID6磁盘阵列的解码方法,其特征在于,RAID6磁盘阵列采用权利要求1-9任意一项所述的编码方法进行编码,所述解码方法包括:
    响应于RAID6磁盘阵列发生单一磁盘错误,则判断单一磁盘错误所属的磁盘组;
    响应于单一磁盘错误对应的条带属于所述N个条带对,则以最小解码单位为两个条带的方式读取第一解码数据,其中,N为大于或等于2的正整数,所述第一解码数据包括:单一错误所属磁盘组中未发生所述单一磁盘错误的其他磁盘在一个条带对的两个条带上的所有数据,以及未发生错误的磁盘组的各个磁盘在所述一个条带对的其中一个条带上的所有数据;
    基于第一规则、第二规则以及所述第一解码数据进行解码以得到恢复数据。
  11. 根据权利要求10所述的RAID6磁盘阵列的解码方法,其特征在于,所述解码方法还包括:
    响应于单一磁盘错误对应的条带不属于任何条带对,则以最小解码单位为一个条带的方式读取第二解码数据,其中所述第二解码数据包括除发生单一磁盘错误以外的其他磁盘在该条带上的所有数据;
    基于第一规则、第三规则以及所述第二解码数据进行解码以得到恢复数据。
  12. 根据权利要求10所述的RAID6磁盘阵列的解码方法,其特征在于,所述解码方法还包括:
    响应于RAID6磁盘阵列发生两个磁盘错误,则判断所述两个磁盘错误所属的磁盘组;
    当所述两个磁盘错误所属的磁盘组是同一个磁盘组时,以最小解码单位为两个条带的方式读取第三解码数据,其中,所述第三解码数据包括:所述两个磁盘错误所属磁盘组中未发生所述两个磁盘错误的其他磁盘在一个条带对的两个条带上的所有数据,以及未发生错误的磁盘组的各个磁盘在所述一个条带对的其中一个条带上的所有数据;
    基于第一规则、第二规则以及所述第三解码数据进行解码以得到恢复数据。
  13. 根据权利要求12所述的RAID6磁盘阵列的解码方法,其特征在于,所述解码方法还包括:
    当所述两个磁盘错误对应的条带属于不同磁盘组时,以最小解码单位为两个条带的方式读取第四解码数据,其中,所述第四解码数据包括除发生所述两个磁盘错误以外的其他磁盘在一个条带对的两个条带上的所有数据;
    基于第一规则、第三规则以及所述第四解码数据进行解码以得到恢复数据。
  14. 根据权利要求10至13中任一项所述的RAID6磁盘阵列的解码方法,其特征在于,所述第一规则为每一条带上所述第一磁盘组和所述第二磁盘组的各个数据进行异或运算结果等于零。
  15. 根据权利要求10或12所述的RAID6磁盘阵列的解码方法,其特征在于,所述第二规则为同一条带对中一个条带上所述第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上所述第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
  16. 根据权利要求11或13所述的RAID6磁盘阵列的解码方法,其特征在于,所述第三规则为同一条带上所述第一磁盘组和第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
  17. 一种RAID6磁盘阵列的编码装置,其特征在于,所述编码装置包括:
    磁盘分组模块,所述磁盘分组模块被配置为将RAID6磁盘阵列下所有磁盘划分成两组以得到第一磁盘组和第二磁盘组;
    条带组对模块,所述条带组对模块被配置为将RAID6磁盘阵列下全部条带两两组对以得到N个条带对,其中,N为大于或等于2的正整数;
    计算模块,所述计算模块被配置为根据第一规则和第二规则计算所述N个条带对中每个条带的两个校验码,其中,所述第一规则为每一条带上所述第一磁盘组和所述第二磁 盘组的各个数据进行异或运算结果等于零,所述第二规则为同一条带对中一个条带上所述第一磁盘组的各个数据乘以对应磁盘号、以及另一个条带上所述第二磁盘组的各个数据乘以对应磁盘号进行异或运算结果等于零。
  18. 一种RAID6磁盘阵列的解码装置,其特征在于,RAID6磁盘阵列采用权利要求17所述的编码装置进行编码,所述解码装置包括:
    判断模块,所述判断模块被配置为响应于RAID6磁盘阵列发生单一磁盘错误,则判断单一磁盘错误所属的磁盘组;
    第一读取模块,所述第一读取模块被配置为响应于单一磁盘错误对应的条带属于所述N个条带对,则以最小解码单位为两个条带的方式读取第一解码数据,其中,所述第一解码数据包括:单一错误所属磁盘组中其他磁盘在一个条带对的两个条带上的所有数据,以及未发生错误的磁盘组的各个磁盘在所述一个条带对的其中一个条带上的所有数据;
    第一解码模块,所述第一解码模块被配置为基于第一规则、第二规则以及所述第一解码数据进行解码以得到恢复数据。
  19. 一种计算机设备,其特征在于,包括:
    至少一个处理器;以及
    存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-9任意一项所述的编码方法,或者执行10-16任意一项所述的解码方法。
  20. 一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-9任意一项所述的编码方法,或者执行10-16任意一项所述的解码方法。
PCT/CN2023/077973 2022-07-26 2023-02-23 Raid6磁盘阵列的编码方法、解码方法、装置及介质 WO2024021594A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210887332.0 2022-07-26
CN202210887332.0A CN115080303B (zh) 2022-07-26 2022-07-26 Raid6磁盘阵列的编码方法、解码方法、装置及介质

Publications (1)

Publication Number Publication Date
WO2024021594A1 true WO2024021594A1 (zh) 2024-02-01

Family

ID=83242236

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/077973 WO2024021594A1 (zh) 2022-07-26 2023-02-23 Raid6磁盘阵列的编码方法、解码方法、装置及介质

Country Status (2)

Country Link
CN (1) CN115080303B (zh)
WO (1) WO2024021594A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080303B (zh) * 2022-07-26 2023-01-06 苏州浪潮智能科技有限公司 Raid6磁盘阵列的编码方法、解码方法、装置及介质
CN116312726B (zh) * 2023-05-16 2023-08-15 苏州浪潮智能科技有限公司 一种数据存储方法、装置、电子设备和存储介质
CN116501553B (zh) * 2023-06-25 2023-09-19 苏州浪潮智能科技有限公司 数据恢复方法、装置、系统、电子设备及存储介质
CN116501537B (zh) * 2023-06-26 2023-09-19 苏州浪潮智能科技有限公司 磁盘阵列切换方法、系统、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499253A (en) * 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
US6138125A (en) * 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US20050166083A1 (en) * 2003-06-26 2005-07-28 Frey Alexander H.Jr. RAID 6 disk array architectures
CN114756402A (zh) * 2022-04-15 2022-07-15 山东云海国创云计算装备产业创新中心有限公司 Raid组更新数据时保障数据安全的方法、系统、设备及介质
CN115080303A (zh) * 2022-07-26 2022-09-20 苏州浪潮智能科技有限公司 Raid6磁盘阵列的编码方法、解码方法、装置及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023819B (zh) * 2010-12-01 2012-08-22 北京同有飞骥科技股份有限公司 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法
CN104881252A (zh) * 2015-05-21 2015-09-02 东莞天意电子有限公司 一种基于e码的磁盘阵列布局结构
CN113821373B (zh) * 2021-11-19 2022-02-22 苏州浪潮智能科技有限公司 提高磁盘地址转换速度的方法、系统、设备和存储介质
CN114153651B (zh) * 2022-02-09 2022-04-29 苏州浪潮智能科技有限公司 一种数据编码方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499253A (en) * 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
US6138125A (en) * 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US20050166083A1 (en) * 2003-06-26 2005-07-28 Frey Alexander H.Jr. RAID 6 disk array architectures
CN114756402A (zh) * 2022-04-15 2022-07-15 山东云海国创云计算装备产业创新中心有限公司 Raid组更新数据时保障数据安全的方法、系统、设备及介质
CN115080303A (zh) * 2022-07-26 2022-09-20 苏州浪潮智能科技有限公司 Raid6磁盘阵列的编码方法、解码方法、装置及介质

Also Published As

Publication number Publication date
CN115080303A (zh) 2022-09-20
CN115080303B (zh) 2023-01-06

Similar Documents

Publication Publication Date Title
WO2024021594A1 (zh) Raid6磁盘阵列的编码方法、解码方法、装置及介质
Vajha et al. Clay codes: Moulding {MDS} codes to yield an {MSR} code
EP3504623B1 (en) Multiple node repair using high rate minimum storage regeneration erasure code
US9442800B2 (en) Data migration between a raid memory and a dispersed storage network memory
Li et al. GRID codes: Strip-based erasure codes with high fault tolerance for storage systems
US20140351632A1 (en) Storing data in multiple formats including a dispersed storage format
WO2023151290A1 (zh) 一种数据编码方法、装置、设备及介质
WO2023165536A1 (zh) 一种数据存储方法、系统、设备以及介质
CN108228382B (zh) 一种针对evenodd码单盘故障的数据恢复方法
CN111831223B (zh) 提高数据去重系统可扩展性的容错编码方法、装置及系统
WO2024001112A1 (zh) 一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质
WO2024001126A1 (zh) 一种纠删码融合方法、系统、电子设备及非易失性可读存储介质
CN114610244A (zh) 一种独立冗余磁盘阵列降级方法、系统及设备
CN102843212B (zh) 编解码处理方法及装置
CN114610525A (zh) 一种用于磁盘阵列的数据更新方法、系统及存储介质
CN114115729B (zh) 一种raid下的高效数据迁移方法
CN114546272A (zh) 快速通用的raid降级为raid5的方法、系统、设备和存储介质
CN116501553B (zh) 数据恢复方法、装置、系统、电子设备及存储介质
CN110268397B (zh) 应用于数据仓库系统的高效优化数据布局方法
WO2024051114A1 (zh) 一种数据转存方法、系统、设备及非易失性可读存储介质
CN116450048A (zh) Raid6磁盘阵列降级为raid5磁盘阵列的方法
CN114756175A (zh) 一种用于磁盘阵列的解码方法、系统、设备及介质
CN116248129A (zh) 一种容错的数据分段压缩方法、恢复方法、设备及系统
US9400715B1 (en) System and method for interconnecting storage elements
CN114610241A (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: 23844813

Country of ref document: EP

Kind code of ref document: A1