APP下载

虚拟化环境下高效资源映射与复用机制

2023-05-12张婷婷王兴伟屈志豪陈佳豪张晓宇

小型微型计算机系统 2023年5期
关键词:网络服务实例链路

易 波,张婷婷,王兴伟,屈志豪,陈佳豪,张晓宇

1(东北大学 计算机科学与工程学院,沈阳 110169) 2(中国电子科技集团公司 第四十七研究所,沈阳 110000)

1 引 言

随着网络技术的不断更新换代,传统的网络架构由于缺乏灵活的资源调度以及适配机制已经不能满足当前用户对于现在网络服务功能的需求.为解决这一挑战,网络功能虚拟化(Network Function Virtualization,NFV)和软件定义网络(Software Defined Network,SDN)成为下一代网络体系变革的关键技术[1].

NFV主要为设计、部署和管理网络服务提供了一种新的方式,其核心思想是将网络功能与其所依赖的专用硬件解耦,这意味着网络功能可以作为普通的软件实例分配给网络运营商,从而提高了网络服务的灵活性,降低了运营商的运营成本.根据ONF给出的定义,SDN是一种网络控制与转发解耦的新兴的网络结构,并且拥有直接可编程的特性[2].SDN的网络可编程特性为NFV的实现提供了基础.随着5G等技术的实现与推广,NFV成为了缓解这些问题的解决方案之一[3].

以5G为例,服务功能链(Service Function Chaining,SFC)支持根据需求动态灵活地分配网络资源,从而为复杂的5G通信场景定制网络切片.SFC是由NFV网络中的一组虚拟网络功能(Virtualized Network Function,VNF)按照一定的需求和依赖关系组合在一起的链,为用户提供端到端的服务[4].因此,VNF的部署工作时基于SDN和NFV的虚拟化与可编程网络的重点.尽管如此,需要注意的是VNF部署的本质仍然在于资源分配.VNF可以看作是不同的资源组合构造的软件,通过这种资源组合体的形式为上层应用提供服务.鉴于以上考虑,本文重点研究基于SDN和NFV的新型网络结构中的资源分配问题.一方面,考虑到物理资源的安全,本文在用户请求和物理资源之间引入虚拟资源层.另一方面,为了进一步提高资源的利用率,本文将问题进一步细分为: 1)如何在物理资源和虚拟资源之间建立动态映射关系来满足用户的需求;2)如何对物理资源进行高效复用以提高资源利用率.

对于以上两点挑战,本文的主旨在于将物理资源合理映射为虚拟资源以及将虚拟资源高效分配给VNF实例的同时,引入复用的思想来增加资源的复用率以提高资源的利用率.其次,通过复用来增加网络中容纳SFC的数量,从而提高用户满意度.具体而言,本文设计了一种在线映射算法,并且将物理资源到虚拟资源的映射分为两个阶段:1)将物理资源映射到虚拟资源池中;2)将虚拟资源池中的资源分配给VNF实例.其中,资源复用发生在第2阶段,这里资源复用包括资源层向上的复用和物理资源到虚拟资源池的复用.除此之外,随着网络中服务数量的不断增加,必然会出现后续的VNF资源分配紧缺的情况.因此,要对已经分配的网络资源进行调整,于是本文提出通过可伸缩的时间间隔来监测网络中资源的配置情况,从而避免网络中过载的现象以及为复用机制提供决策依据.

2 相关工作

随着NFV研究的深入,国内外的研究人员更多的是针对VNF的映射机制的研究.目前的研究方向主要是由SFC构成的转发图并且嵌入到物理网络拓扑中.主要的研究有如下的内容:

以运营商的利益最大化为目标,文献[5]引入了一个全面的系统模型,模型基于混合整数线性规划,采用松弛法、重写法和逐次凸逼近法来解决资源映射问题.综合考虑了接入控制和VNF映射问题,确保以协调的方式作出接纳和嵌入一组请求的决定[5].但是该文献主要是针对VNF如何直接映射的问题,没有考虑虚拟层的资源配置问题.文献[6]提出了在多供应商环境下NFV云计算和带宽资源分配的算法.通过分配云计算基础设施资源,供应商根据分配额度收取不同的费用.其在中型和大型网络中的应用已表明,在不考虑由所述基础设施供应商带来的成本差异的前提下,与分配资源的算法相比较,它可以导致节省成本的高达65%[6].文献[7]提出了在物理拓扑中增加物理资源的方法来应对资源不足的情况,然后将扩充后的网络拓扑抽象成整数线性规划数学模型.主要关注VNF的映射和VNF链接问题,即确定虚拟网络功能所需的数量和位置.在保证每个服务在延迟界限内完成的同时,通过最小化分配资源来最大化运营商的利益[7].但是物理资源是有限的,对于VNF的需求,不能无限制的扩充底层物理资源.并且增加物理资源会增加运营商的成本,这与NFV网络提出的初衷相矛盾.考虑到VNF的位置放置问题,文献[8]提出了一个基于排队论的系统模型,解决了关于VNF的跨物理主机的放置问题,给出了CPU资源共享VNF主机联合分配资源的最优决策方法[8].文献提供了一个快速和高效的解决方法,可以得到近似最优解的决策.然而,该方法主要针对单一资源的跨主机分配问题,没有考虑多维度资源的分配问题.文献[9]针对边缘VNF如何放置的问题,提出了将VNF放置在分布式边缘基础设施上的方法,这样可以最小化终端到终端的延迟.文献同时提出了一个方法来动态地重新选择VNF放置的最佳位置,动态位置调整机制减少了VNF的迁移,以不超过可被容忍的等待时间为目标,为服务和某些应用程序提供了质量保证[9].该方法与文献[10]一样,主要解决VNF放置的问题,对于具体的资源配置不做考虑.文献[10]通过相似矩阵与依赖矩阵将VNF放置问题转化为有权图匹配问题,利用匈牙利算法来解决问题[10].该方法本质上仍然是从上至下的映射方式,虽然加入了SFC组成算法,但是映射时仍以SFC组合成的转发图为映射单位.文献[11]在映射机制中加入了平衡网络负载的约束,增加了VNF复制机制.文献比较了3种优化方法,包括线性规划(LP)模型,遗传算法(GA)和随机拟合布局算法(RFPA).文献的研究结果表明,选择最优的VNF放置位置和增加VNF复制可以显著改善负载均衡,该算法在大型网络中也同样适用[11].该算法提醒研究工作者在求资源利用率最大的同时,也应当考虑负载均衡的问题,应该切实贴合网络实际的需求与条件.NFV与SDN相结合,文献[12]设计了一种面向服务的中间件,它利用云和雾计算技术,融合了软件定义网络和网络功能虚拟化用于解决雾计算目前所拥有的问题[12].文献[13]提出了一种软件定义的控制方式,通过中央控制器管理存储资源的虚拟化,它还设计了基于网络的需求自动扩展网络存储资源的机制[13].

还有更多的研究工作在最优化映射的基础上加入新的质量或性能约束,如文献[14]加入了安全性的约束[14].文献[15]研究了无线网络中资源的映射问题[15].文献[16]虽然针对网络动态变化的情况设计了SFC映射算法,但仍是一种离线算法[16].

综上所述,主流的资源映射方法都以SFC或SFC组合而成的转发图作为映射单位,整体嵌入到物理网络中,一但某一节点不符合嵌入要求,则整体嵌入失败,并且,大部分的映射方式都是离线算法,都需要事先知道全部的网络服务.而实际网络中的服务都是随机动态到达的,因此本文充分了考虑网络服务动态到达的情况.目前,在NFV领域内的复用技术研究较少,需要借助通信领域的技术思想完成资源复用机制的设计.

3 系统框架

3.1 系统分析

在NFV的架构中,NFVI中包括了底层的物理资源,和一种通用的虚拟化层,所有虚拟资源都放在一个统一共享的资源池中.因此本文的设计主要是将资源映射分为两个阶段,首先,先将底层的物理资源映射到虚拟资源层,即虚拟资源池中.然后,把虚拟资源池中的资源分配给VNF,并引入资源复用的思想,对物理资源进行最大化的复用.复用可以增加资源的利用率,并尽可能的在网络中容纳更多的服务.设计中的虚拟资源层首先可以对VNF和底层的物理资源做一个隔离,提高物理资源的安全性,避免直接访问带来的安全问题(如内存溢出导致宕机),为底层的物理资源提供保护;其次,对上层资源的配置与调动提供了更高的灵活性,可以划分更合理的资源粒度来进行配置;最后,避免了直接访问可能造成的物理资源的不稳定性,直接的对底层资源的访问也易使得资源混乱,不易管理,甚至使其崩溃.

在实际情况中,网络需求是事先不知道的.它们会动态的达到系统,并且在网络中停留任意一段时间.因此,设计的算法必须是在虚拟网络功能需求到达时处理,而不是一次处理一组需求.另外,虚拟网络功能需求会随着时间而发生改变,因此,还需要考虑如何重组、重新映射和重新调度的问题.在NFV的VNF层,VNF通过虚拟链路的链接可以形成一个与底层物理拓扑不同的虚拟拓扑.在虚拟拓扑中有很多不同类型的VNF,而底层的物理资源是有限的.充分合理的利用底层资源,才能为需求提供优质的服务.并且通过一个在线算法动态的嵌入SFC,能灵活的放置网络功能,在保证QoS的同时,也做到尽可能多的在物理节点上映射虚拟网络功能.在充分发挥虚拟资源层优势的同时,也考虑算法额外的开销所带来的延迟问题.

图1 物理资源映射到虚拟资源Fig.1 Physicalresource map to virtualizedresource

本文所采用的复用方法是借鉴现有的复用思想,利用适当的复用模型,配合算法对资源进行复用.由于资源的映射过程是一个两阶段的映射过程,因此针对资源的复用也采用双重复用的机制.资源复用不仅仅要考虑将一个单位的物理资源要映射成多少个单位的虚拟资源,同时也考虑虚拟资源与VNF之间的映射关系,进而便于对虚拟资源利用率进行优化.复用的资源类型既包括节点资源,同时也包括链路资源.如图1所示,一条端到端的服务功能链包含了5个VNF,底层物理网络拓扑中有5个服务器节点,不同服务器节点之间由带宽资源连通.将物理资源划分成多个相同或不同粒度的虚拟资源放置在虚拟资源池中,并且将虚拟资源池中的资源按照不同的需求分配给VNF.

3.2 系统模块

本文针对资源的映射和复用设计的系统框架主要有3个模块:资源初始化模块、资源监控模块、资源动态分配与调整模块.图2是文中研究的基于SDN和NFV的物理资源到虚拟资源映射和复用机制的系统框架设计图.

图2 系统框架设计图Fig.2 System frame design drawing

从系统框架设计图中可以看出,资源映射模块包括资源初始化、虚拟资源配置和VNF放置.资源复用模块包括可用资源搜索、虚拟拓扑更改和资源复用.资源监控模块计算资源的复用率,并且根据算法监控测网络中资源的使用情况,以及节点和链路负载情况.并且每个模块之间相互依存、相互调用,模块内部的方法之间也相互调用.资源映射模块主要是将物理资源(节点资源和链路资源)映射到虚拟资源池,再分配给VNF;资源复用模块主要是在接续的网络运行中,根据网络中资源的剩余情况和资源的监控结果,调整资源的映射和资源的配置,并且修改虚拟拓扑;资源监控模块主要是避免网络的拥塞和节点的过载,并且将监测到的信息反馈给资源调整模块.

3.3 系统流程

图3是系统的总流程图,随着服务的不断到达,算法会根据网络中已经部署的VNF情况来判断是否需要新增VNF实例.如果需要增加VNF实例,首先判断虚拟资源池中的虚拟资源是否满足新的VNF实例的需求,若不满足则寻找还未映射的物理资源并将其映射到虚拟资源层,然后将虚拟资源配置给新增的VNF实例,同时,在虚拟拓扑中增加节点和链路,确保虚拟拓扑与实际情况保持一致性.如果不需要增加VNF实例,则服务正常运行不经过初始化阶段.在网络服务运行时,资源监控模块将持续运行,并且计算资源复用率.当资源复用率低于阈值时,则进行资源的复用操作.资源复用率的计算是一个循环过程,持续关注资源的复用情况.并且资源的复用操作是根据复用代价来抉择的,当资源复用造成的代价过高时,则放弃资源的复用.不能一味的追求提供资源的复用率,因为算法造成的延迟和其他花费代价有可能使得网络过载,或出现网络延迟突增的情况,从而影响网络的服务质量.资源监控模块不仅仅用于检测资源的复用率,同时对网络中的节点和链路进行检测,保证负载均衡.

图3 系统流程图Fig.3 System flow chart

4 高效资源映射与复用的方法

4.1 资源监控

4.1.1 资源复用率监测

资源复用率监测方法主要分为两部分,分别是监测时间间隔的计算方法和复用率的计算方法.资源复用率计算过程主要是通过广度优先遍历的方法遍历物理节点,然后遍历虚拟拓扑,在遍历的过程中计算复用率.遍历时在不同的物理节点处搜索虚拟资源池的对应资源,将搜索到的结果作为条件遍历虚拟拓扑,从而准确计算资源的复用率.

1)监测间隔计算

虽然通常会采用在固定时间间隔的方式进行监测,但是本文未采用固定时间监测的方式.本文考虑到网络中的流量是一个动态变化的过程,固定的时间间隔监测方式可能不能适应千变万化的网络流量.为了应对网络动态变化的过程,本文设计了跟随网络中流量变化而变化的时间间隔方式.当网络中的流量增加时,缩短时间间隔可以更敏感的检测网络中的变化,也能在网络负载出现问题时第一时间发现.但是设置了时间间隔的下限,不能极度的缩小时间间隔.过于频繁的监测增加资源开销的同时也会为网络带来不小的压力.当网络中的流量减少时,会适当的延长监测的时间间隔,同时也会设置时间间隔的上限,避免过度的延长时间而对网络中资源的变化不敏感.

定义Tbase为初始监测时间间隔,Tlast表示上一次设置的时间间隔,Tnext表示下一次监测的时间间隔.在第一次监测时,有Tnext=Tlast=Tbase成立.flowlast表示上一次监测时网络中流量的数目,flownow表示现在网络中流量的数目.α表示网络中流量变化的幅度,若α为负数则表示网络中的流量减少,α为正数表示网络中的流量增加的计算如式(1)所示:

(1)

(2)

(3)

其中δ、a1、b1、a2、b2均为常数.式(2)和式(3)分别表示网络流量增加时下一次监测的时间间隔和网络流量减少时下一次监测的时间间隔.显然,当流量增加时时间间隔会缩小,流量减少时时间间隔会增大.

2)资源复用率计算

(4)

(5)

(6)

(7)

本文使用传统的加权方法计算单个节点上的物理资源的复用率和整体物理资源的复用率,分别如式(8)和式(9)所示.式(10)表示加权系数的权重和为1.

(8)

R=γRcpu+σRmemory

(9)

γ+σ=1

(10)

计算资源的复用率主要为资源的复用和资源的调整操作提供依据.资源复用率监测方法是资源监测的一个部分,其他的监测内容将结合不同的操作进行详细介绍.全部的监测内容都采用统一的监测时间间隔(如上述时间间隔),不同的监测模块为不同的资源操作服务.虽然本文对链路也进行了复用,但是通过算法人为提高链路上的资源复用会增加链路延迟,并且会对流量的路由产生影响.因此,计算链路资源复用率的意义并不明显.

4.1.2 资源利用率监测

资源利用率监测方法通过遍历物理拓扑,按照式(27)和式(28)计算每个节点CPU、内存和存储的利用率,并存储在CPUArrayList、MemoryArrayList和StorageArrayList中.同时,寻找并记录使用频率较低的VNF实例.根据VNF实例使用的频率和VNF实例频次来判定哪些VNF实例使用频率低,当VNF实例使用频率低于c1(c1为常数),并且VNF实例的使用频次排在升序排列的前1/3,则该VNF实例判定为低使用频率,并将此VNF实例记录在VNFresultArrayList中.这里同样采用4.1.1节中介绍的监测时间间隔.通过资源使用监测,最终将所需的信息存储在CPUArrayList、MemoryArrayList、StorageArrayList和VNFresultArrayList中,为下文的资源复用方法提供数据支持与依据.

4.2 资源映射

4.2.1 资源映射约

(11)

(12)

∀ei∈E,∀li∈L:bandwidthei≤Bandwidthlj

(13)

(14)

