VM Suspend Resume Cache Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing VM suspend/resume feature in virtualized computer systems becomes inefficient during 'suspend storms' and 'resume storms,' where many VMs are suspended or resumed simultaneously, leading to prolonged processing times due to storage device bottlenecks, delaying resource reallocation and user access.
Innovation Solution
Implementing a cache with lower input/output latency and higher throughput than traditional storage devices, such as local or shared SSDs, to manage VM states during suspend and resume operations, allowing for faster IO operations and efficient resource management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a cache with lower I/O latency and higher throughput is introduced, then suspend and resume operations become faster, but device complexity increases
Solution Approach 1:
The storage system is segmented into two distinct components: a high-speed cache storage device and a standard storage device. The cache device handles suspend/resume operations requiring fast I/O, while the standard device handles other storage needs. This segmentation allows the system to achieve fast suspend/resume without making the entire storage system complex.
Solution Approach 2:
The cache storage device acts as an intermediary between the VM suspend/resume operations and the standard storage device. It temporarily holds VM state data during suspend operations, enabling fast I/O performance, and coordinates with the standard storage device to manage data persistence. This intermediary approach resolves the contradiction by providing fast access paths without requiring complete system redesign.
2Speed
If VM state data is stored in a cache device, then I/O operations during suspend and resume are faster, but loss of substance increases if cache data is not persisted
Solution Approach 1:
The system performs preliminary actions by first writing VM state data to the cache storage device, which has faster I/O capabilities. After confirming successful write operations, the system then persists this data to the standard storage device. This preliminary action in the cache enables fast suspend/resume operations while the subsequent persistence step prevents data loss.
Solution Approach 2:
The cache storage device serves as a cushioning layer that temporarily protects VM state data during transitions. It absorbs the speed requirements for fast suspend/resume operations while the system prepares to persist data to the standard storage device. This beforehand cushioning ensures that even if the standard storage device experiences delays, the VM state data remains safe in the cache.
3Productivity
If multiple VMs are suspended or resumed simultaneously, then resource allocation efficiency improves, but storage device bottleneck increases processing time
Solution Approach 1:
The storage I/O operations are segmented between the cache device and standard device. During suspend/resume storms, the cache device handles the time-critical VM state data transfers, while the standard device handles other storage operations. This segmentation prevents the standard storage device from becoming a bottleneck during simultaneous VM operations, maintaining both resource allocation efficiency and acceptable processing times.
Solution Approach 2:
The system changes the I/O performance parameters by introducing a cache device with fundamentally different performance characteristics (lower latency, higher throughput). This parameter change enables the system to handle multiple simultaneous suspend/resume operations without the standard storage device becoming a bottleneck, thus maintaining productivity during storms without excessive time loss.
Data Source
AI summary
A method of enabling “fast” suspend and “rapid” resume of virtual machines (VMs) employs a cache that is able to perform input/output operations at a faster rate than a storage device provisioned for the VMs. The cache may be local to a computer system that is hosting the VMs or may be shared cache commonly accessible to VMs hosted by different computer systems. The method includes the steps of saving the state of the VM to a checkpoint file stored in the cache and locking the checkpoint file so that data blocks of the checkpoint file are maintained in the cache and are not evicted, and resuming execution of the VM by reading into memory the data blocks of the checkpoint file stored in the cache.


