Data access method for raid, electronic device and computer program product

CN116954479BActive Publication Date: 2026-10-23DELL PROD LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210399932.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-15
Publication Date
2026-10-23
Estimated Expiration
2042-04-15

AI Technical Summary

Technical Problem

然而,在重建过程中,其它盘上的一些数据也可能出现问题

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116954479B_ABST
    Figure CN116954479B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to a data access method, an electronic device and a computer program product for RAID. The data access method comprises reading data from at least one disk of a plurality of disks. The data method further comprises detecting whether a query table stored on a memory is empty, wherein the query table stores information indicating data loss. The data access method further comprises, in response to the query table not being empty, comparing data read information associated with the read data with table entries in the query table to determine whether there is a table entry in the query table that matches the data read information. The method further comprises, in response to determining that there is a table entry that matches the data read information, sending information indicating data loss. Through the data access method, the data access efficiency is improved, the complexity of the system and the power consumption of the system are reduced, and the performance of the system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of this disclosure relate to the field of computer processing, and more specifically, to data access methods, electronic devices, and computer program products for redundant arrays of independent disks (RAID). Background Technology

[0002] In a storage system based on Redundant Array of Independent Disks (RAID), if one disk fails, the RAID can use data from the other disks to recover the data from the failed disk; this process is usually called rebuilding. However, during rebuilding, some data on the other disks may also become corrupted. In this case, some data on the failed disk may not be effectively recovered, resulting in data loss. For data access in a storage system, being able to easily identify data loss during data access greatly simplifies data access operations and improves their efficiency. Summary of the Invention

[0003] Embodiments of this disclosure provide a data access method, electronic device, and computer program product for a standalone disk redundant array RAID.

[0004] According to a first aspect of this disclosure, a data access method for a Redundant Array of Independent Disks (RAID) is provided. The RAID includes multiple disks associated with a data access device, and the data access method can be performed by the data access device. The data access method includes reading data from at least one of the multiple disks. The method further includes detecting whether a lookup table stored in memory is empty, wherein the lookup table stores information indicating data loss. The method further includes, in response to the lookup table not being empty, comparing data read information associated with the read data with table entries in the lookup table to determine whether a table entry matching the data read information exists in the lookup table. The method further includes, in response to determining that a table entry matching the data read information exists, sending information indicating data loss.

[0005] According to a second aspect of this disclosure, a data access electronics device for a Redundant Array of Independent Disks (RAID) is provided, the RAID including a plurality of disks associated with the electronics device. The electronics device includes at least one processor; and a memory coupled to the at least one processor and having instructions stored thereon, the instructions causing the device to perform actions when executed by the at least one processor, the actions including: reading data from at least one of the plurality of disks; detecting whether a lookup table stored in the memory is empty, the lookup table storing information indicating data loss; in response to the lookup table not being empty, comparing data read information associated with the read data with table entries in the lookup table to determine whether a table entry matching the data read information exists in the lookup table; and in response to determining that a table entry matching the data read information exists, sending information indicating data loss.

[0006] According to a third aspect of this disclosure, a computer program product is provided, which is tangibly stored on a non-volatile computer-readable medium and includes machine-executable instructions that, when executed, cause a machine to perform the steps of the method in the first aspect of this disclosure. Attached Figure Description

[0007] The above and other objects, features and advantages of this disclosure will become more apparent from the accompanying drawings, in which like reference numerals generally denote like parts.

[0008] Figure 1 The illustration shows a schematic diagram of an example environment 100 in which the devices and / or methods according to embodiments of the present disclosure may be implemented;

[0009] Figure 2 A detailed block diagram of an example environment 100 in which the devices and / or methods according to embodiments of the present disclosure may be implemented is illustrated;

[0010] Figure 3 A schematic diagram of a RAID 5 array constructed based on segments in a disk according to an embodiment of the present disclosure is illustrated.

[0011] Figure 4 A schematic flowchart of a data access method 400 according to an embodiment of the present disclosure is shown;

[0012] Figure 5 The schematic diagram illustrates a schematic flowchart of a write operation method 500 according to an embodiment of the present disclosure;

[0013] Figure 6 The schematic diagram illustrates a schematic flowchart of a method 600 for creating and maintaining a query table according to an embodiment of the present disclosure;

[0014] Figure 7 A schematic block diagram of an example device 700 suitable for implementing embodiments of the present disclosure is shown.

[0015] In the various figures, the same or corresponding reference numerals indicate the same or corresponding parts. Detailed Implementation

[0016] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0017] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0018] In a storage system based on Redundant Array of Independent Disks (RAID), if one disk fails, the RAID can use data from the other disks to recover the data from the failed disk; this process is usually called rebuilding. However, during rebuilding, some data on the other disks may also become corrupted. In this case, some data on the failed disk may be lost because it cannot be effectively recovered. For data access in a storage system, being able to easily identify data loss during data access greatly simplifies the process and improves efficiency.

[0019] In storage systems based on Redundant Array of Independent Disks (RAID), a mapper module and a RAID module are typically included. The mapper module establishes a storage mapping mechanism from logical storage space to physical storage space at a small granularity (e.g., 4KB). The RAID module, based on the mapping mechanism from the mapper module, distributes data across disks at a relatively large granularity (e.g., GB-level granularity) and protects the data through a series of algorithms. In existing technologies, when data loss occurs during reconstruction, the RAID module typically sends a notification to the mapper module, which records the data loss and recovers the problematic data, writing it to another storage area. Then, the mapper module notifies the RAID module to continue reconstruction, facilitating subsequent data access. However, because the RAID module needs to cooperate with the mapper module to record data loss, this design is overly complex and, in some cases (e.g., when the mapper module is inactive), prolongs the data reconstruction cycle and reduces reconstruction efficiency.

[0020] In existing technologies, there is another method for recording data loss for data access purposes. In this method, for a segment of the disk where data has been lost, a fixed template (known bad pattern) is used to identify the lost data, indicating that data in that segment is missing. Each time the RAID module reads data from the disk, it needs to compare the retrieved data with this fixed template to check if the retrieved data matches the template. If a match is found, it indicates that the retrieved data identified as lost data has been lost; if no match is found, it indicates that the retrieved data is correct. However, in this method, the RAID module needs to perform a template comparison operation for each retrieved data, resulting in extremely low data access efficiency and severely impacting the performance of the data access system.

[0021] To address the aforementioned and other potential problems, embodiments of this disclosure propose a data access method for a Redundant Array of Independent Disks (RAID), comprising multiple disks associated with a data access device. This data access method is executed by the data access device. In this method, the data access device reads data from at least one of the multiple disks. The data access device then checks whether a lookup table stored in memory is empty, the lookup table storing information indicating data loss. In response to the lookup table not being empty, the data access device compares data read information associated with the read data with the table entries in the lookup table to determine whether a table entry matching the data read information exists in the lookup table. In response to determining that a table entry matching the data read information exists, the data access device sends information indicating data loss. This method allows data loss recording to be performed independently using only the RAID module within the data access device, simplifying the operation of recording data loss and improving data access efficiency.

[0022] The embodiments of this disclosure will now be described in further detail with reference to the accompanying drawings, wherein... Figure 1 A schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is shown.

[0023] Example environment 100 includes data access device 110 and disk array 140. Disk array 140 includes multiple disks 141-i (1≤i≤N, i is a positive integer). The term "disk" as used herein can refer to any currently known or future-developed non-volatile storage medium, including but not limited to hard disks, optical disks, or solid-state drives (SSDs). In this description, the term "disk" will be used collectively. However, it should be understood that this is merely for ease of description and does not imply any limitation on the scope of this disclosure. Those skilled in the art can select appropriate non-volatile storage media based on application requirements. In one embodiment, disk array 140 may include a redundant array of independent disks (RAID), which typically combines multiple physical storage units into a logical storage unit for data redundancy and / or performance improvement. Depending on the required level of redundancy and performance, it may have different types, such as RAID 0, RAID 1…RAID 5, etc.

[0024] Data access device 110 is used to access multiple disks in disk array 140. Data access device 110 may include a processor and memory. In one embodiment, if disk array 140 includes a Redundant Array of Independent Disks (RAID), a RAID module may run on the processor of data access device 110, which is used to manage disk array 140 (e.g., data access, data reconstruction, etc.).

[0025] The data access device 110 according to an embodiment of the present disclosure stores a lookup table in its memory, which stores information indicating data loss. When the RAID module accesses data in the disk array 140, the RAID module determines whether further determination of whether lost data is needed based on whether the lookup table is empty. When the lookup table is empty, the RAID module determines that the read data is correct and can directly send the data to the upper-layer processing device for processing. The RAID module only needs to further determine whether lost data is needed when the lookup table is not empty. Since template comparison is not required every time data is accessed, the data access method according to the embodiment of the present disclosure can improve data access efficiency. In addition, the lookup table can be recorded by the RAID module during the reconstruction process without the participation of other modules. Therefore, the data access method according to the embodiment of the present disclosure can be completed independently by RAID, which reduces system complexity, reduces system power consumption, and improves system performance.

[0026] The above combination Figure 1 A block diagram of an example system 100 in which embodiments of the present disclosure can be implemented is described. The following is in conjunction with… Figure 2 An example system 200, in which embodiments of the present disclosure can be implemented, is described. The example system 200 is a detailed block diagram of the example system 100.

[0027] like Figure 2 As shown, the data access device 210 of system 200 may include computing nodes 220 and 230. Each computing node includes a corresponding processor and memory. That is, computing node 220 includes a processor 221 and memory 222, and computing node 230 includes a processor 231 and memory 232. Furthermore, memory 222 and memory 232 respectively store lookup tables; for example, memory 222 stores lookup table 224, and memory 232 stores lookup table 234. The lookup tables store information indicating data loss in disk array 240. In one embodiment, the lookup tables stored in memory 222 and memory 232 are mirrored. That is, lookup table 224 and lookup table 234 are mirrored. Therefore, when a lookup table in one computing node has a problem, table data can be repaired based on the mirrored lookup table.

[0028] For a disk array 240 including a Redundant Array of Independent Disks (RAID), each compute node 220 and 230 in the data access device 210 can run a RAID module in its respective processor to manage the data in the disk array 240.

[0029] One type of RAID is built based on a full physical disk. This type of RAID N array consists of N physical disks, and an array will consume the storage space of all N disks to store data and parity information. Another type of RAID array is built based on slices within a disk. The following will refer to... Figure 3 Let's take RAID 5 as an example for explanation. Figure 3 The diagram illustrates, schematically, a RAID 5 array constructed based on segments within a disk according to an embodiment of the present disclosure. Figure 3 The illustration uses an array 240 comprising 10 disks 241-1 to 241-10 as an example. However, it should be understood that this is for illustrative purposes only and does not imply any limitation on the scope of this disclosure. Embodiments of this disclosure can be applied to arrays with other numbers of disks. Figure 3 As shown, to construct a segment-based RAID 5, the RAID module can select 5 disks from 10 disks, and then select one segment from each of the selected 5 disks to form a RAID 5 array 320. For example, the RAID module can select the second segment U1 of the first disk 241-1 (as shown in the shaded area), the first segment U2 of the second disk 241-2 (as shown in the shaded area), the third segment U3 of the third disk 241-3 (as shown in the shaded area), the second segment U4 of the fourth disk 241-4 (as shown in the shaded area), and the second segment U5 of the tenth disk 241-10 (as shown in the shaded area) to form a RAID 5 segment set (uber) 320. A RAID 5uber can include 5 segments, of which 4 are data segments and 1 is a parity segment. Disk array 240 can include multiple RAID 5ubers.

[0030] However, it should be understood that this is for illustrative purposes only and does not imply any limitation on the scope of this disclosure. Embodiments of this disclosure can be applied to other types of RAID with different layouts. Furthermore, the data access methods according to embodiments of this disclosure are applicable to various types of RAID.

[0031] Figure 4 A flowchart of a data access method 400 for a redundant array of independent disks (RAID) according to an embodiment of this disclosure is shown. The following is in conjunction with... Figure 2The actions involved in method 400 are described using the storage system 200 shown. For example, in some embodiments, method 400 may be performed by data access device 210. Specifically, it may be performed by any of the computing nodes (referred to as "execution computing nodes") in data access device 210. More specifically, it may be performed by a RAID module (not shown) running on a processor in the execution computing node. Furthermore, since method 400 is described below with reference to disk array 240, it should be understood that method 400 may also include additional actions not shown and / or actions shown may be omitted, and the scope of this disclosure is not limited in this respect.

