A four-controller storage data access system
Through the design of a four-controller storage data access system, the use of synchronous remote replication and heartbeat channel detection, and the configuration of controller priority and load balancing modules, efficient data access and reliability assurance are achieved in the event of a failure of the four-controller storage system, solving the problem of dynamic balance between performance and reliability of the four-controller storage system.
Patent Information
- Application Number
- CN202210699097.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-20
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2042-06-20
AI Technical Summary
How to achieve a dynamic balance between performance and reliability in a four-controller storage system, ensuring that two sets of dual-controller storage can concurrently provide data access services and guarantee the reliability of the entire system.
A four-controller storage data access system is used. Through synchronous remote replication and heartbeat channel detection of primary and backup storage, controller priority and load balancing modules are configured to achieve dynamic adjustment and fault switching of data access paths, ensuring that four controllers can provide services to the outside world at the same time.
The overall performance of the four-controller storage and the reliability of the storage system are improved, and data access services can be provided normally even if any three controllers fail.
Smart Images

Figure CN115145768B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of computer information storage, and in particular relates to a four-controller storage data access system. Background Art
[0002] The rapid development of information technology and network technologies has led to a dramatic increase in data storage. As data usage scenarios continue to expand and evolve, systems are placing increasingly higher demands on storage capacity, access speed, reliability, and stability. Traditional dual-controller storage offers excellent reliability and stability, but its performance is limited by the constraints of a single storage system when it comes to dynamically expanding storage capacity and concurrent access to storage media. Building on the existing dual-controller storage hardware, a quad-controller storage solution can improve the horizontal scalability of the storage system. Each dual-controller storage system has its own physical storage media. Ensuring that a quad-controller storage system, comprised of two dual-controller storage systems, can provide concurrent data access services while maintaining the reliability of the entire storage system requires the design of a quad-controller storage data access system. Summary of the Invention
[0003] (1) Technical issues to be solved
[0004] The technical problem to be solved by the present invention is: how to adjust the data access mode of the back-end storage medium according to the actual use requirements of the four-controller storage to achieve a dynamic balance between the performance and reliability of the four-controller storage system.
[0005] (2) Technical solution
[0006] In order to solve the above technical problems, the present invention provides a four-controller storage data access system, including a four-controller storage 1, wherein the four-controller storage 1 includes two sets of sub-storages, namely a primary storage 2 and a backup storage 3:
[0007] Both the primary storage 2 and the backup storage 3 are dual-control storage, and both are shared by the primary controller 21 and the backup controller 22 to access the shared storage medium 5. The four controllers in the four-control storage 1 can provide data access services to the outside world at the same time. The back-end storage media of the two sets of dual-control storage can ensure four controls and four active through synchronous remote replication. The primary controller 21 and the backup controller 22 detect the status of the other controller through the heartbeat channel 4, and process the storage reliability according to the heartbeat results. When the primary controller 21 fails, the backup controller 22 can perform fault switching.
[0008] Preferably, the primary storage 2 provides source data and can synchronously copy data from a local storage medium to a destination end of the backup storage 3 .
[0009] Preferably, the following three modules are arranged on each of the four controllers of the four-controller storage 1:
[0010] The cluster data management module is used for four-controller storage. It uses a cluster database to save the data access priority table and remote replication status table. The data access priority table is set when the four-controller storage is initialized. After the setting is completed, the data access path of the data access service is determined according to the storage priority and controller priority. The remote replication status table is used to maintain the standby controller in the sub-storage to detect the remote replication status. When the remote replication status is abnormal, the standby controller needs to perform a failover to repair the remote replication status and ensure the normal operation of remote replication. The storage priority is the priority of the sub-storage. When both controllers of the primary storage fail, if there is a surviving controller in the standby storage, the role of the standby storage is promoted to the primary storage. For controllers with the same storage priority, the failover operation is determined by the priority of the controller. The low-priority controller can perform a failover operation when the high-priority controller fails, and take over the high-priority controller to continue to provide data access services to the outside world.
[0011] The load balancing module is used for the controllers of the sub-storage within the four-controller storage to provide external data access services in a load balancing manner. Clients can read and write the storage media of both the primary and backup controllers simultaneously. When a client accesses the storage media of the primary controller, the primary controller will directly read and write to the local storage media; when a client accesses the storage media of the backup controller, the backup controller will redirect the data access request to the storage media of the primary controller of the same sub-storage. The primary controllers of the two sets of dual-controller storage ensure data consistency of the two sets of dual-controller storage through synchronous remote replication. Ultimately, the four controllers of the two sets of dual-controller storage can provide external data access services simultaneously.
[0012] The fault handling module is used to configure priorities for the sub-storage and its internal controllers in the four-controller storage to ensure that the four-controller storage can provide normal data access services in the event of failure of any three controllers; the four-controller storage divides the primary storage and backup storage into two levels. Within the sub-storage of the same level, the backup controller will perform failover when the primary controller fails; when only the primary controller remains in both the primary and backup storage, when the primary controller of the primary storage fails, the primary controller of the backup storage will perform failover.
[0013] Preferably, under normal use, the four-controller storage 1 can be configured with the roles of primary storage 2 and backup storage 3. When configuring data access services, a remote replication pair needs to be configured. One of the sub-storages in the four-controller storage 1 is configured as primary storage 2, and the storage medium configured in the service is used as the remote replication source 6. The other sub-storage is configured as backup storage 3, and the storage medium configured in the service is used as the remote replication destination 7. The actual data transmission of the entire remote replication is performed by the primary controller under the primary storage 2 and the backup storage 3, and the backup controller does not participate in the remote replication.
[0014] At this time, the cluster data management module generates a data access priority table for the four controllers of Four-Controller Storage 1. This data access priority table is stored in the cluster database of Four-Controller Storage 1. Each controller processes related services according to this data access priority table.
[0015] In addition to the data access priority table, the cluster data management module also maintains a remote replication status table;
[0016] Each controller can simultaneously provide data access services through the load balancing module. The client discovers all paths to the controller through multipathing software, and the path selection method can be configured in load balancing mode. In this case, the client and the four-controller storage have four communication directions:
[0017] 1) Client -> Primary Controller of Primary Storage; When data is in this communication direction, the primary controller receives a data access request and directly sends the request to the local storage medium for processing and returns the result to the client;
[0018] 2) Client -> Primary Storage's Backup Controller: When data is in this communication direction, the backup controller redirects the received data access request to the primary controller of the same primary storage via the intranet communication link. The primary controller sends the request to the local storage medium for processing and returns the result to the backup controller. Finally, the backup controller returns the result to the client.
[0019] 3) Client->Master controller for backup storage; when data is in this communication direction, the master controller receives a data access request and directly sends the request to the local storage medium for processing and returns the result to the client;
[0020] 4) Client -> Backup controller of backup storage; when data is in this communication direction, the backup controller redirects the received data access request to the primary controller of the same backup storage via the intranet communication link. The primary controller sends the request to the local storage medium for processing and returns the result to the backup controller; finally, the backup controller returns the result to the client;
[0021] Finally, data responses are returned to the client in all four communication directions.
[0022] Preferably, during the normal operation of a sub-storage in a four-controller storage, the heartbeat channel of the controller inside the sub-storage may become unavailable. There are two reasons for this: a failure in the heartbeat channel connection; a controller downtime;
[0023] The fault handling module can handle the two types of faults that occur. When either of the two situations occurs, the primary and backup controllers in the sub-storage will detect that the heartbeat channel is unavailable. At this time, corresponding processing can be performed based on the controller status of the primary storage and backup storage in the current four-controller storage.
[0024] Preferably, when the first fault occurs, the fault processing module specifically performs the following processing:
[0025] 1. When the main controller 21 detects that the heartbeat is not working, it directly determines that the standby controller 22 is faulty;
[0026] 2. When the standby controller 22 detects that the heartbeat is not working, it first obtains the remote replication status of the sub-storage where it is located;
[0027] 1) If the remote replication is disconnected, the remote replication status is determined to be abnormal and the main controller is confirmed to be faulty;
[0028] 2) If the remote replication status is normal and the primary controller is operating normally, a heartbeat path failure indicates a split-brain state has occurred in both controllers. The standby controller restarts. If the split-brain state persists after a certain number of restarts, the standby controller is shut down.
[0029] 3) If remote replication is not running, the primary and backup storage in the four-controller storage are not running at the same time. It is necessary to use the intranet communication link to send a heartbeat test for auxiliary verification. If the heartbeat status is normal, it is determined that the heartbeat communication link between the primary controller and the backup controller is faulty, and the current sub-storage is in a split-brain state. The backup controller performs a restart operation. If it is still in a split-brain state after a certain number of restarts, the backup controller is directly shut down; if the heartbeat is not connected, it is determined that the primary controller is faulty.
[0030] Preferably, when the second fault occurs, the fault processing module specifically performs the following controller fault processing:
[0031] When the sub-storage where the faulty controller is located is the backup storage:
[0032] 1) If the faulty controller is a standby controller, failover is not possible;
[0033] 2) If the failed controller is the primary controller, then the backup controller will be changed to the primary controller based on whether there is a backup controller running normally in the current backup storage. If so, the backup controller will be restored to the remote replication state. If not, no failover will be performed, and if there is remote replication, it will be shut down.
[0034] When the sub-storage where the faulty controller is located is the primary storage:
[0035] 1) If the faulty controller is a standby controller, no failover is performed;
[0036] 2) If the faulty controller is the primary controller, if the standby controller of the same sub-storage is not running and the standby storage is not running normally, all four controllers in the four-controller storage will be down and the four-controller storage will fail; if the standby controller of the same sub-storage is not running but the standby storage is running normally, the standby storage will fail over, the standby storage role will be changed to the primary storage, and remote replication will be shut down; if the standby controller of the same sub-storage is running normally and the standby storage is also running normally, the standby controller will change its role to the primary controller and repair the remote replication status; if the standby controller of the same sub-storage is running normally but the standby storage is not running normally, the standby controller will only change its role to the primary controller.
[0037] Preferably, the primary storage 2 and the backup storage 3 are both controlled by a primary controller 21 and a backup controller 22 to share access to a shared storage medium 5 via a SAS backplane.
[0038] Preferably, the two controllers in the dual-controller storage are interconnected via a heartbeat channel, and the two sets of dual-controller storage are interconnected using an intranet channel.
[0039] The invention also provides a design method for the system.
[0040] (3) Beneficial effects
[0041] The system of the present invention ensures that the primary and backup controllers provide data access services in a load-balanced manner by redirecting data access within the dual-controller storage. The primary and backup storage ensure data consistency across the two dual-controller storage systems through intranet remote replication, thereby ensuring that all four controllers simultaneously provide data access services externally in a load-balanced manner. By configuring priorities for the dual-controller storage and its internal controllers, the four-controller storage system can maintain data access services even if any three controllers fail. This system not only improves the overall performance of the four-controller storage system, but also enhances the reliability of the storage system. BRIEF DESCRIPTION OF THE DRAWINGS
[0042] Figure 1 This is a system architecture diagram of the four-controller storage of the present invention;
[0043] Figure 2 This is a schematic diagram of four-controller storage remote replication in the present invention;
[0044] Figure 3 This is a flow chart of client data access request processing in the present invention;
[0045] Figure 4 This is a flowchart of the heartbeat failure processing of the four-controller storage controller of the present invention;
[0046] Figure 5 This is a flowchart of the four-controller storage controller fault switching of the present invention.
[0047] in:
[0048] 1. Four-controller storage 2. Main storage
[0049] 3 backup storage 4 heartbeat channel
[0050] 5 Shared storage media 6 Remote replication source
[0051] 7 Remote replication destination
[0052] 21 Main controller 22 Backup controller DETAILED DESCRIPTION
[0053] In order to make the purpose, content and advantages of the present invention more clear, the specific implementation methods of the present invention are further described in detail below with reference to the accompanying drawings and examples.
[0054] The present invention provides a four-controller storage data access system. The hardware platform required by the system is composed of a set of four-controller storage 1. The four-controller storage 1 includes two sets of sub-storage, namely the main storage 2 and the backup storage 3. Figure 1 As shown:
[0055] Both primary storage 2 and backup storage 3 are traditional dual-controller storage systems, each with a primary controller 21 and a backup controller 22, sharing access to shared storage media 5 via a SAS backplane. The two controllers in the dual-controller storage system are interconnected via a heartbeat channel, and the two sets of dual-controller storage systems are interconnected using an intranet channel. The four controllers in the quad-controller storage system 1 can simultaneously provide external data access services. The back-end storage media of the two dual-controller storage systems is synchronized and replicated remotely to ensure four-controller, four-active systems. The primary controller 21 and the backup controller 22 monitor the status of the other controller via a heartbeat channel 4 and perform storage reliability checks based on the heartbeat results. If the primary controller 21 fails, the backup controller 22 performs failover.
[0056] Primary storage 2 and backup storage 3 are both in a master-slave relationship defined by the system software. This master-slave relationship exists during synchronous remote replication. Primary storage 2 provides source data and synchronously replicates data from local storage media to the destination of backup storage 3.
[0057] The software processing modules required for the four-controller storage data access system include:
[0058] The cluster data management module, used for four-controller storage, uses a cluster database to store data access priority tables and remote replication status tables. The data access priority table is set during the initialization of the four-controller storage. Once set, the data access path for data access services is determined based on the storage priority and controller priority. The remote replication status table is used to maintain the remote replication status of the backup controller in the child storage. If the remote replication status is abnormal, the backup controller needs to perform a failover to restore the remote replication status and ensure normal operation of remote replication.
[0059] The load balancing module, used by the controllers of the sub-storage within a four-controller storage system, provides external data access services using a load-balanced approach. Clients can simultaneously read and write to the storage media of both the primary and backup controllers. When a client accesses the storage media of the primary controller, the primary controller directly reads and writes to the local storage media. When a client accesses the storage media of the backup controller, the backup controller redirects the data access request to the storage media of the primary controller of the same sub-storage system. Synchronous remote replication is implemented between the primary and backup controllers to ensure data consistency across the dual-controller storage systems. Ultimately, the four controllers of the two dual-controller storage systems can simultaneously provide external data access services.
[0060] The fault handling module configures priorities for the sub-storage devices and their internal controllers within a four-controller storage system, ensuring that the system can provide normal data access services even if any three controllers fail. Four-controller storage systems divide primary and backup storage into two levels. Within sub-storage devices of the same level, the backup controller initiates failover if the primary controller fails. When only the primary controller remains on both primary and backup storage systems, the backup controller initiates failover if the primary controller fails.
[0061] The above three software processing modules are installed on each of the four controllers.
[0062] Under normal use, the four-controller storage 1 is configured as the primary storage 2 and the backup storage 3. When configuring the data access service, you need to configure a remote replication pair. Configure one of the sub-storages in the four-controller storage 1 as the primary storage 2, and the storage medium configured in the service as the remote replication source 6. Configure the other sub-storage as the backup storage 3, and the storage medium configured in the service as the remote replication destination 7. Figure 2 The actual data transmission of the entire remote replication is performed by the primary controller of primary storage 2 and backup storage 3. The backup controller does not participate in the remote replication.
[0063] At this point, the cluster data management module generates a data access priority table for the four controllers of Four-Controller Storage 1, with the following structure:
[0064]
[0065]
[0066] The data access priority table is stored in the cluster database of the four-controller storage 1 , and each controller needs to process related services according to the data access priority table.
[0067] In addition to the data access priority table, the cluster data management module also needs to maintain the remote replication status table, which has the following structure:
[0068] Storage media Remote replication status lun1 Not running lun2 normal lun3 Reconnect after disconnection lun4 disconnect
[0069] The remote replication status table is mainly used by the standby controller to detect the remote replication status. When the remote replication status is abnormal, the standby controller needs to perform a failover to repair the remote replication status and ensure the normal operation of remote replication.
[0070] The storage priority is the priority of the sub-storage. When both controllers of the primary storage fail, if there is a surviving controller in the backup storage, the role of the backup storage is promoted to the primary storage. For controllers with the same storage priority, the failover operation is determined by the controller priority. The low-priority controller can perform a failover operation when the high-priority controller fails, taking over the high-priority controller to continue providing external data access services.
[0071] The load balancing module is responsible for providing data access service management, such as IP SAN and FC SAN. Each controller can provide services to the outside world at the same time. The client connects to the four-controller storage data access service and discovers all paths to the controller through the multi-path software. The path selection method can be configured to load balancing mode. At this time, the client and the four-controller storage have four communication directions, such as Figure 3 As shown:
[0072] 1. Client -> Primary Controller of Primary Storage. When data is in this communication direction, the primary controller receives a data access request and directly sends the request to the local storage medium for processing and returns the result to the client.
[0073] 2. Client -> Primary Storage's backup controller. When data is in this communication direction, the backup controller redirects the received data access request to the primary controller of the same primary storage via the intranet communication link. The primary controller sends the request to the local storage medium for processing and returns the result to the backup controller. Finally, the backup controller returns the result to the client.
[0074] 3. Client -> Backup Storage Master Controller. When data is in this communication direction, the master controller receives a data access request and directly sends the request to the local storage medium for processing and returns the result to the client.
[0075] 4. Client -> Backup Controller of Backup Storage. When data is in this communication direction, the backup controller redirects the received data access request to the primary controller of the same backup storage via the intranet communication link. The primary controller sends the request to the local storage medium for processing and returns the result to the backup controller. Finally, the backup controller returns the result to the client.
[0076] Finally, data responses are returned to the client in all four communication directions.
[0077] During normal operation of a sub-storage system with four controllers, the heartbeat channel of the sub-storage controller may become unavailable. This may occur for two reasons:
[0078] 1. The heartbeat channel connection fails;
[0079] 2. The controller crashes.
[0080] The fault handling module can handle the above faults.
[0081] In either case, the primary and backup controllers in the child storage system will detect that the heartbeat channel is unavailable. At this point, appropriate action will be taken based on the status of the primary and backup controllers in the four-controller storage system.
[0082] When the first situation occurs, such as Figure 4 As shown, the following processing is performed:
[0083] 1. When the main controller 21 detects that the heartbeat is not working, it directly determines that the standby controller 22 is faulty;
[0084] 2. When the standby controller 22 detects that the heartbeat is unavailable, it first obtains the remote replication status of the sub-storage in which it is located.
[0085] 1) If the remote replication is disconnected, the remote replication status is determined to be abnormal and the main controller is confirmed to be faulty;
[0086] 2) If the remote replication status is normal and the primary controller is operating normally, a heartbeat path failure indicates a split-brain state has occurred in both controllers. Restart the standby controller. If the split-brain state persists after five restarts, shut down the standby controller.
[0087] 3) If remote replication is not running, the primary and backup storage in the four-controller storage are not running at the same time. It is necessary to use the intranet communication link to send a heartbeat test for auxiliary verification. If the heartbeat status is normal, it means that the heartbeat communication link between the primary controller and the backup controller is faulty, and the current sub-storage is in a split-brain state. The backup controller performs a restart operation. If it is still in a split-brain state after restarting 5 times, the backup controller is directly shut down; if the heartbeat is not connected, it is determined that the primary controller is faulty.
[0088] When the second situation occurs, such as Figure 5 As shown, perform controller fault processing:
[0089] 1. When the sub-storage where the failed controller is located is the backup storage:
[0090] 1) If the faulty controller is a standby controller, failover is not possible;
[0091] 2) If the failed controller is the primary controller, then the backup controller will be changed to the primary controller based on whether there is a backup controller running normally in the current backup storage. If there is, the backup controller will change its controller role to the primary controller and restore the remote replication status. If there is no backup controller, no failover will be performed. If there is remote replication currently, it will be closed.
[0092] 2. When the sub-storage where the failed controller is located is the primary storage:
[0093] 1) If the faulty controller is a standby controller, no failover is performed;
[0094] 2) If the faulty controller is the primary controller, if the standby controller of the same sub-storage is not running and the standby storage is not running normally, all four controllers in the four-controller storage will be down and the four-controller storage will fail; if the standby controller of the same sub-storage is not running but the standby storage is running normally, the standby storage will fail over, the standby storage role will be changed to the primary storage, and remote replication will be shut down; if the standby controller of the same sub-storage is running normally and the standby storage is also running normally, the standby controller will change its role to the primary controller and repair the remote replication status; if the standby controller of the same sub-storage is running normally but the standby storage is not running normally, the standby controller will only change its role to the primary controller.
[0095] The above is only a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the technical principles of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.
Claims
1. A four-controller storage data access system, characterized in that: The system comprises a four-controller storage (1), wherein the four-controller storage (1) comprises two sets of sub-storages, namely a main storage (2) and a backup storage (3): The main storage (2) and the backup storage (3) are both dual-control storage, and both are shared by the main controller (21) and the backup controller (22) to access the shared storage medium (5). The four controllers in the four-control storage (1) can provide data access services to the outside at the same time. The back-end storage media of the two sets of dual-control storage can ensure that the four controllers are in normal working state through synchronous remote replication. The main controller (21) and the backup controller (22) can detect the status of the other controller through the heartbeat channel (4), and perform storage reliability processing based on the heartbeat result. When the main controller (21) fails, the backup controller (22) can perform failover. The primary storage (2) provides source data and can synchronously copy data from the local storage medium to the destination end of the backup storage (3); The following three modules are arranged on each of the four controllers of the quad-controller storage (1): The cluster data management module is used for four-controller storage. It uses a cluster database to save the data access priority table and remote replication status table. The data access priority table is set when the four-controller storage is initialized. After the setting is completed, the data access path of the data access service is determined according to the storage priority and controller priority. The remote replication status table is used to maintain the standby controller in the sub-storage to detect the remote replication status. When the remote replication status is abnormal, the standby controller needs to perform a failover to repair the remote replication status and ensure the normal operation of remote replication. The storage priority is the priority of the sub-storage. When both controllers of the primary storage fail, if there is a surviving controller in the standby storage, the role of the standby storage is promoted to the primary storage. For controllers with the same storage priority, the failover operation is determined by the priority of the controller. The low-priority controller can perform a failover operation when the high-priority controller fails, and take over the high-priority controller to continue to provide data access services to the outside world. The load balancing module is used for the controllers of the sub-storage within the four-controller storage to provide external data access services in a load balancing manner. Clients can read and write the storage media of both the primary and backup controllers simultaneously. When a client accesses the storage media of the primary controller, the primary controller will directly read and write to the local storage media; when a client accesses the storage media of the backup controller, the backup controller will redirect the data access request to the storage media of the primary controller of the same sub-storage. The primary controllers of the two sets of dual-controller storage ensure data consistency of the two sets of dual-controller storage through synchronous remote replication. Ultimately, the four controllers of the two sets of dual-controller storage can provide external data access services simultaneously. The fault handling module is used to configure priorities for the sub-storage and its internal controllers in the four-controller storage to ensure that the four-controller storage can provide normal data access services in the event of failure of any three controllers; the four-controller storage divides the primary storage and backup storage into two levels. Within the sub-storage of the same level, the backup controller will perform failover when the primary controller fails; when only the primary controller remains in both the primary and backup storage, when the primary controller of the primary storage fails, the primary controller of the backup storage will perform failover.
2. The system according to claim 1, wherein Under normal use, the four-controller storage (1) can be configured as the primary storage (2) and the backup storage (3). When configuring the data access service, a remote replication pair needs to be configured. One of the sub-storages in the four-controller storage (1) is configured as the primary storage (2), and the storage medium configured in the service is used as the remote replication source (6). The other sub-storage is configured as the backup storage (3), and the storage medium configured in the service is used as the remote replication destination (7). The actual data transmission of the entire remote replication is carried out by the primary controller under the primary storage (2) and the backup storage (3). The backup controller does not participate in the remote replication. At this time, the cluster data management module generates a data access priority table for the four controllers of the four-controller storage (1). The data access priority table is stored in the cluster database of the four-controller storage (1). Each controller processes related services according to the data access priority table. In addition to the data access priority table, the cluster data management module also maintains a remote replication status table; Each controller can simultaneously provide data access services through the load balancing module. The client discovers all paths to the controller through multipathing software, and the path selection method can be configured in load balancing mode. In this case, the client and the four-controller storage have four communication directions: 1) Client -> Primary Controller of Primary Storage; When data is in this communication direction, the primary controller receives a data access request, directly sends the request to the local storage medium for processing, and returns the result to the client; 2) Client -> Primary Storage's backup controller: When data is in this communication direction, the backup controller redirects the received data access request to the primary controller of the same primary storage via the intranet communication link. The primary controller sends the request to the local storage medium for processing and returns the result to the backup controller. Finally, the backup controller returns the result to the client. 3) Client -> Master Controller of Backup Storage; When data is in this communication direction, the master controller receives a data access request, directly sends the request to the local storage medium for processing, and returns the result to the client; 4) Client -> Backup controller of backup storage; When data is in this communication direction, the backup controller redirects the received data access request to the primary controller of the same backup storage via the intranet communication link. The primary controller sends the request to the local storage medium for processing and returns the result to the backup controller; Finally, the standby controller returns the result to the client; Finally, data responses are returned to the client in all four communication directions.
3. The system according to claim 2, wherein: During normal operation of a sub-storage system with four controllers, the heartbeat channel of the sub-storage controller may become unavailable. This may be caused by two reasons: a heartbeat channel connection failure; or a controller failure. The fault handling module can handle the two types of faults that occur. When either of the two situations occurs, the primary and backup controllers in the sub-storage will detect that the heartbeat channel is unavailable. At this time, corresponding processing can be performed based on the controller status of the primary storage and backup storage in the current four-controller storage.
4. The system according to claim 3, wherein: When the first fault occurs, the fault processing module is specifically configured to perform the following processing:
1. When the main controller (21) detects that the heartbeat is not working, it directly determines that the standby controller (22) is faulty; 2. When the standby controller (22) detects that the heartbeat is not working, it first obtains the remote replication status of the sub-storage where it is located; If the remote replication is disconnected, it is determined that the remote replication status is abnormal and the main controller is faulty. If the remote replication status is normal, confirm that the master controller is operating normally. If the heartbeat path fails, it is determined that the dual controllers are in a split-brain state. The standby controller restarts. If the split-brain state persists after a certain number of restarts, the standby controller shuts down directly. If remote replication is not running, the primary and backup storage in the four-controller storage are not running simultaneously. It is necessary to use the intranet communication link to send heartbeat detection for auxiliary verification. If the heartbeat status is normal, it is determined that the heartbeat communication link between the primary and backup controllers is faulty, and the current sub-storage is in a split-brain state. The backup controller performs a restart operation. If the split-brain state persists after a certain number of restarts, the backup controller is directly shut down. If the heartbeat fails, it is determined that the main controller is faulty.
5. The system according to claim 4, wherein: When the second fault occurs, the fault processing module is specifically used to perform the following controller fault processing: When the sub-storage where the faulty controller is located is the backup storage: If the faulty controller is a standby controller, failover will not be performed; If the failed controller is the primary controller, the system will determine whether there is a normal backup controller in the current backup storage. If so, the backup controller will change its controller role to the primary controller and restore the remote replication status. If not, no failover will be performed and remote replication will be shut down if it is currently running. When the sub-storage where the faulty controller is located is the primary storage: If the faulty controller is a standby controller, no failover is performed; 2) If the faulty controller is the primary controller, and if the standby controller of the same sub-storage is not running and the standby storage is not running normally, all four controllers in the four-controller storage will be down, and the four-controller storage will fail; if the standby controller of the same sub-storage is not running but the standby storage is running normally, the standby storage will fail over, the standby storage role will be changed to primary storage, and remote replication will be shut down; if the standby controller of the same sub-storage is running normally and the standby storage is also running normally, the standby controller will change its role to primary controller and repair the remote replication status; if the standby controller of the same sub-storage is running normally but the standby storage is not running normally, the standby controller will only change its role to primary controller.
6. The system according to claim 1, wherein: The primary storage 2 and the backup storage (3) are both controlled by a primary controller (21) and a backup controller (22) to share access to a shared storage medium (5) via a SAS backplane.
7. The system according to any one of claims 1 to 6, characterized in that The two controllers in the dual-controller storage are interconnected via a heartbeat channel, and the two sets of dual-controller storage are interconnected using an intranet channel.
Citation Information
Patent Citations
Method for designing multi-control storage system
CN103152397A
Storage disaster tolerant control system
CN106357787A