Replicating snapshots from a source storage system to a target storage system
First Claim
1. A method for transmitting a snapshot from a source system to a target system, the method comprising:
- storing, in a source storage system, a plurality of snapshots, wherein a snapshot shares data blocks with one or more other snapshots stored in the source storage system;
maintaining parent-child relationships between snapshots if a child snapshot is created from a parent snapshot, wherein at least a parent snapshot has a parent child relationship with two or more child snapshots created from the parent snapshot, such that each child snapshot can be modified independent of the other child snapshots;
transmitting data of a first snapshot from the source storage system to a target storage system;
identifying a second snapshot to transmit from the source storage system to a target storage system, wherein the first snapshot and the second snapshot have a common ancestor snapshot such that both the first snapshot and the second snapshot are descendants of the common ancestor snapshot based on parent child relationships;
identifying data blocks of the second snapshot that are distinct from the first snapshot; and
transmitting the identified data blocks of the second snapshot to the target storage system.
14 Assignments
0 Petitions
Accused Products
Abstract
A source storage system replicates snapshots stored on the source storage system to a target storage system. The source storage system stores a plurality of snapshots. The source storage system also stores parent child relationships between snapshots. The source storage system allows child snapshots of a parent snapshot to be modified independent of each other. The source storage system determines changed blocks of a snapshot compared to a previously transmitted snapshot and sends only the changed blocks to the target storage system. The source storage system determines the changed blocks of a snapshot compared to a previously replicated snapshot based on time of creation of a common ancestor of two snapshots. The source storage system transmits a data block of a snapshot if either the data block or a corresponding data block of the previously replicated snapshot was modified after the creation of the common ancestor snapshot.
-
Citations
23 Claims
-
1. A method for transmitting a snapshot from a source system to a target system, the method comprising:
-
storing, in a source storage system, a plurality of snapshots, wherein a snapshot shares data blocks with one or more other snapshots stored in the source storage system; maintaining parent-child relationships between snapshots if a child snapshot is created from a parent snapshot, wherein at least a parent snapshot has a parent child relationship with two or more child snapshots created from the parent snapshot, such that each child snapshot can be modified independent of the other child snapshots; transmitting data of a first snapshot from the source storage system to a target storage system; identifying a second snapshot to transmit from the source storage system to a target storage system, wherein the first snapshot and the second snapshot have a common ancestor snapshot such that both the first snapshot and the second snapshot are descendants of the common ancestor snapshot based on parent child relationships; identifying data blocks of the second snapshot that are distinct from the first snapshot; and transmitting the identified data blocks of the second snapshot to the target storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for determining the differences between snapshots, the method comprising:
-
storing, in a source storage system, a plurality of snapshots, wherein a snapshot shares data blocks with one or more other snapshots stored in the source storage system; maintaining parent-child relationships between snapshots if a child snapshot is created from a parent snapshot, wherein at least a parent snapshot has a parent child relationship with two or more child snapshots created from the parent snapshot, such that each child snapshot can be modified independent of the other child snapshots; receiving a request to identify the differences between a first snapshot and a second snapshot; identifying a common ancestor snapshot such that both the first snapshot and the second snapshot are descendants of the common ancestor snapshot based on the parent child relationships; and determining that a data block of the second snapshot is different from a corresponding data block of the first snapshot based on a comparison of the time of modification of the data block and the time of creation of the common ancestor snapshot. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer-readable storage medium storing instructions for:
-
storing, in a source storage system, a plurality of snapshots, wherein a snapshot shares data blocks with one or more other snapshots stored in the source storage system; maintaining parent-child relationships between snapshots if a child snapshot is created from a parent snapshot, wherein at least a parent snapshot has a parent child relationship with two or more child snapshots created from the parent snapshot, such that each child snapshot can be modified independent of the other child snapshots; transmitting data of a first snapshot from the source storage system to a target storage system; identifying a second snapshot to transmit from the source storage system to a target storage system, wherein the first snapshot and the second snapshot have a common ancestor snapshot such that both the first snapshot and the second snapshot are descendants of the common ancestor snapshot based on parent child relationships; identifying data blocks of the second snapshot that are distinct from the first snapshot; and transmitting the identified data blocks of the second snapshot to the target storage system.
-
Specification