SDN架构下基于优先级的带宽保障算法研究
2018-03-29曹绍华张培颖
曹绍华,张 斌,张培颖
(中国石油大学(华东) 计算机与通信工程学院,山东 青岛 266580)
0 引言
在如今的网络架构中,随着互联网用户数量的增加、现实生活对互联网依赖度的提高,网络工程师不断地丰富和完善传输层应用层协议,强大的IP协议栈虽然足以支撑庞大的上层网络架构,但其标准化和广泛化也使得整体网络架构的性能升级受到限制。采用新的网络体系来替代现有的网络体系是行之有效的一种方法,从设计之初对网络架构的功能与性能进行改良,可以彻底达到提高性能的目的。软件定义网络(Software Defined Network,SDN)技术应运而生。SDN[1-2]具有以下3个基本特征。
(1)控制和转发分离:指转发平面由受控转发的设备组成,转发方式以及业务逻辑由运行在分离出去的控制面上的控制应用所控制。
(2)控制平面与转发平面之间的开放接口:指SDN为控制平面提供开放可编程接口。通过这种方式,控制应用只需要关注自身逻辑,而不需要关注底层更多的实现细节。
(3)逻辑上的集中控制:指逻辑上集中的控制平面可以控制多个转发面设备,也就是控制整个物理网络,因而可以获得全局的网络状态视图,并根据该网络状态视图实现对网络的优化控制。这从概念上改变了人们对网络设备的客观理解,不再单单是传统意义上的路由器与交换机等单纯的二三层设备。 在SDN的网络架构中可以使用控制器和交换机的结构(如Openflow Controller和Openflow Switch[3-4])对控制层和转发层进行分离。通过控制器进行数据流和网络环境的判别、采集、下发;设备硬件归一化,硬件只关注转发和存储能力,与业务特性解耦;网络的功能全部由软件实现,更好地对网络进行监测和控制,从而在一定程度上提高网络性能。
图1 SDN网络架构
同时,SDN技术与现有网络环境具有良好的兼容性,在数据中心[5]内采用SDN技术构建网络来提高网络性能,就是一种改良网络架构的方案。数据中心在其出口带宽一定的情况下,会出现多个业务竞争出口带宽,导致关键业务不能够分配到足够带宽,从而大大降低服务质量。如何及时灵活地分配每个业务的带宽是解决问题的关键所在。因此,采用SDN技术来组织数据中心网络内环境,对数据中心的业务进行保障,具有相当重要的现实意义与研究价值。本文针对SDN构建的数据中心提出了一种多业务环境下的带宽保障算法。
1 相关工作
在数据中心带宽保障方面,研究人员提出了一些适合数据中心多业务环境下带宽保障的解决方案,如ATBG算法[6]、基于合作博弈的带宽分配策略[7]、Netstitcher[8]等。
ATBG算法将数据中心的业务根据带宽敏感度和延迟敏感度划分为三类,根据已知的业务类型、业务带宽需求、源地址以及目的地址进行业务带宽保障。这种方法适用于业务带宽需求变化较小的环境,若高带宽敏感度的业务带宽需求发生较大变化时,则会导致关键业务不流畅或带宽资源的浪费。当一个服务器主机同时在不同端口上提供多个服务时,ATBG算法只根据源地址以及目的地址无法确定唯一的需保障的业务,会导致带宽保障无法达到预期效果。
基于合作博弈的带宽分配策略是将多个汇聚流对带宽分配的竞争行为建模为一个合作博弈,通过寻求此博弈的纳什谈判解来确定优化的带宽分配策略,权衡各汇聚流的最小带宽,保证带宽分配的公平性。最优化的带宽分配策略需要多次迭代收敛获得,且选取的基带宽合适与否影响迭代的周期。方案中的CGBA策略,虽然具有较高带宽分配满足度和较高公平性,但其是以牺牲一定计算复杂度为代价的,若应用到实际数据中心场景,需要考虑设备性能及带宽分配延时问题。
Netstitcher通过获取资源信息和带宽的使用情况,使用存储转发算法(Store and Forward),优先传输延迟敏感度高的数据,延迟敏感度低的数据会被暂存,在带宽资源有空闲时传输,根据带宽的使用情况进行实时的调整。此方案通过调度策略对带宽在时间上进行了分配,减小了其他业务对延时敏感度高的业务的影响,但是对业务流量的划分粒度较大,没有充分考虑不同流量对于带宽需求的差异。
2 基于优先级的带宽保障算法描述
在基于优先级的带宽保障算法中,业务的优先级是对业务带宽保障顺序的约束,在多个业务并行的数据中心,若总带宽只能满足其中部分业务的需求,需要通过区分业务的优先级,在保障高优先级业务带宽的前提下,再保障优先级次之的业务带宽,尽可能在保障业务的同时提高带宽利用率。
由于不同的业务在服务器中通过网络端口与客户端进行通信,因此使用服务器IP地址+服务提供应用的网络端口号来区分业务。业务优先级范围为0~255,数字越大优先级越高,其中0级代表不对业务进行带宽保障,将其加入到默认队列。为此队列分配一个大于0的带宽,以保障所有业务不会出现中断。
2.1 网络模型
研究的数据中心模型假定满足以下条件:
(1)数据中心有唯一对外出口,数据出入均通过一个交换机,出口链路带宽值一定。
(2)数据中心同时提供多种业务的数据服务,如FTP服务、视频点播服务、语音通话服务,业务的延迟敏感度不同,且不同时段业务的带宽需求可能有较大变化。
(3)数据中心提供的数据服务数量会产生不定变化,如某一时段要求关闭某个服务或新增服务。
(4)数据中心使用基于SDN的网络架构。
图2 数据中心模型
2.2 算法描述
2.2.1业务队列
算法在系统中保持两个数据结构队列,即带宽保障队列和非带宽保障队列。带宽保障队列中按照业务优先级从高到低的顺序存放需要进行带宽保障的业务信息,非带宽保障队列存放不进行带宽保障的业务信息(优先级为0的业务不进行带宽保障)。
业务类 class Business_class{
IP
//业务ip地址
Port
//业务端口
Prio
//业务优先级
QueueId
//对应交换机队列Id
FlowId
//对应交换机流表Id
Bandwidth_guara
//保障带宽
Bandwidth_last
//最近记录带宽
}
2.2.2交换机端口队列
通过下发流表为不同优先级的业务分配对应的交换机端口队列,利用交换机端口队列的最小速率和最大速率限制业务的带宽。
将所有不进行带宽保障的业务分配到同一个默认队列中,该队列设置最小速率,以保证不进行带宽保障的业务不会中断。
2.2.3业务可用带宽VB
对于每个进行带宽保障的业务,业务可用带宽VBi与总带宽T、优先级较高的业务保障带宽BWj和默认队列带宽BW0有关,计算公式如下:
(1)
2.2.4最近记录带宽LBW
最近记录带宽:记录最近一次业务保障带宽变化时业务实际占用的带宽值。
2.2.5业务保障带宽BW
业务保障带宽需要根据业务当前占用带宽CBW和VBi计算得到。由于无法得知业务对带宽的实际需求,系统中采用逐步逼近的方法来得到满足保障业务需求的带宽值。假设在业务可用带宽充足的情况下,将业务保障带宽设为大于当前业务占用带宽的值,当下次检测此业务带宽时,如果业务占用的带宽接近于业务保障带宽,则说明当前业务保障带宽不能满足业务对带宽的实际需求,此时就需要增大业务保障带宽,直到业务占用带宽不再出现明显增长,说明当前业务占用带宽接近于业务对带宽的实际需求。业务保障带宽需要大于业务对带宽的实际需求,以防止业务带宽需求增长导致系统不能及时为业务分配足够带宽。由于业务可用带宽的限制,系统中为每个业务设置的业务保障带宽不能大于VBi。
2.2.6可忽略带宽浮动值a
带宽浮动值小于可忽略带宽浮动值时,认为业务实际需求的带宽没有发生变化,避免因带宽正常浮动而引起算法被频繁执行。
2.2.7基于优先级的业务带宽保障
每间隔一段时间对所有带宽保障的业务按照优先级由高到低的顺序进行带宽使用情况的检测,并根据CBW与LBW计算带宽浮动值α:
(2)
若α大于a,则认为业务实际需求带宽发生变化,根据CBW和VBi重新计算业务保障带宽。当某个业务的BW发生变化时,优先级小于这个业务优先级的所有业务的BW需要重新计算。
若计算得到的BW等于VBi且不为零(业务可用带宽小于或接近于业务实际需求带宽)时,有两种处理策略:一是将此业务和优先级更小的业务加入到默认队列,并将此业务的可用带宽分配给默认队列;二是将业务可用带宽全部分配给此业务。假设加入到默认队列中的业务平分默认队列带宽,通过计算两种策略中此业务能够分得的带宽值,选择业务能够获得带宽值较大的策略执行。
图3 基于优先级的业务带宽保障业务流程图
3 仿真实验
3.1 测试环境
为了验证基于优先级的带宽保障算法的性能,本文使用Mininet[9]建立模拟数据中心网络拓扑进行测试。
测试使用VMware Workstation部署Ubuntu13.10虚拟机,并在Ubuntu中安装Mininet,使用Mininet建立自定义拓扑来完成对数据中心的模拟。利用 Xterm 命令在Mininet内开启不同的主机节点,根据Mininet的特性,每一个主机节点都可以看作是一个独立、同系统、同内核的主机服务器节点,使用VLC软件和Vsftpd 在服务器节点上部署视频服务器或FTP服务器。控制器使用开源Floodlight[10]控制器,加入自定义的带宽保障模块。
对算法进行测试时,使用未加入带宽保障模块的控制器进行测试作为对照,对测试结果进行比较分析。
3.2 测试结果分析
图4为在使用带宽保障模块的情况下,测得的FTP服务和视频服务的传输速度随时间的变化曲线。测试中规定视频服务优先级高于FTP服务,用户主机先请求视频服务,一段时间后请求FTP服务。在FTP服务流量开始传输时视频播放出现卡顿,此时FTP服务和视频服务争夺带宽资源。控制器自定义的带宽保障功能将视频服务的流量加入到带宽保障队列,通过不断调整带宽使队列的最小速率可以满足视频服务的需求,视频播放恢复流畅,FTP传输速度相应下降。
图4 使用基于优先级的业务带宽保障两个业务对比图
图5为在不使用带宽保障模块的情况下,测得的FTP服务和视频服务的传输速度。
图5 不使用基于优先级的业务带宽保障两个业务对比图
以上两个实验表明了基于优先级的带宽保障算法能较好地保障优先级较高的视频服务占有充足的带宽资源,限制了FTP占用的带宽,使用户的视频播放不会出现卡顿。
4 结束语
从实验结果及数据分析上来看,应用 SDN 技术实现区分业务的带宽保障,是数据中心重要业务带宽保障的一种较为有效的解决方案。通过SDN控制器的带宽保障模块,根据业务的优先级对高优先级的业务优先执行带宽保障,为不同的业务流量分配不同的队列,向交换机下发流表调整转发策略,保障高优先级业务的带宽需求,从某种程度上提高了整个网络的处理能力和效率。在本实验中为了达到实验效果,交换设备带宽设置得相对较小,实际网络中心的物理拓扑与模拟的仿真数据中心在性能上存在较大的区别,模块的适用性还需要进一步测试。
[1] 毕军. SDN体系结构与未来网络体系结构创新环境[J].电信科学, 2013, 29(8): 6-15.
[2] 张顺淼,邹复民. 软件定义网络研究综述 [J].计算机应用研究, 2013, 30(8): 2246-2251.
[3] WANG K C.Floodlight controiler[EB/OL][2018-01-11].https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/overview+.
[4] OpenFlow. http://www.openflow.org/.
[5] 魏祥麟,陈鸣,范建华,等.数据中心网络的体系结构[J]. 软件学报, 2013, 24(2): 295-316.
[6] 曹绍华,张鑫.面向业务的SDN网络带宽保障研究[J].计算机工程与应用, 2016, 52(22): 127-132.
[7] 孟飞,兰巨龙,胡宇翔. 基于合作博弈的数据中心骨干网带宽分配策略[J].计算机研究与发展, 2016, 53(6): 1306-1313.
[8] LAOUTARIS N, SIRIVIANOS M, YANG X, et al. Inter-datacenter bulk transfers with netstitcher [J].ACM SIGCOMM Computer Communication Review, 2011, 41(4):74-85.
[9] 李艳,郝志安,李宁,等.基于mininet的SDN架构仿真研究[J].计算机与网络, 2014 (5): 57-569.
[10] 黎进都,时向泉.基于Openflow的FloodLight控制器实现研究[J].中国电子商情(通信市场),2014 (1): 70-75.