CN115237550A - 网络处理资源的池化 - Google Patents
网络处理资源的池化 Download PDFInfo
- Publication number
- CN115237550A CN115237550A CN202210212112.8A CN202210212112A CN115237550A CN 115237550 A CN115237550 A CN 115237550A CN 202210212112 A CN202210212112 A CN 202210212112A CN 115237550 A CN115237550 A CN 115237550A
- Authority
- CN
- China
- Prior art keywords
- packet
- packet processing
- network
- processing resources
- memory
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 173
- 238000011176 pooling Methods 0.000 title abstract description 4
- 238000003860 storage Methods 0.000 claims abstract description 69
- 238000004891 communication Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims description 42
- 230000006855 networking Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 25
- 230000009471 action Effects 0.000 claims description 24
- 230000015654 memory Effects 0.000 description 160
- 230000003287 optical effect Effects 0.000 description 19
- 239000000758 substrate Substances 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 14
- 239000004744 fabric Substances 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001152 differential interference contrast microscopy Methods 0.000 description 3
- 230000020169 heat generation Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000005387 chalcogenide glass Substances 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000002070 nanowire Substances 0.000 description 2
- 239000001301 oxygen Substances 0.000 description 2
- 229910052760 oxygen Inorganic materials 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 208000023414 familial retinal arterial macroaneurysm Diseases 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000012994 industrial processing Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000003595 mist Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/502—Proximity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L2012/4629—LAN interconnection over a backbone network, e.g. Internet, Frame Relay using multilayer switching, e.g. layer 3 switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请涉及网络处理资源的池化。本文描述的示例涉及一种交换机,其被配置为从封包处理资源的池向多个应用分配封包处理资源,其中,封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。在一些示例中,可配置封包处理流水线和封包处理资源将执行以下各项中的一个或多个:网络交换机操作、微服务通信、和/或块存储操作。在一些示例中,网络交换机操作包括以下各项中的一个或多个:应用至少一个访问控制列表、封包转发、封包路由、和/或虚拟可扩展LAN或GENEVE端接。在一些示例中,微服务通信包括以下各项中的一个或多个:微服务之间的封包路由、和/或被利用的微服务的负载平衡。
Description
技术领域
本申请涉及网络处理资源的池化。
背景技术
软件定义联网(software-defined networking,SDN)技术是一种网络管理的方法,它使得能够进行动态网络配置,以改善网络性能和监视。SDN通常与OpenFlow协议相关联,用于与网络平面元素进行远程通信,以确定网络封包在网络交换机上的路径。编程协议无关封包处理器(Programming Protocol-Independent Packet Processor,P4)语言提供了对网络设备的编程。P4得到了网络设备厂商的支持,例如,Barefoot Networks Tofino可重配置匹配动作表(reconfigurable match-action table,RMT)、FlexPipe、Cavium XPliant封包体系结构(XPliant Packet Architecture,XPA)、以及Nexus,等等。
一些云服务提供商(Cloud Service Provider,CSP)使用为特定应用设计的专属私有通信协议来构建他们的数据中心。在现代数据中心设计中,协议是由CSP定期地连同其软件或应用更新来创建、修改或移除的。这种类型的联网被称为应用自有联网(Application Owned Networking,AON)。AON可以利用私有协议栈来在特定的数据中心环境中工作。网络地址转化(Network Address Translation,NAT)、连接跟踪等等是传统联网的一部分,并且是为标准协议栈设计的,来为各种应用服务。在一些情况下,应用具有相应的新分割和会话解决方案,而不是使用标准和传统的NAT和连接跟踪。如果分割和会话解决方案出现稳定性或性能问题,则这些问题可以作为软件或硬件问题被解决。在数据中心之外,可以使用标准化的协议,并且协议转化可以在数据中心边缘的入口/出口网关处发生。
OpenStack联网是一种使用云编排的协调联网的已知模型。OpenStack联网在若干个节点上部署进程,并且这些进程与彼此以及与其他OpenStack服务进行交互。Neutron服务器暴露了OpenStack联网应用程序接口(application program interface,API),并且传递租户请求以便进行额外处理。云编排可以协调联网元素的操作,这些联网元素例如是交换机、网络接口卡以及虚拟网络功能(virtual network function,VNF)。Trellis是一种基于云基础设施应用的开放网络操作系统(Open Network Operating System,)软件定义联网(SDN)控制器平台。利用Trellis,SDN控制器可以管理所有的网络功能,包括计算节点中的叶交换机和覆盖架构。
发明内容
根据本申请的一个实施例,提供了一种装置,包括:交换机,包括电路,所述电路被配置为从封包处理资源的池向多个应用分配封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
根据本申请的另一实施例,提供了一种方法,包括:网络设备从封包处理资源的池向多个应用提供封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
根据本申请的另一实施例,提供了一种计算机可读介质,在其上存储有指令,所述指令在由一个或多个处理器执行时,使得:将网络设备配置为从封包处理资源的池向多个应用分配封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
附图说明
图1是用于以解聚集的资源执行工作负载的数据中心的至少一个实施例的简化图。
图2是可被包括在数据中心中的系统的至少一个实施例的简化图。
图3是节点的顶侧的至少一个实施例的简化框图。
图4是节点的底侧的至少一个实施例的简化框图。
图5是计算节点的至少一个实施例的简化框图。
图6是数据中心中可使用的加速器节点的至少一个实施例的简化框图。
图7是数据中心中可使用的存储节点的至少一个实施例的简化框图。
图8是数据中心中可使用的存储器节点的至少一个实施例的简化框图。
图9描绘了用于执行一个或多个工作负载的系统。
图10描绘了示例系统。
图11示出了示例系统。
图12描绘了示例系统。
图13-图15描绘了示例系统配置。
图16描绘了示例过程。
图17描绘了示例网络接口。
图18描绘了示例交换机。
图19描绘了示例封包处理系统。
图20描绘了示例计算系统。
具体实施方式
图1描绘了数据中心,在该数据中心中,解聚集的资源(disaggregatedresources)可协作执行一个或多个工作负载(例如,代表客户的应用),该数据中心包括多个系统110、120、130、140,系统是(或者包括)一排或多排机架(rack)、机架或托盘(tray)。当然,虽然数据中心100被示为具有多个系统,但在一些实施例中,数据中心100可被实现为单个系统。如本文更详细描述的,每个机架容纳多个节点,其中一些节点可配备有一种或多种类型的资源(例如,存储器设备、数据存储设备、加速器设备、通用处理器、GPU、xPU、CPU、现场可编程门阵列(field programmable gate array,FPGA)、或者专用集成电路(application-specific integrated circuit,ASIC))。资源可以在逻辑上被耦合或聚集以形成组合节点或复合节点,该节点可以充当例如服务器来执行作业、工作负载或微服务。
本文描述的各种示例可以执行由微服务组成的应用,其中每个微服务在其自己的进程中运行,并且使用协议(例如,应用程序接口(API)、超文本传输协议(HypertextTransfer Protocol,HTTP)资源API、消息服务、远程过程调用(remote procedure call,RPC)、或者谷歌RPC(Google RPC,gRPC))进行通信。可以使用这些服务的集中管理来独立部署微服务。管理系统可以用不同的编程语言来编写,并且使用不同的数据存储技术。微服务的特征可在于以下各项中的一个或多个:使用细粒度的接口(对可独立部署的服务),多语言编程(例如,用多种语言编写的代码,以捕捉单个语言无法提供的额外功能和效率),或者轻量级容器或虚拟机部署,以及分散的连续微服务交付。
在说明性实施例中,每个系统110、120、130、140中的节点连接到多个系统交换机(例如,向和从系统内的节点路由数据通信的交换机)。交换机可被定位在机架顶部(top ofrack,TOR)、排尾(end of row,EOR)、机架中部(middle of rack,MOR)、或者机架或排中的某个位置。系统交换机进而与脊柱交换机(spine switch)150连接,脊柱交换机150在数据中心100中的系统(例如,系统110、120、130、140)之间交换通信。在一些实施例中,节点可与使用本文描述的标准或专属标准的架构相连接。在其他实施例中,节点可与其他架构连接,例如InfiniBand或以太网。如本文更详细描述的,数据中心100中的节点内的资源可被分配到一群组(本文中称为“被管理节点”(managed node)),该群组包含来自一个或多个节点的资源以在工作负载的执行中被集体利用。工作负载可以就好像属于被管理节点的资源是位于同一节点上那样执行。被管理节点中的资源可属于分属不同机架以及甚至分属不同系统110、120、130、140的节点。这样,单个节点的一些资源可被分配到一个被管理节点,而同一节点的其他资源可被分配到不同的被管理节点(例如,一个处理器被指派到一个被管理节点,同一节点的另一处理器被指派到另一不同被管理节点)。
将资源解聚集到主要由单种类型的资源构成的节点(例如,计算节点主要包括计算资源,存储器节点主要包含存储器资源)并且对解聚集的资源进行选择性分配和解除分配以形成被指派来执行工作负载的被管理节点,相对于典型数据中心改善了数据中心100的操作和资源使用,这些典型数据中心由包含计算、存储器、存储以及可能额外的资源的超会聚服务器构成。例如,因为节点主要包含特定类型的资源,所以给定类型的资源可独立于其他资源被升级。此外,因为不同的资源类型(处理器、存储器、存储、加速器,等等)通常具有不同的刷新率,所以可以实现更高的资源利用率和降低的总拥有成本。例如,数据中心运营者只要通过换出计算节点就可升级其整个设施中的处理器。在这种情况下,加速器和存储资源可不被同时升级,而是可被允许继续操作,直到这些资源被安排来进行其自己的刷新为止。资源利用率也可增大。例如,如果被管理节点是基于将在其上运行的工作负载的要求来构成的,则节点内的资源更有可能被充分利用。这种利用可允许更多的被管理节点以给定的一组资源在数据中心中运行,或者允许利用更少的资源来构建预期运行给定的一组工作负载的数据中心。
图2描绘了一种系统。该系统可包括机架240的排200、210、220、230的集合。每个机架240可容纳多个节点(例如,十六个节点)并且向容纳的节点提供电力和数据连接,如本文更详细描述。在说明性实施例中,每一排200、210、220、230中的机架连接到多个系统交换机250、260。系统交换机250包括一组端口252和另一组端口254,系统110的机架的节点连接到端口252,端口254将系统110连接到脊柱交换机150以提供到数据中心100中的其他系统的连通性。类似地,系统交换机260包括系统110的机架的节点连接到的一组端口262和将系统110连接到脊柱交换机150的一组端口264。这样,一对交换机250、260的使用向系统110提供了一定量的冗余性。例如,如果交换机250、260中的任一者发生故障,则系统110中的节点仍可通过另一交换机250、260与数据中心100的剩余部分(例如,其他系统的节点)维持数据通信。此外,在说明性实施例中,交换机150、250、260可被实现为双模式光学交换机,既能够路由携带互联网协议(Internet Protocol,IP)封包的以太网协议通信,也能够经由光学架构的光学信令介质路由根据第二种高性能链路层协议(例如,快速PCI或者计算快速链路)的通信。
应当明白,其他系统70、130、80的每一者(以及数据中心100的额外系统)可与图2中示出和参考图2描述的系统110类似地构造并且具有与其类似的组件(例如,每个系统可具有如上所述的容纳多个节点的机架排)。此外,虽然示出了两个系统交换机250、260,但应当理解在其他实施例中,每个系统110、120、130、140可连接到不同数目的系统交换机,提供甚至更多的故障转移能力。当然,在其他实施例中,系统的布置可与图1-图2中所示的机架排配置不同。例如,系统可被实现为多组机架,其中每组机架是径向布置的,即,机架与中央交换机是等距离的。
现在参考图3,节点400在说明性实施例中如上所述被配置为被安放在数据中心100的相应机架240中。在一些实施例中,每个节点400可以是针对执行特定任务来优化或以其他方式配置的,这些任务例如是计算任务、加速任务、数据存储任务,等等。例如,节点400可如下文参考图5所述被实现为计算节点500,如下文参考图6所述被实现为加速器节点600,如下文参考图7所述被实现为存储节点700,或者被优化或以其他方式配置来执行其他专门任务的节点,例如存储器节点800,如下文参考图8所述。
虽然在图3中示出了两个物理资源320,但应当明白,在其他实施例中节点400可包括一个、两个或者更多个物理资源320。物理资源320可被实现为任何类型的处理器、控制器或者能够执行诸如计算功能之类的各种任务和/或取决于例如节点400的类型或期望功能来控制节点400的功能的其他计算电路。例如,如下文更详细论述的,物理资源320在节点400被实现为计算节点的实施例中可被实现为高性能处理器,在节点400被实现为加速器节点的实施例中可被实现为加速器协处理器或电路,在节点400被实现为存储节点的实施例中可被实现为存储控制器,或者在节点400被实现为存储器节点的实施例中可被实现为一组存储器设备。
节点400还包括安放到电路板基板302的一个或多个额外物理资源330。在说明性实施例中,额外的物理资源包括网络接口控制器(network interface controller,NIC),如下文更详细论述。当然,取决于节点400的类型和功能,物理资源330在其他实施例中可包括额外的或者其他的电组件、电路和/或设备。
物理资源320可经由输入/输出(I/O)子系统322通信地耦合到物理资源330。I/O子系统322可被实现为电路和/或组件来促进与物理资源320、物理资源330和/或节点400的其他组件的输入/输出操作。例如,I/O子系统322可被实现为或者以其他方式包括存储器控制器中枢、输入/输出控制中枢、集成传感器中枢、固件设备、通信链路(例如,点到点链路、总线链路、导线、线缆、波导、光导、印刷电路板印制线,等等)、和/或用于促进输入/输出操作的其他组件和子系统。在说明性实施例中,I/O子系统322被实现为或者以其他方式包括双数据速率4(double data rate 4,DDR4)数据总线或DDR5数据总线。
在一些实施例中,节点400还可包括资源到资源互连324。资源到资源互连324可被实现为任何类型的能够促进资源到资源通信的通信互连。在说明性实施例中,资源到资源互连324被实现为高速点到点互连(例如,比I/O子系统322更快)。例如,资源到资源互连324可被实现为QuickPath互连(QuickPath Interconnect,QPI)、UltraPath互连(UltraPathInterconnect,UPI)、快速PCI(PCI express,PCIe)、或者专用于资源到资源通信的其他高速点到点互连。
节点400还包括被配置为当节点400被安放在相应机架240中时与机架240的相应电力连接器配对的电力连接器340。节点400经由电力连接器340从机架240的供给电源接收电力以向节点400的各种电组件提供电力。在一些示例中,节点400包括本地供给电源(例如,板上供给电源)来向节点400的电组件提供电力。在一些示例中,节点400不包括任何本地供给电源(例如,板上供给电源)来向节点400的电组件提供电力。不包括本地或板上供给电源促进了电路板基板302的整体占地面积的减小,这如上所述可提高安放在电路板基板302上的各种电组件的热冷却特性。在一些实施例中,电压调节器被放置在电路板基板302上、与处理器520(参见图5)直接相对,并且电力被延伸过电路板基板302的过孔从电压调节器路由到处理器520。相对于其中处理器电力是从电压调节器一部分由印刷电路印制线递送的典型印刷电路板,这种配置提供了增大的热预算、额外的电流和/或电压以及更好的电压控制。
在一些实施例中,节点400还可包括安放特征342,其被配置为与机器人的安放臂或其他结构配对以促进由机器人在机架240中放置节点300。安放特征342可被实现为任何类型的物理结构,其允许机器人抓握住节点400,而不毁坏电路板基板302或者安放到其的电组件。例如,在一些实施例中,安放特征342可被实现为附着到电路板基板302的非导电衬垫。在其他实施例中,安放特征可被实现为支架、支柱或者附着到电路板基板302的其他类似结构。安放特征342的特定数目、形状、大小和/或构成可取决于被配置为管理节点400的机器人的设计。
现在参考图4,除了安放在电路板基板302上的物理资源330以外,节点400还包括一个或多个存储器设备420。物理资源320可经由I/O子系统322通信地耦合到存储器设备420。例如,物理资源320和存储器设备420可由延伸过电路板基板302的一个或多个过孔通信地耦合。物理资源320在一些实施例中可通信地耦合到不同的一组一个或多个存储器设备420。或者,在其他实施例中,每个物理资源320可通信地耦合到每个存储器设备420。
存储器设备420可被实现为能够在节点400的操作期间为物理资源320存储数据的任何类型的存储器设备,例如任何类型的易失性(例如,动态随机访问存储器(dynamicrandom access memory,DRAM)等等)或者非易失性存储器。易失性存储器可以是需要电力来维持该介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可包括各种类型的随机访问存储器(random access memory,RAM),例如动态随机访问存储器(DRAM)或者静态随机访问存储器(SRAM)。可用于存储器模块中的一种特定类型的DRAM是同步动态随机访问存储器(synchronous dynamic random access memory,SDRAM)。在特定实施例中,存储器组件的DRAM可遵守由JEDEC颁布的标准,例如用于DDR SDRAM的JESD79F,用于DDR2SDRAM的JESD79-2F,用于DDR3 SDRAM的JESD79-3F,用于DDR4 SDRAM的JESD79-4A,用于低功率DDR(Low Power DDR,LPDDR)的JESD209,用于LPDDR2的JESD209-2,用于LPDDR3的JESD209-3,以及用于LPDDR4的JESD209-4。这种标准(以及类似的标准)可被称为基于DDR的标准,并且实现这种标准的存储设备的通信接口可被称为基于DDR的接口。
在一个实施例中,存储器设备是可块状寻址的存储器设备,例如那些基于NAND或NOR技术的存储器设备,例如多阈值级别NAND闪存和NOR闪存。块可以是任何大小,例如但不限于2KB、4KB、5KB,等等。存储器设备还可包括下一代非易失性设备,例如Intel 存储器或者其他可字节寻址的就地写入非易失性存储器设备(例如,使用硫属化合物玻璃的存储器设备),多阈值级别NAND闪存,NOR闪存,单级别或多级别相变存储器(PhaseChange Memory,PCM),电阻性存储器,纳米线存储器,铁电晶体管随机访问存储器(ferroelectric transistor random access memory,FeTRAM),反铁电存储器,包含忆阻器技术的磁阻式随机访问存储器(magnetoresistive random access memory,MRAM)存储器,包括金属氧化物基底、氧空位基底的电阻性存储器以及导电桥随机访问存储器(conductive bridge Random Access Memory,CB-RAM),或者自旋转移力矩(spintransfer torque,STT)-MRAM,基于自旋电子磁结存储器的设备,基于磁隧道结(magnetictunneling junction,MTJ)的设备,基于DW(Domain Wall,畴壁)和SOT(Spin OrbitTransfer,自旋轨道转移)的设备,基于半导体闸流管的存储器设备,或者上述各项中的一个或多个的组合,或者其他存储器。存储器设备可以指管芯本身和/或指封装的存储器产品。在一些实施例中,存储器设备可包括无晶体管可堆叠交叉点体系结构,其中存储器单元位于字线和位线的交点处并且是可个体寻址的,并且其中位存储是基于体电阻的变化的。
现在参考图5,在一些实施例中,节点400可被实现为计算节点500。计算节点500可被配置为执行计算任务。当然,如上所述,计算节点500可依赖于其他节点,例如加速节点和/或存储节点,来执行计算任务。在说明性计算节点500中,物理资源320被实现为处理器520。虽然在图5中只示出了两个处理器520,但应当明白,计算节点500在其他实施例中可包括额外的处理器520。说明性地,处理器520被实现为高性能处理器520并且可被配置为以相对高的额定功率来进行操作。
在一些实施例中,计算节点500还可包括处理器到处理器互连542。处理器到处理器互连542可被实现为任何类型的能够促进处理器到处理器互连542通信的通信互连。在说明性实施例中,处理器到处理器互连542被实现为高速点到点互连(例如,比I/O子系统322更快)。例如,处理器到处理器互连542可被实现为QuickPath互连(QPI)、UltraPath互连(UPI)、或者专用于处理器到处理器通信的其他高速点到点互连。
计算节点500还包括通信电路530。说明性通信电路530包括网络接口控制器(NIC)532,其也可被称为主机架构接口(host fabric interface,HFI)。NIC 532可被实现为或者以其他方式包括任何类型的集成电路、分立电路、控制器芯片、芯片组、内插板、子插件板、网络接口卡、或者可被计算节点500用来与另一计算设备(例如,与其他节点400)连接的其他设备。在一些实施例中,NIC 532可被实现为包括一个或多个处理器的片上系统(system-on-a-chip,SoC)的一部分,或者被包括在也包含一个或多个处理器的多芯片封装上。在一些实施例中,NIC 532可包括都在NIC 532本地的本地处理器(未示出)和/或本地存储器(未示出)。在这种实施例中,NIC 532的本地处理器可能够执行处理器520的一个或多个功能。额外地或者替换地,在这种实施例中,NIC 532的本地存储器可在板级、插座级、芯片级和/或其他级别被集成到计算节点的一个或多个组件中。在一些示例中,网络接口包括网络接口控制器或网络接口卡。在一些示例中,网络接口可包括以下各项中的一个或多个:网络接口控制器(NIC)532、主机架构接口(HFI)、主机总线适配器(host bus adapter,HBA)、连接到总线或连接(例如,PCIe、CXL、DDR,等等)的网络接口。在一些示例中,网络接口可以是交换机或片上系统(SoC)的一部分。
NIC的一些示例是基础设施处理单元(Infrastructure Processing Unit,IPU)或数据处理单元(data processing unit,DPU)的一部分,或者被IPU或DPU利用。IPU或DPU可包括网络接口、存储器设备和一个或多个可编程或固定功能的处理器(例如,CPU或XPU),以执行本来可由主机CPU或XPU或远程CPU或XPU执行的操作的负载转移。在一些示例中,IPU或DPU可以执行虚拟交换机操作,管理存储事务(例如,压缩、密码术、虚拟化),并且管理在其他IPU、DPU、服务器或设备上执行的操作。
通信电路530通信地耦合到光学数据连接器534。光学数据连接器534被配置为在计算节点500被安放在机架中时与机架的相应光学数据连接器配对。说明性地,光学数据连接器534包括从光学数据连接器534的配对表面通向光学收发器536的多条光纤。光学收发器536被配置为将来自机架侧光学数据连接器的传入光学信号转换成电信号并且将电信号转换成去到机架侧光学数据连接器的传出光学信号。虽然在说明性实施例中被示为光学数据连接器534的形成部分,但光学收发器536在其他实施例中可形成通信电路530的一部分。
在一些实施例中,计算节点500也可包括扩展连接器540。在这种实施例中,扩展连接器540被配置为与扩展电路板基板的相应连接器配对以向计算节点500提供额外的物理资源。额外的物理资源可例如被处理器520在计算节点500的操作期间使用。扩展电路板基板可基本上类似于上文论述的电路板基板302并且可包括安放到它的各种电组件。安放到扩展电路板基板的特定电组件可取决于扩展电路板基板的预期功能。例如,扩展电路板基板可提供额外的计算资源、存储器资源和/或存储资源。这样,扩展电路板基板的额外物理资源可包括但不限于处理器、存储器设备、存储设备和/或加速器电路,例如包括现场可编程门阵列(field programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)、安全性协处理器、图形处理单元(graphicsprocessing unit,GPU)、机器学习电路、或者其他专门的处理器、控制器、设备和/或电路。注意,本文提及GPU或CPU可额外地或替换地指代XPU或xPU。xPU可包括以下各项中的一个或多个:GPU、ASIC、FPGA、或者加速器设备。
现在参考图6,在一些实施例中,节点400可被实现为加速器节点600。加速器节点600被配置为执行专门的计算任务,例如机器学习、加密、散列或者其他计算密集型任务。在一些实施例中,例如,计算节点500在操作期间可将任务负载转移到加速器节点600。加速器节点600包括与节点400和/或计算节点500的组件类似的各种组件,这些组件在图6中利用相同的标号来标识。
在说明性加速器节点600中,物理资源320被实现为加速器电路620。虽然在图6中只示出了两个加速器电路620,但应当明白,加速器节点600在其他实施例中可包括额外的加速器电路620。加速器电路620可被实现为任何类型的处理器、协处理器、计算电路、或者能够执行计算或处理操作的其他设备。例如,加速器电路620可被实现为例如中央处理单元、核心、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、可编程控制逻辑(programmablecontrol logic,PCL)、安全性协处理器、图形处理单元(GPU)、神经形态处理器单元、量子计算机、机器学习电路、可编程处理流水线(例如,可通过P4、C、Python、Broadcom网络编程语言(Network Programming Language,NPL)或者X86兼容的可执行二进制文件或其他可执行二进制文件进行编程)。处理器、FPGA、其他专门的处理器、控制器、设备和/或电路可被用于封包处理或封包修改。三元内容可寻址存储器(ternary content-addressable memory,TCAM)可被用于封包头部内容上的并行匹配动作或查找操作。
在一些实施例中,加速器节点600还可包括加速器到加速器互连642。与上文论述的节点300的资源到资源互连324类似,加速器到加速器互连642可被实现为能够促进加速器到加速器通信的任何类型的通信互连。在说明性实施例中,加速器到加速器互连642被实现为高速点到点互连(例如,比I/O子系统322更快)。例如,加速器到加速器互连642可被实现为QuickPath互连(QPI)、UltraPath互连(UPI)、或者专用于处理器到处理器通信的其他高速点到点互连。在一些实施例中,加速器电路620可以是菊链式的,其中主加速器电路620通过I/O子系统322连接到NIC532和存储器420并且次加速器电路620通过主加速器电路620连接到NIC 532和存储器420。
现在参考图7,在一些实施例中,节点400可被实现为存储节点700。存储节点700被配置为在存储节点700本地的数据存储装置750中存储数据。例如,在操作期间,计算节点500或加速器节点600可从存储节点700的数据存储装置750存储和取回数据。存储节点700包括与节点400和/或计算节点500的组件类似的各种组件,这些组件在图7中利用相同的标号来标识。
在说明性存储节点700中,物理资源320被实现为存储控制器720。虽然在图7中只示出了两个存储控制器720,但应当明白,存储节点700在其他实施例中可包括额外的存储控制器720。存储控制器720可被实现为能够基于经由通信电路530接收的请求来控制数据到数据存储装置750中的存储和取回的任何类型的处理器、控制器或控制电路。在说明性实施例中,存储控制器720被实现为相对低功率的处理器或控制器。
在一些实施例中,存储节点700也可包括控制器到控制器互连742。与上文论述的节点400的资源到资源互连324类似,控制器到控制器互连742可被实现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连742被实现为高速点到点互连(例如,比I/O子系统322更快)。例如,控制器到控制器互连742可被实现为QuickPath互连(QPI)、UltraPath互连(UPI)、或者专用于处理器到处理器通信的其他高速点到点互连。
现在参考图8,在一些实施例中,节点400可被实现为存储器节点800。存储器节点800被配置为向其他节点400(例如,计算节点500、加速器节点600,等等)提供对存储节点700本地的存储器的池(例如,在两组或更多组830、832的存储器设备420中)的访问。例如,在操作期间,计算节点500或加速器节点600可利用映射到存储器组830、832中的物理地址的逻辑地址空间来远程地向和/或从存储器节点800的存储器组830、832中的一个或多个写入和/或读取。
在说明性存储器节点800中,物理资源320被实现为存储器控制器820。虽然在图8中只示出了两个存储器控制器820,但应当明白,存储器节点800在其他实施例中可包括额外的存储器控制器820。存储器控制器820可被实现为能够基于经由通信电路530接收的请求来控制数据到存储器组830、832中的写入和读取的任何类型的处理器、控制器或控制电路。在说明性实施例中,每个存储器控制器820连接到相应的存储器组830、832以向相应存储器组830、832内的存储器设备420写入和从其读取并且实施与向存储器节点800发送了执行存储器访问操作(例如,读取或写入)的请求的节点400相关联的许可(例如,读取、写入,等等)。
在一些实施例中,存储器节点800也可包括控制器到控制器互连842。与上文论述的节点400的资源到资源互连324类似,控制器到控制器互连842可被实现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连842被实现为高速点到点互连(例如,比I/O子系统322更快)。例如,控制器到控制器互连842可被实现为QuickPath互连(QPI)、UltraPath互连(UPI)、或者专用于处理器到处理器通信的其他高速点到点互连。这样,在一些实施例中,存储器控制器820可通过控制器到控制器互连842访问在与另一存储器控制器820相关联的存储器组832内的存储器。在一些实施例中,可缩放存储器控制器由存储器节点(例如,存储器节点800)上的多个更小的存储器控制器构成,这些更小的存储器控制器在这里被称为“小芯片”(chiplet)。小芯片可被互连(例如,利用EMIB(Embedded Multi-Die Interconnect Bridge,嵌入式多管芯互连桥))。组合的小芯片存储器控制器可扩大到相对较大数目的存储器控制器和I/O端口(例如,多达16个存储器通道)。在一些实施例中,存储器控制器820可实现存储器交织(例如,一个存储器地址被映射到存储器组830,下一个存储器地址被映射到存储器组832,并且第三地址被映射到存储器组830,等等)。交织可以是在存储器控制器820内被管理的,或者是从CPU插座(例如,计算节点500的CPU插座)通过网络链路到存储器组830、832被管理的,并且与访问来自同一存储器设备的连续存储器地址相比,可改善与执行存储器访问操作相关联的时延。
另外,在一些实施例中,存储器节点800可利用波导连接器880通过波导连接到一个或多个其他节点400(例如,在同一机架240或相邻机架240中)。使用波导可向另一节点(例如,与存储器节点800在同一机架240中或者在相邻机架240中的节点400)提供对存储器池(例如,存储器组830、832)的高吞吐量访问,而不会增加光学数据连接器534上的负载。
现在参考图9,可以实现一种用于执行一个或多个工作负载(例如,应用)的系统。在说明性实施例中,系统910包括编排器服务器920,其可被实现为被管理节点,该被管理节点包括执行管理软件(例如,云操作环境,比如OpenStack)的计算设备(例如,计算节点500上的处理器520),该计算设备通信地耦合到多个节点400,这些节点400包括大量的计算节点930(例如,每一者类似于计算节点500)、存储器节点940(例如,每一者类似于存储器节点800)、加速器节点950(例如,每一者类似于加速器节点600)、以及存储节点960(例如,每一者类似于存储节点700)。节点930、940、950、960中的一个或多个可例如被编排器服务器920分组成被管理节点970,以集体执行工作负载(例如,在虚拟机中或者在容器中执行的应用932)。
被管理节点970可被实现为来自相同或不同节点400的物理资源320的汇集,例如处理器520、存储器资源420、加速器电路620、或者数据存储装置750。另外,被管理节点可在工作负载要被指派到被管理节点时或者在某个时间由编排器服务器920建立、定义或者“起转”,并且不管是否有工作负载当前被指派到被管理节点,都可存在。在说明性实施例中,根据与工作负载(例如,应用932)的服务水平协议或服务类别(class ofservice,COS或CLOS)相关联的服务质量(quality of service,QoS)目标(例如,目标吞吐量、目标时延、目标每秒指令数,等等),编排器服务器920可选择性地从节点400分配和/或解除分配物理资源320,和/或从被管理节点970添加或去除一个或多个节点400。在此期间,编排器服务器920可接收指示被管理节点970的每个节点400中的性能条件(例如,吞吐量、时延、每秒指令,等等)的遥测数据,并且将遥测数据与服务质量目标相比较来确定服务质量目标是否被满足。编排器服务器920还可确定是否可在仍满足QoS目标的同时从被管理节点970解除分配一个或多个物理资源,从而释放这些物理资源来用于另一被管理节点中(例如,为了执行不同的工作负载)。或者,如果当前不满足QoS目标,则编排器服务器920可确定动态地分配额外的物理资源来在工作负载在执行的同时辅助工作负载(例如,应用932)的执行。类似地,如果编排器服务器920确定解除分配物理资源的结果将是QoS目标仍得到满足,则编排器服务器920可确定动态地从被管理节点解除分配物理资源。
此外,在一些实施例中,编排器服务器920可识别工作负载(例如,应用932)的资源利用中的趋势,例如通过识别工作负载(例如,应用932)的执行的阶段(例如,执行不同操作的时间段,其中每个操作具有不同的资源利用特性)并且抢先识别数据中心中的可用资源并且将它们分配给被管理节点970(例如,在关联的阶段开始后的预定时间段内)。在一些实施例中,编排器服务器920可基于各种时延和分布方案来对性能建模以在数据中心中的计算节点和其他资源(例如,加速器节点、存储器节点、存储节点)之间放置工作负载。例如,编排器服务器920可利用这样的模型:该模型考虑到节点400上的资源的性能(例如,FPGA性能、存储器访问时延,等等)以及通过网络到该资源(例如,FPGA)的路径的性能(例如,拥塞、时延、带宽)。这样,编排器服务器920可基于与数据中心100中可用的每个潜在资源相关联的总时延(例如,与资源本身的性能相关联的时延,以及与执行工作负载的计算节点和资源所位于的节点400之间的通过网络的路径相关联的时延)来确定对于哪些工作负载应当使用哪个(或哪些)资源。
在一些实施例中,编排器服务器920可利用从节点400报告的遥测数据(例如,温度、风扇速度,等等)生成数据中心100中的热量生成的地图并且根据热量生成的地图和与不同工作负载相关联的预测热量生成来向被管理节点分配资源,以维持数据中心100中的目标温度和热量分布。额外地或者替换地,在一些实施例中,编排器服务器920可以将接收到的遥测数据组织成指示被管理节点之间的关系的层次模型(例如,空间关系,比如被管理节点的资源在数据中心100内的物理位置,和/或功能关系,比如被管理节点为其提供服务的客户对被管理节点的分组、被管理节点通常执行的功能的类型、通常在彼此之间共享或交换工作负载的被管理节点,等等)。基于物理位置和被管理节点中的资源中的差异,给定的工作负载在不同的被管理节点的资源之间可展现出不同的资源利用(例如,引起不同的内部温度、使用不同百分比的处理器或存储器容量)。编排器服务器920可以基于存储在层次模型中的遥测数据来确定这些差异并且在工作负载被从一个被管理节点重指派到另一被管理节点的情况下将这些差异计入到工作负载的未来资源利用的预测中,以准确地平衡数据中心100中的资源利用。在一些实施例中,编排器服务器920可以识别工作负载的资源利用阶段中的模式并且使用这些模式来预测工作负载的未来资源利用。
为了降低编排器服务器920上的计算负载和网络上的数据传送负载,在一些实施例中,编排器服务器920可向节点400发送自测试信息以使得每个节点400能够在本地(例如,在节点400上)确定该节点400生成的遥测数据是否满足一个或多个条件(例如,满足预定阈值的可用容量、满足预定阈值的温度,等等)。每个节点400随后可向编排器服务器920报告回简化的结果(例如,是或否),编排器服务器920可利用该结果来确定向被管理节点的资源分配。
本文描述的实施例可被用于数据中心或解聚集的复合节点中。本文描述的技术可适用于解聚集的和传统的服务器体系结构。传统的服务器可包括CPU、XPU、一个或多个存储器设备、与服务器内的一个或多个电路板通信耦合的网络。
边缘网络
边缘计算在一般水平上指的是在更接近网络的“边缘”或“边缘”集合的位置实现、协调和使用计算和资源。这种布置的目的是改善总拥有成本、减少应用和网络时延、减少网络回程流量和关联的能量消耗、改善服务能力、并且改善对安全性或数据隐私要求的遵从(尤其是与传统云计算相比)。可以执行边缘计算操作的组件(“边缘节点”)可以驻留在系统体系结构或自组织服务所需要的任何位置中(例如,在高性能计算数据中心或云安装中;指定的边缘节点服务器、企业服务器、路边服务器、电信中心局;或者正在消费边缘服务的被服务的本地或对等边缘设备)。
通过下文描述的说明性边缘联网系统,计算和存储资源被移动得更靠近网络边缘(例如,更靠近客户端、端点设备或者“事物”)。通过将计算和存储资源移动得更靠近产生或使用数据的设备,相对于标准的联网(例如,云计算)系统,各种时延、遵从性和/或货币或资源成本约束可能是可实现的。为此,在一些示例中,计算、存储器和/或存储资源的池可以位于中,或者以其他方式配备有本地服务器、路由器和/或其他网络设备。这种本地资源促进了满足对系统施加的约束。例如,本地计算和存储资源允许了边缘系统实时或接近实时地执行计算,这可能是诸如自主驾驶、视频监视和移动媒体消费之类的低时延用例中的一个考虑因素。此外,这些资源将受益于边缘系统中的服务管理,该服务管理提供了缩放和实现本地服务水平协议(service level agreement,SLA)或服务水平目标(service levelobjective,SLO)、管理分层级服务要求、并且在临时或永久基础上使能本地特征和功能的能力。
池可包括同一机箱上的设备或者不同机箱或不同机架上的不同的物理上分散的设备。资源池可包括同质的处理器、同质的处理器、和/或存储器池。
说明性边缘计算系统可以支持和/或向端点设备(例如,客户端用户设备(userequipment,UE))提供各种服务,其中每一者可具有不同的要求或约束。例如,一些服务可具有优先级或服务质量(QoS)约束(例如,自主车辆的交通数据可能比温度传感器数据有更高的优先级)、可靠性和弹性(例如,交通数据可能要求关键任务可靠性,而温度数据可允许一些误差方差),以及功率、冷却和外形参数约束。这些和其他技术约束在被应用在多利益相关者的环境时,可能会带来重大的复杂性和技术挑战。
图10概括描绘了用于向多利益相关者实体提供边缘服务和应用的边缘计算系统1000,这些实体分布在一个或多个客户端计算节点1002、一个或多个边缘网关节点1012、一个或多个边缘聚集节点1022、一个或多个核心数据中心1032和全局网络云1042之间,分布在网络的各个层。可以在电信服务提供商(“telco”,或者“TSP”)、物联网服务提供商、云服务提供商(CSP)、企业实体或者任何其他数目的实体处提供或代表它们提供边缘计算系统1000的实现。系统1000的各种实现和配置可以被动态地提供,例如在被编排以满足服务目标时提供。
例如,客户端计算节点1002位于端点层,而边缘网关节点1012位于边缘计算系统1000的边缘设备层(本地层)。此外,边缘聚集节点1022(和/或雾设备1024,如果与雾联网配置1026一起或在其中布置或操作的话)位于网络接入层(中间层)。雾计算(或者“雾化”)一般指的是云计算向企业网络边缘的延伸,或者指的是在云/边缘情形中管理事务的能力,通常是在协调的分布式或多节点网络中。一些形式的雾计算代表云计算位置,在终端设备和云计算数据中心之间提供计算、存储和网络服务的部署。一些形式的雾计算还提供了如下能力:通过基于履行整体服务水平协议的能力将某些工作负载推到边缘或云端,来就整体事务而言管理工作负载/工作流级别服务。雾计算在许多场景中提供了一种分散的体系结构,并且通过与一个或多个边缘节点设备协作,为终端设备提供后续量的本地化控制、配置和管理等等,来充当云计算的扩展。从而,一些形式的雾计算提供的操作与本文论述的边缘计算一致;本文论述的边缘计算方面也适用于雾网络、雾化和雾配置。另外,本文论述的边缘计算系统的各方面可被配置为雾,或者雾的各方面可被集成到边缘计算体系结构中。
核心数据中心1032位于核心网络层(区域或地理中心级别),而全局网络云1042位于云数据中心层(国家或世界范围层)。对“核心”的使用是作为用于集中网络位置的术语来提供的——在网络中较深的位置——它可以被多个边缘节点或组件访问;然而,“核心”不一定指定“中心”或者网络的最深位置。因此,核心数据中心1032可位于边缘云1000之内、位于边缘云1000处或者位于其附近。虽然在图10中示出了说明性数目的客户端计算节点1002、边缘网关节点1012、边缘聚集节点1022、边缘核心数据中心1032、全局网络云1042,但是应当明白,边缘计算系统1000在每一层可包括额外的设备或系统。一层的设备可被配置为彼此的对等节点,并且相应地以协作的方式行事以满足服务目标。
与本文提供的示例相一致,客户端计算节点1002可被实现为任何类型的端点组件、设备、器具或者其他能够作为数据的生产者或消费者进行通信的事物。另外,在边缘计算系统1000中使用的标签“节点”或“设备”不一定意味着这种节点或设备以客户端或代理/仆从/追随者的角色进行操作;相反,边缘计算系统1000中的一个或多个节点或设备是指个体实体、节点或子系统,它们包括分立的或连接的硬件或软件配置,以促进或使用边缘云1000。
因此,边缘云1000是由被边缘网关节点1012和边缘聚集节点1022所操作以及在其内被操作的网络组件和功能特征形成的。边缘云1000可被实现为提供边缘计算和/或存储资源的任何类型的网络,这些资源的位置邻近具有无线电接入网络(radio accessnetwork,RAN)能力的端点设备(例如,移动计算设备、IoT设备、智能设备,等等),这些设备在图10中被示为客户端计算节点1002。换言之,边缘云1000可被设想为“边缘”,它连接端点设备和传统的网络接入点,同时还提供存储和/或计算能力,所述网络接入点充当进入服务提供商核心网络中的入口点,所述核心网络包括移动运营商网络(例如,全球移动通信系统(Global System for Mobile Communications,GSM)网络、长期演进(Long-TermEvolution,LTE)网络、5G/6G网络,等等)。也可以利用其他类型和形式的网络接入(例如,Wi-Fi、长距离无线、包括光网络在内的有线网络)来代替或者与这种3GPP运营商网络相结合。
在一些示例中,边缘云1000可以形成进入或者跨越雾联网配置1026(例如,雾设备1024的网络,未详细示出)的入口点的一部分或者以其他方式提供这种入口点,该雾联网配置1026可被实现为系统级水平和分布式体系结构,该体系结构分布资源和服务以执行特定功能。例如,雾设备1024的协调和分布式网络可以在IoT系统布置的情境中执行计算、存储、控制或联网方面。在核心数据中心1032和客户端端点(例如,客户端计算节点1002)之间的边缘云1000中可存在其他联网的、聚集的和分布式的功能。其中一些将在下面的章节中在网络功能或服务虚拟化的情境中论述,包括使用为多个利益相关者编排的虚拟边缘和虚拟服务。
如下文更详细论述的,边缘网关节点1012和边缘聚集节点1022合作向客户端计算节点1002提供各种边缘服务和安全性。此外,因为客户端计算节点1002可以是固定的或移动的,所以各个边缘网关节点1012可以与其他边缘网关设备合作,以便在相应的客户端计算节点1002在某区域中四处移动时传播当前提供的边缘服务、相关服务数据和安全性。为此,边缘网关节点1012和/或边缘聚集节点1022可以支持多租户和多利益相关者配置,其中来自多个服务提供商、所有者和多个消费者的服务(或者为其容宿的服务)可以在单个或多个计算设备上得到支持和协调。
在边缘云1000的体系结构内可以利用各种安全性方法。在多利益相关者环境中,可以有多个可加载安全性模块(loadable security module,LSM),用于配设实施利益相关者的利益的策略。实施点环境可以支持多个LSM,这些LSM应用加载的LSM策略的组合(例如,应用最受约束的有效策略,例如,如果A、B或C利益相关者中的一个或多个限制访问,那么访问就会被限制)。在边缘云1000内,每个边缘实体可以配设实施边缘实体利益的LSM。云实体可以配设实施云实体利益的LSM。同样地,各种雾和IoT网络实体可以配设实施雾实体的利益的LSM。
图11示出了一个示例,其中各种客户端端点1110(以移动设备、计算机、自主车辆、商业计算设备、工业处理设备的形式)向和从边缘云1100(例如,经由无线或有线网络1140)提供对于服务或数据事务的请求1120,并且接收对于服务或数据事务的响应1130。在边缘云1000内,CSP可以部署各种计算和存储资源,例如边缘内容节点1150,以提供来自分布式内容递送网络的缓存内容。边缘内容节点1150上的其他可用计算和存储资源可被用于执行其他服务和履行其他工作负载。边缘内容节点1150和边缘云1000的其他系统连接到云或数据中心1170,该云或数据中心1170使用回程网络1160来履行来自云/数据中心的对于网站、应用、数据库服务器等等的更高时延的请求。
各种实施例可被用于图1-图11的一个或多个示例中,以从包括网络接口控制器(network interface controller,NIC)、基础设施处理单元(infrastructure processingunit,IPU)、交换机和/或虚拟网络功能(virtual network function,VNF)的资源的池分配、配置和/或提供网络处理资源。
网络处理资源配置和分配
各种实施例允许配置来自于交换机、服务器NIC和VNF的联网资源(例如,虚拟端口、匹配动作规则,等等)的池。开放vSwitch(Open vSwitch,OVS)可被用作控制平面来与云编排或SDN控制器集成。在一些示例中,可以使用所请求的联网资源的池来实现数据平面。各种实施例利用物理交换机来控制(一个或多个)NIC和VNF数据平面。各种实施例可以支持AON环境中的传统联网。CSP可能够将传统联网(例如,OVS)用于遗留应用,并且将AON用于高性能应用。各种实施例可被用于服务网格中,该服务网格提供微服务和/或应用递送网络(Application Delivery Network,ADN)之间的通信。ADN可提供一组部署在网络上的服务,以提供从应用服务器到应用端点用户的应用可用性、安全性、可视性和加速。
图12描绘了示例系统。例如,在交换机服务器1210和计算服务器1240上执行的各种实体可以共享各个交换机1220和NIC 1230的处理器和封包处理资源。在一些示例中,交换机1220包括使用P4或其他编程语言(例如,C、Python、Broadcom网络编程语言(NPL)、或者x86兼容的可执行二进制文件或其他可执行二进制文件)配置的数据处理流水线1224。数据处理流水线1224可以由在交换机服务器1210中执行的不同实体访问。在一些示例中,交换机1220可以配置NIC 1230的可编程流水线1232以便为在计算服务器1240上执行的各种实体执行操作。
在一些示例中,控制器1202可以配置交换机1220的数据处理流水线1224,并且交换机1220可以配置NIC 1230的数据处理流水线1232。例如,控制器1202可以利用OpenStack云管理系统来管理在交换机服务器1210上执行的开放vSwitch(OVS)来配置交换机1220的数据处理流水线1224。交换机服务器1210的一些实施例利用SDN技术OpenFlow和OVS的开源实现。OVS可以提供虚拟机到虚拟机通信。可以使用其他云管理和编排系统,例如Kubernetes或VMWare。例如,Kubernetes容器可以利用OVS来访问网络设备。微服务通信(comms)技术(例如,Envoy、Nginx、HAProxy,等等)和块存储技术(例如,Ceph)也可以利用OVS来访问网络和封包处理资源。
实体(例如,虚拟机、容器、应用或者设备)可以利用数据处理流水线1224中的封包处理资源。如各种示例中所示,交换机、NIC和/或VNF的资源可以被提供给各种实体。在一些示例中,数据中心中的应用可包括以下各项中的至少一个或多个:传统联网、块存储、微服务联网、对象存储和人工智能(artificial intelligence,AI)。
各种实施例提供了不同的应用在交换机服务器1210中执行并且共享资源,例如处理器1216、交换机1220、处理器1242和NIC 1230。例如,监视和诊断流量可以使用网络交换机。微服务流量可以穿越私有或专属的微服务联网协议栈。例如,微服务通信和块存储接口可以通过经由OVS共享交换机1220和NIC 1230的资源来利用AON。
网络资源管理器1214可以配置数据处理流水线1224以执行各种操作。例如,为了执行网络交换机操作,数据处理流水线1224可以执行访问控制列表(access controllist,ACL)、防火墙、转发、路由、虚拟可扩展LAN(Virtual Extensible LAN,VXLAN)端接,等等。例如,为了执行微服务通信,数据处理流水线1224可以执行微服务交换机操作,例如微服务流量策略,以使用低时延路径和负载平衡将流量路由到正确的目的地。例如,为了执行块存储通信,数据处理流水线1224可以执行块存储操作,例如存储封包转发和分布式存储路径选择。
各种实施例提供了控制平面,由此交换机1220可以使用配置协议1225配置NIC的数据处理流水线1232,以将网络处理的管理从交换机1220扩展到计算机服务器1240和NIC1230。
在一些示例中,带内P4设备配置(In-band P4 Device Configuration,IPDC)协议可以被交换机1220用作配置协议1225来指示NIC 1230加载P4程序和/或添加条目到匹配动作表。在一些示例中,IPDC可以提供被定义为例如VLAN或带内网络遥测(In-band NetworkTelemetry,INT)中的封包内通道的厂商特定或部署特定通道。网络内遥测的各种示例被描述于:互联网工程任务组(nternet Engineering Task Forc,IETF)draft-kumar-ippm-ifa-01,“Inband Flow Analyze”(2019年2月);“In-band Network Telemetry(INT)Dataplane Specification,v2.0”,P4.org应用工作组(2020年2月);IETF draft-lapukhov-dataplane-probe-01,“Data-plane probe for in-band telemetrycollection”(2016年);以及IETF draft-ietf-ippm-ioam-data-09,“In-situOperations,Administration,and Maintenance(IOAM)”(2020年3月8日)。原地操作、管理和维护(In-situ Operations,Administration,and Maintenance,IOAM)在封包穿越网络中的两点之间的路径时记录封包中的操作和遥测信息。IOAM论述了原地OAM的数据字段和关联的数据类型。原地OAM数据字段可以被封装到各种协议中,例如NSH、分段路由、通用网络虚拟化封装(Generic Network Virtualization Encapsulation,GENEVE)、IPv6(经由扩展头部)、或者IPv4。
在一些示例中,IPDC可以提供厂商特定的命令封装方法,例如,gRPC,以封装能力协商、加载P4程序、获取/设置参数以及取回、添加或删除表条目的命令。在一些示例中,IPDC可以提供能力协商,例如组件协商能力,例如可加载的P4程序或固定的P4程序,参数获取/设置,表条目等等。P4程序可以由厂商特定的编译器(未示出)编译,该编译器为P4交换机、P4 NIC和P4 VNF分别生成P4二进制文件。在一些示例中,IPDC可以使得交换机1210发送经编译的P4程序以被NIC 1230加载。在一些示例中,IPDC可以提供设置参数,并且如果该参数被NIC 1230支持,则厂商特定参数可被远程设置。在一些示例中,IPDC可以取回、添加或删除表条目,并且如果该条目被支持,则表条目可以被远程取回、添加或删除。例如,用户定义的配置可以被封装在封包内部或者封装在额外的VLAN标签中,或者以其他厂商特定的方式被封装。
计算服务器1240中的接口可以提供用于由VM、容器或应用接收和发送网络封包的I/O接口,例如但不限于使用单根I/O虚拟化和共享规范修订版1.1(2010)及其变体、早前版本或者对其的更新的虚拟功能(virtual function,VF)设备接口;使用可缩放I/O虚拟化技术规范(2018年6月)及其变体、早前版本或者对其的更新的可指派设备接口(Assignable Device interface,ADI)虚拟设备;或者Linux内核套接字接口,例如AF_XDP。内核驱动程序和管理程序(例如,基于内核的虚拟机(Kernel-based Virtual Machine,KVM))的各种示例可以与交换机1220被结合使用。
图13-15描绘了图12的系统的示例配置。图12的硬件和软件组件可以被用在图13-图15的一个或多个配置中。图13描绘了示例配置,由此交换机1320可以由控制器1300编程。例如,控制器1300可以执行虚拟交换机代理(例如,开放vSwitch、Nginx,等等)或者编排应用(例如,OpenStack、VMware vCloud、Kubernetes,等等)。例如,控制器1300可以配置资源管理器1310以配置交换机1320的可编程封包处理流水线1322。在一些示例中,可以经由交换机服务器1302使用用于云编排的OVS联网管理接口,例如,用于OpenStack的联网OVSNeutron插件,来访问交换机1320。
在一些示例中,交换机服务器1302可以使用硬件接口,例如以太网自适应虚拟功能(Adaptive Virtual Function,AVF)规范、快速非易失性存储器(non-volatilememory express,NVMe),或者使用单根I/O虚拟化(single root I/O virtualization,SR-IOV)虚拟功能(virtual function,VF)或者可缩放I/O虚拟化(Scalable I/OVirtualization,SIOV)可指派设备接口(Assignable Device interface,ADI),来与交换机1320进行通信。SR-IOV至少与可从外围组件互连特别兴趣小组(PCI SIG)获得的规范兼容,包括诸如单根I/O虚拟化之类的规范以及共享规范修订版1.1(2010)及其变体、早前版本或者对其的更新。
在一些示例中,交换机1320可包括可编程封包流水线1322和一个或多个处理器。本文提供了可编程封包处理流水线1322的示例。在一些示例中,可编程封包处理流水线1322可以使用P4来进行编程,并且可以利用Trellis项目的fabric.p4。
交换机1320可以与NIC 1360和其他网络设备通信。在一些示例中,计算服务器1350可以使用硬件接口,例如以太网AVF、NVMe,或者使用SR-IOV VF或SIOV ADI,来与NIC 1360通信。
图14描绘了一种配置,由此,具有可由交换机配置的可编程流水线的NIC。在一些示例中,控制器1400和/或资源管理器1410可以配置交换机1420的可编程流水线1422,并且交换机1420的可编程流水线1422也配置NIC 1460的可编程流水线1462的匹配动作表。虽然示出的是单个NIC,但交换机1420可以配置多个NIC或IPU。
例如,控制器1400可以执行虚拟交换机代理(例如,开放vSwitch、Nginx,等等)或者编排应用(例如,OpenStack、VMware vCloud、Kubernetes,等等),它们可以动态地将某些规则从NIC 1460移动到交换机1420或者从交换机1420移动到NIC 1460。例如,一组一个或多个VM的流量规则的执行可以由计算服务器1450执行,另一组一个或多个VM的流量规则的执行可以由NIC 1460执行,而另外一组一个或多个VM的流量规则的执行可以由交换机1420执行。
图15描绘了一种示例系统,由此,由交换机执行的控制器配置交换机、NIC和VNF。执行虚拟交换机代理(例如,OVS)的控制器1500和/或资源管理器1510可以配置交换机1520的可编程流水线1522、NIC 1560的可编程流水线1562和/或在交换机服务器1502和/或计算服务器1550上运行的VNF以执行封包处理操作。VNF可以在VM或容器(或其他虚拟化环境)中运行,以实现封包处理操作,例如匹配动作操作。VNF可包括在诸如防火墙、域名系统(domain name system,DNS)、缓存或网络地址转化(network address translation,NAT)之类的通用可配置硬件上执行的虚拟化任务的服务链或序列,并且可以在虚拟环境(例如,虚拟机或容器)中运行。VNF可以作为服务链被链接在一起。
例如,执行虚拟交换机代理(例如,OVS)的控制器1500和/或资源管理器1510可以确定交换机1520、NIC 1560和在交换机服务器1502和/或计算服务器1550上运行的VNF中的哪一个要为特定应用执行封包处理操作,并且可以在交换机1520、NIC 1560和在交换机服务器1502和/或计算服务器1550上运行的VNF之间移动匹配动作操作,以便在设备和VNF之间分配封包处理工作。例如,适用于穿越交换机的封包的规则可以由交换机1520上的流水线1522执行,而适用于由NIC 1560接收的封包的本地规则可以由NIC 1560的流水线1562执行。对于在交换机1520和NIC 1560中资源有限的情况,可以使用计算服务器1550或交换机服务器1502中的VNF或CPU来执行匹配动作操作。
在一些示例中,交换机1520可以定义例外路径,以便使用VNF可访问的匹配动作表来处理封包。在使用VNF可访问的匹配动作表处理封包之后,可以使用配置1540将一个或多个匹配动作规则拷贝到交换机1520,以便在交换机1520处执行。
例如,交换机1520的可编程流水线1522可以支持数十万条匹配动作规则,但需要支持更多的规则。使用NIC 1560的封包处理流水线和/或一个或多个VNF可以扩展可用于封包处理的匹配动作规则的数目。可以使用管理通道和数据通道在NIC 1560的流水线1562或者交换机1520的流水线1522上执行VNF。管理通道可包括配置1540。数据通道可被用于处理由交换机表转发的网络封包,并且元数据可使用例如英特尔AVF或NVMe被封装在这些数据通道中的描述符中。
图16描绘了示例过程。在1602,一个或多个网络设备和/或一个或多个处理器执行的VNF中的一个或多个封包处理流水线可被识别为要被配置。例如,网络设备可包括交换机、NIC、IPU或者其他设备。在1604,基于第一网络设备包括要被配置的唯一封包处理流水线,第一网络设备的封包处理流水线被配置。例如,配置第一网络设备的封包处理流水线可包括配置第一网络设备的封包处理流水线来执行网络交换机操作,例如封包的访问控制列表(ACL)、防火墙、转发、路由、虚拟可扩展LAN(VXLAN)或者GENEVE端接等等。例如,配置第一网络设备的封包处理流水线可包括配置第一网络设备的封包处理流水线来执行微服务通信,例如微服务封包策略和负载平衡。例如,配置第一网络设备的封包处理流水线可包括配置第一网络设备的封包处理流水线来执行块交换机操作,例如存储封包转发和分布式存储路径选择。
在1606,基于第一网络设备被配置为编程第二网络设备的封包处理流水线,第一网络设备可以参与编程第二网络设备的封包处理流水线。例如,第一网络设备可以使用协议来执行与第二网络设备的能力协商和/或提供P4程序来进行执行、参数获取、参数设置、表条目添加,等等。在一些示例中,第一网络设备可以配置多个其他网络设备。
在1608,基于第一网络设备被配置为编程一个或多个VNF的封包处理操作,第一网络设备可参与编程一个或多个VNF的封包处理操作。可以在使用诸如PCIe或CXL之类的接口耦合到交换机的服务器上或者在使用诸如PCIe或CXL之类的接口耦合到NIC的服务器上执行该一个或多个VNF。
图17描绘了可以使用实施例或者被实施例使用的网络接口。网络接口中的各种资源(例如,FPGA和/或处理器1704)可被配置为根据本文描述的实施例执行封包处理。在一些实例中,网络接口1700可被实现为网络接口控制器、网络接口卡、主机架构接口(HFI)或者主机总线适配器(HBA),并且这样的示例可能是可互换的。网络接口1700可以使用总线、PCIe、CXL或DDR耦合到一个或多个服务器。网络接口1700可被实现为包括一个或多个处理器的片上系统(SoC)的一部分,或者被包括在也包含一个或多个处理器的多芯片封装上。
网络设备1700的一些示例是基础设施处理单元(IPU)或数据处理单元(DPU)的一部分,或者被IPU或DPU所利用。xPU至少可以指IPU、DPU、GPU、GPGPU或者其他处理单元(例如,加速器设备)。IPU或DPU可包括网络接口,其具有一个或多个可编程或固定功能的处理器来执行本来可由CPU执行的操作的负载转移。IPU或DPU可包括一个或多个存储器设备。在一些示例中,IPU或DPU可以执行虚拟交换机操作,管理存储事务(例如,压缩、密码术、虚拟化),并且管理在其他IPU、DPU、服务器或设备上执行的操作。
网络接口1700可包括收发器1702、处理器1704、发送队列1706、接收队列1708、存储器1710、以及总线接口1712、以及DMA引擎1752。收发器1702可能够接收和发送符合适当协议的封包,例如IEEE 802.3中描述的以太网,虽然可以使用其他协议。收发器1702可以经由网络介质(未描绘)接收和发送来自和去往网络的封包。收发器1702可包括PHY电路1714和介质访问控制(media access control,MAC)电路1716。PHY电路1714可包括编码和解码电路(未示出),以根据适用的物理层规范或标准对数据封包进行编码和解码。MAC电路1716可被配置为对接收到的封包执行MAC地址过滤,通过验证数据完好性来处理接收到的封包的MAC头部,去除前导和填充,并且提供封包内容以便由更高层处理。MAC电路1716可被配置为将要发送的数据组装成封包,这些封包包括目的地和源地址以及网络控制信息和差错检测散列值。
处理器1704可以是以下各项的任何一者或者其组合:处理器、核心、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或者其他允许网络接口1700的编程的可编程硬件设备。例如,处理器1704可以提供识别资源来用于执行工作负载和生成比特流来在所选资源上执行。例如,“智能网络接口”可以利用处理器1704在网络接口中提供封包处理能力。
封包分配器1724可以使用本文描述的时隙分配或者RSS提供接收到的封包的分发,以便由多个CPU或核心处理。当封包分配器1724使用RSS时,封包分配器1724可以基于接收到的封包的内容计算散列或者作出另一确定,以确定哪个CPU或核心要处理封包。
中断合并1722可以执行中断节制,由此,网络接口中断合并1722等待多个封包到达,或者等待超时期满,然后才生成中断给主机系统,以处理接收到的(一个或多个)封包。接收片段合并(Receive SegmentCoalescing,RSC)可由网络接口1700执行,由此,传入封包的部分被组合成封包的片段。网络接口1700将这个合并的封包提供给应用。
直接存储器访问(direct memory access,DMA)引擎1752可以将封包头部、封包有效载荷和/或描述符直接从主机存储器拷贝到网络接口,或者反之,而不是将封包拷贝到主机处的中间缓冲器并随后使用从中间缓冲器到目的地缓冲器的另一个拷贝操作。
存储器1710可以是任何类型的易失性或非易失性存储器设备,并且可以存储用于对网络接口1700编程的任何队列或指令。发送队列1706可包括供网络接口发送的数据或者对数据的引用。接收队列1708可包括由网络接口从网络接收的数据或者对数据的引用。描述符队列1720可包括引用发送队列1706或接收队列1708中的数据或封包的描述符。总线接口1712可提供与主机设备(未描绘)的接口。例如,总线接口1712可以与PCI、快速PCI、PCI-x、串行ATA和/或USB兼容接口兼容(虽然可以使用其他互连标准)。
图18描绘了示例交换机。交换机中的各种资源(例如,封包处理流水线1812、处理器1816、和/或FPGA 1818)可被配置为执行封包处理,并且根据本文描述的实施例在另一个网络设备中配置VNF或封包处理流水线。交换机1804可以将任何格式的或者按照任何规格的封包或帧从任何端口1802-0至1802-X路由到任何端口1806-0至1806-Y(或者反之)。端口1802-0至1802-X中的任何一者可以连接到一个或多个互连设备的网络。类似地,端口1806-0至1806-X中的任何一者可以连接到一个或多个互连设备的网络。
在一些示例中,交换架构1810可以提供来自一个或多个入口端口的封包的路由,以便在从交换机1804出去之前进行处理。交换架构180可被实现为一个或多个多跳拓扑结构,其中示例拓扑结构包括圆环、蝴蝶、缓冲多阶段等等,或者共享存储器交换架构(sharedmemory switch fabric,SMSF),以及其他实现方式。SMSF可以是连接到交换机中的入口端口和所有出口端口的任何交换架构,其中入口子系统将封包片段写入(存储)到架构的存储器中,而出口子系统从架构的存储器中读取(取得)封包片段。
存储器1808可被配置为在从一个或多个端口出去之前存储在端口接收的封包。封包处理流水线1812可以使用将封包特性与关联的输出端口进行映射的表格来确定将封包或帧传送到哪个端口。封包处理流水线1812可被配置为对收到的封包执行匹配动作,以使用存储在三元内容可寻址存储器(TCAM)表格中的信息或者一些实施例中的确切匹配表来识别封包处理规则和下一跳。例如,可以使用匹配动作表或电路,由此封包的一部分的散列被用作索引以找到条目。封包处理流水线1812可以实现访问控制列表(ACL)或者由于队列溢出而丢弃封包。封包处理流水线1812可被配置为在封包出去之前将关于交换机1804的操作和遥测数据添加到封包。
封包处理流水线1812的操作的配置,包括其数据平面,可以使用P4、C、Python、Broadcom网络编程语言(NPL)或x86兼容的可执行二进制文件或其他可执行二进制文件来进行编程。处理器1816和FPGA 1818可以被利用来进行封包处理。
图19描绘了可被用于交换机或网络设备中的示例封包处理流水线。封包处理流水线的配置可以根据本文描述的实施例发生,以配置封包处理操作并且分配封包处理资源供一个或多个应用使用。例如,图19图示了几个入口流水线1920、流量管理单元(被称为流量管理器)1950、以及几个出口流水线1930。虽然被示为单独的结构,但在一些实施例中,入口流水线1920和出口流水线1930可以使用相同的电路资源。在一些实施例中,流水线电路被配置为同步地处理入口和/或出口流水线封包,以及非封包数据。也就是说,流水线的特定阶段可以在同一时钟周期中处理入口封包、出口封包和非封包数据的任何组合。然而,在其他实施例中,入口和出口流水线是单独的电路。在这些其他实施例中的一些之中,入口流水线也处理非封包数据。
在一些实施例中,响应于接收到封包,封包被引导到入口流水线1920之一,其中一入口流水线可对应于硬件转发元件的一个或多个端口。在通过所选择的入口流水线1920之后,封包被发送到流量管理器1950,在这里封包被排队并且放置在输出缓冲器1954中。在一些实施例中,处理封包的入口流水线1920指定封包要被流量管理器1950放置入哪个队列中(例如,基于封包的目的地或者封包的流量标识符)。流量管理器1950然后将封包调遣到适当的出口流水线1930,其中出口流水线可对应于转发元件的一个或多个端口。在一些实施例中,在哪个入口流水线1920处理封包和流量管理器1950将封包调遣到哪个出口流水线1930之间,没有必要的关联。也就是说,封包在通过第一端口被接收之后,可能最初被入口流水线1920b处理,随后被出口流水线1930a处理以从第二端口被发送出,等等。
至少一个入口流水线1920包括解析器1922、匹配动作单元(match-action unit,MAU)1924、以及逆解析器(deparser)1926。类似地,出口流水线1930可包括解析器1932、MAU1934、以及逆解析器1936。解析器1922或1932在一些实施例中以特定的顺序接收封包作为格式化的比特集合,并且将封包解析成其组成头部字段。在一些示例中,解析器从封包的开头开始,并且将头部字段指派给字段(例如,数据容器)进行处理。在一些实施例中,解析器1922或1932从封包的有效载荷中分离出封包头部(直到指定点),并且将有效载荷(或者整个封包,包括头部和有效载荷)直接发送到逆解析器而不经过MAU处理。
MAU 1924或1934可以对封包数据执行处理。在一些实施例中,MAU包括阶段的序列,其中每个阶段包括一个或多个匹配表和一动作引擎。匹配表可包括一组匹配条目,封包头部字段被与之匹配(例如,使用散列表),匹配条目引用动作条目。当封包与特定的匹配条目相匹配时,该特定的匹配条目引用特定的动作条目,该动作条目指定了要对封包执行的一组动作(例如,将封包发送到特定的端口,修改一个或多个封包头部字段值,丢弃封包,将封包镜像到镜像缓冲器,等等)。该阶段的动作引擎可以对封包执行动作,然后该封包被发送到MAU的下一个阶段。例如,使用MAU,可以收集转发元件的遥测数据,并且在一个或多个封包中将其发送到另一个网络设备、交换机、路由器或端点接收器或发送器。
逆解析器1926或1936可以使用由MAU 1924或1934修改的封包头部向量(packetheader vector,PHV)和直接从解析器1922或1932接收的有效载荷来重建封包。逆解析器可以构造一个可以通过物理网络发送出去或者发送到流量管理器1950的封包。在一些实施例中,逆解析器可以基于与PHV一起接收的指定要包括在封包头部中的协议的数据,以及它自己为每个可能协议的头部字段存储的数据容器位置的列表,来构造这个封包。
流量管理器1950可包括封包复制器1952和输出缓冲器1954。在一些实施例中,流量管理器1950可包括其他组件,例如用于发送关于输出端口故障的信号的反馈生成器、一系列队列和用于这些队列的调度器、队列状态分析组件、以及另外的组件。一些实施例的封包复制器1952为广播/多播封包执行复制,生成多个封包以添加到输出缓冲器(例如,以便分发到不同的出口流水线)。
在一些实施例中,输出缓冲器1954可以是流量管理器的排队和缓冲系统的一部分。流量管理器1950可以提供共享的缓冲器,该缓冲器适应了出口流水线中的任何排队延迟。在一些实施例中,这个共享输出缓冲器1954可以存储封包数据,而对该封包数据的引用(例如,指针)被保存在每个出口流水线1930的不同队列中。出口流水线可以使用控制平面可配置的排队策略,从共同的数据缓冲器请求它们各自的数据。当封包数据引用到达其队列的头部并且被调度为出队时,相应的封包数据可以被从输出缓冲器1954读出并且进入到相应的出口流水线1930中。在一些实施例中,封包数据可以被多个流水线引用(例如,对于多播封包)。在这种情况下,直到对封包数据的所有引用都通过了它们各自的队列为止,封包数据才会被从这个输出缓冲区1954中移除。
图20描绘了示例计算系统。系统2000的各种实施例可被包括在网络设备、计算服务器和/或交换机服务器中,用于根据本文描述的实施例分配封包处理资源。系统2000包括处理器2010,该处理器为系统2000提供处理、操作管理和指令的执行。处理器2010可包括任何类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核心、或者用来为系统2000提供处理的其他处理硬件、或者处理器的组合。处理器2010控制系统2000的整体操作,并且可以是或者可以包括一个或多个可编程通用或专用微处理器、数字信号处理器(digital signal processor,DSP)、可编程控制器、专用集成电路(application specificintegrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD),等等,或者这种设备的组合。
在一个示例中,系统2000包括与处理器2010耦合的接口2012,它可以代表更高速度的接口或者高吞吐量接口,用于需要更高带宽连接的系统组件,例如存储器子系统2020或图形接口组件2040,或者加速器2042。接口2012代表接口电路,它可以是独立的组件,或者可被集成到处理器管芯上。如果存在,则图形接口2040与图形组件相对接,用于向系统2000的用户提供视觉显示。在一个示例中,图形接口2040可以驱动向用户提供输出的高清晰度(high definition,HD)显示器。高清晰度可以指具有大约100PPI(每英寸像素)或更大的像素密度的显示器,并且可包括诸如全HD(例如,1080p)、视网膜显示器、4K(超高清或UHD)之类的格式或其他格式。在一个示例中,显示器可包括触摸屏显示器。在一个示例中,图形接口2040基于存储在存储器2030中的数据或基于由处理器2010执行的操作或这两者而生成显示。在一个示例中,图形接口2040基于存储在存储器2030中的数据或基于由处理器2010执行的操作或这两者而生成显示。
加速器2042可以是固定功能的或可编程的负载转移引擎,该引擎可被处理器2010访问或使用。例如,加速器2042之中的一加速器可以提供压缩(DC)能力、密码服务(例如公钥加密(public key encryption,PKE))、密码、散列/认证能力、解密、或者其他能力或服务。在一些实施例中,额外地或者替换地,加速器2042之中的一加速器提供如本文所述的现场选择控制器能力。在一些情况下,加速器2042可以被集成到CPU插座(例如,包括CPU并且提供与CPU的电接口的主板或电路板的连接器)中。例如,加速器2042可包括单核或多核处理器、图形处理单元、逻辑执行单元、单级或多级缓存、可用来独立执行程序或线程的功能单元、专用集成电路(application specific integrated circuit,ASIC)、神经网络处理器(neural network processor,NNP)、可编程控制逻辑、以及可编程处理元件,例如现场可编程门阵列(field programmable gate array,FPGA)或者可编程逻辑器件(programmablelogic device,PLD)。加速器2042可以提供多个神经网络、CPU、处理器核心、通用图形处理单元,或者图形处理单元可供人工智能(artificial intelligenc,AI)或机器学习(machine learning,ML)模型使用。例如,AI模型可以使用或包括以下各项中的一个或多个:强化学习方案、Q学习方案、深度Q学习、或者异步优势动作评价(AsynchronousAdvantage Actor-Critic,A3C)、组合神经网络、递归组合神经网络、或者其他AI或ML模型。多个神经网络、处理器核心或图形处理单元可供AI或ML模型使用。
处理器2010和/或加速器2042的各种实施例可以根据本文描述的实施例执行可分配给一个或多个应用的封包处理操作。
存储器子系统2020代表系统2000的主存储器,并且为将由处理器2010执行的代码或者在执行例程时将要使用的数据值提供存储。存储器子系统2020可包括一个或多个存储器设备2030,例如只读存储器(read-only memory,ROM)、闪存、一个或多个品种的随机访问存储器(random access memory,RAM)(比如DRAM)、或者其他存储器设备、或者这种设备的组合。存储器2030存储和容宿——除其他外——操作系统(OS)2032,以为系统2000中的指令的执行提供软件平台。此外,应用2034可以从存储器2030在OS 2032的软件平台上执行。应用2034代表具有其自己的操作逻辑的程序,以执行一个或多个功能的执行。进程2036代表向OS 2032或一个或多个应用2034或者其组合提供辅助功能的代理或例程。OS 2032、应用2034和进程2036提供软件逻辑以为系统2000提供功能。在一个示例中,存储器子系统2020包括存储器控制器2022,它是用于生成和发出命令给存储器2030的存储器控制器。将会理解,存储器控制器2022可以是处理器2010的物理部分或者接口2012的物理部分。例如,存储器控制器2022可以是集成的存储器控制器,与处理器2010一起被集成到电路上。
在一些示例中,OS 2032可以是服务器或个人计算机、Free MacVMware vSphere、openSUSE、RHEL、CentOS、Debian、Ubuntu、或者任何其他操作系统。OS和驱动程序可以在Texas等等公司销售或设计的CPU上执行。
虽然没有具体图示,但将会理解,系统2000可包括设备之间的一个或多个总线或总线系统,例如存储器总线、图形总线、接口总线或者其他。总线或其他信号线可以将组件通信地或电气地耦合在一起,或者同时将组件通信地且电气地耦合。总线可包括物理通信线路、点到点连接、桥接器、适配器、控制器、或者其他电路或者这些的组合。总线可包括例如以下各项中的一个或多个:系统总线、外围组件互连(Peripheral ComponentInterconnect,PCI)总线、Hyper Transport或工业标准体系结构(industry standardarchitecture,ISA)总线、小型计算机系统接口(small computer system interface,SCSI)总线、通用串行总线(universal serial bus,USB)、或者电气与电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)标准1394总线(Firewire)。
在一个示例中,系统2000包括接口2014,它可以耦合到接口2012。在一个示例中,接口2014代表接口电路,它可包括独立的组件和集成电路。在一个示例中,多个用户接口组件或外围组件或者这两者耦合到接口2014。网络接口2050向系统2000提供通过一个或多个网络与远程设备(例如,服务器或其他计算设备)通信的能力。网络接口2050可包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)、或者其他基于有线或无线标准的或专有的接口。网络接口2050可以将数据传输到在同一数据中心或机架中的设备或者远程设备,这可包括发送存储在存储器中的数据。网络接口2050可以从远程设备接收数据,这可包括将接收到的数据存储到存储器中。各种实施例可以联系网络接口205被用于向一个或多个应用分配封包处理资源。
在一个示例中,系统2000包括一个或多个输入/输出(I/O)接口2060。I/O接口2060可包括一个或多个接口组件,用户通过这些接口组件与系统2000进行交互(例如,音频、字母数字、触觉/触摸或者其他接口)。外围接口2070可包括上文没有具体提到的任何硬件接口。外设一般是指依赖性地连接到系统2000的设备。依赖性连接是指这样的连接:系统2000提供软件平台或硬件平台或者这两者,操作在该平台上执行,并且用户与该平台进行交互。
在一个示例中,系统2000包括存储子系统2080,来以非易失方式存储数据。在一个示例中,在某些系统实现方式中,存储装置2080的至少某些组件可以与存储器子系统2020的组件重叠。存储子系统2080包括(一个或多个)存储设备2084,其可以是或者可以包括用于以非易失性方式存储大量数据的任何常规介质,例如一个或多个磁性的、固态的、或者基于光学的盘,或者这些的组合。存储装置2084以持久的状态保存代码或指令和数据2086(例如,尽管到系统2000的电力中断,该值仍被保留)。存储装置2084可以被笼统地认为是“存储器”,虽然存储器2030通常是执行或操作存储器,以提供指令给处理器2010。存储装置2084是非易失性的,而存储器2030可包括易失性存储器(例如,如果到系统2000的电力被中断,数据的值或状态是不确定的)。在一个示例中,存储子系统2080包括控制器2082来与存储装置2084相对接。在一个示例中,控制器2082是接口2014或处理器2010的物理部分,或者可包括处理器2010和接口2014两者中的电路或逻辑。
易失性存储器是在到设备的电力被中断的情况下状态不确定(并且因此存储在其中的数据不确定)的存储器。动态易失性存储器使用刷新存储在设备中的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机访问存储器),或者某种变体,例如同步DRAM(SDRAM)。易失性存储器的示例包括缓存。如本文所述的存储器子系统可与若干个存储器技术兼容,例如DDR3(双倍数据速率版本3,由JEDEC(Joint Electronic DeviceEngineering Council,联合电子设备工程委员会)于2007年6月16日最初发布)。DDR4(DDR版本4,初始规范由JEDEC于2012年9月发布),DDR4E(DDR版本4),LPDDR3(低功率DDR版本3,JESD209-3B,2013年8月由JEDEC发布),LPDDR4(LPDDR版本4,JESD209-4,最初由JEDEC于2014年8月发布),WIO2(宽输入/输出版本2,JESD229-2,最初由JEDEC于2014年8月发布),HBM(高带宽存储器,JESD325,最初由JEDEC于2013年10月发布)、LPDDR5(当前在被JEDEC讨论)、HBM2(HBM版本2,当前在被JEDEC讨论),或者其他存储器技术或存储器技术的组合,以及基于这种规范的衍生或扩展的技术。
非易失性存储器(non-volatile memory,NVM)设备是一种存储器,其状态即使在到该设备的电力被中断的情况下也是确定的。在一个实施例中,NVM设备可包括可块状寻址的存储器设备,例如NAND技术,或者更具体而言,多阈值级NAND闪存(例如,单级单元(Single-Level Cell,“SLC”),多级单元(Multi-Level Cell,“MLC”),四级单元(Quad-Level Cell,“QLC”),三级单元(Tri-Level Cell,“TLC”),或者一些其他NAND)。NVM设备还可包括可字节寻址的就地写入的三维交叉点存储器设备,或者其他可字节寻址的就地写入的NVM设备(也称为持续性存储器),例如单级或多级相变存储器(Phase Change Memory,PCM)或者带开关的相变存储器(phase change memory with a switch,PCMS),OptaneTM存储器,使用硫属化合物相变材料(例如,硫属化合物玻璃)的NVM设备,包括金属氧化物基、氧空位基、和导电桥随机访问存储器(Conductive Bridge Random AccessMemory,CB-RAM)的电阻性存储器,纳米线存储器,铁电随机访问存储器(FeRAM、FRAM),包含了忆阻器技术的磁阻随机访问存储器(magneto resistive random access memory,MRAM),自旋转移矩(spin transfer torque,STT)-MRAM,基于自旋电子磁结存储器的设备,基于磁性隧道结(magnetic tunneling junction,MTJ)的设备,基于DW(Domain Wall,畴壁)和SOT(Spin Orbit Transfer,自旋轨道转移)的设备,基于晶闸管的存储器设备,或者上述各项中的一个或多个的组合,或者其他存储器。
电源(未描绘)向系统2000的组件提供电力。更具体而言,电源通常与系统2000中的一个或多个电力供应源相对接,以向系统2000的组件提供电力。在一个示例中,电力供应源包括AC到DC(交流电到直流电)适配器,以插入到壁式插座中。这种AC电力可以是可再生能量(例如,太阳能)电源。在一个示例中,电源包括DC电源,例如外部AC到DC转换器。在一个示例中,电源或电力供应源包括无线充电硬件,以经由接近充电场来充电。在一个示例中,电源可包括内部电池、交流供应源、基于运动的电力供应源、太阳能电力供应源、或者燃料电池源。
在一示例中,可以使用处理器、存储器、存储装置、网络接口和其他组件的互连计算托架来实现系统2000。可以使用高速互连,例如:以太网(IEEE 802.3)、远程直接存储器访问(remote direct memory access,RDMA)、InfiniBand、互联网广域RDMA协议(InternetWide Area RDMA Protocol,iWARP)、传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)、快速UDP互联网连接(quick UDPInternet Connection,QUIC)、基于聚合以太网的RDMA(RDMA over Converged Ethernet,RoCE)、快速外围组件互连(Peripheral Component Interconnect express,PCIe)、英特尔QuickPath互连(QuickPath Interconnect,QPI)、英特尔超级路径互连(Ultra PathInterconnect,UPI)、英特尔片上系统架构(Intel On-Chip System Fabric,IOSF)、Omni-Path、计算快速链路(Compute Express Link,CXL)、HyperTransport、高速架构、NVLink、高级微控制器总线体系结构(Advanced Microcontroller Bus Architecture,AMBA)互连、OpenCAPI、Gen-Z、无限架构(Infinity Fabric,IF)、加速器缓存相干互连(Cache CoherentInterconnect for Accelerator,CCIX)、3GPP长期演进(Long Term Evolution,LTE)(4G)、3GPP 5G、以及这些的变体。可以使用诸如基于架构的NVMe(NVMe over Fabrics,NVMe-oF)或NVMe之类的协议将数据拷贝或存储到虚拟化存储节点或者访问数据。
本文的实施例可被实现在各种类型的计算和联网设备中,例如交换机、路由器、机架和刀片服务器,例如在数据中心和/或服务器场环境中使用的那些。数据中心和服务器场中使用的服务器包括阵列式服务器配置,例如基于机架的服务器或刀片服务器。这些服务器经由各种网络配设在通信中互连,例如将各组服务器划分为局域网(Local AreaNetwork,LAN),在LAN之间有适当的交换和路由设施,以形成私有内联网。例如,云主机设施通常可采用具有众多服务器的大型数据中心。刀片包括单独的计算平台,该计算平台被配置为执行服务器类型的功能,即,“卡上服务器”。因此,刀片可包括传统服务器所共有的组件,包括主印刷电路板(主板),其提供内部布线(例如,总线),用于耦合适当的集成电路(IC)和安放到板上的其他组件。
在一些示例中,可联系以下各项来使用本文描述的网络接口和其他实施例:基站(例如,3G、4G、5G,等等),宏基站(例如,5G网络),皮站(例如,IEEE 802.11兼容接入点),纳米站(例如,用于点对多点(Point-to-MultiPoint,PtMP)应用),驻地内数据中心,驻地外数据中心,边缘网络元件,边缘服务器,边缘交换机,雾网络元件,和/或混合数据中心(例如,使用虚拟化、云和软件定义联网来跨物理数据中心和分布式多云环境递送应用工作负载的数据中心)。
可以利用硬件元素、软件元素或者两者的组合来实现各种示例。在一些示例中,硬件元素可包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器,等等)、集成电路、ASIC、PLD、DSP、FPGA、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组,等等。在一些示例中,软件元素可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或者这些的组合。确定一示例是否利用硬件元素和/或软件元素来实现可按照给定的实现方式所期望的根据任何数目的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。处理器可以是硬件状态机、数字控制逻辑、中央处理单元或者任何硬件、固件和/或软件元素的一个或多个组合。
一些示例可以利用制品或者至少一个计算机可读介质来实现或者被实现为制品或者至少一个计算机可读介质。计算机可读介质可包括非暂态存储介质来存储逻辑。在一些示例中,非暂态存储介质可包括一种或多种类型的能够存储电子数据的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可改写存储器,等等。在一些示例中,逻辑可包括各种软件元素,例如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号,或者这些的组合。
根据一些示例,计算机可读介质可包括非暂态存储介质来存储或维护指令,这些指令当被机器、计算设备或系统执行时,使得该机器、计算设备或系统执行根据描述的示例的方法和/或操作。指令可包括任何适当类型的代码,例如源代码、经编译的代码、经解释的代码,可执行代码、静态代码、动态代码,等等。可根据预定的计算机语言、方式或语法来实现指令,用于指示机器、计算设备或系统执行特定的功能。可利用任何适当的高级别的、低级别的、面向对象的、视觉的、编译的和/或解释的编程语言来实现指令。
至少一个示例的一个或多个方面可由存储在至少一个机器可读介质上的表示处理器内的各种逻辑的代表性指令来实现,这些指令当被机器、计算设备或系统读取时,使得该机器、计算设备或系统制作逻辑来执行本文描述的技术。这种被称为“IP核心”的表现形式可被存储在有形机器可读介质上并且被提供到各种客户或制造设施以加载到实际制作该逻辑或处理器的制作机器中。
短语“一个示例”或者“一示例”的出现不一定全都指的是同一示例或实施例。本文描述的任何方面可以与本文描述的任何其他方面或类似方面相组合,无论这些方面是否是针对同一附图或元素来描述的。附图中描绘的块功能的分割、省略或包括并不推断出用于实现这些功能的硬件组件、电路、软件和/或元件在实施例中一定会被分割、省略或包括。
可利用表述“耦合”和“连接”以及其衍生词来描述一些示例。这些术语并不一定打算是彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可指示出两个或更多个元素与彼此发生直接物理或电气接触。然而,术语“耦合”也可以指两个或更多个元素没有与彼此发生直接接触,但仍与彼此合作或交互。
术语“第一”、“第二”之类的在本文中并不表示任何顺序、数量或重要性,而是用来区分一个元素与另一个元素。本文的术语“一”并不表示对数量的限制,而是表示至少一个被提及的项目的存在。本文提到信号时使用的术语“断言”指的是该信号的一种状态,在这种状态下,信号是有效的,并且该状态可以通过向该信号施加任何逻辑电平(无论是逻辑0还是逻辑1)来实现。术语“随后”或“之后”可以指紧随在后或者跟随在某个或某些其他事件之后。根据替换实施例,也可以执行其他操作序列。此外,取决于特定的应用,可以添加或去除额外的操作。可以使用变化的任何组合,并且受益于本公开的本领域普通技术人员将会理解其许多变化、修改和替换实施例。
诸如短语“X、Y或Z中的至少一者”这样的析取语言,除非另有具体声明,否则在上下文内被理解为一般用来陈述一项目、术语等等可以是X、Y或Z,或者其组合(例如,X、Y和/或Z)。从而,这种析取语言一般不打算也不应当暗示某些实施例要求至少一个X、至少一个Y或者至少一个Z的每一者存在。此外,除非另有具体声明,诸如短语“X、Y和Z中的至少一者”这样的连接性语言也应当被理解为指X、Y、Z或者其组合,包括“X、Y和/或Z。”
下面提供本文公开的设备、系统和方法的说明性示例。设备、系统和方法的实施例可包括下面描述的示例中的一个或多个或者其组合。
示例1包括一种装置,包括:交换机,被配置为从封包处理资源的池向多个应用分配封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
示例2包括一个或多个示例,其中,所述可配置封包处理流水线和所述封包处理资源用于执行以下各项中的一个或多个:网络交换机操作、微服务通信、和/或块存储操作。
示例3包括一个或多个示例,其中,所述网络交换机操作包括以下各项中的一个或多个:应用至少一个访问控制列表(ACL)、封包转发、封包路由、和/或虚拟可扩展LAN(VXLAN)或GENEVE端接。
示例4包括一个或多个示例,其中,所述微服务通信包括以下各项中的一个或多个:微服务之间的封包路由、和/或被利用的微服务的负载平衡。
示例5包括一个或多个示例,其中,所述块存储操作包括以下各项中的一个或多个:存储封包转发、和/或分布式存储路径选择。
示例6包括一个或多个示例,其中,所述交换机用于通过发出数据平面编程软件来配置所述一个或多个网络设备的可配置封包处理流水线,所述数据平面编程软件符合编程协议无关封包处理器(P4)、C、Python、网络编程语言(NPL),和/或包括可执行二进制文件。
示例7包括一个或多个示例,其中,所述一个或多个服务器的封包处理资源用于执行虚拟网络功能(VNF)。
示例8包括一个或多个示例,并且包括所述一个或多个服务器,其中,所述一个或多个服务器中的至少一者用于执行所述多个应用中的至少一个应用以利用应用自有联网(AON)和开放vSwitch来访问所分配的封包处理资源。
示例9包括一个或多个示例,其中,所述一个或多个网络设备包括以下各项中的一个或多个:网络接口控制器(NIC)、交换机、和/或基础设施处理单元(IPU)。
示例10包括一个或多个示例,并且包括一种方法,该方法包括:网络设备从封包处理资源的池向多个应用提供封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
示例11包括一个或多个示例,其中,所述可配置封包处理流水线执行以下各项中的一个或多个:网络交换机操作、微服务通信、和/或块存储操作。
示例12包括一个或多个示例,其中,所述网络交换机操作包括以下各项中的一个或多个:应用至少一个访问控制列表(ACL)、封包转发、封包路由、和/或虚拟可扩展LAN(VXLAN)端接。
示例13包括一个或多个示例,其中,所述微服务通信包括以下各项中的一个或多个:微服务之间的封包路由、和/或被利用的微服务的负载平衡。
示例14包括一个或多个示例,其中,所述块存储操作包括以下各项中的一个或多个:存储封包转发、和/或分布式存储路径选择。
示例15包括一个或多个示例,并且包括利用数据平面编程软件来配置所述封包处理资源。
示例16包括一个或多个示例,其中,所述数据平面编程软件符合编程协议无关封包处理器(P4)、C、Python、网络编程语言(NPL)、和/或包括可执行二进制文件。
示例17包括一个或多个示例,其中,所述数据平面编程软件配置所述封包处理资源的匹配动作条目。
示例18包括一个或多个示例,其中,所述一个或多个服务器的封包处理资源用于执行虚拟网络功能(VNF)。
示例19包括一个或多个示例,其中,所述一个或多个网络设备包括以下各项中的一个或多个:网络接口控制器(NIC)、交换机、和/或基础设施处理单元(IPU)。
示例20包括一个或多个示例,其中:所述多个应用中的至少一个应用用于利用应用自有联网(AON)和开放vSwitch来访问所提供的封包处理资源。
Claims (29)
1.一种装置,包括:
交换机,包括电路,所述电路被配置为从封包处理资源的池向多个应用分配封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
2.如权利要求1所述的装置,其中,所述可配置封包处理流水线和所述封包处理资源用于执行以下各项中的一个或多个:网络交换机操作、微服务通信、和/或块存储操作。
3.如权利要求2所述的装置,其中,所述网络交换机操作包括以下各项中的一个或多个:应用至少一个访问控制列表(ACL)、封包转发、封包路由、和/或虚拟可扩展LAN(VXLAN)或GENEVE端接。
4.如权利要求2所述的装置,其中,所述微服务通信包括以下各项中的一个或多个:微服务之间的封包路由、和/或被利用的微服务的负载平衡。
5.如权利要求2所述的装置,其中,所述块存储操作包括以下各项中的一个或多个:存储封包转发、和/或分布式存储路径选择。
6.如权利要求1所述的装置,其中,所述电路用于通过发出数据平面编程软件来配置所述一个或多个网络设备的可配置封包处理流水线,所述数据平面编程软件符合编程协议无关封包处理器(P4)、C、Python、网络编程语言(NPL),和/或包括可执行二进制文件。
7.如权利要求1所述的装置,其中,所述一个或多个服务器的封包处理资源用于执行虚拟网络功能(VNF)。
8.如权利要求1所述的装置,包括:
所述一个或多个服务器,其中,所述一个或多个服务器中的至少一者用于执行所述多个应用中的至少一个应用以利用应用自有联网(AON)和开放vSwitch来访问所分配的封包处理资源。
9.如权利要求1所述的装置,其中,所述一个或多个网络设备包括以下各项中的一个或多个:网络接口控制器(NIC)、交换机、和/或基础设施处理单元(IPU)。
10.一种方法,包括:
网络设备从封包处理资源的池向多个应用提供封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
11.如权利要求10所述的方法,其中,所述可配置封包处理流水线执行以下各项中的一个或多个:网络交换机操作、微服务通信、和/或块存储操作。
12.如权利要求11所述的方法,其中,所述网络交换机操作包括以下各项中的一个或多个:应用至少一个访问控制列表(ACL)、封包转发、封包路由、和/或虚拟可扩展LAN(VXLAN)端接。
13.如权利要求11所述的方法,其中,所述微服务通信包括以下各项中的一个或多个:微服务之间的封包路由、和/或被利用的微服务的负载平衡。
14.如权利要求11所述的方法,其中,所述块存储操作包括以下各项中的一个或多个:存储封包转发、和/或分布式存储路径选择。
15.如权利要求10所述的方法,包括:
利用数据平面编程软件来配置所述封包处理资源。
16.如权利要求15所述的方法,其中,所述数据平面编程软件符合编程协议无关封包处理器(P4)、C、Python、网络编程语言(NPL),和/或包括可执行二进制文件。
17.如权利要求15所述的方法,其中,所述数据平面编程软件配置所述封包处理资源的匹配动作条目。
18.如权利要求10所述的方法,其中,所述一个或多个服务器的封包处理资源用于执行虚拟网络功能(VNF)。
19.如权利要求10所述的方法,其中,所述一个或多个网络设备包括以下各项中的一个或多个:网络接口控制器(NIC)、交换机、和/或基础设施处理单元(IPU)。
20.如权利要求10所述的方法,其中:
所述多个应用中的至少一个应用用于利用应用自有联网(AON)和开放vSwitch来访问所提供的封包处理资源。
21.一种计算机可读介质,在其上存储有指令,所述指令在由一个或多个处理器执行时,使得:
将网络设备配置为从封包处理资源的池向多个应用分配封包处理资源,其中,所述封包处理资源的池包括一个或多个网络设备的可配置封包处理流水线和一个或多个服务器的封包处理资源。
22.如权利要求21所述的计算机可读介质,其中,所述可配置封包处理流水线执行以下各项中的一个或多个:网络交换机操作、微服务通信、和/或块存储操作。
23.如权利要求22所述的计算机可读介质,其中,所述网络交换机操作包括以下各项中的一个或多个:应用至少一个访问控制列表(ACL)、封包转发、封包路由、和/或虚拟可扩展LAN(VXLAN)端接。
24.如权利要求22所述的计算机可读介质,其中,所述微服务通信包括以下各项中的一个或多个:微服务之间的封包路由、和/或被利用的微服务的负载平衡。
25.如权利要求22所述的计算机可读介质,其中,所述块存储操作包括以下各项中的一个或多个:存储封包转发、和/或分布式存储路径选择。
26.如权利要求21所述的计算机可读介质,在其上存储有指令,所述指令在由一个或多个处理器执行时,使得:
利用数据平面编程软件来配置所述封包处理资源。
27.如权利要求26所述的计算机可读介质,其中,所述数据平面编程软件符合编程协议无关封包处理器(P4)、C、Python、网络编程语言(NPL),和/或包括可执行二进制文件。
28.如权利要求26所述的计算机可读介质,其中,所述数据平面编程软件配置所述封包处理资源的匹配动作条目。
29.如权利要求21所述的计算机可读介质,所述一个或多个网络设备包括以下各项中的一个或多个:网络接口控制器(NIC)、交换机、和/或基础设施处理单元(IPU)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/239,329 US20210266253A1 (en) | 2021-04-23 | 2021-04-23 | Pooling of network processing resources |
US17/239,329 | 2021-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237550A true CN115237550A (zh) | 2022-10-25 |
Family
ID=77366445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210212112.8A Pending CN115237550A (zh) | 2021-04-23 | 2022-03-04 | 网络处理资源的池化 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210266253A1 (zh) |
CN (1) | CN115237550A (zh) |
DE (1) | DE102022104207A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704058B2 (en) | 2020-07-28 | 2023-07-18 | Samsung Electronics Co., Ltd. | Systems and methods for resource-based scheduling of commands |
US11496419B2 (en) | 2021-02-03 | 2022-11-08 | Intel Corporation | Reliable transport offloaded to network devices |
US11620159B2 (en) * | 2021-04-23 | 2023-04-04 | Samsung Electronics Co., Ltd. | Systems and methods for I/O command scheduling based on multiple resource parameters |
US11444790B1 (en) * | 2021-07-09 | 2022-09-13 | International Business Machines Corporation | Dynamic exclusion of RDMA-based shared memory communication based on performance-related data |
US11949604B2 (en) * | 2021-10-06 | 2024-04-02 | Inernational Business Machines Corporation | Integrated network switch operation |
US11899585B2 (en) | 2021-12-24 | 2024-02-13 | Western Digital Technologies, Inc. | In-kernel caching for distributed cache |
CN113986560B (zh) * | 2021-12-27 | 2022-03-25 | 浙江锐文科技有限公司 | 一种在智能网卡/DPU内实现P4与OvS逻辑复用的方法 |
US11934663B2 (en) | 2022-01-10 | 2024-03-19 | Western Digital Technologies, Inc. | Computational acceleration for distributed cache |
US11797379B2 (en) | 2022-02-04 | 2023-10-24 | Western Digital Technologies, Inc. | Error detection and data recovery for distributed cache |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10263914B2 (en) * | 2015-09-21 | 2019-04-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system to speed up flow routing in SDN network |
US10057193B2 (en) * | 2015-12-31 | 2018-08-21 | Fortinet, Inc. | Cardinality based packet processing in software-defined networking (SDN) switches |
US10063407B1 (en) * | 2016-02-08 | 2018-08-28 | Barefoot Networks, Inc. | Identifying and marking failed egress links in data plane |
US11362925B2 (en) * | 2017-06-01 | 2022-06-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Optimizing service node monitoring in SDN |
EP3879759B1 (en) * | 2017-10-27 | 2023-09-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Optimized datapath troubleshooting with trace policy engine |
-
2021
- 2021-04-23 US US17/239,329 patent/US20210266253A1/en active Pending
-
2022
- 2022-02-23 DE DE102022104207.3A patent/DE102022104207A1/de active Pending
- 2022-03-04 CN CN202210212112.8A patent/CN115237550A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022104207A1 (de) | 2022-10-27 |
US20210266253A1 (en) | 2021-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210243247A1 (en) | Service mesh offload to network devices | |
US20210266253A1 (en) | Pooling of network processing resources | |
US20210271517A1 (en) | Resource selection based in part on workload | |
US20220029929A1 (en) | Technologies that provide policy enforcement for resource access | |
US20200241926A1 (en) | Selection and management of disaggregated computing resources | |
US11936571B2 (en) | Reliable transport offloaded to network devices | |
CN111756791A (zh) | 用于加速的功能即服务的网络设备负载平衡器的技术 | |
US20210258265A1 (en) | Resource management for components of a virtualized execution environment | |
US20210117244A1 (en) | Resource manager access control | |
US20220014459A1 (en) | Network layer 7 offload to infrastructure processing unit for service mesh | |
US20220109733A1 (en) | Service mesh offload to network devices | |
US20210329354A1 (en) | Telemetry collection technologies | |
US20220086226A1 (en) | Virtual device portability | |
US20210326221A1 (en) | Network interface device management of service execution failover | |
US20210120077A1 (en) | Multi-tenant isolated data regions for collaborative platform architectures | |
CN117501243A (zh) | 用于管理服务网格的交换机 | |
CN117529904A (zh) | 分组格式调整技术 | |
US20230027516A1 (en) | Method and apparatus to perform packet switching between services on different processors in a compute node in a server | |
EP4020208A1 (en) | Memory pool data placement technologies | |
EP4030284A1 (en) | Virtual device portability | |
WO2024098232A1 (en) | Adaptive live migration of a virtual machine for a physical storage device controller | |
US20230019974A1 (en) | Method and apparatus to detect network idleness in a network device to provide power savings in a data center | |
US20220360646A1 (en) | Apparatus and method to perform synchronization services in a switch | |
EP4453721A1 (en) | Switch for managing service meshes |
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 |