基于SDN的服务器集群动态流量调度方法

2016-02-08 01:26曹绍华卢清华张红霞薛华威
中国电子科学研究院学报 2016年6期
关键词:流表交换机内存

曹绍华,卢清华,张红霞,薛华威

(中国石油大学计算机与通信工程学院,山东青岛 266580)



基础理论

基于SDN的服务器集群动态流量调度方法

曹绍华,卢清华,张红霞,薛华威

(中国石油大学计算机与通信工程学院,山东青岛 266580)

典型的流量调度是使用一个专用负载均衡器把客户端的请求分发给不同的应用服务器,但是这种技术不仅需要专用的硬件支持,而且存在诸多缺点,如价格昂贵、缺乏灵活性和容易成为单点故障等。本文提出一种廉价、灵活的解决方法,该方法基于SDN技术,采用DTSSC(Dynamic traffic scheduling of server cluster)模型,通过获取各个服务器的流量矩阵和负载矩阵,实现了各个服务器的负载比均衡。通过实验,验证了该方法的有效性,即各个服务器的负载比基本达到均衡。

动态调度;SDN;数据中心;负载均衡

0 引 言

随着互联网的飞速发展,各种各样的业务被引进互联网中,使得网络中充斥着巨大的用户访问流量,单台服务器无法满足用户的需求。以淘宝为例,阿里巴巴CEO张勇表示,距离双十一还有4个小时,淘宝天猫平台已经每秒12万次商品打开,1.3亿次手机淘宝访问超过去年双十一的峰值。面对如此巨大的用户请求,如何进行处理并提高用户体验度,已经成为许多应用都需要面对的问题,通常企业采用分布式计算和负载均衡技术等进行缓解。一种典型的流量调度是采用专用的负载均衡器[1]把用户的请求分发到不同的应用服务器。但是这种解决办法不仅需要硬件支持,而且存在诸多的缺点,比如价格昂贵、缺乏灵活性、容易存在单点故障等。而SDN[2-3]是新提出的网络架构,将数据平面与控制分离,并提供可编程接口,实现对网络的管控能力。因此将SDN应用到动态调度[4]可以有效解决目前问题。

本研究有如下贡献:(1)通过控制器监控服务器的流量信息,建立流量矩阵和服务器的负载矩阵(2)根据流量矩阵和负载矩阵,进行流量动态的调度。

本文结构如下,第二章介绍相关工作,第三章提出DETSC流量调度,第四章进行试验以及分析,第五章总结以及未来工作。

1 相关工作

随着SDN的普及以及迅速发展,基于SDN[]的流量调度的网络创新研究逐渐深入。OpenTM[5]通过SDN控制器实时监视网络节点的流量,构建网络的流量矩阵,然后进行调度。Hedera[6]等人为数据中心设计了一种解决方案,通过实时获取openflow交换机的流统计信息,然后采用退火算法计算并作出负载均衡。但是该方案主要是针对PortLand网络拓扑结构。

LI Y[7]等人提出了基于胖树结构的动态流量调度算法,采用单跳贪婪算法。该方法实现了动态的选路策略,但在考虑网络的整体状况时候,这种基于贪婪算法的选路并非最佳,可能导致部分链路负载超荷。

2 DTSSC的流量调度

流量调度的核心是使得服务器的负载达到均衡,即是是服务器的负载比相近,本章围绕该问题建立DTSSC模型以及阐述相应的算法。

2.1 DTSSC模型

为了描述DTSSC模型,本文定义了三个变量,分别为:CPU主频矩阵P[0..n],剩余内存矩阵Mem[0......n],流量负载矩阵Flow[0,......n]。

通过Openflow协议获取各个终端服务器的的CPU主频,用矩阵表示如下:

P[0..n]=[p1,p2,……pn]

(1)

同时实时监测终端服务器的内存变化和流量变化,并更新剩余内存矩阵Mem和流量负载矩阵Flow,具体表示如下:

Mem[0......n]=[m1,m2,...mn]

(2)

Flow[0,......n]=[f1,f2,......fn]

(3)

