Virtual Machine Fault Tolerance via Byte Order Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual machine fault tolerance methods based on status synchronization face a trade-off between network performance and computing performance, as frequent synchronization is required to maintain data consistency, leading to increased time overhead and reduced computing performance, and modifying network protocol stacks is necessary to ensure consistent data lengths, which is not feasible for all virtual machines.

Innovation Solution

A method that compares network response data packets from primary and secondary virtual machines according to data byte order, allowing for the generation and transmission of a newly created data packet when the compared data is the same, without modifying the network protocol stacks, thereby improving network performance and reducing the need for frequent synchronization, which enhances computing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If status synchronization frequency is increased to improve network performance, then network performance is improved, but computing performance of the primary virtual machine deteriorates due to frequent pausing and resuming

Engineering Contradiction:
Improvenetwork performanceVSAvoidcomputing performance
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent changes the synchronization trigger parameter from time-based (periodic synchronization) to event-based (synchronization only when status actually changes). This allows the system to achieve network performance comparable to high-frequency synchronization while avoiding the computing performance penalty of frequent pausing, as synchronization occurs only when necessary.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements a feedback mechanism where the system continuously monitors whether the virtual machine status has changed since the last synchronization. This feedback loop enables intelligent decision-making about when to synchronize, avoiding unnecessary synchronization operations that would degrade computing performance while ensuring network performance is maintained through timely synchronization when changes occur.

Inventive Principle:
Principle #23Feedback

2Speed

If network protocol stacks are modified to ensure consistent data lengths for COLO comparison, then network performance is improved, but adaptability to unmodified virtual machines deteriorates

Engineering Contradiction:
Improvenetwork performanceVSAvoidkernel modification requirement
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediary layer (the host system) that performs data packaging and length adjustment between the virtual machine network protocol stacks and the COLO comparison mechanism. This intermediary handles the data length normalization without requiring modifications to the virtual machine kernels, thus maintaining adaptability while enabling network performance improvement through COLO.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the data packet handling into separate components: the virtual machine network protocol stack (which remains unmodified), the host system data packaging layer (which handles length adjustment), and the COLO comparison mechanism. This segmentation allows each component to operate independently with its optimal design, maintaining virtual machine compatibility while achieving improved network performance.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3242440B1Fault tolerant method, apparatus and system for virtual machine
Publication Date: 2020.03.25 HUAWEI TECH CO LTD
  • EP3242440B1 patent drawingFigure 1
  • EP3242440B1 patent drawingFigure 2
  • EP3242440B1 patent drawingFigure 3

AI summary

The present invention discloses a virtual machine fault tolerance method, including: receiving a network request sent by a client, and separately sending the network request to a primary virtual machine and a secondary virtual machine; receiving a network response data packet, where the network response data packet is a primary-end data packet transmitted by the primary virtual machine or a secondary-end data packet transmitted by the secondary virtual machine; when peer-end data of the network response data packet is stored, comparing data of the received network response data packet with the peer-end data according to data byte order; and when the compared data is the same, generating and sending a newly created data packet to the client, where the newly created data packet includes the compared data. In the virtual machine fault tolerance method provided in embodiments of the present invention, network performance and computing performance of the primary virtual machine can be improved while network protocol stacks of the primary virtual machine and the secondary virtual machine do not need to be modified.