IP Library › Granted Patent US 10,326,836
Granted Patent B2
US 10,326,836 · App. 14/962,887 · Granted Jun 18, 2019

Partially replicating a snapshot between storage systems

Inventors: Deepak Chawla (Redwood City, CA); John Colgrove (Los Altos, CA); Terence Noonan (Vadnais Heights, MN); Vinay Perneti (Mountain View, CA); Jikui Su (Mountain View, CA)
Assignee: Pure Storage, Inc.
H04L67/1095G06F3/065G06F3/067G06F3/0608G06F3/0619G06F3/0659G06F11/2064H04L67/1097
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,326,836
App. No.
14/962,887
Filed
Dec 8, 2015
Granted
Jun 18, 2019
Kind
B2
Art Unit
2453
USPC
709/219
Abstract

Synchronizing snapshots between storage systems, including: receiving, from a source storage system, an identification of a snapshot to be replicated to a destination storage system; identifying, from hint information stored on the destination storage system, a most recent version of the snapshot that is stored on the destination storage system; issuing, to the source storage system, a request for an identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system; receiving, from the source storage system, the identification of the differences; and issuing a request to transfer, from the source storage system to the destination storage system, data associated with the differences.

Claims (44)

1. A method of partially replicating a snapshot between storage systems, the method comprising:

identifying a most recent version of a snapshot that is stored on a destination storage system, wherein the snapshot is to be replicated to the destination storage system from a source storage system;

issuing, to the source storage system, a request for an identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system;

receiving from the source storage system, the identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system; and

in response to receiving the identification of the differences, storing as a new version of the snapshot on the destination storage system, only the differences between the snapshot to be replicated and the most recent version of the snapshot that is stored on the destination storage system, wherein the new version of the snapshot does not comprise at least a portion of the data stored in the most recent version of the snapshot that is stored on the destination storage system.

2. The method of claim 1 wherein the source storage system adheres to a first storage architecture and wherein the destination storage system adheres to a second storage architecture.

3. The method of claim 1 further comprising:

creating a new volume on the destination storage system;

storing, in the new volume on the destination storage system, the data associated with the differences;

creating, on the destination storage system, a snapshot of the new volume; and

deleting the new volume.

4. The method of claim 1 further comprising issuing, to the destination storage system, a request to store hint information associated with the data transferred from the source storage system to the destination storage system.

5. The method of claim 1 further comprising issuing, to the source storage system, a request to delete a stored snapshot.

6. The method of claim 1 further comprising comparing, by the source storage system, the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system.

7. The method of claim 1 further comprising receiving a configuration file that includes information describing the source storage system, information describing the destination storage system, and information describing a schedule for synchronizing snapshots between the source storage system and the destination storage system.

8. An apparatus for partially replicating a snapshot between storage systems, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

identifying a most recent version of a snapshot that is stored on a destination storage system, wherein the snapshot is to be replicated to the destination storage system from a source storage system;

issuing, to the source storage system, a request for an identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system; and

receiving from the source storage system, the identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system; and

in response to receiving the identification of the differences, storing as a new version of the snapshot on the destination storage system, only the differences between the snapshot to be replicated and the most recent version of the snapshot that is stored on the destination storage system, wherein the new version of the snapshot does not comprise at least a portion of the data stored in the most recent version of the snapshot that is stored on the destination storage system.

9. The apparatus of claim 8 wherein the source storage system adheres to a first storage architecture and wherein the destination storage system adheres to a second storage architecture.

10. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

creating a new volume on the destination storage system;

storing, in the new volume on the destination storage system, the data associated with the differences;

creating, on the destination storage system, a snapshot of the new volume; and

deleting the new volume.

11. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of issuing, to the destination storage system, a request to store hint information associated with the data transferred from the source storage system to the destination storage system.

12. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of issuing, to the source storage system, a request to delete a stored snapshot.

13. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of comparing, by the source storage system, the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system.

14. The apparatus of claim 8 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of receiving a configuration file that includes information describing the source storage system, information describing the destination storage system, and information describing a schedule for synchronizing snapshots between the source storage system and the destination storage system.

15. A computer program product for partially replicating a snapshot between storage systems, the computer program product disposed upon a computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

identifying a most recent version of a snapshot that is stored on a destination storage system, wherein the snapshot is to be replicated to the destination storage system from a source storage system;

issuing, to the source storage system, a request for an identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system; and

receiving from the source storage system, the identification of the differences between the snapshot to be replicated to the destination storage system and the most recent version of the snapshot that is stored on the destination storage system; and

in response to receiving the identification of the differences, storing as a new version of the snapshot on the destination storage system, only the differences between the snapshot to be replicated and the most recent version of the snapshot that is stored on the destination storage system, wherein the new version of the snapshot does not comprise at least a portion of the data stored in the most recent version of the snapshot that is stored on the destination storage system.

16. The computer program product of claim 15 wherein the source storage system adheres to a first storage architecture and wherein the destination storage system adheres to a second storage architecture.

17. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the steps of:

creating a new volume on the destination storage system;

storing, in the new volume on the destination storage system, the data associated with the differences;

creating, on the destination storage system, a snapshot of the new volume; and

deleting the new volume.

18. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the step of issuing, to the destination storage system, a request to store hint information associated with the data transferred from the source storage system to the destination storage system.

19. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the step of issuing, to the source storage system, a request to delete a stored snapshot.

20. The computer program product of claim 15 further comprising computer program instructions that, when executed, cause the computer to carry out the step of receiving a configuration file that includes information describing the source storage system, information describing the destination storage system, and information describing a schedule for synchronizing snapshots between the source storage system and the destination storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2015
From: CHAWLA, DEEPAK; COLGROVE, JOHN; NOONAN, TERENCE; PERNETI, VINAY; SU, JIKUI
To: PURE STORAGE, INC.
Reel/Frame 037241/0534 →
Continuity (1)
Related Publication 20170163728A1 · Jun 8, 2017