WO2014079040A1 - 一种数据恢复的方法及设备 - Google Patents

一种数据恢复的方法及设备 Download PDF

Info

Publication number
WO2014079040A1
WO2014079040A1 PCT/CN2012/085155 CN2012085155W WO2014079040A1 WO 2014079040 A1 WO2014079040 A1 WO 2014079040A1 CN 2012085155 W CN2012085155 W CN 2012085155W WO 2014079040 A1 WO2014079040 A1 WO 2014079040A1
Authority
WO
WIPO (PCT)
Prior art keywords
blocks
data
bad
small
small blocks
Prior art date
Application number
PCT/CN2012/085155
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 华为技术有限公司
Priority to CN201280002929.7A priority Critical patent/CN104025056B/zh
Priority to PCT/CN2012/085155 priority patent/WO2014079040A1/zh
Priority to EP12888826.0A priority patent/EP2908247A4/en
Publication of WO2014079040A1 publication Critical patent/WO2014079040A1/zh
Priority to US14/714,754 priority patent/US9417962B2/en

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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • 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
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • 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
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system

Definitions

  • the present invention relates to the field of data processing, and in particular, to a data recovery method and device. Background technique
  • the technology divides the data set into n data blocks, each data block stores a part of the data set, and then The m redundant coding blocks of the data set are calculated by the pure exclusive OR operation and the algebraic domain operation, and the n data blocks and the m coding blocks are respectively stored in different places.
  • the undamaged data block or the coded block is used to perform the correlation operation to recover the bad block, where n and m are integers greater than 0.
  • the embodiment of the invention provides a method and a device for restoring data, which can improve the reliability of data storage.
  • a first aspect of the present invention provides a method for restoring data.
  • the currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated, where n and m are greater than 0.
  • the integer may also include:
  • each of the n data blocks and the m coding blocks is divided into h small blocks, and among all the small blocks included in the n data blocks and the m coding blocks, the same small blocks in each data block and the coding block are located.
  • each sub-set contains the number of bad patches with corrupted data less than or equal to the m, and the h is an integer greater than one;
  • the corrupted data in the bad chunks in the subset is recovered using the data of the undamaged chunks belonging to the subset of the bad chunks, respectively.
  • the corrupted data in the bad blocks in the subset is recovered using data of the undamaged small blocks in the subset of the bad blocks respectively. , including:
  • the corrupted data in the bad patches in the subset is recovered using the obtained data of the small blocks of the m coding blocks and the data of the undamaged small blocks of the n data blocks.
  • the data recovery unit that uses the undamaged small block in the subset that belongs to the bad small block is respectively used for a subset that has a bad small block.
  • the corrupted data in the bad blocks in the set of subroutines including:
  • the n data blocks and the location according to the analyzed location is divided into h small blocks according to the same division rule, including:
  • each of the n data blocks and the m coding blocks into h small blocks according to a same division rule according to a preset size, the preset size A minimum unit for storing data for the n data blocks and a magnitude of a common multiple of a minimum unit for storing the data for the m coding blocks.
  • the n data blocks and the location according to the analyzed location M are divided into h small blocks according to the same division rule including:
  • the preset size It is in units of one sector and includes the size of at least one sector.
  • a second aspect of the present invention provides a device for recovering data, wherein a currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated, where n and m are greater than 0.
  • the integer includes the first analyzing unit, the dividing unit, and the restoring unit, where:
  • the first analyzing unit is configured to analyze, when the bad block exists in the n data blocks, a location where the damaged data of each of the n data blocks is located in each of the bad blocks;
  • the dividing unit is configured to divide each of the n data blocks and the m coding blocks into h small blocks according to the same division rule according to the location analyzed by the analysis unit, where Among all the small blocks included in the n data blocks and the m coding blocks, the same small block in each data block and the coding block is used as a subset, and each subset contains the presence of corrupted data.
  • the number of bad patches is less than or equal to the m, and the h is an integer greater than one;
  • the recovery unit is configured to recover, in a subset of the bad small blocks, data of the undamaged small blocks in the subset that belongs to the bad small block, respectively, to recover the bad blocks in the subset The data.
  • the recovery unit includes: a first acquiring unit, configured to acquire data of a small block belonging to the m coding blocks in a subset of the bad small blocks And data of d, blocks that are not damaged in the n data blocks;
  • a first recovery subunit configured to recover, by using the acquired data of the small block of the m coding blocks and the data of the undamaged small blocks of the n data blocks, the bad small blocks in the subset Damaged data.
  • the recovery unit includes: a second analyzing unit, configured to analyze the number of bad small blocks in the subset of the bad small blocks;
  • a second acquiring unit configured to acquire data of the small blocks belonging to the m coding blocks and having the same number of bad small blocks in the subset of the bad small blocks, and belonging to the n data blocks Data in undamaged small blocks;
  • a second recovery subunit configured to recover, by using the acquired data of the small block of the m coding blocks and the data of the undamaged small blocks of the n data blocks, the bad small blocks in the subset Damaged number According to.
  • the dividing unit is further configured to: according to the analyzed location, Each of the data blocks and the m coding blocks is divided into h small blocks in a predetermined size according to the same division rule, and the preset size is a minimum unit for storing the data in the n data blocks. And the size of the common multiple of the smallest unit of data stored in the m coding blocks.
  • the dividing unit is further configured to: according to the analyzed location, Each of the data blocks and the m coding blocks is divided into h small blocks in a predetermined size according to the same division rule, and the preset size is in units of one sector and includes at least one sector. the size of.
  • a third aspect of the present invention provides a device for recovering data, wherein a currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated, where n and m are greater than 0.
  • the device comprises a processor, a communication interface, a memory and a bus:
  • processor, the communication interface, and the memory complete communication with each other through the bus;
  • the communication interface configured to receive data of the n data blocks and data of the m coding blocks from a storage device that stores data of the n data blocks and data of the m coding blocks;
  • the program stores a set of program codes
  • the processor is configured to invoke program code stored in the memory for performing the following operations:
  • each of the n data blocks and the m coding blocks into h small blocks according to the same division rule, where the n data blocks and the m Among all the small blocks included in the coding block, the same small block in each data block and coding block is used as a subset, and each sub-set contains the number of bad small blocks with corrupted data less than or equal to m, the h is an integer greater than 1;
  • the corrupted data in the bad chunks in the subset is recovered using the data of the undamaged chunks belonging to the subset of the bad chunks, respectively.
  • the performing, by the processor recovers the badness of the subset by using data that belongs to the undamaged small block in the subset of the bad block
  • the operations of corrupted data in a block include:
  • the corrupted data in the bad patches in the subset is recovered using the obtained data of the small blocks of the m coding blocks and the data of the undamaged small blocks of the n data blocks.
  • the processor performs, by using data that belongs to the undamaged small block in the subset of the bad block, respectively, recovering a bad small in the subset
  • the operations of corrupted data in a block include:
  • the performing, by the processor, according to the analyzed location, the n The operation of dividing the data block and each of the m coding blocks into h small blocks according to the same division rule includes:
  • each of the n data blocks and the m coding blocks into h small blocks according to a same division rule according to a preset size, the preset size A minimum unit for storing data for the n data blocks and a magnitude of a common multiple of a minimum unit for storing the data for the m coding blocks.
  • the processor performs, according to the analyzed location, the n
  • the operation of dividing the data block and each of the m coding blocks into h small blocks according to the same division rule includes:
  • the preset size It is in units of one sector and includes the size of at least one sector.
  • a fourth aspect of the present invention provides a computer storage medium, wherein the computer storage medium stores a program, and the program includes the following steps when: the first aspect of the present invention provides a method for restoring data. The steps described in the method.
  • the n data blocks and each of the m coding blocks are divided into h small blocks according to the same division rule according to the location of the damaged data, and the n pieces are
  • the data block and the small blocks included in each of the data block and the coding block among the small blocks included in the m coding blocks are used as a subset, such that each sub-set contains bad small blocks with corrupted data.
  • the number is less than or equal to the m, and the h is an integer greater than 1.
  • the damaged data can be divided into less than or equal to h sub-collections, and the number of small blocks in which the corrupted data in each sub-set is located is smaller than Or equal to the m, and then recover the corrupted data in the bad small blocks in each of the subsets by using the undamaged small blocks in each of the subsets, so that at most, the bad small blocks can be recovered.
  • m damaged blocks can be recovered, which can improve the reliability of data storage.
  • FIG. 1 is an optional application scenario diagram provided by an embodiment of the present invention
  • FIG. 2 is a schematic flowchart of a method for restoring data according to an embodiment of the present invention
  • FIG. 3 is a schematic diagram of an optional data structure provided by an embodiment of the present invention.
  • FIG. 4 is a schematic flowchart of another method for restoring data according to an embodiment of the present invention
  • FIG. 5 is a schematic flowchart of another method for restoring data according to an embodiment of the present invention
  • FIG. Schematic diagram of a device for data recovery
  • FIG. 7 is a schematic structural diagram of another apparatus for data recovery according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a device for data recovery according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of another apparatus for data recovery according to an embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of a data recovery apparatus according to an embodiment of the present invention.
  • FIG. 1 is an optional application scenario diagram provided by an embodiment of the present invention.
  • the primary storage node divides the data flow A into n data blocks and stores them on the secondary storage node.
  • the secondary storage node 1 to the secondary storage node 9 are shown for storing n data blocks and m coding blocks, where n can be equal to 6, and m can be equal to 9, wherein the above n data blocks constitute a data set, which can be pure An exclusive OR operation, or an algebraic domain operation, calculates m redundant coded blocks of the data set.
  • the n data blocks need to be obtained from the secondary storage node storing the n data blocks, that is, the foregoing data is obtained. Collection to complete the currently executing program or the currently processed business.
  • the primary storage node described above can be any controller or storage device in the network.
  • FIG. 2 is a schematic flowchart of a method for restoring data according to an embodiment of the present invention.
  • the currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated.
  • n and m are integers greater than 0.
  • the method further includes:
  • the currently processed data set may be a data set currently needed to implement the device of the present invention.
  • the program currently being executed by the device of the present invention or the set of data needed to process the current service may be a data set currently needed to implement the device of the present invention.
  • each of the n data blocks and the m coding blocks into h small blocks according to the same division rule, where the n data blocks and the Among all the small blocks included in the m coding blocks, the same small block in each data block and the coding block is used as a subset, and each sub-set contains less than or less than the number of bad blocks with corrupted data.
  • the h is an integer greater than one.
  • the above location includes the starting position and the ending position of the small block, that is, the small blocks in the same position in the data block and the encoding block, and the sizes of the small blocks are also the same.
  • the device for example, the primary storage node device shown in FIG. 1 that implements the present invention knows the storage address information of each of the n data blocks and the m coding blocks, such as pre-acquiring and storing the n pieces.
  • the division in step 102 may be to divide the storage address of each of the n data blocks and the m coding blocks into h small blocks.
  • the foregoing dividing rule may include: a size of the divided small blocks for each data block and the coding block, each small block being equal to or different in size, and determining a starting position of each small block.
  • the foregoing dividing rule may be generated based on the analyzed location, for example, the foregoing analysis is that the location of the damaged data of the bad block in the n data blocks in the bad block is the upper half, so that the foregoing dividing
  • the rule can divide the partitioning rules into upper and lower parts according to each block; for example, the above analysis shows that the position of the damaged data of the bad blocks in the n data blocks in the bad block is the left part, so that the above
  • the division rule can be divided into two division rules according to the division of each block into left and right parts.
  • each block is divided into h small blocks.
  • each block is divided into two small blocks by an intermediate position, and then two small blocks included in each block are in a data block or a coding block.
  • the location is the upper half and the lower half; and step 102 sets the n data blocks and all the small blocks included in the m coding blocks to be the same in each of the data blocks and the coding block.
  • the sub-sets are obtained. For example, if each block is divided into two small blocks by the intermediate position, two sub-sets are obtained, and the position of the data block or the coding block is the upper half.
  • step 102 can divide n data blocks and the m coding blocks into h sub-collections, each sub-set includes n+m small blocks, and the small blocks in each sub-set are in the data block or the coding block. The location is the same.
  • the above calculation results that the m redundant coding blocks of the data may be m redundant by using a pure exclusive OR operation and an algebraic domain operation in the EC technology mentioned in the background art.
  • Encoding block
  • n data blocks and the m coding blocks are as shown in FIG. 3, where n is 6 and m is 3, and FIG. 3 is marked with a black frame indicating the location of the damaged data, and the bad block is visible. If the number is greater than 3, it is impossible to recover the damaged data in the prior art.
  • the present invention can analyze the location of the damaged data by step 101.
  • Step 102 can divide each of the 6 data blocks and 3 coding blocks into two small blocks according to the position analyzed in step 101. , as shown by the dotted line in Figure 3, Dividing each block into two upper and lower small blocks, step 102, the n data blocks and all the small blocks included in the m coding blocks are in the same position in each data block and the coding block.
  • step 102 can divide each block in FIG. 3 into 3, 4, or 5 small blocks.
  • the size of the divided small blocks may be the same or different, and the user may actually determine according to the size occupied by the damaged data; thus, more damaged data can be recovered.
  • step 102 divides each block into h small blocks
  • each small block may be divided according to a preset size, that is, the n data according to the analyzed position in step 102.
  • dividing each of the blocks and the m coding blocks into h small blocks according to the same division rule may include:
  • each of the n data blocks and the m coding blocks are divided into h small blocks according to the same division rule by a predetermined size.
  • the preset size may be a minimum unit of data stored in the n data blocks and a common multiple of a minimum unit of data stored in the m coding blocks.
  • each of the n data blocks and the m coding blocks is divided into h small blocks according to the size of the common multiple, and it is necessary to satisfy the foregoing, the n data blocks and the m coding units.
  • the small blocks included in each of the data blocks and the coding blocks are included as a subset in all the small blocks included in the block, and the number of bad small blocks containing the damaged data included in each of the sub-sets is less than or equal to the condition of the m .
  • the size of the common multiple is as a unit of a minimum unit of data stored in the n data blocks and a least common multiple of a minimum unit of data stored in the m code blocks, and includes a size of at least one of the least common multiples.
  • the above minimum unit may be storing one data (for example: a binary number of 0 or 1), and ensuring that the function of the data can use the required storage space normally.
  • the data recovery process may be an algebraic operation (for example, a pure exclusive OR operation), and each data has a complete function of encoding or verification, as long as the present invention does not split a data.
  • the smallest unit of data stored in a data block is 4 bytes
  • encoding The minimum unit of block storage data is 3 bytes
  • the least common multiple is 12 bytes
  • step 102 is in units of 12 bytes
  • the size of the divided small block then the size of the last divided small block
  • It can be 24 bytes or 12 bytes so that the undamaged data stored in each small block is complete, that is, step 102 does not damage the data stored in the data block or the code block during the dividing process. Therefore, it is ensured that the encoding or verification of the encoded data (for example, the check code) stored in the encoding block does not invalidate.
  • the preset size is in units of one sector and includes a size of at least one sector, that is, a small block has a size of N sectors, and N is a positive integer greater than or equal to 1, for example, one
  • the size of the tile includes the size of two or three sectors.
  • the data stored in the n data blocks and the m coding blocks are not split and stored in different sectors, that is, step 102 does not damage the data block or the code block stored in the dividing process.
  • the data so as to ensure that the encoding or verification of the encoded data (for example: check code) stored in the encoding block does not invalidate.
  • each of the n data blocks and the m coding blocks is divided into h small blocks according to the same division rule according to the location of the damaged data, in the n Among all the small blocks included in the data block and the m coding blocks, the same small block in each data block and the coding block is used as a subset, so that each sub-set contains bad data with corrupted data.
  • the number of small blocks is less than or equal to the m, and the h is an integer greater than 1; thus, the damaged data can be divided into less than or equal to h sub-sets, and the damaged data in each sub-set is located in the small block.
  • Block, and h is an integer greater than 1, compared to the current technology can only recover m damaged blocks, can improve the reliability of data storage.
  • 4 is a schematic flowchart of a method for restoring data according to an embodiment of the present invention.
  • the currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated. n and m are integers greater than 0. As shown in FIG. 4, the method further includes:
  • step 201 can be used to analyze the location of the corrupted data.
  • each of the n data blocks and the m coding blocks into h small blocks according to the same division rule, where the n data blocks and the Among all the small blocks included in the m coding blocks, the same small block in each data block and the coding block is used as a subset, and each sub-set contains less than or less than the number of bad blocks with corrupted data.
  • the h is an integer greater than one.
  • the damaged data has 4 locations, and is located in 4 blocks, wherein 2 is located in the upper half of the block, and the other 2 is located in the lower half of the block, so that step 202 can be one.
  • Each block in Figure 3 is divided into two upper and lower blocks.
  • the foregoing step 203 may be a device (for example, the primary storage node shown in FIG. 1) that implements the present invention, and obtain the foregoing m pieces from the device that stores the n data blocks and the m coding blocks.
  • For a subset of the bad blocks recover the data in the subset by using the obtained data of the small blocks in the m coding blocks and the data of the undamaged small blocks in the n data blocks. The corrupted data in the small block.
  • each small block is divided into two upper and lower small blocks to form two sub-sets, so that step 203 may be a data block or a coding block in units of each small block in the subset.
  • Network transmission when only the above small blocks in Figure 3 have corrupted data, the small blocks transmitted in step 203 are only small blocks in the subset to which the bad blocks belong; compared to the entire data block in the prior art Or coding blocks for network transmission, which can reduce network transmission to save network resources.
  • step 203 can include:
  • the location information of the undamaged small blocks in the subset of the bad small blocks is sent to the storage device storing the undamaged small block data (for example, the secondary storage node shown in FIG. 1) Sending a request to the storage device to return data included in the undamaged small block in the subset of the bad block;
  • the device in which the present invention is implemented for example, the primary storage node shown in FIG. 1 and other storage devices that store data (for example, the secondary storage node shown in FIG. 1) can transmit only the child in which the bad small block is located.
  • the data contained in the small blocks in the collection reduces network traffic.
  • step 204 may include:
  • the corrupted data in the bad small blocks in the subset is recovered by the EC algorithm.
  • a pure XOR operation, and algebraic domain operations are used to recover bad blocks in each of the subsets.
  • a small block belonging to the m coding blocks belongs to a bad block of the damaged data, and the subset exists. If the number of bad small blocks in the m coding blocks in the subset of bad small blocks plus the number of bad small blocks in the n data blocks is greater than m, the sub-set can be re-divided to perform the above division, which can be small Each small block of the subset of blocks is divided into a plurality of small blocks, so that the number of bad small blocks containing the damaged data contained above is less than or equal to the m. Then use the technical features of step 204 to recover.
  • a sub-set having a bad small block includes a sub-set 1, a sub-set 2, and a sub-set 3, wherein when a small block belonging to the m coding blocks in the sub-set 3 has a bad block of corrupted data,
  • the number of bad blocks in which the small blocks in the m coding blocks have corrupted data is h
  • the number of bad small blocks in the n data blocks in the subset 3 is t, and when h+t is greater than m, it can be re Performing the above division on the subset 3, dividing each small block of the subset of the bad small blocks into a plurality of small blocks, so as to satisfy the above-mentioned inclusion of the damaged data, the number of bad small blocks is less than or equal to the m. Then use the technical features of step 204 to recover.
  • the present invention can be applied to an RS algorithm (Reed Solomon, which belongs to a foreign word, has no accurate Chinese meaning, is a common algorithm in the field of algorithms, and has a unified RS algorithm, an improved RS. (Cauchy Reed Solomon, CRS) algorithm, Redundant Arrays of Inexpensive Disks (RAID) 5 technology, RAID6 technology.
  • RS algorithm Random Solomon, which belongs to a foreign word, has no accurate Chinese meaning, is a common algorithm in the field of algorithms, and has a unified RS algorithm, an improved RS. (Cauchy Reed Solomon, CRS) algorithm, Redundant Arrays of Inexpensive Disks (RAID) 5 technology, RAID6 technology.
  • FIG. 5 is a schematic flowchart of a method for restoring data according to an embodiment of the present invention.
  • the currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated, n and m are integers greater than 0.
  • the method further includes:
  • n data blocks When a bad block exists in the n data blocks, analyze a location where the damaged data of each of the n data blocks is located in each of the bad blocks. 302. Divide, according to the analyzed location, each of the n data blocks and the m coding blocks into h small blocks according to the same division rule, where the n data blocks and the Among all the small blocks included in the m coding blocks, the same small block in each data block and the coding block is used as a subset, and each sub-set contains less than or less than the number of bad blocks with corrupted data. Equal to the m, the h is an integer greater than one.
  • FIG. 6 is a schematic structural diagram of a device for data recovery according to an embodiment of the present invention.
  • the currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated, n and m are integers greater than zero.
  • the device includes: a first analyzing unit 41, a dividing unit 42 and a restoring unit 43, wherein:
  • a first analyzing unit 41 configured to analyze, when a bad block exists in the n data blocks, a location where damaged data of each of the n data blocks is located in each of the bad blocks;
  • a dividing unit 42 configured to divide each of the n data blocks and the m coding blocks into h small blocks according to the same division rule according to the analyzed position of the analyzing unit 41, where the n Number According to the block and all the small blocks included in the m coding blocks, the same small block in each data block and the coding block is used as a subset, and each sub-set contains bad small blocks with corrupted data.
  • the number is less than or equal to the m, and the h is an integer greater than 1.
  • the recovery unit 43 is configured to recover, for a subset of the bad small blocks, data of the undamaged small blocks in the subset that belongs to the bad small block, respectively, to recover the damaged small blocks in the subset data.
  • the dividing unit 42 is further configured to: according to the analyzed location, each of the n data blocks and the m coding blocks according to the same division rule The size of the settings is divided into h small blocks.
  • the preset size is a size of a minimum unit of the n data block storage data and a common multiple of a minimum unit of the m code block storage data.
  • the preset size is in units of one sector and includes a size of at least one sector.
  • the dividing unit 42 can realize that the undamaged data stored in each d and the block is complete by the partitioning manner, that is, the dividing unit 42 does not damage the data stored in the data block or the encoding block during the dividing process, thereby ensuring the encoding.
  • Functions such as encoding or verification of encoded data (for example: check code) stored in a block do not expire.
  • each of the n data blocks and the m coding blocks is divided into h small blocks according to the same division rule according to the location of the damaged data, in the n Among all the small blocks included in the data block and the m coding blocks, the same small block in each data block and the coding block is used as a subset, so that each sub-set contains bad data with corrupted data.
  • the number of small blocks is less than or equal to the m, and the h is an integer greater than 1; thus, the damaged data can be divided into less than or equal to h sub-sets, and the damaged data in each sub-set is located in the small block.
  • FIG. 7 is a schematic structural diagram of another device for restoring data according to an embodiment of the present invention.
  • n and m are integers greater than 0, 7, comprising: a first analyzing unit 51, divided The unit 52 and the recovery unit 53, the recovery unit 53 includes a first acquisition unit 531 and a first restoration sub-unit 532, wherein:
  • a first analyzing unit 51 configured to analyze, when a bad block exists in the n data blocks, a location where damaged data of each of the n data blocks is located in each of the bad blocks;
  • a dividing unit 521 configured to divide each of the n data blocks and the m coding blocks into h small blocks according to the analyzed location according to the analyzed location, where the n Among all the small blocks included in the data block and the m coding blocks, the same small block in each data block and the coding block is used as a subset, and each sub-set contains bad small blocks with corrupted data.
  • the number is less than or equal to the m, and the h is an integer greater than one.
  • the first obtaining unit 531 is configured to acquire data of the small blocks belonging to the m coding blocks in the subset of the bad small blocks, and data belonging to the uncorrupted small blocks in the n data blocks.
  • a first recovery sub-unit 532 configured to use the obtained data of the small blocks in the m coding blocks and the data recovery of the undamaged small blocks in the n data blocks for a subset that has bad small blocks. The corrupted data in the bad chunks in the subset.
  • each small block is divided into two upper and lower small blocks to form two sub-sets, so that the first obtaining unit 531 can perform data blocks in units of each small block in the subset.
  • the network transmission of the coding block when only the upper small block in FIG. 3 has corrupted data, the small block transmitted in the first acquisition unit 531 is only a small block in the subset to which the bad block belongs;
  • network transmission is performed in units of whole data blocks or coding blocks, which can reduce network transmission and save network resources.
  • the first recovery subunit 532 may be further configured to use the acquired data in the m coding blocks and the n data blocks for a subset that has bad small blocks.
  • the undamaged data uses the EC algorithm to recover corrupted data in bad blocks in the subset.
  • a pure XOR operation, and algebraic domain operations are used to recover corrupted blocks in each of the subsets.
  • the first obtaining unit 531 may further include: a sending unit 5311, configured to: in the subset that has a bad small block, the subset that has the bad small block is not damaged.
  • the location information of the tile is sent to a storage device that stores the undamaged small block data (for example, the secondary storage node shown in FIG. 1), and sends a request to the storage device to return to the subset of the bad block that is not present. Damaged ', the data contained in the block;
  • the receiving unit 5312 is configured to receive data returned by the storage device.
  • Such a device implementing the present invention for example, the primary storage node shown in FIG. 1 and the storage device (for example, the secondary storage node shown in FIG. 1) can transmit only small blocks in the subset of the bad small block. Contains data information, thereby reducing network traffic.
  • the recovery unit 53 may further include: a second analyzing unit 533, configured to analyze the number of bad small blocks in the subset of the bad small blocks; the second obtaining unit 534 And data for acquiring a small block belonging to the m coding blocks and having the same number of bad small blocks in the subset of the bad small blocks, and undamaged in the n data blocks Small piece of data;
  • a second recovery sub-unit 535 configured to use the obtained data of the small blocks in the m coding blocks and the data recovery of the undamaged small blocks in the n data blocks for a subset that has bad small blocks. The corrupted data in the bad chunks in the subset.
  • the present invention can be applied to an RS algorithm (Reed Solomon, which belongs to a foreign word, has no accurate Chinese meaning, is a common algorithm in the field of algorithms, and unifies the RS algorithm), and a CRS algorithm. , RAID5 technology, RAID6 technology.
  • FIG. 10 is a schematic structural diagram of another data recovery device according to an embodiment of the present invention.
  • the currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated.
  • the n and m are integers greater than 0.
  • the device includes a processor 61, a communication interface 62, a memory 63, and a bus 64:
  • the processor 61, the communication interface 62, and the memory 63 complete communication with each other through the bus 64.
  • the communication interface 62 is configured to receive from the storage device storing the data of the n data blocks and the data of the m coding blocks. Decoding data of n data blocks and data of the m coding blocks;
  • a set of program codes is stored in the memory 63, and the processor 61 is configured to call the program code stored in the memory 63 for performing the following operations:
  • each of the n data blocks and the m coding blocks into h small blocks according to the same division rule, where the n data blocks and the m Among all the small blocks included in the coding block, the same small block in each data block and coding block is used as a subset, and each sub-set contains the number of bad small blocks with corrupted data less than or equal to m, the h is an integer greater than 1;
  • the corrupted data in the bad chunks in the subset is recovered using the data of the undamaged chunks belonging to the subset of the bad chunks, respectively.
  • the foregoing calculation results show that the m redundant coding blocks of the data are specifically m redundantly calculated by the pure exclusive OR operation and the algebraic domain operation in the EC technology mentioned in the background art. Encoding block.
  • the processor 61 performs, according to the analyzed location, each of the n data blocks and the m coding blocks according to the same division rule into h.
  • the steps of the small block may include:
  • each of the n data blocks and the m coding blocks are divided into h small blocks according to the same division rule by a predetermined size.
  • the preset size is a size of a minimum unit of the n data block storage data and a common multiple of a minimum unit of the m code block storage data.
  • the preset size is in units of one sector and includes a size of at least one sector.
  • the processor 61 can realize that the undamaged data stored in each small block is complete, that is, the processor 61 does not damage the data stored in the data block or the coding block during the dividing process, thereby ensuring the encoded data stored in the coding block.
  • Functions such as encoding or verification (for example: checksum) do not expire.
  • each of the n data blocks and the m coding blocks is divided into h small blocks according to the same division rule according to the location of the damaged data, in the n Among all the small blocks included in the data block and the m coding blocks, the same small block in each data block and the coding block is used as a subset, so that each sub-set contains bad data with corrupted data.
  • the number of small blocks is less than or equal to the m, and the h is an integer greater than 1; thus, the damaged data can be divided into less than or equal to h sub-sets, and the damaged data in each sub-set is located in the small block.
  • FIG. 11 is a schematic structural diagram of another data recovery device according to an embodiment of the present invention.
  • the currently processed data set is divided into n data blocks, and m redundant coding blocks of the data set are calculated.
  • the n and m are integers greater than 0.
  • the device includes a processor 71, a communication interface 72, a memory 73, and a bus 74:
  • the processor 71, the communication interface 72, and the memory 73 complete communication with each other through the bus 74.
  • the communication interface 72 is configured to receive from the storage device storing the data of the n data blocks and the data of the m coding blocks. Decoding data of n data blocks and data of the m coding blocks;
  • a set of program codes is stored in the memory 73, and the processor 71 is configured to call the program code stored in the memory 73 for performing the following operations:
  • each of the n data blocks and the m coding blocks into h small blocks according to the same division rule, where the n data blocks and the m Among all the small blocks included in the coding block, the same small block in each data block and coding block is used as a subset, and each sub-set contains the number of bad small blocks with corrupted data less than or equal to m, the h is an integer greater than 1;
  • the communication interface 72 can be used to receive information sent by other devices (for example, the secondary storage node described in FIG. 1) to the device (for example, the primary storage node described in FIG. 1) that implements the embodiment, and Transmitting the received information to the processor 71, such as for acquiring data in a subset of the bad small blocks, belonging to the small blocks in the m coding blocks, and undamaged in the n data blocks Small pieces of data.
  • the processor 71 performs the receiving the bad sent by the storage device.
  • the step of storing the data information contained in the undamaged small block in the subset of the small block may include: for the subset of the bad small block, the location information of the undamaged small block in the subset of the bad small block Sending to a storage device storing the undamaged small block data (eg, the secondary storage node shown in FIG. 1), sending a request to the storage device to return an undamaged small block in the subset of the bad block Included data;
  • the process 71 may be: sending, by the communication interface 72, location information of the undamaged small blocks in the subset of the bad small blocks to the storage device storing the undamaged small block data (for example, the secondary storage node shown in FIG. 1) Sending a request to the storage device to return data contained in the undamaged small block of the subset of the bad blocks; the processor 71 may receive the data returned by the storage device via the communication interface 72.
  • Such a device implementing the present invention for example, the primary storage node shown in FIG. 1 and the storage device (for example, the secondary storage node shown in FIG. 1) can transmit only small blocks in the subset of the bad small block. Contains data information, thereby reducing network traffic.
  • the processor 71 performs restoring the data in the subset by using the acquired data of the small blocks in the m coding blocks and the data of the undamaged small blocks in the n data blocks.
  • the steps of corrupted data in bad blocks may include:
  • the corrupted data in the bad small blocks in the subset is recovered by the EC algorithm.
  • a pure XOR operation, and algebraic domain operations are used to recover corrupted blocks in each of the subsets.
  • the processor 71 is configured to call the program code stored in the memory 73, and can also be used to perform the following operations:
  • each of the n data blocks and the m coding blocks into h small blocks according to the same division rule, where the n data blocks and the m Among all the small blocks included in the coding block, the same small block in each data block and coding block is used as a subset, and each sub-set contains the number of bad small blocks with corrupted data less than or equal to m, the h is an integer greater than 1; Analysis of the number of bad small blocks in a subset of bad small blocks;
  • the communication interface 72 can also be configured to receive data of the n data blocks from a storage device storing data of the n data blocks, and receive from the storage device storing data of the m code blocks The data of the small blocks in the coding block and the same number as the bad d and the number of blocks.
  • the present invention can be applied to an RS algorithm (Reed Solomon, which belongs to a foreign word, has no accurate Chinese meaning, is a common algorithm in the field of algorithms, and is unified with an RS algorithm, a CRS algorithm, RAID5 technology, RAID6 technology.
  • RS algorithm Random Solomon, which belongs to a foreign word, has no accurate Chinese meaning, is a common algorithm in the field of algorithms, and is unified with an RS algorithm, a CRS algorithm, RAID5 technology, RAID6 technology.
  • network transmission is implemented in units of small blocks, which can save network resources. At the same time, it can also improve the reliability of data storage.
  • the disclosed systems, devices, and methods may be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some communication interface, device or unit, and may be in an electrical, mechanical or other form.
  • the components displayed by the unit may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the functions, if implemented in the form of software functional units and sold or used as separate products, may be stored in a computer readable storage medium.
  • the technical solution of the present invention which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including
  • the instructions are used to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and the like, which can store program codes. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种恢复数据的方式,当前处理的数据集合划分为n个数据块,并计算得出数据集合的m个冗余的编码块,所述方法还包括:当所述n个数据块中存在坏块时,分析n个数据块中坏块的损坏数据在坏块中所处的位置;根据分析出的位置,将n个数据块和m个编码块中的每个块按照相同的划分规则划分成h个小块,在n个数据块和m个编码块包含的所有小块中,将在每个数据块和编码块中所处位置相同的小块作为一个子集合;针对一个存在坏小块的子集合,分别使用所属于该存在坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数据。相应地,本发明实施例还提供了恢复数据的设备。本发明实施例可以提高数据存储的可靠性。

Description

一种数据恢复的方法及设备 技术领域
本发明涉及数据处理领域, 尤其涉及一种数据恢复的方法及设备。 背景技术
随着网络技术的发展, 需要处理的数据高速增长, 为海量数据提供具备高 可靠性及高扩展性的存储对现代企业来说是一个巨大的挑战。 为保证数据的可 靠性和可用性, 通常釆用存储多个数据副本的方法, 当某个副本由于硬盘、 月良 务器、 网络或软件出现故障导致副本不可使用时, 由其它副本提供服务。 这样 就带来一个问题, 存储空间利用率极低。 以 3 个副本的数据为例, 存储空间利 用率只有 30%左右。
目前主要是一种擦除码(Erasure Code, EC )技术解决存储空间利用率低的 问题, 该技术将数据集合等分为 n个数据块, 每个数据块存储该数据集合的一 部分数据, 然后通过纯异或运算, 以及代数域运算计算出该数据集合的 m个冗 余的编码块, 再将这 n个数据块和 m个编码块分别保存在不同的地方。 当上述 n个数据块和 m个编码块中存在的数据损坏的坏块时, 使用未损坏的数据块或 编码块进行相关的运算恢复坏块, 其中, n和 m为大于 0的整数。
但上述技术中, 当坏块的数量大于上述 m时, 就无法恢复坏块, 从而导致 数据存储的可靠性低。 发明内容
本发明实施例提供了一种恢复数据的方法及设备, 可以提高数据存储的可 靠性。
本发明第一方面提供一种恢复数据的方法, 当前处理的数据集合划分为 n 个数据块, 并计算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 所述方法还可以包括:
当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的损坏 数据在所述每个坏块中所处的位置;
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码块包 含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一个子 集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所 述 h为大于 1的整数;
针对一个存在坏小块的子集合, 分别使用所属于该存在坏小块的子集合中 的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数据。
结合第一方面, 在第一种可能的实现方式中, 分别使用所属于该存在坏小 块的子集合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数 据, 包括:
获取存在坏小块的子集合中, 所属于所述 m个编码块中小块的数据, 以及 所属于所述 n个数据块中未损坏的 '〗、块的数据;
使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
结合第一方面, 在第二种可能的实现方式中, 所述针对一个存在坏小块的 子集合, 分别使用所属于该存在坏小块的子集合中的未损坏的小块的数据恢复 所述子集合中坏小块中被损坏的数据, 包括:
分析存在坏小块的子集合中坏小块的数量;
获取存在坏小块的子集合中, 所属于所述 m个编码块中的并且和坏小块的 数量相同的小块的数据, 以及所属于所述 n个数据块中的未损坏的小块的数据; 使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
结合第一方面或第一种可能的实现方式或第二种可能的实现方式, 在第三 种可能的实现方式中,所述根据所述分析出的位置,将所述 n个数据块和所述 m 个编码块中的每个块按照相同的划分规则划分成 h个小块包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 为所述 n个数据块存储数据的最小单位和所述 m个编码块存储数据的最小单位 的公倍数的大小。
结合第一方面或第一种可能的实现方式或第二种可能的实现方式, 在第四 种可能的实现方式中,所述根据所述分析出的位置,将所述 n个数据块和所述 m 个编码块中的每个块按照相同的划分规则划分成 h个小块包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 以一个扇区为单位且包括至少一个扇区的大小。
本发明第二方面提供一种恢复数据的设备, 当前处理的数据集合划分为 n 个数据块, 并计算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 所述设备包括: 第一分析单元、 划分单元和恢复单元, 其中:
所述第一分析单元, 用于当所述 n个数据块中存在坏块时, 分析所述 n个 数据块中每个坏块的损坏数据在所述每个坏块中所处的位置;
所述划分单元, 用于根据所述分析单元分析出的位置, 将所述 n个数据块 和所述 m个编码块中的每个块按照相同的划分规则划分成 h个小块, 在所述 n 个数据块和所述 m个编码块包含的所有小块中, 将在每个数据块和编码块中所 处位置相同的小块作为一个子集合, 每个子集合包含的存在损坏数据的坏小块 的数量小于或等于所述 m, 所述 h为大于 1的整数;
所述恢复单元, 用于针对一个存在坏小块的子集合, 分别使用所属于该存 在坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏 的数据。
结合第二方面, 在第一种可能的实现方式中, 所述恢复单元包括: 第一获取单元, 用于获取存在坏小块的子集合中, 所属于所述 m个编码块 中小块的数据, 以及所属于所述 n个数据块中未损坏的 d、块的数据;
第一恢复子单元, 用于使用所述获取的所述 m个编码块中小块的数据和所 述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块中被损坏的数 据。
结合第二方面, 在第二种可能的实现方式中, 所述恢复单元包括: 第二分析单元, 用于分析存在坏小块的子集合中坏小块的数量;
第二获取单元, 用于获取存在坏小块的子集合中, 所属于所述 m个编码块 中的并且和坏小块的数量相同的小块的数据, 以及所属于所述 n个数据块中的 未损坏的小块的数据;
第二恢复子单元, 用于使用所述获取的所述 m个编码块中小块的数据和所 述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块中被损坏的数 据。
结合第二方面或第一种可能的实现方式或第二种可能的实现方式, 在第三 种可能的实现方式中, 所述划分单元还用于根据所述分析出的位置, 将所述 n 个数据块和所述 m个编码块中的每个块按照相同的划分规则以预先设置的大小 划分成 h个小块, 所述预先设置的大小为所述 n个数据块存储数据的最小单位 和所述 m个编码块存储数据的最小单位的公倍数的大小。
结合第二方面或第一种可能的实现方式或第二种可能的实现方式, 在第四 种可能的实现方式中, 所述划分单元还用于根据所述分析出的位置, 将所述 n 个数据块和所述 m个编码块中的每个块按照相同的划分规则以预先设置的大小 划分成 h个小块, 所述预先设置的大小以一个扇区为单位且包括至少一个扇区 的大小。
本发明第三方面提供一种恢复数据的设备, 当前处理的数据集合划分为 n 个数据块, 并计算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 其特征在于, 所述设备包括处理器, 通信接口, 存储器和总线:
其中处理器、 通信接口、 存储器通过总线完成相互间的通信;
所述通信接口, 用于从存储所述 n个数据块的数据和所述 m个编码块的数 据的存储设备接收所述 n个数据块的数据和所述 m个编码块的数据;
所述存储器中存储一组程序代码, 且所述处理器用于调用所述存储器中存 储的程序代码, 用于执行以下操作:
当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的损坏 数据在所述每个坏块中所处的位置;
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码块包 含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一个子 集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所 述 h为大于 1的整数;
针对一个存在坏小块的子集合, 分别使用所属于该存在坏小块的子集合中 的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数据。
结合第三方面, 在第一种可能的实现方式中, 所述处理器执行的分别使用 所属于该存在坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小 块中被损坏的数据的操作包括:
获取存在坏小块的子集合中, 所属于所述 m个编码块中小块的数据, 以及 所属于所述 n个数据块中未损坏的 '〗、块的数据;
使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
结合第三方面, 在第二种可能的实现方式中, 所述处理器执行的分别使用 所属于该存在坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小 块中被损坏的数据的操作包括:
分析存在坏小块的子集合中坏小块的数量;
获取存在坏小块的子集合中, 所属于所述 m个编码块中的并且和坏小块的 数量相同的小块的数据, 以及所属于所述 n个数据块中的未损坏的小块的数据; 使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
结合第三方面或第一种可能的实现方式或第二种可能的实现方式, 在第三 种可能的实现方式中, 所述处理器执行的根据所述分析出的位置, 将所述 n个 数据块和所述 m个编码块中的每个块按照相同的划分规则划分成 h个小块的操 作包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 为所述 n个数据块存储数据的最小单位和所述 m个编码块存储数据的最小单位 的公倍数的大小。
结合第三方面或第一种可能的实现方式或第二种可能的实现方式, 在第四 种可能的实现方式中, 所述处理器执行的根据所述分析出的位置, 将所述 n个 数据块和所述 m个编码块中的每个块按照相同的划分规则划分成 h个小块的操 作包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 以一个扇区为单位且包括至少一个扇区的大小。
本发明第四方面提供一种计算机存储介质所述计算机存储介质存储有程 序, 所述程序执行时包括如下步骤: 如本发明第一方面提供一种恢复数据的方 法所述的步骤。
上述技术方案中, 由于根据损坏数据所处的位置, 将所述 n个数据块和所 述 m个编码块中的每个块按照相同的划分规则划分成 h个小块, 将所述 n个数 据块和所述 m个编码块包含的所有小块中在每个数据块和编码块中所处位置相 同的小块作为一个子集合, 以使得每个子集合包含的存在损坏数据的坏小块的 数量小于或等于所述 m, 所述 h为大于 1的整数; 这样就可以将损坏的数据划 分在小于或等于 h个子集合内, 且每个子集合中损坏的数据所在的小块的数量 小于或等于所述 m, 再分别使用每个所述子集合中的未损坏的小块恢复每个所 述子集合中的坏小块中被损坏的数据, 这样最多就可以恢复 个坏小块, 相 比现在技术中只能恢复 m个损坏的块, 可以提高数据存储的可靠性。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付 出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例提供的一种可选的应用场景图;
图 2是本发明实施例提供的一种恢复数据的方法的流程示意图;
图 3是本发明实施例提供的一种可选的数据结构示意图;
图 4是本发明实施例提供的另一种恢复数据的方法的流程示意图; 图 5是本发明实施例提供的另一种恢复数据的方法的流程示意图; 图 6是本发明实施例提供的一种数据恢复的设备的结构示意图;
图 7是本发明实施例提供的另一种数据恢复的设备的结构示意图; 图 8是本发明实施例提供的一种数据恢复的设备的结构示意图;
图 9是本发明实施例提供的另一种数据恢复的设备的结构示意图; 图 10是本发明实施例提供的一种数据恢复的设备的结构示意图; 图 11是本发明实施例提供的另一种数据恢复的设备的结构示意图。 具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
图 1 是本发明实施例提供的一种可选的应用场景图, 其中, 主存储节点在 接收到数据流 A时, 将数据流 A划分为 n个数据块存储到次存储节点上, 图 1 所示的次存储节点 1至次存储节点 9用于存储 n个数据块和 m个编码块, 其中 n可以等于 6, m可以等于 9, 其中上述 n个数据块组成一个数据集合, 可以通 过纯异或运算、 或者代数域运算计算出该数据集合的 m个冗余的编码块。 当图 1所示的主存储节点当前执行的程序或处理的业务需要使用上述数据集合时,就 需要向存储上述 n个数据块的次存储节点获取到上述 n个数据块, 即获取到上 述数据集合, 以完成当前执行的程序或当前处理的业务。 上述主存储节点可以 是网络中任一控制器或存储设备。
图 2是本发明实施例提供的一种恢复数据的方法的流程示意图, 当前处理 的数据集合划分为 n个数据块,并计算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 如图 2所示, 该方法还包括:
101、 当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的 损坏数据在所述每个坏块中所处的位置。
可选的, 上述当前处理的数据集合可以是实现本发明的设备当前需要使用 的数据集合。 例如, 本发明的设备当前执行的程序或处理当前的业务需要使用 的数据集合。
102、根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每 个块按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码 块包含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一 个子集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所述 h为大于 1的整数。
需要说明的是, 上述位置包含小块的起始位置和终点位置, 即在数据块和 编码块中所处位置相同的小块, 这些小块的大小也是相同的。
可选的, 实现本发明的设备(例如: 图 1 所示的主存储节点设备)知晓上 述 n个数据块和 m个编码块中的每个块的存储地址信息, 如预先获取存储上述 n个数据块和 m个编码块中的每个块的存储节点上报的存储地址信息, 或者通 过上次执行程序或处理业务过程中获取上述 n个数据块和 m个编码块时, 获取 的上述 n个数据块和 m个编码块中的每个块的存储地址信息等。 步骤 102中的 划分可以是将上述 n个数据块和 m个编码块中的每个块的存储地址划分为 h个 小块。
其中, 上述划分规则可以包括: 针对每个数据块和编码块, 划分出的小块 的大小, 每个小块是等分还是大小不同, 每个小块起始位置的确定等规则。
可选的, 上述划分规则可以是基于上述分析出的位置而生成, 例如, 上述 分析得出 n个数据块中坏块的损坏数据在所述坏块中的位置为上半部分, 这样 上述划分规则就可以将按照将每个块中划分为上下两部分的划分规则; 又如, 上述分析得出 n个数据块中坏块的损坏数据在所述坏块中的位置为左边部分, 这样上述划分规则就可以将按照将每个块中划分为左右两部分的划分规则。
可选的, 步骤 102将每个块划分为 h个小块, 如将每个块以中间位置划分 为 2个小块, 那么每个块包含的 2个小块就在数据块或编码块所处的位置是上 半部分和下半部分; 而步骤 102将所述 n个数据块和所述 m个编码块包含的所 有小块中在每个数据块和编码块中所处位置相同的小块作为一个子集合, 也就 得出 h个子集合, 如将每个块以中间位置划分为 2个小块, 就得到 2个子集合, 在数据块或编码块所处的位置为上半部分的小块为一个子集合, 在数据块或编 码块所处的位置为下半部分的小块为另一个子集合。 从而步骤 102 就可以将 n 个数据块和所述 m个编码块划分为 h个子集合, 每个子集合包含 n+m个小块, 且每个子集合中的小块在数据块或编码块的所处位置相同。
103、 针对一个存在坏小块的子集合, 分别使用所属于该存在坏小块的子集 合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数据。
可选的, 上述计算得出所述数据的 m个冗余的编码块可以为釆用背景技术 提到的 EC技术中通过纯异或运算, 以及代数域运算计算出该数据的 m个冗余 的编码块。
可选的, n个数据块和所述 m个编码块如图 3所示, 其中, n为 6 , m为 3 , 图 3标注有黑色框表示损坏的数据所处的位置, 可见坏块的数量大于 3 , 那么釆 用现有技术中是不可能恢复损坏的数据的。 本发明通过步骤 101 就可以分析出 损坏的数据所处的位置, 步骤 102根据步骤 101分析得到的位置, 可以将这 6 个数据块和 3个编码块中的每个块划分为两个小块, 具体如图 3 中虚线所示, 将每个块划分为上下两个小块, 步骤 102将所述 n个数据块和所述 m个编码块 包含的所有小块中在每个数据块和编码块中所处位置相同的小块作为一个子集 合, 这就得到两个子集合, 一个子集合包含 n+m个上面的小块, 另一个子集合 包含 n+m个下面的小块, 这样就可以得到上面小块的子集合包含的坏小块的数 量为 2, 而下面小块的子集合包含的坏小块的数量为 2, 最后通过步骤 103分别 可以将上面小块的子集合包含的坏小块中被损坏的数据恢复和将下面小块的子 集合包含的坏小块中被损坏的数据恢复。 通过上述技术就可以恢复 4个损坏的 块的损坏数据, 而现有技术中是不可以恢复的, 从而提高数据存储的可靠性。
当然本发明中上述 h是可以随数据损坏的情况而变化, 例如, 图 3 中的损 坏的数据更多时, 步骤 102就可以将图 3中每个块划分 3、 4、 或 5个小块, 针 对一个数据块或一个编码块来讲, 所划分得到的小块的大小可以相同也可以不 相同, 用户可以根据损坏数据所占的大小来实际确定; 从而实现可以恢复更多 的损坏数据。 当然, 步骤 102将每个块划分为 h个小块时, 每个小块可以是以 预先设置的大小进行划分的, 即步骤 102中的根据所述分析出的位置, 将所述 n 个数据块和所述 m个编码块中的每个块按照相同的划分规则划分成 h个小块可 以包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块。
可选的, 所述预先设置的大小可以为所述 n个数据块存储数据的最小单位 和所述 m个编码块存储数据的最小单位的公倍数的大小。 当然, 所述 n个数据 块和所述 m个编码块中的每个块以所述公倍数的大小划分成 h个小块, 必需是 满足上述将所述 n个数据块和所述 m个编码块包含的所有小块中在每个数据块 和编码块中所处位置相同的小块作为一个子集合, 每个子集合包含的存在损坏 数据的坏小块的数量小于或等于所述 m的条件。 如上述公倍数的大小以所述 n 个数据块存储数据的最小单位和所述 m个编码块存储数据的最小单位的最小公 倍数为单位, 且包括至少一个所述最小公倍数的大小。 其中, 上述最小单位可 以是存储一个数据(例如: 一个二进制数 0或 1 ), 且保证该数据的功能可以正 常使用所需要的存储空间。 在本发明中数据恢复过程可以是釆用代数运算(例 如: 纯异或运算), 那么每一个数据都具有完整的编码或校验等功能, 只要本发 明不将一个数据拆开就行。 例如数据块存储数据的最小单位为 4个字节, 编码 块存储数据的最小单位为 3个字节, 那么上述最小公倍数就为 12个字节, 这样 步骤 102就以 12个字节为单位, 所划分小块的大小, 那么最后划分的小块的大 小可以是 24字节大小, 也可以是 12字节大小从而实现每个小块存储的未损坏 的数据都是完整, 即步骤 102在划分过程中不会损坏数据块或编码块所存储的 数据, 从而保证编码块存储的编码数据 (例如: 校验码) 的编码或校验等功能 不会失效。
可选的, 所述预先设置的大小以一个扇区为单位且包括至少一个扇区的大 小, 也就是说一个小块的大小为 N个扇区, N大于等于 1的正整数, 例如, 一 个小块的大小包括两个或三个扇区的大小。 而所述 n个数据块和所述 m个编码 块中存储的任一个数据都不会拆分存储在不同的扇区, 即步骤 102在划分过程 中不会损坏数据块或编码块所存储的数据,从而保证编码块存储的编码数据(例 如: 校验码) 的编码或校验等功能不会失效。
上述技术方案中, 由于根据损坏数据所处的位置, 将所述 n个数据块和所 述 m个编码块中的每个块按照相同的划分规则划分成 h个小块, 在所述 n个数 据块和所述 m个编码块包含的所有小块中, 将在每个数据块和编码块中所处位 置相同的小块作为一个子集合, 以使得每个子集合包含的存在损坏数据的坏小 块的数量小于或等于所述 m, 所述 h为大于 1的整数; 这样就可以将损坏的数 据划分在小于或等于 h个子集合内, 且每个子集合中损坏的数据所在的小块的 数量小于或等于所述 m, 再分别使用每个所述子集合中的未损坏的小块恢复每 个所述子集合中的坏小块中被损坏的数据, 这样最多就可以恢复 个坏小块, 而 h为大于 1的整数, 相比现在技术中只能恢复 m个损坏的块, 可以提高数据 存储的可靠性。 图 4是本发明实施例提供的一种恢复数据的方法的流程示意图, 当前处理 的数据集合划分为 n个数据块,并计算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 如图 4所示, 该方法还包括:
201、 当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的 损坏数据在所述每个坏块中所处的位置。
在实际应用中损坏的数据几乎不可能是整个块,如 1M的数据块,损坏的数 据可能集中在某一个扇区, 如图 3 所示, 损坏的数据只占整个数据块的很小一 部分, 这样就可以通过步骤 201分析出损坏的数据所处的位置。
202、根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每 个块按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码 块包含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一 个子集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所述 h为大于 1的整数。
可选的, 如图 3所示, 损坏的数据有 4处, 位于 4个块, 其中, 2处位于块 的上半部分, 另 2处位于块的下半部分, 这样步骤 202就可以一个将图 3中每 个块划分为上下两个小块。
203、 获取存在坏小块的子集合中, 所属于所述 m个编码块中小块的数据, 以及所属于所述 n个数据块中未损坏的小块的数据;
可选的, 上述步骤 203 可以是实现本发明的设备(例如图 1所示的主存储 节点 ),从存储上述 n个数据块和 m个编码块的设备中获取到上述所属于所述 m 个编码块中小块的数据, 以及所属于所述 n个数据块中未损坏的小块的数据。
204、针对一个存在坏小块的子集合,使用所述获取的所述 m个编码块中小 块的数据和所述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块 中被损坏的数据。
可选的, 如图 3 所示, 每个小块划分为上下两个小块, 形成两个子集合, 这样步骤 203 就可以是以子集合中每个小块为单位进行数据块或编码块的网络 传输, 当图 3 中只有上面的小块存在损坏的数据时, 这样在步骤 203 中传输的 小块就只是坏块所属的子集合中的小块; 相比现有技术中以整个数据块或编码 块为单位进行网络传输, 可以减少网络传输, 以节约网络资源。
可选的, 步骤 203可以包括:
针对存在坏小块的子集合, 将存在坏小块的子集合中未损坏小块的位置信 息发送至存储所述未损坏小块数据的存储设备(例如: 图 1所示的次存储节点), 向所述存储设备发送请求返回所述存在坏小块的子集合中未损坏的小块所包含 的数据;
接收所述存储设备返回的数据;
这样实现本发明的设备(例如图 1 所示的主存储节点) 与其他存储数据的 存储设备(例如: 图 1 所示的次存储节点)之间就可以只传输坏小块所在的子 集合中的小块所包含的数据信息, 从而减少网络传输。
作为一种可选的实施方式, 步骤 204可以包括:
使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据釆用 EC算法恢复所述子集合中的坏小块中被损坏的数据。
可选的, 例如釆用纯异或运算, 以及代数域运算恢复每个所述子集合中坏 小块。
作为一种可选的实施方式, 当发现存在坏小块的子集合中, 某一子集合所 属于所述 m个编码块中的小块存在损坏数据的坏块时, 且该子集合中存在坏小 块的子集合中 m个编码块中的坏小块的数量加上 n个数据块中的坏小块的数量 大于 m时, 就可以重新该子集合进行上述划分, 可以将该坏小块的子集合的每 个小块划分为多个小块, 以满足上述包含的存在损坏数据的坏小块的数量小于 或等于所述 m。 再釆用步骤 204的技术特征进行恢复。 例如: 存在坏小块的子 集合中包含子集合 1、 子集合 2和子集合 3 , 其中, 子集合 3中所属于所述 m个 编码块中的小块存在损坏数据的坏块时, 且所述 m个编码块中的小块存在损坏 数据的坏块的数量为 h, 子集合 3中所属 n个数据块中的坏小块的数量为 t, 当 h+t大于 m时,就可以重新对子集合 3进行上述划分,将该坏小块的子集合的每 个小块划分为多个小块, 以满足上述包含的存在损坏数据的坏小块的数量小于 或等于所述 m。 再釆用步骤 204的技术特征进行恢复。
作为一种可选的实施方式, 本发明可以应用于 RS算法(Reed Solomon, 该 算法属于外来词, 并无准确的中文意思, 在算法领域中为常见的算法, 并统一 RS算法、 改进的 RS ( Cauchy Reed Solomon, CRS )算法、磁盘阵列( Redundant Arrays of Inexpensive Disks, RAID ) 5技术、 RAID6技术中。
上技术方案中, 在上面实施例的基础上, 实现了以小块为单位进行网络传 输, 这样可以节约网络资源。 同时, 还可以提高数据存储的可靠性。 图 5是本发明实施例提供的一种恢复数据的方法的流程示意图, 当前处理 的数据集合划分为 n个数据块,并计算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 如图 5所示, 该方法还包括:
301、 当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的 损坏数据在所述每个坏块中所处的位置。 302、根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每 个块按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码 块包含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一 个子集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所述 h为大于 1的整数。
303、 分析存在坏小块的子集合中坏小块的数量;
304、获取存在坏小块的子集合中, 所属于所述 m个编码块中的并且和坏小 块的数量相同的小块的数据, 以及所属于所述 n个数据块中的未损坏的小块的 数据;
305、针对一个存在坏小块的子集合,使用所述获取的所述 m个编码块中小 块的数据和所述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块 中被损坏的数据。
这样可以实现只获取所属于所述 m个编码块中的并且和坏小块的数量相同 的小块的数据, 从而可以节约网络开销。
上技术方案中, 在上面实施例的基础上, 实现只获取所属于所述 m个编码 块中的并且和坏 d、块的数量相同的 d、块的数据, 从而可以节约网络开销同时, 还可以提高数据存储的可靠性。 下面为本发明装置实施例, 本发明装置实施例用于执行本发明方法实施例 一至三实现的方法, 为了便于说明, 仅示出了与本发明实施例相关的部分, 具 体技术细节未揭示的, 请参照本发明实施例一、 实施例二和实施例三。 图 6是本发明实施例提供的一种数据恢复的设备的结构示意图, 当前处理 的数据集合划分为 n个数据块,并计算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数。 如图 6所示, 所述设备包括: 第一分析单元 41、 划分单元 42和恢复单元 43 , 其中:
第一分析单元 41 , 用于当所述 n个数据块中存在坏块时, 分析所述 n个数 据块中每个坏块的损坏数据在所述每个坏块中所处的位置;
划分单元 42 , 用于根据分析单元 41分析出的位置, 将所述 n个数据块和所 述 m个编码块中的每个块按照相同的划分规则划分成 h个小块, 在所述 n个数 据块和所述 m个编码块包含的所有小块中, 将在每个数据块和编码块中所处位 置相同的小块作为一个子集合, 每个子集合包含的存在损坏数据的坏小块的数 量小于或等于所述 m, 所述 h为大于 1的整数;
恢复单元 43 , 用于针对一个存在坏小块的子集合, 分别使用所属于该存在 坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的 数据。
作为一种可选的实施方式,划分单元 42还可以用于根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块按照相同的划分规则以预先设 置的大小划分成 h个小块。
可选的, 所述预先设置的大小为所述 n个数据块存储数据的最小单位和所 述 m个编码块存储数据的最小单位的公倍数的大小。
可选的, 所述预先设置的大小以一个扇区为单位且包括至少一个扇区的大 小。
这样划分单元 42通过可以上划分方式可以实现每个 d、块存储的未损坏的数 据都是完整, 即划分单元 42在划分过程中不会损坏数据块或编码块所存储的数 据, 从而保证编码块存储的编码数据(例如: 校验码) 的编码或校验等功能不 会失效。
上述技术方案中, 由于根据损坏数据所处的位置, 将所述 n个数据块和所 述 m个编码块中的每个块按照相同的划分规则划分成 h个小块, 在所述 n个数 据块和所述 m个编码块包含的所有小块中, 将在每个数据块和编码块中所处位 置相同的小块作为一个子集合, 以使得每个子集合包含的存在损坏数据的坏小 块的数量小于或等于所述 m, 所述 h为大于 1的整数; 这样就可以将损坏的数 据划分在小于或等于 h个子集合内, 且每个子集合中损坏的数据所在的小块的 数量小于或等于所述 m, 再分别使用每个所述子集合中的未损坏的小块恢复每 个所述子集合中的坏小块中被损坏的数据, 这样最多就可以恢复 个坏小块, 相比现在技术中只能恢复 m个损坏的块, 可以提高数据存储的可靠性 图 7是本发明实施例提供的另一种恢复数据的设备的结构示意图, 当前处 理的数据集合划分为 n个数据块, 并计算得出所述数据集合的 m个冗余的编码 块, 所述 n和 m为大于 0的整数, 如图 7所示, 包括: 第一分析单元 51、 划分 单元 52和恢复单元 53 , 恢复单元 53包括第一获取单元 531和第一恢复子单元 532, 其中:
第一分析单元 51 , 用于当所述 n个数据块中存在坏块时, 分析所述 n个数 据块中每个坏块的损坏数据在所述每个坏块中所处的位置;
划分单元 521 , 用于根据所述分析出的位置, 将所述 n个数据块和所述 m 个编码块中的每个块按照相同的划分规则划分成 h个小块, 在所述 n个数据块 和所述 m个编码块包含的所有小块中, 将在每个数据块和编码块中所处位置相 同的小块作为一个子集合, 每个子集合包含的存在损坏数据的坏小块的数量小 于或等于所述 m, 所述 h为大于 1的整数。
第一获取单元 531 , 用于获取存在坏小块的子集合中, 所属于所述 m个编 码块中小块的数据, 以及所属于所述 n个数据块中未损坏的小块的数据。
第一恢复子单元 532 , 用于针对一个存在坏小块的子集合, 使用所述获取的 所述 m个编码块中小块的数据和所述 n个数据块中未损坏的小块的数据恢复所 述子集合中的坏小块中被损坏的数据。
可选的, 如图 3 所示, 每个小块划分为上下两个小块, 形成两个子集合, 这样第一获取单元 531 就可以是以子集合中每个小块为单位进行数据块或编码 块的网络传输, 当图 3 中只有上面的小块存在损坏的数据时, 这样在第一获取 单元 531 中传输的小块就只是坏块所属的子集合中的小块; 相比现有技术中以 整个数据块或编码块为单位进行网络传输, 可以减少网络传输, 以节约网络资 源。
作为一种可选的实施方式, 第一恢复子单元 532还可以用于针对一个存在 坏小块的子集合, 使用所述获取的所述 m个编码块中的数据和所述 n个数据块 中未损坏的数据釆用 EC算法恢复所述子集合中的坏小块中被损坏的数据。
可选的, 例如釆用纯异或运算, 以及代数域运算恢复每个所述子集合中损 坏的小块。
作为一种可选的实施方式, 如图 8所述, 第一获取单元 531还可以包括: 发送单元 5311 , 用于针对存在坏小块的子集合, 将存在坏小块的子集合中 未损坏小块的位置信息发送至存储所述未损坏小块数据的存储设备(例如: 图 1 所示的次存储节点 ), 向所述存储设备发送请求返回所述存在坏小块的子集合中 未损坏的 '〗、块所包含的数据; 接收单元 5312, 用于接收所述存储设备返回的数据;
这样实现本发明的设备 (例如图 1所示的主存储节点)与上述存储设备 (例 如: 图 1 所示的次存储节点)之间就可以只传输坏小块所在的子集合中的小块 所包含的数据信息, 从而减少网络传输。
作为一种可选的实施方式, 如图 9所示, 恢复单元 53还可以包括: 第二分析单元 533 , 用于分析存在坏小块的子集合中坏小块的数量; 第二获取单元 534, 用于获取存在坏小块的子集合中, 所属于所述 m个编 码块中的并且和坏小块的数量相同的小块的数据, 以及所属于所述 n个数据块 中的未损坏的小块的数据;
第二恢复子单元 535 , 用于针对一个存在坏小块的子集合, 使用所述获取的 所述 m个编码块中小块的数据和所述 n个数据块中未损坏的小块的数据恢复所 述子集合中的坏小块中被损坏的数据。
这样可以实现只获取所属于所述 m个编码块中的并且和坏小块的数量相同 的小块的数据, 从而可以节约网络开销。
作为一种可选的实施方式, 本发明可以应用于 RS算法(Reed Solomon, 该 算法属于外来词, 并无准确的中文意思, 在算法领域中为常见的算法, 并统一 RS算法)、 CRS算法、 RAID5技术、 RAID6技术中。
上技术方案中, 在上面实施例的基础上, 实现了以小块为单位进行网络传 输, 这样可以节约网络资源。 同时, 还可以提高数据存储的可靠性。 图 10是本发明实施例提供的另一种数据恢复的设备的结构示意图, 当前处 理的数据集合划分为 n个数据块, 并计算得出所述数据集合的 m个冗余的编码 块, 所述 n和 m为大于 0的整数, 如图 10所示, 所述设备包括处理器 61 , 通 信接口 62, 存储器 63和总线 64:
其中处理器 61、 通信接口 62、 存储器 63通过总线 64完成相互间的通信; 通信接口 62, 用于从存储所述 n个数据块的数据和所述 m个编码块的数据 的存储设备接收所述 n个数据块的数据和所述 m个编码块的数据;
存储器 63中存储一组程序代码, 且处理器 61用于调用存储器 63中存储的 程序代码, 用于执行以下操作:
当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的损坏 数据在所述每个坏块中所处的位置;
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码块包 含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一个子 集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所 述 h为大于 1的整数;
针对一个存在坏小块的子集合, 分别使用所属于该存在坏小块的子集合中 的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数据。
可选的, 上述计算得出所述数据的 m个冗余的编码块具体为釆用背景技术 提到的 EC技术中通过纯异或运算, 以及代数域运算计算出该数据的 m个冗余 的编码块。
作为一种可选的实施方式, 处理器 61执行的根据所述分析出的位置, 将所 述 n个数据块和所述 m个编码块中的每个块按照相同的划分规则划分成 h个小 块的步骤可以包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块。
可选的, 所述预先设置的大小为所述 n个数据块存储数据的最小单位和所 述 m个编码块存储数据的最小单位的公倍数的大小。
可选的, 所述预先设置的大小以一个扇区为单位且包括至少一个扇区的大 小。
这样处理器 61可以而实现每个小块存储的未损坏的数据都是完整, 即处理 器 61在划分过程中不会损坏数据块或编码块所存储的数据, 从而保证编码块存 储的编码数据(例如: 校验码) 的编码或校验等功能不会失效。
上述技术方案中, 由于根据损坏数据所处的位置, 将所述 n个数据块和所 述 m个编码块中的每个块按照相同的划分规则划分成 h个小块, 在所述 n个数 据块和所述 m个编码块包含的所有小块中, 将在每个数据块和编码块中所处位 置相同的小块作为一个子集合, 以使得每个子集合包含的存在损坏数据的坏小 块的数量小于或等于所述 m, 所述 h为大于 1的整数; 这样就可以将损坏的数 据划分在小于或等于 h个子集合内, 且每个子集合中损坏的数据所在的小块的 数量小于或等于所述 m, 再分别使用每个所述子集合中的未损坏的小块恢复每 个所述子集合中的坏小块中被损坏的数据, 这样最多就可以恢复 个坏小块, 相比现在技术中只能恢复 m个损坏的块, 可以提高数据存储的可靠性。 图 11是本发明实施例提供的另一种数据恢复的设备的结构示意图, 当前处 理的数据集合划分为 n个数据块, 并计算得出所述数据集合的 m个冗余的编码 块, 所述 n和 m为大于 0的整数, 如图 11所示, 所述设备包括处理器 71 , 通 信接口 72, 存储器 73和总线 74:
其中处理器 71、 通信接口 72、 存储器 73通过总线 74完成相互间的通信; 通信接口 72, 用于从存储所述 n个数据块的数据和所述 m个编码块的数据 的存储设备接收所述 n个数据块的数据和所述 m个编码块的数据;
存储器 73中存储一组程序代码, 且处理器 71用于调用存储器 73中存储的 程序代码, 用于执行以下操作:
当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的损坏 数据在所述每个坏块中所处的位置;
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码块包 含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一个子 集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所 述 h为大于 1的整数;
获取存在坏小块的子集合中, 所属于所述 m个编码块中小块的数据, 以及 所属于所述 n个数据块中未损坏的 '〗、块的数据;
针对一个存在坏小块的子集合, 使用所述获取的所述 m个编码块中小块的 数据和所述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块中被 损坏的数据。
需要说明的是, 通信接口 72可以用于接收其它设备(例如: 图 1所述的次 存储节点)发送给实现本实施例的设备(例如: 图 1 所述的主存储节点) 的信 息, 并将接收到的信息传输至处理器 71 , 如用于获取存在坏小块的子集合中, 所属于所述 m个编码块中小块的数据, 以及所属于所述 n个数据块中未损坏的 小块的数据。
作为一种可选的实施方式, 处理器 71执行接收所述存储设备发送的所述坏 小块所在的所述子集合中的未损坏的小块所包含的数据信息的步骤可以包括: 针对存在坏小块的子集合, 将存在坏小块的子集合中未损坏小块的位置信 息发送至存储所述未损坏小块数据的存储设备(例如: 图 1所示的次存储节点), 向所述存储设备发送请求返回所述存在坏小块的子集合中未损坏的小块所包含 的数据;
接收所述存储设备返回的数据。
其中, 处理 71可以是通过通信接口 72将存在坏小块的子集合中未损坏小 块的位置信息发送至存储所述未损坏小块数据的存储设备(例如: 图 1 所示的 次存储节点 ), 向所述存储设备发送请求返回所述存在坏小块的子集合中未损坏 的小块所包含的数据; 处理器 71可以是通过通信接口 72接收所述存储设备返 回的数据。
这样实现本发明的设备 (例如图 1所示的主存储节点)与上述存储设备 (例 如: 图 1 所示的次存储节点)之间就可以只传输坏小块所在的子集合中的小块 所包含的数据信息, 从而减少网络传输。
作为一种可选的实施方式,处理器 71执行的使用所述获取的所述 m个编码 块中小块的数据和所述 n个数据块中未损坏的小块的数据恢复所述子集合中的 坏小块中被损坏的数据的步骤可以包括:
使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据釆用 EC算法恢复所述子集合中的坏小块中被损坏的数据。
可选的, 例如釆用纯异或运算, 以及代数域运算恢复每个所述子集合中损 坏的小块。
作为一种可选的实施方式, 处理器 71用于调用存储器 73 中存储的程序代 码, 还可以用于执行以下操作:
当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的损坏 数据在所述每个坏块中所处的位置;
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码块包 含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一个子 集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所 述 h为大于 1的整数; 分析存在坏小块的子集合中坏小块的数量;
获取存在坏小块的子集合中, 所属于所述 m个编码块中的并且和坏小块的 数量相同的小块的数据, 以及所属于所述 n个数据块中的未损坏的小块的数据; 针对一个存在坏小块的子集合, 使用所述获取的所述 m个编码块中小块的 数据和所述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块中被 损坏的数据。
通信接口 72还可以用于从存储所述 n个数据块的数据的存储设备接收所述 n个数据块的数据, 以及从存储所述 m个编码块的数据的存储设备接收所属于 所述 m个编码块中的并且和坏 d、块的数量相同的小块的数据。
这样可以实现只获取所属于所述 m个编码块中的并且和坏小块的数量相同 的小块的数据, 从而可以节约网络开销。
作为一种可选的实施方式, 本发明可以应用于 RS算法(Reed Solomon, 该 算法属于外来词, 并无准确的中文意思, 在算法领域中为常见的算法, 并统一 RS算法、 CRS算法、 RAID5技术、 RAID6技术中。
上技术方案中, 在上面实施例的基础上, 实现了以小块为单位进行网络传 输, 这样可以节约网络资源。 同时, 还可以提高数据存储的可靠性。
所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描述 的系统、 装置和单元的具体工作过程, 可以参考前述方法实施例中的对应过程, 在此不再赘述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统、 装置和方 法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意性 的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另 外的划分方式, 例如多个单元或组件可以结合或者可以集成到另一个系统, 或 一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直 接耦合或通信连接可以是通过一些通信接口, 装置或单元的间接耦合或通信连 接, 可以是电性, 机械或其它的形式。 单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者 也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部 单元来实现本实施例方案的目的。 另外, 在本发明各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一个单元 中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用 时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的技 术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以 软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括若 干指令用以使得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备 等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包 括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory ), 随机存取存储 器(RAM, Random Access Memory ),磁碟或者光盘等各种可以存储程序代码的 介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限于 此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到 变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应 所述以权利要求的保护范围为准。

Claims

权 利 要 求
1、 一种数据恢复的方法, 当前处理的数据集合划分为 n个数据块, 并计算 得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 其特征 在于, 所述方法包括:
当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的损坏 数据在所述每个坏块中所处的位置;
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码块包 含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一个子 集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所 述 h为大于 1的整数;
针对一个存在坏小块的子集合, 分别使用所属于该存在坏小块的子集合中 的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数据。
2、 根据权利要求 1所述的方法, 其特征在于, 所述分别使用所属于该存在 坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的 数据, 包括:
获取存在坏小块的子集合中, 所属于所述 m个编码块中小块的数据, 以及 所属于所述 n个数据块中未损坏的 '〗、块的数据;
使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
3、 根据权利要求 1所述的方法, 其特征在于, 分别使用所属于该存在坏小 块的子集合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数 据, 包括:
分析存在坏小块的子集合中坏小块的数量;
获取存在坏小块的子集合中, 所属于所述 m个编码块中的并且和坏小块的 数量相同的小块的数据, 以及所属于所述 n个数据块中的未损坏的小块的数据; 使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
4、 如权利要求 1-3任一所述的方法, 其特征在于, 所述根据所述分析出的 位置, 将所述 n个数据块和所述 m个编码块中的每个块按照相同的划分规则划 分成 h个小块包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 为所述 n个数据块存储数据的最小单位和所述 m个编码块存储数据的最小单位 的公倍数的大小。
5、 如权利要求 1-3任一所述的方法, 其特征在于, 所述根据所述分析出的 位置, 将所述 n个数据块和所述 m个编码块中的每个块按照相同的划分规则划 分成 h个小块包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 以一个扇区为单位且包括至少一个扇区的大小。
6、 一种恢复数据的设备, 当前处理的数据集合划分为 n个数据块, 并计算 得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 其特征 在于, 所述设备包括: 第一分析单元、 划分单元和恢复单元, 其中:
所述第一分析单元, 用于当所述 n个数据块中存在坏块时, 分析所述 n个 数据块中每个坏块的损坏数据在所述每个坏块中所处的位置;
所述划分单元, 用于根据所述分析单元分析出的位置, 将所述 n个数据块 和所述 m个编码块中的每个块按照相同的划分规则划分成 h个小块, 在所述 n 个数据块和所述 m个编码块包含的所有小块中, 将在每个数据块和编码块中所 处位置相同的小块作为一个子集合, 每个子集合包含的存在损坏数据的坏小块 的数量小于或等于所述 m, 所述 h为大于 1的整数;
所述恢复单元, 用于针对一个存在坏小块的子集合, 分别使用所属于该存 在坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小块中被损坏 的数据。
7、 如权利要求 6所述的设备, 其特征在于, 所述恢复单元包括:
第一获取单元, 用于获取存在坏小块的子集合中, 所属于所述 m个编码块 中小块的数据, 以及所属于所述 n个数据块中未损坏的 d、块的数据;
第一恢复子单元, 用于使用所述获取的所述 m个编码块中小块的数据和所 述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块中被损坏的数 据。
8、 如权利要求 6所述的设备, 其特征在于, 所述恢复单元包括: 第二分析单元, 用于分析存在坏小块的子集合中坏小块的数量;
第二获取单元, 用于获取存在坏小块的子集合中, 所属于所述 m个编码块 中的并且和坏小块的数量相同的小块的数据, 以及所属于所述 n个数据块中的 未损坏的小块的数据;
第二恢复子单元, 用于使用所述获取的所述 m个编码块中小块的数据和所 述 n个数据块中未损坏的小块的数据恢复所述子集合中的坏小块中被损坏的数 据。
9、 如权利要求 6-9中任一项所述的设备, 其特征在于, 所述划分单元还用 于根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块按 照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小为 所述 n个数据块存储数据的最小单位和所述 m个编码块存储数据的最小单位的 公倍数的大小。
10、 如权利要求 6-9中任一项所述的设备, 其特征在于, 所述划分单元还用 于根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块按 照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小以 一个扇区为单位且包括至少一个扇区的大小。
11、 一种恢复数据的设备, 当前处理的数据集合划分为 n个数据块, 并计 算得出所述数据集合的 m个冗余的编码块, 所述 n和 m为大于 0的整数, 其特 征在于, 所述设备包括处理器, 通信接口, 存储器和总线:
其中处理器、 通信接口、 存储器通过总线完成相互间的通信;
所述通信接口, 用于从存储所述 n个数据块的数据和所述 m个编码块的数 据的存储设备接收所述 n个数据块的数据和所述 m个编码块的数据;
所述存储器中存储一组程序代码, 且所述处理器用于调用所述存储器中存 储的程序代码, 用于执行以下操作:
当所述 n个数据块中存在坏块时, 分析所述 n个数据块中每个坏块的损坏 数据在所述每个坏块中所处的位置;
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则划分成 h个小块, 在所述 n个数据块和所述 m个编码块包 含的所有小块中, 将在每个数据块和编码块中所处位置相同的小块作为一个子 集合, 每个子集合包含的存在损坏数据的坏小块的数量小于或等于所述 m, 所 述 h为大于 1的整数;
针对一个存在坏小块的子集合, 分别使用所属于该存在坏小块的子集合中 的未损坏的小块的数据恢复所述子集合中坏小块中被损坏的数据。
12、 如权利要求 11所述的设备, 其特征在于, 所述处理器执行的分别使用 所属于该存在坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小 块中被损坏的数据的操作包括:
获取存在坏小块的子集合中, 所属于所述 m个编码块中小块的数据, 以及 所属于所述 n个数据块中未损坏的 '〗、块的数据;
使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
13、 如权利要求 11所述的设备, 其特征在于, 所述处理器执行的分别使用 所属于该存在坏小块的子集合中的未损坏的小块的数据恢复所述子集合中坏小 块中被损坏的数据的操作包括:
分析存在坏小块的子集合中坏小块的数量;
获取存在坏小块的子集合中, 所属于所述 m个编码块中的并且和坏小块的 数量相同的小块的数据, 以及所属于所述 n个数据块中的未损坏的小块的数据; 使用所述获取的所述 m个编码块中小块的数据和所述 n个数据块中未损坏 的小块的数据恢复所述子集合中的坏小块中被损坏的数据。
14、 如权利要求 11-13中任一项所述的设备, 其特征在于, 所述处理器执行 的根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块按 照相同的划分规则划分成 h个小块的操作包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 为所述 n个数据块存储数据的最小单位和所述 m个编码块存储数据的最小单位 的公倍数的大小。
15、 如权利要求 11-13中任一项所述的设备, 其特征在于, 所述处理器执行 的根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块按 照相同的划分规则划分成 h个小块的操作包括:
根据所述分析出的位置, 将所述 n个数据块和所述 m个编码块中的每个块 按照相同的划分规则以预先设置的大小划分成 h个小块, 所述预先设置的大小 以一个扇区为单位且包括至少一个扇区的大小。
16、 一种计算机存储介质, 其特征在于, 所述计算机存储介质存储有程序, 所述程序执行时包括如下步骤: 如权利要求 1~5任一项所述的步骤。
PCT/CN2012/085155 2012-11-23 2012-11-23 一种数据恢复的方法及设备 WO2014079040A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201280002929.7A CN104025056B (zh) 2012-11-23 2012-11-23 一种数据恢复的方法及设备
PCT/CN2012/085155 WO2014079040A1 (zh) 2012-11-23 2012-11-23 一种数据恢复的方法及设备
EP12888826.0A EP2908247A4 (en) 2012-11-23 2012-11-23 METHOD AND DEVICE FOR DATA RECOVERY
US14/714,754 US9417962B2 (en) 2012-11-23 2015-05-18 Data block sub-division based data recovery method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/085155 WO2014079040A1 (zh) 2012-11-23 2012-11-23 一种数据恢复的方法及设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/714,754 Continuation US9417962B2 (en) 2012-11-23 2015-05-18 Data block sub-division based data recovery method and device

Publications (1)

Publication Number Publication Date
WO2014079040A1 true WO2014079040A1 (zh) 2014-05-30

Family

ID=50775412

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/085155 WO2014079040A1 (zh) 2012-11-23 2012-11-23 一种数据恢复的方法及设备

Country Status (4)

Country Link
US (1) US9417962B2 (zh)
EP (1) EP2908247A4 (zh)
CN (1) CN104025056B (zh)
WO (1) WO2014079040A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117303B (zh) * 2012-11-23 2018-11-30 华为技术有限公司 一种数据恢复的方法及设备
CN108182961A (zh) * 2018-01-12 2018-06-19 江苏华存电子科技有限公司 一种多通道存储系统的坏块处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1498895A1 (en) * 2003-07-16 2005-01-19 Samsung Electronics Co., Ltd. Data recording method and data reproducing method with robust error handling capability and data recording and reproducing apparatus thereof
CN1801107A (zh) * 2006-01-12 2006-07-12 上海洲信信息技术有限公司 数据恢复方法
CN101387975A (zh) * 2008-10-20 2009-03-18 中科院成都信息技术有限公司 一种磁盘阵列系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904498B2 (en) * 2002-10-08 2005-06-07 Netcell Corp. Raid controller disk write mask
US6892276B2 (en) * 2002-11-26 2005-05-10 Lsi Logic Corporation Increased data availability in raid arrays using smart drives
US20090055682A1 (en) * 2007-07-18 2009-02-26 Panasas Inc. Data storage systems and methods having block group error correction for repairing unrecoverable read errors
US7788541B2 (en) * 2008-04-15 2010-08-31 Dot Hill Systems Corporation Apparatus and method for identifying disk drives with unreported data corruption
US8726126B2 (en) * 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
WO2014016860A1 (en) * 2012-07-23 2014-01-30 Hitachi, Ltd. Raid storage system and rebuild process

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1498895A1 (en) * 2003-07-16 2005-01-19 Samsung Electronics Co., Ltd. Data recording method and data reproducing method with robust error handling capability and data recording and reproducing apparatus thereof
CN1801107A (zh) * 2006-01-12 2006-07-12 上海洲信信息技术有限公司 数据恢复方法
CN101387975A (zh) * 2008-10-20 2009-03-18 中科院成都信息技术有限公司 一种磁盘阵列系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2908247A4 *

Also Published As

Publication number Publication date
US20150301891A1 (en) 2015-10-22
CN104025056A (zh) 2014-09-03
EP2908247A4 (en) 2015-11-11
US9417962B2 (en) 2016-08-16
CN104025056B (zh) 2015-08-19
EP2908247A1 (en) 2015-08-19

Similar Documents

Publication Publication Date Title
US11327840B1 (en) Multi-stage data recovery in a distributed storage network
US10977123B2 (en) Coordination protocol between dispersed storage processing units and rebuild modules
EP3014451B1 (en) Locally generated simple erasure codes
US10114588B2 (en) Consolidating encoded data slices in read memory devices in a distributed storage network
US10157018B2 (en) Using vault to track reception of slices
US10073645B2 (en) Initiating rebuild actions from DS processing unit errors
CN106844098B (zh) 一种基于十字交叉纠删编码的快速数据恢复方法及系统
WO2014056381A1 (zh) 数据冗余实现方法及装置
US20190215155A1 (en) Multi-tenant encryption on distributed storage having deduplication and compression capability
US10581602B2 (en) End-to-end checksum in a multi-tenant encryption storage system
CN111782152A (zh) 数据存储方法、数据恢复方法、装置、服务器及存储介质
WO2024001494A1 (zh) 一种数据存储的方法、单节点服务器及设备
WO2014079040A1 (zh) 一种数据恢复的方法及设备
US10838814B2 (en) Allocating rebuilding queue entries in a dispersed storage network
US10095582B2 (en) Partial rebuilding techniques in a dispersed storage unit
CN111475109B (zh) 一种数据处理方法、装置、设备及介质
US10853175B1 (en) Storage unit (SU) operative to service urgent read requests
US20170123919A1 (en) Prioritized rebuilds using dispersed indices
US10972541B1 (en) Priority encoded data slice retention
US10789128B2 (en) External healing mode for a dispersed storage network memory
US20190036824A1 (en) Congestion control in a distributed storage network
CN112799882A (zh) 一种基于图算法的文件感知恢复方法及装置
CN117009147A (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: 12888826

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2012888826

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012888826

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE