Storage Controller Failover via State Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current information handling systems, such as storage arrays, face challenges in seamless failover between controllers, particularly when the active controller fails, leading to potential data loss and service disruption due to the lack of efficient state information synchronization and resource reconfiguration.
Innovation Solution
The system employs a standby controller that continuously synchronizes state information with the active controller, utilizing a hypervisor to manage resource allocation and switch control, enabling seamless failover by redirecting I/O requests and restoring service with minimal disruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a standby controller continuously synchronizes state information with the active controller, then failover reliability is improved, but system complexity and resource consumption increase
Solution Approach 1:
The standby controller continuously synchronizes state information with the active controller in advance, maintaining an up-to-date copy of critical data including I/O request status, write cache contents, and controller state. This preliminary action ensures that when failover is needed, the standby controller can immediately take over without data loss or service disruption, resolving the contradiction by preparing the system beforehand rather than reacting to failures
Solution Approach 2:
The system creates a redundant copy of the active controller's state information in the standby controller's memory. This copying mechanism includes duplicating critical data structures, cache contents, and operational state, allowing the standby controller to function as a precise replica when needed. The copying principle resolves the contradiction by providing a simple yet effective method to ensure failover reliability without requiring complex real-time computation or additional hardware beyond the redundant controller
2Reliability
If the standby controller takes over I/O operations during failover, then service availability is improved, but data integrity risks increase due to potential state desynchronization
Solution Approach 1:
The system implements continuous feedback mechanisms where the standby controller monitors the active controller's state changes in real-time. Any modifications to critical data structures, cache contents, or I/O request status are immediately detected and synchronized to the standby controller. This feedback loop ensures data integrity during failover by guaranteeing that the standby controller possesses an accurate, up-to-date copy of all critical information before taking over operations
Solution Approach 2:
Before the standby controller assumes I/O operations, the system performs preliminary validation to ensure complete state synchronization. This includes verifying that all pending I/O requests are accounted for, cache data is synchronized, and controller state is consistent. Only after confirming complete synchronization does the failover proceed, eliminating data integrity risks while maintaining service availability
3Productivity
If multiple standby controllers are added to support scaling, then system capacity is improved, but synchronization overhead and complexity increase
Solution Approach 1:
The system segments the synchronization responsibility by having each standby controller synchronize only with the active controller, rather than maintaining complex peer-to-peer synchronization between multiple controllers. This segmentation creates a clear hierarchical data flow where the active controller is the single source of truth, and multiple standby controllers independently replicate its state. This approach enables system scaling while keeping synchronization overhead manageable through a simple star topology
Data Source
AI summary
An information handling system includes first and second memories, and first, second, and third servers. The first server includes a first active application for servicing first input/output requests associated with a first disk, and for storing first state information in the first memory. The second server includes a second active application for servicing second input/output requests associated with a second disk, and for storing second state information in the second memory. The third server includes first and second standby applications, and is configured to monitor the first and second active applications, to detect a failure of the first active application, to suspend the second standby application and to activate the first standby application in response to the failure of first active application.


