IP Library Granted Patent US 9,967,337
Granted Patent B1
US 9,967,337 · App. 14/982,597 · Granted May 8, 2018

Corruption-resistant backup policy

Inventor: Himabindu Tummala (South Grafton, MA)
Assignee: EMC IP Holding Company LLC
H04L67/1095H04L67/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 9,967,337
App. No.
14/982,597
Filed
Dec 29, 2015
Granted
May 8, 2018
Kind
B1
Art Unit
2443
USPC
709/219
Abstract

Improved techniques for managing backups of data objects involve specifying a policy for generating complete versions of a data object at a destination data storage system (destination) from differential backups of the data object previously received. The complete versions are independent of the previous differential backups and any complete versions of the data object that preceded them. A backup policy specifies when such a complete version is to be generated. Along these lines, a destination receives differential backups of a data object stored on a source. The destination may store these differential backups at the destination. However, according to the backup policy that specifies that a complete version of a data object is generated after the destination receives a certain number of differential backups, the destination creates a complete copy of the data of the data object at new storage locations at the destination distinct from previous storage locations.

Claims (53)

1. A method of managing backups of data objects, the method comprising:

receiving, by a destination data storage system (destination) from a source data storage system (source), a differential backup of a data object stored in the source, the differential backup containing data indicative of changes in the data object made since a previous differential backup was made;

applying the changes in the data object to a version of the data object at the destination to update the version of the data object, data of the updated version of the data object being stored in first storage locations of the destination; and

in accordance with a backup policy in place at the destination, copying, by the destination, the data of the updated version of the data object to second storage locations of the destination distinct from the first storage locations.

2. A method as in claim 1 , further comprising receiving the backup policy from the source.

3. A method as in claim 1 , wherein the backup policy in place at the destination specifies that copying the data of the data object to distinct storage locations of the destination is to be performed after each receipt of a predetermined number of differential backups.

4. A method as in claim 3 , further comprising:

prior to copying the data and in accordance with the backup policy, allocating new storage at the second storage locations of the destination,

wherein copying the data includes storing a complete version of the data object in the allocated storage.

5. A method as in claim 4 , wherein the data object is supported on the destination by a sequential array of block pointers, each block pointer pointing to a respective block of storage in the first storage locations;

wherein allocating distinct storage at the second storage locations of the destination includes allocating blocks of storage at the second storage locations; and

wherein the method further comprises redirecting the sequential array of block pointers to point to the allocated blocks at the second storage locations.

6. A method as in claim 5 , wherein the acts of allocating the blocks of storage and redirecting the sequential array of block pointers are performed in response to reading the data stored in the blocks of storage at the first storage locations and writing the same data to induce a write split.

7. A method as in claim 6 , wherein snaps of the data object that were generated by previous differential backups of the data object are supported by respective sequential arrays of block pointers;

wherein the method further comprises, after copying the data of the updated version of the data object to the second storage locations of the destination:

receiving a new differential backup of the data object stored in the source; and

in response to receiving the new differential backup of the data object, generating a new snap of the updated version of the data object based on the new differential backup, the new snap being supported by a sequential array of block pointers, at least one of the sequential array of block pointers supporting the new snap pointing to the blocks at the second storage locations.

8. A method as in claim 7 , wherein the new differential backup received at the destination contains corrupted data; and

wherein the method further comprises:

restoring the data object from a snap of the data object that is supported by the first storage location.

9. A computer program product including non-transitory, computer-readable storage media which stores executable code, which when executed by a destination data storage system (destination), causes the destination to perform a method of managing backups of data objects, the method comprising:

receiving, by the destination from a source data storage system (source), a differential backup of a data object stored in the source, the differential backup containing data indicative of changes in the data object made since a previous differential backup was made;

applying the changes in the data object to a version of the data object at the destination to update the version of the data object, data of the updated version of the data object being stored in first storage locations of the destination; and

in accordance with a backup policy in place at the destination, copying, by the destination, the data of the updated version of the data object to second storage locations of the destination distinct from the first storage locations.

10. A computer program product as in claim 9 , wherein the method further comprises receiving the backup policy from the source.

11. A computer program product as in claim 9 , wherein the backup policy in place at the destination specifies that copying the data of the data object to new and distinct storage locations of the destination is to be performed after each receipt of a predetermined number of differential backups.

12. A computer program product as in claim 11 , wherein the method further comprises:

prior to copying the data and in accordance with the backup policy, allocating new storage at the second storage locations of the destination; and

storing a complete version of the data object in the allocated storage.

13. A computer program product as in claim 12 , wherein the data object is supported on the destination by a sequential array of block pointers, each block pointer pointing to a respective block of storage in the first storage locations;

wherein allocating the new storage at the second storage locations of the destination includes allocating blocks of storage at the second storage locations; and

wherein copying the data of the updated version of the data object to the second storage locations of the destination includes redirecting the sequential array of block pointers to point to newly allocated blocks at the second storage locations.

14. A computer program product as in claim 13 , wherein the acts of allocating the blocks of storage and redirecting the sequential array of block pointers are in response to reading and subsequent writing operations performed on the data stored in the blocks of storage at the first storage locations.

15. A computer program product as in claim 14 , wherein snaps of the data object that were generated by previous differential backups of the data object are supported by respective sequential arrays of block pointers;

wherein the method further comprises, after copying the data of the updated version of the data object to the second storage locations of the destination:

receiving a new differential backup of the data object stored in the source; and

in response to receiving the new differential backup of the data object, generating a new snap of the updated version of the data object based on the new differential backup, the new snap being supported by a sequential array of block pointers, at least one of the sequential array of block pointers supporting the new snap pointing to the blocks at the second storage locations.

16. A computer program product as in claim 15 , wherein the new differential backup received at the destination contains corrupted data; and

wherein the method further comprises:

receiving an indication that the new differential backup contains corrupted data; and

in response to the indication, restoring the data object from a most recent snap of the data object that is supported by a sequential array of block pointers pointing to blocks at the first storage location.

17. A system constructed and arranged to manage backups of data objects, the system including:

a destination data storage system (destination); and

a source data storage system (source),

the destination being constructed and arranged to:

receive, from a differential backup of a data object stored in the source, the differential backup containing data indicative of changes in the data object made since a previous differential backup was made;

apply the changes in the data object to a version of the data object at the destination to update the version of the data object, data of the updated version of the data object being stored in first storage locations of the destination; and

in accordance with a backup policy in place at the destination, copy the data of the updated version of the data object to second storage locations of the destination distinct from the first storage locations.

18. A system as in claim 17 , wherein the destination is further constructed and arranged to receive the backup policy from the source.

19. A system as in claim 17 , wherein the backup policy in place at the destination specifies that copying the data of the data object to new and distinct storage locations of the destination is to be performed after each receipt of a predetermined number of differential backups.

20. A system as in claim 19 , wherein the destination is further constructed and arranged to:

prior to copying the data and in accordance with the backup policy, allocate new storage at the second storage locations of the destination; and

store a complete version of the data object in the allocated storage.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2016
From: TUMMALA, HIMABINDU
To: EMC CORPORATION
Reel/Frame 037606/0892 →