Storage management method, device and computer program product

By setting multiple school values ​​in the RAID band and allocating the corresponding verification value for each node, the problem of decreased performance of the traditional RAID storage system when writing operations, realizing parallel visits between nodes, improved the improvement of nodes, which improved the improvement of nodes, which improved the improvement of nodes, which improved the improvement of nodes. The efficiency of the storage system.

CN114594900BActive Publication Date: 2025-01-24EMC IP HLDG CO LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202011409033.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-04
Publication Date
2025-01-24
Estimated Expiration
2040-12-04

AI Technical Summary

Technical Problem

Traditional RAID storage systems require locking the entire strip during write operations, resulting in performance degradation, especially when only part of the data needs to be written.

Method used

By setting multiple parity values ​​in a RAID stripe and assigning corresponding parity values ​​to each node, a single node does not need to lock other data spaces and parity values ​​when performing partial writes, thereby allowing other nodes to parallelize Perform a write or read request.

Benefits of technology

Improve the performance of the RAID storage system, allow different nodes to access different data storage spaces in parallel to different nodes, and avoid the performance bottleneck brought by locking.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114594900B_ABST
    Figure CN114594900B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to methods, devices, and computer program products for storage management. The method includes: receiving a write request from a requesting node to write target data to a first target storage space in a RAID; if the storage device associated with the first target storage space has not failed, obtaining the first data stored in the first target storage space and the first check value stored in the check storage space corresponding to the requesting node; determining a target check value based on the target data, the first data, and the first check value; and updating the stripe using the target data and the target check value. Based on this approach, locks caused by updating the check value can be avoided, so that different nodes can perform parallel writes to different storage spaces in the same stripe in the RAID.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the field of computers, and more particularly, to a method, device, and computer program product for storage management. Background Art

[0002] With the development of data storage technology, various data storage devices have been able to provide users with higher and higher data storage capabilities, and the data access speed has also been greatly improved. While improving data storage capabilities, users have also put forward higher and higher requirements for data reliability and storage system response time.

[0003] Currently, more and more storage systems use redundant array of independent devices (RAID) to provide storage with data redundancy. In the traditional solution, when a node writes to a stripe in the RAID, it needs to lock the stripe to prevent access conflicts from other nodes. However, this has an impact on the performance of the RAID. Summary of the invention

[0004] Embodiments of the present disclosure provide a solution for storage management.

[0005] According to a first aspect of the present disclosure, a storage management method is proposed. The method includes: receiving a write request from a requesting node to write target data to a first target storage space in a redundant array of independent disks RAID, the RAID is associated with a plurality of nodes and includes a stripe, the stripe includes a data storage space for storing data and a check storage space for storing a plurality of check values ​​corresponding to the plurality of nodes, the first target storage space is at least a part of the data storage space of the stripe; if a storage device associated with the first target storage space has not failed, obtaining the first data stored in the first target storage space and the first check value stored in the check storage space corresponding to the requesting node; determining a target check value based on the target data, the first data and the first check value; and updating the stripe using the target data and the target check value.

[0006] According to a second aspect of the present disclosure, an electronic device is provided. The device includes: at least one processing unit; at least one memory, the at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, make the device perform an action, the action including: receiving a write request from a requesting node to write target data to a first target storage space in a redundant array of independent disks RAID, the RAID is associated with a plurality of nodes and includes a stripe, the stripe includes a data storage space for storing data and a check storage space for storing a plurality of check values ​​corresponding to the plurality of nodes, the first target storage space is at least a part of the data storage space of the stripe; if the storage device associated with the first target storage space does not fail, obtaining the first data stored in the first target storage space and the first check value stored in the check storage space corresponding to the requesting node; determining the target check value based on the target data, the first data and the first check value; and updating the stripe using the target data and the target check value. .

[0007] In a third aspect of the present disclosure, a computer program product is provided. The computer program product is stored in a non-transitory computer storage medium and includes machine executable instructions, which, when executed in a device, cause the device to perform any step of the method described in the first aspect of the present disclosure.

[0008] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the present disclosure, nor is it intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The above and other objects, features and advantages of the present disclosure will become more apparent through a more detailed description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, wherein like reference numerals generally represent like components throughout the exemplary embodiments of the present disclosure.

