开放科学(资源服务)标志码(OSID):
网络功能虚拟化(Network Function Virtualization,NFV)技术将网络功能的实现从昂贵的硬件设备中转换到服务器上的虚拟设备中,旨在克服网络运营商(Internet Service Provider,ISP)日益增加的运营支出[1](Operational Expenditure,OPEX)问题。NFV将不同的网络功能(如防火墙、深度包检测、加密、解密等)与专用网络服务器分离,通过编排不同的虚拟网络功能(Virtual Network Functions,VNF)并将其映射到物理网络设施中以实现网络服务[2],从而有效地提高部署和管理的灵活性[3]。但由于物理位置的选择复杂多样、VNF改变流量的特性以及VNF之间存在依赖关系[4],因此充满了挑战性。
编排VNF并将其合理部署在物理网络中是NFV的关键技术之一[5],现有大量研究致力于VNF网络功能的实现,其中多数仅考虑了部署问题[6-7],例如,文献[8]制定了VNF中间件放置问题,其目的是最大程度地减少提供特定服务的实例总数,并提出具有恒定逼近率的渐近最优贪婪算法。文献[9]提出一种渐近最优的在线算法用于服务链的准入控制和中间件的增量部署。除集中讨论部署阶段的研究外,也有部分学者考虑了组成与部署联合优化问题,文献[10]探讨VNF资源优化的多阶段问题,研究服务功能链的协调分配和流量调度问题,提出一种基于CoordVNF的启发式方法来协调组成和部署两个阶段。另外,文献[11]考虑并探讨了具体流量变化的影响,文献[12]则进一步分析了VNF改变流的特性,并针对不同依赖关系状态提出了对应的放置算法。文献[13]证明了VNF改变流量的特性对成本的影响。但这些文献都未考虑VNF变化的相对资源需求对成本的影响,没有综合分析影响运营成本的具体因素。
为联合VNF组成与VNF部署两阶段共同优化,分析影响OPEX的具体因素,本文综合考虑VNF改变流量的特性、相对资源消耗、依赖关系以及部署方式的选择,提出一种面向成本的虚拟网络链组成和部署联合优化策略。将节点映射成本、链路映射成本、激活成本和能耗成本公式化为OPEX,建立混合整数非线性规划(Mixed-Integer Nonlinear Programming,MINLP)成本模型。根据依赖关系将请求集分成完全无序、部分有序和完全有序的VNF,并设计3种对应的优化算法,分析影响成本的不同因素。
1 虚拟网络功能部署问题虚拟网络功能(NFV)通过组成服务功能链(Service Function Chaining,SFC)并将其部署到物理网络中的方式来实现服务,完成了网络功能与物理设备的脱钩[14]。不同SFC组成与部署方式对成本的影响如图 1所示(彩图效果见《计算机工程》官网HTML版)。每个物理节点对应一个物理设备(Physical Machine,PM),如图 1(a)所示,当网络功能部署到未激活的PM上时,对应PM需要分配一定的资源,如CPU、内存等,用以实现对应类型的虚拟设备(Virtual Machine,VM),以实例化VNF[15]。
![]() |
Download:
|
图 1 不同SFC组成与部署方式对成本的影响 Fig. 1 The impact of different SFC composition and deployment methods on cost |
网络功能是执行特定功能的网络实体,本文用
服务功能链是服务流所需要遍历的一系列网络功能。假设共有K个服务请求,SFC请求集为
面向成本的VNF链组成与部署问题是通过编排合适的SFC并合理部署,从而最小化网络产生的OPEX。问题示例见图 1,请求集
将物理网络拓扑抽象表示为无向图
1)节点映射成本。部署一个VNF实例需要消耗一定成本,不同类型的VNF有不同的资源消耗需求,本文将这种资源需求称为节点映射成本,将服务链
$ {C}_{\mathrm{n}\mathrm{o}\mathrm{d}\mathrm{e}}=\sum\limits_{k}\sum\limits_{i-1}^{n}{d}_{{f}_{i}}^{k} $ | (1) |
$ {d}_{{f}_{i}}^{k}={r}_{({f}_{i-1}, {f}_{i})}^{k}{d}_{{f}_{i}}^{\mathrm{r}\mathrm{e}\mathrm{l}}={r}_{0}^{k}\prod \limits_{j}{\lambda }_{{f}_{j}}{d}_{{f}_{i}}^{\mathrm{r}\mathrm{e}\mathrm{l}}, \forall j < i $ | (2) |
其中:
$ w\left({d}_{{f}_{i}}^{k}\right)=\mathrm{l}\mathrm{n}\left({r}_{0}^{k}\right)+\mathrm{l}\mathrm{n}\left({d}_{{f}_{i}}^{\mathrm{r}\mathrm{e}\mathrm{l}}\right)+\sum\limits_{j < i}\ln\left({\lambda }_{{f}_{i}}\right) $ | (3) |
$ \sum\limits_{i}^{n}w\left({d}_{{f}_{i}}^{k}\right)=n\mathrm{l}\mathrm{n}\left({r}_{0}^{k}\right)+\sum\limits_{i}^{n}\ln\left({d}_{{f}_{i}}^{{\rm{rel}}}\right)+\sum\limits_{i}^{n-1}\left(n-i\right)\ln\left({\lambda }_{{f}_{i}}\right) $ | (4) |
由式(4)可知:SFC的节点成本变化与流和VNF无关,仅与VNF间的相对顺序
2)链路映射成本。将虚拟链路映射到物理链路中需要消耗一定带宽资源,不同的链路组成方式、映射方式会导致不同的链路成本。部署K条服务功能链的总链路成本可以表示如下:
$ {C}_{\mathrm{l}\mathrm{i}\mathrm{n}\mathrm{k}}=\sum\limits_{k}\sum\limits_{(x, y)\in {p}_{k}}{r}_{(x, y)}^{k} $ | (5) |
$ {r}_{(x, y)}^{k}={r}_{0}^{k}\prod \limits_{{f}_{i}}{\lambda }_{{f}_{i}},\;\forall {x}^{{'}}, (x, y)\in {P}_{k}, {x}^{{'}}\prec y, {\alpha }_{{f}_{i}, x\mathrm{{'}}}^{k}=1 $ | (6) |
其中:
$ w\left({r}_{(x, y)}^{k}\right)=\mathrm{l}\mathrm{n}\left({r}_{0}^{k}\right)+\sum\limits_{{\alpha }_{{f}_{i}, x}^{k}=1}\ln\left({\lambda }_{{f}_{i}}\right), \forall {x}^{{'}}\prec y $ | (7) |
$ \sum\limits_{(x, y)\in {p}_{k}}w\left({r}_{(x, y)}^{k}\right)=\left(\left|{p}_{k}\right|\mathrm{l}\mathrm{n}\right({r}_{0}^{k})+\sum\limits_{{\alpha }_{{f}_{i}, x}^{k}=1}\left(\left|{p}_{k}\right|-{h}_{xk}\right)\mathrm{l}\mathrm{n}({\lambda }_{{f}_{i}}) $ | (8) |
从式(8)可以看出:SFC的链路成本变化仅与已部署VNF之间的物理路径跳数
3)激活成本。在部署VNF之前,每个物理节点都需要消耗一定的成本来完成预配置等前提准备工作。激活成本由所激活节点的数量决定,用
$ {C}_{\mathrm{p}\mathrm{r}\mathrm{o}\mathrm{v}}=\sum\limits_{x}{z}_{x}{c}_{x} $ | (9) |
4)能耗成本。PM、VM一旦被激活,就会消耗一定的资源用于维持自身运转[20],而没有被激活的休眠PM、休眠VM基本不会产生能耗,一般不考虑。活跃PM与活跃VM产生的总能耗成本如下:
$ {C}_{\mathrm{e}\mathrm{n}\mathrm{e}\mathrm{r}\mathrm{g}\mathrm{y}}=\sum\limits_{x}\left({\mathrm{e}}^{\mathrm{P}\mathrm{M}}{z}_{x}+\sum\limits_{i}{\mathrm{e}}^{\mathrm{V}\mathrm{M}}{\eta }_{x}^{{f}_{i}}\right) $ | (10) |
综上,本文优化目标为最小化网络服务实现的总运营成本OPEX,表示为:
$ {C}_{\mathrm{O}\mathrm{P}\mathrm{E}\mathrm{X}}={\mu }_{1}{C}_{\mathrm{o}\mathrm{p}\mathrm{e}\mathrm{x}}+{\mu }_{2}{C}_{\mathrm{b}\mathrm{a}\mathrm{n}\mathrm{d}}+{\mu }_{3}{C}_{\mathrm{p}\mathrm{r}\mathrm{o}\mathrm{v}}+{\mu }_{4}{C}_{\mathrm{e}\mathrm{n}\mathrm{e}\mathrm{r}\mathrm{g}\mathrm{y}} $ |
OPEX受到以下约束:式(11)保证了每个请求的SFC都必须被部署到网络中,并且每个VNF只需要一个结点的虚拟机来实例化。
$ \sum\limits_{x}{\alpha }_{{f}_{i}, x}^{k}=1, \forall k\in K, {f}_{i}\in F $ | (11) |
VNF之间的依赖关系如式(12)所示:
$ i < j, \forall {f}_{i}\prec {f}_{j} $ | (12) |
每条物理链路上的流量之和不能超过其带宽容量
$ \sum\limits_{k}\sum\limits_{i}{r}_{(x, y)}^{k}{\beta }_{(x, y)}^{({f}_{i-1}, {f}_{i}), k}\le {B}_{(x, y)} $ | (13) |
式(14)、式(15)确保每个节点上所有VNF的总资源消耗不应超过其资源容量,即要满足各类型虚拟机的容量
$ \sum\limits_{k}{d}_{{f}_{i}}^{k}{\alpha }_{{f}_{i}, x}^{k}/{C}_{\mathrm{v}\mathrm{m}}^{{f}_{i}}\le {\eta }_{x}^{{f}_{i}}, \forall k\in K, {f}_{i}\in F $ | (14) |
$ \sum\limits_{i}{C}_{\mathrm{v}\mathrm{m}}^{{f}_{i}}\le {z}_{x}{C}_{x}, \forall k\in K, {f}_{i}\in F $ | (15) |
每个请求流不超过时延上限
$ \left|{p}_{k}\right|\le {D}_{k}, \forall k\in K $ | (16) |
VNF的联合链接和部署如式
$ {\alpha }_{{f}_{i-1}, x}^{k}+{\alpha }_{{f}_{i}, y}^{k}\le {\beta }_{(x, y)}^{({f}_{i-1}, {f}_{i}), k}+1 $ | (17) |
由于3种情况均需调用完全有序的VNF放置算法(TOCP)的部署方式,本节主要描述组成方式的影响与算法设计。由上文可知,将缩小流的VNF尽可能靠近源点放置,放大流的VNF尽可能靠近终点放置,可以将链路成本最小化。考虑到相对数据速率影响,对部署在同一节点上的VNF再次调整,可以在不改变链路成本的同时降低节点成本。同一节点上不同VNF部署顺序影如图 2所示,调整节点
![]() |
Download:
|
图 2 同一节点上不同VNF部署顺序影响 Fig. 2 Impact of different VNF deployment orders on same node |
完全无序VNF的组成与放置算法(NOCP)设计如下:
1)将
2)将
3)对部署在同一节点上的VNF通过全排列算法组合,并搜索具有最小
4)通过完全有序VNF的最短路径放置算法(TOSP)确定最终方案。
算法时间复杂度与TOSP相同,由于篇幅限制,该部分伪代码不再赘述。
3.2 部分有序的VNF算法设计部分有序的VNF需要考虑对应的依赖约束,本节主要描述部分有序VNF的组成与放置算法(POCP)中独有的依赖关系处理算法——部分有序VNF的SFC组合算法(PO-C)。根据NOCP设计原则可获得无依赖约束下的最优预部署方案,仅需对违背依赖约束的VNF进行调整。算法按照预部署的SFC顺序,依次将违背了依赖关系的
![]() |
Download:
|
图 3 依赖关系调整过程 Fig. 3 Adjustment process of dependency relation |
PO-C算法如算法1所示,将违规重组的
算法1 部分有序VNF的SFC组合算法(PO-C)
输入 请求
输出 符合约束的有序SFC队列
1.将
2.for each
3.if
4.
5.if
6.
7.
8.
9.
10.
11.end if
12.end if
13.end for
14.return
完全有序VNF组成的SFC顺序固定,链路成本变化取决于物理链路长度,而能耗成本和激活成本则取决于激活的PM、VM数。为优化OPEX,应尽可能地将VNF放置在相同或相近的物理节点上。为此,TOCP从最短路径开始,按序依次部署VNF。优先考虑复用已激活的VM、PM数,若其剩余资源不足,再尝试开辟新的VM、PM数,以免浪费。得到一组请求集的部署方案后,再尝试在该方案中关闭活跃度较低的节点,并迁移VM以进一步节约成本。
分析TOCP算法可知:寻路时使用DFS回溯算法,时间复杂度为
算法2 完全有序VNF的放置算法(TOCP)
输入
输出
1.
2.while
3.获取从
4.while
5.i=1,j=1,
6.while
7.if
8.j++,continue;
9.end if
10.if
11.
12.else if
13.
14.i++;
15.end if
16.end while
17.if
18.
19.end if
20.end while
21.end while
22.寻找虚拟机数最少且出入度最小的活跃节点
23.while
24.
25.end while
26.return
为保证模型可行性和算法的有效性,仿真实验建立在真实的网络拓扑中,数据来自SNDlib[21]。算法使用JUN框架搭建,运行在2个Intel Core I5-8300H处理器和128 GB内存的机器上。对NOCP、POCP算法,实验选择在较大规模和流量的城域网络newyork(
本文引入3种不同的算法进行比较:
1)首次适应(FF)[4]算法。从流路径的首部开始,按照缩放比升序连续放置排序后的VNF。
2)随机拟合(RF)[11]算法。在满足约束条件的前提下,随机组成并放置VNF。
3)LFGL算法[12]。将缩减流量的VNF从路径首部按照缩放比升序放置;其余VNF从流路径尾部开始按照缩放比降序放置。
为减少部署方式的干扰,3种比较算法与NO-shortest均采用最短路径算法放置,各算法性能表现如图 4所示,其中图 4(a)是各算法比NOCP多的节点映射成本,可以看到NO-shortest各项性能均优于3种比较算法。并且,在相同的部署方式下,不同的组成方式造成的成本差将随着请求流的增大而不断扩大。对比NO-shortest,采用不同部署方式的NOCP仅牺牲了一点链路成本,能耗成本和激活成本上性能显著提高。
![]() |
Download:
|
图 4 完全无序VNF仿真结果 Fig. 4 Simulation results of complete non-order VNF |
对于部分有序的VNF,实验假设VNF间存在依赖关系:
![]() |
Download:
|
图 5 部分有序VNF仿真结果 Fig. 5 Simulation results of partial-order VNF |
由于TOCP在不同流量大小下的实验与NOCP、POCP结果类似,本文不做赘述。本节考虑资源受限时TOCP的性能变化。由于VNF完全有序时,式(2)、式(6)为线性关系,系统模型为混合整数线性规划(Mixed-Integer Linear Programming,MILP)模型。通过采用OPL语言建模,并使用CPLEX12.7求解得到了MILP模型结果。同时,引入采用最大限度激活VM思想的HEU[23]算法作为对比实验进行比较。为减少不同初始SFC设置的干扰,统一设置请求由长度为3的SFC组成:
![]() |
Download:
|
图 6 完全有序VNF仿真结果 Fig. 6 Simulation results of total-order VNF |
网络功能虚拟化技术在实现网络灵活管理的同时降低了OPEX,对网络供应商有重要意义。本文考虑面向OPEX的VNF链组成与部署联合优化问题,研究不同依赖关系下的VNF组成与放置,分析流量缩放比、相对数据率、依赖关系以及部署方式对OPEX的影响。建立一种新的MINLP成本模型,并根据依赖关系的不同将请求集分成完全无序、部分有序和完全有序3种情况,设计相应的启发式算法。实验结果验证了本文算法的有效性。下一步考虑引入流量预测、网络可靠性评估、请求动态调度等算法,提高算法的可扩展性,以应对真实网络环境中的各种突发情况。
[1] |
GOLKARIFARD M, CHIASSERINI C F, MALANDRINO F, et al. Dynamic VNF placement, resource allocation and traffic routing in 5G[EB/OL]. [2021-02-20]. https://arxiv.org/abs/2102.09426.
|
[2] |
BHAMARE D, SAMAKA M, ERBAD A, et al. Optimal virtual network function placement in multi-cloud service function chaining architecture[J]. Computer Communications, 2017, 102: 1-16. DOI:10.1016/j.comcom.2017.02.011 |
[3] |
SU R Y, ZHANG D Y, VENKATESAN R, et al. Resource allocation for network slicing in 5G telecommunication networks: a survey of principles and models[J]. IEEE Network, 2019, 33(6): 172-179. DOI:10.1109/MNET.2019.1900024 |
[4] |
MA W R, BELTRAN J, PAN Z L, et al. SDN-based traffic aware placement of NFV middleboxes[J]. IEEE Transactions on Network and Service Management, 2017, 14(3): 528-542. DOI:10.1109/TNSM.2017.2729506 |
[5] |
YI B, WANG X, LI K, et al. A comprehensive survey of network function virtualization[J]. Computer Networks, 2018, 133: 212-262. DOI:10.1016/j.comnet.2018.01.021 |
[6] |
UMRAO B K, YADAV D K. Algorithms for functionalities of virtual network: a survey[J]. The Journal of Supercomputing, 2021, 77(7): 7368-7439. DOI:10.1007/s11227-020-03502-9 |
[7] |
SCHARDONG F, NUNES I, SCHAEFFER-FILHO A. NFV resource allocation: a systematic review and taxonomy of VNF forwarding graph embedding[J]. Computer Networks, 2020, 185: 107-118. |
[8] |
SANG Y, JI B, GUPTA G R, et al. Provably efficient algorithms for joint placement and allocation of virtual network functions[C]//Proceedings of IEEE International Conference on Computer Communications. Atlanta, USA: IEEE Press, 2017: 1-9.
|
[9] |
LUKOVSZKI T, SCHMID S. Online admission control and embedding of service chains[C]//Proceedings of International Colloquium on Structural Information and Communication Complexity. Montserrat, Spain: Springer, 2015: 104-118.
|
[10] |
BECK M T, BOTERO J F. Scalable and coordinated allocation of service function chains[J]. Computer Communications, 2017, 102: 78-88. DOI:10.1016/j.comcom.2016.09.010 |
[11] |
MA W, SANDOVAL O, BELTRAN J, et al. Traffic aware placement of interdependent NFV middleboxes[C]//Proceedings of IEEE Information Conference on Computer Communications. Atlanta, USA: IEEE Press, 2017: 1-9.
|
[12] |
MA W R, BELTRAN J, PAN D, et al. Placing traffic-changing and partially-ordered NFV middleboxes via SDN[J]. IEEE Transactions on Network and Service Management, 2019, 16(4): 1303-1317. DOI:10.1109/TNSM.2019.2946347 |
[13] |
CHEN Y, WU J. NFV middlebox placement with balanced set-up cost and bandwidth consumption[C]//Proceedings of the 47th International Conference on Parallel Processing. New York, USA: ACM Press, 2018: 1-10.
|
[14] |
HALPERN J, PIGNATARO C. Service Function Chaining(SFC) architecture[EB/OL]. [2021-02-20]. http://www.nic.funet.fi/rfc/rfc7665.txt.pdf.
|
[15] |
MOUSTAFA N, MASHALY, ASHOUR M. Modeling and simulation of energy-efficient cloud data centers[C]//Proceedings of 2014 International Conference on Engineering and Technology. Cairo, Egypt: IEEE Press, 2014: 1-5.
|
[16] |
CITRIX. Cloudbridge[EB/OL]. [2021-02-20]. https://www.citrix.com/content/dam/citrix/en_us/documents/products-solutions/cloudbridge-technical-overview-jp.pdf.
|
[17] |
WANG L, LU Z, WEN X, et al. Joint optimization of service function chaining and resource allocation in network function virtualization[J]. IEEE Access, 2016, 7: 8084-8094. |
[18] |
CISCO. NAT order of operation[EB/OL]. [2021-02-20]. https://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/6209-5.html?dtid=osscdc000283.
|
[19] |
BOUET M, LEGUAY J, COMBE T, et al. Cost-based placement of vDPI functions in NFV infrastructures[J]. International Journal of Network Management, 2015, 25(6): 490-506. DOI:10.1002/nem.1920 |
[20] |
MARTINS J, AHMED M, RAICIU C, et al. ClickOS and the art of network function virtualization[C]//Proceedings of the 11th USENIX Symposium on Networked Systems Design and Implementation. Seattle, USA: ACM Press, 2014: 459-473.
|
[21] |
ORLOWSKI S, WESSÄLY R, PIÓRO M, et al. SNDlib 1.0-survivable network design library[J]. Networks, 2010, 55(3): 276-286. |
[22] |
KASHANI Z H, SHIVA M. BCH coding and multi-hop communication in wireless sensor networks[C]// Proceedings of 2006 IFIP International Conference on Wireless and Optical Communications Networks. Bangalore, India: IEEE Press, 2006: 1-5.
|
[23] |
史久根, 张径, 徐皓, 等. 一种面向运营成本优化的虚拟网络功能部署和路由分配策略[J]. 电子与信息学报, 2019, 41(4): 973-979. SHI J G, ZHANG J, XU H, et al. Joint optimization of virtualized network function placement and routing allocation for operational expenditure[J]. Journal of Electronics and Information Technology, 2019, 41(4): 973-979. (in Chinese) |