CN111404747B - 自适应的服务功能链并行处理的方法、设备及存储介质 - Google Patents
自适应的服务功能链并行处理的方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111404747B CN111404747B CN202010183805.XA CN202010183805A CN111404747B CN 111404747 B CN111404747 B CN 111404747B CN 202010183805 A CN202010183805 A CN 202010183805A CN 111404747 B CN111404747 B CN 111404747B
- Authority
- CN
- China
- Prior art keywords
- delay
- service
- vnfs
- parallel
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种自适应的服务功能链并行处理优化机制,一种自适应的强化学习方法,根据SFCs与网络环境的延迟特征,自适应的调整SFCs并行结构与部署、调度策略。首先提出基于装箱问题(Bin‑packing problem,BP)的并行度优化和部署算法,联合VNFs执行和链路传输延迟有效调节并行支链之间的延迟平衡;然后提出基于Q‑Learning的VNFs调度算法,实现多条服务请求的优化调度。本发明联合VNF的执行延迟以及链路传输延迟进行优化,以使SFC并行子链实现延迟协同,进一步提高SFC并行处理的性能;针对多SFCs的调度问题,提出了基于强化学习的VNFs调度算法,有效降低了服务总延迟,提高服务运营商处理效率和收益。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种自适应的服务功能链并行处理的方法、设备及存储介质。
背景技术
在数据中心网、运营商网络中,为了支持多样化的应用和用例,需要大规模地部署网络功能(Network function,NF),如防火墙,入侵检测设备,负载均衡器等。传统上,各种网络功能由专有硬件设备提供,越来越密集的专有硬件设备部署显着扩大了基础设施的安装和运营成本,减小了服务收益。网络功能虚拟化(Network function virtualization,NFV)提供了一种高效的解决方案,将网络功能与功能特定专有设备解耦,并通过运行在通用服务器上的虚拟网络功能来实现,显著的降低了部署成本,实现了灵活的功能放置和服务定制。
网络功能虚拟化(NFV)已经成为未来网路的关键技术之一,他为网络带来了柔性,低成本,且易于维护和部署的特点。在网络功能虚拟化中,网络服务由一系列预先定义的虚拟网络功能(Virtual network function,VNF)提供,称为服务功能链(Service functionchain,SFC),传统上,SFC中的虚拟网络功能按照特定顺序逐个处理,也叫SFC串行处理。然而,随着未来网络服务长度和需求多样性增加,服务功能链串行处理模式的延迟将随着链长而线性增加,这对于未来低延迟甚至超低延迟的服务来说是不可接受的,例如无人驾驶,远程医疗,实时分析任务,在线游戏等。为了减少服务功能链处理延迟,SFC并行框架逐渐成为了学术界与工业界的研究热点,由传统的SFC串行处理转向了SFC并行处理架构。
如果以顺序方式执行VNF,服务功能链的总处理延迟将会随着链长而线性增加,累积的VNF处理延迟可能会导致服务中断,因此,需要采用网络功能并行处理方法满足低延迟约束。SFC并行处理能显著的降低SFC的长度,并且降低SFC的延迟。但是在SFC并行处理的过程中也面临着着许多的问题,如VNF的并行性分析依然依赖手工完成,以及不同并行子链之间的延迟可能存在的巨大的差异从而导致等待延迟和数据包堆积以及资源浪费,而且尽可能多地并行VNFs可能不会获得最大的收益,反而会浪费可用的资源。例如,在图1中,经过依赖性分析后,可以并行执行VNF1,VNF2和VNF3。由于这些VNF的处理延迟不同,因此总处理延迟取决于最长的VNF处理延迟加上并行开销,图1的(a)中,VNF1和VNF2的处理时延明显比VNF3短,当VNF3处理完到达合并节点时,VNF1和VNF2可能已经处理了几个数据包,将造成数据包堆积现象,并且,在并行处理之前需要将数据包复制后并行的发送到各个并行支链,数据包的复制和合并将带来不可忽略的资源消耗和延迟。所以,在优化SFC的处理机制时,我们不仅要探索VNF之间的并行化可能性,还需要联合VNF执行时延优化服务功能链并行度,协同设计并行支链的路由规则,最大程度地减少服务延迟和资源消耗。相反,如图1的(b)所示,由于的VNF1,VNF2与VNF3处理时延相差较大,可以将VNF1与VNF2串行处理,VNF3单独并行处理,缩减了两条并行支链的延迟差异,减少了链路的占用以及由数据包复制和合并带来的额外延迟与资源消耗,处理结果与1的(a)是一样的。
目前,许多研究者已经提出了支持SFC并行处理的架构和方法,但是,目前的SFC并行处理方法仍然存在一些问题。如并行SFC的资源浪费以及并行支链延迟难以协同,并且仅针对单个SFC的优化并不能满足数以千计的服务性能和效率。
发明内容
为了解决上述问题,本发明提出了一种自适应的服务功能链并行处理机制,一种有效的平衡并行支链延迟的方法,首先将一条链中可并行处理的VNF并行化处理,并联合不同的VNF的执行延迟以及链路传输延迟进行优化,以使SFC并行子链延迟协同,进一步提高SFC并行处理的性能,并针对网络中大量SFCs请求提出了基于强化学习的SFCs调度算法,有效降低了服务总延迟,提高服务运营商处理效率和收益。
本发明旨在至少解决现有技术中存在的技术问题。为此,本发明公开了一种自适应的服务功能链并行处理的方法,如图2所示,所述方法包括:
步骤1,将一条链中可并行处理的VNFs并行化处理,并联合不同的VNFs的执行延迟以及链路传输延迟进行优化,以使SFC并行子链延迟协同;
步骤2,根据基于装箱问题(Bin-packing problem,BP)的并行度优化和部署算法,联合VNF执行和链路传输延迟调节并行支链之间的延迟平衡;
步骤3,通过基于Q-Learning的VNFs调度算法,在多条服务的情况下进行优化调度。
更进一步地,所述步骤2进一步包括:判断服务功能链中虚拟网络功能(VNF)的操作类型,给定VNFs之间依赖关系,将串行SFC转换为并行SFC服务图(Parallel SFC Graph,PSG),构建一个满足优化目标的PSG,并在在PSG中将关键路径定义为处理延迟最长的支链。
更进一步地,所述构建一个满足优化目标的PSG进一步包括:
步骤21,将PSG部署在底层物理拓扑中执行并找出PSG中决定总延迟大小的关键路径(critical path)及其延迟;
步骤22,基于所述关键路径的延迟,结合VNF处理时延以及VNF之间的传输时延,减小延迟相差太大的并行支链,消除不必要的并行性。
更进一步地,所述步骤3进一步按包括:假设SFCs请求集合为S,Si为第i条服务请求,定义二进制变量Xijk=1为Si对应的第j项功能由节点Nk处理,并且引入变量用表示边(u,v)属于Si源端到目的端所分配的路径之上.用表示VNF处理时延,luv为链路(u,v)的传输时延,多个SFCs的调度问题,目标函数为:
保证网络服务在处理功能请求时所调度资源满足现有网络条件,限定条件为:
式(8)中,τij-1表示第j-1项功能节点开始转发服务流Si的时间,αij表示第j项功能处理的开始时间,Mk为满足Si的fij功能资源需求的节点集,式(8)是为了保证服务功能链上的下一VNF处理开始时间必须在上一VNF数据发送与网络传播完成之后;(9)是为了保证服务流Si在传输之前满足j项功能所需的处理时间;式(10)表示服务流Si对应的源节点输入链路的数量与输出链路的数量关系;式(11)表示为目的节点输出链路的数量与输入链路的数量关系;式(12)是为了保证所选择路径无环,其中定义为服务Si所选路径上的边对应的顺序编号,如果所选边不存在或者(u,v)不是所选路径上的边,则 为所选路径节点集合Np的子集,2≤h<|Np|,h为整数;通过合理的调度物理节点Nk上的VNFs执行顺序,使最小化服务功能链Si的总延迟并实现不同的并行支链之间的延迟协同。
更进一步地,对于相同节点的不同VNFs的调度,如果存在满足VNF资源约束且着未部署的物理节点,首先判断是否存在空闲的VM节点,若存在,则将等待的VNF迁移到空闲的VM节点上;若不存在,对不同服务功能链的VNFs进行合理的调度以使排队延迟减少。
更进一步地,所述步骤3进一步包括:首先确定当前部署中是否存在交叉部署的物理节点Nk,如果不存在则跳出,否则继续执行;如果需要执行调度,先检查网络中是否存在满足VNF需求且未部署的节点,如果存在则将等待的VNF迁移到空闲节点进行处理,如果不存在则运行基于强化学习的调度算法调度VNFs。
更进一步地,所述步骤3中的基于Q-Learning的VNFs调度算法进一步包括:采用ε-Greedy算法选取动作,输入相关参数,首先将Q-table初始化用于训练,每次选择动作时,生成随机数λ,根据λ选择执行动作a,前期偏向于随机选择动作,到训练后期将更多根据Q-table选择动作,选取动作后计算该动作的回报r(st,at),更新Q-table用于下一次的动作选择,系统进入下一状态,经过不断迭代训练最终Q-table将收敛训练终止,最后根据收敛的Q-table选择效益最大的调度策略,输出VNFs执行时间。
本发明进一步公开了一种电子设备,包括:处理器;以及,存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的自适应的服务功能链并行处理的方法。
本发明进一步公开了一种计算机可读存储介质,其上存储有计算机程序所述计算机程序被处理器执行时实现上述的自适应的服务功能链并行处理的方法。
附图说明
从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。
图1为本发明的并行度优化示意图;
图2是本发明的一种自适应的服务功能链并行处理方法的逻辑图;
图3是本发明是单条服务功能链的优化部署示意图;
图4是本发明的多服务功能链部署优化示意图。
其中,图1中(a)表示完全并行,(2)为减少不必要的并行度;
图3中的(a)表示只考虑节点的资源需求而不考虑传输延时的情况下的部署,(b)所示,因为同时考虑了VNF的处理延迟以及链路传输延迟进行优化部署。
具体实施方式
1.并行度优化
服务功能链中虚拟网络功能(VNF)并行处理的基本前提是先判断网络功能的操作类型,给定一对VNF,如果两个VNF之间不存在依赖关系,则可以并行执行它们。例如,如果两个VNF都简单地执行读操作,则可以将它们并行化处理。如果一个执行读操作而另一个执行写入操作,则当且仅当它们不对同一字段进行操作时,才可以并行化它们。同样,如果两者都执行写操作(包括在数据包中插入/删除标头/位),因为修改的数据部分(标头或有效负载)可能重叠,则无法并行执行它们。
给定VNFs之间依赖关系,可以将串行SFC转换为并行SFC服务图(Parallel SFCGraph,PSG),研究发现并行度优化问题可以转化为在PSG中,关键路径大小作为容器容量(V)的装箱问题(Bin-packing problem,BP),在PSG中将关键路径定义为处理延迟最长的支链,直观地说,两个可并行VNFs支链处理延迟要尽可能的接近关键路径的处理延迟。为此,为了构建一个满足优化目标的PSG,我们将优化方法分为两个步骤。
第一步:找出PSG中决定总延迟大小的关键路径(critical path)及其延迟。
第二步:基于关键路径的延迟,联合考虑VNF处理时延以及VNF之间的传输时延,减小延迟相差太大的并行支链,消除不必要的并行性。
2.多服务功能链的调度
针对单条服务功能链的并行部署,虽然能起到一定的优化作用,然而只针对单个服务功能链的优化在实际的部署中还是远远不够的,因为在实际的服务请求中,往往面临着上千上万的服务请求,上一条服务还未完成,下一条服务已经到来。在这种情况下网络中同时部署的几条服务功能链,将带来SFCs执行调度问题,按照何种顺序执行这两个VNFs是一个优化问题,不同的调度方案将带来不同的服务收益。
传统的调度方法中,通过将节点中等待的VNF迁移到其他满足该VNF需求的节点执行减少VNF的排队延迟,该方法在节点充足的情况下能消除等待时延,但是在节点不充足或者节点资源有限的情况下,该方法将不再适用。为此我们设计了基于强化学习的VNFs调度方法,在多条服务的情况下进行优化调度。
3.算法设计
为解决上述问题,我们首先提出了基于延迟感知的并行度优化算法,消除并行服务图中不必要的并行链,其次将优化后的并行服务图协同底层物理拓扑进行优化部署,实现并行支链之间的协同,如算法1-3所示,算法1为SFC并行度优化算法,算法2为基于bin-packing的PSG部署算法,算法3为算法2中bin-packing算法的详细说明。最后设计基于强化学习的VNFs调度算法,优化多SFCs部署中的调度问题,如算法4-5所示,算法4为基于强化学习的VNFs调度算法,算法5为Q-learning算法,是算法4中强化学习方法的详细说明。
4.问题描述
假设S表示网络服务集,|S|代表服务集S的数量,[1,|S|]表示1~|S|的整数集合,Si表示对应网络服务i的服务功能链,其中i∈[1,|S|].每条服务功能链Si对应着一系列需要按规定顺序执行的虚拟网络功能,假设Si中含有|F|个虚拟网络功能(VNF),F表示虚拟网络功能f的集合,fij表示网络服务i所对应的第j个虚拟网络功能,i∈[1,|S|],j∈[1,|F|].网络拓扑由G=(N,L)表示,N和L分别代表节点集、链路集。此外,不论处理网络功能虚拟化虚拟机是位于服务器还是交换机,在这里统一为物理机,因此都用网络节点N来表示。假设fij部署到物理节点k∈N,则否则为0,VNF的处理时延表示为经过并行化分析后生成并行的服务图PSG,如果并行支链Px存在,则否则为0,则PSG含有Pe=∑Px条并行支链,每条并行支链Px为中含M个VNFs,如果fij属于支链Px,否则为0。
假设VNFfij和fij'在物理拓扑之间的路由路径为(Nk,Nk'),则fij和fij'之间链路传输延迟为D(Nk,Nk'),fij和fij'的资源需求为Rij,物理节点的资源容量为CNi。如果并行支链之间的延迟相差太大,将会导致数据包堆积和延迟等待,不同的并行支链之间的延迟差异为:
假设SFC的数据率为υ,则数据包堆积量为:E=υ*Δt。根据sun等人的研究(ChenSun,Jun Bi,Zhilong Zheng,Heng Yu,and Hongxin Hu.NFP:Enabling network functionparallelism in NFV.In Proceedings of the Conference of the ACM SpecialInterest Group on Data Communication,pages 43–56.ACM,2017),由并行处理的包复制和合并功能带来的额外资源消耗为:C=64*(Pe-1)/b,其中Pe为并行度即并行支链的个数,b为数据包大小。包复制和合并的带来的额外延迟大约为30ms/Gbps,额外延迟可以表示为Δd=30*λ。所以服务功能链的总延迟可以表示为:
我们的目标是最小化总的SFC延迟以及由于数据包复制带来的额外资源消耗以及最小化数据包堆积现象。目标函数O表示为:
O=min(αD+βC+ηE),α+β+η=1(3)
约束条件(4)使VNF只能属于一条并行支链,约束条件(5)使得VNF只能部署在一个节点,约束条件(6)限制要部署必须使物理节点资源满足VNF的资源需求。如前所述该问题可以转化为装箱(Bin-packing,BP)问题求解。
装箱问题定义为:给定一组bin={b1,b2...},bin大小分别为v,给定容积为V的容器,要求找出整数个bin使得填充箱子后剩余的体积最小,该问题是NP-hard问题。并行支链的延迟协同问题就是并行VNFs不存在先后关系的BP问题,由此该问题可以转化bin的大小与VNFs的处理延迟和传输延迟相匹配(也即是和传输延迟想匹配,因为VNF处理延迟是一定的),容器体积V与PSG中critical path延迟大小匹配的BP问题,critical path定义为决定SFC总延迟大小的关键路径,目标是找出最佳的部署策略和路由路径使得并行支链的总延迟与critical path协同,并减少总延迟与额外的资源消耗以及数据包堆积。
为了解决该问题本文提出了启发式的算法,通过两个步骤实现延迟感知的并行SFC优化部署。
5.并行PSG优化部署
为了解决由于并行度过高而引起的一系列问题,我们提出了一种延迟平衡的并行度优化和部署策略。考虑到SFC创建后每个VNF的处理延迟都是固定的,我们发现将处理延迟相对较小的几个VNF适当地连接到相同的并行分支中可以带来更好的性能。经过进一步的研究,发现新的并行分支的总处理延迟须与最大VNF处理时延相近,通过合理的引导路由路径,可实现传输时延的协同。这不仅改善了数据包堆积现象和延迟等待问题,而且降低了PSG并行度,减少不必要数据包复制和合并带来的额外开销,同时保证了SFC性能。
假设经过并行性分析生成并行服务图PSG={f1,....(fi..fj),...},其中括号内表示可并行的VNFs,其余为串行的VNFs。定义并行的VNFs集合为Mij=(fi....fj),定义接近变量ρ,Mij中如果存在y个VNFs处理时延之和与某个VNFfc处理时延相近(第5行),则可以将这y个VNFs放在同一条并行支链中(第6行),以此类推。优化前并行度Pe=(j-i+1-y),如果y个VNFs被放在同一条并行支链中,则Pe=(j-i+1-y),具体如算法1所示。
重构并行服务图后得到新的PSG,此时需要将PSG部署在底层物理拓扑中执行。部署过程中,首先要考虑VNF的资源需求(CPU或RAM)和底层物理节点的资源容量,注意到,仅仅考虑VNF执行延迟是不够的,因为在PSG中执行延迟协同的并行支链,并不能保证部署到底层物理节点后仍然是一致的,因此需要联合实际部署过程中链路传输延迟进行优化部署。
SFC需要映射到物理拓扑节点处理,如图3所示,上层为并行后的服务功能链,VNF上每个数字表示每个VNF的处理时延,下层为底层物理拓扑图,路径中的数字表示链路之间的传输延时。在(a)(b)两种SFC部署情况下,其中(a)只考虑节点的资源需求而不考虑传输延时的情况下的部署,此时并行支l1的延迟为(12+24+13+18+11)ms=78ms,并行支链l2的延迟为98ms,可见虽然进行了并行度优化但是两条并行子链的处理延迟依然相差较大,将会在VNF5之前带来延迟等待和数据包堆积现象,由此可见,仅仅优化服务功能链的并行度的仍不能保证并行处理的性能,还需要联合实际部署情况的下链路传输延时。相反,如图3(b)所示,因为同时考虑了VNF的处理延迟以及链路传输延迟进行优化部署,此时支链l1和支链l2的延迟都为78ms,完美的实现了多条并行支链之间的协同,解决了数据包的等待和堆积问题,提高了SFC的并行处理性能。具体部署算法如算法1-3所示。
假设优化后的并行服务图PSG中含有Pe条并行支链,首先遍历并行服务图SPG中延迟最大的一条支链定义为critical path,如图3中critical path为源节点-VNF1-VNF4-VNF5-目的节点,在实际的部署中还需要考虑服务的源和目的节点。将critical path利用最短路径算法进行部署,此时critical path的路径总延迟设为容量V,在剩余(Pe-1)条并行支链中,将支链中VNF的处理时延与链路的传输延时之和设置为bin的大小,问题转化为寻找合适bin(传输路径即传输延迟),使箱子的剩余体积最小(与critical path延迟协同)问题。
如算法2所示,算法首先找到并行服务图的关键路径critical path(第3行),利用最短路径算法找到critical path满足VNF资源需求的延时最短部署路径P,利用最短路径算法对critical path中VNFs部署得到路径P(第4行),将路径P的延迟设置为V(第5行),然后,剩余的(pe-1)条并行支链中的VNFs,将利用bin packing算法找到与critical path延迟协同的部署路径(第7-13行),最后输出VNF的部署节点Ni以及他们之间的路由策略L(Ni,Ni+1)。
输出的结果F=F+F',即是PSG的部署以及路由策略,其中Bin packing算法(第10行)详细步骤如算法3所示。
算法3中,输入为容积V(critical path延迟大小),非critical path中VNFs集合M={...fm...},VNF的资源需求为Rm,物理节点资源容量为物理节点之间的链路延迟为D(Ni,Ni'),算法首先找到满足fm资源需求的节点集合Nm(第4行),迭代的选择满足资源需求不同节点之间的路由路径(第6-8行),选择与V最接近的路径(第9行),最后,输出与fm对应的部署物理节点集合,VNFs之间的路由策略,其中ds为PSG中串行VNFs(如图3中VNF1和VNF5)的执行与传输延迟之和,特殊的,VNF1的传输延迟为源节点与VNF1之间的传输延迟,同理最后一个VNF传输延迟为与目的节点之间的延迟。
6.基于强化学习的SFCs调度算法
假设SFCs请求集合为S,Si为第i条服务请求,我们定义二进制变量Xijk=1为Si对应的第j项功能由节点Nk处理,并且引入变量用表示边(u,v)属于Si源端到目的端所分配的路径之上.用表示VNF处理时延,luv为链路(u,v)的传输时延.多个SFCs的调度问题,目标函数可以使用以下方式表示:
St:
式(8)中,τij-1表示第j-1项功能节点开始转发服务流Si的时间,αij表示第j项功能处理的开始时间,Mk为满足Si的fij功能资源需求的节点集,式(8)是为了保证服务功能链上的下一VNF处理开始时间必须在上一VNF数据发送与网络传播完成之后;式(9)是为了保证服务流Si在传输之前满足j项功能所需的处理时间;式(10)表示服务流Si对应的源节点输入链路的数量与输出链路的数量关系;式(11)表示为目的节点输出链路的数量与输入链路的数量关系;式(12)是为了保证所选择路径无环,其中定义为服务Si所选路径上的边对应的顺序编号,如果所选边不存在或者(u,v)不是所选路径上的边,则 为所选路径节点集合Np的子集,2≤h<|Np|,h为整数.
VNFs调度问题是一个典型的NP-hard问题,如果采用精确式的算法求解,其计算复杂度对于延迟敏感性的应用来说是不可接受的,只追求延迟最小化可能还是不能实现并行支链支链的延迟协同。假设并行服务功能链Si存在着λ条并行支链,我们的算法目标是合理的调度物理节点Nk上的VNFs执行顺序,使最小化服务功能链Si的总延迟并实现不同的并行支链之间的延迟协同。对于相同节点的不同VNFs的调度问题,如果存在满足VNF资源约束且着未部署的物理节点,可以将等待的VNF迁移到空闲的VM节点上,减少VNF的排队时延。但是如果不存在满足VNF资源条件的空闲VM节点,只能将不同服务功能链的VNF进行合理的调度,以使排队延迟减少,如图4所示,简单来讲就是在VM4决定先执行S1的VNF2,还是先执行S2的VNF1,不同的执行策略将带来不同的延迟效果,我们假设在VM节点Nk,存在着来自不同的Si的M个不同的VNFs(来自同一个Si的不同VNF肯定是按照顺序处理的不列入考虑范围),如前所述,xij为服务功能链Si中第j个VNF的开始处理时间,对于一个VNF开始处理时间有两种情况:在Si前一个VNF处理完之后开始处理,则或者等待同样部署在Nk节点的其他服务功能链Si,的第j’个VNF处理完,则问题转化为决定VNF的处理时间xij,使得额外的等待延迟较小。目标函数可以表示为:
假设当前服务功能链Si,VNF的资源需求为Rij,服务Si达到时间为当前Si中VNF部署的情况集合为:VNF的开始处理时间集合为X={xij},i∈[1,|S|],j∈[1,|F|],k∈M,u,v∈Np,假设当前节点Nk存在着M个来自不同SFC的VNFs{fi'j'},fi'j'与相邻部署节点的距离为di'j',当前M个VNFs的调度顺序为Sd。
SFCs调度算法如算法4所示,算法首先确定当前部署中是否存在交叉部署的物理节点Nk,如果不存在则跳出(第6行),否则继续执行。如果需要执行调度,先检查网络中是否存在满足VNF需求且未部署的节点(第9行),如果存在则将等待的VNF迁移到空闲节点进行处理(第10-15行),如果不存在则运行基于强化学习的调度算法调度VNFs(第17-18行)。
7.基于Q-Learning的VNFs调度算法
强化学习是人工智能领域机器学习技术中的重要方法之一,它区别于监督学习、无监督学习的地方在于其与环境交互的特点。强化学习是一种交互式的学习方法,强调在与环境的交互中学习获得评价性的反馈信号,在不需要给定各种状态下输入信号的期望输出情况下,通过最大化未来回报为学习目标。因此,强化学习具有自学习和在线学习的优点,在求解先验信息较少的复杂优化决策问题中具有广泛的应用场景。Q-Learning是强化学习算法中value-based的算法,Q即为Q(s,a)就是在某一时刻的s∈S状态(State)下,采取动作a∈A(Action)能够获得收益的期望,根据agent的动作反馈相应的回报R,算法的主要思想就是将状态与动作构建成一张Q-table来存储Q值,然后根据Q-table值来选取能够获得最大的收益的动作。
定义1:状态集。假设在一个节点中占用的VNFs个数为M个,当前的VNF状态为根据服务功能链的达到顺序执行,记为当前状态S={s1,s2,...sm}。
定义2:动作集。根据当前的VNF状态,需要智能的调度VNF的执行顺序,使服务总的实行时间较小(减小等待间隙),假设一个节点中占用的VNFs个数为M个,动作集中每一个动作对应选择一个VNF执行,则有M种动作。动作集为:A={a1,a2,...am}。
定义3:反馈函数。VNFs智能调度的目标是减小服务功能链执行总延迟(单位ms),并最小化不同并行支链的延迟差异(单位ms),因此该反馈函数的设置为:
R=0-α[Ls-Lp]-βΔD (14)
其中Ls和Lp分别表示调度后的M个VNFs总执行时间和原来的总执行时间;ΔD=(Ds-Dp)表示延迟差异的变化量,Ds和Dp分别表示调度前后不同并行支链之间延迟差异大小,其计算方法为不同并行支链总延迟差异之和,α和β为比例系数,α+β=1。
强化学习任务通常用马尔可夫决策过程(MDP)来描述。由于系统建模的马尔可夫决策过程中模型的状态转移概率未知,本文在模型中采用Q-learning算法来进行学习控制。Q-learning算法是一种模型无关的值迭代方法,不需要提前知道状态转移矩阵,以求解具有延时回报的序贯优化决策问题。Q-learning算法中,关键在于定义一个状态—动作矩阵Q(s,a),矩阵中的每一个值表示一个“状态—动作”对的值。每次在选取动作时,根据Q(s,a)矩阵来选取,假设当前的状态为St,则选取的动作需要满足:
本文采用ε-Greedy算法选取动作。以小概率ε随机选取一个动作进行探索,以概率1-ε来根据Q-table选取当前最佳动作,这样可以防止算法陷入局部最优的状态中。在算法中,ε随着循环次数动态变化,ω为学习循环次数。由于初始化Q-table是空的,因此在学习的前期动作选取上主要采用随机方式,能更好的去探索。而在学习的后期,Q-table逐渐进行填充完整,则动作选取上更偏向于根据Q-table计算生成。当动作选定后,执行该动作,系统进入下一状态St+1,同时也能得到系统的一个反馈r(st,at)。根据式(16)对Q-table进行迭代更新。
其中(st,at)为马尔可夫决策过程在时刻t的“状态-动作”对;st+1为时刻t+1的状态;r(st,at)为时刻t的回报;θ为学习因子,γ为回报的衰减因子。
Q-learning算法如算法5所示,输入相关参数,首先将Q-table初始化用于训练(第3行),每次选择动作时,生成随机数λ,根据λ选择执行动作a,前期偏向于随机选择动作,到训练后期将更多根据Q-table选择动作(第5-9行),选取动作后计算该动作的回报r(st,at),更新Q-table用于下一次的动作选择,系统进入下一状态(第10-12行),经过不断迭代训练最终Q-table将收敛(第14行)训练终止,最后根据收敛的Q-table选择效益最大的调度策略,输出VNFs执行时间(第15-17行)。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (9)
1.一种自适应的服务功能链并行处理的方法,其特征在于,所述方法包括:
步骤1,将一条链中可并行处理的VNF并行化处理,并行化处理后服务功能链存在多条并行的支链,在协同并行支链延迟的过程中,需要同时考虑链中VNF的执行延迟以及链路传输延迟进行优化,以使SFC并行子链延迟协同,为步骤2提供完全并行的服务链;
步骤2,根据基于装箱问题(Bin-packingproblem,BP)的并行度优化和部署算法,联合考虑VNF的处理延迟和链路延迟进行部署,实现了并行支链之间的延迟平衡;
步骤3,在步骤2部署完成以后,通过基于Q-Learning的VNFs调度算法,在多条服务的情况下进行优化调度。
2.如权利要求1所述的一种自适应的服务功能链并行处理的方法,其特征在于,所述步骤2进一步包括:判断服务功能链中虚拟网络功能(VNF)的操作类型,给定VNFs之间依赖关系,将串行SFC转换为并行SFC服务图(ParallelSFCGraph,PSG),构建一个满足优化目标的PSG,并在PSG中将关键路径定义为处理延迟最长的支链。
3.如权利要求2所述的一种自适应的服务功能链并行处理的方法,其特征在于,所述构建一个满足优化目标的PSG进一步包括:
步骤21,将PSG部署在底层物理拓扑中执行并找出PSG中决定总延迟大小的关键路径(criticalpath)及其延迟;
步骤22,基于所述关键路径的延迟,结合VNF处理时延以及VNF之间的传输时延,减小与主链延迟相差超过15%的并行支链,消除不必要的并行性,不必要的并行性是指并行以后延迟与主链延迟相差超过15%的支链。
4.如权利要求1所述的一种自适应的服务功能链并行处理的方法,其特征在于,假设SFCs请求集合为S,Si为第i条服务请求,定义二进制变量Xijk=1为Si对应的第j项功能由节点Nk处理,并且引入变量用表示边(u,v)属于Si源端到目的端所分配的路径之上,用表示VNF处理时延,luv为链路(u,v)的传输时延,多个SFCs的调度问题,目标函数为:
保证网络服务在处理功能请求时所调度资源满足现有网络条件,限定条件为:
式(8)中,E表示物理网络拓扑节点之间的链路结合,τij-1表示第j-1项功能节点开始转发服务流Si的时间,xij-1k表示来自服务链i的第j-1个VNF是否在物理节点k处理,如果是则xij-1k=1,否则为xij-1k=0,αij表示来自服务链i的第j项功能处理的开始时间,luv表示物理节点u和v之间的链路延迟,表示链路luv是否是属于服务链i的链路,如果是则为否则S为所有服务的集合,F为所有VNF的集合,Mk为满足Si中所有VNF资源需求的节点集,式(8)是为了保证服务功能链上的下一VNF处理开始时间必须在上一VNF数据发送与网络传播完成之后;
5.如权利要求4所述的一种自适应的服务功能链并行处理的方法,其特征在于,对于相同节点的不同VNFs的调度,如果存在满足VNF资源约束且着未部署的物理节点,首先判断是否存在空闲的VM节点,若存在,则将等待的VNF迁移到空闲的VM节点上;若不存在,对不同服务功能链的VNFs进行调度以使排队延迟减少。
6.如权利要求5所述的一种自适应的服务功能链并行处理的方法,其特征在于,首先确定当前部署中是否存在交叉部署的物理节点Nk,如果不存在则跳出,否则继续执行;如果需要执行调度,先检查网络中是否存在满足VNF需求且未部署的节点,如果存在则将等待的VNF迁移到空闲节点进行处理,如果不存在则运行基于强化学习的调度算法调度VNFs。
7.如权利要求6所述的一种自适应的服务功能链并行处理的方法,其特征在于,所述步骤3中基于Q-Learning的VNFs调度算法进一步包括:输入相关参数,首先将Q-table初始化用于训练,采用ε-Greedy算法选取动作,每次选择动作时,生成随机数λ,根据λ选择执行动作a,前期偏向于随机选择动作,到训练后期将更多根据Q-table选择动作,选取动作后计算该动作的回报r(st,at),(st,at)为马尔可夫决策过程在时刻t的“状态-动作”对,其中st表示t时刻的状态空间,at表示t时刻的动作空间,更新Q-table用于下一次的动作选择,系统进入下一状态,经过不断迭代训练最终Q-table将收敛训练终止,最后根据收敛的Q-table选择效益最大的调度策略,输出VNFs执行时间。
8.一种电子设备,其特征在于,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的自适应的服务功能链并行处理的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的自适应的服务功能链并行处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010183805.XA CN111404747B (zh) | 2020-03-16 | 2020-03-16 | 自适应的服务功能链并行处理的方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010183805.XA CN111404747B (zh) | 2020-03-16 | 2020-03-16 | 自适应的服务功能链并行处理的方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111404747A CN111404747A (zh) | 2020-07-10 |
CN111404747B true CN111404747B (zh) | 2022-09-16 |
Family
ID=71432584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010183805.XA Active CN111404747B (zh) | 2020-03-16 | 2020-03-16 | 自适应的服务功能链并行处理的方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111404747B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923722B (zh) * | 2021-10-11 | 2023-06-13 | 中国联合网络通信集团有限公司 | 数据传输方法、装置及存储介质 |
CN114172820B (zh) * | 2021-11-26 | 2024-03-05 | 广东技术师范大学 | 跨域sfc动态部署方法、装置、计算机设备及存储介质 |
CN114124713B (zh) * | 2022-01-26 | 2022-04-08 | 北京航空航天大学 | 操作级功能并行和自适应资源分配的服务功能链编排方法 |
CN115098278B (zh) * | 2022-06-28 | 2024-04-30 | 电子科技大学 | 一种基于微服务的数字孪生车间多场景交互方法 |
CN117411876A (zh) * | 2022-07-08 | 2024-01-16 | 中国电信股份有限公司 | 云资源池的服务控制方法、控制器及服务系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10491688B2 (en) * | 2016-04-29 | 2019-11-26 | Hewlett Packard Enterprise Development Lp | Virtualized network function placements |
CN109547241B (zh) * | 2018-11-14 | 2021-07-30 | 南京大学 | 一种基于Markov算法的面向NUMA架构的虚拟网络功能部署方法 |
CN110086675B (zh) * | 2019-05-05 | 2022-03-11 | 广东技术师范大学 | 服务链的构建方法、设备及计算机可读存储介质 |
-
2020
- 2020-03-16 CN CN202010183805.XA patent/CN111404747B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111404747A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111404747B (zh) | 自适应的服务功能链并行处理的方法、设备及存储介质 | |
US20220129302A1 (en) | Data processing system and method for heterogeneous architecture | |
Akbari et al. | A multi-objectives scheduling algorithm based on cuckoo optimization for task allocation problem at compile time in heterogeneous systems | |
Cai et al. | APPM: adaptive parallel processing mechanism for service function chains | |
CN106503791B (zh) | 用于有效神经网络部署的系统和方法 | |
CN111191934B (zh) | 一种基于强化学习策略的多目标云工作流调度方法 | |
CN104636204B (zh) | 一种任务调度方法与装置 | |
CN108092803B (zh) | 网络功能虚拟化环境中实现网元级并行化服务功能的方法 | |
US20220129408A1 (en) | Data actor and data processing method thereof | |
CN109144702A (zh) | 一种用于行列并行粗粒度可重构阵列多目标优化自动映射调度方法 | |
US11888931B1 (en) | Massively parallel in-network compute | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN117097806A (zh) | 一种微服务调用图部署和请求路由联合优化方法及系统 | |
Öz et al. | Scalable parallel implementation of migrating birds optimization for the multi-objective task allocation problem | |
CN118193209A (zh) | 一种基于阶段性策略梯度的预测式云平台资源调度方法 | |
KR102477243B1 (ko) | 파라미터 동기화 모델에 기반한 기계 학습 트레이닝 방법 및 그 트레이닝 시스템 | |
Chang et al. | Reinforcement learning approach for mapping applications to dataflow-based coarse-grained reconfigurable array | |
Asghari et al. | Bi-objective cloud resource management for dependent tasks using Q-learning and NSGA-3 | |
CN117354227A (zh) | 基于强化学习智能体探索优化的跨层路由方法及相关设备 | |
Huang et al. | Parallel Placement of Virtualized Network Functions via Federated Deep Reinforcement Learning | |
Bożejko | A new class of parallel scheduling algorithms | |
CN111813525B (zh) | 一种异构系统工作流调度方法 | |
Huang et al. | Alarge-scaletaskschedulingalgorithm basedonclus-tering and duplication | |
CN105308918B (zh) | 调度装置 | |
Genez et al. | Scheduling scientific workflows on clouds using a task duplication approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |