一种调度和链接虚拟网络功能的方法及系统与流程

文档序号:14574544发布日期:2018-06-02 01:11阅读:145来源:国知局
一种调度和链接虚拟网络功能的方法及系统与流程

本发明属于网络功能虚拟化研究领域,更具体地,涉及一种调度和链接虚拟网络功能的方法及系统。



背景技术:

网络功能虚拟化(Network Function Virtualization,NFV)是利用虚拟化技术将专用网络设备的功能分割成几个功能区块,分别以软件虚拟化方式实现,使之能运行于通用计算平台的技术。通过网络功能虚拟化,运营商不再束缚于专用网络设备的限制,运营成本大为降低,同时网络架构、应用以及业务部署的灵活性及可扩展性大为提高。

网络功能虚拟化平台主要分为四个部分:网络功能虚拟化基础设施层,包括底层硬件和虚拟化支持;虚拟网络功能层;操作支持系统或业务支撑系统;网络功能虚拟化编排管理层,包括网络功能虚拟化编排器、虚拟网络功能管理器、虚拟化基础设施管理器。其中,网络功能虚拟化编排管理层中的编排器是整个平台的策略核心,决定着虚拟网络功能的调度、服务链的选路和部署等决策。

通常,虚拟网络功能以服务链的方式串在一起,用来提供特定的网络服务。由于虚拟网络功能部署在虚拟化平台的物理节点中,当一个网络请求到来的时候,控制层会根据网络请求的具体要求选路,将请求依次导向需要的虚拟网络功能进行处理,最后导向出口位置。由于网络中不可避免存在链路上的传输延迟、节点处理延迟、节点转发延迟,这就面临两个难题:一、如何合理地在各个网络节点上放置虚拟网络功能使得在网络节点承载能力范围内能够有效降低后续服务链的延迟;二、如何高效地调度网络请求、部署服务链,以降低网络请求的处理延迟。这两点归结起来就是虚拟网络功能的放置(placement)和链接(chaining)问题。

目前,针对虚拟网络功能调度中的放置和链接问题还主要停留在理论阶段,并且已经有大量的工作对这个问题进行建模和分析,并提出了许多调度方案或近似最优算法。客观来说,放置问题本身是一个广义匹配问题,没有多项式时间的解法,加上要考虑服务链的链接,问题更加复杂。现有的方案有的是针对特殊的专用网络,方案不具有普遍性;有的在建模的时候做出的假设不太合理,不能有效反映实际情况;有的将问题静态化,不能适应网络环境复杂多变的现实。而在OpenStack、Apex、OPNFV等当前主流的网络功能虚拟化平台中,还主要停留在如何实现虚拟网络功能实时迁移等技术问题上。OpenStack已经能够支持在OpenStack平台灵活调度虚拟网络功能,即使用虚拟机搭载相应的网络功能的软件实现,并利用虚拟机迁移的技术实现调度。

现有的这些虚拟网络功能调度策略虽然有可能在一定程度上解决问题,但是仍然有待在实践中检验。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种调度和链接虚拟网络功能的方法及系统,其目的在于解决现有的方法由于对网络请求中虚拟网络功能采用共同配置的策略导致配置效率低的技术问题。

为实现上述目的,按照本发明的一个方面,提供一种调度和链接虚拟网络功能的方法,包括如下步骤:

根据网络环境信息和网络请求信息构建马尔科夫初始模型;

对马尔科夫初始模型采用随机生成动作和反向传播神经网络方式进行深度增强学习训练获得马尔科夫训练模型;

实时获取网络环境信息和网络请求的信息,并根据网络环境信息、网络请求的信息以及马尔科夫训练模型获得网络请求的虚拟网络功能放置节点和服务链。

优选地,马尔科夫初始模型用(S,A,Ur)表示,其中,S表示状态集合,A表示动作集合,Ur表示回报函数;

状态集合S中网络请求r中第i个虚拟网络功能对应的状态表示为:

