VM Memory Error Recovery via Hypervisor Page Replication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memory errors during and after virtual machine migration pose significant challenges due to the inability of hardware to correct all errors, leading to data corruption and system crashes, especially in high-density DRAM environments, where errors can be exacerbated by increased memory activity during migration.
Innovation Solution
A method that involves obtaining the memory address triggering an uncorrected error, computing the associated page, determining if a copy of the page is available on another host during virtual machine migration, and generating a new page with data from the second host to recover from memory errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If virtual machine migration is performed, then system maintenance and load balancing are improved, but memory errors and data corruption risk increase
Solution Approach 1:
The system performs preliminary actions by creating and maintaining copy pages of virtual machine memory on the source host before migration completes. When memory errors occur during migration, these pre-existing copies enable error recovery without requiring the migration to be reversed or the VM to be restarted.
Solution Approach 2:
The invention utilizes the copy phase of virtual machine migration to create redundant memory pages on the source host. These copied pages serve as backup data that can be used to recover from memory errors, transforming the migration copying mechanism into an error recovery resource.
2Reliability
If hardware ECC is used, then single bit errors are corrected, but multi-bit errors and uncorrected errors still cause system crashes
Solution Approach 1:
The hypervisor acts as an intermediary between the hardware ECC system and the virtual machine. It intercepts uncorrected error interrupts, determines whether copy pages are available, and orchestrates the recovery process by switching memory mappings, thereby simplifying the overall error handling complexity while maintaining high reliability.
Solution Approach 2:
The system adds a software-based error recovery dimension beyond hardware ECC. Instead of relying solely on hardware correction capabilities, it introduces a hypervisor-level recovery mechanism that uses software intelligence and data redundancy to handle errors that hardware cannot correct, effectively adding another layer of protection.
3Reliability
If memory error recovery is implemented, then system crashes are prevented, but additional processing time and resources are required
Solution Approach 1:
Copy pages are created during the normal migration copy phase before any errors occur. This preliminary action ensures that recovery data is already prepared and available in memory, eliminating the need for time-consuming data retrieval from disk or remote storage when errors occur during migration.
Solution Approach 2:
The error recovery mechanism is self-service in that it automatically detects memory errors through hardware interrupts, determines the availability of copy pages, and performs recovery without requiring external intervention or complex orchestration. The hypervisor autonomously manages the recovery process, minimizing overhead and recovery time.
Data Source
AI summary
According to aspects of the present disclosure, systems and methods can be provided to recover from memory errors that occur during or following a virtual machine migration. Methods, computer program products and/or systems are provided for handling memory error that perform the following operations: (i) obtaining a memory address that triggered an uncorrected error on a first host associated with a virtual machine migration; (ii) computing a page associated with the memory address; (iii) determining if a copy of the page associated with the memory address is available on a second host associated with the virtual machine migration; (iv) obtaining data from the copy of the page on the second host; and (v) generating a new page on the first host with the data obtained from the second host.


