首页 存档 技术 查看内容

【学术】基于SDN的服务器集群动态流量调度方法:探索新型互联网络架构 随着互联网的飞 ...

2018-3-30 13:00 |来自: 互联网 311 0

摘要: 今日荐文今日荐文的作者为中国石油大学计算机与通信工程学院专家曹绍华,卢清华,张红霞,薛华威。本篇节选自论文《基于SDN的服务器集群动态流量调度方法》,发表于《中国电子科学研究院学报》第11卷第6期。引 言 ...


今日荐文

今日荐文的作者为中国石油大学计算机与通信工程学院专家曹绍华,卢清华,张红霞,薛华威本篇节选自论文《基于SDN的服务器集群动态流量调度方法》,发表于《中国电子科学研究院学报》第11卷第6期。

引 言


随着互联网的飞速发展,各种各样的业务被引进互联网中,使得网络中充斥着巨大的用户访问流量,单台服务器无法满足用户的需求。以淘宝为例,阿里巴巴CEO张勇表示,距离双十一还有4个小时,淘宝天猫平台已经每秒12万次商品打开,1.3亿次手机淘宝访问超过去年双十一的峰值。


面对如此巨大的用户请求,如何进行处理并提高用户体验度,已经成为许多应用都需要面对的问题,通常企业采用分布式计算和负载均衡技术等进行缓解。一种典型的流量调度是采用专用的负载均衡器把用户的请求分发到不同的应用服务器。但是这种解决办法不仅需要硬件支持,而且存在诸多的缺点,比如价格昂贵、缺乏灵活性、容易存在单点故障等。而SDN是新提出的网络架构,将数据平面与控制分离,并提供可编程接口,实现对网络的管控能力。因此将SDN应用到动态调度可以有效解决目前问题。


本研究有如下贡献:

(1)通过控制器监控服务器的流量信息,建立流量矩阵和服务器的负载矩阵。

(2)根据流量矩阵和负载矩阵,进行流量动态的调度。


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

1相关工作


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


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

2DTSSC的流量调度


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


2.1DTSSC模型

为了描述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.2DFC算法

本文提出了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


3DTSSC实现


3.1架构

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

图1 DTSSC模块图


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


3.2流量获取模块

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


3.3负载均衡模块

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


3.4流表重下发模块

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


3.5DTSSC各模块之间处理流程

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


图2 DTSSC模块之间交互


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


3.6系统处理流程

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


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部