Hot-plugging Virtual Functions in Virtualized Environments
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized environments, the virtualization manager often faces challenges when there are no available SR-IOV virtual functions for virtual machines, leading to errors and adverse effects on client applications due to the inability to identify or allocate virtual functions for network interfaces.
Innovation Solution
The system implements techniques to hot-plug SR-IOV virtual functions by creating new virtual functions, migrating virtual machines to hosts with available resources, or utilizing virtual bridges to provide network connectivity, allowing for dynamic allocation and management of virtual functions without disrupting the virtual machines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the virtualization manager allocates SR-IOV virtual functions to virtual machines, then network performance and CPU utilization are improved, but the system becomes unable to accommodate new virtual machines when all virtual functions are exhausted
Solution Approach 1:
The patent implements dynamic virtual function allocation by enabling hot-plug capability that allows virtual functions to be allocated to virtual machines during runtime without system shutdown. The virtualization manager dynamically monitors virtual function availability and performs reallocation operations, transforming the static allocation model into a dynamic one that adapts to changing system conditions and resource availability.
Solution Approach 2:
The system performs preliminary actions by pre-configuring virtual function pools and establishing hot-plug readiness before virtual machines need resources. The virtualization manager maintains a pool of available virtual functions and prepares allocation mechanisms in advance, so when virtual machines require network resources, the allocation can occur immediately without disruption to system operation.
2Reliability
If the system creates new virtual functions dynamically, then virtual machine continuity is maintained, but system complexity increases due to hot-plug management
Solution Approach 1:
The patent introduces a virtualization manager as an intermediary layer between the physical network resources and virtual machines. This manager handles the complexity of hot-plug operations, virtual function creation, and allocation decisions, shielding individual virtual machines from the underlying complexity. The intermediary coordinates resource allocation, manages state transitions, and ensures system consistency during dynamic reconfiguration events.
Solution Approach 2:
The system implements self-service capabilities where the virtualization manager autonomously monitors virtual function availability, detects when allocation is needed, and performs hot-plug operations without manual intervention. The system automatically manages the lifecycle of virtual functions including creation, assignment, and deallocation, reducing operational complexity through automation while maintaining virtual machine continuity.
Data Source
AI summary
Implementations of the disclosure provide for hot-plugging of virtual functions in a virtualized environment. In one implementation, a computer system determines that virtual functions associated with a logical network for a virtual machine hosted on a first host system are unavailable on the first host system, identifies a logical network device on a second host system that is communicably accessible from the first host system, and determines that the logical network device on the second host system has a number of available virtual functions associated with the logical network. The computer system then migrates the virtual machine from the first host computer system to the second host computer system to allow the virtual machine to access the number of available virtual functions associated with the logical network on the second host system and associates a virtual device of the virtual machine with the number of available virtual functions.


