IP Library Granted Patent US 10,853,314
Granted Patent B1
US 10,853,314 · App. 15/727,424 · Granted Dec 1, 2020

Overlay snaps

Inventors: Jehuda Shemer (Kfar Saba, IL); Assaf Natanzon (Tel Aviv, IL); Ran Goldschmidt (Hopkinton, MA)
Assignee: EMC IP Holding Company LLC
G06F16/128G06F16/122G06F16/164
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,853,314
App. No.
15/727,424
Granted
Dec 1, 2020
Kind
B1
Abstract

An overlay snap is generated by generating a snapshot of a logical storage volume, writing a data stream to the overlay snap, generating pointers indicating locations of new data written to the overlay snap, and generating null pointers for locations that do not have new data written to the overlay snap. The overlay snap comprises the pointers and the null pointers. The overlay snap may be applied to a volume to generate a current snapshot of the volume. The overlay snap may be used maintain write order fidelity during continuous data replication by creating a copy of a snapshot on a target storage device and writing new data to an overlay snap on the target storage device.

Claims (51)

1. A computer-implemented method, comprising:

generating a first overlay snap, the first overlay snap being generated before a first snapshot of a non-empty storage volume is created, the first overlay snap being empty when generated containing corresponding empty entries for each storage location of the storage volume; and

writing a first data stream to the first overlay snap, the first overlay snap including changes from the first data stream for the storage volume as new data,

wherein writing the first data stream to the first overlay snap comprises generating first pointers overwriting respective entries corresponding to the storage locations of the storage volume being written to, the first pointers indicating locations of the new data written to the overlay snap, wherein the new data written to the first overlay snap from the first data stream is physically stored in the first overlay snap, and any entries not receiving changes in the first data stream remain empty, the generated first pointers pointing to the new data stored within the first overlay snap, and

wherein generating the first overlay snap further comprises generating first null pointers for the empty locations that do not have new data written to the overlay snap, wherein the first overlay snap comprises the first pointers and the first null pointers.

2. The computer-implemented method of claim 1 , wherein the first null pointers comprise pointers pointing to nowhere.

3. The computer-implemented method of claim 1 , the method further comprising attaching the first overlay snap to a storage volume to generate a new storage volume.

4. The computer-implemented method of claim 1 , the method further comprising attaching the first overlay snap to a storage volume to generate the first snapshot, wherein the first snapshot records information of a block device or a file system at a first point in time.

5. The computer-implemented method of claim 1 , the method further comprising generating a second overlay snap by generating a second snapshot of a logical storage volume, wherein the second snapshot records information of a block device or a file system at a second point in time, writing a second data stream to the second overlay snap, generating second pointers indicating locations of new data written to the second overlay snap, and generating second null pointers for locations that do not have new data written to the second overlay snap, wherein the second overlay snap comprises the second pointers and the second null pointers, wherein the second data stream is written to the second overlay snap in parallel to the first data stream being written to the first overlay snap.

6. The computer-implemented method of claim 5 , wherein the first overlay snap and the second overlay snap are included in a list, and the list is attached to a storage volume to generate a new storage volume.

7. The computer-implemented method of claim 5 , wherein the first overlay snap and the second overlay snap are included in a list, and the list is attached to a storage volume to generate a snapshot from the list, wherein the snapshot records information of a block device or a file system at a point in time.

8. The method of claim 1 , wherein the overlay snap is generated by generating a snapshot of an empty volume.

9. An article comprising:

a non-transitory computer-readable medium that stores computer-executable instructions, the instructions causing a machine to:

generate a first overlay snap, the first overlay snap being generated before a first snapshot of a non-empty storage volume is created, the first overlay snap being empty when generated containing corresponding empty entries for each storage location of the storage volume; and

write a first data stream to the first overlay snap, the first overlay snap including changes from the first data stream for the storage volume as new data, wherein writing the first data stream to the first overlay snap comprises generating first pointers overwriting respective entries corresponding to the storage locations of the storage volume being written to, the first pointers indicating locations of the new data written to the overlay snap, wherein the new data written to the first overlay snap from the first data stream is physically stored in the first overlay snap, and any entries not receiving changes in the first data stream remain empty, the generated first pointers pointing to the new data stored within the first overlay snap, and

wherein generating the first overlay snap further comprises generating first null pointers for the empty locations that do not have new data written to the overlay snap, wherein the first overlay snap comprises the first pointers and the first null pointers.

10. The article of claim 9 , wherein the first null pointers comprise pointers pointing to nowhere.

11. The article of claim 9 , the instructions further causing the machine to attach the first overlay snap to a storage volume to generate a new storage volume.

12. The article of claim 9 , the instructions further causing the machine to attach the first overlay snap to a storage volume to generate the first snapshot, wherein the first snapshot records information of a block device or a file system at a first point in time.

13. The article of claim 9 , the instructions further causing the machine to generate a second overlay snap by generating a second snapshot of a logical storage volume, wherein the second snapshot records information of a block device or a file system at a second point in time, write a second data stream to the second overlay snap, generate second pointers indicating locations of new data written to the second overlay snap, and generate second null pointers for locations that do not have new data written to the second overlay snap, wherein the second overlay snap comprises the second pointers and the second null pointers, wherein the second data stream is written to the second overlay snap in parallel to the first data stream being written to the first overlay snap.

14. The article of claim 13 , wherein the first overlay snap and the second overlay snap are included in a list, and the list is attached to a storage volume to generate a new storage volume.

