VM Failover Using Disaggregated Shared Memory and Epoch Flushing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtual machine failover systems require copying snapshot data across a network and restarting on the node that created the snapshot, which is inefficient and prone to data loss in the event of failure.
Innovation Solution
Implementing a method that uses disaggregated shared memory to write updates to a local cache and evicted items to a separate shared memory device, flushing the cache at epoch expiration, and transmitting the virtual CPU state to minimize data copying and loss during failover.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If snapshot data is copied across the network to a remote server, then virtual machine state can be stored for failover, but data loss occurs and recovery time increases due to network dependency
Solution Approach 1:
The patent segments memory storage into local cache memory on the compute node and remote shared memory on separate storage nodes. This segmentation allows the system to maintain both fast local access and persistent remote storage, enabling quick failover by keeping critical VM state locally available while maintaining reliability through remote backup.
Solution Approach 2:
The patent introduces an intermediary mechanism (the disaggregated memory system with cache coherence protocols) that mediates between the compute node and remote storage. This intermediary allows the compute node to access VM state quickly through local cache while automatically synchronizing with remote storage, eliminating the need for direct network copying during normal operation and enabling fast failover.
2Adaptability or versatility
If snapshot data is copied across the network, then virtual machine state can be stored remotely, but data copying overhead increases and efficiency decreases
Solution Approach 1:
The patent performs preliminary actions by pre-loading VM state data into local cache memory on compute nodes before it is needed. The system proactively maintains cached copies of frequently accessed memory pages, so when failover is needed, the data is already locally available rather than requiring network copying at the moment of failure.
Solution Approach 2:
The patent establishes continuous synchronization between local cache and remote shared memory through background processes and cache coherence protocols. This continuous action ensures data consistency is maintained over time without requiring large batch transfers, allowing the system to maintain remote storage capability while avoiding the inefficiency of repeated large-scale data copying.
3Loss of information
If virtual machine restart occurs only on the node that created the snapshot, then snapshot data can be used, but system flexibility and failover options are limited
Solution Approach 1:
The patent creates a universal shared memory system that can be accessed by multiple compute nodes. The remote shared memory becomes a universal storage resource that any compute node in the cluster can access, allowing VM state to be restored on any node rather than being restricted to the original node. This multi-functionality enables flexible failover while maintaining complete snapshot data availability.
Data Source
AI summary
According to an aspect, a computer-implemented method includes operating a program on a virtual machine on a first device having a local cache memory. Based on a determination that an epoch timer has not expired, aspects include writing one or more updates to the local cache memory and transmitting evicted items from the local cache memory to a shared memory device that is separate from the first device. Based on a determination that an epoch timer has expired, aspects include flushing the local cache memory to the shared memory device, transmitting a virtual CPU state of the virtual machine to the shared memory device, and resetting the epoch timer.


