IP Library Granted Patent US 8,990,164
Granted Patent B1
US 8,990,164 · App. 13/363,982 · Granted Mar 24, 2015

Systems and methods for performing incremental backups

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 8,990,164
App. No.
13/363,982
Granted
Mar 24, 2015
Kind
B1
Abstract

A computer-implemented method for performing incremental backups may include 1) identifying a volume of data previously subjected to a backup, 2) determining a time to perform an incremental backup of the volume, the incremental backup being incremental with respect to the backup, and, at the time of the incremental backup, 3) identifying a list of files changed on the volume since the backup, 4) identifying a map of blocks changed on the volume since the backup, and 5) including, in the incremental backup, each block within at least one file that is indicated as changed in the map of blocks. Various other methods, systems, and computer-readable media are also disclosed.

Claims (89)

1. A computer-implemented method for performing incremental backups, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a volume of data previously subjected to a backup;

determining a time to perform an incremental backup of the volume, the incremental backup being incremental with respect to the backup;

at the time of the incremental backup, identifying a list of files changed on the volume since the backup;

determining that a first file, identified as changed in the list of files, has not changed since the time of the incremental backup and that a second file, identified as changed in the list of files, has changed since the time of the incremental backup;

in response to determining that the first file has not changed since the time of the incremental backup and the second file has changed since the time of the incremental backup:

identifying, in a map of blocks changed on the volume since the backup, each block within the first file that is indicated as changed since the backup, wherein:

the map of blocks comprises a bitmap, each bit corresponding to a block within the volume;

the bitmap starts, after the backup, as a clear bitmap;

before each write to a block on the volume, a corresponding bit is set in the bitmap to ensure that each write within the volume is reflected in the bitmap;

including, in the incremental backup:

each block within the first file that is indicated as changed in the map of blocks;

the entire second file.

2. The computer-implemented method of claim 1 , wherein the map of blocks tracks changes to the blocks on the volume since the backup within a block tracking driver.

3. The computer-implemented method of claim 1 , further comprising:

quiescing the volume at the time of the incremental backup;

bringing the volume back online before determining that the first file has not changed since the time of the incremental backup and before determining that the second file has changed since the time of the incremental backup.

4. The computer-implemented method of claim 3 , wherein:

determining that the first file has not changed since the time of the incremental backup comprises determining that the first file has not changed while the volume is online;

determining that the second file has changed since the time of the incremental backup comprises determining that the second file has changed while the volume is online.

5. The computer-implemented method of claim 1 , wherein:

identifying the list of files changed on the volume since the backup comprises tracking changes to the files on the volume since the backup within a file system filter driver.

6. The computer-implemented method of claim 5 , wherein tracking changes to the files on the volume comprises:

intercepting an attempt to open a file with write access on the volume;

intercepting an attempt to close the file;

determining that a modification time of the file changed between opening the file and closing the file.

7. The computer-implemented method of claim 1 , further comprising:

quiescing the volume at the time of the incremental backup;

bringing the volume back online before including, in the incremental backup, each block within the first file that is indicated as changed in the map of blocks.

8. The computer-implemented method of claim 7 ,

further comprising creating a snapshot of the volume after quiescing the volume and before bringing the volume back online;

wherein identifying, in the map of blocks changed on the volume since the backup, each block within the first file that is indicated as changed since the backup comprises identifying each block within the first file that is indicated as changed in the map of blocks based on the first file as represented in the snapshot.

9. A system for performing incremental backups, the system comprising:

an identification module programmed to identify a volume of data previously subjected to a backup;

a determination module programmed to determine a time to perform an incremental backup of the volume, the incremental backup being incremental with respect to the backup;

a file-tracking module programmed to, at the time of the incremental backup, identify a list of files changed on the volume since the backup;

an inclusion module programmed to:

determine that a first file, identified as changed in the list of files, has not changed since the time of the incremental backup and that a second file, identified as changed in the list of files, has changed since the time of the incremental backup;

in response to determining that the first file has not changed since the time of the incremental backup and the second file has changed since the time of incremental backup:

identify, in a map of blocks changed on the volume since the backup, each block within the first file that is indicated as changed since the backup, wherein:

the map of blocks comprises a bitmap, each bit corresponding to a block within the volume;

the bitmap starts, after the backup, as a clear bitmap;

