一种大象流多分级调度方法及装置、设备、存储介质与流程

文档序号:25742018发布日期:2021-07-06 18:52阅读:104来源:国知局
一种大象流多分级调度方法及装置、设备、存储介质与流程
本申请实施例涉及但不限于流量调度技术,尤其涉及一种大象流多分级调度方法及装置、设备、存储介质。
背景技术
:依据流携带数据量的多少可将网络流分为大象流和老鼠流,大象流占网络流总数的10%左右,但其承载了网络总数据量的85%,具有传输时间长、占用带宽大、数量较多的特点,而老鼠流则正好相反。目前对于大象流的识别和调度主要存在以下不足:(1)大象流的识别方面:统计或预测的流的大小,当大于某个阈值时识别为大象流;未能对大象流的具体程度进行划分。(2)大象流的调度方面:调度方法没有考虑不同大象流对于链路的占用需求的不同。技术实现要素:有鉴于此,本申请实施例为解决相关技术中存在的至少一个问题而提供一种大象流多分级调度方法及装置、设备、存储介质。本申请实施例的技术方案是这样实现的:一方面,本申请实施例提供一种大象流多分级调度方法,所述方法包括:确定待识别的大象流的长度和所述大象流的完成时长;将所述大象流的长度和所述大象流的完成时长,输入流量分级模型中,得到所述大象流的分级信息;确定当前可用路径集合中每一可用路径的带宽参数;所述可用路径集合中共包括n条可用路径;根据所述n条可用路径的带宽参数对可用路径进行排序,得到排序结果;根据所述排序结果和所述大象流的分级信息,将所述大象流调度到相应的可用路径上。另一方面,本申请实施例提供一种大象流多分级调度装置,所述装置包括:第一确定模块,用于确定待识别的大象流的长度和所述大象流的完成时长;输入模块,用于将所述大象流的长度和所述大象流的完成时长,输入流量分级模型中,得到所述大象流的分级信息;第二确定模块,用于确定当前可用路径集合中每一可用路径的带宽参数;所述可用路径集合中共包括n条可用路径;排序模块,用于根据所述n条可用路径的带宽参数对可用路径进行排序,得到排序结果;第一调度模块,用于根据所述排序结果和所述大象流的分级信息,将所述大象流调度到相应的可用路径上。再一方面,本申请实施例提供一种大象流多分级调度设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例提供的大象流多分级调度方法中的步骤。又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例提供的大象流多分级调度方法中的步骤。本申请实施例中,考虑到大象流的特点:部分大象流的传输字节数和传输时长都很大,而部分大象流的传输字节数和传输时长都较小,不同类型的大象流对于链路的占用需求不同;本申请实施例提供的技术方案,在数据中心网络典型多路径环境下,根据数据流的大小(即数据量的长度)和完成时长两个维度对大象流进行多分级预测,得到大象流的分级信息,然后根据大象流的分级信息对大象流进行精确调度。附图说明图1为相关技术中典型三层胖树结构数据中心的网络拓扑示意图;图2a为本申请实施例大象流多分级调度方法的实现流程示意图;图2b为本申请实施例大象流多分级调度方法的实现流程示意图;图3为本申请实施例大象流多分级调度方法的实现流程示意图;图4为本申请实施例基于大象流多分级检测的智能调度系统的组成结构示意图;图5为本申请实施例基于大象流多分级检测的智能调度方法的实现流程示意图;图6为本申请实施例大象流多分级调度装置的组成结构示意图;图7为本申请实施例中大象流多分级调度设备的一种硬件实体示意图。具体实施方式数据中心网络规模和业务的不断增长对网络管理提出了严峻的挑战,流量调度成为当前研究的热点。依据流携带数据量的多少可将网络流分为大象流和老鼠流,大象流占网络流总数的10%左右,但其承载了网络总数据量的85%,具有传输时间长、占用带宽大、数量较多的特点,而老鼠流则正好相反。数据中心网络中,服务器节点之间通常存在多条等价传输路径以增加节点之间的传输带宽,同时保障数据传输的可靠性(避免单点故障)。图1所示为典型三层胖树(fat-tree)结构数据中心网络拓扑,在此拓扑为例,同一pod内的节点h1到h4之间的存在两条等价路径[s13,s5,s14]以及[s13,s6,s14];不同pod内的节点h1到h8之间存在4条等价路径[s13,s5,s1,s7,s16]、[s13,s5,s1,s7,s16]、[s13,s5,s1,s7,s16]和[s13,s5,s1,s7,s16]。ecmp(equal-costmulti-path,等价多路径)通过对流的数据包头部进行哈希运算,将数据流映射到不同的转发路径,以此达到将到达统一节点的不同流分散到不同的等价路径上的目的。然而,ecmp调度方法未能区分大小流(大象流、老鼠流),因此网络的链路负载在大小流同时存在时不能均衡,从而造成部分链路拥塞的同时部分链路闲置。针对ecmp不能均衡调度大小流的缺点,当前主要有以下解决方案:目前对于大象流的识别和调度主要存在以下不足:大象流的识别方面:统计或预测的流的大小,当大于某个阈值时识别为大象流;未能对大象流的具体程度进行划分。事实上,部分大象流的传输字节数和传输时长都很大,而部分大象流的传输字节数和传输时长都较小。不同类型的大象流对于链路的占用需求不同。大象流的调度方面:调度方法没有考虑不同大象流对于链路的占用需求的不同,仅仅考虑链路的利用率容易造成带宽的碎片化——即多条路径剩余带宽之和能够满足当前流带宽需求,但无其中任何一条路径剩余带宽能够满足流带宽分配需求。针对当前大象流流量调度方案的中上述缺点,本申请实施例提出一种基于大象流多分级调度方法及系统。一方面,根据数据流的大小(即数据量的长度)和完成时长两个维度对大象流进行分级预测,另一方面,按照大象流的分级结果,综合考虑路径带宽的利用率和带宽的碎片化对大象流进行智能调度。下面结合附图和实施例对本申请的技术方案进一步详细阐述。本申请实施例提供一种大象流多分级调度方法,图2a为本申请实施例大象流多分级调度方法的实现流程示意图,如图2a所示,该方法包括:步骤s201,确定待识别的大象流的长度和所述大象流的完成时长;这里,对于进入数据中心网络的新数据流,利用流的统计信息或者机器学习的方法,根据数据流中报文的五元组信息识别出数据流是大象流还是老鼠流,例如统计或预测的数据流的数据量大小,当数据流的数据量大于等于某个阈值时识别为大象流,当数据流的数据量小于等于某个阈值时识别为老鼠流。本实施例中还提供一种识别大象流与老鼠流的方法包括:确定进入数据中心网络的数据流;根据获取的所述数据流的首个报文的五元组信息、数据包长和客户端/服务器c/s信息,确定所述数据流的类型;其中,所述数据量的类型包括大象流和老鼠流。对应地,如果所述数据流的类型为大象流时,确定所述数据流为所述待识别的大象流,进入步骤s101;如果所述数据流的类型为老鼠流时,对所述数据流进行ecmp调度。步骤s202,将所述大象流的长度和所述大象流的完成时长,输入流量分级模型中,得到所述大象流的分级信息;在一些实施例中,流量分级模型可以用来对大象流进行分级,还可以用来对数据流进行分级,也就是说,如果输入的是数据流,那么流量分级模型输出的结果可能是大象流或老鼠流,并且会对大象流进行更为细致的划分,得出大象流更为具体的分级信息。步骤s203,确定当前可用路径集合中每一可用路径的带宽参数;所述可用路径集合中共包括n条可用路径;步骤s204,根据所述n条可用路径的带宽参数对可用路径进行排序,得到排序结果;步骤s205,根据所述排序结果和所述大象流的分级信息,将所述大象流调度到相应的可用路径上。本申请实施例提供一种大象流多分级调度方法,图2b为本申请实施例大象流多分级调度方法的实现流程示意图,如图2b所示,该方法包括:步骤s211,确定待识别的大象流的长度和所述大象流的完成时长;这里,对于进入数据中心网络的新数据流,利用流的统计信息或者机器学习的方法,根据数据流中报文的五元组信息识别出数据流是大象流还是老鼠流,例如统计或预测的数据流的数据量大小,当数据流的数据量大于等于某个阈值时识别为大象流,当数据流的数据量小于等于某个阈值时识别为老鼠流。本实施例中还提供一种识别大象流与老鼠流的方法包括:确定进入数据中心网络的数据流;根据获取的所述数据流的首个报文的五元组信息、数据包长和客户端/服务器c/s信息,确定所述数据流的类型;其中,所述数据量的类型包括大象流和老鼠流。对应地,如果所述数据流的类型为大象流时,确定所述数据流为所述待识别的大象流,进入步骤s211;如果所述数据流的类型为老鼠流时,对所述数据流进行ecmp调度。步骤s212,获取预设的数据流的完成时长阈值集合和数据流的长度阈值集合;这里,可以通过所述流量分级模型获取预设的数据流的完成时长阈值集合和数据流的长度阈值集合;其中,所述长度阈值集合或所述完成时长阈值集合中至少之一包括两个或两个以上的对应阈值;这里,当确定新数据流为大象流时,从两个维度长度和完成时长上确定所述大象流的分级信息。一些实施例中,完成时长阈值集合中可以至少包括一个完成时长阈值,长度阈值集合中可以至少包括两个不同的长度阈值。另一些实施例中的完成时长阈值集合中可以至少包括两个不同的完成时长阈值,长度阈值集合中可以至少包括一个不同的长度阈值。参见表1,完成时长阈值集合包括一个t1,长度阈值集合包括两个不同的阈值s1和s2,这样划分的大象流的分级总数包括4个。在另一些实施例中,可以设置完成时长阈值包括t1、t0,长度阈值集合包括两个不同的阈值s1和s2,这样划分的大象流的分级总数将超过4个。步骤s213,确定所述大象流的长度与所述长度阈值集合中各长度阈值之间的第一大小关系;这里,将大象流的长度与各长度阈值进行比较,得到所述大象流的长度落在哪个阈值区间内。参见表1,如果大象流的长度小于t1,那么该大象流的分级信息将属于第一行,f0或f2。如果大象流的长度大于等于t1,那么该大象流的分级信息将属于第二行,f1或f3。步骤s214,确定所述大象流的完成时长与所述完成时长阈值集合中各完成时长阈值之间的第二大小关系;这里,将大象流的完成时长与各完成时长阈值进行比较,得到所述大象流的完成时长落在哪个阈值区间内。参见表1,如果大象流的长度小于等于s2大于s1,那么该大象流的分级信息将属于第一列,f0或f1。如果大象流的长度大于s2,那么该大象流的分级信息将属于第二列,f2或f3。步骤s215,根据所述第一大小关系和所述第二大小关系,确定所述大象流的分级信息;参见表1,根据大象流的完成时长落的阈值区间和大象流的长度落的阈值区间,可以确定大象流的分级信息。从表1可以看出,本实施例提供的根据大象流的完成时长和大象流的长度不仅能够识别出大象流的具体级别,得到大象流的分级信息。还可以根据数据流的完成时长和数据流的长度识别出数据流为大象流还是老鼠流。因此,本申请实施例中的步骤201至步骤205,实际上还提供一种根据数据流的完成时长和数据流的长度识别出数据流为大象流还是老鼠流,如果是大象流时还可以直接得出大象流的分级信息(即大象流的具体分级),其中在步骤s201、203和204中的大象流的完成时长和大象流的长度对应改为数据流的完成时长和长度即可。步骤s216,根据所述大象流的分级信息,将所述大象流调度到相应的可用路径上。这里,可用路径可以是指胖树网络中等价传输路径,在一些实施例中可用路径可以是连接正常没有断开的路径,也可以是满足某些设置条件的路径。本申请实施例中,考虑到大象流的特点:部分大象流的传输字节数和传输时长都很大,而部分大象流的传输字节数和传输时长都较小,不同类型的大象流对于链路的占用需求不同;本申请实施例提供的技术方案,在数据中心网络典型多路径环境下,根据数据流的大小(即数据量的长度)和完成时长两个维度对大象流进行多分级预测,得到大象流的分级信息,然后根据大象流的分级信息对大象流进行精确调度。本申请实施例提供一种大象流多分级调度方法,图3为本申请实施例大象流多分级调度方法的实现流程示意图,如图3所示,该方法包括:步骤s201,确定待识别的大象流的长度和所述大象流的完成时长;步骤s202,获取预设的数据流的完成时长阈值集合和数据流的长度阈值集合;步骤s203,确定所述大象流的长度与所述长度阈值集合中各长度阈值之间的第一大小关系;步骤s204,确定所述大象流的完成时长与所述完成时长阈值集合中各完成时长阈值之间的第二大小关系;步骤s205,根据所述第一大小关系和所述第二大小关系,确定所述大象流的分级信息;步骤s301,确定当前可用路径集合中每一可用路径的带宽参数;所述可用路径集合中共包括n条可用路径;这里,当前可用路径集合中可以包括当前所有的可用路径,也可以是包括部分当前所有的可用路径,即n可以是全部的可用路径,也可以是部分可用路径。步骤s302,根据所述n条可用路径的带宽参数从大到小对可用路径进行排序,得到排序结果;这里,所述带宽参数包括剩余带宽、带宽利用率至少之一,其中,每一所述可用路径的剩余带宽为对应可用路径上所有链路所剩带宽的最小值。步骤s303,根据所述排序结果和所述大象流的分级信息,将所述大象流调度到相应的可用路径上。这里,步骤s301至步骤s303提供了一种实现步骤s206“根据所述大象流的分级信息,将所述大象流调度到相应的可用路径上”的方法。在当有数据流需要调度时,通过按照带宽参数对路径进行排序,根据排序结果和大象流的分级信息将该大象流调度到目标可用路径上。在另一些实施例中,步骤s206所述根据所述大象流的分级信息,将所述大象流调度到相应的可用路径上,还包括:如果无可用路径,则对所述大象流进行ecmp调度。在一些实施例中,所述根据所述排序结果和所述大象流的分级信息,将所述大象流调度到相应的可用路径上,包括:步骤s11,如果n大于等于p,根据所述排序结果和大象流的分级总数p,将所述当前可用路径集合中的所有可用路径划分为p组,以与大象流的分级信息对应;或者如果n小于p,将p个分级信息划分为n组,以与所述n条可用路径对应;步骤s12,n大于等于p时,根据所述大象流的分级信息从与所述p组中对应的一组中选择一条目标可用路径,将所述大象流调度到所述目标可用路径上;这里,根据所述大象流的分级信息从p组中选择对应的一组可用路径,从选择的一组可用路径中选择一条可用路径作为目标可用路径。步骤s13,n小于p时,根据划分的n组中的每一组大象流的分级信息和所述大象流的分级信息从所述n条可用路径中选择一条作为目标可用路径,将所述大象流调度到所述目标可用路径上。这里,在n小于p时,一般的原则是,完成时长越长长度越长的大象流的分级信息越低,其中,分级信息越低对应的带宽参数越大。完成时长越长长度越长的大象流可以调度在带宽参数越大的可用路径上。如果所述可用路径的数量n小于所述大象流的分级总数p,按照带宽参数越大匹配分级信息越低的大象流的原则,将所述大象流调度到所述n条可用路径中的一条可用路径上。在一些实施例中,步骤s2,所述如果n大于等于p,根据所述排序结果和大象流的分级总数p,将所述当前可用路径集合中的所有可用路径划分为p组,以与大象流的分级信息对应,包括:步骤s121,如果所述n大于等于p,按照顺序根据所述排序结果确定对应的可用路径的序号i;i的取值大于等于0小于等于n-1的整数;步骤s122,按照公式imodp将n条可用路径划分为与所述大象流级别对应的p组。其中,mod表示两数相除取得余数,即mod是取余函数;在一些实施例中,所述根据所述排序结果和所述大象流的分级信息,将所述大象流调度到相应的可用路径上,包括:步骤s21,步骤如果所述可用路径的数量n大于等于所述大象流的分级总数p,按照顺序根据所述排序结果确定对应的可用路径的序号i;i的取值大于等于0小于等于n-1的整数;步骤s22,按照公式imodp将n条可用路径划分为与所述大象流级别对应的p组;步骤s23,根据所述大象流的分级信息从与所述p组中对应的一组中选择一条目标可用路径;步骤s24,将所述大象流调度到所述目标可用路径上。参见表1,大象流的分级总数为4条,当满足需求的路径数量n大于大象流的分级总数4时,即当满足需求的路径多余4条(包含4条)时:动态将n条可用路径按照剩余带宽由大到小排序(每一路径的序号i分别为0、1、2、…、n-1),并将n条路径划分为4级:p3,p2,p1,p0。路径的分级方法调度方法如表2所示,4个级别的大象流被相应调度到4个级别的可用路径中。由于n大于等于n,那么每一路径级别(每一组路径)中路径的数量至少包括一条,那么可以从每一路径级别中选择一条作为目标路径。以排序为3的可用路径为例,i=3,imod4=3,所以路径3为p0级路径,用于调度f0级大象流。由表2可以看出,按照排序结果,将n条路径以p为单位进行划分,假设有12条路径,4个大象流的级别,将排序结果中每4个为一组依次分配给大象流级别信息最低的(即在每一次划分中,也是按照带宽参数越大匹配分级信息越低的大象流的原则,其中分级信息越低意味着完成时长越长和长度越长)。在一些实施例中,在所述将所述大象流调度到相应的可用路径上之后,所述方法还包括:步骤s31,如果所述大象流未被正在识别时,确定当前所调度路径的带宽参数值;步骤s32,如果所述带宽参数值满足条件,继续在所述当前所调度路径上调度所述大象流;这里,以剩余带宽利用率为例进行说明,如果剩余带宽利用率大于某个值(例如15%)说明满足条件,否则认为不满足条件。步骤s33,如果所述带宽参数值不满足条件,重新调度所述大象流。在一些实施例中,所述方法还包括:通过以下步骤确定大象流是否被正确识别。步骤s41,在开始调度所述大象流时,启动计时器开始计时;这里,将所述大象流的完成时长确定为计时阈值;如果超时时,那么本来意味着大象流调度完成了,但是计时器超时了,仍然没有完成,意味着,大象流的分级出现错误,即大象流未被正确识别。那么将需要重新调度。步骤s32,如果计时时长超过所述大象流的完成时长,确定所述大象流未被正确识别。针对当前大象流流量调度方案的中上述缺点,本申请实施例提出一种基于大象流多分级检测的智能调度方法及系统。图4所示为系统的组成结构示意图,该系统包括:大象流多分级预测识别系统401,简称识别系统,用于参见下面的5.1、5.2,从控制器403进行数据采集并存储,利用采集的数据进行模型算法训练,得到流量多分级识别模型,模型训练完成后对进入网络的新数据量进行预测,得到数据流的分级信息(包括大象流、老鼠流和大象流的具体分级信息)。多分级流智能调度系统402,简称调度系统,用于参见下面的5.3、5.4,根据大象流的分级信息进行多级调度,如果大象流未被正确识别时还进行条件重路由,以及生成流表,下发给控制器403;sdn控制器403,用于下发流表到网络硬件交换机;网络基础设施404,包括交换机。在实施例的过程中,本申请的识别系统和调度系统为逻辑上的划分,也就是说,二者为逻辑模块,在实现的时候,识别系统和调度系统可以为sdn控制器共同设置一个硬件设备上,当然也可以各自分别设置在不同的硬件设备上。下面对本申请的大象流多分级调度方法进行阐述:5.1、建立大象流多分级预测识别模型数据中心网络通过sdn控制器采集网络历史数据,标记历史数据中的大象流和老鼠流信息。根据历史数据,利用机器学习算法(神经网络或者高斯过程回归),离线训练流量多分级识别模型(即流量分级模型),其中,模型的输入为历史数据流第一个报文的五元组信息(src/destip,src/destport,l4proto_type)、数据包长、server/client信息;模型的输出为根据预测所得的数据流的长度fs(flowsize)和流的完成时长fct(flowcompletetime)得到的数据流的多分级类型。数据流的多分级方法和类型如下表1所示:表1:数据流的多分级类型从表1可以看出:a)根据数据流长度fs的两个阈值s1和s2,以及数据流完成时长t1,将大象流分类四类。如表1所示,每种大象流对于链路带宽的占用需求各不相同。b)其中流大小阈值s1、s2以及流时长阈值t1可以根据不同数据中心的历史大数据自行进行设定。作为示例,可以设定s1=2mbytes,s2=20mbytes;t1=10秒。5.2、大象流实时多分级预测识别对于进入系统的新的数据流,由流量多分级识别模型(如5.1.所述)在线实时完成识别。模型的输入为新的数据流首包(第一个报文)的五元组信息、数据包长和server/client信息,模型的输出为老鼠流或者四种大象流中的一种。5.3、多分级流智能调度按照大象流的分级结果,综合考虑路径带宽的利用率和带宽的碎片化对大象流进行智能调度。本方案中的路径多分级调度算法设计如下:a)实时计算所有可用路径的实时剩余带宽(或者带宽利用率)并对路径进行排序,每条路径的实时剩余带宽为路径上所有链路所剩带宽的最小值。b)如果无可用路径,则对流进行ecmp调度。c)如有可用路径,根据大象流级别将其调度到相应的多分级的可用路径上。当满足需求的路径多余4条(包含4条)时:动态将n条可用路径按照剩余带宽由大到小排序(0、1、2、…、n-1),并将路径划分为4级:p3,p2,p1,p0。路径的分级方法调度方法如表2所示,4个级别的大象流被相应调度到4个级别的可用路径中。以排序为3的可用路径为例,i=3,imod4=3,所以路径3为p0级路径,用于调度f0级大象流。表2:可用路径和大象流映射——可用路径多余4条路径级别p3p2p1p0第i条路径imod4==0imod4==1imod4==2imod4==3大象流级别f3f2f1f0d)特别地,当满足需求的可用路径数量少于4条时,需要动态将大象流级别合并然后对应调度到相应的路径级别中。具体合并策略及映射关系如下表3所示。当路径数量为3条时,将f2、f1级别的大象流调度到p2级别的路径上;当路径数量为2条时,将f3、f2级别的大象流调度到p3级别的路径上,将f1、f0调度到p2级别的路径上;当仅有1条可用路径时,所有级别的大象流都将调度到此可用路径中。表3:可用路径和大象流映射——可用路径少于余4条5.4、条件重路由基于机器学习的流量识别预测可能会有少量的预测错误,条件重路由机制会对影响较大的错误进行纠错。为了尽可能减小路由的变化,本方案仅对预测错误的大象流类别p3有选择地进行重路由。如果当前所调度路径的剩余带宽利用率大于某个值(例如15%),则不用重路由,因为此时网络整体状况尚好。否则,被错误识别为其他类别的f3大象流,在流开始传输后的某个时间t2(t2>t1,例如t2可设置为15s)后,将其重新调度到p3级别的路径上。5.5、方案实施流程基于上述算法设计和实现,本申请实施例提供的技术方案如图5所示,该方法包括:步骤s501,调度系统对于进入数据中心网络的新流,利用数据流的首个报文的五元组信息、数据包长和server/client信息,在离线训练好的机器学习模型(如5.1节所述)上实时快速得到识别结果:老鼠流或者4种大象流中的一种;步骤s502,调度系统如果数据流为老鼠流,则对数据流进行ecmp调度;步骤s503,调度系统如果数据流为大象流,则按以下方法进行调度:获取大象流的分级信息;计算所有可用路径的实时剩余带宽并对路径进行排序;如果无可用路径,则对流进行ecmp调度;如果有可用路径,将根据排序结果和分级信息按照上文所述路径多分级调度算法(如5.3节所述),将大象流调度到相应的可用路径上。步骤s504,调度系统将调度结果通过控制器下发流表到网络硬件交换机;步骤s505,交换机数据流按照流匹配表项进行转发;步骤s506,识别系统对于数据流未被正确识别为f3类型,在转发该流t2时间(例如15秒)后则对数据流进行条件重路由(如5.4节所述),更新硬件交换机相应流表。本申请实施例中,(1)根据数据流的长度和流的完成时长两个维度对大象流进行多分级,作为对大象流进行多分级调度的基础,本方案所述系统将大象流分为四级(f3、f2、f1、f0)。根据不同数据中心网络业务的需求,可以通过增加两个维度上的阈值,将大象流分为更多级别,在此情况下,本方案所述分级方法仍然适用。(2)多等价转发路径下,大象流的多分级调度算法。算法计算所有可用路径的实时剩余带宽(或者带宽利用率)并对路径进行排序并分为四个级别(p3、p2、p1、p0),对应调度四个级别的大象流。同样地,调度算法可以按需扩展到更多的路径级别上。(3)作为数据流多分级预测识别的纠错机制的条件重路由。(4)数据流的多分级预测可以不限于本提案中基于机器学习的技术。基于其他方法(例如主机侧智能网卡)获取流长和流完成时长信息后,本提案对大象流的多分级识别和多分级调度系统仍然适用。与现有技术相比,本申请实施例具有以下优点如下:(1)数据中心网络典型多路径环境下,根据流的长度和流完成时长两个维度的预测对大象流进行多分级预测识别,作为对大象流进行更精确调度的基础;(2)多路径下的分级调度方案在路径的负载均衡和防止路径的碎片化方面取得了平衡;(3)系统基于的机器学习算法模型无需实时更新,只需在必要时间段内进行后台离线更新,对系统实时计算资源的需求较低;(4)基于纠错机制的重路由进一步降低了机器学习算法预测错误的代价;另一方面纠错仅限定在极少数错误情况,减少了系统不必要的路由更新。基于前述的实施例,本申请实施例提供一种大象流多分级调度装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(cpu)、微处理器(mpu)、数字信号处理器(dsp)或现场可编程门阵列(fpga)等。图6为本申请实施例大象流多分级调度装置的组成结构示意图,如图6所示,所述装置600包括:第一确定模块601,用于确定待识别的大象流的长度和所述大象流的完成时长;输入模块602,用于将所述大象流的长度和所述大象流的完成时长,输入流量分级模型中,得到所述大象流的分级信息;第二确定模块603,用于确定当前可用路径集合中每一可用路径的带宽参数;所述可用路径集合中共包括n条可用路径;排序模块604,用于根据所述n条可用路径的带宽参数对可用路径进行排序,得到排序结果;第一调度模块605,用于根据所述排序结果和所述大象流的分级信息,将所述大象流调度到相应的可用路径上。在一些实施例中,所述输入模块,包括:获取子模块602,用于通过所述流量分级模型获取预设的数据流的完成时长阈值集合和数据流的长度阈值集合;其中,所述长度阈值集合或所述完成时长阈值集合中至少之一包括两个或两个以上的对应阈值;第一确定子模块603,用于确定所述大象流的长度与所述长度阈值集合中各长度阈值之间的第一大小关系;第二确定子模块604,用于确定所述大象流的完成时长与所述完成时长阈值集合中各完成时长阈值之间的第二大小关系;第三确定子模块605,用于根据所述第一大小关系和所述第二大小关系,确定所述大象流的分级信息。在一些实施例中,所述装置还包括:第三确定模块,用于确定进入数据中心网络的数据流;第四确定模块,用于根据获取的所述数据流的首个报文的五元组信息、数据包长和客户端/服务器c/s信息,确定所述数据流的类型;第五确定模块,用于如果所述数据流的类型为大象流时,确定所述数据流为所述待识别的大象流;第二调度模块,用于如果所述数据流的类型为老鼠流时,对所述数据流进行ecmp调度。在一些实施例中,所述第一调度模块,包括:划分单元,用于如果n大于等于p,根据所述排序结果和大象流的分级总数p,将所述当前可用路径集合中的所有可用路径划分为p组,以与大象流的分级信息对应;或者如果n小于p,将p个分级信息划分为n组,以与所述n条可用路径对应;第一调度单元,用于根据所述大象流的分级信息从与所述p组中对应的一组中选择一条目标可用路径,将所述大象流调度到所述目标可用路径上;第二调度单元,用于根据划分的n组中的每一组大象流的分级信息和所述大象流的分级信息从所述n条可用路径中选择一条作为目标可用路径,将所述大象流调度到所述目标可用路径上。在一些实施例中,所述划分单元,用于:如果所述n大于等于p,按照顺序根据所述排序结果确定对应的可用路径的序号i;i的取值大于等于0小于等于n-1的整数;按照公式imodp将n条可用路径划分为与所述大象流级别对应的p组。在一些实施例中,所述带宽参数包括剩余带宽、带宽利用率至少之一,其中,每一所述可用路径的剩余带宽为对应可用路径上所有链路所剩带宽的最小值。在一些实施例中,所述第一调度模块,用于如果所述可用路径的数量n小于所述大象流的分级总数p,按照带宽参数越大匹配分级信息越低的大象流将所述大象流调度到所述n条可用路径中的一条可用路径上。在一些实施例中,所述装置还包括:启动模块,用于在开始调度所述大象流时,启动计时器开始计时;第六确定模块,用于如果计时时长超过所述大象流的完成时长,确定所述大象流未被正确识别;第七确定模块,用于如果所述大象流未被正在识别时,确定当前所调度路径的带宽参数值;第三调度模块,用于如果所述带宽参数值满足条件,继续在所述当前所调度路径上调度所述大象流;如果所述带宽参数值不满足条件,重新调度所述大象流。以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的大象流多分级调度方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。对应地,本申请实施例提供一种大象流多分级调度设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例提供的大象流多分级调度方法中的步骤。对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例提供的大象流多分级调度方法中的步骤。这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。需要说明的是,图7为本申请实施例中大象流多分级调度设备的一种硬件实体示意图,如图7所示,该设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中处理器701通常控制设备700的总体操作。通信接口702可以使设备通过网络与其他终端或服务器通信。存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及设备700中各模块待处理或已经处理的数据,可以通过闪存(flash)或随机访问存储器(randomaccessmemory,ram)实现。应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1