IP Library Granted Patent US 7,552,358
Granted Patent B1
US 7,552,358 · App. 11/182,992 · Granted Jun 23, 2009

Efficient backup and restore using metadata mapping

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 7,552,358
App. No.
11/182,992
Filed
Jul 15, 2005
Granted
Jun 23, 2009
Kind
B1
Art Unit
2114
USPC
714/6
Abstract

A method for efficient backup and restore using metadata mapping comprises maintaining a first backup aggregation associated with a primary data object of a primary host at a secondary host, wherein the first backup aggregation includes a first backup version of the primary data object stored within a secondary data object at the secondary host. The method further comprises generating a second backup aggregation, wherein the second backup aggregation includes a second backup version of the primary data object and a backup metadata object corresponding to the secondary data object. The backup metadata object includes a pointer to the second backup version. The method may further comprise restoring the secondary data object, wherein said restoring comprises using the pointer to access the second backup version of the primary data object to restore at least a portion of the secondary data object.

Claims (106)

1. A method, comprising:

storing a first backup aggregation associated with a primary data object of a primary host within a secondary data object at a secondary host, wherein the first backup aggregation includes a first backup copy of the primary data object;

storing a second backup aggregation associated with the primary data object and the secondary data object, wherein the second backup aggregation includes:

a second backup copy of the primary data object; and

a backup version of the secondary data object, wherein the primary data object is not duplicated in the backup version of the secondary data object, wherein the backup version of the secondary data object includes a metadata object which includes a pointer to the second backup copy of the primary data object; and

restoring the secondary data object using the backup version of the secondary data object, wherein said restoring the secondary data object includes using the pointer to access the second backup copy of the primary data object to restore contents of the primary data object to the secondary data object.

2. The method as recited in claim 1 , further comprising:

restoring the primary data object using the second backup copy of the primary data object.

3. The method as recited in claim 1 , further comprising:

restoring the primary data object to a primary restoration target, wherein said restoring the primary data object includes:

making a determination whether the primary data object is to be restored in a multi-stage restoration process;

if a result of the determination is positive, restoring the primary data object from the second backup copy to a secondary restoration target, and from the secondary restoration target to the primary restoration target; and

if a result of the determination is negative, restoring the primary data object directly from the second backup copy to the primary restoration target.

4. The method as recited in claim 3 , further comprising:

if the result of the determination is negative, synchronizing the first backup aggregation with the primary restoration target after restoring the primary data object.

5. The method as recited in claim 3 , wherein the determination is made based on a measurement of a specified workload metric.

6. The method as recited in claim 1 , further comprising maintaining the first backup copy of the primary data object as a replica of the primary data object.

7. The method as recited in claim 6 , wherein maintaining the first backup copy of the primary data object as a replica of the primary data object comprises updating the first backup copy of the primary data object in real time in response to write requests that modify the primary data object.

8. The method as recited in claim 1 , wherein the primary data object includes a plurality of files of a file system.

9. The method as recited in claim 1 , wherein the primary data object includes a plurality of electronic mail messages.

10. The method as recited in claim 1 , wherein the secondary data object includes one or more directories of a file system.

11. The method as recited in claim 1 , wherein the second backup aggregation is stored at a tertiary host.

12. A system, comprising:

one or more processors; and

memory coupled to the one or more processors and configured to store program instructions executable by the one or more processors to implement a backup manager configured to:

store a first backup aggregation associated with a primary data object of a primary host within a secondary data object at a secondary host, wherein the first backup aggregation includes a first backup copy of the primary data object;

store a second backup aggregation associated with the primary data object and the secondary data object, wherein the second backup aggregation includes:

a second backup copy of the primary data object; and

a backup version of the secondary data object, wherein the primary data object is not duplicated in the backup version of the secondary data object, wherein the backup version of the secondary data object includes a metadata object which includes a pointer to the second backup copy of the primary data object; and

restore the secondary data object using the backup version of the secondary data object, wherein said restoring the secondary data object includes using the pointer to access the second backup copy of the primary data object to restore contents of the primary data object to the secondary data object.

13. The method as recited in claim 1 ,

wherein the secondary data object includes additional data other than the first backup aggregation;

wherein the backup version of the secondary data object includes a duplicate copy of the additional data.

14. The system as recited in claim 12 , wherein the backup manager is further configured to:

restore the primary data object to a primary restoration target, wherein said restoring the primary data object includes:

making a determination whether the primary data object is to be restored in a multi-stage restoration process;

if a result of the determination is positive, restoring the primary data object from the second backup copy to a secondary restoration target, and from the secondary restoration target to the primary restoration target; and

if a result of the determination is negative, restoring the primary data object directly from the second backup copy to the primary restoration target.

15. The system as recited in claim 14 , wherein the backup manager is further configured to:

if the result of the determination is negative, synchronize the first backup aggregation with the primary restoration target after restoring the primary data object.

16. The system as recited in claim 14 , wherein the backup manager is further configured to:

detect an occurrence of a failure; and

restore the primary data object to the primary restoration target in response to the detection of the failure.

17. The system as recited in claim 13 , wherein the backup manager is further configured to maintain the first backup copy of the primary data object as a replica of the primary data object.

18. The system as recited in claim 12 ,

wherein the secondary data object includes additional data other than the first backup aggregation;

wherein the backup version of the secondary data object includes a duplicate copy of the additional data.

19. A computer readable medium storing program instructions, wherein the instructions are computer-executable to:

store a first backup aggregation associated with a primary data object of a primary host within a secondary data object at a secondary host, wherein the first backup aggregation includes a first backup copy of the primary data object;

store a second backup aggregation associated with the primary data object and the secondary data object, wherein the second backup aggregation includes:

