Cache-Coherent Shared Memory for Low-Downtime VM Migration
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
Figure 1
Figure 2A
Figure 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.