本发明主要涉及网络功能虚拟化领域与移动边缘计算领域。具体涉及面向移动边缘计算的服务功能链部署方法。
背景技术:
5g作为下一代移动通信技术,将以其灵活和高效的系统为用户提供超低延迟和超高吞吐量的服务体验。网络功能虚拟化(nfv)和移动边缘计算(mec)作为5g的核心技术已经得到了学术界和工业界的广泛关注。不同于通过部署昂贵的专门硬件来实现网络功能,nfv解耦了软件与硬件,通过将虚拟网络功能(vnf)部署在商用现成服务器上以实现网络功能。同时,通过将部分或全部的服务迁移到靠近用户或者采集数据的位置,mec将显著的提高网络应用的延迟性能。利用nfv和mec,诸如虚拟现实(vr)/增强现实(ar)、工业物联网、自动驾驶等大量的具有严格延迟要求的应用将得以实现。
图1示例网络功能虚拟化参考架构图。该参考架构图中包括网络运维层(oss/bss)101,主要提供各种端到端电信服务的管理服务;虚拟网络功能层(vnf层)102,主要包括网元管理(ems)和虚拟网络功能(vnf)分别负责虚拟网络功能的配置、性能和安全等方面的管理和提供不依赖专门硬件的虚拟化的网络功能;网络功能虚拟化基础设施层(nfvi层)103,主要负责为虚拟网络功能提供虚拟化环境;网络功能虚拟化编排器(vnf编排器)104,主要负责管理网络服务的生命周期和相关的策略;网络功能虚拟化管理器(vnf管理器)105,主要负责会虚拟网络功能的创建和生命周期的各个阶段进行管理;虚拟基础设施管理器106,主要负责对整个基础设施层进行管理和监控。
在传统云计算领域,防火墙(fw)、网络地址转换(nat)、视频加速器(vac)、深度包检测(dpi)等虚拟网络功能被部署在分布在不同位置的数据中心的物理服务器上。不同服务器上的不同虚拟网络功能通常根据不同的服务需求形成具体的服务功能链(sfc)。随着sfc数量的增加,将具有不同计算资源和通信资源需求的sfc部署在具有不同计算能力和通信能力的底层网络上成为了一个巨大的挑战。在边缘计算领域,由于计算资源更靠近用户,因此将虚拟网络功能部署在边缘服务器上能够显著的降低网络延迟。正如openstack白皮书中强调的,越来越多的电信运营商在努力尝试通过在边缘部署虚拟网络功能转换他们的服务交付模式,这将最大程度的降低资本支出和运营支出同时调高用户的服务体验(qoe).
相比在云计算环境中部署服务功能链,在mec环境中部署服务功能链将更具有挑战性。第一,mec中大部分的网络应用的延迟敏感的,因此在mec中部署服务功能链时应该首先考虑延迟要求,一些已有技术着重考虑了本问题中的传输延迟需求却忽略了处理延迟需求对系统的影响;第二,mec中部署功能服务链的边缘服务器的计算资源和物理链路的带宽资源是有限的;第三,服务功能链部署问题是一个np-hard问题,尽管一些已有技术采用启发式算法对本问题进行求解,但是往往会陷入局部最优解中。
技术实现要素:
为克服现有技术的不足,本发明旨在应用机器学习的方法解决mec中的服务功能链部署问题,达到传输延迟和处理延迟的最小化。为此,本发明采取的技术方案是,面向移动边缘计算的服务功能链部署方法,采用q强化学习方法进行部署,q强化学习方法为一个马尔可夫决策过程mdp,在这个mdp中有一个状态集合s,一个动作集合a,一个转移函数t:s×a×s→[0;1]以及一个反馈函数
其中,s和a分别代表当前的状态和动作,
1)、状态空间
状态空间包含了所有可能的系统状态,用式(2)表示:
sn={sn|sn=(qn,hp)},se={se|se=(qe,hp)}(2)
其中qn=(o1,o2,…,oa)是一个n位的0-1变量以表示所有边缘服务器的计算资源的可用性,具体来说,oi=0(oi=1)表示边缘服务器ni的剩余计算资源是大于/小于预设阈值t的,如果ob=0,则vnf被部署到边缘服务器ni上,否则不能部署;qe=(t1,t2,…,tm)是一个m位的0-1变量以表示所有物理链路的带宽资源的可用性;
2)、动作空间
动作空间定义如式(3):
其中hw代表将被部署vnf的边缘服务器,在系统的初始状态,a包含所有的候选边缘服务器;
3)、反馈函数
反馈函数定义如式(4):
其中lmax是所有延迟中的最大值,如果hp,hw之间的不存在物理链路或边缘服务器hw的计算资源不足,rn(sn,a)将被赋值为-n。如果边缘服务器hw的计算资源仍然充足,则rn(sn,a)的值将根据(4)中的式子计算得到,式中的λ和ρ分别是用于衡量处理时延和传输时延重要程度的权重因子,物理链路的反馈函数根据式(5)进行定义:
其中如果hp,hw之间的不存在物理链路或物理链路(hp,hw)的带宽资源不足,rn(sn,a)将被赋值为-n;
为了避免产生局部最优策略,引入∈-greedy机制,用下式表示:
这是一种探索和采用之间的折中,∈-greedy将具有∈的概率去探索新的解决方法,同时具有1-∈的概率采用原有的解决方法去做决策。
具体步骤细化如下:
[1]初始化q矩阵和r矩阵qn(sn,a),qe(se,a),rn(sn,a),re(se,a)
[2]迭代开始,进入[3]
[3]从sfc请求集合
[4]依次取sfc请求cu中的每一个虚拟网络功能vnf进行放置训练,进入[5]
[5]产生随机数,如果该随机数小于∈的值,进入[6],否则进入[9]
[6]进行判断,如果rn(sn,a)>0∧re(se,a)>0为真,进入[7]
[7]将当前动作a添加到候选动作集合possibleactions中
[8]从候选动作集合possibleactions中随机产生放置当前vnf的服务器selectserver
[9]进行判断,如果rn(sn,a)>0∧re(se,a)>0为真,进入[10]
[10]将当前动作a添加到候选动作集合possibleactions中
[11]从候选动作集合possibleactions中选择具有最高q值的动作作为放置当前vnf的服务器selectserver
[12]将当前需要放置的vnf放置在selectserver上
[13]更新链路状态空间
[14]更新边缘服务器状态空间
[15]根据
[16]从sfc请求集合
[17]依次取sfc请求cu中的每一个vnf进行放置训练,进入[18]
[18]根据qs(s,a)=qn(sn,a)+qe(se,a)计算qs矩阵
[19]根据qs矩阵进行部署,
[20]计算当前部署情况下的总延时
[21]更新链路状态空间
[22]更新边缘服务器状态空间
[23]判断每一个sfc是都被部署成功,并计算出部署成功的sfc数目
[24]计算平均延迟l=总延迟/成功部署数
[25]返回部署策略
本发明的特点及有益效果是:
实现在保证用户服务质量的前提下,高效部署服务功能链请求,最小化服务功能链到用户的平均延迟。
附图说明:
图1为网络功能虚拟化参考架构图。
图2为一个具体的服务功能链部署过程示意图。
图3为系统模型图。
图4为服务功能链部署过程流程图。
图5为马尔可夫决策过程示意图。
图6、为基于强化学习的服务功能链部署方法实施流程图前部。
图7、为基于强化学习的服务功能链部署方法实施流程图后部。
具体实施方式
本发明将mec中的具有资源限制的服务功能链部署问题进行建模,同时考虑了最小化传输延迟和处理延迟。同时,本发明提出了一种基于强化学习的方法来解决mec中的服务功能链部署问题,以解决传统启发式算法的弊端。
如图2所示,详细展示了两个具体的功能服务链的部署过程。服务功能链1由源节点(s)、网络地址转换(nat)、防火墙(fw)、视频加速器(vac)和目的节点(d)组成201;服务功能链请求2由源节点(s)、防火墙(fw)、深度包检测(dpi)和目的节点(d)202。底层网络由服务器节点203和物理链路204组成,不同的虚拟网络功能将被实例化到不同的服务器节点上,服务器间相互通信进行数据交换则可以组成服务功能链。
如图3所示,本发明考虑在mec场景下部署多个sfc请求到边缘服务器上。在边缘网络中,有多个相互连接的基站,其中一个基站可以被视为网关节点与骨干网络相连接。每一个基站都有一个边缘服务器与之相连以提供计算资源,与网关节点相连的边缘服务器将具有更大的计算能力。来自于用户的sfc请求首先被发送到nfv编排和管理器,然后由nfv编排和管理器做出具体的将sfc中的vnf映射到边缘服务器上的决策。每个sfc请求由源节点、目的节点和一个具有顺序的vnf列表组成。其中,目的节点是距离发送sfc请求的用户最近的基站,源节点任意一个可以产生数据流的基站。在一个sfc请求部署完成之后,数据流将从源节点产生,然后依次按顺序访问vnf,最终到达目的节点。例如,来自于源节点的数据流依次按顺序访问fw和dpi,最终到达了最靠近用户1的基站。不同于在数据中心中部署sfc,在mec中部署sfc将由于其计算资源更靠近用户的特性从而提供给用户超低延迟的服务体验。但由于资源限制问题,以一种更加有效的方式去部署sfc就显得十分必要。
如图4所示,详细说明了sfc的部署过程。步骤401,用户发送sfc请求;步骤402,sfc请求发送至nfv编排和管理器,由nfv编排和管理器进行处理;步骤402,执行nfv编排和管理器制定的部署策略。
本发明针对于上述模型结合强化学习方法提出了一种基于强化学习的服务功能链部署方法。本发明的具体采用一种最典型的强化学习方法——q学习方法去设计算法。如图5所示,强化学习可以被描述为一个马尔可夫决策过程(mdp)。在这个mdp中有一个状态集合s,一个动作集合a,一个转移函数t:s×a×s→[0;1]以及一个反馈函数
当状态由s转移到s′,环境将根据反馈函数给出一个反馈值r,只是一个完成的训练过程。为了达到最终的目标,将进行多次的训练从而获得一个长期的累计反馈值,通常使用
其中,s和a分别代表当前的状态和动作,
下文将对本发明的状态空间设计、动作空间设计、反馈函数设计进行详细说明。
1、状态空间
状态空间包含了所有可能的系统状态,可以用式(2)表示:
sn={sn|sn=(qn,hp)},se={se|se=(qe,hp)}(2)
其中qn=(o1,o2,…,on)是一个n位的0-1变量以表示所有边缘服务器的计算资源的可用性,具体来说,oi=0(oi=1)表示边缘服务器ni的剩余计算资源是大于(小于)预设阈值t的。如果oi=0,则vnf可以被部署到边缘服务器ni上,否则不能部署。qe=(t1,t2,…,tm)是一个m位的0-1变量以表示所有物理链路的带宽资源的可用性,其定义方式与qn类似。
2、动作空间
动作空间定义如式(3):
其中hw代表将被部署vnf的边缘服务器,在系统的初始状态,a包含所有的候选边缘服务器。
3、反馈函数
反馈函数定义如式(4):
其中lmax是所有延迟中的最大值,如果hp,hw之间的不存在物理链路或边缘服务器hw的计算资源不足,rn(sn,a)将被赋值为-n。如果边缘服务器hw的计算资源仍然充足,则rn(sn,a)的值将根据(4)中的式子计算得到。需要注意的是,式中的λ和ρ分别是用于衡量处理时延和传输时延重要程度的权重因子。相似地,物理链路的反馈函数根据式(5)进行定义:
其中如果hp,hw之间的不存在物理链路或物理链路(hp,hw)的带宽资源不足,rn(sn,a)将被赋值为-n。
为了避免产生局部最优策略,本发明引入了∈-greedy机制,可用下式表示:
这是一种探索和采用之间的折中。∈-greedy将具有∈的概率去探索新的解决方法,同时具有1-∈的概率采用原有的解决方法去做决策。
以下将结合图6对本发明的最佳实施方式进行详细说明。
[1]初始化q矩阵和r矩阵qn(sn,a),qe(se,a),rn(sn,a),re(se,a)
[2]迭代开始,进入[3]
[3]从sfc请求集合
[4]依次取sfc请求cu中的每一个vnf进行放置训练,进入[5]
[5]产生随机数,如果该随机数小于∈的值,进入[6],否则进入[9]
[6]进行判断,如果rn(sn,a)>0∧re(se,a)>0为真,进入[7]
[7]将当前动作a添加到候选动作集合possibleactions中
[8]从候选动作集合possibleactions中随机产生放置当前vnf的服务器selectserver
[9]进行判断,如果rn(sn,a)>0∧re(se,a)>0为真,进入[10]
[10]将当前动作a添加到候选动作集合possibleactions中
[11]从候选动作集合possibleactions中选择具有最高q值的动作作为放置当前vnf的服务器selectserver
[12]将当前需要放置的vnf放置在selectserver上
[13]更新链路状态空间
[14]更新边缘服务器状态空间
[15]根据
[16]从sfc请求集合
[17]依次取sfc请求cu中的每一个vnf进行放置训练,进入[18]
[18]根据qs(s,a)=qn(sn,a)+qe(se,a)计算qs矩阵
[19]根据qs矩阵进行部署,
[20]计算当前部署情况下的总延时
[21]更新链路状态空间
[22]更新边缘服务器状态空间
[23]判断每一个sfc是都被部署成功,并计算出部署成功的sfc数目
[24]计算平均延迟l=总延迟/成功部署数
[25]返回部署策略