Producing a mirrored copy using incremental-divergence
AssigneeMarathon Technologies Corporation
InventorsGlenn A. Tremblay, Paul A. Leveille, Charles H. Kaman, Gairy Grannum
Life of this patent
Estimating the term…
Abstract
Producing a mirror copy using incremental-divergence is performed in a computer system in which write requests are each associated with a reference label. A mirror set may be restored to a state in which the data storage devices contain identical data by copying from the data storage device having “good” data only portions of data which have not been stored on the data storage device having divergent data. Incremental-divergence copying may be accomplished by keeping track of the changes made after a point in which the data storage devices are known to contain identical data.
Claims62
A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising:
- receiving write requests at a first storage device, the first storage device including an associated controller;
- processing the write requests received at the first storage device;
- receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage;
- processing the write requests received at the second storage device;
- sending a commit-synchronization message to the second storage device along with information designating a write request;
- and
- having the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device.
A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising:
- receiving write requests at a first storage device, the first storage device including an associated controller, volatile storage, and non-volatile storage;
- processing the write requests received at the first storage device;
- receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage;
- processing the write requests received at the second storage device;
- after determining that the second storage device is about to enter a period in which the second storage device will be unable to process write requests, having the controller of the first storage device send a commit-synchronization message to the second storage device along with information designating a write request;
- having the controller of the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device;
- after sending the commit-synchronization message, having the controller of the first storage device accumulate regions of storage affected by new write requests in a bit map;
- after the second storage device is able to process write requests, having the controller of the first storage device use the bit map to identify the regions of storage of the first storage device to be copied from the first storage device to the second storage device;
- and
- copying the contents of the identified regions of the first storage device to the second storage device.
A method of maintaining a mirrored copy of a first storage device at a second storage device in a computer system, the method comprising:
- receiving write requests at a first storage device, the first storage device including an associated controller, volatile storage, and non-volatile storage;
- processing the write requests received at the first storage device;
- receiving write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage;
- processing the write requests received at the second storage device;
- having the controller of the first storage device accumulate regions of storage affected by new write requests in a first bit map,
- having the controller of the first storage device send a commit-synchronization message to the second storage device along with information designating a uniquely identified write request;
- having the controller of the second storage device, after receiving the commit-synchronization message, confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device;
- after sending the commit-synchronization message, having the controller of the first storage device accumulate regions of storage affected by new write requests in a second bit map;
- after the controller of the second storage device confirms that data in the processed write requests have been written to non-volatile storage of the second storage device, sending a status message to the first storage device indicating whether the write data were successfully written to non-volatile storage;
- after receiving the status message indicating that the write data were successfully written, deleting the first bit map;
- after receiving the status message indicating that the write data were not successfully written, copying the contents of the second bit map to the first bit map and deleting the second bit map;
- after the second storage device is able to process write requests after a period in which the second storage device was unable to process write requests:
- copying the contents of the second bit map to a recovery bit map;
- using the recovery bit map to identify regions of storage of the first storage device to be copied from the first storage device to the second storage device,
- copying the contents of the identified regions of the first storage device to the second storage device, and
- having the controller of the first storage device accumulate regions of storage affected by new write requests in a third bit map.
A mirrored data storage system comprising:
- a first storage device;
- a second storage device;
- a first controller associated with the first storage device;
- and
- a second controller associated with the second storage device;
- wherein:
- the first controller is configured to:
- receive write requests at a first storage device;
- process the write requests received at the first storage;
- and
- send a commit-synchronization message to the first storage device along with information designating one write request;
- and
- the second controller is configured to:
- receive write requests at a second storage device, the second storage device including volatile storage and non-volatile storage;
- process the write requests received at the second storage device;
- confirm that data associated with the write request identified by the information in the commit-synchronization message have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message and processing the write request identified by the information in the commit-synchronization message.
A computer-readable medium or propagated signal having embodied thereon a computer program configured to maintain a mirrored copy of a first storage device at a second storage device in a computer system, the medium comprising code segments configured to:
- receive write requests at a first storage device, the first storage device including an associated controller;
- process the write requests received at the first storage device;
- receive write requests at a second storage device, the second storage device including an associated controller, volatile storage, and non-volatile storage;
- process the write requests received at the second storage device;
- send a commit-synchronization message to the second storage device along with information designating a write request;
- and
- confirm that data associated with the designated write request have been written to the non-volatile storage of the second storage device after receiving the commit-synchronization message.
Dependencies are inferred from the claim text.