a second backup copy of the primary data object; and

a backup version of the secondary data object, wherein the primary data object is not duplicated in the backup version of the secondary data object, wherein the backup version of the secondary data object includes a metadata object which includes a pointer to the second backup copy of the primary data object; and

restore the secondary data object using the backup version of the secondary data object, wherein said restoring the secondary data object includes using the pointer to access the second backup copy of the primary data object to restore contents of the primary data object to the secondary data object.

20. The computer readable medium as recited in claim 19 , wherein the instructions are further computer-executable to:

restore the primary data object to a primary restoration target, wherein said restoring the primary data object includes:

making a determination whether the primary data object is to be restored in a multi-stage restoration process;

if a result of the determination is positive, restoring the primary data object from the second backup copy to a secondary restoration target, and from the secondary restoration target to the primary restoration target; and

if a result of the determination is negative, restoring the primary data object directly from the second backup copy to the primary restoration target.

21. The computer readable medium as recited in claim 20 , wherein the instructions are further computer-executable to:

if the result of the determination is negative, synchronize the first backup aggregation with the primary restoration target after restoring the primary data object.

22. The computer readable medium as recited in claim 19 , wherein the instructions are further computer-executable to maintain the first backup maintain copy of the primary data object as a replica of the primary data object.

23. The computer readable medium as recited in claim 19 ,

wherein the secondary data object includes additional data other than the first backup aggregation;

wherein the backup version of the secondary data object includes a duplicate copy of the additional data.

24. A method, comprising:

maintaining a first backup aggregation associated with a primary data object of a primary host at a secondary host, wherein the secondary host includes a secondary data object, wherein the first backup aggregation includes a first backup version of the primary data object stored at the secondary data object;

generating a second backup aggregation associated with the primary data object and the secondary data object, wherein the second backup aggregation includes:

a second backup version of the primary data object; and

a backup metadata object corresponding to the secondary data object, wherein the backup metadata object includes a pointer to the second backup version;

restoring the secondary data object, wherein said restoring the secondary data object includes using the pointer to access contents of the second backup version to restore at least a portion of the secondary data object; and

restoring the primary data object to a primary restoration target, wherein said restoring the primary data object includes:

making a determination whether the primary data object is to be restored in a multi-stage restoration process;

if a result of the determination is positive, restoring the primary data object from the second backup version to a secondary restoration target, and from the secondary restoration target to the primary restoration target; and

if a result of the determination is negative, restoring the primary data object directly from the second backup version to the primary restoration target.

25. The method as recited in claim 24 , further comprising:

if the result of the determination is negative, synchronizing the first backup aggregation with the primary restoration target after restoring the primary data object.

26. The method as recited in claim 24 , wherein the determination is made based on a measurement of a specified workload metric.

27. A system, comprising:

a processor; and

a memory coupled to the processor and configured to store program instructions executable by the processor to implement a backup manager configured to:

maintain a first backup aggregation associated with a primary data object of a primary host at a secondary host, wherein the secondary host includes a secondary data object, wherein the first backup aggregation includes a first backup version of the primary data object stored at the secondary data object;

generate a second backup aggregation associated with the primary data object and the secondary data object, wherein the second backup aggregation includes:

a second backup version of the primary data object; and

a backup metadata object corresponding to the secondary data object, wherein the backup metadata object includes a pointer to the second backup version;

restore the secondary data object, wherein said restoring the secondary data object includes using the pointer to access contents of the second backup version to restore at least a portion of the secondary data object; and

restore the primary data object to a primary restoration target, wherein said restoring the primary data object includes:

making a determination whether the primary data object is to be restored in a multi-stage restoration process;

if a result of the determination is positive, restoring the primary data object from the second backup version to a secondary restoration target, and from the secondary restoration target to the primary restoration target; and

if a result of the determination is negative, restoring the primary data object directly from the second backup version to the primary restoration target.

28. The system as recited in claim 27 , wherein the backup manager is further configured to:

if the result of the determination is negative, synchronize the first backup aggregation with the primary restoration target after restoring the primary data object.

29. The system as recited in claim 27 , wherein the backup manager is further configured to:

detect an occurrence of a failure; and

restore the primary data object to the primary restoration target in response to the detection of the failure.

30. A computer readable medium comprising program instructions, wherein the instructions are computer-executable to:

maintain a first backup aggregation associated with a primary data object of a primary host at a secondary host, wherein the secondary host includes a secondary data object, wherein the first backup aggregation includes a first backup version of the primary data object stored at the secondary data object;

generate a second backup aggregation associated with the primary data object and the secondary data object, wherein the second backup aggregation includes:

a second backup version of the primary data object; and

a backup metadata object corresponding to the secondary data object, wherein the backup metadata object includes a pointer to the second backup version;

restore the secondary data object, wherein said restoring the secondary data object includes using the pointer to access contents of the second backup version to restore at least a portion of the secondary data object; and

restore the primary data object to a primary restoration target, wherein said restoring the primary data object includes:

making a determination whether the primary data object is to be restored in a multi-stage restoration process;

if a result of the determination is positive, restoring the primary data object from the second backup version to a secondary restoration target, and from the secondary restoration target to the primary restoration target; and

if a result of the determination is negative, restoring the primary data object directly from the second backup version to the primary restoration target.

31. The computer readable medium as recited in claim 30 , wherein the instructions are further computer-executable to:

if the result of the determination is negative, synchronize the first backup aggregation with the primary restoration target after restoring the primary data object.

Assignments (15)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2005
From: ASGAR-DEEN, TERRENCE; ORLING, ANTHONY T.; NICOLINI, MARK J.; DEVOS, STEVEN R.
To: VERITAS OPERATING CORPORATION
Reel/Frame 016801/0565 →