IP Library Granted Patent US 10,628,378
Granted Patent B2
US 10,628,378 · App. 14/472,834 · Granted Apr 21, 2020

Replication of snapshots and clones

Inventors: Shobhit Dayal (San Francisco, CA); Gideon W. Glass (Los Altos, CA); Edward K. Lee (Dublin, CA)
Assignee: Tintri by DDN, Inc.
G06F16/128
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 10,628,378
App. No.
14/472,834
Granted
Apr 21, 2020
Kind
B2
Abstract

Performing replication of snapshots between storage systems is disclosed. A request to store at a destination system a snapshot data to represent at the destination system a state of a set of data at a first point-in-time is received. A first source system snapshot data that represents at a source system the state of the set of data at the first point-in-time depends on a second source system snapshot data that represents at the source system a state of the set of data at a second point-in-time. The snapshot data to represent at the destination system the state of the set of data at the first point-in-time is determined based on data comprising the first source system snapshot data and a destination system snapshot data that represents at the destination system a state of the set of data at a third point-in-time.

Claims (50)

1. A system to replicate snapshots between storage systems, comprising:

a processor configured to:

receive a request to store at a destination system a snapshot data to represent at the destination system a state of a set of data associated with a virtual machine at a first point-in-time, wherein a first source system snapshot data that represents at a source system the state of the set of data at the first point-in-time depends on a second source system snapshot data that represents at the source system a state of the set of data at a second point-in-time and the snapshot indicates a physical storage location of the set of data;

use stored snapshot age identifying information to determine a set of delta data to be sent from the source system to the destination system including by selecting at least a younger snapshot based at least in part on an order among the first source system snapshot data, the second source system snapshot data, and a first destination system snapshot data that represents at the destination system a state of the set of data at a third point-in-time determined from the snapshot age identifying information, wherein selecting the younger snapshot forms a smaller delta compared with an older snapshot to consume less bandwidth when transmitting the set of delta data, wherein the snapshot age identifying information includes value data associated with a time of creation of the snapshot;

generate a new destination system snapshot data that represents at the destination system the state of the set of data at the first point-in-time to be inserted into a sequence of snapshot data stored at the destination system based at least in part on the set of delta data, including to:

determine a redundant metadata entry that is included in both the set of delta data and a second destination system snapshot data included in the sequence of snapshot data stored at the destination system; and

remove the redundant metadata entry from either the set of delta data or the second destination system snapshot data; and

transmit the generated new destination system snapshot data to the destination system; and

a memory coupled to the processor and configured to store the request.

2. The system of claim 1 , wherein each of the first source system snapshot data and the second source system snapshot data is included in a sequence of snapshot data stored at the source system.

3. The system of claim 1 , wherein the processor is configured to insert the new destination system snapshot data into the sequence of snapshot data stored at the destination system.

4. The system of claim 1 , wherein the set of delta data to be sent from the source system to the destination system is determined based at least in part on the first source system snapshot data and the second source system snapshot data.

5. The system of claim 1 , wherein the processor is further configured to cause the new destination system snapshot data to depend on the first destination system snapshot data.

6. The system of claim 5 , wherein the second destination system snapshot data represents at the destination system a state of the set of data at a fourth point-in-time, wherein the first point-in-time is earlier than the fourth point-in-time and wherein to generate the new destination system snapshot data includes to:

remove the redundant metadata entry from the second destination system snapshot data.

7. The system of claim 5 , wherein the third point-in-time is earlier than the first point-in-time and wherein to generate the new destination system snapshot data includes to:

remove the redundant metadata entry from the set of delta data.

8. The system of claim 7 , wherein further in response to the determination that the redundant metadata entry is included in both the set of delta data and the second destination system snapshot data included in the sequence of snapshot data stored at the destination system, preventing the redundant metadata entry associated with the set of delta data from being sent from the source system to the destination system.

9. The system of claim 5 , wherein the new destination system snapshot data is inserted into the sequence of snapshot data stored at the destination system based at least in part on the first point-in-time and the third point-in-time.

10. The system of claim 1 , wherein the set of delta data comprises a first snapshot data, wherein the processor is further configured to determine a second snapshot data to represent at the source system a state of the set of data at a desired point-in-time, wherein the second snapshot data is determined based at least in part on a third destination system snapshot data that represents at the destination system the state of the set of data at the desired point-in-time.

11. The system of claim 1 , wherein the second point-in-time is earlier than the first point-in-time and is the same as the third point-in-time.

12. The system of claim 1 , wherein the second point-in-time is earlier than the first point-in-time and wherein the third point-in-time is earlier than the first point-in-time but later than the second point-in-time.

13. The system of claim 1 , wherein the set of data comprises a set of clone data generated from a third source system snapshot data that represents at the source system a state of a set of source data at a fourth point-in-time, wherein the second source system snapshot data associated with the set of clone data depends on the third source system snapshot data associated with the set of source data.

14. The system of claim 13 , wherein the processor is configured to:

merge one or more metadata entries included in a third source system snapshot data associated with the source set of data into the second source system snapshot data associated with the set of clone data; and

delete the third source system snapshot data associated with the source set of data.

