A method and system for controlling access to resources of a multi-control storage system
By dividing LUN and RAID spaces into multiple subspaces and stripes, and processing read/write requests and background tasks concurrently on multiple nodes, the problems of long storage system reconstruction time and data loss are solved, thereby improving the performance and reliability of storage devices.
Patent Information
- Application Number
- CN202310116966.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-15
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2043-02-15
AI Technical Summary
Existing storage systems are prone to data loss due to long reconstruction times and disk failures, making them unable to meet the demands for high concurrency and fast data response.
The LUN space and RAID space are divided into multiple subspaces and stripes, and allocated according to the number of nodes. Through multi-path software, read and write requests and RAID background tasks are split and processed on multiple nodes to achieve multi-node concurrent processing.
It improves the read/write performance and RAID reconstruction rate of storage devices, reduces the probability of disk failure before reconstruction is complete, and enhances the reliability of multi-controller storage systems.
Smart Images

Figure CN116301599B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of storage technology, specifically to a method and system for accessing resources in a multi-controller storage system. Background Technology
[0002] Currently, with the development of the digital economy, my country has entered an accelerated stage of digital transformation. Data has become an undisputed key production factor, exhibiting an explosive growth trend. To adapt to the high concurrency surges of emerging businesses and the demand for faster data response times, improving the performance of storage devices has become a research hotspot. With the research and development of storage devices, disk capacity has increased from tens of gigabytes to several terabytes, but the read / write speed has grown very slowly. For RAID (Redundant Arrays of Independent Drives), data reliability is not guaranteed during the reconstruction process. If a disk fails before reconstruction is complete, data loss will occur and is irrecoverable. Therefore, for a storage system, the most important indicator of its reliability is that its RAID reconstruction time should be as short as possible, thereby reducing the probability of disk failure before reconstruction is complete.
[0003] Existing technologies suffer from several problems, including: inadequate performance of current storage vendors' configurations to meet data storage requirements; long reconstruction times; and a high risk of data loss due to disk failures during reconstruction. Therefore, there is an urgent need for a storage method that can improve the reliability of multi-controller storage systems. Summary of the Invention
[0004] To address at least one of the problems mentioned in the background art, this application provides a method and system for accessing resources in a multi-controller storage system. This method and system can distribute host services to all nodes in the cluster, enabling RAID background tasks to be executed concurrently on all nodes in the cluster. RAID background tasks can be allocated to LUN spaces without stopping or starting them, greatly improving the performance of storage devices and the RAID reconstruction rate, thereby enhancing the reliability of multi-controller storage devices.
[0005] The specific technical solutions provided in this application are as follows:
[0006] Firstly, a method for accessing resources in a multi-controller storage system is provided, the method comprising:
[0007] Obtain the LUN space and divide the LUN space into multiple subspaces;
[0008] The subspace is allocated to the home nodes according to the number of home nodes;
[0009] The system receives read and write requests from the server and splits these requests to the home nodes, enabling multiple home nodes to process the read and write requests simultaneously.
[0010] In one specific embodiment, the method further includes:
[0011] Obtain the RAID space and divide the RAID space into multiple strip spaces;
[0012] The RAID metadata is stored in the corresponding strip space.
[0013] In one specific embodiment, after dividing the RAID space into multiple strip spaces, the method further includes:
[0014] Align the strip space with the subspace;
[0015] This is to ensure that the node corresponding to the strip space is consistent with the node to which the subspace belongs.
[0016] In a specific embodiment, splitting the read / write request to the home node specifically includes:
[0017] Receive the LUN space capacity and the number of home nodes;
[0018] Based on the LUN space and the number of home nodes, the read / write requests are distributed to the home nodes corresponding to the read / write requests using multipath software.
[0019] In one specific embodiment, the step of splitting the read / write request to the home node further includes:
[0020] The multi-controller storage system includes a forwarding layer;
[0021] The forwarding layer determines whether the read / write request matches the home node.
[0022] If the read / write request matches the home node, it will not be forwarded.
[0023] If the read / write request does not match the home node, the forwarding layer forwards the read / write request to the home node.
[0024] In one specific embodiment, the method further includes:
[0025] The partition space is allocated to the home node using the following formula:
[0026]
[0027] Where N is the node index; P is the location of the read / write request in the LUN space; S is the space capacity of the partition space; and M is the number of controllers.
[0028] In one specific embodiment, the method further includes:
[0029] The metadata of the RAID background tasks is stored in the corresponding spaces using the following formula:
[0030]
[0031] Where N2 is the node index; P2 is the location of the background task in the RDIA space; S2 is the space capacity of the strip space; and M is the number of controllers.
[0032] Secondly, a system for accessing resources of a multi-controller storage system is provided, the system comprising:
[0033] The first partitioning module is used to obtain the LUN space and divide the LUN space into multiple subspaces.
[0034] The allocation module is used to allocate the subspace to the home nodes according to the number of home nodes;
[0035] The second partitioning module is used to receive read and write requests from the server and split the read and write requests to the home nodes so that multiple home nodes can process the read and write requests simultaneously.
[0036] Thirdly, an electronic device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor performs the following steps when executing the computer program:
[0037] Step A: Obtain the LUN space and divide the LUN space into multiple subspaces;
[0038] Step B: Allocate the subspace to the home nodes according to the number of home nodes;
[0039] Step C: Receive read / write requests from the server and split the read / write requests to the home nodes so that multiple home nodes can process the read / write requests simultaneously.
[0040] Fourthly, a computer-readable storage medium is provided, on which a computer program is stored, wherein the computer program, when executed by a processor, performs the following steps:
[0041] Step A: Obtain the LUN space and divide the LUN space into multiple subspaces;
[0042] Step B: Allocate the subspace to the home nodes according to the number of home nodes;
[0043] Step C: Receive read / write requests from the server and split the read / write requests to the home nodes so that multiple home nodes can process the read / write requests simultaneously.
[0044] The embodiments of this application have the following beneficial effects:
[0045] 1. The scheme in this application embodiment first obtains the LUN space, divides the LUN space into multiple sub-spaces, that is, divides the LUN space into smaller sub-space units, and then allocates the sub-spaces to the home nodes according to the number of home nodes. It receives read and write requests from the server and splits the read and write requests to the home nodes so that multiple home nodes can process them simultaneously. By dividing the LUN space into multiple parts through the above scheme, each controller processes the read and write requests belonging to its own LUN space. The host multipath software senses the number of controllers and calculates the node to which the read and write request belongs, and issues the read and write request to the home node, thereby realizing that multiple nodes can concurrently process read and write requests from the server, which greatly improves the processing capacity of read and write requests. At the same time, the RAID space is also divided into multiple parts, and each controller processes the background tasks belonging to its own RAID space, which makes the processing speed of background tasks multiply. Attached Figure Description
[0046] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0047] Figure 1 A schematic diagram illustrating a method for accessing resources in a multi-controller storage system according to this application;
[0048] Figure 2 This diagram illustrates the alignment process of the strip space and subspace according to this application.
[0049] Figure 3 A schematic diagram of an access system for multi-controller storage system resources according to this application is shown;
[0050] Figure 4 A schematic diagram of an electronic device is shown. Detailed Implementation
[0051] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0052] As described in the background section, with the development of the digital economy, my country has entered an accelerated stage of digital transformation. Data has become an undeniably key production factor, exhibiting an explosive growth trend. To adapt to the high concurrency surges of emerging businesses and the demand for faster data response times, improving the performance of storage devices has become a research hotspot. With the research and development of storage devices, disk capacity has increased from tens of GB to several TB, but the read / write speed has grown very slowly. Existing storage vendors' performance settings cannot meet data storage requirements, resulting in long reconstruction times and the risk of disk failures causing data loss during reconstruction. Based on these problems, this application proposes a method and system for accessing resources in a multi-controller storage system. This method distributes host services to all nodes in the cluster, enabling simultaneous reading / writing processing and RAID background tasks on multiple nodes, thus significantly increasing the processing speed of background tasks.
[0053] Example 1
[0054] A method for accessing resources in a multi-controller storage system, such as Figure 1 The method includes the following steps:
[0055] Step S1: Obtain the LUN space and divide the LUN space into multiple subspaces.
[0056] Taking a dual-controller storage system as an example, a dual-controller storage system includes a primary controller and a backup controller, as well as a back-end disk array shared by the two controllers. The primary controller's first cache and the backup controller's second cache serve as backups for each other. Dual-controller arrays can operate in two modes: primary / backup and active-active. In primary / backup mode, the two controllers are designated as the primary controller and the backup controller. Clients access the array through the primary controller, and the backup controller monitors the primary controller's status in real time via heartbeat signals. When the primary controller fails, the backup controller actively takes over the primary controller's operations and synchronizes the backed-up data to the SSD. In active-active mode, clients can access the array through either controller. The two controllers back up each other's caches and simultaneously monitor each other's status. When one controller fails, the other takes over the data operations and writes the cached data to the SSD in real time.
[0057] LUN spaces have no owner node. A single LUN space is divided into segments, and these segments are then distributed across different nodes. Within the cluster, all nodes can receive read and write requests from the host. The host then distributes these requests to the corresponding owner node, enabling concurrent processing across multiple nodes and thus improving the read and write request handling capabilities of a multi-controller storage system. Specifically, the LUN space is divided into smaller segments, with a default segment size of 32MB.
[0058] Specifically, a multi-controller storage system includes at least three layers: the Drive layer, the RAID layer, and the LUN layer. The Drive layer consists of several Drive hard drives, including mechanical hard drives or solid-state drives. These hard drives form a RAID (Redundant Array of Independent Drives). Multiple RAIDs can be added to the storage pool, and multiple LUNs can also be created. The RAID is added to the Pool, where the RAID space is composed of several extents. Each RAID space can be composed of a different number of extents. The default extent unit is 1GB, but it can also be set to 2GB or 4GB, etc. Then, extents are selected to form LUNs according to a certain algorithm. A cache space can be configured for the LUN. When the IO reaches the cache space, it is considered successful and returns directly.
[0059] Step S2: Allocate the subspace to the home nodes according to the number of home nodes.
[0060] In a specific embodiment, the host multipath software calculates the home node for read / write requests based on the LUN space capacity and number of controllers reported by the storage system, and allocates the subspace to the home node using the following formula (1):
[0061]
[0062] Where N is the node index; P is the location of the read / write request in the LUN space; S is the space capacity of the partition space; and M is the number of controllers.
[0063] Specifically, the space capacity of the partition is preset to 32MB. The number of controllers is determined according to the type of storage system: 2 controllers for a dual-controller storage system, 4 controllers for a quad-controller storage system, and 8 controllers for an octa-controller storage system.
[0064] Step S3: Receive read / write requests from the server and split the read / write requests to the home nodes so that multiple home nodes can process the read / write requests simultaneously.
[0065] In a specific embodiment, splitting the read / write request to the home node specifically includes:
[0066] Receive the LUN space capacity and the number of home nodes;
[0067] Based on the LUN space and the number of home nodes, the read / write requests are distributed to the home nodes corresponding to the read / write requests using multipath software.
[0068] In one specific embodiment, the step of splitting the read / write request to the home node further includes:
[0069] The multi-controller storage system includes a forwarding layer;
[0070] The forwarding layer determines whether the read / write request matches the home node.
[0071] If the read / write request matches the home node, it will not be forwarded.
[0072] If the read / write request does not match the home node, the forwarding layer forwards the read / write request to the home node.
[0073] Specifically, taking a four-controller storage system as an example, the host and the multi-controller storage system are connected via FC or IP network. The host is configured with multipath software, and the four-controller storage system includes four nodes: NODE1, NODE2, NODE3, and NODE4. The multipath software communicates with all four nodes to forward I / O to the corresponding nodes. The multipath software distributes I / O to the corresponding controllers based on the LUN space size reported by the storage and the number of controllers. In the storage system, if the host fails to correctly distribute I / O to the corresponding controller, the forwarding layer forwards the I / O to the correct controller. The storage system specifically includes a forwarding layer, a caching layer, a LUN layer, a RAID layer, and a DRIVE layer. These layers can interact to send and receive data. To achieve lock-free RAID technology and double the reconstruction rate to improve storage performance reliability, the RAID space is divided, specifically including:
[0074] Obtain the RAID space and divide the RAID space into multiple strip spaces;
[0075] The metadata of the RAID background tasks is stored in the corresponding spaces.
[0076] In one specific embodiment, after dividing the RAID space into multiple strip spaces, the method further includes:
[0077] Align the strip space with the subspace;
[0078] This is to ensure that the node corresponding to the strip space is consistent with the node to which the subspace belongs.
[0079] Specifically, the RAID striping and LUN segment alignment scheme ensures that the stripe ownership node remains unchanged before and after RAID space is allocated to LUNs. Therefore, the upper-layer I / O and background task processing nodes of the same stripe on the RAID are consistent, and the background task processing nodes of each stripe are also consistent, eliminating controller locks between nodes, and allowing each node to concurrently process host I / O and RAID background tasks.
[0080] like Figure 2 As shown, the LUN space is divided into multiple subspaces, specifically including "LUN-segment0, LUN-segment1, LUN-segment2, LUN-segment3, LUN-segment4, LUN-segment5, LUN-segment6, LUN-segment7". 7…, the RAID space is divided into multiple strip spaces, specifically including “RD-segment0, RD-segment1, RD-segment2, RD-segment3, RD-segment4, RD-segment5, RD-segment6, RD-segment7…”; the strip spaces are aligned with the sub-spaces, that is, when the LUN space is divided into 7 parts, the RAID space is also divided into 7 parts, and LUN-segment0 in the LUN space corresponds to RD-segment0 in the RAID space, and LUN-segment1 corresponds one-to-one with RD-segment1. Since the size of each space in LUN-Segment0 to LUN-Segment7 is 32MB, in order to achieve alignment between the LUN space and the RAID space, the RAID space also needs to be divided into 7 parts. Therefore, the RD-segment0 to RD-segment7 after division in the RAID may be larger than 32MB.
[0081] The RAID module divides the RAID space into multiple segments based on whether the area has already been allocated to LUN space and whether the LUN is being destroyed. Since the RAID space is composed of multiple stripe spaces, the stripes and Cdisk-Segments need to be aligned. Thus, the RAID-Segment may be greater than or equal to the Cdisk-Segment. The RAID-SegmentSize is calculated as: RAID-SegmentSize = (LUN-SegmentSize + StripeSize - 1) / StripeSize * StripeSize. The RAID-ExtentSize may also be greater than or equal to the LUN-ExtentSize. Its calculation method is: RAID-ExtentSize = LUN-ExtentSize / LUN-SegmentSize * RAID-SegmentSize.
[0082] The metadata of the RAID background task is stored in the corresponding strip space using the following formula (2):
[0083]
[0084] Where N2 is the node index; P2 is the location of the background task in the RDIA space; S2 is the space capacity of the strip space; and M is the number of controllers.
[0085] Specifically, the calculation formula for allocating RAID space to its assigned node is shown above. Based on this formula, metadata for RAID background tasks can be saved to different nodes, so that each node no longer stores the entire RAID metadata, but only the metadata of its assigned RAID space. RAID has various background tasks, such as initialization, reconstruction, and inspection. For a four-controller storage system, the RAID space is divided into four parts, and background tasks are processed concurrently on four nodes to improve processing efficiency. The faster the reconstruction rate, the higher the system reliability.
[0086] Specifically, taking a four-controller storage as an example, the RAID space division formula (2) and formula (3) "LUN-lba%LUN-ExtentSize / LUN-SegmentSize%4" are equivalent. Then, it was demonstrated that formula (3) is equivalent to formula (1). Therefore, it is proven that the RAID space is consistent before and after being allocated to LUN. There is no need to stop the RAID background task before allocating it to LUN and start the background task after allocating it to LUN. The RAID background task processing node remains unchanged. Furthermore, after allocating it to LUN, the corresponding lba belonging node of RAID and LUN remains the same. Therefore, the space division scheme in this embodiment will not cause problems of inconsistent striping or inconsistent data.
[0087] The solution in this embodiment utilizes LUN space non-homing technology and a RAID and LUN space partitioning scheme to divide the RAID and LUN spaces into multiple parts. This allows the RAID metadata to be evenly distributed across multiple controllers. Each controller only handles host I / O and background tasks within its RAID stripe, eliminating the previously existing inter-controller locks. Host multipathing software distributes I / O requests to the home node. The RAID and LUN space partitioning enables multiple controllers to concurrently process host I / O, improving the read / write performance of the storage system. Dividing the RAID space into multiple parts allows multiple controllers to concurrently process background tasks, significantly increasing the background task processing speed and thus improving the reliability of the storage device.
[0088] Example 2
[0089] Corresponding to the above embodiments, this application provides an access system for resources of a multi-controller storage system, such as... Figure 3 As shown, the system includes:
[0090] The first partitioning module is used to obtain the LUN space and divide the LUN space into multiple subspaces.
[0091] The allocation module is used to allocate the subspace to the home nodes according to the number of home nodes;
[0092] The second partitioning module is used to receive read and write requests from the server and split the read and write requests to the home nodes so that multiple home nodes can process the read and write requests simultaneously.
[0093] In one specific embodiment, the system further includes: acquiring RAID space and dividing the RAID space into multiple strip spaces;
[0094] The RAID metadata is stored in the corresponding strip space.
[0095] In one specific embodiment, after dividing the RAID space into multiple strip spaces, the method further includes:
[0096] Align the strip space with the subspace;
[0097] This is to ensure that the node corresponding to the strip space is consistent with the node to which the subspace belongs.
[0098] In a specific embodiment, splitting the read / write request to the home node specifically includes:
[0099] Receive the LUN space capacity and the number of home nodes;
[0100] Based on the LUN space and the number of home nodes, the read / write requests are distributed to the home nodes corresponding to the read / write requests using multipath software.
[0101] In one specific embodiment, the step of splitting the read / write request to the home node further includes:
[0102] The multi-controller storage system includes a forwarding layer;
[0103] The forwarding layer determines whether the read / write request matches the home node.
[0104] If the read / write request matches the home node, it will not be forwarded.
[0105] If the read / write request does not match the home node, the forwarding layer forwards the read / write request to the home node.
[0106] In one specific embodiment, the system further includes:
[0107] The partition space is allocated to the home node using the following formula:
[0108]
[0109] Where N is the node index; P is the location of the read / write request in the LUN space; S is the space capacity of the partition space; and M is the number of controllers.
[0110] In one specific embodiment, the system further includes:
[0111] The metadata of the RAID background tasks is stored in the corresponding spaces using the following formula:
[0112]
[0113] Where N2 is the node index; P2 is the location of the background task in the RDIA space; S2 is the space capacity of the strip space; and M is the number of controllers.
[0114] The solution in this embodiment utilizes LUN space non-homing technology and a RAID and LUN space partitioning scheme to divide the RAID and LUN spaces into multiple parts. This allows the RAID metadata to be evenly distributed across multiple controllers. Each controller only handles host I / O and background tasks within its RAID stripe, eliminating the previously existing inter-controller locks. Host multipathing software distributes I / O requests to the home node. The RAID and LUN space partitioning enables multiple controllers to concurrently process host I / O, improving the read / write performance of the storage system. Dividing the RAID space into multiple parts allows multiple controllers to concurrently process background tasks, significantly increasing the background task processing speed and thus improving the reliability of the storage device.
[0115] Example 3
[0116] An electronic device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it performs the following steps:
[0117] Step 101: Obtain the LUN space and divide the LUN space into multiple subspaces;
[0118] Step 102: Allocate the subspace to the home nodes according to the number of home nodes;
[0119] Step 103: Receive read / write requests from the server and split the read / write requests to the home nodes so that multiple home nodes can process the read / write requests simultaneously.
[0120] In one specific embodiment, the method further includes: obtaining RAID space and dividing the RAID space into multiple strip spaces;
[0121] The RAID metadata is stored in the corresponding strip space.
[0122] In one specific embodiment, after dividing the RAID space into multiple strip spaces, the method further includes:
[0123] Align the strip space with the subspace;
[0124] This is to ensure that the node corresponding to the strip space is consistent with the node to which the subspace belongs.
[0125] In a specific embodiment, splitting the read / write request to the home node specifically includes:
[0126] Receive the LUN space capacity and the number of home nodes;
[0127] Based on the LUN space and the number of home nodes, the read / write requests are distributed to the home nodes corresponding to the read / write requests using multipath software.
[0128] In one specific embodiment, the step of splitting the read / write request to the home node further includes:
[0129] The multi-controller storage system includes a forwarding layer;
[0130] The forwarding layer determines whether the read / write request matches the home node.
[0131] If the read / write request matches the home node, it will not be forwarded.
[0132] If the read / write request does not match the home node, the forwarding layer forwards the read / write request to the home node.
[0133] In one specific embodiment, it also includes:
[0134] The partition space is allocated to the home node using the following formula:
[0135]
[0136] Where N is the node index; P is the location of the read / write request in the LUN space; S is the space capacity of the partition space; and M is the number of controllers.
[0137] In one specific embodiment, it also includes:
[0138] The metadata of the RAID background tasks is stored in the corresponding spaces using the following formula:
[0139]
[0140] Where N2 is the node index; P2 is the location of the background task in the RDIA space; S2 is the space capacity of the strip space; and M is the number of controllers.
[0141] The method and scheme in this embodiment, utilizing LUN space non-homing technology and RAID and LUN space partitioning scheme, divides the RAID space and LUN space into multiple parts. This allows the RAID metadata to be evenly distributed among multiple controllers. Each controller only handles host I / O and background tasks within its RAID stripe, eliminating the previously existing inter-RAID controller locks. Host multipath software distributes I / O requests to the home node. The RAID and LUN space partitioning enables multiple controllers to concurrently process host I / O, improving the read and write performance of the storage system. Dividing the RAID space into multiple parts allows multiple controllers to concurrently process background tasks, significantly increasing the background task processing speed and thus improving the reliability of the storage device.
[0142] In one embodiment, an electronic device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 4 As shown, this electronic device includes a processor, memory, network interface, and database connected via a system bus. The processor provides computing and control capabilities. The memory includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores the operating system, computer programs, and database. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The database stores data to be accessed. The network interface communicates with external terminals via a network connection. When the computer program is executed by the processor, it implements a method for accessing resources in a multi-controller storage system.
[0143] Those skilled in the art will understand that Figure 4 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the electronic device to which the present application is applied. The specific electronic device may include more or fewer components than shown in the figure, or combine certain components, or have different component arrangements.
[0144] Example 4
[0145] In one embodiment of this invention, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, performs the following steps:
[0146] Step 201: Obtain the LUN space and divide the LUN space into multiple subspaces;
[0147] Step 202: Allocate the subspace to the home nodes according to the number of home nodes;
[0148] Step 203: Receive read / write requests from the server and split the read / write requests to the home nodes so that multiple home nodes can process the read / write requests simultaneously.
[0149] In one specific embodiment, the method further includes: obtaining RAID space and dividing the RAID space into multiple strip spaces;
[0150] The RAID metadata is stored in the corresponding strip space.
[0151] In one specific embodiment, after dividing the RAID space into multiple strip spaces, the method further includes:
[0152] Align the strip space with the subspace;
[0153] This is to ensure that the node corresponding to the strip space is consistent with the node to which the subspace belongs.
[0154] In a specific embodiment, splitting the read / write request to the home node specifically includes:
[0155] Receive the LUN space capacity and the number of home nodes;
[0156] Based on the LUN space and the number of home nodes, the read / write requests are distributed to the home nodes corresponding to the read / write requests using multipath software.
[0157] In one specific embodiment, the step of splitting the read / write request to the home node further includes:
[0158] The multi-controller storage system includes a forwarding layer;
[0159] The forwarding layer determines whether the read / write request matches the home node.
[0160] If the read / write request matches the home node, it will not be forwarded.
[0161] If the read / write request does not match the home node, the forwarding layer forwards the read / write request to the home node.
[0162] In one specific embodiment, it also includes:
[0163] The partition space is allocated to the home node using the following formula:
[0164]
[0165] Where N is the node index; P is the location of the read / write request in the LUN space; S is the space capacity of the partition space; and M is the number of controllers.
[0166] In one specific embodiment, it also includes:
[0167] The metadata of the RAID background tasks is stored in the corresponding spaces using the following formula:
[0168]
[0169] Where N2 is the node index; P2 is the location of the background task in the RDIA space; S2 is the space capacity of the strip space; and M is the number of controllers.
[0170] The solution in this embodiment utilizes LUN space non-homing technology and a RAID and LUN space partitioning scheme to divide the RAID and LUN spaces into multiple parts. This allows the RAID metadata to be evenly distributed across multiple controllers. Each controller only handles host I / O and background tasks within its RAID stripe, eliminating the previously existing inter-controller locks. Host multipathing software distributes I / O requests to the home node. The RAID and LUN space partitioning enables multiple controllers to concurrently process host I / O, improving the read / write performance of the storage system. Dividing the RAID space into multiple parts allows multiple controllers to concurrently process background tasks, significantly increasing the background task processing speed and thus improving the reliability of the storage device.
[0171] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, storage, databases, or other media used in the embodiments provided in this application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
[0172] Although preferred embodiments have been described in this application, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of the embodiments of this application.
[0173] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A method for accessing resources in a multi-controller storage system, characterized in that, The method includes: Obtain the LUN space and divide the LUN space into multiple subspaces; The subspace is allocated to the home nodes according to the number of home nodes; Receive read and write requests from the server, and split the read and write requests to the home nodes so that multiple home nodes can process the read and write requests simultaneously. The method further includes: Obtain the RAID space and divide the RAID space into multiple strip spaces; Align the strip space with the subspace to ensure that the node corresponding to the strip space is consistent with the node to which the subspace belongs. The RAID metadata is stored in the corresponding strip space.
2. The method for accessing resources in a multi-controller storage system according to claim 1, characterized in that, The step of splitting the read / write request to the belonging node specifically includes: Receive the LUN space capacity and the number of home nodes; Based on the LUN space and the number of home nodes, the read / write requests are distributed to the home nodes corresponding to the read / write requests using multipath software.
3. The method for accessing resources in a multi-controller storage system according to claim 2, characterized in that, The step of splitting the read / write request to the belonging node further includes: A multi-controller storage system includes a forwarding layer; The forwarding layer determines whether the read / write request matches the home node. If the read / write request matches the home node, it will not be forwarded. If the read / write request does not match the home node, the forwarding layer forwards the read / write request to the home node.
4. The method for accessing resources in a multi-controller storage system according to claim 1 or 3, characterized in that, The method further includes: The partition space is allocated to the home node using the following formula: ; Where N is the node index; P is the location of the read / write request in the LUN space; S is the space capacity of the partition space; and M is the number of controllers.
5. The method for accessing resources in a multi-controller storage system according to claim 1, characterized in that, The method further includes: The metadata of the RAID background tasks is stored in the corresponding spaces using the following formula: ; Where N2 is the node index; P2 is the location of the background task in the RDIA space; S2 is the space capacity of the strip space; and M is the number of controllers.
6. A system for accessing resources of a multi-controller storage system that implements the method for accessing resources of a multi-controller storage system as described in any one of claims 1-5, characterized in that, The system includes: The first partitioning module is used to obtain the LUN space and divide the LUN space into multiple subspaces. The allocation module is used to allocate the subspace to the home nodes according to the number of home nodes; The second partitioning module is used to receive read and write requests from the server and split the read and write requests to the home nodes so that multiple home nodes can process the read and write requests simultaneously.
7. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 5.
8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 5.
Citation Information
Patent Citations
Resource access method and device for multi-control storage system
CN107491270A
Data writing method
CN110413229A