Virtual Function Device I/O Virtualization Performance Compatibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional I/O virtualization solutions face challenges in achieving high performance and low delay, with software solutions experiencing performance loss and hardware solutions encountering compatibility issues with guest operating systems.
Innovation Solution
The proposed solution involves a virtualization processing method where a hardware layer with an I/O device is used to create virtual function (VF) devices, allowing each virtual machine to independently use a VF device, with a back-end instance in the Host and a front-end instance in the virtual machine, enabling direct memory access (DMA) operations and address translation to optimize performance and compatibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software solution is used for I/O virtualization, then compatibility is improved, but performance is deteriorated with great performance loss
Solution Approach 1:
The I/O device is segmented into multiple virtual function (VF) devices, each capable of being independently assigned to different virtual machines. This segmentation allows the system to maintain hardware-level performance while achieving software-level flexibility and compatibility through the virtualization layer.
Solution Approach 2:
A back-end instance (BE) is introduced as an intermediary component that manages the interaction between virtual function devices and virtual machines. The BE handles address translation and DMA operations, enabling software-based compatibility while maintaining hardware-based performance through direct memory access.
2Productivity
If hardware solution is used for I/O virtualization, then performance is improved, but compatibility problems occur with guest operating systems
Solution Approach 1:
The virtual function device is designed with multi-functionality to serve both performance-critical paths and compatibility requirements. It can operate in hardware-assisted mode for performance and interface with software layers for compatibility, making it adaptable to different guest operating systems while maintaining high performance.
Solution Approach 2:
The back-end instance acts as a mediator that translates between the hardware-oriented VF device and the software-oriented guest operating system interfaces. This intermediary layer resolves compatibility issues by presenting appropriate interfaces to different OS while maintaining hardware performance characteristics.
3Reliability
If virtual function device is assigned to each virtual machine, then isolation and encapsulation are improved, but device complexity increases
Solution Approach 1:
The I/O device is divided into multiple virtual function devices, each providing isolated access to a specific virtual machine. This segmentation achieves strong isolation and encapsulation while the underlying hardware architecture manages the complexity through standardized virtualization interfaces.
Solution Approach 2:
Instead of physically duplicating I/O devices for each virtual machine, the system creates virtual copies (VF devices) that reference shared physical resources. This copying approach maintains isolation and encapsulation while reducing the actual hardware complexity compared to full physical duplication.
Data Source
Figure 1
Figure 2a
Figure 2b
AI summary
Embodiments of the present invention disclose a virtualization processing method and apparatuses, and a computer system. A computing node in solutions of embodiments of the present invention includes: a hardware layer, a Host running on the hardware layer, and at least one virtual machine VM running on the Host, the hardware layer includes an I/O device, several corresponding virtual function VF devices are virtualized from the I/O device, the Host has several VF software instances, each of the VF software instances is corresponding to a different VF device of the several VF devices; the Host further has a back-end instance BE of an I/O virtual device having the same type with the I/O device, the VM has a front-end instance FE of the I/O virtual device; the BE in the Host is bound with an idle VF software instance. The solutions of the embodiments of the present invention are beneficial to optimization of the performance and compatibility of a virtualization system.