CN115309501A - 一种集群资源规划方法、设备、装置及介质 - Google Patents
一种集群资源规划方法、设备、装置及介质 Download PDFInfo
- Publication number
- CN115309501A CN115309501A CN202210887793.8A CN202210887793A CN115309501A CN 115309501 A CN115309501 A CN 115309501A CN 202210887793 A CN202210887793 A CN 202210887793A CN 115309501 A CN115309501 A CN 115309501A
- Authority
- CN
- China
- Prior art keywords
- host node
- list
- instance
- component
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种集群资源规划方法、设备、装置及介质,应用于公有云平台,方法包括:获取到需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对第一组件列表进行排序,得到待调度实例列表;针对模块中的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;根据预选主机节点列表和第二预设规则,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到绑定关系;将绑定关系中主机节点对应的实例部署到主机节点上。本发明由于在公有云平台下实现了集群资源的自动化部署,从而可以提高资源规划的效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种集群资源规划方法、设备、装置及介质。
背景技术
随着云计算时代的到来,各种大数据组件借助公有云平台得到了广泛的应用,尤其可以利用公有云平台对集群进行多组件部署。
目前,基于公有云平台对集群进行多组件部署时,需要相关专家的介入,利用专家经验为集群节点部署实例。
然而,由于专家经验依赖于专家本身,需要专家手动处理工单,因此,部署效率低。
发明内容
本发明提供一种集群资源规划方法、设备、装置及介质,用以解决现有技术中存在的集群资源规划的效率低的问题。
第一方面,本发明实施例提供一种集群资源规划方法,应用于公有云平台,包括:
获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对所述第一组件列表进行排序,得到待调度实例列表;
针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
根据第二预设规则,从所述预选主机节点列表中选择最优主机节点后,将所述最优主机节点与所述当前实例进行绑定,得到绑定关系;
将所述绑定关系中主机节点对应的实例部署到所述主机节点上。
本发明实施例提供的一种集群资源规划方法,由获取到的第一组件列表根据第一预设优先级以及第二预设优先级排序后,得到待调度实例列表,针对待调度实例列表中每个模块中的每个实例,根据第一预设规则确定预选主机节点列表,以及根据第二预设规则,从预选主机节点列表中选择出与当前实例进行绑定的最优主机节点,得到绑定关系,根据绑定关系将主机节点对应的实例部署进行部署。由于该集群资源规划方法实现了多组件中的实例自动化分配并部署到适合的主机节点上,从而可以提高基于公有云平台的多组件集群资源规划的效率。
在一种可选的实施方式中,所述根据第一预设优先级以及第二预设优先级对所述第一组件列表进行排序,得到待调度实例列表,包括:
根据第一预设优先级对所述第一组件列表中每个组件进行降序排列,得到第二组件列表;
根据第二预设优先级对所述第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;
针对所述组件模块列表中的每个模块,根据所述模块对应的实例个数的属性信息,为所述模块创建实例,以得到所述待调度实例列表。
上述方法,根据第一预设优先级对第一组件列表中的组件进行降序排列,根据第二预设优先级对每个组件对应的模块进行降序排列,根据模块对应的实例个数的属性信息,为模块创建实例,从而得到待调度实例列表。将每个组件、组件对应的每个模块均按优先级进行排序,在保证后部署的实例的亲和性依赖策略得到正确的解析,以提高分配结果的优异性。
在一种可选的实施方式中,所述根据第一预设优先级对所述第一组件列表中每个组件进行降序排列,包括:
遍历所述第一组件列表;
将所述第一组件列表中每个组件按照优先级数值从小到大排序。
上述,根据第一预设优先级对第一组件列表中每个组件进行降序排列,即,将第一组件列表中每个组件按照优先级数值从小到大排序,优先级数值的值越小,相应的组件的优先级越高,也就是说,将第一组件列表中每个组件按照优先级从高到低的顺序进行排序。通过对组件按优先级进行排序,以便于在后续过程中逐一遍历每个组件,优化每个组件中实例分配的主机节点。
在一种可选的实施方式中,所述第一预设规则包括:
当前主机节点满足强亲和性规则;
且,所述当前主机节点满足强反亲和性规则;
且,所述当前主机节点的可用资源满足所述当前实例的部署要求。
上述方法,根据第一预设规则在主机节点列表中选择主机节点,即判断当前主机节点是否满足强亲和性规则,且当前主机节点是否满足强反亲和性规则,且当前主机节点的可用资源是否充足,如果当前节点同时满足上述三个判断条件,则将该节点作为预选主机节点,并加入到当前实例对应的预选主机节点列表中,如果当前节点不满足上述三个判断条件中的任意一个条件,则判断下一个主机节点。通过上述方法进行预筛选,初步判定出当前实例可选的预选主机节点,缩小了选择范围,提高了节点分配的效率。
在一种可选的实施方式中,所述根据所述预选主机节点列表和第二预设规则,从所述主机节点列表中选择最优主机节点,包括:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定所述实例对应的所述主机节点的分值;
对所述每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为所述最优主机节点。
上述方法,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值,并对每个主机节点的分值进行比较,从而选出得分最高的主机节点作为最优主机节点。该方法对实例对应的主机节点的打分规则比较灵活,可以广泛适配不同类型的主机节点,提高了该方法的普适性。
在一种可选的实施方式中,若所述分值最高的主机节点包括至少两个,该方法还包括:
对所述至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源最多的主机节点作为所述最优主机节点。
上述方法,若分值最高的主机节点包括至少两个,则对至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源最多的主机节点作为最优主机节点。因此,通过优选分值最高且空闲资源最多的主机节点的二重优选规则,进一步保证了资源分配结果的优异性。
在一种可选的实施方式中,所述根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表之前,还包括:
遍历所述待调度实例列表;
针对所述待调度实例列表中的每个实例,初始化与所述当前实例相对应的预选主机节点列表。
上述方法,针对待调度实例列表中的每个实例,需要初始化与当前实例相对应的预选主机节点列表,以确保根据第一预设规则得到的预选主机列表的准确性。
第二方面,本发明实施例提供一种集群资源规划设备,应用于公有云平台,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项实施例所述的集群资源规划方法的步骤。
第三方面,本发明实施例提供一种集群资源规划装置,应用于公有云平台,包括:
优先级排序模块,用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对所述第一组件列表进行排序,得到待调度实例列表;
规则校验模块,用于针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
资源优选模块,用于根据第二预设规则,从所述预选主机节点列表中选择最优主机节点后,将所述最优主机节点与所述当前实例进行绑定,得到绑定关系;
部署模块,用于将所述绑定关系中主机节点对应的实例部署到所述主机节点上。
在一种可选的实施方式中,所述优先级排序模块具体用于:
根据第一预设优先级对所述第一组件列表中每个组件进行降序排列,得到第二组件列表;
根据第二预设优先级对所述第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;
针对所述组件模块列表中的每个模块,根据所述模块对应的实例个数的属性信息,为所述模块创建实例,以得到所述待调度实例列表。
在一种可选的实施方式中,所述优先级排序模块具体用于:
遍历所述第一组件列表;
将所述第一组件列表中每个组件按照优先级数值从小到大排序。
在一种可选的实施方式中,所述第一预设规则包括:
当前主机节点满足强亲和性规则;
且,所述当前主机节点满足强反亲和性规则;
且,所述当前主机节点的可用资源满足所述当前实例的部署要求。
在一种可选的实施方式中,所述资源优选模块具体用于:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定所述实例对应的所述主机节点的分值;
对所述每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为所述最优主机节点。
在一种可选的实施方式中,若所述分值最高的主机节点包括至少两个,所述资源优选模块还用于:
对所述至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源最多的主机节点作为所述最优主机节点。
在一种可选的实施方式中,所述规则校验模块还用于:
遍历所述待调度实例列表;
针对所述待调度实例列表中的每个实例,初始化与所述当前实例相对应的预选主机节点列表。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述中任一项实施例所述的集群资源规划方法的步骤。
上述第二方面公开的集群资源规划设备、第三方面公开的集群资源规划装置以及第四方面公开的计算机存储介质可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种集群资源规划方法的流程示意图;
图2为本发明实施例提供的另一种集群资源规划方法的流程示意图;
图3为本发明实施例提供的一种亲和性规则校验方法的流程示意图;
图4为本发明实施例提供的一种主机节点可用资源判定方法的流程示意图;
图5为本发明实施例提供的一种主机节点资源优选的流程示意图;
图6为本发明实施例提供的一种集群资源规划装置的模块结构示意图;
图7为本发明实施例提供的一种集群资源规划设备的结构示意图;
图8为本发明实施例提供的一种集群资源规划方法的程序产品的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
目前,基于公有云平台对客户集群进行多组件部署时,需要相关专家的介入,利用专家经验判定不同组件在集群节点上的相容性与互斥性,确认实例的资源需求,尽可能平衡地在多个主机节点上预分配不同的组件中的不同实例,然而,由于上述方法需要专家手动处理工单,无法进行工单的自动化处理,使得在业务量增长的情况下,公有云的集群创建会受到专家处理效率的限制,此外,即使依靠专家人工介入,其资源规划的分配结果的优异性也很难得到保证。
为了解决上述问题,本发明的实施例提供了一种集群资源规划方法、设备、装置及介质,以提高集群资源规划的效率。
实施例1
下面通过具体的实施例对本发明提供的一种集群资源规划方法进行说明,该方法应用于公有云平台,如图1所示,包括:
步骤101,获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对第一组件列表进行排序,得到待调度实例列表;
步骤102,针对待调度实例列表中每个模块中的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
步骤103,根据第二预设规则,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到绑定关系;
步骤104,将绑定关系中主机节点对应的实例部署到主机节点上。
需要说明的是,本发明实施例提供的一种集群资源规划方法可以应用于云主机,可以应用于网络侧设备,可以应用于GPU(Graphics Processing Unit,图形处理器)计算设备,还可以应用于终端,在此并不对该集群资源规划方法的应用场景作具体限定。
本发明实施例提供一种集群资源规划方法,由获取到的第一组件列表根据第一预设优先级以及第二预设优先级排序后,得到待调度实例列表,针对待调度实例列表中每个模块中的每个实例,根据第一预设规则确定预选主机节点列表,以及根据第二预设规则,从预选主机节点列表中选择出与当前实例进行绑定的最优主机节点,得到绑定关系,根据绑定关系将主机节点对应的实例部署进行部署。因此,该集群资源规划方法实现了多组件中的实例自动化分配并部署到适合的主机节点上,提高了基于公有云平台的多组件集群资源规划的效率,同时,也保证多组件集群资源规划的分配结果的优异性。
此外,该方法还可以广泛适配各类资源分配场景,有良好的通用性。
作为一种可选的实施方式,根据第一预设优先级以及第二预设优先级对第一组件列表进行排序,得到待调度实例列表,可以先根据第一预设优先级对第一组件列表中每个组件进行降序排列,得到第二组件列表,然后根据第二预设优先级对第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表,最后针对组件模块列表中的每个模块,根据模块对应的实例个数的属性信息,为模块创建实例,以得到待调度实例列表。
在具体实施时,如图2所示,为本发明提供的一种集群资源规划方法的整体流程图,参见图2中的21,为根据第一预设优先级以及第二预设优先级对第一组件列表进行排序,得到待调度实例列表的具体流程,包括以下步骤:
步骤201,获取主机节点列表Hosts,获取需要部署的第一组件列表Components1;
具体地,主机节点列表Hosts中包括该集群所拥有的全部主机节点。
步骤202,根据第一预设优先级对第一组件列表进行排序得到第二组件列表Components2;
具体地,遍历该第一组件列表Components1,将第一组件列表Components1中每个组件按照优先级数值从小到大排序,其中,组件的优先级数值即为预先配置的组件对应的piriority属性,piriority是一个正整数值,piriority的数值越小,其对应的组件的优先级越高。也就是说,获取到需要部署的第一组件列表Components1后,遍历第一组件列表Components1,将第一组件列表Components1中每个组件按照piriority数值从小到大排序,得到第二组件列表Components2,其中,第二组件列表Components2中的组件是按照优先级从大到小进行排列的。
步骤203,遍历第二组件列表,根据第二预设优先级对每个组件对应的模块进行排序;
具体地,对第二组件列表Components2中每个组件对应的模块按照第二预设优先级进行降序排列,得到与当前组件对应的组件模块列表,其中,第二预设优先级为模块的预设优先级,由与之对应的组件的内部结构定义该组件包含的模块的先后顺序,并且不做额外调整。
步骤204,判断当前模块是否是动态模块,若是,则为当前模块设置动态标记true,否则执行步骤205;
具体地,模块根据其类型不同,可以分为动态模块和静态模块,预先通过replica数值设定模块的属性信息,如果当前模块的replica数值为魔数,则表明当前模块为动态模块,例如,当前模块的replica数值为999999或999998;如果当前模块的replica数值不是魔数,则表明当前模块为静态模块,例如,当前模块的replica数值为3。
步骤205,根据模块对应的实例个数的属性信息,为每个模块创建对应的实例。
例如,如果当前模块为静态模块且模块的实例数为3,则创建a1、a2、a3三个实例加入待调度实例列表;如果当前模块为动态模块,则根据主机节点的个数创建对应的实例加入待调度实例列表;
具体地,针对组件模块列表中的每个模块,根据模块对应的实例个数的属性信息,为模块创建实例,以得到组件模块实例列表,即通过模块对应的replica数值,为该模块生成replica数值的个数的实例。如果当前模块的replica数值为魔数,则表明当前模块为动态模块,根据给定的主机节点的个数来创建实例,并将创建的实例加入待调度实例列表,例如,若当前模块的replica数值为999999,则可以表示在所有主机节点上部署该模块;若当前模块的replica数值为999998,则可以表示在三分之二主机节点上部署该模块。如果当前模块的replica数值不是魔数,则表明当前模块为静态模块,根据当前模块的replica数值创建实例,例如,若当前模块的replica数值为3,表明当前模块包含的实例数为3,则创建3个实例,并将创建的实例加入待调度实例列表。
例如,假设该集群为一个拥有5台主机节点的集群,需要为该集群分配3个不同的大数据组件,设定5台主机节点分别为:A1、A2、…、A5,3个组件分别为:B1、B2、B3,其中,组件B1包含3个模块,分别为:B11、B12、B13;组件B2包含2个模块,分别为:B21、B22;组件B3包含4个模块,分别为:B31、B32、B33、B34,模块B12、B33为动态模块,其余模块均为静态模块,且每个静态模块均包含2个实例。上述第一组件列表、第二组件列表、组件模块列表和待调度实例列表如表1所示。
表1
本发明实施例中,根据第一预设优先级对第一组件列表中的组件进行降序排列,根据第二预设优先级对每个组件对应的模块进行降序排列,根据模块对应的实例个数的属性信息,为模块创建实例,从而得到待调度实例列表。因此,将每个组件、组件对应的每个模块均按优先级进行排序,保证部署的实例的亲和性依赖策略得到正确的解析,以提高分配结果的优异性。
作为一种可选的实施方式,第一预设规则可以包括:当前主机节点满足强亲和性规则;并且,当前主机节点满足强反亲和性规则;并且,当前主机节点的可用资源满足当前实例的部署要求。
需要说明的是,假设一个主机节点A1、组件B1、组件B2,如果组件B1中的实例C11部署到主机节点A1上后,则主机节点A1必须再部署组件B2中的实例C21,则实例C11和实例C21符合强亲和性规则,也就是说,组件B1中的实例C11和组件B2中的实例C21在主机节点A1上部署时具有绑定关系;如果组件B1中的实例C11部署到主机节点A1上后,则主机节点A1就无法再部署组件B2中的实例C21,则实例C11和实例C21符合强反亲和性规则,也就是说,组件B1中的实例C11和组件B2中的实例C21在主机节点A1上部署时具有互斥关系;上述强亲和性规则和强反亲和性规则为预先定义的,具体可以通过亲和性规则列表体现。
在具体实施时,参见图2中的22,为根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表的具体流程,包括以下步骤:
步骤206,遍历待调度实例列表,初始化与当前实例相对应的预选主机节点列表PreChooseHosts;
具体地,针对待调度实例列表中的每个实例,需要初始化与当前实例相对应的预选主机节点列表,以确保根据第一预设规则得到的预选主机列表的准确性。
步骤207,遍历主机节点列表Hosts,符合亲和性规则和CPU性能、内存磁盘性能的硬限制;
步骤208,判断当前主机节点是否满足强亲和性规则,若是,则执行步骤209,否则,返回步骤207;
具体地,可以首先从待调度实例列表中选择与当前主机节点对应的允许部署的实例,然后针对每个允许部署的实例,如果当前实例与允许部署的实例具有绑定关系,即,满足强亲和性规则,则当前实例可以部署到当前主机节点上,如果当前实例不满足强亲和性规则,则当前实例不可以部署到当前主机节点上,遍历主机节点列表中的下一个主机节点。
步骤209,判断当前主机节点是否满足强反亲和性规则,若是,则执行步骤210,否则,返回步骤207;
具体地,首先从待调度实例列表中选择与当前主机节点对应的允许部署的实例,然后针对每个允许部署的实例,如果当前实例与允许部署的实例符合不互斥原则,即不满足强反亲和性规则,则当前实例具有部署到当前主机节点的可能性,如果当前实例满足强反亲和性规则,则当前实例不能部署到当前主机节点上,遍历主机节点列表中的下一个主机节点。
具体地,如图3所示,为亲和性规则校验的流程图,包括以下步骤:
步骤301,输入亲和性规则列表AffinityList,获取当前主机节点列表Hosts;
具体地,亲和性规则列表AffinityList中的待校验规则expression包括强亲和性规则和强反亲和性规则。
步骤302,遍历亲和性规则列表AffinityList,获取当前待校验规则expression;
这里判断当前待校验规则,即判断为强亲和性规则还是强反亲和性规则。
步骤303,根据当前待校验规则expression指定的节点属性key,获取该节点对应的属性值X;
具体地,如果当前待校验规则为强反亲和性规则,根据强反亲和性规则指定的节点属性为模块,获取当前主机节点的属性值X1,其中,X1为当前节点所有允许部署的实例的列表。如果当前待校验规则为强亲和性规则,根据强亲和性规则指定的节点属性为模块,获取当前主机节点的属性值X2,其中X2为当前节点所有允许部署的实例的列表。
步骤304,根据当前待校验规则expression指定的操作类型operator,调用不同的运算逻辑;
具体地,如果当前待校验规则为强反亲和性规则,根据强反亲和性规则指定的节点属性为模块,获取当前主机节点的属性值X1,并且调用IN运算逻辑,则执行步骤305。如果当前待校验规则为强亲和性规则,根据强亲和性规则指定的节点属性为模块,获取当前主机节点的属性值X2,并且调用EXIST运算逻辑,则执行步骤307。
步骤305,判断调用哪种运算逻辑,若调用IN运算逻辑,则执行步骤306,若调用NOTIN运算逻辑,则执行步骤307,若调用EXIST运算逻辑,则执行步骤308,若调用NOTEXIST运算逻辑,则执行步骤309;
需要说明的是,IN、NOTIN、EXIST、NOTEXIST四种运算逻辑与选用哪种亲和性规则无关,只能说明有没有触发当前待调度规则,即每种亲和性规则均可以调用四种运算逻辑中的任意一种。
步骤306,遍历X,遍历当前待校验规则expression指定的适配值values,如有匹配,返回值true;否则返回值false;
例如,如果当前待校验规则为强反亲和性规则,设定X为实例C35对应的主机节点A1允许部署的实例列表,其中X的值为C31、C35、C39、C16、C23,设定的values的值为C16、C33,则说明C35和C16之间满足强反亲和性规则,两个实例不能同时部署在一个主机节点上,C35和C33之间也满足强反亲和性规则,两个实例不能同时部署在一个主机节点上。由于X和values之间有匹配,即都拥有C16,则返回值true,触发强反亲和性规则。
步骤307,遍历X,遍历当前待校验规则expression指定的适配值values,如无匹配,返回值true;否则返回值false;
例如,如果当前待校验规则为强亲和性规则,设定X为实例C35对应的主机节点A1允许部署的实例列表,其中X的值为C31、C35、C39、C16、C23,设定的values的值为C14、C33,则说明C35和C14之间满足强亲和性规则,两个实例必须同时部署在一个主机节点上,C35和C33之间也满足强亲和性规则,两个实例必须同时部署在一个主机节点上。由于X和values之间无匹配,即没有相同的实例,则返回值true,不触发强亲和性规则。
步骤308,遍历X,如非空,返回值true;否则返回值false;
例如,如果当前待校验规则为强反亲和性规则,设定X为实例C35对应的主机节点A1允许部署的实例列表,其中X的值为C31、C35、C39、C16、C23,遍历X,因为X不为空,则返回值true。
步骤309,遍历X,如为空,返回值true;否则返回值false;
例如,如果当前待校验规则为强反亲和性规则,设定X为实例C35对应的主机节点A1允许部署的实例列表,其中X的值为空集,遍历X,因为X为空,则返回值true。
步骤210,判断当前主机节点的可用资源是否充足,若是,则执行步骤211,否则,返回步骤207;
具体地,从待调度实例列表中选择与当前主机节点对应的允许部署的实例;针对每个允许部署的实例,如果当前主机节点的可用资源满足当前实例的部署要求,则当前实例允许部署到当前主机节点上,如果当前主机节点的可用资源不满足当前实例的部署要求,则当前实例不能部署到当前主机节点上,遍历主机节点列表中的下一个主机节点。
具体地,判断当前主机节点的可用资源是否满足当前实例的部署要求,可以从中央处理器(CPU,Central Processing Unit)、内存(memory)、磁盘(disk)三个维度判断当前主机节点的可用资源是否满足部署要求,如果当前主机节点的可用资源的三个维度均满足当前实例的部署要求,则将当前主机节点加入预选主机节点列表;如果当前主机节点的可用资源的三个维度中任意一个维度不满足当前实例的部署要求,则判断主机节点列表中的下一个主机节点。
如图4所示,为判断当前主机节点的可用资源是否充足的具体流程图,包括以下步骤:
步骤401,获取当前主机节点的可用资源,获取当前实例的预设资源需求;
步骤402,判断当前主机节点可用CPU是否大于当前实例的需求CPU,若是,则执行步骤403,否则,执行步骤406;
步骤403,判断主机当前节点可用内存是否大于当前实例的需求内存,若是,则执行步骤404,否则,执行步骤406;
步骤404,判断当前主机节点可用磁盘是否大于当前实例的需求磁盘,若是,则执行步骤405,否则,执行步骤406;
步骤405,当前主机节点的可用资源充足,加入预选主机节点列表PreChooseHosts;
步骤406,当前主机节点的可用资源不足,不能加入预选主机节点列表PreChooseHosts。
需要说明的是,在不同类型的集群中,CPU、memory、disk三个维度的权重占比可以不同。例如,对于计算型集群,在预选主机节点判定的过程中,可以增大CPU和memory的权重占比,也就是说,会更优选CPU高和/或memory大的主机节点;对于存储型集群,在预选主机节点判定的过程中,可以增大disk的权重占比,也就是说,会更优选disk大的主机节点。通过为不同类型的集群配置不同的权重占比分配,以获得更优异的主机节点。
具体地,首先从待调度实例列表中选择与当前主机节点对应的允许部署的实例,然后针对每个允许部署的实例,如果实例与允许部署的实例具有绑定关系,且符合不互斥原则,且当前主机节点的可用资源满足当前实例的部署要求,则当前主机节点满足第一预设规则,并将其加入到预选主机节点列表PreChooseHosts中;如果当前主机节点不满足上述第一预设规则中的任意一条规则,则遍历主机节点列表中的下一个主机节点。
步骤211,将当前主机节点加入预选主机节点列表PreChooseHosts;
具体地,若任意一个实例对应的预选主机节点列表PreChooseHosts为空,则可以获取主机节点列表外的其他主机节点,并将主机节点加入到主机节点列表中,将实例部署到主机节点上。该方法通过获取主机节点列表之外的其他主机节点,减小了实例分配失败的概率,进而提高了集群资源分配结果的可靠性。
本发明实施例中,根据第一预设规则在主机节点列表中选择主机节点,即判断当前主机节点是否满足强亲和性规则,且当前主机节点是否满足强反亲和性规则,且当前主机节点的可用资源是否充足,如果当前节点同时满足上述三个判断条件,则将该节点作为预选主机节点,并加入到当前实例对应的预选主机节点列表中,如果当前节点不满足上述三个判断条件中的任意一个条件,则判断下一个主机节点。通过上述方法进行预筛选,初步判定出当前实例可选的预选主机节点,缩小了选择范围,提高了节点分配的效率。
作为一种可选的实施方式,根据第二预设规则,从预选主机节点列表中选择最优主机节点,具体可以先针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值,然后对每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为最优主机节点。
需要说明的是,假设一个主机节点A1、组件B1、组件B2,如果组件B1中的实例C11部署到主机节点A1上后,建议将组件B2中的实例C21也部署到主机节点A1上,以提升系统性能,但是,若不存在组件B2中的实例C21,只将组件B1中的实例C11部署到主机节点A1上也可以实现系统功能,这里的实例C11和实例C21的关系满足弱亲和性规则,也就是说,组件B1中的实例C11和组件B2中的实例C21共同部署在主机节点A1上,系统性能更优异,组件B1中的实例C11或组件B2中的实例C21任意一个部署在主机节点A1上,系统性能也可以实现;如果组件B1中的实例C11已经部署到主机节点A1上,则不建议将组件B2中的实例C21也部署到主机节点A1上,但是,若存在不可抗因素,必须将组件B1中的实例C11和组件B2中的实例C21共同部署到主机节点A1上,也可以实现系统功能,只是会降低系统性能,这里的实例C11和实例C21满足弱亲和性规则,也就是说,组件B1或组件B2任意一个部署在主机节点A1上,系统性能更优异,组件B1中的实例C11和组件B2中的实例C21共同部署在主机节点A1上,系统性能也可以实现。上述弱亲和性规则和弱反亲和性规则为预先定义的,可以以亲和性规则列表的形式体现。
在具体实施时,亲和性规则列表中规定的弱亲和性规则和弱反亲和性规则均预先设定了每个主机节点的分值(weight),其中,弱亲和性规则中定义的分值为正整数,弱反亲和性规则中定义的分值为负整数。参见图2中的23,针对当前实例对应的预选主机节点中的每一个节点,根据亲和性规则列表判断当前主机节点的待校验规则,如果当前主机节点的待校验规则为弱亲和性规则,则根据弱亲和性规则中定义的分值,可以得到允许部署当前实例的当前主机节点的分值,其中,所得分值为正整数;如果当前主机节点的待校验规则为弱反亲和性规则,则根据弱反亲和性规则中定义的分值,可以得到允许部署当前实例的当前主机节点的分值,其中,所得分值为负整数。
具体地,若当前主机节点A1可以部署n个实例,C1、C2、…、Cn,假设,针对实例C1,当前主机节点A1的分值为Y1;针对实例C2,当前主机节点A1的分值为Y2;…针对实例Cn,当前主机节点A1的分值为Yn,对上述分值,Y1、Y2、…、Yn进行求和运算,可以得到当前主机节点的总分值Y,进而对比选出分值最高的主机节点作为最优主机节点。
本发明实施例中,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值,并对每个主机节点的分值进行比较,从而选出得分最高的主机节点作为最优主机节点。该方法对实例对应的主机节点的打分规则比较灵活,可以广泛适配不同类型的主机节点,提高了该方法的普适性。
具体地,若分值最高的主机节点包括至少两个,则可以将至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源最多的主机节点作为最优主机节点。
在具体实施时,参见图2中的23,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到主机节点和实例的绑定关系的具体流程图,包括以下步骤:
步骤212,遍历预选主机节点列表PreChooseHosts,分别对每个主机节点进行打分,选出最优主机节点;
步骤213,判断当前主机节点的弱亲和性规则得分是否大于主机节点的最高得分,若大于,则执行步骤215,若等于,则执行步骤214,若小于,则返回步骤212;
步骤214,对比主机节点的空闲资源程度,选出空闲资源最多的主机节点作为最优主机节点;
具体地,优选空闲资源多的主机节点作为最优主机节点,在分析主机节点的空闲资源时,可以从CPU、memory、disk三个维度来分析,针对不同类型的集群,可以对CPU、memory、disk三个维度预设不同的权重。例如,对于计算型集群,可以增大CPU和memory的权重占比;对于存储型集群,可以增大disk的权重占比。
如图5所示,为资源规划优选的工作流程图,包括以下步骤:
步骤501,输入主机节点host1,主机节点host2;
其中,主机节点host1和主机节点host2的分值最高且分值相等。
步骤502,采集主机节点host1的空闲资源,采集主机节点host2的空闲资源;
步骤503,加权计算主机节点host1的空闲资源情况得分S1,加权计算主机节点host2的空闲资源情况得分S2;
具体地,分别采集主机节点host1空闲资源和主机节点host2的空闲资源,根据预设权重和空闲资源的绝对值分别进行加权运算,得到主机节点host1的空闲资源情况得分S1和主机节点host2的空闲资源情况得分S2。
步骤504,判断条件S1>S2是否满足,若是,则执行步骤505,否则,执行步骤506;
步骤505,将主机节点host1作为最优主机节点;
步骤506,将主机节点host2作为最优主机节点。
本发明实施例中,比较S1和S2,选择得分最高的主机节点作为最优主机节点。
步骤215,将当前实例与最优主机节点进行绑定,得到主机节点与实例的绑定关系;
步骤216,判断是否为每个实例都部署了主机节点,若是,则执行步骤217,否则,执行步骤218;
步骤217,输出主机节点与组件模块实例调整后的绑定关系;
步骤218,输出分配失败原因和已分配的主机节点列表。
本发明实施例提供一种集群资源规划方法,若分值最高的主机节点包括至少两个,则对至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源情况得分最高的主机节点作为最优主机节点。因此,通过配置不同的维度和权重来对主机节点的空闲资源进行优选打分,其打分规则灵活,可以广泛适用不同类型的集群,此外,通过优选分值最高且空闲资源情况得分最高的主机节点的二重优选规则,进一步保证了资源分配结果的优异性。
作为一种实施方式,该方法还可以将专家经验量化为一组json模板文件,包括亲和性规则列表、第一预设优先级、第二预设优先级、主机节点的可用资源以及预设权重。
如果没有依托专家经验的模板文件,则需要预先设定组件中各个模块的关系、亲和性规则列表、第一预设优先级、第二预设优先级、预设权重和主机节点的可用资源情况。
通过固化专家经验,生成模板文件,使得集群资源规划方法可以高效自动化,在模板文件中创建了组件亲和性规则的定义,可以精确表达各组件之间的依赖关系和互斥关系,并且通过模板文件可以对组件的资源需求进行分层考虑,对不同层的需求分别考虑,此外,还可以根据需要引入不同的模板组合,并按需求调整其优先级关系,以保证资源分配的合理性以及优异性。
实施例2
基于相同的构思,本发明实施例还提供一种集群资源规划装置,应用于公有云平台,由于该装置即是本发明实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,上述装置包括以下模块:
优先级排序模块601,用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对第一组件列表进行排序,得到待调度实例列表;
规则校验模块602,用于针对待调度实例列表中每个模块中的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
资源优选模块603,用于根据第二预设规则,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到绑定关系;
部署模块604,用于将绑定关系中主机节点对应的实例部署到主机节点上。
作为一种可选的实施方式,优先级排序模块具体用于:
根据第一预设优先级对第一组件列表中每个组件进行降序排列,得到第二组件列表;
根据第二预设优先级对第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;
针对组件模块列表中的每个模块,根据模块对应的实例个数的属性信息,为模块创建实例,以得到待调度实例列表。
优先级排序模块具体用于:
遍历所述第一组件列表;
将所述第一组件列表中每个组件按照优先级数值从小到大排序。
作为一种可选的实施方式,第一预设规则包括:
当前主机节点满足强亲和性规则;
且,当前主机节点满足强反亲和性规则;
且,当前主机节点的可用资源满足当前实例的部署要求。
作为一种可选的实施方式,资源优选模块具体用于:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值;
对每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为最优主机节点。
作为一种可选的实施方式,若分值最高的主机节点包括至少两个,资源优选模块还用于:
对至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源最多的主机节点作为最优主机节点。
作为一种可选的实施方式,所述根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表之前,所述规则校验模块还用于:
遍历待调度实例列表;
针对待调度实例列表中的每个实例,初始化与当前实例相对应的预选主机节点列表。
实施例3
基于相同的构思,本发明实施例还提供一种集群资源规划设备,应用于公有云平台,由于该集群资源规划设备即是本发明实施例中的方法中的集群资源规划设备,并且该集群资源规划设备解决问题的原理与该方法相似,因此该集群资源规划设备的实施可以参见方法的实施,重复之处不再赘述。
下面参照图7来描述根据本发明的这种实施方式的集群资源规划设备70。图7显示的集群资源规划设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,集群资源规划设备70可以以通用计算设备的形式表现,例如其可以为终端设备。集群资源规划设备70的组件可以包括但不限于:上述至少一个处理器71、上述至少一个存储处理器71可执行指令的存储器72、连接不同系统组件(包括存储器72和处理器71)的总线73,处理器71是智能设备的处理器。
处理器71通过运行可执行指令以实现如下步骤:
获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对第一组件列表进行排序,得到待调度实例列表;
针对待调度实例列表中每个模块中的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
根据第二预设规则,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到绑定关系;
将绑定关系中主机节点对应的实例部署到主机节点上。
作为一种可选的实施方式,处理器71具体用于:
根据第一预设优先级对第一组件列表中每个组件进行降序排列,得到第二组件列表;
根据第二预设优先级对第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;
针对组件模块列表中的每个模块,根据模块对应的实例个数的属性信息,为模块创建实例,以得到待调度实例列表。
作为一种可选的实施方式,处理器71具体用于:
遍历第一组件列表;
将第一组件列表中每个组件按照优先级数值从小到大排序。
作为一种可选的实施方式,第一预设规则包括:
当前主机节点满足强亲和性规则;
且,当前主机节点满足强反亲和性规则;
且,当前主机节点的可用资源数量满足当前实例的部署要求。
作为一种可选的实施方式,处理器71具体用于:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值;
对每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为最优主机节点。
作为一种可选的实施方式,若分值最高的主机节点包括至少两个,处理器71还用于:
对至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源最多的主机节点作为最优主机节点。
作为一种可选的实施方式,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表之前,处理器71还用于:
遍历待调度实例列表;
针对待调度实例列表中的每个实例,初始化与当前实例相对应的预选主机节点列表。
总线73表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器72可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)721和/或高速缓存存储器722,还可以进一步包括只读存储器(ROM)723。
存储器72还可以包括具有一组(至少一个)程序模块724的程序/实用工具725,这样的程序模块724包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
集群资源规划设备70也可以与一个或多个外部设备74(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与集群资源规划设备70交互的设备通信,和/或与使得集群资源规划设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口75进行。并且,集群资源规划设备70还可以通过网络适配器76与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器76通过总线73与电子设备70的其它模块通信。应当明白,尽管图中未示出,可以结合集群资源规划设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
实施例4
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的集群资源规划装置中各模块的步骤,例如,网络侧设备可以用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对第一组件列表进行排序,得到待调度实例列表;针对待调度实例列表中每个模块中的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;根据第二预设规则,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到绑定关系;
将绑定关系中主机节点对应的实例部署到主机节点上。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图8所示,描述了根据本发明的实施方式的用于集群资源规划的程序产品80,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了系统的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明系统各模块的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些操作,将多个操作合并为一个操作执行,和/或将一个操作分解为多个操作执行。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种集群资源规划方法,其特征在于,应用于公有云平台,包括:
获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对所述第一组件列表进行排序,得到待调度实例列表;
针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
根据第二预设规则,从所述预选主机节点列表中选择最优主机节点后,将所述最优主机节点与所述当前实例进行绑定,得到绑定关系;
将所述绑定关系中主机节点对应的实例部署到所述主机节点上。
2.如权利要求1所述的方法,其特征在于,所述根据第一预设优先级以及第二预设优先级对所述第一组件列表进行排序,得到待调度实例列表,包括:
根据第一预设优先级对所述第一组件列表中每个组件进行降序排列,得到第二组件列表;
根据第二预设优先级对所述第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;
针对所述组件模块列表中的每个模块,根据所述模块对应的实例个数的属性信息,为所述模块创建实例,以得到所述待调度实例列表。
3.如权利要求2所述的方法,其特征在于,所述根据第一预设优先级对所述第一组件列表中每个组件进行降序排列,包括:
遍历所述第一组件列表;
将所述第一组件列表中每个组件按照优先级数值从小到大排序。
4.如权利要求1所述的方法,其特征在于,所述第一预设规则包括:
当前主机节点满足强亲和性规则;
且,所述当前主机节点满足强反亲和性规则;
且,所述当前主机节点的可用资源满足所述当前实例的部署要求。
5.如权利要求1所述的方法,其特征在于,所述根据所述预选主机节点列表和第二预设规则,从所述主机节点列表中选择最优主机节点,包括:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定所述实例对应的所述主机节点的分值;
对所述每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为所述最优主机节点。
6.如权利要求5所述的方法,其特征在于,若所述分值最高的主机节点包括至少两个,该方法还包括:
对所述至少两个分值最高的主机节点的空闲资源进行比较,将空闲资源最多的主机节点作为所述最优主机节点。
7.如权利要求1~6任一所述的方法,其特征在于,所述根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表之前,还包括:
遍历所述待调度实例列表;
针对所述待调度实例列表中的每个实例,初始化与所述当前实例相对应的预选主机节点列表。
8.一种集群资源规划设备,其特征在于,应用于公有云平台,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1~7任一项所述的集群资源规划方法的步骤。
9.一种集群资源规划装置,其特征在于,应用于公有云平台,包括:
优先级排序模块,用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级以及第二预设优先级对所述第一组件列表进行排序,得到待调度实例列表;
规则校验模块,用于针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
资源优选模块,用于根据第二预设规则,从所述预选主机节点列表中选择最优主机节点后,将所述最优主机节点与所述当前实例进行绑定,得到绑定关系;
部署模块,用于将所述绑定关系中主机节点对应的实例部署到所述主机节点上。
10.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1~7中任一项所述的集群资源规划方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210887793.8A CN115309501A (zh) | 2022-07-26 | 2022-07-26 | 一种集群资源规划方法、设备、装置及介质 |
PCT/CN2022/141378 WO2024021467A1 (zh) | 2022-07-26 | 2022-12-23 | 一种集群资源规划方法、设备、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210887793.8A CN115309501A (zh) | 2022-07-26 | 2022-07-26 | 一种集群资源规划方法、设备、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115309501A true CN115309501A (zh) | 2022-11-08 |
Family
ID=83858998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210887793.8A Pending CN115309501A (zh) | 2022-07-26 | 2022-07-26 | 一种集群资源规划方法、设备、装置及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115309501A (zh) |
WO (1) | WO2024021467A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021467A1 (zh) * | 2022-07-26 | 2024-02-01 | 天翼云科技有限公司 | 一种集群资源规划方法、设备、装置及介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360308B (zh) * | 2011-09-29 | 2013-06-12 | 用友软件股份有限公司 | 组件的分布式部署系统和方法 |
US10491704B2 (en) * | 2016-11-07 | 2019-11-26 | General Electric Company | Automatic provisioning of cloud services |
CN110297658B (zh) * | 2018-03-21 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 功能组件共享方法、装置和计算机设备 |
CN109960585B (zh) * | 2019-02-02 | 2021-05-14 | 浙江工业大学 | 一种基于kubernetes的资源调度方法 |
CN113342478B (zh) * | 2021-08-04 | 2022-02-01 | 阿里云计算有限公司 | 资源管理方法、设备、网络系统及存储介质 |
CN114138486B (zh) * | 2021-12-02 | 2024-03-26 | 中国人民解放军国防科技大学 | 面向云边异构环境的容器化微服务编排方法、系统及介质 |
CN115309544A (zh) * | 2022-07-26 | 2022-11-08 | 天翼云科技有限公司 | 一种集群资源规划方法、设备及装置 |
CN115309501A (zh) * | 2022-07-26 | 2022-11-08 | 天翼云科技有限公司 | 一种集群资源规划方法、设备、装置及介质 |
-
2022
- 2022-07-26 CN CN202210887793.8A patent/CN115309501A/zh active Pending
- 2022-12-23 WO PCT/CN2022/141378 patent/WO2024021467A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024021467A1 (zh) * | 2022-07-26 | 2024-02-01 | 天翼云科技有限公司 | 一种集群资源规划方法、设备、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024021467A1 (zh) | 2024-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727512B (zh) | 集群资源调度方法、装置、设备及储存介质 | |
US7987146B2 (en) | System and method for matching multi-node software system provisioning requirements and capabilities using rough set theory | |
CN115309544A (zh) | 一种集群资源规划方法、设备及装置 | |
US20170004009A1 (en) | Job distribution within a grid environment | |
US20110119191A1 (en) | License optimization in a virtualized environment | |
US20050177833A1 (en) | Method and apparatus for reassigning objects to processing units | |
JP5121936B2 (ja) | リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法 | |
US20070220509A1 (en) | System and method for deploying software based on matching provisioning requirements and capabilities | |
CN109992407A (zh) | 一种yarn集群gpu资源调度方法、装置和介质 | |
US20190286482A1 (en) | Smart reduce task scheduler | |
CN110851236A (zh) | 一种实时资源调度方法、装置、计算机设备及存储介质 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
US20070198697A1 (en) | Method of refactoring methods within an application | |
CN110032576A (zh) | 一种业务处理方法以及装置 | |
CN106339802A (zh) | 任务分配的方法和装置、电子设备 | |
CN114153580A (zh) | 一种跨多集群的工作调度方法及装置 | |
CN115309501A (zh) | 一种集群资源规划方法、设备、装置及介质 | |
CN115391023A (zh) | 多任务容器集群的计算资源优化方法及装置 | |
WO2016018352A1 (en) | Platform configuration selection based on a degraded makespan | |
CN114020455B (zh) | 一种服务功能的编排方法、装置及计算机可读存储介质 | |
CN117271101B (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
CN114519006A (zh) | 测试方法、装置、设备以及存储介质 | |
CN114237894A (zh) | 容器调度方法、装置、设备以及可读存储介质 | |
US8589944B2 (en) | Method and system for task mapping to iteratively improve task assignment in a heterogeneous computing system | |
CN111966597A (zh) | 测试数据生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |