掌桥专利:专业的专利平台
掌桥专利
首页

虚拟化网络功能网元编排调度方法、装置和系统

文献发布时间:2023-06-19 12:13:22


虚拟化网络功能网元编排调度方法、装置和系统

技术领域

本公开涉及云计算领域中的容器技术领域,尤其涉及一种虚拟化网络功能网元编排调度方法、装置和系统。

背景技术

NFV(Network Functions Virtualization,网络功能虚拟化)、5G网元微服务设计、容器化部署已成趋势,而容器服务供应链中的各个VNF(Virtual Network Function,虚拟化网络功能)网元间具有一定的依赖关系,在大并发、低时延的业务场景中,为了保障高效的网络传输性能,往往需要把具有依赖关系的容器VNF亲和性调度到同一集群内、同一个节点内甚至同一个Pod(容器实例)内。

在相关技术中,一种方案为VNF集群级亲和性调度。即把相互依赖的各个VNF调度到同一集群的不同节点上,导致网络功能性能不稳定。对于有高响应速度需求的VNF来说,跨节点独立部署,仍不能满足低时延场景,各个VNF间通过网络栈跨节点通信存在性能损耗,网络服务难以保障基本的用户体验。

一种方案为VNF节点级亲和性调度。即把相互依赖的各个VNF调度到同一集群的同一节点上,导致资源浪费,某些集群节点过于空闲,某些集群节点又过于紧张,在用户流量激增、资源紧张的情况下,甚至出现整个服务链容器VNF无法调度的情况。同一节点内容器VNF间需要走内核回环通信,仍然存在一定性能损耗。

另一种方案为基于Tag(标签)的VNF容器组级亲和性调度。即手动对强依赖的容器VNF打上相同的Pod标签,并把它们调度到同一Pod上运行,导致运维难度大。当服务需要升级回滚时,只能对Pod级别进行统一操作,无法对同一Pod内不同容器VNF进行独立的生命周期管理。

发明内容

本公开提供一种虚拟化网络功能网元编排调度方法、装置和系统,能够最大程度保障网络质量,提升底层设备资源利用率。

根据本公开一方面,提出一种虚拟化网络功能网元编排调度方法,包括:获取容器服务链中虚拟化网络功能VNF网元间的依赖关系和每个VNF网元的网络栈类型;获取每个集群中每个节点的资源占用情况;根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,对每个VNF网元进行编排调度。

在一些实施例中,对每个VNF网元进行编排调度包括:根据节点的资源占用情况,判断一个节点是否能够满足具有依赖关系的VNF网元的需求;根据每个VNF网元的网络栈类型,判断具有依赖关系的VNF网元是否均支持用户态内存接口直接通信;若一个节点能够满足具有依赖关系的VNF网元的需求,且具有依赖关系的VNF网元均支持用户态内存接口直接通信,则将具有依赖关系的VNF网元编排调度到同一节点的同一容器实例中。

在一些实施例中,对每个VNF网元进行编排调度还包括:若一个节点能够满足具有依赖关系的VNF网元的需求,但具有依赖关系的VNF网元中包含不支持用户态内存接口直接通信类型的VNF网元,则将支持用户态内存接口直接通信的VNF网元和不支持用户态内存接口直接通信的VNF网元,分别编排调度到同一节点的不同容器实例中。

在一些实施例中,对每个VNF网元进行编排调度还包括:若一个节点不能满足具有依赖关系的VNF网元的需求,则将具有依赖关系的VNF网元编排调度到同一集群的不同节点中。

在一些实施例中,对每个VNF网元进行编排调度还包括:若容器服务链前后两个VNF网元之间没有依赖关系,且一个节点能够满足两个VNF网元的需求,两个节点间的通信网络时延不能满足两个VNF网元间网络延迟容忍度最大值,则将两个VNF网元编排调度到同一节点的不同容器实例中。

在一些实施例中,对每个VNF网元进行编排调度还包括:若容器服务链前后两个VNF网元之间没有依赖关系,且一个节点不能满足两个VNF网元的需求,则将两个VNF网元编排调度到不同的节点中。

在一些实施例中,编排调度到同一节点的不同容器实例中的VNF网元之间通过本地回环通信。

根据本公开的另一方面,还提出一种虚拟化网络功能网元编排调度装置,包括:VNF信息获取单元,被配置为获取容器服务链中虚拟化网络功能VNF网元间的依赖关系和每个VNF网元的网络栈类型;资源获取单元,被配置为获取每个集群中每个节点的资源占用情况;编排调度单元,被配置为根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,对每个VNF网元进行编排调度。

根据本公开的另一方面,还提出一种虚拟化网络功能网元编排调度装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行如上述的虚拟化网络功能网元编排调度方法。

根据本公开的另一方面,还提出一种虚拟化网络功能网元编排调度系统,包括:VNF信息设置单元,被配置为存储容器服务链中虚拟化网络功能VNF网元间的依赖关系和每个VNF网元的网络栈类型;监控客户端,被配置为监测所在节点的资源占用情况,并将所在节点的资源占用情况发送至监测服务端;监测服务端,被配置为将得到的各节点的资源占用情况发送至虚拟化网络功能网元编排调度装置;以及上述的虚拟化网络功能网元编排调度装置。

根据本公开的另一方面,还提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述的虚拟化网络功能网元编排调度方法。

与相关技术相比,本公开实施例中,根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,对每个VNF网元进行编排调度,在满足服务响应时间要求的前提下,最小化容器资源开销,能够最大程度保障网络质量,提升底层设备资源利用率。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1为本公开的虚拟化网络功能网元编排调度方法的一些实施例的流程示意图。

图2为本公开的虚拟化网络功能网元编排调度方法的另一些实施例的流程示意图。

图3为本公开的虚拟化网络功能网元编排调度方案的一些具体实施例的流程示意图。

图4为本公开的虚拟化网络功能网元编排调度装置的一些实施例的结构示意图。

图5为本公开的虚拟化网络功能网元编排调度装置的另一些实施例的结构示意图。

图6为本公开的虚拟化网络功能网元编排调度装置的另一些实施例的结构示意图。

图7为本公开的虚拟化网络功能网元编排调度系统的一些实施例的结构示意图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

针对容器VNF编排调度后存在的资源浪费和对网络功能的性能损耗问题,本公开提供了一种虚拟化网络功能网元编排调度方法、装置和系统。

图1为本公开的虚拟化网络功能网元编排调度方法的一些实施例的流程示意图。

在步骤110,获取容器服务链中VNF网元间的依赖关系和每个VNF网元的网络栈类型。

若一条容器服务链中的前后两个VNF网元的网络延迟容忍度小于阈值,则说明这两个VNF网元具有依赖关系。

在一些实施例中,VNF网元的网络栈类型包括:支持用户态内存接口直接通信类型和本地回环通信类型。

相比于传统VNF网元,该实施例中的VNF网元是更细粒度的能被容器化的一个容器微服务VNF,其中一个容器承载一个VNF。

在步骤120,获取每个集群中每个节点的资源占用情况。

在一些实施例中,在每个节点中设置监控客户端,监控客户端用于监控各节点的资源占用情况,定时反馈给监控服务端,监控服务端收集监控客户端上传的每个节点的资源占用情况。

在步骤130,根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,对每个VNF网元进行编排调度。

在上述实施例中,根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,对每个VNF网元进行编排调度,在满足服务响应时间要求的前提下,最小化容器资源开销,能够最大程度保障网络质量,提升底层设备资源利用率。

图2为本公开的虚拟化网络功能网元编排调度方法的另一些实施例的流程示意图。

在步骤210,获取容器服务链中VNF网元间的依赖关系和每个VNF网元的网络栈类型。

在步骤220,获取每个集群中每个节点的资源占用情况。

在步骤230,根据节点的资源占用情况,判断一个节点是否能够满足具有依赖关系的VNF网元的需求,若是,则执行步骤240,否则,执行步骤270。

在一些实施例中,通过计算容器服务链中各VNF网元间的网络性能需求和资源开销,进一步判断一个节点是否能够满足多个VNF网络的需求。

在步骤240,根据每个VNF网元的网络栈类型,判断具有依赖关系的VNF网元是否均支持用户态内存接口直接通信,若是,则执行步骤250,否则,执行步骤260。

在步骤250,将具有依赖关系的VNF网元编排调度到同一节点的同一容器实例中。即将多个VNF网元编排调度到同一节点的同一Pod中,一个Pod封装一个或多个容器。

编排调度到同一节点的同一Pod中的VNF网元之间,通过用户态内存接口直接通信,相比于节点级亲和性调度方案中,多个Pod中的VNF网元通过本地回环通信,能够降低VNF网元间网络路径、资源开销,增强了性能,提升了网络服务质量。

在一些实施例中,将多个VNF编排调度到同一Pod中,由于每一个Pod有自己独立的命名空间,一个Pod中的多个容器会共享同一个隔离进程的命名空间IPC,相当于多个容器可以使用标准的进程间通信方式来互相通信,比如SystemV信号量和POSIX共享内存,不需要走内核态回环通信。另外,同一Pod中的容器使用主机上的一个目录作为共享卷(sharedvolume),在多个容器间共享数据,即实现了多个容器复用内存页资源,降低容器资源开销。

在一些实施例中,可以将具有依赖关系的VNF网元,通过打标签的方式调度到同一Pod中,运维人员可对Pod中的任一容器进行生命周期管理,简化运维,在不改变现有部署习惯的同时,使强依赖容器VNF亲和性调度到同一个pod内。

相关技术中,需要人工对每个有需求的VNF网元打标签,并将具有相同标签的VNF网元调度到同一Pod中,在实际应用场景中,一种VNF通常会被批量部署或在多条服务链中重用,该实施例中,只对具有依赖关系的VNF打标签,并部署到同一Pod中。

在步骤260,将支持用户态内存接口直接通信的VNF网元和不支持用户态内存接口直接通信的VNF网元,分别编排调度到同一节点的不同容器实例中。

在一些实施例中,编排调度到同一节点的不同容器实例中的VNF网元之间通过本地回环通信。

在步骤270,将具有依赖关系的VNF网元编排调度到同一集群的不同节点中。

在一些实施例中,编排调度到不同节点的VNF网元之间通过跨主机通信。

当多个VNF网元调度到同一个容器实例中时,VNF网元之间利用用户态内存接口直接通信,VNF网元间通信的网络性能最高,对节点的资源开销也最小;当多个VNF网元分别调度到同节点不同的容器实例中时,VNF网元之间利用本地回环通信,次高性能;当多个VNF网元分别调度到不同节点上时,多个VNF网元间需要跨主机通信,网络性能是最差的。

在上述实施例中,根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,优先选择容器实例内编排方式,在满足服务响应时间要求的前提下,最小化容器资源开销。

在本公开的另一些实施例中,在主机资源充足,若容器服务链前后两个VNF网元之间没有依赖关系,且两个节点间的通信网络时延不能满足两个VNF网元间网络延迟容忍度最大值,则将两个VNF网元编排调度到同一节点的不同容器实例中。

在一些实施例中,若容器服务链前后两个VNF网元之间没有依赖关系,且一个节点不能满足两个VNF网元的需求,则将两个VNF网元编排调度到不同的节点中。

在一些具体实施例中,如图3所示。容器服务链SFC1中包括VNF1网元、VNF2网元、VNF3网元和VNF4网元,其中,VNF1网元与VNF2网元之间具有依赖关系。节点A包括Pod1和Pod2,节点B包括Pod3以及其他Pod。监控客户端A监测到节点A的资源占用情况,监控客户端B监测到节点B的资源占用情况,其中,监控客户端A和监控客户端B分别将监测到的节点的资源占用情况发送至监控服务端。调度决策模块集合VNF网元的依赖关系、监控服务端分析的节点资源使用情况,按需调度VNF网元到合适的节点或Pod内。例如,将VNF1网元与VNF2网元被编排调度到节点A的Pod1中,将VNF3网元编排调度到节点A的Pod2中,将VNF4网元编排调度到节点B的Pod3中。VNF1网元与VNF2网元之间通过用户态内存接口直接通信,VNF1网元与VNF3网元之间通过本地回环通信。