(15)

delayei=max(Delaylj,Delaylj+1,…,Delaylj+h)

(16)

从虚拟资源到VNF层,即将虚拟资源池中的资源分配给虚拟拓扑中的VNF,本文假设一个VNF为一个虚拟拓扑节点.式(17)表示虚拟拓扑中的第j个VNF占用虚拟资源池中第i个虚拟计算资源,同理,式(18)表示虚拟拓扑中的第j个VNF占用虚拟资源池中第i个虚拟内存资源.对于虚拟链路到链路的映射中,式(19)表示虚拟拓扑中的第j个VNF到第j+1个VNF之间的链路占用虚拟链路ei.

(17)

(18)

(19)

(20)

DelayT+DelayP

(21)

其中,DelayT的计算方式由式(22)给出,DelayP的计算由式(23)给出,delayvi是虚拟节点的处理延迟.

(22)

(23)

(24)

(25)

4.2.2 资源映射流程

本文从物理资源到虚拟资源的映射过程分为两个阶段:物理资源到虚拟资源池和虚拟资源池到VNF.这两阶段映射过程均随着网络服务的到达而发生,因为本文采用的是在线算法,所以不会提前知道网络服务所需要的资源和网络功能.当网络服务到达时,已经映射资源的VNF不能满足服务所需时,进行初始化过程.

初始化过程主要是根据端到端服务的最短路径来确定资源.本文使用k-最短路径算法选取最短路径.首先,计算符合服务约束的最短路径、次短路径和第三短路径,优先选取代价最小的路径,当出现特殊情况时选用次短路径,以此类推,当选取到第三短路径依旧存在问题时,选取最短路径并进行修改.为了增加资源的复用率和尽可能多的使用已经映射的VNF实例,通过优化最短路径来满足需求.然后,当出现上述情况时,则寻找该节点周围一跳、两跳和三条所能到达且满足条件的节点,计算所有满足条件的节点到原有节点代价,并选取最小代价节点作为代替节点.代价的计算由式(26)给出.具体流程由算法1给出.

(26)

算法1.资源映射

输入:网络服务SFC(包括SFC的两个端点、SFC所需的延迟、SFC需要经过的VNF的序列)、物理网络拓扑、虚拟网络拓扑、虚拟资源池资源列表

输出:更新的虚拟资源池资源列表和虚拟网络拓扑

BEGIN

1.根据k-最短路径算法求出SFC端到端前三短的路径path1、path2和path3

2.resultPath(记录可以使用的路径结果

3.resultNode(记录可以要部署VNF的节点

4.WHILE(i<3):

5. IF(pathi满足SFC的需求):

6.resultPath=pathi

7.IF(resultPath≠Φ):

8. WHILE(node∈resultPath):

9. IF (∑λCPUni+βMemoryni+(1-λ-β)Storageni> ∑λCPUni+1+βMemoryni+1+(1-λ-β)Storageni+1):

10.resultNode=ni

11.FOR(j=0;j

12.IF(vnfj不在resultNode上):

13.根据VNF所需映射资源到虚拟资源池,并且更新虚拟资源池资源列表,将虚拟资源配置给VNF

14.ELSE

15.除去resultNode节点后执行步骤7-9,再次寻找一个节点用于托管vnfj

16.ELSE

17.resultPath=path1

18.执行步骤7-15,若出现其他情况,则选取resultNode周围三跳以内可以到达的节点作为备用,计算所有备用节点代价,选择代价最小作为代替.

END

算法1主要是针对于资源的最初映射状态,随着网络服务的变化,调整模块会对此前的映射结果进行调整.在映射的过程中,尽量不将同类型的VNF实例放在一起,网络服务所需的VNF在一个节点处都可以得到处理.

4.3 资源复用

4.3.1 资源复用约束

(27)

(28)

资源复用过程发生在资源映射过程的第2阶段,即将虚拟资源池中的资源配置给VNF实例的过程.因此,资源复用当虚拟资源池中的虚拟资源复用时,尽量遵循以下3点原则:

1)相同类型的VNF实例不在虚拟拓扑的三跳以内(包括三跳)同时出现两次,这样可以将尽可能多不同类型的VNF实例部署到相对集中的位置.因为网络服务所需要的VNF实例是多种类型且不相同的,这样也可以使更多的网络服务共享VNF实例.

2)优先对使用频率低的VNF实例所占用的资源进行复用.VNF实例的类型是多种多样的,但是不是每一种类型的VNF都会被网络服务所使用.有部分VNF只会在特定的服务请求到达时被使用,并且在网络中只存在少量的实例.

3)优先对资源量相对小的虚拟资源进行复用.资源量较小的虚拟资源拥有较高的灵活性以及较好的补充性.在进行资源复用的时候,小的资源能够更好的与其他资源组合在一起,并且不会造成过度的冗余.

虚拟资源池中的虚拟资源是由物理资源映射而来,因此,对虚拟资源进行复用即对物理资源进行复用.并且对虚拟资源进行操作的安全性比直接操作物理资源的安全性更高.对资源复用时需要依赖资源监测模块返回的数据,通过对虚拟拓扑的遍历可以获取当前已经部署的VNF实例集合.

4.3.2 资源复用流程

资源的复用主要根据资源监测模块返回的数据进行操作.复用最初是通信技术中的专业术语,如今在计算机领域中广泛使用.本文所设计的资源复用方法借用时分复用思想,根据VNF实例需要使用的时间不同配置不同的资源,主要针对低频率使用的VNF实例.当网络中没有服务需要使用某些特定功能的VNF实例时,关闭该VNF实例,即将分配给该实例的资源重新配置给周围需要资源的实例.关闭该VNF实例并非卸载该实例,卸载该节点可能会造成部分数据的丢失,因此仅关闭该VNF实例.在虚拟网络拓扑中仍存在该VNF实例,但是并不为其配置资源.当有需要的网络服务到达时,仍可指定由该实例提供网络功能.此时,根据网络服务的需求临时调整网络中的资源,使其满足网络服务需求.

资源复用率监测模块会按照指定的时间间隔监测资源的复用率,当物理节点的资源复用率低于阈值η(η为常数)时进行资源复用.当物理节点的资源复用率低于阈值η,但是资源利用率已经大于τ时(τ为常数)则放弃资源复用过程.因为,再次对资源进行复用操作会增加物理资源的压力,影响已经分配资源的使用效率,进而影响网络功能的处理能力,导致网络服务质量下降.

资源复用的流程如下:

1)通过4.1.2节资源利用率监测方法获取CPUArrayList、MemoryArrayList、StorageArrayList和VNFresultArrayList数据.

2)当第个VNF实例属于VNFresultArrayList时,则有VNFresultArrayList[i],根据上述资源复用需要遵循的三原则,寻找该VNFresultArrayList[i]实例周围三跳以内的VNF实例并记录,若存在VNF实例没有网络服务经过,且该VNF实例所占用的资源满足当前所需,关闭该VNF实例,并且将该VNF实例资源配置给VNFresultArrayList[i]实例.如果找不到VNFresultArrayList[i]实例周围三跳以内的VNF实例,则寻找满足要求的空闲虚拟资源并为VNFresultArrayList[i]实例配置.如果还是找不到满足要求的空闲虚拟资源并为VNFresultArrayList[i]实例配置,则寻找未映射物理资源进行资源映射并为VNFresultArrayList[i]实例配置.

3)遍历虚拟资源池中的资源序列,并根据式(4)-式(9)计算出相应的资源复用率,如果TypeArrayList[i]的复用率小于η且TypeArrayList[i]的利用率小于τ,则分析资源池资源使用情况,将始终被占用的资源设为固定资源,转为固定的VNF实例服务.将不会被始终占用的资源按照不同的使用时间组合,使同一资源在不同时间被不同VNF实例占用.

4.4 资源优化

4.4.1 资源调整

资源调整过程主要避免网络中出现拥塞的情况,其次是针对初始化资源映射不合理情况的修正.由于映射过程是一个在线算法,随机到达网络的网络服务请求可能是常用的也可能是不常用的.随着资源的映射,网络中同种类型VNF实例的数量会远超实际所需的数量,因此,需要及时对网络中已经映射的资源进行调整.

4.4.2 资源调整约束

(29)

(30)

4.4.3 资源调整流程

