基于NFV的分布式SDN控制器节能机制
2019-03-18孙莉莉王兴伟张闯闯李婕
孙莉莉 王兴伟 张闯闯 李婕
1 引言
美国斯坦福大学提出的SDN面向于校园网,目前在互联网和网络核心层面被广泛研究[1]。其特点是分离控制平面和底层交换机的功能,可在控制平面形成网络的全局视图[2],并支持通过南向接口对网络资源进行分配,通过北向接口对控制平面进行编程以实现可编程网络[3]。可见,SDN的核心部分为控制器,直接决定了网络的性能和SDN架构实现的效果[4]。
SDN(Software Defined Network)集中式控制器存在单点失效问题,其安全性和扩展性都面临挑战。分布式控制器有效地解决了集中式控制器单点瓶颈及可扩展性问题[5],但分布式控制器之间需要不断通信以维护全局视图。随着网络扩大,本地网络视图策略或者把全局网络视图策略实现的分布式控制平面的通信开销导致的能耗均在不断增大。为了满足最大峰值时的网络流量,需要部署大量的SDN控制器以保证网络性能。在非峰值期,大量控制器处于空闲状态。控制器开启后,无论处于空闲状态还是负载状态,均消耗同样的能源[6]。目前,SDN可有效地管理数据中心网络,但在大规模多控制器数据中心网络中,降低能耗方面并未充分发挥其功能[7]。因此,SDN控制器能耗问题有待研究。
NFV(Network Function Virtualization)通过虚拟化使得虚拟网络功能按需接入资源共享池[8]。相对于传统网络基础设置,NFV架构可节省50%的能源[9]。
目前,国内外学者在合理部署分布式控制器以最小化开销[10]、SDN灵活休眠模型[11]、基于能量感知对控制器进行布局以提高SDN节能可能性[12]、NFV在大规模网络中减少能源[13]、5G网络中NFV能量效率[14]等方面的研究已經取得了一定的成果。目前,已有研究多专注于SDN分布式控制器的部署问题,对于休眠算法只考虑当前控制器负载,未考虑长期效能。NFV架构可以减轻能耗,为SDN控制器节能带来了新的可能性。在SDN中通过NFV思想引入虚拟层,不仅可以解决网络流量过大时控制器处理能力不足的问题,还可以有效地降低SDN控制器能耗。
本文架构主要针对教育网,采用分级管理进行逻辑集中控制,对物理设备进行集群管理。根据网络状态需求动态虚拟化控制器,虚拟化的控制器只需要满足网络当前所需功能不必实现物理控制器所有功能。本文主要工作:1)建立控制器数学模型并设置节能优化目标;2)提出虚拟控制器数量自适应调整算法,根据网络流量变化动态虚拟控制器;3)提出控制器负载自适应调整算法,调整虚拟控制器负载;4)结合物理控制器频率缩放策略以减少能耗;5)当网络负载过小时,提出基于节能和时延优化的控制器休眠算法,在网络流量过小时可休眠部分控制器以节约能耗。
2 相关工作
在SDN节能方面,文献[10]提出MIP线性方法及基于贪婪算法的启发式算法来找到近似最优的控制器布局,解决分布式控制平面中的通信开销问题。文献[11]提出了基于排队理论和遗传算法的SDN灵活休眠模型。该模型在流量较少时,利用包含平均时延、分组丢失率和队列长度等信息的成本函数,计算预期总成本。通过遗传算法找到决策的最优值以休眠部分空闲的控制器。文献[12]研究如何合理放置分布式控制器,以最大限度地提高SDN节能的可能性,提出二进制整数程序(BIP)模型,在路径延迟和控制器负载约束下,控制网络能量消耗最小化。文献[7]提出了E3MC能量感知模型,在流量较小时关闭部分冗余设备,将相关流量整合到其他设备。在数据平面,主要考虑流量汇聚和流量分割;在控制平面,主要考虑多控制器的SDN大规模网络的节能。文献[15]提出了基于Hybrid Flow架构关闭集群控制器来提高效能的方法,并介绍了M-N休眠策略。但是,对SDN控制平面能耗研究中,多关注于SDN分布式控制器部署,且已有的休眠算法中只考虑当前控制器的负载,未考虑长期效能和休眠后消息处理的优先级问题。
在NFV节能方面,文献[13]介绍了NFV在大规模网络中以虚拟功能替代传统网络中间件的模式,该模式可减少大量能源的消耗。文献[14]研究了5G网络中引入NFV可能带来的能耗效益。贝尔实验室提出GWATT来解决NFV中的能耗问题,文献[16]利用GWATT,证明了在虚拟化情况下,网络流量增加甚至更能节约能耗。可以看出,NFV架构可切实有效地降低网络能耗,为进一步解决SDN控制器节能问题提供了可能性。
3 系统架构
系统架构主要包含六个模块:模块1为控制器负载检测,用于实时监测网络负载情况;模块2为控制器CPU频率缩放策略,在网络负载较小时对物理控制器进行降频;模块3为虚拟控制器数量自适应调整算法,根据网络状态自动调整虚拟控制器数量;模块4为控制器负载自适应调整算法,实时监测控制器的负载情况以对各个控制器的负载情况进行调整;模块5为基于节能和时延优化的控制器休眠算法,对空闲的控制器进行休眠;模块6为控制器和交换机消息映射模块。根据模块3、模块4和模块5的输出结果调整控制器与交换机之间的映射关系,系统架构如图1所示。
控制器负载检测模块实时检测网络中控制器负载,根据负载情况触发不同模块。虚拟控制器数量自适应模块在物理控制器流量负载过大、处理时延增加时被触发。根据网络当前状态虚拟部分控制器以协助物理控制器完成相应功能,降低物理控制器负载,同时避免物理控制器冗余而造成资源浪费。为了保障虚拟控制器的处理能力,同时设计控制器负载自适应调整模块,实时监控物理控制器和虚拟控制器的负载情况,以进行负载调整。当物理控制器负载较小时,为保证平均时延同时减少能耗,启动控制器频率缩放策略缩放物理控制器CPU的频率以降低能耗。当物理控制器负载过小时,在确保相应的物理控制器被休眠后,全网仍能正常工作的情况下,启动基于节能和时延优化的控制器休眠模块,将相应的物理控制器进行休眠,并将传输给被休眠的物理控制器的相应包,转发给其他物理控制器进行处理。
4 控制器节能问题数学模型
4.1 物理控制器模型
本文利用一个三元组来表示物理控制器:
其中,控制器标识为。表示物理控制器状态,代表物理控制器被休眠,代表物理控制器开启。表示控制器CPU频率。
控制器能耗主要与CPU的负载相关[11],修改控制器能耗公式。休眠状态能耗和开启状态下能耗计算公式分别如(1)和(2)所示。
其中,休眠能耗为固定常数。开启状态能耗为。 表示域控制器在CPU状态为且负载的情况下产生的能耗,其中中的表示CPU支持的频率状态集合。是控制器在CPU频率为状态且空闲状态下的能耗。是控制器在CPU频率为状态下满载的能耗。是控制器在状态下CPU的利用率。是一个实验测量的值。
4.2 虚拟控制器模型
本文利用NFV概念在SDN控制平面引入虚拟控制器以减少物理控制器能耗,可根据需求开启或关闭虚拟控制器。利用二元组表示虚拟控制器:
其中,虚拟控制器标识为。表示虚拟控制器的状态,当时,虚拟控制器处于关闭状态,当时,节点处于休眠状态,否则虚拟控制器处于开启状态。
虚拟控制器处于关闭状态时能耗为0,虚拟控制器能耗计算公式如(4)和(5)所示。
其中,虚拟控制器休眠时能耗为固定常数。为虚拟控制器开启状态时的能耗,。 为虚拟控制器负载为u时产生的能耗 。是虚拟控制器满载下的能耗。u是虚拟控制器CPU的利用率。是一个实验测量的值。
4.3 优化目标
能耗最小化为本模型的优化目标,控制器能耗计算公式如(7)所示。
其中,物理控制器数量为。第i个物理控制器具有的虚拟控制器数量为。第i个物理控制器的能耗和第i个物理控制器的第j个虚拟控制器的能耗分别为和。公式(1)和(2)可计算物理控制器i处于休眠状态和开启状态下的能耗。(4)和(5)可用来计算虚拟控制器不同状态下能耗。
其中,表示交换机i的流量是否由控制器j处理,交换机i的时延小于交换机j的时延表示为。控制器i和控制器j的时延为。控制器j和控制器k的时延为。约束(9)表示时延较小的交换机请求由域内虚拟控制器优先处理,约束(10)表示交换机到其他域的物理控制器的时延不超过D,约束(11)表示控制器处理一个交换机当前所有流量。
5 控制器节能算法
为避免保障网络流量峰值而过量部署物理控制器造成大量能源浪费,设置虚拟控制器数量自适应调整算法,根据网络状态自动调整虚拟控制器数量。同时,因虚拟控制器处理能力有限,为了保障虚拟控制器的处理能力,设计控制器负载自适应调整算法,实时监测控制器的负载情况以进行调整;当网络流量过小,为进一步降低能耗,提出基于节能和时延优化的控制器休眠算法,对空闲的控制器进行休眠。
5.1 虚拟控制器数量自适应动态调整算法
当物理控制器负载过重导致处理延时增大时,可以开启通过NFV引入的虚拟控制器,协助物理控制器完成包处理。虚拟控制器数量计算公式如(12)及(13)所示。
其中,需要增加的虚拟控制器数量表示为。当前控制器集群需要提供的負载表示为。当前控制器集群能够处理的最高负载表示为。虚拟控制器能够处理的最高负载表示为。-1代表每次最多减少一个虚拟控制器,表示向上取整。需要调整的虚拟控制器数量表示为。当前虚拟控制器数量表示为。应分配的虚拟控制器数量为,其值大于0。
首先,根据公式(12)计算出需要调整的虚拟控制器的数量。当需要增加虚拟控制器数量且需要增加的虚拟机数量小于已休眠的虚拟机数量,则唤醒相应数量的休眠虚拟机。当需要的虚拟控制器数量大于休眠的虚拟控制器数量,就将所有的休眠虚拟控制器切换为工作状态,并打开相应数量的处于关闭状态的虚拟控制器,若需要减少虚拟控制器,为保证流量波动对系统性能的影响,每次只休眠一台虚拟控制器。并且在整个过程中控制休眠的虚拟控制器数量不会一直增加,保证休眠的虚拟机数量小于工作态的虚拟机数量。
5.2 控制器负载自适应调整算法
在数据包处理分配时需要平衡各交换机的时延,规定物理控制器传输时延大于虚拟控制器传输时延,即时延较高的数据包由物理控制器处理。来自同一个交换机的消息由同一个虚拟控制器或物理控制器处理以更好地管理流量。在流量动态变化中,基于上述机制可能导致流量负载不均,为保证处理时延及负载均衡,设计控制器负载自适应调整算法。
虚拟控制器和物理控制器的负载情况被实时监控,以用于决定是否进行负载调整,算法2的触发策略:
(1) 算法1执行后,若输出的虚拟控制器的数量被调整,则控制器的负载需要被调整;
(2) 物理控制器的最高负载为,当物理控制器的负载超过阈值,则物理控制器的负载需要被调整;
(3) 虚拟控制器的最高负载为,当虚拟控制器的负载超过阈值,则虚拟控制器的负载需要被调整。
其中,交换机数量为。域内物理控制器和虚拟控制器的总数量为。列1,列2至n分别代表交换机和物理控制器及交换机与虚拟控制器之间的映射。消息由j处理表示为,不存在映射表示为。
根据算法1的输出,若虚拟控制器的数量增加或不变时,先判断物理控制器是否过载,若过载则计算需要转移的负载以调整物理控制器负载。然后计算虚拟控制器的平均负载,判断虚拟控制器是否过载,若过载则调整虚拟控制器和交换机之间的映射。若根据算法1的输出,需要减少虚拟控制器的数量,先判断虚拟控制器是否过载,若未过载则更新虚拟控制器和交换机之间的映射,否则更新虚拟控制器和交换机以及物理控制器和交换机之间的映射。
根据上述机制,提出了控制器负载自适应调整算法,其伪代码如算法2描述。
5.3 物理控制器休眠算法
由交换机到睡眠控制器的延迟以及睡眠控制器到被选择控制器的延迟构成,表示传送到睡眠控制器信息的延迟。由控制器进入睡眠状态节约的能源以及负载转移给其他控制器增加的能耗构成,表示睡眠控制器节约的能源。
[5] H. G. Ahmed and R. Ramalakshmi. Performance Analysis of Centralized and Distributed SDN Controllers for Load Balancing Application[C].Proceedings of the International Conference on Trends in Electronics and Informatics , Tirunelveli, 2018:758-764.
[6] D. B. Rawat and C. Bajracharya. Software Defined networking for reducing energy consumption and carbon emission[C]. Proceedings of the SoutheastCon. Norfolk, VA, 2016: 1-2.
[7] Xie K, Huang X, Hao S, et al. E3MC: Improving energy efficiency via elastic multi-controller SDN in data center networks[J]. IEEE Access, 2017, 4: 6780-6791.
[8] R. Mijumbi, J. Serrat, J. Gorricho, N. Bouten, F. De Turck and R. Boutaba. Network Function Virtualization: State-of-the-Art and Research Challenges[J]. IEEE Communications Surveys & Tutorials, 2016,18(1): 236-262.
[9] Network Functions Virtualisation (NFV); Infrastructure Overview, https://www.etsi.org/deliver/etsi_gs/NFV-INF/001_099/001/01.01.01_60/gs_NFV-INF001v010101p.pdf 2015.1.
[10] M. Obadia, M. Bouet, J. Rougier and L. Iannone. A greedy approach for minimizing SDN control overhead[C]. Proceedings of the 2015 1st IEEE Conference on Network Softwarization (NetSoft). London, 2015: 1-5.
[11] Yonghong F U, Jun B I, Jianping W U, et al. A dormant multi-controller model for software defined networking[J]. China Communications, 2014, 11(3): 45-55.
[12] Hu Y , Luo T , Beaulieu N C , et al. The energy-aware controller placement problem in software defined networks[J]. IEEE Communications Letters, 2017, 21(4): 741-744.
[13] Z. Xu, F. Liu, Tao Wang and H. Xu. Demystifying the energy efficiency of Network Function Virtualization[C]. Proceedings of the 2016 IEEE/ACM 24th International Symposium on Quality of Service. Beijing, China, 2016: 1-10.
[14] A. Al-Quzweeni, A. Lawey, T. El-Gorashi and J. M. H. Elmirghani. A framework for energy efficient NFV in 5G networks[C]. Proceedings of the 2016 18th International Conference on Transparent Optical Networks (ICTON). Trento, Italy, 2016: 1-4.
[15] Qiu C, Zhao C, Xu F, et al. Sleeping mode of multi-controller in green software-defined networking[J]. Eurasip Journal on Wireless Communications & Networking, 2016, 2016(1): 282.
[16] Mijumbi R. On the Energy efficiency prospects of network function virtualization[J]. Computer Science, 2015: 1-6.
[17] Yang L, Dick R P, Memik G, et al. HAPPE: Human and application-driven frequency scaling for processor power efficiency[J]. IEEE Transactions on Mobile Computing, 2013, 12(8): 1546-155.