一种数据中心网络流的调度方法和系统与流程

文档序号:12477928阅读:605来源:国知局
一种数据中心网络流的调度方法和系统与流程

本专利属于计算机网络领域,特别涉及一种数据中心网络流的调度方案和系统。



背景技术:

互联网向人类展示了全新的生活视角,将人们的生产,生活和学习方式得到了质的飞越和提升。数据中心网络作为存储传输处理大数据的基础设施,已经成为支撑现代经济发展和积极创新的基础保障。

用户向数据中心网络请求各种资源,数据中心网络也以不同的承载量回应着每一位用户。不可避免的,有的用户请求的数据比较少,形成小的数据流,希望得到更快的响应。有的用户发出服务器备份的请求,对完成时间并没有特别的要求。所以,区分流的大小进行调度具有很大的意义。区分调度能够满足不同用户对于传输时间的期望,提高用户的工作效率,提升用户体验。

对于企业来说,网络中数据的传输延迟也是一个很关心的指标。因为网络延迟直接影响着企业收益。比如,对于亚马逊来说,每100ms的延迟将会损失1%的业务利润,每500ms的延迟就会减少20%的用户请求。鉴于网络传输时间延迟对于用户和企业都具有重大意义,好多科学工作者投入到如何减小网络时延的工作中。目前有很多工作都集中于数据中心网络的流的调度方案。一些调度方案关注数据中心网络的利用率,集中在数据中心的流调度的负载均衡上。关注负载均衡的流调度方案不能保证短任务的完成时间,也不能保证其优先完成。还有一些研究,是在预先知道流的大小,传输截止时间等信息的条件下提高流调度的效率。虽然在一定的场景下,其可以获得很好的调度性能,但在一般情况下,流的大小或者deadline都是不可预估的。比如,HTTP协议在传输数据块的时候,先传输查询到的内容,这样及时响应用户。所以在传输完成之前,是不知道文件流的大小的。

有一些解决方案为减小流的传输时间。大概可以分为两种,一种是知道流的先验信息,即在进行流的传输工作之前,预先知道流的大小和流的传输截止时间等信息。有一种是不知道流的先验信息,即在进行流传输之前,不知道流的大小,到达时间,持续时间等信息。在这些解决方案中,有些是需要终端和交换机互相配合,然而涉及到交换机的升级就会影响到实际的部署。有的解决方案在部署时只需要升级终端,却没有考虑到网络中的流量的实时变化性。所以,当网络中流量的分布在改变时,机制的性能就会下降,影响用户体验。

常见流的调度方式主要有三种,最短流优先(Shortest Job First:SJF),公平共享(Fair sharing:FS),以及发送最少者优先(Least Attained Service:LAS)。

SJF:已知流的大小或者流的要求完成时间,优先调度小流或者要求完成时间最短的流。然而在现实生活中,我们一般不能预先得到流的大小或者时间限制要求。所以,这种调度方式运用在实际的数据中心网络中性能并不是很好。

FS:把处理器的时间划分地无限小,然后切换处理器的处理时间片,使每一个任务都能公平的共享处理器。

LAS:优先处理被处理最少时间的流。当任务的被处理时间一致时,则采用FS的方式公平的被处理。

如图1所示,图中有三条流,A,B,C.大小分别为1,2,4.到达时间为1,2,0。即C先到达。图1表示了三种调度方式下三条流调度的完成情况。对于FS,处理器先调度C流,当A在1的时间点到达时,A和C同时进行调度,B到达时,A,B和C同时被调度,直至一条或全部结束。对于SJF,优先调度比较小的流,当A流到达后,优先进行A流的调度,后续进行B流和C流的调度。对于LAS,当A和B到达时,则优先调度A和B使之和C的调度时间相等之后再进行公平调度。

当前流的调度方案都是基于上面的三种调度方式,它们分为以下两种。

一是调度之前已知流的先验信息。以pFabric,PDQ,D3和PASE为首的方案就是根据流的大小和传输截止时间来做调度决策。pFabric把全网的交互机看成一个大的交换机,当端口空闲时,按照流的大小来优先调度小流,从而实现SJF的调度方式,最小化流的完成时间。

二是调度之前未知流的先验信息。以L2DCP及PIAS为首的方案就是在调度流之前不知道流的大小等信息,其通过在终端设定固定不变的阈值来标记流的优先级,然后在交换机上根据优先级来进行调度。

方案一存在如下的不足:以流的大小,或者流的完成时间为先验信息的调度方案在实际环境中会降低其性能,甚至不可行。方案二虽为不需要流的先验信息的机制,但需要交换机和终端同时升级,交换机升级增加了部署了难度。

另以上方案都存在如下的不足:不能实时地监测网络中流量的变化,没有根据实时的流量来合理对流进行调度,流完成的效率不高、应变能力小,不能根据网络的状况自适应。



技术实现要素:

本发明提出一种数据中心网络流的调度方法和系统。该方法和系统可以自适应网络的状况,实时地监测网络中流量的变化,根据实时流量来合理对流进行调度。

