CN113328948B - 资源管理方法、装置、网络设备及计算机可读存储介质 - Google Patents
资源管理方法、装置、网络设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113328948B CN113328948B CN202110616454.1A CN202110616454A CN113328948B CN 113328948 B CN113328948 B CN 113328948B CN 202110616454 A CN202110616454 A CN 202110616454A CN 113328948 B CN113328948 B CN 113328948B
- Authority
- CN
- China
- Prior art keywords
- resource
- service
- cells
- strategy
- scheme
- 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
Links
Images
Classifications
-
- 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/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
Abstract
本发明提供了一种资源管理方法、装置、网络设备及计算机可读存储介质,涉及通信技术领域,在对支持多业务的网络设备进行资源管理时,先该获取资源划分数据,该资源划分数据包括每个业务对应的规则容量;然后采用连续划分方式,根据资源划分数据和预先建立的位图表,确定网络设备的初始化资源划分方案;其中,位图表中的单元格与对TCAM的存储空间进行预先划分得到的存储单元一一对应;初始化资源划分方案包括以位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;最后根据位图表和初始化资源划分方案,管理TCAM的存储空间。这样既能满足灵活多变的业务需求,又可以减少资源浪费。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种资源管理方法、装置、网络设备及计算机可读存储介质。
背景技术
网络设备相当于一个过滤器,可以控制进出网络的网络流量。网络设备上存在不同业务,不同业务承担着不同的功能,彼此之间独立运作,但又共享着网络设备上的硬件资源。资源的合理分配可以提高设备的使用效率,缩减设备的响应时间。
TCAM(Ternary Content Addressable Memor,三态内容寻址寄存器)可以快速查找规则表项。TCAM内存放的规则表项都可以并行访问,从网络报文中提取关键字,在TCAM规则表项内并行查找,快速得到所有比对结果。TCAM的高效搜索效率成为网络设备存储器的不二之选,可以为网络设备带来显著的性能优势。因此,一套行之有效的管理TCAM存储空间的方案成为开发网络设备必要解决的问题。
目前通常采用均分方式对TCAM的存储空间进行初始化划分,例如对TCAM的存储空间进行n等分,n为设备支持的业务数量。这种均分方式的初始化划分方案不足以应对灵活多变的业务需求,当两个业务体量差距过大时,均分方式显然不合适。并且简单的均分也不能最大限度的使用TCAM的存储空间,会造成资源浪费。
发明内容
本发明的目的在于提供一种资源管理方法、装置、网络设备及计算机可读存储介质,以满足灵活多变的业务需求,减少资源浪费。
本发明实施例提供了一种资源管理方法,应用于支持多业务的网络设备;所述方法包括:
获取资源划分数据,所述资源划分数据包括每个所述业务对应的规则容量,所述规则容量指在所述网络设备的TCAM中为相应业务预先分配的存储空间大小;
采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案;其中,所述位图表中的单元格与对所述TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;所述初始化资源划分方案包括以所述位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;
根据所述位图表和所述初始化资源划分方案,管理所述TCAM的存储空间。
进一步地,在根据所述资源划分数据,确定所述网络设备的初始化资源划分方案之前,所述方法还包括:
根据一个规则表项在所述TCAM中占用的存储空间大小,将所述TCAM的存储空间划分成多个存储单元;
根据各个所述存储单元,建立位图表。
进一步地,采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案的步骤,包括:
按照每个所述业务对应的规则容量,将所述位图表中的各个单元格依次划分给每个所述业务,得到所述网络设备的初始化资源划分方案;所述初始化资源划分方案包括每个所述业务对应的可用单元格数、起始位置单元格编号和终止位置单元格编号。
进一步地,每个所述业务包括至少一个用于报文筛选的策略,每个所述策略包括至少一个规则表项;采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案的步骤,包括:
按照每个所述业务对应的规则容量,将所述位图表中的各个单元格依次划分给每个所述业务;
将每个所述业务的每个策略对应的可用单元格数均设置为0,得到所述网络设备的初始化资源划分方案;所述初始化资源划分方案包括每个所述业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号。
进一步地,每个所述业务包括至少一个用于报文筛选的策略,每个所述策略包括至少一个规则表项;所述资源划分数据还包括每个所述业务对应的子策略数,所述子策略数指频繁使用的策略的数量;采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案的步骤,包括:
按照每个所述业务对应的规则容量,将所述位图表中的各个单元格依次划分给每个所述业务;
对于每个所述业务,根据该业务对应的子策略数,确定该业务对应的资源部分数,所述资源部分数大于所述子策略数;将该业务对应的各个单元格划分为所述资源部分数个部分;将前所述子策略数个部分的各个单元格依次划分给该业务的各个频繁使用的策略,并将该业务的除各个频繁使用的策略之外的其它策略对应的可用单元格数均设置为0,得到该业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号;
根据各个所述业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号,生成所述网络设备的初始化资源划分方案。
进一步地,根据该业务对应的子策略数,确定该业务对应的资源部分数的步骤,包括:
将该业务对应的子策略数加1后的和值,确定为该业务对应的资源部分数。
进一步地,根据所述位图表和所述初始化资源划分方案,管理所述TCAM的存储空间的步骤,包括:
当获取到添加规则表项请求时,获取所述添加规则表项请求对应的目标策略;
判断所述目标策略在所述位图表中是否存在空闲单元格;
当不存在空闲单元格时,通过从所述目标策略开始向左或向右遍历各个策略的位图使用情况,获取距离所述目标策略最近的空闲单元格;
将获取的空闲单元格通过挪动方式重新划分给所述目标策略,得到调整后的资源划分方案。
本发明实施例还提供了一种资源管理装置,应用于支持多业务的网络设备;所述装置包括:
获取模块,用于获取资源划分数据,所述资源划分数据包括每个所述业务对应的规则容量,所述规则容量指在所述网络设备的TCAM中为相应业务预先分配的存储空间大小;
划分模块,用于采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案;其中,所述位图表中的单元格与对所述TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;所述初始化资源划分方案包括以所述位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;
管理模块,用于根据所述位图表和所述初始化资源划分方案,管理所述TCAM的存储空间。
本发明实施例还提供了一种网络设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的资源管理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的资源管理方法。
本发明实施例提供的资源管理方法、装置、网络设备及计算机可读存储介质,在对支持多业务的网络设备进行资源管理时,先获取资源划分数据,该资源划分数据包括每个业务对应的规则容量,规则容量指在网络设备的TCAM中为相应业务预先分配的存储空间大小;然后采用连续划分方式,根据资源划分数据和预先建立的位图表,确定网络设备的初始化资源划分方案;其中,位图表中的单元格与对TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;初始化资源划分方案包括以位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;最后根据位图表和初始化资源划分方案,管理TCAM的存储空间。这样得到的初始化资源划分方案与业务对应的规则容量相适配,既能满足灵活多变的业务需求,又可以较大化使用TCAM的存储空间,减少资源浪费。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种设备业务与策略的关系示意图;
图2为本发明实施例提供的一种TCAM的存储单元与位图的映射关系示意图;
图3为本发明实施例提供的一种资源管理方法的流程示意图;
图4为本发明实施例提供的第一种初始化资源划分方案的示意图;
图5为本发明实施例提供的第二种初始化资源划分方案的示意图;
图6为对图5所示的第二种初始化资源划分方案进行变更后的资源划分方案;
图7为本发明实施例提供的第三种初始化资源划分方案的示意图;
图8为本发明实施例提供的一种调整前的资源划分方案;
图9为对图8所示的资源划分方案进行规则表项位置变更后的示意图;
图10为本发明实施例提供的一种调整后的资源划分方案;
图11为本发明实施例提供的一种资源管理装置的结构示意图;
图12为本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
网络设备使用TCAM对通过设备的网络报文进行筛选操作,筛选使用的条件即为存储在TCAM上的规则表项,其中规则表项指ACL(Access Control Lists,活动控制列表),即一种用于筛选网络报文的表项,筛选条件包括报文的源IP(Internet Protocol,网际互连协议)地址、目的IP地址、报文端口、报文协议等等。同时网络设备上也需要不同的筛选结果处理方案,筛选条件与处理方案共同组成了策略。策略是归属于业务的,不同业务独立运作,为了保证业务之间互不干扰,需要将存储在TCAM上的规则表项做逻辑隔离,即不同业务拥有自己独有的逻辑空间。如何初始化以及使用TCAM的存储空间成为需要解决的问题。
目前通常采用均分方式对TCAM的存储空间进行初始化划分,这种方式不足以应对灵活多变的业务需求,并且会造成资源浪费。基于此,本发明实施例提供的一种资源管理方法、装置、网络设备及计算机可读存储介质,根据资源需求的不同,管理方案的设计也会不同,可以满足灵活多变的业务需求,减少资源浪费。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种资源管理方法的应用场景进行详细介绍。
本发明实施例提供的一种资源管理方法应用于支持多业务的网络设备,设备上存在不同的业务,这些业务共享TCAM的存储资源,但每个业务都拥有自己的规则表项。参见图1所示的一种设备业务与策略的关系示意图,每一个业务下有多个策略,这些策略对应了不同的报文匹配优先级、报文匹配后动作、报文采样方式、报文转发出接口等等。
本实施例中,设备通过位图来管理TCAM的存储空间,位图是一种用来索引的特殊数据结构,每一位二进制数字记录一片存储空间的空闲状态;该种数据结构占用空间小,读取方便。具体的,预先将TCAM的存储空间划分成若干个存储单元,每个存储单元的大小刚好是一个规则表项在TCAM中占用的存储空间大小(即根据一个规则表项在TCAM中占用的存储空间大小,将TCAM的存储空间划分成多个存储单元);根据划分得到的各个存储单元来创建位图表,位图表中的单元格与存储单元一一对应,每个单元格的空闲情况用二进制0和1来表示,0表示相应存储单元空闲可用,1表示相应存储单元已存放了规则表项。参见图2所示的一种TCAM的存储单元与位图的映射关系示意图,将TCAM的存储单元的空闲状态映射为位图,这样就得到了一张二进制位图表。
现在就需要将位图资源初始化,即将位图表中的单元格划分给不同的业务,或者进一步划分给业务下不同的策略,怎样划分既能保证TCAM的较大使用率,又能保证能应对不同的业务需求是本申请需要解决的问题。
参见图3所示的一种资源管理方法的流程示意图,该方法主要包括如下步骤S302~步骤S306:
步骤S302,获取资源划分数据,该资源划分数据包括每个业务对应的规则容量。
其中,规则容量指在网络设备的TCAM中为相应业务预先分配的存储空间大小。
了解到每一个业务频繁使用的规则数目不同,可以根据每一个业务的需求给每一个业务设置规则容量cservide_id,其中service_id表示业务编号,取值范围为0~(s-1),s表示网络设备上存在的业务数量。
步骤S304,采用连续划分方式,根据上述资源划分数据和预先建立的位图表,确定网络设备的初始化资源划分方案;该初始化资源划分方案包括以位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围。
其中,位图表中的单元格与对TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项。上述连续划分方式,使得单元格划分具有连续性,这样可以降低资源管理的复杂度。
可选的,可以使用bit_start(含)和bit_end(不含)来记录单元格的归属情况(即位图范围或划分范围),其中,bit_start(含)表示起始位置单元格编号,bit_end(不含)表示终止位置单元格编号。例如,将TCAM的前10个存储单元(即位图表中的前10个单元格)划分给业务0,此时业务0对应的bit_start=0,bit_end=10,表示业务0拥有编号为0到9的单元格。
步骤S306,根据位图表和初始化资源划分方案,管理TCAM的存储空间。
设备在使用过程中,可以根据使用情况更新位图表;还可以利用位图,根据需求的改变对初始化资源划分方案进行改动,改动仅限于范围的扩充、收缩、范围向左或向右移动。例如采用位图挪动方式,搭配资源池灵活分配可用资源,实现资源划分方案的更新,从而实现了对TCAM存储空间的管理。
本发明实施例提供的资源管理方法,在对支持多业务的网络设备进行资源管理时,先该获取资源划分数据,该资源划分数据包括每个业务对应的规则容量,规则容量指在网络设备的TCAM中为相应业务预先分配的存储空间大小;然后采用连续划分方式,根据资源划分数据和预先建立的位图表,确定网络设备的初始化资源划分方案;其中,位图表中的单元格与对TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;初始化资源划分方案包括以位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;最后根据位图表和初始化资源划分方案,管理TCAM的存储空间。这样得到的初始化资源划分方案与业务对应的规则容量相适配,既能满足灵活多变的业务需求,又可以较大化使用TCAM的存储空间,减少资源浪费。
为了便于理解,本实施例提供了三种初始化资源划分方案,具体如下:
假设网络设备上存在s个业务,每个业务设置一个规则容量cservide_id,service_id表示业务编号,每个业务拥有p个固定的策略。TCAM的存储空间映射的位图表大小为b,即将TCAM的存储空间划分成b个存储单元,位图表包括b个单元格。设备使用前,位图状态为b个0。现需将TCAM的各个存储单元划分给业务以及业务下的策略。
一、第一种初始化资源划分方案
可以提前了解业务的规则表项需求,从而确定业务对应的规则容量,进而将位图表中的各个单元格按照业务对应的规则容量划分给每一个业务。基于此,通过如下过程得到第一种初始化资源划分方案:按照每个业务对应的规则容量,将位图表中的各个单元格依次划分给每个业务,得到网络设备的初始化资源划分方案;该初始化资源划分方案包括每个业务对应的可用单元格数、起始位置单元格编号和终止位置单元格编号。
为了便于理解,参见图4所示的第一种初始化资源划分方案的示意图,该初始化资源划分方案为:
业务0:
可用单元格数=c0
bit_start=0
bit_end=c0
业务1:
可用单元格数=c1
bit_start=c0
bit_end=c0+c1
······
业务s-1:
可用单元格数=cs-1
bit_start=c0+...+cs-2
bit_end=c0+...+cs-1
二、第二种初始化资源划分方案
有些情况下,每个业务下每个策略需求的规则表项数是灵活的,可能随时调整规则表项的转发动作、出接口组等等。考虑到策略的灵活性,可以采用随用随分配的方案。基于此,通过如下过程得到第二种初始化资源划分方案:按照每个业务对应的规则容量,将位图表中的各个单元格依次划分给每个业务;将每个业务的每个策略对应的可用单元格数均设置为0,得到网络设备的初始化资源划分方案;该初始化资源划分方案包括每个业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号。
下面以一个业务为例,说明该第二种初始化资源划分方案。
假设业务0对应的规则容量为c0,业务0拥有p个策略,则可以将业务0对应的资源(即各个单元格)划分为p+1段,前p段分别对应p个策略,最后一段放置在资源池中待定,且前p段的可用单元格数设置为0,最后一段的可用单元格数设置为c0,设备投入使用后,根据使用情况来变更资源划分方案。参见图5所示的第二种初始化资源划分方案的示意图,以该业务0为例,该初始化资源划分方案为:
策略0:
可用单元格数=0
bit_start=0
bit_end=0
······
策略p-1:
可用单元格数=0
bit_start=0
bit_end=0
资源池:
可用单元格数=c0
bit_start=0
bit_end=c0
对于上述的初始化资源划分方案,若此时策略0配置了两个规则,需要使用两个可用位(即空闲单元格),将会从资源池中分出两个可用位给策略0,变更后的资源划分方案如图6所示。
三、第三种初始化资源划分方案
考虑到每个业务频繁使用的策略数较为固定,为了满足后续使用时资源划分方案改动次数较少的需求,可以预先给频繁使用的策略划分部分资源,其余资源放置在资源池中待定。
基于此,通过如下过程得到第三种初始化资源划分方案,其中,上述资源划分数据还包括每个业务对应的子策略数,子策略数指频繁使用的策略的数量:先按照每个业务对应的规则容量,将位图表中的各个单元格依次划分给每个业务;然后,对于每个业务,根据该业务对应的子策略数,确定该业务对应的资源部分数,资源部分数大于子策略数;将该业务对应的各个单元格划分为资源部分数个部分;将前子策略数个部分的各个单元格依次划分给该业务的各个频繁使用的策略,并将该业务的除各个频繁使用的策略之外的其它策略对应的可用单元格数均设置为0,得到该业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号;最后,根据各个业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号,生成该网络设备的初始化资源划分方案。
上述资源部分数指将业务对应的资源划分成若干个部分时的部分数量,如将某业务对应的资源划分成5个部分,则资源部分数为5。可选的,可以将业务对应的子策略数加1后的和值,确定为该业务对应的资源部分数,如某业务对应的子策略数为4,则资源部分数为5。
假设业务频繁使用的策略数量(即子策略数)为n,可以将业务拥有的资源均分为n+1部分,每个频繁使用的策略分得的资源为m=c/(n+1),m取整数;前n部分给n个策略,最后一部分放置在资源池中,若不能整除,将余数也放置在资源池中。
为了便于理解,参见图7所示的第三种初始化资源划分方案的示意图,仍以业务0为例,其规则容量为c0,总策略数为p,频繁使用的策略数量为n0,每个频繁使用的策略分得的资源为m0,该初始化资源划分方案为:
策略0:
可用单元格数=m0
bit_start=0
bit_end=m0
······
策略n0-1:
可用单元格数=m0
bit_start=m0*(n0-1)
bit_end=m0*n0
策略n0:
可用单元格数=0
bit_start=m0*n0
bit_end=m0*n0
······
策略p-1:
可用单元格数=0
bit_start=m0*n0
bit_end=m0*n0
资源池:
可用单元格数=c0-m0*n0
bit_start=m0*n0
bit_end=c0
因此,上述第三种初始化资源划分方案具体如下:
业务0:可用单元格数=c0,bit_start=0,bit_end=c0,m0=c0/(n0+1)。
策略0:
可用单元格数=m0
bit_start=0
bit_end=m0
······
策略n0-1:
可用单元格数=m0
bit_start=m0*(n0-1)
bit_end=m0*n0
策略n0:
可用单元格数=0
bit_start=m0*n0
bit_end=m0*n0
······
策略p-1:
可用单元格数=0
bit_start=m0*n0
bit_end=m0*n0
资源池:
可用单元格数=c0-m0*n0
bit_start=m0*n0
bit_end=c0
业务1:可用单元格数=c1,bit_start=c0,bit_end=c0+c1,m1=c1/(n1+1),n1表示业务1频繁使用的策略数量。
策略0:
可用单元格数=m1
bit_start=c0
bit_end=c0+m1
······
策略n1-1:
可用单元格数=m1
bit_start=c0+m1*(n1-1)
bit_end=c0+m1*n1
策略n1:
可用单元格数=0
bit_start=c0+m1*n1
bit_end=c0+m1*n1
······
策略p-1:
可用单元格数=0
bit_start=c0+m1*n1
bit_end=c0+m1*n1
资源池:
可用单元格数=c1-m1*n1
bit_start=c0+m1*n1
bit_end=c0+c1
······
业务s-1:可用单元格数=cs–1,bit_start=c0+...+cs-2,bit_end=c0+...+cs-1,ms-1=cs-1/(ns-1+1),ns-1表示业务s-1频繁使用的策略数量。
策略0:
可用单元格数=ms-1
bit_start=c0+...+cs-2
bit_end=c0+...+cs-2+ms-1
······
策略n1-1:
可用单元格数=ms-1
bit_start=c0+...+cs-2+ms-1*(ns-1-1)
bit_end=c0+...+cs-2+ms-1*ns-1
策略n1:
可用单元格数=0
bit_start=c0+...+cs-2+ms-1*ns-1
bit_end=c0+...+cs-2+ms-1*ns-1
······
策略p-1:
可用单元格数=0
bit_start=c0+...+cs-2+ms-1*ns-1
bit_end=c0+...+cs-2+ms-1*ns-1
资源池:
可用单元格数=cs-1-ms-1*ns-1
bit_start=c0+...+cs-2+ms-1*ns-1
bit_end=c0+...+cs-1
设备完成上述初始化资源划分方案后就要投入使用,在使用过程中会根据每个业务需求的改变来变更资源划分方案。由于业务之间进行位图挪动涉及规则表项过多,所以在使用过程中不对业务拥有的规则表项数量(即规则容量)进行扩容。如果必须扩容,可以将设备中规则表项导出后,删除设备上规则表项,重新划分业务拥有的规则表项数量后,再导入规则表项。
对于同一业务来说,策略拥有规则表项数是不定的,需要根据使用情况来调整资源划分方案。调整资源划分方案需要顾及到设备中已存在的规则表项,使已存在的规则表项变动尽可能小,因此位图移动可以采取就近原则,从左右最近的策略中获取空闲位置,补充到需要的策略中。
基于此,资源划分方案的调整过程可以如下:当获取到添加规则表项请求时,获取添加规则表项请求对应的目标策略;判断目标策略在位图表中是否存在空闲单元格;当不存在空闲单元格时,通过从目标策略开始向左或向右遍历各个策略的位图使用情况,获取距离目标策略最近的空闲单元格;将获取的空闲单元格通过挪动方式重新划分给目标策略,得到调整后的资源划分方案。
下面以业务0为例,说明资源划分方案的调整过程。假设给业务0的策略15添加规则表项,发现该策略无空闲位置,需要对业务0内部的资源划分方案进行调整,调整前的资源划分方案如图8所示。
为了给策略15扩充容量,首先可以向右遍历各个策略的位图使用情况,得知策略16存在可用位,策略16的第五个位置空闲。将策略16的第一个位置的规则表项放置在第五个位置上,第一个位置就空闲下来;规则表项位置变更后的资源划分方案如图9所示。
此时策略16的第一个位置为空闲状态,将此位置划分给策略15,由此变更划分方案完成,策略15的可用单元格数增加1,其bit_end加1;策略16的可用单元格数减少1,其bit_start加1;调整后的资源划分方案如图10所示。
本发明实施例提供的初始化资源划分方案,既可以满足多变的业务需求,又可以较大化使用TCAM的存储空间;同时在使用过程中位图变更次数相对较少,缩短了设备的响应时间,从而提升了设备的性能。
对应于上述的资源管理方法,本发明实施例还提供了一种资源管理装置,该资源管理装置应用于支持多业务的网络设备;参见图11所示的一种资源管理装置的结构示意图,该装置包括:
获取模块1102,用于获取资源划分数据,该资源划分数据包括每个业务对应的规则容量,规则容量指在网络设备的TCAM中为相应业务预先分配的存储空间大小;
划分模块1104,用于采用连续划分方式,根据资源划分数据和预先建立的位图表,确定网络设备的初始化资源划分方案;其中,位图表中的单元格与对TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;初始化资源划分方案包括以位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;
管理模块1106,用于根据位图表和初始化资源划分方案,管理TCAM的存储空间。
本发明实施例提供的资源管理装置,在对支持多业务的网络设备进行资源管理时,先该获取资源划分数据,该资源划分数据包括每个业务对应的规则容量,规则容量指在网络设备的TCAM中为相应业务预先分配的存储空间大小;然后采用连续划分方式,根据资源划分数据和预先建立的位图表,确定网络设备的初始化资源划分方案;其中,位图表中的单元格与对TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;初始化资源划分方案包括以位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;最后根据位图表和初始化资源划分方案,管理TCAM的存储空间。这样得到的初始化资源划分方案与业务对应的规则容量相适配,既能满足灵活多变的业务需求,又可以较大化使用TCAM的存储空间,减少资源浪费。
进一步,上述装置还包括建立模块,建立模块与划分模块1104连接,建立模块用于:根据一个规则表项在TCAM中占用的存储空间大小,将TCAM的存储空间划分成多个存储单元;根据各个存储单元,建立位图表。
进一步,上述划分模块1104具体用于:按照每个业务对应的规则容量,将位图表中的各个单元格依次划分给每个业务,得到网络设备的初始化资源划分方案;该初始化资源划分方案包括每个业务对应的可用单元格数、起始位置单元格编号和终止位置单元格编号。
进一步,每个业务包括至少一个用于报文筛选的策略,每个策略包括至少一个规则表项;上述划分模块1104还用于:按照每个业务对应的规则容量,将位图表中的各个单元格依次划分给每个业务;将每个业务的每个策略对应的可用单元格数均设置为0,得到网络设备的初始化资源划分方案;该初始化资源划分方案包括每个业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号。
进一步,每个业务包括至少一个用于报文筛选的策略,每个策略包括至少一个规则表项;上述资源划分数据还包括每个业务对应的子策略数,子策略数指频繁使用的策略的数量;上述划分模块1104还用于:按照每个业务对应的规则容量,将位图表中的各个单元格依次划分给每个业务;对于每个业务,根据该业务对应的子策略数,确定该业务对应的资源部分数,资源部分数大于子策略数;将该业务对应的各个单元格划分为资源部分数个部分;将前子策略数个部分的各个单元格依次划分给该业务的各个频繁使用的策略,并将该业务的除各个频繁使用的策略之外的其它策略对应的可用单元格数均设置为0,得到该业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号;根据各个业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号,生成该网络设备的初始化资源划分方案。
进一步,上述划分模块1104还用于:将该业务对应的子策略数加1后的和值,确定为该业务对应的资源部分数。
进一步,上述管理模块1106具体用于:当获取到添加规则表项请求时,获取添加规则表项请求对应的目标策略;判断目标策略在位图表中是否存在空闲单元格;当不存在空闲单元格时,通过从目标策略开始向左或向右遍历各个策略的位图使用情况,获取距离目标策略最近的空闲单元格;将获取的空闲单元格通过挪动方式重新划分给目标策略,得到调整后的资源划分方案。
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
参见图12,本发明实施例还提供一种网络设备100,包括:处理器1200,存储器1201,总线1202和通信接口1203,所述处理器1200、通信接口1203和存储器1201通过总线1202连接;处理器1200用于执行存储器1201中存储的可执行模块,例如计算机程序。
其中,存储器1201可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory,简称NVM),例如至少一个磁盘存储器。通过至少一个通信接口1203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线1202可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器1201用于存储程序,所述处理器1200在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的装置所执行的方法可以应用于处理器1200中,或者由处理器1200实现。
处理器1200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1201,处理器1200读取存储器1201中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的资源管理方法。该计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
附图中的流程图和框图显示了根据本发明的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (7)
1.一种资源管理方法,其特征在于,应用于支持多业务的网络设备;所述方法包括:
获取资源划分数据,所述资源划分数据包括每个所述业务对应的规则容量,所述规则容量指在所述网络设备的TCAM中为相应业务预先分配的存储空间大小;
采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案;其中,所述位图表中的单元格与对所述TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;所述初始化资源划分方案包括以所述位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;
根据所述位图表和所述初始化资源划分方案,管理所述TCAM的存储空间;
每个所述业务包括至少一个用于报文筛选的策略,每个所述策略包括至少一个规则表项;所述资源划分数据还包括每个所述业务对应的子策略数,所述子策略数指频繁使用的策略的数量;所述初始化资源划分方案包括第一划分方案或第二划分方案;
当所述初始化资源划分方案为所述第一划分方案时,采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案的步骤,包括:
按照每个所述业务对应的规则容量,将所述位图表中的各个单元格依次划分给每个所述业务;
将每个所述业务的每个策略对应的可用单元格数均设置为0,得到所述网络设备的初始化资源划分方案;所述初始化资源划分方案包括每个所述业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号;
当所述初始化资源划分方案为所述第二划分方案时,采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案的步骤,包括:
按照每个所述业务对应的规则容量,将所述位图表中的各个单元格依次划分给每个所述业务;
对于每个所述业务,根据该业务对应的子策略数,确定该业务对应的资源部分数,所述资源部分数大于所述子策略数;将该业务对应的各个单元格划分为所述资源部分数个部分;将前所述子策略数个部分的各个单元格依次划分给该业务的各个频繁使用的策略,并将该业务的除各个频繁使用的策略之外的其它策略对应的可用单元格数均设置为0,得到该业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号;
根据各个所述业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号,生成所述网络设备的初始化资源划分方案。
2.根据权利要求1所述的方法,其特征在于,在根据所述资源划分数据,确定所述网络设备的初始化资源划分方案之前,所述方法还包括:
根据一个规则表项在所述TCAM中占用的存储空间大小,将所述TCAM的存储空间划分成多个所述存储单元;
根据各个所述存储单元,建立位图表。
3.根据权利要求1所述的方法,其特征在于,根据该业务对应的子策略数,确定该业务对应的资源部分数的步骤,包括:
将该业务对应的子策略数加1后的和值,确定为该业务对应的资源部分数。
4.根据权利要求1所述的方法,其特征在于,当所述初始化资源划分方案为所述第二划分方案时,根据所述位图表和所述初始化资源划分方案,管理所述TCAM的存储空间的步骤,包括:
当获取到添加规则表项请求时,获取所述添加规则表项请求对应的目标策略;
判断所述目标策略在所述位图表中是否存在空闲单元格;
当不存在空闲单元格时,通过从所述目标策略开始向左或向右遍历各个策略的位图使用情况,获取距离所述目标策略最近的空闲单元格;
将获取的空闲单元格通过挪动方式重新划分给所述目标策略,得到调整后的资源划分方案。
5.一种资源管理装置,其特征在于,应用于支持多业务的网络设备;所述装置包括:
获取模块,用于获取资源划分数据,所述资源划分数据包括每个所述业务对应的规则容量,所述规则容量指在所述网络设备的TCAM中为相应业务预先分配的存储空间大小;
划分模块,用于采用连续划分方式,根据所述资源划分数据和预先建立的位图表,确定所述网络设备的初始化资源划分方案;其中,所述位图表中的单元格与对所述TCAM的存储空间进行预先划分得到的存储单元一一对应,单元格的空闲情况用于表征相应存储单元是否存放了规则表项;所述初始化资源划分方案包括以所述位图表中的可用单元格数、起始位置单元格编号和终止位置单元格编号记录的划分范围;
管理模块,用于根据所述位图表和所述初始化资源划分方案,管理所述TCAM的存储空间;
每个所述业务包括至少一个用于报文筛选的策略,每个所述策略包括至少一个规则表项;所述资源划分数据还包括每个所述业务对应的子策略数,所述子策略数指频繁使用的策略的数量;所述初始化资源划分方案包括第一划分方案或第二划分方案;
当所述初始化资源划分方案为所述第一划分方案时,所述划分模块具体用于:
按照每个所述业务对应的规则容量,将所述位图表中的各个单元格依次划分给每个所述业务;
将每个所述业务的每个策略对应的可用单元格数均设置为0,得到所述网络设备的初始化资源划分方案;所述初始化资源划分方案包括每个所述业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号;
当所述初始化资源划分方案为所述第二划分方案时,所述划分模块具体用于:
按照每个所述业务对应的规则容量,将所述位图表中的各个单元格依次划分给每个所述业务;
对于每个所述业务,根据该业务对应的子策略数,确定该业务对应的资源部分数,所述资源部分数大于所述子策略数;将该业务对应的各个单元格划分为所述资源部分数个部分;将前所述子策略数个部分的各个单元格依次划分给该业务的各个频繁使用的策略,并将该业务的除各个频繁使用的策略之外的其它策略对应的可用单元格数均设置为0,得到该业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号;
根据各个所述业务的每个策略对应的可用单元格数、起始位置单元格编号和终止位置单元格编号,生成所述网络设备的初始化资源划分方案。
6.一种网络设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110616454.1A CN113328948B (zh) | 2021-06-02 | 2021-06-02 | 资源管理方法、装置、网络设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110616454.1A CN113328948B (zh) | 2021-06-02 | 2021-06-02 | 资源管理方法、装置、网络设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113328948A CN113328948A (zh) | 2021-08-31 |
CN113328948B true CN113328948B (zh) | 2022-10-04 |
Family
ID=77423271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110616454.1A Active CN113328948B (zh) | 2021-06-02 | 2021-06-02 | 资源管理方法、装置、网络设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113328948B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466012B (zh) * | 2022-02-07 | 2022-11-25 | 北京百度网讯科技有限公司 | 内容初始化方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856435B1 (en) * | 2007-10-25 | 2014-10-07 | Oracle America, Inc. | External, self-initializing content addressable memory free index storage device |
WO2016101488A1 (zh) * | 2014-12-26 | 2016-06-30 | 中兴通讯股份有限公司 | 一种三态内容可寻址存储器tcam查表方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687786B1 (en) * | 2001-09-28 | 2004-02-03 | Cisco Technology, Inc. | Automated free entry management for content-addressable memory using virtual page pre-fetch |
CN101039252B (zh) * | 2006-03-15 | 2012-05-23 | 中兴通讯股份有限公司 | 一种三重内容可寻址存储器路由表管理方法 |
CN102289453B (zh) * | 2011-06-20 | 2013-09-18 | 北京星网锐捷网络技术有限公司 | 三态内容寻址存储器规则存储方法、装置及网络设备 |
CN102291296B (zh) * | 2011-08-04 | 2016-12-21 | 中兴通讯股份有限公司 | 一种路由表的更新方法及系统 |
CN105791455B (zh) * | 2014-12-26 | 2020-04-07 | 中兴通讯股份有限公司 | 三态内容寻址存储器tcam空间的处理方法及装置 |
CN108279853A (zh) * | 2018-01-19 | 2018-07-13 | 盛科网络(苏州)有限公司 | 基于tcam的ipmc数据存储方法 |
CN111819552A (zh) * | 2018-06-20 | 2020-10-23 | 华为技术有限公司 | 访问控制列表的管理方法及装置 |
CN110191135B (zh) * | 2019-06-11 | 2021-09-21 | 杭州迪普信息技术有限公司 | Acl配置方法、装置、电子设备 |
CN110781004A (zh) * | 2019-10-24 | 2020-02-11 | 盛科网络(苏州)有限公司 | 资源分配管理方法及系统 |
CN112434938A (zh) * | 2020-11-23 | 2021-03-02 | 中国建设银行股份有限公司 | 一种资源容量的管理方法和装置 |
CN112527509B (zh) * | 2020-12-21 | 2023-09-01 | 北京百度网讯科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
-
2021
- 2021-06-02 CN CN202110616454.1A patent/CN113328948B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856435B1 (en) * | 2007-10-25 | 2014-10-07 | Oracle America, Inc. | External, self-initializing content addressable memory free index storage device |
WO2016101488A1 (zh) * | 2014-12-26 | 2016-06-30 | 中兴通讯股份有限公司 | 一种三态内容可寻址存储器tcam查表方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113328948A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8234435B2 (en) | Relay device | |
RU2442210C2 (ru) | Способы и устройства для осуществления операций по дереву каналов | |
CN108984465B (zh) | 一种消息传输方法及设备 | |
EP3057270A1 (en) | Technologies for modular forwarding table scalability | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
US9086950B2 (en) | Method for heap management | |
CN109032533B (zh) | 一种数据存储方法、装置和设备 | |
CN113485822A (zh) | 内存管理方法、系统、客户端、服务器及存储介质 | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
WO2020042612A1 (zh) | 消息存储、读取方法及装置、服务器、存储介质 | |
CN114556881B (zh) | 一种地址翻译方法及装置 | |
CN114710467B (zh) | Ip地址存储方法、装置和硬件网关 | |
CN113328948B (zh) | 资源管理方法、装置、网络设备及计算机可读存储介质 | |
CN114500467A (zh) | 一种地址冲突检测方法、地址冲突检测装置及电子设备 | |
US6366996B1 (en) | Page memory management in non time critical data buffering applications | |
CN104486442A (zh) | 分布式存储系统的数据传输方法、装置 | |
WO2021032038A1 (zh) | 反馈信道的映射方法、装置、设备及存储介质 | |
CN111046004B (zh) | 一种数据文件存储方法、装置、设备及存储介质 | |
CN112600765B (zh) | 一种配置资源调度方法及装置 | |
CN114389995A (zh) | 资源共享的方法、装置以及电子设备 | |
CN114079634B (zh) | 一种报文转发方法、装置及计算机可读存储介质 | |
CN113778948A (zh) | 消息持久化存储方法及装置 | |
CN115129709A (zh) | 一种数据处理方法、服务端及系统 | |
CN114911728A (zh) | 一种数据查找方法、装置及集成电路 | |
JP2006510083A (ja) | ハードウエアにおける構成可能なメモリ分割 |
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 |