Container Fault Tolerance in Virtualized Environments

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing high availability approaches in virtualized computing environments are not designed to provide fault tolerance for containers running inside virtual machines, leading to undesirable data loss or corruption when a failure occurs, especially for business-critical legacy applications.

Innovation Solution

Implementing a fault tolerance mechanism where a snapshot of a container is created and transferred to a secondary virtual machine upon failure, allowing the container to be resumed without reinitialization, reducing downtime and resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If containers are run inside virtual machines to leverage both container and virtualization technologies, then resource efficiency and portability are improved, but fault tolerance deteriorates because container crashes occur when the virtual machine fails

Engineering Contradiction:
ImproveportabilityVSAvoidfault tolerance
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system segments the container lifecycle management from the virtual machine lifecycle. When a container needs fault tolerance, it is divided into two independent components: the primary virtual machine hosting the container, and a secondary virtual machine prepared as a failover target. This segmentation allows the container to be rescued independently from VM failures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-configuring a secondary virtual machine before failures occur. The secondary VM is prepared with the necessary environment and kept in a standby state, so that when the primary VM fails, the container can be quickly migrated without needing to recreate it. This advance preparation eliminates the need for reinitialization after failure.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional high availability approaches are used with continuous synchronization between primary and secondary virtual machines, then fault tolerance is improved, but resource consumption and complexity increase

Engineering Contradiction:
Improvefault toleranceVSAvoidsynchronization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system extracts the fault tolerance mechanism from the continuous synchronization process. Instead of maintaining constant synchronization between primary and secondary VMs, the invention only transfers container state information when needed (at failure recovery). This eliminates the overhead of continuous synchronization while maintaining fault tolerance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system uses copying of container state information rather than continuous synchronization. The secondary virtual machine receives a copy of the container's memory state and configuration data only when failover is required. This copying approach is resource-efficient compared to maintaining real-time synchronized copies.

Inventive Principle:
Principle #26Copying

3Productivity

If containers are restarted after virtual machine failure, then service restoration is achieved, but downtime increases due to reinitialization

Engineering Contradiction:
Improveservice restorationVSAvoiddowntime
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The secondary virtual machine is pre-configured with the container's execution environment, configuration, and initial state before failure occurs. This preliminary preparation ensures that when failover happens, the container can resume execution immediately without needing to go through the time-consuming reinitialization process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention introduces an intermediary mechanism (the secondary virtual machine with pre-loaded container state) that bridges the gap between primary VM failure and container restoration. This intermediary holds the container's state information and enables rapid recovery, acting as a buffer that eliminates the need for time-consuming restart procedures.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10255147B2Fault tolerance for containers in a virtualized computing environment
Publication Date: 2019.04.09 VMWARE INC
  • US10255147B2 patent drawing
  • US10255147B2 patent drawing
  • US10255147B2 patent drawing

AI summary

Example methods are described to provide fault tolerance for a container in a virtualized computing environment that includes a first virtual machine and a second virtual machine. The method may comprise detecting a failure at the first virtual machine. The container may be supported by the first virtual machine to run an application on a first operating system of the first virtual machine. The method may further comprise providing data relating to the container to the second virtual machine; and based on the data relating to the container, resuming the container in the second virtual machine to run the application on a second operating system of the second virtual machine.