before each write to a block on the volume, a corresponding bit is set in the bitmap to ensure that each write within the volume is reflected in the bitmap;

include, in the incremental backup:

each block within the first file that is indicated as changed in the map of blocks;

the entire second file;

at least one processor configured to execute the identification module, the determination module, the file-tracking module, and the inclusion module.

10. The system of claim 9 , wherein the system comprises a block-tracking module programmed to track the changes to the blocks on the volume since the backup within a block tracking driver.

11. The system of claim 9 , further comprising:

a quiescence module programmed to quiesce the volume at the time of the incremental backup;

a resuming module programmed to bring the volume back online before determining that the first file has not changed since the time of the incremental backup and before determining that the second file has changed since the time of the incremental backup.

12. The system of claim 11 , wherein:

the inclusion module is programmed to determine that the first file has not changed since the time of the incremental backup by determining that the first file has not changed while the volume is online;

the inclusion module is programmed to determine that the second file has changed since the time of the incremental backup by determining that the second file has changed while the volume is online.

13. The system of claim 9 , wherein:

the file-tracking module is programmed to identify the list of files changed on the volume since the backup by tracking changes to the files on the volume since the backup within a file system filter driver.

14. The system of claim 13 , wherein the file-tracking module is programmed to track changes to the files on the volume by:

intercepting an attempt to open a file with write access on the volume;

intercepting an attempt to close the file;

determining that a modification time of the file changed between opening the file and closing the file.

15. The system of claim 9 , further comprising:

a quiescence module programmed to quiesce the volume at the time of the incremental backup;

a resuming module programmed to bring the volume back online before including, in the incremental backup, each block within the first file that is indicated as changed in the map of blocks.

16. The system of claim 15 ,

further comprising a snapshot module programmed to create a snapshot of the volume after quiescing the volume and before bringing the volume back online;

wherein the inclusion module is programmed to identify, in the map of blocks changed on the volume since the backup, each block within the first file that is indicated as changed since the backup by identifying each block within the first file that is indicated as changed in the map of blocks based on the first file as represented in the snapshot.

17. A non-transitory computer-readable-storage medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify a volume of data previously subjected to a backup;

determine a time to perform an incremental backup of the volume, the incremental backup being incremental with respect to the backup;

at the time of the incremental backup, identify a list of files changed on the volume since the backup;

determine that a first file, identified as changed in the list of files, has not changed since the time of the incremental backup and that a second file, identified as changed in the list of files, has changed since the time of the incremental backup;

in response to determining that the first file has not changed since the time of the incremental backup and the second file has changed since the time of the incremental backup:

identify, in a map of blocks changed on the volume since the backup, each block within the first file that is indicated as changed since the backup, wherein:

the map of blocks comprises a bitmap, each bit corresponding to a block within the volume;

the bitmap starts, after the backup, as a clear bitmap;

before each write to a block on the volume, a corresponding bit is set in the bitmap to ensure that each write within the volume is reflected in the bitmap;

include, in the incremental backup:

each block within the first file that is indicated as changed in the map of blocks;

the entire second file.

18. The non-transitory computer-readable-storage medium of claim 17 ,

wherein the one or more computer executable instructions cause the computing device to:

identify the list of files changed on the volume since the backup by tracking changes to the files on the volume since the backup within a file system filter driver;

identify the map of blocks changed on the volume since the backup by tracking changes to the blocks on the volume since the backup within a block tracking driver.

19. The non-transitory computer-readable-storage medium of claim 17 , wherein the one or more computer executable instructions further cause the computing device to:

quiesce the volume at the time of the incremental backup;

bring the volume back online before determining that the first file has not changed since the time of the incremental backup and before determining that the second file has changed since the time of the incremental backup.

20. The non-transitory computer-readable-storage medium of claim 19 , wherein:

the one or more computer executable instructions cause the computing device to determine that the first file has not changed since the time of the incremental backup by causing the computing device to determine that the first file has not changed while the volume is online;

the one or more computer executable instructions cause the computing device to determine that the second file has changed since the time of the incremental backup by causing the computing device to determine that the second file has changed while the volume is online.

Assignments (10)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2012
From: MAHAJAN, SAMEER; KULKARNI, PRADIP; DESHMUKH, DULIPSINH; ANAND, NITIN
To: SYMANTEC CORPORATION
Reel/Frame 027635/0676 →