[0010] Figure 1 A schematic diagram illustrating an exemplary environment in which embodiments of the present disclosure may be implemented;

[0011] Figure 2 A flowchart illustrating a process of storage management according to an embodiment of the present disclosure is shown;

[0012] Figure 3 A schematic diagram of storage management according to an embodiment of the present disclosure is illustrated;

[0013] Figure 4 A schematic diagram illustrating error handling according to an embodiment of the present disclosure is illustrated;

[0014] Figure 5 A schematic diagram of storage management according to another embodiment of the present disclosure is illustrated;

[0015] Figure 6 A schematic diagram illustrating storage management according to yet another embodiment of the present disclosure; and

[0016] Figure 7 A schematic block diagram of an example device that may be used to implement embodiments of the present disclosure is illustrated. DETAILED DESCRIPTION

[0017] The preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the preferred embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.

[0018] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0019] In a RAID-based storage system, a RAID may include storage blocks from multiple storage disks, and multiple storage disks may also constitute multiple independent RAIDs. In the RAID-based data recovery process, other storage blocks in the same RAID may be used to recover the data of the target storage block.

[0020] As discussed above, according to the traditional solution, when a stripe in a RAID is written by a node, the node not only needs to modify the data portion it writes, but also needs to modify the corresponding checksum. In the traditional solution, a stripe usually has only one checksum, so the node needs to lock the entire stripe during the writing process to prevent other nodes from accessing the data in the stripe. However, some writes often only target part of the data in the stripe, and such locking will affect the performance of the RAID.

[0021] According to an embodiment of the present disclosure, a storage management scheme is provided. In the scheme, when a write request for writing target data to a first target storage space in a RAID is received from a requesting node, it is determined whether a storage device associated with the first target storage space has not failed. If the storage device associated with the first target storage space has not failed, the first data stored in the first target storage space and the first check value corresponding to the requesting node stored in the check storage space are obtained. Subsequently, a target check value is determined based on the target data, the first data, and the first check value, and the stripe is updated using the target data and the target check value.

[0022] Based on this approach, the embodiments of the present disclosure can allocate corresponding check values ​​to different nodes. This makes it unnecessary for a single node to lock other data spaces and other check values ​​when performing partial writes. Furthermore, the embodiments of the present disclosure can allow other nodes to execute write or read requests for other data spaces in parallel, thereby improving the efficiency of the storage system.

[0023] Hereinafter, aspects of the present disclosure will be described with reference to the accompanying drawings.

[0024] Figure 1 An example environment 100 is shown in which embodiments of the present disclosure may be executed. Figure 1 As shown, the environment 100 includes a storage management device 120 configured to manage a RAID 130 coupled thereto. In addition, the storage management device 120 may also be coupled to one or more nodes 110-1, 110-2 to 110-N (individually or collectively referred to as nodes 110) to receive access requests for the RAID 130 from the nodes 110.

[0025] Traditionally, RAID 130 can be organized into multiple stripes, and a stripe can span multiple storage devices. For example, in a traditional 4+1 RAID 5, a stripe can be associated with 5 different storage devices to store data in 4 storage devices and store a check value in 1 storage device.

[0026] like Figure 1 As shown, unlike the traditional 4+1 RAID 5, the stripe 140 in RAID 130 can span 6 different storage devices, and 4 storage devices (storage devices 154, 156, 158 and 160) are used to store data, and 2 storage devices (storage devices 152 and 162) are used to store check values.

[0027] In some implementations, the check values ​​may correspond one-to-one to the plurality of nodes 110. For example, the check value PA may correspond to the node 110-1, and the check value PB may correspond to the node 110-2. It should be understood that Figure 1 The specific RAID types and the number of check values ​​shown in are merely illustrative. Those skilled in the art will appreciate that a corresponding number of check values ​​may be set for any appropriate RAID type based on the number of nodes.

[0028] By setting multiple check values ​​in a stripe, the embodiments of the present disclosure can allow parallel access to the same stripe. Figure 2-Figure 5 To describe the access process of the RAID structure based on multiple check values.

[0029] Figure 2 FIG. 2 is a flowchart of a process 200 for storage management according to some embodiments of the present disclosure. The process 200 may be performed by, for example Figure 1 It is implemented by the storage management device 120 shown in FIG.

