基于服务质量的数据中心流量调度方法与流程

文档序号:15394671发布日期:2018-09-08 01:54阅读:150来源:国知局

本发明涉及网络技术领域,特别涉及一种基于服务质量的数据中心流量调度方法。



背景技术:

数据中心是数据传输、计算和存储的中心,集中了各种软硬件资源和关键业务系统,如web服务、网页搜索、在线购物、网络游戏及mapreduce大规模集群计算等,近年来,随着虚拟化技术的广泛运用和云计算等新兴应用模式的发展,数据中心网络正在逐渐朝规模化、智能化、虚拟化等方向发展,而在运作过程中不可避免地会出现拥塞问题,造成这个问题的主要原因是网络中分配不均的网络资源,从而使各个链路的流量负载不均衡,因此对网络进行流量优化就显得十分必要,网络流量合理的调度可以提高链路带宽的利用率,缓解网络拥塞,为应用提供有效的带宽支持进而可以保证服务质量,满足用户的需求。

不断增长的数据中心网络规模和业务需求对数据中心网络流量调度策略研究提出了严峻的挑战,而基于sdn新型网络架构的出现给流量调度研究带来新的思路和机遇。利用分层的思想将数据与控制相分离。控制层可掌握全局网络的拓扑、节点、链路以及流信息,进而可以对网络流进行集中控制和调度。数据层仅提供简单的数据转发功能,可以快速处理匹配的数据包;两层之间采用开放的统一接口进行交互,控制器通过标准接口向交换机下发统一标准规则,交换机仅需按照这些规则执行相应的动作即可。这种控制与转发相分离的特性,使其在解决流量调度问题上具有更多的优势。

现有的基于服务质量的数据中心流量调度方案,主要是通过提高负载均衡度,从而避免网络拥塞,间接保证服务质量,无法针对性的根据不同业务流对网络性能的不同要求进行调度,因此无法保证不同业务的服务质量从而提升用户体验。



技术实现要素:

针对上述问题,本发明提出一种基于服务质量的数据中心流量调度方法,如图1,包括:

s1:接入层的交换机接收到主机发送的数据流,根据其目的地址判断是否与目的主机直连,如果是则将数据流转发到目的主机完成调度,否则进行步骤s2;

s2:判断数据流的传输速率是否小于预设的阈值,若是则交换机采用等价多路径的调度机制完成调度,否则进行步骤s3;

s3:控制器为数据流使用最短路径算法找到数据源和目的主机之间的最短路径集;

s4:使用优化的蚁群算法从最短路径集中获得最优路径,通过最优路径完成数据流的调度。

优选的,交换机采用等价多路径的调度机制完成调度包括:

当接入层的交换机收到数据包时,利用基于散列的随机负载均衡方法等价多路径的快速处理能力处理交互式业务流,对数据包首部进行散列运算,根据运算结果从可选的转发路径中随机选择一条进行转发。

优选的,所述优化的蚁群算法,如图2,包括:

401、初始化整个网络拓扑为一个无向图g=(v,e),其中v表示网络中交换机的集合,e代表网络的链路集合,令m=0;

402、将所有业务蚂蚁置于接入层的交换机,每个业务蚂蚁以信息素转移概率访问下一个交换机,直到所有业务蚂蚁到达目的主机,所述业务蚂蚁包括弹性业务蚂蚁和后台式业务蚂蚁;

403根据信息素更新公式,更新最优路径上的信息素值;

404、判断迭代次数m是否等于迭代数m,如果等于则输出最优解,否则m=m+1,返回402。

优选的,信息素转移概率表示为:

其中,表示t时刻处于交换机i的蚂蚁k选择交换机j的概率,allowedk表示处于交换机i的业务蚂蚁的下一跳交换机的可选集,τij(t)表示t时刻交换机i与交换机j之间的信息素浓度,ηij(t)表示t时刻处于交换机i的业务蚂蚁选择交换机j的启发函数,α为信息素的权值,β为启发函数的权值。

优选的,启发函数ηij(t)为:

其中,为链路ij上的弹性业务流和后台业务流的总数目,为链路ij上的交互式业务流数目,ω为交互式流数目的权重值。

优选的,当数据流为弹性业务流时,接入层的交换机释放弹性业务蚂蚁,弹性业务蚂蚁释放的信息素表示为:

j∈allowedk

dij=δ×throughputij-γ×delayij;

其中,q为常数,throughputij是链路ij的吞吐量,delayij为链路ij上的时延,δ表示吞吐量的权重,γ表示时延的权重。

优选的,当数据流为后台式业务流时,接入层的交换机释放后台式业务蚂蚁,后台式业务蚂蚁释放的信息素表示为:

j∈{1,2,...,allowedk}

其中,lossij为链路ij上的丢包率,表示丢包率的权重。

优选的,根据信息素更新公式,更新最优路径上的信息素值包括:

其中,τij(t+n)表示时刻t的信息素浓度经过n个时刻之后信息素的浓度值,ρ表示信息素的挥发效率,tmax表示信息素的最大值,tmin表示信息素的最小值。

本发明针对数据中心不同类型业务对网络性能的要求不同,采用不同的调度方法可以有效地保证服务质量,提升用户体验;另外,本发明利用优化的蚁群算法具有算法普适性、高效性及算法易移植性的优点,在此基础上进行算法改进,在保证多目标优化效果的同时保证了方法的低计算复杂度。

附图说明

图1为本发明使用的fattree拓扑结构图;

图2为本发明基于服务质量的数据中心流量调度方法流程图;

图3为本发明中优化的蚁群算法流程图。

具体实施方式

下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提出一种基于服务质量的数据中心流量调度方法,如图2,包括:

s1:接入层的交换机接收到主机发送的数据流,根据其目的地址判断是否与目的主机直连,如果是则将数据流转发到目的主机完成调度,否则进行步骤s2;

s2:判断数据流的传输速率是否小于预设的阈值,若是则交换机采用等价多路径的调度机制完成调度,否则进行步骤s3;

s3:控制器为数据流使用最短路径算法找到数据源和目的主机之间的最短路径集;

s4:使用优化的蚁群算法从最短路径集中获得最优路径,通过最优路径完成数据流的调度。

本发明考虑将数据中心业务分为三大类:交互型业务、弹性业务和后台业务,具体表示为:

交互型业务包括会话型业务,消息型业务和检索型业务等,例如实时会话、网页搜索等与最终用户体验密切相关的服务,表现为实时需求,交互型业务流普遍较小,因此对带宽需求不高,但是对时延高度敏感,对丢包率和时延抖动也有一定要求;

弹性业务包括对最终用户体验不太关键但仍然需要及时交付的服务,例如某些分布式计算作业(如mapreduce)和视频流服务等,相比交互型业务,弹性业务流对带宽需求较高,对延迟的敏感度较低,但也应在几秒到几分钟内交付。

后台业务包括数据中心的各种日常维护任务,如数据中心之间大规模的数据同步,通常后台业务流需要很大的带宽,而且对丢包率要求严格,但对时延没有要求,数据传输预计将在几分钟到几个小时内完成。

本发明考虑使用fattree数据中心网络架构,图1为fattree拓扑结构,其架构包括三种交换机:核心层的交换机、汇聚层的交换机和接入层的交换机。

当交换机接收到主机发送的数据包,根据其目的地址判断是否是直连,如果是则直接向下转发,否则需要判别该数据包是否属于交互式流量,若数据包属于交互式流量,则交换机采用等价多路径的调度机制对其进行调度,否则交换机将数据包信息发送至控制器。

因为交互型业务的流量普遍是生命周期短的小流,采用集中控制的方式反而会带来较大的时延,因此首先由接入层的交换机根据流的大小,判别出交互型业务(传输速率小于链路带宽容量的a%的流条目)和其它类型业务。然后接入层的交换机利用等价多路径的快速响应能力处理交互型业务流,以期尽可能减小其传输时延,同时接入层的交换机将其它业务流(传输速率大于等于链路带宽的a%的流条目)的信息发送给控制器,优选的,5≤a≤15。

