基于SDN的云中心动态负载均衡方法
2015-01-04匡玉雯
王 勇,匡玉雯
(1.桂林电子科技大学计算机科学与工程学院,广西桂林 541004; 2.桂林电子科技大学信息与通信学院,广西桂林 541004)
基于SDN的云中心动态负载均衡方法
王 勇1,匡玉雯2
(1.桂林电子科技大学计算机科学与工程学院,广西桂林 541004; 2.桂林电子科技大学信息与通信学院,广西桂林 541004)
为了实现基于数据流级的动态负载均衡,将SDN技术应用于云数据中心,提出一种基于SDN的云中心动态负载均衡方法。该方法利用SDN技术在流和任务调度上灵活性的优势,通过Open Flow协议对服务节点流量及负载状况进行实时监测。当系统发生负载失衡时,控制器可全局化调配网络资源负载,通过更精确的动态修正,保证系统在长期运行时负载不会发生明显倾斜。仿真实验表明,该方法实现并保证负载在长时间不会发生倾斜,且能提高系统吞吐量。
软件定义网络;云计算;数据中心;动态负载均衡
近年来,随着社会的进步和科学技术的高速发展,带来人类生活品质的提升,人们对网络服务类型(FTP、P2P、Web、云服务等业务)需求更多元化,网络性能要求也越来越高。而随着用户的增多及业务需求越来越复杂,传统网络体系架构越来越难以满足用户和业务的需求。
云计算[1]虽然将资源(计算资源、网络资源、存储资源)整合并动态灵活部署、优化配置,但是信息产业的发展并不是一蹴而就的。初始阶段人们对信息系统的处理能力要求较低,业务类型简单,服务提供者只需购置少量的设备就可对外提供服务。而云计算平台是开放的、面向大众的平台,其用户数量庞大,业务种类复杂。因此,云计算中心出现网络资源急剧消耗、大量业务无法开展等一系列问题。解决该问题最简单直接的方法就是增加网络带宽,升级网络设备,重新购置新的基础设施,在资金有限的情况下,此方法显得并不可取,并且对网络服务质量改善较小。加之,传统网络架构中数据转发与控制紧耦合,网络创新性和可编程方面存在不足,设备研发、测试及应用的时间长,网络新应用需要重新制定协议与标准,网络管理和维护困难。因此,在不增加网络设备的情况下,如何对网络中的资源进行更为灵活和合理的分配是当前亟待解决的关键问题。此时,下一代可编程网络架构[2]——SDN的诞生为云中心网络资源管理提供了新的解决方案。
1 SDN技术架构
软件定义网络[3](software defined network,简称SDN)是一种基于控制与转发分离的技术架构,支持集中化的网络控制,实现了底层网络设施对上层应用的透明,具有灵活的软件编程能力,可以灵活满足云服务中不同用户的应用需要。
SDN技术架构由下到上包括基础设施层、控制层、应用层,其架构如图1所示。
图1 SDN架构Fig.1 SDN architecture
1)基础设施层。由大量OpenFlow交换机构成,负责数据流表的收集、数据流的转发。
2)控制层。包含逻辑中心的控制器,负责运行控制逻辑策略,统筹数据平面资源、制定转发策略、记录并更新状态信息,同时对网络拓扑结构和全网视图进行维护,并将全网视图抽象成网络服务。
3)应用层。有大量的应用或软件,负责加载与开展各类应用业务;允许第三方或用户自由选择网络操作系统、开发自己的网络管理软件和应用,在此过程中无需对底层设备进行技术细节的操作,只需通过简单网络编程就能实现对新应用的快速部署,且不会影响物理设备的正常运行。
2 SDN技术应用于云中心优势
2.1 网络虚拟化及多用户支持
随着服务器、桌面、应用、存储等虚拟化技术的广泛应用,网络虚拟化[4-5]在云计算发展中起着重要作用。网络虚拟化的目的是在逻辑上把一个物理的网络划分成多个逻辑网络,同时,也提供了一种强有力的方式,使得多个网络体系结构同步运行在一共享的物理设施上。传统VLAN被限制在4096个独立段内,而很多大型化云计算中心的客户远超过4096个,如果采用多个、支持自由VLAN空间的非叠加网络隔离用户,受限于多种网络技术之间复杂的相互影响和作用,不能满足多用户支持。设计要达到完全虚拟化是非常困难的,经常有一些网络限制,能采用局部方案处理,但会在架构的其他地方产生不利影响。而基于SDN架构的云中心网络不仅具有可编程能力,且支持大量相互隔离的用户,识别不同用户的网络流量,同时,突破虚拟网络对个数的限制及虚拟机频繁迁移的业务需求。
2.2 灵活的网络控制与资源管理
云计算平台需对资源进行统一管理,按需分配,而不能像传统的网络服务一样,数据传输独立决策,缺少全局规划,只能根据设备自身所掌握的有限局部链接情况进行数据处理决策,对数据传输没有任何保障,容易发生拥塞,难以保证用户的良好体验。
然而,SDN的分布式部署和集中式管理的全新思想在云计算平台上具有先天优势。其中,控制器可通过OpenFlow协议探测网络拓扑结构、感知底层网络拓扑变化、检测流量状况,在控制层建立并维护整个网络的拓扑视图、资源表等。根据每个虚拟机所在的位置及网络的不同状况,能自适应地为数据转发制定、调整合适的路径和队列管理策略,减小网络发生拥塞的概率,提升网络资源利用率,从而实现云计算中心平台对用户需求的QoS保证。
2.3 方便的运行维护
在传统网络架构中,由于硬件系统封闭,软硬件紧耦合在一起,用户无法自行修改,造成不能及时支持用户的新业务、新需求。管理者需要深入基础网络对设备逐台人工配置,费时费力造成运维成本高。而SDN技术架构提供了开放、灵活的API接口,使用户或第三方软件厂商可根据业务需要快速开发APP应用程序来直接控制底层网络资源,提高网络的利用率。而集中化的自动化配置能提高故障的解决速度,降低运行成本。
3 基于SDN动态负载均衡方法的设计
基于SDN的动态负载均衡方案借鉴Plug-n-Serve[6]在斯坦福大学的计算机系大楼部署SDN方案及文献[7]中的结构,设计系统如图2所示。其结构包括3部分:1)由服务器和客户端组成的各个底层对象;2)由Open Flow交换机组成的OpenFlow交换网络;3)由SDN控制器组成的数据决策平台。
图2 基于SDN的动态负载均衡架构Fig.2 Dynamic load balancing framework based on SDN
图2中控制器主要功能模块由流量检测、负载计算、负载均衡、流管理等4个单元组成。
3.1 端到端的流量检测模块
在传统的数据中心网络中,流量检测只能通过端口镜像的方式复制某条链路上的全部流量,这种手段的弊端之一是检测流量极大。然而,基于SDN技术架构的流量检测,可直接获取交换设备的流量统计信息,做到端到端的准确、方便、快捷的动态流量监控与统计[8-9]。
3.2 快速的负载计算模块
快速流量计算模块在SDN架构中比传统的网络架构具有明显的优势。首先,它可直接接收流量监测模块的数据,快速统计各个网络的流量状况;其次,可根据服务的需求状态和各处流量状况全局化合理分配网络资源。
定义1 负载均衡参数:
其中:i为服务节点编号;LA(t)为服务器的平均负载;Li(t)为服务器节点i在时间t的负载量;N为OpenFlow交换机中处理该服务所有的服务器节点数目。将负载均衡参数δ(t)定义为方差的形式,也是为了更好地体现网络负载的不均衡情况,即δ(t)越大,各节点的负载分布越不均匀,δ(t)越小,各节点的负载差异越小,而δ(t)等于0时,则所有服务节点的负载字节数相等,这种情况在流调度中为完全理想状态。因此,在t时刻,网络中的负载均衡情况与δ(t)成负相关关系,这也是该算法中最重要的参数之一,直接反映网络中负载均衡的情况,作为负载调度的一个触发策略参数。
3.3 动态负载均衡模块
该模块包括2步:1)先对基于流的哈希负载调度,将任务用散列性更好的异或位移Hash散列算法均匀地将网络流分配到后端各个服务器节点处理,此时的处理为传统的静态负载均衡方案,但OpenFlow交换机是以流速转发的,由于每一条流的大小不一,采用传统Hash的负载均衡算法,无法避免局部节点负载过重现象发生,无法保证系统在长时间运行时,负载不会发生倾斜。2)给系统设定一个平衡度,通过不断监测系统,当监测到系统发生倾斜时,基于最大最小调度原则(即将最大流调度到负载最轻的节点上)对相关节点的流量进行流调度,使整个系统始终处于动态平衡。
定义2 动态负载均衡阈值Ω(最大倾斜度)发生倾斜时,需要调用动态负载均衡算法时的波动最大值。当δ(t)>Ω时,负载出现倾斜,触发并运行动态流调度策略对负载进行动态调整。将最大流调度到负载最小的节点,最小流调度到负载最大的节点,以平衡节点负载,实现整体动态平衡。此时,相当于系统自我恢复平衡。
3.4 灵活的流管理模块
流管理模块将具体负载调度策略的网络部署并执行,通过控制器将负载调度策略以流表的形式下发到指定OpenFlow交换机,执行流量调度,而对应的OpenFlow交换机在数据流到达时,只需根据相应流表规则转发。
4 仿真测试及结果分析
4.1 测试环境
仿真使用的测试环境为Ubuntu 11.04,Intel Pentium Dual E2180中央处理器,4 GB内存主机、千兆以太网卡和Pox控制器,在Linux系统下搭建Mininet仿真环境,实现该负载均衡方法,并对其性能进行测试。
4.2 对比测试结果
4.2.1 负载状况测试
实验采用图3所示的仿真测试拓扑模型,经过测试计算后,阈值Ω设置为50 MB,并以最大速率发包,记录服务器负载状况,结果如图4所示。
图3 仿真测试结构Fig.3 The simulation test architecture
图4 负载状况Fig.4 Load diagram
从图4可看出,在传统架构中服务器负载在长时间运行后容易发生倾斜,尤其是节点3和节点4的负载偏差比较大,造成大量网络资源的浪费。而基于SDN架构的动态负载均衡方案避免了这种情况的出现,当负载分配波动幅度大于预设值时,控制器就触发负载调度机制,调节各个服务器的负载,使负载达到动态平衡,测定的负载曲线较平坦,架构和算法体现出明显的优势。
4.2.2 吞吐量比较
通过对负载状况的测试,所有服务器节点负载总和统计得到的吞吐量如图5所示。从图5可看出,基于SDN系统吞吐量明显提高。
图5 吞吐量比较Fig.5 The comparison of throughput
5 结束语
基于SDN的云中心动态负载均衡方法,实现了基于流级的动态负载均衡,但由于实验室设备性能上的原因,未能完全发挥SDN技术在转发与控制分离架构上的速度优势,吞吐量提高不多,但还是充分体现了SDN在流调度上灵活性的特点。SDN是目前研究的热点,但是对它的研究大多仍处于初步阶段,而将SDN技术与云中心的结合是一种积极的探索,具有重要的应用价值。
[1] 罗军舟,金嘉晖,宋爱波,等.云计算:体系架构与关键技术[J].通信学报,2011,32(7):3-21.
[2] 张朝昆,崔勇,唐翯翯,等.软件定义网络(SDN)研究进展[J].软件学报,2015,26(1):62-81.
[3] 左青云,陈鸣,赵广松,等.基于OpenFlow的SDN技术研究[J].软件学报,2013,24(5):1078-1097.
[4] Erickson D,Heller B,Yang S,et al.Optimizing a virtualized data center[J].ACM Sigcomm Computer Communication Review,2011,41(4):478-479.
[5] Chowdhury N M M K,Boutaba R.Network virtualization:state of the art and research challenges[J].Communications Magazine IEEE,2009,47(7):20-26.
[6] Handigol N,Seetharaman S,Flajslik M,et al.Plug-n-Serve:load-balancing Web traffic using OpenFlow[C]// In ACM Sigcomm Demo,2009:268-270.
[7] Handigol N,Seetharaman S,Flajslik F,et al.Aster*x: load-balancing Web traffic over wide-area networks[DB/ OL].(2014-07-20).http://www.standford.edu.
[8] 张国清.QoS在IOS中的实现与应用[M].北京:电子工业出版社,2010:45-46.
[9] 于华.网络流量监控中的若干基本问题研究与分析[D].北京:北京邮电大学,2011:19-20.
编辑:梁王欢
A dynamic load balancing method of cloud-center based on SDN
Wang Yong1,Kuang Yuwen2
(1.School of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin 541004,China;2.School of Information and Communication Engineering,Guilin University of Electronic Technology,Guilin 541004,China)
In order to achieve cloud computing center dynamic load balancing based on data flow level,SDN technology is used in the cloud data center and a dynamic load balancing method of cloud center based on SDN is proposed.the method uses SDN technology in the current task scheduling flexibility and the advantages of real-time monitoring of the service node flow and load condition by OpenFlow,when the system load is imbalanced,the global allocation of network resources and the more accurate correction is done by the controller,so as to the load of the system is not obvious tilt in the long run.The simulation results show that the load will not tilt in a long period and the system throughput is improve.
software defined network;cloud computing;data center;dynamic load balancing
TP301
:A
:1673-808X(2015)04-0321-04
2015-04-20
国家自然科学基金(61163058,61363006);广西可信软件重点实验室开放基金(kx201306)
王勇(1964―),男,四川阆中人,教授,博士,研究方向为计算机网络技术与应用、信息安全。E-mail:y wang@guet.edu.cn
王勇,匡玉雯.基于SDN的云中心动态负载均衡方法[J].桂林电子科技大学学报,2015,35(4):321-324.