Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
First Claim
1. A method for maintaining mirrored data consistency between a primary networked storage node and a secondary networked storage node using write-intent logging, the method comprising:
- receiving an input/output (I/O) request at the primary networked storage node, wherein receiving the I/O request at the primary networked storage node comprises;
checking a counter associated with an area of the disk targeted by the I/O request;
checking the log entry associated with the area;
placing the I/O request into a wait queue if the counter is zero and the log entry is not set;
placing the I/O request into a hold queue if the counter is zero and the log entry is set; and
processing the wait queue and the hold queue;
logging the I/O request to a log at the primary networked storage node;
storing the log to a disk associated with the primary networked storage node;
executing the I/O request at the primary networked storage node;
relaying the I/O request to the secondary networked storage node for execution;
waiting for completion of both executing the I/O request at the primary networked storage node, and execution of the I/O request to the secondary networked storage node;
clearing the log after waiting; and
acknowledging completion of the I/O request after clearing the log.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques for maintaining mirrored storage cluster data consistency can employ write-intent logging. The techniques can be scaled to any number of mirror nodes. The techniques can keep track of any outstanding I/Os, data in caches, and data that has gone out of sync between mirrored nodes due to link failures. The techniques can ensure that a power failure on any of the storage nodes does not result in inconsistent data among the storage nodes. The techniques may keep track of outstanding I/Os using a minimal memory foot-print and having a negligible impact on the I/O performance. Properly choosing the granularity of the system for tracking outstanding I/Os can result in a minimal amount of data requiring transfer to synchronize the mirror nodes. The capability to vary the granularity based on physical and logical parameters of the storage volumes may provide performance benefits.
343 Citations
4 Claims
-
1. A method for maintaining mirrored data consistency between a primary networked storage node and a secondary networked storage node using write-intent logging, the method comprising:
-
receiving an input/output (I/O) request at the primary networked storage node, wherein receiving the I/O request at the primary networked storage node comprises; checking a counter associated with an area of the disk targeted by the I/O request; checking the log entry associated with the area; placing the I/O request into a wait queue if the counter is zero and the log entry is not set; placing the I/O request into a hold queue if the counter is zero and the log entry is set; and processing the wait queue and the hold queue; logging the I/O request to a log at the primary networked storage node; storing the log to a disk associated with the primary networked storage node; executing the I/O request at the primary networked storage node; relaying the I/O request to the secondary networked storage node for execution; waiting for completion of both executing the I/O request at the primary networked storage node, and execution of the I/O request to the secondary networked storage node; clearing the log after waiting; and acknowledging completion of the I/O request after clearing the log. - View Dependent Claims (2, 3, 4)
-
Specification