用于调度资源的方法及装置与流程

文档序号:12662082阅读:199来源:国知局
用于调度资源的方法及装置与流程
本发明涉及信息技术领域,特别涉及一种用于调度资源的方法及装置。

背景技术:
云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。提供资源的网络被称为“云”。云计算按照服务对象的不同,一般分为公有云和私有云两大类。通常,基于云的应用为了保证应用服务质量(QoS)希望占用尽量多的云资源,然而使用云资源是有成本的,例如云资源的租金(对于公有云)和运营成本(对于私有云)。因此云应用会根据实时工作负载等因素,动态地改变云资源的使用量,以提高云资源的使用效率,达到应用QoS和资源成本的平衡。现有技术的资源调度方法所能采取的调度策略单一且有限,从而具有较大的局限性。

技术实现要素:
考虑到现有技术的上述缺陷,本发明的实施例提出一种用于调度资源的方法及装置,针对云应用不同的进程组,采用与进程组对应的资源调度策略,以提供更灵活有效地资源调度。本发明实施例提供一种用于调度资源的方法,包括:获取进程组信息,所述进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息;采用与所述进程组对应的资源调度策略对所述进程组进行资源调度。本发明实施例提供一种用于调度资源的装置,包括:获取模块,用于获取进程组信息,所述进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息;调度模块,用于采用与所述进程组对应的资源调度策略对所述进程组进行资源调度。本发明实施例提供一种用于调度资源的装置,包括:存储器,用于存储指令;处理器,其与所述存储器耦合,该处理器被配置为执行存储在所述存储器中的指令,其中,所述处理器被配置为用于:获取进程组信息,所述进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息;采用与所述进程组对应的资源调度策略对所述进程组进行资源调度。本发明实施例还提供一种机器可读存储介质,其存储机器可执行指令,当所述机器可执行指令被执行时使得机器执行如下步骤:获取进程组信息,所述进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息;采用与所述进程组对应的资源调度策略对所述进程组进行资源调度。在按照本发明的实施例中,通过对进程进行分组获得进程组,在对进程组进行资源调度时,利用与进程组相对应的资源调度策略来进行调度,实现了基于进程组的资源调度附图说明本发明的目的、特点、特征和优点通过以下结合附图的详细描述将变得显而易见。其中:图1是本发明一实施例的用于调度资源的方法的流程示意图;图2是根据本发明实施例的用于调度资源的方法的一种应用环境;图3是本发明另一实施例的用于调度资源的方法的流程示意图;图4是根据本发明另一实施例的用于调度资源的方法的流程示意图;图5是本发明又一实施例的用于调度资源的方法的流程示意图;图6是本发明一实施例的用于调度资源的装置的示意图;图7是根据本发明另一实施例的用于调度资源的装置的示意图。具体实施方式下面将结合附图详细描述本发明的用于调度资源的方法及装置的各个实施例。图1是根据本发明实施例的用于调度资源的方法的流程示意图。图1中的方法包括:步骤110,获取进程组信息,其中,进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息;步骤120,采用与所述进程组对应的资源调度策略对所述进程组进行资源调度。在按照本发明的实施例中,通过对进程进行分组获得进程组,在对进程组进行资源调度时,利用与进程组相对应的资源调度策略来进行调度,实现了基于进程组的资源调度。图2示出了根据本发明实施例的用于调度资源的方法的一种应用环境。图2中,云应用210指运行在云平台上的应用程序,其运行时包含一个或多个(例如N个,N为整数)进程,这一个或多个进程可能分布在云平台中的一个或多个虚拟机(VM,VirtualMachine)中。在本发明实施例的用于调度资源的方法中,可以对云应用的进程进行分组,例如可以根据云应用进程的类型进行分组;还可以根据云应用的功能进行分组。通过对进程进行分组所获得的各进程组中的每一个进程组可以对应于一个或多个资源调度策略。根据进程组的特性可以将进程组分成不同的类型。不同类型的进程组可以适用于不同类别的资源调度策略。其中,静态进程组中进程的个数是预先设定的,在运行中固定不变,因此静态进程组不能通过动态添加相同进程的方法来分担工作。增加或删除进程的资源调度策略不适合静态进程组。动态进程组中进程的个数在运行中是可以动态变化的,一般该类型进程组中的进程的功能相同,因此能够通过动态添加新进程来分担工作。可迁移进程组中的进程是可以迁移的,即可以从一个虚拟机迁移到另一个虚拟机。驻留进程组中的进程是不可以迁移的,因此迁移进程的调度策略不适合驻留进程组。其中,类型相同但功能不同的进程组可以采用相同的调度策略,也可以采用不同的调度策略。资源调度装置220,用于基于与进程组相对应的资源调度策略来执行基于进程组的虚拟资源的分配和调度。其中,资源调度策略可以是预先定义的。资源调度策略包括触发条件和决策算法。决策算法决策云应用增加或减少资源的方式和数量。监控装置230用于监控与进程组相关的参数,包括:云应用的负载和虚拟资源的使用状态,例如进程组的平均CPU利用率、使用的VM台数、进程组中进程的个数等等。虚拟资源管理平台240将物理资源虚拟化,对外提供虚拟机、虚拟卷、虚拟网络等虚拟资源。用户/管理员是操作人员,其用于提交策略模版、配置资源调度策略。图3是本发明另一实施例的用于调度资源的方法的流程示意图。图3中的方法包括如下步骤:步骤310,获取进程组信息,其中,进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息,该信息用于指示云应用划分成哪些进程组以及各进程组包括哪些进程;以及,对进程组的类型进行指示的信息。示例性地,进程组的类型可以包括:静态进程组、动态进程组、可迁移进程组和驻留进程组。进程组可以是上述类型中的至少一种。进程组可以既是静态进程组和动态进程组中的一种,又是可迁移进程组和驻留进程组中的一种。步骤320,根据进程组的类型确定资源调度策略。在该步骤中,所确定的资源调度策略是与进程组的类型对应的资源调度策略。具体地,由于不同的类型的进程组具有不同的特点,因此所采用的资源调度策略与其类型的特点相对应。例如,若进程组的类型是静态进程组,则由于静态进程组中进程的个数是预先设定的、在运行中固定不变,因此可以确定该进程组不能采用增删进程的资源调度策略,但是,该进程组可以采用扩缩的资源调度策略,其中,扩缩的资源调度策略通过改变进程组所在的虚拟机的规格来进行资源调度。通常,在使用扩缩的资源调度策略时,需要确定需要扩缩的虚拟机的标识以及进行扩缩后的虚拟机的规格。若进程组的类型是动态进程组,由于动态进程组中的进程个数在应用程序的运行中是可以动态变化的,因此可以确定进程组能够采用增加或删除进程的增删的资源调度策略。通常,在使用增加进程的增加的资源调度策略时,需要决策要增加的进程数量以及选择决策新增加的进程分布在哪些VM上的VM映射算法。示例性地,VM映射算法可以是负载最小(Min-load)算法,将新增加的进程添加在VM集群中CPU和内存综合利用率最低的VM上。在必要时,但不是必须的,该调度策略还可以有一些限制条件,示例性地,该限制条件可以是限制VM的利用率不能超过某一阈值,或者限制关键进程不能分配到同一VM上等。在必要时但不是必须的,该调度策略还可以有失败处理。示例性地,该失败处理可以是当没有满足条件的VM可以启动进程时,使用满足某一预设条件的VM规格,创建一台VM并启动进程。示例性地,该满足某一预设条件的VM规格可以是该进程组使用最多的VM规格。在使用删除的资源调度策略时,需要决策要删除的进程数量,以及决策删除进程的选择算法。该删除进程的选择算法可以决策要删除的是哪个或哪些VM上的进程,还可以决策在删除进程后是否要删除相应的VM。示例性但不作为限制的,删除进程的选择算法可以是首先选择只有该进程组进程的VM上的进程,其次选择进程数最少的VM上的进程;并且,在删除进程之后可以删除被删除进程所在的VM。当然,动态进程组也可以采用扩缩的资源调度策略。若进程组的类型是可迁移进程组,则该进程组能够采用重排的资源调度策略,其中,该重排的资源调度策略通过改变进程到虚拟机的映射关系来进行资源调度。该重排调度策略具体采用的重排算法可以包括均衡的重排调度策略和集中的重排调度策略。均衡的重排调度策略用于使进程在不同的VM上分配均衡。集中的重排调度策略用于将进行集中放置在某一个或几个VM上以保证VM的利用率不会太低,例如低于某个预设的利用率阈值。重排的资源调度策略通常需决策迁移前的进程所处的源VM和欲迁移至的目标VM。示例性地,可以将利用率最低的VM上的进程一个一个迁移到利用率尽量高的VM上。在必要的但不是必须的情况下,在重排的资源调度策略中还可以设置迁移的限制条件。例如,该迁移限制条件可以是:迁移合并后预计利用率不超过某一预设的利用率阈值。在一个重排的资源调度策略的示例中,如果预计将进程迁移到当前利用率最高的VM中后,该VM的CPU利用率不超过预设的CPU利用率阈值,则可以将利用率最低的VM上的进程一个一个迁移到该利用率最高的VM上;而如果预计将进程迁移到当前利用率最高的VM中后该VM的CPU利用率超过该CPU利用率阈值,而预计将进程迁移当前利用率次高的VM中后该利用率次高的VM的CPU利用率不超过该CPU利用率阈值,则可以将利用率最低的VM上的进程一个一个迁移到该利用率次高的VM上。若进程组的类型是驻留进程组,由于驻留进程组的不可迁移性,则可以确定该进程组不能够采用重排的资源调度策略。对于属于驻留进程组的静态进程组则可以采用上述扩缩的资源调度策略。对于属于驻留进程组的动态进程组则可以采用上述增删的资源调度策略,当然也可以采用扩缩的资源调度策略。若进程组的类型是静态进程组并且是可迁移进程组,则所述进程组能够采用上述扩缩的资源调度策略和上述重排的资源调度策略中的至少一个。若述进程组的类型是动态进程组并且是可迁移进程组,则进程组能够采用上述增删的资源调度策略和上述重排的资源调度策略中的至少一个。其中,当一个进程组可以采用多个资源调度策略时,可以根据优先级来确定所采用的资源调度策略。示例性,可以是重排的资源调度策略和增删的资源调度策略进行组合。一个例子中,集中的重排资源调度策略与删除的资源调度策略组合,集中的重排资源调度策略优先于删除的资源调度策略。具体地,可以是先将进程集中放置,如果达不到调度效果,再删除一定数目的进程。另一个例子中,均衡的重排资源调度策略与增加的资源调度策略组合,增加的资源调度策略优先于均衡的重排资源调度策略。具体地,可以是先在新增加的VM上放置进程,然后再对进程在VM上进行均衡。步骤330,根据所确定的资源调度策略对进程组进行资源调度。资源调度策略通常包括触发条件和决策算法。当与进程组相关的参数满足所述资源调度策略的触发条件时,触发对所述进程组进行资源调度,调用相应的决策算法来调度资源。其中,上述与进程组相关的参数可以是如下中的至少一项:进程组的平均CPU利用率、进程组使用的虚拟机的台数、进程组中进程的个数、进程组所在的虚拟机的利用率、与进程组相对应的通信带宽、与进程组相对应的网络速度等。其中,所提到的虚拟机的利用率是VM所占用的资源的利用率,例如CPU利用率、内存利用率、磁盘利用率、磁盘每秒输入输出量(IOPS,Input/OutputPerSecond)、和/或网络IOPS。可选地,可以预先定义各资源调度策略,将各资源调度策略预先存储在用于调度的装置中,或者可以在获取进程组类型信息的时候也同时获取各种资源调度策略。例如,上述获取可以通过接收用户输入的信息来实现,例如接收用户通过策略模版输入的进程组的类型信息和资源调度策略信息。可选地,可以预先设置各进程组与各资源调度策略之间的对应关系,根据该对应关系来确定针对该进程组所需采用的资源调度策略。可选地,可以预先设置各进程组的类型与各资源调度策略之间的对应关系,在获取进程组的类型后,根据该对应关系来确定针对该进程组所需采用的资源调度策略。在按照本发明的实施例中,通过对进程进行分组获得进程组,在对进程组进行资源调度时,利用与进程组相对应的资源调度策略来进行调度,实现了基于进程组的资源调度。进一步地,在根据进程的类型对进程进行分组时,针对不同的进程组利用与进程组的类型相适应的调度策略来进行资源调度,可以使得针对云应用的资源调度更灵活和有效。图4是本发明另一实施例的用于调度资源的方法的流程示意图。图4所示的方法包括如下步骤:步骤410,获取进程组信息,其中,进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息,该信息用于指示云应用划分成哪些进程组以及各进程组包括哪些进程;以及,对与进程组相对应的资源调度策略进行指示的信息。步骤420,采用所获取的与进程组对应的资源调度策略来对进程组进行资源调度。示例性地,上述与进程组对应的资源调度策略可以为与进程组的类型对应的资源调度策略。进程组信息还可以包括:对进程组的类型进行指示的进程组类型信息。如上文所描述的,进程组的类型可以包括:静态进程组、动态进程组、可迁移进程组和驻留进程组;以及,针对不同类型的进程组可以采用如上文所述的对应类别的资源调度策略,在此不再赘述。可选地,获取进程组信息可以包括:接收配置文件以及解析配置文件以获得进程组信息。上述接收配置文件可以是接收用户输入的策略模板,解析配置文件可以是解析策略模版。策略模版可以包括所需的进程组信息。本领域的技术人员应该知道,除了进程组的类型外,还可以采用其它的方式来对进程进行分组。功能不同的进程可以位于不同的进程组。与进程组对应的资源调度策略也可以是与进程组的功能对应的资源调度策略,或者是在满足与进程组的类型相适应的情况下、与进程组的功能对应的资源调度策略,或者是与进程组的其它属性相对应的资源调度策略。类型相同但功能不同的进程组可以划分成不同的进程组,类型相同但功能不同的进程组对应的资源调度策略可以相同或不同。进程组信息可以包括对进程组的功能进行指示的进程组的功能信息。该进程组的功能信息可以包括作为进程组信息的一部分传递给资源调度装置,也可以不作为进程组信息的一部分传递给资源调度装置,而是在进程组采用的调度策略中体现。上述功能是指应用在完成业务时所用到的进程组的职责和能力;其是根据应用的业务流程和设计架构来进行划分的。例如,对于一个web类应用,进程组的功能可以划分为:数据库功能,用于持久化数据即存储数据;逻辑层功能,用于处理数据;表现层功能,用于将数据可视化,如通过文字、表格、图形方式来展现。又如,对于一个科学计算类应用,可以根据功能划分为:控制进程,用于监视、启动、停止工作进程;分发工作进程,用于接受、审核、分发计算申请;计算工作进程,用于执行具体的科学计算。以上的功能划分只是示例性,并不作为限制。在将应用部署的云上时,根据应用的业务流程和设计架构,部署人员可以有其他的划分方式。可选地,当与进程组相对应的资源调度策略为多个时,根据优先级来执行对进程组的资源调度。可选地,利用资源调度策略执行对进程组的资源调度包括:当与进程组相关的参数满足资源调度策略的触发条件时,触发对进程组进行资源调度。图5是本发明又一实施例的用于调度资源的方法的流程示意图。图5中所示的方法包括如下步骤:步骤510,接收用户提交的策略模版。策略模版可以包括但不限于以下内容:关于应用的信息、关于进程组的信息、关于资源调度策略的信息。其中,关于应用的信息包括应用所包括的进程组的信息,例如应用包括哪些进程组。关于进程组的信息包括各进程组的具体信息,例如,各进程组的类型、各进程组所包括的进程、各进程组所对应的资源调度策略的标识、对于各进程组需统计的信息等。关于资源调度策略的信息包括触发条件和决策算法的信息。其中,决策算法说明如何进行调度,其可以用算法名称、脚本路径、函数名等来标识决策算法。决策算法可以带有相应的决策算法的参数表,例如,决策算法的输入参数等。参数的具体内容可以随算法的不同而不同。根据操作方式的不同决策算法可以分为三大类:扩缩算法,增删算法和重排算法。扩缩算法采用改变进程所在虚拟机即宿主虚拟机的规格的方式增删资源。增删算法采用增加或删除进程数,占用或释放已有和新建VM的资源的方式来增删资源。重排算法采用改变进程到VM的映射关系来调度资源,其可以使进程在VM上分配均衡,或者集中放置进程以保证VM的利用率。相应地,扩宿的资源调度策略采用扩缩算法;增删的资源调度策略采用增删算法;重排的资源调度策略采用重排算法。步骤520,解析策略模版,获得上述关于应用的信息、关于进程组的信息和关于资源调度策略的信息。步骤530,判断是否存在未配置的资源调度策略;如是,则执行步骤540;否则,执行步骤550。步骤540,接收设置的资源调度策略。设置时,输入的内容包括但不限于:触发条件、决策算法标识和参数表。其中,触发条件可以是与进程组相关的参数,例如进程组的统计参数,如进程组的CPU利用率、进程数量等。可以用规则引擎或脚本来实现触发条件的设置。决策算法标识可以是脚本名字、函数名、其他类型的模块标识等。参数表可以记录在数据库、内存或者文件中。调度策略的设置和匹配可以用规则引擎或脚本实现。步骤550,获取进程组和虚拟机的实时状态。步骤560,在预定条件满足时,触发资源调度。步骤570,根据进程组的类型来选择资源调度策略。在该实施例中,如果进程组的类型为静态进程组,则执行步骤571,选择改变进程组所在VM的规格的扩缩算法,并在步骤572中决策并返回扩缩后的VM规格,然后转入步骤580。所使用的扩缩算法可以有多个,可以根据调度策略中的算法标识来进行选择。输入的参数是算法标识。如果进程组的类型为动态进程组,则执行步骤573,选择增加或删除进程的增删算法,并在步骤574决策并返回增删进行的方案,然后转入步骤580。该例中,可以有多个增删算法,用算法标识来标识不同的增删算法;在具体选择时,可以通过输入需选择的算法标识来进行选择。具体地,以如下四个增删算法为例。其中,增加算法1包括:新加数量:每次增加进程组总数的5%;VM映射算法:Min-load,新加进程在VM集群中CPU和内存综合利用率最低的VM上;限制条件:关键进程不分配到同一个VM上;失败处理:当没有满足条件的VM可启动进程时,使用该进程组使用最多的VM规格,创建1台VM并启动进程。增加算法2包括:新加数量:每次2个进程;VM映射算法:启动与新进程相同数目的VM,在新增VM上启动进程,规格使用模版中的配置。删除算法1包括:删除数量:每次增加进程组总数的5%;删除进程选择算法(选择删除进程之后可以删除VM的):首先选择只有该进程组进程的VM上的进程;其次选择进程数最少的VM上的进程;删除空VM。删除算法2包括:删除数量:不指定;删除进程选择算法:首先选择只有该进程组进程的VM上的进程;删除利用率最低的2个VM以及以上所有进程。如果进程组可迁移进程组,则执行步骤575,选择改变进程与其所在的VM的映射关系的重排算法,并在步骤576决策并返回重排之后的进程映射方案,然后转入步骤580;该例中,可以有多个重排算法,用算法标识来标示不同的重排算法,在具体选择时,可以通过输入需选择的算法标识来进行选择。例如,重排算法1为均衡的重排算法,其具体内容可以是将利用率最高的VM上的进程迁移到利用率最低的VM上;重排算法2为集中的重排算法,其具体内容可以包括:将利用率最低的VM上的进程一个一个迁移到利用率尽量高的VM上,并且用迁移合并后预计利用率不超过阈值来进行限制。步骤580,执行所选择的决策算法,对资源进行调度。该例中针对各进程类型选择了比较适合于该进程组的类型特点的资源调度算法,但在满足不改变静态进程组中进程的数目以及驻留进程组不迁移的前提下,各进程组可以采用其他的资源调度算法。可选地,在该实施例中,还可以利用预先设置的资源调度策略与进程组的类型之间的对应关系对所配置的资源调度策略或设置的资源调度策略进行校验;如果校验通过,则进行步骤550;如果校验不通过,则可以从预先设置的默认资源调度策略中选择与进程组的类型对应的资源调度策略来进行调度。下面利用一个具体实例来说明如何利用本发明实施例的用于调度资源的方法进行资源调度。该实施例中,以包括三个进程组的应用App1为例进行说明。这三个进程组分别是进程组1(ProGroup1)、进程组2(ProGroup2)和进程组3(ProGroup3)。进程组1的类型是静态进程组和驻留进程组。进程组1采用的资源调度策略是调度策略1。进程组2的类型是动态进程组和驻留进程组。进程组2采用的资源调度策略是调度策略2和调度策略3的组合。进程组3的类型是动态进程组和可迁移进程组。进程组3采用的资源调度策略是调度策略4。该例中,接收用户向用于调度资源的装置发送的策略模版。示例性地,该策略模版包括如下内容:1)应用的信息:应用标识:App1进程组标识列表:[ProcGroup1,ProcGroup2,ProcGroup3];2)进程组1(ProcGroup1)的信息:进程组标识:ProcGroup1是否静态进程组:是;表示进程组1为静态进程组是否可迁移进程组:否;表示进程组1为驻留进程组进程标识列表:[CtrlProc1,CtrlProc2];表示ProcGroup1中包括两个进程,这两个进程的进程标识分别为CtrlProc1,CtrlProc2调度策略标识列表:调度策略1(SchedPolicy1);表示进程组1所采用的调度策略为调度策略1;进程组统计信息:Avarage_CPU_Load;表示统计该进程组的平均CPU利用率;3)进程组2(ProcGroup2)的信息:进程组标识:ProcGroup2是否静态进程组:否;表示进程组2是动态进程组是否可迁移进程组:否;表示进程组2是驻留进程组进程标识列表:WorkerProc#;表示ProcGroup2中包括的进程的进程标识为WorkerProc,WorkerProc1,WorkerProc2,…调度策略标识列表:[调度策略2,调度策略3]([SchedPolicy2,SchedPolicy3]);表示进程组2采用的调度策略为调度策略2和调度策略3的组合;进程组统计信息:Avarage_CPU_Load;表示统计该进程组的平均CPU利用率;4)进程组3(ProcGroup3)的信息:进程组标识:ProcGroup3是否静态进程组:否;表示进程组3是动态进程组是否可迁移进程组:是;表示进程组3是可迁移进程组进程标识列表:Procname#;表示ProcGroup3中所包括的进程的进程标识为Procname,Procname1,Procname2,…调度策略标识列表:调度策略4(SchedPolicy4);表示进程组3所采用的调度策略为调度策略4;进程组统计信息:Avarage_CPU_Load;表示统计该进程组的平均CPU利用率;5)调度策略1(SchedPolicy1)调度策略标识:SchedPolicy1触发条件:"ProcGroup1::Avarage_CPU_Load>80";为调度策略1的触发条件;表示当进程组ProcGroup1的平均CPU利用率大于80%时,触发资源调度。决策算法标识:"ScaleUpDown::ScaleUpAlgo1";为调度策略1所采用的决策算法的标识;表示使用扩缩算法类中的扩张算法1(ScaleUpAlgo1),此算法是对进程组所在的VM进行扩容。决策参数表:{"vmspeclist","vmSepc1,vmSpec2,vmSpec3"};表示所采用的算法的参数,此处采用的参数是虚拟机规格。虚拟机的规格通常可以包括:小型、中型、大型及超大型。与规格小的虚拟机相比,规格较大的虚拟机所包括的虚拟CPU的个数、虚拟内存的容量、磁盘的容量、和/或网卡块数等更多或更大。vmSepc1,vmSpec2,vmSpec3为具体的规格。其中,vmSepc1小于vmSpec2,vmSpec2小于vmSpec3。如果当前组中VM规格是vmSpec1,则执行该调度策略1后,VM规格扩容到采用vmSpec2;如果当前组中VM规格是vmSpec2,则执行该调度策略1后,VM规格扩容到采用vmSpec3。此处假设VM可以支持热扩容。6)调度策略2(SchedPolicy2)调度策略标识:SchedPolicy2触发条件:"ProcGroup2::Avarage_CPU_Load>80";为调度策略2的触发条件;表示当进程组ProcGroup2的平均CPU利用率大于80%时,触发资源调度。决策算法标识:"ScaleOutIn::ScaleOutAlgo1″。表示使用增删算法类算法中的增进程算法1(ScaleOutAlgo1),此算法将添加新进程,新进程采用最小负载(Min-load)算法分配到CPU利用率最低的VM上。决策参数表:{"比率(rate)","5%"}。表示所采用的增进程算法1的算法参数,此处表示增加ProcGroup2中进程总数的5%个进程。即当前进程组有100个进程时,增加5个新进程。7)调度策略3(SchedPolicy3)调度策略标识:SchedPolicy3触发条件:"ProcGroup2::Avarage_CPU_Load<20";为调度策略3的触发条件;表示当进程组ProcGroup2的平均CPU利用率小于20%时,则触发资源调度。决策算法标识:"ScaleOutIn::ScaleInAlgo2"。表示使用增删算法类中的删进程算法2(ScaleInAlgo2);此算法将删除一些进程;具体地,先找出只具有该进程组进程的VM,然后删除利用率最低的vm_number个VM以及这vm_number个VM上的所有进程(vm_number指定了要删除的VM的个数,其值可以在决策参数表中设定);其中,所提到的VM的利用率可以是VM所占用的资源的利用率,例如CPU利用率、内存利用率、磁盘利用率、磁盘IOPS、和/或网络IOPS等;决策参数表:{″vm_number","2"};表示删除算法2中涉及的要删除的虚拟机的个数,该例中,vm_number=2。8)调度策略4(SchedPolicy4)调度策略标识:SchedPolicy4触发条件:"ProcGroup3::Avarage_CPU_Load<20";为调度策略4的触发条件;表示当进程组ProcGroup3的平均CPU利用率小于20%时,触发资源调度。决策算法标识:"Reallocate::ReallocateAlgo2"。表示使用重排(Reallocate)算法类中的重排算法2(ReallocateAlgo2);重排算法2具体对应的是集中重排算法1,此算法将利用率最低的VM上的进程一个一个迁移到利用率尽量高的VM上,并且对于该VM,所预计的该VM中的CPU利用率不超过CPU利用率上限cpu_load_upper。例如,如果当前利用率最高的VM中的CPU利用率不超过该cpu_load_upper,则可以将利用率最低的VM上的进程一个一个迁移到该利用率最高的VM上;而如果当前利用率最高的VM中的CPU利用率超过该cpu_load_upper,而预计当前利用率次高的VM中的CPU利用率不超过该cpu_load_upper,则可以将利用率最低的VM上的进程一个一个迁移到该利用率次高的VM上。决策参数表:{"cpu_load_upper","70%"};表示cpu_load_upper=70%。用于调度资源的装置可以在接收到上述策略模版后,对策略模版进行解析以获得上述针对该云应用的各信息。在解析的过程中,可以先验证模版的合法性。如果模版合法,则根据所提供的进程标识列表中的进程标识信息来向云应用查询由操作系统所赋予的进程所处的VM标识和在所处的VM中该进程的本地标识。然后,根据预先设置的上述各触发条件,定时计算各进程组中所有进程的平均CPU利用率,并监控各进程组的CPU平均利用率是否满足上述对应的触发条件。在满足触发条件时,触发相对应的资源调度策略来调度资源。如调用与所满足的触发条件相对应的资源调度策略所对应的决策算法来调度资源。例如,当进程组1的平均CPU利用率大于80%时,调用调度策略1相对应的扩张算法1来调度资源。假设当前进程组1所在的VM的规格是vmSpec2,则扩张算法1将VM的规格扩容到vmSpec3。此处假定可以热扩。当进程组2的平均CPU利用率大于80%时,调用调度策略2相对应的增进程算法1来调度资源。例如,算法决策新增5个进程,部署方案为在VM1启动3个,在VM2上启动2个。当进程组2的平均CPU利用率小于20%时,调用调度策略3相对应的删进程算法2来删除利用率最低的2个VM及这2个VM上的所有进程。该例中以利用率最低的VM为VM1和VM2为例。当进程组3的平均CPU利用率小于20%时,调用调度策略4相对应的重排算法2将进程组3中的进程从利用率最低的VM1上迁移VM2上,然后删除VM1。当应用的负载上升,增加新资源以保证应用的服务质量(QoS,QualityofService);当应用负载降低时,减少应用资源用量,并优化所应用的资源的利用率,以降低成本的调度需求:在该实施例中,对于类型为静态进程组和驻留进程组的进程组1采用了扩张进程组1宿主虚拟机的规格的方式来增加资源;对于类型为动态进程组和驻留进程组的进程组2采用了增加进程的方式来增加资源,采用了删除进程的方式来减少资源;对于类型为动态进程组和可迁移进程组的进程组3采用将进程迁移到利用率更高的VM的方式来优化资源的利用率。当然,本实施例的用于调度资源的方法只是示例性地说明,云应用可以包括更多或更少的进程组;进程组的类型可以是其它的类型或类型组合,例如可以是静态进程组和可迁移进程组;调度策略可以采用其它的触发条件和/或决策算法,例如触发条件可以是由与所述进程组相对应其它的统计信息来限定,决策算法可以是与进程组的类型特点相对应的其它算法。此外,除了进程组的平均CPU利用率之外,触发条件中可以利用的、与进程组相对应的其它统计信息可以包括如下中的至少一项:进程组使用的虚拟机的台数;进程组中进程的个数;进程组所在的虚拟机的利用率;与所述进程组相对应的通信带宽;与所述进程组相对应的网络速度等。根据静态进程组的特点,扩缩算法适用于静态进程组,其采用改变进程宿主VM的规格的方式来增删资源;该算法的决策内容包括:确定需要扩缩的VM标识;以及确定改变之后的VM规格。根据动态进程组的特点,增删算法适用于动态进程组,其可以采用如下方式之一来调度资源,比如增加或删除进程数,占用或释放已有的资源,占用或释放新建VM的资源等;其中,增加进程的算法可以包括以下内容:决策新增加进程的数量,例如可以是每次增加进程组总数的5%;采用的VM映射算法,例如可以是最小负载(Min-load)映射算法,利用该映射算法,新增加的进程可以放在VM集群中CPU和内存综合利用率最低的VM上。可选地,增加进程的算法还可以包括限制条件和失败处理。限制条件用于对增加进程进行限制。例如,限制条件可以为:VM利用率不能超过某一设定的百分数,例如60%;或者关键进程不可以分配在同一VM上。例如,失败处理可以为:当没有满足条件的VM可启动进程时,使用该进程组中采用最多的VM规格来创建VM并启动进程。其中,删除进程算法包括以下内容:决策删除的数量,例如可以是每次删除进程组总数的5%;删除进程的选择算法,选择删除进程之后可以删除VM的算法,例如首先选择删除只具有该进程组进程的VM上的进程;其次选择删除进程数最少的VM上的进程。根据可迁移进程组的特点,重排算法适用于可迁移进程组;利用重排算法迁移进程可以改变进程到VM的映射关系,从而可以使进程在VM上分配均衡,或者可以通过集中放置进程即将进程集中放置在某一个或几个VM上来保证VM的利用率;该算法可以包括以下内容:决策源进程和目标VM,例如将利用率最低的VM上的进程一个一个迁移到利用率高的VM上。可选地,重排算法还可以包括限制条件,例如,该限制条件可以是:迁移合并进程后VM的预计利用率不超过预定阈值。每一个进程组可以有多种调度策略。多种调度策略还可以根据优先级进行组合。示例性地,可以以如下方式组合:重排策略1或扩缩策略1:可以表示先将进程集中放置;如果达不到调度效果,再删除一定数目的进程;扩缩策略2和重排策略2:可以表示先在新增加的VM上放置进程,然后再将进程在VM上进行均衡。图6是根据本发明一实施例的用于调度资源的装置的示意图,该实施例的装置与图1所示的方法相对应。如图6所示,该实施例的用于调度资源的装置600包括:获取模块610,用于获取进程组信息,所述进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息;调度模块620,用于采用与所述进程组对应的资源调度策略对所述进程组进行资源调度。该装置600可以执行上文所描述的用于调度资源的方法的各步骤,在此不再赘述。可选地,所述进程组信息还可以包括:对与所述进程组对应的资源调度策略进行指示的信息。可选地,所述进程组信息还可以包括:对所述进程组的类型进行指示的信息;则所述调度模块620,用于采用与所述进程组的类型对应的资源调度策略对所述进程组进行资源调度。所述调度模块用于:若所述进程组的类型是静态进程组,则采用扩缩的资源调度策略进行资源调度,所述扩缩的资源调度策略用于改变所述进程组所在的虚拟机的规格;若所述进程组的类型是动态进程组,则采用增删的资源调度策略进行资源调度,所述增删的资源调度策略用于增加或删除进程;若所述进程组的类型是可迁移进程组,则采用重排的资源调度策略进行资源调度,所述重排的资源调度策略用于改变进程到虚拟机的映射关系。所述调度模块还可以用于:若所述进程组的类型是静态进程组并且是可迁移进程组,则采用所述扩缩的资源调度策略和所述重排的资源调度策略中的至少一个来进行资源调度;若所述进程组的类型是动态进程组并且是可迁移进程组,则采用所述增删的资源调度策略和所述重排的资源调度策略中的至少一个来进行资源调度。可选地,本发明实施例的装置中,所述获取模块可以包括:接收单元,用于接收配置文件;以及解析单元,用于解析所述配置文件以获取所述进程组信息。可选地,本发明实施例的装置中,所述调度模块还可以包括:选择单元,用于当与所述进程组相对应的资源调度策略为多个时,根据优先级来选择所采用的资源调度策略。图7是根据本发明另一实施例的用于调度资源的装置700的示意图,该实施例的装置与图3所示的方法相对应。该实施例中,与图6中装置相比,该用于调度资源的装置700中,获取模块710所获取的进程组信息还包括:对所述进程组的类型进行指示的信息;除了获取模块710和调度模块720外,该实施例的装置还包括:确定模块730,用于根据进程组的类型确定与所述进程组对应的资源调度策略;该实施例的装置中,调度模块720采用所确定的资源调度策略对所述进程组进行资源调度。按照本发明实施例的用于调度资源的方法和装置,基于对云应用进程的分组,以及采用与进程组相对应的调度策略,可以针对进程组采用与其功能或类型相适应的调度策略,从而能够更灵活和更有效的调度,能够提供适合多种类型应用进程的资源动态变化的能力,可适用不同类型的云应用。此外,由于调度是基于进程组进行的,并且可以基于进程来进行资源的增加、删除和/或重排,所以可以实现更细粒度的资源动态调整。结合本申请所公开示例描述的用于调度资源的装置可直接体现为硬件、由处理器执行的软件模块或二者组合。比如一种用于调度资源的装置,可以包括:存储器,用于存储指令;处理器,其与所述存储器耦合,该处理器被配置为执行存储在所述存储器中的指令,其中,所述处理器被配置为用于:获取进程组信息,所述进程组信息包括:对云应用中通过进程分组所获得的进程组进行指示的信息;采用与所述进程组对应的资源调度策略对所述进程组进行资源调度。可选地,所述进程组信息还包括:对所述进程组的类型进行指示的信息;则所述处理器进一步用于:根据所述进程组的类型确定与所述进程组对应的资源调度策略;采用所确定的资源调度策略对所述进程组进行资源调度。可选地,所述处理器进一步用于:接收配置文件;以及解析所述配置文件以获得所述进程组信息。可选地,所述处理器可以进一步用于:若所述进程组的类型是静态进程组,则采用扩缩的资源调度策略进行资源调度,所述扩缩的资源调度策略用于改变所述进程组所在的虚拟机的规格;若所述进程组的类型是动态进程组,则采用增删的资源调度策略进行资源调度,所述增删的资源调度策略用于增加或删除进程;若所述进程组的类型是可迁移进程组,则采用重排的资源调度策略进行资源调度,所述重排的资源调度策略用于改变进程到虚拟机的映射关系。可选地,所述处理器可以进一步用于:若所述进程组的类型是静态进程组并且是可迁移进程组,则采用所述扩缩的资源调度策略和所述重排的资源调度策略中的至少一个来进行资源调度;若所述进程组的类型是动态进程组并且是可迁移进程组,则采用所述增删的资源调度策略和所述重排的资源调度策略中的至少一个来进行资源调度。可选地,所述处理器可以进一步用于:当与所述进程组相对应的资源调度策略为多个时,根据优先级来选择所采用的资源调度策略。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域已知的任何其它形式的存储介质。一种存储介质耦接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。或者,存储介质可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该软件模块可以存储在移动终端的存储器中,也可以存储在可插入移动终端的存储卡中。例如:若移动终端采用的是较大容量的MEGA-SIM卡或者大容量的闪存装置,则该软件模块可存储在该MEGA-SIM卡或者大容量的闪存装置中。针对图6和图7所描述的功能方框中的一个或多个和/或功能方框的一个或多个组合(例如,获取模块610/710、确定模块730、调度模块620/720)可以实现为用于执行本申请所描述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。针对图6和图7描述的功能方框中的一个或多个和/或功能方框的一个或多个组合,还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP通信结合的一个或多个微处理器或者任何其它这种配置。虽然本申请描述了本发明的特定示例,但本领域的普通技术人员可以在不脱离本发明概念的基础上设计出本发明的变型。例如:本发明实施例的与进程组相对应的资源调度策略信息,并不仅限于由云资源的用户提供,还可以是由云资源的提供方提供,在调度资源时进行调用。此外,当进行资源调度所需的信息由用户提供时,除了通过提交策略模版外,用户还可以通过其他的方式来提供,例如通过直接提供记录有所需信息的配置文件等方式来提供。又例如:本发明实施例的用于调度资源的方法中,用于调度资源的装置还可以包括监控模块,用于监控与与进程组相关的参数,以确定该参数是否满足对应调度策略的触发条件。此外,监控功能也可以由独立于用于调度资源的装置的其它能实现监控功能的监控装置来执行,用于调度资源的装置只需根据监控装置提供的是否满足触发条件的信息来决定是否触发调度策略对应的决策算法。其中,监控模块或监控装置所监控的相关的参数信息,可以包括CPU的信息、内存的信息、磁盘的信息和/或网络的信息中的至少一种。具体地,对于进程组中的进程而言,所监控的统计信息可以是:进程所占用的CPU时间、进程的CPU利用率、进程所占用的内存用量、进程所占用的磁盘每秒输入输出量(IOPS,Input/OutputPerSecond)、进程所占用的网络每秒的输入输出量;对于VM而言,所监控的统计信息可以是:VM所占用的CPU利用率、VM所占用的内存利用率、VM所占用的磁盘IOPS、VM所占用的网络的IOPS;对于进程组而言,所监控的信息可以是进程组所包括的所有进程的相关信息的统计值,如上述进程的统计信息的和、平均值、最大值、最小值、进程数等;例如,可以是进程组中所有进程的平均CPU利用率、进程组中所有进程的所占用的内存之和、进程组的所有进程中所占用的最大的磁盘IOPS等等。其中,上述提到的IOPS,可以是读和/或写的IOPS。在利用本发明实施例的方法调度资源时,可以根据需要选择适当的监控信息。本领域技术人员应当理解,本发明的各个实施例所公开的方法和装置,可以在不偏离发明实质的情况下做出各种变形和改变,这些变形和改变都应当落入在本发明的保护范围之内。因此,本发明的保护范围由所附的权利要求书来定义。在权利要求书中,术语“包括”不排除存在其它元件或步骤。此外,尽管是单独地列出,但是多个装置、元件或方法步骤可通过例如单一单元或处理器来实施。另外,尽管独立的特征可以包含在不同权利要求中,但是这些特征也可以有利地组合,并且不同权利要求中的包含不暗示着特征的组合是不可行的和/或不利的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1