一种面向有状态NFV服务系统的语义感知负载均衡方法

摘要: 本技术涉及通信,特别涉及一种面向有状态nfv服务系统的语义感知负载均衡方法。背景技术:1、在多核网络功能虚拟化(networkfunctionvirtualiz...
一种面向有状态NFV服务系统的语义感知负载均衡方法

本技术涉及通信,特别涉及一种面向有状态nfv服务系统的语义感知负载均衡方法。

背景技术:

1、在多核网络功能虚拟化(network function virtualization,nfv)服务系统架构中,为满足边缘节点单服务器数百gbps的吞吐量需求,需将数据流分发至多个处理器核心并行处理,以实现处理能力的水平扩展。

2、然而,在多核环境下,数据流在不同核心间的分配不均会导致部分核心过载,形成性能瓶颈。为了解决多核心的负载均衡的问题,现有技术中,通常采用rss++技术对数据流在多个核心间进行高效、均衡分配,该技术具体为:该技术通过计算数据流的哈希值,将数据流映射至rss间接表中的桶(特定表项),进而决定由哪个处理器核心处理该数据流。该技术引入周期性负载监测机制,该机制实时采集各核心的利用率及处理延迟等性能指标,动态识别过载核心和空闲核心,并据此修改rss间接表的映射配置,将部分rss桶从过载核心重新映射至相对空闲的核心,从而在保持同一数据流被固定核心处理的前提下缓解核心间负载不均的问题。

3、但是,有状态网络功能在处理nfv服务系统的数据流时需频繁读取和更新与数据流相关的状态变量,当多个数据流共享同一状态变量并被分配至不同处理器核心时,将产生跨实例状态同步开销,严重制约系统吞吐量。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种面向有状态nfv服务系统的语义感知负载均衡方法。

2、本说明书采用下述技术方案:

3、本说明书提供了一种面向有状态nfv服务系统的语义感知负载均衡方法,包括:

4、从有状态虚拟网络功能nfv服务系统中网络功能的程序源代码中识别状态变量,并根据数据流与状态变量之间的访问关系,构建流-状态依赖图;状态变量表示有状态nfv服务系统中处理数据流所需读取和更新的上下文信息;

5、对状态变量进行语义识别,确定状态变量的语义属性;语义属性包括可复制性、一致性要求和共享范围;将语义属性转换为调度约束参数后映射到流-状态依赖图中,生成带语义约束的调度图;

6、以最小化所有子图的最大负载为目标、以每个子图的负载不超过全局平均负载的预设倍数,以及不可复制的状态变量及其所有关联数据流被划分在同一子图的划分原则,将带语义约束的调度图划分为多个子图;每个子图对应一个vnf实例;vnf实例为运行在处理器核心上的vnf软件的具体运行实体,用于处理被分配的数据流并管理所分配的状态变量;

7、根据划分的多个子图,确定数据流到vnf实例的映射关系及状态变量的部署位置。

8、可选地,流-状态依赖图为二分图g=(f∪s,e),其中f表示数据流节点集合,s表示状态变量节点集合,e表示数据流与状态变量之间的访问关系边集合。

9、可选地,对状态变量进行语义识别,确定状态变量的语义属性,包括:

10、将状态变量与预定义状态语义表进行匹配,确定状态变量的语义属性;预定义状态语义表至少包含以下维度:数据结构类型、同步频率、可复制性、一致性要求及共享范围;共享范围表示状态变量能够被访问或共享的数据流范围。

11、可选地,调度约束参数包括可复制性约束、一致性约束和共享范围约束;

12、可复制性约束用于判断状态变量是否能在不同实例间被复现;

13、一致性约束用于描述状态变量副本之间的同步要求;

14、共享范围约束用于明确状态变量是在本地、会话级别还是全局范围内共享。

15、可选地,子图的负载的确定方式,包括:

16、根据子图中每个数据流的数据包大以及子图中数据流的数量,计算子图的流处理成本;

17、根据子图中每个状态变量的同步频率、状态精度和状态维度,确定子图的状态相关成本;

18、对流处理成本和状态相关成本进行加权,得到子图的负载。

19、可选地,以最小化所有子图的最大负载为目标、以每个子图的负载不超过全局平均负载的预设倍数,以及不可复制的状态变量及其所有关联数据流被划分在同一子图的划分原则,将带语义约束的调度图划分为多个子图,包括:

20、根据每个子图的负载不超过全局平均负载的预设倍数,以及不可复制的状态变量及其所有关联数据流被划分在同一子图的划分原则,将带语义约束的调度图初始划分为多个子图;

21、以最小化所有子图的最大负载为目标,对初始划分的多个子图进行迭代优化,直至满足收敛条件。

22、可选地,以最小化所有子图的最大负载为目标,对初始划分的多个子图进行迭代优化,包括:

23、在每一次迭代中,评估当前各子图的负载;

24、识别负载最大的子图,从该子图中提取可迁移结构单元;可迁移结构单元由一组数据流及其关联的状态变量构成,且满足以下条件:不可复制的状态变量不可分割、数据流与状态变量之间的访问关系不被破坏;

25、将可迁移结构单元迁移至其他负载较轻的子图,计算迁移后的子图中的最大负载;

26、若迁移后子图的最大负载小于迁移前的最大负载,则将迁移后的子图作为下一次迭代的子图。

27、可选地,在划分子图或迁移子图时,满足以下约束条件:

28、每个数据流唯一分配给一个子图;

29、每个子图的负载不超过其最大负载容量。

30、可选地,收敛条件包括以下至少一种:

31、达到预设的最大迭代次数;

32、连续多次迭代中,子图中最大负载的变化量小于预设阈值;

33、无法提取可迁移结构单元;

34、不存在迁移后子图的最大负载小于迁移前的最大负载的迁移方案。

35、可选地,该方法还包括:

36、采用滑动窗口机制按时间段汇各数据流的流量统计信息,流量统计信息包括各数据流在时间窗口内的数据包数量或字节数;

37、当检测到任一数据流的流量统计信息的变化量超过预设阈值时,重新执行将带语义约束的调度图划分为多个子图以及对多个子图进行迭代优化的步骤,更新数据流到vnf实例的映射关系及状态变量的部署位置。

38、本说明书提供了一种面向有状态nfv服务系统的语义感知负载均衡系统,包括:

39、状态提取与依赖分析模块,用于从有状态虚拟网络功能nfv服务系统中网络功能的程序源代码中识别状态变量,并根据数据流与状态变量之间的访问关系,构建流-状态依赖图;状态变量表示有状态nfv服务系统中处理数据流所需读取和更新的上下文信息;

40、状态语义识别与约束生成模块,用于对状态变量进行语义识别,确定状态变量的语义属性;语义属性包括可复制性、一致性要求和共享范围;将语义属性转换为调度约束参数后映射到流-状态依赖图中,生成带语义约束的调度图;

41、调度模块,用于以最小化所有子图的最大负载为目标、以每个子图的负载不超过全局平均负载的预设倍数,以及不可复制的状态变量及其所有关联数据流被划分在同一子图的划分原则,将带语义约束的调度图划分为多个子图;每个子图对应一个vnf实例;vnf实例为运行在处理器核心上的vnf软件的具体运行实体,用于处理被分配的数据流并管理所分配的状态变量;根据划分的多个子图,确定数据流到vnf实例的映射关系及状态变量的部署位置。

42、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述面向有状态nfv服务系统的语义感知负载均衡方法。

43、本说明书提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述面向有状态nfv服务系统的语义感知负载均衡方法。

44、本说明书采用的上述至少一个技术方案能够达到以下有益效果:

45、在本说明书提供的面向有状态nfv服务系统的语义感知负载均衡方法中,通过识别状态变量的可复制性、一致性要求和共享范围等语义属性,并以语义属性作为调度约束映射到流-状态依赖图中,在划分阶段使不可复制状态及其所有关联数据流强制共置以消除跨实例同步开销,并以最小化所有vnf实例最大负载为目标施加负载均衡约束,从而将状态语义感知与负载均衡统一于同一调度框架内,使最终生成的流-实例映射方案能够在保证各实例负载均衡的同时,尽可能将访问同一状态的数据流与状态部署于同一实例,降低了跨实例状态同步开销,从而提升了有状态nfv服务系统的整体吞吐量。