Virtual Machine Recovery via Shared Pooled Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In high availability clusters of virtual machine hosts, restarting a virtual machine on a new host after a failure does not maintain the virtual machine's state and is a time-consuming process due to the need to recover the guest operating system and application, often requiring significant time and resources.
Innovation Solution
Implementing a shared memory architecture with pooled memory that allows for the resurrection of virtual machines on a new host using memory page tables, maintaining the virtual machine's state and reducing resource usage by avoiding the need for shadow virtual machines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a virtual machine is restarted on a new host after host failure, then the virtual machine can continue running, but the virtual machine's state is lost and recovery time is significant
Solution Approach 1:
The system performs preliminary actions by continuously maintaining virtual machine memory states in pooled memory before failures occur. When a host fails, the memory state is already prepared and accessible in the shared pooled memory, eliminating the need for time-consuming state recovery and enabling immediate virtual machine resurrection on a new host.
Solution Approach 2:
The pooled memory architecture acts as an intermediary between virtual machines and physical hosts. By decoupling virtual machine memory states from specific host memory and storing them in shared pooled memory accessible by multiple hosts, the system enables seamless virtual machine migration and recovery without losing state information.
2Ease of manufacture
If virtual machine memory state is stored on local disk memory of the original host, then storage is simple, but the memory state becomes inaccessible to new hosts
Solution Approach 1:
The pooled memory architecture creates a universal memory space that serves multiple hosts simultaneously. Instead of dedicating memory to individual hosts, the pooled memory can be accessed by any host in the cluster, enabling any host to resume virtual machines from any other host while maintaining memory state integrity.
Solution Approach 2:
The system transitions from a one-to-one mapping between host memory and virtual machine memory to a many-to-many relationship through pooled memory. This dimensional change in memory architecture allows multiple hosts to access the same virtual machine memory states, enabling flexible failover and migration scenarios.
Data Source
AI summary
Examples provide for virtual machine recovery using pooled memory. A shared partition is created on pooled memory accessible by a plurality of virtual machine hosts. A set of memory pages for virtual machines running on the hosts is moved to the shared partition. A master agent polls memory page tables associated with the plurality of hosts for write access. If the master agent obtains write access to a memory page table of a given host, the given host that previously held the write access is identified as a failed host or an isolated host. The virtual machines of the given host enabled to resume from pooled memory are respawned on a new host while maintaining memory state of the virtual machines using data within the pooled memory, including the virtual machine memory pages, memory page table, host profile data, and/or host-to-VM table data.


