# US 9,436,410 B2 · Replication of volumes on demands using absent allocation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,410 B2
- Document ID: US9436410B2
- Status: Granted
- Kind: B2
- Application number: 14/299,295
- Filed: 2014-06-09
- Published: 2015-06-18
- Granted: 2016-09-06
- Earliest claimed: 2013-12-13
- Assignees: NetApp, Inc.
- Applicants: NetApp, Inc.
- Inventors: Jonathan Curley; Srishylam Simharajan
- Web page: https://patentgrep.com/patent/US9436410B2

## CPC

- G06F 3/065: {Replication mechanisms}
- G01S 7/415: {Identification of targets based on measurements of movement associated with the target}
- G01S 13/04: Systems determining presence of a target (based on relative movement of target G01S13/56)
- G01S 13/56: for presence detection {(presence detection using near field arrangements G01V3/00, e.g. G01V3/08, G01V3/12; burglar, theft or intruder alarms with electrical actuation G08B13/22 - G08B13/26)}
- G01S 13/886: {for alarm systems (alarms with electrical actuation G08B13/22)}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G01S: RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method, non-transitory computer readable medium and programmed apparatus that receives a request to replicate a volume from a source to a destination. The volume includes data and metadata including information descriptive of the data. The method includes determining a first set of blocks and a second set of blocks associated with the source, where the first set of blocks is associated with the metadata, and where the second set of blocks is associated with the data. The method includes initiating, based on the first set of blocks, replication of the volume from the source to the destination to generate a replicated volume at the destination. The replicated volume includes replicated metadata generated based on the replicated first set of blocks and includes absent allocated data corresponding to the data included in the volume storage at the source storage system.

## Claims

### Claim 1

A method comprising:
receiving, with a storage computing apparatus, a request to replicate a volume, wherein the volume includes data and metadata, and wherein the metadata includes information descriptive of the data;
determining, with the storage computing apparatus, a first set of blocks and a second set of blocks, wherein the first set of blocks is associated with the metadata, and the second set of blocks is associated with the data included in the volume;
initiating, with the storage computing apparatus, replication of the volume to generate a replicated volume, wherein the replicated volume includes replicated metadata generated based on the first set of blocks;
generating, with the storage computing apparatus, a first snapshot of the volume;
generating, with the storage computing apparatus, a second snapshot of the volume subsequent to generating the first snapshot;
determining, with the storage computing apparatus, an incremental difference between the first set of blocks as indicated in the first snapshot and the first set of blocks as indicated in the second snapshot;
initiating, with the storage computing apparatus, an update to the replicated metadata based on the incremental difference;
estimating, with the storage computing apparatus, an amount of time to update the replicated metadata based on the incremental difference;
determining, with the storage computing apparatus, whether the amount of time satisfies a threshold amount of time; and
locking, with the storage computing apparatus, access to the volume until the replicated metadata is updated in response to a determination that the amount of time satisfies the threshold amount of time.

### Claim 2 (depends on 1)

The method for claim 1, further comprising:
generating, with the storage computing apparatus, an additional snapshot of the volume in response to a determination that the amount of time does not satisfy the threshold amount of time;
wherein the additional snapshot of the volume is generated subsequent to initiating the update to the replicated metadata based on the incremental difference; and
wherein the additional snapshot of the volume is used to determine a second incremental difference between the first set of blocks as indicated in the second snapshot and the first set of blocks as indicated in the additional snapshot.

### Claim 3 (depends on 1)

The method for claim 1, wherein the incremental difference identifies changes to the metadata included in the volume, changes to the data included in the volume, or both that occurred during a time period between generating the first snapshot and the second snapshot.

### Claim 4 (depends on 1)

The method for claim 1, further comprising:
initiating, with the storage computing apparatus, replication of a portion of the second set of blocks in response to completing replication of the first set of blocks.

### Claim 5 (depends on 4)

The method for claim 4, wherein the portion of the second set of blocks is replicated using a background process.

### Claim 6 (depends on 4)

The method for claim 4, wherein the portion of the second set of blocks is replicated.

### Claim 7

A non-transitory computer readable medium having stored thereon instructions for replicating a volume comprising machine executable code which when executed by a processor, causes the processor to perform steps comprising:
receiving a request to replicate a volume, wherein the volume includes data and metadata, and wherein the metadata includes information descriptive of the data;
determining a first set of blocks and a second set of blocks, wherein the first set of blocks is associated with the metadata, and the second set of blocks is associated with the data included in the volume;
initiating replication of the volume to generate a replicated volume, wherein the replicated volume includes replicated metadata generated based on the first set of blocks;
generating a first snapshot of the volume;
generating a second snapshot of the volume subsequent to generating the first snapshot;
determining an incremental difference between the first set of blocks as indicated in the first snapshot and the first set of blocks as indicated in the second snapshot;
initiating an update the replicated metadata based on the incremental difference;
estimating an amount of time to update the replicated metadata based on the incremental difference;
determining whether the amount of time satisfies a threshold amount of time; and
locking access to the volume until the replicated metadata is updated in response to a determination that the amount of time satisfies the threshold amount of time.

### Claim 8 (depends on 7)

The medium for claim 7, further comprising:
generating an additional snapshot of the volume in response to a determination that the amount of time does not satisfy the threshold amount of time;
wherein the additional snapshot of the volume is generated subsequent to initiating the update to the replicated metadata based on the incremental difference; and
wherein the additional snapshot of the volume is used to determine a second incremental difference between the first set of blocks as indicated in the second snapshot and the first set of blocks as indicated in the additional snapshot.

### Claim 9 (depends on 7)

The medium for claim 7, wherein the incremental difference identifies changes to the metadata included in the volume, changes to the data included in the volume, or both that occurred during a time period between generating the first snapshot and the second snapshot.

### Claim 10 (depends on 7)

The medium for claim 7, further comprising:
initiating replication of a portion of the second set of blocks in response to completing replication of the first set of blocks.

### Claim 11 (depends on 10)

The medium for claim 10, wherein the portion of the second set of blocks is replicated using a background process.

### Claim 12 (depends on 10)

The medium for claim 10, wherein the portion of the second set of blocks is replicated.

### Claim 13

A network appliance apparatus comprising:
at least one processor; and
at least one memory coupled to the processor configured to execute programmed instructions stored in the memory comprising:
receiving a request to replicate a volume, wherein the volume includes data and metadata, and wherein the metadata includes information descriptive of the data;
determining a first set of blocks and a second set of blocks, wherein the first set of blocks is associated with the metadata, and the second set of blocks is associated with the data included in the volume;
initiating based on the first set of blocks replication of the volume to generate a replicated volume, wherein the replicated volume includes replicated metadata generated based on the first set of blocks;
generating a first snapshot of the volume;
generating a second snapshot of the volume subsequent to generating the first snapshot;
determining an incremental difference between the first set of blocks as indicated in the first snapshot and the first set of blocks as indicated in the second snapshot;
initiating an update to the replicated metadata based on the incremental difference;
estimating an amount of time to update the replicated metadata based on the incremental difference;
determining whether the amount of time satisfies a threshold amount of time; and
locking access to the volume until the replicated metadata is updated in response to a determination that the amount of time satisfies the threshold amount of time.

### Claim 14 (depends on 13)

The apparatus for claim 13, wherein the processor is further configured to execute programmed instructions stored in the memory further comprising:
generating an additional snapshot of the volume in response to a determination that the amount of time does not satisfy the threshold amount of time;
wherein the additional snapshot of the volume is generated subsequent to initiating the update to the replicated metadata based on the incremental difference; and
wherein the additional snapshot of the volume is used to determine a second incremental difference between the first set of blocks as indicated in the second snapshot and the first set of blocks as indicated in the additional snapshot.

### Claim 15 (depends on 13)

The apparatus for claim 13, wherein the incremental difference identifies changes to the metadata included in the volume, changes to the data included in the volume, or both that occurred during a time period between generating the first snapshot and the second snapshot.

### Claim 16 (depends on 13)

The apparatus for claim 13, wherein the processor is further configured to execute programmed instructions stored in the memory further comprising:
initiating replication of a portion of the second set of blocks in response to completing replication of the first set of blocks.

### Claim 17 (depends on 16)

The apparatus for claim 16, wherein the portion of the second set of blocks is replicated using a background process.

### Claim 18 (depends on 16)

The apparatus for claim 16, wherein the portion of the second set of blocks is replicated.