因为在数据中心中,任意两台主机之间有非常多可达路径,如果以穷尽的方法从所有可选的路径中选择出一条合适路径需要较大的计算资源和计算时间,得不偿失;因此本发明的思想是先采用最短路径算法找到接入层的交换机和目的主机间的n条最短路径,组成最短路径集,然后从这n条路径中采用优化的蚁群算法分别计算出满足其业务需求的最佳路径,再将流表下发到该路径所涉及的所有交换机上,完成流的转发。

优化的蚁群算法如图3所示,包括:

401、初始化整个网络拓扑为一个无向图g=(v,e),其中v表示网络中交换机的集合,e代表网络的链路集合,令m=0;

402、将所有业务蚂蚁置于接入层的交换机,每个业务蚂蚁以信息素转移概率访问下一个交换机,直到所有业务蚂蚁到达目的主机,所述业务蚂蚁包括弹性业务蚂蚁和后台式业务蚂蚁;

403、根据业务蚂蚁产生的信息素更新公式,更新路径上的信息素值;

404、判断迭代次数m是否大于等于迭代数m,如果大于等于则输出最优路径,否则m=m+1,返回402。

优选的,信息素转移概率表示为:

其中,表示t时刻处于交换机i的蚂蚁k选择交换机j的概率,allowedk表示处于交换机i的业务蚂蚁的下一跳交换机的可选集,τij(t)是交换机i与交换机j之间的信息素浓度,ηij(t)是交换机i选择交换机j的启发函数,α为信息素的权值,β为启发函数的权值。

优选的,为了在对弹性业务流和后台业务流进行调度时,尽量减小对交互型业务流的影响,交换机i选择交换机j的提出启发函数ηij(t)表示为:

其中,为链路ij上的弹性业务流和后台业务流的总数目,为链路ij上的交互式业务流数目,ω为交互式流数目的权重值。

假设业务蚂蚁从主机到目的主机存在n条最短路径p={p1,p2,...,pn},其中,p为最短路径的集合,第i条路径pi一共由m条链路组成,即pi={l1,l2,...,lm},每条路径由时延di、丢包率li和吞吐量tpi三个参数进行约束,即pi=(di,li,tpi),第j条链路的时延为delay(li),丢包率为loss(lj),吞吐量为throughput(lj),则第i条路径的时延丢包率吞吐量

作为生命周期长的大流,弹性业务和后台业务对网络性能要求的共同点是吞吐量需求大,不同点是,弹性业务对时延敏感,后台业务对丢包率敏感;因此,当数据流为弹性业务流时,接入层交换机释放弹性业务蚂蚁,弹性业务蚂蚁释放的信息素表示为:

j∈allowedk

dij=δ×throughputij-γ×delayij;

其中,q是常数,throughputij是链路ij的吞吐量,delayij为链路ij上的时延,δ表示吞吐量的权重,γ表示时延的权重。

当数据流为后台式业务流时,接入层交换机释放后台式业务蚂蚁,后台式业务蚂蚁释放的信息素表示为:

j∈allowedk

其中,lossij为链路ij上的丢包率,表示丢包率的权重。

每次业务蚂蚁完成道路探索之后,都会在走过的道路上根据信息素产生公式释放信息素,而信息素也会紧跟时间的流逝自动蒸发,这个过程称为信息素的更新;数据中心网络规模较大,为了避免调度算法引入过大的时间开销,需要加快调度算法的收敛速度,即在一组蚂蚁探索完后,只允许找到最优路径的蚂蚁更新路径上的信息素,同时为了避免停滞现象,将各条路径上的信息素浓度限制在一定范围内,超过这个范围的值被强制设为最大值或最小值。因此信息素更新公式为:

其中,τij(t+n)表示时刻t的信息素浓度经过n个时刻之后信息素的浓度值,τij(t)表示时刻t的信息素浓度,δτij(t)表示业务蚂蚁在交换机i和交换机j之间新分泌的信息素的数量,ρ表示信息素的挥发效率,tmax表示信息素的最大值,tmin表示信息素的最小值。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1