IP Library Granted Patent US 7,636,824
Granted Patent B1
US 7,636,824 · App. 11/757,442 · Granted Dec 22, 2009

System and method for efficient backup using hashes

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 7,636,824
App. No.
11/757,442
Granted
Dec 22, 2009
Kind
B1
Abstract

A method, system and computer program product for data backup such that: for each block of a storage device to be backed up to an image, generating a hash function value corresponding to contents of that block; generating a map of links between blocks in the image and corresponding blocks the storage device; using the hash function values to identify blocks of the storage device with identical contents, such that links for the blocks in the storage device with identical contents point to a single block in the image; and modifying the link in the map when a block in the storage is moved (for example, due to defragmentation) but its contents is not altered, so that the link points to the same backed up block.

Claims (49)

1. A computer implemented method for data backup executed on a processor, the method comprising:

(a) forming an image of a storage device, wherein contents of blocks of the storage device can be restored from the image;

(b) for each block stored in the image, storing a hash function value for contents of each block;

(c) for each block of the storage device to be backed up to an image, generating a hash function value corresponding to contents of that block;

(d) comparing the hash function values to identify, out of blocks of the storage device, candidate blocks that might have identical contents with contents of blocks stored in the image;

(e) comparing contents of candidate blocks with contents of corresponding blocks stored in the image;

(f) for blocks of the storage device with identical contents, storing links in the image instead of the contents of the blocks, wherein links for multiple blocks of the storage device with identical contents point to a single block in the image; and

(g) backing up, to the image, contents of unidentified blocks and blocks that do not have identical contents, wherein:

the image of the storage device contains a bitmap of the storage device backup;

the bitmap contains indicators for use of the links, such that an indicator defines if a block contains the content or if the block points to another block,

and the bitmap contains indicators that reflect used and unused blocks such that an indicator of one setting represents a used block whose contents are shared with another block in the image, and a bit of an alternate setting corresponds to an unused block whose contents are unique to every other block in the storage image;

and the unused blocks do not require backing up of their contents.

2. The method of claim 1 , wherein the image contains data of different backups.

3. The method of claim 1 , wherein the image contains backups of different storage devices.

4. The method of claim 1 , wherein hash function is any of MD4, MD5, CRC, CRC32, SHA1, SHA2, SHA512, SHA256, GOST, hash function based on block ciphers and Message Authentication Code (MAC).

5. The method of claim 1 , further comprising restoration of the storage device from the image, wherein contents of blocks pointed by link is restored to corresponding blocks of the storage device.

6. The method of claim 1 , wherein the link for the block is stored in the image instead of contents of the corresponding block.

7. The method of claim 1 , wherein the image includes an indicator reflecting use of the link for the block contents.

8. A system for data backup implemented on a computer system having a memory and a processor, the system comprising:

(a) an image of a storage device, wherein contents of blocks of the storage device can be restored from the image;

(b) for each block of the storage device to be backed up to an image, a stored hash function value corresponding to contents of that block;

(c) a map of links between blocks in the storage device and corresponding blocks in the image; and

(d) means for using the hash function values to identify blocks of the storage device with identical contents, such that links for the blocks in the storage device with identical contents point to a single block in the image,

wherein the link in the map is modified when a block in the storage is moved but its contents is not altered, so that the link points to the same backed up block,

and wherein:

the image of the storage device contains a bitmap of the storage device backup;

the bitmap contains indicators for use of the links, such that an indicator defines if a block contains the content or if the block points to another block, and the bitmap contains indicators that reflect used and unused blocks such that an indicator of one setting represents a used block whose contents are shared with another block in the image, and a bit of an alternate setting corresponds to an unused block whose contents are unique to every other block in the storage image;

and the unused blocks do not require backing up of their contents.

9. The system of claim 8 , wherein, when the storage device is defragmented, the map is modified, but the image is not modified.

10. A system for data backup implemented on a computer system having a memory and a processor, the system comprising:

(a) means for backing up a current state of a storage device to an image, wherein contents of blocks of the storage device can be restored from the image;

(b) means for generating incremental backups for the storage device;

(c) for each block of the storage device to be backed up to the image, means for storing a hash function value corresponding to contents of that block;

(d) means for generating a map of links between blocks in the storage device and corresponding blocks in the image; and

(e) after a defragmentation of the storage device, means for modifying the links in the map when a block in the storage is moved but its contents is not altered, so that the link points to the same block in the image as previously, wherein:

the image of the storage device contains a bitmap of the storage device backup;

the bitmap contains indicators for use of the links, such that an indicator defines if a block contains the content or if the block points to another block,

and the bitmap contains indicators that reflect used and unused blocks such that an indicator of one setting represents a used block whose contents are shared with another block in the image, and a bit of an alternate setting corresponds to an unused block whose contents are unique to every other block in the storage image;

and the unused blocks do not require backing up of their contents.

11. A computer useable storage medium having computer program logic stored thereon for executing on a processor for data backup, the computer program logic comprising:

(a) computer program code means for each block of a storage device to be backed up to an image, wherein contents of blocks of the storage device can be restored from the image;

(b) computer program code means for generating a hash function value corresponding to contents of that block;

(c) computer program code means for generating a map of links between blocks in the image and corresponding blocks the storage device;

(d) computer program code means for using the hash function values to identify blocks of the storage device with identical contents, such that links for the blocks in the storage device with identical contents point to a single block in the image; and

(e) computer program code means for modifying the link in the map when a block in the storage is moved but its contents is not altered, so that the link points to the same backed up block, wherein:

the image of the storage device contains a bitmap of the storage device backup;

the bitmap contains indicators for use of the links, such that an indicator defines if a block contains the content or if the block points to another block,

and the bitmap contains indicators that reflect used and unused blocks such that an indicator of one setting represents a used block whose contents are shared with another block in the image, and a bit of an alternate setting corresponds to an unused block whose contents are unique to every other block in the storage image;

and the unused blocks do not require backing up of their contents.

Assignments (12)
REAFFIRMATION AGREEMENT Recorded Aug 28, 2022
From: ACRONIS AG; ACRONIS INTERNATIONAL GMBH; ACRONIS SCS, INC.; ACRONIS, INC.; GROUPLOGIC, INC.; NSCALED INC.; ACRONIS MANAGEMENT LLC; 5NINE SOFTWARE, INC.; ACRONIS GERMANY GMBH; ACRONIS NETHERLANDS B.V.; ACRONIS BULGARIA EOOD; DEVICELOCK, INC.; DEVLOCKCORP LTD; ACRONIS INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 061330/0818 →
SECURITY INTEREST Recorded Dec 19, 2019
From: ACRONIS INTERNATIONAL GMBH
To: MIDCAP FINANCIAL TRUST
Reel/Frame 051418/0119 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2019
From: OBSIDIAN AGENCY SERVICES, INC.
To: ACRONIS INTERNATIONAL GMBH; GROUPLOGIC, INC.
Reel/Frame 050783/0893 →
PATENT SECURITY AGREEMENT Recorded Feb 27, 2014
From: ACRONIS INTERNATIONAL GMBH
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 032366/0328 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2014
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: ACRONIS INC.; ACRONIS, INC.; ACRONIS INTERNATIONAL GMBH
Reel/Frame 032296/0397 →
SECURITY AGREEMENT Recorded Apr 20, 2012
From: ACRONIS INTERNATIONAL GMBH
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 028081/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2012
From: ACRONIS INC.
To: ACRONIS INC. LTD.
Reel/Frame 027898/0764 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2012
From: ACRONIS INC. LTD.
To: ACRONIS INTERNATIONAL GMBH
Reel/Frame 027898/0795 →
SECURITY AGREEMENT Recorded Jun 20, 2011
From: ACRONIS INC.
To: SILICON VALLEY BANK
Reel/Frame 026465/0559 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL LIEN Recorded Mar 15, 2011
From: CAPITALSOURCE FINANCE LLC
To: ACRONIS, INC.; ACRONIS INC.; ACRONIS INTERNATIONAL GMBH
Reel/Frame 025956/0576 →
SECURITY AGREEMENT Recorded Nov 13, 2007
From: ACRONIS, INC.; ACRONIS INTERNATIONAL GMBH; ACRONIS INC.
To: CAPITALSOURCE FINANCE LLC
Reel/Frame 020105/0143 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2007
From: TORMASOV, ALEXANDER G.
To: ACRONIS INC.
Reel/Frame 019373/0396 →