Virtual Machine Manager Dynamic Resource Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtual machine systems face challenges in dynamically managing resources and load balancing across local and remote processors, leading to inefficiencies in processing and potential failures due to unresponsive remote data processing devices.
Innovation Solution
A system that implements a resource manager and virtual machine manager to dynamically associate application threads with local and remote processors, instantiating or removing virtual processors as needed to maintain optimal load balance and replicate remote data processing devices for failover, while allowing direct memory access to remote memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If virtual processors are statically allocated to local processors only, then system simplicity is maintained, but resource utilization efficiency deteriorates when computation load exceeds local processing capacity
Solution Approach 1:
The system dynamically adjusts the number of virtual processors based on computation load monitoring. When local processors reach capacity, the system automatically instantiates additional virtual processors that can be allocated to remote data processing devices, enabling flexible resource utilization without static constraints
Solution Approach 2:
A virtual machine manager is introduced as an intermediary component that mediates between application threads and physical processors. This manager handles the complexity of dynamic resource allocation, load balancing, and failover management, shielding applications from system complexity while enabling efficient resource utilization
2Productivity
If remote data processing devices are used to handle excess computation load, then processing capacity is improved, but system reliability deteriorates due to potential unresponsiveness of remote devices
Solution Approach 1:
The system implements health monitoring mechanisms that detect unresponsiveness of remote data processing devices before complete failure. When a remote device becomes unresponsive, the system proactively migrates application threads from affected virtual processors to healthy local or remote processors, preventing service interruption
Solution Approach 2:
The system creates copies of application threads and migrates them between different physical processors. When a remote processor fails, the system can copy thread execution to alternative processors, ensuring continuity of service and improving reliability through redundancy
3Productivity
If the number of virtual processors is dynamically adjusted based on computation load, then resource allocation efficiency is improved, but system complexity increases due to dynamic instantiation and migration requirements
Solution Approach 1:
The virtual machine manager implements self-service mechanisms by automatically monitoring computation load, determining when additional virtual processors are needed, instantiating them, and allocating them to appropriate remote data processing devices without manual intervention. The system also automatically migrates threads when load conditions change
4Productivity
If application threads are migrated between local and remote processors, then load balancing is improved, but processing time increases due to thread migration overhead
Solution Approach 1:
The system performs preliminary actions by pre-instantiating virtual processors and maintaining them in a ready state before they are needed. When load increases, these pre-prepared virtual processors can be activated and assigned to application threads immediately, reducing the time required for dynamic resource allocation
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
This approach enhances processing efficiency by dynamically adjusting resource allocation and ensuring continuous operation through failover mechanisms, presenting a unified memory space to applications and improving responsiveness and reliability.
Implementation Method 1
instantiating or removing virtual processors as needed to maintain optimal load balance
Implementation Method 2
replicate remote data processing devices for failover
Implementation Method 3
The virtual machine may access the remote memory using remote direct memory access (RDMA)
Data Source
AI summary
A system including a collection of local data processing devices and a collection of remote data processing devices. At least one local data processing device executes instructions configuring the at least one local data processing device to implement a resource manager, a virtual machine, and a virtual machine manager. The resource manager associates application threads of a software application executing on a data processing device with local processors. The virtual machine includes a plurality of virtual processors, and each virtual processor emulates a data processing device. The virtual machine associates local processors with virtual processors. Finally, the virtual machine manager associates at least one virtual processor with a local data processing device and at least one virtual processor with a remote data processing device.


