Method and apparatus for providing virtual machine backup

Information

  • Patent Application
  • 20070208918
  • Publication Number
    20070208918
  • Date Filed
    February 28, 2007
    19 years ago
  • Date Published
    September 06, 2007
    18 years ago
Abstract
A system and method for creating computer system backups, particularly well-suited for performing backups of virtual machines. The method starts by reading the current state of the machine, in blocks of a constant size, and creates a “FULL” index of block numbers and a hash value associated with the data within that block, while at the same time creating a FULL backup of the machine (the FULL backup then stored at an off-site target location). Once the FULL index map is defined, subsequent DELTA backups are created by reading the current state of the device in the same block fashion and generating updated hash values for each data block. The newly-generated hash values are compared against the values stored in the FULL index map. If the hash numbers for a particular block do not match, this is an indication that the data within that block has changed since the last FULL backup was created. Once all of the “changed” data blocks have been identified to form a DELTA backup, a communication connection is opened in the network and the DELTA backup is sent to the off-site target location.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings,



FIG. 1 is a simplified block diagram of an architecture for implementing the backup/recovery system of the present invention;



FIG. 2 is a flowchart illustrating an exemplary process for generating an initial “FULL” index map for a device (e.g., virtual machine) that is going through a backup process;



FIG. 3 is a flowchart illustrating an exemplary process for generating an incremental DELTA backup and associated DELTA index map in accordance with the process of the present invention; and



FIG. 4 is an illustration of a set of three different DELTA backups associated with the same FULL index map, each generated on a separate day.


Claims
  • 1. A method of creating a backup of a plurality of files forming a virtual machine, the method comprising the steps of: a) creating a complete backup copy of the virtual machine (FULL backup) and storing the FULL backup in a separate target location;b) creating a block-based index map of the FULL backup, the FULL index map including a listing of block numbers and a hash value of each block; andc) performing a backup session after a predetermined period of time by generating updated hash values each block of data within the virtual machine, comparing the updated hash values with those stored in the FULL index map, storing changed hash values and associated block numbers in a DELTA index map and creating a DELTA backup comprising each changed block of data.
  • 2. The method as defined in claim 1, wherein prior to performing step c), performing the step of checking the size of the virtual machine against the size of the FULL backup, and returning to step a) if the sizes are different, otherwise, continuing with the process of step c).
  • 3. The method as defined in claim 1 wherein a predefined block size and predefined hash algorithm are used to form the FULL index map of step b) and the DELTA index map of step c).
  • 4. The method as defined in claim 3 wherein the predefined block size is 256 k byte.
  • 5. The method as defined in claim 3 wherein the predefined hash algorithm is the MD5 algorithm.
  • 6. The method as defined in claim 3 wherein the predefined hash algorithm comprises a proprietary algorithm.
  • 7. The method as defined in claim 1, wherein the method further comprises the step of: d1) transporting the created DELTA backup to the target location storing the FULL backup.
  • 8. The method as defined in claim 1, wherein the method further comprises the steps of: d2) transporting the created DELTA backup to the target location storing the FULL backup;e) waiting a predetermined period of time;f) returning to step c) to create a new DELTA backup; and returning to step d2).
  • 9. The method as defined in claim 8, wherein the method further comprises the step of: g) repeating steps e) and f) for a predetermined number of days, thenh) generating a new FULL backup and FULL index map.
  • 10. The method as defined in claim 8 wherein the predetermined period of time is twenty-four hours.
  • 11. The method as defined in claim 9 wherein the predetermined number of days is thirty days.
  • 12. The method as defined in claim 1, wherein in performing step c) the following steps are performed: 1) reading a first block of data within the virtual machine;2) generating a hash value of the block of data;3) comparing the hash value generated in step 2) to the stored hash value in the FULL index map; and4) if the hash values are the same, ignoring the current block of data and moving to step 6), otherwise5) storing the changed data block in the DELTA backup and the current block number and hash value in the DELTA index map;6) incrementing the block number and determining if another block of data is present in the virtual machine; and7) if not, the process is completed, otherwise 8) returning to step 2).
  • 13. The method as defined in claim 1, wherein in performing step c) the following steps are performed: 1) creating a full index map of the updated virtual machine;2) comparing the hash value of each entry in the full index map created in step 1) to the associated entry in the FULL index map created in step b); and3) if the hash values are the same, moving on to read the next hash value, otherwise4) storing the changed data block in the DELTA backup and storing the current block number and hash value in the DELTA index map;5) repeating the process of steps 2)-4) until each block has been compared; and6) transmitting the completed DELTA backup to the target location.
Provisional Applications (1)
Number Date Country
60777840 Mar 2006 US