[0032] In block 402, data access device 210 reads data from at least one of a plurality of disks. In one embodiment, data access device 210 performs data access on disks in disk array 240. Figure 3 Taking a RAID 5 segment set 320 constructed based on segments as an example, the RAID 5 segment set includes 5 segments, of which 4 segments are data segments and 1 segment is a parity segment. Data access device 210 reading data from a segment can be considered as reading data from the disk containing the corresponding segment. For example, data access device 210 can read data from the first segment U1 in the RAID 5 segment set 320, which is correspondingly considered as reading data from the first disk 241-1.

[0033] In block 404, data access device 210 detects whether the lookup table stored in memory is empty. In one embodiment, data access device 210 is configured with two compute nodes, i.e., the data access device includes compute node 220 and compute node 230. Each compute node includes memory. The RAID module executing this method detects whether the lookup table stored in the memory of the compute node it resides in is empty.

[0034] In one embodiment, the lookup table stores information indicating data loss. Each computing node in the data access device 210 stores a lookup table in its memory, and these lookup tables are mirrored. For example, a first lookup table 224 is stored in memory 222, and a second lookup table 234 is stored in memory 232; the first lookup table 224 and the second lookup table 234 are mirrored.

[0035] The query table can be a hash-formatted table. Each query table contains items, and each item includes at least one of the following: the location of the lost data, the timestamp of the loss, and the size of the lost data. When the query table contains data—for example, if an item contains records—it is not empty. When the query table contains no data, it is empty.

[0036] In box 406, in response to the query table not being empty, the data access device 210 compares the data read information associated with the read data with the table items in the query table to determine whether there is a table item in the query table that matches the data read information.

[0037] In one embodiment, in response to determining at block 404 that the query table is not empty, the data access device 210 compares the data reading information associated with the read data with the table items in the query table to determine whether there is a table item in the query table that matches the data reading information. The data reading information associated with the data may include information such as data address and data index. Thus, the data access device 210 can determine whether there is a table item in the query table that matches the data reading information by comparing information such as data address and data index. In one embodiment, the data access device 210 may obtain the data reading information associated with the data before reading the data, or it may obtain the data reading information associated with the data while reading the data, or it may obtain the data reading information associated with the data after reading the data. The data access device 210 can set the order of obtaining data and obtaining the data reading information associated with the data according to the actual needs of the data access system, and this disclosure does not limit this.

[0038] In box 408, in response to determining that a table entry matching the data read information exists, a message indicating data loss is sent.

[0039] The presence of a table entry matching the data retrieval information indicates that the query table stores information associated with the retrieved data, suggesting that data in the corresponding segment of the retrieved data is missing. For example, a match is found by comparing the address in the table entry with the address in the data retrieval information, indicating that the data at that address is missing.

[0040] This method ensures that the data access device only needs to check for missing data if the query table is not empty. Since template comparison is not required for every data access, the data access method according to embodiments of this disclosure improves data access efficiency. Furthermore, the query table can be recorded by the RAID module during reconstruction without the involvement of other modules. Therefore, the data access method according to embodiments of this disclosure can be completed independently by RAID, reducing system complexity, power consumption, and performance.

[0041] In one embodiment, when the query table stored in the memory is detected to be empty at block 402, the data access device 210 determines that the data read is correct and directly sends the data to the upper-layer device for processing.

[0042] In one embodiment, at block 406, if it is determined that no table entry matches the data read information, the data access device 210 can determine that although a non-empty query table indicates missing data in the disk array, the read data is correct because it does not match any item in the query table. In this case, the data access device 210 can send the read data to the upper-layer device for processing.

[0043] Figure 5 A schematic flowchart illustrating a write operation method 500 according to an embodiment of the present disclosure is shown. The following is in conjunction with... Figure 2 The actions involved in method 500 are described using the storage system 200 shown. For example, in some embodiments, method 500 may be performed by data access device 210. Specifically, it may be performed by any of the computing nodes (referred to as "execution computing nodes") in data access device 210. More specifically, it may be performed by a RAID module (not shown) running on a processor in the execution computing node. Furthermore, since method 500 is described below with reference to disk array 240, it should be understood that method 500 may also include additional actions not shown and / or actions shown may be omitted, and the scope of this disclosure is not limited in this respect. In some embodiments, method 500 may be performed by... Figure 4 The method is executed based on method 400. In some embodiments, method 500 may also be performed on... Figure 4 Method 400 and method 500 are executed before or simultaneously. This disclosure does not restrict the execution order of method 400 and method 500.

[0044] At box 504, in response to a write operation instruction, data access device 210 checks whether the lookup table in memory is empty. The implementation of checking whether the lookup table in memory is empty in this step is similar to that at box 404, and will not be described again here for the sake of simplicity.

[0045] At box 506, in response to the query table not being empty, the data access device 210 compares the data write information associated with the write operation with the table entries in the query table. In one embodiment, the data write information may include the write operation address, the data written, and other related information. When the data write information includes the write operation address, the data access device 210 can compare the write operation address with the data address of the table entry in the query table to determine whether there is a table entry that matches the write operation address.

[0046] At box 508, in response to determining that a table entry matching the data write information exists, the data access device 210 removes the table entry matching the data write information from the query table after performing the write operation.

[0047] Understandably, when the data write information includes a write operation address, if the lookup table stores a table entry matching the write operation address, it indicates that the data corresponding to that address is lost. Accordingly, the write operation of the data access device 210 can write the correct data to that address, thus recovering the data at that address. Accordingly, after performing the write operation, the data access device 210 removes the table entry matching the data write information from the lookup table, indicating that the lost data has been recovered, and the lookup table is updated accordingly.

[0048] The above method can be used to update the query table, so that after the data is recovered, the query table will no longer record information indicating that the data was lost, thus making the information in the query table more accurate and real-time.

[0049] The following will combine Figure 6 Describe the process of creating and maintaining query tables. Figure 6 A method flowchart of method 600 for updating a record table according to an embodiment of the present disclosure is shown. For example, in some embodiments, method 500 may be performed by data access device 210. Specifically, it may be performed by any computing node (referred to as "execution computing node") of data access device 210. More specifically, it may be performed by a RAID module (not shown) running on a processor in the execution computing node. Furthermore, since method 600 is described below with reference to disk array 240, it should be understood that method 600 may also include additional actions not shown and / or actions shown may be omitted, and the scope of the present disclosure is not limited in this respect.

[0050] In box 602, data access device 210 performs a rebuild operation on at least one target disk among a plurality of disks. For example, data access device 210 performs a rebuild operation on target disk 241-1 in disk array 240.

[0051] In box 604, during the reconstruction process, data access device 210 detects whether there is data loss on at least one target disk. For example, data access device 210 detects whether there is data loss on disk 241-1. For example, if some data on other disks has problems, it may cause some data on disk 241-1 to be unable to be effectively recovered, resulting in data loss.

[0052] In block 606, in response to detecting data loss in at least one target disk, data access device 210 writes information associated with the lost data into a record table in at least one target disk to obtain a written record table. For example, if data access device 210 detects data loss in target disk 241-1, then data access device 210 writes information associated with the lost data (including, but not limited to, at least one of the lost data's location, loss timestamp, and size) into a record table in target disk 241-1. The record table may be a hash table and may have the same format as query table 224 stored in memory 222 and query table 234 stored in memory 232.

[0053] Since the record table is stored on a disk, and the disk is non-volatile, the record table is also a table permanently stored in non-volatile memory. Therefore, the data in the table will not be erased due to factors such as power failure. Thus, if the lookup table in memory is erased due to power failure, the record table stored on the disk can be provided to generate the lookup table in memory to recover the data in the table entries of the lookup table.

[0054] At box 608, data access device 210 updates a lookup table in memory based on the record table already written to the disk. For example, the data access device can employ various techniques to update the lookup table in memory based on the written record table, thereby enabling the table in memory to be updated in real time and accurately as to whether there is any missing data on the disk.

[0055] In one embodiment, this disclosure does not limit the order in which the query tables in the two memories of the data access device 210 are updated. For example, the data access device 210 may first update the query table 224 in the memory 222 of the compute node 220, and then update the query table 234 in the access memory 232 based on the updated query table 224 in the memory 222. Alternatively, the data access device 210 may first update the query table 234 in the memory 232 of the compute node 230, and then update the query table 224 in the access memory 222 based on the updated query table 234 in the memory 232. This disclosure does not limit the order in which the tables in the memories are updated.

[0056] In one embodiment, combined Figure 5The write operation method 500 described herein allows the RAID module to remove the matching table entries from the record table stored on the disk where the data is written before removing the matching table entries from the lookup table in the memory. Then, the mirrored lookup tables 224 and 234 are updated respectively, so that the table entries in the record table and the mirrored lookup table can accurately reflect the data loss situation in the RAID.

[0057] Furthermore, in one embodiment, the data access device 210 can also read the record table stored in each disk and detect whether the data in the table entries reaches a threshold. If the threshold is not reached, it indicates that the data loss on that disk is tolerable. If the number of table entries in the record table reaches the threshold, it indicates that the data loss on that disk is not tolerable, and the data access device 210 can perform troubleshooting on the disk storing the record table. Alternatively, the data access device 210 can also notify other devices to perform troubleshooting or other operations on that disk.

[0058] This method ensures that the data access device only needs to check for missing data if the query table is not empty. Since template comparison is not required for every data access, the data access method according to embodiments of this disclosure improves data access efficiency. Furthermore, the query table can be recorded by the RAID module during reconstruction without the involvement of other modules. Therefore, the data access method according to embodiments of this disclosure can be completed independently by RAID, reducing system complexity, power consumption, and performance.

[0059] Figure 7 A schematic block diagram of an example device 700 that can be used to implement embodiments of the present disclosure is shown. Figure 1 and Figure 2 The computing nodes in the system can be implemented using device 700. As shown in the figure, device 700 includes a central processing unit (CPU) 701, which can perform various appropriate actions and processes based on computer program instructions stored in read-only memory (ROM) 702 or loaded from storage unit 708 into random access memory (RAM) 703. RAM 703 can also store various programs and data required for the operation of device 700. CPU 701, ROM 702, and RAM 703 are interconnected via bus 504. Input / output (I / O) interface 705 is also connected to bus 704.

[0060] Multiple components in device 700 are connected to I / O interface 705, including: input unit 706, such as keyboard, mouse, etc.; output unit 707, such as various types of monitors, speakers, etc.; storage page 708, such as disk, optical disk, etc.; and communication unit 709, such as network card, modem, wireless transceiver, etc. Communication unit 709 allows device 700 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0061] The various processes and handling described above, such as methods 400, 500, and 600, can be executed by processing unit 701. For example, in some embodiments, methods 400, 500, and 600 can be implemented as computer software programs tangibly contained in a machine-readable medium, such as storage unit 708. In some embodiments, part or all of the computer program can be loaded and / or installed on device 700 via ROM 702 and / or communication unit 709. When the computer program is loaded into RAM 703 and executed by CPU 701, one or more actions of methods 400, 500, and 600 described above can be performed.

[0062] This disclosure can be a method, apparatus, system, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for performing various aspects of this disclosure.

[0063] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination of the foregoing. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0064] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.

[0065] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to implement various aspects of this disclosure.

[0066] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0067] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0068] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0069] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0070] The various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or technical improvements to the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A data access method for a Redundant Array of Independent Disks (RAID), the RAID comprising multiple disks, the multiple disks being associated with a data access device, the method being executed by the data access device, the method comprising: Read data from at least one of the plurality of disks; The system detects whether a query table stored in the memory is empty; the query table stores information indicating data loss. In response to detecting that the query table is not empty, the data reading information associated with the read data is compared with the table items in the query table to determine whether there is a table item in the query table that matches the data reading information; as well as In response to determining that a table entry matching the data read information exists, a message indicating data loss is sent.

2. The method according to claim 1, further comprising: In response to detecting that the query table is empty, the read data is sent.

3. The method according to claim 1, further comprising: In response to determining that no table entry matches the data read information, the read data is sent.

4. The method according to claim 1, wherein, The data reading information includes the read address of the data read from the at least one disk.

5. The method according to claim 1, further comprising: In response to a write operation instruction, check whether the query table is empty; In response to detecting that the query table is not empty, the data write information associated with the write operation is compared with the table items in the query table to determine whether there is a table item that matches the data write information; as well as In response to determining that a table entry matches the data write information, after performing the write operation, the table entry matching the data write information is removed from the query table. The data writing information includes the write operation address for writing to the at least one disk.

6. The method according to claim 1, further comprising: Perform a rebuild operation on at least one target disk among the plurality of disks; During the reconstruction operation, it is detected whether any data is lost on the at least one target disk; In response to the detection of data loss in the at least one target disk, information associated with the lost data is written into a record table in the at least one target disk to obtain a written record table.

7. The method according to claim 6, further comprising: The query table stored in the memory is updated based on the written record table.

8. The method according to claim 7, wherein, The memory is a first memory, the table is a first query table, the data access device further includes a second memory, and the method further includes: Update the second query table stored in the second memory according to the written record table. The first query table and the second query table are mirror images of each other.

9. The method according to claim 6, further comprising: When the number of table entries in the record table reaches a threshold, an error-correction process is performed on the at least one target disk storing the record table.

10. The method according to claim 1, wherein, Each table item in the query table includes at least one of the following: the location of the lost data, the timestamp of the loss, and the size of the lost data.

11. A data access electronic device for a Redundant Array of Independent Disks (RAID), the RAID comprising a plurality of disks associated with the electronic device, the electronic device comprising: At least one processor; as well as A memory, coupled to the at least one processor and having instructions stored thereon, which, when executed by the at least one processor, cause the electronic device to perform actions, including: Read data from at least one of the plurality of disks; The system detects whether a query table stored in the memory is empty; the query table stores information indicating data loss. In response to detecting that the query table is not empty, data read information associated with the read data is obtained, and the data read information associated with the read data is compared with the table items in the query table to determine whether there is a table item in the query table that matches the data read information; and In response to determining that a table entry matching the data read information exists, a message indicating data loss is sent.

12. The electronic device according to claim 11, wherein, The instructions, when executed by the at least one processor, also cause the electronic device to perform: In response to detecting that the query table is empty, the read data is sent.

13. The electronic device according to claim 11, wherein, The instructions, when executed by the at least one processor, also cause the electronic device to perform: In response to determining that no table entry matches the data read information, the read data is sent.

14. The electronic device according to claim 11, wherein, The data reading information includes the read address of the data read from the at least one disk.

15. The electronic device according to claim 11, wherein, The instructions, when executed by the at least one processor, also cause the electronic device to perform: In response to a write operation instruction, check whether the query table is empty; In response to detecting that the query table is not empty, the data write information associated with the write operation is compared with the table items in the query table to determine whether there is a table item that matches the data write information; as well as In response to determining that a table entry matches the data write information, after performing the write operation, the table entry matching the data write information is removed from the query table. The data writing information includes the write operation address for writing to the at least one disk.

16. The electronic device according to claim 11, wherein, The instructions, when executed by the at least one processor, also cause the electronic device to perform: Perform a rebuild operation on at least one target disk among the plurality of disks; During the reconstruction operation, it is detected whether any data is lost on the at least one target disk; In response to the detection of data loss in the at least one target disk, information associated with the lost data is written into a record table in the at least one target disk to obtain a written record table.

17. The electronic device according to claim 16, wherein, The instructions, when executed by the at least one processor, also cause the electronic device to perform: The query table stored in the memory is updated based on the written record table.

18. The electronic device according to claim 17, wherein, The memory is a first memory, the table is a first lookup table, the electronic device further includes a second memory, and the instruction, when executed by the at least one processor, also causes the electronic device to perform: Update the second query table stored in the second memory according to the written record table. The first query table and the second query table are mirror images of each other.

19. The electronic device of claim 16, wherein the instructions, when executed by the at least one processor, further cause the electronic device to perform: When the number of table entries in the record table reaches a threshold, an error-correction process is performed on the at least one target disk storing the record table.

20. The electronic device according to claim 11, wherein, Each table item in the query table includes at least one of the following: the location of the lost data, the timestamp of the loss, and the size of the lost data.

21. A computer program product tangibly stored on a non-volatile computer-readable medium and comprising machine-executable instructions that, when executed, cause a machine to perform the steps of the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Storage device array system

    JP1997258913A

  • Information processing apparatus, method for controlling the same, and program

    JP2021092846A