APP下载

网络功能虚拟化下服务功能链的资源管理研究综述

2021-01-15祖家琛胡谷雨严佳洁李实吉

计算机研究与发展 2021年1期
关键词:网络服务虚拟化调度

祖家琛 胡谷雨 严佳洁 李实吉

(陆军工程大学指挥控制工程学院 南京 210007)(jiachen_zu@foxmail.com)

传统意义上,网络运营商会采用专用的网络设备来提供不同的网络功能,比如防火墙、网络地址转换器和流量分类器等,因此现有的大多数网络服务需要依靠各式各样专用的网络中间件.但是,这些网络中间件的使用带来了诸多不便:1)价格昂贵,设备升级换代开销大;2)高能耗,设备运行维护开销大;3)可扩展性差,不同厂商设备之间很难兼容;4)需要专业人员维护,随着设备增多管理维护难度大;5)生命周期短,每过几年产品需要整体更新换代.

然而,近年来网络流量却呈指数级别增长,据思科年度可视化网络指数预测(visual networking index, VNI)[1]报告指出,到2022年全球年度IP流量预计达到4.8 ZB,相比2017年的1.5 ZB增加了3.2倍.除此之外,随着物联网(Internet of thing, IoT)和移动智能设备的发展,物联网设备连接数从2015年的49亿增长到2020年的122亿.近年来诸如虚拟现实、增强现实等新型网络服务也在不断涌现.面对巨大流量压力和诸多新型网络业务,运营商不得不部署大量昂贵的专用网络设备来提供服务.文献[2]中指出,在企业网络中,网络中间件的数目几乎与网络中的路由器和交换机数目相当.这使得网络运营商的建设费用(capital expenditure, CAPEX)和运营成本(operating expense, OPEX)不断增加,阻碍了网络新业务的开发.在这样的背景下,网络功能虚拟化(network function virtualization, NFV)[3]被提出利用虚拟化技术将网络功能以软件形式布置在标准化的服务器上,其基本思想是将专用设备上的网络功能迁移到通用的X86服务器上,实现软硬件分离的独立发展,以提升传统网络的开放性、兼容性和灵活性.

服务功能链(service function chain, SFC)[4]通过定义一组有序的服务功能并将其实例化,基于虚拟网络对网络中间件间的流量进行灵活调度处理,从而满足特定的网络服务需求.在传统SFC的定义[5]中,服务功能(service function, SF)作为逻辑元件可以是虚拟元件也可以是嵌入网络的物理元件.而NFV+SFC被认为是未来网络管理由实向虚的重要手段,现有理论研究中的SFC多采用虚拟化的网络功能进行服务,因此在本文中所提及的服务功能链资源管理中的SF均是指虚拟化的网络服务.

近些年关于网络功能虚拟化下服务功能链资源管理的研究不断更新,而相关综述却很少.因此,本文针对SFC的资源管理问题,首先简要介绍了NFV的基础架构、网络服务虚拟化概念及应用场景.而后根据SFC编排的不同阶段,将现有理论研究划分为组链、布置、调度和按需缩放4个部分,从网络场景、理论模型、优化方法等方面进行分析、比较和总结,并指出了尚未解决的技术难题和未来相关研究的发展趋势.

1 NFV基础架构

NFV的概念于2012年首次提出,欧洲电信标准协会(European Telecommunications Standards Institute, ETSI)开始对这项新技术提出相关定义和体系结构[6].2013年,ETSI发布了NFV的第1个正式定义架构,并对其进行了不断修订;它主要包含了3个部分:NFV基础设施(network function virtualization infrastructure, NFVI)、NFV管理编排系统(management and orchestration, MANO)和虚拟化网络功能(virtual network function, VNF),如图1所示:

Fig. 1 ETSI-NFV architecture[7]

1) NFVI.NFV基础设施为VNF提供资源,它包含网络中所用的软件和硬件.硬件资源包括计算硬件、存储硬件和网络硬件,其中计算硬件和存储硬件一般被合并,通常采用通用的服务器(例如X86 PC服务器),包括CPU、内存和网卡等,网络硬件包括交换机和路由器用于提供网络连接;而软件的计算和存储资源通常以虚拟机(virtual machine, VM)形式体现,被布署在高容量的服务器上,利用虚拟化技术提供虚拟资源.虚拟网络资源由位于硬件之上的VNF虚拟节点和虚拟链路组成,这些链路为VNF实例之间提供连接.因此,虚拟化资源和硬件资源在NFVI中是紧密耦合在一起的.

2) NFV MANO.NFV MANO由编排器(orche-strator)、虚拟化网络功能管理器(VNF manager)和虚拟化基础设施管理器(virtualized infrastructure manager, VIM)组成.NFV MANO负责提供存储信息和数据模型的数据库,支持基础架构虚拟化资源编排,VNF的生命周期管理并负责向VNF分配NFVI的物理资源等.此外,该框架还定义了可用于NFV-MANO的不同组件之间通信的接口,兼容传统网络管理系统(即运营支持系统(operations support system, OSS)和业务支持系统(business support system, BSS)),以允许VNF和旧版功能同时在设备上运行[8].

3) VNF.VNF是在虚拟资源(例如虚拟机)上运行的网络功能软件实例.一个VNF可以部署在单个虚拟机上或由多个虚拟机上的子功能组成.VNF通常由元素管理系统(element management system, EMS)管理,负责其创建、配置、性能监视和安全管理.EMS可以为电信运营商(telecom service provider, TSP)提供运营支持系统OSS所需的基本信息.OSS与业务支持系统BSS一起,可帮助TSP部署和管理多种端到端电信服务(例如订购、计费、续订、问题排查等).NFV架构着重于与现有OSSBSS解决方案的集成.

2 网络服务虚拟化

在网络服务虚拟化中,覆盖(overlay)网络技术将虚拟网络与物理网络分离,为网络服务提供链接,采用隧道技术例如VXLAN和NVGRE可以支持VNF的高效调度,集中管理.软件定义网络(software defined network, SDN)将网络的控制和转发分离,提供了一种新型的网络连接方式[9].未来可以基于SDN-via-overlay网络实现虚拟网络的逻辑链接[10],进一步减少网络管理的复杂性.NFV则提供了一种网络功能节点虚拟化的手段,利用虚拟机容器管理技术合理地为VNF分配CPU内核、存储器和接口,实现VNF的实例化.二者结合为SFC的资源管理提供了重要的技术支撑[11].

表1罗列了部分NFV中可虚拟化的候选网络功能,涵盖了诸多常用路由设备和网络应用设备.这些功能既包含一些传统的网络功能,例如防火墙和IP网络地址转换器等,也包含一些特定的应用程序功能.一般情况下,VNF不会单独地提供网络服务,需要经过编排以特定顺序组成SFC来提供端到端的网络服务.

Table1 Virtualized Network Functions[12]

图2提供了一个网络服务功能链的示例,数据流需要按照链接顺序经过相应的VNF处理,例如防火墙→深度包检测→编码器→数据监视器→解码器来完成定制化的网络服务.SFC在发送到边缘路由器时会插入一个包含所需VNF的服务链包头,它的属性一般包括源地址、目的地址、VNF类型和数目等.

Fig. 2 Example of service function chain[13]

虚拟化带来了资源的弹性利用优势,要实现SFC在NFV场景下的完全应用,未来在提供网络服务的过程中应支持[14]:1)可迁移性.例如VNF所在的服务器资源不足时,可以通过虚拟机的实时迁移来迁移实例到其他服务器上.2)性能一致性.虚拟化网元应能提供和专用设备一致的性能,NFV系统应能够描述VNFI的资源使用情况,实例化给定配置的VNF,并根据给定性能指标分配资源.3)按需缩放性.根据网络流量的大小,系统能够自动对硬件资源和虚拟资源进行容量缩放,容量缩放包括垂直和水平两方面,垂直缩放是指在现有服务器节点上增加和减少资源,水平缩放是指在现有服务节点基础上增加或者减少节点数目.4)稳定性和持续性.SFC需要提供符合服务规范和SLA的不间断服务交付,网络一旦出现故障,系统应能保证被影响的VNF实例及时恢复正常功能.5)安全性.由于传统网络功能设备是专用物理设备,一般具有很好的安全性,但是在虚拟化环境很容易遭受外部攻击,NFV系统应当提供更好的安全机制来解决虚拟化引入的安全漏洞.6)兼容性.要保证虚拟软件在不影响服务质量的前提下尽量兼容传统网络,能够与多厂商硬件设备相互兼容.7)可扩展性.应简化通信协议,提供标准化接口,使SFC易于部署在大型网络中.

3 网络服务虚拟化应用场景

伴随SDN,NFV等网络新技术的发展,虚拟化的网络服务能够应用于各类网络场景中,例如数据中心网络、5G网络、边缘计算网络和天地一体化网络.

1) 数据中心中的网络服务虚拟化

目前,很多校园网络、企业网络需要在其分支机构布置大量的网络服务应用.随着云计算技术的不断成熟,更多的服务和应用程序被迁徙到云服务提供商的数据中心中.数据中心是网络服务虚拟化的主要应用场景[15],网络服务虚拟化需要依托云计算模式来提供服务,这其中包括服务器虚拟化[16]、固定接入设备的虚拟化[17]等.

2) 5G网络中的网络服务虚拟化

在5G网络中引入NFV+SFC技术,针对不同应用场景进行网络切片,可以对不同优先级的业务提供差异化的资源和服务质量,并按需向用户提供定制化的网络服务[18].这其中将包含5G接入网络的虚拟化[19-20]、移动基站的虚拟化[21]和移动核心网虚拟化[22]等.

3) 边缘计算中的网络服务虚拟化

在传统的云计算中,流量需要经过移动核心网才能达到数据中心的云服务器进行处理.移动边缘计算可以在边缘网络的服务器上提供计算、存储和通信能力[23],具有低延时、超高带宽等优势.边缘计算将成为未来网络的重要发展趋势[24],其中的网络服务虚拟化将涵盖家庭网络虚拟化[25]、内容分发网络(content distribution network, CDN)虚拟化[26]和物联网应用虚拟化[27]等.

4) 天地一体化网络中的网络服务虚拟化

5G技术的成熟与商用,使得众多研究者对下一步6G技术的研究更加关注.天地一体化网络[28]是6G研究中的重要研究方向,卫星通信网络融合到地面之后,将会对地球实现无缝覆盖,任何偏远地区、深山海洋都能得到互联网带来的便捷服务.而目前卫星网络是运营商专用的封闭网络,缺乏兼容性和互操作性.SDNNFV的引入可以实现卫星的网络功能虚拟化[29]和地球站虚拟化[30-31]等技术,为异构网络的融合带来便利.

4 网络服务功能链资源管理

资源的优化分配是网络虚拟化中的关键问题,在NFV体系架构中,执行资源分配的组件是MANO编排系统,它可以采用SDN的方式来对网络资源进行集中式的分配和调度,将虚拟化资源需求有效地映射到底层实际网络(包括节点、链路),这一问题也被称作虚拟化网络嵌入问题(virtual network embe-dding, VNE)[32].伴随着现代网络管理向智能调度和细化服务的目标迈进,针对VNE的研究发展为不同场景下的SFC的嵌入问题.在SFC嵌入过程中,还需要满足诸多性能要求,例如负载均衡、按需缩放、网络功能迁移、节能和故障恢复等[33].针对网络服务功能链资源管理,现有的理论研究主要集中在4个方面:1)SFC的组链.如何合理地按照用户需求和VNF属性描述和构建SFC.2)SFC的部署.如何在满足SFC需求和底层网络容量限制下,有效地在物理节点上部署虚拟网元.3)SFC的调度.如何安排VNF的动态执行顺序以减少总的服务时间.4)VNF的按需缩放和迁移.如何在网络负载发生变化或出现节点故障时,进行物理容量的按需缩放或者VNF的动态迁移.下面具体介绍各阶段的研究现状.

4.1 SFC组链问题

首先,在使用不同VNF构建SFC过程中需要采用形式化的语言进行定义.互联网中一种流行的服务描述方法是使用Web服务描述语言(Web Services Description Language, WSDL)或统一服务描述语言(United Services Description Language, USDL),旨在从业务、运营或技术角度描述Web和Internet服务.而对于云服务的描述,可以采用云服务声明性定义语言(Cloud Services Description Language, CSDL)进行描述.但是这些现有的服务描述语言不适用于弹性服务环境[34],用于描述SFC存在诸多问题.

Joseph等人[35]建立了一个数据模型,用于描述一些常用的网络功能,但它没有考虑网络功能的资源需求,因此不适用于VNF的描述.Cheng等人[36]将网络功能抽象为细粒度的原子函数,并采用描述性的语言定义其公共特性例如类型和SLA等.Mehraghdam等人[37]首次引入一种上下文无关的语言来形式化定义SFC请求,并在此基础上进一步提出了YANG模型[38-39],以一种灵活的方式描述SFC请求中的VNF结构,该方法采用启发式方法针对服务的不同资源需求,选择不同服务可能组合的Pareto集,可以在不影响总体功能的情况下更改VNF的顺序.该模型已在很多组织比如OpenDaylight和ETSI的标准中得到应用.

另一方面,SFC的性能将受到VNF的组成和处理顺序影响.例如在图3中,考虑1个服务链请求,其初始的流量速率为4 Gbps,由5个不同的VNF构成.假设其中VNF1是一个编码器,相对传出流量是传入流量的2倍;VNF2是一个负载均衡器,它将传入的流量分成2个相等的流;VNF3是一个解码器,相对传出流量是传入流量的2倍.执行顺序与VNF之间的依赖关系有关,其中VNF2,VNF3,VNF4必须在VNF1之后执行,而VNF3必须在VNF2之后执行.基于依赖关系,有多种不同的组链方式.图3显示了此示例的2个可能的服务链组成.可以看出VNF1→VNF4→VNF2→VNF3→VNF5的组链方式相比VNF1→VNF2→VNF3→VNF4→VNF5带宽占用更少,能够减少链路带宽资源的消耗.因此,不同的组链方式会影响网络服务的性能,应针对服务提供商的优化目标合理安排服务链VNF的顺序.

Fig. 3 Example of SFC composition

Mehraghdam等人[37]为了使生成SFC的总数据速率最小化,提出了一种用于组链的贪心算法.根据输出数据速率与输入数据速率的比值对虚拟网元进行升序排序,并尽量将减少流速率的VNF放在前面,此方法被验证可以有效地减少带宽占用.由于不同的组链方式会影响SFC下一阶段部署,因此两者在研究中常常被联合进行优化.Beck等人[40]提出了一种递归启发式方法来同时进行SFC组链和布署,该方法首先根据VNF之间的依赖关系枚举出所有可能的组链方案,在每一步都选择1个VNF加入服务链,同时将其部署到底层网络中;当无法嵌入VNF时,通过回溯最后成功映射的VNF,并寻找其他组链替代方案进行映射.进一步地,文献[41-42]使用有向无环图来描述SFC中VNF的依赖顺序,并且采用拓扑排序的方法对VNF进行分组,这种方法可以快速得到组链方案,并提高下一步离线布署SFC的效率.值得注意的是,Sun等人[43]根据来自现实企业网络的统计数据,观察到53.8%的网络功能是可以并行工作的.VNF并行工作意味着服务链长度的缩减,这将带来服务跳数和延迟的减少.文中提出了一种创新的框架NFP以实现网络功能并行性,提高NFV的性能.首先,NFP为运营商提供了一种规范描述方案,以直观地描述NF(network function)链接图.其次,NFP编排器基于数据包操作智能地识别NF间的依赖性,并自动将策略编译为高性能服务图.第三,NFP基础设施执行轻量级数据包复制、分布式并行数据包传递以及负载平衡的数据包副本合并.最终在Linux容器中实现了基于DPDK[44]的NFP原型系统.

Fig. 4 Example of SFC placement[47]

目前,在大多数的网络服务功能链资源管理研究中,SFC的组链多被假设为固定模式并当作部署阶段的默认输入.现有组链研究更多集中于系统工程的实现,设计一款根据用户具体需求,对VNF快速编排构建SFC的编排器是实现网络服务虚拟化的第一步,最终目标是实现细粒度的服务匹配.未来可以根据VNF对数据包的具体操作进行划分,对VNF之间的依赖关系进一步挖掘.

4.2 SFC部署问题

现有针对服务功能链的资源管理研究大多集中于SFC的部署阶段,对于1组网络服务SFC请求,需要在底层物理网络上进行VNF的实例化,分配资源并进行路由.目前有3种架构支持VNF的实例化:1)虚拟机架构.VM托管VNF,使用虚拟机监控程序管理其网络连接[45].2)裸机架构.VNF无需使用虚拟机监控程序即可直接访问服务器上的物理资源[46].3)容器架构.通过容器虚拟化部署VNF,容器是一种轻量级的虚拟化架构,可以在1台服务器上运行多种VNFs和其他应用程序.在现有理论研究中模型多采用虚拟机架构.

图4给出了SFC部署的一个简化示例,用户需要获取社交网络服务(例如,通过SFC登录Facebook服务器),假设SFC请求需要经过3种类型的VNF处理:Web代理(proxy)、防火墙(firewall, FW)和负载均衡器(load balancer, LB).底层网络中的服务节点上可以部署不同类型的VNF,在这种情况下有多种部署方案可以满足SFC的预定义顺序.由于底层网络中有限的物理资源(即CPU、内存和带宽等),寻找最优的折衷方案部署SFC以减少资源瓶颈成为一个挑战.此外,对于不同的服务场景,会针对特定的目标(如剩余网络资源最大、服务器功耗最小、特定QoS(quality of service)指标的提升等)来进行优化设计.

SFC部署问题可以看作是著名的VNE问题的泛化,而这已经证明是一个NP难的问题[48].整数线性规划(integer linear programming,ILP)常用于小规模网络SFC部署问题的建模求解,Bari等人[49]采用ILP模型建模,优化的目标是最小化运营支出和资源碎片,这其中包括了VNF的部署代价、能源消耗和流量成本等.利用CPLEX等计算工具可以得到小规模网络下的精确求解.但在大规模网络下运算会导致时间过长,因此文中设计了一种基于维特比算法的启发式方法用于大规模网络下的SFC部署.Mechtri等人[50]将底层网络有向图转换为资源矩阵,利用邻接矩阵的特征分解来解决分布式云环境中的VNF放置和选路问题;Khebbache等人[51]也采用基于矩阵分析和多阶段图的方法来找到多项式时间内的优化解,并在SFC的布置阶段设计了一种基于二分图完美匹配的算法.但是针对大规模网络,文献[49-51]在链接虚拟网元每个阶段都以贪婪的方式依次去布置VNF,从优化的角度来讲,采用启发式算法有助于提升求解效率并提高可扩展性,但可能导致SFC部署的次优解决方案.文献[52]针对数据中心场景,在贪婪部署SFC的基础上,设计了一个2阶段的启发式算法对贪婪解进行进一步调整,该方法面对时变网络负载可以有效地减少使用的服务器数量,进一步提高资源利用率.

除了ILP模型外,由于每个VNF实例的服务过程可以看作一个排队过程,排队模型也被应用于SFC的部署和调度[53].Zhang等人[54]基于Open Jackson排队网络模型对SFC部署和调度进行联合优化,相比ILP模型可以更好地模拟数据中心网络中的流量特性和拥塞状况;Tang等人[55]基于动态的排队模型来解决5G接入网络中的VNF部署问题,并利用Lyapunov优化方法,提出了一种基于遗传算法的SFC调度与映射算法;Elias等人[56]则将SFC的布置问题归结为非线性整数规划模型,目标函数是最大程度地减少网络拥塞.他们提出了一种基于博弈论的方法以完全分布式的方式解决问题,并获得了接近集中式部署算法的性能.

与上述研究工作不同,由于在SFC部署过程中可以选择复用已有的VNF实例,一些研究从多路径路由(multi-path routing, MRP)的角度出发求解SFC部署问题.Cao等人[57]基于分段路由方法提出一种竞争性在线流量控制算法,通过对偶变量更新和寻找最短路径来优化网络吞吐量.Dwaraki等人[58]提出了一种自适应路由算法来解决SFC的选路问题.在该算法中,虚拟网元请求被转换为分段图.文中提出了一种通过链路和节点的负载利用率测量来计算端到端延迟的方法,并通过执行常规的最短路径算法来最小化估计时延.Pei等人基于文献[57-58]的研究方法,在文献[59]中提出了一种区分流的路由算法,旨在最小化SFC请求的资源消耗代价.该算法将数据流根据资源偏好分为不同种类.不同流的资源代价被区别地定义用以平衡负载.但由于分段路由需要列举SFC请求中所有的可选网元位置,此计算代价在大规模网络部署时会非常高.Sallam等人[60]提出了一种虚拟网络图的简化方法,可以降低文献[57-58]中算法的计算复杂度.而后,他们将受SFC约束的最大流问题公式化为分数多商品流模型,以实现吞吐量最优的路由.Pei等人[61]则基于深度学习设计了一种新的路由方案,以减少分段路由方法的计算时间.性能评估表明,深度学习方法可以显著提高计算效率,并在请求成功率和端到端延迟方面获得与最短路径解几乎相同的性能.

上述研究中,多数集中于求解SFC的离线部署问题上,在求解过程中SFC请求默认已知并被一个个部署.然而在实际系统中,在不同时刻网络的载荷是动态变化的,SFC请求通常是事先未知、动态地产生和释放,且具有一定的生命时间;因此求解SFC的在线部署问题具有更强的实际意义,却也变得更加复杂.Zhou等人[62]针对地理分布云提出了一种基于原始对偶优化的布置方案,该方案能对SFC每次到来的请求实时寻求优化位置进行部署以减少资源代价.进一步地,在SFC的部署过程中也可以选择开启新的VNF实例进行服务,Pei等人[63]在SFC的在线部署时同时考虑复用已有实例和开启新实例,并在部署中对两者的代价进行权衡选择.为了有效地映射SFC请求并动态调整VNF实例的数量,还提出了一个VNF的动态释放算法来关闭冗余的实例.

针对在线布置,基于正则化的在线学习方法可以将离线部署问题转化为一系列单个时隙的正则化问题,借助历史流量记录,使用在线学习方法可以预测即将到来的资源需求;由于预测误差可被证明具有理论上界,因此近些年常用于求解SFC的在线部署问题.Zhang等人[64]将在线学习方法与用于VNF缩放的多时标优化算法相结合,通过最小化预测需求的误差,以最小化次优在线决策产生的代价.Fei等人[65]采用了一种广泛使用的在线学习方法FTRL(follow the regularized leader),以最小化预测SFC资源需求产生的误差.利用预测结果,可以根据处理能力自适应地分配VNF实例,理论分析和真实数据仿真均证明了该在线算法具有良好的性能保证.Jia等人[66]将在线学习方法应用于跨地理位置云数据中心的动态布署,该方法允许VNF的动态布署和释放,并设计了一个随机舍入方法来得到VNF数目的可行整数解,保证了和离线最优方案相比,在线方案在总成本上具有良好的竞争力.

除此之外,强化学习因为具有从历史经验和环境反馈中自学习决策的优点,常用于动态场景下的资源智能调度[67],也适用于求解SFC的布署问题.文献[68]中提出一种基于强化学习的多智能体服务链资源调度架构,基于经典算法Q学习进行服务链映射,根据系统状态、执行动作后的奖惩反馈来决定服务链中各虚拟网元的部署位置.实验结果表明该算法有效降低了业务的平均传输延时,提升系统的负载均衡性.Sun等人[69]基于Q学习提出一种SFC部署的混合模块算法,其中强化学习模块负责备选路径的输出,负载均衡模块负责从中多路径中选择最优解.但是上述论文在采用强化学习解决SFC部署问题时,状态空间的定义过于简单,实际在SFC部署时需要考虑的特征变量很多,而庞大的状态空间定义会造成求解复杂度的提升.深度Q学习网络(deep Q network, DQN)[70]能够有效处理大规模离散状态空间问题,适用于根据QoS需求细化部署SFC,可以作为进一步的研究方向.

网络功能虚拟化下服务功能链的部署问题是近几年网络虚拟化资源优化分配的研究热点;针对现有理论研究,可以看出研究场景正在从数据中心内部向着跨地理位置的分布式数据中心、边缘计算场景不断扩展,研究方法也从离线求解向着在线求解、线性规划+启发式算法向着智能学习算法发展.但是由于缺乏相关标准数据,现有理论文献也存在方法很难横向比较等问题.

4.3 SFC调度问题

一旦在物理节点上布署好VNF,SFC数据流通过VNF处理需要一定的时间.如何在多数据流并行处理的情况下,合理安排服务节点上的VNF执行顺序进行高效调度成为了一个问题.图5展示了一个SFC的调度示例,3条服务链等待被处理,底层网络有5个高容量服务器节点(high volume server, HVS)承载不同的VNF实例,假设同一时刻HVS只能对一种VNF请求进行服务,应该如何安排服务器上的VNF处理顺序来最小化总的SFC处理时间.

Fig. 5 Example of SFC scheduling[13]

相比SFC部署研究,目前针对SFC调度的研究较少.Riera等人[71-72]首次提出在光网络中将这一问题归结为资源限制下的柔性作业调度问题(flexible job shop scheduling problem, FJSP),这是一个经典的NP难问题,优化的目标是最小化总的工序完成时间.尽管在文中很好地形式化了该问题,但他们没有给出具体的求解方法.Mijumbi等人[73]假设VM可以按序处理多个VNF,在文中采用贪婪算法和禁忌搜索方法,用于在线布置和调度VNF,该算法同时执行映射和调度(1次完成),从而提高了请求接受率,缩短了平均工序时间并降低了嵌入代价.Qu等人[74]将SFC调度问题通过MILP(mixed integer linear programming)建模,考虑了服务过程中的传输时延和处理时延,基于遗传算法较好地求解了这一柔性作业调度问题,对比文献[73]中方法可以缩减调度时间.进一步地,Alameddine等人[75]综合考虑了SFC部署、路由和调度3个阶段的相互影响,对MILP模型进一步细化.由于规划求解的解空间太大,文中提出一种基于列生成(column generation, CG)的原始-对偶分解方法提升算法的可扩展性.Yao等人[76]也对SFC的部署和调度问题进行联合优化,为了降低线性规划的复杂度,文中创新性地提出一种VNF在线抢占式调度方法并允许VM动态地调整VNF的处理顺序.

