IP Library › Granted Patent US 10,078,555
Granted Patent B1
US 10,078,555 · App. 14/686,701 · Granted Sep 18, 2018

Synthetic full backups for incremental file backups

Inventors: Kiran M V Kumar (Karnataka, IN); Vladimir Mandic (San Jose, CA); Manjunath Jagannatha (Bangalore, IN); Ravi Shankar Panem (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1451G06F17/30233H04L65/60G06F2201/815
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 10,078,555
App. No.
14/686,701
Filed
Apr 14, 2015
Granted
Sep 18, 2018
Kind
B1
Art Unit
2164
USPC
707/645
Abstract

First and second virtual hard disk files are accessed. The first virtual hard disk file corresponds to a backup of a file and includes a first set of payload blocks to store data associated with the backup. The second virtual hard disk file corresponds to an incremental backup of the file and includes a second set of payload blocks to store data associated with the incremental backup. Data from a payload block of the first set of payload blocks is merged with data from a payload block of a corresponding payload block of the second set of payload blocks to form a merged payload block. The merged payload block is streamed for storage as a synthetic full backup of the first and second virtual hard disk files. The merging does not alter the first and second virtual hard disk files.

Claims (81)

1. A method comprising:

receiving an identification of a file on a volume to be backed up;

performing a backup of the file to a first virtual hard disk file, the performing a backup comprising:

creating a template virtual volume;

creating, on the template virtual volume, a file system structure that corresponds to a file system structure of the volume having the file to be backed up;

backing up metadata of the file from the template virtual volume; and

backing up content of the file from the volume;

tracking changes to blocks of the volume;

identifying a subset of tracked changed blocks on the volume as being associated with the file;

performing an incremental backup of the file by backing up the subset of tracked changed blocks to a second virtual hard disk file and filtering other tracked changed blocks of the volume not associated with the file, wherein the performing an incremental backup comprises not creating another template virtual volume;

accessing the first virtual hard disk file corresponding to the backup of the file, the first virtual hard disk file comprising a first plurality of payload blocks to store data associated with the backup;

accessing the second virtual hard disk file corresponding to the incremental backup of the file, the second virtual hard disk file comprising a second plurality of payload blocks to store data associated with the incremental backup;

merging data from a payload block of the first plurality payload blocks with data from a corresponding payload block of the second plurality of payload blocks to form a merged payload block; and

streaming the merged payload block to a backup media for storage as a synthetic full backup of the first and second virtual hard disk files, wherein the merging does not alter the first and second virtual hard disk files.

2. The method of claim 1 wherein the payload block of the first plurality of payload blocks comprises a first extent, the corresponding payload block of the second plurality of payload blocks comprises a second extent, and the merging comprises:

placing the first and second extents in the merged payload block.

3. The method of claim 1 wherein the payload block of the first plurality of payload blocks comprises a first extent, the corresponding payload block of the second plurality of payload blocks comprises a second extent, and the merging comprises:

replacing the first extent with the second extent for the merged payload block, the merged payload block thereby having the second extent and not having the first extent.

4. The method of claim 1 comprising after the merging, determining whether a next payload block of the first plurality of payload blocks should be merged;

determining that the next payload block should not be merged because the second plurality of payload blocks do not include changes corresponding to the next payload block; and

streaming data of the next payload block to the backup media for storage as the synthetic full backup of the first and second virtual hard disk files.

5. The method of claim 1 comprising:

streaming data of the merged payload block in a stream; and

streaming data of another payload block in the same stream, the data of the other payload block comprising data from a next payload block of the first plurality of payload blocks, data from a next payload block of the second plurality of payload blocks, or both.

6. The method of claim 1 wherein the file comprises a database.

7. The method of claim 1 comprising:

after the performing the backup of the file, deleting the template virtual volume.

8. The method of claim 1 wherein the creating on the template virtual volume a file system structure that corresponds to a file system structure of the volume having the file to be backed up comprises:

creating on the template virtual volume a folder path that matches a folder path of the volume in which the file is located.

9. The method of claim 1 wherein the template virtual volume does not include the content of the file.

10. A system for synthesizing a full backup of a file in a mountable format, the system comprising:

a processor-based system executed on a computer system and comprising a hardware processor, wherein the hardware processor is configured to:

receive an identification of a file on a volume to be backed up;

perform a backup of the file to a first virtual hard disk file, the performance of the backup comprising:

creating a template virtual volume;

creating, on the template virtual volume, a file system structure that corresponds to a file system structure of the volume having the file to be backed up;

backing up metadata of the file from the template virtual volume; and

backing up content of the file from the volume;

track changes to blocks of the volume;

identify a subset of tracked changed blocks on the volume as being associated with the file;

perform an incremental backup of the file by backing up the subset of tracked changed blocks to a second virtual hard disk file and filter other tracked changed blocks of the volume not associated with the file, wherein the performance of the incremental backup comprises not creating another template virtual volume;

access the first virtual hard disk file corresponding to the backup of the file, the first virtual hard disk file comprising a first plurality of payload blocks to store data associated with the backup;

access the second virtual hard disk file corresponding to the incremental backup of the file, the second virtual hard disk file comprising a second plurality of payload blocks to store data associated with the incremental backup;

merge data from a payload block of the first plurality payload blocks with data from a corresponding payload block of the second plurality of payload blocks to form a merged payload block; and

stream the merged payload block to a backup media for storage as a synthetic full backup of the first and second virtual hard disk files, wherein the merge does not alter the first and second virtual hard disk files.

11. The system of claim 10 wherein the payload block of the first plurality of payload blocks comprises a first extent, the corresponding payload block of the second plurality of payload blocks comprises a second extent, and the processor-based system is configured to:

place the first and second extents in the merged payload block.

12. The system of claim 10 wherein the payload block of the first plurality of payload blocks comprises a first extent, the corresponding payload block of the second plurality of payload blocks comprises a second extent, and the processor-based system is configured to:

replace the first extent with the second extent for the merged payload block, the merged payload block thereby having the second extent and not having the first extent.

13. The system of claim 10 wherein the processor-based system is configured to:

after the merge, determine whether a next payload block of the first plurality of payload blocks should be merged;

determine that the next payload block should not be merged because the second plurality of payload blocks do not include changes corresponding to the next payload block; and

stream data of the next payload block to the backup media for storage as the synthetic full backup of the first and second virtual hard disk files.

14. The system of claim 10 wherein the processor-based system is configured to:

stream data of the merged payload block in a stream; and

stream data of another payload block in the same stream, the data of the other payload block comprising data from a next payload block of the first plurality of payload blocks, data from a next payload block of the second plurality of payload blocks, or both.

15. The system of claim 10 wherein the template virtual volume does not include the content of the file.

16. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:

receiving an identification of a file on a volume to be backed up;

performing a backup of the file to a first virtual hard disk file, the performing a backup comprising:

creating a template virtual volume;

creating, on the template virtual volume, a file system structure that corresponds to a file system structure of the volume having the file to be backed up;

backing up metadata of the file from the template virtual volume; and

backing up content of the file from the volume;

tracking changes to blocks of the volume;

identifying a subset of tracked changed blocks on the volume as being associated with the file;

performing an incremental backup of the file by backing up the subset of tracked changed blocks to a second virtual hard disk file and filtering other tracked changed blocks of the volume not associated with the file, wherein the performing an incremental backup comprises not creating another template virtual volume;

accessing the first virtual hard disk file corresponding to the backup of the file, the first virtual hard disk file comprising a first plurality of payload blocks to store data associated with the backup;

accessing the second virtual hard disk file corresponding to the incremental backup of the file, the second virtual hard disk file comprising a second plurality of payload blocks to store data associated with the incremental backup;

merging data from a payload block of the first plurality payload blocks with data from a corresponding payload block of the second plurality of payload blocks to form a merged payload block; and

streaming the merged payload block to a backup media for storage as a synthetic full backup of the first and second virtual hard disk files, wherein the merging does not alter the first and second virtual hard disk files.

17. The computer program product of claim 16 wherein the payload block of the first plurality of payload blocks comprises a first extent, the corresponding payload block of the second plurality of payload blocks comprises a second extent, and the merging comprises:

placing the first and second extents in the merged payload block.

18. The computer program product of claim 16 wherein the payload block of the first plurality of payload blocks comprises a first extent, the corresponding payload block of the second plurality of payload blocks comprises a second extent, and the merging comprises:

replacing the first extent with the second extent for the merged payload block, the merged payload block thereby having the second extent and not having the first extent.

19. The computer program product of claim 16 wherein the method comprises after the merging, determining whether a next payload block of the first plurality of payload blocks should be merged;

determining that the next payload block should not be merged because the second plurality of payload blocks do not include changes corresponding to the next payload block; and

streaming data of the next payload block to the backup media for storage as the synthetic full backup of the first and second virtual hard disk files.

20. The computer program product of claim 16 wherein the method comprises:

streaming data of the merged payload block in a stream; and

streaming data of another payload block in the same stream, the data of the other payload block comprising data from a next payload block of the first plurality of payload blocks, data from a next payload block of the second plurality of payload blocks, or both.

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: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2015
From: KUMAR, KIRAN MV; MANDIC, VLADIMIR; JAGANNATHA, MANJUNATH; PANEM, RAVI SHANKAR
To: EMC CORPORATION
Reel/Frame 035456/0007 →
Cited By (7)
US 12,282,394 US 12,287,709 US 12,346,216 US 12,645,486 US 12,681,861 US 12,705,142 US 12,737,261