VM Host Suspend Logic for Storage Unavailability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtual machines experience I/O errors and high latencies due to intermittent unavailability of remote storage, leading to potential application and operating system crashes.
Innovation Solution
A virtual machine hosting environment that can instantiate and manage virtual machines by suspending them during storage unavailability, saving pending I/O requests, and resuming operations when the storage becomes available again, or alternatively terminating and restarting the virtual machines based on specific conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the virtual machine continues to operate during remote storage unavailability, then processing continues without interruption, but I/O errors and high latencies cause application and operating system crashes
Solution Approach 1:
The system performs preliminary detection of storage unavailability conditions and proactively suspends the virtual machine before I/O errors can occur. This preventive action maintains system reliability by avoiding crashes while preserving the ability to resume processing once storage is available again
Solution Approach 2:
The system dynamically adjusts the virtual machine's operational state based on real-time storage availability conditions. The virtual machine transitions between running, suspended, and resumed states according to storage conditions, optimizing both reliability during unavailability and productivity when available
2Reliability
If the virtual machine is suspended during storage unavailability, then I/O errors are prevented, but pending I/O requests are delayed and processing is interrupted
Solution Approach 1:
The system saves pending I/O requests to a temporary state before suspending the virtual machine. This preliminary preservation of pending operations ensures that when the virtual machine is resumed, the I/O requests can be completed without being lost or corrupted, minimizing the effective time loss
Solution Approach 2:
The system introduces an intermediary mechanism that holds pending I/O requests during the suspension period. This intermediary storage allows the virtual machine to be suspended for reliability while preserving the I/O operations for later execution, bridging the gap between suspension and resumption
3Reliability
If the virtual machine is terminated and restarted, then storage unavailability impact is reset, but application state is lost and restart overhead occurs
Solution Approach 1:
The system uses dynamic suspension rather than static termination, allowing the virtual machine to be temporarily paused and later resumed with its state preserved. This dynamic approach maintains application state while still addressing storage unavailability, avoiding the information loss associated with termination
Solution Approach 2:
The system cushions against the harmful effect of storage unavailability by suspending the virtual machine before damage can occur, rather than terminating it. This beforehand cushioning preserves application state while protecting against I/O errors, avoiding the need for costly restarts
Data Source
AI summary
A virtual machine hosting environment executing on a physical machine is operable to instantiate a virtual machine that is capable of initiating I/O operations directed to a remote storage. The virtual machine hosting environment is operable to determine when an unavailability condition exists with respect to the remote storage and when such unavailability condition no longer exists. The virtual machine hosting environment is further operable to suspend the virtual machine based at least on the determination that the unavailability condition exists and to resume the virtual machine based at least on the determination that the unavailability condition no longer exists. The virtual machine hosting environment may be still further operable to save one or more pending I/O requests generated by the virtual machine in conjunction with pausing the virtual machine and to send the pending I/O request(s) to the remote storage in conjunction with resuming the virtual machine.


