IP Library › Granted Patent US 11,099,946
Granted Patent B1
US 11,099,946 · App. 14/297,467 · Granted Aug 24, 2021

Differential restore using block-based backups

Inventors: Shelesh Chopra (Bangalore, IN); Vladimir Mandic (San Jose, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1469
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 11,099,946
App. No.
14/297,467
Filed
Jun 5, 2014
Granted
Aug 24, 2021
Kind
B1
Art Unit
2114
USPC
714/15
Abstract

Differential restore using block-based backups is disclosed. Block restore information identifying blocks in a volume that have changed since a backup time may be determined. The block restore information may be based at least in part on stored block change information indicating monitored changes to blocks in the volume. The block restore information may be provided to a backup storage node. The block restore information is used to retrieve backup data associated with the identified blocks. The backup data may be used to restore the volume to a state at the backup time by replacing the identified blocks with corresponding backup data.

Claims (52)

1. A method, comprising:

determining block restore information identifying blocks in a volume that have changed since a backup time, the block restore information based at least in part on stored block change information indicating monitored changes to blocks in the volume;

providing the block restore information to a backup storage node, wherein the block restore information is used to retrieve backup data associated with the identified blocks;

receiving an indication to perform a restore operation including an indication of a state of the volume to which the volume is to be restored;

determining, in connection with a restore operation, whether to perform a differential restore or a full restore based at least in part on a measure of blocks in the volume that have changed in relation to the state of the volume to which the volume is to be restored, wherein the differential restore corresponds to a restoration of the blocks identified as corresponding to blocks in the volume that have changed since the backup time, and wherein the determining whether to perform the differential restore or the full restore comprises:

determining whether a measure of the identified blocks in the volume that have changed since the backup time exceeds a threshold; and

performing a restore operation based at least in part on the determination of whether to perform the differential restore or the full restore, wherein performing the restore operation comprises:

in response to a determination that the measure of the identified blocks in the volume that have changed since the backup time is determined to exceed the threshold, perform a full restore including restoring an entire image of a backup corresponding to the volume; and

in response to a determination that the measure of the identified blocks in the volume that have changed since the backup time is determined to not exceed the threshold, performing the differential restore including using the backup data to restore the volume to a state at the backup time by replacing the identified blocks with corresponding backup data.

2. The method of claim 1 , wherein using the backup data to restore the volume comprises:

replacing the identified blocks with corresponding blocks included in the backup data, wherein the corresponding blocks include blocks that were stored in the volume at the backup time.

3. The method of claim 2 , further comprising:

stitching at least one of the corresponding blocks to an adjacent block in the volume.

4. The method of claim 1 , wherein the backup data comprises corresponding blocks stored in a backup volume, the corresponding blocks each corresponding to one of the identified blocks.

5. The method of claim 1 , determining block restore information comprises:

retrieving, from the stored block change information, information identifying blocks that have changed since the backup time; and

generating block restore information comprising the retrieved information.

6. The method of claim 1 , further comprising receiving an indication that the volume is to be restored to the state at the backup time.

7. The method of claim 1 , further comprising:

monitoring, by a change block tracking engine, changes to blocks in the volume;

storing, in a change block tracking database, the block change information comprising identifiers associated with changed blocks and times associated with the changes to the blocks.

8. The method of claim 1 , further comprising:

receiving, at the backup storage node, the block restore information;

mapping the blocks identified in the block change information to storage locations on a backup storage volume;

retrieving backup data from the storage locations on the backup storage volume; and

providing the backup data to a node associated with the volume.

9. The method of claim 1 , further comprising: in an event that the measure of the identified blocks in the volume that have changed since the backup time is determined to exceed the threshold, providing, to a node associated with the volume, backup data comprising the entire image of the volume at the backup time.

10. The method of claim 1 , wherein the performing the differential restore including using of the backup data to restore the volume to a state at the backup time by replacing the identified blocks with corresponding backup data comprises:

stitching the corresponding backup data associated with the identified blocks into the volume.

11. The method of claim 10 , wherein the stitching of the corresponding backup data into the volume comprises:

stitching at least part of the corresponding backup data associated with the identified blocks to a block on the volume that was not replaced in connection with the differential restore.

12. The method of claim 1 , wherein the performing the differential restore comprises: replacing only the identified blocks with corresponding backup data.

13. The method of claim 1 , wherein the backup storage node retrieves the backup data associated with the identified blocks based at least in part on the block restore information.

14. A system, comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

determine block restore information identifying blocks in a volume that have changed since a backup time, the block restore information based at least in part on stored block change information indicating monitored changes to blocks in the volume;

provide the block restore information to a backup storage node, wherein the block restore information is used to retrieve backup data associated with the identified blocks;

receive an indication to perform a restore operation including an indication of a state of the volume to which the volume is to be restored;

determine, in connection with a restore operation, whether to perform a differential restore or a full restore based at least in part on a measure of blocks in the volume that have changed in relation to the state of the volume to which the volume is to be restored, wherein the differential restore corresponds to a restoration of the blocks identified as corresponding to blocks in the volume that have changed since the backup time, and wherein to determine whether to perform the differential restore or the full restore comprises:

determine whether a measure of the identified blocks in the volume that have changed since the backup time exceeds a threshold; and

perform a restore operation based at least in part on the determination of whether to perform the differential restore or the full restore, wherein to perform the restore operation comprises:

in response to a determination that the measure of the identified blocks in the volume that have changed since the backup time is determined to exceed the threshold, perform a full restore including restoring an entire image of a backup corresponding to the volume;

in response to a determination that the measure of the identified blocks in the volume that have changed since the backup time is determined to not exceed the threshold, perform a differential restore including use the backup data in connection with a differential restore operation to restore the volume to a state at the backup time by replacing the identified blocks with corresponding backup data.

15. The system recited in claim 14 , wherein the instructions to use the backup data to restore the volume include instructions to:

replace the identified blocks with corresponding blocks included in the backup data, wherein the corresponding blocks include blocks that were stored in the volume at the backup time.

16. The system recited in claim 14 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

monitoring, by a change block tracking engine, changes to blocks in the volume;

storing, in a change block tracking database, the block change information comprising identifiers associated with changed blocks and times associated with the changes to the blocks.

17. A computer program product, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for: determining block restore information identifying blocks in a volume that have changed since a backup time, the block restore information based at least in part on stored block change information indicating monitored changes to blocks in the volume; providing the block restore information to a backup storage node, wherein the block restore information is used to retrieve backup data associated with the identified blocks; receiving an indication to perform a restore operation including an indication of a state of the volume to which the volume is to be restored; determining, in connection with a restore operation, whether to perform a differential restore or a full restore based at least in part on a measure of blocks in the volume that have changed in relation to the state of the volume to which the volume is to be restored, wherein the differential restore corresponds to a restoration of the blocks identified as corresponding to blocks in the volume that have changed since the backup time, and wherein the determining whether to perform the differential restore or the full restore comprises: determining whether a measure of the identified blocks in the volume that have changed since the backup time exceeds a threshold; and performing a restore operation based at least in part on the determination of whether to perform the differential restore or the full restore, wherein performing the restore operation comprises: in response to a determination that the measure of the identified blocks in the volume that have changed since the backup time is determined to exceed the threshold, perform a full restore including restoring an entire image of a backup corresponding to the volume; and in response to a determination that the measure of the identified blocks in the volume that have changed since the backup time is determined to not exceed the threshold, performing the differential restore including using the backup data in connection with a differential restore operation to restore the volume to a state at the backup time by replacing the identified blocks with corresponding backup data.

18. The computer program product recited in claim 17 , wherein using the backup data to restore the volume comprises:

replacing the identified blocks with corresponding blocks included in the backup data, wherein the corresponding blocks include blocks that were stored in the volume at the backup time.

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 Jun 5, 2014
From: CHOPRA, SHELESH; MANDIC, VLADIMIR
To: EMC CORPORATION
Reel/Frame 033043/0125 →
Cited By (2)
US 12,294,624 US 12,695,804