Dual-controller storage system and controller control method thereof

By setting up multiple communication links and link monitoring modules in the dual controller storage system, real-time monitoring and processing of heartbeat signals is realized, solving the problem of misjudgment of taking over when the dual controller heartbeat link is disconnected, and improving the reliability of the NAS system.

CN119520589APending Publication Date: 2025-02-25HUNAN TONGYOU FEIJI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411706139.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-26
Publication Date
2025-02-25

AI Technical Summary

Technical Problem

When the existing dual controller heartbeat link is disconnected, the controller tries to take over the other party's NAS resources, resulting in an abnormality in the NAS system.

Method used

In a dual controller storage system, multiple communication links are set up for sending heartbeat signals, and a link monitoring module is set up in each controller. By monitoring the heartbeat signals of all communication links in real time, when the heartbeat signals of all links are received timeout, the NAS resources of the other controller are taken over; when the heartbeat signals of some links are received timeout, the NAS resources of the other party are not taken over.

Benefits of technology

It reduces the risk of heartbeat link interruption, improves the reliability of the NAS system, and avoids NAS system abnormalities caused by misjudgment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119520589A_ABST
    Figure CN119520589A_ABST
Patent Text Reader

Abstract

The invention discloses a double-controller storage system and a controller control method thereof, and the method comprises the steps: arranging a plurality of communication links between double controllers, transmitting heartbeat signals at the same time through the plurality of communication links, and monitoring the heartbeat signals of all communication links and / or the state of physical links in real time; when it is monitored that heartbeat signals of all communication links are received overtime or the physical links are all disconnected, NAS resources of an opposite controller are taken over; when it is monitored that in all communication links, only part of communication links receive overtime heartbeat signals or physical links are disconnected, NAS resources of the opposite controller are not taken over, the scheme that the communication links between the two controllers of the storage system are internally communicated and multiple heartbeat links are redundant is adopted, the heartbeat link interruption risk is reduced, and the reliability of the storage system is improved. And the reliability of the NAS system is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of data processing, and in particular to a dual-controller storage system and a controller control method thereof. Background Art

[0002] Based on TCP / IP, UDP / IP, RoCE, Infiniband and other network communication protocols, file services are provided through network file systems such as NFS (Network File System), CIFS (Common Internet File System), FTP (File Transfer Protocol), etc. Such storage systems are called NAS systems (Network Attached Storage). After mounting the shared directory exported by the NAS system, client applications can directly read and write directories and files on the remote storage server, and multiple clients can also operate file resources in the same shared directory at the same time, which is very convenient.

[0003] In order to prevent the NAS storage system from being paralyzed by client application services or even data loss due to network connection interruption, accidental restart, downtime, power failure, etc., dual controllers are often used to achieve fault redundancy. When one controller fails, the file resources, network file system configuration information and client connections on the controller can be quickly taken over by another controller, and the high availability of the NAS system can be achieved through the flexible switching of storage resources between controllers.

[0004] Existing dual controllers generally establish a heartbeat link. When one controller detects that the heartbeat link is disconnected, it actively takes over the storage pool, file system, NAS service, virtual IP and other NAS resources on the other controller. However, if the heartbeat link is abnormal, the two controllers will think that the other controller is faulty and try to take over the other's NAS resources, causing NAS system abnormalities. Summary of the invention

[0005] The present invention provides a dual-controller storage system and a controller control method thereof, which are used to solve the technical problem that when the existing dual-controller heartbeat link is disconnected, the controllers both try to take over the other party's NAS resources, causing NAS system abnormality.

[0006] In order to solve the above technical problems, the technical solution proposed by the present invention is:

[0007] A dual-controller storage system includes a first controller and a second controller. Multiple communication links are arranged between the first controller and the second controller. The multiple communication links are all used to send heartbeat signals.

[0008] The first controller and the second controller are both provided with a link monitoring module, and the link monitoring module is used to monitor the heartbeat signals of all communication links;

[0009] The first controller and / or the second controller both perform the following steps:

[0010] Monitor the heartbeat signals of all communication links in real time through its own link monitoring module:

[0011] When the heartbeat signal reception of all communication links is detected to have timed out, the NAS resources of the other controller are taken over;

[0012] When it is detected that the heartbeat signal reception of some communication links among all the communication links has timed out, the NAS resources of the other controller will not be taken over.

[0013] Preferably, the link monitoring module is further used to monitor the state of the physical link of each communication link, the state of the physical link includes disconnection or conduction, and the first controller or the second controller performs the following steps:

[0014] When it is detected that the physical links of all communication links are disconnected, take over the NAS resources of the other controller and configure the NAS services;

[0015] When it is detected that only some of the communication links are physically disconnected among all the communication links, the NAS resources of the other controller will not be taken over.

[0016] Preferably, the first controller and / or the second controller is further configured to perform one or more of the following steps:

[0017] Step A1: When the controller is shut down actively, it first shuts down its own NAS service and releases all storage pools, file systems, shared directories and virtual IPs. After the release is completed, it actively notifies another controller to take over all NAS resources, then disconnects all communication links, and the other controller takes over the NAS resources and automatically configures the NAS service;

[0018] Step A2: At a specific stage of the boot process, the controller actively detects whether its own NAS resources are taken over by another controller. If so, it notifies the other controller to release the taken-over storage pool, file system, shared directory and virtual IP. After the other controller completes the release, it notifies the original controller to take over the released NAS resources. The original controller takes over its own NAS resources and automatically configures the NAS service.

[0019] Preferably, the first controller and the second controller each include at least one storage pool, and the storage pool each includes a plurality of network ports; the first controller and the second controller each include a network port status monitoring module, and the network port status monitoring module is used to monitor the network port status of its corresponding storage pool;

[0020] The first controller and the second controller perform one or more of the following steps:

[0021] Step B1: When a storage pool on the controller is configured with multiple service network ports, if not all service network ports fail, the storage pool, internal file system, and shared directory are not processed, and the virtual IP corresponding to the storage pool drifts to its healthy network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed;

[0022] Step B2: When all service network ports corresponding to a storage pool on a controller fail, and all service network ports with the same name on another controller are normal, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port drifts to the network port with the same name on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service;

[0023] Step B3: When all the service network ports corresponding to a storage pool on a controller fail, and some of the service network ports with the same name on another controller fail, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port automatically drifts to other healthy service network ports on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service;

[0024] Step B4: When the network port status monitoring module inside the controller detects that the physical link of the faulty network port has returned to normal, if the virtual IP belonging to the network port exists on other network ports of the controller, the virtual IP is returned to the original network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed;

[0025] Step B5: When the internal monitoring module of the controller detects that the physical link of the faulty network port has returned to normal, if the storage pool corresponding to the network port has been taken over by another controller, the other controller is notified to release the storage pool, the file system, shared directory and corresponding virtual IP in the storage pool, and hand them over to the original controller. The released virtual IP is returned to the original network port in priority according to the controller-storage pool-business network port-virtual IP group configuration file. If the original network port is still in a faulty state, the virtual IP drifts to other healthy network ports configured on the storage pool corresponding to the virtual IP. After the original controller takes over its own NAS resources, it automatically configures the NAS service.

[0026] Preferably, the network port status monitoring module further includes: a network port flash disconnection monitoring unit, the network port flash disconnection monitoring unit is used to monitor the corresponding network port status in real time;

[0027] The first controller and the second controller are further configured to not perform any processing on the network port resources, NAS resources and NAS services when a flash disconnection phenomenon of the network port is detected.

[0028] Preferably, the first controller and the second controller perform any of the following steps:

[0029] When the network port status monitoring module detects that multiple network ports are faulty, they are processed synchronously in the order of the network port fault event queue.

[0030] Preferably, the physical link between the first controller and the second controller is established on an internal board of the storage device.

[0031] Preferably, the communication link uses RDMA communication.

[0032] A controller control method for a dual-controller storage system, wherein multiple communication links are provided between the dual controllers, and the multiple communication links all send heartbeat signals simultaneously, and the controller comprises the following steps:

[0033] Real-time monitoring of the heartbeat signals of all communication links and / or the status of the physical links, where the status of the physical links includes disconnection or conduction:

[0034] When it is detected that the heartbeat signal reception of all communication links has timed out or the physical links have been disconnected, the NAS resources of the other controller are taken over;

[0035] When it is detected that only some of the communication links have timed out or their physical links are disconnected among all the communication links, the NAS resources of the other controller will not be taken over.

[0036] Preferably, the controller is further configured to perform one or more of the following steps:

[0037] Step A1: When the controller is shut down actively, it first shuts down its own NAS service and releases all storage pools, file systems, shared directories and virtual IPs. After the release is completed, it actively notifies another controller to take over all NAS resources, then disconnects all communication links, and the other controller takes over the NAS resources and automatically configures the NAS service;

[0038] Step A2: At a specific stage of the boot process, the controller actively detects whether its own NAS resources are taken over by another controller. If so, the controller notifies the other controller to release the taken-over storage pool, file system, shared directory and virtual IP. After the other controller completes the release, it notifies the original controller to take over the released NAS resources. The original controller takes over its own NAS resources and automatically configures NAS services.

[0039] Step B1: When a storage pool on the controller is configured with multiple service network ports, if not all service network ports fail, the storage pool, internal file system, and shared directory are not processed, and the virtual IP corresponding to the storage pool drifts to its healthy network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed;

[0040] Step B2: When all service network ports corresponding to a storage pool on a controller fail, and all service network ports with the same name on another controller are normal, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port drifts to the network port with the same name on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service;

[0041] Step B3: When all the service network ports corresponding to a storage pool on a controller fail, and some of the service network ports with the same name on another controller fail, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port automatically drifts to other healthy service network ports on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service;

[0042] Step B4: When the network port status monitoring module inside the controller detects that the physical link of the faulty network port has returned to normal, if the virtual IP belonging to the network port exists on other network ports of the controller, the virtual IP is returned to the original network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed;

[0043] Step B5: When the internal monitoring module of the controller detects that the physical link of the faulty network port has returned to normal, if the storage pool corresponding to the network port has been taken over by another controller, the other controller is notified to release the storage pool, the file system, shared directory and corresponding virtual IP in the storage pool, and hand them over to the original controller. The released virtual IP is returned to the original network port in priority according to the controller-storage pool-business network port-virtual IP group configuration file. If the original network port is still in a faulty state, the virtual IP drifts to other healthy network ports configured on the storage pool corresponding to the virtual IP. After the original controller takes over its own NAS resources, it automatically configures the NAS service.

[0044] The present invention has the following beneficial effects:

[0045] 1. The present invention reduces the risk of heartbeat link interruption and improves the reliability of the NAS system by adopting a solution of internal connection of the communication link between two controllers of the storage system and multi-heartbeat link redundancy.

[0046] 2. In the preferred embodiment, the present invention adopts a set of NAS service network port interruption exception processing solutions. When link aggregation cannot be performed on the NAS system, fault redundancy of the network link can still be achieved, thereby improving the reliability of the NAS system.

[0047] In addition to the above-described purposes, features and advantages, the present invention has other purposes, features and advantages. The present invention will be further described in detail below with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] The drawings constituting a part of this application are used to provide a further understanding of the present invention. The exemplary embodiments of the present invention and their descriptions are used to explain the present invention and do not constitute an improper limitation of the present invention. In the drawings:

[0049] Figure 1 The figure is a simplified structural diagram of a dual-controller storage system in an embodiment of the present invention. DETAILED DESCRIPTION

[0050] The embodiments of the present invention are described in detail below with reference to the accompanying drawings, but the present invention can be implemented in many different ways as defined and covered by the claims.

[0051] Example:

[0052] like Figure 1 As shown, this embodiment discloses a dual-controller storage system for creating a NAS service;

[0053] The storage system includes two controllers, each of which is provided with a plurality of internal communication ports for establishing an internal communication link between the two controllers, and each communication link also serves as a heartbeat link;

[0054] Multiple internal communication ports are set up on the controller to establish internal communication links between the two controllers. Each communication link also serves as a heartbeat link.

[0055] The physical link of the communication link between the two controllers is established on the internal backplane of the storage device, eliminating the need to manually connect the physical link (some storage systems require customers to connect optical fibers between the heartbeat ports of the two controllers, etc.), reducing the risk of link disconnection caused by physical disturbances.

[0056] During the storage system startup process, all communication links are automatically configured through code, without the need for manual configuration by the customer, thus avoiding the risk of link disconnection due to incorrect communication link configuration by the customer;

[0057] The communication link uses RDMA communication to increase the communication speed and reduce the probability of link congestion;

[0058] A communication link monitoring module is set up in each controller;

[0059] When the physical link of the communication link is disconnected / restored, the port driver will actively report to the communication link monitoring module;

[0060] The communication link monitoring module detects whether the heartbeat signals of all communication links have timed out.

[0061] The storage system workflow is as follows:

[0062] Create a storage resource:

[0063] Select disks on any controller to create a storage pool. The storage pool can customize the Raid level.

[0064] It is required to configure a service network port and a virtual IP group for each storage pool. The client accesses the storage pool through the configured service network port and virtual IP group.

[0065] Each storage pool can be configured with multiple network ports as the service network ports of the pool, and supports the link after aggregating multiple network ports as the service network port of the storage pool;

[0066] Write the configuration file that records the controller-storage pool-service network port-virtual IP group correspondence to the two controllers simultaneously. The configuration file format is as follows:

[0067] Controller 1-Storage pool 1-Network port 1-IP1, IP2, IP3;

[0068] Controller 1-Storage pool 1-Network port 2-IP4;

[0069] Controller 2-storage pool 2-network port 2-IP5, IP6;

[0070] Create a file system under the storage pool. The storage pool supports the creation of multiple file systems. The file system supports the creation of multiple shared directories. The shared directory is used as the root directory accessible to the client.

[0071] When creating a file system and shared directory, you can set configuration items for the file system and shared directory, such as quota, compression algorithm, deduplication, block size, etc. These configuration items are saved in a specific area of ​​the storage pool and become inherent properties of the file system / shared directory after configuration;

[0072] Configure NAS service:

[0073] 1) After the shared directory is created, configure the NAS service for the shared directory: a. Select the NAS protocol type for the shared directory export; for example, NFS, CIFS, FTP, etc. b. Further configure other configuration items according to the configured protocol type, such as: enable read / write cache, client authentication information, user information, NAS protocol support version and other configuration contents;

[0074] 2) All configuration items set in step 1) will be saved synchronously to both controllers;

[0075] 3) If the NAS system has a firewall module, the user's customized firewall configuration will be saved synchronously to both controllers;

[0076] NAS system high availability solution:

[0077] I: Communication link abnormality handling solution

[0078] 1) A monitoring module is set up in the controller to monitor whether the physical links of all communication links are interrupted and whether the heartbeat signal has timed out;

[0079] 2) When the monitoring module on the controller detects that: a. the physical links of all communication links are disconnected, or: b. the heartbeat signals of all communication links have timed out, it is considered that another controller has failed. The controller will actively take over the NAS resources (storage pool, file system, shared directory, virtual IP) on the other controller and automatically configure the NAS service;

[0080] 3) When the controller is shut down actively, it first shuts down its own NAS service and releases all storage pools, file systems, shared directories and virtual IPs. After the release is completed, it actively notifies another controller to take over all NAS resources, then disconnects all communication links. Another controller takes over NAS resources and automatically configures NAS services.

[0081] 4) At a specific stage of the boot process, the controller actively detects whether its own NAS resources are taken over by another controller. If so, it notifies the other controller to release the taken-over storage pool, file system, shared directory and virtual IP. After the other controller completes the release, it notifies the original controller to take over the released NAS resources. The original controller takes over its own NAS resources and automatically configures NAS services.

[0082] 5) When the monitoring module in the controller detects: a. Only the physical link of some communication links fails, or: b. Only the heartbeat signal reception of some communication links times out, the monitoring module only reports the abnormal communication link event and does not take any action on the NAS resources and NAS services.

[0083] Based on the above, an implementation example of a heartbeat link failure is provided:

[0084] There are two communication links between controller 1 and controller 2, channel 1 and channel 2;

[0085] There are four service network ports on controller 1 and controller 2: eth1, eth2, eth3, and eth4;

[0086] Create storage pool 1 on controller 1, and create several file systems and shared directories in storage pool 1;

[0087] Create storage pool 2 in controller 2, and create several file systems and shared directories in storage pool 2;

[0088] All shared directories have completed NAS service configuration;

[0089] The NAS resource configuration contents are as follows:

[0090] Controller 1-Storage pool 1-eth1-IP1, IP2, IP3;

[0091] Controller 2-storage pool 2-storage pool 2-eth2-IP4;

[0092] Scenario 1: Controller 1 loses power due to a fault. After the monitoring module in controller 2 detects that the physical link between channel 1 and channel 2 is disconnected, it actively takes over storage pool 1, the internal file system, and the shared directory. IP1, IP2, and IP3 all drift to eth1 on controller 2. After controller 2 takes over the NAS resources, it automatically configures the NAS service.

[0093] Scenario 2: The controller 1 system is stuck, and the monitoring module in controller 2 detects that the heartbeats on channel 1 and channel 2 have timed out. It actively takes over storage pool 1, the internal file system, and the shared directory. IP1, IP2, and IP3 all drift to eth1 on controller 2. After controller 2 takes over the NAS resources, it automatically configures the NAS service.

[0094] Scenario 3: Channel 1 has a hardware failure, but channel 2 is normal. In this case, controller 1 and controller 2 do not process any NAS resources or services.

[0095] Scenario 4: Controller 1 restarts after a failure. During the startup process, it detects that the NAS resources configured on itself are taken over by controller 2. Controller 2 is notified through the communication link between the two controllers to release IP1 / IP2 / IP3 on eth1, storage pool 1, internal file system, and shared directory. After the release is completed, controller 2 notifies controller 1 to take over storage pool 1, internal file system, and shared directory. IP1 / IP2 / IP3 on eth1 in controller 2 drifts to eth1 in controller 1. After controller 1 takes over its own NAS resources, it automatically configures NAS services.

[0096] II: Service network port interruption exception handling

[0097] 1) A network port status monitoring module is set up in the controller to monitor the link status of all business network ports. If it is detected that the physical link of the business network port is disconnected (the network port cable is disconnected or the network card is faulty), the NAS resource processing process for the faulty network port is actively initiated;

[0098] 2) When a storage pool on the controller is configured with multiple service network ports, if not all service network ports fail, the storage pool, internal file system, and shared directory will not be processed. The virtual IP corresponding to the storage pool will drift to the healthy network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service will not be processed;

[0099] 3) When all the service network ports corresponding to a storage pool on a controller fail, and all the service network ports with the same name on another controller are normal, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port drifts to the network port with the same name on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service;

[0100] 4) When all the service network ports corresponding to a storage pool on a controller fail, and some of the service network ports with the same name on another controller fail, the storage pool and its internal file system and shared directory are taken over by the other controller. The virtual IP on the failed network port automatically drifts to other healthy service network ports on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service.

[0101] 5) When the monitoring module inside the controller detects that the physical link of the faulty network port has returned to normal, if the virtual IP belonging to the network port exists on other network ports of the controller, the virtual IP is returned to the original network port according to the configuration file of controller-storage pool-service network port-virtual IP group, and the NAS service is not processed;

