CN109076029B - 用于非统一网络输入/输出访问加速的方法和装置 - Google Patents

用于非统一网络输入/输出访问加速的方法和装置 Download PDF

Info

Publication number
CN109076029B
CN109076029B CN201780022419.9A CN201780022419A CN109076029B CN 109076029 B CN109076029 B CN 109076029B CN 201780022419 A CN201780022419 A CN 201780022419A CN 109076029 B CN109076029 B CN 109076029B
Authority
CN
China
Prior art keywords
logical
network
nic
network packet
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780022419.9A
Other languages
English (en)
Other versions
CN109076029A (zh
Inventor
A.瓦苏德万
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN109076029A publication Critical patent/CN109076029A/zh
Application granted granted Critical
Publication of CN109076029B publication Critical patent/CN109076029B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于加速非统一网络输入/输出访问的技术,包括通信地耦合到多个非统一存储器访问(NUMA)节点的网络计算装置的多归属网络接口控制器(NIC),每个NUMA节点包括物理处理器封装的分配数量的处理器核和直接链接到物理处理器封装的主存储器的分配部分。多归属NIC包括通信地耦合到多个逻辑NIC的逻辑交换机,每个逻辑NIC通信地耦合到对应的NUMA节点。多归属NIC被配置成通过基于NUMA节点之一和/或耦合到该NUMA节点之一的逻辑NIC之间(例如,用于转发来自多归属NIC的网络分组)的关系确定用于在多归属NIC处接收的每个网络分组的逻辑路径来促进网络分组的进入和外出。本文描述了其他实施例。

Description

用于非统一网络输入/输出访问加速的方法和装置
相关美国申请的交叉引用
本申请要求于2016年3月31日提交的名为“TECHNOLOGIES FOR NETWORK I/OACCESS”的美国实用专利申请、序列号15/087,527的优先权。
背景技术
由个人、研究人员和企业对计算装置的增大的计算性能和存储容量的需求已导致各种计算技术已经被开发来满足那些需求。例如,诸如基于企业云的应用(例如,软件即服务(SaaS)应用)、数据挖掘应用、数据驱动建模应用、科学计算问题解决应用等的计算密集型应用通常依赖于复杂的、大规模计算环境,诸如高性能计算(HPC)环境和云计算环境,以执行计算密集型应用、以及存储大量的数据。此类大规模计算环境可以包括经由高速互连连接的数万个多处理器/多核计算装置。
为了实行此类处理器密集型计算,已经实现了各种计算技术来分配工作量,诸如并行计算、分布式计算等。为了支持计算技术,还引入了硬件中的进步。例如,已经开发了多处理器硬件架构(例如,共享存储器的多个中央处理单元(CPU))以允许多处理(例如,由多于一个处理器或CPU协调、同时处理)。在此类多处理器硬件架构中,可以部署不同的并行计算机存储器设计架构:共享存储器架构(例如,统一存储器访问(UMA)和非统一存储器访问(NUMA)和分布式存储器架构。然而,现有技术通常从CPU视角被优化(例如,以在不增大处理器总线上的负载的情况下增大处理器速度),而不是共享的高速I/O装置(例如网络I/O装置)的视角。
附图说明
本文描述的概念在附图中通过示例的方式而不是作为限制示出。为了说明的简明和清晰,附图中示出的元件不一定按比例绘制。在认为合适的情况下,参考标记在附图中已被重复以指示相应或类似的元件。
图1是用于非统一网络I/O访问加速的系统的至少一个实施例的简化框图,该系统包括一个或多个网络计算装置;
图2是图1系统的网络计算装置的至少一个实施例的简化框,其包括多归属网络接口控制器(NIC);
图3是图2的网络计算装置的多归属NIC的至少一个实施例的简化框图,其通信地耦合到非统一存储器访问(NUMA)节点,每个节点包括图2的网络计算装置的组件;
图4是通信地耦合到图3的NUMA节点的典型NIC的简化框图;
图5是可由图2的网络计算装置建立的环境的至少一个实施例的简化框图;
图6是用于在接收可由图2的网络计算装置执行的网络分组时加速非统一网络I/O访问的方法的至少一个实施例的简化流程图;以及
图7是用于加速在可由图2的网络计算装置执行的网络分组的传输上的非统一网络I/O访问的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本发明的概念易受各种修改和备选形式形象,但是其特定实施例在附图中已经通过示例示出的方式并且将在本文中详细描述。然而,应该理解的是,并不意图将本发明的概念限制于所公开的具体形式,而是相反,意图是要覆盖与本发明和所附的权利要求书一致的所有修改、等同物和备选方案。
本说明书中对“一个实施例”、“实施例”、“示例性实施例”等的引用指示所描述的实施例可以包括具体特征、结构或特性,但是每个实施例可以包括或不一定包括该具体特征、结构或特性。而且,此类短语不一定指的是同一实施例。此外,当结合实施例描述具体特征、结构或特性时,认为结合其他实施例来实现此类特征、结构或特性在本领域技术人员的知识内,无论是否明确描述。另外,应当理解,包括在以“A、B和C中的至少一个”的形式的列表中的项可以表示(A);(B);(C);( A和B);(A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂态或非暂态机器可读(例如,计算机可读)存储介质(例如,存储器、数据存储装置等)来承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。机器可读存储介质可以被实施为用于以由机器可读形式(例如,易失性或非易失性存储器、媒体盘或其他媒体装置)存储或传送信息的任何存储装置、机制或其他物理结构。
在附图中,一些结构或装置特征可以被示出在特定布置和/或顺序中。然而,应当领会,可能不需要此类特定布置和/或排序。而是,在一些实施例中,此类特征可以以不同方式布置和/或不同于示例性附图中所示的。另外,在具体图中结构或方法特征的包含不意味着暗示在所有实施例中都需要此类特征,并且在一些实施例中,此类特征可以不被包括或者可以与其他特征结合。
现在参考图1,在示例性实施例中,用于加速非统一网络I/O访问的系统100包括源端点节点102,其经由网络104的网络计算装置106通信地耦合到目的地端点节点108。虽然在示例性系统100的网络104中仅仅示出了单个网络计算装置106,应当领会的是,网络104可以包括以各种架构配置的多个网络计算装置106。在使用中,网络计算装置106在存储、转发或丢弃分组之前对在网络计算装置106处接收的网络业务(例如,网络分组、信息等)执行各种操作(例如,服务、计算等)。为了执行各种操作,网络计算装置106依赖于网络计算装置106的一个或多个物理处理器封装(参见例如图2的处理器(1)202和处理器(2)208)。
在接收用于在网络计算装置106的网络接口控制器(NIC)处进行处理的网络分组时,网络计算装置106被配置成将所接收的网络分组(例如,从NIC)传送到适当的非统一存储器访问(NUMA)节点(例如,参见图3的NUMA节点320)。如下面将进一步详细描述的,每个NUMA节点包括物理处理器封装的多个分配的处理器核,本文称为处理器(参见,例如,处理器(1)202的处理器核204和如图2和3中所示的处理器(2)208的处理器核210)。每个NUMA节点另外包括分配给相应NUMA节点的处理器核并且直接链接到处理器核所驻留的物理处理器封装的主存储器的分配部分(例如,图2的存储器216的一部分)。此类分配的存储器通常被称为相对于已为其分配存储器的NUMA节点的本地存储器(参见,例如,NUMA节点(1)322的本地存储器(1)324和NUMA节点(2)326的本地存储器(2)328,如图3中所示)。应当领会的是,相对于其他NUMA节点,一个NUMA节点的本地存储器是远程的或外来的。
然而,与现有技术不同,网络计算装置106的NIC(参见,例如,图2的多归属NIC222)被配置成管理逻辑交换机(参见,例如,图3的逻辑交换机304)和物理连接到NUMA节点320之一的两个或更多逻辑NIC(参见,例如,图3的逻辑NIC(1)306和逻辑NIC(2)310)。应当领会的是,每个逻辑NIC是物理连接到NUMA节点的NIC接口的实例。换言之,逻辑NIC是每个插槽(NUMA节点)的抽象,其将自身呈现为物理上附连的本地NIC接口。
因此,与部署多个物理NIC(其中每个物理NIC物理地连接到NUMA节点中的相应一个(参见,例如,图4的典型NIC 400实施例))的现有技术不同,来自多个逻辑NICS的NUMA优化队列可以是共享的,以及用于网络分组的进入和外出的队列选择方法可以考虑到NUMA的配置。另外,每个物理NIC使用多个逻辑NIC可以支持更少的上行链路端口配置(例如,到机架顶交换机端口的更少的数据线缆)。此外,在此类实施例中,用于使多个物理NIC显示为单个NIC的现有技术通常需要使用第2层(例如,开放源互连(OSI)模型的数据链路层)链路聚合,而多个逻辑NIC可以在第3层而不是第2层实现等效链路算法(例如,OSI模型的网络层)。
在使用中,逻辑交换机接收网络分组并确定将网络分组转发到哪个逻辑NIC。逻辑交换机被配置成基于网络分组已被映射到的NUMA节点的处理器或处理器核来确定是哪个逻辑NIC。逻辑NIC被配置成接收网络分组并插入适用的工作队列以用于到适当NUMA节点的传送。因此,通过使逻辑NIC映射到具体NUMA节点,可以使用为NUMA节点分配的(例如,为NUMA节点的处理器核分配的)本地存储器来处理网络分组。换言之,网络分组可能不要求远程存储器的使用(例如,分配给另一个NUMA节点的外部存储器),这可能增大NUMA节点之间的互连(参见,例如,图3的互连318)上的负载/争用,以及减少总带宽并增大对存储器的时延。
逻辑NIC还被配置成接收用于转发到目标计算装置的网络分组,诸如可以从NUMA节点之一接收。理想情况下,逻辑NIC是本地归属逻辑NIC(例如,是附连到已从其接收到网络分组的NUMA节点的逻辑NIC。在使用中,逻辑NIC(例如,本地归属逻辑NIC或远程归属逻辑NIC)接收该分组并确定将所接收的网络分组入队到哪个队列以用于到逻辑交换机的传送。在由逻辑交换机收到后,逻辑交换机被配置成将网络分组转发到目标计算装置(例如,目的地端点节点108或另一网络计算装置106)。
网络计算装置106可以被实施为能够执行本文描述的功能的任何类型的网络业务处理装置,诸如但不限于服务器(例如,独立的、机架安装式的、刀片式的,等)、网络设备(例如,物理或虚拟)、交换机(例如,机架安装式的、独立的、完全管理的、部分管理、全双工和/或半双工通信模式启用的等)、路由器、web设备、分布式计算系统、基于处理器的系统和/或多处理器系统。如图2所示,示例性网络计算装置106包括指定为处理器(1)202的第一处理器、指定为处理器(2)208的第二处理器、输入/输出(I/O)子系统214、存储器216、数据存储装置218和通信电路220。当然,在其他实施例中,网络计算装置106可以包括其他或附加组件,诸如通常在计算装置中找到的那些组件。另外,在一些实施例中,一个或多个示例性组件可以并入另一组件中,或者以其他方式形成另一组件的一部分。例如,在一些实施例中,存储器216或其部分可以并入处理器202、208中的一个或两者中。此外,在一些实施例中,可以从网络计算装置106省略示例性组件中的一个或多个。例如,在其他实施例中,尽管示例性网络计算装置106包括两个处理器202、208,但是网络计算装置106可以包括更大数量的处理器。
处理器202、208中的每一个可以被实施为能够执行本文描述的功能的任何类型的处理器,诸如但不限于单个物理多处理器核芯片或封装。示例性处理器(1)202包括多个处理器核204,而示例性处理器(2)208类似地包括多个处理器核210。如前所述,处理器202、208中的每一个包括多于一个处理器。因此,在一些实施例中,处理器核204、210可包括例如2个处理器、4个处理器、8个处理器、16个处理器或更多处理器。
处理器核204、210中的每一个被实施为能够执行编程的指令的独立逻辑执行单元。在一些实施例中,处理器核204、210可以包括高速缓冲存储器的一部分(例如,L1高速缓存)和可用于独立地执行程序或线程的功能单元。应当领会的是,在网络计算装置106的一些实施例(诸如超级计算机)中,网络计算装置106可以包括数千个处理器核。处理器202、208中的每一个可以连接到网络计算装置106的母板(未示出)上的物理连接器或插槽,其被配置成接受单个物理处理器封装(例如,多核物理集成电路)。应当领会的是,在本文提到时,插槽是物理插槽,而不是网络套接字(例如,因特网套接字、传输控制协议(TCP)套接字等)。
示例性处理器(1)202另外包括高速缓冲存储器206。类似地,示例性处理器(2)208还包括高速缓冲存储器212。每个高速缓冲存储器206、212可以被实施为相应处理器202、208可以比存储器216(例如,主存储器)更快地进行访问的任何类型的高速缓存,诸如管芯上高速缓存或处理器上高速缓存。在其他实施例中,高速缓冲存储器206、212可以是片外高速缓存,但是驻留在与相应处理器202、208相同的片上系统(SoC)上。应当领会的是,在一些实施例中,高速缓冲存储器206、212可以具有多级架构。换言之,在此类多级架构实施例中,高速缓冲存储器206、212可以被实施为例如L1、L2或L3高速缓存。
存储器216或主存储器可以被实施为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,存储器216可以存储在网络计算装置106的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动。示例性存储器216通信地耦合到处理器202、208。因此,应当领会的是,网络计算装置106另外包括存储器控制器(未示出),其可以集成到处理器202、208中(例如,集成存储器控制器)或包含在其他电路和/或组件上,诸如I/O子系统214。
I/O子系统214可以被实施为电路和/或组件,以促进与网络计算装置106的处理器202、208、存储器216和/或其他组件的I/O的操作。例如,I/O子系统214可以被实施为或以其他方式包括存储器控制器集线器、输入/输出控制集线器、固件装置、通信链路(例如,点对点链路、总线链路、电线、线缆、光导,印刷电路板迹线,等等)和/或其他组件和子系统以促进输入/输出操作。在一些实施例中,I/O子系统214可以形成SoC的一部分并且连同网络计算装置106的处理器202、208中的一个或两者、存储器216和/或其他组件一起合并在单个集成电路芯片上。
数据存储装置218可以被实施为被配置用于数据的短期或长期存储的任何类型的装置或多个装置,诸如例如存储器装置和电路、存储器卡、硬盘驱动器、固态驱动器、或其他数据存储装置。应当领会的是,数据存储装置218和/或存储器216(例如,计算机可读存储介质)可以存储如能够由网络计算装置106的处理器(例如,处理器202、处理器208等)执行的本文所述的各种数据,包括操作系统、应用、程序、库、驱动、指令等。
通信电路220可以被实施为能够实现网络计算装置106与其他计算装置(例如,源端点节点102、目的地端点节点108、另一网络计算装置等)之间的通过网络(例如,网络104)的通信的任何通信电路、装置或其集合。通信电路220可以被配置成使用任何一种或多种通信技术(例如,无线或有线通信技术)和相关协议(例如,以太网、蓝牙®、Wi-Fi®、WiMAX、LTE、5G等)来实现此类通信。
示例性通信电路220包括多归属NIC 222。多归属NIC 222可以被实施为一个或多个扩充卡、子卡、网络接口卡、控制器芯片、芯片集或可以由网络计算装置106使用的其他装置。例如,在一些实施例中,多归属NIC 222可以与处理器202、208中的一个或两者集成、被实施为通过扩展总线(例如,PCI高速)耦合到I/O子系统214的扩展卡、包括一个或多个处理器的SoC的一部分、或被包括在还包含一个或多个处理器的多芯片封装上。另外地或备选地,在一些实施例中,多归属NIC 222的功能性可以在板级、插槽级、芯片级和/或其他级别被集成到网络计算装置106的一个或多个组件中。
再次参考图1,源端点节点102和/或目的地端点节点108可以被实施为能够执行本文描述的功能的任何类型的计算或计算机装置,包括但不限于包括移动硬件(例如,处理器、存储器、存储装置、无线通信电路等)和软件(例如,操作系统)以支持移动架构和便携性的便携式计算装置(例如,智能手机、平板电脑、膝上型电脑、笔记本电脑、可穿戴设备等)、计算机、服务器(例如,独立式、机架安装式、刀片式等)、网络设备(例如,物理或虚拟)、web设备、分布式计算系统、基于处理器的系统和/或多处理器系统。因此,应当领会的是,源端点节点102和/或目的地端点节点108可以包括与图2的示例性网络计算装置106的组件相似和/或类似的组件,诸如处理器、I/O子系统、存储器、数据存储装置、通信电路等。照此,在理解以上关于图2的示例性网络计算装置106提供的对应组件的描述同样适用于源端点节点102和/或目的地端点节点108的对应组件的情况下,本文中不重复相似组件的进一步描述。
网络104可以被实施为任何类型的有线或无线通信网络,包括无线局域网(WLAN)、无线个域网(WPAN)、蜂窝网络(例如,全球移动通信系统(GSM)、长期演进(LTE)等)、电话网络、数字用户线(DSL)网络、有线网络、局域网(LAN)、广域网(WAN)、全球网络(例如,因特网)、或其任何组合。应当领会的是,在此类实施例中,网络104可以用作集中式网络,并且在一些实施例中,可以通信地耦合到另一个网络(例如,因特网)。因此,网络104可以包括按需要而各种其他虚拟和/或物理网络计算装置(例如,路由器、交换机、网络集线器、服务器、存储装置、计算装置等)以促进源端点节点102和目的地端点节点108之间的通信,其未示出以保证描述的清楚。
现在参考图3,在示例性实施例中,图2的多归属NIC 222通信地耦合到第一NUMA节点(被指定为NUMA节点(1)322)以及第二NUMA节点(被指定为NUMA节点(2)326),它们在本文中统称为NUMA节点320。应当领会的是,在其他实施例中,取决于可用的处理器和处理器核的数量,以及其他硬件供应商特定的启用/限制,可以存在多于两个NUMA节点。与其中单个物理NIC(参见,例如,图4的典型NIC 400)连接到单个NUMA节点的传统技术不同,多归属NIC222是经由对应逻辑NIC连接到多个NUMA节点的物理NIC。如前所述,每个逻辑NIC是物理连接到NUMA节点的NIC接口的实例。换言之,也如前所述,逻辑NIC是对于每个NUMA节点的抽象,其将自身呈现为本地NIC接口,使得NUMA节点可以物理附连到多归属NIC 222。应当领会的是,在一些实施例中,由于每个逻辑NIC在物理多归属NIC 222上被实例化,所以逻辑NIC与NUMA节点之间的通信耦合可以是跨相应NUMA节点与多归属NIC 222之间的物理连接的相应NUMA节点与对应的逻辑NIC之间的抽象虚拟连接。
示例性多归属NIC 222包括上行链路端口302、逻辑交换机304、被指定为逻辑NIC(1)306的第一逻辑NIC、以及被指定为逻辑NIC(2)310的第二逻辑NIC。应该进一步领会的是,网络计算装置106可以包括通常在NUMA节点架构中的计算装置或计算装置的NIC中找到的附加和/或替代组件、子组件和/或装置(例如,存储器控制器),其为清楚起见,未在图3中示出。上行链路端口302被配置成为了接收/转发网络分组的目的而将多归属NIC 222连接到其他网络计算装置106。逻辑交换机304通信地耦合到逻辑NICS 306、310中的每一个。示例性逻辑NIC(1)306包括一个或多个队列(1)308。类似地,示例性逻辑NIC(2)310包括一个或多个队列(2)312。队列308、312中的每一个可以包括一个或多个工作队列、网络分组处理队列、网络分组传输队列、和/或由逻辑NIC 306、310可用于接收、处理和/或转发网络业务的任何其他类型的队列。
逻辑NIC 306、310中的每一个经由逻辑NIC 306、310的主机接口的物理连接通信地耦合到NUMA节点320中的相应的一个。示例性逻辑NIC 306经由物理连接314连接到NUMA节点(1)322;而示例性逻辑NIC 310经由物理连接314连接到NUMA节点(2)326。应当领会的是,物理连接314、316中的每一个是NUMA节点和由多归属NIC 222暴露的逻辑NIC主机接口之间的物理连接。在此类配置中,耦合到NUMA节点的逻辑NIC被认为是相对于该NUMA节点的本地归属逻辑NIC。类似地,未耦合到NUMA节点的逻辑NIC被认为是相对于该NUMA节点的远程归属逻辑NIC。例如,NUMA节点(1)322的本地归属逻辑NIC是逻辑NIC(1)306,而NUMA节点(2)326的本地归属逻辑NIC是逻辑NIC(2)310。类似地,NUMA节点(1)322的远程归属逻辑NIC是逻辑NIC(2)310,而NUMA节点(2)326的远程归属逻辑NIC是逻辑NIC(1)306。
因此,如果逻辑NIC之一接收到要由远程处理器(例如,不直接耦合到逻辑NIC的NUMA节点的处理器)处理的网络分组,则网络分组被传送到直接耦合到逻辑NIC的NUMA节点并且被传送通过NUMA节点之间的互连(参见,例如,互连318)。互连318被配置成在NUMA节点320之间传送网络分组。应当领会的是,与沿本地归属控制路径处理的网络分组相比,通过互连318传送的网络业务可能引入负载/争用,增大总带宽使用,并且减少与访问远程存储器相关联的时延。
为了减少沿远程归属控制路径处理的此类网络业务,逻辑交换机304被配置成确定本地归属控制路径,这将在下面详细描述。换言之,多归属NIC 222可以对于要被处理的每个所接收的网络分组标识适用的本地归属控制路径(例如,映射的逻辑NIC和处理器)。在示例性示例中,由逻辑交换机304接收的要由NUMA节点(2)326处理的网络分组由逻辑交换机304传送到适当的逻辑NIC或本地归属逻辑NIC。在该示例性示例中,本地归属逻辑NIC是逻辑NIC(2)310。因此,交换机304可以将网络分组传送到逻辑NIC(2)310,以用于插入到逻辑NIC(2)310的队列312中的适当的一个队列中。照此,不必要的业务不通过互连318被传送,从而降低负载/争用、以及减少总带宽使用并降低与访问远程存储器相关联的时延。
现在参考图4,示出了网络计算装置106的典型NIC通信地耦合到单个NUMA节点(例如,NUMA节点(1)322)。因为使用NUMA实现的传统技术针对CPU/存储器访问优化,而不是诸如典型NIC 400之类的I/O装置,所以入站和出站网络业务必须首先通过NUMA节点(1)322传播,无论其是否是预期由NUMA节点(1)322的处理器(1)202或NUMA节点(2)326的处理器(2)208处理。照此,不必要的业务可以通过互连318被传送,从而潜在地增大负载/争用、以及潜在地增大总带宽的使用和与访问远程存储器(例如,相对于处理器(1)202的本地存储器(2)328)相关联的时延。
现在参考图5,在示例性实施例中,网络计算装置106在操作期间建立环境500。示例性环境500包括网络通信管理模块510、NUMA节点管理模块520、多归属NIC管理模块530、控制路径管理模块540和控制路径确定模块550。环境500的各种模块可以被实施为硬件、固件、软件或其组合。照此,在一些实施例中,环境500的模块中的一个或多个可以被实施为电子装置的电路或集合(例如,网络通信管理电路510、NUMA节点管理电路520、多归属NIC管理电路530、控制路径管理电路540、控制路径确定电路550等)。
应当领会的是,在此类实施例中,网络通信管理电路510、NUMA节点管理电路520、多归属NIC管理电路530、控制路径管理电路540和控制路径确定电路550中的一个或多个可以形成网络计算装置106的一个或多个处理器(例如,图2的处理器(1)202和处理器(2)208)、I/O子系统214、多归属NIC 222和/或其他硬件组件中的一个或多个的一部分。另外,在一些实施例中,示例性模块中的一个或多个可以形成另一模块的一部分和/或示例性模块中的一个或多个可以彼此独立。此外,在一些实施例中,环境500的模块中的一个或多个可以被实施为虚拟化硬件组件或模拟架构,其可以由网络计算装置106的一个或多个处理器或其他组件来建立和维护。
在示例性环境500中,网络计算装置106还包括NUMA节点映射数据502、队列映射数据504和队列数据506,其中的每一个可以存储在网络计算装置106的存储器216和/或数据存储装置218中。此外,NUMA节点映射数据502、队列映射数据504和队列数据506中的一个或多个可以由网络计算装置106的各种模块和/或子模块访问。应当领会的是,网络计算装置106可以包括通常在计算装置中找到的附加和/或备选组件、子组件、模块、子模块和/或装置,其为清楚起见,未在图5中示出。
网络通信管理模块510(其可以如上所述被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合)被配置成促进往和来于网络计算装置106的入站和出站网络通信(例如,网络业务、网络分组、网络流等)。为了促进入站和出站网络通信,网络通信管理模块510被配置成从其他计算装置(例如,源端点节点102、目的地端点节点108、经由网络104通信地耦合到网络计算装置106的另一网络计算装置等)接收网络分组并处理网络分组。另外,网络通信管理模块510被配置成准备网络分组并将其传送到另一计算装置(例如,源端点节点102、目的地端点节点108、经由网络104通信地耦合到网络计算装置106的另一网络计算装置等)。因此,在一些实施例中,网络通信管理模块510的至少一部分功能可以由通信电路220执行,并且更具体地,由多归属NIC 222执行。
NUMA节点管理模块520(其可以如上所述被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合)被配置成管理NUMA节点320(例如,NUMA节点(1)322和NUMA节点(2)326)。如前面关于图3的示例性NUMA节点320所描述的,NUMA节点320中的每一个包括直接链接到NUMA节点320中的具体一个的分配的存储器(例如,本地存储器)的一部分。另外,NUMA节点320中的每一个包括分配数量的处理器核。
应当领会的是,分派给NUMA节点320中的相应一个的每组分配的处理器核可以被称为插槽核。换言之,物理处理器封装的分配核的数量可以被称为插槽。因此,NUMA节点管理模块520被配置成管理NUMA节点320中的每一个的本地存储器和处理器核的分配部分。另外,应当领会的是,在一些实施例中,分配的处理器核的数量可以被称为插槽。例如,如前所述,物理处理器封装的处理器核(例如,处理器(1)202的处理器核204)可以被分配给多于一个的NUMA节点320。因此,在此类实施例中,为了跨多个NUMA节点320区分分配处理器核,物理处理器封装的每组分配的处理器核可以称为插槽。
照此,为了管理NUMA节点320,示例性NUMA节点管理模块520包括被配置成管理每个NUMA节点320的处理器核的分配的处理器核管理模块522以及被配置成管理每个NUMA节点320本地存储器的分配的本地存储器管理模块524。应当领会的是,NUMA节点管理模块520的每个处理器核管理模块522和本地存储器管理模块524可以分别被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合。例如,处理器核管理模块522可以被实施为硬件组件、而本地存储器管理模块524可被实施为虚拟化硬件组件或实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合的某一其他组合。
多归属NIC管理模块530(其可以如上所述被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合)被配置成管理多归属NIC 222的逻辑功能。为了使多归属NIC 222的逻辑功能成熟,多归属NIC管理模块530包括逻辑NIC管理模块532和逻辑交换机管理模块534。应当领会的是,多归属NIC管理模块530的逻辑NIC管理模块532和逻辑交换机管理模块534中的每一个可以单独地被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合。例如,逻辑NIC管理模块532可以被实施为硬件组件,而逻辑交换机管理模块534被实施为虚拟化硬件组件或实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合的某一其他组合。
逻辑NIC管理模块532被配置成管理每个逻辑NIC(例如,图3的逻辑NIC(1)和逻辑NIC(2))的实例化和预备。另外,逻辑NIC管理模块532被配置成管理对于每个逻辑NIC的资源分配,以及分配和更新(例如,入队/出队、推送/弹出等)每个逻辑NIC的队列(例如,图3的逻辑NIC(1)的队列308和逻辑NIC(2)的队列312)。如前所述,队列可以包括一个或多个工作队列、网络分组处理队列、网络分组传送队列、和/或由对应逻辑NIC可用于接收、处理和/或转发网络业务的任何其他类型的队列。在一些实施例中,与其相关的队列和/或数据(例如,头/尾指示符、队列大小指示符、队列元素信息、地址指示符等)可以存储在队列数据506中。
逻辑交换机管理模块534被配置成管理逻辑交换机(例如,图3的逻辑交换机304)的实例化和预备。另外,逻辑交换机管理模块534被配置成管理对于逻辑交换机的资源分配,以及执行与如本文所述的逻辑交换机相关联的任务。例如,如下面图7的方法700中所述的,逻辑交换机管理模块534被配置成管理来自逻辑NIC的网络分组的接收和经由上行链路端口(例如,上行链路端口302)的网络分组到目标计算装置的转发。在另一个示例中,如下面图6的方法600中所述的,逻辑交换机管理模块534被配置成管理来自上行链路端口的网络分组的接收(例如,从外部计算装置接收),确定使网络分组在哪个逻辑NIC排队,以及将网络分组入队,或者其中至少一部分入队在确定的逻辑NIC的队列中。
控制路径管理模块540(其可以如上所述被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合)被配置成管理用于每个接收/生成的网络分组的控制路径。每个控制路径可以基于以下项来确定:直接耦合到被分配用于处理(例如,执行功能/服务)的NUMA节点的逻辑NIC(例如,逻辑NIC的标识符、逻辑NIC的队列等)、要执行该处理的NUMA节点、和/或包括存储的信息的存储器(例如,存储器地址块),其可用于处理已经分配给或以其他方式直接连接(例如,本地存储器)到NUMA节点的网络分组。
如前所述,控制路径可以是本地归属控制路径或远程归属控制路径。也如前所述,优选的控制路径是本地归属控制路径,如果已经创建了控制路径,则可以由逻辑交换机(例如,图3的逻辑交换机304)确定或遵循该路径。因此,控制路径管理模块540被配置成对于要被处理的每个接收的网络分组标识适用的本地归属的控制路径。为了标识适用的本地归属控制路径,示例性控制路径管理模块540包括NUMA节点映射管理模块542和队列映射管理模块544。
应当领会的是,控制路径管理模块540的NUMA节点映射管理模块542和队列映射管理模块544中的每一个可以单独地被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合。例如,NUMA节点映射管理模块542可以被实施为硬件组件,而队列映射管理模块544被实施为虚拟化硬件组件或实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合的某一其他组合。
NUMA节点映射管理模块542被配置成管理或以其他方式维护NUMA节点映射。NUMA节点映射由网络计算装置106(例如,控制路径确定模块550)可用于来确定哪个NUMA节点或哪个包括NUMA节点、网络分组或与其相关的工作的NUMA节点要被传送到以用于进行处理。因此,在一些实施例中,NUMA节点映射可以被实施为查找表,诸如包括将NUMA节点(例如,处理器核和/或其本地存储器)与标识信息和/或网络分组的特性(例如,源互联网协议(IP)地址、目的地IP地址,源媒体访问控制(MAC)地址、目的地MAC地址、元组流标识、工作负载类型等。)相关联的键/值对的散列表。在一些实施例中,NUMA节点映射和/或与其相关的其他适用的数据可以被存储在NUMA节点映射数据502中。
队列映射管理模块544被配置成管理或以其他方式维护队列映射。队列映射由网络计算装置106(例如,控制路径确定模块550)可用于确定网络分组要被传送到逻辑NIC的哪个队列以用于接收/传送。因此,在一些实施例中,类似于NUMA节点映射,队列映射可以被实施为查找表,诸如包括将队列与网络分组的标识信息相关联的键/值对的散列表。在一些实施例中,队列映射和/或与其相关的其他适用的数据可以被存储在队列映射数据504中。
控制路径确定模块550(其可以如上所述被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合)被配置成确定用于接收的网络分组的控制路径。如前所述,网络计算装置106可以标识用于接收的网络分组的本地归属控制路径或远程归属控制路径。因此,控制路径确定模块550被配置成标识适当的控制路径。
为了标识适当的控制路径,示例性控制路径确定模块550包括被配置成确定所接收的网络分组要对于其被传送以用于进行处理的NUMA节点的NUMA节点确定模块552以及被配置成确定网络分组或其适用部分要对于其被排队的逻辑NIC的队列的队列确定模块554。应当领会的是,控制路径确定模块550的NUMA节点确定模块552和队列确定模块554中的每一个可以单独地被实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合。例如,NUMA节点确定模块552可以被实施为硬件组件,而队列确定模块554被实施为虚拟化硬件组件或实施为硬件、固件、软件、虚拟化硬件、模拟架构和/或其组合的某一其他组合。
在一些实施例中,控制路径确定模块550可以被配置成诸如通过标识网络分组的信息和/或特性(例如,工作负载类型、源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址、元组流标识等)对接收的网络分组进行分类。因此,在此类实施例中,控制路径确定模块550(例如,NUMA节点确定模块552和/或队列确定模块554)可以基于所确定的分类来确定控制路径。
应当领会的是,在一些实施例中,接收的网络分组可能不是可标识的,或者不是以其他方式可分类的。例如,其中网络分组表示在由网络计算装置106已经标识时的流的初始网络分组的实施例可导致初始网络分组不是可标识的或不是以其他方式可分类的。在此类实施例中,控制路径确定模块550可以被配置成将散列应用于网络分组标识信息的至少一部分。因此,散列的结果可以被用于将网络分组引导到逻辑NIC(例如,逻辑NIC的队列)。另外,网络计算装置106可以被配置成临时将网络分组(例如,经由控制路径管理模块540)映射到逻辑NIC和/或NUMA节点(例如,具体的处理核和/或NUMA节点的本地存储器)直到可以做出适当的本地归属的控制路径的确定。
现在参考图6,在使用中,网络计算装置106可以执行用于在网络计算装置106的多归属NIC(例如,图2的多归属NIC 222)处接收网络分组时加速非统一网络I/O访问的方法600。方法600开始于框602,其中网络计算装置106确定在多归属NIC222处是否已经从远程计算装置(诸如,源端点节点102、目标端点节点108或另一网络计算装置106)接收到网络分组(例如,入站网络分组)。如前所述,网络计算装置106被配置成在多归属NIC 222的上行链路端口302处从外部源接收网络业务。上行链路端口302还被配置成将所接收的网络分组传送到逻辑交换机304,以用于对逻辑NIC的进一步评估并传输。因此,如果网络分组已被上行链路端口接收并传送到逻辑交换机304,则方法600前进到框604,其中网络计算装置106(例如,逻辑交换机304)在网络计算装置106的逻辑交换机304处对接收的网络分组进行分类。
如前所述,可以基于网络分组的标识信息(诸如,源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址、元组流标识和类似的中的一个或多个)对接收的网络分组进行分类。另外地或备选地,在一些实施例中,可以基于网络分组的特性或预期特性(诸如,工作负载类型、预期的处理器使用、预期的存储器使用等)来对接收的网络分组进行分类。在示例性示例中,在其中网络业务是通道式的或是虚拟机(VM)网络业务的此类实施例中,逻辑交换机304可以使用IP地址、MAC地址、虚拟网络接口标识符和/或容器标识符来标识适当的NUMA节点。应当领会的是,在一些实施例中,逻辑交换机304可以协调适当的NUMA节点的标识与网络计算装置106的管理程序或操作系统调度器。
在另一个示例性示例中,在其中网络业务是非通道式的此类实施例中,逻辑交换机304可以使用队列号(例如,如嵌入在诸如RDMA的协议中的)来标识适当的NUMA节点(例如,适用的处理器核和/或本地存储器)和/或跨逻辑NIC的队列进行负载平衡的任何标识信息流。换言之,标识符可以映射到队列,其元素是分配和NUMA感知。因此,应当领会的是,适当的NUMA节点(例如,包括本地归属逻辑NIC)的标识可以被学习或明确地/隐含地将被编程到多归属NIC 222中,并且然后可以使用现有的NIC负载平衡技术在所标识的NUMA节点内选择特定的处理器核。
在框606中,网络计算装置106确定所接收的网络分组是否被映射到映射表(例如,NUMA节点映射)或查找表中的NUMA节点。如前所述,逻辑NIC被称为相对于具体NUMA节点(例如,NUMA节点320之一)的本地归属逻辑NIC。换言之,每一个逻辑NIC是对NUMA节点中的具体一个的本地归属逻辑NIC。此外,每个本地归属逻辑NIC被称为相对于所有其他NUMA节点的远程归属逻辑NIC,其不直接链接到该本地归属逻辑NIC。因此,在框606中,网络计算装置106确定所接收的网络分组是否被映射到NUMA节点以确定相对于映射的NUMA节点的本地归属逻辑NIC。在一些实施例中,为了确定所接收的网络分组是否被映射到NUMA节点,网络计算装置106可以使用在框604中执行的分类的结果基于NUMA节点映射的查找来做出确定。
如果网络计算装置106在框606中确定所接收的网络分组未被映射到NUMA节点(例如,对应于网络分组的条目不在NUMA节点映射中),则方法600分支到框608;否则,方法600分支到框616,其将在下面进行描述。在框608中,网络计算装置106(例如,多归属NIC 222的逻辑交换机304)将网络分组传送到多归属NIC 222的任何逻辑NIC。为此,在一些实施例中,网络计算装置106可以将散列函数应用于网络分组的至少一部分(例如,标识从网络分组的报头和/或网络分组的有效载荷可检索的信息)并使用所应用的散列的结果来确定将网络分组传送到哪个逻辑NIC。另外地或备选地,在一些实施例中,网络计算装置可以确定网络分组的特性或预期特性(例如,工作负载类型、预期处理器使用、预期存储器使用、服务类型等)和使用确定的网络分组特性来确定将网络分组传送到哪个逻辑NIC。
从框608,方法600继续到框612,其中网络计算装置106确定网络分组是否被映射到在框608中网络分组被传送到的逻辑NIC的队列。如果不是,则方法600分支到框614,其中网络计算装置106将网络分组的至少一部分入队到在框608中网络分组被传送到的逻辑NIC的可用队列。为此,在一些实施例中,在框616中,网络计算装置106可以基于所应用的散列的结果来确定网络分组的至少一部分被入队到其中的逻辑NIC的队列。否则,如果网络计算装置106确定网络分组被映射到逻辑NIC的队列,则方法600分支到框618,其中网络计算装置106将网络分组的至少一部分入队到逻辑NIC的映射的队列中。
再次参考框606,如前所述,如果网络计算装置106确定所接收的网络分组被映射到NUMA节点(例如,具体处理器核/本地存储器),则方法600分支到框620。在框620中,网络计算装置106(例如,多归属NIC 222的逻辑交换机304)基于NUMA节点映射将网络分组传送到本地归属逻辑NIC。如前所述,NUMA节点映射由网络计算装置106可用于确定该网络分组要被传送到哪个NUMA节点(其包括适用的处理器核和/或本地存储器)并由此被处理。也如前所述,NUMA节点映射可以被实施为查找表,诸如包括将NUMA节点与网络分组的标识信息和/或特征(诸如,源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址、元组流标识、工作负载类型等)相关联的键/值对的散列表。
在框622中,网络计算装置106确定网络分组是否被映射到本地归属逻辑NIC的队列。如果没有,则方法600分支到框624,其中网络计算装置106将网络分组的至少一部分入队到本地归属逻辑NIC的队列中。为此,在一些实施例中,在框626中,网络计算装置106可以基于所应用的散列的结果来确定网络分组的至少一部分被入队到其中的本地归属逻辑NIC的队列。否则,如果网络计算装置106确定网络分组被映射到本地归属逻辑NIC的队列,则方法600分支到框618,其中网络计算装置106基于队列映射将网络分组的至少一部分入队到本地归属逻辑NIC的映射的队列中。
现在参考图7,在使用中,网络计算装置106可以执行用于加速非统一网络I/O访问以用于来自网络计算装置106的多归属NIC(例如,多归属NIC 222)的网络分组的传送的方法700。方法700开始与框702,其中网络计算装置106确定网络分组(例如,出站网络分组)是否已由多个网络分组(例如,从NUMA节点)接收或生成。如果网络计算装置106确定多归属NIC 222已经从NUMA节点接收到网络分组,则方法700前进到框704,其中多归属NIC 222确定网络对应哪个逻辑NIC。
在框706中,多归属NIC 222确定在框704中确定的逻辑NIC是否对应于本地归属逻辑NIC(与远程归属逻辑NIC相对)。换言之,直接链接到在框702中从其接收到网络分组的NUMA节点的逻辑NIC(例如,包括对应的分配的处理器核的物理处理封装)例如当队列还没被映射时可能不是打算对网络分组进行排队的逻辑NIC。因此,在此类实施例中,已经接收到网络分组的逻辑NIC可以是具有本地归属队列的远程归属逻辑NIC。照此,如果多归属NIC222确定在框704中确定的逻辑NIC不对应于本地归属逻辑NIC,则方法700分支到框708,其中多归属NIC 222标识在远程归属逻辑NIC上的本地归属队列。随后,在框714中,多归属NIC222将所接收的网络分组入队到框708中标识的队列中。
然而,如果多归属NIC 222确定在框704中确定的逻辑NIC对应于本地归属逻辑NIC,则方法700分支到框710,其中多归属NIC 222标识本地归属逻辑NIC上的本地归属队列。为此,在一些实施例中,在框712中,多归属NIC 222可以基于在队列映射上执行的查找的结果来标识本地归属队列。如前所述,队列映射由网络计算装置106可用于确定要将网络分组传送到逻辑NIC的哪个队列以用于转发。也如前所述,队列映射可以被实施为查找表,诸如包括将队列与网络分组的标识信息和/或特性(例如,源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址、元组流标识、工作负载类型等)相关联的键/值对的散列表。随后,在框714中,多归属NIC 222将所接收的网络分组入队到框710中标识的队列中。
在框716中,多归属NIC 222(例如,逻辑交换机304)确定逻辑交换机304是否已经接收到网络分组(例如,从适当的队列出队并传送到逻辑交换机304)。如果是,则方法700前进到框718,其中多归属NIC 222确定网络分组的逻辑路径是否已被映射。换言之,多归属NIC 222确定本地归属逻辑NIC、本地归属队列和/或优选的NUMA节点(例如,优选的处理器核/本地存储器)是否已被映射到适当的映射(例如,队列映射和/或NUMA节点映射)。如果是,则方法700前进到框722,其中多归属NIC 222在返回到框702以确定是否已经接收到用于传送另一个网络分组之前将网络分组转发到目标计算装置(例如,源端点节点102、目的地端点节点108、另一网络计算装置106等)。否则,如果多归属NIC 222确定网络分组的逻辑路径未被映射,则方法700分支到框720,其中在前进到框722之前,多归属NIC 222将NUMA节点/队列参考(例如,网络分组的标识符和NUMA节点和/或逻辑NIC队列的标识符)添加到相应的映射。
应当领会的是,方法600和700中的一个或两者的至少一部分可以被网络计算装置106的多归属NIC 222执行。应当进一步领会的是,在一些实施例中,方法600和方法700中的一个或两者可以被实施为存储在计算机可读介质上的各种指令,其可以由处理器(例如,处理器202、处理器208等)、多归属NIC 222和/或网络计算装置106的其他组件执行以使网络计算装置106执行方法600和700。计算机可读介质可以被实施为能够被网络计算装置106读取的任何类型的介质,包括但不限于存储器216、数据存储装置218、多归属NIC 222的安全存储器(未示出)、网络计算装置106的其他存储器或数据存储装置、由网络计算装置106的外围装置可读的便携式介质、和/或其他介质。
示例
以下提供本文公开的技术的示例性示例。这些技术的实施例可以包括下面描述的示例中的任何一个或多个、以及任何组合。
示例1包括一种用于非统一网络输入/输出访问加速的网络计算装置,该网络计算装置包括多个非统一存储器访问(NUMA)节点,其中每个NUMA节点包括本地存储器和对应的物理处理器封装的分配数量的处理器核,其中本地存储器定义被分配到并且直接链接到NUMA节点中的相应一个的主存储器的一部分;以及多归属网络接口控制器(NIC),以促进网络分组的进入和外出,其中多归属NIC包括通信地耦合到多个逻辑NIC的逻辑交换机,其中所述多个逻辑NIC中的每一个包括用于存储由多归属NIC接收的网络分组的至少一部分的一个或多个队列,并且其中所述多个逻辑NIC中的每一个被直接链接到NUMA节点中的相应一个。
示例2包括示例1的主题,并且其中促进网络分组的进入和外出包括(i)在逻辑交换机处从远程计算装置接收网络分组,(ii)确定NUMA节点中的一个以将网络分组传输到的该NUMA节点以用于网络分组的处理,(iii)将网络分组的至少一部分入队到多个逻辑NIC中的直接链接到NUMA节点中的所确定的那个NUMA节点的逻辑NIC的队列中,以及(iv)将所述网络分组的至少一部分从逻辑NIC的队列传送到NUMA节点中的所确定的那个NUMA节点。
示例3包括示例1和2中的任一项的主题,并且其中促进通过多归属NIC的网络分组的进入和外出包括(i)接收出站网络分组,以用于从多个NUMA节点之一到目标计算装置的传输,(ii)确定多个逻辑NIC的出站网络分组对应于的逻辑NIC,(iii)将出站网络分组入队到多个逻辑NIC之一的队列中,以及(iv)基于目标计算装置的标识符将出站网络分组转发到目标计算装置。
示例4包括示例1-3中的任一项的主题,并且其中将所接收的网络分组入队到多个逻辑NIC之一的队列中包括(i)确定所确定的逻辑NIC是否对应于多个逻辑NIC的本地归属逻辑NIC,其中本地归属逻辑NIC包括多个逻辑NIC中的一个逻辑NIC,该逻辑NIC直接连接到多个NUMA节点中的网络分组已经被接收所在的那个NUMA节点,(ii)响应于确定所确定的逻辑NIC对应于本地归属逻辑NIC,标识本地归属逻辑NIC的本地归属队列,以及(iii)将所接收的网络分组入队到本地归属逻辑NIC的本地归属队列中。
示例5包括示例1-4中的任一项的主题,并且其中标识本地归属逻辑NIC的本地归属队列包括基于队列映射标识本地归属逻辑NIC的本地归属队列,其中队列映射标识网络分组与本地归属逻辑NIC的本地归属队列之间的关系。
示例6包括示例1-5中的任一项的主题,并且其中将所接收的网络分组入队到多个逻辑NIC之一的队列中还包括(i)响应于所确定的逻辑NIC不对应于本地归属逻辑NIC的确定,标识多个逻辑NIC的远程归属逻辑NIC的本地归属队列,其中远程归属逻辑NIC包括多个逻辑NIC中的一个逻辑NIC,该逻辑NIC没有直接连接到多个NUMA节点中的网络分组已经被接收所在的那个NUMA节点,以及(iii)将所接收的网络分组入队到远程归属NIC的本地归属队列中。
示例7包括示例1-6中的任一项的主题,并且其中确定NUMA节点中的所述一个NUMA节点包括(i)基于网络分组的标识符或网络分组的特性中的至少一个来对网络分组进行分类,以及(ii)基于网络分组的分类确定NUMA节点中的所述一个NUMA节点。
示例8包括示例1-7中的任一项的主题,并且其中基于分类确定NUMA节点中的所述一个NUMA节点包括将分类的结果与NUMA节点映射进行比较,其中NUMA节点映射标识网络分组和NUMA节点中的所述一个NUMA节点之间的关系。
示例9包括示例1-8中的任一项的主题,并且其中网络分组的标识符包括源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址或元组流标识中的至少一个。
示例10包括示例1-9中的任一项的主题,并且其中网络分组的特性包括工作负载类型、预期处理器使用或预期存储器使用中的至少一个。
示例11包括示例1-10中的任一项的主题,并且其中确定NUMA节点中的所述一个NUMA节点包括(i)将散列应用于网络分组的至少一部分,以及(ii)基于应用散列的结果确定NUMA节点中的所述一个NUMA节点。
示例12包括用于非统一网络输入/输出访问加速的网络计算装置,该网络计算装置包括多归属网络接口控制器(NIC)管理模块,用于在网络计算装置的多归属NIC的逻辑交换机处从远程计算装置接收网络分组;和控制路径确定模块,用于(i)确定网络计算装置的多个非统一存储器访问(NUMA)节点中的NUMA节点,其中NUMA节点中的所述一个NUMA节点包括分配到NUMA节点的物理处理器封装的可用于处理接收的网络分组的多个处理器核,以及(ii)基于多个逻辑NIC中的哪个逻辑NIC直接耦合到NUMA节点中所确定的一个NUMA节点来从所述多个逻辑NIC中确定逻辑NIC,其中所述多个逻辑NIC中的每一个耦合到逻辑交换机。
示例13包括示例12的主题,并且其中NIC管理模块还用于(i)将网络分组传送到逻辑NIC,(ii)将网络分组的至少一部分入队到直接链接到NUMA节点中所确定的一个NUMA节点的逻辑NIC的一个或多个队列中的队列,以及(iii)将所述网络分组的至少一部分从逻辑NIC的队列传送到NUMA节点中所确定的一个NUMA节点。
示例14包括示例12和13中的任一项的主题,并且其中多归属NIC管理模块还用于(i)接收出站网络分组以用于从所述多个NUMA节点之一到目标计算装置的传输,(ii)确定多个逻辑NIC中的出站网络分组对应的逻辑NIC,(iii)将出站网络分组入队到所述多个逻辑NIC之一的队列中,以及(iv)基于目标计算装置的标识符将出站网络分组转发到目标计算装置。
示例15包括示例12-14中的任一项的主题,并且其中将所接收的网络分组入队到所述多个逻辑NIC之一的队列中包括(i)确定所确定的逻辑NIC是否对应于所述多个逻辑NIC的本地归属逻辑NIC,其中本地归属逻辑NIC包括多个逻辑NIC中的直接连接到所述多个NUMA节点中的网络分组已经被接收所在的那个NUMA节点的一个逻辑NIC,(ii)响应于所确定的逻辑NIC对应于本地归属逻辑NIC的确定,标识本地归属逻辑NIC的本地归属队列,以及(iii)将所接收的网络分组入队到本地归属逻辑NIC的本地归属队列中。
示例16包括示例12-15中的任一项的主题,并且其中标识本地归属逻辑NIC的本地归属队列包括基于队列映射标识本地归属逻辑NIC的本地归属队列,其中队列映射标识网络分组与本地归属逻辑NIC的本地归属队列之间的关系。
示例17包括示例12-16中的任一项的主题,并且其中将所接收的网络分组入队到所述多个逻辑NIC之一的队列中还包括(i)响应于所确定的逻辑NIC不对应于本地归属逻辑NIC的确定,标识所述多个逻辑NIC的远程归属逻辑NIC的本地归属队列,其中远程归属逻辑NIC包括所述多个逻辑NIC中的没有直接连接到所述多个NUMA节点中的网络分组已经被接收所在的那个NUMA节点的一个逻辑NIC,以及(iii)将所接收的网络分组入队到远程归属NIC的本地归属队列中。
示例18包括示例12-17中的任一项的主题,并且其中确定NUMA节点中的所述一个NUMA节点包括(i)基于网络分组的标识符或网络分组的特性中的至少一个来对网络分组进行分类以及(ii)基于网络分组的分类确定NUMA节点中的所述一个NUMA节点。
示例19包括示例12-18中任一项的主题,并且其中基于分类确定NUMA节点中的所述一个NUMA节点包括将分类的结果与NUMA节点映射进行比较,其中NUMA节点映射标识网络分组和NUMA节点中的所述一个NUMA节点之间的关系。
示例20包括示例12-19中的任一项的主题,并且其中网络分组的标识符包括源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址或元组流标识中的至少一个。
示例21包括示例12-20中的任一项的主题,并且其中网络分组的特性包括工作负载类型、预期处理器使用或预期存储器使用中的至少一个。
示例22包括示例12-21中的任一项的主题,并且其中确定NUMA节点中的所述一个NUMA节点包括(i)将散列应用于网络分组的至少一部分,以及(ii)基于应用散列的结果确定NUMA节点中的所述一个NUMA节点。
示例23包括用于加速非统一网络输入/输出访问的方法,该方法包括由网络计算装置的多归属网络接口控制器(NIC)的逻辑交换机从远程计算装置接收网络分组;由逻辑交换机确定网络计算装置的多个非统一存储器访问(NUMA)节点中的一个NUMA节点,其中NUMA节点中的所述一个NUMA节点包括分配到NUMA节点的物理处理器封装的可用于处理接收的网络分组的多个处理器核;基于所述多个逻辑NIC中的哪个逻辑NIC直接耦合到NUMA节点中所确定的一个NUMA节点,由逻辑交换机从耦合到逻辑交换机的多个逻辑NIC来确定逻辑NIC;由逻辑交换机将网络分组传送到逻辑NIC;以及由逻辑NIC,将网络分组的至少一部分入队到直接链接到NUMA节点中所确定的一个NUMA节点的逻辑NIC的一个或多个队列中的队列;以及由逻辑NIC,将网络分组的至少一部分从逻辑NIC的队列传送到NUMA节点中所确定的一个NUMA节点。
示例24包括示例23的主题,并且其中确定NUMA节点中的所述一个NUMA节点包括(i)基于网络分组的标识符或网络分组的特性中的至少一个来对网络分组进行分类,以及(ii)基于网络分组的分类确定NUMA节点中的所述一个NUMA节点。
示例25包括示例23和24中的任一项的主题,并且其中基于分类确定NUMA节点中的所述一个NUMA节点包括将分类的结果与NUMA节点映射进行比较,其中NUMA节点映射标识网络分组和NUMA节点中的所述一个NUMA节点之间的关系。
示例26包括示例23-25中的任一项的主题,并且其中基于网络分组的标识符对网络分组进行分类包括基于源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址或元组流标识中至少一个对网络分组进行分类。
示例27包括示例23-26中的任一项的主题,并且其中基于网络分组的特性对网络分组进行分类包括基于工作负载类型、预期处理器使用或者预期存储器使用中的至少一个来对网络分组进行分类。
示例28包括示例23-27中的任一项的主题,并且其中确定NUMA节点中的所述一个NUMA节点包括(i)将散列应用于网络分组的至少一部分,以及(ii)基于应用的散列的结果确定NUMA节点中的所述一个NUMA节点。
示例29包括示例23-28中的任一项的主题,并且还包括接收出站网络分组以用于从多个NUMA节点之一到目标计算装置的传输;确定所述多个逻辑NIC中出站网络分组对应于的逻辑NIC;将出站网络分组入队到所述多个逻辑NIC之一的队列中;以及基于目标计算装置的标识符将出站网络分组转发到目标计算装置。
示例30包括示例23-29中的任一项的主题,并且其中将所接收的网络分组入队到所述多个逻辑NIC之一的队列中包括确定所确定的逻辑NIC是否对应于所述多个逻辑NIC的本地归属逻辑NIC,其中本地归属逻辑NIC包括所述多个逻辑NIC中直接连接到所述多个NUMA节点中网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC;响应于所确定的逻辑NIC对应于本地归属逻辑NIC的确定,标识本地归属逻辑NIC的本地归属队列;以及将所接收的网络分组入队到本地归属逻辑NIC的本地归属队列中。
示例31包括示例23-30中的任一项的主题,并且其中标识本地归属逻辑NIC的本地归属队列包括基于队列映射标识本地归属逻辑NIC的本地归属队列,其中队列映射标识网络分组与本地归属逻辑NIC的本地归属队列之间的关系。
示例32包括示例23-31中的任一项的主题,并且其中将所接收的网络分组入队到所述多个逻辑NIC之一的队列中还包括响应于所确定的逻辑NIC不对应于本地归属逻辑NIC的确定,标识所述多个逻辑NIC的远程归属逻辑NIC的本地归属队列,其中远程归属逻辑NIC包括所述多个逻辑NIC中没有直接连接到所述多个NUMA节点中网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC;以及将所接收的网络分组入队到远程归属NIC的本地归属队列中。
示例33包括一种网络计算装置,包括处理器;以及存储器,其中存储有多个指令,所述指令当由处理器执行时使网络计算装置执行权利要求23-32中的任一项的方法。
示例34包括一种或多种机器可读存储介质,其包括存储在其上的多个指令,所述指令响应于被执行导致执行权利要求23-32中的任一项的方法的网络计算装置。
示例35包括一种用于非统一网络输入/输出访问加速的网络计算装置,该网络计算装置包括用于由网络计算装置的多归属网络接口控制器(NIC)的逻辑交换机从远程计算装置接收网络分组的部件;用于由逻辑交换机确定网络计算装置的多个非统一存储器访问(NUMA)节点中的一个NUMA节点的部件,其中NUMA节点中的每个NUMA节点包括分配到NUMA节点的物理处理器封装的可用于处理接收的网络分组的多个处理器核;用于基于所述多个逻辑NIC中的哪个逻辑NIC直接耦合到NUMA节点中所确定的一个NUMA节点,由逻辑交换机从耦合到逻辑交换机的多个逻辑NIC来确定逻辑NIC的部件;用于由逻辑交换机将网络分组传送到逻辑NIC的部件;以及用于由逻辑NIC将网络分组的至少一部分入队到直接链接到NUMA节点中所确定的一个NUMA节点的逻辑NIC的一个或多个队列中的队列的部件;以及用于由逻辑NIC将网络分组的至少一部分从逻辑NIC的队列传送到NUMA节点中所确定的一个NUMA节点的部件。
示例36包括示例35的主题,并且其中用于确定NUMA节点中的所述一个NUMA节点的部件包括用于以下操作的部件:(i)基于网络分组的标识符或网络分组的特性中的至少一个来对网络分组进行分类,以及(ii)基于网络分组的分类确定NUMA节点中的所述一个NUMA节点。
示例37包括示例35和36中的任一项的主题,并且其中用于基于分类确定NUMA节点中的所述一个NUMA节点的部件包括用于将分类的结果与NUMA节点映射进行比较的部件,其中NUMA节点映射标识网络分组和NUMA节点中的所述一个NUMA节点之间的关系。
示例38包括示例35-37中的任一项的主题,并且其中用于基于网络分组的标识符对网络分组进行分类的部件包括用于基于源互联网协议(IP)地址、目的地IP地址、源媒体访问控制(MAC)地址、目的地MAC地址或元组流标识中至少一个对网络分组进行分类的部件。
示例39包括示例35-38中的任一项的主题,并且其中用于基于网络分组的特性对网络分组进行分类的部件包括用于基于工作负载类型、预期处理器使用或者预期存储器使用中的至少一个来对网络分组进行分类的部件。
示例40包括示例35-39中任一项的主题,并且其中用于确定NUMA节点中的所述一个NUMA节点的部件包括用于以下操作的部件:(i)将散列应用于网络分组的至少一部分,以及(ii)基于应用的散列的结果确定NUMA节点中的所述一个NUMA节点。
示例41包括示例35-40中任一项的主题,并且还包括用于接收出站网络分组以用于从多个NUMA节点之一到目标计算装置的传输的部件;用于确定所述多个逻辑NIC中出站网络分组对应于的逻辑NIC的部件;用于将出站网络分组入队到所述多个逻辑NIC之一的队列中的部件;以及用于基于目标计算装置的标识符将出站网络分组转发到目标计算装置的部件。
示例42包括示例35-41中任一项的主题,并且其中用于将所接收的网络分组入队到所述多个逻辑NIC之一的队列中的部件包括用于确定所确定的逻辑NIC是否对应于所述多个逻辑NIC的本地归属逻辑NIC的部件,其中本地归属逻辑NIC包括所述多个逻辑NIC中直接连接到所述多个NUMA节点中网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC;用于响应于所确定的逻辑NIC对应于本地归属逻辑NIC的确定来标识本地归属逻辑NIC的本地归属队列的部件;以及用于将所接收的网络分组入队到本地归属逻辑NIC的本地归属队列中的部件。
示例43包括示例35-42中任一项的主题,并且其中用于标识本地归属逻辑NIC的本地归属队列的部件包括用于基于队列映射标识本地归属逻辑NIC的本地归属队列的部件,其中队列映射标识网络分组与本地归属逻辑NIC的本地归属队列之间的关系。
示例44包括示例35-43中任一项的主题,并且其中用于将所接收的网络分组入队到所述多个逻辑NIC之一的队列中的部件还包括用于响应于所确定的逻辑NIC不对应于本地归属逻辑NIC的确定来标识所述多个逻辑NIC的远程归属逻辑NIC的本地归属队列的部件,其中远程归属逻辑NIC包括所述多个逻辑NIC中没有直接连接到所述多个NUMA节点中网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC;以及用于将所接收的网络分组入队到远程归属NIC的本地归属队列中的部件。

Claims (26)

1.一种用于非统一网络输入/输出访问加速的网络计算装置,所述网络计算装置包括:
多个非统一存储器访问NUMA节点,其中每个所述NUMA节点包括本地存储器和所述网络计算装置的物理处理器封装的分配数量的处理器核,并且其中所述本地存储器定义分配到对应NUMA节点的所述网络计算装置的主存储器的一部分;以及
多归属网络接口控制器NIC,用于促进经由所述多归属NIC的逻辑交换机的网络分组的进入和外出,其中所述逻辑交换机通信地耦合到多个逻辑NIC中的每一个,其中所述多个逻辑NIC中的每一个包括用于存储由所述多归属NIC接收的所述网络分组的至少一部分的一个或多个队列,并且其中所述多个逻辑NIC中的每一个被直接链接到所述NUMA节点中的相应一个。
2.如权利要求1所述的网络计算装置,其中促进所述网络分组的进入和外出包括(i)在所述逻辑交换机处从远程计算装置接收网络分组,(ii)确定将所述网络分组传输到所述NUMA节点中的哪个NUMA节点以用于所述网络分组的处理,(iii)将所述网络分组的至少一部分入队到所述多个逻辑NIC中直接链接到所述NUMA节点中所确定的一个NUMA节点的逻辑NIC的队列中,以及(iv)将所述网络分组的所述至少一部分从该逻辑NIC的所述队列传送到所述NUMA节点中所确定的一个NUMA节点。
3.如权利要求1所述的网络计算装置,其中促进通过所述多归属NIC的所述网络分组的所述进入和外出包括(i)接收出站网络分组以用于从所述多个NUMA节点之一到目标计算装置的传输,(ii)确定所述多个逻辑NIC中所述出站网络分组对应于的逻辑NIC,(iii)将所述出站网络分组入队到所述多个逻辑NIC之一的队列中,以及(iv)基于所述目标计算装置的标识符将所述出站网络分组转发到所述目标计算装置。
4.如权利要求3所述的网络计算装置,其中将所接收的网络分组入队到所述多个逻辑NIC之一的所述队列中包括(i)确定所确定的逻辑NIC是否对应于所述多个逻辑NIC的本地归属逻辑NIC,其中所述本地归属逻辑NIC包括所述多个逻辑NIC中直接连接到所述多个NUMA节点中所述网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC,(ii)响应于确定所确定的逻辑NIC对应于所述本地归属逻辑NIC,标识所述本地归属逻辑NIC的本地归属队列,以及(iii)将所接收的网络分组入队到所述本地归属逻辑NIC的所述本地归属队列中。
5.如权利要求4所述的网络计算装置,其中标识所述本地归属逻辑NIC的所述本地归属队列包括基于队列映射标识所述本地归属逻辑NIC的所述本地归属队列,其中所述队列映射标识所述网络分组与所述本地归属逻辑NIC的所述本地归属队列之间的关系。
6.如权利要求4所述的网络计算装置,其中将所接收的网络分组入队到所述多个逻辑NIC之一的所述队列中还包括(i)响应于确定所确定的逻辑NIC不对应于所述本地归属逻辑NIC,标识所述多个逻辑NIC的远程归属逻辑NIC的本地归属队列,其中所述远程归属逻辑NIC包括所述多个逻辑NIC中没有直接连接到所述多个NUMA节点中所述网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC,以及(iii)将所接收的网络分组入队到远程归属NIC的所述本地归属队列中。
7.如权利要求1所述的网络计算装置,其中确定所述NUMA节点中的所述一个NUMA节点包括(i)基于所述网络分组的标识符或所述网络分组的特性中的至少一个来对所述网络分组进行分类,以及(ii)基于所述网络分组的所述分类确定所述NUMA节点中的所述一个NUMA节点。
8.如权利要求7所述的网络计算装置,其中基于所述分类确定所述NUMA节点中的所述一个NUMA节点包括将所述分类的结果与NUMA节点映射进行比较,其中所述NUMA节点映射标识所述网络分组和所述NUMA节点中的所述一个NUMA节点之间的关系。
9.如权利要求7所述的网络计算装置,其中所述网络分组的所述标识符包括源互联网协议IP地址、目的地IP地址、源媒体访问控制MAC地址、目的地MAC地址或元组流标识中的至少一个。
10.如权利要求7所述的网络计算装置,其中所述网络分组的特性包括工作负载类型、预期处理器使用或预期存储器使用中的至少一个。
11.如权利要求1所述的网络计算装置,其中确定所述NUMA节点中的所述一个NUMA节点包括(i)将散列应用于所述网络分组的至少一部分,以及(ii)基于应用的散列的结果确定所述NUMA节点中的所述一个NUMA节点。
12.一种用于非统一网络输入/输出访问加速的网络计算装置,所述网络计算装置包括:
用于在所述网络计算装置的多归属网络接口控制器NIC的逻辑交换机处从远程计算装置接收网络分组的部件,其中所述逻辑交换机通信地被耦合到所述多归属NIC的多个逻辑NIC,并且其中所述多个逻辑NIC中的每个逻辑NIC包括用于存储所接收的网络分组的至少一部分的一个或多个队列;
用于确定所述网络计算装置的多个非统一存储器访问NUMA节点之一以处理所接收的网络分组的部件,其中每个NUMA节点包括所述网络计算装置的物理处理器封装的分配数量的处理器核和所述网络计算装置的本地存储器,其中所述本地存储器定义所述网络计算装置的主存储器的分配的部分;
用于基于所述多个逻辑NIC中的哪个逻辑NIC直接耦合到所述NUMA节点中的所确定的一个NUMA节点来从所述多个逻辑NIC中确定逻辑NIC;
用于由所述逻辑交换机将所述网络分组传送到所述逻辑NIC的部件;
用于由所述逻辑NIC将所述网络分组的至少一部分入队到直接链接到所述NUMA节点中的所确定的一个NUMA节点的所述逻辑NIC的一个或多个队列中的队列中的部件;以及
用于由所述逻辑NIC将所述网络分组的所述至少一部分从所述逻辑NIC的所述队列传送到所述NUMA节点中的所述一个NUMA节点的部件。
13.如权利要求12所述的网络计算装置,其中用于确定所述NUMA节点中的所述一个NUMA节点的部件包括用于以下操作的部件:(i)基于所述网络分组的标识符或所述网络分组的特性中的至少一个来对所述网络分组进行分类,以及(ii)基于所述网络分组的所述分类确定所述NUMA节点中的所述一个NUMA节点。
14.如权利要求12所述的网络计算装置,还包括:
用于接收出站网络分组以用于从所述多个NUMA节点之一到目标计算装置的传输的部件;
用于确定所述多个逻辑NIC中所述出站网络分组对应于的逻辑NIC的部件;
用于将所述出站网络分组入队到所述多个逻辑NIC之一的队列中的部件;以及
用于基于所述目标计算装置的标识符将所述出站网络分组转发到所述目标计算装置的部件。
15.如权利要求14所述的网络计算装置,其中用于将所接收的网络分组入队到所述多个逻辑NIC之一的所述队列的部件包括:
用于确定所确定的逻辑NIC是否对应于所述多个逻辑NIC的本地归属逻辑NIC的部件,其中所述本地归属逻辑NIC包括所述多个逻辑NIC中直接连接到所述多个NUMA节点中所述网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC;
用于响应于确定所确定的逻辑NIC对应于所述本地归属逻辑NIC来标识所述本地归属逻辑NIC的本地归属队列的部件;以及
用于将所接收的网络分组入队到所述本地归属逻辑NIC的所述本地归属队列中的部件。
16.如权利要求15所述的网络计算装置,其中用于标识所述本地归属逻辑NIC的所述本地归属队列的部件包括用于基于队列映射标识所述本地归属逻辑NIC的所述本地归属队列的部件,其中所述队列映射标识所述网络分组与所述本地归属逻辑NIC的所述本地归属队列之间的关系。
17.如权利要求15所述的网络计算装置,其中用于将所接收的网络分组入队到所述多个逻辑NIC之一的所述队列中的部件还包括
用于响应于确定所确定的逻辑NIC不对应于所述本地归属逻辑NIC来标识所述多个逻辑NIC的远程归属逻辑NIC的本地归属队列的部件,其中所述远程归属逻辑NIC包括所述多个逻辑NIC中没有直接连接到所述多个NUMA节点中所述网络分组已经被接收所在的所述一个NUMA节点的一个逻辑NIC;以及
用于将所接收的网络分组入队到远程归属NIC的所述本地归属队列中的部件。
18.如权利要求12所述的网络计算装置,其中用于确定所述NUMA节点中的所述一个NUMA节点的部件包括用于以下操作的部件:(i)基于所述网络分组的标识符或所述网络分组的特性中的至少一个来对所述网络分组进行分类,以及(ii)基于所述网络分组的所述分类确定所述NUMA节点中的所述一个NUMA节点。
19.如权利要求18所述的网络计算装置,其中用于基于所述分类确定所述NUMA节点中的所述一个NUMA节点的部件包括用于将所述分类的结果与NUMA节点映射进行比较的部件,其中所述NUMA节点映射标识所述网络分组和所述NUMA节点中的所述一个NUMA节点之间的关系。
20.如权利要求18所述的网络计算装置,其中用于基于所述网络分组的所述标识符对所述网络分组进行分类的部件包括用于基于源互联网协议IP地址、目的地IP地址、源媒体访问控制MAC地址、目的地MAC地址或元组流标识中的至少一个对所述网络分组进行分类的部件。
21.如权利要求18所述的网络计算装置,其中用于基于所述网络分组的所述特性对所述网络分组进行分类的部件包括用于基于工作负载类型、预期处理器使用或预期存储器使用中的至少一个对所述网络分组进行分类的部件。
22.如权利要求12所述的网络计算装置,其中用于确定所述NUMA节点中的所述一个NUMA节点的部件包括用于以下操作的部件:(i)将散列应用于所述网络分组的至少一部分,以及(ii)基于应用的散列的结果确定所述NUMA节点中的所述一个NUMA节点。
23.一种用于加速非统一网络输入/输出访问的方法,所述方法包括:
由网络计算装置的多归属网络接口控制器NIC的逻辑交换机从远程计算装置接收网络分组;
由所述逻辑交换机确定所述网络计算装置的多个非统一存储器访问NUMA节点之一,其中每个NUMA节点包括所述网络计算装置的物理处理器封装的分配数量的处理器核和所述网络计算装置的本地存储器,并且其中所述本地存储器定义所述网络计算装置的主存储器的分配的部分;
由所述逻辑交换机基于多个逻辑NIC中的哪个逻辑NIC直接耦合到所述NUMA节点中所确定的一个NUMA节点来从耦合到所述逻辑交换机的所述多个逻辑NIC中确定逻辑NIC;
由所述逻辑交换机将所述网络分组传送到所述逻辑NIC;
由所述逻辑NIC将所述网络分组的至少一部分入队到直接链接到所述NUMA节点中的所确定的一个NUMA节点的所述逻辑NIC的一个或多个队列中的队列中;以及
由所述逻辑NIC将所述网络分组的所述至少一部分从所述逻辑NIC的所述队列传送到所述NUMA节点中的所述一个NUMA节点。
24.如权利要求23所述的方法,还包括:
由所述逻辑交换机将所述网络分组传送到所述逻辑NIC;
由所述逻辑NIC将所述网络分组的至少一部分入队到直接链接到所述NUMA节点中的所确定的一个NUMA节点的所述逻辑NIC的一个或多个队列中的队列中;以及
由所述逻辑NIC将所述网络分组的所述至少一部分从所述逻辑NIC的所述队列传送到所述NUMA节点中的所确定的一个NUMA节点。
25.如权利要求23所述的方法,还包括:
接收出站网络分组以用于从所述多个NUMA节点之一到目标计算装置的传送;
确定所述多个逻辑NIC中所述出站网络分组对应于的逻辑NIC;
将所述出站网络分组入队到所述多个逻辑NIC之一的队列中;以及
基于所述目标计算装置的标识符将所述出站网络分组转发到所述目标计算装置。
26.一种机器可读介质,所述机器可读介质上存储有指令,所述指令在被执行时促使计算装置执行根据权利要求23-25中的任一项所述的方法。
CN201780022419.9A 2016-03-31 2017-03-01 用于非统一网络输入/输出访问加速的方法和装置 Active CN109076029B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/087,527 US10142231B2 (en) 2016-03-31 2016-03-31 Technologies for network I/O access
US15/087527 2016-03-31
PCT/US2017/020227 WO2017172215A1 (en) 2016-03-31 2017-03-01 Technologies for network i/o access

Publications (2)

Publication Number Publication Date
CN109076029A CN109076029A (zh) 2018-12-21
CN109076029B true CN109076029B (zh) 2022-01-21

Family

ID=59961276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780022419.9A Active CN109076029B (zh) 2016-03-31 2017-03-01 用于非统一网络输入/输出访问加速的方法和装置

Country Status (4)

Country Link
US (1) US10142231B2 (zh)
EP (1) EP3437275A4 (zh)
CN (1) CN109076029B (zh)
WO (1) WO2017172215A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936200B2 (en) 2014-07-30 2021-03-02 Excelero Storage Ltd. System and method for improved RDMA techniques for multi-host network interface controllers
US9658782B2 (en) 2014-07-30 2017-05-23 Excelero Storage Ltd. Scalable data using RDMA and MMIO
US10979503B2 (en) * 2014-07-30 2021-04-13 Excelero Storage Ltd. System and method for improved storage access in multi core system
US10785022B2 (en) * 2016-09-13 2020-09-22 Hiroshi Watanabe Network without abuse of a private key
CN108123901B (zh) * 2016-11-30 2020-12-29 新华三技术有限公司 一种报文传输方法和装置
US10691590B2 (en) 2017-11-09 2020-06-23 International Business Machines Corporation Affinity domain-based garbage collection
US10445249B2 (en) * 2017-11-09 2019-10-15 International Business Machines Corporation Facilitating access to memory locality domain information
US10552309B2 (en) 2017-11-09 2020-02-04 International Business Machines Corporation Locality domain-based memory pools for virtualized computing environment
US11301278B2 (en) * 2018-04-25 2022-04-12 Vmware, Inc. Packet handling based on multiprocessor architecture configuration
US10761874B2 (en) 2018-11-27 2020-09-01 Red Hat, Inc. Dynamic virtual input/output and NUMA node management
US11144226B2 (en) 2019-04-11 2021-10-12 Samsung Electronics Co., Ltd. Intelligent path selection and load balancing
US11216190B2 (en) 2019-06-10 2022-01-04 Samsung Electronics Co., Ltd. Systems and methods for I/O transmissions in queue pair-based NVMeoF initiator-target system
US11240294B2 (en) 2019-08-23 2022-02-01 Samsung Electronics Co., Ltd. Systems and methods for spike detection and load balancing resource management
US11340932B2 (en) * 2020-01-23 2022-05-24 Vmware, Inc. Packet handling based on multiprocessor architecture configuration
US20220334864A1 (en) * 2021-04-14 2022-10-20 Juniper Networks, Inc. Plurality of smart network interface cards on a single compute node
US11620245B2 (en) * 2021-05-09 2023-04-04 Mellanox Technologies, Ltd. Multi-socket network interface controller with consistent transaction ordering
CN116361010B (zh) * 2023-05-31 2023-08-04 麒麟软件有限公司 一种用于腾云s2500的cpu资源调配调度优化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973026B1 (en) 2000-06-30 2005-12-06 Intel Corporation Resilient chassis-based network switching
US7765405B2 (en) 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
US8438284B2 (en) * 2009-11-30 2013-05-07 Red Hat, Inc. Network buffer allocations based on consumption patterns
US8996756B2 (en) * 2010-09-17 2015-03-31 Oracle International Corporation Using process location to bind IO resources on NUMA architectures
JP5710928B2 (ja) 2010-10-07 2015-04-30 株式会社日立製作所 ネットワークシステム、仮想ネットワーク管理方法及びルータ
US9042383B2 (en) * 2011-06-30 2015-05-26 Broadcom Corporation Universal network interface controller
EP3605969B1 (en) * 2011-08-17 2021-05-26 Nicira Inc. Distributed logical l3 routing
US9021138B2 (en) * 2011-08-26 2015-04-28 Microsoft Technology Licensing, Llc Performance of multi-processor computer systems
JP2013069063A (ja) 2011-09-21 2013-04-18 Fujitsu Ltd 通信ユニット及び情報処理方法
US9178815B2 (en) * 2013-03-05 2015-11-03 Intel Corporation NIC flow switching
US9270619B2 (en) * 2013-06-24 2016-02-23 Microsoft Technology Licensing, Llc Logical switch
US10684973B2 (en) * 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
US9734063B2 (en) * 2014-02-27 2017-08-15 École Polytechnique Fédérale De Lausanne (Epfl) Scale-out non-uniform memory access
JP2015184960A (ja) 2014-03-25 2015-10-22 日本電気株式会社 情報処理システム及び制御方法、並びにコンピュータ・プログラム
US10200292B2 (en) 2014-08-25 2019-02-05 Intel Corporation Technologies for aligning network flows to processing resources
US9495192B2 (en) * 2014-09-30 2016-11-15 Vmware, Inc. NUMA I/O aware network queue assignments

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502884B1 (en) * 2004-07-22 2009-03-10 Xsigo Systems Resource virtualization switch

Also Published As

Publication number Publication date
CN109076029A (zh) 2018-12-21
EP3437275A1 (en) 2019-02-06
EP3437275A4 (en) 2019-10-30
US10142231B2 (en) 2018-11-27
US20170289036A1 (en) 2017-10-05
WO2017172215A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
CN109076029B (zh) 用于非统一网络输入/输出访问加速的方法和装置
US11249779B2 (en) Accelerator interconnect assignments for virtual environments
US11706158B2 (en) Technologies for accelerating edge device workloads
US11531752B2 (en) Technologies for control plane separation in a network interface controller
EP3556081B1 (en) Reconfigurable server
US11467885B2 (en) Technologies for managing a latency-efficient pipeline through a network interface controller
US11681565B2 (en) Technologies for hierarchical clustering of hardware resources in network function virtualization deployments
US11494212B2 (en) Technologies for adaptive platform resource assignment
EP3588881A1 (en) Technologies for reordering network packets on egress
US10911405B1 (en) Secure environment on a server
CN111756791A (zh) 用于加速的功能即服务的网络设备负载平衡器的技术
CN105049464B (zh) 用于加速网络虚拟化的技术
US20220109733A1 (en) Service mesh offload to network devices
EP3588879A1 (en) Technologies for buffering received network packet data
US11412059B2 (en) Technologies for paravirtual network device queue and memory management
CN109218230B (zh) 用于平衡跨多级网络交换机的输入端口的吞吐量的技术
US11575620B2 (en) Queue-to-port allocation
WO2018057165A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
US10103992B1 (en) Network traffic load balancing using rotating hash
US11899969B1 (en) Re-order buffer for in-order execution of dependent write transactions
US20240089219A1 (en) Packet buffering technologies
US20230409511A1 (en) Hardware resource selection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant