一种基于VNF实例复用的NFV编排方法及装置转让专利

申请号 : CN201910548847.6

文献号 : CN110224873B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王颖郭翰涛李文璟喻鹏樊娟

申请人 : 北京邮电大学

摘要 :

本发明实施例提供了一种基于VNF实例复用的NFV编排方法及装置,其中方法包括:获取多条预设SFC及预设物理网络拓扑结构图,遍历SFC,确定具有可复用类型VNF的数量,针对所有物理节点,计算各物理节点的中心性值并排序,将排序在前的所述数量个物理节点确定为候选部署节点,根据各SFC中不同候选部署阶段之间加权值的大小关系,为可复用类型的VNF选取目标部署节点,针对每一可复用类型的VNF,基于该VNF目标部署节点的剩余资源,将该VNF部署于所创建的第一部署对象上,针对每一不可复用类型的VNF,基于预设部署策略将该VNF部署于所创建的第二部署对象上。本发明,能够在VNF部署后减少资源开销。

权利要求 :

1.一种基于VNF实例复用的NFV编排方法,其特征在于,所述方法包括:

获取多条预设服务功能链SFC及预设物理网络拓扑结构图,每一条所述SFC中至少包含一个虚拟网络功能VNF,所述VNF具有预设类型,所述预设类型为可复用类型或者不可复用类型;所述预设物理网络拓扑结构图中包括:多个物理节点及各物理节点之间的物理链路;

遍历所述多条预设SFC,确定所述多条预设SFC中具有可复用类型的VNF的数量;

针对所述预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值,并对各中心性值降序排序,所述中心性值用于表示所述物理节点在所述预设物理网络拓扑结构图中的重要程度;

将排序在前的、与所述具有可复用类型的VNF的数量相同个数的中心性值所对应的物理节点确定为候选部署节点;

针对所述多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点,所述目标部署节点从所述候选部署节点中选取;每一条所述SFC中包含多个候选部署阶段,所述不同候选部署阶段之间的加权值为:当前候选部署阶段与所述当前候选部署阶段的下一候选部署阶段之间的加权值;

针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上;

针对各条SFC中的每一个具有不可复用类型的VNF,为该VNF创建对应的第二部署对象,并基于预设部署策略将该VNF部署于所述第二部署对象上;

其中,所述针对所述预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值的步骤,包括:初始化所述预设物理网络拓扑结构图中每一所述物理节点的初始中心性值;

遍历所述多条预设SFC,计算每一条SFC的起始节点和目标节点之间最短路径上各物理节点的中心性值;

利用水平分割技术和网页排名算法,对所述预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各所述物理节点对应的中心性值;

所述针对所述多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点的步骤,包括:针对该SFC中每一个具有可复用类型的VNF,将对该VNF的部署,确定为该SFC的一个候选部署阶段;

将该SFC的起始节点确定为该SFC的第一候选部署阶段的第一目标部署节点,该SFC的目标节点确定为该SFC的最后一候选部署阶段的第一目标部署节点;

将各所述候选部署节点分别确定为该SFC的、除第一候选部署阶段和最后一候选部署阶段之外的每一候选部署阶段对应的第一目标部署节点;

遍历该SFC的每一候选部署阶段,基于创建一个部署对象所需的开销以及创建一个部署对象占用物理链路一个单位带宽资源所需的开销,计算当前候选部署阶段与当前候选部署阶段的下一阶段之间的加权值;

将该SFC中各候选部署阶段之间加权值之和最小、对应的路径上各候选部署阶段的第一目标部署节点,确定为该SFC中各候选部署阶段的目标部署节点。

2.根据权利要求1所述的方法,其特征在于,所述遍历所述多条预设SFC,确定所述多条预设SFC中具有可复用类型的VNF的数量的步骤,包括:遍历所述多条预设SFC,确定各所述VNF在各所述SFC中的出现次数;

将所述出现次数大于预设数量的VNF,确定为具有可复用类型的VNF;

统计所有的具有可复用类型的VNF的数量。

3.根据权利要求1所述的方法,其特征在于,所述利用水平分割技术和网页排名算法,对所述预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各所述物理节点对应的中心性值的过程,包括:遍历所述多条预设SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签;所述标签用于标识所述物理节点对应的中心性值所处的SFC路径;

遍历所述预设物理网络拓扑结构图中每一物理节点,将当前物理节点对应的中心性值及对应的标签传递给与当前物理节点通信连接的后一物理节点,使所述当前物理节点的中心性值按照预设表达式进行衰减,所述预设表达式为:式中,A表示当前物理节点的中心性值的衰减程度,β表示带宽开销占总开销的比重,表示第i条SFC中一个VNF所需要的CPU资源单位数,Lcost表示创建一个部署对象占用物理链路一个单位带宽资源所需的开销;

针对所述预设物理网络拓扑结构图中每一物理节点,将具有不同标签对应的中心性值相加,得到第一中心性值,在具有相同标签对应的中心性值中取最大中心性值作为第二中心性值,并将所述第一中心性值与所述第二中心性值的求和值,确定为该物理节点的当前中心性值;

针对所述预设物理网络拓扑结构图中的所有物理节点,遍历判断各物理节点的当前中心性值与所述当前中心性值的前一中心性值的差值是否为零;所述当前中心性值为物理节点在中心性值传播计算中当前传播次数中得到的中心性值;

如果所有物理节点的当前中心性值与所述当前中心性值的前一中心性值的差值均为零,则将每一物理节点的当前中心性值,确定为该物理节点的中心性值;

如果所有物理节点的当前中心性值与所述当前中心性值的前一中心性值的差值不全为零,则返回执行遍历所述多条预设SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签的步骤。

4.根据权利要求1-3任一所述的方法,其特征在于,所述针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上的步骤,包括:判断该VNF所对应的目标部署节点上是否已创建第一部署对象;

如果该VNF所对应的目标部署节点上未创建第一部署对象,则在该VNF所对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上;

如果该VNF所对应的目标部署节点上已创建第一部署对象,则判断所述第一部署对象的剩余资源是否小于预设阈值;

如果所述第一部署对象的剩余资源小于预设阈值,则在该VNF所对应的目标部署节点上创建第三部署对象,并将该VNF部署于所述第三部署对象上;

如果所述第一部署对象的剩余资源大于或等于预设阈值,则将该VNF部署于所述第一部署对象上。

5.根据权利要求4所述的方法,其特征在于,所述基于预设部署策略将该VNF部署于所述第二部署对象上的步骤,包括:在与该VNF相邻的两个目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上;

或者,在该VNF所在的SFC的起始节点与目标节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上;

或者,在该VNF所在的SFC的起始节点和与该VNF相邻的目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上;

或者,在与该VNF相邻的目标部署节点和该VNF所在的SFC的目标节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上。

6.一种基于VNF实例复用的NFV编排装置,其特征在于,所述装置包括:

获取模块,用于获取多条预设服务功能链SFC及预设物理网络拓扑结构图,每一条所述SFC中至少包含一个虚拟网络功能VNF,所述VNF具有预设类型,所述预设类型为可复用类型或者不可复用类型;所述预设物理网络拓扑结构图中包括:多个物理节点及各物理节点之间的物理链路;

第一确定模块,用于遍历所述多条预设SFC,确定所述多条预设SFC中具有可复用类型的VNF的数量;

计算模块,用于针对所述预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值,并对各中心性值降序排序,所述中心性值用于表示所述物理节点在所述预设物理网络拓扑结构图中的重要程度;

第二确定模块,用于将排序在前的、与所述具有可复用类型的VNF的数量相同个数的中心性值所对应的物理节点确定为候选部署节点;

选取模块,用于针对所述多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点,所述目标部署节点从所述候选部署节点中选取;每一条所述SFC中包含多个候选部署阶段,所述不同候选部署阶段之间的加权值为:当前候选部署阶段与所述当前候选部署阶段的下一候选部署阶段之间的加权值;

第一部署模块,用于针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上;

第二部署模块,用于针对各条SFC中的每一个具有不可复用类型的VNF,为该VNF创建对应的第二部署对象,并基于预设部署策略将该VNF部署于所述第二部署对象上;

所述计算模块包括:

初始化子模块,用于初始化预设物理网络拓扑结构图中每一物理节点的初始中心性值;

第一计算子模块,用于遍历多条预设SFC,计算每一条SFC的起始节点和目标节点之间最短路径上各物理节点的中心性值;

第二计算子模块,用于利用水平分割技术和网页排名算法,对预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各物理节点对应的中心性值;

所述选取模块,包括:

第五确定子模块,用于针对该SFC中每一个具有可复用类型的VNF,将对该VNF的部署,确定为该SFC的一个候选部署阶段;

第六确定子模块,用于将该SFC的起始节点确定为该SFC的第一候选部署阶段的第一目标部署节点,该SFC的目标节点确定为该SFC的最后一候选部署阶段的第一目标部署节点;

第七确定子模块,用于将各候选部署节点分别确定为该SFC的、除第一候选部署阶段和最后一候选部署阶段之外的每一候选部署阶段对应的第一目标部署节点;

第三计算子模块,用于遍历该SFC的每一候选部署阶段,基于创建一个部署对象所需的开销以及创建一个部署对象占用物理链路一个单位带宽资源所需的开销,计算当前候选部署阶段与当前候选部署阶段的下一阶段之间的加权值;

第八确定子模块,用于将该SFC中各候选部署阶段之间加权值之和最小、对应的路径上各候选部署阶段的第一目标部署节点,确定为该SFC中各候选部署阶段的目标部署节点。

7.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。

说明书 :

一种基于VNF实例复用的NFV编排方法及装置

技术领域

[0001] 本发明涉及通信技术领域,特别是涉及一种基于VNF实例复用的NFV编排方法及装置。

背景技术

[0002] 随着通信技术的快速发展,网络规模的不断壮大以及业务的不断扩展,网络服务需求以及高QoS(Quality of Service,服务质量)的要求趋于多样化,使得运营商在组网时需要花费大量资金采备各式各样的专用化网络器件以满足多样化的服务需求,NFV(Network Functions Virtualization,网络功能虚拟化)应运而生。NFV是一种新的网络架构的概念,利用虚拟化技术,将网络节点阶层的功能,分割成几个功能区块,分别以软件方式实作,不再局限于硬件架构。NFV技术实现了网元功能与专用硬件设备的解耦,允许服务能够作为软件运行于行业标准服务器硬件上,使得网络服务具有更大的敏捷性和可扩展性,可以充分灵活共享资源。NFV技术通过不同VNF(Virtualized Network Function,虚拟网络功能)的搭配链接来满足不断变化的需求,以实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。
[0003] 虽然网络虚拟化可以减轻运营商的负担,但如何合理的部署每个VNF,满足每个SFC(Service Function Chains,服务功能链)的资源和次序需求,保证尽可能低的物理资源消耗提高资源利用效率,是当前NFV编排问题的挑战。目前针对NFV编排的方法为:在已知所有SFC、每一SFC中所包含的VNF以及物理网络拓扑结构图的情况下,基于每一SFC中VNF可部署的物理网络拓扑结构图中的物理节点,计算每一SFC对应的最短路径,例如,SFC可部署的物理节点个数最少即为该SFC对应的最短路径,然后,再基于每个SFC所需资源数的大小,计算每一最短路径上各物理节点的介数中心性值,进而选取每一最短路径上介数中心性值最大对应的物理节点作为候选部署节点,在候选部署节点上为SFC中VNF创建对应的VNF实例,并将该VNF部署于所创建的VNF实例上,例如,VNF实例可以为虚拟防火墙、虚拟网关等。
[0004] 然而,现有针对NVF的编排方法,在将VNF对应的VNF实例创建在最短路径上的具有最大介数中心性值对应的物理节点上时,因所选取的候选部署节点位于每一SFC的最短路径上,而物理节点能够提供的资源大小是固定的,当某一物理节点所剩的资源大小不足以创建某一SFC中VNF对应的VNF实例所需的资源时,需要将该SFC中VNF对应的VNF实例创建在其他物理节点上,使得另外的SFC在复用该VNF对应的VNF实例时可能需要绕路,进而导致SFC的部署路径增长,资源开销大。

发明内容