本发明提供了一种数据中心网络流的调度方法,该方法包括如下步骤:

A1.控制器获取当前的网络状况,根据流的分布计算阈值列表并进行更新,

控制器将阈值列表推送给终端;

A2.终端根据阈值列表对数据包进行优先级标记;

A3.交换机根据数据包的优先级标记进行优先级调度;

A4.控制器检测网络的变化,根据网络状况不定时更新阈值列表。

优选地,所述步骤A1阈值列表通过将流的分布代入阈值列表优化模型,最优化求解得到。

进一步地优选,所述阈值列表优化模型,通过最小化流的完成时间得到。

定义优先级队列用Pi表示,优先级队列的数据阈值用αj表示。

根据流的分布,设阈值列表中有K-1个数据阈值{α1,α2,α3,….αK-1};则有K个队列,分别为P1:<α1;P2:[α12);P3:[α23)……;PK-1:[αK-2K-1);PK:>αK-1。队列用Pi表示,阈值用αj表示,从Pi到Pi+1优先级的阈值为αj,其中i=j,1≤i≤K,1≤j≤K-1,α0=0,αK=∞。

对于一个处于[αj-1,αj)大小的流,即在Pi队列,已经经过了到达Pi队列之前i-1个不同的延迟。用Ti表示在Pi队列平均排队时间,设队列Pi的输入速率为λi,处理速率μi,那么流在Pi队列的排队时间为:Li×Ti

Li=(αii-1)×θi 公式(1)

设数据流的累积分布函数为F(x),F(x)表示为流的大小不超过x的概率,x∈αj。θi=θj=F(αj)-F(αj-1)表示流的大小处于Pi队列的比例,其中θi=θj≥0,在Pi队列中的比例大于等于0。则在队列Pi停留的总时间为:

其中,

λi=(αii-1)×θ×λ公式(6)

假设队列为M/M/1的排队队列,即数据包按照泊松分布到达,服务时间服从马尔科夫链性质,只有一个调度者,K个队列的停留总时间为:

更进一步地优选,所述阈值列表优化模型表达为如下公式:

其中,用n标记流,1≤n≤N,N条流的总停留时间表达为如上公式(8)。

最优选,如上所述的阈值列表优化模型表达公式通过MATLAB的遗传算法计算得到阈值列表。

优选地,所述步骤A2终端根据流已经发送的数据量对数据包进行优先级标记。

进一步地优选,所述优先级为流已经发送的数据量越小,其数据包的优先级越高。

即P1具有最高的优先级,α0=0,αK=∞。这样最小的流停留在最高的优先级队列,最大的流停留在最小的优先级队列。

本发明还提供一种数据中心网络流的调度系统,该系统包括:控制器,终端标记模块,交换机调度模块,其中控制器包括网络状态获取模块,阈值计算与更新模块,阈值列表推送模块;网络状态获取模块用于统计流量信息,同时通过和终端交互获取流的发送速率、发送大小信息;阈值计算与更新模块通过与网络状态获取模块交互,从而知道当前的网络状况,进行阈值的计算与更新;阈值列表推送模块将最新的阈值列表推送给相应的终端;终端标记模块用于包的优先级标记;交换机调度模块用于数据包的调度。

本发明的有益效果为:通过控制器实时监测网络中的流量变化,计算更新阈值列表并且推送给终端,终端对数据包进行优先级的标记,从而使得交换机根据优先级进行调度,该方法利用控制器的计算和处理能力,实时检测网络变化,提高流的应变能力,该方法可以自适应网络的状况,使得更加智能和高效。该系统通过终端对数据包进行标记,没有修改现有的TCP/IP栈,避免了修改交换机设备,提高了方案的易用性,降低了部署性。

本发明的实施例还具有如下的有益效果:将流的分布代入通过最小化流的完成时间得到的阈值列表优化模型,根据该模型计算得到的阈值列表进行优先级标记和优先级调度,能将流的完成时间最小化;通过利用MATLAB的遗传算法,能快速并准确计算得到阈值列表;根据流已经发送的数据量对数据包进行优先级标记,不要求应用程序提供关于数据流的大小以及截止时间等信息,使得更容易部署,具有更强的鲁棒性。通过流已经发送的数据量越小,其数据包的优先级越高,使得请求数据较少的用户得到更快的响应,满足不同用户对传输时间的期望,提升用户体验。

附图说明

图1为本发明背景技术中流的三种调度方式对流调度完成时间的影响,图1a为FS调度方式,图1b为SJF调度方式,图1c为LAS调度方式。

图2为本发明实施例数据中心网络流的调度方法示意图。

图3为本发明实施例流的分布与阈值列表的关系示意图。

图4为本发明实施例终端标记流的优先级示意图。

图5为本发明实施例Linux kernel的网络过滤模型。

具体实施方式

下面结合具体实施方式并对照附图对本发明作进一步详细说明,应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。

当前有3条流,分别为流a,b,c。其数据中心网络流的调度方法如图2所示,包括如下步骤:

A1.控制器获取当前的网络状况,根据流的分布计算阈值列表并进行更新,控制器将阈值列表推送给终端;

A2.终端根据阈值列表对数据包进行优先级标记;

A3.交换机根据数据包的优先级标记进行优先级调度;

A4.控制器检测网络的变化,根据网络状况不定时更新阈值列表。

图3表示了当前流的分布与阈值列表的关系。阈值列表中有K-1个数据阈值{α1,α2,α3,….αK-1};有K个队列,分别为P1:<α1;P2:[α12);P3:[α23)……;PK-1:[αK-2K-1);PK:>αK-1。队列为Pi,阈值为αj。从Pi到Pi+1优先级的阈值为αj,其中i=j,1≤i≤K,1≤j≤K-1,α0=0,αK=∞。

K个队列的停留总时间为:

其有4条流,其总停留时间为:

设将上述的阈值列表优化模型表达公式(9)通过MATLAB的遗传算法计算得到阈值列表{3KB,5KB,10KB}。终端根据阈值列表对数据包进行优先级标记,其示意图如图4所示。

一条流发送的数据量小于3KB的时候,其数据包被标记为1,即第一优先级。当发送的数据量大于3KB并且小于5KB的时候,将这个区间发送的数据包标记为第二优先级。相应优先级的数据包进入对应的交换机的多重优先级队列。交换机的多重优先级队列是内置的,并不需要做任何升级,所以部署起来比较方便。在图4中,流a,c是大于10KB的流,所以,其数据包在第四个队列有驻留;流b小于10KB,所以其数据包都被标记为前三个优先级。

终端根据流已经发送的数据量对数据包标记优先级。流发送的数据量越小,则其数据包的优先级越高。流的优先级不是固定不变的,而是随着其发送的数据包的增多在慢慢减小。这是利用了现有的商用交换机内置的多重优先级队列机制。在交换机内,不同优先级的包按照其优先级进行严格的优先级调度。在一条流被调度的整个过程中,这条流的优先级不断的下降随着它发送的包的数量的增加。当发送的数据量大于一个队列的阈值时,数据包将会被赋予更低的优先级从而进入下一个队列。

本方案只需要对终端进行简单修改升级,对于DCN网络中的交换机设备不需要进行任何修改。控制器需要增加网络状态获取模块,阈值计算与更新模块,阈值列表推送模块。

数据中心网络流的调度系统包括:控制器,终端标记模块,交换机调度模块,其中控制器包括网络状态获取模块,阈值计算与更新模块,阈值列表推送模块。其每一个模块的功能和实现如下:

(1)网络状态获取模块

该模块使用SNMP协议的协议报文(get-request操作,get-next-request操作,set-request操作)可以获取交换机的信息(吞吐量、网络负载)。同时交互机也会在发生网络异常时及时通知(get–response操作,trap操作)管理进程。控制器可以通过这个模块统计流量信息,同时通过和终端交互来获取手机流的发送速率,发送大小等信息,为阈值计算与更新模块提供智能化和精确的数据。

(2)阈值计算与更新模块

该模块与网络状态获取模块进行交互,从而知道当前的网络状况,然后利用阈值列表优化模型进行最优化目标的求解。此优化问题可以使用MATLAB的遗传算法进行解决,得到一个阈值列表。终端根据这个阈值列表来标记流的优先级。当有网络状况改变时,通过SNMP协议可以更新当前的网络状态,重新根据优化模型计算阈值列表。由于每一个终端所处的网络状况不同,所以终端的阈值列表是不相同的。

(3)阈值列表推送模块

阈值列表推送模块拿到最新的阈值列表之后,推送给相应的终端。因为每个终端所处的网络状况不同,其阈值列表也不一致。该模块在网络状况稳定的情况下,每1s推送一次更新的阈值列表,如果网络中状况不稳定,则每个RTT都推送更新的阈值列表,来保证阈值列表对网络的自适应性和实时性。

(4)终端标记模块

终端标记数据包的优先级是通过修改Linux kernel中的Netfilter框架来实现的。Linux kernel的网络过滤模型如图5所示,当一个包进入IP栈的时候,它的校验码就会被验证,然后这个包会被PRE-ROUTE这个钩子函数进行处理,来决定是否提交给主机还是要被转发。运用Netfilter框架,可以通过注册钩子函数来实现数据包的标记,并不需要修改现有的TCP/IP栈。当一个终端要发送数据包时,会通过LOCAL-OUT的钩子函数来截获这个数据包到一个基于哈希的流表。这个流表表项包括源/目的IP,源/目的端口,以及传输协议。当一个新的数据包将要被发送时,哈希函数检查这个数据包是否属于已有的流,如果没有,就会在这个表中新建一个记录,把这条流包括进去。如果属于已有的流,就会增加已经有的流的发送的数据量的大小。最后我们修改这个包的DCSP的字段把它标记为相应的优先级。

通过终端标记模块和控制器的阈值计算相关的模块的配合,可以对流进行自适应网络的优先级标记,进行智能化的流调度,最小化流的调度和传输延迟,提高流调度机制的效率。

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