发明内容
有鉴于此,本发明的目的在于提供一种基于负载均衡的服务功能链重配置方法,该方法基于Dueling Deep Q Network(Dueling DQN)强化学习算法,在动态变化的SFC无线速率需求下,能在保证服务器负载均衡和服务请求性能的同时,优化VNFI的迁移开销,并提高网络的稳定性,减少服务器资源浪费。
为达到上述目的,本发明提供如下技术方案:
一种基于负载均衡的服务功能链重配置方法,该方法在每个离散时隙上,监测网络中已部署服务功能链(Service Function Chain,SFC)的无线速率需求变化,对其无线接入端的子载波资源、虚拟网络功能(Virtualized Network Function,VNF)实例上的计算资源以及有线链路带宽资源进行重配置,以达到新的速率需求;当服务器上分配的计算资源情况发生变化时,会引起服务器负载不均的问题,需要进行VNF迁移来使服务器的负载达到合理的范围内,该方法以最小化VNF迁移开销为目标,为SFC制定合适的VNF迁移策略,使网络中的服务器处于正常的负载状态,以保证网络整体的稳定性并可节约服务器资源,具体包括以下步骤:
S1:以用户可达的无线速率作为SFC资源分配的依据,即SFC各个VNF实例所需的处理速率和链路传输带宽与用户可达的无线速率一致,建立在动态的SFC无线速率需求下,以服务器负载均衡要求和SFC性能需求为约束的VNF迁移开销最小化模型;
S2:动态变化的SFC无线速率需求具有马尔科夫性,为在每个时隙寻找最佳的子载波资源重配置和VNF迁移策略,将上述优化模型转化为离散时间下的马尔科夫决策过程(Markov Decision Processes,MDP);
S3:建立基于Dueling DQN强化学习框架的SFC重配置方法解决上述MDP问题,从而针对每个时隙不同的SFC速率需求制定最佳的子载波资源重配置以及VNF迁移策略。
进一步,在所述步骤S1中,SFC的流速率是指VNF实例的处理速率和传输速率,以用户可达的无线速率作为SFC的流速率,对SFC中的VNF分配相应的计算资源和有线链路带宽资源;
当用户SFC的无线速率需求发生变化时,会对其无线子载波分配进行重配置,以达到新的无线速率需求,SFC的流速率与可达的无线速率一致,则该SFC中VNF所分配的计算资源也将随之变化,部署有上述VNF实例的服务器将会按照新的需求对VNF进行计算资源重配置,这将会引起服务器负载情况的变化:当服务器负载过低时,会造成服务器资源的浪费,当服务器负载过高时,会导致服务器性能下降,从而影响网络的稳定性。因此需要将上述负载不均的服务器上所部属的VNF实例进行迁移,维持各个服务器的负载均衡。
根据上述分析,建立在动态变化的SFC无线速率需求下的VNF迁移模型,在保证物理网络上各个服务器负载均衡以及服务请求性能需求的前提下,以小基站子载波资源容量、服务器计算资源容量以及链路带宽资源容量为约束,以最小化迁移开销为目标,寻找合适的子载波重配置和VNF迁移策略;所述的VNF迁移开销定义为VNF当前来处理流量与迁移跳数的乘积。
进一步,在所述步骤S2中,用户SFC的无线速率需求是动态变化的,且具有马尔科夫性,将该优化问题转化成一个离散时隙的MDP问题,从而利用强化学习算法框架求解,具体包括:
该MDP模型用一个四元组<S,A,Pr,r>表示,其中S表示状态空间,其状态由每个SFC 的速率需求组成,即s
t=(C
1(t),C
2(t),...,C
|F|(t));A表示动作空间,其动作由子载波的重分配和VNF迁移变量组成,即
其中W(t)表示子载波重配置矩阵,
表示VNF迁移变量;Pr表示状态转移概率,本模型中的状态为每个SFC的速率需求,其状态转移概率不可预知,则将Pr视为未知量;r表示奖励函值,在一个状态执行某个动作,环境会进入下一个状态,并得到一个奖励值,智能体通过这样不断地与环境进行交互,从而学习获得最高奖励值的动作策略;本模型中的奖励值设为迁移开销的相反数,即r
t=-C
m(t),其中C
m(t)为系统在t时隙的总迁移开销。
进一步,在所述步骤S3中,根据步骤S2中建立的MDP模型,得到一个强化学习框架,其智能体在每个时隙开始时观察环境的状态s
t,并执行一个动作a
t,智能体会得到一个奖励值r
t,强化学习的目标即为找到一个策略a=π(s),使得从当前状态采取某一动作后执行该策略得到的累计折扣奖励的期望值最大,该期望值被称为状态动作值函数Q
π(s,a),其表达式为:
其中,λ∈(0,1)为权衡各个时刻奖励值的折扣因子;定义最优Q值为Q
*(s,a)=max
πQ
π(s,a),因此上述策略a=π(s)可表示为 a=argmax
a'Q(s,a')。
进一步,在本方法中,所用的Dueling DQN强化学习算法为深度Q网络(DQN)算法的改进,传统DQN中的Q值由输入为状态动作对(s,a),参数为θ的神经网络输出,但对于某些状态来说,无论采取什么样的动作,都不会对Q值产生明显的影响,因此这样的神经网络结构会影响学习的效率,在Dueling DQN中,神经网络Q值被定义为状态值函数V
π(s)与优势函数A
π(s,a)之和:Q
π(s,a)=V
π(s)+A
π(s,a),其中,状态值函数V
π(s)为在状态s下执行策略π得到的累计折扣奖励的期望值,表示为Q
π(s,a)在动作空间A上的均值,即 V
π(s)=E
a~π(s)[Q
π(s,a)],优势函数A(s,a)为V
π(s)与Q
π(s,a)之差,其意义为某特定动作a 相对于状态s上的好坏程度,且易得A(s,a)在状态空间上的均值为0;这样将Q值设置为V 值与A值之和的好处在于,可以分别学习某一状态对于环境的影响和某个特定动作在某一状态下的相对优势,然而,用V值和A值直接相加的得到Q值有一个缺陷:给定一个Q值,无法得到唯一的V和A,就不能知道是状态的影响的还动作的影响,为解决这一缺陷,将A 值减去一个固定的常量,使之表示为一个相对的优势值,因此将最终的Q值改写为:
Dueling DQN中神经网络的训练方式与DQN中相同,通过经验回放和固定目标网络输出损失函数,利用梯度下降法更新神经网络的参数;当训练完成后得到神经网络的参数,则可以根据当前状态得到最大Q值的SFC重配置策略,即a=argmax
a'Q(s,a')。
本发明的有益效果在于:在NFV环境下,联合考虑SFC编排与无线资源分配,针对SFC 的无线速率需求变化造成的网络服务器负载不均问题,提出了基于Dueling DQN强化学习算法的SFC重配置方法,有效优化了VNFI的迁移成本,保证了网络的稳定性,并节约了服务器资源。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
具体实施方式
下面结合附图对本发明的具体实施例进行详细说明。
在本发明的技术方案中,针对NFV环境下用户SFC动态变化的速率需求引起的服务器负载不均问题,联合考虑VNFI迁移与资源重配置,以最小化VNFI迁移开销为优化目标,利用Dueling DQN强化学习算法寻找合适的VNFI迁移与资源重配置策略。具体包括以下步骤:
S1:以用户可达的无线速率作为SFC资源分配的依据,即SFC各个VNF实例所需的处理速率和链路传输带宽与用户可达的无线速率一致,建立在动态的SFC无线速率需求下,以服务器负载均衡要求和SFC性能需求为约束的VNF迁移开销最小化模型;
S2:动态变化的SFC无线速率需求具有马尔科夫性,为在每个时隙寻找最佳的子载波资源重配置和VNF迁移策略,将上述优化模型转化为离散时间下的马尔科夫决策过程(Markov Decision Processes,MDP);
S3:建立基于Dueling DQN强化学习框架的SFC重配置方法解决上述MDP问题,从而针对每个时隙不同的SFC速率需求制定最佳的子载波资源重配置以及VNF迁移策略。
具体来说,在步骤S1中,底层物理网络由无向图G=(N,E)表示,其中N={n
1,n
2,...}表示物理节点集合,包括服务器节点集合N
s={s
1,s
2,...}和小基站(small basestation,SBS)集合N
r={r
1,r
2,...};E={(n
i,n
j)|n
i,n
j∈N,B
i,j>0}表示物理链路集合,其中B
i,j表示节点n
i和n
j间的链路带宽容量,若两点间无链路则为零,因此物理节点的关联矩阵可由B
|N|×|N|=[B
i,j]表示。用
表示服务器资源向量,其中c
i表示服务器s
i的计算资源容量。用
表示SBS子载波资源向量,其中W
i 0表示SBS r
i的子载波个数。
在步骤S1中,SFC服务请求集合设为F={1,2,...,f,...},一个服务请求由一个五元组表示: f=<sfc
f,Load
f,r
f,Delay
f,C
f>,其中sfc
f为服务请求f的SFC逻辑链路,表示为一个无向图G
f=(N
f,E
f),Load
f表示f的数据量,r
f表示发起该服务请求的用户所关联的SBS,Delay
f表示f的时延要求,C
f表示f的无线速率要求。
为sfc
f的VNF虚拟节点集合,其元素为完成该服务请求所需的VNF,任一条SFC的最后一个VNF
均为“无线发送功能”,且必须将其映射到该服务指定的SBS r
f上,定义二进制变量
为服务请求与SBS的关联变量,当服务请求f关联到SBS r
i上时,
否则为0;
为服务请求f的虚拟链路集合,其中
是VNF
和VNF
间的虚拟链路。用矩阵W(t)=[W
i,f(t)]表示SBS子载波分配矩阵,其中W
i,f(t)表示r
i分配给服务请求f的子载波数量。用cpu
f(t)表示t时隙分配给sfc
f中的VNF的计算资源,用B
f(t)表示分配给sfc
f的链路带宽资源。假设t时隙节点处理速率
与所分配的计算资源cpu
f(t)成正比:
其中
为转化因子。本发明中,节点处理速率
和链路带宽B
f(t)应与用户可达的无线速率C
f(t)一致,即
B
f(t)=C
f(t),则可得计算资源的需求量为:
其中
本发明中,以用户可达的无线速率作为SFC的流速率,以此为依据来分配VNFI的计算资源与链路带宽资源。在下行链路中,对无线用户进行子载波资源分配,得到用户可达的无线速率C
f(t),即:
其中,B为单个子载波带宽,γ
i,f为服务请求f在下行链路的信干噪比。
在步骤S1中,假设服务请求的速率需求是动态变化的,当用户的无线速率需求C
f发生变化时,无线端会对用户的子载波资源进行重配置来达到新的需求,进而会引起该服务请求f 的SFC流速率和对其VNFI所分配的计算资源发生变化,并导致服务器节点负载改变,出现低载或过载等负载不均的情况。若负载过低会造成服务器资源的浪费,若服务器负载过高会使服务器性能下降,影响网络的稳定性,因此需要进行SFC的重配置来使服务器负载均衡,SFC的重配置包括VNF的迁移和资源重配置。服务器节点的负载由为节点的计算资源利用率,表示为:
设置两个资源利用率阈值u
min和u
max,当u
i小于u
min时,该物理节点资源利用率过低,则需将部署在该节点上的VNF实例迁移至其他节点,使该物理节点进入待机状态,从而减少网络能耗;当u
i大于u
max时,该物理节点处于过载状态,需要将部署在该节点上的VNF实例迁移至其他负载较低的物理节点上,降低该服务器的负载,提高网络的稳定性。定义一个二进制变量
当服务请求f的VNFI
在t时隙迁移到服务器s
j上时,有
否则为0。本发明将单个VNFI的迁移开销定义为该VNFI的流速率与迁移跳数的乘积,则服务请求f中的VNFI
由原服务器迁移到服务器s
j的迁移开销可表示为:
其中h
k,j为服务器s
k和s
j间的最短跳数。
因此,优化问题可描述为,用户SFC动态变化的无线速率需求会造成VNFI对服务器计算资源需求的改变,从而会导致服务器出现低载或过载的情况,为了解决服务器负载不均引起的资源浪费和性能不稳定等问题,制定一种VNFI迁移策略和资源重配置,在服务器负载和SFC性能(包括无线速率和时延)的约束下,优化VNFI的迁移开销,在尽可能低的迁移开销下,实现网络的负载均衡。上述优化问题可公式化为:
该优化问题主要有约束条件有:1)各个服务器需要满足u
min<u
i<u
max的负载均衡条件;2)在完成重配置后需要满足SFC的无线速率需求C
f(t)>C
f;3)在完成重配置后需要满足SFC端到端时延要求:D
f,a(t)>Delay
f;4)链路带宽资源分配需要满足带宽资源容量约束:
5)子载波资源分配需要满足SBS子载波容量约束:
在步骤S2中,将上述优化问题转化成一个离散时间的马尔科夫决策过程<S,A,Pr,r>,其中S为状态空间,A为动作空间,Pr为状态转移概率,r为奖励函数。s
t∈S为t时隙的环境状态,表示为s
t=(C
1(t),C
2(t),...,C
|F|(t)),其中C
f(t)是t时隙SFC f的无线速率需求;a
t∈A 为t时隙执行的动作,表示为:
其中W(t)为子载波重配置变量,
表示VNFI迁移变量;状态转移概率Pr可表示为Pr(s
t+1|s
t,a
t)=∫
Sf(s
t,a
t,s)ds,其中f()为状态转移概率密度函数,但本模型中的环境状态为SFC的无线速率需求,因此无法得知该概率密度函数,因此将状态转移概率视为未知量;r
t表示在环境状态为s
t时执行动作a
t得到的及时奖励,表示为:r
t=-C
m(t),其中C
m(t)为t时隙系统的总VNFI迁移开销。定义在策略 a=π(s)下的状态动作值函数Q
π(s,a)为从当前状态采取某一动作后执行该策略得到的累计折扣奖励的期望值:
其中λ∈(0,1)为权衡各个时刻奖励值的折扣因子。因此,该MDP模型的目标即为,找到一个SFC重配置策略a=π(s),使上述 Q值最大,即a=argmax
a'Q(s,a')。
在步骤S3中,利用Dueling DQN算法来求解上述MDP问题。Dueling DQN基于DQN 算法框架,用神经网络来对Q值进行近似,其输出可表示为Q(s,a;θ),其中θ为神经网络的参数。在DQN架构中,智能体包含两个结构相同的神经网络,分别为估值Q网络和目标Q 网络,其中估值Q网络用于估计Q值,其参数在一定迭代次数内保持不变,经过指定迭代次数后用当前估值Q网络的参数替换目标Q网络的参数,目标Q网络用于输出目标Q值,两者之差被称为时间差分(TD)误差,神经网络将TD误差的均方值作为损失函数,使用梯度下降法进行训练并更新估值Q网络的参数。第t次迭代的损失函数表达式为:
Lt(θt)=E(s,a,r,s')~D[(yt-Q(s,a;θt))2]
其中,θ
t为第t次迭代时估值Q网络的参数,D表示经验池,y
t表示目标Q网络的输出。经验池D是指一个存放状态转移过程<s
t,a
t,r
t,s
t+1>的经验池,每次训练时从该经验池中随机抽取小批量状态转移过程进行学习,其目的是为了打破学习样本中数据间的时间相关性,这样网络可以从过去更广泛的经验中进行学习而不仅仅局限于当前环境。在DuelingDQN中,以DQN为基础,将神经网络的输出Q值改进为:Q(s,a;θ,α,β)=V(s;θ,β)+A(s,a;θ,α),其中V值表示状态值函数,A值表示动作a相对于状态s的优势函数,α和β分别为A值和V值的神经网络参数,这样做的目的是可以分别学习某一状态对于环境的影响和某个特定动作在某一状态下的相对优势。然而,这样用V值和A值直接相加的方式由一个缺陷:给定一个Q值,无法得到唯一的V和A,从而无法得知是状态的影响还是动作的影响。为解决这一问题,可将A值减去一个固定的常量,使之表示为一个动作相对的优势值,因此将最终的Q值改写为:
然后通过这种方式得到的Q值,进行损失函数的计算和神经网络的训练,最终获得最优的SFC重配置,即子载波重配置与VNFI迁移决策a=argmax
a'Q(s,a')。
参见图1,图1为NFV/SDN环境下的SFC重配置及无线接入网场景图。在该场景中,控制面与数据面分离,采用集中式的控制面NFV管理编排器(NFV-MANO)对部署在物理网络中的SFC进行重配置,主要包括负载均衡、VNF迁移与资源重配置等功能。数据面中的 NFV基础设施(NFVI)主要包括服务器节点与物理链路等底层物理网络设施,以及无线接入网。其中服务器节点负责VNF的实例化完成相应的网络功能,无线接入网无责与用户的无线传输。本发明中SFC的流速率与用户可达的无线速率一致,即每个VNFI所需的处理速率和链路传输所需的带宽与用户可达的无线速率一致。因此,当用户的无线速率需求发生改变时,需要改变无线接入网中的子载波分配,以达到新的速率需求,其SFC上的VNFI所需的计算资源也随之改变。这样的资源重配置会导致服务器节点上负载的波动,出现负载不均的情况:当服务器负载过低时,会导致服务器资源的浪费;当负载过高时,服务器性能会下降,导致网络的不稳定。因此,需要制定合适的VNFI迁移策略,将负载不均服务器上的VNFI迁移到其他服务器上,来解决网络负载均衡的问题。本发明在服务器负载均衡与用户SFC性能等约束下,以最小化VNFI迁移成本为目标,制定SFC重配置策略,以减少服务器资源的浪费并维持网络稳定。
图2为Dueling DQN强化学习算法框架图。DQN智能体在时隙开始时观测环境状态s
t,即网络中SFC的无线速率需求,并执行动作a
t,智能体会得到一个即时奖励r
t,环境会进入下一状态s
t+1,经验回放机制将上述状态转移过程<s
t,a
t,r
t,s
t+1>存储到经验池中,为智能体提供学习样本。在每次迭代中,从经验池D中抽取一定数量的状态转移样本,作为神经网络的输入进行训练,从估值Q网络中获得估计Q值Q(s,a;θ
t),从目标Q网络中获得目标Q值y
t,从而获得损失函数L
t(θ
t)=E
(s,a,r,s')~D[(y
t-Q(s,a;θ
t))
2],在通过梯度下降法更新估值Q网络中的参数θ:
图3为Dueling DQN中神经网络的结构图。该神经网络以状态动作对(s,a)为输入,隐藏层1是卷积网络层,参数为θ;隐藏层2中包含两条分离的流,左边部分的参数为β,输出为状态值函数V(s;θ,β),它代表状态s对于环境奖励的影响,右边部分的参数为α,输出为优势函数A(s,a;θ,α),它表示各个动作在状态s下的相对优势;输出层整合了隐藏层2中两条流的输出结果,作为整个神经网络的输出,表示为:
其中,将A值减去其平均值的目的是为了能够分配判定环境和动作分贝对Q值的影响,而不出现V(s;θ,β)=0,Q(s,a;θ,α,β)=A(s,a;θ,α)的情况。
参见图4,图4为本发明中基于负载均衡的服务功能链重配置方法流程图。步骤如下:
步骤401:初始化t=0时的网络环境,生成当前SFC部署情况;
步骤402:监测用户的SFC无线速率需求是否变化;
步骤403:通过Dueling DQN算法为无线速率需求变化的SFC进行子载波资源重配置决策,以达到新的无线速率需求,并以该无线速率作为SFC的流速率;
步骤404:以步骤403中所得的新的SFC流速率,使VNFI所需的处理速率和链路传输带宽与该流速率一致,重新分配VNFI计算资源与链路带宽资源;
步骤405:判断网络中各个服务器节点si的负载ui是否在正常范围内:umin<ui<umax,若不是,则存在负载不均问题,进行下一步;若不存在负载不均,则返回步骤402;
步骤406:通过Dueling DQN算法对负载不均的服务器上的VNFI进行迁移决策;
步骤407:判断迁移后的SFC是否达到用户的时延要求,若是,进行下一步;若否,返回步骤406;
步骤408:判断训练过程是否达到预定迭代次数,若是,进行下一步;若否,返回步骤402;
步骤409:当迭代结束时,则可根据训练好的神经网络输出SFC重配置决策。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。