WO2019153697A1 - 集群的资源调整方法、装置及云平台 - Google Patents
集群的资源调整方法、装置及云平台 Download PDFInfo
- Publication number
- WO2019153697A1 WO2019153697A1 PCT/CN2018/100552 CN2018100552W WO2019153697A1 WO 2019153697 A1 WO2019153697 A1 WO 2019153697A1 CN 2018100552 W CN2018100552 W CN 2018100552W WO 2019153697 A1 WO2019153697 A1 WO 2019153697A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- resource
- information
- cluster
- partition
- resources
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种集群的资源调整方法、装置及云平台,涉及云计算领域,该集群包括多个资源分区,每个资源分区包括至少一个虚拟机VM,且每个资源分区对应一个调度器,该方法包括:获取集群中每个VM的VM信息;根据获取到的VM信息,调整至少一个资源分区所包括的VM;根据调整结果更新集群的分区信息,该分区信息用于指示每个资源分区包括的VM,每个调度器用于根据该分区信息执行调度任务。由于各个调度器可以在对应的资源分区内独立执行调度任务,因此可以避免各个调度器调度冲突而导致的调度失败的问题,并且由于可以基于VM信息,对集群的资源分区进行动态调整,因此可有效均衡各资源分区的资源利用率,提高集群资源的利用率。
Description
本申请涉及云计算领域,特别涉及一种集群的资源调整方法、装置及云平台。
云计算(Cloud Computing)中的平台即服务(Platform as a Service,PaaS)技术是一种能够将应用程序的运行和开发环境作为一种服务提供给用户的技术。其中,用于提供应用程序的运行和开发环境的平台称为云平台,该云平台通常包括调度器,以及由大量虚拟机(Virtual Machine,VM)组成的集群,该调度器可以根据用户的需求以及预设的调度规则,将用户提交的应用程序部署在一个或多个虚拟机中,实现对应用程序的调度。
相关技术中,为了提高调度效率,可以在云平台中设置多个调度器,该多个调度器可以共享集群的资源,即每个调度器均能实时获取集群中各个虚拟机的资源信息,并可以根据获取到的资源信息,实现对应用程序的调度。其中,集群的资源是指集群中各个虚拟机所占用的CPU、内存和磁盘等资源。
但是,当集群负载较大,剩余资源较少时,若多个调度器在同一时刻均有调度任务需执行,且该多个调度器均将应用程序调度至同一剩余资源较少的虚拟机时,可能会出现调度冲突导致调度失败的情况。
发明内容
本申请提供了一种集群的资源调整方法、装置及云平台,可以解决相关技术中的调度冲突导致调度失败的问题,技术方案如下:
一方面,提供了一种集群的资源调整方法,该方法可以应用于云平台的主节点中,该集群包括多个资源分区,每个资源分区包括至少一个虚拟机VM,且每个资源分区对应一个调度器,该方法可以包括:主节点获取该集群中每个VM的VM信息,根据获取到的该VM信息,调整至少一个资源分区所包括的VM,并可以根据调整结果更新该集群的分区信息,该分区信息用于指示每个资源分区包括的VM,每个调度器用于根据该分区信息在对应的资源分区内执行调度任务。
由于各个调度器可以在对应的资源分区内独立执行调度任务,因此可以避免各个调度器调度冲突而导致的调度失败的问题;并且由于可以基于VM信息,对集群中各个资源分区的资源进行动态调整,因此可以实现集群资源的均衡分布,有效均衡各资源分区的资源使用率,进而可以提高集群资源的利用率。
可选的,该VM信息包括:资源信息;则主节点根据获取到的该VM信息,调整至少一个资源分区所包括的VM的过程可以包括:
根据该集群中每个VM的资源信息,确定每个VM的剩余资源量,并确定该集群的剩余资源总量;基于每个VM的剩余资源量以及该集群的剩余资源总量,调整至少一个资源分区所包括的VM归属,使得各个资源分区占用的剩余资源量满足预设的资源配比。
该预设的资源配比可以是等比,也可以是基于各个调度器的历史调度量所确定的, 通过该资源配比调整各个资源分区所包括的资源量,可以保证集群资源的合理分配,提高资源利用率。
可选的,该主节点基于每个VM的剩余资源量以及该剩余资源总量,调整至少一个资源分区所包括的VM的过程可以包括:
按照该预设的资源配比,将该集群的剩余资源划分为N份资源,每份资源由至少一个VM提供,且每份资源对应一个资源分区,该N为该集群包括的资源分区的个数;
将用于提供每份资源的至少一个VM划分至对应的资源分区。
进一步的,该VM信息还可以包括:VM的类型信息;则确定该集群的剩余资源总量的过程可以包括:
根据每个VM的类型信息,将该集群包括的多个VM划分为至少两组资源组,每组资源组包括的至少一个VM的类型一致;
分别确定每组资源组包括的至少一个VM的剩余资源总量;
相应的,按照该预设的资源配比,将该集群的剩余资源划分为N份资源的过程可以包括:
按照该预设的资源配比,将每组资源组的剩余资源划分为N份子资源,每份子资源由至少一个VM提供,且每份子资源对应一个资源分区;
将对应于同一个资源分区的至少两份子资源确定为一份资源。
基于该各个VM的类型对集群资源进行调整,可以保证集群中不同类型的资源的均衡分配,进一步提高了集群中资源分配的均衡性。
可选的,在调整至少一个资源分区所包括的VM之前,该方法还可以包括:
确定每个VM所部署的物理位置;
相应的,基于每个VM的剩余资源量以及该剩余资源总量,调整至少一个资源分区所包括的VM的过程可以包括:
基于每个VM的剩余资源量、该剩余资源总量以及每个VM所部署的物理位置,调整至少一个资源分区所包括的VM;
其中,对于任意两个剩余资源量相等,且调整至不同资源分区的第一VM和第二VM,该第一VM与其所属的第一资源分区中各个VM之间的平均物理距离,小于该第二VM与该第一资源分区中各个VM之间的平均物理距离。
本申请提供的方法可以尽量将物理位置较近的VM划分在同一个资源分区,以降低同一资源分区中各个VM之间的通信时延,提高通信的效率。
可选的,根据该集群中每个VM的资源信息,确定每个VM的剩余资源量,并确定该集群的剩余资源总量得过程可以包括:
根据该集群中每个VM的资源信息,确定每个VM的剩余资源量;
基于每个VM的剩余资源量,确定至少一个目标VM,每个目标VM的剩余资源量大于预设阈值;
将该至少一个目标VM的剩余资源量之和确定为该集群的剩余资源总量;
相应的,基于每个VM的剩余资源量以及该剩余资源总量,调整至少一个资源分区所包括的VM的过程可以包括:
基于每个目标VM的剩余资源量以及该剩余资源总量,调整至少一个资源分区所包括 的目标VM。
本申请提供的方法,可以仅对至少一个目标VM所属的资源分区进行调整,而对于剩余资源量小于预设阈值的VM,可以无需调整其所属的分区,由此可以尽量减小资源分区的变化程度,提高资源分区的调整效率。
可选的,该VM信息可以包括:资源信息;在调整至少一个资源分区所包括的VM之前,该方法还可以包括:
获取该集群的分区信息;根据该集群中每个VM的资源信息,以及该分区信息,检测该集群是否满足分区调整条件;
相应的,根据获取到的该VM信息,调整该集群的分区信息的过程可以包括:
当检测到该集群满足该分区调整条件时,根据获取到的该VM信息,调整每个资源分区所包括的VM。
其中,检测该集群是否满足分区调整条件的过程可以包括:
根据该集群中每个VM的资源信息,以及该分区信息,确定每个资源分区的资源使用率,该资源使用率为资源分区已使用的资源量与占用的资源总量的比值;
当检测到资源使用率大于使用率阈值的资源分区的个数大于个数阈值时,确定该集群满足分区调整条件;
当检测到资源使用率大于使用率阈值的资源分区的个数不大于个数阈值时,确定该集群不满足分区调整条件。
在资源使用率大于使用率阈值的资源分区的个数大于个数阈值时对集群的资源进行重新调整,可以保证集群资源调整的及时性,有效避免资源利用率较高的资源分区所对应的调度器出现调度失败的问题。
可选的,该资源信息可以包括:处理器资源信息、内存资源信息和存储资源信息中的至少一种信息;该资源使用率大于使用率阈值可以是指:
各个信息对应的资源的使用率的平均值大于该使用率阈值;或者,该至少一种信息中,对应的资源的使用率大于该使用率阈值的信息的个数大于数量阈值。
可选的,获取集群中每个VM的VM信息的过程可以包括:
按照预设的调整周期,周期性的获取该集群中每个VM的VM信息;
或者,在检测到云平台中设置的调度器的数量发生变化时,获取该集群中每个VM的VM信息。
本申请提供的方法,主节点可以按照预设的调整周期,周期性的对集群资源进行调整,或者可以在调度器数量变化时,及时对集群的资源分区进行调整,该资源调整方法的灵活性较高。
另一方面,提供了一种集群的资源调整装置,该集群包括多个资源分区,每个资源分区包括至少一个VM,且每个资源分区对应一个调度器,该装置可以包括:至少一个模块,该至少一个模块用于实现上述方面所提供的集群的资源调整方法。
又一方面,提供了一种云平台,该云平台包括:集群、多个调度器以及如上述方面所提供的集群的资源调整装置。
再一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行如上述方面所提供的集群 的资源调整方法。
再一方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,可以使得计算机执行上述方面所提供的集群的资源调整方法。
综上所述,本申请提供了一种集群的资源调整方法、装置及云平台,对于包括多个资源分区的集群,本申请供的方法可以获取该集群中每个VM的VM信息,根据获取到的VM信息,调整至少一个资源分区所包括的VM,并可以根据调整结果更新集群的分区信息,使得每个调度器可以根据调整后的分区信息在对应的资源分区内执行调度任务。由于本申请提供的方法中,各个调度器可以在对应的资源分区内独立执行调度任务,因此可以有效避免调度冲突而导致的调度失败的问题;并且由于可以对集群的资源进行动态调整,因此可以保证集群资源在各个资源分区的均衡分配,有效均衡了各个资源分区的资源使用率,提高了集群资源的利用率。
图1A是本发明实施例中提供的一种集群的资源调整方法所涉及的云平台的架构图;
图1B是本发明实施例中提供的一种集群的资源划分情况的示意图;
图1C是本发明实施例中提供的另一种集群的资源调整方法所涉及的云平台的架构图;
图2是本发明实施例中提供的一种集群的资源调整方法的流程图;
图3是本发明实施例中提供的一种检测集群是否满足分区调整条件的方法流程图;
图4是本发明实施例中提供的一种调整至少一个资源分区所包括的VM的方法流程图;
图5是本发明实施例中提供的另一种集群的资源划分情况的示意图;
图6是本发明实施例中提供的又一种集群的资源划分情况的示意图;
图7是本发明实施例中提供的另一种集群的资源调整方法的流程图;
图8是本发明实施例中提供的又一种集群的资源调整方法的流程图;
图9是本发明实施例中提供的再一种集群的资源调整方法的流程图;
图10是本发明实施例提供的一种集群的资源调整装置的结构示意图;
图11是本发明实施例提供的一种调整模块的结构示意图;
图12是本发明实施例提供的另一种集群的资源调整装置的结构示意图;
图13是本发明实施例提供的再一种集群的资源调整装置的结构示意图。
相关技术中,为了提高调度效率,还可以根据计算框架的不同,将集群划分为多个资源分区,每个资源分区包括用于支持一种计算框架的多个VM。并且,可以为每个资源分区对应设置一个调度器,每个调度器可以在其对应的资源分区内执行任务调度,也即是,每个调度器在接收到用户提交的应用程序后,可以在其对应的资源分区所包括的多个VM中,选择合适的VM部署该应用程序,从而让应用程序的安装包或者镜像文件启动和运行在该虚拟机上。该多个调度器并行工作,能够有效提高调度的效率。
但是,随着云平台运行时间的增长,可能会出现集群中某些资源分区的资源紧张, 某些资源分区的资源空闲,造成集群中各个资源分区资源利用率不均衡的问题。
请参见图1A,其示出了本发明实施例中提供的集群的资源调整方法所涉及的云平台的架构图。该集群的资源调整方法可以应用于云平台中集群管理系统的主节点(也称Master节点)00中。参考图1A,该云平台还包括由多个VM组成的集群、多个调度器以及数据库10,例如图1A示出了S0、S1和S2共三个调度器。该集群所包括的多个VM可以划分为多个资源分区,每个资源分区包括至少一个VM。该多个调度器中的每个调度器可以对应于一个资源分区,每个调度器在接收到用户提交的应用程序后,可以在其对应的资源分区所包括的至少一个VM中选择合适的VM部署该应用程序,由此可以避免多个调度器并行调度时,可能出现的调度冲突的问题。例如,参考图1B,该集群可以包括S00、S10和S20共三个资源分区,每个资源分区包括多个VM。其中资源分区S00与调度器S0对应,资源分区S10与调度器S1对应,资源分区S20与调度器S2对应,当调度器S0接收到用户提交的应用程序后,可以在其对应的资源分区S00所包括的至少一个VM中选择合适的VM部署该应用程序。该数据库10可以用于存储集群中各个资源分区的分区信息,该分区信息用于指示每个资源分区所包括的VM;该数据库10还可以存储各个VM的VM信息(例如VM的类型信息和位置信息等),以供该管理模块01和策略模块03读取。
参考图1A,该主节点00与每个调度器以及每个VM均建立有通信连接,该主节点00能够接收每个VM发送的VM信息,并可以基于接收到的VM信息,对至少一个资源分区所包括的VM进行调整,使得每个调度器可以依据调整后的结果,实现应用程序的调度,由此可以实现集群资源的动态调整,提高资源的利用率。
如图1A所示,该主节点00可以包括管理模块01、收集模块02、策略模块03以及与该多个调度器对应的多个缓存,每个缓存用于存储一个调度器所对应的资源分区的分区信息,例如缓存0可以存储调度器S0的分区信息。收集模块02可以用于获取集群中每个VM的VM信息(例如VM的标识和资源信息等),并将获取到的VM信息发送至策略模块03;策略模块03可以根据各个VM的VM信息,对至少一个资源分区所包括的VM进行调整,并根据调整结果更新数据库中存储的分区信息,并将更新后的分区信息发送至管理模块01;该管理模块01可以基于该分区信息,更新每个缓存中所存储的分区信息。该每个缓存中存储的分区信息除了可以包括资源分区所包括的VM的标识,还可以包括该资源分区中每个VM的资源信息,每个调度器可以基于其对应的缓存中存储的分区信息进行应用程序的调度。
需要说明的是,在本发明实施例中,云平台中集群所包括的多个VM可以划分为两组,其中一组所包括的VM均为管理面VM,另一组所包括的VM均为数据面VM。该管理面VM用于部署集群管理系统中的各个组件,例如主节点00、各个调度器以及数据库10等;该数据面VM用于部署用户提交的应用程序,因此本发明实施例提供的方法所调整的集群的资源是指该数据面VM所占用的资源。
还需要说明的是,参考图1C,在本发明实施例中,该云平台可以支持多个不同的计算框架,例如,图1C示出了计算框架0、计算框架1和计算框架2共三个计算框架。云平台中的每个调度器可以隶属于一个计算框架,并可以对其所属的计算框架内的应用程序(即采用该计算框架开发的应用程序)进行调度。例如,调度器S0对应于计算框架0, 该调度器S0可以对该计算框架0内的应用程序进行调度。示例的,该云平台中可以设置有Mesos框架(一种
开源分布式资源管理框架),该Mesos框架的上层可以对接多个独立开发的计算框架,例如Hadoop、MPI和Kubernetes等,该Mesos框架可以通过一个通用资源共享层,使得该多个计算框架能够共享一个集群中的资源。
参考图1C还可以看出,每个VM中可以包括多个执行器(Executor),每个VM可以通过该执行器实现任务(即应用程序)的部署。
图2是本发明实施例提供的一种集群的资源调整方法的流程图,该方法可以应用于图1A或图1C所示的主节点00中。在该图1A或图1C所示的云平台中,集群可以包括多个资源分区,每个资源分区包括至少一个虚拟机VM,且每个资源分区对应一个调度器。参考图2,该集群的资源调整方法可以包括:
步骤101、获取集群中每个VM的VM信息。
在本发明实施例中,该主节点00可以按需或者周期性地获取集群中每个VM的VM信息,例如,该主节点00可以通过收集模块02每隔30分钟获取一次集群中每个VM的VM信息,并可以基于该获取到的VM信息,更新数据库10中存储的每个VM的VM信息。每个VM的VM信息至少可以包括VM的标识和VM的资源信息,该VM信息还可以包括VM的状态信息、类型信息、位置信息以及所属分区的信息中的至少一种。
其中,VM的标识可以为能够唯一标识该VM的字符串,且该字符串可以由云平台随机生成;资源信息可以用于指示VM当前已使用的资源量以及剩余资源量,例如该资源信息可以包括VM的资源总量,以及已使用的资源量,该资源可以是指CPU资源、内存资源和存储资源等;该状态信息可以用于指示VM当前的工作状态,该工作状态可以为正常状态或宕机状态;该类型信息可以用于指示VM的异构类型(也可以称为架构类型),其中,不同类型的VM可以是指采用不同体系架构的处理器或者内存的VM;该位置信息可以用于指示该VM所部署的物理位置,例如该位置信息可以包括VM所部署的机架、机房、数据中心(Data center,DC)、可用区(Available Zone,AZ)以及地域(Region)中的至少一种;VM所属分区的信息则可以用于指示VM当前所属的资源分区。
步骤102、获取集群的分区信息。
主节点00可以从数据库10中获取该分区信息,例如,该主节点00中的策略模块03可以在接收到收集模块02发送的各个VM的VM信息后,从数据库10中获取分区信息。该分区信息用于指示资源分区所包括的VM,例如该分区信息中可以记录有每个资源分区的标识,以及每个资源分区所包括的VM的标识。
示例的,假设如图1B所示,该云平台中设置有S0、S1和S3共三个调度器,其中调度器S0对应的资源分区为S00,调度器S1对应的资源分区为S10,调度器S2对应的资源分区为S20。从图1B可以看出,资源分区S20所包括的VM的个数较多,资源分区S00所包括的VM的个数较少。相应的,该主节点00获取到的分区信息可以如表1所示。从表1可以看出,资源分区S00包括10个VM,该10个VM的标识依次为VM1至VM10;资源分区S10包括12个VM,该12个VM的标识依次为VM11至VM22;资源分区S20包括26个VM,该26个VM的标识依次为VM23至VM48。
表1
步骤103、根据集群中每个VM的资源信息,以及该分区信息,检测该集群是否满足分区调整条件。
当主节点检测到该集群满足该分区调整条件时,可以进行资源分区的调整,即执行步骤104;当检测到集群不满足该分区调整条件时,可以继续执行步骤101,即继续获取集群中每个VM的VM信息。
在本发明实施例中,如图3所示,该主节点检测集群是否满足分区调整条件的过程可以包括:
步骤1031、根据集群中每个VM的资源信息,以及的分区信息,确定每个资源分区的资源使用率。
每个资源分区的资源使用率可以是指该资源分区已使用的资源量与该资源分区所占用的资源总量的比值。假设该集群包括N个资源分区(N为大于1的整数),其中第n个资源分区包括S
n个VM,则该第n个资源分区的使用率r
n可以满足:
其中,U
i为第i个VM当前已使用的资源量,T
i为该第i个VM的资源总量,n为不大于N的正整数,i为不大于S
n的正整数。
步骤1032、当检测到资源使用率大于使用率阈值的资源分区的个数大于个数阈值时,确定该集群满足分区调整条件。
在本发明实施例中,该使用率阈值和个数阈值可以由云平台的运维人员手动设置;或者该使用率阈值也可以由主节点根据历史数据统计得到,例如,主节点可以对各个虚拟机在不同资源使用率下的性能进行分析,并可以将虚拟机性能下降较快时的资源利用率确定为该使用率阈值;该个数阈值也可以由主节点根据当前资源分区的个数确定,例如,该个数阈值可以为当前资源分区的个数的10%或者30%等。并且,在根据当前资源分区的个数计算该个数阈值时,应当保证计算得到的个数阈值为整数。
示例的,假设该使用率阈值为80%,该个数阈值为1,则当主节点00检测到该S00、S10和S30三个资源分区中,任一资源分区的资源使用率大于80%时,即可确定集群满足分区调整条件。或者,若当前集群中资源分区的个数为10,该个数阈值为当前资源分区的个数的30%,即个数阈值为3;相应的,主节点00可以在检测到超过3个资源分区的资源使用率大于80%时,确定该集群满足分区调整条件。
步骤1033、当检测到资源使用率大于使用率阈值的资源分区的个数不大于个数阈值时,确定该集群不满足分区调整条件。
示例的,当主节点00检测到每个资源分区的资源使用率均不大于80%时,可以确定 集群不满足分区调整条件。
需要说明的是,由于每个VM的资源可以包括CPU资源、内存资源和存储资源中的至少一种,因此每个VM的资源信息也可以包括:CPU资源信息、内存资源信息和存储资源信息中的至少一种信息。相应的,在上述步骤1031中,主节点在计算资源使用率时,可以分别计算每一种信息对应的资源的使用率。例如可以分别计算每个资源分区的CPU资源使用率、内存资源使用率以及存储资源使用率。
进一步的,上述步骤1032和步骤1033中所述的资源使用率大于使用率阈值可以是指:各个信息对应的资源的使用率的平均值大于该使用率阈值;或者,该至少一种信息中,对应的资源的使用率大于该使用率阈值的信息的个数大于数量阈值。其中,该数量阈值可以为预设的固定值,也可以由主节点根据资源信息包括的信息的个数确定,例如,该数量阈值可以为资源信息包括的信息的个数的三分之一,或者三分之二,且该数量阈值应当为整数。
此外,每种资源也可以分别对应于一个使用率阈值,且各种资源对应的使用率阈值可以不同;相应的,在上述步骤1032和步骤1033中,可以将每种资源的资源使用率与其对应的使用率阈值进行对比。
示例的,假设使用率阈值为80%,且资源使用率大于使用率阈值是指:资源信息包括的至少一种信息中,任一种信息对应的资源的使用率大于该使用率阈值(即该数量阈值为1)。若每个VM的资源信息包括CPU资源信息、内存资源信息和存储资源信息,且主节点计算得到的资源分区S00的CPU资源使用率为85%,内存资源使用率为75%,存储资源使用率为50%,则由于其中CPU资源使用率大于80%,则主节点00可以确定该资源分区S00的资源使用率大于使用率阈值。
或者,假设CPU资源对应的使用率阈值为80%,内存资源对应的使用率阈值为85%,存储资源对应的使用率阈值为90%,且资源使用率大于使用率阈值是指:每种信息对应的资源的使用率均大于该信息对应的使用率阈值(即数量阈值为3)。则当主节点计算得到资源分区S00的CPU资源使用率为85%,内存资源使用率为88%,存储资源使用率为92%,则由于每种信息对应的资源的使用率均大于其对应的使用率阈值,则主节点00可以确定该资源分区S00的资源使用率大于使用率阈值。
还需要说明的是,在本发明实施例中,主节点00在检测集群是否满足分区调整条件时,除了可以检测各个资源分区的资源使用率是否大于使用率阈值,还可以通过检测各个资源分区的资源使用率的均衡程度来判断该集群是否满足分区调整条件。例如,主节点可以计算各个资源分区的资源使用率的方差,当该方差大于预设方差阈值时,可以确定各个资源分区的资源使用率不均衡,进而可以确定该集群满足分区调整条件;当方差不大于该预设方差阈值时,可以确定各个资源分区的资源使用率较为均衡,无需对集群的资源分区进行调整,即可以确定该集群不满足分区调整条件。
在资源使用率大于使用率阈值的资源分区的个数大于个数阈值时对集群的资源进行重新调整,可以保证集群资源调整的及时性,进而可以有效避免资源利用率较高的资源分区所对应的调度器出现调度失败的问题,改善调度器的调度效果。
步骤104、根据集群中每个VM的资源信息,确定每个VM的剩余资源量,并确定集群的剩余资源总量。
主节点确定集群满足分区调整条件后,即可开始对集群的资源重新进行调整,以均衡各个资源分区的资源使用率,进而可以提高集群资源的利用率。在进行资源调整前,该主节点可以先确定集群当前的剩余资源总量。
由于每个VM的资源信息可以包括该VM的资源总量,以及已使用的资源量,因此主节点00可以基于该资源总量以及已使用的资源量计算得到每个VM的剩余资源量,进而可以将各个VM的剩余资源量进行累加,以确定该集群的剩余资源总量。
或者,每个VM向该主节点00上报的资源信息即可以为该VM的剩余资源量,主节点00可以直接基于各个VM上报的资源信息计算集群的剩余资源总量。
又或者,每个VM向该主节点00上报的资源信息可以仅为该VM当前已使用的资源量,主节点00可以从数据库10中获取每个VM的资源总量,进而再计算出每个VM的剩余资源量,以及集群的剩余资源总量。
需要说明的是,由于每个VM的资源可以包括CPU资源、内存资源和存储资源中的至少一种资源,因此主节点在计算集群的剩余资源总量时,可以分别计算每种资源的剩余资源总量。例如,可以主节点可以分别计算集群中所有VM的CPU资源的剩余资源总量、内存资源的剩余资源总量以及存储资源的剩余资源总量。
示例的,若如图1B所示,该集群中包括48个VM,则该主节点可以分别计算该48个VM的CPU资源的剩余资源总量、内存资源的剩余资源总量以及存储资源的剩余资源总量。
步骤105、确定每个VM所部署的物理位置。
在本发明实施例中,主节点接收到的每个VM的VM信息中可以包括该VM的位置信息,因此主节点可以基于获取到的VM信息确定每个VM所部署的物理位置;或者,主节点00也可以直接从数据库中获取每个VM的位置信息,进而确定每个VM所部署的物理位置。
步骤106、基于每个VM的剩余资源量、集群的剩余资源总量以及每个VM所部署的物理位置,调整至少一个资源分区所包括的VM。
进一步的,主节点可以基于资源均衡分配的原则,调整该多个资源分区中,至少一个资源分区所包括的VM,以使得各个资源分区占用的剩余资源量满足预设的资源配比,以保证集群资源的均衡分配。并且在该调整的过程中,主节点还可以参考每个VM所部署的物理位置进行调整,以使得对于任意两个剩余资源量相等,且调整至不同资源分区的第一VM和第二VM,第一VM与其所属的第一资源分区中各个VM之间的平均物理距离,小于第二VM与该第一资源分区中各个VM之间的平均物理距离。也即是,可以尽量将物理位置较近的VM划分在同一个资源分区,以降低同一资源分区中各个VM之间的通信时延,进而可以降低应用程序或应用组件的通信时延。
其中,该预设的资源配比可以为等比,即该主节点00可以通过调整至少一个资源分区所包括的VM,使得各个资源分区所占用的剩余资源量相等;或者,该预设的资源配比可以是根据各个调度器的历史调度量所确定的,例如,主节点可以每隔预设时间段统计一次各个调度器在该预设时间段内的历史调度量,并可以基于该统计得到的历史调度量确定各个调度器所对应的资源分区的资源配比,该资源配比可以与各个调度器的历史调度量之比正相关,即对于历史调度量较高的调度器所对应的资源分区,其所分配到的资源量在剩余资源总量中所占的比例可以较高,以保证集群资源分配的合理性,提高资源 利用率。
示例的,假设该云平台中设置有S0、S1和S3共三个调度器,且主节点00每隔一周统计一次各个调度器的历史调度量,若主节点最近一次统计得到的该三个调度器的历史调度量之比为1:2:3,则主节点00可以确定该三个调度器所对应的三个资源分区的资源配比可以为1:2:3。
在本发明实施例一种可选的实现方式中,主节点可以先根据集群当前的剩余资源总量以及该预设的资源配比,确定每个资源分区所应占用的剩余资源量;进一步的,主节点可以基于每个资源分区当前实际占用的剩余资源量,确定每个资源分区的资源量差值,进而可以基于该资源量差值、每个VM的剩余资源量以及各个VM所部署的物理位置,调整各个资源分区所包括的VM,使得各个资源分区的资源量之比满足该预设的资源配比(也即是,使得每个资源分区的资源量差值均为0)。当然,对于资源量差值为0的资源分区,主节点可以无需调整该资源分区所包括的VM。
在本发明实施例另一种可选的实现方式中,参考图4,该基于每个VM的剩余资源量、集群的剩余资源总量以及每个VM所部署的物理位置,调整至少一个资源分区所包括的VM的方法可以包括:
步骤1061、按照预设的资源配比,将该集群的剩余资源划分为N份资源。
其中,N为集群所包括的资源分区的个数,每份资源对应一个资源分区,即每份资源可以分配至对应的一个资源分区。在本发明实施例中,主节点可以先根据集群当前的剩余资源总量以及该预设的资源配比,确定每份资源的资源量;进一步的,对于任一份资源,主节点可以根据集群中每个VM的剩余资源量,选取剩余资源量之和与该任一份资源的资源量相等(或者两者之差小于预设差值阈值)的至少一组VM,每组VM可以包括至少一个VM。最后,主节点可以将该至少一组VM中,各个VM之间的平均物理距离最短的一组VM确定为用于提供该任一份资源的VM。
示例的,该主节点00可以将集群中当前的剩余资源按照1:2:3的比例划分为三份资源,若对应于资源分区S00的第一份资源的资源量为P0,对应于资源分区S10的第二份资源的资源量为P1,对应于资源分区S30的第三份资源的资源量为P2,则该三份资源的资源量之比满足P0:P1:P2=1:2:3。若集群所包括的48个VM中,存在6个第一VM和40个第二VM,其中每个第一VM的剩余资源量均为P0/6,每个第二VM的剩余资源量均为P0/8,则主节点可以选取该6个第一VM用于提供第一份资源,并选取16个第二VM用于提供第二份资源,选取24个第二VM用于提供该第三份资源。当然,也可以选取8个第二VM用于提供第一份资源,选取6个第一VM,以及8个第二VM用于提供第二份资源,选取24个第二VM用于提供第三份资源。
此外,在该选取的过程中,主节点可以尽量使物理位置较近的VM提供同一份资源。例如,若该40个第二VM中,16个第二VM部署在同一机房,剩余24个第二VM部署在另一个机房,则主节点可以选取该部署在同一机房的16个第二VM用于提供该第二份资源,并选取该部署在另一个机房的24个第二VM用于提供该第三份资源。
步骤1062、将用于提供每份资源的至少一个VM划分至对应的资源分区。
进一步的,主节点00即可根据集群中剩余资源的划分结果,将用于提供每份资源的至少一个VM划分至对应的资源分区,从而调整该多个资源分区中至少一个资源分区所包 括的VM。
示例的,主节点00可以将用于提供第一份资源的6个第一VM划分至资源分区S00,将用于提供第二份资源的16个第二VM划分至资源分区S10,并将用于提供该第三份资源的24个第二VM划分至资源分区S20。
需要说明的是,在本发明实施例中,由于主节点所获取到的每个VM的VM信息中还可以包括VM的状态信息,则在进行资源调整之前,主节点可以先根据获取到的各个VM的状态信息,检测每个VM是否处于正常状态,并可以仅对该处于正常状态的VM所属的资源分区进行调整,而对于该处于宕机状态的VM,则可以不对其进行调整。也即是,上述步骤103至步骤106中所指的VM可以均为处于正常状态的VM。
还需要说明的是,由于在上述步骤104中,主节点可以计算集群资源所包括的至少一种资源中,每种资源的剩余资源总量,因此在上述步骤106中,在调整集群资源时,作为一种可实现方式,主节点可以以该至少一种资源中的指定资源的剩余资源总量为基准进行调整。该指定资源可以是在该至少一种资源中任意选取的一种资源,例如可以为CPU资源。或者,主节点也可以分别计算该至少一种资源中,每种资源在各个资源分区分配的均衡程度,并将均衡程度最低的一种资源确定为该指定资源;例如,主节点可以分别计算每种资源在各个资源分区的剩余资源量的方差,并可以将方差最大的一种资源确定为该指定资源。
作为另一种可实现方式,主节点还可以先计算该至少一种资源的剩余资源总量的平均值,以及每个VM中至少一种资源的剩余资源量的平均值,并基于该剩余资源总量的平均值进行集群资源的调整。
步骤107、根据调整结果更新集群的分区信息
进一步的,主节点00即可根据分区调整后的结果更新集群的分区信息,以便各个调度器可以根据更新后的分区信息在对应的资源分区内执行调度任务。如图1A和图1C所示,策略模块03在完成集群资源的重新调整后,可以更新数据库10中存储的分区信息,并可以将该更新后的分区信息发送至管理模块01。该管理模块01可以在接收到该更新后的分区信息后,从数据库10中获取每个VM的VM信息,进而可以根据该更新后的分区信息以及每个VM的VM信息,更新每个缓存中存储的分区信息。该每个缓存中所存储的分区信息可以包括该缓存对应的资源分区所包括的VM的标识,还可以包括该资源分区所包括的每个VM的VM信息,例如可以包括VM的资源信息和状态信息等。各个调度器可以根据缓存中更新后的分区信息,在对应的资源分区内执行调度任务。
示例的,假设如图5所示,该集群资源重新调整后,调度器S0对应的资源分区S00包括16个VM,调度器S10对应的资源分区S10包括17个VM,调度器S20对应的资源分区S20包括15个VM,则每个调度器可以在其对应的资源分区内执行调度任务。
由于本发明实施例提供的方法,各个调度器可以在对应的资源分区内独立执行调度任务,因此可以避免调度冲突导致的调度失败的问题;又由于主节点可以基于获取到的VM信息,对集群的资源进行动态调整,因此可以保证集群资源的均衡分配,有效提高资源利用率,进而改善调度器的调度效果。
可选的,作为一种可选的实现方式,主节点00获取到的每个VM的VM信息还可以包 括:VM的类型信息。则上述步骤104中,主节点确定集群的剩余资源总量的过程可以包括:
步骤1041a、根据每个VM的类型信息,将集群包括的多个VM划分为至少两组资源组。
其中,每组资源组包括的至少一个VM的类型一致。假设该集群包括K(K为大于1的整数)个类型的VM,则主节点可以将该集群中的多个VM中,相同类型的VM划分为一组资源组,由此可以得到K组资源组。
步骤1042a、分别确定每组资源组包括的至少一个VM的剩余资源总量。
进一步的,在确定集群的剩余资源总量时,主节点00可以分别计算该K组资源组中,每组资源组的剩余资源总量。
相应的,在上述步骤1061中,主节点调整资源的过程可以包括:
步骤1061a、按照该预设的资源配比,将每组资源组的剩余资源划分为N份子资源。
其中每份子资源可以由至少一个VM提供,且每份子资源对应一个资源分区。
步骤1061b、将对应于同一个资源分区的至少两份子资源确定为一份资源。
若该集群中的多个VM划分为了K组资源组,则将每组资源组的剩余资源划分为N份子资源后,每个资源分区可以对应分配到K份子资源,该K份子资源即组成了该资源分区所分配到的一份资源,其中第n个资源分区所分配到的一份资源的资源量L
n可以满足:
在本发明实施例中,基于该各个VM的类型对集群资源进行调整,可以保证集群中不同异构类型的资源的均衡分配,进一步提高了集群中资源分配的均衡性。
可选的,作为另一种可选的实现方式,上述步骤104可以包括:
步骤1041b、根据集群中每个VM的资源信息,确定每个VM的剩余资源量。
步骤1042b、基于每个VM的剩余资源量,确定至少一个目标VM。
每个目标VM的剩余资源量大于预设阈值,该预设阈值可以为主节点中预先设定的固定值;或者,也可以为主节点根据每个VM的资源总量确定的,例如该预设阈值可以为VM的资源总量的10%;又或者,该预设阈值还可以由云平台的运维人员人工调整。
示例的,假设该预设阈值为0,则主节点00可以将集群中存在剩余资源的VM确定为目标VM。
步骤1043b、将该至少一个目标VM的剩余资源量之和确定为集群的剩余资源总量。
进一步的,主节点可以计算该至少一个目标VM的剩余资源量之和,并将该至少一个目标VM的剩余资源量之和确定为该集群的剩余资源总量。
相应的,在上述步骤105中,主节点仅需确定每个目标VM的物理位置;在上述步骤106中,主节点调整资源的过程可以包括:
基于每个目标VM的剩余资源量、该集群的剩余资源总量以及每个目标VM的物理位置,调整至少一个资源分区所包括的目标VM。
此外,上述步骤1041b至步骤1043b所示的方法也可以在步骤1041a之前执行。相 应的,在步骤1041a中,主节点可以根据每个目标VM的类型信息,将该集群包括的多个目标VM划分为至少两组资源组;在步骤1042a中,主节点则可以确定每组资源组包括的至少一个目标VM的剩余资源总量。
在本发明实施例中,主节点可以仅对该至少一个目标VM所属的资源分区进行调整,而对于剩余资源量小于预设阈值的VM,可以无需调整其所属的分区,由此可以尽量减小资源分区的变化程度,提高资源分区的调整效率。
需要说明的是,在本发明实施例中,主节点除了可以基于各个资源分区的资源使用率触发集群的资源的调整,还可以通过以下方式触发集群的资源的调整:
一种可选的触发方式:主节点可以基于预设的调整周期,周期性的对该集群的资源进行调整。相应的,在上述步骤101中,主节点可以按照预设的调整周期,周期性的获取该集群中每个VM的VM信息。之后,主节点可以再依次执行步骤102至步骤107所示的方法,以实现对集群资源的调整。
其中,该调整周期可以为预设的固定值,也可以由云平台的运维人员进行设置,例如该调整周期可以为12个小时,也可以为一周。假设该调整周期为一周,则主节点可以每隔一周,通过上述步骤101至步骤107所示的方法,对集群的资源进行一次调整。该主节点00在图5所示的资源划分情况的基础上,对集群的资源进行一次调整后,集群的资源划分情况可以如图6所示。
另一种可选的触发方式:主节点也可以在检测到云平台中设置的调度器的数量发生变化时,对该集群的资源进行调整。相应的,在上述步骤101之前,主节点可以实时监测云平台中设置的调度器的数量;则在上述步骤101中,主节点可以在检测到云平台中设置的调度器的数量发生变化时,获取该集群中每个VM的VM信息。之后,主节点可以再依次执行步骤102至步骤107所示的方法,以实现对集群资源的调整。
需要说明的是,主节点在检测到调度器的数量增加后,还可以为每个新增的调度器创建对应的缓存;相应的,主节点在检测到调度器的数量减少后,还可以删除该减少的调度器所对应的缓存。
对于上述两种触发方式,上述实施例中的步骤103也可以删除,即主节点在获取到VM信息和分区信息后,可以直接通过步骤104至步骤107所示的方法对集群资源的调整。
当然,主节点也可以同时采用上述多种触发方式对集群资源进行调整,也即是,当主节点检测到云平台满足上述任一触发条件时,即可触发对集群资源的调整。此时,主节点还可以在进入每个新的调整周期时,先检测在上一个调整周期内,是否已经通过其他方式(例如资源利用率或者调度群数量改变)触发了对集群资源的调整。若主节点检测到在上一个调整周期内没有执行过由其他方式所触发的资源调整操作,则可以通过上述步骤101至步骤107(其中步骤103所示的操作可以删除)所示的方法对集群的资源进行调整;若主节点检测到在上一个调整周期内已经执行过至少一次由其他方式所触发的资源调整操作,则主节点可以跳过当前的资源调整操作,并等待下一个调整周期。
进一步的以图1A和图1C所示的架构为例,介绍本发明实施例提供的集群的资源调整方法,参考图7,当主节点根据集群中各个资源分区的资源使用率判断是否触发资源调 整时,该方法可以包括:
步骤201、收集模块获取集群中每个VM的VM信息。
步骤202、收集模块向策略模块发送VM信息。
步骤203、收集模块向数据库发送VM信息。
该收集模块还可以向数据库发送该获取到的VM信息,以便数据库更新其所存储的每个VM的VM信息。
步骤204、策略模块从数据库中获取集群当前的分区信息。
步骤205、策略模块检测集群是否满足分区调整条件。
策略模块检测到集群满足分区调整条件时,可以执行步骤206;否则可以不执行操作,或者也可以向该管理模块发送用于指示不调整资源分区的指令。
步骤206、策略模块根据获取到的该VM信息,调整至少一个资源分区所包括的VM。
步骤207、策略模块更新数据库中存储的分区信息。
步骤208、策略模块向管理模块发送调整后的分区信息。
步骤209、管理模块从数据库中获取每个VM的VM信息。
步骤210、管理模块更新至少一个缓存中存储的分区信息。
其中,上述步骤201至步骤210的实现过程可以参考图2至图4所示实施例中的对应步骤,此处不再赘述。
参考图8,当主节点按照预设的调整周期触发资源调整时,该方法可以包括:
步骤301、策略模块中的定时器计时。
在本发明实施例中,该定时器可以为倒计时定时器,其倒计时时长即为该预设的调整周期,当到达该定时器的定时时刻(即倒计时为0)时,可以执行步骤302。
步骤302、策略模块向收集模块发送调整指令。
步骤303、收集模块根据调整指令,获取集群中每个VM的VM信息。
步骤304、收集模块向策略模块发送VM信息。
步骤305、收集模块向数据库发送VM信息。
数据库可以根据接收到的每个VM的VM信息更新其所存储的每个VM的VM信息。
步骤306、策略模块从数据库中获取集群当前的分区信息。
步骤307、策略模块根据获取到的该VM信息,调整至少一个资源分区所包括的VM。
步骤308、策略模块更新数据库中存储的分区信息。
步骤309、策略模块向管理模块发送调整后的分区信息。
步骤310、管理模块从数据库中获取每个VM的VM信息。
步骤311、管理模块更新至少一个缓存中存储的分区信息。
其中,上述步骤301至步骤311的实现过程可以参考图2至图4所示实施例中的对应步骤,此处不再赘述。
参考图9,当主节点根据调度器的数量变化触发资源调整时,该方法可以包括:
步骤401、管理模块检测云平台中调度器的数量是否改变。
当检测到调度器的数量改变时,可以执行步骤402;否则可以继续对调度器的数量进 行监测,即继续执行步骤401。并且,在调度器的数量增加时,管理模块还可以为每个新增的调度器创建对应的缓存;在调度器的数量减少时,管理模块可以将减少的调度器所对应的缓存删除。
步骤402、管理模块向策略模块发送调整指令。
步骤403、策略模块向收集模块发送调整指令。
步骤404、收集模块根据调整指令,获取集群中每个VM的VM信息。
步骤405、收集模块向策略模块发送VM信息。
步骤406、收集模块向数据库发送VM信息。
数据库可以根据接收到的每个VM的VM信息更新其所存储的每个VM的VM信息。
步骤407、策略模块从数据库中获取集群当前的分区信息。
步骤408、策略模块根据获取到的该VM信息,调整至少一个资源分区所包括的VM。
步骤409、策略模块更新数据库中存储的分区信息。
步骤410、策略模块向管理模块发送调整后的分区信息。
步骤411、管理模块从数据库中获取每个VM的VM信息。
步骤412、管理模块更新至少一个缓存中存储的分区信息。
其中,上述步骤401至步骤412的实现过程可以参考图2至图4所示实施例中的对应步骤,此处不再赘述。
需要说明的是,本发明实施例提供的集群的资源调整方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,步骤102可以根据情况进行删除,即主节点在进行资源调整时,也可以不考虑当前的分区信息,该主节点可以直接根据各个VM的VM信息,调整至少一个资源分区所包括的VM;或者,步骤103也可以根据情况进行删除,即主节点在获取到VM信息和分区信息后可以直接进行集群资源的调整;又或者,步骤105也可以根据情况进行删除,即在上述步骤106中,主节点可以仅基于每个VM的剩余资源量以及集群的剩余资源总量,调整至少一个资源分区包括的VM。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本发明实施例提供了一种集群的资源调整方法,对于包括多个资源分区的集群,本发明实施例提供的方法可以获取该集群中每个VM的VM信息,根据获取到的VM信息,调整至少一个资源分区所包括的VM,并可以根据调整结果更新集群的分区信息,使得每个调度器可以根据调整后的分区信息在对应的资源分区内执行调度任务。由于本发明实施例提供的方法中,各个调度器可以在对应的资源分区内独立执行调度任务,因此可以有效避免调度冲突而导致的调度失败的问题;并且由于可以对集群的资源进行动态调整,因此可以保证集群资源在各个资源分区的均衡分配,有效均衡了各个资源分区的资源使用率,提高了集群资源的利用率。
图10是本发明实施例提供的一种集群的资源调整装置的结构示意图,该装置可以配置于于图1A或图1C所示云平台中的主节点00中,该集群包括多个资源分区,每个资源分区包括至少一个虚拟机VM,且每个资源分区对应一个调度器。参考图10,该装置可以包括:
第一获取模块501,用于实现上述图2所示实施例中步骤101的方法。
调整模块502,用于根据获取到的该VM信息,调整至少一个资源分区所包括的VM。
更新模块503,用于实现上述图2所示实施例中步骤107的方法。
可选的,该VM信息可以包括:资源信息;图11是本发明实施例提供的一种调整模块502的结构示意图,参考图11,该调整模块502可以包括:
第一确定子模块5021,用于实现上述图2所示实施例中步骤104的方法。
调整子模块5022,用于基于每个VM的剩余资源量以及该剩余资源总量,调整至少一个资源分区所包括的VM,使得各个该资源分区占用的剩余资源量满足预设的资源配比。
可选的,该调整子模块5022可以用于实现上述图4所示实施例中步骤1061至步骤1062的方法。
可选的,该VM信息还可以包括:VM的类型信息;
该第一确定子模块5021,用于:
根据每个VM的类型信息,将该集群包括的多个VM划分为至少两组资源组,每组资源组包括的至少一个VM的类型一致;
分别确定每组资源组包括的至少一个VM的剩余资源总量;
相应的,该调整子模块5022可以用于:
按照该预设的资源配比,将每组资源组的剩余资源划分为N份子资源,每份子资源由至少一个VM提供,且每份子资源对应一个资源分区;
将对应于同一个资源分区的至少两份子资源确定为一份资源。
可选的,如图11所示,该调整模块502,还可以包括:
第二确定子模块5023,用于实现上述图2所示实施例中步骤105的方法。
相应的,该调整子模块5022可以用于实现上述图2所示实施例中步骤106的方法。
可选的,该第一确定子模块5021可以用于:
根据该集群中每个VM的资源信息,确定每个VM的剩余资源量;
基于每个VM的剩余资源量,确定至少一个目标VM,每个目标VM的剩余资源量大于预设阈值;
将该至少一个目标VM的剩余资源量之和确定为该集群的剩余资源总量。
相应的,该调整子模块5022可以用于:
基于每个目标VM的剩余资源量以及该剩余资源总量,调整至少一个资源分区所包括的目标VM。
可选的,该VM信息包括:资源信息;参考图12,该装置还可以包括:
第二获取模块504,用于实现上述图2所示实施例中步骤102的方法。
检测模块505,用于实现上述图2所示实施例中步骤103的方法。
相应的,该调整模块502可以用于:当检测到该集群满足该分区调整条件时,根据获取到的该VM信息,调整每个资源分区所包括的VM。
可选的,该检测模块505可以用于实现上述图3所示实施例中步骤1031至步骤1033的方法。
可选的,该资源信息包括:处理器资源信息、内存资源信息和存储资源信息中的至少一种信息;该资源使用率大于使用率阈值是指:各个信息对应的资源的使用率的平均 值大于该使用率阈值;或者,该至少一种信息中,对应的资源的使用率大于该使用率阈值的信息的个数大于数量阈值。
可选的,该第一获取模块501可以用于:
按照预设的调整周期,周期性的获取该集群中每个VM的VM信息;
或者,在检测到云平台中设置的调度器的数量发生变化时,获取该集群中每个VM的VM信息。
需要说明的是,上述装置实施例中的第一获取模块501的功能可以与图1A或图1C所示主节点00中收集模块02的功能相同,调整模块502、更新模块503、第二获取模块504和检测模块505的功能可以与图1A或图1C所示主节点00中策略模块03的功能相同。
综上所述,本发明实施例提供了一种集群的资源调整装置,对于包括多个资源分区的集群,本发明实施例提供的装置可以获取该集群中每个VM的VM信息,根据获取到的VM信息,调整至少一个资源分区所包括的VM,并可以根据调整结果更新集群的分区信息,使得每个调度器可以根据调整后的分区信息在对应的资源分区内执行调度任务。由于各个调度器可以在对应的资源分区内独立执行调度任务,因此可以有效避免调度冲突而导致的调度失败的问题;并且由于可以对集群的资源进行动态调整,因此可以保证集群资源在各个资源分区的均衡分配,有效均衡了各个资源分区的资源使用率,进而提高了集群资源的利用率。
关于上述实施例中的装置,其中各个模块执行操作的实现方式已经在有关该方法的实施例中进行了详细描述,故此处不再阐述说明。
请参考图13,其示出了本申请实施例提供的一种集群的资源调整装置600的结构示意图,参见图13,该集群的资源调整装置600可以包括:处理器610、通信接口620和存储器630,通信接口620和存储器630分别与处理器610相连,示例地,如图13所示,通信接口620和存储器630通过总线640与处理器610相连。
其中,处理器610可以为中央处理器(CPU),处理器610包括一个或者一个以上处理核心。处理器610通过运行软件程序,从而执行各种功能应用以及数据处理。
其中,通信接口620可以为多个,该通信接口620用于集群的资源调整装置600与外部设备进行通信,该外部设备例如显示器、第三方设备(例如,存储设备、移动终端等)等。
其中,存储器630可以包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、快闪存储器、光存储器。该存储器630负责信息存储,例如,该存储器630用于存储软件程序。
可选地,该集群的资源调整装置600还可以包括:输入/输出(I/O)接口(图13中未示出)。I/O接口与处理器610、通信接口620以及存储器630连接。I/O接口例如可以为通用串行总线(USB)。
在本申请实施例中,处理器610被配置为执行存储器630中存储的指令,处理器630通过执行指令来实现上述方法实施例提供的集群的资源调整方法。
本发明实施例提供了一种云平台,如图1A和图1C所示,该云平台可以包括:集群、 多个调度器以及如图10、图12或图13所示的集群的资源调整装置,该集群的资源调整装置可以部署于主节点00中。
本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行上述方法实施例所提供的集群的资源调整方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例所提供的集群的资源调整方法。
Claims (22)
- 一种集群的资源调整方法,其特征在于,所述集群包括多个资源分区,每个所述资源分区包括至少一个虚拟机VM,且每个所述资源分区对应一个调度器,所述方法包括:获取所述集群中每个VM的VM信息;根据获取到的所述VM信息,调整至少一个资源分区所包括的VM;根据调整结果更新所述集群的分区信息,所述分区信息用于指示每个所述资源分区包括的VM,每个所述调度器用于根据所述分区信息在对应的资源分区内执行调度任务。
- 根据权利要求1所述的方法,其特征在于,所述VM信息包括:资源信息;所述根据获取到的所述VM信息,调整至少一个资源分区所包括的VM,包括:根据所述集群中每个VM的资源信息,确定每个所述VM的剩余资源量,并确定所述集群的剩余资源总量;基于每个所述VM的剩余资源量以及所述剩余资源总量,调整至少一个资源分区所包括的VM,使得各个所述资源分区占用的剩余资源量满足预设的资源配比。
- 根据权利要求2所述的方法,其特征在于,所述基于每个所述VM的剩余资源量以及所述剩余资源总量,调整至少一个资源分区所包括的VM,包括:按照所述预设的资源配比,将所述集群的剩余资源划分为N份资源,每份资源由至少一个VM提供,且每份资源对应一个资源分区,所述N为所述集群包括的资源分区的个数;将用于提供每份资源的至少一个VM划分至对应的资源分区。
- 根据权利要求3所述的方法,其特征在于,所述VM信息还包括:VM的类型信息;所述确定所述集群的剩余资源总量,包括:根据每个所述VM的类型信息,将所述集群包括的多个VM划分为至少两组资源组,每组资源组包括的至少一个VM的类型一致;分别确定每组资源组包括的至少一个VM的剩余资源总量;所述按照所述预设的资源配比,将所述集群的剩余资源划分为N份资源,包括:按照所述预设的资源配比,将每组资源组的剩余资源划分为N份子资源,每份子资源由至少一个VM提供,且每份子资源对应一个资源分区;将对应于同一个资源分区的至少两份子资源确定为一份资源。
- 根据权利要求2所述的方法,其特征在于,在所述调整至少一个资源分区所包括的VM之前,所述方法还包括:确定每个所述VM所部署的物理位置;所述基于每个所述VM的剩余资源量以及所述剩余资源总量,调整至少一个资源分区所包括的VM,包括:基于每个所述VM的剩余资源量、所述剩余资源总量以及每个所述VM所部署的物理位置,调整至少一个资源分区所包括的VM;其中,对于任意两个剩余资源量相等,且调整至不同资源分区的第一VM和第二VM,所述第一VM与其所属的第一资源分区中各个VM之间的平均物理距离,小于所述第二VM与所述第一资源分区中各个VM之间的平均物理距离。
- 根据权利要求2所述的方法,其特征在于,所述根据所述集群中每个VM的资源信息,确定每个所述VM的剩余资源量,并确定所述集群的剩余资源总量,包括:根据所述集群中每个VM的资源信息,确定每个所述VM的剩余资源量;基于每个所述VM的剩余资源量,确定至少一个目标VM,每个所述目标VM的剩余资源量大于预设阈值;将所述至少一个目标VM的剩余资源量之和确定为所述集群的剩余资源总量;所述基于每个所述VM的剩余资源量以及所述剩余资源总量,调整至少一个资源分区所包括的VM,包括:基于每个所述目标VM的剩余资源量以及所述剩余资源总量,调整至少一个资源分区所包括的目标VM。
- 根据权利要求1至6任一项所述的方法,其特征在于,所述VM信息包括:资源信息;在所述调整至少一个资源分区所包括的VM之前,所述方法还包括:获取所述集群的分区信息;根据所述集群中每个VM的资源信息,以及所述分区信息,检测所述集群是否满足分区调整条件;所述根据获取到的所述VM信息,调整所述集群的分区信息,包括:当检测到所述集群满足所述分区调整条件时,根据获取到的所述VM信息,调整每个所述资源分区所包括的VM。
- 根据权利要求7所述的方法,其特征在于,所述检测所述集群是否满足分区调整条件,包括:根据所述集群中每个VM的资源信息,以及所述分区信息,确定每个所述资源分区的资源使用率,所述资源使用率为资源分区已使用的资源量与占用的资源总量的比值;当检测到资源使用率大于使用率阈值的资源分区的个数大于个数阈值时,确定所述集群满足分区调整条件;当检测到资源使用率大于使用率阈值的资源分区的个数不大于个数阈值时,确定所述集群不满足分区调整条件。
- 根据权利要求8所述的方法,其特征在于,所述资源信息包括:处理器资源信息、内存资源信息和存储资源信息中的至少一种信息;所述资源使用率大于使用率阈值包括:各个信息对应的资源的使用率的平均值大于所述使用率阈值;或者,所述至少一种信息中,对应的资源的使用率大于所述使用率阈值的信息的个数大于数量阈值。
- 根据权利要求1至6任一项所述的方法,其特征在于,所述获取集群中每个VM 的VM信息,包括:按照预设的调整周期,周期性的获取所述集群中每个VM的VM信息;或者,在检测到云平台中设置的调度器的数量发生变化时,获取所述集群中每个VM的VM信息。
- 一种集群的资源调整装置,其特征在于,所述集群包括多个资源分区,每个所述资源分区包括至少一个虚拟机VM,且每个所述资源分区对应一个调度器,所述装置包括:第一获取模块,用于获取所述集群中每个VM的VM信息;调整模块,用于根据获取到的所述VM信息,调整至少一个资源分区所包括的VM;更新模块,用于根据调整结果更新所述集群的分区信息,所述分区信息用于指示每个所述资源分区包括的VM,每个所述调度器用于根据所述分区信息在对应的资源分区内执行调度任务。
- 根据权利要求11所述的装置,其特征在于,所述VM信息包括:资源信息;所述调整模块,包括:第一确定子模块,用于根据所述集群中每个VM的资源信息,确定每个所述VM的剩余资源量,并确定所述集群的剩余资源总量;调整子模块,用于基于每个所述VM的剩余资源量以及所述剩余资源总量,调整至少一个资源分区所包括的VM,使得各个所述资源分区占用的剩余资源量满足预设的资源配比。
- 根据权利要求12所述的装置,其特征在于,所述调整子模块,用于:按照所述预设的资源配比,将所述集群的剩余资源划分为N份资源,每份资源由至少一个VM提供,且每份资源对应一个资源分区,所述N为所述集群包括的资源分区的个数;将用于提供每份资源的至少一个VM划分至对应的资源分区。
- 根据权利要求13所述的装置,其特征在于,所述VM信息还包括:VM的类型信息;所述第一确定子模块,用于:根据每个所述VM的类型信息,将所述集群包括的多个VM划分为至少两组资源组,每组资源组包括的至少一个VM的类型一致;分别确定每组资源组包括的至少一个VM的剩余资源总量;所述调整子模块,用于:按照所述预设的资源配比,将每组资源组的剩余资源划分为N份子资源,每份子资源由至少一个VM提供,且每份子资源对应一个资源分区;将对应于同一个资源分区的至少两份子资源确定为一份资源。
- 根据权利要求12所述的装置,其特征在于,所述调整模块,还包括:第二确定子模块,用于在所述调整子模块调整至少一个资源分区所包括的VM之前,确定每个所述VM所部署的物理位置;所述调整子模块,用于:基于每个所述VM的剩余资源量、所述剩余资源总量以及每个所述VM所部署的物理位置,调整至少一个资源分区所包括的VM;其中,对于任意两个剩余资源量相等,且调整至不同资源分区的第一VM和第二VM,所述第一VM与其所属的第一资源分区中各个VM之间的平均物理距离,小于所述第二VM与所述第一资源分区中各个VM之间的平均物理距离。
- 根据权利要求12所述的装置,其特征在于,所述第一确定子模块,用于:根据所述集群中每个VM的资源信息,确定每个所述VM的剩余资源量;基于每个所述VM的剩余资源量,确定至少一个目标VM,每个所述目标VM的剩余资源量大于预设阈值;将所述至少一个目标VM的剩余资源量之和确定为所述集群的剩余资源总量;所述调整子模块,用于:基于每个所述目标VM的剩余资源量以及所述剩余资源总量,调整至少一个资源分区所包括的目标VM。
- 根据权利要求11至16任一项所述的装置,其特征在于,所述VM信息包括:资源信息;所述装置还包括:第二获取模块,用于在所述调整模块调整至少一个资源分区所包括的VM之前,获取所述集群的分区信息;检测模块,用于根据所述集群中每个VM的资源信息,以及所述分区信息,检测所述集群是否满足分区调整条件;所述调整模块,用于:当检测到所述集群满足所述分区调整条件时,根据获取到的所述VM信息,调整每个所述资源分区所包括的VM。
- 根据权利要求17所述的装置,其特征在于,所述检测模块,用于:根据所述集群中每个VM的资源信息,以及所述分区信息,确定每个所述资源分区的资源使用率,所述资源使用率为资源分区已使用的资源量与占用的资源总量的比值;当检测到资源使用率大于使用率阈值的资源分区的个数大于个数阈值时,确定所述集群满足分区调整条件;当检测到资源使用率大于使用率阈值的资源分区的个数不大于个数阈值时,确定所述集群不满足分区调整条件。
- 根据权利要求18所述的装置,其特征在于,所述资源信息包括:处理器资源信息、内存资源信息和存储资源信息中的至少一种信息;所述资源使用率大于使用率阈值包括:各个信息对应的资源的使用率的平均值大于所述使用率阈值;或者,所述至少一种信息中,对应的资源的使用率大于所述使用率阈值的信息的个数大于数量阈值。
- 根据权利要求11至16任一项所述的装置,其特征在于,所述第一获取模块,用于:按照预设的调整周期,周期性的获取所述集群中每个VM的VM信息;或者,在检测到云平台中设置的调度器的数量发生变化时,获取所述集群中每个VM的VM信息。
- 一种云平台,其特征在于,所述云平台包括:集群、多个调度器以及如权利要求11至20任一所述的集群的资源调整装置。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行权利要求1至10任一所述的集群的资源调整方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810119092.3A CN108427604B (zh) | 2018-02-06 | 2018-02-06 | 集群的资源调整方法、装置及云平台 |
CN201810119092.3 | 2018-02-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019153697A1 true WO2019153697A1 (zh) | 2019-08-15 |
Family
ID=63156694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/100552 WO2019153697A1 (zh) | 2018-02-06 | 2018-08-15 | 集群的资源调整方法、装置及云平台 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108427604B (zh) |
WO (1) | WO2019153697A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888733B (zh) * | 2018-09-11 | 2023-12-26 | 三六零科技集团有限公司 | 集群资源使用情况处理方法、装置及电子设备 |
CN110968416A (zh) * | 2018-09-29 | 2020-04-07 | 中兴通讯股份有限公司 | 资源分配方法、装置、设备以及计算机可读存储介质 |
CN109614236B (zh) * | 2018-12-07 | 2023-04-18 | 深圳前海微众银行股份有限公司 | 集群资源动态调整方法、装置、设备及可读存储介质 |
CN109586970B (zh) * | 2018-12-13 | 2022-07-08 | 新华三大数据技术有限公司 | 资源分配方法、装置及系统 |
CN110209166B (zh) * | 2019-05-22 | 2020-07-24 | 重庆大学 | 多个移动式服务机器人的协同控制方法、装置和存储介质 |
CN110138883B (zh) * | 2019-06-10 | 2021-08-31 | 北京贝斯平云科技有限公司 | 混合云资源分配方法和装置 |
CN110912967A (zh) * | 2019-10-31 | 2020-03-24 | 北京浪潮数据技术有限公司 | 一种服务节点调度方法、装置、设备及存储介质 |
CN112965828B (zh) * | 2021-02-03 | 2024-03-19 | 北京轻松怡康信息技术有限公司 | 多线程数据处理方法、装置、设备和存储介质 |
CN116661979B (zh) * | 2023-08-02 | 2023-11-28 | 之江实验室 | 异构作业调度系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069761A1 (en) * | 2004-09-14 | 2006-03-30 | Dell Products L.P. | System and method for load balancing virtual machines in a computer network |
CN101504620A (zh) * | 2009-03-03 | 2009-08-12 | 华为技术有限公司 | 一种虚拟化集群系统负载平衡方法、装置及系统 |
CN106817243A (zh) * | 2015-12-01 | 2017-06-09 | 广达电脑股份有限公司 | 服务器资源的管理系统及其管理方法 |
-
2018
- 2018-02-06 CN CN201810119092.3A patent/CN108427604B/zh active Active
- 2018-08-15 WO PCT/CN2018/100552 patent/WO2019153697A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069761A1 (en) * | 2004-09-14 | 2006-03-30 | Dell Products L.P. | System and method for load balancing virtual machines in a computer network |
CN101504620A (zh) * | 2009-03-03 | 2009-08-12 | 华为技术有限公司 | 一种虚拟化集群系统负载平衡方法、装置及系统 |
CN106817243A (zh) * | 2015-12-01 | 2017-06-09 | 广达电脑股份有限公司 | 服务器资源的管理系统及其管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108427604A (zh) | 2018-08-21 |
CN108427604B (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019153697A1 (zh) | 集群的资源调整方法、装置及云平台 | |
US10776151B2 (en) | Adaptive CPU NUMA scheduling | |
CN106776005B (zh) | 一种面向容器化应用的资源管理系统及方法 | |
US8893148B2 (en) | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks | |
US10609129B2 (en) | Method and system for multi-tenant resource distribution | |
US9183016B2 (en) | Adaptive task scheduling of Hadoop in a virtualized environment | |
US8108876B2 (en) | Modifying an operation of one or more processors executing message passing interface tasks | |
US8127300B2 (en) | Hardware based dynamic load balancing of message passing interface tasks | |
US20090064168A1 (en) | System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks By Modifying Tasks | |
WO2015117565A1 (en) | Methods and systems for dynamically allocating resources and tasks among database work agents in smp environment | |
WO2011148563A1 (ja) | 情報処理システム | |
KR101733117B1 (ko) | 멀티코어 시스템의 태스크 분배 방법 및 장치 | |
US9535740B1 (en) | Implementing dynamic adjustment of resources allocated to SRIOV remote direct memory access adapter (RDMA) virtual functions based on usage patterns | |
US10686728B2 (en) | Systems and methods for allocating computing resources in distributed computing | |
CN110221920B (zh) | 部署方法、装置、存储介质及系统 | |
US20090064166A1 (en) | System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks | |
US20160196157A1 (en) | Information processing system, management device, and method of controlling information processing system | |
JP2016126677A (ja) | 負荷算出方法、負荷算出プログラム及び負荷算出装置 | |
CN114625500A (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
JP2013125548A (ja) | 仮想マシン割り当てシステム及びその使用方法 | |
US11521042B2 (en) | System and method to dynamically and automatically sharing resources of coprocessor AI accelerators | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
Cheng et al. | Dynamic resource provisioning for iterative workloads on Apache Spark | |
US11182189B2 (en) | Resource optimization for virtualization environments | |
Yang et al. | Elastic executor provisioning for iterative workloads on apache spark |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18904522 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18904522 Country of ref document: EP Kind code of ref document: A1 |