CN115309544A - 一种集群资源规划方法、设备及装置 - Google Patents

一种集群资源规划方法、设备及装置 Download PDF

Info

Publication number
CN115309544A
CN115309544A CN202210887827.3A CN202210887827A CN115309544A CN 115309544 A CN115309544 A CN 115309544A CN 202210887827 A CN202210887827 A CN 202210887827A CN 115309544 A CN115309544 A CN 115309544A
Authority
CN
China
Prior art keywords
host node
list
instance
host
module
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
Application number
CN202210887827.3A
Other languages
English (en)
Inventor
陈赜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202210887827.3A priority Critical patent/CN115309544A/zh
Publication of CN115309544A publication Critical patent/CN115309544A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Abstract

本发明公开了一种集群资源规划方法、设备及装置,应用于公有云平台,方法包括:针对根据第一预设优先级、第二预设优先级以及预设资源需求得到待调度实例列表中模块的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到预选主机节点列表;根据第二预设规则,从预选主机节点列表中选择最优主机节点后,以得到主机节点和实例的绑定关系;对主机节点和实例的绑定关系进行调整,确定调整后的绑定关系符合预设条件后,将调整后的绑定关系中主机节点对应的实例部署到主机节点上。本发明实现了资源的自动化分配,提高了资源规划的效率,同时自动地优化缩减集群使用的节点,平衡集群资源负载,提高了资源的利用率。

Description

一种集群资源规划方法、设备及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种集群资源规划方法、设备及装置。
背景技术
随着云计算时代的到来,各种大数据组件借助公有云平台得到了广泛的应用,尤其可以利用公有云平台对集群进行多组件部署。
目前,基于公有云平台对集群进行多组件部署时,需要相关专家的介入,利用专家经验判定不同组件在集群节点上的相容性与互斥性,此外,还需要确认组件实例的资源需求,尽可能平衡地在多个主机节点上预分配不同的组件实例。
然而,上述集群资源规划的方法需要专家人工介入,依赖于专家手动处理工单,处理效率较低,此外,上述方法还会存在浪费主机节点的现象以及资源分配不均衡的问题。
发明内容
本发明提供一种集群资源规划方法、设备及装置,用以解决现有技术中存在的集群资源分配效率低,浪费主机节点以及资源分配不均衡的问题。
第一方面,本发明实施例提供一种集群资源规划方法,应用于公有云平台,包括:
获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级、第二预设优先级以及预设资源需求对所述第一组件列表进行排序,得到待调度实例列表;
针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
根据第二预设规则,从所述预选主机节点列表中选择最优主机节点后,将所述最优主机节点与所述当前实例进行绑定,得到主机节点和实例的绑定关系;
对主机节点和实例的所述绑定关系进行调整,确定调整后的绑定关系符合预设条件后,将调整后的绑定关系中主机节点对应的实例部署到所述主机节点上。
本发明实施例提供一种集群资源规划方法,由获取到的第一组件列表根据第一预设优先级、第二预设优先级和预设资源需求排序后,得到待调度实例列表,针对待调度实例列表中每个模块中的每个实例,根据第一预设规则确定预选主机节点列表,以及根据第二预设规则,从预选主机节点列表中选择出与当前实例进行绑定的最优主机节点,得到主机节点和实例的绑定关系,对上述绑定关系进行调整,确定调整后的绑定关系符合预设条件后,根据调整后的绑定关系将主机节点对应的实例进行部署。该集群资源规划方法可以实现自动化,从而可以提高部署效率,此外通过对得到的主机节点和实例的绑定关系进行再调整,以对集群资源分配的结果进行了再平衡,在保证组件服务可用性的基础上,自动地优化缩减集群使用的节点,平衡集群资源负载,提高资源的利用率。
在一种可选的实施方式中,所述预设条件,包括:
调整后的绑定关系中主机节点使用数量小于调整前的绑定关系中主机节点使用数量;或
调整后的绑定关系中主机节点使用数量等于调整前的绑定关系中主机节点使用数量,且调整后的主机节点的资源平均使用率的方差小于调整前的主机节点的资源平均使用率的方差。
上述方法,对主机节点和实例的绑定关系进行调整,根据预设条件判断是否需要保留调整后的绑定关系,如果调整后的绑定关系符合预设条件,则保留调整后的绑定关系并按照调整后的绑定关系进行实例的部署;如果调整后的绑定关系不符合预设条件,则,对主机节点和实例的所述绑定关系进行再一次调整;也就是说,若调整后的绑定关系中主机节点使用数量小于调整前的绑定关系中主机节点使用数量,或,调整后的绑定关系中主机节点使用数量等于调整前的绑定关系中主机节点使用数量,且调整后的主机节点的资源平均使用率的方差小于调整前的主机节点的资源平均使用率的方差,则判定这是一次正向的优化过程,对调整后的绑定关系予以保留并执行;反之,则不予以保留。通过预设条件对调整后的绑定关系进行合理性的判断,使得保留的调整后的绑定关系是进行了正向优化的绑定关系,从而可以自动地优化缩减集群使用的节点,平衡集群资源负载,提高资源的利用率,得到更加优异的资源分配结果。
在一种可选的实施方式中,所述对主机节点和实例的所述绑定关系进行调整,包括:
将所述主机节点和实例的绑定关系中,任意一个主机节点作为源主机节点,其他主机节点作为目标主机节点;
针对所述源主机节点对应的实例中的任意一个实例,遍历所述目标主机节点,选择满足部署所述实例的一个第一目标主机节点;
将所述实例添加到所述绑定关系中所述第一目标主机节点对应的实例中。
上述方法,采用随机优化的思想,选定绑定关系中任意一个主机节点作为源主机节点,其他主机节点作为目标主机节点,针对源主机节点对应的实例中的任意一个实例,为其选择一个满足该实例部署要求的第一目标主机节点,并将该实例添加到第一目标主机节点对应的实例中。通过随机选定源主机节点,随机选定目标主机节点,随机在源主机节点对应的实例中选定实例来对主机节点和实例的绑定关系进行随机优化,以均衡集群的资源分配结果。
在一种可选的实施方式中,所述根据第一预设优先级、第二预设优先级以及预设资源需求对所述第一组件列表进行排序,得到待调度实例列表,包括:
根据第一预设优先级对所述第一组件列表中每个组件进行降序排列,得到第二组件列表;
根据第二预设优先级对所述第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;
针对所述组件模块列表中的每个模块,根据所述模块对应的实例个数的属性信息,为所述模块创建实例,得到组件模块实例列表;
针对所述组件模块实例列表中的每个实例,根据所述实例的预设资源需求对所述组件模块实例列表进行降序排列,得到所述待调度实例列表。
上述方法,根据第一预设优先级对第一组件列表中的组件进行降序排列,根据第二预设优先级对每个组件对应的模块进行降序排列,根据模块对应的实例个数的属性信息,为模块创建实例,根据预设资源需求对实例进行降序排列,从而得到待调度实例列表。因此,将每个组件、组件对应的每个模块均按优先级进行排序,每个模块对应的实例按预设资源需求进行排序,在保证部署的实例的亲和性依赖策略得到正确的解析,以提高分配结果的优异性。
在一种可选的实施方式中,所述第一预设规则包括:
当前主机节点满足强亲和性规则;
且,所述当前主机节点满足强反亲和性规则;
且,所述当前主机节点的可用资源满足所述当前实例的部署要求。
上述方法,根据第一预设规则在主机节点列表中选择主机节点,即判断当前主机节点是否满足强亲和性规则,且当前主机节点是否满足强反亲和性规则,且当前主机节点的可用资源是否充足,如果当前节点同时满足上述三个判断条件,则将该节点作为预选主机节点,并加入到当前实例对应的预选主机节点列表中,如果当前节点不满足上述三个判断条件中的任意一个条件,则判断下一个主机节点。通过上述方法进行预筛选,初步判定出当前实例可选的预选主机节点,缩小了选择范围,提高了节点分配的效率。
在一种可选的实施方式中,所述根据所述预选主机节点列表和第二预设规则,从所述预选主机节点列表中选择最优主机节点,包括:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定所述实例对应的所述主机节点的分值;
对所述每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为所述最优主机节点。
上述方法,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值,并对每个主机节点的分值进行比较,从而选出得分最高的主机节点作为最优主机节点。该方法对实例对应的主机节点的打分规则比较灵活,可以广泛适配不同类型的主机节点,提高了该方法的普适性。
在一种可选的实施方式中,若所述分值最高的主机节点包括至少两个,该方法还包括:
对所述至少两个分值最高的主机节点部署当前模块后的剩余资源进行比较,将剩余资源最少的主机节点作为所述最优主机节点。
上述方法,若分值最高的主机节点包括至少两个,则对至少两个分值最高的主机节点部署当前模块后的剩余资源进行比较,将剩余资源最少的主机节点作为最优主机节点。因此,通过优选分值最高且部署当前模块后的剩余资源最少的主机节点的二重优选规则,在保证了资源分配结果的优异性同时,还提高了节点的资源利用率。
在一种可选的实施方式中,若任意一个实例对应的预选主机节点列表为空,该方法还包括:
获取所述主机节点列表外的其他主机节点,并将所述主机节点加入到所述主机节点列表中;
将所述实例部署到所述主机节点上。
上述方法,若任意一个实例对应的预选主机节点列表为空,则获取主机节点列表之外的其他主机节点,将其加入预选主机节点列表中,并将当前实例部署到该主机节点上。通过获取主机节点列表之外的其他主机节点,减小了实例分配失败的可能性,进而提高了集群资源分配结果的可靠性。
第二方面,本发明实施例提供一种集群资源规划设备,应用于公有云平台,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项实施例所述的集群资源规划方法的步骤。
第三方面,本发明实施例提供一种集群资源规划装置,应用于公有云平台,包括:
优先级排序模块,用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级、第二预设优先级以及预设资源需求对所述第一组件列表进行排序,得到待调度实例列表;
规则校验模块,用于针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
资源优选模块,用于根据第二预设规则,从所述预选主机节点列表中选择最优主机节点后,将所述最优主机节点与所述当前实例进行绑定,得到主机节点和实例的绑定关系;
资源再平衡模块,用于对主机节点和实例的所述绑定关系进行调整,确定调整后的绑定关系符合预设条件后,将调整后的绑定关系中主机节点对应的实例部署到所述主机节点上。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述中任一项实施例所述的集群资源规划方法的步骤。
上述第二方面公开的集群资源规划设备、第三方面公开的集群资源规划装置以及第四方面公开的计算机存储介质可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种集群资源规划方法的流程示意图;
图2为本发明实施例提供的另一种集群资源规划方法的流程示意图;
图3为本发明实施例提供的一种亲和性规则校验方法的流程示意图;
图4为本发明实施例提供的一种主机节点可用资源判定方法的流程示意图;
图5为本发明实施例提供的一种资源规划优化方法的流程示意图;
图6为本发明实施例提供的一种资源再平衡优化方法的流程示意图;
图7为本发明实施例提供的一种集群资源规划设备的结构示意图;
图8为本发明实施例提供的一种集群资源规划装置的模块结构示意图;
图9为本发明实施例提供的一种集群资源规划方法的程序产品的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
目前,基于公有云平台对客户集群进行多组件部署时,需要相关专家的介入,利用专家经验判定不同组件在集群节点上的相容性与互斥性,确认组件实例的资源需求,尽可能平衡地在多个主机节点上预分配不同的组件实例,然而,由于上述方法需要专家手动处理工单,无法进行工单的自动化处理,使得在业务量增长的情况下,公有云的集群创建会受到专家处理效率的限制,此外,上述方法还会存在浪费主机节点的现象以及集群资源分配不均衡的问题。
为了解决上述问题,本发明的实施例提供了一种集群资源规划方法、设备及装置,使得在提高集群资源规划的效率的情况下,缩减集群使用的节点,均衡集群资源分配的结果,提高资源的利用率。
实施例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个实例,并将创建的实例加入待调度实例列表。
步骤206,根据实例的预设资源需求从大到小进行排序;
具体地,根据实例的预设资源需求对其进行降序排列,得到待调度实例列表。例如,预设资源需求可以为实例部署所需的中央处理器(CPU,Central Processing Unit)需求核数、内存(memory)需求GB和磁盘(disk)需求GB等。
例如,假设该集群为一个拥有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所示。
Figure BDA0003766384160000091
表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,为根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表的具体流程,包括以下步骤:
步骤207,遍历待调度实例列表,初始化与当前实例相对应的预选主机节点列表PreChooseHosts;
具体地,针对待调度实例列表中的每个实例,需要初始化与当前实例相对应的预选主机节点列表,以确保根据第一预设规则得到的预选主机列表的准确性。
步骤208,遍历主机节点列表Hosts,符合亲和性规则和CPU性能、内存磁盘性能的硬限制;
步骤209,判断当前主机节点是否满足强亲和性规则,若是,则执行步骤210,否则,返回步骤208;
具体地,可以首先从待调度实例列表中选择与当前主机节点对应的允许部署的实例,然后针对每个允许部署的实例,如果当前实例与允许部署的实例具有绑定关系,即,满足强亲和性规则,则当前实例可以部署到当前主机节点上,如果当前实例不满足强亲和性规则,则,然后遍历主机节点列表中的下一个主机节点。
步骤210,判断当前主机节点是否满足强反亲和性规则,若是,则执行步骤211,否则,返回步骤208;
具体地,首先从待调度实例列表中选择与当前主机节点对应的允许部署的实例,然后针对每个允许部署的实例,如果当前实例与允许部署的实例符合不互斥原则,即不满足强反亲和性规则,则当前实例具有部署到当前主机节点的可能性,如果当前实例满足强反亲和性规则,则当前实例不能部署到当前主机节点上,遍历主机节点列表中的下一个主机节点。
具体地,如图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。
步骤211,判断当前主机节点的可用资源是否充足,若是,则执行步骤212,否则,返回步骤208;
具体地,从待调度实例列表中选择与当前主机节点对应的允许部署的实例;针对每个允许部署的实例,如果当前主机节点的可用资源满足当前实例的部署要求,则当前实例允许部署到当前主机节点上,如果当前主机节点的可用资源不满足当前实例的部署要求,则当前实例不能部署到当前主机节点上,遍历主机节点列表中的下一个主机节点。
具体地,判断当前主机节点的可用资源是否满足当前实例的部署要求,可以从CPU、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中;如果当前主机节点不满足上述第一预设规则中的任意一条规则,则遍历主机节点列表中的下一个主机节点。
步骤212,将当前主机节点加入预选主机节点列表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中的实例C11或组件B2中的实例C21任意一个部署在主机节点A1上,系统性能更优异,组件B1中的实例C11和组件B2中的实例C21共同部署在主机节点A1上,系统性能也可以实现。上述弱亲和性规则和弱反亲和性规则为预先定义的。可以以亲和性规则列表的形式体现。
具体地,亲和性规则列表中规定的弱亲和性规则和弱反亲和性规则均预先设定了每个主机节点的分值(weight),其中,弱亲和性规则中定义的分值为正整数,弱反亲和性规则中定义的分值为负整数。针对当前实例对应的预选主机节点中的每一个节点,根据亲和性规则列表判断当前主机节点的待校验规则,如果当前主机节点的待校验规则为弱亲和性规则,则根据弱亲和性规则中定义的分值,可以得到允许部署当前实例的当前主机节点的分值,其中,所得分值为正整数;如果当前主机节点的待校验规则为弱反亲和性规则,则根据弱反亲和性规则中定义的分值,可以得到允许部署当前实例的当前主机节点的分值,其中,所得分值为负整数。
在具体实施时,若当前主机节点A1可以部署n个实例,C1、C2、…、Cn,假设,针对实例C1,当前主机节点A1的分值为Y1;针对实例C2,当前主机节点A1的分值为Y2;…针对实例Cn,当前主机节点A1的分值为Yn;对上述分值,Y1、Y2、…、Yn进行求和运算,可以得到当前主机节点的总分值Y,进而对比选出分值最高的主机节点作为最优主机节点。
本发明实施例中,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值,并对每个主机节点的分值进行比较,从而选出得分最高的主机节点作为最优主机节点。该方法对实例对应的主机节点的打分规则比较灵活,可以广泛适配不同类型的主机节点,提高了该方法的普适性。
具体地,若分值最高的主机节点包括至少两个,则可以将至少两个分值最高的主机节点部署当前模块后的剩余资源进行比较,将剩余资源最少的主机节点作为最优主机节点。
在具体实施时,参见图2中的23,包括从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到主机节点和实例的绑定关系的具体流程图,包括以下步骤:
步骤213,遍历预选主机节点列表PreChooseHosts,分别对每个主机节点进行打分,选出最优主机节点;
步骤214,判断当前主机节点的弱亲和性规则得分是否大于主机节点的最高得分,若大于,则执行步骤216,若等于,则执行步骤215,若小于,则返回步骤213;
步骤215,根据启发式算法,选出资源最优匹配的主机节点作为最优主机节点;
具体地,如图5所示,为启发式算法优化资源规划结果的工作流程图,包括以下步骤:
步骤501,输入待调度实例列表,预选主机节点列表PreChooseHosts;
步骤502,针对待调度实例列表中的每个实例,遍历其对应的预选主机节点列表PreChooseHosts;
步骤503,选定当前主机节点,计算部署当前实例后,当前主机节点剩余资源t1;
步骤504,判断当前主机节点的剩余资源t1是否是最小剩余资源t_best,若是,则执行步骤505,否则,返回步骤503;
步骤505,记录当前主机节点为最优主机节点。
步骤216,将当前实例与最优主机节点进行绑定,得到主机节点与实例的绑定关系;
本发明实施例中,若分值最高的主机节点包括至少两个,则对至少两个分值最高的主机节点部署当前模块后的剩余资源进行比较,将剩余资源最少的主机节点作为最优主机节点,从而可以提高主机节点的资源利用率。此外,通过优选分值最高且部署当前模块后的剩余资源最少的主机节点的二重优选规则,在保证了资源分配结果的优异性同时,还提高了节点的资源利用率。
在一种实施例中,对主机节点和实例的绑定关系进行调整,可以首先将主机节点和实例的绑定关系中,任意一个主机节点作为源主机节点,其他主机节点作为目标主机节点,然后针对源主机节点对应的实例中的任意一个实例,遍历目标主机节点,选择满足部署实例的一个第一目标主机节点,最后将实例添加到绑定关系中第一目标主机节点对应的实例中。
本发明实施例中,采用随机优化的思想,选定绑定关系中任意一个主机节点作为源主机节点,其他主机节点作为目标主机节点,针对源主机节点对应的实例中的任意一个实例,为其选择一个满足该实例部署要求的第一目标主机节点,并将该实例添加到第一目标主机节点对应的实例中。通过随机选定源主机节点,随机选定目标主机节点,随机在源主机节点对应的实例中选定实例来对主机节点和实例的绑定关系进行随机优化,以均衡集群的资源分配结果。
在一种实施例中,预设条件包括:调整后的绑定关系中主机节点使用数量小于调整前的绑定关系中主机节点使用数量;或调整后的绑定关系中主机节点使用数量等于调整前的绑定关系中主机节点使用数量,且调整后的主机节点的资源平均使用率的方差小于调整前的主机节点的资源平均使用率的方差。
具体地,参见图2中的23,包括对主机节点和实例的绑定关系进行调整,确定调整后的绑定关系符合预设条件后,将调整后的绑定关系中主机节点对应的实例部署到主机节点上的具体流程图,包括以下步骤:
步骤217,判断是否为每个实例都部署了主机节点,若是,则执行步骤218,否则,执行步骤220;
步骤218,对主机节点和实例的绑定关系进行调整,确定调整后的绑定关系符合预设条件后,更新主机节点和实例的绑定关系;
具体地,如图6所示,为主机节点资源再平衡方法的流程图,包括以下步骤:
步骤601,获取主机节点与实例的绑定关系,设定尝试优化次数T;
步骤602,选定任意一个主机节点作为源主机节点,其他主机节点作为目标主机节点;
步骤603,计算调整前的绑定关系中目标主机节点的资源平均使用率的方差aavg和主机节点使用数量C;
步骤604,选定源主机节点对应的实例中的任意一个实例,遍历目标主机节点;
步骤605,判断当前实例是否可以部署到目标节点上,若是,则执行步骤606,否则返回步骤604;
步骤606,当前优化次数为t=t+1,计算调整后的绑定关系中当前主机节点的资源平均使用率的方差aavg’和主机节点使用数量C’;
步骤607,判断条件C’<C或(C’=C且aavg’<aavg)是否满足,若是,则执行步骤608,否则返回步骤604;
具体的,上述条件即为预设条件,即调整后的绑定关系中主机节点使用数量小于调整前的绑定关系中主机节点使用数量;或调整后的绑定关系中主机节点使用数量等于调整前的绑定关系中主机节点使用数量,且调整后的主机节点的资源平均使用率的方差小于调整前的主机节点的资源平均使用率的方差。
步骤608,调整主机节点和实例的绑定关系,更新主机节点使用数量C=C’、资源平均使用率的方差aavg=aavg’;
步骤609,判断条件t<T是否满足,若是,则返回步骤604,否则结束。
具体地,如果当前优化次数等于预设优化次数,说明优化已经完成,则结束资源再平衡的优化过程,输出调整后的主机节点与实例的绑定关系。
步骤219,输出主机节点与组件模块实例调整后的绑定关系;
步骤220,输出分配失败原因和已分配的主机节点列表。
本发明实施例中,对主机节点和实例的绑定关系进行调整,根据预设条件判断是否需要保留调整后的绑定关系,如果调整后的绑定关系符合预设条件,则保留调整后的绑定关系,并按照调整后的绑定关系进行实例的部署;如果调整后的绑定关系不符合预设条件,则,对主机节点和实例的绑定关系进行再一次调整。也就是说,若调整后的绑定关系中主机节点使用数量小于调整前的绑定关系中主机节点使用数量,或,调整后的绑定关系中主机节点使用数量等于调整前的绑定关系中主机节点使用数量,且调整后的主机节点的资源平均使用率的方差小于调整前的主机节点的资源平均使用率的方差,则判定这是一次正向的优化过程,对调整后的绑定关系予以保留并执行;反之,则不予以保留。通过预设条件对调整后的绑定关系进行合理性的判断,使得保留的调整后的绑定关系是进行了正向优化的绑定关系,从而可以自动地优化缩减集群使用的节点,平衡集群资源负载,提高资源的利用率,得到更加优异的资源分配结果。
在一种实施例中,该方法还可以将专家经验量化为一组json模板文件,包括亲和性规则列表、第一预设优先级、第二预设优先级、主机节点的可用资源以及预设权重。
如果没有依托专家经验的模板文件,则需要预先设定组件中各个模块的关系、亲和性规则列表、第一预设优先级、第二预设优先级、预设权重和主机节点的可用资源情况。
通过固化专家经验,生成模板文件,使得集群资源规划方法可以高效自动化,在模板文件中创建了组件亲和性规则的定义,可以精确表达各组件之间的依赖关系和互斥关系,并且通过模板文件可以对组件的资源需求进行分层考虑,对不同层的需求分别考虑,此外,还可以根据需要引入不同的模板组合,并按需求调整其优先级关系,以保证资源分配的合理性以及优异性。
实施例2
基于相同的构思,本发明实施例还提供一种集群资源规划设备,应用于公有云平台,由于该集群资源规划设备即是本发明实施例中的方法中的集群资源规划设备,并且该集群资源规划设备解决问题的原理与该方法相似,因此该集群资源规划设备的实施可以参见方法的实施,重复之处不再赘述。
下面参照图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系统、磁带驱动器以及数据备份存储系统等。
实施例3
基于相同的构思,本发明实施例还提供一种集群资源规划装置,应用于公有云平台,由于该装置即是本发明实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,上述装置包括以下模块:
优先级排序模块801,用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级、第二预设优先级以及预设资源需求对第一组件列表进行排序,得到待调度实例列表;
规则校验模块802,用于针对待调度实例列表中每个模块中的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
资源优选模块803,用于根据第二预设规则,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到主机节点和实例的绑定关系;
资源再平衡模块804,用于对主机节点和实例的绑定关系进行调整,确定调整后的绑定关系符合预设条件后,将调整后的绑定关系中主机节点对应的实例部署到主机节点上。
在一种实施例中,预设条件,包括:
调整后的绑定关系中主机节点使用数量小于调整前的绑定关系中主机节点使用数量;或,调整后的绑定关系中主机节点使用数量等于调整前的绑定关系中主机节点使用数量,且调整后的主机节点的资源平均使用率的方差小于调整前的主机节点的资源平均使用率的方差。
在一种实施例中,资源再平衡模块804具体用于:
将主机节点和实例的绑定关系中,任意一个主机节点作为源主机节点,其他主机节点作为目标主机节点;针对源主机节点对应的实例中的任意一个实例,遍历目标主机节点,选择满足部署实例的一个第一目标主机节点;将实例添加到绑定关系中第一目标主机节点对应的实例中。
在一种实施例中,优先级排序模块801具体用于:
根据第一预设优先级对第一组件列表中每个组件进行降序排列,得到第二组件列表;根据第二预设优先级对第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;针对组件模块列表中的每个模块,根据模块对应的实例个数的属性信息,为模块创建实例,得到组件模块实例列表;针对组件模块实例列表中的每个实例,根据实例的预设资源需求对组件模块实例列表进行降序排列,得到待调度实例列表。
在一种实施例中,第一预设规则包括:
当前主机节点满足强亲和性规则;且,当前主机节点满足强反亲和性规则;且,当前主机节点的可用资源满足当前实例的部署要求。
在一种实施例中,资源优选模块803具体用于:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定实例对应的主机节点的分值;对每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为最优主机节点。
在一种实施例中,若分值最高的主机节点包括至少两个,资源优选模块803还用于:
对至少两个分值最高的主机节点部署当前模块后的剩余资源进行比较,将剩余资源最少的主机节点作为最优主机节点。
在一种实施例中,若任意一个实例对应的预选主机节点列表为空,资源优选模块803还用于:
获取主机节点列表外的其他主机节点,并将主机节点加入到主机节点列表中;将实例部署到主机节点上。
实施例4
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的集群资源规划装置中各模块的步骤,例如,网络侧设备可以用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级、第二预设优先级以及预设资源需求对第一组件列表进行排序,得到待调度实例列表;针对待调度实例列表中每个模块中的每个实例,根据第一预设规则在主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;根据第二预设规则,从预选主机节点列表中选择最优主机节点后,将最优主机节点与当前实例进行绑定,得到主机节点和实例的绑定关系;对主机节点和实例的绑定关系进行调整,确定调整后的绑定关系符合预设条件后,将调整后的绑定关系中主机节点对应的实例部署到主机节点上。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图9所示,描述了根据本发明的实施方式的用于集群资源规划的程序产品90,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了系统的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种集群资源规划方法,其特征在于,应用于公有云平台,包括:
获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级、第二预设优先级以及预设资源需求对所述第一组件列表进行排序,得到待调度实例列表;
针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
根据第二预设规则,从所述预选主机节点列表中选择最优主机节点后,将所述最优主机节点与所述当前实例进行绑定,得到主机节点和实例的绑定关系;
对主机节点和实例的所述绑定关系进行调整,确定调整后的绑定关系符合预设条件后,将调整后的绑定关系中主机节点对应的实例部署到所述主机节点上。
2.如权利要求1所述的方法,其特征在于,所述预设条件,包括:
调整后的绑定关系中主机节点使用数量小于调整前的绑定关系中主机节点使用数量;或
调整后的绑定关系中主机节点使用数量等于调整前的绑定关系中主机节点使用数量,且调整后的主机节点的资源平均使用率的方差小于调整前的主机节点的资源平均使用率的方差。
3.如权利要求2所述的方法,其特征在于,所述对主机节点和实例的所述绑定关系进行调整,包括:
将所述主机节点和实例的绑定关系中,任意一个主机节点作为源主机节点,其他主机节点作为目标主机节点;
针对所述源主机节点对应的实例中的任意一个实例,遍历所述目标主机节点,选择满足部署所述实例的一个第一目标主机节点;
将所述实例添加到所述绑定关系中所述第一目标主机节点对应的实例中。
4.如权利要求1所述的方法,其特征在于,所述根据第一预设优先级、第二预设优先级以及预设资源需求对所述第一组件列表进行排序,得到待调度实例列表,包括:
根据第一预设优先级对所述第一组件列表中每个组件进行降序排列,得到第二组件列表;
根据第二预设优先级对所述第二组件列表中每个组件对应的模块进行降序排列,得到与当前组件对应的组件模块列表;
针对所述组件模块列表中的每个模块,根据所述模块对应的实例个数的属性信息,为所述模块创建实例,得到组件模块实例列表;
针对所述组件模块实例列表中的每个实例,根据所述实例的预设资源需求对所述组件模块实例列表进行降序排列,得到所述待调度实例列表。
5.如权利要求1所述的方法,其特征在于,所述第一预设规则包括:
当前主机节点满足强亲和性规则;
且,所述当前主机节点满足强反亲和性规则;
且,所述当前主机节点的可用资源满足所述当前实例的部署要求。
6.如权利要求1所述的方法,其特征在于,所述根据所述预选主机节点列表和第二预设规则,从所述预选主机节点列表中选择最优主机节点,包括:
针对每个实例对应的每个主机节点,根据预设的主机节点、实例和分值的对应关系,确定所述实例对应的所述主机节点的分值;
对所述每个实例对应的每个主机节点的分值进行比较,将分值最高的主机节点作为所述最优主机节点。
7.如权利要求6所述的方法,其特征在于,若所述分值最高的主机节点包括至少两个,该方法还包括:
对所述至少两个分值最高的主机节点部署当前模块后的剩余资源进行比较,将剩余资源最少的主机节点作为所述最优主机节点。
8.如权利要求1~7任一所述的方法,其特征在于,若任意一个实例对应的预选主机节点列表为空,该方法还包括:
获取所述主机节点列表外的其他主机节点,并将所述主机节点加入到所述主机节点列表中;
将所述实例部署到所述主机节点上。
9.一种集群资源规划设备,其特征在于,应用于公有云平台,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1~8任一项所述的集群资源规划方法的步骤。
10.一种集群资源规划装置,其特征在于,应用于公有云平台,包括:
优先级排序模块,用于获取到主机节点列表以及需要部署的第一组件列表后,根据第一预设优先级、第二预设优先级以及预设资源需求对所述第一组件列表进行排序,得到待调度实例列表;
规则校验模块,用于针对所述待调度实例列表中每个模块中的每个实例,根据第一预设规则在所述主机节点列表中选择主机节点,得到与当前实例对应的预选主机节点列表;
资源优选模块,用于根据所述预选主机节点列表和第二预设规则,从所述预选主机节点列表中选择最优主机节点,将所述最优主机节点与所述当前实例绑定,以得到第一绑定关系列表;
资源再平衡模块,用于根据所述第一绑定关系列表和第三预设规则,调整所述第一绑定关系列表中的主机节点与实例的绑定关系,得到第二绑定关系列表,以根据所述第二绑定关系列表对集群资源进行规划分配。
CN202210887827.3A 2022-07-26 2022-07-26 一种集群资源规划方法、设备及装置 Pending CN115309544A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210887827.3A CN115309544A (zh) 2022-07-26 2022-07-26 一种集群资源规划方法、设备及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210887827.3A CN115309544A (zh) 2022-07-26 2022-07-26 一种集群资源规划方法、设备及装置

