Virtual Switch Decoupling from Host Kernel for Scalable Networking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network virtualization schemes, such as Open Virtual Switch (OVS), have a tightly coupled design that limits scalability and flexibility due to their integration with the Host kernel, making resource management and allocation inefficient and complex.
Innovation Solution
The virtual switching function is decoupled from the Host kernel and deployed on a virtual machine (VM), allowing peer nodes to form a common virtual machine architecture, where the virtual switch uses physical resources in user space for efficient resource allocation and management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the virtual switch is implemented in the Host kernel, then the virtual switch can access physical resources directly, but the Host kernel design becomes complicated and resource allocation becomes inefficient
Solution Approach 1:
The virtual switch function is extracted from the Host kernel and implemented as a user-space process. This separation removes the complexity burden from the kernel while maintaining the virtual switch's ability to access and manage physical network interface cards through standardized interfaces, thus resolving the contradiction between resource access capability and kernel design complexity.
Solution Approach 2:
A user-space virtual switch process acts as an intermediary between the Host kernel and virtual machines. This mediator handles network packet forwarding and resource allocation tasks that were previously performed within the kernel, allowing the kernel to remain simple while still enabling efficient resource management through the user-space component.
2Adaptability or versatility
If the virtual switch undertakes multiple tasks and functions, then the virtual switching capability is comprehensive, but the virtual switch design becomes very complicated
Solution Approach 1:
The virtual switch functionality is segmented into modular components that can be independently configured and managed. Each function (VLAN, load-balance, tunneling, security, LACP, QoS) operates as a separate module that can be enabled or disabled based on requirements, reducing overall design complexity while maintaining comprehensive switching capabilities.
Solution Approach 2:
The user-space virtual switch process is designed as a universal platform that can perform multiple network functions through standardized interfaces and configurations. This multi-functional design allows a single component to handle diverse switching tasks without requiring separate specialized modules for each function, simplifying the overall architecture.
3Productivity
If the virtual switch is tightly coupled with the Host kernel, then the virtual switch can efficiently manage resources, but the scalability and flexibility of the virtual network are poor
Solution Approach 1:
The virtual switch is implemented as a dynamic user-space process that can be started, stopped, configured, and scaled independently of the Host kernel. This dynamic implementation allows the virtual network to adapt to changing requirements, improve scalability, and maintain flexible resource allocation without being constrained by kernel-level coupling.
Solution Approach 2:
The virtual switch moves from the kernel space dimension to the user-space dimension, creating a new operational layer. This dimensional transition enables the virtual switch to access physical resources through inter-process communication and standardized APIs, maintaining resource management efficiency while dramatically improving scalability and flexibility through independent process management.
Data Source
AI summary
A virtual switching method, a related apparatus, and a computer system are provided. The method includes the Host configures virtual environment between a source node and a target node in combination with an agent module, receiving a first message sent by a source node, where the first message is used to request a first virtual machine to perform switching processing on to-be-switched data, where the to-be-switched data is sent from the source node to a target node and at least one of the source node and the target node is a second virtual machine; and determining a second message according to an address of the target node contained in the to-be-switched data and a configured port mapping table, and sending the second message, where the second message is used to instruct the target node to acquire the to-be-switched data from a storage device of a hardware layer.