15. The system of claim 1 , wherein the value data includes ordinal data such that a younger snapshot has a different value for the identifying information than an older snapshot.

16. The system of claim 1 , wherein the value data includes a counter and a value of the counter is determined as the time of snapshot creation such that a younger snapshot has a larger value than an older snapshot.

17. A method to replicate snapshots between storage systems, comprising:

receiving a request to store at a destination system a snapshot data to represent at the destination system a state of a set of data associated with a virtual machine at a first point-in-time, wherein a first source system snapshot data that represents at a source system the state of the set of data at the first point-in-time depends on a second source system snapshot data that represents at the source system a state of the set of data at a second point-in-time and the snapshot indicates a physical storage location of the set of data;

using stored snapshot age identifying information to determine a set of delta data to be sent from the source system to the destination system including by selecting at least a younger snapshot based at least in part on an order among the first source system snapshot data, the second source system snapshot data, and a first destination system snapshot data that represents at the destination system a state of the set of data at a third point-in-time determined from the snapshot age identifying information, wherein selecting the younger snapshot forms a smaller delta compared with an older snapshot to consume less bandwidth when transmitting the set of delta data, wherein the snapshot age identifying information includes value data associated with a time of creation of the snapshot;

generating a new destination system snapshot data that represents at the destination system the state of the set of data at the first point-in-time to be inserted into a sequence of snapshot data stored at the destination system based at least in part on the set of delta data, including by:

determining a redundant metadata entry that is included in both the set of delta data and a second destination system snapshot data included in the sequence of snapshot data stored at the destination system; and

removing the redundant metadata entry from either the set of delta data or the second destination system snapshot data; and

transmitting the generated new destination system snapshot data to the destination system.

18. The method of claim 17 , further comprising inserting the new destination system snapshot data into the sequence of snapshot data stored at the destination system.

19. The method of claim 17 , wherein each of the first source system snapshot data and the second source system snapshot data is included in a sequence of snapshot data associated at the source system.

20. The method of claim 17 , wherein the set of delta data is determined based at least in part on the first source system snapshot data and the second source system snapshot data.

21. The method of claim 17 ,

further comprising causing the new destination system snapshot data to depend on the first destination system snapshot data.

22. The method of claim 21 , wherein the new destination system snapshot data is inserted into the sequence of snapshot data stored at the destination system based at least in part on the first point-in-time and the third point-in-time.

23. The method of claim 17 , wherein the set of delta data comprises a first snapshot data, further comprising determining a second snapshot data to represent at the source system a state of the set of data at a desired point-in-time, wherein the second snapshot data is determined based at least in part on a third destination system snapshot data that represents at the destination system the state of the set of data at the desired point-in-time.

24. The method of claim 17 , wherein the set of data comprises a set of clone data generated from a third source system snapshot data that represents at the source system a state of a set of source data at a fourth point-in-time, wherein the second source system snapshot data associated with the set of clone data depends on the third source system snapshot data associated with the set of source data.

25. A computer program product to replicate snapshots between storage systems, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a request to store at a destination system a snapshot data to represent at the destination system a state of a set of data associated with a virtual machine at a first point-in-time, wherein a first source system snapshot data that represents at a source system the state of the set of data at the first point-in-time depends on a second source system snapshot data that represents at the source system a state of the set of data at a second point-in-time and the snapshot indicates a physical storage location of the set of data;

using stored snapshot age identifying information to determine a set of delta data to be sent from the source system to the destination system including by selecting at least a younger snapshot based at least in part on an order among the first source system snapshot data, the second source system snapshot data, and a first destination system snapshot data that represents at the destination system a state of the set of data at a third point-in-time determined from the snapshot age identifying information, wherein selecting the younger snapshot forms a smaller delta compared with an older snapshot to consume less bandwidth when transmitting the set of delta data, wherein the snapshot age identifying information includes value data associated with a time of creation of the snapshot;

generating a new destination system snapshot data that represents at the destination system the state of the set of data at the first point-in-time to be inserted into a sequence of snapshot data stored at the destination system based at least in part on the set of delta data, including by:

determining a redundant metadata entry that is included in both the set of delta data and a second destination system snapshot data included in the sequence of snapshot data stored at the destination system; and

removing the redundant metadata entry from either the set of delta data or the second destination system snapshot data; and

transmitting the generated new destination system snapshot data to the destination system.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: TINTRI INC.
To: TI ACQUISITION CORP.
Reel/Frame 048201/0666 →
CHANGE OF NAME Recorded Jan 31, 2019
From: TI ACQUISITION CORP.
To: TINTRI BY DDN, INC.
Reel/Frame 048211/0685 →
SECURITY INTEREST Recorded Oct 13, 2018
From: TI ACQUISITION CORP.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047229/0463 →
SECURITY INTEREST Recorded Mar 5, 2015
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 035097/0801 →
SECURITY INTEREST Recorded Dec 29, 2014
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 034590/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2014
From: DAYAL, SHOBHIT; GLASS, GIDEON W.; LEE, EDWARD K.
To: TINTRI INC.
Reel/Frame 034111/0398 →
Continuity (2)
Provisional Application 61873241 · Sep 3, 2013
Related Publication 20150066857A1 · Mar 5, 2015