IP Library Granted Patent US 9,910,620
Granted Patent B1
US 9,910,620 · App. 15/086,577 · Granted Mar 6, 2018

Method and system for leveraging secondary storage for primary storage snapshots

Inventors: Alexandr Veprinsky (Brookline, MA); Assaf Natanzon (Tel Aviv, IL)
Assignee: EMC Corporation
G06F3/065G06F3/0619G06F3/0652G06F3/0683
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 9,910,620
App. No.
15/086,577
Granted
Mar 6, 2018
Kind
B1
Abstract

Example embodiments of the present invention relate to a method, a system, and a computer program product for leveraging secondary storage for primary storage snapshots. The method includes creating a current first snapshot of a volume at a current first time in a primary storage. The method then may determine differences between the current first snapshot at the current first time and a previous second snapshot created at a previous second time. The differences then may be sent to a secondary storage.

Claims (72)

1. A method comprising:

creating a current first snapshot of a volume at a current first time in a primary storage;

determining differences between the current first snapshot at the current first time and a previous second snapshot created at a previous second time; and

sending the differences between the current first snapshot and the previous second snapshot to a secondary storage;

deleting data from addresses in the volume in the primary storage of the differences sent to the secondary storage;

storing pointers to the secondary storage for the deleted addresses in a low tier node in a hierarchy of nodes storing data for the volume at the primary storage;

receiving a read request, including a read address, at the primary storage; and

recursively attempting to read the data from the read address from an active or a higher level node in the hierarchy of nodes storing data for the volume at the primary storage comprises:

attempting to read the data from the read address at the active node in the hierarchy of nodes storing data for the volume at the primary storage; and

returning the data from the address if the data is stored at the address in the active node in the hierarchy of nodes storing data for the volume at the primary storage;

if the data is not stored at the address in the active node in the hierarchy of nodes storing data for the volume at the primary storage:

recursively attempting to read the data from the read address from the higher level node in the hierarchy of nodes storing data for the volume at the primary storage; and

returning the data from the address if the data is stored at the address in the hierarchy of nodes storing data for the volume at the primary storage;

wherein storing pointers to the secondary storage for the deleted addresses in a low tier node comprises storing a first type of metadata indicating that the data was tiered to the secondary storage; and

wherein recursively attempting to read the data from the read address from an active or a higher level node in the hierarchy of nodes comprises attempting to read from the higher level node in the hierarchy of nodes according to a second type of metadata indicating that read address in the active node is thin.

2. The method of claim 1 wherein deleting data from addresses in the volume in the primary storage of the differences sent to the secondary storage comprises determining data to delete from addresses in the volume in the primary storage according to a heatmap of read requests to the addresses.

3. The method of claim 1 further comprising:

receiving a write request, including data and a write address, at the primary storage;

storing data of the write request at the address in an active node of a hierarchy of nodes storing data for the volume at the primary storage.

4. The method of claim 1 further comprising:

receiving the differences between the current first snapshot and the previous second snapshot at the secondary storage; and

storing the differences in a third snapshot in the secondary storage.

5. A system comprising:

a primary storage;

a secondary storage; and

memory storing computer program code that when executed on a processor causes the processor to execute a replication process operable to perform the operations of:

creating a current first snapshot of a volume at a current first time in a primary storage;

determining differences between the current first snapshot at the current first time and a previous second snapshot created at a previous second time;

sending the differences between the current first snapshot and the previous second snapshot to a secondary storage;

deleting data from addresses in the volume in the primary storage of the differences sent to the secondary storage; and

storing pointers to the secondary storage for the deleted addresses in a low tier node in a hierarchy of nodes storing data for the volume at the primary storage;

receiving a read request, including a read address, at the primary storage;

recursively attempting to read the data from the read address from an active or a higher level node in the hierarchy of nodes storing data for the volume at the primary storage, the data from the read address from an active or a higher level node in the hierarchy of nodes storing data for the volume at the primary storage comprises computer program code operable to perform the operations of:

attempting to read the data from the read address at the active node in the hierarchy of nodes storing data for the volume at the primary storage; and

returning the data from the address if the data is stored at the address in the active node in the hierarchy of nodes storing data for the volume at the primary storage;

wherein the memory further stores computer program code operable to perform the operations of, if the data is not stored at the address in the hierarchy of nodes storing data for the volume at the primary storage:

recursively attempting to read the data from the read address from the higher level node in the hierarchy of nodes storing data for the volume at the primary storage; and

returning the data from the address if the data is stored at the address in the hierarchy of nodes storing data for the volume at the primary storage;

wherein the memory further stores computer program code operable to perform the operations of, if the data is not stored at the address in the hierarchy of nodes storing data for the volume at the primary storage:

examining the read address in the low tier node in the hierarchy of nodes storing data for the volume at the primary storage for a pointer to the secondary storage; and

if there is a pointer for the read address in the low tier node in the hierarchy of nodes storing data for the volume at the primary storage, attempting to read the data from the read address at the secondary storage according to the pointer;

wherein computer program code operable to perform the operation of storing pointers to the secondary storage for the deleted addresses in a low tier node comprises computer program code operable to perform the operation of storing a first type of metadata indicating that the data was tiered to the secondary storage; and

wherein computer program code operable to perform the operation of recursively attempting to read the data from the read address from an active or a higher level node in the hierarchy of nodes comprises computer program code operable to perform the operation of attempting to read from the higher level node in the hierarchy of nodes according to a second type of metadata indicating that read address in the active node is thin.

6. The system of claim 5 wherein computer program code operable to perform the operation of deleting data from addresses in the volume in the primary storage of the differences sent to the secondary storage comprises computer program code operable to perform the operation of determining data to delete from addresses in the volume in the primary storage according to a heatmap of read requests to the addresses.

7. The system of claim 5 wherein the memory further stores computer program code operable to perform the operations of:

receiving a write request, including data and a write address, at the primary storage;

storing data of the write request at the address in an active node of a hierarchy of nodes storing data for the volume at the primary storage.

8. The system of claim 5 wherein the memory further stores computer program code operable to perform the operations of:

receiving the differences between the current first snapshot and the previous second snapshot at the secondary storage; and

storing the differences in a third snapshot in the secondary storage.

9. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to execute a replication process comprising:

computer program code for creating a current first snapshot of a volume at a current first time in a primary storage;

computer program code for determining differences between the current first snapshot at the current first time and a previous second snapshot created at a previous second time;

computer program code for sending the differences between the current first snapshot and the previous second snapshot to a secondary storage;

deleting data from addresses in the volume in the primary storage of the differences sent to the secondary storage;

storing pointers to the secondary storage for the deleted addresses in a low tier node in a hierarchy of nodes storing data for the volume at the primary storage;

receiving a read request, including a read address, at the primary storage; and

recursively attempting to read the data from the read address from an active or a higher level node in the hierarchy of nodes storing data for the volume at the primary storage comprises:

attempting to read the data from the read address at the active node in the hierarchy of nodes storing data for the volume at the primary storage; and

returning the data from the address if the data is stored at the address in the active node in the hierarchy of nodes storing data for the volume at the primary storage;

if the data is not stored at the address in the active node in the hierarchy of nodes storing data for the volume at the primary storage:

recursively attempting to read the data from the read address from the higher level node in the hierarchy of nodes storing data for the volume at the primary storage; and

returning the data from the address if the data is stored at the address in the hierarchy of nodes storing data for the volume at the primary storage;

wherein storing pointers to the secondary storage for the deleted addresses in a low tier node comprises storing a first type of metadata indicating that the data was tiered to the secondary storage; and

wherein recursively attempting to read the data from the read address from an active or a higher level node in the hierarchy of nodes comprises attempting to read from the higher level node in the hierarchy of nodes according to a second type of metadata indicating that read address in the active node is thin.

10. The computer program product of claim 9 wherein deleting data from addresses in the volume in the primary storage of the differences sent to the secondary storage comprises determining data to delete from addresses in the volume in the primary storage according to a heatmap of read requests to the addresses.

11. The computer program product of claim 9 further comprising:

receiving a write request, including data and a write address, at the primary storage;

storing data of the write request at the address in an active node a hierarchy of nodes storing data for the volume at the primary storage.

12. The computer program product of claim 9 , further comprising:

receiving the differences between the current first snapshot and the previous second snapshot at the secondary storage; and

storing the differences in a third snapshot in the secondary storage.

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 (046366/0014) 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
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
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 (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: NATANZON, ASSAF; VEPRINSKY, ALEXANDR
To: EMC CORPORATION
Reel/Frame 044715/0908 →