NUMA-Aware Overlay Load Balancing with Tunnel Endpoint Groups
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Overlay workloads experience network performance degradation due to data message flows crossing non-uniform memory access (NUMA) nodes when sent through a physical network interface card not associated with the running workload, which traditional link aggregation groups cannot address.
Innovation Solution
A method for forwarding data messages by identifying a tunnel endpoint group (TEPG) associated with a specific NUMA node and selecting a particular tunnel endpoint (TEP) for message transmission, using a virtual switch to encapsulate the message with a destination TEP ID and send it to the appropriate NUMA node, ensuring messages are routed within the same node.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data message flows are sent through a physical network interface card not associated with the NUMA node on which the workload is running, then link aggregation and load balancing can be achieved, but network performance degrades due to cross-NUMA node data transfer
Solution Approach 1:
The patent applies local quality by associating each tunnel endpoint with a specific NUMA node and ensuring that data flows are routed through PNICs local to the workload's NUMA node. This creates localized network paths that avoid cross-NUMA traffic, optimizing performance for each specific workload location while maintaining overall system flexibility through the TEPG mapping structure.
Solution Approach 2:
The patent introduces tunnel endpoint groups (TEPGs) as an intermediary layer between workloads and physical network interface cards. The TEPG acts as a mediator that maps workloads to appropriate TEPs based on NUMA node affinity, enabling intelligent routing decisions that balance load across multiple PNICs while respecting NUMA boundaries to minimize latency.
2Productivity
If traditional link aggregation groups are used for load balancing, then bandwidth distribution can be achieved, but NUMA awareness is lost causing cross-node data transfer
Solution Approach 1:
The patent segments the traditional link aggregation group into multiple tunnel endpoint groups, each associated with a specific NUMA node. This segmentation allows independent management of network paths for different NUMA nodes, enabling load balancing across PNICs while maintaining NUMA awareness. Each TEPG can be independently configured and managed, reducing the complexity of NUMA-aware routing decisions.
3Adaptability or versatility
If data messages are routed across NUMA nodes, then network flexibility and port availability are improved, but access bandwidth and latency are degraded
Solution Approach 1:
The patent implements dynamic routing through TEPG mappings that can be adjusted based on workload placement and network conditions. The system dynamically selects appropriate TEPs from the available pool in a TEPG, adapting to changing conditions while maintaining NUMA locality. This dynamic approach preserves port availability and flexibility while optimizing access bandwidth by preferring local PNICs when possible.
Data Source
AI summary
Some embodiments provide a novel method for forwarding data messages between first and second host computers. To send, to a first machine executing on the first host computer, a flow from a second machine executing on the second host computer, the method identifies a destination network address of the flow. The method uses the identified destination network address to identify a particular tunnel endpoint group (TEPG) including a particular set of one or more tunnel endpoints (TEPs) associated with a particular non-uniform memory access (NUMA) node of a set of NUMA nodes of the first host computer. The particular NUMA node executes the first machine. The method selects, from the particular TEPG, a particular TEP as a destination TEP of the flow. The method sends the flow to the particular TEP of the particular NUMA node of the first host computer to send the flow to the first machine.