[0005] 本发明实施例的目的在于提供一种基于VNF实例复用的NFV编排方法及装置,以在虚拟网络功能VNF部署后减少资源开销。具体技术方案如下:
[0006] 第一方面,本发明实施例提供了一种基于VNF实例复用的NFV编排方法,所述方法包括:
[0007] 获取多条预设服务功能链SFC及预设物理网络拓扑结构图,每一条所述SFC中至少包含一个虚拟网络功能VNF,所述VNF具有预设类型,所述预设类型为可复用类型或者不可复用类型;所述预设物理网络拓扑结构图中包括:多个物理节点及各物理节点之间的物理链路;
[0008] 遍历所述多条预设SFC,确定所述多条预设SFC中具有可复用类型的VNF的数量;
[0009] 针对所述预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值,并对各中心性值降序排序,所述中心性值用于表示所述物理节点在所述预设物理网络拓扑结构图中的重要程度;
[0010] 将排序在前的、与所述数量相同个数的中心性值所对应的物理节点确定为候选部署节点;
[0011] 针对所述多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点,所述目标部署节点从所述候选部署节点中选取;每一条所述SFC中包含多个候选部署阶段,所述不同候选部署阶段之间的加权值为:当前候选部署阶段与所述当前候选部署阶段的下一候选部署阶段之间的加权值;
[0012] 针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上;
[0013] 针对各条SFC中的每一个具有不可复用类型的VNF,为该VNF创建对应的第二部署对象,并基于预设部署策略将该VNF部署于所述第二部署对象上。
[0014] 可选地,所述遍历所述多条预设SFC,确定所述多条预设SFC中具有可复用类型的VNF的数量的步骤,包括:
[0015] 遍历所述多条预设SFC,确定各所述VNF在各所述SFC中的出现次数;
[0016] 将所述出现次数大于预设数量的VNF,确定为具有可复用类型的VNF;
[0017] 统计所有的具有可复用类型的VNF的数量。
[0018] 可选地,所述针对所述预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值的步骤,包括:
[0019] 初始化所述预设物理网络拓扑结构图中每一所述物理节点的初始中心性值;
[0020] 遍历所述多条预设SFC,计算每一条SFC的起始节点和目标节点之间最短路径上各物理节点的中心性值;
[0021] 利用水平分割技术和网页排名算法,对所述预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各所述物理节点对应的中心性值。
[0022] 可选地,所述利用水平分割技术和网页排名算法,对所述预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各所述物理节点对应的中心性值的过程,包括:
[0023] 遍历所述多条预设SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签;所述标签用于标识所述物理节点对应的中心性值所处的SFC路径;
[0024] 遍历所述预设物理网络拓扑结构图中每一物理节点,将当前物理节点对应的中心性值及对应的标签传递给与当前物理节点通信连接的后一物理节点,使所述当前物理节点的中心性值按照预设表达式进行衰减,所述预设表达式为:
[0025]
[0026] 式中,A表示当前物理节点的中心性值的衰减程度,β表示带宽开销占总开销的比重, 表示第i条SFC中一个VNF所需要的CPU资源单位数,Lcost表示创建一个部署对象占用物理链路一个单位带宽资源所需的开销;
[0027] 针对所述预设物理网络拓扑结构图中每一物理节点,将具有不同标签对应的中心性值相加,得到第一中心性值,在具有相同标签对应的中心性值中取最大中心性值作为第二中心性值,并将所述第一中心性值与所述第二中心性值的求和值,确定为该物理节点的当前中心性值;
[0028] 针对所述预设物理网络拓扑结构图中的所有物理节点,遍历判断各物理节点的当前中心性值与所述当前中心性值的前一中心性值的差值是否为零;所述当前中心性值为物理节点在中心性值传播计算中当前传播次数中得到的中心性值;
[0029] 如果所有物理节点的当前中心性值与所述当前中心性值的前一中心性值的差值均为零,则将每一物理节点的当前中心性值,确定为该物理节点的中心性值;
[0030] 如果所有物理节点的当前中心性值与所述当前中心性值的前一中心性值的差值不全为零,则返回执行遍历所述多条预设SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签的步骤。
[0031] 可选地,所述针对所述多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点的步骤,包括:
[0032] 针对该SFC中每一个具有可复用类型的VNF,将对该VNF的部署,确定为该SFC的一个候选部署阶段;
[0033] 将该SFC的起始节点确定为该SFC的第一候选部署阶段的第一目标部署节点,该SFC的目标节点确定为该SFC的最后一候选部署阶段的第一目标部署节点;
[0034] 将各所述候选部署节点分别确定为该SFC的、除第一候选部署阶段和最后一候选部署阶段之外的每一候选部署阶段对应的第一目标部署节点;
[0035] 遍历该SFC的每一候选部署阶段,基于创建一个部署对象所需的开销以及创建一个部署对象占用物理链路一个单位带宽资源所需的开销,计算当前候选部署阶段与当前候选部署阶段的下一阶段之间的加权值;
[0036] 将该SFC中各候选部署阶段之间加权值之和最小、对应的路径上各候选部署阶段的第一目标部署节点,确定为该SFC中各候选部署阶段的目标部署节点。
[0037] 可选地,所述针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上的步骤,包括:
[0038] 判断该VNF所对应的目标部署节点上是否已创建第一部署对象;
[0039] 如果该VNF所对应的目标部署节点上未创建第一部署对象,则在该VNF所对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上;
[0040] 如果该VNF所对应的目标部署节点上已创建第一部署对象,则判断所述第一部署对象的剩余资源是否小于预设阈值;
[0041] 如果所述第一部署对象的剩余资源小于预设阈值,则在该VNF所对应的目标部署节点上创建第三部署对象,并将该VNF部署于所述第三部署对象上;
[0042] 如果所述第一部署对象的剩余资源大于或等于预设阈值,则将该VNF部署于所述第一部署对象上。
[0043] 可选地,所述基于预设部署策略将该VNF部署于所述第二部署对象上的步骤,包括:
[0044] 在与该VNF相邻的两个目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上;
[0045] 或者,在该VNF所在的SFC的起始节点与目标节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上;
[0046] 或者,在该VNF所在的SFC的起始节点和与该VNF相邻的目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上;
[0047] 或者,在与该VNF相邻的目标部署节点和该VNF所在的SFC的目标节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于所述第二部署对象上。
[0048] 第二方面,本发明实施例提供了一种基于VNF实例复用的NFV编排装置,所述装置包括:
[0049] 获取模块,用于获取多条预设服务功能链SFC及预设物理网络拓扑结构图,每一条所述SFC中至少包含一个虚拟网络功能VNF,所述VNF具有预设类型,所述预设类型为可复用类型或者不可复用类型;所述预设物理网络拓扑结构图中包括:多个物理节点及各物理节点之间的物理链路;
[0050] 第一确定模块,用于遍历所述多条预设SFC,确定所述多条预设SFC中具有可复用类型的VNF的数量;
[0051] 计算模块,用于针对所述预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值,并对各中心性值降序排序,所述中心性值用于表示所述物理节点在所述预设物理网络拓扑结构图中的重要程度;
[0052] 第二确定模块,用于将排序在前的、与所述数量相同个数的中心性值所对应的物理节点确定为候选部署节点;
[0053] 选取模块,用于针对所述多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点,所述目标部署节点从所述候选部署节点中选取;每一条所述SFC中包含多个候选部署阶段,所述不同候选部署阶段之间的加权值为:当前候选部署阶段与所述当前候选部署阶段的下一候选部署阶段之间的加权值;
[0054] 第一部署模块,用于针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于所述第一部署对象上;
[0055] 第二部署模块,用于针对各条SFC中的每一个具有不可复用类型的VNF,为该VNF创建对应的第二部署对象,并基于预设部署策略将该VNF部署于所述第二部署对象上。
[0056] 第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0057] 存储器,用于存放计算机程序;
[0058] 处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的一种基于VNF实例复用的NFV编排方法。
[0059] 第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的一种基于VNF实例复用的NFV编排方法。
[0060] 第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的一种基于VNF实例复用的NFV编排方法。
[0061] 本发明实施例提供的一种基于VNF实例复用的NFV编排方法及装置,由于候选部署节点是在整个物理网络拓扑结构图中选取的,并不只是位于SFC的最短路径上的物理节点,而具有可复用类型的VNF的目标部署节点是从候选部署节点中选取的,且具有可复用类型的VNF所部署的第一部署对象,是基于该VNF所对应的目标部署节点的剩余资源所创建的,因此避免了因目标部署节点剩余资源不足需要在其他物理节点上创建而使其他SFC在复用该VNF时需要绕路的情况发生,使得多条SFC中具有可复用类型的VNF可以共享,减少了创建部署对象的开销以及各条SFC中的链路开销,从而减少整体资源开销。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0062] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0063] 图1为本发明实施例提供的一种基于VNF实例复用的NFV编排方法的流程示意图;
[0064] 图2为图1中S102的一种实施方式流程示意图;
[0065] 图3为本发明实施例提供的一种SFC结构示意图;
[0066] 图4为图1中S103的一种实施方式流程示意图;
[0067] 图5为图4中S1033的一种实施方式流程示意图;
[0068] 图6为图1中S105的一种实施方式流程示意图;
[0069] 图7为本发明实施例提供的一种部署方式流程示意图;
[0070] 图8为图1中S106的一种实施方式流程示意图;
[0071] 图9a为本发明实施例提供的VNF利用率与SFC数量关系仿真图;
[0072] 图9b为本发明实施例提供的实例开销与SFC数量关系仿真图;
[0073] 图9c为本发明实施例提供的链路开销与SFC数量关系仿真图;
[0074] 图9d为本发明实施例提供的VNF数量及路径跳数与开销仿真图;
[0075] 图10为本发明实施例提供的一种基于VNF实例复用的NFV编排装置的结构示意图;
[0076] 图11为本发明实施例中确定模块的一种结构示意图;
[0077] 图12为本发明实施例中计算模块的一种结构示意图;
[0078] 图13为本发明实施例中计算模块的另一种结构示意图;
[0079] 图14为本发明实施例中选取模块的一种结构示意图;
[0080] 图15为本发明实施例中部署模块的一种结构示意图;
[0081] 图16为本发明实施例中部署模块的另一种结构示意图;
[0082] 图17为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

