VM Image Backup via Cache Modification Flags

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtual machine (VM) failover methods in computer systems are inefficient due to high resource consumption, risk of disk corruption, and performance penalties from page faults and large data transfer, especially when replicating VM images across hardware failures.

Innovation Solution

A computer system with a processor unit running a hypervisor and a cache with image modification flags allows for selective logging of memory addresses of modified cache lines, reducing unnecessary data transfer by avoiding flushes from the cache and enabling efficient VM image replication without page faults, using a thread mask and thread ID to manage execution threads and identify modified cache lines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the VM memory is periodically marked as read-only to allow replication of changes to VM memory on another host, then failover robustness is improved, but a large number of page faults are generated which deteriorates system performance

Engineering Contradiction:
Improvefailover robustnessVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the memory replication process by introducing a hierarchy of dirty page tracking: L1 dirty page vectors track dirty pages at the guest page level, while L2 dirty page vectors track dirty pages at the host page level. This segmentation allows the system to identify and replicate only the necessary dirty pages without marking entire memory regions as read-only, thereby avoiding excessive page faults while maintaining failover robustness.

Inventive Principle:
Principle #1Segmentation

2Difficulty of detecting and measuring

If whole pages are replicated even if only a single bit has been changed on the page, then detection of altered portions is simplified, but data transfer volume increases which reduces overall architecture performance

Engineering Contradiction:
Improvedetection of altered portionsVSAvoiddata transfer volume
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of energy

Solution Approach 1:

The patent applies local quality by introducing granular dirty page tracking at multiple levels. Instead of replicating entire pages or large memory regions, the system tracks dirty status at the individual page level using L1 and L2 dirty page vectors. This allows precise identification of only the specific pages that have been modified, enabling selective replication of minimal data portions while maintaining accurate change detection.

Inventive Principle:
Principle #3Local quality

3Loss of energy

If small page sizes are used to avoid excessive data traffic between systems, then data transfer is reduced, but the operating system performance deteriorates as the OS is unable to use large size pages

Engineering Contradiction:
Improvedata transfer volumeVSAvoidoperating system performance
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent resolves this contradiction by operating in another dimension - it maintains the ability to use large page sizes for OS operations while simultaneously enabling fine-grained dirty page tracking. The multi-level dirty page vector mechanism (L1 at guest page level, L2 at host page level) allows the system to track modifications at a granular level regardless of the underlying page size, thus enabling selective replication without being constrained by page size choices and allowing the OS to optimize with large pages.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10133641B2Tracking modifications to a virtual machine image that occur during backup of the virtual machine
Publication Date: 2018.11.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10133641B2 patent drawing
  • US10133641B2 patent drawing
  • US10133641B2 patent drawing

AI summary

A computer system comprises a processor unit arranged to run a hypervisor running one or more virtual machines; a cache connected to the processor unit and comprising a plurality of cache rows, each cache row comprising a memory address, a cache line and an image modification flag; and a memory connected to the cache and arranged to store an image of at least one virtual machine. The processor unit is arranged to define a log in the memory and the cache further comprises a cache controller arranged to set the image modification flag for a cache line modified by a virtual machine being backed up, but not for a cache line modified by the hypervisor operating in privilege mode; periodically check the image modification flags; and write only the memory address of the flagged cache rows in the defined log.