0%

【论文笔记】Latency-aware VNF Chain Deployment with Efficient Resource Reuse at Network

本文研究了网络边缘场景下的VNF放置问题,旨在最小化整体(服务器和链路)资源消耗,提出了一种延迟感知的两阶段方案,即搜索路径的约束深度优先搜索算法(CDFSA) 和部署VNF的基于路径的贪心算法(PGA)。

论文简介

论文名称:Latency-aware VNF Chain Deployment with Efficient Resource Reuse at Network Edge
论文作者:Panpan Jin, Xincai Fei, Qixia Zhang, Qixia Zhang, Fangming Liu, Bo Li
发表会议:INFOCOM 2020 (CCF-A)
研究方向:NFV 网络功能虚拟化
关键技术:邻接矩阵重构, 深度优先搜索, 贪婪算法
主要创新:网络边缘场景、延迟保障、两阶段(先边后点)
下载论文

缩写词汇表

缩写 描述 全名
VNF 虚拟网络功能 Virtual Network Function
SFC 服务功能链 Service Function Chain
AP 接入点 Access Point

研究背景

  • 研究问题:VNF部署问题
  • 研究场景:网络边缘
  • 优化目标:在满足延迟要求的前提下,最小化服务器和链路的资源消耗
  • 研究难点:需同时考虑服务器和链路资源消耗
    • Path 1:虽选择了最短路径,但由于d2没有VNF2需要即时运行,这会产生额外的计算资源消耗
    • Path 2:虽避免了新开服务器,但链路要长于Path 1

问题建模

Network

无向图 G=(U,D,E)

  • U:Users,表示用户的集合
  • D:Devices,表示网络边缘中所有服务器硬件设备的集合,如接入点(ccess points)、交换器(switches)和路由器(routers)等
    • 对于一个设备diD,其计算资源为Ci
  • E:Edges,表示服务器间物理链路的集合
    • 对于边e(u,v)E,表示设备dudv间链路,其带宽资源为B(u,v)

SFC Request

不同的用户有不同的服务需求,每个SFC由一组由顺序的VNF序列组成

  • N:表示各种类型VNF的集合
  • S:表示各种SFC的集合
  • P:表示每个SFC实际部署链路的集合

对于用户uiU其请求的SFC为Si

  • 其中VNF个数为|Si|,第l个VNF为silSi
  • Φill表示silsil间的子链
  • Ti,nl表示第l个VNF的类型是不是nN
  • (ϕi,ti,ri)分别表示Si的source,destiination和flow rate
    • ϕi是一组Si的AP的集合,它们分布在不同的边缘云上,距离用户ui非常近
    • 每个SFC只能选择一个ϕi种AP来进行网络访问,如第k个AP di,kϕi
    • 每一个AP di,k实质仍对应一台服务器djD,其处理能力表示为αj
    • 对于ri,假设流速始终不变,且为单流
  • piP是该SFC被放置的物理链路的集合
    • {e(d1,d2),e(d2,d3),e(d3,d4)}

问题约束

计算资源约束 Resource Capacity

  • 一台服务器上的VNF可以同时被不同的SFC使用,使得它的剩余处理能力得到利用
  • 对于服务器djD,其运行的VNF种类的数量为Yi,n
  • 其中,对于类型为n的VNF,其所消耗的计算资源为Rn
  • 当服务链所需VNF类型已经运行在dj上时,不需新开VNF,即Yi,n不变;否则,新开一个VNF实例且Yi,n=Yi,n+1

每台服务器dj运行实例所需计算资源不超过其最大计算资源Cj

nNYj,nRnCj,djD

链路资源约束 Bandwidth Capacity

同样,每条链路e(u,v)所负载的带宽资源不超过其最大容量B(u,v)

SiSΦillSiZi(u,v)llriB(u,v),e(u,v)E,1l<l|Si|

  • Zi(e,u)ll:表示服务链Si的子链Φill是否经过链路e(u,v)E

处理能力约束 Processing Capacity

每台服务器dj对所有VNF的实际处理能力不超过其最大能力:

SiSsilSiTi,nlXi,jlriYj,nWn,nN,djD

  • Wn:对type-n VNF的处理能力
  • Xi,jl:表明SFC Si 的第lVNF是否运行在服务器dj
    • 特别地,此处假设SFC为单流,即SFC中的一个VNF只能运行在一个服务器上
    • djDXi,jl=1,SiS,l[1,|Si|]

延迟约束 Latency Limitation

本文考虑了两种延迟:

  • 排队延迟(queueing delay)
    • qj:SFC在AP dj 处排队产生的延迟
    • 对于每个AP,将其建模为一个M/M/1队列,则其满足Little law
    • qj=1αjSiSAi,jri
      • 式中,Ai,j表示Si是否从dj接入网络
      • 每个SFC仅有一个AP,故有djDAi,j=1,SiS
  • 传播延迟(propagation delay & transmission delay)
    • li(u,v):SFC Si在链路e(u,v)上进行传输产生的延迟

故总延迟为:

djDAi,jqj+ΦilSiZi(u,v)llli(u,v)βie(u,v)E,SiS,1l<l|Si|,j=u if l=1

运行约束 Running VNF

对于Si,其所有VNF都应当被运行

silSidjDXi,jl=|Si|SiS

优化目标

同时最小化服务器和链路的资源消耗

mindjDnNYj,nRn+e(u,v)ESiSΦillSiZi(u,v)llri s.t. (1),(2),(3),(4),(5),(6),(7),(8)

算法模型

Overview

问题难点

  • 该问题是NP-hard问题
  • 无法预测未来的SFC,只能最小化当前SFC的资源消耗

解决方案

两阶段:选择路径 -> 部署VNF

对于Si=(ϕi,ti,ri)

  1. 选择路径:寻找从ϕidi的满足约束的所有预规划路径PiΛ
  2. 部署VNF:对于每个路径pPiΛ,尽可能多的复用已运行的VNF来进行实际部署
  3. 最优方案:选择其中资源消耗最少的方案

选择路径

路径需满足

  • ϕi开始到ti结束
  • 实际延迟不超过延迟限制
  • 每条边都满足可用带宽约束

构建矩阵

首先,构造无向加权图(见(a))G=(D,E;w1,w2)w1w2分别表示该边的延迟和剩余带宽

重构矩阵

为了找到网络中所有对服务链Si={si,s2,,s|Si|}可用的服务器和链路,本文构建了一个基于G加权混合多图H=(D,E;w)(见(b)),w是指每条边的延迟。重构步骤如下:

考虑服务器约束

首先将Si的所有AP djϕi加入到H,其它的服务器需满足以下条件之一才会被加入H

  1. 其剩余计算资源大于Si所需的最小计算资源Rmini(整条SFC中计算资源需求最小VNF的值)
  2. 它正在运行着的VNF中有SFC所需的VNF类型
考虑链路约束
  • 一个服务器可能会被部署两次,部署路径可能会出现环
  • 为了达到优化目标,每一条边仅可被通过2次,且需不同方向

每条链路e(u,v)的最大通过次数有三种情况

  • 2次:当B(u,v)ri>1即剩余带宽资源大于需求时,加入权值为延迟l(e,v)的有向边(u,v)(v,u)H
  • 1次:当B(u,v)ri=1即剩余带宽资源等于需求时,加入权值为延迟l(e,v)的无向边(u,v)H
  • 0次:当B(u,v)ri<1即剩余带宽资源不足时,不加入H
服务器通路验证

如果没有边与某服务器相连,就从H中移除它。

CDFSA

Constrained Depth First Search Algorithm

链路邻接矩阵 M:存储H中的信息

M[u][v]=M[v][u]={0, if there is no link, 1, if there is an undirected link 2, if there are two directed links. 

链路延迟矩阵 E:其每个元素E[u][v]表示链路(u,v)的延迟为l(u,v)

算法流程

  • 初始化:邻接矩阵M和延迟矩阵E
  • 对于每一个AP djϕi
    • 当前节点 u=dj
    • 总延迟 Lt += qj 排队延迟
    • 寻找从当前节点uti的路径
      • 记录节点选择顺序(加入栈cp中)
      • 遍历图H中的每一个节点v
        • 若边e(u,v)是可通过的 (M[u][v]>0) 且满足延迟约束 (Lt+E[u][v]<βi)
          • 如果该边是有向边(M[u][v]=2),则将边e(u,v)不再是可通过的边(M[u][v]=0)
          • 如果该边是无向边(M[u][v]=1),则将该边e(u,v)e(v,u)都不再可通(M[u][v]=0,M[v][u]=0)
        • 更新当前节点 u=v
      • 更新总延迟
    • 递归调用,直到u=ti,返回cp并加入PtΛ

部署VNF

部署时应满足

  • VNF需顺序部署
  • 被部署的服务器满足计算资源约束
  • 尽可能重用已运行的VNF

构建矩阵

对于一个候选路径pPtΛ

  • 其中边个数为k,则服务器个数为k+1
  • 其服务器组成为p={sp0,sp1,sp2,,spk}

Si-p关系矩阵 A

  • 矩阵形状为|Si|×(k+1)
  • A[l][j]表示VNF slSi能否重用服务器spj,需满足两个约束:
    • 该服务器已运行着此类VNF
    • 该服务器对此类VNF的剩余处理能力满足约束
    • A[l][j]={1 if W(dj),(nl)ri00 otherwise. 

示例如下

A=(d0d1d2d3d2d4d4s00101010s10010101s20101010s31110100)

PGA

A Path-based Greedy Algorithm

每个VNF有两种服务器可部署

  • type-R:可复用的,已运行该类VNF的服务器
  • type-V:可新开的,有足够资源新开VNF的服务器

对于每个被部署的VNF sl 有四种情况

  • 情况1:先找到type-R,即最优方案
  • 情况2:先找到type-V再找到type-R
  • 情况3:仅找的type-V
  • 情况4:两种都没找到,部署失败,拒绝该SFC

可以发现,对于每个VNF部署,最多只需尝试2种可选服务器

最优方案

对于每个候选路径pPiΛ,利用上述算法可以得到了其局部最优方案。之后,在这些候选路径中,选择资源消耗最少的方案,即为最优方案。

实验评估

设计实验

底层网络

网络拓扑

用不同大小的网络拓扑模拟不同的网络规模

名称 节点数 边数
Bellsouth 51 66
Cogentco 197 245
Kdl 754 899
服务器节点

为了模拟运行中的网络状态,每个服务器

  • 当前剩余可用资源为[0,200]单元
  • 预先随机放置[0,8]种类型的VNF(共20种)
物理链路

每条链路的带宽资源为[0,1000] Mbps

服务功能链

SFC依次到达系统,为每个SFC从底层网络中随机挑选一组源节点(APs)和目标节点

  • 每个AP处理能力为[100,200]
  • 每个VNF所需计算资源[20,50]节点
  • 流速为[3060] Mbps
  • 生存周期为[30,80] ms

每一次实验重复20次来消除偶然性

对比算法

  • Shortest Path Heuristic + First Fit Assignment (SHP+FF)
  • Constrained Depth-First Search Algorithm + First Fit Assignment (CDFSA + FF)
  • Shortest Path Heuristic + Path-based Greedy Algorithm (SHP+PGA)

评估指标

运行时间

资源消耗

SFC长度+流速影响

流速

SFC长度

平均延迟

总结思考

  • 场景新颖:在网络边缘场景,且考虑了延迟
  • 矩阵重构:提出了混合图来对链路访问进行限制
  • 先边后点:两阶段解决方案,先选路径后进行VNF部署