[0030] like Figure 2 As shown, in box 202, the storage management device 120 receives a write request from a requesting node to write target data to a first target storage space in an independent disk redundant array RAID 130, wherein the RAID 130 is associated with multiple nodes 110 and includes a stripe 140, the stripe 140 includes a data storage space for storing data and a check storage space for storing multiple check values ​​corresponding to the multiple nodes, and the first target storage space is at least a portion of the data storage space of the stripe.

[0031] The following will be combined Figure 3 To describe the process of block 202, Figure 3 Schematic diagram 300 of storage management according to an embodiment of the present disclosure is shown. Figure 3 As shown, the storage management device 120 may, for example, receive a request from a requesting node (e.g., Figure 1 The node 110-1 in the storage unit 110 receives a write request. The write request may be used to write target data "D1'" and "D2'" into corresponding target storage spaces 320-2 and 330-3.

[0032] like Figure 3 As shown, the stripe 140 includes four data storage spaces 320-1, 320-2, 320-3 and 320-4 for storing data. In addition, the stripe 140 also includes a check storage space 310-1 for storing a check value PB and a check storage space 310-2 for storing a check value PA.

[0033] Additionally, check value "PA" may be associated with node 110-1, and check value "PB" may be associated with node 120-1. When stripe 140 is initialized, all data storage space and check storage space in stripe 140 may be set to initial values ​​(eg, 0).

[0034] In block 204, the storage management device 120 determines whether a storage device associated with the first target storage space fails. If the storage device does not fail, the process 200 proceeds to block 206. In block 206, the storage management device 120 obtains the first data stored in the first target storage space and the first check value corresponding to the requesting node stored in the check storage space.

[0035] It should be understood that the storage device described herein that has not failed may refer to the entire storage disk corresponding to the storage space not failing, or to the physical storage block corresponding to the storage space not failing. The storage management device 120 may obtain the operation information of the storage disk corresponding to the RAID 130 to determine whether the corresponding storage device has failed.

[0036] continue Figure 3 In the example of , the storage management device 120 can determine that the storage device 156 corresponding to the storage space 320-2 and the storage device 158 corresponding to the storage space 320-3 have not failed. Subsequently, the storage management device 120 can obtain the first data "D1" and "D2" stored in the storage space 320-2, and obtain the first verification value "PA" corresponding to the node 110-1 stored in the verification storage space 310-2.

[0037] Continue to refer Figure 2 At block 208, the storage management device 120 determines a first target check value based on the target data, the first data, and the first check value. In some implementations, the storage management device 120 may determine the target check value based on an exclusive-OR operation of the target data, the first data, and the first check value.

[0038] exist Figure 3 In the example of , the storage management device 120 can determine the first target check value "PA1" based on the XOR operation of the target data "D1'" and "D2'", the first data "D1" and "D2", and the first check value "PA". The first target check value "PA1" can be determined according to formula (1):

[0039] PA1=D1'⊕D2'⊕D1⊕D2⊕PA (1)

[0040] Where ⊕ represents the exclusive OR operation.

[0041] Continue to refer Figure 2 In block 210, the storage management device 120 updates the stripe using the target data and the target check value. Specifically, the storage management device 120 may write the target data to the first target storage space and replace the first check value with the first target check value.

[0042] continue Figure 3 For example, the storage management device 120 may write the target data "D1'" and "D2'" into the corresponding storage spaces 320-2 and 320-3, and write the determined first target check value "PA1" into the check storage space 310-2 to replace the first check value "PA".

[0043] In the above process, the storage management device 120 does not need to lock the unaccessed data storage space and check storage space of other nodes. Figure 3 In the example, other nodes 110 can still perform read or write operations on the data storage space 320 - 1 and / or 320 - 4 .

[0044] For example, another node 110 - 2 may write to the data storage space 320 - 1 in parallel and update the check value “PB” corresponding to the node 110 - 1 based on the same manner as the process 200 .

[0045] Based on the method discussed above, the embodiments of the present disclosure can allow different nodes to initiate access requests to different data storage spaces of the same strip in parallel without conflicts by setting multiple check values ​​associated with different nodes. In this way, the performance of RAID can be improved.

[0046] In some implementations, an error may occur when the storage management device 120 writes target data to the target storage space. Figure 4 A schematic diagram 400 of error handling according to an embodiment of the present disclosure is shown.

[0047] like Figure 4 As shown, the target storage space 320-2 and the target storage space 320-3 have been partially updated, but the writing of the target data fails. In this case, the storage management device 120 may redetermine the second target check value PA2.

[0048] In some implementations, the storage management device 120 may obtain the second data from other data storage spaces in the stripe except the first target storage space. Figure 4 As shown, the storage management device 120 can obtain data “D0” in the data storage space 320 - 1 and data “D3” in the data storage space 320 - 4 .

[0049] Additionally, the storage management device 120 may determine a second target check value based on the second data and the target data. Figure 4As shown, the storage management device 120 can determine the second target check value "PA2" based on the XOR operation of the target data "D1'" and "D2'" and the data "D0" in the data storage space 320-1 and the data "D3" in the data storage space 320-4. The second target check value "PA2" can be determined, for example, according to formula (2):

[0050] PA1=D1'⊕D2'⊕D0⊕D3 (2)

[0051] In some implementations, the storage management device 120 may re-update the stripe 140 using the target data and the second target check value. Figure 4 As an example, the storage management device 120 may continue to write the target data “D1′” and “D2′” to the target storage spaces 320-2 and 320-3, and write the re-determined second target check value “PA2” to the check storage space 310-2.

[0052] In some implementations, in order to ensure that the XOR value of all stored data and all check data is 0, the storage management device 120 may also set the check value associated with other nodes among the multiple check values ​​to an initial value. For example, the storage management device 120 may set the check value "PB" stored in the check storage space 310-1 to 0.

[0053] In some implementations, in the event of a failure, the storage management device 120 needs to lock the stripe to prevent other nodes from modifying other verification data or the second data.

[0054] In some implementations, if a storage device associated with other data storage spaces in stripe 140 other than the first target storage space fails, the storage management device 120 may record the target data and the first checksum in a log before completing the update of stripe 140. In this way, even if another additional storage device fails, the storage management device 120 can recover the data through the log information, thereby ensuring the security of the data.

[0055] Continue to refer Figure 2 If it is confirmed in block 204 that the storage device associated with the first target storage space fails, the process 200 proceeds to block 212. In block 212, the storage management device 120 may obtain the third data from other data storage spaces in the stripe except the first target storage space. Figure 5 To describe the process of block 212, Figure 5 A schematic diagram 500 of storage management according to yet another embodiment of the present disclosure is shown.

[0056] like Figure 5As shown, the storage management device 120 may, for example, receive a request from the node 110-1 to write the target data "D1'" into the target storage space 520-2. The storage management device 120 may, for example, determine that a storage device associated with the target storage space 520-2 fails, and may obtain the data "D0" in the data storage space 520-1, the data "D2" in the data storage space 520-3, and the data "D3" in the data storage space 520-4.

[0057] In block 214, the storage management device 120 may determine a third target check value based on the second data and the target data. Specifically, the storage management device 120 may determine the third target check value based on an exclusive OR operation of the second data and the target data. Figure 5 For example, the storage management device 120 may determine the third target check value "PA3" based on the data "D0" in the storage space 520-1, the data "D2" in the data storage space 520-3, the data "D3" in the data storage space 520-4, and the target data "D1'". The third target check value "PA3" may be determined, for example, according to formula (3):

[0058] PA3=D1'⊕D0⊕D2⊕D3 (3)

[0059] At block 216, the storage management device 120 may update the stripe using the target data and the third target check value. Figure 5 In the example of , the storage management device 120 may write the target data “ D1 ′” to the storage space where no failure has occurred, and write the third target check value to the check storage space 510 - 2 , thereby completing the update of the stripe 140 .

[0060] In some implementations, in order to ensure that the XOR value of all stored data and all check data is 0, the storage management device 120 may also set the check value associated with other nodes among the multiple check values ​​to an initial value. For example, after completing the writing of the target data and the third target check value, the storage management device 120 may set the check value "PB" stored in the check storage space 310-1 to 0.

[0061] In some implementations, in order to prevent data loss caused by failure of other storage devices, the storage management device 120 may also record the target data and the first check value in a log before completing the update of the stripe 140 .

[0062] In some implementations, the storage management device 120 may also respond to the read request. Figure 6 A schematic diagram 600 of storage management according to yet another embodiment of the present disclosure is shown.

[0063] like Figure 6 As shown, the storage management device 120 may receive a read request to read data from the second target storage space of the stripe. For example, the storage management device 120 may receive an exclusive request from the node 110-1 to read data from the data storage space 620-2 in the stripe 140.

[0064] In some implementations, if a storage device associated with the second target storage space fails, the storage management device 120 may obtain the fourth data from other data storage spaces in the stripe 140 except the second target storage space. Figure 6 As an example, the storage management device 120 may obtain data “D0” in the data storage space 620 - 1 , data “D2” in 620 - 3 , and data “D3” in 620 - 4 , as well as a plurality of check values ​​“PA” and “PB”.

[0065] In some implementations, the storage management device 120 may then restore the data associated with the second target storage space based on the fourth data and the plurality of check values, and provide the restored data as a response to the read request. Figure 6 For example, the storage management device 120 can obtain the data "D0" in the data storage space 620-1, the data "D2" in 620-3, and the data "D3" in 620-4, as well as multiple check values ​​"PA" and "PB" to restore the data "D1" stored in the data storage space 620-2. The data "D1" can be determined, for example, according to formula (4):

[0066] D1=PA⊕PB⊕D0⊕D2⊕D3 (4)

[0067] It should be understood that the data reconstruction process is similar to the data recovery process, and data in other data storage spaces and multiple check values ​​can be used to reconstruct data. The specific process will not be described in detail here.

[0068] Figure 7 A schematic block diagram of an example device 700 that can be used to implement an embodiment of the present disclosure is shown. For example, the storage management device 120 according to an embodiment of the present disclosure can be implemented by the device 700. As shown in the figure, the device 700 includes a central processing unit (CPU) 701, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 702 or computer program instructions loaded from a storage unit 708 into a random access memory (RAM) 703. In the RAM 703, various programs and data required for the operation of the device 700 can also be stored. The CPU 701, ROM 702, and RAM 703 are connected to each other via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.

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

[0070] The various processes and processing described above, such as method 200 and / or method 700, may be performed by processing unit 701. For example, in some embodiments, process 200 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage unit 708. In some embodiments, part or all of the computer program may 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 process 200 described above may be performed.

[0071] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.

[0072] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be interpreted as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.

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

[0074] The computer program instructions for performing the operation of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state 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 "C" language or similar programming languages. Computer-readable program instructions may be executed completely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of 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., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be customized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.

[0075] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.

[0076] 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 device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0077] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are 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 implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0078] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or action, or can be implemented with a combination of special hardware and computer instructions.

[0079] The embodiments of the present disclosure have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and changes will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A storage management method, comprising: receiving a write request from a requesting node to write target data to a first target storage space in a redundant array of independent disks RAID, the RAID being associated with a plurality of nodes and comprising a stripe, the stripe comprising a data storage space for storing data and a plurality of check storage spaces for storing a plurality of check values ​​corresponding to the plurality of nodes, the first target storage space being at least a portion of the data storage space of the stripe; If the storage device associated with the first target storage space does not fail, obtaining first data stored in the first target storage space and a first check value corresponding to the requesting node stored in a first check storage space among the plurality of check storage spaces; determining a target check value based on the target data, the first data, and the first check value; updating the stripe using the target data and the target check value; as well as Before completing the update of the stripe, the target data and the first check value are recorded in a log.

2. The method of claim 1 , wherein updating the stripe using the target data and the target check value comprises: Writing the target data into the first target storage space; as well as The first check value is replaced with a first target check value.

3. The method according to claim 2, further comprising: If the writing of the target data fails and the first target storage space has been partially updated, determining a second target check value; as well as The stripe is re-updated using the target data and the second target check value.

4. The method of claim 3, wherein determining the second target check value comprises: Acquire second data from other data storage spaces in the stripe except the first target storage space; as well as Based on the second data and the target data, the second target check value is determined.

5. The method according to claim 3, further comprising: The check values ​​associated with other nodes among the multiple check values ​​are set as initial values.

6. The method according to claim 1, wherein the target check value is a first target check value, the method further comprising: If a storage device associated with the first target storage space fails, obtaining third data from other data storage spaces in the stripe except the first target storage space; Determining a third target check value based on the third data and the target data; as well as The stripe is updated using the target data and the third target check value.

7. The method according to claim 6, further comprising: The check values ​​associated with other nodes among the multiple check values ​​are set as initial values.

8. The method according to claim 1, wherein recording the target data and the first check value in the log comprises: Due to a failure of a storage device associated with other data storage spaces in the stripe except the first target storage space, the target data and the first check value are placed in the log before completing the update of the stripe.

9. The method according to claim 1, further comprising: receiving a read request to read data from a second target storage space of the stripe; If a storage device associated with the second target storage space fails, obtaining fourth data from other data storage spaces in the stripe except the second target storage space; restoring data in the second target storage space based on the fourth data and the check value; as well as The recovered data is provided in response to the read request.

10. The method of claim 1, wherein the plurality of nodes includes the requesting node and a second node; wherein the plurality of check values ​​corresponding to the plurality of nodes include the first check value corresponding to the requesting node and the second check value corresponding to the second node; and Wherein updating the stripe using the target data and the target check value comprises replacing the first check value with the target check value without changing the second check value.

11. The method according to claim 1, further comprising: The target data is recovered from the log after a storage device of the RAID fails.

12. An electronic device comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the apparatus to perform actions comprising: receiving a write request from a requesting node to write target data to a first target storage space in a redundant array of independent disks RAID, the RAID being associated with a plurality of nodes and comprising a stripe, the stripe comprising a data storage space for storing data and a plurality of check storage spaces for storing a plurality of check values ​​corresponding to the plurality of nodes, the first target storage space being at least a portion of the data storage space of the stripe; If the storage device associated with the first target storage space does not fail, obtaining first data stored in the first target storage space and a first check value corresponding to the requesting node stored in a first check storage space among the plurality of check storage spaces; determining a target check value based on the target data, the first data, and the first check value; updating the stripe using the target data and the target check value; and Before completing the update of the stripe, the target data and the first check value are recorded in a log.

13. The apparatus of claim 12, wherein updating the stripe with the target data and the target check value comprises: Writing the target data into the first target storage space; as well as The first check value is replaced with a first target check value.

14. The apparatus of claim 13, wherein the actions further comprise: If the writing of the target data fails and the first target storage space has been partially updated, determining a second target check value; as well as The stripe is re-updated using the target data and the second target check value.

15. The apparatus of claim 14, wherein determining the second target check value comprises: Acquire second data from other data storage spaces in the stripe except the first target storage space; as well as Based on the second data and the target data, the second target check value is determined.

16. The apparatus of claim 14, the actions further comprising: The check values ​​associated with other nodes among the multiple check values ​​are set as initial values.

17. The device according to claim 12, wherein the target check value is a first target check value, and the actions further include: If a storage device associated with the first target storage space fails, obtaining third data from other data storage spaces in the stripe except the first target storage space; Determining a third target check value based on the third data and the target data; as well as The stripe is updated using the target data and the third target check value.

18. The apparatus of claim 17, the actions further comprising: The check values ​​associated with other nodes among the multiple check values ​​are set as initial values.

19. The device according to claim 12, wherein recording the target data and the first check value in the log comprises: Due to a failure of a storage device associated with other data storage spaces in the stripe except the first target storage space, the target data and the first check value are placed in the log before completing the update of the stripe.

20. The apparatus of claim 12, the actions further comprising: receiving a read request to read data from a second target storage space of the stripe; If a storage device associated with the second target storage space fails, obtaining fourth data from other data storage spaces in the stripe except the second target storage space; restoring data in the second target storage space based on the fourth data and the check value; as well as The recovered data is provided in response to the read request.

21. A computer program product stored in a non-transitory computer storage medium and comprising machine executable instructions which, when executed in a device, cause the device to perform the method according to any one of claims 1-11.

Citation Information

Patent Citations

  • System and method for tolerating multiple storage device failures in a storage system with constrained parity in-degree

    US20060074995A1

  • Storage system and remote copy system restoring data using journal

    US20080222214A1

  • Data processing system using high availability disk arrays for handling power failure conditions during operation of the system

    US5452444A