[0102] 6) When the internal monitoring module of the controller detects that the physical link of the faulty network port has returned to normal, if the storage pool corresponding to the network port has been taken over by another controller, the other controller is notified to release the storage pool, the file system, the shared directory and the corresponding virtual IP in the storage pool, and hand them over to the original controller. The released virtual IP is returned to the original network port in priority according to the controller-storage pool-business network port-virtual IP group configuration file. If the original network port is still in a faulty state, the virtual IP drifts to other healthy network ports configured on the storage pool corresponding to the virtual IP. After the original controller takes over its own NAS resources, it automatically configures the NAS service;

[0103] 7) The network port status monitoring module sets up a network port flash disconnection monitoring mechanism to prevent frequent connection and disconnection of the service network port when the network cable is not connected, which leads to frequent switching of NAS resources. After the monitoring module detects a flash disconnection, it will not do anything to the NAS resources and NAS services, but only report the flash disconnection event. The flash disconnection judgment time interval can be customized by the user;

[0104] Among them, the flash disconnection monitoring mechanism is that if the monitoring module detects that the network card driver reports link_up and link_down events more than twice within the set interval seconds, it is considered to have a flash disconnection. The interval seconds can be customized and the default is 1s;

[0105] 8) When the internal monitoring module of the controller detects multiple network port failure events, they are processed synchronously in the order of the network port failure event queue;

[0106] Based on the above, an implementation example of a service network port failure is provided:

[0107] There are two communication links between controller 1 and controller 2, channel 1 and channel 2;

[0108] Controller 1 and controller 2, each controller has four service network ports with the same name: eth1, eth2, eth3, and eth4;

[0109] Create storage pool 1 on controller 1, and create several file systems and shared directories in storage pool 1;

[0110] Create storage pool 2 in controller 2, and create several file systems and shared directories in storage pool 2;

[0111] All shared directories have completed NAS service configuration;

[0112] The NAS resource configuration contents are as follows:

[0113] Controller 1-storage pool 1-eth1-IP1, IP2;

[0114] Controller 1-Storage Pool 1-eth2-IP3;

[0115] Controller 2-storage pool 2-eth2-IP4;

[0116] Scenario 1: eth1 on controller 1 fails. No action is taken on storage pool 1, the internal file system, or the shared directory. IP1 and IP2 on eth1 of controller 1 drift to its own eth2.

[0117] After eth1 on controller 1 recovers, IP1 and IP2 on eth2 on controller 1 return to eth1;

[0118] Scenario 2: eth1 and eth2 on controller 1 are completely faulty, eth1 and eth2 on controller 2 are normal, storage pool 1 and all its file systems and shared directories are switched to controller 2, IP1 and IP2 are moved to eth1 on controller 2, and IP3 is moved to eth2 on controller 2.

[0119] After eth1 and eth2 on controller 1 are restored to health, storage pool 1, internal file system, and shared directory taken over by controller 2 return to controller 1, IP1 and IP2 of eth1 on controller 2 return to eth1 on controller 1, and IP3 of eth2 on controller 2 returns to eth2 on controller 1;

[0120] Scenario 3: Both eth1 and eth2 on controller 1 fail, eth2 on controller 2 is normal, eth1 fails, storage pool 1 and all file systems and shared directories inside it are switched to controller 2, and IP1, IP2, and IP3 drift to eth2 on controller 2.

[0121] After eth1 on controller 1 is restored to health, storage pool 1, internal file system, and shared directory taken over by controller 2 are returned to controller 1, and IP1, IP2, and IP3 of eth2 on controller 2 are returned to eth1 on controller 1;

[0122] Scenario 4: If eth1 and eth2 on controller 1 and controller 2 both fail, the storage pools and all internal file systems, shared directories, and IP addresses on the network ports on the two controllers will not switch or drift.

[0123] Scenario 5: The storage system network port disconnection detection interval is set to 2s. eth1 on controller 1 is not connected. The monitoring module detects that eth1 is disconnected and then restored to normal within 2s. In this case, all eth1 disconnection / eth1 restoration events that occur within these 2s are not processed.

[0124] In summary, the present invention reduces the risk of heartbeat link interruption and improves the reliability of the NAS system by adopting the solution of internal connection of the communication link between the two controllers of the storage system, multi-link redundancy and RDMA communication;

[0125] In addition, the present invention adopts a set of NAS service network port interruption exception processing solutions, when link aggregation cannot be performed on the NAS system, fault redundancy of the network link can still be achieved, thereby improving the reliability of the NAS system.

[0126] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.

Claims

1. A dual-controller storage system, comprising a first controller and a second controller, characterized in that: A plurality of communication links are arranged between the first controller and the second controller, and the plurality of communication links are all used for sending heartbeat signals. The first controller and the second controller are both provided with a link monitoring module, and the link monitoring module is used to monitor the heartbeat signals of all communication links; The first controller and / or the second controller both perform the following steps: Monitor the heartbeat signals of all communication links in real time through its own link monitoring module: When the heartbeat signal reception of all communication links is detected to have timed out, the NAS resources of the other controller are taken over; When it is detected that the heartbeat signal reception of some communication links among all the communication links has timed out, the NAS resources of the other controller will not be taken over.

2. The dual-controller storage system according to claim 1, characterized in that: The link monitoring module is further used to monitor the state of the physical link of each communication link, where the state of the physical link includes disconnection or conduction. The first controller or the second controller performs the following steps: When it is detected that the physical links of all communication links are disconnected, take over the NAS resources of the other controller and configure the NAS services; When it is detected that only some of the communication links are physically disconnected among all the communication links, the NAS resources of the other controller will not be taken over.

3. The dual-controller storage system according to claim 2, characterized in that: The first controller and / or the second controller is further configured to perform one or more of the following steps: Step A1: When the controller is shut down actively, it first shuts down its own NAS service and releases all storage pools, file systems, shared directories and virtual IPs. After the release is completed, it actively notifies another controller to take over all NAS resources, then disconnects all communication links, and the other controller takes over the NAS resources and automatically configures the NAS service; Step A2: At a specific stage of the boot process, the controller actively detects whether its own NAS resources are taken over by another controller. If so, it notifies the other controller to release the taken-over storage pool, file system, shared directory and virtual IP. After the other controller completes the release, it notifies the original controller to take over the released NAS resources. The original controller takes over its own NAS resources and automatically configures the NAS service.

4. The dual-controller storage system according to claim 3, characterized in that: The first controller and the second controller each include at least one storage pool, and the storage pools each include multiple network ports; the first controller and the second controller each include a network port status monitoring module, and the network port status monitoring module is used to monitor the network port status of its corresponding storage pool; The first controller and the second controller perform one or more of the following steps: Step B1: When a storage pool on the controller is configured with multiple service network ports, if not all service network ports fail, the storage pool, internal file system, and shared directory are not processed, and the virtual IP corresponding to the storage pool drifts to its healthy network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed; Step B2: When all service network ports corresponding to a storage pool on a controller fail, and all service network ports with the same name on another controller are normal, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port drifts to the network port with the same name on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service; Step B3: When all the service network ports corresponding to a storage pool on a controller fail, and some of the service network ports with the same name on another controller fail, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port automatically drifts to other healthy service network ports on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service; Step B4: When the network port status monitoring module inside the controller detects that the physical link of the faulty network port has returned to normal, if the virtual IP belonging to the network port exists on other network ports of the controller, the virtual IP is returned to the original network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed; Step B5: When the internal monitoring module of the controller detects that the physical link of the faulty network port has returned to normal, if the storage pool corresponding to the network port has been taken over by another controller, the other controller is notified to release the storage pool, the file system, shared directory and corresponding virtual IP in the storage pool, and hand them over to the original controller. The released virtual IP is returned to the original network port in priority according to the controller-storage pool-business network port-virtual IP group configuration file. If the original network port is still in a faulty state, the virtual IP drifts to other healthy network ports configured on the storage pool corresponding to the virtual IP. After the original controller takes over its own NAS resources, it automatically configures the NAS service.

