今日荐文的作者为中国石油大学计算机与通信工程学院专家曹绍华,卢清华,张红霞,薛华威。本篇节选自论文《基于SDN的服务器集群动态流量调度方法》,发表于《中国电子科学研究院学报》第11卷第6期。 引 言 随着互联网的飞速发展,各种各样的业务被引进互联网中,使得网络中充斥着巨大的用户访问流量,单台服务器无法满足用户的需求。以淘宝为例,阿里巴巴CEO张勇表示,距离双十一还有4个小时,淘宝天猫平台已经每秒12万次商品打开,1.3亿次手机淘宝访问超过去年双十一的峰值。面对如此巨大的用户请求,如何进行处理并提高用户体验度,已经成为许多应用都需要面对的问题,通常企业采用分布式计算和负载均衡技术等进行缓解。一种典型的流量调度是采用专用的负载均衡器把用户的请求分发到不同的应用服务器。但是这种解决办法不仅需要硬件支持,而且存在诸多的缺点,比如价格昂贵、缺乏灵活性、容易存在单点故障等。而SDN是新提出的网络架构,将数据平面与控制分离,并提供可编程接口,实现对网络的管控能力。因此将SDN应用到动态调度可以有效解决目前问题。
本研究有如下贡献: (1)通过控制器监控服务器的流量信息,建立流量矩阵和服务器的负载矩阵。 (2)根据流量矩阵和负载矩阵,进行流量动态的调度。 本文结构如下,第二章介绍相关工作,第三章提出DETSC流量调度,第四章进行试验以及分析,第五章总结以及未来工作。
1相关工作
随着SDN的普及以及迅速发展,基于SDN[]的流量调度的网络创新研究逐渐深入。OpenTM通过SDN控制器实时监视网络节点的流量,构建网络的流量矩阵,然后进行调度。Hedera等人为数据中心设计了一种解决方案,通过实时获取openflow交换机的流统计信息,然后采用退火算法计算并作出负载均衡。但是该方案主要是针对PortLand网络拓扑结构。
|
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实现
通过修改控制器代码,将DTSSC模块添加到floodlight控制器中,该模块实现的功能如图1所示:
图1 DTSSC模块图
DTSSC一共包括三个模块,分别是获取信息模块、运行DFC算法进行负载服务器选择模块以及流表重下发模块。下面分别介绍这几个模块。
该模块实时获取服务器的CPU、内存余量以及Openflow交换机各个端口的已处理流量信息,为选取负载服务器做准备。
该模块负责运行DFC算法,根据主频和内存和流量计算各个服务器的ratio比率,并形成ratio矩阵,选取较小的ratio对应的服务器进行负载。
根据负载均衡模块计算得出的最小负载服务器,控制器通过下发流表给Openflow交换机,将用户请求,通过流表,分发到该最小负载比的服务器上进行用户请求的响应。
其中DTSSC模块的各个功能的交互如图2所示。
图2 DTSSC模块之间交互
信息获取模块从网络设备中获取CPU、内存以及流量处理信息,然后将该信息发送给负载均衡模块运行DFC算法,根据DFC算法选择最小的负载比的服务器,然后由流表重下发模块下发响应流表到Openflow交换机上,将用户请求分发到该负载比最小的服务器上。
当用户发出请求,然后服务器进行响应的整个处理流程图如图3所示。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除