Virtual Machine Fault Tolerance via Interrupt Timing Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional fault-tolerant systems using virtual machines struggle to maintain synchronization of execution states between primary and secondary virtual machines, especially when hardware failures occur, leading to out-of-sync execution and potential data discrepancies.
Innovation Solution
A fault-tolerant system that adjusts the virtual interrupt timing in the primary virtual machine to ensure the secondary virtual machine inputs the interrupt at the same timing, using synchronization information that includes the execution suspension position and branch count to maintain parallel synchronization operations, even across different CPU architectures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the primary virtual machine transmits interrupt timing information to the secondary virtual machine for synchronization, then the execution states of both virtual machines can be kept synchronized, but when hardware failures occur, the synchronization is disrupted and the secondary virtual machine cannot accurately detect the failure
Solution Approach 1:
The patent creates a copy of the interrupt timing information and transmits it to the secondary virtual machine. The secondary virtual machine uses this copied timing information to generate virtual interrupts at the same timing as the primary virtual machine, maintaining synchronization without requiring complex detection mechanisms. When hardware failure occurs, the secondary virtual machine can detect the failure by comparing its execution state with the received timing information.
2Reliability
If the system checks output data to detect hardware failures, then failures can be detected, but this increases processing time and reduces system productivity
Solution Approach 1:
The patent replaces the mechanical approach of checking output data with a more efficient mechanism based on timing information comparison. The secondary virtual machine compares its execution timing with the received timing information from the primary virtual machine, enabling failure detection without the need to check output data, thus maintaining high processing speed while ensuring reliability.
3Reliability
If the secondary virtual machine runs with a delay to synchronize with the primary virtual machine, then both virtual machines can execute the same operation in sync, but this delay reduces the responsiveness of the secondary virtual machine
Solution Approach 1:
The patent applies preliminary action by having the secondary virtual machine receive and store the timing information from the primary virtual machine in advance. This allows the secondary virtual machine to execute operations in sync with the primary virtual machine without continuous delay, as it already has the timing information needed to coordinate its execution, thereby maintaining both synchronization and responsiveness.
Data Source
AI summary
A primary virtual machine is formed on a primary machine in which a primary hypervisor runs, and inputs virtual interrupt based on an external interrupt from the primary hypervisor to a primary guest OS. A secondary virtual machine is formed on a secondary machine in which a secondary hypervisor runs, and inputs the virtual interrupt to a secondary guest OS on the basis of timing information on the virtual interrupt transmitted from the primary virtual machine. When inputting the virtual interrupt to the primary guest OS, the primary virtual machine suspends the primary guest OS, and determines whether the suspended position is in a critical section. If the suspended position is not in the critical section, the primary virtual machine inputs the virtual interrupt at the suspended position. If the suspended position is in the critical section, the primary virtual machine changes the suspended position, and again performs the determination.