IP Library Granted Patent US 10,162,555
Granted Patent B2
US 10,162,555 · App. 15/971,675 · Granted Dec 25, 2018

Deduplicating snapshots associated with a backup operation

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,162,555
App. No.
15/971,675
Granted
Dec 25, 2018
Kind
B2
Abstract

Deduplicating snapshot associated with a backup operation is disclosed, including: performing a backup operation including by generating a plurality of snapshots; maintaining, at a source system, deduplication data corresponding to one or more data blocks that have already been written to backup media during the backup operation; and using the deduplication data to deduplicate backup data across the plurality of snapshots.

Claims (68)

1. A system, comprising:

a processor configured to:

receive an indication to perform a backup operation on a plurality of storage areas of a source system;

in response to the indication, perform the backup operation including by generating a plurality of snapshots corresponding to respective ones of the plurality of storage areas associated with the backup operation;

maintain, at the source system, deduplication data corresponding to one or more data blocks that have already been written to backup media during the backup operation, wherein the deduplication data comprises a plurality of identifiers corresponding to respective ones of data blocks that have already been written to the backup media; and

use the deduplication data, at the source system, to deduplicate backup data across the plurality of snapshots associated with the backup operation, wherein to use the deduplication data comprises to compare, at the source system, an identifier associated with a data block to back up in a first snapshot included in the plurality of snapshots to the plurality of identifiers,

wherein in response to a determination that a matching identifier is not found in the plurality of identifiers:

determine, at the source system, that the data block has not already been written to the backup media;

send, from the source system, to a backup storage underlying data of the data block to be stored as an entry associated with the data block in the first snapshot at the backup media at the backup storage; and

send, from the source system, to the backup storage a metadata block corresponding to the data block, wherein the metadata block is to be stored in the first snapshot at the backup media at the backup storage, wherein the metadata block is configured to be used to determine to which file or directory, or both, the data block belongs; and

a memory coupled to the processor and configured to store the deduplication data.

2. The system of claim 1 , wherein the plurality of snapshots is configured to be stored at the backup media.

3. The system of claim 1 , wherein a storage area included in the plurality of storage areas comprises a volume of storage.

4. The system of claim 1 , wherein the identifier associated with the data block comprises a disk block number.

5. The system of claim 1 , wherein the backup operation comprises a full backup.

6. The system of claim 1 , wherein the backup operation comprises an incremental backup.

7. The system of claim 1 , wherein the deduplication data is configured to be deleted subsequent to completion of the backup operation.

8. The system of claim 1 , wherein the processor is further configured to restore the first snapshot, including by reading the entry associated with the data block included in the first snapshot:

in response to a first determination that the entry includes underlying data of the data block:

restore stored data associated with the entry associated with the data block to the source system; and

use the stored metadata block corresponding to the data block to determine to which file, directory, or both the data block belongs; and

in response to a second determination that the entry associated with the data block includes a representation of the data block:

use the representation included in the entry to locate a location at the backup media to restore data stored at the location at the backup media to the source system; and

use the stored metadata block corresponding to the data block to determine to which file, directory, or both the data block belongs.

9. The system of claim 1 , wherein the determination comprises a first determination and wherein, in response to a second determination that the matching identifier is included in the deduplication data, the processor is further configured to:

determine, at the source system, that the data block has already been written to the backup media; and

send, from the source system, to the backup storage a representation of the data block to be stored as the entry associated with the data block in the first snapshot on the backup media at the backup storage, wherein the representation of the data block comprises associating data to a location at the backup media to which the data block was previously written, wherein the representation of the data block is determined based at least in part on information stored in the deduplication data, wherein the data block was previously written to the location at the backup media for a second snapshot of the plurality of snapshots.

10. The system of claim 9 , wherein the representation of the data block comprises at least one of a hard link or a soft link.

11. The system of claim 1 , wherein the metadata block comprises an inode.

12. A method, comprising:

receiving an indication to perform a backup operation on a plurality of storage areas of a source system;

in response to the indication, performing the backup operation including by generating a plurality of snapshots corresponding to respective ones of the plurality of storage areas associated with the backup operation;

maintaining, at the source system, deduplication data corresponding to one or more data blocks that have already been written to backup media during the backup operation, wherein the deduplication data comprises a plurality of identifiers corresponding to respective ones of data blocks that have already been written to the backup media; and

using the deduplication data, at the source system, to deduplicate backup data across the plurality of snapshots associated with the backup operation, wherein to use the deduplication data comprises to compare, at the source system, an identifier associated with a data block to back up in a first snapshot included in the plurality of snapshots to the plurality of identifiers,

wherein in response to a determination that a matching identifier is not found in the plurality of identifiers:

determining, at the source system, that the data block has not already been written to the backup media;

sending, from the source system, to a backup storage underlying data of the data block to be stored as an entry associated with the data block in the first snapshot at the backup media at the backup storage; and

sending, from the source system, to the backup storage a metadata block corresponding to the data block, wherein the metadata block is to be stored in the first snapshot at the backup media at the backup storage, wherein the metadata block is configured to be used to determine to which file or directory, or both, the data block belongs.

13. The method of claim 12 , wherein the identifier associated with the data block comprises a disk block number.

14. The method of claim 12 , wherein the deduplication data is configured to be deleted subsequent to completion of the backup operation.

15. The method of claim 12 , further comprising restoring the first snapshot, including by reading the entry associated with the data block included in the first snapshot:

in response to a first determination that the entry includes underlying data of the data block:

restoring stored data associated with the entry associated with the data block to the source system; and

using the stored metadata block corresponding to the data block to determine to which file, directory, or both the data block belongs; and

in response to a second determination that the entry associated with the data block includes a representation of the data block:

using the representation included in the entry to locate a location at the backup media to restore data stored at the location at the backup media to the source system; and

using the stored metadata block corresponding to the data block to determine to which file, directory, or both the data block belongs.

16. The method of claim 12 , wherein the determination comprises a first determination and wherein, in response to a second determination that the matching identifier is included in the deduplication data, further comprising:

determining, at the source system, that the data block has already been written to the backup media; and

sending, from the source system, to the backup storage a representation of the data block to be stored as the entry associated with the data block in the first snapshot on the backup media at the backup storage, wherein the representation of the data block comprises associating data to a location at the backup media to which the data block was previously written, wherein the representation of the data block is determined based at least in part on information stored in the deduplication data, wherein the data block was previously written to the location at the backup media for a second snapshot of the plurality of snapshots.

17. The method of claim 16 , wherein the representation of the data block comprises at least one of a hard link or a soft link.

18. The method of claim 12 , wherein the metadata block comprises an inode.

19. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving an indication to perform a backup operation on a plurality of storage areas of a source system;

in response to the indication, performing the backup operation including by generating a plurality of snapshots corresponding to respective ones of the plurality of storage areas associated with the backup operation;

maintaining, at the source system, deduplication data corresponding to one or more data blocks that have already been written to backup media during the backup operation, wherein the deduplication data comprises a plurality of identifiers corresponding to respective ones of data blocks that have already been written to the backup media; and

using the deduplication data, at the source system, to deduplicate backup data across the plurality of snapshots associated with the backup operation, wherein to use the deduplication data comprises to compare, at the source system, an identifier associated with a data block to back up in a first snapshot included in the plurality of snapshots to the plurality of identifiers,

wherein in response to a determination that a matching identifier is not found in the plurality of identifiers:

determining, at the source system, that the data block has not already been written to the backup media;

sending, from the source system, to a backup storage underlying data of the data block to be stored as an entry associated with the data block in the first snapshot at the backup media at the backup storage; and

sending, from the source system, to the backup storage a metadata block corresponding to the data block, wherein the metadata block is to be stored in the first snapshot at the backup media at the backup storage, wherein the metadata block is configured to be used to determine to which file or directory, or both, the data block belongs.

20. The computer program product of claim 19 , further comprising computer instructions for:

in response to a first determination that the entry includes underlying data of the data block:

restoring stored data associated with the entry associated with the data block to the source system; and

using the stored metadata block corresponding to the data block to determine to which file, directory, or both the data block belongs; and

in response to a second determination that the entry associated with the data block includes a representation of the data block:

using the representation included in the entry to locate a location at the backup media to restore data stored at the location at the backup media to the source system; and

using the stored metadata block corresponding to the data block to determine to which file, directory, or both the data block belongs.

Assignments (7)
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 AT REEL 048825 FRAME 0489 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058000/0916 →
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 Apr 8, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 048825/0489 →
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 Jul 20, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046418/0414 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2018
From: KANDAMUTHAN, NIRMALA
To: EMC CORPORATION
Reel/Frame 046418/0390 →