由于每个服务器的主频和内存不同,所以处理能力也不尽相同,为了使每个服务器的流量负载和处理能力相匹配,本文定义ratio来描述服务器的负载比,其中使用fi表示流量负载,用C表示服务器处理能力。其中公式成立条件是|mi-pi|不等于无穷大且Ci/mi不等于无穷大。

Ci=0.1*pi*0.9*mi

(4)

定义 3.1:负载比

(5)

因此我们可以构造负载比矩阵:

ratio[0....n]=[ratio1,ratio2,....ration]

(6)

每次我们选取min{ratio[0...n]}对应的下标服务器进行流量转发。由于fi和mi在不停得变化,因此负载比在不断变化,因此可以对流量进行实时调度。

2.2 DFC算法

本文提出了DFC(dynamic flow control)算法,该算法实现了实时获取服务器的流量,并根据ratio值进行流量的调度。该算法用于对SDN数据中心网络进行简单的流量调度。具体如下:

1. Get info from servers about cpu,memory,flow matrix//获得各个服务器的CPU、内存余量以及已处理流量数值

2. instance the cpu[0...n],mem[0..n],flow[0..n]//根据获得的数值初始化CPU、内存以及流量矩阵

3. Calculate the ratio[0...n] matrix//由公式5计算出负载比

4. accept client request;//接受用户请求

5. i={j,ration[j]==min{ratio[0...n]}};//选择负载比最小的服务器进行处理

6. dispatch the request to serveri;//将请求分发给该服务器

7. update the memory,flow, ratio ratix//更新内存、流量以及负载比

8. go to 4

3 DTSSC实现

3.1 架构

通过修改控制器代码,将DTSSC模块添加到floodlight控制器中,该模块实现的功能如图1所示:

图1 DTSSC模块图

DTSSC一共包括三个模块,分别是获取信息模块、运行DFC算法进行负载服务器选择模块以及流表重下发模块。下面分别介绍这几个模块。

3.2 流量获取模块

该模块实时获取服务器的CPU、内存余量以及Openflow交换机各个端口的已处理流量信息,为选取负载服务器做准备。

3.3 负载均衡模块

该模块负责运行DFC算法,根据主频和内存和流量计算各个服务器的ratio比率,并形成ratio矩阵,选取较小的ratio对应的服务器进行负载。

3.4 流表重下发模块

根据负载均衡模块计算得出的最小负载服务器,控制器通过下发流表给Openflow交换机,将用户请求,通过流表,分发到该最小负载比的服务器上进行用户请求的响应。

3.5 DTSSC各模块之间处理流程

其中DTSSC模块的各个功能的交互如图2所示。

图2 DTSSC模块之间交互

信息获取模块从网络设备中获取CPU、内存以及流量处理信息,然后将该信息发送给负载均衡模块运行DFC算法,根据DFC算法选择最小的负载比的服务器,然后由流表重下发模块下发响应流表到Openflow交换机上,将用户请求分发到该负载比最小的服务器上。

3.6 系统处理流程

当用户发出请求,然后服务器进行响应的整个处理流程图如图3所示。

图3 系统处理流程图

具体的流程是floodlight控制器启动时候,会加载运行DTSSC模块,该模块会不停的运行信息获取模块、DFC算法以及流表重下发模块,当用户请求到来时候,就通过下发的流表,被分发到负载比最小的服务器上,由该服务器进行用户请求的响应。

具体实现的时候,可以将所有的服务器对外使用一个虚拟的IP地址,由DTSSC进行具体服务器实际IP地址的转换。

同时DTSSC模块采用多线程[8]技术定时获取交换机所连的服务器的统计信息,选择当前负载最小的进行服务。二层交换机的流表动作是进行简单的转发,即将包从某一个特定的端口转发出去。

4 试验验证与分析

4.1 实验设计

控制器采用floodlight[9]开源控制器,为简便,服务器均采用内存2 GB,主频为2.2 GHz,搭建如图4的网络拓扑图。

图4 拓扑图

在每台服务器上部署Apache web服务器,来模拟网页请求。样本集是发送1000个请求,分别统计采用负载前后的各个服务器的负载比变化。

4.2 实验分析

从图5可以看出在负载前,各个服务器的负载比不均匀,但是在采用DTSSC模型进行负载时候,基本达到均衡。

图5 负载前后对比图

5 结 语

结合SDN对服务器集群进行负载均衡,并将负载均衡用控制器进行实现,减少了对交换机和服务器的压力,使交换机从一些复杂的QoS、LoadBalancer等服务中解脱出来,提高了交换机的效率。

与传统的负载均衡相比,本研究实现的DTSSC调度机制具有效率高,开销小,部署简单的优点。经过实验验证,采用该方法进行流量调度可以取得很好的效果,各个服务器的负载接近度接近100%。

未来将该流量调度机制应用到更大的实际网络规模中,进行分析该调度机制效果。

[1] 吴强. 基于SDN技术的数据中心基础网络建设[J].电信科学,2013.

[2] Thomas D.Nadeau, Ken Rray.Software Defined network[M]. USA:O’Reilly,2013.8.

[3] 左清云. 基于Openflow的SDN技术[J]. 软件学报,2013.

[4] 李坤.服务器集群负载均衡技术研究与算法分析[J].计算机与现代化,2003-08.

[5] Tootoonchian A, Ghobadi M, Ganjali Y. OpenTM: traffic matrix estimator for OpenFlow networks[C]//Passive and active measurement. Springer Berlin Heidelberg, 2010: 201-210.

[6] Al-Fares M, Radhakrishnan S, Raghavan B, et al. Hedera: Dynamic Flow Scheduling for Data Center Networks[C]//NSDI. 2010, 10: 19-19.

[7] Li Y, Pan D. OpenFlow based load balancing for Fat-Tree networks with multipath support[C]//Proc. 12th IEEE International Conference on Communications (ICC’13), Budapest, Hungary. 2013: 1-5.

[8] 吴功宜 著.计算机网络高级软件编程技术[M].北京:清华大学出版社,2011-03

[9] Bao Hua Yang .floodnotes.http://security.riit.tsing hua.edu.cn/~bhyang/publications.html,2013-08-01.

薛华威(1991—),河南驻马店人,硕士研究生,主要研究虚拟化、云计算网络。

SDN Based on Dynamic Traffic Scheduling Method of Server Cluster

CAO Shao-hua,LU Qing-hua,ZHANG Hong-xia,XUE Hua-wei

(College of computer and communication, China University of Petroleum, Qingdao 266580 Shandong, China)

Typical traffic scheduling is to use special load balancers distributing client requests to different application servers, but this technique requires not only the dedicated hardware support, but also has many other shortcomings, such as high price, lack of flexibility and easy to become a single point of failure. This paper presents a cheap, flexible solution. Based on SDN this method adopts the DTSSC (dynamic traffic scheduling of cluster server) model and reaches the balance of load ratio for each server through the acquisition of traffic matrix and load matrix of each server. The validity of this method is verified through experiments, which demonstrates the load ratio of each server is basically balanced.

dynamic scheduling;SDN;data center;load balance

10.3969/j.issn.1673-5692.2016.06.012

2016-11-01

2016-12-02

山东省优秀中青年科学家科研奖励基金计划(BS2014DX021);科技部创新方法工作专项(2015IM010300);中国石油大学自主创新基金(16CX02047A)

曹绍华(1978—),男,硕士,主要研究方向为网络性能优化和下一代网络;

E-mail:caoshaohua2009@163.com

卢清华(1983—),女,山东淄博人,博士,副教授,研究领域为大数据部署架构及流程,云计算可靠性;

张红霞(1981—),女,山东东营人,博士,讲师,研究领域为服务计算,软件建模,模型检测;

TP393 文献标识码:A

1673-5692(2016)06-625-04

猜你喜欢
流表交换机内存
基于匹配动作表模型的可编程数据平面流表归并
基于时序与集合的SDN流表更新策略
软件定义网络中OpenFlow流表空间优化技术研究进展
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
一种高效的OpenFlow流表拆分压缩算法
缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机
内存搭配DDR4、DDR3L还是DDR3?