Method and system for synchronizing fault-tolerant virtual machines and adjusting CPU resource limit based on execution latency
First Claim
1. A method for synchronizing execution of a first virtual machine and a second virtual machine which are organized as a fault-tolerant pair of virtual machines, wherein the first virtual machine is a primary virtual machine and executes within a first computer system and the second virtual machine is enabled to track the state of the primary virtual machine and executes within a second computer system, the method comprising:
- determining an execution latency between the first virtual machine and the second virtual machine, wherein the execution latency represents the difference in time between a first time at which an event is executed at the first virtual machine and a second time at which the same event is executed at the second virtual machine; and
adjusting a CPU resource limit in the first virtual machine in proportion to the determined execution latency, wherein the CPU resource limit is an allocation of CPU processing capability of the first computer system.
2 Assignments
0 Petitions
Accused Products
Abstract
Primary and secondary virtual machines each executing on a separate physical host and forming a fault-tolerant pair synchronize their execution with each other as closely as possible such that the secondary can take over execution of the primary with little or no disruption of service and no loss of data. To provide fast takeover, the execution latency between the two virtual machines is kept to a minimum by incrementally adjusting the CPU allocation to the primary virtual machine. The CPU allocation to the primary virtual machine decreases when the execution latency is large and increases when the execution latency is small. In order to maximize the performance of the primary virtual machine, the system seeks to maximize the CPU resource limit for the primary virtual machine for as long as possible while minimizing the execution latency.
-
Citations
20 Claims
-
1. A method for synchronizing execution of a first virtual machine and a second virtual machine which are organized as a fault-tolerant pair of virtual machines, wherein the first virtual machine is a primary virtual machine and executes within a first computer system and the second virtual machine is enabled to track the state of the primary virtual machine and executes within a second computer system, the method comprising:
-
determining an execution latency between the first virtual machine and the second virtual machine, wherein the execution latency represents the difference in time between a first time at which an event is executed at the first virtual machine and a second time at which the same event is executed at the second virtual machine; and adjusting a CPU resource limit in the first virtual machine in proportion to the determined execution latency, wherein the CPU resource limit is an allocation of CPU processing capability of the first computer system. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable storage medium for storing instructions that, when executed by a computer system causes the computer system to perform a method for synchronizing execution of the first virtual machine and a second virtual machine which are organized as a fault-tolerant pair of virtual machines, wherein the first virtual machine is a primary virtual machine and executes within a first computer system and the second virtual machine is enabled to track the state of the primary virtual machine and executes within a second computer system, the method comprising:
-
determining an execution latency between the first virtual machine and the second virtual machine, wherein the execution latency represents the difference in time between a first time at which an event is executed at the first virtual machine and a second time at which the same event is executed at the second virtual machine; and adjusting a CPU resource limit in the first virtual machine in proportion to the determined execution latency. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer system that synchronizes execution of a first virtual machine and a second virtual machine which are organized as a fault-tolerant pair of virtual machines, wherein the first virtual machine is a primary virtual machine and executes within a first computer system and the second virtual machine is enabled to track the state of the primary virtual machine and executes within a second computer system, the computer system comprising:
-
a processing unit; and a memory, wherein the processing unit is configured to determine an execution latency between the first virtual machine and the second virtual machine, wherein the execution latency represents the difference in time between a first time at which an event is executed at the first virtual machine and a second time at which the same event is executed at the second virtual machine, and adjust a CPU resource limit in the first virtual machine in proportion to the determined execution latency. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification