Reading a portion of data to replicate a volume based on sequence numbers
First Claim
1. A method comprising:
- receiving a request to replicate a volume at a source solid-state storage array to a target solid-state storage array, the volume corresponding to a plurality of snapshots associated with data blocks that are stored at the source solid-state storage array;
identifying a most recent snapshot of the plurality of snapshots corresponding to the volume at the source solid-state storage array that is present at the target solid-state storage array;
identifying metadata organized into a plurality of logical groups, each of the logical groups corresponding to a sequence number range and including a portion of the metadata that is associated with a portion of the data blocks of the volume;
determining a last sequence number associated with the most recent snapshot of the plurality of snapshots that is present at the target solid-state storage array;
receiving identifiers associated with sequence numbers for data blocks specified by the next logical group of the plurality of logical groups of the metadata; and
determining, based on the identifiers, whether the data blocks are associated with another sequence number range with prior values for another logical group of the plurality of logical groups than the sequence number range of the next logical group;
identifying, by a processing device, a logical group of the plurality of logical groups with a corresponding sequence number range that includes the last sequence number associated with the most recent snapshot; and
reading the metadata to identify a portion of the data blocks to transmit to the target solid-state storage array to replicate the volume based on a next logical group of the plurality of logical groups with a corresponding sequence number range with higher sequence numbers than the identified logical group, wherein reading the metadata comprises;
determining to read a first portion of the metadata of the next logical group for data blocks associated with sequence numbers that are included in the sequence number range of the next logical group; and
determining to not read a second portion of the metadata of the next logical group for data blocks associated with sequence numbers that are included in the another sequence number range with prior values than the sequence number range of the next logical group.
1 Assignment
0 Petitions
Accused Products
Abstract
An indication to replicate, for a second storage resource, a volume that is stored at a first storage resource may be received. A snapshot of the volume that is stored at the second storage resource may be identified. Data with operations to data blocks of the volume may be identified. A sequence number range, containing one or more sequence numbers, associated with the snapshot of the volume that is stored at the second resource may be received. Furthermore, a portion of the data associated with the operations to the data blocks of the volume based on the sequence number range that is associated with the snapshot of the volume that is stored at the second resource may be received to replicate the volume at the second storage resource.
-
Citations
13 Claims
-
1. A method comprising:
-
receiving a request to replicate a volume at a source solid-state storage array to a target solid-state storage array, the volume corresponding to a plurality of snapshots associated with data blocks that are stored at the source solid-state storage array; identifying a most recent snapshot of the plurality of snapshots corresponding to the volume at the source solid-state storage array that is present at the target solid-state storage array; identifying metadata organized into a plurality of logical groups, each of the logical groups corresponding to a sequence number range and including a portion of the metadata that is associated with a portion of the data blocks of the volume; determining a last sequence number associated with the most recent snapshot of the plurality of snapshots that is present at the target solid-state storage array; receiving identifiers associated with sequence numbers for data blocks specified by the next logical group of the plurality of logical groups of the metadata; and determining, based on the identifiers, whether the data blocks are associated with another sequence number range with prior values for another logical group of the plurality of logical groups than the sequence number range of the next logical group; identifying, by a processing device, a logical group of the plurality of logical groups with a corresponding sequence number range that includes the last sequence number associated with the most recent snapshot; and reading the metadata to identify a portion of the data blocks to transmit to the target solid-state storage array to replicate the volume based on a next logical group of the plurality of logical groups with a corresponding sequence number range with higher sequence numbers than the identified logical group, wherein reading the metadata comprises; determining to read a first portion of the metadata of the next logical group for data blocks associated with sequence numbers that are included in the sequence number range of the next logical group; and determining to not read a second portion of the metadata of the next logical group for data blocks associated with sequence numbers that are included in the another sequence number range with prior values than the sequence number range of the next logical group. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
-
a memory; and a processing device, operatively coupled with the memory, to; receive an indication to replicate, for a second storage resource, a volume that is stored at a first storage resource; identify a snapshot of the volume that is stored at the second storage resource; identify data associated with operations to data blocks of the volume; receive a sequence number associated with the snapshot of the volume that is stored at the second resource; and read a portion of the data associated with the operations to the data blocks of the volume based on the sequence number that is associated with the snapshot of the volume that is stored at the second resource to replicate the volume at the second storage resource, wherein to read the portion of the data, the processing device is further to; receive identifiers associated with sequence numbers for data blocks associated with the portion of the data; determine, based on the identifiers, whether the data blocks associated with the portion of the data are associated with a prior sequence number than sequence numbers of a sequence number range associated with the portion of the data; determine to read a first subset of the portion of the data for data blocks associated with sequence numbers that are included in the sequence number range associated with the portion of the data; and determine to not read a second subset of the portion of the data metadata for data blocks associated with sequence numbers that are included in the another sequence number range with prior values than the sequence number range associated with the portion of the data. - View Dependent Claims (7, 8, 9)
-
-
10. A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:
-
receive an indication to replicate, for a second storage resource, a volume that is stored at a first storage resource; identify a snapshot of the volume that is stored at the second storage resource; identify data associated with operations to data blocks of the volume; receive a sequence number associated with the snapshot of the volume that is stored at the second resource; and read, by the processing device, a portion of the data associated with the operations to the data blocks of the volume based on the sequence number that is associated with the snapshot of the volume that is stored at the second resource to replicate the volume at the second storage resource, wherein the data is organized into a plurality of logical groups corresponding to a plurality of sequence number ranges, and wherein to read the portion of the data based on the sequence number, the processing device is further to; identify one or more logical groups with a sequence number range with later values than the sequence number associated with the snapshot of the volume that is stored at the second resource; and read the portion of the data organized in the identified one or more logical groups from the first storage resource to the second storage resource; and determine to not read another portion of the data organized in another one or more logical groups with sequence number ranges with prior values than the sequence number associated with the snapshot of the volume that is stored at the second resource. - View Dependent Claims (11, 12, 13)
-
Specification