IP Library Granted Patent US 9,501,364
Granted Patent B1
US 9,501,364 · App. 15/074,712 · Granted Nov 22, 2016

Hybrid image backup of a source storage

Inventors: Nathan S. Bushman (Pleasant Grove, UT); Scott Barnes (Pleasant Grove, UT); Thomas Russell Shreeve (Draper, UT)
Assignee: STORAGECRAFT TECHNOLOGY CORPORATION
G06F11/1451G06F3/067G06F17/30067
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 9,501,364
App. No.
15/074,712
Granted
Nov 22, 2016
Kind
B1
Abstract

Creating hybrid image backups of a source storage. In one example embodiment, a method for creating one or more hybrid image backups of a source storage may include comparing hashes of allocated blocks stored in the source storage at a first point in time to hashes of blocks stored in a deduplication system to determine whether each of the allocated blocks is in a first set of blocks that are stored in the deduplication system or in a second set of blocks that are not stored in the deduplication system; associating locations of the blocks in the first set of blocks stored in the source storage with locations of the corresponding blocks stored in the deduplication system; determining whether the deduplication system is in a read-only state or in a writable state; and in response to the deduplication system being in the read-only state: storing the blocks in the second set of blocks in an image backup separate from the deduplication system; associating locations of the blocks in the second set of blocks stored in the source storage with locations of the corresponding blocks stored in the image backup; and defining a full hybrid image backup of the source storage at the first point in time as a combination of the first set of blocks stored in the deduplication system and the second set of blocks stored in the image backup.

Claims (62)

1. A method for creating one or more hybrid image backups of a source storage, the method comprising:

comparing hashes of allocated blocks stored in the source storage at a first point in time to hashes of blocks stored in a deduplication system to determine whether each of the allocated blocks is in a first set of blocks that are stored in the deduplication system or in a second set of blocks that are not stored in the deduplication system;

associating locations of the blocks in the first set of blocks stored in the source storage with locations of the corresponding blocks stored in the deduplication system;

determining whether the deduplication system is in a read-only state or in a writable state; and

in response to the deduplication system being in the read-only state:

storing the blocks in the second set of blocks in an image backup separate from the deduplication system;

associating locations of the blocks in the second set of blocks stored in the source storage with locations of the corresponding blocks stored in the image backup; and

defining a full hybrid image backup of the source storage at the first point in time as a combination of the first set of blocks stored in the deduplication system and the second set of blocks stored in the image backup.

2. The method as recited in claim 1 , wherein the hashes of the blocks stored in the deduplication system are stored on a solid state drive (SSD).

3. The method as recited in claim 1 , wherein the deduplication system was seeded prior to the comparing by storing, in the deduplication system, blocks included in one or more files of an operating system.

4. The method as recited in claim 1 , wherein the deduplication system was seeded prior to the comparing by storing, in the deduplication system, blocks included in one or more files of a software application.

5. The method as recited in claim 1 , further comprising:

switching the deduplication system from the read-only state to the writable state; and

seeding the deduplication system by storing, in the deduplication system, blocks included in one or more files of an operating system.

6. The method as recited in claim 1 , further comprising:

switching the deduplication system from the read-only state to the writable state; and

seeding the deduplication system by storing, in the deduplication system, blocks included in one or more files of a software application.

7. The method as recited in claim 1 , further comprising:

comparing hashes of second allocated blocks stored in the source storage that were modified between the first point in time and a second point in time to hashes of blocks stored in the deduplication system to determine whether each of the second allocated blocks is in a third set of blocks that are stored in the deduplication system or in a fourth set of blocks that are not stored in the deduplication system;

associating locations of the blocks in the third set of blocks stored in the source storage with locations of the corresponding blocks stored in the deduplication system;

determining whether the deduplication system is in the read-only state or in the writable state; and

in response to the deduplication system being in the writable state:

storing unique blocks in the fourth set of blocks in the deduplication system;

associating locations of the blocks in the fourth set of blocks stored in the source storage with locations of the corresponding blocks stored in the deduplication system; and

defining an incremental image backup of the source storage at the second point in time as a combination of the third set of blocks stored in the deduplication system and the fourth set of blocks stored in the deduplication system.

8. The method as recited in claim 7 , further comprising:

comparing hashes of blocks stored in the image backup to hashes of blocks stored in the deduplication system to determine whether any blocks in the second set of blocks are stored in the deduplication system; and

in response to one or more blocks in the second set of blocks being stored in the deduplication system:

associating original locations of the one or more blocks stored in the source storage at the first point in time with locations of the corresponding blocks stored in the deduplication system; and

pruning the one or more blocks out of the image backup.

9. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to perform the method as recited in claim 1 .

10. A method for creating one or more hybrid image backups of a source storage, the method comprising:

seeding a deduplication system by storing, in the deduplication system, blocks included in one or more files of one or more operating systems, blocks included in one or more files of one or more software applications, or both, and by storing a hash of each of the seeded blocks in a hash data structure;

comparing hashes of allocated blocks stored in the source storage at a first point in time to hashes in the hash data structure to determine whether each of the allocated blocks is in a first set of blocks that are stored in the deduplication system or in a second set of blocks that are not stored in the deduplication system;

associating locations of the blocks in the first set of blocks stored in the source storage with locations of the corresponding blocks stored in the deduplication system;

determining whether the deduplication system is in a read-only state or in a writable state; and

in response to the deduplication system being in the read-only state:

storing the blocks in the second set of blocks in an image backup separate from the deduplication system;

associating locations of the blocks in the second set of blocks stored in the source storage with locations of the corresponding blocks stored in the image backup; and

defining a full hybrid image backup of the source storage at the first point in time as a combination of the first set of blocks stored in the deduplication system and the second set of blocks stored in the image backup.

11. The method as recited in claim 10 , further comprising:

copying the hash data structure into a solid state drive (SSD) by writing to each unique addressable location in the SSD only once.

12. The method as recited in claim 10 , wherein:

the blocks included in the one or more files of the one or more operating systems are blocks included in the one or more files of a clean install of the one or more operating systems; and

the blocks included in the one or more files of the one or more software applications are blocks included in the one or more files of a clean install of the one or more software applications.

13. The method as recited in claim 10 , further comprising:

switching the deduplication system from the read-only state to the writable state; and

newly seeding the deduplication system by storing, in the deduplication system, blocks included in one or more files of one or more operating systems, blocks included in one or more files of one or more software applications, or both, and by storing a hash of each of the newly-seeded blocks in the hash data structure.

14. The method as recited in claim 10 , further comprising:

comparing hashes of second allocated blocks stored in the source storage that were modified between the first point in time and a second point in time to hashes in the hash data structure to determine whether each of the second allocated blocks is in a third set of blocks that are stored in the deduplication system or in a fourth set of blocks that are not stored in the deduplication system;

associating locations of the blocks in the third set of blocks stored in the source storage with locations of the corresponding blocks stored in the deduplication system;

determining whether the deduplication system is in the read-only state or in the writable state; and

in response to the deduplication system being in the writable state:

storing unique blocks in the fourth set of blocks in the deduplication system;

associating locations of the blocks in the fourth set of blocks stored in the source storage with locations of the corresponding blocks stored in the deduplication system; and

defining an incremental image backup of the source storage at the second point in time as a combination of the third set of blocks stored in the deduplication system and the fourth set of blocks stored in the deduplication system.

15. The method as recited in claim 14 , further comprising:

comparing hashes of blocks stored in the image backup to hashes in the hash data structure to determine whether any blocks in the second set of blocks are stored in the deduplication system; and

in response to one or more blocks in the second set of blocks being stored in the deduplication system:

associating original locations of the one or more blocks stored in the source storage at the first point in time with locations of the corresponding blocks stored in the deduplication system; and

pruning the one or more blocks out of the image backup.

16. One or more non-transitory computer-readable media storing one or more programs that are configured, when executed, to cause one or more processors to perform the method as recited in claim 10 .

Assignments (6)
CHANGE OF NAME Recorded Aug 16, 2024
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: STORAGECRAFT TECHNOLOGY LLC
Reel/Frame 068660/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2024
From: MONROE CAPITAL MANAGEMENT ADVISORS, LLC; ARCSTOR MIDCO LLC; ARCSERVE ACQUISITION COMPANY LLC; ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY, LLC
To: STORAGECRAFT, LLC
Reel/Frame 068660/0208 →
SECURITY INTEREST Recorded Mar 16, 2021
From: ARCSERVE (USA) LLC; STORAGECRAFT TECHNOLOGY LLC; ZETTA, LLC
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 055603/0219 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 16, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: STORAGECRAFT TECHNOLOGY CORPORATION
Reel/Frame 055614/0607 →
SUPPLEMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded May 7, 2018
From: STORAGECRAFT TECHNOLOGY CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 046085/0220 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2016
From: BUSHMAN, NATHAN S.; BARNES, SCOTT; SHREEVE, THOMAS RUSSELL
To: STORAGECRAFT TECHNOLOGY CORPORATION
Reel/Frame 038036/0722 →