资源的映射情况不是一成不变的,因为到达网络的服务可能是发生频率相对比较高的,或者是少数情况下才会到达的网络服务.为了适应流量的变化资源也应当做出适当的调整.当网络中VNF实例的排队延迟过高(>A1),或处理能力过低(>A2),或两种情况加权之后结果仍大于阈值A3时,则认为VNF实例出现拥塞情况,如式(32)所示.其中,A1、A2、A3均为常数,权重ξ与权重ζ和为一.本文通过增加过载实例的资源配置和迁移的方式来解决过载问题.VNF迁移需要的付出更大的代价,因此在解决过载问题时优先考虑增加资源,没有可增加的资源时进行迁移操作.具体流程如下:

1)遍历虚拟资源池中寻找未被占用且符合需求的虚拟资源,如果未找到所需的虚拟资源,则寻找VNF实例托管节点未映射的物理资源按需映射到虚拟资源池;

2)为过载VNF实例配置资源.若物理资源与虚拟资源均不能满足需求时,寻找VNF实例托管节点三跳以内满足需求的节点,实例同类型VNF并配置资源.过载VNF实例上仍然有服务在运行,因此保留旧VNF实例运行已经到达的服务,后续的服务都将由新实例的同类型VNF执行.当旧VNF实例处理完所有到达的服务时,将数据迁移至新的实例并卸载释放资源.

(31)

(32)

(33)

5 仿真实现与性能评价

5.1 仿真平台

本文仿真实验利用JAVA开发语言搭建网络仿真环境,通过离散事件模拟器完成对网络环境的仿真,使用IntelliJ IDEA集成开发工具完成设计各个模块的功能,并且在PyCharm开发环境中利用Python语言进行数据分析.运行在Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz、16GB内存Windows 10系统的PC机上.

5.2 拓扑及参数设置

5.2.1 实验拓扑

本文选用了大小不同的两种拓扑结构进行实验,小拓扑指拥有网络节点数和链路数少,大拓扑是指拥有网络节点数和链路数多.小拓扑选用的是拥有11个节点,14条链路的Abilene拓扑结构.大拓扑选用的是拥有30个物理节点和57条链路的Chinanet网络拓扑.

5.2.2 其他参数设置

本文所需的详细参数设置如表1所示.

为了验证本文设计的物理资源到虚拟资源映射和复用机制,对网络服务的数量分别使用50条、100条、200条、500条和1000条进行实验,并且允许网络服务同时到达.由于网络服务是随机生成的,因此需要控制不同网络服务生成的概率,保证网络中确实有部分VNF是常用的类型.

表1 实验参数Table 1 Experimental parameters

本文还给出了仿真实验中关键的虚拟资源粒度的参数:VNF类型数量的值为15;每条网络服务中所需VNF的数量范围为2~5;单个VNF实例所需的计算资源(核数)的范围为1~5;单个VNF实例所需的内存资源的范围为10~40.

本文假设每条网络服务包含2~5个VNF,每一个VNF实例需要1~5个计算资源(核)和10~40个内存资源,具体数值根据VNF的类型确定.单个物理节点上拥有20~50个计算资源(核)和100~300个内存资源,具体数值根据物理节点的级别确定.

5.3 实验结果

5.3.1 资源映射实验结果分析

本文选用最短路径启发式(Shortest Path Heuristic,SPH)算法作为资源映射对比算法,本文设计的映射算法命名为ODRM.本文分别选用50、200、500、1000条网络服务进行多次实验.

如图4(a)所示为在Abilene拓扑下不同网络服务数量平均延迟的对比,网络服务数量分别为:50、200、500、1000.仅在50条网络服务时,ODRM算法的平均延迟比SPH算法的平均延迟高;当网络服务数量增加到200条时,两种算法的平均延迟基本持平;在500条和1000条网络服务数量的情况下ODRM算法的延迟明显好于SPH算法.在小网络拓扑下,SPH算法为每条服务选择的最短路径很难出现很大差别,可选择空间有限.而ODRM算法可以通过资源的合理配置,增大VNF的处理能力,在有限的物理资源空间,发挥物理资源的最大利用率.

图4 不同网络服务数量平均延迟Fig.4 Average delay by number of network services

如图4(b)所示为Chinanet拓扑结构下不同网络服务数量平均延迟的对比.无论在何种网络服务数量的情况下,SPH算法的平均延迟均明显低于ODRM算法的平均延迟.在大网络拓扑结构下,SPH算法在路径上可以获得更多的选择,ODRM算法资源调整的过程会变长,并且在调整过程中,部分服务会被暂停且存在VNF迁移现象,同时资源调整过程中资源变化会带来VNF处理能力上的变化,因此会造成平均延迟比SPH算法平均大的结果.增加资源的复用率和动态调整的过程必然会出现延迟增加的代价.与节点数量少的小拓扑结构相比,拥有更多节点数量的大拓扑整体平均延迟较小.但是,随着网络服务数量的增加这种差距也在缩小.

图5 同时容纳网络服务的数量Fig.5 Number of network services accommodated

如图5所示为不同网络服务数量情况下网络中同时容纳网络服务的数量.网络同时能容纳的网络服务数量与进入网络服务的总量无关,仅在网络服务总数量为50条时所能容纳的服务数量较少.ODRM算法同时能容纳的网络服务数量约为SPH算法的2倍.ODRM算法通过资源调整可以为VNF分配更合理的资源,并且,通过资源调整可以在网络中部署更多的VNF实例,从而增加网络服务的容纳量.网络中可容纳的服务数量受到网络服务的性能和质量要求限制,因此对于恒定的物理拓扑可容纳的服务数量不会改变.在网络中容纳更多的网络服务可以提高网络资源的利用率.

5.3.2 资源复用实验结果分析

本文选用虚拟机复用贪婪算法(Greedy on VM Reuse,GVR)作为资源复用对比算法,本文设计的复用算法命名为DRR.本文选用不同网络服务数量下平均复用率和资源利用率作为性能评价指标.

图6 不同服务数量下资源的复用率(Abilene拓扑)Fig.6 Resource multiplexing rate under different service quantities(Abilene topology)

如图6所示为不同服务数量下资源的复用率(Abilene拓扑).资源的复用率是随着网络服务数量的增加而增加,当网络服务数量增加到1000条时,复用率增加比较明显.说明网络服务的数量越多,对于资源复用的结果越好.复用率的上限受条件约束无法一直增加,当网络中延迟过大时会适当降低复用率,或者当资源的利用率过大时适当放弃资源复用.因此网络服务的数量比较大时,也没有得到更大的资源复用率.适当的复用可以增加资源的利用率,提高网络处理能力,但是过度增加资源利用率会导致网络性能的降低.

图7 不同服务数量达到最大复用率所需时间Fig.7 Time required to reach the maximum multiplexing rate for different service numbers

如图7所示为不同服务数量达到最大复用率所需时间.对比算法GVR无论在多少网络服务的数量下,所需的时间是恒定的.因为,GVR算法是一种静态的针对虚拟机的复用机制,当网络中部署的虚拟机达到峰值时不再变化.GVR算法仅是在已经部署的虚拟机上进行复用.本文设计的DRR算法会随着服务的增加而增加时间,因为DRR算法采用动态复用的机制,随着网络流量的变化而变化.因此需要更多的时间达到复用率的峰值.

6 结束语

本文从SDN和NFV技术对现代通信网络的重要性出发,针对充分发挥物理资源的效用,提高虚拟资源的利用率的问题,提出了一种基于SDN和NVF技术的在线资源映射方法并且受到通信中复用思想的启发设计了一种在资源映射过程中对资源进行复用的机制.从仿真结果来看,映射算法与对比实验相比虽然网络的平均延迟略高,但是网络的资源利用率有约一倍的提高,可以在网络中容纳更多的网络服务.复用算法与对比实验相比复用率增加了约20%,同映射算法一样延迟有所增加.本文为通信网络提高资源利用率提供了一个合理的解决方案.

猜你喜欢

网络服务实例链路
网络服务合同的法律问题研究
天空地一体化网络多中继链路自适应调度技术
网络服务行为的可罚性
网络服务安全效率两相宜
基于数据包分割的多网络链路分流系统及方法
基于3G的VPDN技术在高速公路备份链路中的应用
完形填空Ⅱ
完形填空Ⅰ
高速光纤链路通信HSSL的设计与实现
云计算趋势下的蓝汛内容感知网络服务