IP Library Granted Patent US 9,880,776
Granted Patent B1
US 9,880,776 · App. 13/774,072 · Granted Jan 30, 2018

Content-driven data protection method for multiple storage devices

Inventors: Ynn-Pyng Tsaur (Oviedo, FL); Ping Wang (Sanford, FL)
Assignee: Veritas Technologies LLC
G06F3/065G06F3/067G06F3/0608G06F11/1458
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,880,776
App. No.
13/774,072
Filed
Feb 22, 2013
Granted
Jan 30, 2018
Kind
B1
Examiner
WANG, EDWARD
Art Unit
2139
USPC
711/162
Abstract

A backup storage system and methods implemented by the backup storage system are disclosed. The backup software performs a plurality of backup operations to backup one or more data objects according to a backup schedule. The backup operations may be alternated across a plurality of backup storage devices, and each of the backup operations may operate to store a respective backup data set on one of the backup storage devices. In performing the plurality of backup operations, the backup storage system may create the backup data sets such that each respective backup storage device can be used independently of the other backup storage device(s) to perform a complete recovery of the one or more data objects to any point in time that corresponds to any respective backup data set stored on the respective backup storage device.

Claims (67)

1. A non-transitory computer-accessible storage medium storing program instructions executable by one or more processors to:

create a first backup of a data set to form a first backup data set on a first storage device at a first point in time;

create a second backup of the data set to form a second backup data set on a second storage device at a second point in time after the first point in time, wherein the second storage device is different from the first storage device;

in response to a request to create an incremental backup of the data set to form an incremental backup data set on the first storage device at a third point in time after the second point in time:

determine the first backup data set is a most recent backup data set on the first storage device although the second backup data set on the second storage device is a more recent backup data set than the first backup data set; and

create the incremental backup data set comprising changes to the first backup dataset since the first point in time and including changes to the first backup dataset occurring after the first point in time and prior to the second point in time;

wherein to determine the most recent backup data set on the first storage device, the program instructions are executable by the one or more processors to:

determine an identifier (ID) of the first storage device by accessing metadata on the first storage device, rather than any entries of a backup catalog;

lookup an entry in the backup catalog using the ID; and

read from the entry a time that a most recent backup data set was created on the first storage device.

2. The non-transitory computer-accessible storage medium of claim 1 , wherein a plurality of backup operations are alternated at different times across the first storage device and the second storage device in a round-robin fashion, and wherein a complete recovery chain is maintained on each of the first storage device and the second storage device such that a full restore operation may be performed using only one of either the first storage device or the second storage device.

3. The non-transitory computer-accessible storage medium of claim 1 , wherein the program instructions are executable by the one or more processors to add an entry to a backup catalog specifying a point in time when a given backup data set is created and an identifier (ID) of a storage device on which the given backup data set is stored.

4. The non-transitory computer-accessible storage medium of claim 1 , wherein a backup schedule specifies that an incremental backup operation should be performed at a particular time, wherein the program instructions are executable by the one or more processors to:

at the particular time, determine that a particular storage device of the first storage device and the second storage device should be used for a new backup operation; and

perform the new backup operation at the particular time as a full backup operation instead of the specified incremental backup operation in response to determining that a full backup operation has not yet been performed on the particular storage device.

5. The non-transitory computer-accessible storage medium of claim 1 , wherein the first backup data set and the incremental backup data set are separately stored and concurrently maintained on the first storage device, and wherein the program instructions are executable to:

use the first backup data set to perform a recovery to the first point in time; and

use the incremental backup data set to perform a recovery to the third point in time.

6. The non-transitory computer-accessible storage medium of claim 1 , wherein to determine the most recent backup data set on the first storage device, the program instructions are executable by the one or more processors to read metadata on the first storage device, wherein the metadata describes one or more backup data sets stored on the first storage device.

7. The non-transitory computer-accessible storage medium of claim 1 ,

wherein a plurality of backup operations includes a first full backup operation performed at a first time to the first storage device and a second full backup operation performed at a second time to the second storage device;

wherein the plurality of backup operations further includes a first incremental backup operation performed at a third time to the first storage device, wherein in performing the first incremental backup operation, the program instructions are executable by the one or more processors to determine a first set of data from one or more data objects that has changed between the first time and the third time, and backup the first set of data to the first storage device.

8. The non-transitory computer-accessible storage medium of claim 7 ,

wherein the plurality of backup operations further includes an incremental backup operation performed at a fourth time to the second storage device, wherein in performing the incremental backup operation at the fourth time, the program instructions are executable by the one or more processors to determine a second set of data from the one or more data objects that has changed between the second time and the fourth time, and backup the second set of data to the second storage device.