5. The dual-controller storage system according to claim 4, characterized in that: The network port status monitoring module further includes: a network port flash off monitoring unit, the network port flash off monitoring unit is used to monitor the corresponding network port status in real time; The first controller and the second controller are further configured to not perform any processing on the network port resources, NAS resources and NAS services when a flash disconnection phenomenon of the network port is detected.

6. The dual-controller storage system according to claim 4, characterized in that: The first controller and the second controller perform any of the following steps: When the network port status monitoring module detects that multiple network ports are faulty, they are processed synchronously in the order of the network port fault event queue.

7. The dual-controller storage system according to any one of claims 1 to 6, characterized in that: The physical link between the first controller and the second controller is established on an internal board of the storage device.

8. The dual-controller storage system according to any one of claims 1 to 6, characterized in that: The communication link uses RDMA communication.

9. A controller control method for a dual-controller storage system, characterized in that: A plurality of communication links are provided between the dual controllers, and the plurality of communication links all send heartbeat signals simultaneously. The controller comprises the following steps: Real-time monitoring of the heartbeat signals of all communication links and / or the status of the physical links, where the status of the physical links includes disconnection or conduction: When it is detected that the heartbeat signal reception of all communication links has timed out or the physical links have been disconnected, the NAS resources of the other controller are taken over; When it is detected that only some of the communication links have timed out or their physical links are disconnected among all the communication links, the NAS resources of the other controller will not be taken over.

10. The controller control method of the dual-controller storage system according to claim 9, characterized in that: The controller is also configured to perform one or more of the following steps: Step A1: When the controller is shut down actively, it first shuts down its own NAS service and releases all storage pools, file systems, shared directories and virtual IPs. After the release is completed, it actively notifies another controller to take over all NAS resources, then disconnects all communication links, and the other controller takes over the NAS resources and automatically configures the NAS service; Step A2: At a specific stage of the boot process, the controller actively detects whether its own NAS resources are taken over by another controller. If so, the controller notifies the other controller to release the taken-over storage pool, file system, shared directory and virtual IP. After the other controller completes the release, it notifies the original controller to take over the released NAS resources. The original controller takes over its own NAS resources and automatically configures NAS services. Step B1: When a storage pool on the controller is configured with multiple service network ports, if not all service network ports fail, the storage pool, internal file system, and shared directory are not processed, and the virtual IP corresponding to the storage pool drifts to its healthy network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed; Step B2: When all service network ports corresponding to a storage pool on a controller fail, and all service network ports with the same name on another controller are normal, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port drifts to the network port with the same name on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service; Step B3: When all the service network ports corresponding to a storage pool on a controller fail, and some of the service network ports with the same name on another controller fail, the storage pool and its internal file system and shared directory are taken over by the other controller, and the virtual IP on the failed network port automatically drifts to other healthy service network ports on the other controller according to the controller-storage pool-service network port-virtual IP group configuration file. After the other controller takes over the NAS resources, it automatically configures the NAS service; Step B4: When the network port status monitoring module inside the controller detects that the physical link of the faulty network port has returned to normal, if the virtual IP belonging to the network port exists on other network ports of the controller, the virtual IP is returned to the original network port according to the controller-storage pool-service network port-virtual IP group configuration file, and the NAS service is not processed; Step B5: When the internal monitoring module of the controller detects that the physical link of the faulty network port has returned to normal, if the storage pool corresponding to the network port has been taken over by another controller, the other controller is notified to release the storage pool, the file system, shared directory and corresponding virtual IP in the storage pool, and hand them over to the original controller. The released virtual IP is returned to the original network port in priority according to the controller-storage pool-business network port-virtual IP group configuration file. If the original network port is still in a faulty state, the virtual IP drifts to other healthy network ports configured on the storage pool corresponding to the virtual IP. After the original controller takes over its own NAS resources, it automatically configures the NAS service.