IP Library › Granted Patent US 8,037,032
Granted Patent B2
US 8,037,032 · App. 12/197,768 · Granted Oct 11, 2011

Managing backups using virtual machines

Assignee: VMware, Inc.
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 8,037,032
App. No.
12/197,768
Granted
Oct 11, 2011
Kind
B2
Abstract

One embodiment is a method for providing incremental backups for a source computing machine, the method including: (a) creating a first backup snapshot including a virtual machine (VM) snapshot of an initial copy of a source computing machine volume, wherein said VM snapshot includes a timestamp and a first redo log file; (b) reconfiguring and customizing said first backup snapshot to create a first bootable VM, writing changes associated with said reconfiguring and customizing into said first redo log file, then creating a first bootable snapshot including a VM snapshot of said first bootable VM, wherein said VM snapshot of said first bootable VM includes a timestamp for said first bootable VM and a redo log file; (c) performing an incremental update of said first backup snapshot or a subsequent backup snapshot, then creating a subsequent backup snapshot including a VM snapshot of said incremental update, wherein said VM snapshot of said incremental update includes a timestamp for said incremental update and a redo log file; and (d) reconfiguring and customizing said subsequent backup snapshot to create a subsequent bootable VM, then creating a subsequent bootable snapshot including a VM snapshot of said subsequent bootable VM, wherein said VM snapshot of said subsequent bootable VM includes a timestamp for said subsequent bootable VM and a redo log file.

Claims (58)

1. A method for providing incremental backups for a source computing machine, the method comprising:

(a) creating a first backup snapshot comprising a virtual machine (VM) snapshot of an initial copy of a source computing machine volume, wherein said VM snapshot comprises a timestamp and a first redo log file;

(b) reconfiguring and customizing said first backup snapshot to create a first bootable VM, writing changes associated with said reconfiguring and customizing into said first redo log file, then creating a first bootable snapshot comprising a VM snapshot of said first bootable VM, wherein said VM snapshot of said first bootable VM comprises a timestamp for said first bootable VM and a redo log file;

(c) performing an incremental update of said first backup snapshot or a subsequent backup snapshot, then creating a subsequent backup snapshot comprising a VM snapshot of said incremental update, wherein said VM snapshot of said incremental update comprises a timestamp for said incremental update and a redo log file; and

(d) reconfiguring and customizing said subsequent backup snapshot to create a subsequent bootable VM, then creating a subsequent bootable snapshot comprising a VM snapshot of said subsequent bootable VM, wherein said VM snapshot of said subsequent bootable VM comprises a timestamp for said subsequent bootable VM and a redo log file.

2. The method of claim 1 wherein said first or subsequent bootable VM is booted and tested, and, optionally, applications are reconfigured.

3. The method of claim 2 further comprising creating a before-backup snapshot comprising a VM snapshot of said first or subsequent bootable VM.

4. The method of claim 1 further comprising repeating steps (c) and (d) one or more times.

5. The method of claim 1 wherein performing an incremental update comprises:

dividing said source computing machine volume into a set of portions;

creating a first source snapshot of said source computing machine volume;

calculating a first set of hashes for each portion in said set of portions for the state of said source computing machine volume at the time of said first source snapshot;

storing said first set of hashes in a file;

creating a second source snapshot of said source computing machine volume at the time of commencement of said incremental update;

calculating a second set of hashes for each portion in said set of portions for the state of said source computing machine volume at the time of said second source snapshot;

comparing said first set of hashes to said second set of hashes to identify changed portions; and

copying said changed portions and their hashes to a second redo log file for said first backup snapshot.

6. The method of claim 5 wherein said portions comprise files.

7. The method of claim 5 wherein said portions comprise blocks of a volume.

8. The method of claim 7 wherein said blocks are equal in size to the cluster size for the volume, except for an optional irregular-sized block at the beginning.

9. The method of claim 8 wherein said irregular-sized block is sized so that block boundaries align with cluster boundaries.

10. The method of claim 7 wherein groups of eight blocks are aligned except for a single shorter group of blocks.

11. The method of claim 5 wherein said file is removed when reconfiguring and customizing said subsequent backup snapshot to create a subsequent bootable VM.

12. The method of claim 5 wherein hashes are calculated using the SHA-256 algorithm.

13. The method of claim 1 wherein performing an incremental update comprises:

dividing said source computing machine volume into a set of portions;

installing and running a driver on said source machine which records which portions have changed after particular times in memory segments; and

setting said driver to record changed portions from the time of creation of said first source snapshot.

14. The method of claim 13 further comprising:

copying said changed portions and their hashes to a second redo log file for said first backup snapshot.

15. The method of claim 13 wherein each memory segment comprises a bitmap wherein each bit in said bitmap records whether or not a particular portion of said set of portions has been changed.

16. The method of claim 13 wherein said setting further comprises:

starting to record new changes in a second memory segment;

creating said source snapshot; and

stopping the recording of changes in a first memory segment.

17. The method of claim 13 further comprising:

creating a first source snapshot of said source computing machine volume;

calculating a first set of hashes for each portion in said set of portions for the state of said source computing machine volume at the time of said first source snapshot;

storing said first set of hashes in a file on said target datastore;

determining if the data in said memory segments could have been corrupted due to source system reboots or crashes, and if corruption could have occurred:

creating a second source snapshot of said source computing machine volume at the time of commencement of said incremental update;

calculating a second set of hashes for each portion in said set of portions for the state of said source computing machine volume at the time of said second source snapshot;

comparing said first set of hashes to said second set of hashes to identify changed portions; and

copying said changed portions and their hashes to a second redo log file for said first backup snapshot.

18. The method of claim 1 wherein performing an incremental update further comprises:

reverting said bootable VM to said first backup snapshot;

creating a temporary VM snapshot as a copy of said first backup snapshot;

switching said bootable VM to said first bootable snapshot;

creating said VM snapshot of an incremental update of the most recent backup snapshot by writing changes to a redo log file created at the time of said temporary snapshot; and

designating said temporary VM snapshot to be said subsequent backup snapshot; and

wherein reconfiguring and customizing further comprises:

reverting said bootable VM to said subsequent backup snapshot;

creating a second temporary VM snapshot as a copy of said subsequent backup snapshot;

switching said bootable VM to said first bootable snapshot;

writing the changes associated with said reconfiguring and customizing to a redo log file created at the time of said second temporary VM snapshot; and

designating said second temporary VM snapshot to be said subsequent bootable snapshot; and

the method further comprising:

switching said bootable VM to said subsequent bootable snapshot.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2009
From: PERSHIN, ALEKSEY; LANGOUEV, ILIA; PIDURI, SUDARSANA R.; SHAH, PARAG RATANKUMAR; SILVER, JOSHUA M.
To: VMWARE, INC.
Reel/Frame 022400/0628 →
Continuity (1)
Related Publication 20100049930A1 · Feb 25, 2010