[0083] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0084] 如图1所示,图1为本发明实施例提供的一种基于VNF实例复用的NFV编排方法的流程示意图,该方法可以包括:
[0085] S101、获取多条预设SFC及预设物理网络拓扑结构图。
[0086] 本发明实施例中,是在SFC以及物理网络拓扑结构已知的情况下,获取所有已知的SFC及已知的物理网络拓扑结构图,预设SFC即为已知的SFC,预设物理网络拓扑结构图即为已知的物理网络拓扑结构图。其中,每一条SFC中至少包含一个VNF,每一个VNF都对应有预设类型,在SFC已知的情况下,VNF的类型是已知的。示例性的,VNF的类型可以是虚拟防火墙、虚拟网关、虚拟流量均衡器等,进一步的,可以将不同类型的VNF划分为可复用类型和不可复用类型两种预设类型。可复用类型的VNF用于表示至少两个SFC中包含该VNF,不可复用类型的VNF用于表示只有一个SFC中包含该VNF。
[0087] 预设物理网络拓扑结构图中可以包括:多个物理节点及各物理节点之间的物理链路。示例性的,该预设物理网络拓扑结构图可以表示为一个加权无向连通图G=(N,L),在该物理网络拓扑结构图G中,N表示物理节点集合,L表示物理链路集合,物理节点可以为服务器节点等,各物理节点之间的物理链路可以是各服务器节点之间的通信连接或物理连接。预设物理网络拓扑结构可以是数据中心网络拓扑结构,也可以是通信网络拓扑结构。
[0088] S102、遍历多条预设SFC,确定多条预设SFC中具有可复用类型的VNF的数量。
[0089] 针对所获取的所有SFC,遍历SFC,进而确定所有SFC中具有可复用类型的VNF的数量,参见图2,图2为本发明实施例中S102的一种实施方式,该实施方式可以包括:
[0090] S1021、遍历多条预设SFC,确定各VNF在各SFC中的出现次数。
[0091] 示例性的,如图3所示,图3为本发明实施例提供的一种SFC结构示意图,图3中有3条服务功能链SFC分别为SFC1、SFC2和SFC3,其中,SFC1中包含虚拟网络功能VNF1、VNF2和VNF3,SFC2中包含VNF1、VNF3和VNF4,SFC3中包含VNF2,则VNF1的出现次数为2次,VNF2的出现次数为2次,VNF3的出现次数为2次,VNF4的出现次数为1次。
[0092] S1022、将出现次数大于预设数量的VNF,确定为具有可复用类型的VNF。
[0093] 示例性的,预设数量可以为1,如图3所示,出现次数大于1的VNF为VNF1、VNF2和VNF3,将VNF1、VNF2和VNF3确定为具有可复用类型的VNF,VNF4的出现次数为1,不大于预设数量1,将VNF4确定为具有不可复用类型的VNF。具体的预设数量本领域技术人员可根据实际需求进行设置。
[0094] S1023、统计所有的具有可复用类型的VNF的数量。
[0095] 示例性的,如图3所示,VNF1的出现次数为2次,VNF2的出现次数为2次,VNF3的出现次数为2次,VNF1、VNF2和VNF3确定为具有可复用类型的VNF,则所有的具有可复用类型的VNF的数量为2+2+2,即为6。
[0096] 参见图1,S103、针对预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值,并对各中心性值降序排序。
[0097] 针对物理网络拓扑结构图中的每一物理节点,计算该物理节点的中心性值,其中,中心性值用于表示物理节点在预设物理网络拓扑结构图中的重要程度。具体的,计算物理节点中心性值的实施方式可参见图4,该实施方式可以包括:
[0098] S1031、初始化预设物理网络拓扑结构图中每一物理节点的初始中心性值。
[0099] 针对物理网络拓扑结构图中每一物理节点,可以先初始化每一物理节点的初始中心性值,例如,可以将每一物理节点的初始中心性值设置为0,具体的,本领域技术人员可根据实际情况对每一物理节点的初始中心性值进行设置。
[0100] S1032、遍历多条预设SFC,计算每一条SFC的起始节点和目标节点之间最短路径上各物理节点的中心性值。
[0101] 遍历每一SFC,将每一条SFC的起始节点和目标节点之间最短路径上的各个物理节点的中心性值,按照第一预设表达式进行增加,该第一预设表达式可以为:
[0102]
[0103] 式中,B表示SFC的起始节点和目标节点之间最短路径上的物理节点的中心性值增加程度,α表示VNF实例开销占总开销的比重, 表示第i条SFC中一个VNF所需要的CPU资源单位数,Vcost表示创建一个VNF实例的开销,表示每个VNF实例的处理能力。
[0104] 本发明实施例中,VNF实例可以指部署对象,部署对象用于部署具有可复用类型的VNF。
[0105] S1033、利用水平分割技术和网页排名算法,对预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各物理节点对应的中心性值。
[0106] 水平分割技术是一种避免路由环路的出现和加快路由汇聚的技术。由于路由器可能收到它自己发送的路由信息,而这种信息是无用的,水平分割技术不反向通告任何从终端收到的路由更新信息,而只通告那些不会由于计数到无穷而清除的路由。
[0107] 网页排名算法,又称PageRank算法,该算法的原理为:初始阶段:网页通过链接关系构建起Web(World Wide Web,全球广域网)图,每一个页面设置同样的PageRank值,通过若干轮的计算,会得到每一个页面所获得的终于PageRank值。随着每一轮的计算进行,网页当前的PageRank值会不断得到更新。在一轮中更新页面PageRank得分的计算方法为:在一轮更新页面PageRank得分的计算中,每一个页面将其当前的PageRank值平均分配到本页面包括的出链上,这样每一个链接即获得了对应的权值。而每一个页面将全部指向本页面的入链所传入的权值求和,就可以得到新的PageRank得分。当每一个页面都获得了更新后的PageRank值,就完毕了一轮PageRank计算。
[0108] 本发明实施例中,借鉴水平分割技术和PageRank算法的原理,对预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各物理节点对应的中心性值,具体的实施方式参见图5所示,该实施方式可以包括:
[0109] S10331、遍历多条预设SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签。
[0110] 遍历每一SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签,该标签用于标识物理节点对应的中心性值所处的SFC路径。示例性的,SFC1的路径上包含物理节点H、物理节点J、物理节点K,则为物理节点H、物理节点J、物理节点K对应的中心性值分别添加标签a,标签a用于标识物理节点对应的中心性值处于SFC1的路径上。
[0111] S10332、遍历预设物理网络拓扑结构图中每一物理节点,将当前物理节点对应的中心性值及对应的标签传递给与当前物理节点通信连接的后一物理节点,使当前物理节点的中心性值按照预设表达式进行衰减,该预设表达式可以为:
[0112]
[0113] 式中,A表示当前物理节点的中心性值的衰减程度,β表示带宽开销占总开销的比重, 表示第i条SFC中一个VNF所需要的CPU资源单位数,Lcost表示创建一个部署对象占用物理链路一个单位带宽资源所需的开销。
[0114] 本发明实施例中,因在中心性值传播的过程中,会增加物理节点之间链路的成本,故而在将当前物理节点对应的中心性值及对应的标签传递给与当前物理节点通信连接的后一物理节点时,当前物理节点的中心性值需要按照上述预设表达式进行衰减。
[0115] 示例性的,当前物理节点H对应的一组中心性值为8,标签为a,与当前物理节点通信连接的后一物理节点J对应的一组中心性值为10,标签为b,则将当前物理节点H对应的中心性值8及对应的标签a传递给与当前物理节点通信连接的后一物理节点J之后,与当前物理节点通信连接的后一物理节点J的中心性值有两组,一组为中心性值为8,标签为a,另一组为中心性值为10,标签为b,且当前物理节点H对应的中心性值衰减
[0116] S10333、针对预设物理网络拓扑结构图中每一物理节点,将具有不同标签对应的中心性值相加,得到第一中心性值,在具有相同标签对应的中心性值中取最大中心性值作为第二中心性值,并将第一中心性值与第二中心性值的求和值,确定为该物理节点的当前中心性值。
[0117] 示例性的,物理网络拓扑结构图中物理节点K对应的一组中心性值为6,标签为c,另一组中心性值为8,标签为b,则该物理节点K最终的中心性值为6+8,即为14;物理网络拓扑结构图中物理节点F对应的一组中心性值为10,标签为d,另一组中心性值为5,标签为d,则该物理节点F最终的中心性值为10;物理网络拓扑结构图中物理节点H对应的一组中心性值为6,标签为c,一组中心性值为8,标签为b,一组中心性值为10,标签为d,另一组中心性值为5,标签为d,则该物理节点H最终的中心性值为6+8+10,即为18。
[0118] S10334、针对预设物理网络拓扑结构图中的所有物理节点,遍历判断各物理节点的当前中心性值与当前中心性值的前一中心性值的差值是否为零。
[0119] 本发明实施例中,对预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,在传播计算的每一传播过程中,都会遍历判断各物理节点的当前中心性值与当前中心性值的前一中心性值的差值是否为零,该当前中心性值为该物理节点在中心性值传播计算中当前传播次数中得到的中心性值。
[0120] 在当前传播次数中,遍历判断每一物理节点的当前中心性值与当前中心性值的前一中心性值的差值是否为零之后,当所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值均为零时,则执行步骤S10335;当所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值不全为零时,则执行步骤S10336。
[0121] S10335、如果所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值均为零,则将每一物理节点的当前中心性值,确定为该物理节点的中心性值。
[0122] 所有物理节点当前中心性值与当前中心性值的前一中心性值的差值均为零,表明物理网络拓扑结构图中所有物理节点的中心性值在两次传播过程中没有变化,此时物理网络拓扑结构达到收敛状态,则将每一物理节点的当前中心性值,确定为各物理节点的中心性值。
[0123] S10336、如果所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值不全为零,则返回执行遍历多条预设SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签的步骤。
[0124] 在所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值不全为零时,表明预设物理网络拓扑结构图中有一些物理节点的中心性值在两次传播过程中有变化,此时物理网络拓扑结构并没有达到收敛的状态,则返回执行步骤S10331,继续中心性值传播就算,直至所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值均为零,物理网络拓扑结构达到收敛状态。
[0125] 参见图1,S104、将排序在前的、与数量相同个数的中心性值所对应的物理节点确定为候选部署节点。
[0126] 在得到物理网络拓扑结构图中各物理节点的中心性值,并对各中心性值降序排序后,将排序在前的、与具有可复用类型的VNF的数量相同个数的中心性值所对应的物理节点确定为候选部署节点。本发明实施例中,所选取的候选部署节点与具有可复用类型的VNF的数量相同,保证了候选部署节点的资源足够为所有具有可复用类型的VNF创建对应的实例,进而对VNF进行部署。
[0127] S105、针对多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点。
[0128] 本发明实施例中,目标部署节点是从候选部署节点中选取的,每一条SFC中包含多个候选部署阶段,不同候选部署阶段之间的加权值为:当前候选部署阶段与当前候选部署阶段的下一候选部署阶段之间的加权值。
[0129] 参见图6,图6为S105的一种实施方式流程示意图,该实施方式可以包括:
[0130] S1051、针对该SFC中每一个具有可复用类型的VNF,将对该VNF的部署,确定为该SFC的一个候选部署阶段。
[0131] 示例性的,如图7所示,图7为本发明实施例提供的一种部署方式流程示意图,图7中SFC2中包含具有可复用类型的VNF1和VNF3,不可复用类型的VNF4,将对VNF1的部署,确定为该SFC2的一个候选部署阶段,将对VNF3的部署,确定为该SFC2的另一个候选部署阶段。
[0132] S1052、将该SFC的起始节点确定为该SFC的第一候选部署阶段的第一目标部署节点,该SFC的目标节点确定为该SFC的最后一候选部署阶段的第一目标部署节点。
[0133] 示例性的,如图7所示,将SFC2的起始节点(图7中的物理节点E)确定为该SFC2的第一候选部署阶段的第一目标部署节点,将SFC2的目标节点(图7中的物理节点G)确定为该SFC的最后一候选部署阶段的第一目标部署节点。
[0134] S1053、将各候选部署节点分别确定为该SFC的、除第一候选部署阶段和最后一候选部署阶段之外的每一候选部署阶段对应的第一目标部署节点。
[0135] 示例性的,如图7所示,候选部署节点为物理节点C、物理节点F、物理节点H、物理节点K,SFC2中具有可复用类型的VNF为VNF1和VNF3,则SFC2有四个候选部署阶段,分别为第一候选部署阶段、第二候选部署阶段、第三候选部署阶段和最后一候选部署阶段,将物理节点C、物理节点F、物理节点H、物理节点K分别确定为该SFC2的第二候选部署阶段、第三候选部署阶段对应的第一目标部署节点。
[0136] S1054、遍历该SFC的每一候选部署阶段,基于创建一个部署对象所需的开销以及创建一个部署对象占用物理链路一个单位带宽资源所需的开销,计算当前候选部署阶段与当前候选部署阶段的下一阶段之间的加权值。
[0137] 遍历该SFC的每一候选部署阶段,基于创建一个部署对象所需的开销以及创建一个部署对象占用物理链路一个单位带宽资源所需的开销,使用第二预设表达式,计算当前候选部署阶段与当前候选部署阶段的下一阶段之间的加权值,该第二预设表达式可以表示为:
[0138]
[0139] 式中, 表示当前候选部署阶段x与当前候选部署阶段的下一阶段x+1之间的加权值;y表示当前候选部署阶段的下一阶段x+1对应的第一目标部署节点上是否已创建该候选部署阶段对应的VNF实例,若已创建则y=0,若未创建则y=1;α表示VNF实例开销占总开销的比重;Vcost表示创建一个VNF实例的开销;β表示带宽开销占总开销的比重;表示当前候选部署阶段x对应的第一目标部署节点,与当前候选部署阶段的下一阶段x+1对应的第一目标部署节点之间最对路径的跳数;Lcost表示创建一个部署对象占用物理链路一个单位带宽资源所需的开销。
[0140] S1055、将该SFC中各候选部署阶段之间加权值之和最小、对应的路径上各候选部署阶段的第一目标部署节点,确定为该SFC中各候选部署阶段的目标部署节点。
[0141] 示例性的,如图7所示,在第二候选部署阶段对应的第一目标部署节点为物理节点C、第三候选部署阶段对应的第一目标部署节点为物理节点F时,该条路径:起始节点-物理节点C-物理节点F-目标节点之间加权值之和最小,即在该条路径上部署具有可复用类型的VNF所需的开销最小,则将第二候选部署阶段对应的第一目标部署节点(物理节点C),确定为该第二候选部署阶段对应的目标部署节点,将第三候选部署阶段对应的第一目标部署节点(物理节点F),确定为该第三候选部署阶段对应的目标部署节点。
[0142] 参见图1,S106、针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于第一部署对象上。
[0143] 如图8所示,图8为S106的一种实施方式流程示意图,该实施方式可以包括:
[0144] S1061、判断该VNF所对应的目标部署节点上是否已创建第一部署对象。
[0145] 示例性的,VNF所对应的目标部署节点可以拥有4个相同处理能力的CPU,创建一个部署对象需要占用一个CPU,即一个目标部署节点上可以创建4个部署对象,每一个部署对象上可以部署6个VNF,即每一个部署对象可以使不同SFC上的6个VNF进行部署。
[0146] 当需要将VNF部署于该VNF所对应的目标部署节点上时,先判断该VNF所对应的目标部署节点上的资源是否充足。具体的,判断该VNF所对应的目标部署节点上是否已创建第一部署对象,如果已创建第一部署对象,则执行S1063的步骤,进一步判断第一部署对象的剩余资源是否小于预设阈值;如果未创建第一部署对象,并且该目标部署节点上的资源充足,则执行S1062的步骤。
[0147] S1062、如果该VNF所对应的目标部署节点上未创建第一部署对象,则在该VNF所对应的目标部署节点上创建第一部署对象,并将该VNF部署于第一部署对象上。
[0148] S1063、如果该VNF所对应的目标部署节点上已创建第一部署对象,则判断第一部署对象的剩余资源是否小于预设阈值。
[0149] 本发明实施例中,预设阈值可以是部署该VNF所需的资源大小。当已创建的第一部署对象的剩余资源小于预设阈值时,表明该第一部署对象上不能再部署该VNF,则执行S1064的步骤,当已创建的第一部署对象的剩余资源不小于预设阈值时,表明该第一部署对象上可以再部署该VNF,则执行S1065的步骤。
[0150] S1064、如果第一部署对象的剩余资源小于预设阈值,则在该VNF所对应的目标部署节点上创建第三部署对象,并将该VNF部署于第三部署对象上。
[0151] 第一部署对象的剩余资源小于预设阈值,表明该第一部署对象上不能再部署该VNF,则在该VNF所对应的目标部署节点上创建第三部署对象来部署该VNF。
[0152] S1065、如果第一部署对象的剩余资源大于或等于预设阈值,则将该VNF部署于第一部署对象上。
[0153] 当第一部署对象的剩余资源不小于预设阈值时,表明该第一部署对象上可以再部署该VNF,则将该VNF部署于第一部署对象上。
[0154] 参见图1,S107、针对各条SFC中的每一个具有不可复用类型的VNF,为该VNF创建对应的第二部署对象,并基于预设部署策略将该VNF部署于第二部署对象上。
[0155] 本发明实施例中,针对各条SFC中的每一个具有不可复用类型的VNF,基于预设部署策略将该VNF部署于所创建的第二部署对象上。具体的,基于预设部署策略将该VNF部署于所创建的第二部署对象上的实施方式可以为:
[0156] 一种实施方式中,在SFC中该具有不可复用类型的VNF左右相邻的是两个具有可复用类型的VNF,且两个具有可复用类型的VNF已部署于各自对应的目标部署节点上,则在与该具有不可复用类型的VNF相邻的两个目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该具有不可复用类型的VNF部署于第二部署对象上。
[0157] 一种实施方式中,在SFC中该具有不可复用类型的VNF之前相邻的为该SFC的起始节点,该具有不可复用类型的VNF之后相邻的为该SFC的目标节点,则在该具有不可复用类型的VNF所在的SFC的起始节点与目标节点之间最短路径上的物理节点上创建第二部署对象,将该具有不可复用类型的VNF部署于第二部署对象上。
[0158] 一种实施方式中,在SFC中该具有不可复用类型的VNF之前相邻的为该SFC的起始节点,该具有不可复用类型的VNF之后相邻的为具有可复用类型的VNF,该具有可复用类型的VNF已部署于其对应的目标部署节点上,则在该具有不可复用类型的VNF所在的SFC的起始节点和与该具有不可复用类型的VNF相邻的目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该具有不可复用类型的VNF部署于第二部署对象上。
[0159] 一种实施方式中,在SFC中该具有不可复用类型的VNF之前相邻的为具有可复用类型的VNF,该具有可复用类型的VNF已部署于其对应的目标部署节点上,该具有不可复用类型的VNF之后相邻的为该SFC的目标节点,则在与该具有不可复用类型的VNF相邻的目标部署节点和该具有不可复用类型的VNF所在的SFC的目标节点之间最短路径上的物理节点上创建第二部署对象,将该具有不可复用类型的VNF部署于第二部署对象上。
[0160] 本发明实施例提供的一种基于VNF实例复用的NFV编排方法,由于候选部署节点是在整个物理网络拓扑结构图中选取的,并不只是位于SFC的最短路径上的物理节点,而具有可复用类型的VNF的目标部署节点是从候选部署节点中选取的,且具有可复用类型的VNF所部署的第一部署对象,是基于该VNF所对应的目标部署节点的剩余资源所创建的,因此避免了因目标部署节点剩余资源不足需要在其他物理节点上创建而使其他SFC在复用该VNF时需要绕路的情况发生,使得多条SFC中具有可复用类型的VNF可以共享,减少了创建部署对象的开销以及各条SFC中的链路开销,从而减少整体资源开销。
[0161] 示例性地,本发明实施例中使用不同的编排方法对NFV进行编排,得到的仿真图分别如图9a至图9d所示。其中,现有方法1为背景技术中所描述的现有技术,现有方法2为:将VNF部署于SFC的起始节点与目标节点之间最短路径上的物理节点中。本发明实施例中,通过GT-ITM工具生成基准物理网络拓扑结构图,配置为具有20个物理节点,平均生成37个链路。每一物理节点上可以创建4个部署对象,物理链路上的带宽容量足够,每一SFC都是单链,生成0到20个SFC,以使物理网络接近饱和状态。
[0162] 其中,图9a为本发明实施例提供的VNF利用率与SFC数量关系仿真图,当SFC数量在0到20个时,现有方法2具有最低的VNF实例利用率,而本发明实施例和现有方法1的VNF实例利用率非常接近。从图中可以看出本发明实施例VNF实例利用率接近现有方法1的VNF实例利用率,有时在高负载网络条件下比现有方法1的VNF实例利用率更好。原因是在计算最小VNF实例数时,现有方法1叠加计算,这将导致外部碎片问题(如操作系统的内存管理),本发明实施例全面考虑和调整每个SFC的部署顺序。
[0163] 图9b为本发明实施例提供的实例开销与SFC数量关系仿真图,可见,本发明实施例中的VNF实例开销与现有方法1中的VNF实例开销近似,现有方法2的VNF实例开销远大于其他两种算法。
[0164] 图9c为本发明实施例提供的链路开销与SFC数量关系仿真图,可以看到现有方法1的链路开销高于其他两种算法。这是由于现有方法1本身,其候选部署节点只能在SFC的最短路径上,并且它不区分具有可复用类型的VNF的SFC和具体不可复用类型的VNF的SFC。因此,它将导致许多SFC的路径增加。现有方法1需要的是占用尽可能少的物理节点并降低启动成本。从图9c中可以看出,当SFC的数量大于14时,本发明实施例的链路开销低于现有方法2的链路开销,差距正在慢慢扩大。原因是现有方法2是一种贪婪算法,它使用最短路径方法来部署每个SFC。在早期阶段盲目地选择最短路径部署将导致可选物理节点的突然下降,导致最短路径或某些部署方法失败,反过来增加了链路开销,尤其是在网络负载很重时。从上面的比较中,可以看出本发明实施例具有更多优势,VNF实例的利用率接近于现有方法1,并且由于合理的部署规划,链路开销也处于非常低的水平。
[0165] 图9d为本发明实施例提供的VNF数量及路径跳数与开销仿真图,系数α表示VNF实例开销占总开销的比重,系数β表示带宽开销占总开销的比重,当链路开销是主要成本(α<0.4)时,本发明实施例将降低VNF实例利用率并增加VNF实例的数量以减少过多的路径增加。随着α增加,VNF实例开销的权重增加,为了将全局成本维持在较低级别,本发明实施例增加每个VNF实例的利用率以减少新VNF实例的创建,路径跳数也会相应增加。当α=0.6时,本发明实施例显着增加了VNF实例的数量。即使VNF实例开销的权重很大,在正确的位置创建VNF实例以降低链路开销也会比简单地提高利用率带来更多利润。
[0166] 相应于上述方法实施例,本发明实施例提供了一种基于VNF实例复用的NFV编排装置,如图10所示,该装置可以包括:
[0167] 获取模块201,用于获取多条预设服务功能链SFC及预设物理网络拓扑结构图,每一条SFC中至少包含一个虚拟网络功能VNF,VNF具有预设类型,预设类型为可复用类型或者不可复用类型;预设物理网络拓扑结构图中包括:多个物理节点及各物理节点之间的物理链路。
[0168] 第一确定模块202,用于遍历多条预设SFC,确定多条预设SFC中具有可复用类型的VNF的数量。
[0169] 计算模块203,用于针对预设物理网络拓扑结构图中的所有物理节点,计算各物理节点的中心性值,并对各中心性值降序排序,中心性值用于表示物理节点在预设物理网络拓扑结构图中的重要程度。
[0170] 第二确定模块204,用于将排序在前的、与数量相同个数的中心性值所对应的物理节点确定为候选部署节点。
[0171] 选取模块205,用于针对多条预设SFC中的每一条SFC,根据计算得到的各条SFC中不同候选部署阶段之间的加权值的大小关系,为各条SFC中的每一个具有可复用类型的VNF选取目标部署节点,目标部署节点从候选部署节点中选取;每一条SFC中包含多个候选部署阶段,不同候选部署阶段之间的加权值为:当前候选部署阶段与当前候选部署阶段的下一候选部署阶段之间的加权值。
[0172] 第一部署模块206,用于针对各条SFC中的每一个具有可复用类型的VNF,基于该VNF所对应的目标部署节点的剩余资源,在该VNF对应的目标部署节点上创建第一部署对象,并将该VNF部署于第一部署对象上。
[0173] 第二部署模块207,用于针对各条SFC中的每一个具有不可复用类型的VNF,为该VNF创建对应的第二部署对象,并基于预设部署策略将该VNF部署于第二部署对象上。
[0174] 本发明实施例提供的一种基于VNF实例复用的NFV编排装置,由于候选部署节点是在整个物理网络拓扑结构图中选取的,并不只是位于SFC的最短路径上的物理节点,而具有可复用类型的VNF的目标部署节点是从候选部署节点中选取的,且具有可复用类型的VNF所部署的第一部署对象,是基于该VNF所对应的目标部署节点的剩余资源所创建的,因此避免了因目标部署节点剩余资源不足需要在其他物理节点上创建而使其他SFC在复用该VNF时需要绕路的情况发生,使得多条SFC中具有可复用类型的VNF可以共享,减少了创建部署对象的开销以及各条SFC中的链路开销,从而减少整体资源开销。
[0175] 需要说明的是,本发明实施例的装置是与图1所示的一种基于VNF实例复用的NFV编排方法对应的装置,图1所示的一种基于VNF实例复用的NFV编排方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
[0176] 如图11所示,第一确定模块202,可以包括:
[0177] 第一确定子模块2021,用于遍历多条预设SFC,确定各VNF在各SFC中的出现次数。
[0178] 第二确定子模块2022,用于将出现次数大于预设数量的VNF,确定为具有可复用类型的VNF。
[0179] 统计子模块2023,用于统计所有的具有可复用类型的VNF的数量。
[0180] 如图12所示,计算模块203,可以包括:
[0181] 初始化子模块2031,用于初始化预设物理网络拓扑结构图中每一物理节点的初始中心性值。
[0182] 第一计算子模块2032,用于遍历多条预设SFC,计算每一条SFC的起始节点和目标节点之间最短路径上各物理节点的中心性值。
[0183] 第二计算子模块2033,用于利用水平分割技术和网页排名算法,对预设物理网络拓扑结构图中的所有物理节点进行中心性值传播计算,得到各物理节点对应的中心性值。
[0184] 如图13所示,第二计算子模块2033,可以包括:
[0185] 添加子模块20331,用于遍历多条预设SFC,为每一条SFC路径上所包含的物理节点对应的中心性值添加对应的标签;标签用于标识物理节点对应的中心性值所处的SFC路径。
[0186] 传递子模块20332,用于遍历预设物理网络拓扑结构图中每一物理节点,将当前物理节点对应的中心性值及对应的标签传递给与当前物理节点通信连接的后一物理节点,使当前物理节点的中心性值按照预设表达式进行衰减,预设表达式为:
[0187]
[0188] 式中,A表示当前物理节点的中心性值的衰减程度,β表示带宽开销占总开销的比重, 表示第i条SFC中一个VNF所需要的CPU资源单位数,Lcost表示创建一个部署对象占用物理链路一个单位带宽资源所需的开销。
[0189] 第三确定子模块20333,用于针对预设物理网络拓扑结构图中每一物理节点,将具有不同标签对应的中心性值相加,得到第一中心性值,在具有相同标签对应的中心性值中取最大中心性值作为第二中心性值,并将第一中心性值与第二中心性值的求和值,确定为该物理节点的当前中心性值。
[0190] 判断子模块20334,用于针对预设物理网络拓扑结构图中的所有物理节点,遍历判断各物理节点的当前中心性值与当前中心性值的前一中心性值的差值是否为零;当前中心性值为物理节点在中心性值传播计算中当前传播次数中得到的中心性值。
[0191] 第四确定子模块20335,用于在所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值均为零时,将每一物理节点的当前中心性值,确定为该物理节点的中心性值,在所有物理节点的当前中心性值与当前中心性值的前一中心性值的差值不全为零时,执行添加子模块20331的内容。
[0192] 如图14所示,选取模块205,可以包括:
[0193] 第五确定子模块2051,用于针对该SFC中每一个具有可复用类型的VNF,将对该VNF的部署,确定为该SFC的一个候选部署阶段。
[0194] 第六确定子模块2052,用于将该SFC的起始节点确定为该SFC的第一候选部署阶段的第一目标部署节点,该SFC的目标节点确定为该SFC的最后一候选部署阶段的第一目标部署节点。
[0195] 第七确定子模块2053,用于将各候选部署节点分别确定为该SFC的、除第一候选部署阶段和最后一候选部署阶段之外的每一候选部署阶段对应的第一目标部署节点。
[0196] 第三计算子模块2054,用于遍历该SFC的每一候选部署阶段,基于创建一个部署对象所需的开销以及创建一个部署对象占用物理链路一个单位带宽资源所需的开销,计算当前候选部署阶段与当前候选部署阶段的下一阶段之间的加权值。
[0197] 第八确定子模块2055,用于将该SFC中各候选部署阶段之间加权值之和最小、对应的路径上各候选部署阶段的第一目标部署节点,确定为该SFC中各候选部署阶段的目标部署节点。
[0198] 如图15所示,第一部署模块206,可以包括:
[0199] 第一判断子模块2061,用于判断该VNF所对应的目标部署节点上是否已创建第一部署对象。
[0200] 第一部署子模块2062,用于在该VNF所对应的目标部署节点上未创建第一部署对象时,在该VNF所对应的目标部署节点上创建第一部署对象,并将该VNF部署于第一部署对象上。
[0201] 第二判断子模块2063,用于在该VNF所对应的目标部署节点上已创建第一部署对象时,判断第一部署对象的剩余资源是否小于预设阈值。
[0202] 第二部署子模块2064,用于在第一部署对象的剩余资源小于预设阈值时,在该VNF所对应的目标部署节点上创建第三部署对象,并将该VNF部署于第三部署对象上。
[0203] 第三部署子模块2065,用于在第一部署对象的剩余资源大于或等于预设阈值时,则将该VNF部署于第一部署对象上。
[0204] 如图16所示,第二部署模块207,可以包括:
[0205] 第四部署子模块2071,用于在与该VNF相邻的两个目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于第二部署对象上。
[0206] 第五部署子模块2072,用于在该VNF所在的SFC的起始节点与目标节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于第二部署对象上。
[0207] 第六部署子模块2073,用于在该VNF所在的SFC的起始节点和与该VNF相邻的目标部署节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于第二部署对象上。
[0208] 第七部署子模块2074,用于在与该VNF相邻的目标部署节点和该VNF所在的SFC的目标节点之间最短路径上的物理节点上创建第二部署对象,将该VNF部署于第二部署对象上。
[0209] 本发明实施例还提供了一种电子设备,如图17所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线
304完成相互间的通信,存储器303,用于存放计算机程序;处理器301,用于执行存储器303上所存放的程序时,实现本发明实施例所提供的一种基于VNF实例复用的NFV编排方法步骤。
[0210] 本发明实施例提供的一种电子设备,由于候选部署节点是在整个物理网络拓扑结构图中选取的,并不只是位于SFC的最短路径上的物理节点,而具有可复用类型的VNF的目标部署节点是从候选部署节点中选取的,且具有可复用类型的VNF所部署的第一部署对象,是基于该VNF所对应的目标部署节点的剩余资源所创建的,因此避免了因目标部署节点剩余资源不足需要在其他物理节点上创建而使其他SFC在复用该VNF时需要绕路的情况发生,使得多条SFC中具有可复用类型的VNF可以共享,减少了创建部署对象的开销以及各条SFC中的链路开销,从而减少整体资源开销。
[0211] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0212] 通信接口用于上述电子设备与其他设备之间的通信。
[0213] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0214] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0215] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一一种基于VNF实例复用的NFV编排方法的步骤。
[0216] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一一种基于VNF实例复用的NFV编排方法的步骤。
[0217] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0218] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0219] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。