Dual Controller Storage Metadata Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional enterprise storage systems face challenges in maintaining high performance, resiliency, and availability after a controller failure, often requiring trade-offs between data integrity, system uptime, and cost, as they struggle to efficiently recover from fatal failures and metadata loss.
Innovation Solution
A dual controller storage system that implements snapshotting of metadata to resilient storage, continues to operate with a single controller by storing data and metadata in shared system memory, and updates metadata changes in a log structured array, allowing for seamless recovery and reduced downtime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional storage systems implement dual controller arrangement for high performance, then performance is improved when both controllers are functioning, but when one controller fails, the system cannot maintain performance and must choose between downtime or data loss
Solution Approach 1:
The system performs preliminary actions by continuously maintaining synchronized metadata between both controllers during normal operation. When a controller fails, the surviving controller already has the necessary metadata to immediately take over, eliminating recovery downtime. This is achieved through continuous metadata synchronization and the ability of either controller to become the active metadata controller at any time.
Solution Approach 2:
The system changes the operational parameter of controller roles dynamically. During normal operation, both controllers are active. Upon failure, the system transitions to a single-controller mode where the surviving controller assumes both active and standby metadata controller roles, changing its operational parameters to handle the full workload alone without performance degradation.
2Reliability
If the system continues to serve I/Os with a single controller after failure, then availability is maintained, but the system operates without redundancy or backup functionality
Solution Approach 1:
The system creates and maintains copies of metadata on both controllers during normal operation. When one controller fails, the surviving controller already possesses a complete copy of the metadata, allowing it to continue serving I/O requests without risk of data loss. This copying mechanism ensures that the system can operate with a single controller while maintaining full redundancy protection.
3Loss of time
If recovery tools are used to repair storage product after fatal failure, then recovery from backup is avoided, but substantial data and metadata loss occurs
Solution Approach 1:
The system is designed to be self-healing through automatic failover. When a controller fails, the surviving controller automatically assumes the failed controller's responsibilities using its synchronized metadata copy, without requiring external recovery tools or manual intervention. This self-service capability prevents both data loss and extended downtime that would occur with traditional recovery tools.
4Reliability
If data and metadata are continuously backed up to persistent storage to prevent loss, then data integrity is improved, but severe performance impact occurs making it non-viable
Solution Approach 1:
The system extracts the metadata synchronization function from the main I/O performance path. Metadata is synchronized between controllers through a separate, optimized mechanism that does not interfere with data I/O operations. This extraction allows continuous metadata backup for integrity protection while maintaining high system performance, as the metadata synchronization occurs independently from the performance-critical data paths.
Data Source
AI summary
A controller-implemented method, according to one embodiment, includes: receiving, by a first controller, data. Metadata associated with the data is stored, by the first controller, in a specified system memory location. Second metadata received from a second controller is also stored, by the first controller, in the specified system memory location, thereby creating combined metadata. In response to the second controller entering a failed state: snapshots of the combined metadata are stored, by the first controller, to resilient storage at a predefined interval. Moreover, additional data continues to be received by the first controller. Metadata associated with the additional data is stored, by the first controller, in the specified system memory location, while changes to the metadata which occur between the snapshots of the combined metadata are also stored by the first controller. According to some approaches, the changes to the metadata are stored in a log structured array.


