Method and System for Frequent Checkpointing
First Claim
1. A method for transmitting modifications made to a memory page of a virtual machine during a current time interval, the method comprising:
- maintaining a data structure comprising an entry corresponding to the memory page that indicates a history of modifications made to the memory page in previous time intervals;
stunning the virtual machine at the end of the current time interval;
confirming that the entry in the data structure satisfies a heuristic indicating a level of absence of modifications to the memory page in previous time intervals;
resuming execution of the virtual machine; and
transmitting at least a portion of the memory page to a backup computer system while the virtual machine is executing.
2 Assignments
0 Petitions
Accused Products
Abstract
A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned.
78 Citations
20 Claims
-
1. A method for transmitting modifications made to a memory page of a virtual machine during a current time interval, the method comprising:
-
maintaining a data structure comprising an entry corresponding to the memory page that indicates a history of modifications made to the memory page in previous time intervals; stunning the virtual machine at the end of the current time interval; confirming that the entry in the data structure satisfies a heuristic indicating a level of absence of modifications to the memory page in previous time intervals; resuming execution of the virtual machine; and transmitting at least a portion of the memory page to a backup computer system while the virtual machine is executing. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable storage medium including instructions that, when executed by a processor of a computer system, causes the processor to transmit modifications made to a memory page of a virtual machine running on the computer system during a time interval by performing the steps of:
-
maintaining a data structure comprising an entry corresponding to the memory page that indicates a history of modifications made to the memory page in previous time intervals; stunning the virtual machine at the end of the current time interval; confirming that the entry in the data structure satisfies a heuristic indicating a level of absence of modifications to the memory page in previous time intervals; resuming execution of the virtual machine; and transmitting at least a portion of the memory page to a backup computer system while the virtual machine is executing. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer system configured to periodically provide updated state information of a primary virtual machine running on the computer system to a collector process running on a backup computer system, the computer system comprising:
-
a system memory comprising a hypervisor component configured to instantiate the primary virtual machine; and a multi-core processor having at least one processing unit is configured to execute the hypervisor component to transmit modifications made to a memory page of the primary virtual machine during a time interval by performing the steps of; maintaining a data structure comprising an entry corresponding to the memory page that indicates a history of modifications made to the memory page in previous time intervals; stunning the virtual machine at the end of the current time interval; confirming that the entry in the data structure satisfies a heuristic indicating a level of absence of modifications to the memory page in previous time intervals; resuming execution of the virtual machine; and transmitting at least a portion of the memory page to a backup computer system while the virtual machine is executing. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification