System and method for backing up data
First Claim
1. A method for backing up a data block, the method comprising:
- generating a digital fingerprint for a data block stored in a first data block location in a first storage device using a substantially collision-free algorithm;
comparing the digital fingerprint to digital fingerprints stored in a database in a second storage device separate from the first storage device; and
if the digital fingerprint does not match one of the stored digital fingerprints;
backing up the data block to a third storage device separate from the first storage device;
adding to the database the digital fingerprint; and
adding to the database the first data block location in association with the digital fingerprint.
0 Assignments
0 Petitions
Accused Products
Abstract
A hash-optimized backup system and method takes data blocks and generates a probabilistically unique digital fingerprint of the content of each data block using a substantially collision-free algorithm. The process compares the generated fingerprint to a database of stored fingerprints and, if the generated fingerprint matches a stored fingerprint, the data block is determined to already have been backed up, and therefore does not need to be backed up again. Only if the generated fingerprint does not match a stored fingerprint is the data block backed up, at which point the generated fingerprint is added to the database of stored fingerprints. Because the algorithm is substantially collision-free, there is no need to compare actual data content if there is a hash-value match. The process can also be used to audit software license compliance, inventory software, and detect computer-file tampering such as viruses and malware.
31 Citations
22 Claims
-
1. A method for backing up a data block, the method comprising:
-
generating a digital fingerprint for a data block stored in a first data block location in a first storage device using a substantially collision-free algorithm; comparing the digital fingerprint to digital fingerprints stored in a database in a second storage device separate from the first storage device; and if the digital fingerprint does not match one of the stored digital fingerprints; backing up the data block to a third storage device separate from the first storage device; adding to the database the digital fingerprint; and adding to the database the first data block location in association with the digital fingerprint. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for backing up a data block, the system comprising:
-
a first storage device to store a digital fingerprint database; a backup server having access to the digital fingerprint database; a source computer connected to the backup server via a communication path; and a second storage device associated with the source computer, separate from the first storage device, to store data blocks; the source computer configured to; generate a digital fingerprint of a data block in a first data block location of the second storage device using a substantially collision-free algorithm; and the backup server being configured to; compare the digital fingerprint of the data block to the digital fingerprints stored in the database; and if the digital fingerprint does not match any digital fingerprint stored in the database; back up the data block to a second memory location in a third storage device separate from the second storage device; add to the database the digital fingerprint; and add to the database the first data block location in association with the digital fingerprint. - View Dependent Claims (10, 11, 12, 13, 14, 16, 17, 18, 19)
-
-
15. A system for backing up a data block, the system comprising:
-
means for generating a digital fingerprint for a data block in a first memory location in a first storage device using a substantially collision-free algorithm; means for comparing the digital fingerprint to digital fingerprints of backed up data blocks, the digital fingerprints being stored in a database in a second storage device separate from the first storage device; means for backing up the data block to a second location on a third storage device different from the first storage device; and means for adding to the database the digital fingerprint and associating the first memory location with the digital fingerprint in the database, if the digital fingerprint does not match any of the stored digital fingerprints.
-
-
20. A system for backing up a data block, the system comprising:
-
a first storage device to store a digital fingerprint database; a backup server having access to the digital fingerprint database; a source computer connected to the backup server via a communication path; a second storage device associated with the source computer separate from the first storage device, to store data blocks; and a computer processor configured to; generate a digital fingerprint of a data block stored in a first data block location of a second storage device using a substantially collision-free algorithm, via the communication path; the backup server being configured to; back up the data block to a second memory location in a third storage device separate from the second storage device; and if the digital fingerprint does not match any digital fingerprint stored in the database; add to the database the digital fingerprint; and add to the database the first data block location in association with the digital fingerprint. - View Dependent Claims (21, 22)
-
Specification