9. The non-transitory computer-accessible storage medium of claim 8 ,

wherein the plurality of backup operations further includes a third incremental backup operation performed at a fifth time to the first storage device, wherein in performing the third incremental backup operation, the program instructions are executable by the one or more processors to determine a third set of data from the one or more data objects that has changed between the third time and the fifth time, and backup the third set of data to the first storage device.

10. The non-transitory computer-accessible storage medium of claim 1 , wherein one or more data objects includes a particular data object of a particular type, wherein a plurality of backup operations includes an incremental backup operation performed at a particular time, wherein in performing the incremental backup operation, the program instructions are further executable by the one or more processors to:

determine a software agent corresponding to the particular type of the particular data object; and

request the software agent to provide information specifying a subset of data blocks of the particular data object to store in a new backup data set for the incremental backup operation.

11. The non-transitory computer-accessible storage medium of claim 10 , wherein the program instructions are further executable by the one or more processors to:

receive an indication from the software agent that the software agent cannot provide the requested information; and

in response to said receiving the indication, store a complete copy of the particular data object in the new backup data set for the incremental backup operation.

12. A method comprising:

creating a first backup of a data set to form a first backup data set on a first storage device at a first point in time;

creating a second backup of the data set to form a second backup data set on a second storage device at a second point in time after the first point in time, wherein the second storage device is different from the first storage device;

in response to a request to create an incremental backup of the data set to form an incremental backup data set on the first storage device at a third point in time after the second point in time:

determining the first backup data set is a most recent backup data set on the first storage device although the second backup data set on the second storage device is a more recent backup data set than the first backup data set; and

creating the incremental backup data set comprising changes to the first backup dataset since the first point in time and including changes to the first backup dataset occurring after the first point in time and prior to the second point in time;

wherein in response to determining it is time to perform a backup operation based on a backup schedule:

accessing, prior to performing the backup operation, metadata on a storage device on which a backup data set is to be stored;

using information in the accessed metadata to:

identify the storage device;

determine a point in time of a most recent backup data set on the storage device;

determine whether a full backup data set is stored on the storage device; and

performing the backup operation based on the information in the accessed metadata.

13. The method of claim 12 , wherein to determine the most recent backup data set on the first storage device, the method further comprises reading metadata on the first storage device, wherein the metadata describes one or more backup data sets stored on the first storage device.

14. The method of claim 12 , further comprising adding an entry to a backup catalog specifying a point in time when a given backup data set is created and an identifier (ID) of a storage device on which the given backup data set is stored.

15. The method of claim 12 , wherein a backup schedule specifies that an incremental backup operation should be performed at a first time, further comprising:

at the first time, determining that a particular storage device of the first storage device and the second storage device should be used for a new backup operation; and

performing the new backup operation at the first time as a full backup operation instead of the specified incremental backup operation in response to determining that a full backup operation has not yet been performed on the particular storage device.

16. The method of claim 12 , wherein the first backup data set and the incremental backup data set are separately stored and concurrently maintained on the first storage device, and wherein the method further comprises:

using the first backup data set to perform a recovery to the first point in time; and

using the incremental backup data set to perform a recovery to the third point in time.

17. The method of claim 12 , further comprising alternating a plurality of backup operations at different times across the first storage device and the second storage device in a round-robin fashion.

18. A system comprising:

a plurality of storage devices;

one or more processors; and

memory storing program instructions, wherein the program instructions are executable by the one or more processors to:

create a first backup of a data set to form a first backup data set on a first storage device at a first point in time;

create a second backup of the data set to form a second backup data set on a second storage device at a second point in time after the first point in time, wherein the second storage device is different from the first storage device;

in response to a request to create an incremental backup of the data set to form an incremental backup data set on the first storage device at a third point in time after the second point in time:

determine the first backup data set is a most recent backup data set on the first storage device although the second backup data set on the second storage device is a more recent backup data set than the first backup data set; and

create the incremental backup data set comprising changes to the first backup dataset since the first point in time and including changes to the first backup dataset occurring after the first point in time and prior to the second point in time;

wherein to determine the most recent backup data set on the first storage device, the program instructions are executable by the one or more processors to:

determine an identifier (ID) of the first storage device by accessing metadata on the first storage device, rather than any entries of a backup catalog;

lookup an entry in the backup catalog using the ID; and

read from the entry a time that a most recent backup data set was created on the first storage device.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075794/0333 →
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 Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
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 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2013
From: TSAUR, YNN-PYNG; WANG, PING
To: SYMANTEC CORPORATION
Reel/Frame 029860/0464 →