r表示当前正在处理的网络请求,i表示当前处理的虚拟网络功能,Cv表示第v个节点的剩余容量,Wv表示第v个节点的剩余带宽,表示网络请求r中第i个虚拟网络功能的容量,Wr表示网络请求r的带宽量,Pr表示网络请求r运行时间,表示在配置完网络请求r中第i个虚拟功能网络后的网络请求r剩余可用延迟,nr表示网络请求r剩余未处理的虚拟网络功能数目,V表示节点集合。

优选地,网络请求r的回报函数为:

其中,表示网络请求r中所有虚拟网络功能的集合的长度,表示网络请求r中第i个虚拟网络功能对应的状态下采取动作a的回报值,

表示网络请求r中第i个虚拟网络功能对应的状态下放置有虚拟网络功能的节点数目,ξ表示网络节点数目的权重,|V|表示放置虚拟网络功能节点集合中节点数目,Pr表示网络请求r运行时间,Wtotal表示网络总带宽,第一种回报函数处理情况是指将虚拟网络功能配置到节点上,且网络请求r中有虚拟网络功能未配置,第二种回报函数处理情况是指将虚拟网络功能配置到节点上,且网络请求r中所有虚拟网络功能均已配置,第三种回报函数处理情况是指拒绝将虚拟网络功能配置到节点上。

优选地,深度增强学习训练包括如下步骤:

步骤21:每隔一定时间获得实时的网络环境信息和实时到达的网络请求信息,获得网络环境信息集合和网络请求信息集合

步骤22:判断r是否等于网络请求信息集合数量若是,将所有的网络请求的服务链作为马尔科夫训练模型输出;否则,则从网络请求信息集合中取出一个网络请求r作为当前处理网络请求,并对马尔科夫初始模型进行初始化;

步骤23:当待分配虚拟网络功能数量nr大于零时,进入步骤24,当nr=0时,则将网络请求r中所有虚拟网络功能的动作结果输出,作为网络请求r的服务链,令r=r+1,并进入步骤22;

步骤24:设置nr=nr-1;产生一个随机数p,若p>P,则进入步骤25,否则,进入步骤26;

步骤25:随机拒绝或挑选一个节点作为网络请求r中第i个虚拟网络功能的放置节点,生成网络请求r中第i个虚拟网络功能的动作a,获得网络请求r中第i个虚拟网络功能的执行动作a的回报值,并进入步骤27;

步骤26:根据网络请求r中第i-1个虚拟网络功能对应的状态的状态转移模型和网络请求r中第i个虚拟网络功能对应的状态进行反向传播神经网络训练,生成网络请求r中第i个虚拟网络功能的动作a,并网络请求r中第i个虚拟网络功能的执行动作a的回报值;

步骤27:根据网络请求r中第i个虚拟网络功能的执行动作a更新在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟节点的剩余容量、节点的剩余带宽以及网络请求r的回报值,并进入步骤23;

其中,网络请求r中第i-1个虚拟网络功能对应的状态的状态转移模型根据网络请求r中第i-1个虚拟网络功能对应的状态、网络请求r中第i-1个虚拟网络功能对应的状态的动作、网络请求r中第i-1个虚拟网络功能对应的状态执行该动作的回报值以及网络请求r中第i个虚拟网络功能对应的状态构建。

优选地,步骤27包括如下步骤:

判断动作a是否表示节点能够接收网络请求r第i个虚拟网络功能若动作a表示节点能够接收网络请求r第i个虚拟网络功能

则根据公式更新在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟

根据公式更新第a个节点的剩余容量;

根据公式更新第a个节点的剩余带宽;

根据公式更新网络请求r的回报值:

否则,不对节点剩余带宽和节点剩余计算资源更新,配置完第i个虚拟网络功能后网络请求r的回报值为配置完第i-1个后网络请求r的回报值;最后进入步骤23。

优选地,深度增强学习训练包括如下步骤:

步骤31:每隔一定时间获得实时的网络环境信息和实时到达的网络请求信息,获得网络环境信息集合和网络请求信息集合

步骤32:判断r是否等于网络请求信息集合数量若是,则进入步骤21等待;否则,则从网络请求信息集合中取出一个网络请求r作为当前处理网络请求,并对马尔科夫初始模型进行初始化;

步骤33:当待分配虚拟网络功能数量nr大于零时,进入步骤24,当nr=0时,则将网络请求r中所有虚拟网络功能的动作结果输出,作为网络请求r的服务链,令r=r+1,并进入步骤22;

步骤34:设置nr=nr-1;利用马尔科夫训练模型生成网络请求r中第i个虚拟网络功能的动作a;

步骤35:根据网络请求r中第i个虚拟网络功能的执行动作a更新在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟节点的剩余容量以及节点的剩余带宽,并进入步骤33。

优选地,步骤35包括如下步骤:

判断动作a是否表示节点能够接收网络请求r第i个虚拟网络功能如果动作a表示节点能够接收网络请求r第i个虚拟网络功能

则根据公式更新在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟

根据公式更新第a个节点的剩余容量;

根据公式更新第a个节点的剩余带宽;

否则,仅更新剩余可用延迟,不对节点剩余带宽和节点剩余容量更新,最后进入步骤33。

作为本发明的另一方面,本发明提供一种调度和链接虚拟网络功能的方法的系统,包括:

网络特征输入模块,用于获取实时的网络环境信息和实时到达的网络请求的信息;

深度增强学习模块,其输入端与输出端连接,用于根据实时网络环境信息和到达的网络请求信息构建马尔科夫初始模型,并利用反向传播神经网络和随机生成动作法训练马尔科夫初始模型获得马尔科夫训练模型;

动作输出模块,其第一输入端与网络特征输入模块的输出端连接,其第二输入端与深度增强学习模块的输出端连接,用于根据马尔科夫训练模型、实时的网络环境信息以及实时到达的网络请求的信息获得网络请求的部署结果和服务链;

控制模块,其输入端与动作输出模块的输出端连接,用于根据网络请求的部署结果和服务链对到来的网络请求进行接收并部署到网络环境中,并部署结果反馈至深度增强学习模块。

优选地,网络环境信息包括网络拓扑信息、各个网络节点剩余计算资源、各个网络节点带宽信息、虚拟网络功能种类及虚拟网络功能资源占用信息,网络请求信息包括网络请求的运行时间、最大延迟时间、带宽需求及服务链信息。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

1、由于采用了将网络请求的服务链的各个虚拟网络功能分状态依次计算处理的方式,一方面简化了动作,将动作空间控制在节点数目的规模,有利于深度增强学习方法的实施和神经网络的训练,动作空间小,便于训练神经网络,尽快收敛,另一方面可以就拒绝或不合理动作进行回溯,简化了状态转移的过程,简化了回报函数的计算和累加。

2、由于采用随机生成和反向传播神经网络训练马尔科夫初始模型,并根据回报函数进行无监督的学习,能够在训练数据、指导信息稀少的条件下有效地训练深度神经网络,从而使复杂的虚拟网络功能调度和链接问题得到求解。

3、由于采用了实时的算法架构,使得网络功能虚拟化平台能够摆脱传统的静态算法的限制,实现网络请求的高效实时动态调度,更加切合生产环境需求,具有很强的实用性和突破性。

附图说明

图1为本发明提供的调度和链接虚拟网络功能的方法的流程图;

图2为本发明提供的调度和链接虚拟网络功能的方法中训练马尔科夫初始模型的流程图;

图3为本发明中提供的调度和链接虚拟网络功能的方法中根据马尔科夫训练模型获得网络请求的配置和服务链的流程图;

图4为本发明提供的调度和链接虚拟网络功能的系统的原理框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1为本发明提供的一种调度和链接虚拟网络功能的方法的流程图,包括以下步骤:

步骤1:根据网络环境信息和网络请求信息构建马尔科夫初始模型(S,A,Ur),其中,S表示状态集合,A表示动作集合,Ur表示回报函数。

状态集合中网络请求r中第i个虚拟网络功能对应的状态表示为:

每个状态是一个长度固定为(2|V|+5)一维向量,且其中,r表示当前正在处理的网络请求,Cv表示第v个节点的剩余容量,Wv表示第v个节点的剩余带宽,表示网络请求r中第i个虚拟网络功能的容量,nr表示网络请求r剩余未处理的虚拟网络功能数目,Wr表示网络请求r的带宽量,表示在配置完网络请求r中第i个虚拟功能网络后的网络请求r剩余可用延迟。

动作集合中动作取值为a∈{0,1,2,…,|V|},其中,当a为0,表示拒绝当前请求下的虚拟网络功能当a为1到|V|,则表示将当前请求下的虚拟网络功能放到第a节点上。

网络请求r的回报函数为:

其中,表示网络请求r中所有虚拟网络功能的集合的长度,Fr表示网络请求r对应的服务链,Fr是由个虚拟网络功能构成的序列,其中每个虚拟网络功能都需要部署到一个网络节点上,并占用该节点计算资源网络请求r的流量必须依次经过该序列中的虚拟网络功能处理。

网络请求r中第i个虚拟网络功能对应的状态下采取动作a的回报通过回报函数表示:

第一种情况是指将虚拟网络功能配置到节点上,且网络请求r中有虚拟网络功能未配置,第二种情况是指将虚拟网络功能配置到节点上,且网络请求r中所有虚拟网络功能均已配置,第三种情况是指拒绝将虚拟网络功能配置到节点上,其中,表示网络请求r中第i个虚拟网络功能对应的状态下放置有虚拟网络功能的节点数目,ξ表示网络节点数目的权重,Pr表示网络请求运行时间,Wtotal表示网络总带宽。

步骤2:对马尔科夫初始模型采用随机生成动作和反向传播神经网络方式进行深度增强学习训练获得马尔科夫训练模型,如图2所示,具体包括如下步骤。

步骤21:每隔一定时间获得实时的网络环境信息和实时到达的网络请求信息,获得网络环境信息集合和网络请求信息集合其中,时间间隔根据用户需求设定;

步骤22:当网络请求信息集合不为空集时,判断r是否等于网络请求信息集合数量若是,将所有的网络请求的服务链作为马尔科夫训练模型输出;否则,则从网络请求信息集合中取出一个网络请求r作为当前处理网络请求,并初始化状态s中待分配虚拟网络功能数量,让待分配虚拟网络功能数量为当前处理网络请求r中虚拟网络功能的数量,即当前处理的虚拟网络功能i等于1,初始化状态s中网络请求r剩余可用延迟让网络请求r剩余可用延迟为网络请求最大延迟时间Tr

当网络请求信息集合为空集时,进入步骤21中等待。

步骤23:当待分配虚拟网络功能数量nr>0时,进入步骤24,当nr=0时,则将网络请求r中所有虚拟网络功能的动作结果输出,作为网络请求r的服务链,令r=r+1,并进入步骤22;

步骤24:设置nr=nr-1;产生一个随机数p,若p>P,则进入步骤25,否则,进入步骤26;P为采用随机生成动作方式进行深度增强学习训练的概率阈值,其值根据用户需求设定。

步骤25:随机拒绝或挑选一个节点作为当前虚拟网络功能的放置节点,并生成当前虚拟网络功能的动作a;并根据回报函数获得当前虚拟网络功能的动作a实现状态转移的回报值;

步骤26:构建网络请求r中第i-1个虚拟网络功能对应的状态的状态转移模型其中,网络请求r中第i-1个虚拟网络功能对应的状态通过动作a后转移到网络请求r中第i-1个虚拟网络功能对应的状态并通过Tensorflow的feed_dict方法传入深度神经网络,当s是首个状态时,令U=0,根据网络请求r中第i-1个虚拟网络功能对应的状态的状态转移模型、网络请求r中第i个虚拟网络功能对应的状态进行反向传播神经网络训练,生成当前虚拟网络功能的动作a;并根据回报函数获得当前虚拟网络功能的动作a实现状态转移的回报值。