15. The article of claim 13 , wherein the first overlay snap and the second overlay snap are included in a list, and the list is attached to a storage volume to generate a snapshot from the list, wherein the snapshot records information of a block device or a file system at a point in time.

16. The article of claim 9 , wherein the overlay snap is generated by generating a snapshot of an empty volume.

17. A computer-implemented method for continuous data replication of a source volume on a source storage device, comprising:

generating a first overlay snap of a replica volume on a target storage device, the first overlay snap being generated before a first snapshot of a non-empty source volume is created, the first overlay snap being empty when generated containing corresponding empty entries for each storage location of the source volume;

writing a first data stream from the source storage device to the first overlay snap, the first overlay snap including changes from the first data stream for the source volume as new data, wherein writing the first data stream to the first overlay snap comprises generating first pointers overwriting respective entries corresponding to the storage locations of the source volume being written to, the first pointers indicating locations of the new data written to the first overlay snap, wherein the new data written to the first overlay snap from the first data stream is physically stored in the first overlay snap, and any entries not receiving changes in the first data stream remain empty, the generated first pointers pointing to the new data stored within the first overlay snap, wherein the first overlay snap is generated by generating first null pointers for the empty locations that do not have new data written to the first overlay snap, wherein the first overlay snap comprises the first pointers and the first null pointers;

receiving an initial data stream including taking a snapshot of the source storage device and performing a sweep on the snapshot; and

writing the initial data stream to the replica volume on the target storage device.

18. The computer-implemented method of claim 17 , the method further comprising, in response to completion of the initial data stream being written to the replica volume on the target storage device, attaching the first overlay snap to the replica volume on the target storage device.

19. The computer-implemented method of claim 17 , the method further comprising generating a second overlay snap of the replica volume on the target storage device, and writing a second data stream from the source storage device to the second overlay snap.

20. The computer-implemented method of claim 19 , the method further comprising, in response to completion of the initial data stream being written to the replica volume on the target storage device, attaching the second overlay snap to the replica volume.

21. The computer-implemented method of claim 17 , the method further comprising periodically generating on the target storage device a new overlay snap of the replica volume, and writing a new data stream to the new overlay snap.

22. The computer-implemented method of claim 21 , in response to completion of the initial data stream being written to the replica volume on the target storage device, attaching each new overlay snap to the replica volume to generate a new volume, each new volume recording information of a block device or a file system at a new point in time, and storing as an archive each of new volumes.

23. The computer-implemented method of claim 17 , wherein the initial data stream is read directly from the source storage device.

24. The computer-implemented method of claim 17 , wherein the initial data stream comprises a snapshot of the source volume of the source storage device.

25. The computer-implemented method of claim 17 , wherein the first overlay snap is generated by generating a first snapshot of a logical storage volume, and writing the data stream to the first overlay snap.

26. An article comprising:

a non-transitory computer-readable medium that stores computer-executable instructions for continuous data replication of a source volume on a source storage device, the instructions causing a machine to:

generate a first overlay snap of a replica volume on a target storage device, the first overlay snap being generated before a first snapshot of a non-empty source volume is created, the first overlay snap being empty when generated containing corresponding empty entries for each storage location of the source volume;

write a first data stream from the source storage device to the first overlay snap, the first overlay snap including changes from the first data stream for the source volume as new data;

receive an initial data stream, including taking a snapshot of the source storage device and performing a sweep on the snapshot, wherein writing the first data stream to the first overlay snap comprises generating first pointers overwriting respective entries corresponding to the storage locations of the source volume being written to, the first pointers indicating locations of the new data written to the first overlay snap, wherein the new data written to the first overlay snap from the first data stream is physically stored in the first overlay snap, and any entries not receiving changes in the first data stream remain empty, the generated first pointers pointing to the new data stored within the first overlay snap, wherein the first overlay snap is generated by generating first null pointers for the empty locations that do not have new data written to the first overlay snap, wherein the first overlay snap comprises the first pointers and the first null pointers; and

write the initial data stream to the replica volume on the target storage device, wherein the circuitry comprises at least one of a processor, a memory, a programmable logic device, or a logic gate.

27. The article of claim 26 , the instructions further causing the machine to, in response to completion of the initial data stream being written to the replica volume on the target storage device, attach the first overlay snap to the replica volume on the target storage device.

28. The article of claim 26 , the instructions further causing the machine to generate a second overlay snap of the replica volume on the target storage device, and writing a second data stream from the second storage device to the second overlay snap.

29. The article of claim 28 , the instructions further causing the machine to, in response to completion of the initial data stream being written to the replica volume on the target storage device, attaching the second overlay snap to the replica volume.

30. The article of claim 26 , the instructions further causing the machine to, periodically generate on the target storage device a new overlay snap of the replica volume, and writing a new data stream to the new overlay snap.

31. The article of claim 30 , the instructions further causing the machine to, in response to completion of the initial data stream being written to the replica volume on the target storage device, attach each new overlay snap to the replica volume to generate a new volume, each new volume recording information of a block device or a file system at a new point in time, and storing as an archive each of new volumes.

32. The article of claim 26 , wherein the initial data stream is read directly from the source storage device.

33. The article of claim 26 , wherein the initial data stream comprises a snapshot of the source volume of the source storage device.

34. The article of claim 26 , wherein the first overlay snap is generated by generating a first snapshot of a logical storage volume, and writing the data stream to the first overlay snap.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2017
From: SHEMER, JEHUDA; NATANZON, ASSAF; GOLDSCHMIDT, RAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 043995/0809 →