
本发明涉及信息技术领域,尤其涉及一种在分布式资源系统中用户请求的调度方法、装置和系统。
背景技术:在分布式资源系统中,存在多个资源提供实体。资源,包括中央处理单元(CentralProcessingUnit,CPU)计算能力、硬盘空间、内存和网络带宽等,资源可以是物理资源也可以是虚拟资源。资源提供实体根据用户请求提供资源时,用户之间会发生资源竞争,因此对用户请求进行调度,保证用户性能变得非常重要。如图1所示的一种用户请求调度方案,在图1所示的分布式资源系统为分布式文件系统,包括用户代理A、用户代理B、调度器A、调度器B、资源提供实体A和资源提供实体B,并且用户代理A和用户代理B之间不通信。用户代理A根据用户A请求查询分布式文件系统元数据服务器,用户代理A根据查询到的信息,判断将用户A请求发送到图1所示的哪一个调度器;同理,用户代理A根据用户B请求查询分布式文件系统元数据服务器,用户代理B根据查询到的信息,判断将用户B请求发送到图1所示的哪一个调度器。资源提供实体A和资源提供实体B为文件系统。其中,资源提供实体A用于提供资源A,资源A具体为提供每秒钟进行输入输出操作数量(Input/OutputOperationsPerSecond,IOPS)的能力,资源提供实体B用于提供资源B,资源B具体为提供IOPS的能力。用户A和用户B分别向分布式资源系统中发送请求。例如,用户A通过用户代理A分别向资源提供实体A和资源提供实体B发送用户A请求,则资源提供实体A为用户A请求提供资源A,资源提供实体B为用户A请求提供资源B。用户B通过用户代理B分别向资源提供实体A和资源提供实体B发送用户B请求,资源提供实体A和资源提供实体B为用户B请求提供资源。用户A向资源提供实体A和资源提供实体B分别发送用户A请求,在图1的实施方式中,资源提供实体A和资源提供实体B向用户A提供的资源均为IOPS能力。同理,资源提供实体A和资源提供实体B向用户B提供的资源也均为IOPS能力。图1所示的分布式资源系统中,为用户A和用户B分别分配资源权重,如用户A的资源权重为2,用户B的资源权重为1。用户的资源权重表示分布式资源系统为用户分配的资源份额。用户代理A统计用户A发送到调度器A和调度器B的用户A请求数量,用户代理B统计用户B发送到调度器A和调度器B的用户B请求数量。调度器A根据用户A的资源权重、用户代理A发送到调度器A和调度器B的用户A请求的数量为用户A请求从资源提供实体A分配资源。调度器A根据用户B的资源权重、用户代理B发送到调度器A和调度器B的用户B请求的数量为用户B请求从资源提供实体A分配资源。同理,调度器B根据用户A的资源权重、用户代理A发送到调度器A和调度器B的用户A请求的数量为用户A请求从资源提供实体B分配资源。调度器B根据用户B的资源权重、用户代理B发送到调度器A和调度器B的用户B请求的数量为用户B请求从资源提供实体B分配资源。由于用户代理A和用户代理B只适用于分布式文件系统场景,因此,图1所示架构中的方案不能够广泛应用于分布式资源系统中调度用户请求的场景。
技术实现要素:第一方面,本发明实施例提供了一种分布式资源系统中用户请求的调度方法,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Gy与任一Sx通信;所述方法包括:在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,Piz,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。结合本发明实施例第一方面,在第一种可能的实施方式中,Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Piz,d进行调度,具体包括:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Piz,d的起始虚拟时间S(Piz,d)和结束虚拟时间F(Piz,d),将Piz,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。结合本发明实施例第一方面的第一种可能的实施方式,在第二种可能的实施方式中,S(Piz,d)=max{v(Piz,d),F(Pi-1z,d)},v(Piz,d)表示Sd接收Piz,d时Sd的虚拟时间,c(Piz,d)表示Piz,d消耗的Rd提供的资源。结合本发明实施例第一方面的第一种可能的实施方式,在第三种可能的实施方式中,v(Piz,d)表示Sd接收Piz,d时Sd的虚拟时间,c(Piz,d)表示Piz,d消耗的Rd提供的资源。第二方面,本发明实施例提供了调度器Sd,所述调度器Sd应用于分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括中央处理单元和存储器,所述中央处理单元执行所述存储器中的可执行指令以执行本发明实施例第一方面至第一方面的第三种可能实施方式中的任一种方法。第三方面,本发明实施例提供了调度器Sd,所述调度器Sd应用于分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括获取单元和调度单元;其中,所述获取单元用于在Tn+1周期,从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,k为自然数,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;所述调度单元用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,Piz,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。第四方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机指令用于执行分布式资源系统中的用户请求的调度,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Cy与任一Sx通信;调度器Sd执行所述计算机指令用于执行本发明实施例第一方面至第一方面的第三种可能实施方式中的任一种方法;其中,d为x中的一个。第五方面,本发明实施例提供了一种分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2;y为1到Y连续的自然数,Y为自然数;Sx与Rx通信,Gy与任一Sx通信;用户z的协调器Gk用于在Tn+1周期,向调度器Sd提供在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;所述调度器Sd用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,Piz,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。第六方面,本发明实施例提供了一种分布式资源系统中资源调度方法,所述分布式资源系统包括多个调度器,所述多个调度器中的第一调度器从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。结合第六方面,在第一种可能的实施方式中,所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度,具体包括:所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。第七方面,本发明实施例提供了一种分布式资源系统,所述分布式资源系统包括多个调度器,其中,所述多个调度器中的第一调度器包括获取单元和调度单元;所述获取单元用于从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;所述调度单元用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。结合第七方面,在第一种可能的实施方式中,所述调度单元具体用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。本发明实施例提供的分布式资源系统中用户请求的调度方法、装置及系统,在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,不需要依赖用户代理,即可对用户z请求进行调度,并且Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本发明的一些实施例,还可以根据这些附图获得其他的附图。图1为现有技术分布式资源调度系统示意图;图2为本发明实施例分布式资源系统示意图;图3a为调度器A、资源提供实体A和协调器A关系图;图3b为调度器A、资源提供实体A和协调器A关系图;图4为本发明实施例方法示意图;图5为本发明实施例分布式资源系统状态示意图;图6为调度队列中用户请求状态示意图;图7为调度队列中用户请求状态示意图;图8为本发明实施例分布式资源系统状态示意图;图9为调度队列中用户请求状态示意图;图10为调度队列中用户请求状态示意图;图11为本发明实施例分布式资源系统架构图;图12为本发明实施例调度器结构示意图。具体实施例下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明提供的实施例所获得的所有其他实施例,都属于本发明保护的范围。如图2所示,本发明实施例提供了一种分布式资源系统。分布式资源系统,包括调度器A、调度器B、资源提供实体A、资源提供实体B、协调器A和协调器B。调度器A与资源提供实体A通信,用于调度发送到资源提供实体A的用户请求。调度器B与资源提供实体B通信,用于调度发送到资源提供实体B的用户请求。协调器A分别与调度器A和调度器B通信,协调器B与分别与调度器A和调度器B通信。本发明实施例中的资源可以为物理资源,也可以为虚拟资源,如CPU计算能力、硬盘空间、内存和网络带宽等。本发明实施例中的用户,可以指客户端,虚拟机、应用进程等,本发明实施例不作具体限定。资源提供实体为用户A请求分配的资源和为用户B请求分配的资源为同一类型的资源。资源提供实体A与资源提供实体B为用户A请求提供的资源与资源提供实体A与资源提供实体B为用户B提供的资源为同一类型的资源。本发明实施例中,资源提供实体为用户请求分配的资源和资源提供实体为用户请求提供资源具有相同的含义,还可以表述为用户请求消耗的资源提供实体的资源或者用户请求消耗的资源提供实体提供的资源。用户请求消耗的资源提供实体提供的资源是指用户请求需要消耗的资源,具体包括已经消耗的资源,如果用户请求已经由资源提供实体处理,也包括调度器接收用户请求后,还未经资源提供实体处理的用户请求需要消耗的资源。其中一种实现方式,调度器接收到用户请求,即可计算出用户请求需要消耗的资源提供实体提供的资源量。例如,一个周期,调度器A接收100个用户请求,则这100个用户请求消耗的资源提供实体提供的资源即可根据每个用户请求需要消耗的资源提供实体提供的资源求和算出。本发明实施例以资源为IOPS能力,资源提供实体A为存储阵列A,资源提供实体B为存储阵列B为例进行说明。在对本发明实施例进一步描述之前,需要说明的是,图2中所示的调度器A、协调器A和资源提供实体A的之间关系只是逻辑上的呈现,具体实现中,可如图3a所示,资源提供实体A、调度器A和协调器A位于同一装置内;或者如图3b所示,资源提供实体A和调度器A位于同一装置内,而协调器A独立于资源提供实体A和调度器A,或者其他实现方式,具体实现方式在此不作限定。同理,图2中所示的调度器B、协调器B和资源提供实体B的之间关系可参照图3a和图3b。调度器可以为独立的设备或者硬件模块。调度器的功能还可以由处理器执行特定的计算机指令来实现。如调度器A、协调器A与资源提供实体A均由处理器执行特定的计算机指令来实现,则调度器A与协调器A间通信,调度器A与资源提供实体A之间通信,可以表现为指令的调用,或不同程序模块的链接等;同理,协调器可以为独立的设备或者硬件模块。协调器的功能还可以由处理器执行特定的计算机指令来实现,本发明实施例对此不作限定。本发明实施例中的调度器所实施的方法步骤,具体的一种实现,可以由计算机的处理器执行存储器中的计算机指令来实现。在此不再赘述。如图2所示的分布式资源系统中,用户A向存储阵列A和存储阵列B发送用户A请求,则存储阵列A和存储阵列B在处理用户A请求时,均需要消耗IOPS能力。同理,用户B向存储阵列A和存储阵列B发送用户B请求,也需要消耗存储阵列A和存储阵列B的IOPS能力。特别地,当存储阵列A中的IOPS能力不能够满足同时处理用户A请求和用户B请求,则需要调度器A对接收到的用户A请求和用户B请求根据调度算法进行调度;当存储阵列B中的IOPS能力不能够满足同时处理用户A请求和用户B请求,则需要调度器B对接收到的用户A请求和用户B请求根据调度算法进行调度。用户A与用户B为存在资源竞争关系的用户,为保证各用户的性能,通常分布式资源系统中,会给每个用户分配资源权重。本发明实施例以用户A和用户B为例,用户A的资源权重φA为2,用户B的资源权重φB为1。则用户A和用户B的资源权重比为2:1。在调度器A上配置用户A和用户B的资源权重,在调度器B上配置用户A和用户B的资源权重。具体可由用户A向调度器A和调度器B分别下发用户A的资源权重,用户B向调度器A和调度器B分别下发用户B的资源权重,调度器A和调度器B进行上述配置。资源权重并不限于本发明实施例所示的形式,也可以用户A的资源权重φA为2/3,用户B的资源权重φB为1/3。调度器A接收用户A发送的用户A请求,调度器A接收用户B发送的用户B请求。用户A请求和用户B请求均需要存储阵列A提供IOPS能力,或者说用户A请求和用户B请求均消耗存储阵列A提供的IOPS能力。同样,调度器B接收用户A发送的用户A请求,调度器B接收用户B发送的用户B请求。当存储阵列A的IOPS能力能够满足用户A请求和用户B请求时,则调度器A不需要将接收到的用户A请求和用户B请求根据调度算法进行调度,当存储阵列B的IOPS能力能够满足用户A请求和用户B请求时,调度器B也不需要将接收到的用户A请求和用户B请求根据调度算法进行调度。调度器A只需要根据调度算法计算接收到的用户请求的起始虚拟时间和结束虚拟时间,同理,调度器B也只需要根据调度算法计算接收到的用户请求的起始虚拟时间和结束虚拟时间。关于起始虚拟时间和结束虚拟时间的含义,请参见起始时间公平序列(Start-timefairnessqueuing,SFQ)算法。在需要对用户请求进行调度时,调度器A需要根据调度算法将接收到的用户A请求和用户B请求加入调度器A的调度队列进行调度,调度器B也需要根据调度算法将接收到的用户A请求和用户B请求加入调度器B的调度队列进行调度。如图4所示:步骤401,在Tn+1周期,调度器A从用户A的归属协调器A获取在Tn周期用户A请求消耗的资源CA(Tn),以及从用户B的归属协调器B获取在Tn周期用户B请求消耗的资源CB(Tn)。其中Tn表示第n个周期,Tn+1表示第n+1个周期;CA(Tn)表示在Tn周期,调度器A接收的NA,A(Tn)个用户A请求消耗的资源提供实体A提供的资源CA,A(Tn)和调度器B接收的NA,B(Tn)个用户A请求消耗资源提供实体B提供的资源CA,B(Tn)之和;CB(Tn)表示在Tn周期,调度器A接收的NB,A(Tn)个用户B请求消耗的资源提供实体A提供的资源CB,A(Tn)和调度器B接收NB,B(Tn)个用户B请求消耗的资源提供实体B提供的资源CB,B(Tn)之和。其中,用户A的归属协调器A是指获取在Tn周期分布式资源系统中调度器A处理用户A请求消耗存储阵列A的资源和调度器B处理用户A请求消耗存储阵列A的资源之和的协调器。用户A的归属协调器A也称为用户A的协调器A,同理用户的归属协调器也称为用户的协调器。调度器A在Tn周期根据接收的每个用户A请求消耗的资源提供实体A提供的资源获得调度器A在Tn周期处理的NA,A(Tn)个用户A请求消耗的资源提供实体A提供的资源CA,A(Tn);调度器A在Tn周期根据接收的每个用户B请求消耗的资源提供实体A提供的资源,获得调度器A在Tn周期处理的NB,A(Tn)个用户B请求消耗的资源提供实体A提供的资源CB,A(Tn);同理,调度器B在Tn周期根据接收的每个用户A请求消耗的资源提供实体B提供的资源,获得调度器B在Tn周期处理的NA,B(Tn)个用户A请求消耗的资源提供实体B提供的资源CA,B(Tn);调度器B在Tn周期根据接收的每个用户B请求消耗的资源提供实体B提供的资源获得调度器B在Tn周期处理的NB,B(Tn)个用户B请求消耗的资源提供实体B提供的资源CB,B(Tn)。在Tn周期处理用户A请求消耗的资源CA(Tn)=CA,A(Tn)+CA,B(Tn),处理用户B请求消耗的资源CB(Tn)=CB,A(Tn)+CB,B(Tn)。具体地,协调器A获取CA,A(Tn)和CA,B(Tn),一种实现方式为调度器A主动向协调器A发送CA,A(Tn),调度器B主动向协调器A发送CA,B(Tn)。另一种实现方式,协调器A向调度器A请求获取CA,A(Tn),协调器A向调度器B请求获取CA,B(Tn)。具体地,协调器A可以一次获得CA,A(Tn)和CA,B(Tn),协调器A也可以实时与调度器A和调度器B通信,从而实时获取调度器A接收的每个用户A请求消耗的资源提供实体A提供的资源,实时获取调度器B接收的每个用户A请求消耗的资源提供实体B提供的资源。同时,协调器B获取处理用户B请求消耗的资源CB(Tn)的方式请参照协调器A,在此不再赘述。调度器A从用户A的归属协调器A获取在Tn周期用户A请求消耗的资源CA(Tn),以及从用户B的归属协调器B获取在Tn周期用户B请求消耗的资源CB(Tn),一种实现方式,在Tn+1周期,协调器A分别向调度器A和调度器B发送CA(Tn),协调器B分别向调度器A和调度器B发送CB(Tn);另一种实现方式,在Tn+1周期,调度器A向协调器A请求CA(Tn),调度器A向协调器B请求CB(Tn);调度器B向协调器A请求CA(Tn),调度器B向协调器B请求CB(Tn)。以上两种方式皆称为:在Tn+1周期,调度器A从用户A的归属协调器A获取在Tn周期用户A请求消耗的资源CA(Tn),以及从用户B的归属协调器B获取在Tn周期用户B请求消耗的资源CB(Tn)。无论上述任一种实现方式,通过上述描述可知,调度器A存储NA,A(Tn)、NB,A(Tn)、CA,A(Tn)和CB,A(Tn),调度器B存储NA,B(Tn)、NB,B(Tn)、CA,B(Tn)和CB,B(Tn)。关于用户的归属协调器的确定,一种方式可以配置协调器为某一用户的归属协调器;或者在用户标识为整数时,根据用户标识对协调器总个数取模确定用户的归属协调器,还可以使用哈希函数对用户标识计算得到哈希值,再用哈希值对协调器总个数取模确定用户的归属协调器。如有100个用户,有20个协调器,用户的标识分别为1到100,对20个协调器从1到20分别编号,根据用户标识对协调器总个数取模确定每个用户的归属协调器,本发明对此不作限定。协调器的总个数可以小于或者等于调度器的数量,并且每一个协调器与任一调度器均可通信。步骤402,调度器A根据φA、CA(Tn)、CA,A(Tn)和NA,A(Tn)使用调度算法对接收的用户A请求进行调度;调度器A根据φB、CB(Tn)、CB,A(Tn)和NB,A(Tn),使用调度算法对接收的用户B请求进行调度。同理,调度器B根据φA、CA(Tn)、CA,B(Tn)和NA,B(Tn)使用调度算法对接收的用户A请求进行调度;调度器B根据φB、CB(Tn)、CB,B(Tn)和NB,B(Tn),使用调度算法对接收的用户B请求进行调度。根据图4所示的方法对调度器上的用户请求进行调度时,调度器A根据从协调器A获得的上一周期用户A请求在分布式资源系统中消耗的资源量、用户A的资源权重、上一周期用户调度器A接收的用户A请求的个数以及上一周期用户调度器A接收的用户A请求消耗的资源实体A提供的资源进行调度,在没有现有技术中的用户代理的架构下,使用协调器获得上一周期用户A请求在分布式资源系统中消耗的资源量,从而不需要调度器A进行额外的操作,能够减少调度器A的资源,并且调度器根据φA、CA(Tn)、CA,A(Tn)和NA,A(Tn)对用户A请求进行调度,从而实现用户A请求的全局调度,保证用户z的性能需求。调度器A对用户B请求调度,或调度器B对用户A请求进行调度,或者调度器B对用户B请求调度,同样达到上述效果。现有技术中基于用户代理架构,调度器只能够获得一个用户代理发送的用户请求及用户请求的统计信息,因此,难以实现同一用户请求的全局调度。本发明实施例中,以调度器A调度用户A请求为例,用户A请求的全局调度是调度器A不仅需要考虑上一周期φA、CA,A(Tn)和NA,A(Tn),还要考虑CA(Tn),从而实现用户A请求的调度,进而保证用户A的性能。具体地,本发明实施例中,PiA,A表示调度器A接收用户A发送的第i个用户A请求,由存储阵列A为PiA,A提供资源;PiA,B表示调度器B接收用户A发送的第i个用户A请求,由存储阵列B为PiA,B提供资源。PkB,A表示调度器A接收用户B发送的第k个用户B请求,由存储阵列A为PkB,A提供资源,PkB,B表示调度器B接收用户B发送的第k个用户B请求,由存储阵列B为PkB,B提供资源。本发明实施例中,φA=2,φB=1。在Tn周期,当调度器A接收的用户A请求和用户B请求的数量小于存储阵列A的IOPS能力时,则不需要对调度器A接收的用户A请求和用户B请求使用调度算法进行调度,直接由存储阵列A处理。调度器B接收到的用户A请求和用户B请求的数量小于存储阵列B的IOPS能力时,也不需要对调度器B接收的用户A请求和用户B请求使用调度算法进行调度,直接由存储阵列B处理。但用户A的归属协调器A需要获取周期Tn各调度器接收的用户A请求的消耗的资源。本发明实施例中,用户A的归属协调器A获取Tn周期调度器A和调度器B接收的用户A请求的消耗的资源为CA(Tn)。同时,用户B的归属协调器B获取Tn周期调度器A和调度器B接收的用户B请求消耗的资源为CB(Tn)。协调器A将CA(Tn)发送给调度器A和调度器B,协调器B将CB(Tn)发送给调度器A和调度器B。调度器A在Tn周期接收用户A请求的数量为NA,A(Tn),消耗存储阵列A提供的资源为CA,A(Tn);调度器A在Tn周期接收用户B请求的数量为NB,A(Tn),消耗存储阵列A提供的资源为NB,A(Tn)。调度器B在Tn周期接收用户A请求的数量为NA,B(Tn),消耗存储阵列B提供的资源为CA,B(Tn);调度器B在Tn周期接收用户B请求的数量为NB,B(Tn),消耗存储阵列B提供的资源为CB,B(Tn)。在Tn+1周期,以调度器A为例,调度器A从用户A的归属协调器A获取Tn周期用户A请求消耗的资源CA(Tn)。在Tn+1周期,当存储阵列A的IOPS能力不能够满足用户A请求和用户B请求时,调度器A对接收的用户A请求和用户B请求使用调度算法加入调度器A的调度队列进行调度。调度器A接收到用户A请求和用户B请求时,分别计算用户A请求和用户B请求起始虚拟时间和结束虚拟时间。将用户A请求和用户B请求加入调度队列,将用户A请求和用户B请求按照起始虚拟时间由小到大的顺序在调度队列中排序等待处理。起始虚拟时间最小的用户请求排在调度队列的队首,起始虚拟时间最大的用户请求排列在调度队列的队尾。其中,调度队列的队首是指调度队列中存储阵列A最先进行用户请求处理的位置。存储阵列A在处理用户请求时,从调度队列的队首取用户请求进行处理,即先处理起始虚拟时间最小的用户请求。存储阵列A从调度队列中按用户请求的起始虚拟时间由小到大的顺序处理用户请求。第一种实现方式,调度器A接收的PiA,A的起始虚拟时间用S(PiA,A)表示,PiA,A的结束虚拟时间用F(PiA,A)表示。S(PiA,A)=max{v(PiA,A),F(Pi-1A,A)};其中,v(PiA,A)表示调度器A接收PiA,A时调度器A的虚拟时间;F(Pi-1A,A)表示Pi-1A,A的结束虚拟时间;max{v(PiA,A),F(Pi-1A,A)}表示v(PiA,A)和F(Pi-1A,A)中的最大值。关于起始虚拟时间S(PiA,A)、结束虚拟时间F(PiA,A)和虚拟时间v(PiA,A)的含义,请参见起始时间公平序列(Start-timefairnessqueuing,SFQ)算法,本发明实施例不再赘述。其中,c(PiA,A)表示PiA,A消耗存储阵列A提供的资源,本发明实施例为1个IOPS;d(PA,A(Tn+1))表示在Tn+1周期,调度器A接收的每个用户A请求的延迟值,同理,调度器A接收的PkB,A的起始虚拟时间用S(PkB,A)表示,PkB,A的结束虚拟时间用F(PkB,A)表示。S(PkB,A)=max{v(PkB,A),F(Pk-1B,A)};其中,v(PkB,A)表示调度器A接收PkB,A时调度器A的虚拟时间;F(Pk-1B,A)表示Pk-1B,A的结束虚拟时间;max{v(PkB,A),F(Pk-1B,A)}表示v(PkB,A)和F(Pk-1B,A)中的最大值。其中,c(PkB,A)表示PkB,A消耗存储阵列B提供的资源,本发明实施例为1个IOPS;d(PB,A(Tn+1))表示在Tn+1周期,调度器A接收的每个用户B请求的延迟值,调度器B接收的PiA,B的起始虚拟时间用S(PiA,B)表示,PiA,B的结束虚拟时间用F(PiA,B)表示。S(PiA,B)=max{v(PiA,B),F(Pi-1A,B)},其中,v(PiA,B)表示调度器B接收PiA,B时调度器B的虚拟时间;F(Pi-1A,B)表示Pi-1A,B的结束虚拟时间;max{v(PiA,B),F(Pi-1A,B)}表示v(PiA,B)和F(Pi-1A,B)中的最大值。其中,c(PiA,B)表示PiA,B消耗存储阵列B提供的资源,在本发明实施例为1个IOPS;d(PA,B(Tn+1))表示在Tn+1周期,调度器B接收的每个用户A请求的延迟值,同理,调度器B接收的PkB,B的起始虚拟时间用S(PkB,B)表示,PkB,B的结束虚拟时间用F(PkB,B)表示。S(PkB,B)=max{v(PkB,B),F(Pk-1B,B)},其中,v(PkB,B)表示调度器B接收PiB,B时调度器B的虚拟时间;F(Pk-1B,B)表示Pk-1B,B的结束虚拟时间;max{v(PkB,B),F(Pk-1B,B)}表示v(PkB,B)和F(Pk-1B,B)中的最大值。其中,c(PkB,B)表示PkB,B消耗存储阵列B提供的资源,在本发明实施例中为1个IOPS;d(PB,B(Tn+1))表示在Tn+1周期,调度器B接收的每个用户B请求的延迟值,第二种实现方法,调度器A接收的PiA,A的起始虚拟时间用S(PiA,A)表示,PiA,A的结束虚拟时间用F(PiA,A)表示。S(PiA,A)=max{v(PiA,A),其中,v(PiA,A)表示调度器A接收PiA,A时调度器A的虚拟时间,d(PA,A(Tn+1))表示在Tn+1周期,调度器A接收的每个用户A请求的延迟值,F(Pi-1A,A)表示Pi-1A,A的结束虚拟时间;表示v(PiA,A)和中的最大值。关于起始虚拟时间S(PiA,A)、结束虚拟时间F(PiA,A)和虚拟时间v(PiA,A)的含义,请参见起始时间公平序列(Start-timefairnessqueuing,SFQ)算法,本发明实施例不再赘述。其中,c(PiA,A)表示PiA,A消耗存储阵列A提供的资源,在本发明实施例中为1个IOPS;同理,调度器A接收的PkB,A的起始虚拟时间用S(PkB,A)表示,PkB,A的结束虚拟时间用F(PkB,A)表示。其中,v(PkB,A)表示调度器A接收PkB,A时调度器A的虚拟时间;d(PB,A(T))表示在Tn+1周期,调度器A接收的每个用户B请求的延迟值,F(Pk-1B,A)表示Pk-1B,A的结束虚拟时间;表示v(PkB,A)和中的最大值。其中,其中,c(PkB,A)表示PkB,A消耗存储阵列B提供的资源,在本发明实施例中为1个IOPS。调度器B接收的PiA,B的起始虚拟时间用S(PiA,B)表示,PiA,B的结束虚拟时间用F(PiA,B)表示。其中,v(PiA,B)表示调度器B接收PiA,B时调度器B的虚拟时间,d(PA,B(Tn+1))表示在Tn+1周期,调度器B接收的每个用户A请求的延迟值,F(Pi-1A,B)表示Pi-1A,B的结束虚拟时间;表示v(PiA,B)和中的最大值。其中,c(PiA,B)表示PiA,B消耗存储阵列B提供的资源,在本发明实施例为1个IOPS。同理,调度器B接收的PkB,B的起始虚拟时间用S(PkB,B)表示,PkB,B的结束虚拟时间用F(PkB,B)表示。S(PkB,B)=max{v(PkB,B),其中,v(PkB,B)表示调度器B接收PiB,B时调度器B的虚拟时间;d(PB,B(Tn+1))表示在Tn+1周期,接收的每个用户B请求在调度器A上的延迟值,F(Pk-1B,B)表示Pk-1B,B的结束虚拟时间;表示v(PkB,B)和F(Pk-1B,B)中的最大值。其中,c(PkB,B)表示PkB,B消耗存储阵列B提供的资源,在本发明实施例中为1个IOPS。以第一种计算用户请求起始虚拟时间和结束虚拟时间方式为例,如图5所示,本实施例以分布式资源系统初始化后,在Tn+1周期,调度器A接收的用户A请求PiA,A依次分别为P1A,A、P2A,A、P3A,A、P4A,A和P5A,A,共5个。调度器B接收用户A请求PiA,B为0个。调度器A接收的用户B请求PkB,A依次分别为P1B,A、P2B,A、P3B,A和P4B,A,共4个。调度器B接收用户B请求PkB,B依次分别为P1B,B、P2B,B、P3B,B、P4B,B和P5B,B,共5个。在本发明实施例中,Tn+1周期实际为第一个周期。P1A,A,为调度器A接收的第1个用户A请求。此时需要对接收到的P1A,A根据调度算法加入调度器A的调度队列进行调度。首先,计算P1A,A的起始虚拟时间S(P1A,A)=max{v(P1A,A),F(Pi-1A,A)},由于Tn+1周期实际为第一个周期,即调度器A之前没有接收到任何PiA,A,因此F(P0A,A)为空,调度器A初始化完成即接收P1A,A,则S(P1A,A)=v(P1A,A)=0。计算P1A,A的结束虚拟时间S(P1A,A)=0,c(PiA,A)=1,φA=2,CA,B(Tn)=0,NA,A(Tn)=0,则d(PA,A(Tn+1))=0,同理,P2A,A的起始虚拟时间为0.5,结束虚拟时间为1;P3A,A的起始虚拟时间为1,结束虚拟时间为1.5;P4A,A的起始虚拟时间为1.5,结束虚拟时间为2;P5A,A的起始虚拟时间为2,结束虚拟时间为2.5。其中,图5中表示P1A,A的起始虚拟时间为0,结束虚拟时间为0.5,图5及后面其他图中的相类及类似标识请参考的含义,不再赘述。对调度器A接收到的用户B请求,P1B,A,计算P1B,A的起始虚拟时间S(P1B,A)=max{v(P1B,A),F(P0B,A)}。由于Tn+1周期实际为第一个周期,即调度器A之前没有接收到任何PkB,A,因此F(P0B,A)为空,调度器A初始化完成即接收P1B,A,v(P1B,A)=0。P1B,A的结束虚拟时间c(P1B,A)=1,CB,B(Tn)=0,NB,A(Tn)=0,则d(PB,A(Tn+1))=0,φB=1,F(P1B,A)=1。同理,P2B,A的起始虚拟时间为1,结束虚拟时间为2;P3B,A的起始虚拟时间为2,结束虚拟时间为3;P4B,A的起始虚拟时间为3,结束虚拟时间为4。对调度器B接收到的用户B请求,P1B,B,此时需要对接收到的P1B,B进行调度,计算P1B,B的起始虚拟时间S(P1B,B)=max{v(P1B,B),F(P0B,B)},由于Tn+1周期实际为第一个周期,即调度器B之前没有接收到任何PkB,B,因此F(P0B,B)为空,调度器B初始化完成即接收P1B,B,v(P1B,B)=0。BB1的结束虚拟时间c(P1B,B)=1,CB,A(Tn)=0,NB,B(Tn)=0,d(PB,B(Tn+1))=0,φB=1,F(P1B,B)=1。同理,P2B,B的起始虚拟时间为1,结束虚拟时间为2;P3B,B的起始虚拟时间为2,结束虚拟时间为3;P4B,B的起始虚拟时间为3,结束虚拟时间为4;P5B,B的起始虚拟时间为4,结束虚拟时间为5。调度器A对P1A,A、P2A,A、P3A,A、P4A,A和P5A,A分别计算起始虚拟时间和结束虚拟时间,对P1B,A、P2B,A、P3B,A和P4B,A分别计算起始虚拟时间和结束虚拟时间,根据调度器A接收的用户请求的起始虚拟时间,将用户请求按起始虚拟时间由小到大的顺序在调度队列排序等待处理,即调度队列中按队首到队尾的顺序依次为P1A,A、P2A,A、P1B,A、P3A,A、P4A,A、P2B,A、P5A,A、P3B,A和P4B,A,如图6所示。存储阵列A处理用户请求时,按P1A,A、P2A,A、P1B,A、P3A,A、P4A,A、P2B,A、P5A,A、P3B,A和P4B,A的顺序进行处理。如图6所,在用户A请求与用户B请求存在资源竞争时,调度队列中一组用户请求P1A,A、P2A,A和P1B,A按照2:1的关系消耗存储阵列A提供的IOPS。调度队列中另一组用户请求P3A,A、P4A,A和P2B,A也满足该要求。调度器B对P1B,B、P2B,B、P3B,B、P4B,B和P5B,B分别计算起始虚拟时间和结束虚拟时间,根据调度器B接收的所有用户请求的起始虚拟时间,将用户请求按起始虚拟时间由小到大的顺序在调度队列中排序等待处理,即调度队列中按队首到队尾的顺序依次为P1B,B、P2B,B、P3B,B、P4B,B和P5B,BBB5,如图7所示。存储阵列B处理用户请求时,按P1B,B、P2B,B、P3B,B、P4B,B和P5B,B的顺序进行处理。由于调度器B上只有用户B请求,不存在资源竞争,因此按照用户B请求的起始虚拟时间由小到大顺序处理用户B请求。在Tn+1周期内,本领域技术人员可知,在具体实现中,调度器A和调度器B接收的用户请求数量可能会远远大于实施例中提供的用户请求数量。用户也不仅仅限于两个。本发明实施例只是为描述方便,在Tn+1周期内,调度器A接收用户A请求依次为P1A,A、P2A,A、P3A,A、P4A,A和P5A,A,调度器A接收用户B请求依次为P1B,A、P2B,A、P3B,A和P4B,A;调度器B接收用户B请求依次为P1B,B、P2B,B、P3B,B、P4B,B和P5B,B。根据前面描述的方式,调度器A计算在Tn+1周期接收的NA,A(Tn+1)个用户A请求消耗的存储阵列A提供的资源CA,A(Tn+1),以及接收的NB,A(Tn+1)个用户B请求消耗的存储阵列A提供的的资源CB,A(Tn)。调度器A在计算在Tn+1周期接收的NA,A(Tn+1)个用户A请求消耗的存储阵列A提供的资源CA,A(Tn+1),具体为在本发明实施例中,1个用户A请求消耗1个IOPS,则调度器A根据在Tn+1周期接收的用户A请求个数NA,A(Tn+1)=5,则消耗的存储阵列A提供的资源CA,A(Tn+1)为5个IOPS。同理,调度器A在Tn+1周期接收的用户B请求个数NB,A(Tn+1)=4,则消耗的存储阵列A提供的资源CB,A(Tn+1)为4个IOPS。调度器B在Tn+1周期接收的用户A请求个数NA,B(Tn+1)=0,则消耗的存储阵列B提供的资源CA,B(Tn+1)为0个IOPS。同理,调度器B在Tn+1周期接收的用户B请求个数NB,B(Tn+1)=5,则消耗的存储阵列B提供的资源CB,B(Tn+1)为5个IOPS。协调器A分别获得调度器A在Tn+1周期处理用户A请求消耗存储阵列A提供的资源CA,A(Tn+1)为5个IOPS,调度器B在Tn+1周期处理用户A请求消耗存储阵列B提供的资源CA,B(Tn+1)为0个IOPS;则在Tn+1周期,用户A请求消耗的资源总量CA(Tn+1)=CA,A(Tn+1)+CA,B(Tn+1),CA(Tn+1)=5个IOPS。同理,协调器B获得在Tn+1周期,用户B请求消耗的资源总量CB(Tn+1)=CB,A(Tn+1)+CB,B(Tn+1),CB(Tn+1)=9个IOPS。协调器A分别向调度器A和调度器B发送消息,消息中携带CA(Tn+1),从而调度器A和调度器B分别从协调器A获得在Tn+1周期用户A请求消耗IOPS数量为5。同理,协调器B分别向调度器A和调度器B发送消息,消息中携带CB(Tn+1),从而调度器A和调度器B分别从协调器B获得在Tn+1周期用户B请求消耗IOPS数量为9。如图8所示,在Tn+2周期内,调度器A接受第一个用户A请求P6A,A,P6A,A的起始虚拟时间为S(P6A,A)=max{v(P6A,A),F(P5A,A)},v(P6A,A)=F(P5A,A)=2.5,因此,在Tn+1周期,CA,B(Tn+1)=0,NA,A(Tn+1)=5,则d(PA,A(Tn+2))=0,c(P6A,A)=1,φA=2,因此,F(P6A,A)=3。同理,P7A,A的起始虚拟时间为3,结束虚拟时间为3.5;P8A,A的起始虚拟时间为3.5,结束虚拟时间为4;P9A,A的起始虚拟时间为4,结束虚拟时间为4.5。在Tn+2周期内,调度器A接收第一个用户B请求P5B,A,S(P5B,A)=max{v(P5B,A),F(P4B,A)},v(P5B,A),=F(P4B,A)=4,因此,S(P5B,A)=4。P5B,A的结束虚拟时间c(P5B,A)=1,CB,B(Tn+1)=5,NB,A(Tn+1)=4,d(PB,A(Tn+2))=1.25,φB=1,F(P5B,A)=6.25。同理,P6B,A的起始虚拟时间为6.25,结束虚拟时间为8.5;P7B,A的起始虚拟时间为8.5,结束虚拟时间为10.75;P8B,A的起始虚拟时间为10.75,结束虚拟时间为13。调度器A依次计算P6A,A、P7A,A、P8A,A和P9A,A的起始虚拟时间和结束虚拟时间,调度器A依次计算P5B,A、P6B,A、P7B,A和P8B,A的起始虚拟时间和结束虚拟时间,根据调度器A接收的用户请求的起始虚拟时间,将用户请求按起始虚拟时间由小到大的顺序在调度队列中排序等待处理,即调度队列中按队首到队尾的顺序依次为P6A,A、P7A,A、P8A,A、P9A,A、P5B,A、P6B,A、P7B,A和P8B,A,如图9所示。存储阵列A处理用户请求时,从按P6A,A、P7A,A、P8A,A、P9A,A、P5B,A、P6B,A、P7B,A和P8B,A的顺序进行处理。在Tn+2周期内,调度器B接收第一个用户A请求P1A,B和第一个用户B请求P6B,B。假设调度器B在相同时刻接收到P1A,B和P6B,B。P6B,B的起始虚拟时间S(P6B,B)=max{v(P6B,B),F(P5B,B)},v(P6B,B)=F(P5B,B)=5,因此,S(P6B,B)=5。P6B,B的结束虚拟时间c(P6B,B)=1,φB=1,F(P6B,B)=6.8。同理,P7B,B的起始虚拟时间为6.8,结束虚拟时间为8.6;P8B,B的起始虚拟时间为8.6,结束虚拟时间为10.4。P1A,B的起始虚拟时间S(P1A,B)=max{v(P1A,B),F(P0A,B)},F(P0A,B)=0,v(P1A,B)=v(P6B,B)=5,因此,S(P1A,B)=5。P1A,B的结束虚拟时间c(P1A,B)=1,CA,A(Tn+1)=5,NA,A(Tn+1)=0,则d(PA,B(Tn+2))=0,φA=2,F(P1A,B)=5.5。同理,P2A,B的起始虚拟时间为5.5,结束虚拟时间为6;P3A,B的起始虚拟时间为6,结束虚拟时间为6.5。调度器B将用户请求加入调度队列,在调度队列中用户请求的按起始虚拟时间由小到大进行排序,即调度队列中按队首到队尾的顺序依次为P1A,B、P6B,B、P2A,B、P3A,B、P7B,B和P8B,B,如图10所示。存储阵列B处理用户请求时,按P1A,B、P6B,B、P2A,B、P3A,B、P7B,B和P8B,B的顺序进行处理。本发明实施例提供的分布式资源系统用户请求的调度方法,进一步地,可以应用如图11所示的场景,包括用户1到用户H,调度器S1到调度器SM,资源提供实体R1到资源提供实体RM,协调器G1到协调器GY。其中,H为不小于2的自然数,M为不小于2的自然数,N为自然数。调度器Sx与资源提供实体Rx通信,x为1到M的任一自然数,任一用户z可以向任一调度器Sx发送用户z请求,Rx为Sx接收的用户请求提供资源,协调器Gy与任一Rx通信,y为1到Y的任一自然数,Y的取值可以小于等于M,也可大于M。Y也可以为1,即分布式资源系统中只有一个协调器。协调器的个数可以由调度器的数量决定,也可以由用户数量决定,本发明实施例对于不限定。对任一用户z,在Tn+1周期,向调度器Sd发送第i个用户z请求Piz,d,i为自然数,d为自然数,1≤d≤M,Sd表示S1到SM中的一个。当Sd需要对接收的用户请求进行调度时,执行如下步骤:步骤1201:在Tn+1周期,Sd从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,d和k为自然数,1≤d≤M,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;表示在Tn周期S1至SM接收的用户z请求消耗R1至RM提供的资源之和。步骤1201中,Cz,x(Tn)具体包括Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源之和。Nz,x(Tn)表示Sx在Tn周期Sx接收的用户z请求的个数。Sx将Cz,x(Tn)发送给Gk,Gk根据获得Cz(Tn)。Gk获得Cz(Tn)的一种方式为Sx将Cz,x(Tn)主动发送给Gk,另一种方式为Sx接收Gk请求,根据Gk请求,将Cz,x(Tn)发送给Gk。Gk根据得到Cz,x(Tn)。Sx存储Nz,x(Tn)和Cz,x(Tn)。步骤1202:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,Piz,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Piz,d进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。其中,步骤1202具体包括:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用所述调度算法对Piz,d进行调度,具体包括:Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Piz,d的起始虚拟时间S(Piz,d)和结束虚拟时间F(Piz,d),将Piz,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。S(Piz,d)=max{v(Piz,d),F(Pi-1z,d)},v(Piz,d)表示Sd接收Piz,d时Sd的虚拟时间,c(Piz,d)表示Piz,d消耗Rd提供的资源。或者,v(Piz,d)表示Sd接收Piz,d时Sd的虚拟时间,c(Piz,d)表示Piz,d消耗Rd提供的资源。关于起始虚拟时间S(PiA,A)、结束虚拟时间F(PiA,A)和虚拟时间v(PiA,A)的含义,请参见起始时间公平序列(Start-timefairnessqueuing,SFQ)算法,本发明实施例不再赘述。其中,d(Pz,d(Tn+1))表示在Tn+1周期,Sd接收的每个Piz,d的延迟值。当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。其中,c(Piz,d)具体可为Piz,d消耗的IOPS或带宽长度。步骤1201具体包括:Gk是根据z%Y=k确定的,其中z%Y表示用z对Y取模,或者,Gk是根据Hash(z)%Y=k确定的,其中Hash(z)表示对z使用哈希函数计算,Hash(z)%Y表示对z使用哈希函数计算得到的值对Y取模。图11所示的应用场景中,CK用于向每一个调度器Sx发送Cz(Tn)。图11所示的应用场景中,Sd使用调度算法对用户z请求调度的方法适用于本发明实施例的分布式资源系统中任一用户请求的调度。在Sd中可对两个或两个以上用户的请求进行调度。图11所示的应用场景中,调度器Sd根据用户z在整个分布式资源系统中在Tn周期的Cz(Tn)、Cz,d(Tn)和Nz,d(Tn),结合用户的权重φz,将用户z请求Piz,d根据调度算法进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。本发明实施例的系统架构不需要依赖用户代理,即可对用户z请求进行调度。本发明实施例中,以资源为IOPS为例,通常1个用户请求消耗1个IOPS。以资源为网络带宽为例,1个用户请求消耗的资源为用户请求的网络带宽。当用户请求消耗的资源为网络带宽时,每个用户请求消耗资源提供实体提供的资源的大小由用户请求决定。本发明实施例中,使用调度算法对用户请求进行调度包括根据本发明实施例中的调度算法计算用户请求的起始虚拟时间和结束虚拟时间,将用户请求加入调度队列,根据用户请求的起始虚拟时间大小,在调度队列中排序。在用户请求不需要调度时,则需要根据本发明实施例的调度算法计算用户请求的起始虚拟时间和结束虚拟时间,不需要加入调度队列排序。本发明实施例中,Sd、Sx、Rx、Gy和Gk只是用来标识某一具体设备,这里的设备可以指实体设备也可以指逻辑设备,同理,也可以用第一、第二这种方式来表述,具体只是表示方式的差异,不构成对本发明方案的限定。如图12所示,本发明实施例提供了一种调度器Sd,调度器Sd应用于分布式资源系统,所述分布式资源系统包括调度器Sx,资源提供实体Rx和协调器Gy,其中x为1到M连续的自然数,M≥2,d为x中的一个;y为1到Y连续的自然数;Sx与Rx通信,Cy与任一Sx通信;所述调度器Sd包括获取单元1301和调度单元1302;其中,所述获取单元1301用于在Tn+1周期,从用户z的协调器Gk获取在Tn周期用户z请求消耗的资源Cz(Tn),其中,k为自然数,1≤k≤Y;所述用户z的资源权重为φz;Cz,x(Tn)为Sx在Tn周期接收的Nz,x(Tn)个用户z请求消耗的Rx提供的资源;z表示所述用户的标识;所述调度单元1302用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,Piz,d为Sd接收的第i个用户z请求,Cz,d(Tn)为Sd在Tn周期接收的Nz,d(Tn)个用户z请求消耗的Rd提供的资源。具体地,调度单元1302用于根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,具体包括:根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)计算Piz,d的起始虚拟时间S(Piz,d)和结束虚拟时间F(Piz,d),将Piz,d加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述用户请求进行排序。具体地,S(Piz,d)=max{v(Piz,d),F(Pi-1z,d)},v(Piz,d)表示Sd接收Piz,d时Sd的虚拟时间,c(Piz,d)表示Piz,d消耗的Rd提供的资源。具体地,v(Piz,d)表示Sd接收Piz,d时Sd的虚拟时间,c(Piz,d)表示Piz,d消耗的Rd提供的资源。关于起始虚拟时间S(PiA,A)、结束虚拟时间F(PiA,A)和虚拟时间v(PiA,A)的含义,请参见起始时间公平序列(Start-timefairnessqueuing,SFQ)算法,本发明实施例不再赘述。具体地,当Cz(Tn)-Cz,d(Tn)和Nz,d(Tn)中任一个为0,则d(Pz,d(Tn+1))=0。Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,不需要依赖用户代理,即可对用户z请求进行调度,并且Sd根据φz、Cz(Tn)、Cz,d(Tn)和Nz,d(Tn)使用调度算法对Piz,d进行调度,从而实现用户z请求的全局调度,保证用户z的性能需求。在另一种分布式资源系统中资源调度方法实施方式中,分布式资源系统包括多个调度器,所述多个调度器中的第一调度器从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。进一步地,所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度,具体包括:所述第一调度器根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。在另一种分布式资源系统,分布式资源系统包括多个调度器,其中,如图12所示,所述多个调度器中的第一调度器包括获取单元1301和调度单元1302;所述获取单元1301用于从所述第一用户的协调器获取在上一个周期所述第一用户的用户请求在所述多个调度器消耗的资源总和;所述调度单元1302用于用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一个周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量对第一用户的用户请求进行调度。进一步地,所述调度单元1302具体用于根据所述第一用户的资源权重、在所述上一周期所述第一用户的用户请求在所述多个调度器消耗的资源总和、在所述上一周期所述第一用户的用户请求在所述第一调度器消耗的资源和在所述上一周期所述第一调度器接收所述第一用户的用户请求的数量,计算所述第一用户的用户请求的起始虚拟时间和结束虚拟时间,将所述第一用户的用户请求加入调度队列;所述调度队列根据用户请求的起始虚拟时间的大小对所述第一用户的用户请求进行排序。本发明实施例提供的技术方案也可以应用到其他场景,例如,分布式资源系统为分布式计算系统,资源提供实体为用户请求提供计算资源;分布式资源系统也可以为分布式网络系统,资源提供实体为用户请求提供网络带宽;资源提供实体还可为用户请求提供内存资源。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所公开的系统、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、磁碟或者光盘等各种可以存储程序代码的介质。