深度神经网络是一个二层或三层反向传播神经网络(Back Perceptron Neural Network),其层数可以用参数调节。深度神经网络的输入层为一维向量,长度为状态向量长度|s|,输出层宽度为|V|+1,依次对应动作集合A中的一个动作。

步骤27:判断动作a是否表示节点能够接收网络请求r第i个虚拟网络功能如果动作a表示节点能够接收网络请求r第i个虚拟网络功能则根据如下公式更新在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟

其中,m表示网络请求r第i-1个虚拟网络功能放置节点,Tm,a表示网络请求r第i-1个虚拟网络功能放置节点到网络请求r第i个虚拟网络功能放置节点之间通信延迟,当是第一个时,m=a,λr表示网络请求r包到达率;μfr表示网络请求r服务速率。

根据如下公式更新第a个节点的剩余容量:

其中,表示第l次更新后的第a个节点的剩余容量。

当m≠a时,即当前虚拟网络功能放置的节点与上一个虚拟网络功能放置的节点不一样,根据如下公式更新节点剩余带宽:

其中,表示第l次更新后的第a个节点的剩余带宽。

当m=a时,即当前虚拟网络功能放置的节点与上一个虚拟网络功能放置的节点一样时,则不更新第a个节点剩余带宽。

根据如下公式更新网络请求r的回报值:

其中,为第i次更新后的网络请求r的回报值,表示网络请求r中第i个虚拟网络功能对应的状态在经过动作a转移后的回报值。

通过上述公式更新完在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟第a个节点的剩余容量、节点剩余带宽令以及网络请求r的回报值后,进入步骤23。

否则,即动作a表示拒绝或动作a所示放置不满足延迟限制或剩余计算资源不够网络请求r第i个虚拟网络功能放置;仅利用上述公式对剩余可用延迟进行更新,不对节点剩余带宽和节点剩余计算资源更新,处理完第i个虚拟网络功能后网络请求r的回报值为处理完第i-1个后网络请求r的回报值;最后进入步骤23;

步骤3:实时获取网络环境信息和网络请求的信息,并根据获取网络环境信息、网络请求的信息以及马尔科夫训练模型获得网络请求的虚拟网络功能放置节点和服务链。如图3所示,具体包括如下步骤:

步骤31:每隔一定时间获得实时的网络环境信息和实时到达的网络请求信息,获得网络环境信息集合和网络请求信息集合

步骤32:当网络请求信息集合不为空集时,判断r是否等于网络请求信息集合数量若是,进入步骤31,继续等待网络请求,否则,从网络请求信息集合中取出一个网络请求r作为当前处理网络请求,并对马尔科夫训练模型进行初始化,获得网络请求r的状态集,包括初始化状态s中待分配虚拟网络功能数量,让待分配虚拟网络功能数量为当前处理网络请求r中虚拟网络功能的数量,即当前处理的虚拟网络功能i等于1,初始化状态s中配置完网络请求r中第i个虚拟功能网络后的网络请求r剩余可用延迟让配置完网络请求r中第i个虚拟功能网络后的网络请求r剩余可用延迟为网络请求最大延迟时间Tr,初始化状态s中网络请求r中第i个虚拟网络功能的容量Wr表示网络请求r的带宽量,初始化当前处理的虚拟网络功能为1。

步骤33:当待分配虚拟网络功能数量nr>0时,进入步骤34,当nr=0时,则将网络请求r中所有虚拟网络功能的动作结果输出,作为网络请求r的服务链,令r=r+1,并进入步骤32;

步骤34:设置nr=nr-1;对网络请求r中第i个虚拟网络功能对应的状态s进行马尔科夫训练模型,生成当前虚拟网络功能的动作a;并根据回报函数获得当前虚拟网络功能的动作a实现状态转移的回报值。

步骤35:判断动作a是否表示节点能够接收网络请求r第i个虚拟网络功能如果动作a表示节点能够接收网络请求r第i个虚拟网络功能则根据如下公式更新在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟

其中m表示网络请求r第i-1个虚拟网络功能放置节点,当是第一个时,m=a。λr表示网络请求r包到达率;表示网络请求r服务速率;

根据如下公式更新第a个节点的剩余容量:

其中,表示第l次更新后的第a个节点的剩余容量。

当m≠a时,即当前虚拟网络功能放置的节点与上一个虚拟网络功能放置的节点不一样,根据如下公式更新节点剩余带宽:

其中,表示第l次更新后的第a个节点的剩余带宽。

当m=a时,即当前虚拟网络功能放置的节点与上一个虚拟网络功能放置的节点一样时,则不更行第a个节点剩余带宽。

通过上述公式更新完在配置完网络请求r中第i个虚拟功能网络后的剩余可用延迟第a个节点的剩余容量以及节点剩余带宽,进入步骤32。

否则,即动作a表示拒绝或动作a所示放置不满足延迟限制或剩余计算资源不够网络请求r第i个虚拟网络功能放置;仅利用上述公式对剩余可用延迟进行更新,不对节点剩余带宽和节点剩余计算资源更新,进入步骤33。

本发明提供的调度和链接虚拟网络功能的方法中,根据网络环境信息和网络请求信息构建马尔科夫初始模型,对的网络请求,按照每个状态转移处理一个虚拟网络功能的方式,顺次取出中虚拟网络功能和网络环境实时信息构建状态s,并以一定概率将状态s输入神经网络的输入层,然后根据神经网络的输出层求出动作a,最后计算回报函数的结果U(s,a),并用该虚拟网络功能配置在该节点上的回报值更新网络请求r的回报值。通过对状态s执行动作a生成下一个状态s*继续循环,同时将状态转移(s,a,U,s*)用传入深度神经网络训练函数进行反馈训练,用于获得下一个状态s*的动作。

作为本发明的另一方面,本发明提供一种调度和链接虚拟网络功能的系统,图4为该系统的结构示意图,该系统包括:

网络特征输入模块,用于获取实时的网络环境信息和实时到达的网络请求的信息;

深度增强学习模块,其输入端与输出端连接,用于根据实时网络环境信息和到达的网络请求信息构建马尔科夫初始模型,并利用反向传播神经网络和随机生成动作法训练马尔科夫初始模型获得马尔科夫训练模型;

动作输出模块,其第一输入端与网络特征输入模块的输出端连接,其第二输入端与深度增强学习模块的输出端连接,用于根据马尔科夫训练模型、实时的网络环境信息以及实时到达的网络请求的信息获得网络请求的部署结果和服务链;

控制模块,其输入端与动作输出模块的输出端连接,用于根据网络请求的部署结果和服务链对到来的网络请求进行接收并部署到网络环境中,并部署结果反馈至深度增强学习模块。

网络特征输入模块用于为深度增强学习计算模块提供实时的网络环境信息和网络请求信息,其中网络环境信息包括网络拓扑信息、各个网络节点剩余计算资源、各个网络节点带宽信息、虚拟网络功能种类及虚拟网络功能资源占用信息,网络请求信息包括网络请求的运行时间、最大延迟时间、带宽需求及服务链信息。

网络拓扑信息包括网络节点集合V、网络节点之间的通信延迟Tu,v,u,v∈V(Tv,v=0)、网络总带宽Wtotal;对Cv表示该节点剩余计算资源,Wv表示该节点剩余带宽;Fr表示虚拟网络功能集合,对表示该虚拟网络功能的资源占用,表示其服务速率。

网络请求信息包括Pr表示网络请求r运行时间,Tr表示网络请求r最大延迟时间,Wr表示网络请求r带宽需求,λr表示网络请求r包到达率,表示网络请求r对应的服务链,是由个虚拟网络功能构成的序列,其中每个虚拟网络功能都需要部署到一个网络节点上,并占用该节点计算资源网络请求r的流量必须依次经过该序列中的虚拟网络功能处理。

控制模块包含网络功能管理器和虚拟化基础设施管理器,用于将深度增强学习计算模块计算产生的虚拟网络功能放置策略和服务链的链接策略转化为一系列控制命令,交由网络功能管理器和虚拟化基础设施管理器具体执行,并将调度结果反馈给深度增强学习计算模块。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1