Storage Processor Cache Mirroring for Failover Redundancy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage systems with two active storage processors experience performance degradation and lack redundancy when one processor fails, leading to potential unavailability if the remaining processor also fails.
Innovation Solution
Implement a storage system with multiple storage processors connected via cache mirroring connections, allowing standby processors to take over IO requests and maintain cache mirroring, ensuring continuous operation and redundancy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If one storage processor fails, then the remaining active storage processor takes over all IO requests, but the processing speed decreases and redundancy is lost
Solution Approach 1:
The system segments IO request processing across multiple storage processors. When one processor fails, the remaining processors continue to handle IO requests independently for their assigned logical units, rather than consolidating all processing on a single processor. This segmentation maintains processing parallelism and prevents the bottleneck that would occur with complete consolidation.
Solution Approach 2:
The system performs preliminary configuration by pre-establishing cache mirroring connections between multiple storage processors before any failure occurs. Standby processors are pre-positioned and pre-configured with mirrored cache data, enabling them to immediately take over IO processing for failed processors without requiring data reconstruction or system reconfiguration during the failure event.
2Reliability
If one storage processor fails, then the system lacks redundancy, but adding more active processors increases complexity
Solution Approach 1:
The system merges the functional capabilities of active and standby processors by implementing cache mirroring, where standby processors maintain identical cache copies of active processors. This merging allows standby processors to immediately assume active roles upon failure without requiring complex reconfiguration or data synchronization protocols, simplifying the overall system architecture while maintaining redundancy.
Solution Approach 2:
The system creates copy instances of storage processor functionality through cache mirroring, where standby processors maintain exact copies of cache data from active processors. This copying mechanism provides redundancy without requiring full duplicate processor configurations, reducing complexity by sharing common components while maintaining failover capability.
3Reliability
If cache mirroring is implemented between multiple storage processors, then data integrity is maintained during failover, but the system requires more connections and infrastructure
Solution Approach 1:
The cache mirroring infrastructure is designed to serve multiple functions simultaneously: it enables failover redundancy, maintains data integrity during transitions, and provides performance optimization through cache sharing. This multi-functionality justifies the infrastructure complexity by delivering multiple benefits from a single architectural feature.
Solution Approach 2:
The system implements cache mirroring as a preventive measure before failures occur, cushioning against potential data loss or integrity issues during failover events. By maintaining pre-synchronized cache copies on standby processors, the system ensures data integrity is preserved during transitions without requiring complex verification protocols after failures occur.
Data Source
AI summary
A method performed by a storage system includes a first storage processor performing input/output (IO) requests on a first one or more logical units, and a second storage processor performing IO requests on a second one or more logical units. If the first storage processor fails, the third storage processor performs the IO requests on the first one or more logical units. If the second storage processor fails, the fourth storage processor performing the IO requests on the second one or more logical units.