Publications (1)

Publication Number Publication Date
CN115309544A true CN115309544A (zh) 2022-11-08

Family

ID=83859073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210887827.3A Pending CN115309544A (zh) 2022-07-26 2022-07-26 一种集群资源规划方法、设备及装置

Country Status (1)

Country Link
CN (1) CN115309544A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117271066A (zh) * 2023-11-22 2023-12-22 苏州元脑智能科技有限公司 应用部署方法、装置、电子设备及可读存储介质
WO2024021467A1 (zh) * 2022-07-26 2024-02-01 天翼云科技有限公司 一种集群资源规划方法、设备、装置及介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024021467A1 (zh) * 2022-07-26 2024-02-01 天翼云科技有限公司 一种集群资源规划方法、设备、装置及介质
CN117271066A (zh) * 2023-11-22 2023-12-22 苏州元脑智能科技有限公司 应用部署方法、装置、电子设备及可读存储介质
CN117271066B (zh) * 2023-11-22 2024-03-01 苏州元脑智能科技有限公司 应用部署方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
US11243805B2 (en) Job distribution within a grid environment using clusters of execution hosts
CN110727512B (zh) 集群资源调度方法、装置、设备及储存介质
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
CN115309544A (zh) 一种集群资源规划方法、设备及装置
US9753778B2 (en) Domain-agnostic resource allocation framework
JP5121936B2 (ja) リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法
CN111768006A (zh) 一种人工智能模型的训练方法、装置、设备及存储介质
CN109992407A (zh) 一种yarn集群gpu资源调度方法、装置和介质
Teng et al. Simmapreduce: A simulator for modeling mapreduce framework
WO2021093783A1 (zh) 实时资源调度方法、装置、计算机设备及存储介质
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
CN115134371A (zh) 包含边缘网络算力资源的调度方法、系统、设备及介质
CN112862098A (zh) 一种集群训练任务处理的方法及系统
CN115391023A (zh) 多任务容器集群的计算资源优化方法及装置
CN114625500A (zh) 云环境下拓扑感知的微服务应用调度的方法及应用
CN117271101B (zh) 一种算子融合方法、装置、电子设备及存储介质
CN115309501A (zh) 一种集群资源规划方法、设备、装置及介质
CN114911613A (zh) 一种云际计算环境中跨集群资源高可用调度方法及系统
CN114237894A (zh) 容器调度方法、装置、设备以及可读存储介质
Delavar et al. A goal-oriented workflow scheduling in heterogeneous distributed systems
CN105872109A (zh) 云平台负载运行方法
CN113238873B (zh) 一种用于航天器资源优化配置的方法
CN109800060A (zh) 云平台系统、管理方法、设备及存储介质
Prado et al. On providing quality of service in grid computing through multi-objective swarm-based knowledge acquisition in fuzzy schedulers
Aryan et al. A bi-objective workflow application scheduling in cloud computing systems

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