WO2020001059A1 - Procédé et dispositif de traitement de données - Google Patents
Procédé et dispositif de traitement de données Download PDFInfo
- Publication number
- WO2020001059A1 WO2020001059A1 PCT/CN2019/076840 CN2019076840W WO2020001059A1 WO 2020001059 A1 WO2020001059 A1 WO 2020001059A1 CN 2019076840 W CN2019076840 W CN 2019076840W WO 2020001059 A1 WO2020001059 A1 WO 2020001059A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- user data
- user
- storage device
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Definitions
- the embodiments of the present application relate to the field of storage technologies, and in particular, to a data processing method and device.
- Redundant Array of Independent Disks is a disk array formed by combining multiple independent disks. It can provide the host with higher storage performance than a single disk and can provide Data backup function.
- the embodiments of the present application provide a data processing method and device, which can solve the problems of large read IO delay and high calculation complexity required to read correct data.
- a data processing method is provided, which is applied to a storage device using a disk array (all storage devices are subsequently referred to as a storage device), and a stripe in the storage device includes at least two check blocks, and the storage device is determining After reading the target data including the first user data and the second user data, the user data stored in other data blocks except the first data block and the second data block in the first stripe is read. (That is, the remaining user data) and the verification data (ie, the verification data group) stored in each verification block in the first stripe, and a first preset algorithm is used to calculate the The first reference data corresponding to the first user data and the second reference data corresponding to the second user data. In this way, if the first reference data is equal to the first user data and the second reference data is not equal to the second user data , The storage device determines that the second user data is erroneous data.
- the storage device in this application uses other user data and all verification data in the stripe to identify whether the two user data are erroneous data. Compared with the prior art, the storage device in this application can quickly and accurately identify erroneous data, and the storage device can identify user data in two data blocks at a time, effectively reducing the computational complexity.
- the first reference data is not equal to the first user data, and the second reference data is not equal to the second user data, or if the first parameter data and If the first user data is equal and the second reference data is equal to the second user data, it is determined that the data is lost.
- the storage device may further adopt a second preset algorithm according to the first user data and the remaining user data. And verifying the data set, calculating correction data for the second user data. Further, the storage device stores correction data of the second user data, and sets the stored second user data as invalid data.
- the storage device may directly recover the second user data by using other data than the second user data to generate a correction of the second user data.
- the data further, the storage device stores the corrected data of the second user data, and at the same time, the storage device sets the stored second user data as invalid data to reduce the spread of erroneous data.
- setting the stored second user data as invalid data by the storage device may mean that the storage device deletes the stored second user data, or it may mean adding an invalid identifier to the stored second user data.
- the storage device before the storage device determines that the read target data has erroneous data, it may further receive a read data request sent by the host. Correspondingly, after calculating the correction data of the second user data, the storage device further sends the correction data of the first user data and the second user data to the host.
- the data processing method provided in this application can be applied to the process of communication between the host and the storage device, such as the process in which the host reads data from the storage device; it can also be used in the process of timing / period detection consistency of the storage device.
- a storage device in a second aspect, includes an index module and a RAID module.
- the aforementioned Index module is configured to determine that the read target data has error data, the target data includes first user data and second user data, the first user data is stored in a first data block, and the second user data Stored in the second data block, the first data block and the second data block both belong to the first stripe.
- the above RAID module is used to read the remaining user data and the check data group.
- the remaining user data includes user data stored in other data blocks except the first data block and the second data block in the first stripe, and the check data.
- the group includes verification data stored in each verification block in the first stripe, the first stripe includes at least two verification blocks, and is used to adopt a first preset algorithm according to the remaining user data and the verification data group,
- the first reference data corresponding to the first user data and the second reference data corresponding to the second user data are calculated, and are used if the first reference data is equal to the first user data, and the second reference data is equal to the second If the user data is not the same, it is determined that the second user data is incorrect data.
- the RAID module is further configured to: if the first reference data is different from the first user data, and the second reference data is not equal to the second user data, or If the first parameter data is equal to the first user data and the second reference data is equal to the second user data, it is determined that the data is lost.
- the above-mentioned RAID module is further configured to, after determining the second user data as error data, use a second preset algorithm according to the first user data, the remaining user data, and The data set is verified and corrected data for the second user data is calculated.
- the storage device of the present application further includes a storage module, which is configured to store correction data of the second user data calculated by the RAID module, and set the stored second user data as invalid data.
- the storage device of the present application further includes a receiving module, and the receiving module is configured to receive the host before the Index module determines that the read target data has incorrect data. Read data request sent.
- the storage device of the present application further includes a sending module, which is configured to send the first user data and the second user data correction data to the host after the RAID module calculates the correction data of the second user data.
- a storage device includes one or more processors, a storage medium, and a communication interface.
- the storage medium and the communication interface are connected to the one or more processors; the storage device communicates with other devices through the communication interface, and the memory is used to store computer program code, where the computer program code includes Instructions, and when the one or more processors execute the instructions, the storage device executes the data processing method as described in the first aspect and various possible implementation manners thereof.
- a computer-readable storage medium stores instructions; when the computer-readable storage medium runs on the storage device described in the second aspect or the third aspect, the storage device makes the storage device A data processing method that executes the first aspect described above and its various possible implementations.
- a computer program product containing instructions, which when executed on the storage device described in the above-mentioned second aspect or the above-mentioned third aspect, causes the storage device to execute the above-mentioned first aspect and its various Data processing methods for possible implementations.
- FIG. 1 is a schematic structural diagram of different levels of RAID in an embodiment of the present application
- FIG. 2 is a schematic diagram of a hardware structure of a storage device according to an embodiment of the present application.
- FIG. 3 is a first schematic structural diagram of a communication system according to an embodiment of the present application.
- FIG. 4 is a second schematic structural diagram of a communication system according to an embodiment of the present application.
- FIG. 5 is a first schematic flowchart of a data processing method according to an embodiment of the present application.
- FIG. 6 is a second schematic flowchart of a data processing method according to an embodiment of the present application.
- FIG. 7 is a third flowchart of a data processing method according to an embodiment of the present application.
- FIG. 8 is a first schematic structural diagram of a storage device according to an embodiment of the present application.
- FIG. 9 is a second schematic structural diagram of a storage device according to an embodiment of the present application.
- words such as “exemplary” or “for example” are used as examples, illustrations or illustrations. Any embodiment or design described as “exemplary” or “for example” in the embodiments of the present application should not be construed as more preferred or more advantageous than other embodiments or designs. Rather, the use of the words “exemplary” or “for example” is intended to present the relevant concept in a concrete manner.
- RAID is a disk array formed by combining multiple independent disks, which can provide the host with higher storage performance of a single disk.
- the disks in the disk array can be mechanical hard disks or solid state disks (Solid State Disks (SSDs)).
- RAID data is stored in stripes, so that data can be written to multiple member disks in parallel, greatly improving the user data writing speed, and can provide storage redundancy.
- RAID levels from RAID 0 to RAID 5.
- RAID level Different RAID levels represent different storage performance, data security, and storage costs.
- FIG. 1 (A) shows the data distribution in the array.
- a stripe includes two data blocks and a check block. The data block is used to store user data, and the check block is used to store check data of user data in the stripe.
- a stripe may include multiple parity blocks (such as RAID 6, RAID TP).
- d0, d1, d2, d3, d4, and d5 are all user data, and are stored in the first data block, the second data block, the third data block, the fourth data block, and the fifth Data block and sixth data block
- P1 is check data of d0 and d1
- P2 is check data of d2 and d3
- P3 is check data of d4 and d5.
- d0, d1, and P1 belong to section 0, d2, d3, and P2 belong to section 1, and d4, d5, and P3 belong to section 2.
- RAID 6 is an independent disk structure with two distributed storage parity codes. Based on RAID 5, an additional check digit (Q) is added. RAID 6 can complete data recovery from any two concurrent disk failures in the disk array.
- FIG. 1 (B) shows the data distribution in the array.
- a stripe consists of two data blocks and two check blocks.
- d0, d1, d2, d3, d4, and d5 are all user data, and are stored in the first data block, the second data block, the third data block, the fourth data block, and the fifth Data block and sixth data block
- P1 and Q1 are check data of d0 and d1
- P2 and Q2 are check data of d2 and d3
- P3 and Q3 are check data of d4 and d5.
- d0 ⁇ d1 P1 & Q1
- d2 ⁇ d3 P2 & Q2
- d4 ⁇ d5 P3 & Q3
- ⁇ represents XOR algorithm.
- d0, d1, P1, and Q1 all belong to section 0, d2, d3, P2, and Q2 belong to section 1, and d4, d5, P3, and Q3 belong to section 2.
- RAID-TP is based on RAID6, with an additional parity bit added. RAID-TP can complete data recovery from any three concurrent disk failures in the disk array.
- the foregoing RAID may further include more or fewer disks.
- an XOR algorithm can be used to recover the damaged or lost user data based on the check data in the stripe and other user data.
- storage devices using disk arrays include storage controllers, disks, and other peripherals.
- Figure 2 shows the hardware structure of the storage device. As shown in FIG. 2, the storage device 2 using a disk array includes a storage controller 20, a disk 21, and other peripheral devices 22.
- the storage controller 20 mainly includes a communication interface 201, a processor 202, a memory 203, a disk interface 204, and a system bus 205.
- the communication interface 201, the processor 202, the memory 203, and the magnetic disk interface 204 complete communication with each other through the system bus 205.
- the communication interface 201 is used for the memory controller 20 to communicate with other devices.
- the communication interface 201 may be a serial connection SCSI interface (Serial Attached SCSI, SAS), or a serial advanced technology attachment (Serial Advanced Technology Attachment, SATA), or UFS, etc. This is not specifically limited.
- the processor 202 may be a central processing unit (CPU), a specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present application.
- the processor 202 may be configured to receive a write data request or a read data request from a host, process the write data request or the read data request, and send the write data request or the read data request. Send to disk 21 and other operations.
- the processor 202 may further include a buffer (not shown in FIG. 2) for storing various program instructions.
- the cache may include a Flash Translation Layer (FTL).
- the processor 202 may determine a physical block address (Physics Block Address, PBA) corresponding to a logical block address (Logical Block Address, LBA) through the FTL.
- PBA Physical Block Address
- LBA Logical Block Address
- the processor 202 may implement similar functions through other software modules.
- the memory 203 is used to buffer data received from the peripheral device or data read from the disk 21.
- the memory 203 may be various types of data that can store data, such as Random Access Memory (RAM), Read-Only Memory (ROM), Flash Memory, or Solid State Disk (SSD).
- RAM Random Access Memory
- ROM Read-Only Memory
- SSD Solid State Disk
- Non-transitory readable media is not limited herein.
- the write data request may be stored in the memory 203 and processed by the processor 202.
- the memory 203 may also be placed outside the storage controller 20.
- the cache and memory 203 in the processor 202 may be integrated or independently set, which is not limited in the embodiment of the present application.
- the magnetic disk interface 204 is used to communicate with the magnetic disk 21.
- the processor 202 regards the storage space of the plurality of magnetic disks 21 as a unified space, and manages the unified space.
- For the structure of the unified space reference may be made to (A) in FIG. 1 or (B) in FIG. 1, and details are not described herein again.
- peripherals 22 include auxiliary devices such as dynamic random access memory (DRAM, Access, Memory, DRAM), power supply, etc., which support system operation.
- auxiliary devices such as dynamic random access memory (DRAM, Access, Memory, DRAM), power supply, etc., which support system operation.
- the above storage device 2 can communicate with the host 3, and the storage device 2 can respond to an input / output (IO) request issued by the host 3, for example, returning the information requested by the read IO request Data to be accessed and data to be written in the write IO request.
- the host 3 may be a client device, such as a computer, or may be a server.
- the storage device 2 and the host 3 may be independent devices or integrated in the same device, which is not specifically limited in this application.
- this application mainly uses the storage device 2 and the host 3 as separate settings as an example for description.
- the storage device 2 and the host 3 may be connected in a wired manner, or may be connected in a wireless manner to form a remote storage system.
- the storage device 2 includes an index module 401, a RAID module 402, a storage module 41, a receiving module 42, and a sending module 43.
- the Index module 401 is used to process the read and write requests of the host 3, manage the mapping of the upper-layer access to the storage space, and detect the correctness and integrity of the data. It is also used to downgrade after determining that the read data has incorrect data. Read operation.
- the RAID module 402 is used to calculate the parity data stored in the parity block in the stripe, and converts the information indicated in the read IO request into instructions that the storage module 41 can recognize and sends to the storage module 41 through the corresponding interface. Reconstruction of the test data.
- the storage module 41 is configured to store user data and check data.
- the receiving module 42 is configured to receive a read data request sent by the host 3.
- the sending module 43 is configured to send the read data to the host 3.
- the process of reading data in the communication system shown in FIG. 4 is: 1, the host 3 issues a read data request; 2, the Index module 401 determines the PBA corresponding to the LBA in the read data request, and sends the data to the PBA according to the PBA.
- the RAID module 402 sends a read data request; 3 In response to the data read request, the RAID module 402 reads the target data from the storage module 41; 4, the RAID module 402 sends the target data to the Index module 401; 5, the Index module 401 detects the target data Whether there is error data in the data; 6. When it is determined that there is no error data in the target data, the Index module 401 sends the target data to the host 3 through the sending module 43.
- the storage controller 20 may further include a verification module 403.
- the verification module 403 is used to verify the consistency of the stripe to ensure the correctness of the user data in the stripe.
- the verification module 403 may periodically check the consistency of the stripes, and may also periodically check the consistency of the stripes.
- the process of checking the consistency of the stripes is: 1, the verification module 403 sends a read data request to the RAID module 402; 2, in response to the data read request, the RAID module 402 reads the target data from the disk 21; 3 The RAID module 402 sends the target data to the verification module 403. 4 The verification module 403 performs a stripe consistency check based on the target data sent by the RAID module.
- the processor 202 is configured to execute the steps of the Index module 401, the RAID module 402, and the check module 403.
- the Index module 401 when the Index module 401 detects that there is erroneous data in the target data, the Index module 401 sends degraded read information to the RAID module 402 so that the RAID module 402 re-reads the target data from the disk 21 and repeats the above steps. 3 ⁇ 5, until it is determined that there is no error data in the target data read again. Because it is impossible to determine which data in the target data is damaged, the RAID module 402 needs to exhaustively degrade the combination, the calculation complexity is O (n), and n is the number of disks to obtain the correct data, resulting in reading the correct data The delay is large and the computational complexity is high.
- the verification module 403 determines that the stripes are inconsistent, it sends an alarm indication according to the user configuration, and considers that the verification data stored in the verification block in the stripes is wrong. As a result, erroneous data cannot be identified, and erroneous data may spread.
- this application provides a data processing method, which is applied to a storage device using a disk array (all storage devices are subsequently referred to as a storage device), and a stripe in the storage device includes at least two check blocks, and the storage device After determining that the read target data including the first user data and the second user data has erroneous data, the user data stored in other data blocks in the strip to which the target data belongs and all check blocks in the strip are used.
- the stored check data calculates the first reference data corresponding to the first user data and the second reference data corresponding to the second user data, and further, according to whether the first user data is equal to the first reference data, and the second user Whether the data is equal to the second reference data determines the erroneous data.
- the storage device in this application can quickly and accurately identify erroneous data, and the storage device can identify user data in two data blocks at a time, effectively reducing the computational complexity.
- the data processing method provided in the embodiment of the present application is applicable to the processing process of the storage device after the host sends a data read request to the storage device, and is also applicable to the storage device to periodically or periodically check the consistency of the stripe.
- a stripe of a storage device in this application includes at least two check blocks, and each check block is used to store check data.
- the data processing method provided in this application is also applicable to the communication system shown in FIG. 3 or FIG. 4, and details are not described herein again.
- the data processing method provided in the embodiment of the present application includes:
- the storage device determines that the read target data has incorrect data.
- the target data includes first user data and second user data.
- the first user data is stored in a first data block
- the second user data is stored in a second data block. Both the first data block and the second data block belong to The first subsection.
- the Index module in the storage device is used to detect the correctness and integrity of the read data.
- the Index module in the storage device detects whether there is error data in the read target data.
- the Index module determines that the target data has erroneous data
- the Index module sends a degraded read request to the RAID module, instructing the RAID module to re-read the data, so that the RAID module can re-read the data from the disk.
- the storage device reads the remaining user data and the verification data group.
- the remaining user data includes user data stored in data blocks other than the first data block and the second data block in the first stripe
- the check data group includes the check data stored in each check block in the first stripe
- the first stripe includes at least two check blocks.
- the first user data and the second user data in the target data are both stored in the first stripe data block.
- the RAID module After receiving the degraded read request, the RAID module reads user data (that is, reads the remaining user data) stored in other data blocks except the first data block and the second data block in the first stripe from the disk, and Read the check data stored in each check block in the first stripe from the disk (that is, read the check data group).
- the storage device uses a first preset algorithm to calculate first reference data corresponding to the first user data and second reference data corresponding to the second user data according to the remaining user data and the verification data group.
- the RAID module in the storage device uses a first preset algorithm to calculate, according to the remaining user data and the check data group, the first reference data corresponding to the first user data and the second reference data corresponding to the second user data. Reference data.
- the first preset algorithm may be an exclusive-OR algorithm, a multiply-add algorithm, or another algorithm for analyzing data, which is not specifically limited in this embodiment of the present application.
- the stored data are D0, D1, D2, D3, P, Q, D0, D1, D2, and D3 are user data, and P and Q are check data.
- encode (D0, D1, D2, D3) (P, Q), encode () represents an algorithm used to calculate the check data. The subsequent encode () and the encode () have the same meaning. Repeat them one by one.
- the storage device determines whether the first reference data is equal to the first user data, and whether the second reference data is equal to the second user data.
- the storage device determines that the second user data is incorrect data, that is, the storage device executes S504. Similarly, if the first reference data is different from the first user data and the second reference data is equal to the second user data, the storage device determines that the first user data is incorrect data, that is, the storage device executes S505.
- the storage device determines that the data is lost, that is, the storage device executes S506.
- the storage device determines that the second user data is error data.
- the storage device determines that the first user data is error data.
- the storage device determines data loss / error.
- the storage device identifies user data in two data blocks at a time during the process of identifying erroneous data
- the calculation complexity of the storage device in determining the erroneous data is O (n / 2), and n is the number of disks.
- the data processing method provided in the embodiment of the present application includes S600 and S601 after S504, and S602 and S603 after S505. S600, S601, S602, and S603 will now be described.
- the storage device uses a second preset algorithm to calculate corrected data of the second user data according to the first user data, the remaining user data, and the check data group.
- the second preset algorithm may be an exclusive-OR algorithm, a subtraction algorithm, or another algorithm for analyzing data, which is not specifically limited in this embodiment of the present application.
- the storage device stores correction data of the second user data, and sets the stored second user data as invalid data.
- setting the stored second user data as invalid data may be used to indicate that the stored second user data is deleted, or may be used to indicate that an invalid identifier is added to the stored second user data.
- the storage device may replace the stored second user data with the correction data of the second user data, or may store the correction data of the second user data again, and Adding an invalid identifier to the stored second user data is not specifically limited in this embodiment of the present application.
- the storage device re-stores the correction data of the second user data, and adds an invalid identifier to the stored second user data. In this way, the subsequent storage device deletes the second user data with an invalid identifier during the garbage collection process.
- the storage device uses a second preset algorithm to calculate corrected data of the first user data according to the second user data, the remaining user data, and the verification data group.
- the storage device stores correction data of the first user data, and sets the stored first user data as invalid data.
- S602 reference may be made to the description of S600, and for S603, reference may be made to the description of S601, and details are not described herein again.
- S600 to S601 are related processing procedures of the storage device to the second user data
- S602 to S603 are related processing procedures of the storage device to the first user data.
- the data processing method provided in the embodiment of the present application is applicable to the storage device processing process after the host sends a read data request to the storage device, and is also suitable for the storage device to periodically or periodically check the consistency of the stripe. process.
- the data processing method is applicable to the storage device processing process after the host sends a data read request to the storage device, the storage device will send the host the correct data it has obtained after calculating the correction data for the erroneous data.
- the data processing method in the embodiment of the present application further includes S700, S701 after S600, S702 after S602, and S703 after S506.
- the host sends a data read request to the storage device.
- the storage device sends correction data of the first user data and the second user data to the host.
- the storage device sends correction data of the first user data and second user data to the host.
- S703 The storage device sends a data error message to the host to notify the host that an error occurs in the data to be read.
- the storage device executes S601 or S603 and the process ends.
- the target data includes first user data and second user data. If the above target data further includes third user data stored in the third data block and fourth user data stored in the fourth data block, and the third data block and the fourth data block also belong to the first stripe, the storage device
- a first preset algorithm is adopted, according to the first user data, the second user data, and the remaining The user data and the verification data set, calculating the third reference data corresponding to the third user data and the fourth reference data corresponding to the fourth user data, and further determining whether the third reference data is equal to the third user data, and Whether the fourth reference data is equal to the fourth user data.
- the storage device determines that the fourth user data is error data
- a second preset algorithm is used to calculate the correction data of the fourth user data according to the first user data, the second user data, the third user data, the remaining user data, and the check data group.
- the storage device includes 6 disks
- the stored data are D0, D1, D2, D3, P, Q, D0, D1, D2, and D3 are user data, and P and Q are check data.
- encode (D0, D1, D2, D3) (P, Q).
- the target data read by the storage device includes D0, D1, D2, and D3. After determining that the target data has erroneous data, the storage device performs the following process:
- D0 ⁇ D0 'and D1 ⁇ D1' re-identify the other two user data, such as D2 and D3;
- D0, D1, D2, D3, P, and Q cannot determine the erroneous data, it is determined that the data is lost or the data is erroneous and cannot be repaired.
- the storage device in this application can quickly and accurately identify erroneous data, and the storage device can identify user data in two data blocks at a time, effectively reducing the computational complexity.
- the data processing method provided in this application can also effectively prevent the spread of erroneous data.
- An embodiment of the present application provides a storage device, and the storage device is configured to execute the steps performed by the storage device in the foregoing data processing method.
- the storage device provided in the embodiment of the present application may include a module corresponding to a corresponding step.
- the embodiments of the present application may divide the functional modules of the storage device according to the foregoing method examples.
- each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module.
- the above integrated modules can be implemented in the form of hardware or software functional modules.
- the division of the modules in the embodiments of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner.
- the storage device in this embodiment of the present application includes an Index module 401, a RAID module 402, a storage module 41, a receiving module 42, and a sending module 43.
- the Index module 401 is used to support the storage device to perform S500, S706, and / or other processes used in the technology described herein.
- the above-mentioned RAID module 402 is used to support the storage device to perform S501, S502, S503, S504, S505, S506, S600, S602, and / or other processes for the technology described herein.
- the foregoing storage module 41 is configured to support the storage device to perform S601, S603 in the above embodiments, and / or other processes used in the technology described herein.
- the receiving module 42 is used to support the storage device 900 to perform S700 in the above embodiment, and / or other processes used in the technology described herein.
- the sending module 43 is configured to support the storage device 900 to perform S701, S702, and S703 in the above embodiments, and / or other processes used in the technology described herein.
- the storage device further includes a verification module 403, which is configured to support the storage device to perform the consistency of the timing or periodic check stripe, and / or other techniques used in the technology described herein. process.
- the storage device includes a processing module 80, a communication module 81, and a storage module 82.
- the processing module 80 is configured to control and manage the actions of the storage device, for example, to execute the steps performed by the Index module 401, the RAID module 402, and the check module 403, and / or other processes for performing the technology described herein.
- the communication module 81 is configured to support interaction between the storage device and other devices. For example, the communication module 81 performs steps performed by the receiving module 42 and the sending module 43 described above.
- the storage module 82 is configured to store program code and data of a storage device, for example, to store content stored in the storage module 41.
- the processing module 80 may be a processor or a controller, for example, a central processing unit (CPU), a digital signal processor (DSP), or a digital signal processor (DSP). It can implement or execute various exemplary logical blocks, modules, and circuits described in connection with the disclosure of the embodiments of the present application.
- the communication module 81 may be a transceiver, a transceiver circuit, or a transceiver.
- the storage module 82 may be a memory.
- the processing module 80 is a processor
- the communication module 81 is a transceiver
- the storage module 82 is a memory
- the storage device involved in this embodiment of the present application may be the storage device shown in FIG. 9.
- the storage device includes a transceiver 90, a processor 91, and a memory 92.
- the transceiver 90, the processor 91, and the memory 92 are connected through a system bus 93, and complete communication with each other.
- the storage device executes the data processing method in the embodiment shown in any one of the drawings in FIG. 5 to FIG. 7.
- the storage device executes the data processing method in the embodiment shown in any one of the drawings in FIG. 5 to FIG. 7.
- the storage device executes the data processing method in the embodiment shown in any one of the drawings in FIG. 5 to FIG. 7.
- the storage device executes the data processing method in the embodiment shown in any one of the drawings in FIG. 5 to FIG. 7.
- the transceiver 90 is used to communicate with other devices or communication networks, such as Ethernet, WLAN, and the like.
- the memory 92 is used to store user data and verification data, and can also be used to store software programs and application modules.
- the processor 91 executes various functional applications of the storage device by running the software programs and application modules stored in the memory 92 And data processing.
- the memory 92 may mainly include a storage program area 920 and a storage data area 99, wherein the storage program area 920 may store an operating system and at least one application required by a function, such as correction data for calculating error data, etc .; the storage data area 99 may store User data and check data.
- the memory 92 may be ROM, or other types of static storage devices that can store static information and instructions, RAM, or other types of dynamic storage devices that can store information and instructions, or erasable programmable read-only memory ( Erasable (Programmable ROM, EEPROM), disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by the storage device, but is not limited to this .
- the memory 92 may exist independently, and is connected to the processor 91 through a system bus 93.
- the memory 92 may also be integrated with the processor 91.
- the processor 91 is a control center of the storage device.
- the processor 91 uses various interfaces and lines to connect various parts of the entire storage device, and executes each program of the storage device by running or executing software programs and / or application modules stored in the memory 92 and calling data stored in the memory 92. Functions and process data to monitor the storage device as a whole.
- the processor 91 may include one or more CPUs.
- the processor 91 in FIG. 9 includes CPU0 and CPU1.
- the system bus 93 can be divided into an address bus, a data bus, a control bus, and the like.
- various buses are schematically illustrated as the system bus 93 in FIG. 9.
- the transceiver 90 in FIG. 9 corresponds to the communication interface 201
- the processor 91 corresponds to the processor 202
- the memory 92 corresponds to the magnetic disk 21.
- An embodiment of the present application further provides a computer-readable storage medium.
- the computer-readable storage medium stores instructions.
- the storage device is caused to execute storage in the method process shown in the foregoing data processing method embodiment. The steps performed by the device.
- all or part can be implemented by software, hardware, firmware, or any combination thereof.
- a software program When implemented using a software program, it may appear in whole or in part in the form of a computer program product.
- the computer program product includes one or more computer instructions.
- the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
- the computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, a computer, a server, or a data center.
- the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, or the like that includes one or more available medium integration.
- the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (Solid State Disk (SSD)), and the like.
- the disclosed apparatus and method may be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of the modules or units is only a logical function division.
- multiple units or components may be divided.
- the combination can either be integrated into another device, or some features can be ignored or not implemented.
- the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, which may be electrical, mechanical or other forms.
- the unit described as a separate component may or may not be physically separated, and the component displayed as a unit may be a physical unit or multiple physical units, that is, may be located in one place, or may be distributed to multiple different places. . Some or all of the units may be selected according to actual needs to achieve the objective of the solution of this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each of the units may exist separately physically, or two or more units may be integrated into one unit.
- the above integrated unit may be implemented in the form of hardware or in the form of software functional unit.
- the integrated unit When the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a readable storage medium.
- the technical solutions of the embodiments of the present application essentially or partly contribute to the existing technology or all or part of the technical solutions may be embodied in the form of a software product, which is stored in a storage medium
- the instructions include a number of instructions for causing a device (which can be a single-chip microcomputer, a chip, or the like) or a processor to execute all or part of the steps of the method described in each embodiment of the present application.
- the foregoing storage media include: U disks, mobile hard disks, read-only memories (ROMs), random access memories (RAMs), magnetic disks or compact discs and other media that can store program codes .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Les modes de réalisation de la présente invention se rapportent au domaine technique du stockage, et concernent ainsi un procédé et un dispositif de traitement de données, qui résolvent les problèmes de retard qui sont longs et la complexité du calcul qui est élevée. Plus précisément, le procédé consiste à : déterminer que des données incorrectes existent parmi des données cibles comprenant des premières données d'utilisateur et des secondes données d'utilisateur, les premières données d'utilisateur étant stockées dans un premier bloc de données d'un premier secteur et les secondes données d'utilisateur étant stockées dans un second bloc du premier secteur ; lire les données d'utilisateur restantes et un ensemble de données de vérification, les données d'utilisateur restantes étant des données d'utilisateur stockées dans d'autres blocs de données du premier secteur, l'ensemble de données de vérification comprenant des données de vérification stockées dans des blocs de vérification, et le premier secteur comprenant au moins deux blocs de vérification ; selon un premier algorithme prédéfini, les données d'utilisateur restantes et l'ensemble de données de vérification, calculer des premières données de référence correspondant aux premières données d'utilisateur et des secondes données de référence correspondant aux secondes données d'utilisateur ; si les premières données de référence et les premières données d'utilisateur sont égales mais que les secondes données de référence et les secondes données d'utilisateur ne sont pas égales, déterminer les secondes données d'utilisateur en tant que données incorrectes.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810691973.2 | 2018-06-28 | ||
| CN201810691973.2A CN110659152B (zh) | 2018-06-28 | 2018-06-28 | 一种数据处理方法及设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020001059A1 true WO2020001059A1 (fr) | 2020-01-02 |
Family
ID=68984696
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2019/076840 Ceased WO2020001059A1 (fr) | 2018-06-28 | 2019-03-04 | Procédé et dispositif de traitement de données |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN110659152B (fr) |
| WO (1) | WO2020001059A1 (fr) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114756175B (zh) * | 2022-04-18 | 2026-01-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种用于磁盘阵列的解码方法、系统、设备及介质 |
| CN117667468B (zh) * | 2022-08-24 | 2026-03-27 | 成都华为技术有限公司 | 一种数据修复方法及存储设备 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102023819A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法 |
| CN102023820A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法 |
| CN102033716A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错的节能型磁盘阵列的构建方法 |
| CN102043685A (zh) * | 2010-12-31 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 独立磁盘冗余阵列系统及其数据恢复方法 |
| US20120166909A1 (en) * | 2010-12-22 | 2012-06-28 | Schmisseur Mark A | Method and apparatus for increasing data reliability for raid operations |
| CN104461373A (zh) * | 2013-09-16 | 2015-03-25 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
-
2018
- 2018-06-28 CN CN201810691973.2A patent/CN110659152B/zh active Active
-
2019
- 2019-03-04 WO PCT/CN2019/076840 patent/WO2020001059A1/fr not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102023819A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法 |
| CN102023820A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法 |
| CN102033716A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错的节能型磁盘阵列的构建方法 |
| US20120166909A1 (en) * | 2010-12-22 | 2012-06-28 | Schmisseur Mark A | Method and apparatus for increasing data reliability for raid operations |
| CN102043685A (zh) * | 2010-12-31 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 独立磁盘冗余阵列系统及其数据恢复方法 |
| CN104461373A (zh) * | 2013-09-16 | 2015-03-25 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110659152A (zh) | 2020-01-07 |
| CN110659152B (zh) | 2021-04-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111433746B (zh) | 使用故障存储设备的重建助手 | |
| JP7326379B2 (ja) | ハードディスク故障対処方法、アレイコントローラ、およびハードディスク | |
| CN100583066C (zh) | 存储控制系统及其控制方法,端口选择器,以及控制器 | |
| JP5399345B2 (ja) | 外部ストレージシステムに結合されたストレージシステムのエラーコード管理方法及び装置 | |
| CN103778030B (zh) | 日志子系统写入方法、错误追踪方法及处理器 | |
| US10474527B1 (en) | Host-assisted error recovery | |
| CN101923441B (zh) | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 | |
| WO2020019267A1 (fr) | Dispositif et procédé de traitement de données | |
| US10261705B2 (en) | Efficient data consistency verification for flash storage | |
| WO2014147865A1 (fr) | Système de traitement d'informations, programme de commande et dispositif de traitement d'informations | |
| CN113419684B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
| WO2013143273A1 (fr) | Procédé et dispositif permettant de réduire le délai de lecture | |
| CN110413454B (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
| CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
| WO2015014301A1 (fr) | Procédé et dispositif d'accès pour module de mémoire de type à messages | |
| WO2020048442A1 (fr) | Procédé de traitement de défaut de disque dur, contrôleur de réseau et disque dur | |
| CN101377748A (zh) | 校验储存装置的读写功能的方法 | |
| CN111666043A (zh) | 一种数据存储方法及设备 | |
| CN117437967A (zh) | 一种条带检测方法、装置、设备及可读存储介质 | |
| WO2019210844A1 (fr) | Procédé et appareil de détection d'anomalie destinés à un dispositif de stockage et système de stockage distribué | |
| WO2020001059A1 (fr) | Procédé et dispositif de traitement de données | |
| CN103631682B (zh) | 数据备份的实现方法和装置 | |
| CN115658404B (zh) | 一种测试方法及系统 | |
| CN108008909B (zh) | 一种数据存储方法、装置及系统 | |
| US20210157744A1 (en) | Techniques for providing i/o hints using i/o flags |
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: 19826485 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19826485 Country of ref document: EP Kind code of ref document: A1 |