在上述实施例中,既能保障网络服务质量,满足基本用户体验,又能最小化容器资源开销提升资源利用率,实现容器服务链VNF合理化编排调度。

图4为本公开的虚拟化网络功能网元编排调度装置的一些实施例的结构示意图。该装置包括VNF信息获取单元410、资源获取单元420和编排调度单元430。

VNF信息获取单元410被配置为获取容器服务链中VNF网元间的依赖关系和每个VNF网元的网络栈类型。

资源获取单元420被配置为获取每个集群中每个节点的资源占用情况。

编排调度单元430被配置为根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,对每个VNF网元进行编排调度。

在一些实施例中,根据节点的资源占用情况,判断一个节点是否能够满足具有依赖关系的VNF网元的需求;根据每个VNF网元的网络栈类型,判断具有依赖关系的VNF网元是否均支持用户态内存接口直接通信;若一个节点能够满足具有依赖关系的VNF网元的需求,且具有依赖关系的VNF网元均支持用户态内存接口直接通信,则将具有依赖关系的VNF网元编排调度到同一节点的同一容器实例中。

在一些实施例中,若一个节点能够满足具有依赖关系的VNF网元的需求,但具有依赖关系的VNF网元中包含不支持用户态内存接口直接通信类型的VNF网元,则将支持用户态内存接口直接通信的VNF网元和不支持用户态内存接口直接通信的VNF网元,分别编排调度到同一节点的不同容器实例中。

在一些实施例中,若一个节点不能满足具有依赖关系的VNF网元的需求,则将具有依赖关系的VNF网元编排调度到同一集群的不同节点中。

在一些实施例中,若容器服务链前后两个VNF网元之间没有依赖关系,且一个节点能够满足两个VNF网元的需求,两个节点间的通信网络时延不能满足两个VNF网元间网络延迟容忍度最大值,则将两个VNF网元编排调度到同一节点的不同容器实例中。编排调度到同一节点的不同容器实例中的VNF网元之间通过本地回环通信。

在一些实施例中,若容器服务链前后两个VNF网元之间没有依赖关系,且一个节点不能满足两个VNF网元的需求,则将两个VNF网元编排调度到不同的节点中。

在上述实施例中,根据VNF网元间的依赖关系、每个VNF网元的网络栈类型、以及每个节点的资源占用情况,优先选择容器实例内编排方式,既能保障网络服务质量,满足基本用户体验,又能最小化容器资源开销、提升资源利用率,实现容器服务链VNF合理化编排调度。

图5为本公开的虚拟化网络功能网元编排调度装置的另一些实施例的结构示意图。该装置包括:存储器510和处理器520,其中:存储器510可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图1-2所对应实施例中的指令。处理器520耦接至存储器510,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器520用于执行存储器中存储的指令。

在一些实施例中,还可以如图6所示,该装置600包括存储器610和处理器620。处理器620通过BUS总线630耦合至存储器610。该装置600还可以通过存储接口640连接至外部存储装置650以便调用外部数据,还可以通过网络接口660连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。

在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够最大程度保障网络质量,提升底层设备资源利用率。

图7为本公开的虚拟化网络功能网元编排调度系统的一些实施例的结构示意图。该系统包括VNF信息设置单元710、监控客户端720、监测服务端730和虚拟化网络功能网元编排调度装置740。其中,虚拟化网络功能网元编排调度装置740已在上述实施例中进行详细介绍,此处不再进一步阐述。

VNF信息设置单元710被配置为存储容器服务链中虚拟化网络功能VNF网元间的依赖关系和每个VNF网元的网络栈类型。

若一条容器服务链中的前后两个VNF网元的网络延迟容忍度小于阈值,则说明这两个VNF网元具有依赖关系。

在一些实施例中,VNF网元的网络栈类型包括支持用户态内存接口直接通信类型和本地回环通信类型。

监控客户端720被配置为监测所在节点的资源占用情况,并将所在节点的资源占用情况发送至监测服务端730。

监测服务端730被配置为将得到的各节点的资源占用情况发送至虚拟化网络功能网元编排调度装置740。

在另一些实施例中,一种非瞬时性计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1-2所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。

技术分类

06120113212986