【学习笔记】基于OpenFlow的数据中心网络负载均衡算法

2016年电子技术应用第5期

作者:董宏成,郑飞毅

0 引言

近年来,数据中心呈现爆炸式的急速发展,大量公司开始建立自己的大型互联网数据中心(Internet Data Center,IDC)。云计算技术的出现对数据中心网络提出了新的挑战,比如网络安全、虚拟机迁移、多租户管理、负载均衡等。传统的数据中心采用专用的负载均衡设备实现网络资源的有效利用,具有设备成本高昂和可扩展性差等问题,而基于软件定义网络的集中化的调度方式能够提高资源利用率,简化网络管理,降低运维成本。

SDN[1]是一种将控制层和转发层分离的新型网络架构,交换机只负责数据流的转发,降低了网络交换机的负载,控制层的功能全部由运行于服务器上的控制器实现。控制器需要下发流表到交换机才能支持转发层设备的有效运行,而控制层与转发层之间的通信需要遵守一定的规则,目前较普遍的是采用OpenFlow[2]协议来实现信息交互。本文目的是在SDN网络架构下解决网络流量高峰期链路的负载分布不均匀问题,设计了负载均衡机制的总体框架、实现流程图以及具体实现。

1 数据中心网络流量特征

国内外学者对真实数据中心网络流量特征进行了深入的观察研究。Mckeown研究表明数据中心网络流量与传统的局域网和广域网流量有着极大的不同,内部节点间的数据流量在数据中心网络所有流量中占主导地位[3]。Greenberg指出数据中心80%的数据流量为数据中心内部的流量,而且85%的数据流小于100 KB[4]。目前采用最多的是Fattree[5]网络拓扑,它可以为两两节点之间的流量提供多条路径,这样从理论上能降低单一路径的负载率过高的问题,而在实际应用中还是会出现某条路径上流量拥塞严重而其他可用路径却处于闲置状态的问题。

数据中心网络流量模型由大流和小流组成,每个数据流由许多数据包组成,这些数据包具有5个相同特征(源IP地址、源端口号、目的IP地址、目的端口号、协议类型)。而大流是造成部分链路拥塞的主要原因,所以负载均衡机制主要针对大流,在调度过程中尽量忽视小流来降低调度开销。数据流的大小由其所含字节数决定,同时数据流越大,持续的时间越长,小流持续时间很短。本文将字节数大于100 KB的流界定为大流。

2 负载均衡实现的总体框架

控制器的负载均衡功能模块如图1所示,主要包括拓扑发现模块、大流监测模块、流量收集模块、路径计算模块、流表导入模块。拓扑发现模块帮助控制器掌握通过全局的拓扑信息,包括主机的位置信息、交换机之间的连接等。大流监测模块在链路利用率最大路径上找出并标记大流。流量收集模块周期性地收集OpenFlow交换机网络的流量信息,为两个节点之间的多条路径选择提供参考流量监测模块统计交换机接口的流量信息,用于分析计算各链路的链路利用率。路径计算模块为大流的重路由提供支持,是实现负载均衡功能的重要部件。流表导入模块是通过控制器向OpenFlow交换机发送Packet_out消息实现的,动态地将大流的最终得出的重路由路径添加到交换机流表,从而实现OpenFlow网络的负载均衡功能。负载均衡算法的实现流程如图2所示。

3 各功能模块的数学建模与实现

首先为负载均衡制定一个启动阈值,这里采用负载均衡参数:

其中loadi,j(t)代表在t时刻链路<i,j>上的已经被占用的带宽[6],N是网络中所有链路的数目。下面简单描述各模块的实现方式。

3.1 拓扑发现模块

拓扑发现模块的功能是收集网络的拓扑信息,将其保存在拓扑图表中,并对网络的拓扑结构进行管理。控制器与交换机之间是在OpenFlow标准协议的基础下进行通信的,但是控制器并不能通过Open。Flow协议获得网络的拓扑结构,是通过LLDP组件[7]发送LLDP(Link Layer Discovery Protocol)数据包到OpenFlow交换机,再收集并解析交换机反馈的LLDP数据包,从而实现网络拓扑感知。

3.2 大流监测模块

由于本文所提出的负载均衡机制是针对大流的,所以必须有一种方法将大流和小流区分开来。文献[8]对3种主流的大流监测机制进行了分析比较,包括采样监测、应用监测和统计监测。文献[9]中提出探测大流最有效的方式是在终端主机进行,一方面占用的资源比例相对交换机要少,从而避免大流监测占用过多的交换机端资源;另一方面流的状态也取决于终端应用程序生成数据包的快慢,而不是网络的链路状态,终端对应用程序发包速率的可知性更强。监测原理是通过观测终端主机socket缓存区,当缓存区内具有相同特征的数据包大小超过100 KB,它就会被标记为大流,本文便采用对主机端的统计监测方式来进行大流监测,主机端需要精确统计和维护数据流的速率和字节等信息,再将统计信息通过交换机发送到控制器,从而实现控制器的大流监测功能。

3.3 流量收集模块

这个组件的目的是询问每个OpenFlow交换机的流量信息,再将所有收到的反馈信息进行联合并最终存储到控制器的存储单元。这些收集到的数据被路径计算模块用来计算不同链路上的负载,因为基于权重的多路径路由的核心思想是将大流的数据包分配到负载较轻的链路上,因此需要确切知道路径上所有可能的链路负载。这个单元模块周期性地通过轮询的方式收集每个OpenFlow交换机的流数量、流表以及端口数据,并作为一个快照对象进行存储。每个快照对象都会通过一串数字标识,每个周期生成新的快照对象后数字标识会自动加1,存储区只会保存最新的2个快照对象,其他的功能模块都有获得快照对象数据的权限。

3.4 路径计算模块

初始状态采用Floyd[10]算法计算基于跳数的Top-K最短路径,然后需要对每条路径的状态进行评估。本文主要对路径的两个方面指标进行评估,一个是路径所包含链路的长度,这个体现在跳数(Hop Count);另外一个指标是路径上的负载,这个体现在这条路径所包含的交换机和链路上的流量。由于每条路径上包含多个交换机以及多条链路,不能简单地以总流量的平均数来表示这条路径的负载,而应该根据特定的交换机和链路来代表该路径的负载情况。交换机的负载通过它所统计的PC(Packet Count)和BC(Byte Count)来体现,链路的负载通过端口的转发率(Forwarding Rate)来表示。这些数据可以通过控制器周期性地向OpenFlow交换机发送状态请求消息得到。每条路径的负载状况可以表示为S=(H,P,B,F),其中H表示跳数;P=Max(P1,P2,…,PH),Pi表示该路径的第i台交换机所转发的封包数量,共包含H台交换机;B=Max(B1,B2,…,BH),Bi表示该路径的第i台交换机所转发的字节数量。F=Max(F1,F2,…,FH),Fi表示该链路经过的第i台交换机出端口的转发率。由于参数之间的差异比较大,需要先进行如下变换[11]:

每一条路径可以用矩阵R=(rh rp rb rf)表示,权重向量W=(0.35,0.20,0.20,0.25),各个参数值根据经验自己定义,这里路径的长度取0.35显示了其重要性。每个节点对之间的所有路径可以通过一个矩阵表示为:

Qi表示路径i最后的权值,根据权值可以确定数据流经i节点传输到j节点的最佳路径。路径计算模块伪代码如下:

Algorithm : Route Construction

(1)Connect the topology with the RYU controller

(2)Detect the topology and do the following activities:

(3)Calculate top K shortest paths between each pair of nodes using Top-K Shortest Path algorithm(TKSP is the extension of Open Shortest Path First).

(4)Evaluate the Top-K path with the proposed method.

(5)Sort the paths between each pair of nodes according to the evaluation and store the results to the controller.

(6)Reconstruct the path using step1-5 in case of a node/link failure.

3.5 流表导入模块

中心控制器通过路径计算模块产生的结果生成转发规则,然后封装到Packet_out消息中导入到支持OpenFlow的交换机,交换机流表添加该转发规则并根据更新的流表项来指导流量转发。由于网络流量和拓扑结构都是不可预测的,交换机流表会伴随负载均衡机制实时、动态地更新,而且过期的流表项会根据交换机配置而删除。

4 实验结果分析

本文采用Mininet2.2.0[12]作为一个开发环境模拟数据中心网络场景,搭建如图3所示的网络拓扑结构,在Ubuntu Kylin 14.04.3上运行RYU控制器,结合iperf工具来产生TCP(Transmission Control Protocol)数据流和UDP(User Datagram Protocol)数据流,并且能够测量端到端的吞吐量,从而得出整个网络的吞吐量。host1~4同时向host5~8发送数据流量,在RYU[12]控制器中结合拓扑发现模块、流量监测模块、路径计算模块和流表导入模块来对负载均衡算法进行验证。仿真实验通过h1~h16传输时延、总吞吐量和总体链路利用率这3个指标来验证本文所提出的负载均衡算法的有效性。总体链路利用率通过下式得到:

