用于在云系统中进行资源调度的方法和装置与流程

文档序号:12729958阅读:198来源:国知局
本发明涉及计算机
技术领域
:,尤其涉及一种用于在云系统中进行资源调度的方法和装置。
背景技术
::随着信息技术的发展,云计算已经渗透到不同计算领域的各个方面。由于存在数据本地共享和资源错峰运行的需求,不同的计算框架越来越有统一到一个PaaS(PlatformasaService)平台的趋势。基于现有技术的方案,云系统中的调度器在确定计算资源的优先级时一般仅仅描述资源量的大小,而并未对于不同的机器计算能力和稳定性进行描述,并且,基于现有技术的调度器一般仅支持一种调度算法,并基于该调度算法来进行资源分配。在将不同的计算框架进行混合部署(以下简称“混部”)的情况下,对调度器具有以下要求:1)不同的机器计算能力和稳定性不同,需要为不同机器资源的计算效率进行分类,比如独占磁盘和共享磁盘(或者单盘),万兆网卡和千兆网卡等分类类型;2)需要为不同的作为任务制定不同的调度算法。比如MPI作业使用BestFit分配算法,MR和大多数分批处理作业使用NextFit或者WorstFit分配算法。3)需要对不同延迟敏感度作业的使用的资源级别进行区分:比如高优先级的MR(MapReduce)作业需要使用优先级较高的资源防止单机上运行避让率过高导致作业不稳定。而基于现有技术的方案由于支持单一的调度算法和机器资源描述方式,无法满足上述要求。技术实现要素:本发明的目的是提供一种用于在云系统中进行资源调度的方法和装置。根据本发明的一个方面,提供了一种用于在云系统中进行资源调度的方法,其中,所述方法包括以下步骤:-根据云系统中计算资源的稳定性,确定各个计算资源各自的资源优先级;其中,所述方法包括以下步骤:-在需要进行资源调度时,确定当前作业任务相对应的调度算法;-基于所述调度算法和当前可用的各个计算资源的资源优先级,进行资源分配。根据本发明的一个方面,提供了一种用于在云系统中进行资源调度的调度装置,其中,所述调度装置包括:用于根据云系统中计算资源的稳定性,确定各个计算资源各自的资源优先级的装置;其中,所述调度装置包括:用于在需要进行资源调度时,确定当前作业任务相对应的调度算法的装置;用于基于所述调度算法和当前可用的各个计算资源的资源优先级,进行资源分配的装置。与现有技术相比,本发明具有以下优点:通过对计算资源的优先级进行细分并支持多种调度算法,从而基于多样化的调度算法和资源优先级来进行资源调度,提高了资源调度的灵活性,提升了资源利用率和系统吞吐量;并且,在不同的计算框架进行混合部署的情况下,可分别在不同的计算框架中基于特定的调度算法来进行资源调度,以满足多种调度需求;并且,通过与远程调度装置的交互来进行资源调度,方便用户使用特殊的调度算法来进行资源调度,进一步提升了资源调度的灵活性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1示意出了根据本发明的一种用于在云系统中进行资源调度的方法流程图;图2示意出了根据本发明的一种用于在云系统中进行资源调度的调度装置的结构示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式下面结合附图对本发明作进一步详细描述。图1示意出了根据本发明的一种用于在云系统中进行资源调度的方法流程图。根据本发明的方法包括步骤S1、步骤S2和步骤S3。其中,根据本发明的方法通过包含于计算机设备中的调度装置来实现。所述计算机设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述计算机设备包括网络设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。优选地,所述调度装置用于对云系统中的计算资源进行调度。其中,所述用户设备及网络设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。需要说明的是,所述用户设备、网络设备以及网络仅为举例,其他现有的或今后可能出现的用户设备、网络设备以及网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。参照图1,在步骤S1中,调度装置根据云系统中计算资源的稳定性,确定各个计算资源各自的资源优先级。其中,所述计算资源包括各种可在云系统中进行作业的机器或设备。优选地,根据本发明的方法先通过执行步骤S4(图未示)来确定云系统所采用的资源优先级。在步骤S4中,调度装置根据计算资源的稳定性,将计算资源分为稳定和不稳定两个等级,并对于该两个等级继续进行分类,以得到分别对应于稳定和不稳定的多个资源优先级。其中,计算资源的稳定性用于指示计算资源的运行效率,计算资源的运行效率越高其资源优先级越高。在步骤S1中,调度装置根据云系统所采用的资源优先级,并基于用于指示计算资源的稳定性的相关数据,来确定各个计算资源各自的资源优先级。其中,调度装置可获取各种可反映计算资源的稳定性的数据,诸如设备硬件规格或统计得到的计算速度等等,本领域技术人员可基于实际需求选择合适的数据。根据本发明的第一示例,调度装置包含于云系统的调度器中。调度装置基于用于指示计算稳定性的相关数据,将资源分成稳定“STABLE”和不稳定“UNSTABLE”两个等级,并对STABLE和UNSTABL两个等级继续按照稳定性的程度分别细分为三个等级,从而得调度装置所采用的6个资源优先级:对应于“STABLE”的STABLE_P0、STABLE_P1、STABLE_P2,以及对应于“UNSTABLE”的UNSTABLE_P0、UNSTABLE_P1、UNSTABLE_P2,其中优先级顺序按P2、P1、P0依次递增,则该6个资源优先级按照由高到低的排序为:STABLE_P0>STABLE_P1>STABLE_P2>UNSTABLE_P0>UNSTABLE_P1>UNSTABLE_P2。调度装置基于该6个资源优先级确定各个计算资源各自的资源优先级。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据云系统中计算资源的稳定性,确定各个计算资源各自的资源优先级的实现方式,均应包含在本发明的范围内。优选地,调度装置还可基于计算资源所执行的作业任务的优先级来确定计算资源的资源优先级,使得作业优先级越高对应的计算资源的资源优先级越高。继续参照图1进行说明,在步骤S2中,在需要进行资源调度时,调度装置确定当前作业任务相对应的调度算法。其中,所述调度算法包括各种用于基于特定的调度需求来对计算资源进行调度的算法。具体地,调度装置基于预定的多种调度算法和作业任务类型的对应关系,确定当前作业任务相对应的调度算法。优选地,调度装置基于与当前作业任务对应的调度需求,确定该作业任务相对应的调度算法。例如,MPI作业需要BestFit分配算法以尽量腾出较大的空间来放下一个计算资源的请求;而对于MR(MapReduce)作业来说,则采用NextFit或者WorstFit分配算法打散均匀调度,以取得较好的资源利用率。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何在需要进行资源调度时,确定当前作业任务相对应的调度算法的实现方式,均应包含在本发明的范围内。接着,在步骤S3中,调度装置基于所述调度算法和当前可用的各个计算资源的资源优先级,进行资源分配。优选地,调度装置在进行资源分配时,将作为任务分配到资源优先级较高的优质计算资源中执行。优选地,如果当前可用的优质计算资源数量较少,调度装置可将作业任务优先分配给资源优先级较第的计算资源中执行,以取得更高的系统吞吐量。继续对前述第一示例进行说明,当前可用的计算资源为Stable_P0和Unstable_P0两种资源优先级的计算资源,则调度装置确定Stable_P0的计算资源为相对优质资源,并将作为任务分配至Stable_P0的计算资源中执行。如果优质资源的数量小于预定阈值,则调度装置优先将作为任务分配至Unstable_P0的计算资源中执行,以取得更高的资源量和吞吐量。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何基于所述调度算法和当前可用的各个计算资源的资源优先级,进行资源分配的实现方式,均应包含在本发明的范围内。优选地,调度装置将属于不稳定等级的计算资源中待执行的一项或多项作业任务预先备份至其他属于稳定等级的计算资源中执行。其中,所述预先备的操作用于同时在某一号分片任务上运行两个实例来防止慢节点拖慢整个作业的进度。继续对前述第一示例进行说明,为了防止运行在Unstable_P0资源的task运行缓慢而导致整个作业任务不能结束,调度装置将Unstable_P0中待执行作业任务中的一部分预先备份至Stable_P0、Stable_P1或Stable_P2的计算资源上中执行。根据本发明的方法,通过对计算资源的优先级进行细分并支持多种调度算法,从而基于多样化的调度算法和资源优先级来进行资源调度,提高了资源调度的灵活性,提升了资源利用率和系统吞吐量。根据本发明的一个优选实施方案,不同的计算框架混合部署于所述云计算系统,所述方法包括步骤S5(图未示)和步骤S6(图未示)。在步骤S5中,调度装置分别确定对应于各个计算框架的资源调度规则。其中,所述资源调度规则用于指示多种作业任务各自所采用的调度算法。在步骤S6中,调度装置在需要进行资源调度时,分别在不同的计算框架中基于其各自的资源调度对规则和当前可用的各个计算资源的资源优先级进行资源分配。优选地,调度装置可基于在不同的计算框架中基于重要性或时延敏感程度等因素来确定资源优先级的分类方式,从而在不同的计算框架中采用对应于该计算框架的资源优先级分类来进行调度。根据本优选实施方案的方法,在不同的计算框架进行混合部署的情况下,可分别在不同的计算框架中基于特定的调度算法来进行资源调度,以满足多种调度需求。根据本发明的一个优选实施方案,所述方法包括步骤S7(图未示)和步骤S8(图未示)。在步骤S7中,调度装置将可用计算资源的资源相关信息和作业信息发送至远程调度装置。其中,所述资源相关信息包括各与可用计算资源相关的信息,例如,可用计算资源的资源优先级、可用计算资源的数量、或计算资源的硬件信息等等。在步骤S8中,调度装置接收所述远程调度装置反馈的调度结果信息,以基于该调度结果信息进行相应的资源分配。优选地,调度装置基于用户的设置来执行步骤S7和步骤S8的操作,所述远程调度装置包含于用于所在的设备。例如,对于云系统的用户user_1,该用户设置使用自身特殊的调度算法。对于一般的用户的作业任务,调度装置采用自身内置的调度算法来进行。而在需要执行与该用户对应的作业任务时,调度装置在步骤S7中将当前可用的计算资源的资源相关信息和作业信息通过远程RPC调度接口发送至该用户user_1所在的设备,并在步骤S8中接收其反馈的调度结果信息,以基于该调度结果信息进行相应的资源分配。根据本优选实施方案的方法,通过与远程调度装置的交互来进行资源调度,方便用户使用特殊的调度算法来进行资源调度,进一步提升了资源调度的灵活性。图2示意出了根据本发明的一种用于在云系统中进行资源调度的调度装置的结构示意图。根据本发明的调度装置包括:用于根据云系统中计算资源的稳定性,确定各个计算资源各自的资源优先级的装置(以下简称“级别确定装置1”);用于在需要进行资源调度时,确定当前作业任务相对应的调度算法的装置(以下简称“算法确定装置2”);用于基于所述调度算法和当前可用的各个计算资源的资源优先级,进行资源分配的装置(以下简称“调度执行装置3”)。级别确定装置1根据云系统中计算资源的稳定性,确定各个计算资源各自的资源优先级。其中,所述计算资源包括各种可在云系统中进行作业的机器或设备。优选地,根据本发明的调度装置包括用于根据计算资源的稳定性,将计算资源分为稳定和不稳定两个等级,并对于该两个等级继续进行分类,以得到分别对应于稳定和不稳定的多个资源优先级的装置(图未示,以下简称“分类装置”)。分类装置根据计算资源的稳定性,将计算资源分为稳定和不稳定两个等级,并对于该两个等级继续进行分类,以得到分别对应于稳定和不稳定的多个资源优先级。其中,计算资源的稳定性用于指示计算资源的运行效率,计算资源的运行效率越高其资源优先级越高。级别确定装置1根据云系统所采用的资源优先级,并基于用于指示计算资源的稳定性的相关数据,来确定各个计算资源各自的资源优先级。其中,调度装置可获取各种可反映计算资源的稳定性的数据,诸如设备硬件规格或统计得到的计算速度等等,本领域技术人员可基于实际需求选择合适的数据。根据本发明的第一示例,调度装置包含于云系统的调度器中。分类装置基于用于指示计算稳定性的相关数据,将资源分成稳定“STABLE”和不稳定“UNSTABLE”两个等级,并对STABLE和UNSTABL两个等级继续按照稳定性的程度分别细分为三个等级,从而得调度装置所采用的6个资源优先级:对应于“STABLE”的STABLE_P0、STABLE_P1、STABLE_P2,以及对应于“UNSTABLE”的UNSTABLE_P0、UNSTABLE_P1、UNSTABLE_P2,其中优先级顺序按P2、P1、P0依次递增,则该6个资源优先级按照由高到低的排序为:STABLE_P0>STABLE_P1>STABLE_P2>UNSTABLE_P0>UNSTABLE_P1>UNSTABLE_P2。级别确定装置1基于该6个资源优先级确定各个计算资源各自的资源优先级。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何根据云系统中计算资源的稳定性,确定各个计算资源各自的资源优先级的实现方式,均应包含在本发明的范围内。优选地,级别确定装置1还可基于计算资源所执行的作业任务的优先级来确定计算资源的资源优先级,使得作业优先级越高对应的计算资源的资源优先级越高。继续参照图2进行说明,在需要进行资源调度时,算法确定装置2确定当前作业任务相对应的调度算法。其中,所述调度算法包括各种用于基于特定的调度需求来对计算资源进行调度的算法。具体地,算法确定装置2基于预定的多种调度算法和作业任务类型的对应关系,确定当前作业任务相对应的调度算法。优选地,算法确定装置2基于与当前作业任务对应的调度需求,确定该作业任务相对应的调度算法。例如,MPI作业需要BestFit分配算法以尽量腾出较大的空间来放下一个计算资源的请求;而对于MR(MapReduce)作业来说,则采用NextFit或者WorstFit分配算法打散均匀调度,以取得较好的资源利用率。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何在需要进行资源调度时,确定当前作业任务相对应的调度算法的实现方式,均应包含在本发明的范围内。接着,调度执行装置3基于所述调度算法和当前可用的各个计算资源的资源优先级,进行资源分配。优选地,调度执行装置3在进行资源分配时,将作为任务分配到资源优先级较高的优质计算资源中执行。优选地,如果当前可用的优质计算资源数量较少,调度执行装置3可将作业任务优先分配给资源优先级较第的计算资源中执行,以取得更高的系统吞吐量。继续对前述第一示例进行说明,当前可用的计算资源为Stable_P0和Unstable_P0两种资源优先级的计算资源,则调度执行装置3确定Stable_P0的计算资源为相对优质资源,并将作为任务分配至Stable_P0的计算资源中执行。如果优质资源的数量小于预定阈值,则调度执行装置3优先将作为任务分配至Unstable_P0的计算资源中执行,以取得更高的资源量和吞吐量。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何基于所述调度算法和当前可用的各个计算资源的资源优先级,进行资源分配的实现方式,均应包含在本发明的范围内。优选地,所述调度装置包括用于的装置(图未示,以下简称“备份装置”)。备份装置将属于不稳定等级的计算资源中待执行的一项或多项作业任务预先备份至其他属于稳定等级的计算资源中执行。其中,所述预先备的操作用于同时在某一号分片任务上运行两个实例来防止慢节点拖慢整个作业的进度。继续对前述第一示例进行说明,为了防止运行在Unstable_P0资源的task运行缓慢而导致整个作业任务不能结束,备份装置将Unstable_P0中待执行作业任务中的一部分预先备份至Stable_P0、Stable_P1或Stable_P2的计算资源上中执行。根据本发明的方案,通过对计算资源的优先级进行细分并支持多种调度算法,从而基于多样化的调度算法和资源优先级来进行资源调度,提高了资源调度的灵活性,提升了资源利用率和系统吞吐量。根据本发明的一个优选实施方案,不同的计算框架混合部署于所述云计算系统,所述调度装置包括用于分别确定对应于各个计算框架的资源调度规则的装置(图未示,以下简称“规则确定装置”),和用于在需要进行资源调度时,分别在不同的计算框架中基于其各自的资源调度对规则和当前可用的各个计算资源的资源优先级进行资源分配的装置(图未示,以下简称“混合调度装置”)。规则确定装置分别确定对应于各个计算框架的资源调度规则。其中,所述资源调度规则用于指示多种作业任务各自所采用的调度算法。在需要进行资源调度时,混合调度装置分别在不同的计算框架中基于其各自的资源调度对规则和当前可用的各个计算资源的资源优先级进行资源分配。优选地,调度装置可基于在不同的计算框架中基于重要性或时延敏感程度等因素来确定资源优先级的分类方式,从而在不同的计算框架中采用对应于该计算框架的资源优先级分类来进行调度。根据本优选实施方案的方案,在不同的计算框架进行混合部署的情况下,可分别在不同的计算框架中基于特定的调度算法来进行资源调度,以满足多种调度需求。根据本发明的一个优选实施方案,所述调度装置包括用于将可用计算资源的资源相关信息和作业信息发送至远程调度装置的装置(图未示,以下简称“发送装置”),和用于接收所述远程调度装置反馈的调度结果信息的装置(图未示,以下简称“接收装置”)。发送装置将可用计算资源的资源相关信息和作业信息发送至远程调度装置。其中,所述资源相关信息包括各与可用计算资源相关的信息,例如,可用计算资源的资源优先级、可用计算资源的数量、或计算资源的硬件信息等等。接收装置接收所述远程调度装置反馈的调度结果信息,以基于该调度结果信息进行相应的资源分配。优选地,调度装置基于用户的设置来执行所述发送装置和所述接收装置的操作,所述远程调度装置包含于用于所在的设备。例如,对于云系统的用户user_1,该用户设置使用自身特殊的调度算法。对于一般的用户的作业任务,调度装置采用自身内置的调度算法来进行。而在需要执行与该用户对应的作业任务时,发送装置将当前可用的计算资源的资源相关信息和作业信息通过远程RPC调度接口发送至该用户user_1所在的设备,并接收装置接收其反馈的调度结果信息,以基于该调度结果信息进行相应的资源分配。根据本优选实施方案的方案,通过与远程调度装置的交互来进行资源调度,方便用户使用特殊的调度算法来进行资源调度,进一步提升了资源调度的灵活性。本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1