CN111158911A - 一种处理器配置方法、装置、处理器及网络设备 - Google Patents
一种处理器配置方法、装置、处理器及网络设备 Download PDFInfo
- Publication number
- CN111158911A CN111158911A CN201911390002.5A CN201911390002A CN111158911A CN 111158911 A CN111158911 A CN 111158911A CN 201911390002 A CN201911390002 A CN 201911390002A CN 111158911 A CN111158911 A CN 111158911A
- Authority
- CN
- China
- Prior art keywords
- processor
- network function
- virtualized network
- processing unit
- dedicated
- 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
Images
Classifications
-
- 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
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及数据通信技术领域,提供一种处理器配置方法、装置、处理器及网络设备。其中,处理器配置方法包括:获取网络设备的处理器的配置信息;根据配置信息对处理器的硬件资源进行分配,以使硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行网络设备的一项虚拟化网络功能。该方法提供了一种在网络设备上进行网络功能虚拟化的解决方案;同时该方法实现网络功能虚拟化不需借助虚拟机,而是依赖于处理器的硬件资源,因此效率较高;并且该方法对设备的硬件要求不高,具有较好的实用性和较广的应用范围。
Description
技术领域
本申请涉及数据通信技术领域,具体而言,涉及一种处理器配置方法、装置、处理器及网络设备。
背景技术
在数据通信领域,传统的网络设备如路由器、交换机、网关等大多以单一的网络功能呈现,容易造成处理器资源的浪费。为解决这一问题,近年来提出了网络功能虚拟化(Network Functions Virtualization,简称NFV)技术,NFV技术依赖于虚拟机实现,即在同一台设备上部署多台虚拟机,从而虚拟出不同功能的网络设备。
然而,由于部署虚拟机过于消耗处理器资源,并且虚拟机与宿主机或者虚拟机之间的通信都是软件实现,过程复杂且效率较低,因此NFV技术基本都是在通用服务器上实现,针对网络设备并没有实现网络功能虚拟化的解决方案。
发明内容
有鉴于此,本申请实施例提供一种处理器配置方法、装置、处理器及网络设备,以改善上述技术问题。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请实施例提供一种处理器配置方法,包括:获取网络设备的处理器的配置信息;根据所述配置信息对所述处理器的硬件资源进行分配,以使所述硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行所述网络设备的一项虚拟化网络功能。
在上述方法中,根据配置信息分配处理器的硬件资源,分配产生的各个专属资源在硬件上是相互独立的,从而可以满足虚拟化的要求,进而可以在不同的专属资源上运行不同的网络功能,从而使得在一台网络设备上可以虚拟出不同的网络功能,即提供了一种在网络设备上实现网络功能虚拟化的解决方案。例如,一台传统路由器可以同时虚拟出路由器的功能、交换机的功能以及网关的功能。
利用上述方法配置后的处理器实现网络功能的虚拟化,不需借助于虚拟机,而是依赖于处理器的硬件资源,因此是一种高效的虚拟化方式。并且,上述方法可以应用于网络设备,并不一定要应用于通用服务器,其适用范围较广,对设备的硬件要求不高,因此具有较好的实用性和较广的应用范围。
在第一方面的一种实现方式中,在所述根据所述配置信息对所述处理器的硬件资源进行分配之后,所述方法还包括:基于对应的专属资源运行虚拟化网络功能,对输入所述处理器的报文进行处理。
由于已经为网络设备要实现的网络功能预分配了专属资源,因此基于专属资源运行网络功能(例如,网络功能可以采用进程的形式)即可实现网络功能的虚拟化,一项虚拟化网络功能是某个网络设备的抽象表示,通常与网络报文相关,用于对报文进行某种形式的处理(例如,转发等)。
在第一方面的一种实现方式中,每项虚拟化网络功能对应的专属资源包括:网络接口、输入处理单元、内存池、专属硬件队列以及处理器核;其中,所述专属硬件队列是指仅供该项虚拟化网络功能使用的硬件队列;所述基于对应的专属资源运行虚拟化网络功能对输入所述处理器的报文进行处理,包括:在所述处理器核上运行的虚拟化网络功能从对应的所述专属硬件队列读取所述报文并处理;其中,所述报文从对应的所述网络接口输入所述处理器,并由对应的所述输入处理单元从对应的所述内存池中为所述报文申请内存以及将所述报文写入至对应的所述专属硬件队列。
在上述实现中,网络功能的虚拟化在很大程度上依赖于处理器的各种硬件资源,因此大大降低了处理器核的资源占用,有利于提高报文处理效率。
在第一方面的一种实现方式中,所述处理器为多核处理器,每项虚拟化网络功能对应的专属资源包括:至少一个网络接口、至少一个输入处理单元、至少一个内存池、至少一个专属硬件队列以及一个处理器核;其中,所述至少一个网络接口、所述至少一个输入处理单元、所述至少一个内存池以及所述至少一个专属硬件队列之间具有一一对应关系。
上述实现方式给出了各种硬件资源之间一种可能的绑定关系,这种绑定关系通过配置信息指定,因为这些硬件资源之间具有严格的绑定关系,才使得为各项网络功能分配的专属资源具有相互独立的性质,才使得网络功能虚拟化的前提条件得以满足。
在第一方面的一种实现方式中,每项虚拟化网络功能对应的专属资源还包括:共享硬件队列,所述共享硬件队列是指仅供该项虚拟化网络功能读取报文,以及其他虚拟化网络功能写入报文的硬件队列,所述方法还包括:在所述处理器核上运行虚拟化网络功能,从对应的所述共享硬件队列读取报文并处理;所述虚拟化网络功能处理完从对应的所述专属硬件队列和/或对应的所述共享硬件队列读取到的所述报文之后,将处理完的所述报文写入至其他虚拟化网络功能对应的共享硬件队列。
采用共享硬件队列后,无需再通过网络接口实现不同的网络功能之间的数据交互,其交互过程简单,并且硬件队列不依赖于软件,处理效率很高。
在第一方面的一种实现方式中,每项虚拟化网络功能对应的专属资源还包括:输出处理单元,所述方法还包括:在所述处理器核上运行网络功能将处理完的所述报文发送至对应的所述输出处理单元,以使对应的所述输出处理单元将所述报文从对应的所述网络接口输出所述处理器。
处理完成的报文,可以发送给输出处理单元,由输出处理单元直接通过网络接口向处理器外部发送,发送报文的过程无需再使用硬件队列。
在第一方面的一种实现方式中,所述处理器为多核处理器,所述处理器的多个核包括一个控制核以及多个业务核,所述根据所述配置信息对所述处理器的硬件资源进行分配,包括:在所述控制核上运行驱动程序根据所述配置信息对所述处理器的硬件资源进行分配;所述在所述处理器核上运行的虚拟化网络功能从所述专属硬件队列读取所述报文并处理,包括:在所述业务核上运行的虚拟化网络功能从所述专属硬件队列读取所述报文并处理。
对于多核处理,可以由一个核充当控制核(例如,0号核),控制核对处理器的硬件资源进行分配,分配完成后,在其他业务核上运行虚拟化网络功能,以便实现控制与业务相分离。当然,不排除在某些方案中,对硬件资源的分配也可以在任何一个处理器核上进行。
在第一方面的一种实现方式中,所述方法还包括:接收第一配置修改指令,根据所述第一配置修改指令将第一虚拟化网络功能对应的第一网络接口与第二虚拟化网络功能对应的第二输入处理单元绑定,以使从所述第一网络接口输入的报文被输出至所述第二输入处理单元;其中,所述第一虚拟化网络功能与所述第二虚拟化网络功能为所述网络设备的两项不同的虚拟化网络功能,所述第一网络接口为所述第一虚拟化网络功能对应的至少一个网络接口之一,所述第二输入处理单元为所述第二虚拟化网络功能对应的至少一个输入处理单元之一。
在第一方面的一种实现方式中,所述方法还包括:接收第二配置修改指令,根据所述第二配置修改指令将第一虚拟化网络功能对应的第一输入处理单元与第二虚拟化网络功能对应的第二专属硬件队列绑定,以使所述第一输入处理单元将接收到的报文写入所述第二专属硬件队列;其中,所述第一虚拟化网络功能与所述第二虚拟化网络功能为所述网络设备的两项不同的虚拟化网络功能,所述第一输入处理单元为所述第一虚拟化网络功能对应的至少一个输入处理单元之一,所述第二专属硬件队列为所述第二虚拟化网络功能对应的至少一个专属硬件队列之一。
以上两种实现方式涉及网络报文在虚拟化网络功能之间的迁移,本申请中可以通过动态修改网络接口与输入处理单元的绑定关系,或者,输入处理单元与专属硬件队列之间的绑定关系实现报文的动态迁移,有利于提高网络设备在网络环境中的适应性和灵活性。
第二方面,本申请实施例提供一种处理器配置装置,包括:配置获取模块,用于获取网络设备的处理器的配置信息;资源配置模块,用于根据所述配置信息对所述处理器的硬件资源进行分配,以使所述硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行所述网络设备的一项虚拟化网络功能。
第三方面,本申请实施例提供一种处理器,应用于网络设备,所述处理器的硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行所述网络设备的一项虚拟化网络功能。
第四方面,本申请实施例提供一种网络设备,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
为使本申请的上述目的、技术方案和有益效果能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种处理器配置方法的流程图;
图2示出了本申请实施例提供的一种硬件资源的配置方式的示意图;
图3示出了本申请实施例提供的另一种处理器配置装置的功能模块图;
图4示出了本申请实施例提供的一种网络设备的结构图。
具体实施方式
传统的网络设备如路由器、交换机、网关等通常采用对称多处理(SymmetricalMulti-Processing,简称SMP)架构下的多核网络处理器实现单一的网络功能,例如,路由器只实现路由功能。
发明人经研究发现,网络设备的功能单一化容易导致资源浪费:其一,在负载的网络环境中,往往需要部署多台不同功能的网络设备,然而其中某些设备的利用率可能很低;其二,对于单台网络设备来说,由于数据在各个核之间的分配存在差异化,即有的核处理的数据多,有的核处理的数据少,甚至没有数据可处理,各核的处理能力未得到充分利用。
在对照实施例中,通过NFV技术来解决网络设备功能单一化的问题。NFV技术通过在同一台设备上部署多台虚拟机,从而虚拟出不同功能的网络设备。
然而,发明人在长期研究NFV技术后认为其存在一些缺陷:由于部署虚拟机过于消耗处理器资源,并且虚拟机与宿主机或者虚拟机之间的通信都是软件实现,过程复杂且效率较低,因此NFV技术基本都是在通用服务器上实现。在网络设备上,由于处理器主频、内存大小等限制导致NFV技术无法落地,即NFV技术其实并没有从根本上解决传统的网络设备功能单一化的问题,或者说,针对网络设备目前还没有实现网络功能虚拟化的有效方案。
现有技术或对照实施例中存在的上述缺陷,是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发明做出的贡献。
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
图1示出了本申请实施例提供的一种处理器配置方法的流程图。为便于阐述,认为这些步骤由网络设备的处理器执行,当然其实其他设备(例如通用服务器)的处理器也可以执行这些步骤。参照图1,该方法包括:
步骤S110:获取处理器的配置信息。
步骤S120:根据配置信息对处理器的硬件资源进行分配,以使硬件资源被划分为相互独立的多个专属资源;其中,每个专属资源用于运行网络设备的一项虚拟化网络功能。
一项网络功能可以视为某个单一功能的网络设备的抽象表示,例如,一项路由器功能可以视为一台实际的路由器的抽象表示,一项交换机功能可以视为一台实际的交换机的抽象表示,一项网关功能可以视为一台实际的网关设备的抽象表示,等等。网络功能的虚拟化即在一台实际的设备上部署多项网络功能(各项网络功能可以相同也可以不同),从而使得该设备从使用这些网络功能的用户看来等效于多台不同的网络设备。
执行网络功能虚拟化的设备可以是网络设备,当然也可以是其他设备,不过在后文中主要以网络设备为例进行说明。例如,一台实际的路由器上可以部署三项路由器功能、两项交换机功能以及两项网关功能,从而该实际的路由器可以等效于三台路由器、两台交换机以及两台网关设备,比如从使用其中一项网关功能的用户来看,该实际的路由器就是一台网关设备。
在上面的步骤中,配置信息的内容可以是根据用户对网络功能虚拟化的需求事先制定好的,配置信息用于指示处理器如何对自身的硬件资源进行分配,例如,要划分多少个专属资源,每个专属资源的具体内容,每个专属资源被用于哪项网络功能的虚拟化等等,从这个意义上讲,配置信息也可以视为对处理器硬件资源的一种规划方式。关于配置信息的具体内容,后文中表1会给出例子,此处暂不涉及。
处理器获取配置信息既可能从处理器之外获取,也可能从处理器内部获取:例如,配置信息可以以配置文件的方式保存在网络设备上,在设备上电后配置信息被加载至网络设备的内存中,处理器可以从内存中获取配置信息;又例如,处理器内部也具有存储单元,配置信息被写入该存储单元,在处理器上电后可以从中该存储单元中获取配置信息。
获取到配置信息后,处理器根据配置信息的内容划分自身的硬件资源,形成多个专属资源。所谓专属,是指划分出的硬件资源相互独立、仅供某一项网络功能使用,不与其他网络功能共享,从而可以满足网络功能虚拟化的要求,因为每一项虚拟化网络功能(Virtual Network Function,简称VNF)对用户而言都可以视为一个单独的网络设备,这些网络设备的硬件资源应当是相互独立的。需要指出,出于数据共享等目的,也并不排除某一项虚拟化网络功能对应的专属资源的一部分可以和另一项虚拟化网络功能进行有限的共享,例如后文会提到的共享硬件队列。还是举之前的例子,如果希望在一台实际的路由器上部署三项路由器功能、两项交换机功能以及两项网关功能,则可以在配置信息中指明将处理器的硬件资源划分为七个专属资源,其中每个专属资源供一项虚拟化网络功能使用,该配置信息的内容被执行后,处理器的硬件资源即按照虚拟化网络功能进行了分配。
在对处理器的硬件资源进行分配后,便可以基于对应的专属资源运行网络功能以便实现网络功能的虚拟化。虚拟化网络功能可以采用进程的形式运行,相较于线程,不同的进程在资源使用上是相互隔离的,更加符合虚拟化的要求。虚拟化网络功能运行后可以对输入处理器的报文进行处理,根据需要,也可以将处理后的报文输出处理器,处理报文即实现网络功能的具体内容,对报文不同的处理方式体现了各项虚拟化网络功能之间的区别。
上述处理器配置方法提供了一种网络功能虚拟化的解决方案,该方案利用合理分配后的处理器硬件资源实现网络功能的虚拟化,不需像NFV技术一样借助于部署虚拟机,对设备的硬件要求则较低,特别是在网络设备的网络处理器上亦可应用(当然在通用服务器上应用也是可以的),其适用范围较广,实用价值较高,大量现有的传统网络设备应用该方法后也可以实现网络功能的虚拟化。该方法在实现网络功能虚拟化时,主要依赖处理器硬件,因此执行效率较高。
此外,实现网络功能虚拟化后,只需部署少量设备即可满足复杂网络环境下对网络功能的需求,同时使得设备处理器的处理能力能够得到充分利用,避免了网络设备功能单一化造成的种种资源浪费。
在一种实现方式中,每项虚拟化网络功能对应的专属资源可以包括网络接口、输入处理单元、内存池、专属硬件队列以及处理器核等多项硬件资源。其中,网络接口是报文输入或输出处理器的端口,网络接口可以是以太网接口,输入处理单元用于处理输入的报文,内存池用于管理内存分配,专属硬件队列用于报文排队,“专属”一词表示该硬件队列仅供该项虚拟化网络功能使用(与后文的共享硬件队列对应),处理器核则用于运行该项虚拟化网络功能。每个专属资源内的上述各项硬件资源之间具有绑定关系(或称映射关系),这种绑定关系使得某个专属资源内的一项硬件资源只能访问该专属资源内的硬件资源,而不会对另一个专属资源内的一项硬件资源进行访问(后文将会介绍的共享硬件队列除外)。
若网络设备采用基于多核处理器(如SMP架构的多核处理器),常见的实现方式为:多核中的一个核(通常是0号核)作为控制核,其余核作为业务核。控制核上可以运行操作系统(如linux)以及硬件驱动程序,其中硬件驱动程序可用于执行步骤S110及步骤S120,即完成网络功能虚拟化的先期资源分配,业务核则可以用于执行虚拟化网络功能(此时上述专属资源中的处理器核指业务核),虚拟化网络功能在执行时可以和特定的业务核相绑定。以上区分控制核与业务核的实现方式有利于控制逻辑与业务逻辑的分离,当然从原理上说,处理器的任何一个核都可以执行步骤S110及步骤S120,本申请也并不将这些方案排除在外。
对于输入处理器的报文,其处理流程大致如下:首先,报文从网络接口输入处理器并送达输入处理单元;其次,输入处理单元从内存池中为报文申请内存以及将报文写入至专属硬件队列,在常见的实现方式中,报文存放在申请的内存中,写入专属硬件队列的只是报文的描述信息而非报文本身,但由于报文的描述信息中可以包含指向内存中报文的指针,因此这里为简单起见,将报文的描述信息入队等效于将报文入队;最后,在处理器核上运行的虚拟化网络功能从专属硬件队列读取报文并处理报文。对于一项虚拟化网络功能而言,上述报文处理流程中的网络接口、输入处理单元、内存池、专属硬件队列、处理器核均具有绑定关系,因此当报文从某个网络接口输入处理器后,其后续在各项硬件资源之间的传输路径即已确定。
图2示出了一个对应于上面介绍的硬件资源的配置方式的例子。参照图2,网络设备期望通过虚拟化的方式实现至少一项路由器功能、至少一项交换机功能以及至少一项网关功能,为简单起见,图2从以上三种虚拟化网络功能中各选一项进行具体表示,即一项路由器功能、一项交换机功能以及一项网关功能,其余各项虚拟化网络功能以省略号示出。
在图2中,每项虚拟化网络功能都对应一个独立的专属资源,每个专属资源中都包括网络接口、输入处理单元、内存池、专属硬件队列以及处理器核等多项硬件资源。对于输入处理器的报文,其大致沿着网络接口、输入处理单元、内存池、专属硬件队列的顺序抵达处理器核,并被运行在处理器核上的虚拟化网络功能(例如,以进程的形式)所处理,图2中这些硬件资源之间的实线箭头体现了报文的传输流程,内存池和专属硬件队列之间的无箭头连接线则表示报文存放在内存池管理的内存中,而专属硬件队列中入队的报文描述信息中可以包含指向内存中报文的指针。
每个专属资源中包含的各项硬件资源的数量可以根据需求以及处理器实际拥有的硬件资源的数量进行配置。下面给出一种可能的配置方式:
每个专属资源包括:至少一个网络接口、至少一个输入处理单元、至少一个内存池、至少一个专属硬件队列以及一个处理器核。其中的四项硬件资源,网络接口、输入处理单元、内存池以及专属硬件队列之间具有一一对应关系。比如,某项虚拟化网络功能对应的专属资源占用了两个网络接口,则也必须相应地为其分配两个输入处理单元、两个内存池以及两个专属硬件队列,并且,这四项硬件资源分为两组,每组中包含相互绑定的一个网络接口、一个输入处理单元、一个内存池以及一个专属硬件队列。同组中的网络接口收到的报文只会交给同组中的输入处理单元处理,输入处理单元也只会向同组中的内存池申请内存,并将报文入队到同组中的专属硬件队列。
由于每个专属资源中的各项硬件资源之间都具有严格的绑定关系,才使得这些硬件资源之间能够耦合成一个整体,才使得为各项虚拟化网络功能分配的专属资源具有相互独立的性质,进而网络功能虚拟化的前提条件才能够得到满足。另一方面,从上面的内容可以看出,报文的处理流程在很大程度上依赖于处理器的各种硬件资源(除了在处理器核上可能更偏重于软件处理),例如硬件队列等,因此有利于降低对处理器核的资源占用,从而提高报文处理效率。
进一步的,在某些可选方案中,每项虚拟化网络功能对应的专属资源还可以包括共享硬件队列。共享硬件队列是指仅供该项虚拟化网络功能读取报文,以及其他虚拟化网络功能写入报文的硬件队列。即共享硬件队列虽然也属于某项虚拟化网络功能对应的专属资源中的一项硬件资源,但允许其他虚拟化网络功能在有限的范围内使用该项硬件资源。
采用共享硬件队列的目的是为了在各项虚拟化网络功能之间共享数据。某项虚拟化网络功能处理完报文后,若发现该报文需要由另一项虚拟化网络功能继续处理,则可以将该报文写入到另一项虚拟化网络功能对应的共享硬件队列中,另一项虚拟化网络功能会从中读取报文并继续处理。这种方式在处理器内部就可以完成数据共享,报文无需从当前虚拟化网络功能对应的网络接口传出处理器再从另一项虚拟化网络功能对应的网络接口传入处理器,报文传输路径大大缩短,从而使得数据共享效率大大提高,并且由于共享硬件队列也是一种硬件实现方式,相较于软件队列,其处理效率本来也很高。在考虑共享硬件队列时,处理器的硬件资源的一种可能的配置方式是:
每个专属资源包括:至少一个网络接口、至少一个输入处理单元、至少一个内存池、至少一个专属硬件队列、一个共享硬件队列以及一个处理器核。
继续参照图2,以对应于路由器功能的共享硬件队列为例,交换机功能或网关功能处理完的报文可以写入该共享硬件队列中(虚线箭头),路由器功能再从该共享硬件队列中取出报文继续处理(实线箭头),即处理器核获取的报文有两种来源,既可能来源于专属硬件队列,也可能来源于共享硬件队列。
进一步的,在某些可选方案中,每项虚拟化网络功能对应的专属资源还可以包括输出处理单元。在处理器核上运行的虚拟化网络功能在处理完报文之后,可以将报文直接发送至对应的输出处理单元,对应的输出处理单元会将报文从对应的网络接口输出处理器。每个专属资源中输出处理单元设置的数量以及和其他硬件资源之间的绑定关系可以和输入处理单元一致,不再重复阐述。在图2中,输出处理单元和输入处理单元画在一起,表示二者可以采取类似的设置方式,但需要指出,图2中并没有画出报文输出时的处理流程,图2中所有的箭头都是指报文输入时的处理流程。
下面再以一个表格为例,说明处理器的硬件资源的分配方式,该表格可以理解为步骤S110中所说的配置信息的一种可视化表示。
表1
在表1中,每个网络接口和一个输入/输出处理单元一一对应,每个输入处理单元和一个内存池、一个专属硬件队列分别一一对应,同时每个专属硬件队列和每个共享硬件队列对应一个业务核,每个业务核则对应若干网络接口。各项硬件资源之间的绑定关系保证了各项网络功能对应的专属资源的独立性,使得网络功能的虚拟化得以实现。关于表1的其他内容,不再具体解释,表1中的备注一栏亦有解说。
为适应网络环境的变化,有时可能需要网络数据在虚拟化网络功能之间进行迁移。例如,本来分配了三个网络接口实现路由器功能,两个网络接口实现交换机功能,但网络设备运行一段时间后统计发现需要进行路由的报文数量较少,需要进行交换的报文数量较多,初始的配置不甚合理。一种可能的解决方案是修改配置,将原来属于路由器功能的一个网络接口分配给交换机功能使用,从而该接口接收的报文将由运行交换机功能的处理器核进行处理,即实现了网络数据在虚拟化网络功能之间的迁移。
若每项虚拟化网络功能对应的专属资源包括相互绑定的至少一个网络接口、至少一个输入处理单元、至少一个内存池、至少一个专属硬件队列以及一个处理器核,并且其中的四项硬件资源,网络接口、输入处理单元、内存池以及专属硬件队列之间具有一一对应关系,则实现上述动态迁移的方式至少有两种:
(1)动态修改网络接口与输入处理单元之间的绑定关系。
具体而言,处理器(可以指控制核)接收第一配置修改指令,根据第一配置修改指令将第一虚拟化网络功能对应的第一网络接口与第二虚拟化网络功能对应的第二输入处理单元绑定(第一网络接口原来与某个输入处理单元的绑定关系自动解除),以使从第一网络接口输入的报文被输出至第二输入处理单元,进而由第二虚拟化网络功能处理该这些报文。
以上“第一”、“第二”仅为区分两个不同的实体,并不表示特指某个对象。其中,第一虚拟化网络功能与第二虚拟化网络功能为不同的两项虚拟化网络功能,第一网络接口为第一虚拟化网络功能对应的至少一个网络接口之一,第二输入处理单元为第二虚拟化网络功能对应的至少一个输入处理单元之一。
在图2中,网络接口与输入处理单元之间的虚线箭头(表示修改后的报文流向)示出了此种实现网络数据动态迁移的方式。
(2)动态修改输入处理单元与专属硬件队列之间的绑定关系。
具体而言,处理器(可以指控制核)接收第二配置修改指令,根据第二配置修改指令将第一虚拟化网络功能对应的第一输入处理单元与第二虚拟化网络功能对应的第二专属硬件队列绑定(第一输入处理单元原来与某个专属硬件队列的绑定关系自动解除),以使第一输入处理单元将接收到的报文写入第二专属硬件队列,进而由第二虚拟化网络功能处理该这些报文。
其中,第一虚拟化网络功能与第二虚拟化网络功能为不同的两项虚拟化网络功能,第一输入处理单元为第一虚拟化网络功能对应的至少一个输入处理单元之一,第二专属硬件队列为第二虚拟化网络功能对应的至少一个专属硬件队列之一。
在图2中,输入处理单元与专属硬件队列之间的虚线箭头(表示修改后的报文流向)示出了此种实现网络数据动态迁移的方式。
由于本申请提供的处理器配置方法可以实现网络数据在不同虚拟化网络功能之间的动态迁移,使得网络设备对网络数据的处理具有了极大的灵活性,并且使得虚拟出的网络功能在配置上也具有良好的弹性,能够快速适应网络环境的变化。
图3示出了本申请实施例提供的一种处理器配置装置200的功能模块图。参照图3,该装置包括:
配置获取模块210,用于获取网络设备的处理器的配置信息;
资源配置模块220,用于根据所述配置信息对所述处理器的硬件资源进行分配,以使所述硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行所述网络设备的一项虚拟化网络功能。
在处理器配置装置200的一种实现方式中,该装置还包括:功能运行模块,用于在资源配置模块220根据所述配置信息对所述处理器的硬件资源进行分配之后,基于对应的专属资源运行虚拟化网络功能,对输入所述处理器的报文进行处理。
在处理器配置装置200的一种实现方式中,每项网络功能对应的专属资源包括:网络接口、输入处理单元、内存池、专属硬件队列以及处理器核;其中,所述专属硬件队列是指仅供该项虚拟化网络功能使用的硬件队列;功能运行模块基于对应的专属资源运行虚拟化网络功能,对输入所述处理器的报文进行处理,包括:在所述处理器核上运行的虚拟化网络功能从对应的所述专属硬件队列读取所述报文并处理;其中,所述报文从对应的所述网络接口输入所述处理器,并由对应的所述输入处理单元从对应的所述内存池中为所述报文申请内存以及将所述报文写入至对应的所述专属硬件队列。
在处理器配置装置200的一种实现方式中,所述处理器为多核处理器,每项虚拟化网络功能对应的专属资源包括:至少一个网络接口、至少一个输入处理单元、至少一个内存池、至少一个专属硬件队列以及一个处理器核;其中,所述至少一个网络接口、所述至少一个输入处理单元、所述至少一个内存池以及所述至少一个专属硬件队列之间具有一一对应关系。
在处理器配置装置200的一种实现方式中,每项虚拟化网络功能对应的专属资源还包括:共享硬件队列,所述共享硬件队列是指仅供该项虚拟化网络功能读取报文,以及其他虚拟化网络功能写入报文的硬件队列;功能运行模块还用于:在所述处理器核上运行虚拟化网络功能,从所述共享硬件队列读取报文并处理,所述虚拟化网络功能处理完从对应的所述专属硬件队列和/或对应的所述共享硬件队列读取到的所述报文之后,将处理完的所述报文写入至其他虚拟化网络功能对应的共享硬件队列。
在处理器配置装置200的一种实现方式中,每项虚拟化网络功能对应的专属资源还包括:输出处理单元;功能运行模块还用于:在所述处理器核上运行的虚拟化网络功能将处理完的所述报文发送至对应的所述输出处理单元,以使对应的所述输出处理单元将所述报文从对应的所述网络接口输出所述处理器。
在处理器配置装置200的一种实现方式中,所述处理器为多核处理器,所述处理器的多个核包括一个控制核以及多个业务核,配置获取模块210根据所述配置信息对所述处理器的硬件资源进行分配,包括:在所述控制核上运行驱动程序根据所述配置信息对所述处理器的硬件资源进行分配;功能运行模块在所述处理器核上运行的虚拟化网络功能从所述专属硬件队列读取所述报文并处理,包括:在所述业务核上运行的虚拟化网络功能从所述专属硬件队列读取所述报文并处理。
在处理器配置装置200的一种实现方式中,该装置还包括:第一配置修改模块,用于接收第一配置修改指令,根据所述第一配置修改指令将第一虚拟化网络功能对应的第一网络接口与第二虚拟化网络功能对应的第二输入处理单元绑定,以使从所述第一网络接口输入的报文被输出至所述第二输入处理单元;其中,所述第一虚拟化网络功能与所述第二虚拟化网络功能为所述网络设备的两项不同的虚拟化网络功能,所述第一网络接口为所述第一虚拟化网络功能对应的至少一个网络接口之一,所述第二输入处理单元为所述第二虚拟化网络功能对应的至少一个输入处理单元之一。
在处理器配置装置200的一种实现方式中,该装置还包括:第二配置修改模块,用于接收第二配置修改指令,根据所述第二配置修改指令将第一虚拟化网络功能对应的第一输入处理单元与第二虚拟化网络功能对应的第二专属硬件队列绑定,以使所述第一输入处理单元将接收到的报文写入所述第二专属硬件队列;其中,所述第一虚拟化网络功能与所述第二虚拟化网络功能为所述网络设备的两项不同的虚拟化网络功能,所述第一输入处理单元为所述第一虚拟化网络功能对应的至少一个输入处理单元之一,所述第二专属硬件队列为所述第二虚拟化网络功能对应的至少一个专属硬件队列之一。
本申请实施例提供的处理器配置装置200,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考前述方法施例中相应内容。
图4示出了本申请实施例提供的网络设备300的一种可能的结构。参照图4,网络设备300包括:处理器310、存储器320以及通信接口330,这些组件通过通信总线340和/或其他形式的连接机构(未示出)互连并相互通讯。
存储器320中存储有计算机程序指令,这些计算机程序指令被处理器310读取并运行时,执行本申请实施例提供的处理器配置方法及其他期望的功能。通信接口330则用于网络设备300与其他设备进行通信,例如收发报文。
可以理解,图4所示的结构仅为示意,网络设备300还可以包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,网络设备300可以是路由器、交换机、网关等专用设备(这里是指设备本身的类型,不考虑其虚拟化产生的网络功能),也可以是通用服务器等通用设备。
本申请实施例还提供一种处理器,该处理利器应用于网络设备,处理器的硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行网络设备的一项虚拟化网络功能。其中,处理器硬件资源的划分可以是处理器在制造时就划分好的,也可以是处理器上电后根据配置信息进行划分,该配置信息可以保存在处理器内部也可以保存在处理器外部。例如,该处理器可以是,但不限于图4中网络设备300的处理器310。处理器内部的硬件资源配置方式则可以参考图2。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本申请实施例提供的处理器配置方法。例如,该计算机可读存储介质可以是,但不限于图4中网络设备300的存储器320。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种处理器配置方法,其特征在于,包括:
获取网络设备的处理器的配置信息;
根据所述配置信息对所述处理器的硬件资源进行分配,以使所述硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行所述网络设备的一项虚拟化网络功能。
2.根据权利要求1所述的处理器配置方法,其特征在于,在所述根据所述配置信息对所述处理器的硬件资源进行分配之后,所述方法还包括:
基于对应的专属资源运行虚拟化网络功能,对输入所述处理器的报文进行处理。
3.根据权利要求2所述的处理器配置方法,其特征在于,每项虚拟化网络功能对应的专属资源包括:网络接口、输入处理单元、内存池、专属硬件队列以及处理器核;其中,所述专属硬件队列是指仅供该项虚拟化网络功能使用的硬件队列;
所述基于对应的专属资源运行虚拟化网络功能,对输入所述处理器的报文进行处理,包括:
在所述处理器核上运行的虚拟化网络功能从对应的所述专属硬件队列读取所述报文并处理;其中,所述报文从对应的所述网络接口输入所述处理器,并由对应的所述输入处理单元从对应的所述内存池中为所述报文申请内存以及将所述报文写入至对应的所述专属硬件队列。
4.根据权利要求3所述的处理器配置方法,其特征在于,所述处理器为多核处理器,每项虚拟化网络功能对应的专属资源包括:至少一个网络接口、至少一个输入处理单元、至少一个内存池、至少一个专属硬件队列以及一个处理器核;
其中,所述至少一个网络接口、所述至少一个输入处理单元、所述至少一个内存池以及所述至少一个专属硬件队列之间具有一一对应关系。
5.根据权利要求3所述的处理器配置方法,其特征在于,每项虚拟化网络功能对应的专属资源还包括:共享硬件队列,所述共享硬件队列是指仅供该项虚拟化网络功能读取报文,以及其他虚拟化网络功能写入报文的硬件队列,所述方法还包括:
在所述处理器核上运行虚拟化网络功能,从对应的所述共享硬件队列读取所述报文并处理;
所述虚拟化网络功能处理完从对应的所述专属硬件队列和/或对应的所述共享硬件队列读取到的所述报文之后,将处理完的所述报文写入至其他虚拟化网络功能对应的共享硬件队列。
6.根据权利要求3所述的处理器配置方法,其特征在于,每项虚拟化网络功能对应的专属资源还包括:输出处理单元,所述方法还包括:
在所述处理器核上运行的虚拟化网络功能将处理完的所述报文发送至对应的所述输出处理单元,以使对应的所述输出处理单元将所述报文从对应的所述网络接口输出所述处理器。
7.根据权利要求3所述的处理器配置方法,其特征在于,所述处理器为多核处理器,所述处理器的多个核包括一个控制核以及多个业务核,所述根据所述配置信息对所述处理器的硬件资源进行分配,包括:
在所述控制核上运行驱动程序根据所述配置信息对所述处理器的硬件资源进行分配;
所述在所述处理器核上运行的虚拟化网络功能从所述专属硬件队列读取所述报文并处理,包括:
在所述业务核上运行的虚拟化网络功能从所述专属硬件队列读取所述报文并处理。
8.根据权利要求4所述的处理器配置方法,其特征在于,所述方法还包括:
接收第一配置修改指令,根据所述第一配置修改指令将第一虚拟化网络功能对应的第一网络接口与第二虚拟化网络功能对应的第二输入处理单元绑定,以使从所述第一网络接口输入的报文被输出至所述第二输入处理单元;
其中,所述第一虚拟化网络功能与所述第二虚拟化网络功能为所述网络设备的两项不同的虚拟化网络功能,所述第一网络接口为所述第一虚拟化网络功能对应的至少一个网络接口之一,所述第二输入处理单元为所述第二虚拟化网络功能对应的至少一个输入处理单元之一。
9.根据权利要求4所述的处理器配置方法,其特征在于,所述方法还包括:
接收第二配置修改指令,根据所述第二配置修改指令将第一虚拟化网络功能对应的第一输入处理单元与第二虚拟化网络功能对应的第二专属硬件队列绑定,以使所述第一输入处理单元将接收到的报文写入所述第二专属硬件队列;
其中,所述第一虚拟化网络功能与所述第二虚拟化网络功能为所述网络设备的两项不同的虚拟化网络功能,所述第一输入处理单元为所述第一虚拟化网络功能对应的至少一个输入处理单元之一,所述第二专属硬件队列为所述第二虚拟化网络功能对应的至少一个专属硬件队列之一。
10.一种处理器配置装置,其特征在于,包括:
配置获取模块,用于获取网络设备的处理器的配置信息;
资源配置模块,用于根据所述配置信息对所述处理器的硬件资源进行分配,以使所述硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行所述网络设备的一项虚拟化网络功能。
11.一种处理器,其特征在于,应用于网络设备,所述处理器的硬件资源被划分为相互独立的多个专属资源,每个专属资源用于运行所述网络设备的一项虚拟化网络功能。
12.一种网络设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911390002.5A CN111158911A (zh) | 2019-12-27 | 2019-12-27 | 一种处理器配置方法、装置、处理器及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911390002.5A CN111158911A (zh) | 2019-12-27 | 2019-12-27 | 一种处理器配置方法、装置、处理器及网络设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111158911A true CN111158911A (zh) | 2020-05-15 |
Family
ID=70559223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911390002.5A Pending CN111158911A (zh) | 2019-12-27 | 2019-12-27 | 一种处理器配置方法、装置、处理器及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158911A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948051A (zh) * | 2021-02-05 | 2021-06-11 | 中国铁建重工集团股份有限公司 | 一种刀盘驱动数据处理方法、装置及介质 |
CN115048226A (zh) * | 2022-08-15 | 2022-09-13 | 南京芯驰半导体科技有限公司 | 一种多核异构处理器的虚拟控制系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842056A (zh) * | 2005-03-31 | 2006-10-04 | 华为技术有限公司 | 内核间报文描述消息的传递方法 |
CN102868635A (zh) * | 2012-08-24 | 2013-01-09 | 汉柏科技有限公司 | 多核多线程的报文保序方法及系统 |
CN103155520A (zh) * | 2010-08-06 | 2013-06-12 | 思杰系统有限公司 | 用于多核虚拟分组引擎装置中的半虚拟化驱动程序的系统和方法 |
CN106406977A (zh) * | 2016-08-26 | 2017-02-15 | 山东乾云启创信息科技股份有限公司 | 一种gpu虚拟化实现系统及方法 |
CN107992351A (zh) * | 2016-10-26 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 一种硬件资源分配方法及装置、电子设备 |
US20190258533A1 (en) * | 2014-12-18 | 2019-08-22 | Intel Corporation | Function callback mechanism between a central processing unit (cpu) and an auxiliary processor |
-
2019
- 2019-12-27 CN CN201911390002.5A patent/CN111158911A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842056A (zh) * | 2005-03-31 | 2006-10-04 | 华为技术有限公司 | 内核间报文描述消息的传递方法 |
CN103155520A (zh) * | 2010-08-06 | 2013-06-12 | 思杰系统有限公司 | 用于多核虚拟分组引擎装置中的半虚拟化驱动程序的系统和方法 |
CN102868635A (zh) * | 2012-08-24 | 2013-01-09 | 汉柏科技有限公司 | 多核多线程的报文保序方法及系统 |
US20190258533A1 (en) * | 2014-12-18 | 2019-08-22 | Intel Corporation | Function callback mechanism between a central processing unit (cpu) and an auxiliary processor |
CN106406977A (zh) * | 2016-08-26 | 2017-02-15 | 山东乾云启创信息科技股份有限公司 | 一种gpu虚拟化实现系统及方法 |
CN107992351A (zh) * | 2016-10-26 | 2018-05-04 | 阿里巴巴集团控股有限公司 | 一种硬件资源分配方法及装置、电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948051A (zh) * | 2021-02-05 | 2021-06-11 | 中国铁建重工集团股份有限公司 | 一种刀盘驱动数据处理方法、装置及介质 |
CN115048226A (zh) * | 2022-08-15 | 2022-09-13 | 南京芯驰半导体科技有限公司 | 一种多核异构处理器的虚拟控制系统及方法 |
CN115048226B (zh) * | 2022-08-15 | 2022-11-22 | 南京芯驰半导体科技有限公司 | 一种多核异构处理器的虚拟控制系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10467725B2 (en) | Managing access to a resource pool of graphics processing units under fine grain control | |
US10936535B2 (en) | Providing remote, reliant and high performance PCI express device in cloud computing environments | |
US10409628B2 (en) | Managing virtual machine instances utilizing an offload device | |
US10768972B2 (en) | Managing virtual machine instances utilizing a virtual offload device | |
Mauch et al. | High performance cloud computing | |
Nanavati et al. | Decibel: Isolation and sharing in disaggregated {Rack-Scale} storage | |
JP6200497B2 (ja) | 仮想マシンのフローの物理的なキューへのオフロード | |
RU2571366C2 (ru) | Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин | |
WO2018119952A1 (zh) | 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品 | |
CN110719234A (zh) | 一种基于dpdk的数据包处理方法及装置 | |
CN111880750A (zh) | 磁盘读写资源的分配方法、装置、设备及存储介质 | |
US11579908B2 (en) | Containerized workload scheduling | |
EP2191371A2 (en) | Allocating network adapter resources among logical partitions | |
CN108021449B (zh) | 一种协程实现方法、终端设备及存储介质 | |
CN112087332B (zh) | 一种云边协同下的虚拟网络性能优化系统 | |
US20210352023A1 (en) | Utilizing coherently attached interfaces in a network stack framework | |
CN111176829A (zh) | 虚拟化处理系统中的物理功能和虚拟功能的灵活资源分配 | |
CN116185554A (zh) | 一种配置装置、调度装置及配置方法和调度方法 | |
WO2016015493A1 (zh) | 一种硬件虚拟端口及处理器系统 | |
Li et al. | A novel disk I/O scheduling framework of virtualized storage system | |
CN111158911A (zh) | 一种处理器配置方法、装置、处理器及网络设备 | |
CN115809158A (zh) | 一种车载座舱娱乐系统用双系统多通道共享内存方法 | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
Kwon et al. | Smartfvm: A fast, flexible, and scalable hardware-based virtualization for commodity storage devices | |
Le et al. | Performance analysis of adaptive resource allocation scheme for OpenCL-based FPGA virtualization system |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200515 |