但是上述研究[73-76]均是解决SFC的离线调度问题(即SFC数目已知,调度时间内VNF数量不变),当新的VNF请求到达时,它必须等待直到当前调度完成.在实际场景中,由于SFC的动态到达,针对SFC的在线调度显得更有实际意义.Pham等人[77]设计了一种基于匹配博弈的SFC调度方法,该方法可以很好地扩展至在线场景,达到资源限制下的“稳定调度”,且仿真结果优于文献[74].

现有单独针对SFC调度问题的理论研究较少,一般都是结合SFC部署进行联合优化.未来可以考虑结合SFC的在线部署进行在线调度方面的研究.类似地,参考文献[67]中的资源智能调度模型,采用强化学习等智能学习算法应该有助于该问题的求解.

Fig.7 Example of VNF migration

4.4 VNF按需缩放和迁移问题

针对NFV的两大性能要求:按需缩放和可迁移性,目前也存在一些研究.首先,针对VNF的按需缩放(这里指的是垂直缩放):不同的VNF一般被隔离在不同的VM中以共享物理资源.但每个VM的计算能力都有限,VM的负载不平衡会导致网络性能下降.在这种情况下,应该有一个有效的资源分配机制来适应VNF需求.

具体地,在每个服务器节点上,CPU内核在不同VNF之间通过多租户技术(multi-tenancy)[78]共享.图6显示了一个VNF间共享CPU的示例,其中2个不同的VNF共享4核CPU.如果VNF2需要更多的计算资源,而VNF1需要的计算资源较少.服务器节点应具有自适应的资源分配方案以平衡负载,该方案可以根据VNF的资源需求调整不同VM的容量分配(比如,将VNF1的CPU资源从2个内核重新分配到1个内核,但将VNF2的CPU资源从2个内核增加到3个内核).这可以视作一种基于虚拟机在线扩容机制的垂直按需缩放.

Fig.6 The CPU sharing among multiple VNFs[47]

对此,Buh等人[79]设计了一种软件定义设备中多核体系架构间的新型自适应流量分配机制,并通过在Linux Bridge网络设备上的测试进行了验证.Savi等人[80]讨论了服务器上包括线程切换成本(由重复的内容加载保存在同一CPU上引起)和扩展成本(由多个CPU内核之间的VNF负载均衡需求引起)带来的资源代价,并证实他们会影响SFC的嵌入性能.Kulkarni等人[81]提出了一个名为VNFnice的VNF调度和管理框架,以实现CPU资源的公平分配.在他们的工作中,每个VNF的负载被计算为数据流到达速率和估计服务时间的乘积,在数据包粒度上采用动态背压算法来管理拥塞.最后,基于DPDK平台在容器中进行虚拟网元的管理.

除了垂直按需缩放,基于虚拟机迁移技术的VNF在线迁移机制可以被视为一种水平的按需缩放.

图7给出一个数据中心场景下VNF迁移的简化示例,由于服务器间承载VNF的负载存在差异,可以通过迁出VNF2到VNF5所在的服务器来进行负载均衡.如果需要降低数据中心能耗,则可以选择迁出VNF5到VNF3所在服务器并关闭VNF5原有服务器.VNF的在线迁移机制能为服务功能链的资源管理带来很大帮助[82]:1)当节点处于过载状态时,可以触发迁移将某些VNF迁出到其他节点,使得各节点负载控制在合理范围[83];2)除了用于负载均衡的迁移,在节点利用率过低时也可以采用VNF迁移来进行聚合,文献[84]中讨论了在数据中心场景下,低流量期间关闭服务器带来的虚拟网元迁移问题,通过聚合VNF可以减少数据中心的能源消耗;3)当节点发生故障或者服务中断时,通过VNF迁移至备用服务节点快速地恢复业务[85-86],从而保障业务的连续性.

除了在线迁移外,VNF还可以通过重新安装或者关闭实例来进行水平的按需缩放,这2种方式在SFC的在线部署中需要进行权衡.文献[87]中对在VNF实例水平按需缩放过程中,应该直接重新安装VNF还是迁移VNF这一问题进行了讨论,文中提出基于最短服务中断时间(重启或迁移)的标准来判断VNF的水平缩放方式,并以最短延迟为目标优化VNF的部署路径.进一步地,文献[88]中在面对动态负载时同时考虑了垂直缩放和水平缩放,并提出通过服务中断时间来选择策略.

现有基于虚拟机迁移机制针对VNF的在线迁移研究较多,但是结合虚拟机在线扩容机制对于VNF垂直按需缩放的研究较少,未来可以针对具体场景探究选择合适的缩放模式来满足SFC的资源需求.

5 挑战与不足

目前,网络虚拟化资源管理引起了来自学术界和工业界的广泛关注,成为当前网络技术研究的一大热点.表2总结了网络功能虚拟化下服务功能链的理论研究现状,结合未来网络运维自动化、智能化的性能要求,我们认为现有研究中还存在3个问题:

1) NFV平台的处理性能问题.NFV旨在将虚拟化的网络功能部署在通用的硬件设备上,而通用硬件设备相比传统专业网络设备,缺乏硬件方面的优化,在进行一些特殊的网络服务时性能会有所下降.为了将NFV平台集成进现有网络,需要在硬件和软件两方面进行性能优化.

2) 现有理论研究过多关注方法的新颖性而忽略了在实际系统中的可行性.针对不同网络场景、网络拓扑、资源状况存在很大差异,例如数据中心网络拓扑主要采用胖树型[89-90]或递归层次结构[91],目前大型数据中心可以容纳超过12 000台服务器,高性能物理服务器可以容纳20部虚拟机[92].而在边缘计算场景,未来数据中心的基础设施向着分布式、小型化发展,在这种情况下更多的微型数据中心被布置在高楼、小区或者集成到通信基站中,其计算、存储资源通常很有限.未来如何根据不同服务场景,细化数学模型,选择合适的优化目标,依然是网络虚拟化资源管理研究的热点.

3) 多数理论研究只针对服务功能链编排的某一阶段进行优化,由于SFC编排的各个阶段是相互关联的,应考虑多个阶段进行联合优化.目前尚未提出相关算法协调解决3个以上阶段的资源分配问题,因此以协调一致方式进行多阶段的资源优化管理仍然是一个挑战.

针对现有理论研究趋势和存在问题,未来可以考虑从4个方面进行研究:

1) NFV平台的系统优化.文献[93]指出现有NFV系统需要在包处理效率、网络感知能力、系统可用性、可编程性和资源利用率方面进行提升.在VNF运行环境方面,文献[94]指出可以采用现有Intel的DPDK来提升VNF的网络处理性能.针对不同的虚拟机和虚拟机管理器,可以从网络驱动和系统网络栈方面进行定制优化.这方面的研究偏向于系统架构优化和工程实现,也是NFV从理论走向实践的关键.

4) 与其他软件定义的体系结构相似,NFV体系结构也容易因为软件漏洞造成安全问题.更进一步,通过攻击部分VNF,可能会导致整条SFC的服务失败.尽管已经有许多保护软件组件的网络安全解决方案,但是必须重新审视这些方案以适用于NFV和SFC.在安全上的一些未解决问题包括如何评估来自多个供应商的产品的可靠性、如何利用VNF的灵活性来防御分布式拒绝服务(DDoS)攻击等[95].此外,NFV技术的发展促进了企业的网络功能外包服务,但用户流量在第三方平台处理的隐私保护也成为一个值得研究的问题.

Table 2 Summary of State-of-the-art SFC Resource Management Study

6 结束语

网络服务功能链的实现是和现有网络新技术发展紧密结合的.首先,云计算技术的不断成熟引导着未来网络向着云网融合的趋势发展[96],基于云架构实现计算、存储、网络资源的弹性分配,构建以数据中心为主的智能通信计算基础设施已然成为业界主流选择.数据中心的虚拟化是云计算技术的核心,它需要通过服务器虚拟化、存储虚拟化和网络虚拟化来共同实现.相比服务器虚拟化和存储虚拟化,网络虚拟化的发展显得较为缓慢.而近些年来SDN和NFV的出现,又给网络虚拟化的发展注入了全新动力.

目前,SDN和NFV等网络新技术正在从理论研究走向实施阶段,并在数据中心、5G网络和天地一体化等网络建设中得到应用.本文对现有网络功能虚拟化下服务功能链资源管理的研究进行了综述,基于网络服务功能链的不同编排阶段(包括组链、部署、调度、按需缩放和迁移)展开讨论.指出了现有研究存在的一些问题并提出拟解决方案,未来有关网络服务功能链的资源管理依然是一个值得研究的课题.期待更多的网络运营商和通信设备厂商加大投入,进一步加速技术标准化进程,让SDN+NFV+SFC模式从理论走向实际应用,更好地驾驭未来复杂网络.

猜你喜欢

网络服务虚拟化调度
基于智慧高速的应急指挥调度系统
基于CE-PF算法的舰载机离场调度优化问题
水资源平衡调度在农田水利工程中的应用
基于网络服务者在侵权法中的应用分析
基于增益调度与光滑切换的倾转旋翼机最优控制
人事档案管理现代化
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
虚拟化整合之势凸显
虚拟化技术:绿色IT的希望