IP Library Granted Patent US 8,793,217
Granted Patent B2
US 8,793,217 · App. 12/837,829 · Granted Jul 29, 2014

Block level incremental backup

Inventors: Pratap Karonde (Holbrook, NY); Prashant Parikh (Holtsville, NY)
Assignee: CA, Inc.
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,793,217
App. No.
12/837,829
Granted
Jul 29, 2014
Kind
B2
Abstract

A system and method include creating a full backup copy of selected data from a storage device. A series of incremental backups are created over time following the creation of the full backup copy. The oldest incremental backup is merged into the full backup at a desired time.

Claims (63)

1. A method comprising:

creating a full backup copy of selected data from a storage device;

creating a series of incremental backups over time following the creation of the full backup copy, including creating an oldest incremental backup at a first time, a second incremental backup at a second time, and a newest incremental backup at a third time, the second time occurring after the oldest incremental backup is created, and the third time occurring after the second incremental backup is created;

merging the second incremental backup into the oldest incremental backup when a number of incremental backups in the series of incremental backups exceeds a specified number of incremental backups so as to retain at most a maximum number of incremental backups in the series of incremental backups; and

merging the oldest incremental backup into the full backup at a selected time while not merging the newest incremental backup into the full backup, wherein merging the oldest incremental backup into the full backup comprises:

reading a block of data from the oldest incremental backup;

determining whether the block of data is present in the full backup;

in response to determining the block of data is present in the full backup, then determining whether the block of data fits in a previous location of the block of data in the full backup; and

in response to determining the block of data is not present in the full backup, then adding the block of data to the full backup.

2. The method of claim 1 wherein the selected data comprises blocks of data and an incremental backup of the series of incremental backups includes blocks of the data that have changed since a last backup.

3. The method of claim 2 wherein the selected time corresponds to existence of a selected number of incremental backups in the series of incremental backups being greater than the number of incremental backups in the series of incremental backups to be merged into the full backup.

4. The method of claim 3 wherein incremental backups of the series of incremental backups are created at scheduled times.

5. The method of claim 2 wherein the selected time corresponds to a predetermined time.

6. The method of claim 4 wherein multiple oldest incremental backups are merged into the full backup at each scheduled time.

7. The method of claim 6 wherein the multiple oldest incremental backups include a number of incremental backups occurring between consecutive scheduled times.

8. The method of claim 1 wherein merging the oldest incremental backup into the full backup includes replacing blocks of data in the full backup with changed blocks from the oldest incremental backup.

9. A method comprising:

creating a full backup copy of compressed blocks of data from a storage device;

creating a series of incremental backups corresponding to blocks of data that have changed over time following the creation of the full backup copy, including creating an oldest incremental backup created at a first time after the creation of the full backup copy, a second incremental backup at a second time after the creation of the full backup copy, and a newest incremental backup created at a third time after the creation of the full backup copy, the second time after the creation of the oldest incremental backup and the third time after creation of the second incremental backup;

merging the second incremental backup into the oldest incremental backup when a number of incremental backups in the series of incremental backups exceeds a specified number of incremental backups so as to retain at most a maximum number of incremental backups in the series of incremental backups; and

merging blocks of data of the oldest incremental backup into corresponding blocks of data of the full backup at a selected time to reduce the number of incremental backups that have not been applied while not merging the newest incremental backup into the full backup copy, wherein merging blocks of the oldest incremental backup into corresponding blocks of the full backup comprises:

reading a block of data of the blocks of data from the oldest incremental backup;

determining whether the block of data is present in the full backup;

in response to determining the block of data is present in the full backup, determining whether the block of data fits in a previous location of the block of data in the full backup; and

in response to determining the block of data is not present in the full backup, adding the block of data to the full backup.

10. The method of claim 9 wherein blocks of the full backup copy include padding to allow for increased block size from merged blocks from incremental backups of the series of incremental backups.

11. The method of claim 9 and further comprising compressing blocks of data in incremental backups of the series of incremental backups.

12. The method of claim 9 wherein the full backup copy and incremental backups of the series of incremental backups are stored on a virtual disk.

13. The method of claim 9 wherein only one full backup copy is made without the need for a further full backup copy at any time.

14. The method of claim 9 wherein the selected time corresponds to existence of a selected number of incremental backups in the series of incremental backups.

15. The method of claim 14 wherein incremental backups of the series of incremental backups are created at scheduled times.

16. The method of claim 9 wherein the selected time corresponds to a predetermined time.

17. The method of claim 9 wherein merging the oldest incremental backup into the full backup includes replacing blocks of data in the full backup with changed blocks from the oldest incremental backup.

18. A non-transitory computer readable storage device having instructions stored thereon to cause a computer to implement a method comprising:

creating a full backup copy of selected data from a storage device;

creating a series of incremental backups over time following the creation of the full backup copy, including creating an oldest incremental backup at a first time, a second incremental backup at a second time, and a newest incremental backup at a third time, the second time occurring at a time after the creation of the oldest incremental backup, and the third time occurring at a time after the creation of the second incremental backup;

merging the second incremental backup into the oldest incremental backup when a number of incremental backups in the series of incremental backups exceeds a specified number of incremental backups so as to retain at most a maximum number of incremental backups in the series of incremental backups; and

merging the oldest incremental backup into the full backup at a selected time to reduce the number of incremental backups that have not been applied, while not merging the newest incremental backup into the full backup copy, wherein merging the oldest incremental backup into the full backup comprises:

reading a block of data from the oldest incremental backup;

determining whether the block of data is present in the full backup;

in response to determining the block of data is present in the full backup, determining whether the block of data fits in a previous location of the block of data in the full backup; and

in response to determining the block of data is not present in the full backup, adding the block of data to the full backup.

19. The non-transitory computer readable storage device of claim 18 wherein the selected data comprises blocks of data and an incremental backup of the series of incremental backups includes blocks of the data that have changed since the last backup.

20. The non-transitory computer readable storage device of claim 19 wherein the selected time corresponds to existence of a selected number of incremental backups in the series of incremental backups.

21. The non-transitory computer readable storage device of claim 20 wherein incremental backups of the series of incremental backups are created at scheduled times.

22. The non-transitory computer readable storage device of claim 20 wherein the blocks are compressed and include padding in the full backup copy.

23. A system for creating a backup of data comprising:

one or more computer processors;

a module to execute on the one or more computer processors to create a full backup copy of selected data from a storage device;

a module to execute on the one or more computer processors to create a series of incremental backups over time following the creation of the full backup copy including creating an oldest incremental backup at a first time and a newest incremental backup at a second time, the second time after the creation of the oldest incremental backup; and

a module to execute on the computer processors to merge the oldest incremental backup into the full backup at a desired time to reduce the number of incremental backups that have not been applied, while not merging the newest incremental backup into the full backup, wherein merging blocks of the oldest incremental backup into corresponding blocks of the full backup comprises:

reading a block of data from the oldest incremental backup;

determining whether the block of data is present in the full backup;

in response to determining the block of data is present in the full backup, determining whether the block of data fits in a previous location of the block of data in the full backup; and

in response to determining the block of data is not present in the full backup, adding the block of data to the full backup.

24. The system of claim 23 wherein the full backup copy includes compressed blocks of data and each incremental backup of the series of incremental backups includes a block of data that has changed since a last backup, and wherein the series of incremental backups and the full backup copy are stored on a virtual disk device.

25. The system of claim 24 and further comprising a module to execute on the system to construct a full copy of the selected data that includes all changes to all blocks.

26. The method of claim 1 , further comprising:

in response to determining the block of data does not fit in the previous location of the block of data in the full backup, then determining whether the block of data fits in an existing empty space in the full backup; and

in response to determining the block of data does fit in the previous location of the block of data in the full backup, then putting the block of data in the previous location of the block of data in the full backup.

27. The method of claim 26 , further comprising:

in response to determining the block of data does not fit in the existing empty space in the full backup, then putting the block of data at the end of the full backup; and

in response to determining the block of data does fit in the existing empty space in the full backup, then putting the block of data in the empty space in the full backup.

Assignments (2)
MERGER Recorded Jun 17, 2014
From: COMPUTER ASSOCIATES THINK, INC.
To: CA, INC.
Reel/Frame 033120/0265 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2010
From: KARONDE, PRATAP; PARIKH, PRASHANT
To: COMPUTER ASSOCIATES THINK, INC.
Reel/Frame 024700/0146 →
Continuity (1)
Related Publication 20120016841A1 · Jan 19, 2012