Multi-control storage array, storage system, data processing method and storage medium
By adopting the 4-control storage module design and cache mirror backup technology in the multi-control storage array, the availability of loosely coupled and tightly coupled multi-control storage arrays in the case of failure is solved, and higher storage system reliability and availability are achieved.
Patent Information
- Application Number
- PCT/CN2024/121923
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-24
- Filing Date
- 2024-09-27
- Publication Date
- 2025-07-31
AI Technical Summary
The existing loosely coupled multi-controlled storage arrays and tightly coupled multi-controlled storage arrays have low availability in the event of failure, resulting in insufficient reliability and availability of the storage system.
The 4-controlled storage module design is adopted. Each group of controller pairs is connected via Ethernet, a cache unit is set and cache image backup is performed. The RDMA network is used to optimize data transmission, and the high availability and reliability of multi-controlled storage arrays are achieved.
Improves the availability and reliability of the storage array, ensuring that the storage expansion disk cabinet can still be accessed normally in the event of a controller node failure, reducing the risk of data loss, and improving data processing efficiency.
Smart Images

Figure CN2024121923_31072025_PF_FP_ABST
Abstract
Description
Multi-control storage array, storage system, data processing method and storage medium
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to the Chinese patent application filed with the China Patent Office on January 24, 2024, with application number 2024100963440, and application name “Multi-control storage array, storage system, data processing method and storage medium”, all contents of which are incorporated by reference into this application. Technical Field
[0003] The present application relates to a multi-controller storage array, a storage system, a data processing method and a storage medium. Background Art
[0004] In order to ensure high availability and high reliability, storage arrays have adopted a large number of redundancy technologies, such as controller redundancy, dual-port hard disks, power supply redundancy, fan redundancy, and so on.
[0005] Generally, a storage array with more than two controllers is called a multi-controller storage array. Increasing the number of controllers in a storage array can improve the performance of the storage system. For example, parallel processing of storage requests increases the throughput of read and write operations, and also improves the scalability and fault redundancy capabilities of the storage system.
[0006] Current multi-controller storage arrays include loosely coupled multi-controller storage arrays and tightly coupled multi-controller storage arrays. Taking 4 controllers as an example, in a loosely coupled multi-controller storage array, it includes two groups of controller pairs, each group of controller pairs includes two controller nodes, and the two controller nodes in each group of controller pairs share a back-end hard disk. However, if both controller nodes of a controller pair fail, read and write operations will not be possible on the back-end hard disk shared by the controller pair; while a tightly coupled multi-controller storage array includes multiple controller nodes, and the multiple controller nodes share a back-end hard disk. However, in a tightly coupled multi-controller storage array, the multiple controller nodes are all in the same fault domain. For example, if the chassis backplane where the multiple controller nodes are located fails, the multiple controller nodes will be unable to continue to provide normal services. Therefore, the inventors have realized that the current loosely coupled multi-controller storage arrays and tightly coupled multi-controller storage arrays still have the problem of low availability.
[0007] Summary of the Invention
[0008] In a first aspect, an embodiment of the present application provides a multi-controller storage array, the storage array including a 4-controller storage module, the 4-controller storage module including two groups of controller pairs and a storage expansion disk cabinet;
[0009] The two controller pairs are connected based on Ethernet;
[0010] Each of the two controller pairs includes two controller nodes, each controller node is connected to the storage expansion disk enclosure to provide shared access to the storage expansion disk enclosure; and
[0011] Each controller node is provided with a cache unit, wherein any controller node determines its corresponding target mirror controller node after responding to a write data request, and the cache unit of the target mirror controller node stores the cache image of the controller node.
[0012] In a second aspect, an embodiment of the present application provides a storage system based on a multi-controller storage array, the storage system including a host and the multi-controller storage array of the first aspect of the embodiment of the present application, wherein:
[0013] The host is connected to all controller nodes in the multi-controller storage array.
[0014] In a third aspect, an embodiment of the present application provides a data processing method based on a multi-controller storage array, which is applied to the storage system based on the multi-controller storage array according to the second aspect of the embodiment of the present application. The method includes:
[0015] After any controller node responds to a write data request sent by the host, it acts as the master controller node, obtains the data to be written and stores it in its own cache unit;
[0016] The main controller node determines its corresponding target mirror controller node;
[0017] The cache unit of the target mirror controller node performs cache mirror backup on the data to be written stored in the main controller node;
[0018] After the backup is completed, the master controller node sends a completion response corresponding to the write data request to the host; and
[0019] Flushes the data to be written in the cache unit of the master controller node to the storage expansion disk cabinet.
[0020] In a fourth aspect, an embodiment of the present application provides a non-volatile computer-readable storage medium, which stores computer-readable instructions, wherein when the computer-readable instructions are executed by a processor, a data processing method based on a multi-control storage array as described in the third aspect of the embodiment of the present application is executed.
[0021] The details of one or more embodiments of the present application are set forth in the accompanying drawings and the description below. Other features and advantages of the present application will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0023] FIG1 shows a schematic structural diagram of an existing dual-control storage system;
[0024] FIG2 shows a schematic diagram of the structure of an existing loosely coupled multi-control storage array;
[0025] FIG3 shows a schematic structural diagram of an existing tightly coupled multi-controller storage array;
[0026] FIG4 shows a schematic diagram of a multi-controller storage array provided in an embodiment of the present application;
[0027] FIG5 shows a schematic diagram of a multi-controller storage array provided in an embodiment of the present application;
[0028] FIG6 shows a schematic diagram of a storage system based on a multi-controller storage array provided in an embodiment of the present application;
[0029] FIG7 shows a flowchart of the steps of a data processing method based on a multi-controller storage array provided in an embodiment of the present application;
[0030] FIG8 shows a schematic diagram of cache mirror backup provided by an embodiment of the present application;
[0031] FIG9 shows a schematic diagram of a fault handling method according to an embodiment of the present application;
[0032] FIG10 shows a schematic diagram of a fault handling method according to an embodiment of the present application;
[0033] FIG11 shows a block diagram of a non-volatile computer-readable storage medium provided in an embodiment of the present application. DETAILED DESCRIPTION
[0034] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
[0035] RoCE: Remote Direct Memory Access over Converged Ethernet, a cluster network communication protocol that enables RDMA (Remote Direct Memory Access) over Ethernet.
[0036] NVMe: Non-Volatile Memory express, non-volatile memory host controller interface specification;
[0037] SSD: Solid State Disk, solid state drive;
[0038] EBOF: Ethernet Bunch of Flash, Ethernet flash cluster;
[0039] CPU: Central Processing Unit, central processing unit;
[0040] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, each embodiment of the present application will be described in detail below with reference to the accompanying drawings. However, it will be understood by those skilled in the art that in each embodiment of the present application, many technical details are proposed in order to enable the reader to better understand the present application. However, even without these technical details and various changes and modifications based on the following embodiments, the technical solutions claimed in the present application can be implemented. The division of the following embodiments is for convenience of description and should not constitute any limitation on the specific implementation of the present application. The various embodiments can be combined with each other and referenced to each other under the premise of no contradiction.
[0041] As data storage requirements become increasingly higher, redundant technologies such as controller redundancy, dual-port hard disks, power supply redundancy, and fan redundancy are widely used to improve the high availability and reliability of storage arrays.
[0042] Figure 1 shows a schematic diagram of the structure of an existing dual-controller storage system. The existing dual-controller storage system includes a host, controller A, controller B, and a disk enclosure. The host includes interface cards 1 and 2. Interface cards are HBAs (host bus adapters), which are networking and switching devices that can be plugged into a computer or mainframe. Interface card 1 is HBA1, and interface card 2 is HBA2. HBA1 and HBA2 are installed on the host to connect to the storage array that stores data.
[0043] The storage array includes two controllers, namely controller A and controller B. Each controller includes a front-end input and output controller, a central processing unit (CPU), a system hard disk, a cache, and a back-end input and output controller. Among them, the front-end input and output controller is used to connect to the host; the CPU is used to process control and business logic; the cache is a high-speed random access device placed in front of the low-speed back-end hard disk. Generally, memory is used as a cache device to improve storage performance; the back-end input and output controller is used to communicate with the hard disk in the hard disk frame and read and write the hard disk. The hard disk is used to persist the processed user data.
[0044] However, dual-controller storage arrays cannot meet higher storage requirements. Therefore, multi-controller storage arrays have emerged. Multi-controller storage arrays refer to storage arrays with more than two controllers. By increasing the number of controllers in the storage array, the storage performance, availability, and scalability of the storage array are improved. Specific benefits include:
[0045] First, increasing the number of controllers can significantly improve the storage performance of the storage array. Multiple controllers can process storage requests in parallel, thereby improving the throughput of read and write operations. This is very important for applications that require high performance, such as big data analysis, virtualization, and high-performance computing. Increasing the number of controllers allows the storage array to support more storage capacity. When enterprises need to expand storage capacity to meet growing data needs, they can simply add more disk drives and incorporate them into the storage cluster.
[0046] By increasing the number of controllers, redundancy and high availability can also be achieved. If one controller fails, other controllers can continue to process requests, thus avoiding system interruption and data loss. Multiple controllers can also be used to balance workloads. Storage requests can be distributed to different controllers to prevent a single controller from being overloaded, thereby improving system stability and performance. It also has high scalability and can gradually expand the storage cluster as needed without redesigning the entire storage architecture.
[0047] Current multi-controller storage arrays include loosely coupled multi-controller storage arrays and tightly coupled multi-controller storage arrays. This embodiment takes a four-controller storage array as an example for description.
[0048] 2 shows a schematic diagram of the structure of an existing loosely coupled multi-controller storage array. A four-controller loosely coupled multi-controller storage array includes two controller pairs, each of which includes two nodes (node 1 and node 2). The two nodes of a controller pair share a backend hard disk, and the caches of a controller pair are mirrored. However, a disadvantage of this four-controller configuration is that the backend hard disk can only be accessed by the two nodes in the same controller pair. Since the two nodes of the same controller pair are integrated together in hardware, they are prone to simultaneous failure. If both nodes of the same controller pair fail and can no longer provide external services, the four-controller storage array will lose half of its backend hard disks, seriously affecting the availability of the four-controller storage array.
[0049] 3 , which shows a schematic diagram of the structure of an existing tightly coupled multi-controller storage array. A four-controller tightly coupled multi-controller storage array includes a controller combination. The four tightly coupled nodes in the controller combination, namely node 1, node 2, node 3, and node 4, share a backend hard disk and cache. However, since the four nodes in a controller combination are all placed in the same chassis, the four controllers are in the same fault domain. When there is a single point of failure scenario in this fault domain, availability will be affected. For example, if the backplane of the chassis where the four controllers are located fails, it is possible that all four controllers will be unable to continue to provide services. At the same time, since the four controllers share cache, there is a lack of cache redundancy strategy.
[0050] Therefore, in order to improve the availability of the storage array, this embodiment provides a multi-controller storage array, which includes one or more 4-controller storage modules, each of which includes two groups of controller pairs and a storage expansion disk cabinet, and the two groups of controller pairs are connected based on Ethernet.
[0051] Any of the two controller pairs includes two controller nodes, and each controller node is connected to the storage expansion disk cabinet to share access to the storage expansion disk cabinet. That is, in a 4-controller storage module, the 4 controller nodes can share access to the same storage expansion disk cabinet. The storage expansion disk cabinet includes disks for storing data. The disk type can be customized according to the actual application requirements, and this embodiment does not impose any restrictions.
[0052] In the actual implementation process, in the 4-controller storage module, the two controller nodes in each controller pair can be hardware-integrated together. Even if the fault domains of one controller pair overlap, after a failure occurs, the other controller pair in the 4-controller storage module can still normally access the entire storage expansion disk cabinet. Unlike the loosely coupled multi-controller storage array, when both nodes of the same controller pair fail, it will not cause half of the back-end hard drives to be unable to access normally, thereby improving the availability of the multi-controller storage array.
[0053] Each controller node is provided with a cache unit. After responding to a data write request, any controller node determines its corresponding target mirror controller node. The cache unit of the target mirror controller node stores the cache image of the controller node.
[0054] The number of 4-controller storage modules in a multi-controller storage array can be selected based on actual application requirements. For example, only one 4-controller storage module can be included to obtain a 4-controller storage array. Alternatively, two 4-controller storage modules can be provided in the storage array to obtain an 8-controller storage array. In an application environment with greater storage requirements, the storage array can even be expanded to four 4-controller storage modules to obtain a 16-controller storage array.
[0055] In some embodiments, the two controller pairs of the 4-controller storage module are connected based on Ethernet. In order to reduce the latency of cache mirroring, the network connection between the two controller pairs can be connected using a remote direct memory access network, that is, based on an RDMA (Remote Direct Memory Access) network connection. The RDMA network allows direct reading and writing of the memory of one processor from the memory of another processor without occupying CPU resources, which can significantly improve data transmission performance and reduce latency.
[0056] For example, two controller pairs can be connected based on a RoCE network. The RoCE network combines the characteristics of RDMA and Ethernet switches. ROCE allows efficient direct memory access over Ethernet, thereby providing low-latency, high-throughput data transmission.
[0057] In other implementations, in addition to the RoCE network, other types of RDMA networks, such as iWARP (Internet Wide Area RDMA Protocol), can also be applied according to actual needs. iWARP is an RDMA technology based on the TCP / IP protocol (Transmission Control Protocol / Internet Protocol). In actual application, different RDMA networks can be selected according to different application requirements and corresponding network hardware, such as network cards, can be configured.
[0058] The storage expansion disk cabinet can adopt an NVMe SSD storage expansion disk cabinet based on EBOF (Ethernet Bunch of Flash), and the number of hard disks can be expanded according to actual application needs to meet storage requirements.
[0059] The cache unit can be a memory or other high-speed random access device, such as a cache. Cache is a memory hierarchy located between the CPU and the main memory. The device of the cache unit can be selected according to the needs of the actual application, and this embodiment does not impose any restrictions.
[0060] Referring to Figure 4, a schematic diagram of a multi-controller storage array provided in an embodiment of the present application is shown. The multi-controller storage array includes a group of 4-controller storage modules. The resulting storage array is a 4-controller storage array. The 4-controller storage array includes controller pair 1 and controller pair 2. Each controller pair includes two controller nodes, respectively denoted as controller node 1 and controller node 2, and each controller node includes a cache unit. Controller pair 1 and controller pair 2 are connected based on a remote direct memory access network, such as based on RoCE network interconnection. The four controller nodes are all connected to a storage expansion disk cabinet such as EBOF, so that the four controller nodes can all share the hard disk of the storage expansion disk cabinet.
[0061] In some embodiments, the storage array includes two 4-controller storage modules, that is, the storage array includes 4 groups of controller pairs, each group of controller pairs includes 2 controller nodes, and the resulting storage array is an 8-controller storage array; the cache unit of each controller node can be a memory or other high-speed random access device; in the 8-controller storage array, a controller pair in any 4-controller storage module is connected to a controller pair in another 4-controller storage module based on Ethernet. For example, RoCE or other types of RDMA networks can be used to improve data transmission performance and reduce latency; and the storage expansion disk cabinet can adopt an EBOF-based storage expansion disk cabinet, and the number of hard disks can be expanded according to actual application needs to meet storage requirements.
[0062] 5 , a schematic diagram of a multi-controller storage array provided in an embodiment of the present application is shown. The multi-controller storage array is an 8-controller storage array, which is composed of two groups of 4-controller storage modules, wherein the first group of 4-controller storage modules includes a controller pair 1, a controller pair 2, and a storage expansion disk cabinet 1, and the second group of 4-controller storage modules includes a controller pair 3, a controller pair 4, and a storage expansion disk cabinet 2, and the storage expansion disk cabinet can be an EBOF; a controller pair in any 4-controller storage module is connected to a controller pair of another 4-controller storage module based on a remote direct memory access network, such as a RoCE network connection, that is, the first group of 4-controller storage modules includes a controller pair 1, a controller pair 2, and a storage expansion disk cabinet 1, and the second group of 4-controller storage modules includes a controller pair 3, a controller pair 4, and a storage expansion disk cabinet 2, and the storage expansion disk cabinet can be an EBOF; a controller pair in any 4-controller storage module is connected to a controller pair in another 4-controller storage module based on a remote direct memory access network, such as a RoCE network connection, that is, the first group of 4-controller storage modules includes a controller pair 1, a controller pair 2 ... Controller pair 1 and controller pair 2 inside a group of 4-controller storage modules are connected based on the RoCE network, controller pair 3 and controller pair 4 inside the second group of 4-controller storage modules are connected based on the RoCE network, controller pair 1 of the first group of 4-controller storage modules and controller pair 3 of the second group of 4-controller storage modules are connected based on the RoCE network, controller pair 2 of the first group of 4-controller storage modules and controller pair 4 of the second group of 4-controller storage modules are connected based on the RoCE network; each controller pair includes two controller nodes, respectively denoted as controller node 1 and controller node 2, and each controller node includes one cache unit.
[0063] Although the eight-controller storage array includes two storage expansion disk cabinets, the four controller pairs are connected through the RoCE network. Therefore, if controller pair 3 fails, controller pair 1 can still access EBOF2 based on the RoCE network between controller pairs 2 and 4.
[0064] This embodiment further provides a storage system based on a multi-controller storage array, which includes a host and the multi-controller storage array of this embodiment, wherein the host is connected to all controller nodes in the multi-controller storage array.
[0065] 6 , a schematic diagram of a storage system based on a multi-controller storage array according to an embodiment of the present application is shown. Taking a four-controller storage array as an example, a host in the storage system is connected to four controller nodes.
[0066] The host is configured with a multipath management thread. Each time the host performs a read or write operation on the storage array, the multipath management thread selects a master controller node from all controller nodes for the current read or write operation.
[0067] In some implementations, the multipath management thread may use a predefined target controller node as a primary controller node.
[0068] As shown in Figure 6, controller node 1 of controller pair 1 can be used as the main controller node until controller node 1 of controller pair 1 fails, then controller node 2 of controller pair 1 can be used as the main controller node; if controller node 2 of controller pair 1 fails or after the failure of controller node 1 of controller pair 1 is recovered, controller node 1 of controller pair 1 can continue to be used as the main controller node.
[0069] In other implementations, other predefined methods may be used. For example, when controller node 2 of controller pair 1 fails, controller node 1 of controller pair 2 may continue to be polled as the main controller node. This embodiment does not impose any restrictions.
[0070] In other implementations, the multipath management thread is used to poll all controller nodes to determine the master controller node for the current read / write operation process.
[0071] For example, during the first read / write operation, controller node 1 of controller pair 1 is used as the main controller node; during the second read / write operation, controller node 2 of controller pair 1 is used as the main controller node; during the third read / write operation, controller node 1 of controller pair 2 is used as the main controller node; during the fourth read / write operation, controller node 2 of controller pair 2 is used as the main controller node; during the fifth read / write operation, controller node 1 of controller pair 1 is used as the main controller node, and the cycle continues. If the controller node polled during a read / write operation fails, the next controller node will be selected as the main controller node.
[0072] In other implementations, the multipath management thread may select a master controller node for the current read / write operation process among all controller nodes according to a preset rule.
[0073] For example, the multipath management thread obtains the current load of multiple controller nodes and selects the controller node with the smallest current load as the main controller node for the current read and write operation process; by selecting the controller node with the smallest current load, the response speed of data processing can be improved, avoiding too many processing tasks for a controller node, resulting in slow response speed or even crash and downtime.
[0074] For example, each controller node may be configured with a processed data object or business object; the multipath management thread determines the master controller node of the current read / write operation process according to the data object or business object of the current read / write operation process.
[0075] For example, controller node 1 of controller pair 1 can be set to process business object A and business object B, controller node 2 of controller pair 1 can be set to process business object C, business object D and business object E, controller node 1 of controller pair 2 can be set to process data object A, data object B and data object C, and controller node 2 of controller pair 2 can be set to process data object E and data object F.
[0076] In other embodiments, the method for the multipath management thread to select the main controller node can also be customized according to the needs of actual applications. For example, a controller node with high processing power can handle heavy business, or a controller node with fast processing speed can handle business with higher timeliness requirements.
[0077] This embodiment further provides a data processing method based on a multi-controller storage array, which is applied to the storage system based on the multi-controller storage array provided in this embodiment.
[0078] 7 , a flowchart of a data processing method based on a multi-controller storage array according to an embodiment of the present application is shown. The method may include the following steps:
[0079] S101: After responding to a write data request sent by a host, any controller node acts as a master controller node, obtains data to be written, and stores the data in its own cache unit.
[0080] Each time a read or write operation is performed on the storage array, the multipath management thread in the host determines the master controller node. The master controller node responds to the write data request sent by the host, obtains the data to be written, and stores it in the cache unit.
[0081] The cache unit can be a memory or other high-speed access device. The storage capacity of the cache unit is limited. Therefore, if a processing queue can be set in the cache unit, the latest data to be written will be added to the end of the processing queue. If the cache unit has no storage space, the data with the earliest timestamp in the processing queue will be eliminated.
[0082] S102: The main controller node determines its corresponding target mirror controller node.
[0083] In order to improve cache redundancy, it is necessary to determine the target mirror controller node for the main controller node to perform cache mirror backup.
[0084] In some implementations, when determining the target mirror controller node corresponding to the primary controller node, a controller node in a controller pair that is not in the same group as the primary controller node is arbitrarily selected as the target mirror controller node corresponding to the primary controller node.
[0085] When each controller node in the controller pair of the different groups of the master controller node fails, another controller node in the controller pair to which the master controller node belongs is used as the target mirror controller node corresponding to the master controller node.
[0086] By preferentially selecting controller nodes in controller pairs of different groups as target mirror controller nodes, the situation in which cache data is lost due to damage of both controller nodes in a controller pair packaged together in hardware can be avoided. Until each controller node in all controller pairs of different groups from the main controller node fails, a controller node in the same group as the main controller node is selected as the target mirror controller node corresponding to the main controller node.
[0087] In other implementations, when determining the target mirror controller node corresponding to the main controller node, the main controller node may obtain the load conditions corresponding to multiple controller nodes and use the controller node with the smallest load as the target mirror controller node corresponding to the main controller node.
[0088] By selecting the controller node with the smallest load as the target mirror controller node corresponding to the main controller node, when the main controller node fails, the target mirror controller node can quickly complete the write operation, thereby reducing the delay of the write operation.
[0089] S103: The cache unit of the target mirror controller node performs cache mirror backup on the data to be written stored in the primary controller node.
[0090] Referring to Figure 8, a schematic diagram of cache mirror backup provided by an embodiment of the present application is shown. Taking a 4-controller storage array as an example, the host sends a write data request to controller node 1 of controller pair 1. The target mirror controller node of controller node 1 of controller pair 1 is controller node 1 of controller pair 2. The data to be written is sent to controller node 1 of controller pair 2 through a remote direct memory access network, such as a RoCE network, and is backed up in the cache unit of controller node 1 of controller pair 2.
[0091] S104: After the backup is completed, the main controller node sends a completion response corresponding to the write data request to the host.
[0092] In this method, the process of the host sending the data to be written to the main controller node and the process of the main controller node storing the data to be written in the hard disk of the storage expansion disk cabinet can be executed separately. When the main controller node completes the cache mirror backup, it can send a completion response corresponding to the write data request to the host. Without waiting for the data to be written to be completely written to the hard disk, the host can execute the next processing logic, thereby improving the processing efficiency of the storage system.
[0093] S105: flushing the data to be written in the cache unit of the master controller node to the storage expansion disk cabinet.
[0094] In some implementations, the master controller node may process each piece of data to be written separately and flush it to the hard disk of the storage expansion disk cabinet.
[0095] In other implementations, in order to improve efficiency, the data to be written may be flushed in batches to the hard disks of the storage expansion disk cabinet.
[0096] Specifically, when the number of the plurality of to-be-written data stored in the cache unit of the master controller node reaches a specified number, the plurality of to-be-written data in the cache unit may be flushed to the storage expansion disk cabinet.
[0097] Alternatively, at regular intervals, multiple data to be written in the cache unit are flushed to the storage expansion disk cabinet.
[0098] If during the process of flushing multiple data to be written in the cache unit of the main controller node, the target mirror controller node detects that the main controller node has failed and acts as the new main controller node; the target mirror controller node corresponding to the new main controller is re-determined, and a cache mirror backup is performed; the multiple data to be written in the cache unit of the new main controller are flushed to the storage expansion disk cabinet, and any data to be written is not stored repeatedly in the storage expansion disk cabinet.
[0099] Referring to Figure 9, a fault handling diagram provided by an embodiment of the present application is shown. If the main controller node: controller node 1 of controller pair 1 fails, the target mirror controller node of controller node 1 of controller pair 1: controller node 1 of controller pair 2 can serve as the new main controller node. Controller node 1 of controller pair 2 has a cache mirror backup of the data to be written, so controller node 1 of controller pair 2 can continue to provide services to the host. At this time, there is only one copy of the data to be written in the 4-controller storage array. In order not to lose cache redundancy, a target mirror controller node is selected for the new main controller node (controller node 1 of controller pair 2). For example, a controller node that is not in the same controller pair is preferentially selected, that is, controller node 2 of controller pair 1 is selected as the target mirror controller node for cache mirror backup of the data to be written.
[0100] Afterwards, the controller node 1 of the controller pair 2 can flush the data to be written to the storage expansion disk cabinet. However, when flushing multiple data to be written in batches, some data may have been stored in the storage expansion disk cabinet. In order to avoid repeatedly writing the same data to be written, the controller node can detect whether the storage expansion disk cabinet has already stored any data to be written. If it has been written, the data to be written will be ignored.
[0101] 10 , a schematic diagram of fault handling provided in an embodiment of the present application is shown. If controller node 1 of controller pair 2 selects controller node 2 of controller pair 1 as the target mirror controller node and performs a cache mirror backup of the data to be written, both nodes of controller pair 1 fail, and only the two controller nodes of controller pair 2 remain in the 4-controller storage array.
[0102] Controller node 1 of controller pair 2 has a cache mirror backup of the data to be written, so controller node 1 of controller pair 2 can continue to provide services to the host. At this time, there is only one copy of the data to be written in the 4-controller storage array. In order not to lose cache redundancy, the only remaining controller node in the same controller pair (that is, controller node 2 of controller pair 2) is selected to perform cache mirror backup of the data to be written for cache redundancy protection.
[0103] In the multi-controller storage array provided by this embodiment, each controller node is connected to a storage expansion disk cabinet, so that multiple controller nodes can share access to the storage expansion disk cabinet. In addition, each controller node is provided with a cache unit, and each controller node corresponds to a target mirror controller node. The cache unit of the target mirror controller node corresponding to each controller node stores a cache image of the controller node.
[0104] Compared to existing loosely coupled multi-controller storage arrays, each controller node in the multi-controller storage array provided by this embodiment can share access to the hard disks of the storage expansion disk cabinet. Compared to existing tightly coupled multi-controller storage arrays in which multiple controllers share the same cache memory, each controller node can perform cache mirror backup of the cache unit on its corresponding target mirror controller node, thereby preventing the problem of all controllers failing due to a failure of one cache memory, and thus having higher availability.
[0105] An embodiment of the present application further provides a non-volatile computer-readable storage medium, which stores computer-readable instructions. When the computer-readable instructions are executed by a processor, a data processing method based on a multi-controller storage array as described in the embodiment is performed.
[0106] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.
[0107] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, devices, or computer-readable instruction products. Therefore, the present application can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, the present application can take the form of a computer-readable instruction product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0108] The present application embodiment is described with reference to the flow chart and / or block diagram of the method according to the embodiment of the present application, terminal equipment (system), and computer-readable instruction product. It should be understood that each process and / or box in the flow chart and / or block diagram can be realized by computer-readable instructions, and the combination of the process and / or box in the flow chart and / or block diagram. These computer-readable instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processing machine or other programmable data processing terminal equipment to produce a machine, so that the instruction executed by the processor of the computer or other programmable data processing terminal equipment produces a device for realizing the function specified in one process or multiple processes of the flow chart and / or one box or multiple boxes of the block diagram.
[0109] These computer-readable instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device that implements the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0110] These computer-readable instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce computer-implemented processing, so that the instructions executed on the computer or other programmable terminal device provide steps for implementing the functions specified in one or more processes in the flowchart and / or one or more boxes in the block diagram.
[0111] Although preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they become aware of the basic inventive concepts. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.
[0112] Finally, it should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or terminal device that includes a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or terminal device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or terminal device that includes the element.
[0113] This document uses specific examples to illustrate the principles and implementation methods of this application. The description of the above embodiments is only used to help understand the method and core ideas of this application. At the same time, for those skilled in the art, based on the ideas of this application, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as limiting this application.
Claims
1. A multi-controlled storage array, characterized in that, The storage array includes a 4 - controller storage module, and the 4 - controller storage module includes two pairs of controllers and a storage expansion disk cabinet; A connection based on Ethernet exists between the two pairs of controllers; Any one of the two pairs of controllers includes two controller nodes, and each controller node is connected to the storage expansion disk cabinet to perform shared access to the storage expansion disk cabinet; and A cache unit is provided in each controller node. Among them, after a controller node responds to a write data request, it determines its corresponding target mirror controller node, and the cache unit of the target mirror controller node stores a cache mirror of this controller node.
2. The storage array according to claim 1, wherein The storage array includes two 4 - controller storage modules. Among them, a controller pair in any one 4 - controller storage module is connected to a controller pair in the other 4 - controller storage module based on Ethernet.
3. The storage array according to claim 1 or 2, wherein The storage expansion disk cabinet includes a storage expansion disk cabinet based on Ethernet.
4. The storage array according to claim 1 or 2, characterized in that, A connection based on a remote direct memory access network exists between any one controller pair and another controller pair.
5. The storage array according to claim 1 or 2, characterized in that, The cache unit includes a memory or a random access device.
6. A storage system based on a multi-controlled storage array, characterized in that, The storage system includes a host and the multi - controller storage array according to any one of claims 1 - 5, wherein: The host is respectively connected to all the controller nodes in the multi - controller storage array.
7. The storage system according to claim 6, wherein A multi - path management thread is configured in the host, and the multi - path management thread is used to select a primary controller node during the current read - write operation process among all the controller nodes.
8. The storage system according to claim 7, wherein The multi - path management thread is used to use a pre - defined target controller node as the primary controller node.
9. The storage system according to claim 7, wherein The multi - path management thread is used to poll all the controller nodes to determine the primary controller node during the current read - write operation process.
10. The storage system according to claim 7, wherein The multi - path management thread is used to select a primary controller node during the current read - write operation process among all the controller nodes according to a preset rule.
11. The storage system according to claim 10, wherein The multi - path management thread is used to obtain the current load of each of all the controller nodes, and select the controller node with the minimum current load as the primary controller node during the current read - write operation process.
12. The storage system according to claim 10, wherein Each controller node is configured with a data object or a service object to be processed; and The multi - path management thread is used to determine the primary controller node during the current read - write operation process according to the data object or the service object of the current read - write operation process.
13. A data processing method based on a multi-control storage array, characterized in that, Applied to the storage system based on a multi - controller storage array according to any one of claims 6 - 12, the method includes: After any one controller node responds to a write data request issued by the host, it serves as the primary controller node, obtains the data to be written, and stores it in its own cache unit; The primary controller node determines its corresponding target mirror controller node; The cache unit of the target mirror controller node performs a cache mirror backup on the data to be written stored by the primary controller node; After the backup is completed, the primary controller node sends a completion response corresponding to the write data request to the host; and Flushes the data to be written in the cache unit of the primary controller node to the storage expansion disk cabinet.
14. The method according to claim 13, characterized in that, Flushing the data to be written in the cache unit of the primary controller node to the storage expansion disk cabinet includes: In response to the number of multiple data to be written stored in the cache unit of the master controller node reaching a calibrated quantity, flush the multiple data to be written stored in the cache unit of the master controller node to the storage expansion disk cabinet.
15. The method according to claim 13, wherein Flushing the data to be written in the cache unit of the master controller node to the storage expansion disk cabinet includes: At every calibrated time interval, flush the multiple data to be written stored in the cache unit of the master controller node to the storage expansion disk cabinet.
16. The method according to claim 14 or 15, characterized in that, Flushing the multiple data to be written stored in the cache unit of the master controller node to the storage expansion disk cabinet includes: During the process of flushing the multiple data to be written in the cache unit of the master controller node, in response to the target mirror controller node detecting a failure of the master controller node, determine a new master controller node; Redetermine the target mirror controller node corresponding to the new master controller and perform cache mirror backup; and Flush the multiple data to be written in the cache unit of the new master controller node to the storage expansion disk cabinet, and any data to be written is not repeatedly stored in the storage expansion disk cabinet.
17. The method according to claim 13, characterized in that The master controller node determines the target mirror controller node corresponding to itself, including: Arbitrarily select a controller node from the controller pairs in a different group from the master controller node as the target mirror controller node corresponding to the master controller node.
18. The method according to claim 17, characterized in that, The master controller node determines the target mirror controller node corresponding to itself, including: In response to each controller node in the controller pairs of different groups of the master controller node failing, use the other controller node in the controller pair to which the master controller node belongs as the target mirror controller node corresponding to the master controller node.
19. The method according to claim 13, wherein The master controller node determines the target mirror controller node corresponding to itself, including: The master controller node obtains the respective load conditions of multiple controller nodes, and uses the controller node with the minimum load as the target mirror controller node corresponding to the master controller node.
20. A non-volatile computer-readable storage medium, characterized in that, The non - volatile computer - readable storage medium stores computer - readable instructions, wherein when the computer - readable instructions are executed by a processor, the data processing method based on a multi - controller storage array as described in any one of claims 13 - 19 is executed.
Citation Information
Patent Citations
Method of improving reliability of storage system, and related apparatus
CN112543922A
Global caching method and device of storage system and medium
CN114816270A
Multi-control storage array, storage system, data processing method and storage medium
CN117632808A
Dual controller storage apparatus and cache memory mirror method thereof
US20090132765A1
Cited By
Storage system and storage system cluster
CN120803374A
Fault processing method of multi-control storage system and electronic equipment
CN120929313A
Fault handling method of multi-controller storage system and electronic device
CN120929313B