CN108073448A - 宿主机资源分配方法、装置、宿主机调度方法及装置 - Google Patents

宿主机资源分配方法、装置、宿主机调度方法及装置 Download PDF

Info

Publication number
CN108073448A
CN108073448A CN201611029823.2A CN201611029823A CN108073448A CN 108073448 A CN108073448 A CN 108073448A CN 201611029823 A CN201611029823 A CN 201611029823A CN 108073448 A CN108073448 A CN 108073448A
Authority
CN
China
Prior art keywords
host
group
planes
resources
available volume
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.)
Granted
Application number
CN201611029823.2A
Other languages
English (en)
Other versions
CN108073448B (zh
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft 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 Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201611029823.2A priority Critical patent/CN108073448B/zh
Publication of CN108073448A publication Critical patent/CN108073448A/zh
Application granted granted Critical
Publication of CN108073448B publication Critical patent/CN108073448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例提供了宿主机资源分配方法、装置、宿主机调度方法及装置,该宿主机资源分配方法中,可以由服务器首先获得当前时刻每个宿主机的第一可用资源量;再根据第一可用资源量,计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量;然后根据宿主机群的数量和该可用资源总量,计算所有宿主机群的可用资源量的平均值;再分别计算每个宿主机群的第二可用资源量与平均值的差值;最后根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量。应用本发明实施例提供的方案,可以保证整个宿主机集群可用资源的动态均衡分配,进而减少宿主机调度耗时,加速宿主机调度过程。

Description

宿主机资源分配方法、装置、宿主机调度方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及宿主机资源分配方法、装置、宿主机调度方法及装置。
背景技术
信息化的不断发展使得人们对计算和存储等资源的需求急速增长,在现有的计算机领域中,人们需要投入更多的硬件设备,以及更多的机房环境设备,因此,运行维护成本和人力成本也相应增加,为了节约成本,云技术越来越多地应用到计算机领域中。众所周知,云服务提供商配置有多个宿主机,所有的宿主机构成一个宿主机集群,云服务提供商将多个宿主机的资源通过云技术配置在云端,并根据用户需要在宿主机中为用户创建相应的云服务,例如,为用户创建虚拟主机、数据库或网盘。
云服务行业中,较为重要的一个指标即为云服务的创建速度,而创建云服务的过程中,选择用以创建云服务的宿主机,即宿主机调度,是十分重要的一个环节。现有的宿主机调度方法可以通过通过服务器实现,服务器在得到云服务创建请求中所携带的资源需求信息后,遍历所有的宿主机,进而为用户选择最优的用以创建云服务的宿主机。
云服务提供商所配置的宿主机的数量通常为上千台,甚至于上万台,但是,现有技术中,宿主机集群的可用资源都是集中调度,宿主机的数量越多,遍历所有宿主机的时间越长,进而导致宿主机调度时间越长。
可见,如何对宿主机集群的可用资源进行分散调度,成为目前急需解决的问题。
发明内容
本发明实施例的目的在于提供宿主机资源分配方法、装置、宿主机调度方法及装置,以实现对宿主机集群的可用资源的动态均衡分配,进而实现分散调度,减少宿主机调度耗时,加速宿主机调度过程。具体技术方案如下:
为达上述目的,第一方面,本发明实施例提供了一种宿主机资源分配方法,预先将宿主机集群划分成至少两个宿主机群,其中,每个所述宿主机群中包含至少一个宿主机,所述方法包括:
获得当前时刻每个宿主机的第一可用资源量;
根据所述第一可用资源量,计算每个宿主机群的第二可用资源量和所述宿主机集群的可用资源总量;
根据宿主机群的数量和所述可用资源总量,计算所有宿主机群的可用资源量的平均值;
分别计算每个宿主机群的第二可用资源量与平均值的差值;
根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量。
优选的,所述根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量的步骤,包括:
确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
针对每一所述第二类宿主机群,获得所述第二类宿主机群的第二可用资源量与所述平均值的第二差值;
依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
优选的,所述依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合的步骤,包括:
按照每一个所述第二类宿主机群对应的第二差值从大到小的顺序,依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合。
优选的,所述根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量的步骤,包括:
确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
确定所有的所述待分配宿主机在第二类宿主机群中分配的所有分配方案;
确定每一种分配方案中,对应所述平均值和每个第二类宿主机群的第二可用资源量的方差;
按照方差最小的分配方案,在所述第二类宿主机群中分配所述待分配宿主机。
优选的,所述方法还包括:
计算所述可用资源总量与宿主机集群的资源总量的比值;
判断所述比值是否大于预设阈值;
如果是,向目标设备发送资源预警信息,以使得所述目标设备发出资源预警提示。
优选的,所述获得当前时刻每个宿主机的第一可用资源量的步骤,包括:
当到达预设时间周期时,获得当前时刻每个宿主机的第一可用资源量;
或,当服务器接收到的云服务创建请求达到了预设数量时,获得当前时刻每个宿主机的第一可用资源量。
第二方面,本发明实施例提供了一种宿主机调度方法,所述方法包括:
获得创建目标云服务的目标请求,其中,所述目标请求包括创建所述目标云服务所需的目标资源信息以及所述目标云服务对应的用户标识;
基于预设的选择方式,从预先划分的宿主机群中选择目标宿主机群,其中,所述宿主机群中的可用资源为根据上述宿主机资源分配方法分配的;
基于目标资源信息和用户标识,为用户在所述目标宿主机群中确定用以创建所述目标云服务的目标宿主机。
第三方面,本发明实施例提供了一种宿主机资源分配装置,所述装置包括:
预先划分模块,用于预先将宿主机集群划分成至少两个宿主机群,其中,每个所述宿主机群中包含至少一个宿主机;
第一获得模块,用于获得当前时刻每个宿主机的第一可用资源量;
第一计算模块,用于根据所述第一可用资源量,计算每个宿主机群的第二可用资源量和所述宿主机集群的可用资源总量;
第二计算模块,用于根据宿主机群的数量和所述可用资源总量,计算所有宿主机群的可用资源量的平均值;
第三计算模块,用于分别计算每个宿主机群的第二可用资源量与平均值的差值;
调整模块,用于根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量。
优选的,所述调整模块,包括:
第一确定子模块,用于确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
第二确定子模块,用于针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
获得子模块,用于针对每一所述第二类宿主机群,获得所述第二类宿主机群的第二可用资源量与所述平均值的第二差值;
第一分配子模块,用于依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
优选的,所述第一分配子模块,具体用于:
按照每一个所述第二类宿主机群对应的第二差值从大到小的顺序,依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
优选的,所述调整模块,包括:
第三确定子模块,用于确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
第四确定子模块,用于针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
第五确定子模块,用于确定所有的所述待分配宿主机在第二类宿主机群中分配的所有分配方案;
第六确定子模块,用于确定每一种分配方案中,对应所述平均值和每个第二类宿主机群的第二可用资源量的方差;
第二分配子模块,用于按照方差最小的分配方案,在所述第二类宿主机群中分配所述待分配宿主机。
优选的,所述装置还包括:
第四计算模块,用于在计算所述可用资源总量与宿主机集群的资源总量的比值;
判断模块,用于判断所述比值是否大于预设阈值;
发送模块,用于在所述判断模块的判断结果为是的情况下,向目标设备发送资源预警信息,以使得所述目标设备发出资源预警提示。
优选的,所述第一获得模块,具体用于:
当到达预设时间周期时,获得当前时刻每个宿主机的第一可用资源量;
或,当服务器接收到的云服务创建请求达到了预设数量时,获得当前时刻每个宿主机的第一可用资源量。
第四方面,本发明实施例提供了一种宿主机调度装置,所述装置包括:
第二获得模块,用于获得创建目标云服务的目标请求,其中,所述目标请求包括创建所述目标云服务所需的目标资源信息以及所述目标云服务对应的用户标识;
选择模块,用于基于预设的选择方式,从预先划分的宿主机群中选择目标宿主机群,其中,所述宿主机群中的可用资源为通过上述宿主机资源分配装置分配的;
确定模块,用于基于目标资源信息和用户标识,为用户在所述目标宿主机群中确定用以创建所述目标云服务的目标宿主机。
由以上可见,在本发明实施例中,首先获得当前时刻每个宿主机的第一可用资源量;再根据第一可用资源量,计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量;然后根据宿主机群的数量和该可用资源总量,计算所有宿主机群的可用资源量的平均值;再分别计算每个宿主机群的第二可用资源量与平均值的差值;最后根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量。本发明实施例中,服务器动态调整预先划分的宿主机群中的可用资源,保证整个宿主机集群可用资源的动态均衡分配,确保服务器可以在每个宿主机群中成功进行宿主机的调度,进而在整个宿主机集群中实现分散调度,减少宿主机调度耗时,加速宿主机调度过程。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的宿主机资源分配方法的第一种流程示意图;
图2为本发明实施例提供的宿主机资源分配方法的第二种流程示意图;
图3为本发明实施例提供的宿主机资源分配方法的第三种流程示意图;
图4为本发明实施例提供的宿主机调度方法的流程示意图;
图5为本发明实施例提供的宿主机资源分配装置的第一种结构示意图;
图6为本发明实施例提供的宿主机资源分配装置的第二种结构示意图;
图7为本发明实施例提供的宿主机资源分配装置的第三种结构示意图;
图8为本发明实施例提供的宿主机调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面先对本申请文件中涉及到的技术术语进行简单介绍。
在现有技术中,宿主机可以理解为担当一“宿主”身份的物理主机,用户可以在宿主机中创建相应的服务,该服务租用宿主机的内存、CPU(Central Processing Unit,中央处理器)、硬盘等资源;例如常见的虚拟机,虚拟机寄宿在宿主机内,其需要利用宿主机的内存、CPU、硬盘等资源才能运行。可以理解,本申请文件中,所提及的宿主机资源即为此处所述的内存、CPU、硬盘等资源。
在云技术领域,可以在宿主机中创建的云服务包括虚拟云主机、网盘、数据库等。另外,云服务提供商所配置的宿主机的数量数量庞大,通常为上千台,甚至于上万台,所有的宿主机可以安装在一个大机房中,云服务提供商所配置的宿主机构成一个大的宿主机集群。
如前所述,宿主机的调度可以是指:用于调度宿主机的服务器从上述宿主机集群中的所有宿主机中,为用户选择出用以创建用户所需的云服务的宿主机,当然,服务器可以随时获得每个宿主机的可用资源量。例如,用户需要创建一个具有2个CPU内核、5G内存和800G硬盘容量的虚拟机,则服务器根据创建该虚拟机所需要消耗的宿主机资源为用户选择一个宿主机,以创建该虚拟机。
在现有技术中,服务器通信连接上述宿主机集群,服务器在得到云服务创建请求中所携带的资源需求信息后,遍历宿主机的集群中的所有宿主机,进而为用户选择最优的用以创建云服务的宿主机,可以理解,现有技术的宿主机调度方法是一种在宿主机集群中进行的集中调度。在实际应用中,可以是在服务器中配置调度(schduler)程序,完成调度过程。
例如,服务器接收到的云服务创建请求中表明,用户需要创建一个具有3个CPU内核、20G内存和1500G硬盘容量的虚拟云主机,服务器在得到该云服务创建请求后,开始遍历宿主机群中的所有宿主机,为该用户选择当前可用资源量最大的宿主机作为创建虚拟云主机的宿主机。
由以上可见,现有技术中的宿主机调度方法中,由于服务器需要遍历宿主机群中的所有宿主机,产生宿主机调度速度慢,调度时间长的问题。
另一方面,宿主机的调度过程是云服务创建过程中的一个重要环节,现有技中存在的宿主机调度速度慢,调度时间长的问题,直接造成云服务创建过程慢、创建时间长的问题,影响用户体验。
而且,用户使用云服务提供商创建的云服务,需要支付一定的费用,由于现有技术中创建云服务所需时间较长,不能在短时间内成功创建云服务,所以,云服务商在为用户创建云服务的之前,首先获取对应于用户的云服务创建请求的订单并计费,获取到订单后再创建云服务。
但是,如果获取到订单后创建云服务失败,云服务提供商需要人工去撤消已生成的订单,不但会造成云服务提供商人力资源的浪费,也会影响用户的体验。
为了实现分散调度,本发明实施例首先提供了一种宿主机资源分配方法。
在本发明实施例中,服务器预先将宿主机集群划分成至少两个宿主机群,其中,每个宿主机群中包含至少一个宿主机。
应该说明,对宿主机集群划分后的得到的宿主机群的数量应根据实际需要合理设定,例如,根据宿主机集群中宿主机的总数量来划分,如:宿主机集群中宿主机的总数量为2000,则可以划分出20个分区,而当宿主机集群中宿主机的总数量为5000时,则可以划分出50个分区。当然,本发明实施例对划分后得到宿主机群的数量并不做限定。
在本发明实施例中上述预先将所有的宿主机构成的集群划分成至少两个宿主机群,可以是:
基于宿主机的总数量,预先将所有的宿主机构成的集群划分成:至少两个具有相同数量宿主机的宿主机群。
例如,云服务提供商配置有1000台宿主机,则可以将整个宿主机集群划分成10个宿主机群,每个宿主机群中的宿主机的数量为100台。
如图1所示,本发明实施例提供的宿主机资源分配方法包括:
S101:获得当前时刻每个宿主机的第一可用资源量。
由于需要动态地调整各个宿主机群的可用资源量,所以在本发明实施例中,上述获得当前时刻每个宿主机的第一可用资源量(S101)的步骤,可以是:
当到达预设时间周期时,获得当前时刻每个宿主机的第一可用资源量。
如:预设时间周期为1天,服务器可以在每天某一固定时刻执行一次步骤S101,并继续执行下述步骤S102~S105。例如:服务器每天14点整执行一次步骤S101,获得宿主机集群中每个宿主机集群中的第一可用资源量。
上述获得当前时刻每个宿主机的第一可用资源量(S101)的步骤,还可以是:当服务器接收到的云服务创建请求达到了预设数量时,获得当前时刻每个宿主机的第一可用资源量。
例如,服务器每接收到50个云服务创建请求后,执行一次步骤S101,并继续执行下述步骤S102~S105。
S102:根据第一可用资源量,计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量。
例如:上述可用资源量指的是可用CPU内核数,即CPU空闲核数,宿主机集群由宿主机a~j组成,宿主机集群被划分为宿主机群X、Y和Z,宿主机群X中包含宿主机g~j,宿主机群Y中包含宿主机a~c,宿主机群Z中包含宿主机d~f。若宿主机a~j的第一可用资源量分别为1~10个CPU内核,则宿主机群X的第二可用资源量为宿主机g~j的第一可用资源量之和:34个CPU内核,宿主机群Y的第二可用资源量为宿主机a~c的第一可用资源量之和:6个CPU内核,宿主机群Z的第二可用资源量为宿主机d~f的第一可用资源量之和:15个CPU内核,宿主机集群的可用资源总量为55个CPU内核。
S103:根据宿主机群的数量和该可用资源总量,计算所有宿主机群的可用资源量的平均值。
例如:上述资源量表示硬盘内存,宿主机群的数量为10个,步骤S102确定的宿主机集群的可用资源总量为180T,则平均值为18T。
S104:分别计算每个宿主机群的第二可用资源量与平均值的差值。
例如,上述资源量表示硬盘内存,宿主机群的数量为5个,平均值为10T,假设5个宿主机群的第二可用资源量分别为6T、1T、20T、13T和10T,则5个宿主机群分别对应的差值为-4T、-9T、10T、3T和0T。
S105:根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量。
在本发明实施例中,计算获得该平均值后,可以调整各个宿主机群中的第二可用资源量,保证调整后各个宿主机群中的第二可用资源量接近该平均值。
在步骤S104中,差值为负数表明:该差值对应的宿主机群的第二可用资源量小于平均值,差值为正数表明:该差值对应的宿主机群的第二可用资源量大于平均值。在本发明实施例中,可以从第二可用资源量大于该平均值的宿主机群中的选择一部分宿主机,划分到第二可用资源量小于该平均值的宿主机群中。
本发明实施例中提供了两种调整差值满足预设条件的宿主机群中宿主机的数量的方法,具体如下:
第一种调整方法:在图1所示方法实施例的基础上,如图2所示,上述根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量(S105)的步骤,可以包括:
S1051:确定第二可用资源量大于该平均值的第一类宿主机群,以及第二可用资源量小于该平均值的第二类宿主机群。
S1052:针对每一第一类宿主机群,获得第一类宿主机群的第二可用资源量与该平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近该第一差值的第一宿主机集合;将第一宿主机集合中的宿主机确定为待分配宿主机。
应该说明的是,此处的第一宿主机集合中包含的宿主机数量可以是一个,也可以是多个,只需要保证该第一宿主机集合中包含的宿主机对应的第一可用资源量之和最接近于该第一差值即可,即:在该第一类宿主机群中,不存在任意一个宿主机第一可用资源量,或多个宿主机的第一可用资源量之和与该第一差值的绝对值,小于该第一宿主机集合中的宿主机的第一可用资源量之和与该第一差值的绝对值。
例如,上述可用资源量为可用硬盘容量,对于某一第一类宿主机群x,其对应的第二可用资源量为26T的硬盘资源量,该平均值为18T,则此时第一类宿主机群x的第二可用资源量与该平均值的差值为8T,如果在第一类宿主机群x中,存在宿主机a~f,宿主机a~f分别对应的第一可用资源量为2T、1T、3T、3T、4T和8T,则此时,第一宿主机集合可以是由宿主机a、c和d组成,还可以是仅由宿主机f构成。
应该说明的是,若在上例的第一类宿主机群x中,所确定的第一宿主机集合是由宿主机a、c和d组成的,此后,本发明实施例并不限定于将上述宿主机a、c和d全部分配到同一第二类宿主机群中,上述宿主机a、c和d可以分配到不同的第二类宿主机群中。
S1053:针对每一第二类宿主机群,获得第二类宿主机群的第二可用资源量与该平均值的第二差值。
S1054:依次针对每一个第二类宿主机群,从所有未分配到第二类宿主机群的待分配宿主机中,确定第一可用资源量之和最接近第二差值的第二宿主机集合,将第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
可以理解,此处的所有未分配到第二类宿主机群的待分配宿主机,是指从上述所有的第一类宿主机群中确定的所有待分配宿主机,且待分配宿主机还未被分配到任意一个第二类宿主机群中。
例如,上述可用资源量为可用CPU核数,现有3个第二类宿主机群X、Y和Z,第二类宿主机群X、Y和Z的第二可用资源量与该平均值的第二差值分别为-3、-5和-8,假设所有未分配到第二类宿主机群的待分配宿主机为:宿主机a~e,且宿主机a~e中的第一可用资源量分别为:1、2、3、4和6个CPU内核。
首先,对于第二类宿主机群X,其对应的第二差值为-3,则此时可以确定的第二宿主机集合可以仅包含宿主机c,然后将宿主机c分配到该第二类宿主机群X中;然后,对于第二类宿主机群Y,其对应的第二差值为-5,则此时可以确定的第二宿主机集合可以包含宿主机a和d,然后将宿主机a和d分配到该第二类宿主机群Y中;最后,对于第二类宿主机群Z,其对应的第二差值为-8,则此时可以确定的第二宿主机集合可以包含宿主机b和e,然后将宿主机b和e分配到该第二类宿主机群Z中。
应该说明的是,上述向第二类宿主机群中分配待分配宿主机是依次进行的,可以理解,对于多个第二类宿主机群中分配顺序越靠前的第二类宿主机群,服务器可以选择的待分配宿主机越多,即服务器可以为分配顺序越靠前的第二类宿主机群选择较优的第二宿主机集合。所以,本发明实施例中,按照对应的第二差值从大到小的顺序,为各个第二类宿主机群分配待分配宿主机。
即:上述依次针对每一个第二类宿主机群,从所有未分配到第二类宿主机群的待分配宿主机中,确定第一可用资源量之和最接近第二差值的第二宿主机集合的步骤,可以包括:
按照每一个第二类宿主机群对应的第二差值从大到小的顺序,依次针对每一个第二类宿主机群,从所有未分配到第二类宿主机群的待分配宿主机中,确定第一可用资源量之和最接近第二差值的第二宿主机集合。
例如,上述可用资源量为可用CPU核数,现有5个第二类宿主机群V、W、X、Y和Z,第二类宿主机群V、W、X、Y和Z的第二可用资源量与该平均值的第二差值分别为-6、-8、-3、-5和-2,假设所有未分配到第二类宿主机群的待分配宿主机为:宿主机a~i,且宿主机a~i中的第一可用资源量分别为:1、2、2、3、7、2、4、1和2个CPU内核。
假设直接按照V、W、X、Y和Z的分配顺序,则首先为第二类宿主机群V确定的第二宿主机集合可以包含宿主机a、b和d,然后再为第二类宿主机群W确定的第二宿主机集合可以包含宿主机e和h,为第二类宿主机群X确定的第二宿主机集合可以包含宿主机c和f,为第二类宿主机群Y确定的第二宿主机集合可以包含宿主机g和i,而为第二类宿主机群Z确定的第二宿主机集合为空集。
由于-2>-3>-5>-6>-8,在本发明实施例中,可以按照Z、X、Y、V和W的顺序,为各个第二类宿主机群分配上述待分配宿主机:
首先为第二类宿主机群Z确定的第二宿主机集合可以仅包含宿主机b,然后再为第二类宿主机群X确定的第二宿主机集合可以包含宿主机a和c,再为第二类宿主机群Y确定的第二宿主机集合可以包含宿主机d和f,为第二类宿主机群V确定的第二宿主机集合可以包含宿主机g和i,最后为第二类宿主机群W确定的第二宿主机集合可以包含宿主机e和h。
应该说明的是,由于上述的第二差值为负数,所以上述的第二差值越大,表明:该第二差值对应的第二类宿主机群的可用资源量,与上述平均值的差距越小。
第二种调整方法:在图1所示方法实施例的基础上,如图3所示,上述根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量(S105)的步骤,可以包括:
S1055:确定第二可用资源量大于该平均值的第一类宿主机群,以及第二可用资源量小于该平均值的第二类宿主机群。
S1056:针对每一第一类宿主机群,获得第一类宿主机群的第二可用资源量与该平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近第一差值的第一宿主机集合;将第一宿主机集合中的宿主机确定为待分配宿主机。
可以理解,此处的步骤S1055和S1056与上述第一种调整方法中的步骤S1051和S1052相同,本发明实施例在此不再详细介绍步骤S1055和S1056。
S1057:确定所有的待分配宿主机在第二类宿主机群中分配的所有分配方案。
例如,当前的待分配宿主机包括宿主机a、b、c,第二类宿主机群为X和Y,则所有的待分配宿主机在第二类宿主机群中分配的所有分配方案如下表1所示。
表1
方案 1 2 3 4 5 6 7 8
第二类宿主机群X a;b;c a;b a;c b;c a b c
第二类宿主机群Y a;b;c c b a b;c a;c a;b
由表可以理解,上例中存在8个不同的分配方案,例如方案4中,服务器将待分配宿主机a和c分配到第二类宿主机群X中,将待分配宿主机b分配到第二类宿主机群Y中。
S1058:确定每一种分配方案中,对应该平均值和每个第二类宿主机群的第二可用资源量的方差。
应该注意的是,此处的第二类宿主机群的第二可用资源量应该为对分配方案下该第二类宿主机群的第二可用资源量。例如,如果分配前第二类宿主机群X的第二可用资源量为x,在某一分配方案中,第二类宿主机群X的第二可用资源量为x+m,则进行计算上述方差时,第二类宿主机群X的第二可用资源量为x+m。
S1059:按照方差最小的分配方案,在第二类宿主机群中分配待分配宿主机。
可以理解的是,方差表示一组数据的离散程度,在本发明实施例中,方差越小,表明该分配方案中,各个第二类宿主机群的第二可用资源量整体上都比较接近该平均值。
如上表1所对应的实例,假设上述8个分配方案中,方案7对应的方差最小,则按照方案7,将待分配宿主机b分配到第二类宿主机X中,将待分配宿主机a和c分配到第二类宿主机Y中。
应该说明的是,上述两种调整方式中,可以不调整可用资源已被用完的宿主机,但是本发明实施例中并不限于此,本发明实施例也可以调整可用资源已被用完的宿主机。另外,本发明实施例并不限定该调整方式,除了上述两种调整方式,还可以用其它的调整方式,例如,直接将宿主机集群中所有的宿主机重新划分。
本发明实施例中,在图1~3所示的任一方法实施例的基础上,该方法还可以包括:
计算可用资源总量与宿主机集群的资源总量的比值;
判断该比值是否大于预设阈值;
如果是,向目标设备发送资源预警信息,以使得该目标设备发出资源预警提示。
上述目标设备可以是向人们发出警报消息的设备,例如蜂鸣器,警示灯等。
可以理解,如果整个宿主机集群的可用资源总量过少时,云服务提供商需要向整个宿主机集群中增加新的宿主机,以增加宿主机集群的可用资源总量。在本发明实施例中,可以实现自动预警,以告知云服务提供商增加宿主机集群的可用资源总量。
例如,该资源量为硬盘资源量,宿主机集群的资源总量为1000T,当前可用资源总量为850T,则该比值为0.85,假设该预设阈值为0.8,则此时由于0.85>0.8,服务器向蜂鸣器发送资源预警信息,使得蜂鸣器发出报警声音。
由以上可见,在本发明实施例中,首先获得当前时刻每个宿主机的第一可用资源量;再根据第一可用资源量,计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量;然后根据宿主机群的数量和该可用资源总量,计算所有宿主机群的可用资源量的平均值;再分别计算每个宿主机群的第二可用资源量与平均值的差值;最后根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量。本发明实施例中,服务器动态调整预先划分的宿主机群中的可用资源,保证整个宿主机集群可用资源的动态均衡分配,确保服务器可以在每个宿主机群中成功进行宿主机的调度,进而在整个宿主机集群中实现分散调度,减少宿主机调度耗时,加速宿主机调度过程。
也就是说,本发明实施例提供的宿主机资源分配方法是一种动态分配方法。当然,宿主机资源分配方法也可以采用静态分配方法,例如:仅在创建整个宿主机集群时,直接将宿主机集群被划分成多个具有相同可用资源量的宿主机群,而后在整个宿主机集群的运行过程中不再调整各个宿主机群的可用资源量。
但是,上述静态分配方法存在下述缺陷:
随着云服务的不断创建,上述不同的宿主机群中的可用资源量是不同的,可能出现在某一时刻,某一宿主机群中无可用资源,而其它的宿主机群中仍然具有大量的可用资源,在此时刻后,如果服务器确定该宿主机群为目标宿主机群,由于该宿主机群中无可用资源,所以服务器还需要重新确定新的目标宿主机群,并在新的目标宿主机群中进行宿主机的调度,降低了宿主机的调度速度。因此,在对宿主机资源分配时,推荐采用动态分配方法。
下面再通过具体实例对本发明实施例进行详细介绍,在此实例中,假设该可用资源量为可用CPU内核数。
刚搭建宿主机集群时,服务器预先将宿主机集群划分成10个宿主机群,每个宿主机群中包含有100个宿主机,每个宿主机的可用资源量均为5个CPU内核。
服务器每天14点整进行一次上述宿主机资源分配方法,在某一天的14点,服务器查询获得当前时刻每个宿主机的第一可用资源量,并计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量,然后计算所有宿主机群的可用资源量的平均值,以及每个宿主机群的第二可用资源量与平均值的差值。
然后,服务器确定第二可用资源量大于该平均值的第一类宿主机群,其数目为5个,以及第二可用资源量小于该平均值的第二类宿主机群,其数目为5个。
服务器再针对每一第一类宿主机群,获得第一类宿主机群的第二可用资源量与该平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近第一差值的第一宿主机集合;将第一宿主机集合中的宿主机确定为待分配宿主机。
在确定了所有的待分配宿主机后,确定所有的待分配宿主机在第二类宿主机群中分配的所有分配方案;并计算每种方案中,对应该平均值和每个第二类宿主机群的第二可用资源量的方差,确定所获得的所有方差中的最小方差。
按照方差最小的分配方案,在5个第二类宿主机群中分配所有的待分配宿主机。
在实现宿主机资源的动态分配的基础上,本发明实施例提供的宿主机调度方法,如图4所示,该宿主机调度方法包括:
S301:获得创建目标云服务的目标请求,其中,该目标请求包括创建目标云服务所需的目标资源信息以及目标云服务对应的用户标识。
可以理解,该目标请求可以是用户直接向服务器发送的一目标请求,然后服务器接收该目标请求。另外,该目标资源信息中至少包含具体的云服务种类,如虚拟云主机、数据库或网盘,以及创建该云服务所需要的资源量,如:需要2个CPU内核、20G内存和1000G的硬盘容量。
S302:基于预设的选择方式,从预先划分的宿主机群中选择目标宿主机群,其中,该宿主机群中的可用资源为根据图1~3所示的任一方法实施例提供的宿主机资源分配方法分配的。
应该说明的是,该预设的选择方式可以根据实际需要确定,但服务器在工作的过程中,所需要创建的云服务的数量是大量的,所以,应该避免服务器针对不同的云服务创建请求,每一次都选择同一宿主机群执行宿主机的调度操作。
在本发明实施例中,一种可行的选择方式中,上述基于预设的选择方式,从宿主机群中选择目标宿主机群(S302)的步骤,可以是:
从宿主机群中随机选择一个宿主机群,确定为目标宿主机群。
可以理解,随机选择的方式最为简单,而且每一个宿主机群被选择的概率近似相等,可以避免服务器每一次都选择同一宿主机群。例如,现有宿主机群0~5,服务器随机选择了宿主机群3,则服务器确定宿主机群3为目标宿主机群。
S303:基于目标资源信息和用户标识,为用户在目标宿主机群中确定用以创建目标云服务的目标宿主机。
服务器在目标宿主机群中确定目标宿主机的方法,可以与现有技术中服务器在宿主机集群中为用户调度定宿主机的方法相同,例如,现有技术的服务器在宿主机集群中选择可用资源量最大的宿主机作为创建目标云服务的宿主机,而在本发明实施例中,服务器可以在所选的目标宿主机群中选择可用资源量最大的宿主机作为目标宿主机。
另外,应该说明的是,在现有技术中,服务器会遍历宿主机集群中所有的宿主机,进而为用户选择最优的用以创建云服务的宿主机,而在本发明实施例中,服务器仅会在所选的目标宿主机群中选择目标宿主机,虽然本发明实施例所选择的目标宿主机并不是整个宿主机集群中最优的宿主机,但是本发明实施例所选的目标宿主机的资源已经足以创建目标云服务,并且可以缩短整个宿主机调度时间。
例如,云服务商对应配置的宿主机的数量为3000台,现服务器接收到一创建500G容量网盘的请求,现有技术调度宿主机时,调度耗时为6s,而调度出的宿主机的可用容量为2000G;而使用本发明实施例提供的方法,预先将该宿主机集群划分为30个宿主机集群,每个宿主机群的宿主机数量为100台,本发明实施例提供的方法的调度耗时为0.2s,而调度出的宿主机的可用容量为1200G。
另外,由于该宿主机调度方法中各个宿主机群的可用资源量为:根据图1~3所示的任一方法实施例提供的宿主机资源分配方法分配的,所以在满足整个宿主机集群资源充足的情况下,每个宿主机群中的可用资源量充足,避免宿主机群可用资源不均衡的问题,进而保证快速实现宿主机调度过程。
例如,该资源量为CPU内核数,现存在一个宿主机群,该宿主机群的资源量为100T,如果不进行上述动态调整可用资源量,很可能存在现象:
某一时刻该宿主机群中可用资源量过小,以致服务器无法在该宿主机群中调度宿主机,而该时刻,其它的宿主机群还包含有大量的可用资源,在此时刻后,如果服务器确定该宿主机群为目标宿主机群,由于该宿主机群中无可用资源,所以服务器还需要重新确定新的目标宿主机群,并在新的目标宿主机群中进行宿主机的调度,增加了宿主机调度的时间。
相对比而言,使用上述动态调整方法后,某一时刻该宿主机群中可用资源量过小,以致服务器无法在该宿主机群中调度宿主机,而该时刻,其它的宿主机群还包含有大量的可用资源,在此时刻后,服务器进行了可用资源的动态调整,动态调整后,该宿主机群的再次拥有充足的可用资源,而后,如果服务器确定该宿主机群为目标宿主机群,由于该宿主机群中具有充足的可用资源,所以服务器可以在该宿主机群中直接进行宿主机的调度,加快宿主机调度速度。
由以上可见,在本发明实施例中,首先获得当前时刻每个宿主机的第一可用资源量;再根据第一可用资源量,计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量;然后根据宿主机群的数量和该可用资源总量,计算所有宿主机群的可用资源量的平均值;再分别计算每个宿主机群的第二可用资源量与平均值的差值;最后根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量。本发明实施例中,服务器动态调整预先划分的宿主机群中的可用资源,保证整个宿主机集群可用资源的动态均衡分配,确保服务器可以在每个宿主机群中成功进行宿主机的调度,进而在整个宿主机集群中实现分散调度,减少宿主机调度耗时,加速宿主机调度过程。
相应于图1所示方法实施例,如图5所示,本发明实施例还提供了一种宿主机资源分配装置,该装置包括:
预先划分模块210,用于预先将宿主机集群划分成至少两个宿主机群,其中,每个所述宿主机群中包含至少一个宿主机;
第一获得模块110,用于获得当前时刻每个宿主机的第一可用资源量;
第一计算模块120,用于根据所述第一可用资源量,计算每个宿主机群的第二可用资源量和所述宿主机集群的可用资源总量;
第二计算模块130,用于根据宿主机群的数量和所述可用资源总量,计算所有宿主机群的可用资源量的平均值;
第三计算模块140,用于分别计算每个宿主机群的第二可用资源量与平均值的差值;
调整模块150,用于根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量。
在第一种调整方式中,相应于图2所示方法实施例,具体的,如图6所示,所述调整模块150,可以包括:
第一确定子模块1501,用于确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
第二确定子模块1502,用于针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
获得子模块1503,用于针对每一所述第二类宿主机群,获得所述第二类宿主机群的第二可用资源量与所述平均值的第二差值;
第一分配子模块1504,用于依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
在实际应用中,具体的,所述第一分配子模块1504,可以具体用于:
按照每一个所述第二类宿主机群对应的第二差值从大到小的顺序,依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
相应于图3所示方法实施例,如图7所示,在实际应用中,具体的,所述调整模块150,可以包括:
第三确定子模块1505,用于确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
第四确定子模块1506,用于针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
第五确定子模块1507,用于确定所有的所述待分配宿主机在第二类宿主机群中分配的所有分配方案;
第六确定子模块1508,用于确定每一种分配方案中,对应所述平均值和每个第二类宿主机群的第二可用资源量的方差;
第二分配子模块1509,用于按照方差最小的分配方案,在所述第二类宿主机群中分配所述待分配宿主机。
在图5~7任意一种方法实施例提供的宿主机资源分配装置的基础上,该宿主机资源分配装置还可以包括:第四计算模块、判断模块和发送模块(图中未示出);
该第四计算模块,用于在计算所述可用资源总量与宿主机集群的资源总量的比值;
该判断模块,用于判断所述比值是否大于预设阈值;
该发送模块,用于在所述判断模块的判断结果为是的情况下,向目标设备发送资源预警信息,以使得所述目标设备发出资源预警提示。
在实际应用中,所述第一获得模块110,可以具体用于:
当到达预设时间周期时,获得当前时刻每个宿主机的第一可用资源量;
或,当服务器接收到的云服务创建请求达到了预设数量时,获得当前时刻每个宿主机的第一可用资源量。
由以上可见,在本发明实施例中,首先获得当前时刻每个宿主机的第一可用资源量;再根据第一可用资源量,计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量;然后根据宿主机群的数量和该可用资源总量,计算所有宿主机群的可用资源量的平均值;再分别计算每个宿主机群的第二可用资源量与平均值的差值;最后根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量。本发明实施例中,服务器动态调整预先划分的宿主机群中的可用资源,保证整个宿主机集群可用资源的动态均衡分配,确保服务器可以在每个宿主机群中成功进行宿主机的调度,进而在整个宿主机集群中实现分散调度,减少宿主机调度耗时,加速宿主机调度过程。
相应于图4所示方法实施例,如图8所示,本发明实施例还提供了一种宿主机调度装置,所述宿主机调度装置包括:
第二获得模块310,用于获得创建目标云服务的目标请求,其中,所述目标请求包括创建所述目标云服务所需的目标资源信息以及所述目标云服务对应的用户标识;
选择模块320,用于基于预设的选择方式,从预先划分的宿主机群中选择目标宿主机群,其中,所述宿主机群中的可用资源为通过图5~7所示的任一装置实施例提供的宿主机资源分配装置分配的;
确定模块330,用于基于目标资源信息和用户标识,为用户在所述目标宿主机群中确定用以创建所述目标云服务的目标宿主机。
由以上可见,在本发明实施例中,首先获得当前时刻每个宿主机的第一可用资源量;再根据第一可用资源量,计算每个宿主机群的第二可用资源量和宿主机集群的可用资源总量;然后根据宿主机群的数量和该可用资源总量,计算所有宿主机群的可用资源量的平均值;再分别计算每个宿主机群的第二可用资源量与平均值的差值;最后根据该平均值,调整差值满足预设条件的宿主机群中宿主机的数量。本发明实施例中,服务器动态调整预先划分的宿主机群中的可用资源,保证整个宿主机集群可用资源的动态均衡分配,确保服务器可以在每个宿主机群中成功进行宿主机的调度,进而在整个宿主机集群中实现分散调度,减少宿主机调度耗时,加速宿主机调度过程。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (14)

1.一种宿主机资源分配方法,其特征在于,预先将宿主机集群划分成至少两个宿主机群,其中,每个所述宿主机群中包含至少一个宿主机,所述方法包括:
获得当前时刻每个宿主机的第一可用资源量;
根据所述第一可用资源量,计算每个宿主机群的第二可用资源量和所述宿主机集群的可用资源总量;
根据宿主机群的数量和所述可用资源总量,计算所有宿主机群的可用资源量的平均值;
分别计算每个宿主机群的第二可用资源量与平均值的差值;
根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量。
2.根据权利要求1所述的方法,其特征在于,所述根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量的步骤,包括:
确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
针对每一所述第二类宿主机群,获得所述第二类宿主机群的第二可用资源量与所述平均值的第二差值;
依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
3.根据权利要求2所述的方法,其特征在于,所述依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合的步骤,包括:
按照每一个所述第二类宿主机群对应的第二差值从大到小的顺序,依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合。
4.根据权利要求1所述的方法,其特征在于,所述根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量的步骤,包括:
确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
确定所有的所述待分配宿主机在第二类宿主机群中分配的所有分配方案;
确定每一种分配方案中,对应所述平均值和每个第二类宿主机群的第二可用资源量的方差;
按照方差最小的分配方案,在所述第二类宿主机群中分配所述待分配宿主机。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
计算所述可用资源总量与宿主机集群的资源总量的比值;
判断所述比值是否大于预设阈值;
如果是,向目标设备发送资源预警信息,以使得所述目标设备发出资源预警提示。
6.根据权利要求1~5任一项所述的方法,其特征在于,
所述获得当前时刻每个宿主机的第一可用资源量的步骤,包括:
当到达预设时间周期时,获得当前时刻每个宿主机的第一可用资源量;
或,当服务器接收到的云服务创建请求达到了预设数量时,获得当前时刻每个宿主机的第一可用资源量。
7.一种宿主机调度方法,其特征在于,所述方法包括:
获得创建目标云服务的目标请求,其中,所述目标请求包括创建所述目标云服务所需的目标资源信息以及所述目标云服务对应的用户标识;
基于预设的选择方式,从预先划分的宿主机群中选择目标宿主机群,其中,所述宿主机群中的可用资源为根据权利要求1~6中任一项所述的宿主机资源分配方法分配的;
基于目标资源信息和用户标识,为用户在所述目标宿主机群中确定用以创建所述目标云服务的目标宿主机。
8.一种宿主机资源分配装置,其特征在于,所述装置包括:
预先划分模块,用于预先将宿主机集群划分成至少两个宿主机群,其中,每个所述宿主机群中包含至少一个宿主机;
第一获得模块,用于获得当前时刻每个宿主机的第一可用资源量;
第一计算模块,用于根据所述第一可用资源量,计算每个宿主机群的第二可用资源量和所述宿主机集群的可用资源总量;
第二计算模块,用于根据宿主机群的数量和所述可用资源总量,计算所有宿主机群的可用资源量的平均值;
第三计算模块,用于分别计算每个宿主机群的第二可用资源量与平均值的差值;
调整模块,用于根据所述平均值,调整差值满足预设条件的宿主机群中宿主机的数量。
9.根据权利要求8所述的装置,其特征在于,所述调整模块,包括:
第一确定子模块,用于确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
第二确定子模块,用于针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
获得子模块,用于针对每一所述第二类宿主机群,获得所述第二类宿主机群的第二可用资源量与所述平均值的第二差值;
第一分配子模块,用于依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
10.根据权利要求9所述的装置,其特征在于,所述第一分配子模块,具体用于:
按照每一个所述第二类宿主机群对应的第二差值从大到小的顺序,依次针对每一个所述第二类宿主机群,从所有未分配到第二类宿主机群的所述待分配宿主机中,确定第一可用资源量之和最接近所述第二差值的第二宿主机集合,将所述第二宿主机集合中的待分配宿主机分配给该第二宿主机群。
11.根据权利要求8所述的装置,其特征在于,所述调整模块,包括:
第三确定子模块,用于确定第二可用资源量大于所述平均值的第一类宿主机群,以及第二可用资源量小于所述平均值的第二类宿主机群;
第四确定子模块,用于针对每一所述第一类宿主机群,获得所述第一类宿主机群的第二可用资源量与所述平均值的第一差值;基于该第一类宿主机群中每个宿主机的第一可用资源量,在该第一类宿主机群中,确定第一可用资源量之和最接近所述第一差值的第一宿主机集合;将所述第一宿主机集合中的宿主机确定为待分配宿主机;
第五确定子模块,用于确定所有的所述待分配宿主机在第二类宿主机群中分配的所有分配方案;
第六确定子模块,用于确定每一种分配方案中,对应所述平均值和每个第二类宿主机群的第二可用资源量的方差;
第二分配子模块,用于按照方差最小的分配方案,在所述第二类宿主机群中分配所述待分配宿主机。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第四计算模块,用于在计算所述可用资源总量与宿主机集群的资源总量的比值;
判断模块,用于判断所述比值是否大于预设阈值;
发送模块,用于在所述判断模块的判断结果为是的情况下,向目标设备发送资源预警信息,以使得所述目标设备发出资源预警提示。
13.根据权利要求8~12任一项所述的装置,其特征在于,所述第一获得模块,具体用于:
当到达预设时间周期时,获得当前时刻每个宿主机的第一可用资源量;
或,当服务器接收到的云服务创建请求达到了预设数量时,获得当前时刻每个宿主机的第一可用资源量。
14.一种宿主机调度装置,其特征在于,所述装置包括:
第二获得模块,用于获得创建目标云服务的目标请求,其中,所述目标请求包括创建所述目标云服务所需的目标资源信息以及所述目标云服务对应的用户标识;
选择模块,用于基于预设的选择方式,从预先划分的宿主机群中选择目标宿主机群,其中,所述宿主机群中的可用资源为通过权利要求8~13中任一项所述的宿主机资源分配装置分配的;
确定模块,用于基于目标资源信息和用户标识,为用户在所述目标宿主机群中确定用以创建所述目标云服务的目标宿主机。
CN201611029823.2A 2016-11-15 2016-11-15 宿主机资源分配方法、装置、宿主机调度方法及装置 Active CN108073448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611029823.2A CN108073448B (zh) 2016-11-15 2016-11-15 宿主机资源分配方法、装置、宿主机调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611029823.2A CN108073448B (zh) 2016-11-15 2016-11-15 宿主机资源分配方法、装置、宿主机调度方法及装置

Publications (2)

Publication Number Publication Date
CN108073448A true CN108073448A (zh) 2018-05-25
CN108073448B CN108073448B (zh) 2020-11-20

Family

ID=62161005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611029823.2A Active CN108073448B (zh) 2016-11-15 2016-11-15 宿主机资源分配方法、装置、宿主机调度方法及装置

Country Status (1)

Country Link
CN (1) CN108073448B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739627A (zh) * 2018-12-26 2019-05-10 上海连尚网络科技有限公司 任务的调度方法、电子设备及介质
CN110795237A (zh) * 2019-10-08 2020-02-14 支付宝(杭州)信息技术有限公司 资源处理方法、装置、电子设备及介质
CN110888733A (zh) * 2018-09-11 2020-03-17 北京奇虎科技有限公司 集群资源使用情况处理方法、装置及电子设备
CN111367678A (zh) * 2020-03-31 2020-07-03 中国工商银行股份有限公司 集群资源管理方法及系统
CN112019577A (zh) * 2019-05-29 2020-12-01 中国移动通信集团重庆有限公司 专属云存储实现方法、装置、计算设备及计算机存储介质
CN112751694A (zh) * 2019-10-30 2021-05-04 北京金山云网络技术有限公司 专属宿主机的管理方法、装置以及电子设备
CN113127186A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 配置集群节点资源的方法、装置、服务器和存储介质
CN116468403A (zh) * 2023-04-19 2023-07-21 浪潮智慧科技有限公司 一种资源分配方法、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052723A1 (en) * 2007-06-30 2008-02-28 Abhishek Khanna Load Balancing Algorithm
CN103345430A (zh) * 2013-07-03 2013-10-09 中国科学院高能物理研究所 分布式存储池的模糊平衡方法及系统
CN104023042A (zh) * 2013-03-01 2014-09-03 清华大学 云平台资源调度方法
US20150039764A1 (en) * 2013-07-31 2015-02-05 Anton Beloglazov System, Method and Computer Program Product for Energy-Efficient and Service Level Agreement (SLA)-Based Management of Data Centers for Cloud Computing
CN104702691A (zh) * 2015-03-13 2015-06-10 华为技术有限公司 分布式负载均衡方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052723A1 (en) * 2007-06-30 2008-02-28 Abhishek Khanna Load Balancing Algorithm
CN104023042A (zh) * 2013-03-01 2014-09-03 清华大学 云平台资源调度方法
CN103345430A (zh) * 2013-07-03 2013-10-09 中国科学院高能物理研究所 分布式存储池的模糊平衡方法及系统
US20150039764A1 (en) * 2013-07-31 2015-02-05 Anton Beloglazov System, Method and Computer Program Product for Energy-Efficient and Service Level Agreement (SLA)-Based Management of Data Centers for Cloud Computing
CN104702691A (zh) * 2015-03-13 2015-06-10 华为技术有限公司 分布式负载均衡方法和装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888733B (zh) * 2018-09-11 2023-12-26 三六零科技集团有限公司 集群资源使用情况处理方法、装置及电子设备
CN110888733A (zh) * 2018-09-11 2020-03-17 北京奇虎科技有限公司 集群资源使用情况处理方法、装置及电子设备
CN109739627A (zh) * 2018-12-26 2019-05-10 上海连尚网络科技有限公司 任务的调度方法、电子设备及介质
CN112019577A (zh) * 2019-05-29 2020-12-01 中国移动通信集团重庆有限公司 专属云存储实现方法、装置、计算设备及计算机存储介质
CN112019577B (zh) * 2019-05-29 2023-04-07 中国移动通信集团重庆有限公司 专属云存储实现方法、装置、计算设备及计算机存储介质
CN110795237A (zh) * 2019-10-08 2020-02-14 支付宝(杭州)信息技术有限公司 资源处理方法、装置、电子设备及介质
WO2021068585A1 (zh) * 2019-10-08 2021-04-15 支付宝(杭州)信息技术有限公司 资源处理方法、装置、电子设备及介质
CN112751694A (zh) * 2019-10-30 2021-05-04 北京金山云网络技术有限公司 专属宿主机的管理方法、装置以及电子设备
CN113127186A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 配置集群节点资源的方法、装置、服务器和存储介质
CN113127186B (zh) * 2019-12-31 2024-04-26 华为云计算技术有限公司 配置集群节点资源的方法、装置、服务器和存储介质
CN111367678A (zh) * 2020-03-31 2020-07-03 中国工商银行股份有限公司 集群资源管理方法及系统
CN111367678B (zh) * 2020-03-31 2023-08-22 中国工商银行股份有限公司 集群资源管理方法及系统
CN116468403A (zh) * 2023-04-19 2023-07-21 浪潮智慧科技有限公司 一种资源分配方法、设备及介质

Also Published As

Publication number Publication date
CN108073448B (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
CN108073448A (zh) 宿主机资源分配方法、装置、宿主机调度方法及装置
US20200287961A1 (en) Balancing resources in distributed computing environments
CN104881325B (zh) 一种资源调度方法和资源调度系统
CN105900064B (zh) 调度数据流任务的方法和装置
CN104951353B (zh) 一种对vnf实现加速处理的方法及装置
CN105224392B (zh) 一种虚拟计算资源配额管理方法及平台
US20180247265A1 (en) Task grouping method and apparatus, electronic device, and computer storage medium
WO2016003840A1 (en) Integrated global resource allocation and load balancing
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
CN108431796A (zh) 分布式资源管理系统和方法
CN105068755B (zh) 一种面向云计算内容分发网络的数据副本存储方法
CN107968802A (zh) 一种资源调度的方法、装置和过滤式调度器
CN112269641A (zh) 一种调度方法、装置、电子设备及存储介质
CN112532669B (zh) 一种网络边缘计算方法、装置及介质
CN110399272B (zh) 日志处理设备、方法、电子设备及计算机可读存储介质
CN111092930B (zh) 业务开通方法及装置
CN109523202B (zh) 订单处理方法、装置、设备及计算机可读存储介质
CN106936877A (zh) 一种内容分发方法、装置及系统
CN102932271A (zh) 负载均衡的实现方法和装置
CN108701132A (zh) 资源管理系统和方法
CN108874502A (zh) 云计算集群的资源管理方法、装置及设备
CN107277143A (zh) 一种资源匹配管理方法及装置
CN107122230A (zh) 一种基于服务器集群的高可用方法及其装置
CN110430236A (zh) 一种部署业务的方法以及调度装置
CN108076112A (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
GR01 Patent grant
GR01 Patent grant