RAID Controller Failover via Inter-Controller State Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current RAID systems do not provide adequate protection against failures of the RAID controller, which can lead to data unavailability and system downtime, despite offering protection against storage device failures.
Innovation Solution
Implementing a redundant array of independent disks system with inter-controller communication, where controllers are designed for active/active operation, using a high-speed symmetric inter-controller communication protocol that allows direct remote writes, and mapping memory devices to enable seamless failover in case of controller failure, thereby avoiding intermediate buffers and ensuring continuous data availability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a single RAID controller is used to manage storage devices, then the system structure is simple and cost-effective, but the system lacks fault tolerance against controller failures leading to data unavailability
Solution Approach 1:
The system divides the controller functionality into multiple independent RAID controllers (first controller and second controller), each capable of independently managing the storage array. This segmentation allows the system to tolerate controller failures while maintaining data availability, as each controller can operate independently or take over for the other.
Solution Approach 2:
Each controller maintains its own local memory device with controller state information specific to that controller. This local quality ensures that each controller has the necessary state information to take over operations, providing fault tolerance while keeping each controller's complexity manageable.
2Reliability
If controller state information is stored only in local memory, then memory access is fast and simple, but failover capability is lost when the primary controller fails
Solution Approach 1:
The system performs preliminary actions by maintaining controller state information in both local memory devices and remotely in the other controller's memory. This preliminary duplication of state information ensures that when a controller fails, the surviving controller already possesses the necessary state information to immediately take over operations without waiting for state reconstruction.
Solution Approach 2:
The patent introduces an intermediary mechanism where each controller can access and store state information in the other controller's memory device. This intermediary approach allows rapid failover by providing an intermediate storage location for critical state information, reducing the time required to recover from controller failures.
3Reliability
If controllers operate independently without inter-controller communication, then system operation is simple, but automatic failover cannot be detected or executed
Solution Approach 1:
The system implements feedback mechanisms where controllers continuously monitor each other's operational status through inter-controller communication. This feedback allows the system to detect controller failures automatically and trigger appropriate failover actions, ensuring high availability while maintaining relatively simple controller logic through standardized monitoring protocols.
4Reliability
If remote memory access is implemented for failover, then controller state can be recovered, but access delays and command drops may occur
Solution Approach 1:
The system performs preliminary actions by maintaining up-to-date copies of controller state information in both local and remote memory devices before failures occur. This preliminary synchronization ensures that when failover is needed, the surviving controller already has the necessary state information locally available, eliminating the need for time-consuming remote memory access during the failover process itself.
Data Source
AI summary
A method of operation of a redundant array of independent disks system includes: instantiating a first controller having a first local map and a first remote map; instantiating a second controller having a second local map and a second remote map mapped to the first local map; mapping a first memory device to the first local map by the first controller; coupling a storage device to the second controller and the first controller; and switching control of the storage device to the first controller, when a failure of the second controller is detected, by the first controller reading the first memory device.


