Cache-Coherent Shared Memory for Low-Downtime VM Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing virtual machine (VM) migration methods experience significant latency and disruption due to intensive input/output operations during the 'brown-out' and 'black-out' phases, particularly when migrating VMs between server nodes with memory failures and inefficiencies, leading to noticeable customer workload disruptions.

Innovation Solution

Implementing a shared memory pool that is cache and memory coherent with both the source and target nodes, allowing VM source memory to be temporarily stored and managed in this pool during migration, enabling rapid re-mapping and copying without the need for traditional node-to-node data transfers, thus reducing the duration of the brown-out and black-out phases.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If VM data is copied directly from source node to target node during brown-out phase, then migration can be performed, but intensive I/O operations cause noticeable latencies in customer workload

Engineering Contradiction:
Improvemigration speedVSAvoidcustomer workload latency
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

A shared memory pool acts as an intermediary between source and target nodes during VM migration. The source memory is remapped to the shared memory pool, allowing the target node to access VM data without direct node-to-node data transfers. This intermediary memory pool eliminates intensive I/O operations and associated latencies while maintaining migration functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If VM migration is performed with direct node-to-node data transfer, then migration can be completed, but the black-out phase requires the guest VM to be completely offline causing customer disruption

Engineering Contradiction:
Improvemigration completionVSAvoidcustomer downtime
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The shared memory pool is prepared and configured before the black-out phase begins. Source memory is remapped to the shared memory pool during the brown-out phase, so that when the black-out phase occurs, the target node already has access to the VM data in the shared memory pool, eliminating the need to wait for data transfers during VM downtime.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If traditional VM migration is used with direct data transfer between nodes, then migration can be performed, but memory allocation inefficiencies and transfer bottlenecks occur

Engineering Contradiction:
Improvemigration capabilityVSAvoidmemory transfer complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared memory pool serves multiple functions: it acts as temporary storage for source memory during migration, provides a common access point for both source and target nodes, and eliminates the need for complex node-to-node data transfer protocols. This multi-functional approach simplifies the overall migration architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP4641380A1Virtual machine migration using shared memory pooling
Publication Date: 2025.10.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP4641380A1 patent drawingFigure 1
  • EP4641380A1 patent drawingFigure 2A
  • EP4641380A1 patent drawingFigure 2B

AI summary

A method of VM migration includes allocating a designated system memory for a guest VM on a target node and reserving a shared physical memory region on a transfer node that is part of a shared memory pool that is memory coherent and cache coherent with a source node and the target node. The VM system memory of the guest VM is re-mapped from a first physical memory region on a source node to the shared physical memory region on the transfer node and the system memory of the guest VM is copied from the first physical memory region on the source node to the shared physical memory region on the transfer node. The designated system memory on the target node is mapped to the shared physical memory region on the transfer node; the guest VM is stopped on the source node and then resumed on the target node.