Multi-Array Consistency Group Snapshot Coordination
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for implementing multi-array consistency groups in database backup systems fail to ensure consistent snapshots across multiple Logical Units (LUs) located on different storage arrays, leading to potential inconsistencies during backup and restoration processes.
Innovation Solution
The method involves applying a write Input/Output (I/O) queue interval to Logical Units within a consistency group, marking each write I/O with a timestamp, and suspending I/O operations when a snapshot request is received. Participating storage arrays determine if the snapshot request timestamp falls within the write I/O queue interval, and perform actions such as completing older writes, creating a local snapshot, or resuming I/O operations accordingly, using a two-phase commit protocol and distributed clock synchronization for coordinated snapshot creation across multiple storage arrays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a consistency group snapshot is taken across multiple storage arrays, then data consistency is improved, but system complexity increases
Solution Approach 1:
A master storage array is introduced as an intermediary coordinator to manage snapshot operations across multiple participating storage arrays. The master array receives snapshot requests, coordinates the two-phase commit protocol, and synchronizes timestamp-based consistency across all arrays, thereby achieving cross-array data consistency while centralizing control logic to manage complexity.
Solution Approach 2:
The system performs preliminary actions by establishing a write I/O queue interval and assigning timestamps to I/O operations before the snapshot operation. This preliminary timestamping and queue interval setup enables the subsequent snapshot process to efficiently determine consistency without complex real-time coordination during the actual snapshot capture.
2Reliability
If I/O operations are suspended during snapshot, then snapshot consistency is improved, but productivity decreases
Solution Approach 1:
Instead of suspending all I/O operations across the entire system, the patent applies I/O suspension only to the specific Logical Units (LUs) that are members of the consistency group being snapshotted. This partial suspension approach maintains snapshot consistency for the targeted LUs while allowing other I/O operations to continue, thereby minimizing the impact on overall system productivity.
Solution Approach 2:
The system establishes a write I/O queue interval before suspending I/O operations. This preliminary queue setup captures all write operations that occurred within the snapshot window, allowing the system to resume I/O operations immediately after the snapshot without losing data consistency, thus reducing the duration of I/O suspension and maintaining higher productivity.
3Reliability
If write I/O queue interval is applied, then snapshot atomicity is improved, but device complexity increases
Solution Approach 1:
The system changes the parameter of time by implementing a write I/O queue interval with timestamp marking. This temporal parameter transformation allows the system to determine snapshot atomicity by comparing timestamps against the queue interval, converting a complex atomicity verification problem into a simpler time-based comparison that can be efficiently evaluated across multiple storage arrays.
Data Source
Figure 1A
Figure 1B
Figure 2A
AI summary
A method for implementing multi-array consistency groups includes applying a write Input/Output (I/O) queue interval to a Logical Unit (LU) member of a consistency group (CG). The method also includes marking each write I/O with a timestamp and suspending I/O from the participating storage array to the LU member of the CG upon the participating storage array receiving a snapshot request from a master storage array. The method further includes determining whether the snapshot request timestamp is within the write I/O queue interval of the participating storage array.