IP Library Granted Patent US 8,499,297
Granted Patent B2
US 8,499,297 · App. 12/259,762 · Granted Jul 30, 2013

Low overhead fault tolerance through hybrid checkpointing and replay

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,499,297
App. No.
12/259,762
Granted
Jul 30, 2013
Kind
B2
Abstract

A virtualized computer system provides fault tolerant operation of a primary virtual machine. In one embodiment, this system includes a backup computer system that stores a snapshot of the primary virtual machine and a log file containing non-deterministic events occurring in the instruction stream of the primary virtual machine. The primary virtual machine periodically updates the snapshot and the log file. Upon a failure of the primary virtual machine, the backup computer can instantiate a failover backup virtual machine by consuming the stored snapshot and log file.

Claims (25)

1. A method for providing fault-tolerance protection for a primary virtual machine using a snapshot image of the primary virtual machine that represents a state of the primary virtual machine at a time t 0 , the method comprising:

tracking virtual machine instructions executed by the primary virtual machine since time t 0 ;

tracking a set of changes made to the state of the primary virtual machine since time t 0 ;

merging the set of changes into the snapshot image, thereby creating a new snapshot image for a backup virtual machine; and

wherein the method further comprises:

storing in a log file information relating to the tracked virtual machine instructions executed by the primary virtual machine, wherein the information relating to the tracked virtual machine instructions executed by the primary virtual machine since time t 0 corresponds to non-deterministic events occurring in the primary virtual machine's instruction stream, the information including timing of the non-deterministic events measured by the placement of the non-deterministic events in the primary virtual machine's instruction stream and further including data corresponding to non-deterministic external inputs to emulated devices of the primary virtual machine; and

discarding from the log file any information relating to virtual machine instructions executed by the primary virtual machine prior to time t 0 .

2. The method of claim 1 further comprising the additional step of discarding the tracked set of changes after the merging step.

3. The method of claim 1 wherein the merging step occurs upon receiving the set of changes.

4. The method of claim 1 further comprising the additional step of storing the set of changes made to the state of the primary virtual machine since time t 0 .

5. The method of claim 4 wherein the merging step occurs upon a failure of the primary virtual machine.

6. The method of claim 1 further comprising the additional step of loading memory pages of the new snapshot image at the time the memory pages are needed during execution of the backup virtual machine's instruction stream.

7. A non-transitory computer readable storage medium having stored therein a computer program for providing fault-tolerance protection for a primary virtual machine using a snapshot image of the primary virtual machine that represents a state of the primary virtual machine at a time t 0 , wherein the computer program is configured to carry out the steps of:

tracking virtual machine instructions executed by the primary virtual machine since time t 0 ;

tracking a set of changes made to the state of the primary virtual machine since time t 0 ; and

merging the set of changes into the snapshot image, thereby creating a new snapshot image for a backup virtual machine; and

wherein the computer program is further configured to be executed on the backup computer system to carry out the steps of:

storing in a log file information relating to the tracked virtual machine instructions executed by the primary virtual machine, wherein the information relating to the tracked virtual machine instructions executed by the primary virtual machine since time t 0 corresponds to non-deterministic events occurring in the primary virtual machine's instruction stream, the information including timing of the non-deterministic events measured by the placement of the non-deterministic events in the primary virtual machine's instruction stream and further including data corresponding to non-deterministic external inputs to emulated devices of the primary virtual machine; and

discarding from the log file any information relating to virtual machine instructions executed by the primary virtual machine prior to time t 0 .

8. The non-transitory computer readable storage medium of claim 7 wherein the computer program is further configured to be executed on the backup computer system to carry out the step of:

discarding the tracked set of changes after the merging step.

9. The non-transitory computer readable storage medium of claim 7 wherein the merging step occurs upon receiving the set of changes.

10. The non-transitory computer readable storage medium of claim 7 wherein the computer program is further configured to be executed on the backup computer system to carry out the step of:

storing the set of changes made to the state of the primary virtual machine since time t 0 .

11. The non-transitory computer readable storage medium of claim 10 wherein the merging step occurs upon a failure of the primary virtual machine.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →