Incremental and differential backups of virtual machine files
First Claim
Patent Images
1. A computer-accessible storage medium storing program instructions executable to:
- at a first time, create a first backup representation of a virtual disk image file that stores a plurality of files used by a virtual machine, wherein the virtual disk image file represents a plurality of disk sectors, wherein data of the plurality of files is stored across the disk sectors, wherein in creating the first backup representation, the program instructions are executable to;
determine whether each disk sector of the virtual disk image file is in use at the first time by examining metadata of the virtual disk image file;
for each respective disk sector that is in not in use at the first time, store information in association with the first backup representation indicating that the respective disk sector is not in use;
for each respective disk sector that is in use at the first time;
store information with the first backup representation indicating that the respective disk sector is in use;
use the metadata of the virtual disk image file to read data from the respective disk sector;
copy the data from the respective disk sector into the first backup representation;
compute a first fingerprint for the respective disk sector based on the data of the respective disk sector; and
store the first fingerprint for the respective disk sector in association with the first backup representation;
wherein the program instructions are further executable to create a second backup representation of the virtual disk image file at a second time after creating the first backup representation and after a subset of the sectors represented by the virtual disk image file have changed, wherein in creating the second backup representation, the program instructions are executable to;
determine whether each disk sector of the virtual disk image file is in use at the second time by examining the metadata of the virtual disk image file;
for each respective disk sector that is in not in use at the second time, store information in association with the second backup representation indicating that the respective disk sector is not in use;
for each respective disk sector that is in use at the second time;
store information with the second backup representation indicating that the respective disk sector is in use;
use the metadata of the virtual disk image file to read data from the respective disk sector;
compute a new fingerprint for the respective disk sector based on the data of the respective disk sector;
store the new fingerprint in association with the second backup representation;
determine whether the respective disk sector was previously in use at the first time when the first backup representation was created;
if the respective disk sector was not previously in use then copy the data from the respective disk sector into the second backup representation;
if the respective disk sector was previously in use then retrieve the first fingerprint for the respective disk sector stored in association with the first backup representation, compare the new fingerprint to the first fingerprint to determine whether the data of the respective disk sector has changed since the first backup representation was created, and copy the data from the respective disk sector into the second backup representation if the respective disk sector has changed.
7 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of a system and method for backing up files used by a virtual machine are described herein. The files may be stored within a virtual disk image file. A full backup of the virtual disk image file may first be created. After creating the full backup, one or more incremental or differential backups of the virtual disk image file may be created. In some embodiments, fingerprints of the sectors of the virtual disk image file may be stored and used to identify which sectors should be included in the incremental or differential backups.
-
Citations
17 Claims
-
1. A computer-accessible storage medium storing program instructions executable to:
-
at a first time, create a first backup representation of a virtual disk image file that stores a plurality of files used by a virtual machine, wherein the virtual disk image file represents a plurality of disk sectors, wherein data of the plurality of files is stored across the disk sectors, wherein in creating the first backup representation, the program instructions are executable to; determine whether each disk sector of the virtual disk image file is in use at the first time by examining metadata of the virtual disk image file; for each respective disk sector that is in not in use at the first time, store information in association with the first backup representation indicating that the respective disk sector is not in use; for each respective disk sector that is in use at the first time;
store information with the first backup representation indicating that the respective disk sector is in use;
use the metadata of the virtual disk image file to read data from the respective disk sector;
copy the data from the respective disk sector into the first backup representation;
compute a first fingerprint for the respective disk sector based on the data of the respective disk sector; and
store the first fingerprint for the respective disk sector in association with the first backup representation;wherein the program instructions are further executable to create a second backup representation of the virtual disk image file at a second time after creating the first backup representation and after a subset of the sectors represented by the virtual disk image file have changed, wherein in creating the second backup representation, the program instructions are executable to; determine whether each disk sector of the virtual disk image file is in use at the second time by examining the metadata of the virtual disk image file; for each respective disk sector that is in not in use at the second time, store information in association with the second backup representation indicating that the respective disk sector is not in use; for each respective disk sector that is in use at the second time;
store information with the second backup representation indicating that the respective disk sector is in use;
use the metadata of the virtual disk image file to read data from the respective disk sector;
compute a new fingerprint for the respective disk sector based on the data of the respective disk sector;
store the new fingerprint in association with the second backup representation;
determine whether the respective disk sector was previously in use at the first time when the first backup representation was created;
if the respective disk sector was not previously in use then copy the data from the respective disk sector into the second backup representation;
if the respective disk sector was previously in use then retrieve the first fingerprint for the respective disk sector stored in association with the first backup representation, compare the new fingerprint to the first fingerprint to determine whether the data of the respective disk sector has changed since the first backup representation was created, and copy the data from the respective disk sector into the second backup representation if the respective disk sector has changed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
one or more processors; and memory storing program instructions, wherein the program instructions are executable by the one or more processors to; at a first time, create a first backup representation of a virtual disk image file that stores a plurality of files used by a virtual machine, wherein the virtual disk image file represents a plurality of disk sectors, wherein data of the plurality of files is stored across the disk sectors, wherein in creating the first backup representation, the program instructions are executable by the one or more processors to; determine whether each disk sector of the virtual disk image file is in use at the first time by examining metadata of the virtual disk image file; for each respective disk sector that is in not in use at the first time, store information in association with the first backup representation indicating that the respective disk sector is not in use; for each respective disk sector that is in use at the first time;
store information with the first backup representation indicating that the respective disk sector is in use;
use the metadata of the virtual disk image file to read data from the respective disk sector;
copy the data from the respective disk sector into the first backup representation;
compute a first fingerprint for the respective disk sector based on the data of the respective disk sector; and
store the first fingerprint for the respective disk sector in association with the first backup representation;wherein the program instructions are further executable by the one or more processors to create a second backup representation of the virtual disk image file at a second time after creating the first backup representation and after a subset of the sectors represented by the virtual disk image file have changed, wherein in creating the second backup representation, the program instructions are executable to; determine whether each disk sector of the virtual disk image file is in use at the second time by examining the metadata of the virtual disk image file; for each respective disk sector that is in not in use at the second time, store information in association with the second backup representation indicating that the respective disk sector is not in use; for each respective disk sector that is in use at the second time;
store information with the second backup representation indicating that the respective disk sector is in use;
use the metadata of the virtual disk image file to read data from the respective disk sector;
compute a new fingerprint for the respective disk sector based on the data of the respective disk sector;
store the new fingerprint in association with the second backup representation;
determine whether the respective disk sector was previously in use at the first time when the first backup representation was created;
if the respective disk sector was not previously in use then copy the data from the respective disk sector into the second backup representation;
if the respective disk sector was previously in use then retrieve the first fingerprint for the respective disk sector stored in association with the first backup representation, compare the new fingerprint to the first fingerprint to determine whether the data of the respective disk sector has changed since the first backup representation was created, and copy the data from the respective disk sector into the second backup representation if the respective disk sector has changed. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer-implemented method comprising:
-
at a first time, a computer system creating a first backup representation of a virtual disk image file that stores a plurality of files used by a virtual machine, wherein the virtual disk image file represents a plurality of disk sectors, wherein data of the plurality of files is stored across the disk sectors, wherein creating the first backup representation includes; determining whether each disk sector of the virtual disk image file is in use at the first time by examining metadata of the virtual disk image file; for each respective disk sector that is in not in use at the first time, storing information in association with the first backup representation indicating that the respective disk sector is not in use; for each respective disk sector that is in use at the first time;
storing information with the first backup representation indicating that the respective disk sector is in use;
using the metadata of the virtual disk image file to read data from the respective disk sector;
copying the data from the respective disk sector into the first backup representation;
computing a first fingerprint for the respective disk sector based on the data of the respective disk sector; and
storing the first fingerprint for the respective disk sector in association with the first backup representation;wherein the method further comprises the computer system creating a second backup representation of the virtual disk image file at a second time after creating the first backup representation and after a subset of the sectors represented by the virtual disk image file have changed, wherein creating the second backup representation includes; determining whether each disk sector of the virtual disk image file is in use at the second time by examining the metadata of the virtual disk image file; for each respective disk sector that is in not in use at the second time, storing information in association with the second backup representation indicating that the respective disk sector is not in use; for each respective disk sector that is in use at the second time;
storing information with the second backup representation indicating that the respective disk sector is in use;
using the metadata of the virtual disk image file to read data from the respective disk sector;
computing a new fingerprint for the respective disk sector based on the data of the respective disk sector;
storing the new fingerprint in association with the second backup representation;
determining whether the respective disk sector was previously in use at the first time when the first backup representation was created;
if the respective disk sector was not previously in use then copying the data from the respective disk sector into the second backup representation;
if the respective disk sector was previously in use then retrieving the first fingerprint for the respective disk sector stored in association with the first backup representation, comparing the new fingerprint to the first fingerprint to determine whether the data of the respective disk sector has changed since the first backup representation was created, and copying the data from the respective disk sector into the second backup representation if the respective disk sector has changed.
-
Specification