Core-Affined Storage Network Ports for Balanced Multi-Core Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern network protocols like NVMe-TCP face challenges in achieving balanced and aligned network and protocol processing across CPU cores due to the limitations of Receive Side Scaling (RSS), leading to imbalanced utilization and reduced performance in multi-core systems.
Innovation Solution
Implementing Accelerated Receive Flow Steering (aRFS) using destination TCP port numbers to distribute network traffic across core-affined receive queues, allowing for balanced and aligned processing without requiring protocol changes, by allocating multiple destination ports and associating them with specific receive queues.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If Receive Side Scaling (RSS) is used to distribute network traffic across CPU cores, then network traffic distribution is achieved, but traffic balance and processing alignment across cores deteriorates
Solution Approach 1:
The patent changes the parameter used for traffic distribution from RSS hash-based allocation to destination port number-based allocation. By using destination port numbers as the distribution key, the system achieves both balanced traffic distribution and processing alignment across CPU cores, resolving the contradiction between traffic distribution capability and processing reliability.
2Reliability
If multiple destination ports are allocated and associated with receive queues, then traffic balance and processing alignment are improved, but device complexity increases
Solution Approach 1:
The system performs self-service by automatically assigning destination port numbers to receive queues without requiring manual configuration. The host computer autonomously selects and assigns port numbers from the allocated set, eliminating the need for complex manual rule configuration while maintaining traffic balance and processing alignment.
3Reliability
If destination port identifiers are assigned distributively to network connections, then processing alignment is improved, but host configuration complexity increases
Solution Approach 1:
The host computer performs self-service by automatically receiving and assigning destination port identifiers from the data storage system without manual intervention. The automatic assignment mechanism simplifies host configuration while ensuring proper processing alignment across CPU cores.
Data Source
AI summary
A method of establishing network connections for a host computer (host) to access data storage at a data storage system (DSS) includes, by the DSS, allocating a set of M destination port identifiers (IDs) and incorporating them into a set of rules associating the IDs with corresponding core-affined receive queues, and performing receive flow steering of received host network traffic among the receive queues based on the rules. The host assigns the IDs to the network connections in a distributive manner and includes them in connection-establishment exchanges with the DSS, such that network traffic streams of the host cores use respective network connections and are consistently directed to corresponding DSS cores. The technique can provide for desired balance and alignment of storage network traffic, even in larger systems with many multi-core hosts, using only a small number of simple rules on the DSS.


