Virtual Machine Suspension via Guest OS Notification and RAM State Migration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional virtual machine suspension methods are either slow and resource-intensive or disadvantageous as they do not notify the guest OS, leading to issues with application data integrity and unexpected clock changes during resumption.
Innovation Solution
A method that coordinates between the guest OS and hypervisor to suspend and resume a virtual machine by using 'suspend to RAM' mode, followed by external storage of VM memory and state information, ensuring the guest OS is aware of the process and allowing quicker and more accurate operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the guest OS uses S4 ACPI capabilities to suspend the virtual machine to a disk, then the suspension is accurate and the guest OS is aware of the suspension, but the suspension is slow and consumes a significant amount of resources
Solution Approach 1:
The suspension process is divided into two distinct phases: (1) guest OS-level suspend to RAM using S4 ACPI capabilities, which ensures accurate suspension state capture, and (2) hypervisor-level external suspension that migrates the suspended VM memory to host storage. This segmentation allows each phase to optimize for its specific function without compromising the other.
Solution Approach 2:
The guest OS performs preliminary suspension actions by saving its state to RAM before the hypervisor performs the final external suspension and storage migration. This preliminary action ensures that when the VM is resumed, the guest OS is already in the correct state to continue execution, improving both accuracy and speed.
2Productivity
If the host computing system pauses the virtual machine externally and saves the virtual machine memory and state information into host OS memory, then the suspension is faster, but the guest OS is not aware that it is being suspended, which may create problems for applications running on the guest OS
Solution Approach 1:
The system implements feedback by having the guest OS notify applications of the upcoming suspension before it occurs. This allows applications to perform necessary cleanup operations, flush buffers to disk, and save state information, ensuring data integrity even though the suspension itself is fast.
Solution Approach 2:
Applications are given preliminary notice of the suspension before it occurs, allowing them to perform preparatory actions such as flushing data to disk and saving state. This preliminary action ensures that when the fast suspension occurs, no data is lost.
3Reliability
If the virtual machine is suspended to disk, then the suspension is accurate, but it consumes a significant amount of resources and is slow
Solution Approach 1:
The invention changes the storage parameter from disk (persistent storage) to RAM (volatile storage) for the suspension state. By suspending to RAM instead of disk, the system achieves both accuracy and speed while reducing resource consumption, as RAM operations are faster and consume less energy than disk operations.
Solution Approach 2:
The system creates a copy of the VM memory state in host storage after the guest OS has suspended to RAM. This copying approach allows the original suspended state to remain in fast RAM while creating a persistent backup, enabling fast resumption while maintaining data safety.
Data Source
AI summary
A method and system for suspending operation of a virtual machine executed by a processing device of a host computing system. The method and system include storing state information of the virtual machine to a memory of the guest operating system. A notification is sent to an application of the virtual machine to enable the application to flush data prior to suspension of the operation of the virtual machine. Upon receipt of a confirmation that the state information is stored in the memory of the guest operating system, the state information is migrated to storage of the host computing system.


