本发明涉及软件定义网络中虚拟网络的重配置问题,特别涉及一种面向sdn的基于禁忌搜索的虚拟网络重配置方法。
背景技术
随着互联网的迅速发展,各种各样的新业务不断涌现,传统的网络架构已无法满足当前互联网飞速发展的要求,从而导致网络僵化现象严重。
网络虚拟机技术为解决网络僵化问题提供了有效的途径。网络虚拟化可使多个虚拟网络共享底层网络资源,即通过虚拟网络映射算法将底层网络资源分配给每一个虚拟网络。虚拟网络映射指的是在资源约束条件下,将虚拟网络中若干个虚拟节点和虚拟链路映射到底层物理网络的过程。由于底层网络资源有限,如何将有限的资源合理分配给虚拟网络,提高底层网络资源利用率,接受更多的虚拟网络,是虚拟网络映射算法主要解决的问题之一。
虚拟网络映射算法是静态的,虚拟网络一旦映射成功,其生存期间所分配的资源将不再改变。但随着像虚拟网络生命周期结束,虚拟网络离开,以及其它虚拟网络在某一时刻到来这样的动态变化,底层网络资源可能会出现碎片化现象,从而,即使所剩的总物理资源足够多,仍会导致较多的虚拟网络被拒绝。因而,为了减轻底层网络资源的碎片化程度,使底层网络负载均衡,提高虚拟网络的接受率,需要将已经映射的虚拟网络进行重配置。重配置指的是改变虚拟网络在物理网络上的映射状态,例如虚拟节点从某个物理节点迁移到另外一个物理节点上。根据重配置策略的不同,可将重配置分为两种情况,一种指的是周期性重配置,即每隔一个固定的时间进行一次重配置;另一种情况指的是基于事件的重配置,例如当虚拟网络被拒绝时触发重配置,又如当虚拟网络离开时触发重配置。
软件定义网络(software-definednetwork,sdn)是一种新兴的网络体系架构,其由应用层、北向接口、控制层、南向接口和数据层五部分组成。其中应用层通过北向接口为控制层提供通用的开放编程接口,控制层中的控制器通过南向接口对数据层进行编程控制,实现数据层的转发等网络行为。转发与控制分离、可编程地集中控制、支持网络虚拟化等特点,使得sdn能够对网络进行集中管理,实现底层网络资源的灵活调度和按需分配。
禁忌搜索算法是一种元启发式随机搜索算法,它从某个初始的可行解出发,沿着特定的搜索方向进行试探,选择实现使特定目标函数值变化最多的移动。为了防止陷入局部最优,禁忌搜索采用了一种灵活的“记忆”技术,记录和选择已经优化的过程,进而指导下一步的搜索方向。
技术实现要素:
本发明的目的在于针对软件定义网路中虚拟网络的重配置问题,提出一种面向sdn的基于禁忌搜索的虚拟网络重配置方法,该方法为每个已经映射的虚拟节点赋一个重配置优先级,优先级越高,被迁移的可能性越大,另外该方法使用禁忌搜索算法,通过优化适配值函数,使得迁移虚拟节点付出的代价最小,并使得物理网络负载均衡,从而接受更多的虚拟网络请求。
为了达到上述目的,本发明采用了以下技术方案:
一种面向sdn的基于禁忌搜索的虚拟网络重配置方法,当某个虚拟网络离开,且物理网络中含有θ-拥挤的物理节点或物理链路时,确定虚拟节点的重配置优先级;然后确定禁忌搜索算法的适配值函数,通过优化该函数,求得虚拟网络重配置的最优解;最后确定禁忌搜索算法的初始解、邻域解、禁忌表、特赦准则以及终止准则,并在满足约束条件的情况下实现虚拟网络的重配置。
本发明进一步的改进在于,θ-拥挤的物理节点定义为:
θ-拥挤的物理链路定义为:
其中,c(nv)表示虚拟节点nv所需的cpu资源,c(ns)表示物理节点ns的cpu总资源,f(nv)表示虚拟节点nv所需的流表资源,f(ns)表示物理节点ns的流表总资源;b(lv)表示虚拟链路lv所需的带宽资源,b(ls)表示物理链路ls总带宽资源;θ为拥挤阈值。
本发明进一步的改进在于,确定虚拟节点重配置优先级的具体过程如下:虚拟节点所占θ-拥挤的物理节点和物理链路的项数
其中,
本发明进一步的改进在于,确定禁忌搜索算法的适配值函数的具体过程如下:
定义θ-拥挤的物理节点集和θ-拥挤的物理链路集:
定义虚拟网络重配置代价:
φ=w1φn+w2φl
其中,φn表示迁移虚拟节点付出的代价,中l表示迁移虚拟链路付出的代价,w1,w2为权重,且w1,w2∈(0,1),w1+w2=1;
适配值函数定义为:
其中gs为物理网络,q为虚拟节点映射解集,α1,α2,α3为权重值。
本发明进一步的改进在于,确定禁忌搜索算法的初始解的具体过程为:由现存的任意一个虚拟网络映射算法进行确定。
本发明进一步的改进在于,确定禁忌搜索算法的邻域解的具体过程为:由迁移某个虚拟节点产生的新的虚拟节点映射解集作为邻域解,令候选解为邻域解的子集,限定候选解大小为nmax,候选解即为前nmax个邻域解。
本发明进一步的改进在于,确定禁忌搜索算法的特赦准则的具体过程为:如果某个禁忌对象对应候选解的适配值小于当前最优适配值,则解禁该候选解作为当前解,并将其作为当前最优解,更新禁忌表,并将该禁忌对象重新加入禁忌表中;如果候选解全部被禁时,则解禁适配值最小的候选解作为当前解,更新禁忌表,并将对应的禁忌对象重新加入禁忌表中。
本发明进一步的改进在于,确定禁忌搜索算法的禁忌表的具体过程为:假设虚拟节点nv从映射的物理节点
本发明进一步的改进在于,确定禁忌搜索算法的终止准则的具体过程为:如果当前最优解在连续迭代itermax次后始终保持不变,则禁忌搜索算法终止;约束条件为:
(1)同一虚拟网络中的虚拟节点不能映射在同一个物理节点上;
(2)物理节点所剩的cpu资源以及流表资源大于等于虚拟节点的cpu资源以及流表资源。
本发明进一步的改进在于,具体过程如下:
(1)虚拟节点排序
输入:物理网络gs=(ns,ls),虚拟节点映射解集q,拥挤阈值θ;
输出:排序后的虚拟节点集合η;
step1初始化θ-拥挤的物理节点和物理链路集合
step2如果
step3虚拟节点依据重配置优先级的大小进行降序排序;
step4输出降序排序后的虚拟节点集合η;
(2)确定邻域解
输入:物理网络gs=(ns,ls),虚拟节点映射解集q,拥挤阈值θ,降序排序后的虚拟节点集合η,候选解大小nmax;
输出:通过虚拟节点迁移形成的虚拟节点映射解集q的邻域解n(q);
step1初始化邻域解为空
step2如果|n(q)|≤nmax,转step3,否则转step5;
step3选择降序排序后的虚拟节点集合η中下一个虚拟节点nv,查找其映射的物理节占
step4n(q)←n(q)∪qnew,η←η\nv,转step2;
step5输出邻域解n(q);
(3)迁移虚拟节点
输入:物理网络gs=(ns,ls),虚拟节点映射解集q;
输出:通过迁移虚拟节点形成的新的映射解集qnew;
step1初始化
step2构建新的物理网络
step3从新的物理网络gs′中找出满足约束条件的物理节点集ns′,若
step4若ps存在,则
step5输出映射解集qnew;
(4)禁忌搜索算法
输入:物理网络gs=(ns,ls),虚拟节点映射解集q;
输出:新的虚拟节点映射解集q*,使得f(gs,q*)≤f(gs,q);
step1初始化当前映射解集qnow←q,计算f(gs,qnow);初始化最优映射解集q*←qnow,最优适配值f(gs,q*)←f(gs,qnow);初始化禁忌表
step2如果iter≤itermax,转step3,否则转step6;
step3求邻域解n(qnow);
step4从邻域解n(qnow)中选取非禁忌且适配值最小的q′1作为最佳候选解q′;或者如果存在适配值小于当前最优适配值的禁忌解q′2,则解禁q′2并令其为最佳候选解q′;又或者候选解全部被禁时,则选择适配值最小的禁忌解q′3,解禁q′3并令其为最佳候选解q′;置qnow←q′,更新禁忌表tl;
step5如果qnow对应的适配值小于当前最优适配值,则q*←qnow,f(gs,q*)←f(gs,qnow),iter←0,否则iter←iter+1;转step3;
step6输出新的虚拟节点映射解集q*。
与现有技术相比,本发明至少具有以下有益效果,本发明确定进行虚拟网络重配置的时机为:当某个虚拟网络离开,且物理网络中含有θ-拥挤的物理节点或物理链路时触发虚拟网络重配置。进行虚拟网络重配置时先给每个虚拟节点赋一个重配置优先级,并按照重配置优先级的大小将虚拟节点进行降序排序,优先级高的虚拟节点优先被迁移,接着通过优化禁忌搜索的适配值函数,使用禁忌搜索算法完成虚拟网络的重配置,可搜索全局最优解,且减少物理网络中θ-拥挤的物理节点和物理链路的数量,使得物理网络负载均衡,进而可提高虚拟网络的接受率。
另外,由于周期性重配置与重配置间隔有很大的关系,当重配置间隔较小时,导致重配置方法过于频繁的执行,因而不仅影响物理网络的稳定性,而且加大了重配置付出的代价;而当重配置间隔较大时,很难改善物理网络的负载情况,从而导致较多的虚拟网络被拒绝。因此,为了避免过于频繁的执行重配置方法,本发明提出当虚拟网络离开时,且物理网络中含有θ-拥挤的物理节点或物理链路时才进行虚拟网络的重配置。
此外,一方面由于进行虚拟网络重配置需要付出代价,而通过优化本发明提出的适配值函数,可使得虚拟网络重配置所付出的代价最小。另一方面由于重配置整个虚拟网络需要付出更多的代价,本发明提出只对虚拟节点进行重配置,即进行虚拟节点的迁移,所以代价较小。
进一步的,候选解作为邻域解的子集,其大小会影响禁忌搜索算法的性能,即候选解过大时,搜索算法的效率和准确性会受到影响,而候选解过小时,会导致搜索算法过早的收敛,考虑到此,本发明只选取前nmax个邻域解作为候选解。为了产生前nmax个邻域解,本发明不会迁移所有的虚拟节点,而是将虚拟节点按照重配置优先级的大小进行降序排序,优先处理占有最多拥挤项的虚拟节点,进而限定被迁移的虚拟节点的个数,避免候选解过大或者过小。
附图说明
图1为产生邻域解的流程图。
图2为本发明的虚拟网络重配置方法的流程图。
具体实施方式
下面结合附图对本发明进行详细的描述。
(一)虚拟网络重配置策略
本发明提出的虚拟网络重配置策略主要包括确定虚拟网络重配置时机策略,以及基于迁移虚拟节点确定禁忌搜索算法邻域解的策略。
(1)虚拟网络重配置时机
当某个虚拟网络离开,且物理网络中含有θ-拥挤的物理节点或物理链路时才进行虚拟网络的重配置。
其中θ-拥挤的物理节点定义为:
其中θ-拥挤的物理链路定义为:
其中c(nv)表示虚拟节点nv所需的cpu资源,c(ns)表示物理节点ns的cpu总资源,f(nv)表示虚拟节点nv所需的流表资源,f(ns)表示物理节点ns的流表总资源;b(lv)表示虚拟链路lv所需的带宽资源,b(ls)表示物理链路ls总带宽资源;θ为拥挤阈值。
(2)确定禁忌搜索算法的邻域解
参见图1,求解邻域解的具体流程如下:
求解邻域解之前,需要先计算虚拟节点的重配置优先级,优先级定义如下:
虚拟节点所占θ-拥挤的物理节点和物理链路的项数
其中
优先级的准则为:
将虚拟节点按照重配置优先级进行降序排序:
(2.1)虚拟节点排序
输入:物理网络gs=(ns,ls),虚拟节点映射解集q,拥挤阈值θ;
输出:排序后的虚拟节点集合η;
step1初始化θ-拥挤的物理节点和物理链路集合
step2如果
step3虚拟节点依据重配置优先级的大小进行降序排序;
step4输出降序排序后的虚拟节点集合η。
确定禁忌搜索算法的邻域解的具体过程为:由迁移某个虚拟节点产生的新的虚拟节点映射解集作为邻域解,令候选解为邻域解的子集,限定候选解大小为nmax,候选解即为前nmax个邻域解。由于邻域解是由迁移虚拟节点产生的,而迁移虚拟节点需要满足以下的约束条件:
(a)同一虚拟网络中的虚拟节点不能映射在同一个物理节点上;
(b)物理节点所剩的cpu资源以及流表资源需要大于等于虚拟节点所需的cpu资源以及流表资源。
产生邻域解的具体步骤如下:
(2.2.1)确定邻域解
输入:物理网络gs=(ns,ls),虚拟节点映射解集q,拥挤阈值θ,降序排序后的虚拟节点集合η,候选解大小nmax;
输出:通过虚拟节点迁移形成的虚拟节点映射解集q的邻域解n(q)
step1初始化邻域解为空
step2如果|n(q)|≤nmax,转step3,否则转step5;
step3选择降序排序后的虚拟节点集合η中下一个虚拟节点nv,查找其映射的物理节占
step4n(q)←n(q)∪qnew,η←η\nv,转step2;
step5输出邻域解n(q)。
(2.2.2)迁移虚拟节点
输入:新的物理网络gs=(ns,ls),虚拟节点映射解集q
输出:通过迁移虚拟节点形成的新的映射解集qnew
step1初始化
step2构建新的物理网络
step3从新的物理网络gs′中找出满足约束条件的物理节点集ns′,若
step4若ps存在,则qnew←nv由
step5输出映射解集qnew。
(二)虚拟网络重配置方法
为了使物理网络负载均衡,从而接受更多的虚拟网络映射请求,需要尽可能的减少物理网络中拥挤的物理节点和物理链路的数量;另外,由于虚拟网络重配置需要付出代价,包括迁移虚拟节点付出的代价以及迁移虚拟节点邻接虚拟链路付出的代价,所以重配置时需要考虑使付出的代价最小。
图2为使用禁忌搜索算法进行虚拟网络重配置的流程图,参见图2,确定禁忌搜索算法的优化目标函数,即适配值函数:
定义θ-拥挤的物理节点集和θ-拥挤的物理链路集:
定义虚拟网络重配置代价:
φ=w1φn+w2φl
其中φn表示迁移虚拟节点付出的代价,φl表示迁移虚拟链路付出的代价,w1,w2为权重,且w1,w2∈(0,1),w1+w2=1。
适配值函数定义为:
其中gs为物理网络,q为虚拟节点映射解集,例如(nv,ns)∈q表示虚拟节点nv映射在物理节点ns上,α1,α2,α3为权重值,并且为实数。
确定禁忌搜索算法的初始解的具体过程为:由现存的任意一个虚拟网络映射算法进行确定。
确定禁忌搜索算法的禁忌表的具体过程为:假设虚拟节点nv从映射的物理节点
确定禁忌搜索算法的特赦准则的具体过程为:如果某个禁忌对象对应候选解的适配值小于当前最优适配值,则解禁该候选解作为当前解,并将其作为当前最优解,更新禁忌表,并将该禁忌对象重新加入禁忌表中;如果候选解全部被禁时,则解禁适配值最小的候选解作为当前解,更新禁忌表,并将对应的禁忌对象重新加入禁忌表中。
确定禁忌搜索算法的终止准则的具体过程为:如果当前最优解在连续迭代itermax次后始终保持不变,则禁忌搜索算法终止。
禁忌搜索算法具体流程如下:
输入:物理网络gs=(ns,ls),虚拟节点映射解集q;
输出:新的虚拟节点映射解集q*,使得f(gs,q*)≤f(gs,q);
step1初始化当前映射解集qnow←q,计算f(gs,qnow);初始化最优映射解集q*←qnow,最优适配值f(gs,q*)←f(gs,qnow);初始化禁忌表
step2如果iter≤itermax,转step3,否则转step6;
step3求邻域解n(qnow);
step4从邻域解n(qnow)中选取非禁忌且适配值最小的q′1作为最佳候选解q′;或者如果存在适配值小于当前最优适配值的禁忌解q′2,则解禁q′2并令其为最佳候选解q′;又或者候选解全部被禁时,则选择适配值最小的禁忌解q′3,解禁q′3并令其为最佳候选解q′;置qnow←q′,更新禁忌表tl;
step5如果qnow对应的适配值小于当前最优适配值,则q*←qnow,f(gs,q*)←f(gs,qnow),iter←0,否则iter←iter+1;转step3;
step6输出新的虚拟节点映射解集q*。
本发明主要包括基于虚拟节点迁移确定邻域解的策略,基于θ-拥挤的物理节点和物理链路的虚拟网络重配置触发机制策略,以及确定禁忌搜索算法的适配值函数内容,确定禁忌搜索算法的初始解、禁忌表、特赦准则和终止准则的过程,另外,本发明为每一个虚拟节点还赋了一个重配置优先级。
为解决利用虚拟网络重配置改善静态的虚拟网络映射导致的物理网络资源负载不均衡问题,本发明通过优化禁忌搜索的适配值函数,从而减少物理网络中拥挤的物理节点和物理链路数量。进一步,通过优化适配值函数,还可以减少虚拟网络重配置所付出的代价。另外,为了避免禁忌搜索算法的候选解过大或者过小,本发明为每个虚拟节点赋一个重配置优先级,从而限定候选解的数量。本发明提出的面向sdn的基于禁忌搜索的虚拟网络重配置方法,与现有虚拟网络重配置方法相比,能够搜索全局最优解,使物理网络负载均衡,提高虚拟网络的接受率,并使得虚拟网络重配置所付出的代价最小。