Creating and maintaining clones in continuous data protection
AssigneeEMC Corporation
InventorAssaf Natanzon
Life of this patent
Estimating the term…
Abstract
In traditional storage arrays, the number of clones permitted inside the storage array may be limited by the amount of available storage. Further, clones stored on the array may require significant storage resources. Thus, the number of clone stored by the storage array may also be limited by the storage system memory and not just by the disk space. Accordingly, example embodiments of the present invention allow for creating and maintaining a plurality (e.g., an unlimited number) of thin asynchronous clones in storage, even if replica storage is capable of storing only a limited number of snapshots. Further, example embodiments of the present invention allow clones to be freely attached and detached from the replication environment for various purposes.
Claims25
A method comprising:
- maintaining a volume at a production site;
- maintaining a copy of the volume at a copy site;
- selectively storing a clone of the copy of the volume at the production site, the copy site or a remote storage;
- receiving an input/output (I/O) sent to the volume at the production site;
- replicating the I/O to the copy of the volume at the copy site;
- applying the I/O to the copy of the volume at the copy site and the clone at the production site, the copy site, or the remote storage, and
- determining a state of the clone of the copy of the volume with respect to the copy of the volume;
- if the clone of the copy of the volume is in a sync state:
- continuing to store I/Os;
- and
- if the clone of the copy of the volume is in a syncing state:
- updating dirty locations which differ between the clone of the copy of the volume and the copy of the volume by copying data from the copy of the volume to the clone and clearing a dirty bit in a differential bitmap;
- and
- updating a new I/O arriving to the copy of the volume to the clone of the copy of the volume if the new I/O is to a synchronized area.
An apparatus comprising:
- a processor;
- and
- memory encoded with instructions that, when executed by the processor, cause the apparatus to perform the operations of:
- maintaining a volume at a production site;
- maintaining a copy of the volume at a copy site;
- selectively storing a clone of the copy of the volume at the production site, the copy site, or a remote storage;
- receiving an input/output (I/O) sent to the volume at the production site;
- replicating the I/O to the copy of the volume at the copy site;
- applying the I/O to the copy of the volume at the copy site and the clone at the production site, the copy site, or the remote storage, and
- determining a state of the clone of the copy of the volume with respect to the copy of the volume;
- if the clone of the copy of the volume is in a sync state:
- continuing to store I/Os;
- and
- if the clone of the copy of the volume is in a sync state:
- updating dirty locations which differ between the clone of the copy of the volume and the copy of the volume by copying data from the copy of the volume to the clone and clearing a dirty hit in a differential bitmap;
- and
- updating a new I/O arriving to the copy of the volume to the clone of the copy of the volume if the new I/O is to a synchronized area.
A computer program product having a non-transitory computer readable storage medium with instructions encoded thereon that, when executed by a processor of a computer, causes the computer to perform the operations of:
- maintaining a volume at a production site;
- maintaining a copy of the volume at a copy site;
- selectively storing a clone of the copy of the volume at the production site, the copy site or a remote storage;
- receiving an input/output (I/O) sent to the volume at the production site;
- replicating the I/O to the copy of the volume at the copy site;
- and
- applying the I/O to the copy of the volume at the copy site and the clone at the production site, the copy site, or the remote storage, and
- determining a state of the clone of the copy of the volume with respect to the copy of the volume;
- if the done of the copy of the volume is in a sync state:
- continuing to store I/Os;
- and
- if the clone of the copy of the volume is in a syncing state:
- updating, dirty locations which differ between the done of the copy of the volume and the copy of the volume by copying data from the copy of the volume to the clone and clearing a dirty bit in a differential bitmap;
- and
- updating a new I/O arriving to the copy of the volume to the clone of the copy of the volume if the new is to a synchronized area.
Dependencies are inferred from the claim text.