Application-Aware Virtual Machine Restart via Monitoring Agents
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional virtualization systems provide high availability for virtual machines but fail to efficiently make applications within these machines highly available, as they do not account for the state and priority of applications when deciding whether to restart a virtual machine.
Innovation Solution
Implementing a system with virtual machine monitoring agents and application monitoring agents that communicate with the operating system to determine the state and priority of applications, allowing for informed decisions on restarting virtual machines based on application status and dependencies, ensuring that higher-priority applications are maintained or restarted before lower-priority ones.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the virtual machine is restarted to restore high availability, then the virtual machine availability is improved, but the application state and priority are not considered leading to inefficient resource usage
Solution Approach 1:
The system implements feedback by continuously monitoring application states and using this information to determine whether VM restart is necessary. The monitoring agent collects application state information and feeds it back to the high availability decision logic, enabling informed decisions about VM restart based on actual application needs rather than blanket restart policies.
Solution Approach 2:
The system changes the parameter of decision-making by incorporating application state and priority as additional criteria. Instead of using a simple binary restart decision, the system evaluates multiple parameters including application state (running, stopped, failed) and priority levels to determine the optimal action, transforming the decision process from simplistic to nuanced.
2Ease of operation
If all applications are treated equally during VM restart, then the system is simple to operate, but critical applications may not be restored first leading to reduced system functionality
Solution Approach 1:
The system applies local quality by assigning different priority levels to different applications based on their criticality. Instead of treating all applications uniformly, the system identifies and marks critical applications with higher priority levels, ensuring they receive preferential treatment during VM restart operations while maintaining simple overall system operation.
Solution Approach 2:
The monitoring agent provides feedback about application priority and state to the decision-making process. This feedback mechanism enables the system to automatically identify which applications are critical and should be restored first, maintaining ease of operation while ensuring critical applications receive appropriate attention.
3Device complexity
If the system monitors only virtual machine status, then the monitoring complexity is low, but the application state information is insufficient for making informed restart decisions
Solution Approach 1:
The monitoring system is segmented into two distinct components: a virtual machine monitoring agent that tracks VM status and an application monitoring agent that tracks application state. This segmentation allows each agent to focus on its specific monitoring tasks without overwhelming complexity, while collectively providing comprehensive information for restart decisions.
Solution Approach 2:
The application monitoring agent acts as an intermediary between the application layer and the high availability decision-making process. It collects and translates application state information into a format that can be used by the VM restart decision logic, bridging the gap between application-level details and system-level decisions without significantly increasing overall complexity.
Data Source
AI summary
Various systems and methods can provide application-aware high availability of virtual machines. For example, one method involves receiving information indicating a state of an application executing in a virtual machine. The information is received by a computing device implementing a virtual machine monitoring agent that is monitoring the virtual machine. In response to receiving the information, the method determines whether the virtual machine should be restarted, based at least in part on the state of the application executing in the virtual machine. The method then generates information indicating whether the virtual machine should be restarted, in response to making the determination.