其中,MAXLOAD代表每条物理链路最大带宽,仿真实验的信息见表1。

选择h1和h16为网络时延测量的观测对象,实验结果如图4所示,在实验进行的前47 s数据包从h1~h16延时很低,而且本文所提出的LB(Load balance)算法和基于最短路径算法的时延曲线表现出了极高的相似度。这是因为刚开始时链路负载较轻,两种算法都是采用h1-S1-S9-h16来传输流量,而LB算法由于需要监测数据流量并且周期性地向控制器发送网络状态信息,这样会产生部分开销而导致延时略高于基于最短路径算法;但是47 s之后LB算法下的时延明显低于采用OSPF算法的时延,这是因为太多的流量集中在最短路径h1-S1-S9-h16,而其他可用路径处于空闲状态,负载不均衡度大于判决门限,就会触发负载均衡机制,原路径上的流量会转移到其他可用路径,链路利用率也得到了明显提升,如图5所示。网络整体吞吐量的性能比较如图6所示,当负载低于550 Mb/s时,两者的性能曲线非常相似,由于LB算法需要传输额外的链路状态信息导致吞吐量会略高于550 Mb/s;当负载超过550 Mb/s,基于最短路径算法网络出现拥塞,其他可用链路得不到有效利用,吞吐量的增长明显放缓。而LB算法下的网络吞吐量在550~700 Mb/s区间能一直保持快速增长。因此本文提出的LB算法相比传统的OSPF算法能够在负载不均衡情况下改善网络性能。

5 结束语

本文设计了负载均衡功能实现的总体框架,主要包括拓扑发现模块、流量监测模块、路径计算模块、流表导入模块。设计了负载均衡功能的实现流程图,对相关的数学模型进行了详细的分析设计,确定了以大流为目标流的调度策略,并通过实验验证了该负载均衡算法相比传统的OSPF算法能够实现更低的网络延时和更高的总体链路利用率和吞吐量。

该算法的不足之处是没有考虑到大流出现重复调度的情况,如果某个大流被多次选为目标流调度,可能会使情况更糟糕,而且流的转移开销也会影响负载均衡的实现效率。降低大流在调度过程中的开销具有重要的意义,上述两点将是下一步需要重点关注的内容。

参考文献

[1] 左青云,陈鸣,赵广松.基于Open Flow的SDN技术研究[J].软件学报,2013,24(5):1078-1097.

[2] Open Networking Foundation.OpenFlow[EB/OL].(2016)[2016].https://www.opennetworking.org/en/sdn-resources/openflow.

[3] MCKEOWN N,ANDERSON T,BALAKRISHNAN H,et al.OpenFlow:Enabling innovation in campus networks[J].SIGCOMM Computer Communication Review,2008,38(2):69-74.

[4] GREENBERG A,HAMILTON J R,JAIN N,et al.VL2:A scalable and flexible data center network[C].Proceedings of the AC_MSIGCOMM 2009 Conference on Data Communication.Barcelona,Spain,2009:51-62.

[5] GREENBERG A,HAMILTON J,MALTZ D A,et al.The cost of a cloud:research problems in data center networks[C].In ACM SIGCOMM,2008:68-73.

[6] Long Hui.Research on the OpenFlow -based load-balancing routing in distributed networks[D].Shanghai:Shanghai Jiao Tong University,2013.

[7] 张远.基于OpenFlow的负载均衡研究[D].北京:北京工业大学,2014.

[8] 李龙,付斌章.Nimble:一种适用于OpenFlow网络的快速流调度策略[J].计算机学报,2015,38(5):1056-1068.

[9] CURTIS A R,KIM W.Mahout:low-overhead datacenter traffic management using end-host-based elephant detection[J].IEEE INFOCOM,2011,2(3):1629-1637.

[10] BACKHOUSE R C,EIJINDE J P H W,GASTEREN A.J.M.V.Calculating path algorithms[J].Science of Computer Programming,1994,22(1-2):3-19.

[11] Li Jun,Chang Xiangqing,Ren Yongmao,et al.An effective path load balancing mechanism based on SDN[C].IEEE 13th International Conference on Trust,Security and Privacy in Computing and Communications,2014.

[12] Mininet Team.Mininet:An instant virtual network on your laptop[EB/OL].(2016)[2016].http://www.mininet.org/.

(0)

相关推荐

  • 一台服务器两个网卡接入同一网段,会发生什么?

    来自公众号:车小胖谈网络 一台服务器网卡A,B分别接入局域网A,B,都是192.168.1段,A网关是192.168.1.1,B网关是192.168.1.2,如果A里面192.168.1.100:50 ...

  • 知识 | 7个交换机专业术语,让你了解交换机更了解网络

    什么是负载均衡? 什么是VLAN配置? 当我们在搭建网络时时常听到这样的名词 这些专业术语往往和网络中使用的交换机息息相关 那么本篇文章给各位综合介绍一下网络中的专业术语 #负载均衡 英文名称为Loa ...

  • MLAG与vPC之间有什么区别?

    如今,越来越多的企业开始利用数据中心虚拟化来降低成本和简化数据流,而为了确保数据可以在数据中心和业务位置之间实现无缝传输,网络容量需求将会大大增加.为了适应这种趋势发展,业界正在寻找通过连接尽可能多的 ...

  • 33 张图详解 RSTP 、MSTP、替代技术

    原文链接: https://mp.weixin.qq.com/s/9wDvmSkIQ6uSDNG8F1JDeA 原作者:网络技术平台 10 秒看完文章主要内容,试试你有多快. STP 的弊端 上次有写 ...

  • Windows NIC Teaming与Linux NIC Bonding基础知识全解析

    Windows系统下的NIC teaming技术与Linux系统下的NIC bonding技术类似,两者都是将多个网卡在逻辑上绑定为一个虚拟网卡,并在外部显示同一个MAC地址.两种技术同时具有负载均衡 ...

  • 超融合数据中心网络白皮书(2021)

    本研究报告介绍了数据中心网络对于算力的意义,归纳出影响数据中心全以太化演进的因素,以及超融合数据中心网络架构的典型特征与价值. 下载地址:超融合数据中心网络白皮书 结合业界在超融合数据中心网络技术中的 ...

  • 金融数据中心网络架构与技术

    2019年 华为全联接大会 人民邮电出版社与华为宣布 将推出华为数据通信系列丛书 并纳入"国之重器出版工程"系列图书 春天花儿会开 - 云数据中心网络架构与技术 2021年世界读书 ...

  • 数据中心高质量发展协会:超融合数据中心网络白皮书

    全生命周期自动管理收益分析 在数据中心的整个生命周期中,80% 以上的时间都是在运维,运维效率决定了数据中心的运行效率.经过十余年的发展,数据中心中积累了数量繁多.功能各异的网络辅助管理软件,在运营商 ...

  • 华为数据中心网络技术创新思路

    华为布尔实验室 近期又频频出动宣讲 数据中心网络的创新思路 华为数据通信"隐秘的角落"! 数据中心 软件创新层出不穷 但是硬件就剩下提高主频 难怪任总要发展无所束缚的软件 网络在数 ...

  • 什么是数据中心网络架构?一个视频详解网络组网与运维过程

    什么是网络架构?网络架构的确定对项目起到关键作用,很多网络的一些故障问题大多数与网络架构的选择有关,本期我们一起来了解这方面的内容,什么是数据中心网络架构?我们引用了这个视频来详解网络组网与运维过程. ...

  • 云南移动数据中心网络的智慧之路

    布莱恩·阿瑟在<技术的本质>中写道:"在真实世界中,技术是高度可重构的,它们是流动的东西,永远不会静止,永远不会完结,永远不会完美. "   技术的进化则如如同达尔文在 ...

  • 数据中心网络的趋势与选择

    在数据中心解决方案中,为了实现业务跨站点高可靠,需要业务集群.存储和网络同时实现跨数据中心集群能力.随着数据中心虚拟化,虚拟机动态迁移需保证虚拟机上服务正常运行时,将一个虚拟机系统从一个物理服务器移动 ...

  • 数据中心网络架构三层分析,结尾有彩蛋!!

    一.那么开始今天的正题 传统的数据中心主要是依据功能进行区域划分,例如 WEB .APP.DB,办公区.业务区.内联区. 外联区等等.不同区域之间通过网关和安全设备互访, 保证不同区域的可靠性.安全性 ...

  • 学习笔记|基于课标的内容研制策略

    从今天进入<为言语智能而教>的第二个板块:组块教学策略. 首先是第一章,基于课标的内容研制策略. 关于课标,一直以来在一线老师的手中都存在着剥离状况.使用统编版教材之后,有所好转.这不是因 ...