IP Library Granted Patent US 11,537,633
Granted Patent B2
US 11,537,633 · App. 17/091,635 · Granted Dec 27, 2022

Asynchronous cross-region block volume replication

Inventors: Venkata Harish Mallipeddi (Bellevue, WA); Travis John Portz (Seattle, WA); Jeppe Oskar Meyer Larsen (Sammamish, WA); Mario Tayah (Seattle, WA)
Assignee: Oracle International Corporation
G06F16/273G06F11/1469G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,537,633
App. No.
17/091,635
Filed
Nov 6, 2020
Granted
Dec 27, 2022
Kind
B2
Art Unit
2161
USPC
707/613
Abstract

Techniques are provided for cross-region replication of block volume data. The techniques include a method wherein a computer system implements operations including creating a first snapshot of a block volume at a first geographic region and at a first logical time, the block volume including a plurality of partitions, transmitting first snapshot data to an object storage system at a second geographic region, creating a second snapshot of the block volume at the first geographic region and at a second logical time, generating a plurality of deltas, transmitting a plurality of delta data sets corresponding to the plurality of deltas to the object storage system at the second geographic region, generating a checkpoint at least in part by aggregating object metadata associated with the plurality of deltas and the first snapshot, receiving a restore request to generate a restore volume, and generating the restore volume from the checkpoint.

Claims (69)

1. A method, comprising:

creating, by a computer system, a first snapshot of a block volume at a first geographic region and at a first logical time, the block volume comprising a plurality of partitions;

transmitting, by the computer system, first snapshot data corresponding to the first snapshot to an object storage system at a second geographic region;

creating, by the computer system, a second snapshot of the block volume at the first geographic region and at a second logical time;

generating, by the computer system, a plurality of deltas comprising differences between the first snapshot of the block volume at the first geographic region and the second snapshot of the block volume at the first geographic region, each delta of the plurality of deltas corresponding to a partition of the plurality of partitions;

transmitting, by the computer system, a plurality of delta data sets corresponding to the plurality of deltas to the object storage system at the second geographic region;

generating, by the computer system, a plurality of chunk objects from the plurality of delta data sets;

transmitting, by the computer system, the plurality of chunk objects to the object storage system at the second geographic region;

generating, by the computer system, a checkpoint at least in part by aggregating object metadata associated with the plurality of deltas and the first snapshot, the checkpoint comprising a manifest of the object metadata, the object metadata comprising chunk pointers corresponding to the plurality of chunk objects in the object storage system at the second geographic region, and wherein aggregating the object metadata comprises updating the manifest to reflect a plurality of differences between the plurality of delta data sets and the first snapshot data;

receiving, by the computer system, a restore request to generate a restore volume; and

generating, by the computer system, the restore volume from the checkpoint.

2. The method of claim 1 wherein generating the plurality of deltas comprises:

generating a comparison between the second snapshot to the first snapshot;

determining, based on the comparison, modified data corresponding to changes between the first snapshot data and second snapshot data corresponding to the second snapshot; and

generating the plurality of deltas, wherein the plurality of deltas describe the modified data for the plurality of partitions.

3. The method of claim 1 , wherein creating the first snapshot comprises:

suspending input/output operations for the plurality of partitions, corresponding to a logical time;

generating a plurality of block images describing volume data in the plurality of partitions; and

enabling input/output operations for the plurality of partitions.

4. The method of claim 1 , wherein the restore request is a failover request, the method further comprising:

enabling the restore volume to be generated at the second geographic region; and

enabling input/output operations using the restore volume at the second geographic region.

5. The method of claim 1 , wherein the restore request is a failback request, the method further comprising:

generating the restore volume at the second geographic region;

enabling a failback volume to be generated at the first geographic region; and

restoring the first snapshot data at the first geographic region.

6. A computer system, comprising

one or more processors;

a memory in communication with the one or more processors, the memory configured to store computer-executable instructions, wherein executing the computer-executable instructions causes the one or more processors to-at least:

create a first snapshot of a block volume at a first geographic region and at a first logical time, the block volume comprising a plurality of partitions;

transmit first snapshot data corresponding to the first snapshot to an object storage system at a second geographic region;

create a second snapshot of the block volume at the first geographic region and at a second logical time;

generate a plurality of deltas, each delta of the plurality of deltas corresponding to a partition of the plurality of partitions comprising differences between the first snapshot of the block volume at the first geographic region and the second snapshot of the block volume at the first geographic region;

transmit a plurality of delta data sets corresponding to the plurality of deltas to the object storage system at the second geographic region;

generate a plurality of chunk objects from the plurality of delta data sets;

transmit the plurality of chunk objects to the object storage system at the second geographic region;

generate a checkpoint at least in part by aggregating object metadata associated with the plurality of deltas and the first snapshot, the checkpoint comprising a manifest of the object metadata, the object metadata comprising chunk pointers corresponding to the plurality of chunk objects in the object storage system at the second geographic region, and wherein aggregating the object metadata comprises updating the manifest to reflect a plurality of differences between the plurality of delta data sets and the first snapshot data;

receive a restore request to generate a restore volume; and

generate the restore volume from the checkpoint.

7. The computer system of claim 6 , wherein generating the plurality of deltas comprises:

generating a comparison between the second snapshot to the first snapshot;

determining, based on the comparison, modified data corresponding to changes between the first snapshot data and second snapshot data corresponding to the second snapshot; and

generating the plurality of deltas, wherein the plurality of deltas describe the modified data for the plurality of partitions.

8. The computer system of claim 6 , wherein creating the first snapshot comprises:

suspending input/output operations for the plurality of partitions, corresponding to a logical time;

generating a plurality of block images describing volume data in the plurality of partitions; and

enabling input/output operations for the plurality of partitions.

9. The computer system of claim 6 , wherein the restore request is a failover request, the method further comprising:

enabling the restore volume to be generated at the second geographic region; and

enabling input/output operations using the restore volume at the second geographic region.

10. The computer system of claim 6 , wherein the restore request is a failback request, the method further comprising:

generating the restore volume at the second geographic region;

enabling a failback volume to be generated at the first geographic region; and

restoring the first snapshot data at the first geographic region.

11. A non-transitory computer-readable storage medium, storing computer-executable instructions that, when executed, cause one or more processors of a computer system to perform operations comprising:

creating, by the computer system, a first snapshot of a block volume at a first geographic region and at a first logical time, the block volume comprising a plurality of partitions;

transmitting, by the computer system, first snapshot data corresponding to the first snapshot to an object storage system at a second geographic region;

creating, by the computer system, a second snapshot of the block volume at the first geographic region and at a second logical time;

generating, by the computer system, a plurality of deltas comprising differences between the first snapshot of the block volume at the first geographic region and the second snapshot of the block volume at the first geographic region, each delta of the plurality of deltas corresponding to a partition of the plurality of partitions;

transmitting, by the computer system, a plurality of delta data sets corresponding to the plurality of deltas to the object storage system at the second geographic region;

generating, by the computer system, a plurality of chunk objects from the plurality of delta data sets;

transmitting, by the computer system, the plurality of chunk objects to the object storage system at the second geographic region;

generating, by the computer system, a checkpoint at least in part by aggregating object metadata associated with the plurality of deltas and the first snapshot, the checkpoint comprising a manifest of the object metadata, the object metadata comprising chunk pointers corresponding to the plurality of chunk objects in the object storage system at the second geographic region, and wherein aggregating the object metadata comprises updating the manifest to reflect a plurality of differences between the plurality of delta data sets and the first snapshot data;

receiving, by the computer system, a restore request to generate a restore volume; and

generating, by the computer system, the restore volume from the checkpoint.

12. The non-transitory computer-readable storage medium of claim 11 , wherein generating the plurality of deltas comprises:

generating a comparison between the second snapshot to the first snapshot;

determining, based on the comparison, modified data corresponding to changes between the first snapshot data and second snapshot data corresponding to the second snapshot; and

generating the plurality of deltas, wherein the plurality of deltas describe the modified data for the plurality of partitions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2020
From: MALLIPEDDI, VENKATA HARISH; PORTZ, TRAVIS JOHN; LARSEN, JEPPE OSKAR MEYER; TAYAH, MARIO
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 054302/0119 →
Continuity (1)
Related Publication 20220147541A1 · May 12, 2022
Cited By (1)
US 12,475,129