服务功能链的跨域部署算法
2023-09-13武静雯江凌云
武静雯,江凌云
(南京邮电大学 通信与信息工程学院,江苏 南京 210003)
0 引 言
在传统网络中,各种网络服务都是基于硬件的中间件来实现的,它们通常部署在特定的硬件设备上[1]。但是,随着互联网的飞快发展,传统网络的僵化结构和中间件对特定硬件设备的严重依赖已无法满足用户的灵活定制需求[2]。应对这一挑战,网络功能虚拟化(network function virtualization,NFV)的出现带来了新的机遇[3]。NFV中的一个网络服务可以表示为一个服务功能链(service function chain,SFC),它由一系列按给定顺序的虚拟网络功能(virtual network function,VNF)组成,为了提供高效的服务,SFC部署在多个不同的服务器中,并引导流量以特定顺序通过一组VNF。
SFC部署问题是NP-hard,现有大部分研究都集中于SFC在单域网络的部署问题,但是由于地理位置的限制,SFC部署必须跨域进行,因此SFC跨域部署问题的研究是至关重要的。现有文献主要提出两种方法来解决跨域SFC部署问题,即集中式和分布式,其中分布式方法是更贴合实际的[4],这是目前研究的重点和难点。
文献[4]提出了切链再部署的SFC跨域部署方案,其采用全网聚合技术将物理网络抽象,基于各个域网络的剩余资源完成SFC切链。但是该方案并未考虑到不同类型的VNF资源需求是不同的,对此,本文基于先前的研究成果[5],提出了SFC切链改进算法。
针对SFC切链后再部署的问题,目前已有大量文献进行了研究。但是,现有文献中将节能作为优化目标的研究很少,同时,节能和负载均衡是两个相互冲突的优化目标[6],如何在负载均衡和节能之间做出合适的权衡是一个具有挑战性的问题。对此,本文提出了共同优化能耗和负载均衡的SFC部署方案。
1 相关工作
为了提高网络资源利用率和网络运营商的效率,单域网络的SFC部署问题得到了广泛的研究。文献[7]设计了一种基于采样的马尔可夫方法,用于部署SFC的VNF,以最小化能耗和流量感知成本。文献[8]提出了整数线性规划模型来降低SFC的部署成本,并提出了一种启发式算法来提供近似模型的解决方案。
据调研,只有少数研究涉及SFC的跨域部署问题。文献[9]从理论上分析了跨不同管理域的NFV问题,并讨论了解决问题的挑战和方向,但是并未提出用于VNF部署或SFC映射的具体算法。文献[10]研究了在多域弹性光网络中经济高效地配置VNF图的问题,此外,他们基于最小 k-cut问题设计了两种启发式算法。但是,文献[10]中的工作是假设VNF应该组装成图而不是服务链,并且只考虑了具有两个域的理想网络。文献[11]制定了一个整数线性优化模型,以在多云网络中优化SFC,作者还提出了几种启发式算法来解决该问题。文献[12]提出了一种在线拍卖机制,用于在多云网络中配置动态虚拟集群。文献[4]提出了基于切链的SFC跨域部署方案,其根据各个域网络的剩余资源来完成SFC切链,但并未考虑不同类型VNF的资源需求是不同的,对此,本文提出了SFC切链改进算法。
现有大多数研究中,提出的SFC部署方案大部分是基于不同的优化目标。文献[13]将SFC映射问题抽象为多目标线性优化问题,其目标是最大化资源利用率,并提出了启发式算法来解决该问题。文献[14]提出了一个有效的框架,该框架将随机云选择的概念与基于支持向量回归的预测模型相结合,提出了成本优化、延迟感知的SFC部署算法。文献[15]通过资源整合来最小化物理网络中的能耗。文献[16]提出了一种旨在同时平衡网络和服务器负载的联合优化算法。虽然先前的研究已取得了显著的成果,但由于大部分研究仅考虑了单一优化目标,忽略了其它优化目标,这样,整体来看并不是最优的解决方案。鉴于现存文献中对节能和负载均衡多目标优化的SFC部署方案甚少,对此,本文提出了共同优化节能和负载均衡的SFC部署算法。
2 问题描述
2.1 系统模型
2.1.1 网络模型
将多域物理网络建模为无向图G=(S,R), 其中S是各个域网络服务器节点的集合,而R是各个域网络总资源容量的集合。其中,Gi=(Si,Ri) 表示第i个域网络,Si和Ri分别表示第i个域网络中的服务器节点集合和资源容量集合。G=∪NGiGi, 其中NG表示域网络数。域网络Gi中的服务器节点集定义为SiNG, 域网络Gi中的第j个服务器节点定义为si,jNG∈SiNG⊆SNG。 不同域网络中的服务器具有不同的资源容量,包括计算、存储和内存容量,本文仅考虑更易成为性能瓶颈的计算资源,每个服务器si,jSN都关联了计算资源容量,即rpi,jcpu。
2.1.2 SFC请求
如图1所示为SFC的转发映射示意图,图中有两个不同的SFC,但它们具有完全相同的宿源地址,分别经过不同的中间件以完成不同的服务功能。其中实线表示的第一个SFC依次经过防火墙、负载均衡器,虚线表示的第二个SFC依次经过防火墙、入侵检测系统(intrusion detection system,IDS)以及视频优化器。
图1 SFC转发映射
图中的流分类器负责识别网络流量,并分发至不同的SFC,转发器负责将网络流量转发至不同的中间件(即VNF)。SFC作为网络服务的一种实现方式,基于网络连通性,为用户提供了多样的L4-L7层的增值服务,它由一系列不同类型的VNF按序组成[17],本文重点研究如何为不同类型的VNF选择合适的部署域,并选择合适的服务器进行实例化部署。
本文定义f={f1,f2,f3,…,fNf} 为不同类型VNF的集合,其中fi表示第i类型的VNF,Nf表示VNF类型的总数,不同类型的VNF具有不同的资源需求,本文仅考虑更易成为网络性能瓶颈的计算资源,将VNFfi的计算资源需求表示为rdicpu。 同时定义F={F1,F2,F3,…,FNF} 为SFC服务请求的集合,其中Fi,j∈Fi∈F表示第i个SFCFi上的第j个VNF,NF表示SFC服务请求的总数。
2.2 系统框架
图2为本文所提出的跨域SFC部署系统框架,具体介绍说明如下。
图2 跨域SFC部署系统框架
2.2.1 模块功能
(1)NFV编排器
NFV编排器是ETSI定义的NFV架构框架中的NFVO组件,管理VNF生命周期。它负责接收来自SDN控制器组件的服务请求,并通过与SFC切链组件通信获取SFC切链方案,最后再将SFC切链方案发送给SDN控制器组件以提供服务。
(2)SDN控制器
SDN控制器共分为两类,一个是集中控制器(如图2中的C0),另一个是域控制器(如图2中的C1、C2和C3)。整个网络由多个域网络组成,例如图2中有3个域网络,所有域控制器都由集中控制器控制和管理。域控制器负责控制和管理每个域中的所有底层网络设备,包括转发设备和物理服务器。前者负责转发数据流,后者用于实例化VNF。
为实现共同优化节能和负载均衡的跨域SFC部署,本文在SDN控制器组件中添加了4个功能模块,分别是需求预测模块、能量检测模块、网络监控模块和信息收集模块,它们的主要功能描述如下:
1)需求预测模块
该模块负责预测不同类型VNF的资源需求,这是基于先前文献[4]的研究成果。将训练好的预测模型集成至该系统,这样可以实时获得各类型VNF的资源需求信息,从而做出合适的部署决策。
2)能量检测模块
该模块负责检测各个域网络中服务器的平均能耗,将各个域网络的平均能耗信息记录在数据库中,实现在最小化能耗的情况下,完成SFC跨域部署。
3)网络监控模块
该模块负责监控每台服务器的网络状态和工作负载的变化。一旦网络状态或服务器工作负载发生变化,会更新存储在数据库中的相应信息,从而为每个服务请求计算最佳部署方案。
4)信息收集模块
该模块负责收集各个域的总剩余资源,此处并未涉及到各个域网络的具体拓扑信息和资源信息,符合实际中各个域网络信息隔离的情况。
(3)SFC切链组件
该组件通过与集中控制器C0通信,获取该SFC中各类型VNF的资源需求情况以及每个域网络的剩余资源情况,基于这些信息生成合适的SFC切链方案。
(4)SFC子链部署组件
该组件通过与各个域控制器通信,获取该SFC子链中各类型VNF的资源需求情况以及当前域网络的剩余资源情况,基于这些信息生成合适的SFC子链部署方案。
2.2.2 工作流程
(1)当终端用户进入多域网络时,向SDN控制器C0发送服务请求;
(2)SDN控制器C0将服务请求转发给NFV编排器,NFV编排器将此服务请求转化为SFC;
(3)NFV编排器将SFC发送给SFC切链组件;
(4)SFC切链组件通过与SDN控制器C0通信获取各个域网络的总剩余资源量及SFC中不同类型VNF所需的资源量;
(5)SFC切链组件调用算法1完成SFC的切链,以实现多个域网络的负载均衡;
(6)SFC切链组件将SFC切链方案发送给NFV编排器,NFV编排器转发给SDN控制器C0;
(7)SDN控制器C0与各个域控制器进行通信,并将步骤(5)获得的SFC子链分别分配给每个域网络以完成进一步的部署;
(8)SFC子链部署组件通过与域控制器通信获取当前域网络的服务器资源使用情况及SFC子链中不同类型VNF所需的资源情况;
(9)SFC子链部署组件调用算法2完成SFC子链部署,实现单域网络节能和负载均衡的合适权衡;
(10)SFC子链部署组件将计算所得的SFC子链部署方案发送给各个域控制器,由域控制器负责完成SFC子链的部署;
(11)当网络状态或服务器负载发生变化时,更新存储在数据库中相应信息。
3 算法设计
3.1 SFC切链
基于文献[4],本文提出了一种SFC切链改进算法,具体伪代码如算法1所示。综合每个域网络的剩余资源量及不同类型VNF的资源需求量,“量力而为”地切分子链。
由于不同类型VNF的资源需求是不同的,先前的研究并没有考虑到这个因素,本文基于先前文献[5]的研究成果“基于特征选择的VNF资源需求预测”完成SFC切链,将需求预测模块集成到本文的控制器模块中,有利于生成更合适的SFC切链方案。
具体根据式(1)进行切链这里假设共有k个域网络,它们是有序的,其中wgti表示第i个域可以提供的资源量,该值的大小也代表了该域网络部署VNF的能力,Riprocess表示为实现多域网络的负载均衡,该域网络应提供的资源量,Rdemand表示该SFC请求所需的总资源量。
Riprocess=wgti∑ki=1wgti×Rdemand
(1)
由于一个VNF仅能部署在一台服务器上,且VNF是不可分的,因此是很难做到理想的多域网络负载均衡,本文的目标是实现多域网络负载均衡的最大化。
基于VNF资源需求预测模块,本文假设某个到达的长度为n的SFC请求中各个VNF的资源需求可以表示为Rdemand={r1,r2,r3,…rn}, 为减少域间链路带宽资源及时延,本文提出的切链算法综合考虑各个域网络的剩余资源及各个VNF的资源需求,将SFC切分为与域网络数量相同的多个子链,从而确定分配到每个域网络的SFC子链。首先对所有VNF的资源需求量进行排序,接着遍历每个VNF的资源需求量,若∑mj=1rj
算法1:改进权重切链
输入:域网络数量NG, 各个域网络服务器总数及总资源量G=(S,R); SFC请求队列及对应的VNF数量和类型F=(f,num,type); VNF类型数VNFType及不同类型VNF对应的资源需求量rdcpu;
输出:各个域网络所需部署的SFC子链集合M;
(1)针对每一个到达的SFC请求执行以下循环调度算法;
(2)对该SFC请求中的所有的VNF按资源需求进行由小到大的排序,获得集合VNFsSorted1;
(3)利用式(1)计算每个域网络应承担的资源供给量;
(4)遍历每个域网络,并针对该域网络是否有能力提供上述资源供给量进行分类讨论;
(5)若能的话,则遍历VNFsSorted计算该域网络应承担的VNF部署集合VNFDeploy;
(6)若不能的话,则根据每个域网络的资源容量,尽最大努力承担部署任务,获得该域网络的VNF部署集合VNFDeploy;
(7)针对(5)、(6)中的切链结果进行反馈,若最后仍有VNF未被划分,则将其划分至剩余资源最多的域网络,并更新切链结果M;
(8)返回最后结果,即各个域网络所需部署的SFC子链集合M。
3.2 SFC子链部署
在单域网络部署SFC子链时,本文提出了共同优化节能和服务器负载均衡的部署策略,具体伪代码如算法2所示,用户可以在不同场景下根据需求进行适当的调整。
当SFC子链在第i个域中成功部署时定义两个决策变量如下
xjn={1VNFFj成功部署在服务器vnSN0otherwise
(2)
ykj={1VNFFj属于SFCfk0otherwise
(3)
如前所述,在网络优化中,节能和负载均衡是矛盾的,无法同时实现针对它们的最佳解决方案。因此,为了在两者间实现理想的权衡,本文将能耗作为约束,将单域网络负载均衡度作为目标函数,假设某个SFC子链成功部署在域网络Gi上,式(4)表示第n个服务器vnSN的能耗,式(5)表示激活服务器的额外能耗,式(6)表示单个服务器的CPU利用率,式(7)表示单个服务器消耗的CPU资源量,式(8)表示单域网络的总能耗
en={enidlein idle modeenidle+enactivein active mode0in off mode
(4)
enactive=dln·enactivemax
(5)
dln=cpncpnmax
(6)
cpn=∑Fj∈F∑fk∈fxjn·ykj·rdkcpu
(7)
EC=∑nen
(8)
所以,优化问题可表示为式(9)。其中,约束条件C1确保每个VNF仅部署在一个服务器节点上;约束条件C2确保服务器的CPU资源容量应满足待部署VNF的CPU需求;约束条件C3和C4是负载均衡度定义,用服务器CPU利用率标准差来量化负载均衡度(load balance degree,LBD);约束条件C5是能耗约束,确保总能耗小于阈值Emax, 此外,两个决策变量应满足约束条件C6和C7中的完整性约束
minLBD
(9)
算法2:CCBP-adv算法
输入:域网络服务器数量及激活状态Gi=(N,A), 服务器最大容量Repo及最大能耗Emax, 各个服务器当前资源利用率Ri, SFC子链中VNF数量totalVNF及各VNF的资源需求量SFCi, 总能耗阈值totalEmax;
输出:SFC子链中各VNF的部署结果N;
(1)对该SFC子链中的所有VNF的按资源需求进行由大到小的排序,获得集合VNFsSorted2;
(2)针对VNFsSorted2执行以下循环调度算法;
(3)过滤域网络中可以满足该VNF资源需求的服务器集合,获得候选服务器集合CandidateServer;
(4)筛选候选服务器集合CandidateServer中资源容量最大的服务器作为当前VNF的部署节点,更新部署结果N,并将该服务器从Gi中暂时删除;
(5)获得初次部署结果N1;
(6)计算此时各个服务器的资源利用率CpuRadio1, 负载均衡度Variance1及总能耗energyCom1;
(7)进行第一次反馈部署,筛选部署失败的VNF,重新部署到其它服务器上,获得部署结果N2;
(8)计算此时各个服务器的资源利用率CpuRadio2, 负载均衡度Variance2及总能耗energyCom2;
(9)当energyCom2>totalEmax时,进行第二次反馈部署;
(10)定义最大反馈次数feedBackNum=round(totalVNF/2);
(11)初始化反馈次数num;
(12)whileenergyCom2>totalEmax
(13) whilenum (14) 获取所有激活的服务器集合activatedServer (15) 在activatedServer中寻找资源利用率最低的服务器节点server1; (16) 在activatedServer中寻找资源利用率次低的服务器节点server2; (17) 更新总能耗energyCom2; (18) end (19)end (20)获得最后部署结果N,并关闭所有空闲的服务器以降低能耗; (21)计算此时各个服务器的资源利用率CpuRadio3, 负载均衡度Variance3及总能耗energyCom3; (22)返回SFC子链中各VNF的部署结果N; 仿真所用计算机配置为Intel Core i5 7300HQ (2.5 GHz),8 GB内存,所运行的软件环境为安装在Windows 10上的MATLAB2015。仿真中设置的主要参数总结在表1中。为了使我们的模拟场景更通用,类似于文献[17],本文采用“单元”来量化资源消耗及能耗。 表1 仿真参数 针对表1中的仿真参数设置详细说明如下。其中,NG表示多域网络数为4,NSFC表示SFC的总数为50,Nvnf_type表示VNF类型数为6,分别是网络地址转化、防火墙、IDS、负载均衡器、广域网优化和流量监控器,NS表示域网络中的服务器数服从(5,10)的均匀分布,Nvnf表示SFC中的VNF数服从(3,7)的均匀分布,stati,j表示第i个域网络中的第j个服务器的激活状态,随机生成0或1,rpi,jcpu表示第i个域网络中的第j个服务器的CPU容量,其服从(3,5)的均匀分布,rdicpu表示第i种VNF类型的CPU资源需求量,其服从(0,0.4)的均匀分布,Eidle表示未激活服务器的能耗,Emax表示服务器的最大能耗,Emaxtotal表示整个网络的能耗阈值。 本文选择能耗、负载均衡度和时间开销3个指标来评估所提出的分布式跨域部署算法的性能。 (1)能耗:指所有服务器的总能耗,由式(8)计算; (2)负载均衡度:指多域网络的负载均衡度,由式(9)中的C3和C4计算,其值越小,表示负载均衡效果越好; (3)时间开销:指SFC跨域部署算法在多域网络中部署一组SFC所消耗的时间。 4.3.1 SFC切链 图3是不同切链算法在不同SFC数量下多域网络负载均衡度的比较,其中,平均切链算法和权重切链算法是文献[4]所提出的。由图3可知,本文所提出的改进权重切链算法可以产生更小的负载均衡度。如前所述,负载均衡度越小,则可以达到更好的负载均衡效果。这是因为本文所提出的改进权重切链算法考虑到了不用类型VNF的资源需求是不同的,在切链过程中综合考虑了每个域网络的剩余资源量及不同类型VNF的资源需求量,基于先前文献[5]的研究成果完成SFC切链,将需求预测模块集成到本文的控制器模块中,这样有利于生成更合适的SFC切链方案。 图3 多域网络负载均衡度随SFC数量变化对比 此外,不同切链算法在不同SFC数量下的多域网络负载均衡度也是不同的。这是因为不同的SFC数量对应了不同的VNF数量,这些VNF所对应的资源需求也是不一样的,而对于不同的SFC数量,各个域网络的起始资源容量是一致的,这样就会造成不同SFC数量部署后多域负载均衡度的起伏变化,但总体来看,本文所提出的改进权重切链算法总是可以达到更好的负载均衡效果。 图4是不同切链算法在不同VNF数量下多域网络负载均衡度的比较。由图4可知,本文所提出的改进权重切链算法可以产生更小的负载均衡度,即本文所提出的改进权重切链算法比其它两种比较算法能够达到更好的负载均衡效果。这同样是因为本文所提出的改进权重切链算法考虑到了不用类型VNF的资源需求是不同的。此外,不同切链算法在不同VNF数量下的多域网络负载均衡度也是不同的。这是因为不同VNF所对应的资源需求是不同的,而对于不同数量的VNF,各个域网络的起始资源容量是一致的,这样就会造成不同数量VNF部署后多域负载均衡度的起伏变化,但总体来看,本文所提出的改进权重切链算法总是可以达到更好的负载均衡效果。 图4 多域网络负载均衡度随VNF数量变化对比 图5是不同切链算法在不同VNF资源需求下多域网络负载均衡度的比较,其中横坐标数字a表示VNF资源需求服从均匀分布(a,a+0.1)。由图5可知,本文所提出的改进权重切链算法可以产生更小的负载均衡度,即本文所提出的改进权重切链算法比其它两种比较算法能够达到更好的负载均衡效果。这同样是因为本文所提出的改进权重切链算法考虑到了不用类型VNF的资源需求是不同的。此外,不同切链算法在不同VNF资源需求下的多域网络负载均衡度是不同的,整体上呈现正相关趋势。这是因为每个服务器节点具有不同的资源容量,并且每个VNF都部署在可以满足不断变化的资源需求的服务器节点上,而不是固定的服务器节点上。针对不断增长的VNF资源需求,满足其资源需求的服务器节点越来越少,即可供选择的部署位置越来越少,这样很容易造成多域网络负载均衡度的不断增长,但总体来看,本文所提出的改进权重切链算法总是可以达到更好的负载均衡效果。 图5 多域网络负载均衡度随VNF需求变化对比 4.3.2 SFC子链部署 图6是不同部署算法在不同VNF数量下单域网络能耗的比较,其中一个基准算法是随机部署算法(random deployment,RANP),首次拟合部署(first-fit deployment,FFP)算法是文献[18]提出的,基于改进切链部署(chain-cut-based deployment advanced,CCBP-adv)算法是本文提出的SFC跨域部署算法。由图6可知,本文所提出的CCBP-adv算法在大多数情况下均可以产生更少的能耗。这是因为本文所提出的CCBP-adv算法设置了反馈部署,当能耗超过阈值时,就会做出相应地调整,旨在激活更小的服务器集合,在负载均衡度和能耗间做出合适的权衡。而对于FFP算法是将每个VNF部署在最先满足其资源需求的服务器上。对于RANP算法,每个VNF都是随机部署在一个服务器上的。与FFP算法相比,RANP算法可能占用更多的服务器来部署VNF,进一步导致更多的能耗。 图6 单域网络能耗随VNF数量变化对比 此外,随着VNF数量的增加,本文所提出CCBP-adv算法所产生的单域网络能耗整体上呈下降趋势,这是因为本文所设置的反馈部署次数与VNF数量正相关,随着反馈次数的增加,会减少激活的服务器数量,从而降低总能耗;而对于FFP算法和RANP算法所产生的单域网络能耗均呈上升趋势,这是因为这两种算法均未进行反馈部署,随着VNF数量的增加,必然会造成能耗的增加。 图7是不同部署算法在不同VNF数量下单域网络负载均衡度的比较。由图7可知,本文所提出的CCBP-adv算法可以产生更小的负载均衡度,即CCBP-adv算法比其它两个部署算法的负载均衡效果更好。这是因为本文所提出的CCBP-adv算法是以单域网络的负载均衡度为优化目标进行部署,仅当能耗超过阈值情况下,才会进行相应的部署调整。而对于FFP算法是将每个VNF部署在最先满足其资源需求的服务器上,这样会造成VNF集中部署,不利于负载均衡,大量的流量流向单一节点,极易造成网络堵塞、数据包丢失,更有甚者造成网络瘫痪的情况。对于RANP算法,每个VNF都是随机部署在服务器上,同样也不利于负载均衡。 图7 单域网络负载均衡度随VNF数量变化对比 此外,随着VNF资源需求的增加,3种部署算法产生的单域网络负载均衡度起伏变化。这是因为随着VNF资源需求的不断增加,满足其资源需求的服务器节点数目不断变化,这样很容易造成单域网络负载均衡度的起伏变化,但总体来看,本文所提出的CCBP-adv算法总是可以达到更好的负载均衡效果。 图8是不同部署算法在不同VNF资源需求下单域网络能耗的比较,其中横坐标数字a表示VNF资源需求服从均匀分布U(a,a+0.1)。由图8可知,本文所提出的CCBP-adv算法可以产生更少的能耗。这是因为本文所提出的CCBP-adv算法设置了反馈部署,当能耗超过阈值情况下,会做出相应的调整,旨在激活更小的服务器集合。而对于FFP算法是将每个VNF部署在最先满足其资源需求的服务器上。对于RANP算法,每个 VNF都是随机部署在服务器上。与FFP算法相比,RANP算法可能占用更多的服务器来部署VNF,进一步导致更多的能耗。 图8 单域网络能耗随VNF需求变化对比 此外,随着VNF资源需求的增加,3种部署算法产生的总能耗变大。这是因为随着VNF资源需求的增加,为了提供高效的服务,服务器需要更多的资源来实例化部署的VNF,进一步导致更多的能耗。 图9是不同部署算法在不同VNF资源需求下单域网络负载均衡度的比较。由图9可知,本文所提出的CCBP-adv算法可以产生更小的负载均衡度,即CCBP-adv算法比其它两个部署算法的负载均衡效果更好。这是因为本文所提出的CCBP-adv算法是以单域网络的负载均衡度为优化目标进行部署,仅当能耗超过阈值时,才会进行相应的部署调整。而对于FFP算法是将每个VNF部署在最先满足其资源需求的服务器上,这样会造成VNF集中部署,不利于负载均衡,大量的流量流向单一节点,极易造成网络堵塞,更有甚者造成网络瘫痪的情况。对于RANP算法,每个VNF都是随机部署在服务器上,同样也不利于负载均衡。 图9 单域网络负载度随VNF需求变化对比 此外,随着VNF资源需求的增加,3种部署算法产生的单域网络负载均衡度起伏变化。这是因为随着VNF资源需求的增加,满足其资源需求的服务器节点数目不断变化,这样很容易造成单域网络负载均衡度的起伏变化,但总体来看,本文所提出的CCBP-adv算法总是可以达到更好的负载均衡效果。 图10是不同部署算法在不同VNF数量下时间成本的比较。由图10可知,本文所提出的CCBP-adv算法可能需要更多的时间完成部署,但相较于FFP算法,时间成本平均仅增加了0.02 ms,这是可接受的。此外,随着VNF数量的增加,3种部署算法产生的时间成本整体上呈上升趋势。这是因为随着VNF数量的增加,需要执行的循环调度算法次数也会相应增加,即每个部署算法需要遍历更多的服务器,搜索最优部署服务器的时间会增加,由此造成了更多的部署时间。 图10 时间成本随VNF数量变化对比 综上所述,从上述性能比较中可以得出结论,本文所提出的SFC跨域部署算法是有效的,并且在能耗和负载均衡度方面均优于比较算法。 现有网络虚拟化场景下的服务功能链部署算法的研究大部分集中在单域网络,这些算法无法直接应用于跨域部署场景下,同时现有的跨域部署算法都未考虑到不同类型的VNF资源需求是不同的,且优化目标单一。本文提出的SFC跨域部署算法很好地解决了多域网络负载失衡及能耗过多的问题,基于先前的研究成果,将VNF资源需求预测模块集成至该算法中,共同优化负载均衡和能耗,灵活地在这两者间进行权衡,在最大化减少能耗的同时,获得了更好的网络负载均衡效果。4 仿 真
4.1 仿真设计
4.2 评价指标
4.3 仿真结果分析
5 结束语