CN106681834A - 分布式计算方法、管理装置及*** - Google Patents
分布式计算方法、管理装置及*** Download PDFInfo
- Publication number
- CN106681834A CN106681834A CN201611237645.2A CN201611237645A CN106681834A CN 106681834 A CN106681834 A CN 106681834A CN 201611237645 A CN201611237645 A CN 201611237645A CN 106681834 A CN106681834 A CN 106681834A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- limited
- machine
- virtual
- distributed computing
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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/504—Resource capping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种分布式计算方法、管理装置及***。该分布式计算方法包括:接收来自用户的与分布式计算任务相关的请求;当接收到上述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机;将上述分布式计算任务分配到上述一个以上的受限虚拟机,以由上述一个以上的受限虚拟机进行与上述分布式计算任务对应的计算;以及将由上述一个以上的受限虚拟机进行所述计算所获得的计算结果输出给所述用户。根据本发明的分布式计算方法、管理装置及***,能够充分利用物理机集群的闲置虚拟资源,以使得物理机集群的资源使用均衡,从而提高资源利用率。
Description
技术领域
本发明大体涉及分布式计算方法、管理装置及***。具体地,本发明涉及一种能够有效利用物理机集群中的闲置资源来提高物理机集群的资源利用率的分布式计算方法、管理装置及***。
背景技术
虚拟化技术是一种资源管理技术,其使得可以在物理计算机(简称“物理机”)中创建多个独立完整的虚拟机以分别提供给用户使用,具有故障隔离、提高物理资源利用率的优点。通常,对于创建的虚拟机,需要从物理机分配一定的虚拟化资源。但是,目前在分配给虚拟机一定的虚拟化资源后,在虚拟机实际运行过程中往往会存在虚拟机的实际使用资源远小于被分配给其的分配资源而导致的虚拟化资源利用率较低的问题。
中国专利公布CN105607952A中公开了一种根据虚拟化资源实际实用参数、分配参数以及预测算法来确定定运行的虚拟机在下一个周期的虚拟化资源使用参数,并根据该虚拟化资源使用参数生成调度指令来确定下一个周期虚拟机的虚拟化资源分配量的虚拟化资源的调度方案。
上述虚拟化资源的调度方案虽然在一定程度上能够提升虚拟化资源的利用率。但是其在云计算多租户环境下有很大的局限性。首先,由于每个租户的业务特点不一样,导致他们拥有的虚拟机的运行情况不一样。在某个时刻,必然有些用户的虚拟机资源需求高,有些用户的虚拟机资源需求低,一旦虚拟机分配到物理机上,再根据预测调整虚拟机的使用参数,无法解决物理机集群资源利用率不平衡的问题。另外,也没有很好的方法能够在分配虚拟机的之前去预测虚拟机的运行情况及实际所需资源。因此,结合上述两者可以得出,目前在云计算多租户环境下,存在物理机集群的虚拟化资源使用率不均衡(利用率不高)的问题。
发明内容
本发明是为了解决上述至少一个问题而完成的,其目的是提供一种能够在不影响其他租户的普通虚拟机的所需虚拟资源的情况下,从物理机集群中的资源较大的物理机中压榨出剩余的碎片资源(闲置资源)来进一步进行有效利用的分布式计算方法、管理装置及***。该分布式计算方法、管理装置及***能够充分利用物理机集群的闲置虚拟资源,以使得物理机集群的资源使用均衡,从而提高资源利用率。
为达上述目的,根据本发明的一个方面,提供一种分布式计算方法,包括:
任务请求接收步骤,接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定步骤,当接收到所述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行所述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配步骤,将所述分布式计算任务分配到所述一个以上的受限虚拟机,以由所述一个以上的受限虚拟机进行与所述分布式计算任务对应的计算;以及
分布式计算结果输出步骤,将由所述一个以上的受限虚拟机进行所述计算所获得的计算结果输出给所述用户,其中,所述受限虚拟机集群中的受限虚拟机被配置于物理机集群中的物理机上,为所述受限虚拟机分配有分配虚拟资源,并且所述物理机上还配置有普通虚拟机,
当与所述物理机对应的虚拟资源与所述物理机上的所述普通虚拟机实际使用的虚拟资源的差值小于所述物理机上的所述受限虚拟机的分配虚拟资源时,所述受限虚拟机的可用虚拟资源被限制为所述差值,
当上述差值不小于所述分配虚拟资源时,所述可用虚拟资源为所述分配虚拟资源。
进一步,根据如上所述的分布式计算方法,在所述受限虚拟机确定步骤中,基于受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,为所述受限虚拟机确定所述受限虚拟机能够被用于进行所述分布式计算任务的优先级,并且根据所述优先级来确定用于进行所述分布式计算任务的所述一个以上的受限虚拟机。
进一步,根据如上所述的分布式计算方法,若所述一个以上的受限虚拟机中的一个或者多个所述受限虚拟机拒绝接收所述分布式计算任务,则从所述受限虚拟机集群中未被确定用于进行所述分布式计算任务的受限虚拟机中再次选择一个或者多个受限虚拟机来用于进行所述分布式计算任务,并且将所述分布式计算任务分配到再次选择的一个或者多个受限虚拟机,以由所述一个或者多个受限虚拟机进行所述计算。
进一步,根据如上所述的分布式计算方法,所述与分布式计算任务相关的请求包括与所述分布式计算任务对应的算法的输入、输出路径、以及所述算法在算法存储器中的存储地址,其中,在将所述分布式计算任务分配到所述一个以上的受限虚拟机之前,根据所述存储地址从所述算法存储器中获取所述算法。
进一步,根据如上所述的分布式计算方法,在受限虚拟机上进行所述计算所获得的计算结果被输出到所述受限虚拟机的内存文件***,并且所述计算结果从所述内存文件***中被读取出并被输出给所述用户。
根据本发明的另一个方面,提供一种分布式计算管理装置,包括:
任务请求接收模块,被配置为接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定模块,被配置为当所述任务请求接收模块接收到所述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行所述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配模块,被配置为将所述分布式计算任务分配到所述一个以上的受限虚拟机,以由所述一个以上的受限虚拟机进行与所述分布式计算任务对应的计算;以及
分布式计算结果输出模块,被配置为将由所述一个以上的受限虚拟机进行所述计算所获得的计算结果输出给所述用户,
其中,所述受限虚拟机集群中的受限虚拟机被配置于物理机集群中的物理机上,为所述受限虚拟机分配有分配虚拟资源,并且所述物理机上还配置有普通虚拟机,
当与所述物理机对应的虚拟资源与所述物理机上的所述普通虚拟机实际使用的虚拟资源的差值小于所述物理机上的所述受限虚拟机的分配虚拟资源时,所述受限虚拟机的可用虚拟资源被限制为所述差值,
当上述差值不小于所述分配虚拟资源时,所述可用虚拟资源为所述分配虚拟资源。
进一步,根据如上所述的分布式计算管理装置,所述受限虚拟机确定模块被配置为基于受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,为所述受限虚拟机确定所述受限虚拟机能够被用于进行所述分布式计算任务的优先级,并且根据所述优先级来确定用于进行所述分布式计算任务的所述一个以上的受限虚拟机。
进一步,根据如上所述的分布式计算管理装置,若所述一个以上的受限虚拟机中的一个或者多个所述受限虚拟机拒绝接收所述分布式计算任务,则所述受限虚拟机确定模块从所述受限虚拟机集群中未被确定用于进行所述分布式计算任务的受限虚拟机中再次选择一个或者多个受限虚拟机来用于进行所述分布式计算任务,并且所述分布式计算分配模块将所述分布式计算任务分配到再次选择的一个或者多个受限虚拟机,以由所述一个或者多个受限虚拟机进行所述计算。
进一步,根据如上所述的分布式计算管理装置,所述与分布式计算任务相关的请求包括与所述分布式计算任务对应的算法的输入、输出路径、以及所述算法在算法存储器中的存储地址,其中,在所述分布式计算分配模块将所述分布式计算任务分配到所述一个以上的受限虚拟机之前,所述分布式计算分配模块根据所述存储地址从所述算法存储器中获取所述算法。
进一步,根据如上所述的分布式计算管理装置,在受限虚拟机上进行所述计算所获得的计算结果被输出到所述受限虚拟机的内存文件***,并且所述分布式计算结果输出模块从所述内存文件***中读取出所述计算结果并输出给所述用户。
根据本发明的另一个方面,提供一种分布式计算***,包括:
受限虚拟机集群,所述受限虚拟机集群被配置为包括多个受限虚拟机;以及
如上所述的分布式计算管理装置。
进一步,根据如上所述的分布式计算***,进一步包括:受限虚拟机信息收集器,所述受限虚拟机信息收集器被配置为定期获取所述受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,当所述任务请求接收模块第一次接收到所述请求时,所述受限虚拟机确定模块被配置为从所述受限虚拟机信息收集器中获取所述虚拟资源状态信息,并且在所述分布式计算分配模块将所述分布式计算任务分配到所述一个以上的受限虚拟机后,所述受限虚拟机确定模块被配置为对所述虚拟资源状态信息进行更新。
进一步,根据如上所述的分布式计算***,进一步包括:算法存储器,所述算法存储器被配置为存储与所述分布式计算任务对应的算法。
如上所述,根据本发明的分布式计算方法、管理装置及***基于物理机集群中的闲置虚拟资源来实现,其能够在不影响其他租户的普通虚拟机的所需虚拟资源的情况下,从物理机集群中的资源较大的物理机中压榨出剩余的碎片资源(闲置资源)来进一步进行有效利用,如此能够实现在不需要对普通虚拟机的虚拟资源分配算法作改造的情况下就可以充分利用物理机集群的闲置虚拟资源,以达到物理机集群的资源使用均衡、提高资源利用率的目的。此外,该分布式计算方法、管理装置及***还能够带来如下优点:降低硬件采购成本提高资源利用率;在保证任务的计算资源的同时将计算资源的费用降低;闲置虚拟资源以分布式服务的方式提供,使用该服务的用户不需要关心资源的位置及管理;不受单个计算节点的影响,具有较强的节点容灾特性;具备跨机房容灾特性,不受单个机房故障的影响。
附图说明
参照下面结合附图对本发明实施例的说明,会更容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。附图中:
图1示出了根据本发明实施例的分布式计算方法的流程图;
图2示出了根据本发明实施例的物理机的相应配置的实例的图;
图3示出了根据本发明实施例的分布式计算管理模块的框图;以及
图4示出了根据本发明实施例的分布式计算***的基本结构示意图。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行详细描述。
首先,将参照图1来说明根据本发明实施例的分布式计算方法的流程。
图1示出了根据本发明实施例的分布式计算方法的流程图。如图1所示,根据本发明实施例的分布式计算方法包括如下步骤:
任务请求接收步骤S1:接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定步骤S2:当接收到上述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配步骤S3:将上述分布式计算任务分配到上述一个以上的受限虚拟机,以由上述一个以上的受限虚拟机进行与上述分布式计算任务对应的计算;以及
分布式计算结果输出步骤S4:将由上述一个以上的受限虚拟机进行上述计算所获得的计算结果输出给上述用户。
下面,将对图1中的上述各个步骤做进一步详细说明,以更好地理解根据本发明实施例的分布式计算方法的特征和优点。
在任务请求接收步骤S1中,接收来自用户的与分布式计算任务相关的请求。
具体地,实施例中,向用户提供有基于http协议的api(Application ProgrammingInterface,应用程序编程接口)接口,用户通过调用该api接口来提交其的与分布式计算任务相关的请求。这里,由用户提交的与分布式计算任务相关的请求包括与该分布式计算任务对应的算法的输入、输出路径、以及该算法的存储地址。即,用户调用api接口的api参数包括上述输入、输出路径、以及算法的存储地址。输入例如是需要读取的一张图片,输出路径是由用户提供的执行算法后向用户提供计算结果的地址。实施例中,向用户提供有Docker(Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化)镜像仓库,Docker镜像仓库在实施例中被用作算法存储器,用于存储用户需要进行分布式计算的算法。实施例中,当用户需要采用分布式计算服务时,其需要先将自己的算法按照一定的规范打包成Docker镜像,并将其上传至Docker镜像仓库,之后调用api接口来提交其的请求。通过Docker打包用户的算法,使得对于用户的算法的语言没有限制,具有跨语言的特点。并且,利用api接口完成在线服务,能够实现serverless(serverless是一种基于互联网的技术架构理念,应用逻辑并非全部在服务端实现,而是采用FAAS(Function as a Service)架构,通过功能组合来实现应用程序逻辑)架构,用户不需要写server(server指的是具备服务器端功能的电脑软件,以及正在运行的服务器端软件)。实施例中,用户的每次api调用都会启动一个新的分布式计算任务,这使得根据本发明实施例的分布式计算方法能够具备并行计算以及高并发的优点。通常,在用户提交完请求之后,步骤S1完成,来自用户的与分布式计算任务相关的请求将被接收。
在受限虚拟机确定步骤S2中,当接收到上述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机。
具体地,实施例中,在物理机集群中的每台物理机上配置有一台特殊的虚拟机(以下称为“受限虚拟机”),这些受限虚拟机能够构成受限虚拟机集群。配置于一台物理机上的受限虚拟机与该物理机上的用于提供给用户的普通虚拟机一样,被分配有物理机的虚拟资源(以下称为“分配虚拟资源”)。通常,被分配给物理机上的受限虚拟机的分配虚拟资源使得物理机上的所有虚拟机的分配虚拟资源的总和大于该物理机限定范围内的虚拟资源,并且会存在该物理机限定范围内的虚拟资源除去该物理机上所有普通虚拟机的实际使用虚拟资源的总和后的虚拟资源剩余量不小于该物理机上的受限虚拟机的分配虚拟资源的情形。
本发明中,在物理机中配置受限虚拟机用于从资源较大的物理机中压榨出剩余的碎片资源(闲置资源)以进行进一步的利用,其是基于目前提供给用户的普通虚拟机在实际运行过程中往往会存在实际使用的虚拟资源远小于分配虚拟资源而导致会存在闲置虚拟资源,从而造成资源使用率不均衡的问题而提出的。由于需要从物理机中压榨出闲置资源,被分配给受限虚拟机的分配虚拟资源使得物理机上的所有虚拟机的分配虚拟资源的总和大于该物理机限定范围内的虚拟资源。然而,在物理机上的所有虚拟机的分配虚拟资源的总和大于该物理机限定范围内的虚拟资源的情况下,在实际运行过程中可能会存在受限虚拟机与提供给用户的普通虚拟机对虚拟资源争抢的问题。由于普通虚拟机是直接用于提供和/或租售给用户的,需要保证随时都能够调用到其分配虚拟资源范围内的虚拟资源。因此,对于受限虚拟机的可用虚拟资源需要进行限制,使得其不能像普通虚拟机那样在任何情况下都能够调用到其分配虚拟资源范围内的虚拟资源,以保证其不会对普通虚拟机的虚拟资源争抢。
具体地,受限虚拟机的可用虚拟资源通过如下被限制:当与物理机对应的虚拟资源与物理机上的普通虚拟机实际使用的虚拟资源的差值小于该物理机上的受限虚拟机的分配虚拟资源时,该受限虚拟机的可用虚拟资源被限制为上述差值;而当上述差值不小于受限虚拟机的上述分配虚拟资源时,该受限虚拟机的可用虚拟资源为其的分配虚拟资源。
实施例中,从物理机为受限虚拟机和普通虚拟机划分的分配虚拟资源为cpu空间。图2示出了根据本发明实施例的物理机200的相应配置的实例的图,其中,物理机200上配置有3台普通虚拟机以及1台受限虚拟机。例如,物理机200的cpu空间为24核,为3台普通虚拟机各分配8核的cpu空间,并且为受限虚拟机分配12核的cpu空间。可以看出,物理机200上的所有虚拟机的cpu空间的总和(36核)大于该物理机200限定范围内的cpu空间(24核)。此外,在有些情形下,物理机200的cpu空间除去其上普通虚拟机的实际使用虚拟资源的总和(例如,小于12核)后的cpu空间剩余量可以不小于受限虚拟机的被分配的cpu空间。
对于物理机200上的受限虚拟机,其可用的cpu空间是受限的。当与物理机200对应的cpu空间与其上普通虚拟机实际使用的cpu空间的差值小于其上受限虚拟机的被分配的cpu空间时,受限虚拟机的可用cpu空间被限制为上述差值,而当上述差值不小于受限虚拟机的被分配的cpu空间时,受限虚拟机的可用cpu空间为该被分配的cpu空间。举例说明,当物理机200中3台普通虚拟机的cpu空间全部被占满时,即,物理机200中的普通虚拟机已经占用了物理机200的全部24核cpu空间,此时没有任何闲置的cpu空间可供受限虚拟机调用。另一方面,当3台普通虚拟机中存在cpu空间没有完全被占满的普通虚拟机时,例如,一台普通虚拟机占用了6核cpu空间,而另外两台普通虚拟机的cpu空间全部被占满,此时物理机200具有闲置的2核cpu空间,受限虚拟机可以调用该闲置的2核cpu空间。再例如,仅有一台普通虚拟机占用了6核cpu空间,而另外两台普通虚拟机均没有占用cpu空间,此时物理机200具有闲置的18核cpu空间,受限虚拟机可以调用被分配给其的12核的cpu空间。
对于上述“受限虚拟机”的受限功能,可以通过物理机内核的cgroup(controlgroup,是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如,cpu,memory,IO等等)的机制)来设置受限虚拟机和普通虚拟机的cpu的相对权重来实现,即,基于linux内核cgroup来解决受限虚拟机对普通虚拟机的资源争抢问题。实施例中,通过物理机内核的cgroup闲置受限虚拟机的cpu权重为普通虚拟机的1/1000,例如,如图2中所示,普通虚拟机的cpu权重为1000,而受限虚拟机的cpu权重为1。这里,1/1000是本发明的发明人通过实验验证的比较可行的数值,但并不限于此,可以使用其它可行的数值,例如1/500,1/200等等。
如上可以看出,本发明中通过在设置普通虚拟机的物理机内生成受限虚拟机,能够从资源较大的物理机中压榨出剩余的碎片资源(闲置资源)以进行进一步的利用,从而提高物理机的资源利用率。并且,通过对受限虚拟机的可用虚拟资源进行限制,也不会造成对普通虚拟机的虚拟资源的争抢问题。本发明实施例所提供的分布式计算方法正是基于由这样的受限虚拟机所构成的受限虚拟机集群而提出的一种通用的计算服务,在分布式计算方法中,受限虚拟机被用作分布式计算节点。
实施例中,当经由api接口接收到来自用户的与分布式计算任务相关的请求时,将根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行该分布式计算任务的一个以上的受限虚拟机。
实施例中,对于受限虚拟机集群中各受限虚拟机的虚拟资源状态信息,能够实时被监控并被获取。这里,受限虚拟机的虚拟资源状态信息包括该受限虚拟机的可用虚拟资源(可用cpu空间)、当前虚拟资源使用量(当前cpu空间使用量)、需要执行的总任务量等。
实施例中,受限虚拟机的当前虚拟资源状态信息能够用于确定若当前给该受限虚拟机分配任务,该受限虚拟机是否能够接收该任务、完成该任务需要的时间长短等。因此,当接收到来自用户的与分布式计算任务相关的请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,即可确定当前将这些受限虚拟机用于进行该分布式计算任务可能会出现的情况,并且根据这些受限虚拟机进行该分布式计算任务可能会出现的情况,基于需要快速完成计算的目标,可以从这些受限虚拟机中确定将用于进行该任务的受限虚拟机。
进一步,实施例中,基于受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,为受限虚拟机确定其能够被用于进行当前接收到的来自用户的分布式计算任务的优先级。例如,能够用于进行该任务、并且完成该任务所需的时间越短,则优先级越高,反之亦然。之后,根据上述优先级,本着快速完成计算的目标,来确定将用于进行该任务的受限虚拟机。
由上可以看出,根据本发明实施例的分布式计算方法能够根据计算节点(受限虚拟机)的资源情况,自动对任务进行调度,以分布式方式向用户提供物理机集群中的闲置资源,使得用户无需关心资源的位置及部署,从而可以专注于算法的优化。
实施例中,选择一个以上的受限虚拟机来用于进行与上述任务对应的计算,优选地,选择多个受限虚拟机来用于进行与上述任务对应的计算。选择多个受限虚拟机的好处是同一个任务可以被发送多个副本到多个受限虚拟机来进行计算,能够防止在只有一个受限虚拟机用于进行计算的情况下,由于该受限虚拟机突然的故障、或者普通虚拟机突然占用大量虚拟资源(负载增加)而导致的该受限虚拟机无法完成计算或者无法快速完成计算的问题,这是因为当一个受限虚拟机出现问题,还存在其它的受限虚拟机来较快速地完成计算,以为用户更好地提供服务。由此可以看出,根据本发明实施例的分布式计算方法可以通过冗余计算的方法,避免单个计算节点故障或者负载增加所带来的无法完成任务或者任务延时完成的问题,从而能够具备节点容灾的优点。并且,由于按需使用计算资源并能够快速地完成计算,用户按照任务实际消耗的cpu时间计费,相对租用普通虚拟机而言能够节省内存和磁盘的配用。
当确定好用于进行分布式计算任务的一个以上的受限虚拟机后,接下来,在分布式计算分配步骤S3中,将上述分布式计算任务分配到上述一个以上的受限虚拟机,以由上述一个以上的受限虚拟机进行与上述分布式计算任务对应的计算。
如之前所述,实施例中,由于与分布式计算任务对应的算法被存储在Docker镜像仓库中,因此在将分布式计算任务分配到一个以上的受限虚拟机之前,会根据接收到的请求中所包含的算法的存储地址来从Docker镜像仓库中获取到该算法,以便在该步骤中将分布式计算任务分配到一个以上的受限虚拟机。
在分布式计算分配步骤S3中分配任务到一个以上的受限虚拟机时,还可能出现被分配任务的一个以上的受限虚拟机中的一个或者多个受限虚拟机突发故障、或者普通虚拟机突然占用大量虚拟资源(负载增大)而导致该受限虚拟机无法接受任务或者完成任务的时间会延迟等的情况。针对这样的情况,进一步,实施例中,在分配任务时,上述一个或者多个受限虚拟机可以拒绝接收任务使得其不被分配任务,并且此时会从受限虚拟机集群中未被确定用于进行该任务的受限虚拟机中再次选择一个或者多个受限虚拟机来用于进行上述任务,并将上述任务分配到该再次选择的一个或者多个受限虚拟机。再次选择的一个或者多个受限虚拟机可以是根据最近在受限虚拟机确定步骤S2中的受限虚拟机的虚拟资源状态信息,基于需要快速完成计算的目标,从未被确定用于进行该分布式计算任务的受限虚拟机中选择出的。进一步,根据最近在受限虚拟机确定步骤S2中基于受限虚拟机的虚拟资源状态信息而确定的优先级,基于需要快速完成计算的目标,从未被确定用于进行该分布式计算任务的受限虚拟机中再次选择出一个或者多个受限虚拟机。如此,能够保证执行每一项任务的受限虚拟机的数量,以在任何情况下都能较快速地完成计算,从而更好地为用户提供服务。
被分配了任务的上述一个以上的受限虚拟机将进行与上述分布式计算任务对应的计算。实施例中,在受限虚拟机上进行上述计算所获得的计算结果被输出到该受限虚拟机的内存文件***,以减少对物理机磁盘IO的压力。
接下来,在分布式计算结果输出步骤S4中,将由上述一个以上的受限虚拟机进行上述计算所获得的计算结果输出给用户。
实施例中,上述计算结果从受限虚拟机的内存文件***中被读取出,并通过之前所述的向用户提交的api接口输出到由用户提交的请求中所包括的输出路径,以将计算结果输出给用户。通常,从最快计算出计算结果的受限虚拟机的内存文件***中读取出计算结果,并经由api接口将该计算结果输出给用户。
下面,将参照图3来说明根据本发明实施例的分布式计算管理装置。根据本发明实施例的分布式计算管理装置用于进行如上所描述的分布式计算方法。
图3示出了根据本发明实施例的分布式计算管理装置300的框图。如图3所示,根据本发明实施例的分布式计算管理装置300包括:任务请求接收模块301,被配置为接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定模块302,被配置为当任务请求接收模块301接收到上述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配模块303,被配置为将上述分布式计算任务分配到一个以上的受限虚拟机,以由上述一个以上的受限虚拟机进行与上述分布式计算任务对应的计算;和
分布式计算结果输出模块304,被配置为将由上述一个以上的受限虚拟机进行所述计算所获得的计算结果输出给上述用户。
下面,将对图3中的上述各个模块做进一步详细说明,以更好地理解根据本发明实施例的分布式计算管理装置的特征和优点。
实施例中,任务请求接收模块301被配置为接收来自用户的与分布式计算任务相关的请求。
具体地,实施例中,向用户提供有基于http协议的api接口,用户通过调用该api接口来提交其的与分布式计算任务相关的请求。这里,由用户提交的与分布式计算任务相关的请求包括与该分布式计算任务对应的算法的输入、输出路径、以及该算法的存储地址。即,用户调用api接口的api参数包括上述输入、输出路径、以及算法的存储地址。输入例如是需要读取的一张图片,输出路径是由用户提供的执行算法后向用户提供计算结果的地址。实施例中,向用户提供有Docker镜像仓库,Docker镜像仓库在实施例中被用作算法存储器,用于存储用户需要进行分布式计算的算法。实施例中,当用户需要采用分布式计算服务时,其需要先将自己的算法按照一定的规范打包成Docker镜像,并将其上传至Docker镜像仓库,之后调用api接口来提交其的请求。通过Docker打包用户的算法,使得对于用户的算法的语言没有限制,具有跨语言的特点。并且,利用api接口完成在线服务,能够实现severless架构,用户不需要写server。实施例中,用户的每次api调用都会启动一个新的分布式计算任务,这使得根据本发明实施例的分布式计算***能够具备并行计算以及高并发的优点。通常,在用户提交完请求之后,任务请求接收模块301将接收到来自用户的与分布式计算任务相关的请求。
当任务请求接收模块301接收到上述请求时,受限虚拟机确定模块302根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机。
具体地,实施例中,在物理机集群中的每台物理机上配置有一台特殊的虚拟机(以下称为“受限虚拟机”),这些受限虚拟机能够构成受限虚拟机集群。配置于一台物理机上的受限虚拟机与该物理机上的用于提供给用户的普通虚拟机一样,被分配有物理机的虚拟资源(以下称为“分配虚拟资源”)。通常,被分配给物理机上的受限虚拟机的分配虚拟资源使得物理机上的所有虚拟机的分配虚拟资源的总和大于该物理机限定范围内的虚拟资源,并且会存在该物理机限定范围内的虚拟资源除去该物理机上所有普通虚拟机的实际使用虚拟资源的总和后的虚拟资源剩余量不小于该物理机上的受限虚拟机的分配虚拟资源的情形。
本发明中,在物理机中配置受限虚拟机用于从资源较大的物理机中压榨出剩余的碎片资源(闲置资源)以进行进一步的利用,其是基于目前提供给用户的普通虚拟机在实际运行过程中往往会存在实际使用的虚拟资源远小于分配虚拟资源而导致会存在闲置虚拟资源,从而造成资源使用率不均衡的问题而提出的。由于需要从物理机中压榨出闲置资源,被分配给受限虚拟机的分配虚拟资源使得物理机上的所有虚拟机的分配虚拟资源的总和大于该物理机限定范围内的虚拟资源。然而,在物理机上的所有虚拟机的分配虚拟资源的总和大于该物理机限定范围内的虚拟资源的情况下,在实际运行过程中可能会存在受限虚拟机与提供给用户的普通虚拟机对虚拟资源争抢的问题。由于普通虚拟机是直接用于提供和/或租售给用户的,需要保证随时都能够调用到其分配虚拟资源范围内的虚拟资源。因此,对于受限虚拟机的可用虚拟资源需要进行限制,使得其不能像普通虚拟机那样在任何情况下都能够调用到其分配虚拟资源范围内的虚拟资源,以保证其不会对普通虚拟机的虚拟资源争抢。
具体地,受限虚拟机的可用虚拟资源通过如下被限制:当与物理机对应的虚拟资源与物理机上的普通虚拟机实际使用的虚拟资源的差值小于该物理机上的受限虚拟机的分配虚拟资源时,该受限虚拟机的可用虚拟资源被限制为上述差值;而当上述差值不小于受限虚拟机的上述分配虚拟资源时,该受限虚拟机的可用虚拟资源为其的分配虚拟资源。
实施例中,从物理机为受限虚拟机和普通虚拟机划分的分配虚拟资源为cpu空间。图2示出了根据本发明实施例的物理机200的相应配置的实例的图,其中,物理机200上配置有3台普通虚拟机以及1台受限虚拟机。例如,物理机200的cpu空间为24核,为3台普通虚拟机各分配8核的cpu空间,并且为受限虚拟机分配12核的cpu空间。可以看出,物理机200上的所有虚拟机的cpu空间的总和(36核)大于该物理机200限定范围内的cpu空间(24核)。此外,在有些情形下,物理机200的cpu空间除去其上普通虚拟机的实际使用虚拟资源的总和(例如,小于12核)后的cpu空间剩余量可以不小于受限虚拟机的被分配的cpu空间。
对于物理机200上的受限虚拟机,其可用的cpu空间是受限的。当与物理机200对应的cpu空间与其上普通虚拟机实际使用的cpu空间的差值小于其上受限虚拟机的被分配的cpu空间时,受限虚拟机的可用cpu空间被限制为上述差值,而当上述差值不小于受限虚拟机的被分配的cpu空间时,受限虚拟机的可用cpu空间为该被分配的cpu空间。举例说明,当物理机200中3台普通虚拟机的cpu空间全部被占满时,即,物理机200中的普通虚拟机已经占用了物理机200的全部24核cpu空间,此时没有任何闲置的cpu空间可供受限虚拟机调用。另一方面,当3台普通虚拟机中存在cpu空间没有完全被占满的普通虚拟机时,例如,一台普通虚拟机占用了6核cpu空间,而另外两台普通虚拟机的cpu空间全部被占满,此时物理机200具有闲置的2核cpu空间,受限虚拟机可以调用该闲置的2核cpu空间。再例如,仅有一台普通虚拟机占用了6核cpu空间,而另外两台普通虚拟机均没有占用cpu空间,此时物理机200具有闲置的18核cpu空间,受限虚拟机可以调用被分配给其的12核的cpu空间。
对于上述“受限虚拟机”的受限功能,可以通过物理机内核的cgroup来设置受限虚拟机和普通虚拟机的cpu的相对权重来实现,即,基于linux内核cgroup来解决受限虚拟机对普通虚拟机的资源争抢问题。实施例中,通过物理机内核的cgroup闲置受限虚拟机的cpu权重为普通虚拟机的1/1000,例如,如图2中所示,普通虚拟机的cpu权重为1000,而受限虚拟机的cpu权重为1。这里,1/1000是本发明的发明人通过实验验证的比较可行的数值,但并不限于此,可以使用其它可行的数值,例如1/500,1/200等等。
如上可以看出,本发明中通过在设置普通虚拟机的物理机内生成受限虚拟机,能够从资源较大的物理机中压榨出剩余的碎片资源(闲置资源)以进行进一步的利用,从而提高物理机的资源利用率。并且,通过对受限虚拟机的可用虚拟资源进行限制,也不会造成对普通虚拟机的虚拟资源的争抢问题。本发明所提供的分布式计算管理装置正是基于由这样的受限虚拟机所构成的受限虚拟机集群而提出的一种通用的计算服务,在该分布式计算***中,受限虚拟机被用作分布式计算节点。
实施例中,当任务请求接收模块301经由api接口接收到来自用户的与分布式计算任务相关的请求时,受限虚拟机确定模块302将根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机。
实施例中,对于受限虚拟机集群中各受限虚拟机的虚拟资源状态信息,能够实时被监控并被获取。这里,受限虚拟机的虚拟资源状态信息包括该受限虚拟机的可用虚拟资源(可用cpu空间)、当前虚拟资源使用量(当前cpu空间使用量)、需要执行的总任务量等。
实施例中,受限虚拟机的当前虚拟资源状态信息能够用于确定若当前给该受限虚拟机分配任务,该受限虚拟机是否能够接收该任务、完成该任务需要的时间长短等。因此,当任务请求接收模块301接收到来自用户的与分布式计算任务相关的请求时,受限虚拟机确定模块302根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,即可确定将这些受限虚拟机用于进行该分布式计算任务可能会出现的情况,并且根据这些受限虚拟机进行该分布式计算任务可能会出现的情况,基于需要快速完成计算的目标,可以从这些受限虚拟机中确定将用于进行该任务的受限虚拟机。
进一步,实施例中,受限虚拟机确定模块302被配置为基于受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,为受限虚拟机确定其能够被用于进行当前接收到的来自用户的分布式计算任务的优先级。例如,能够用于进行该任务、并且完成该任务所需的时间越短,则优先级越高,反之亦然。之后,根据上述优先级,本着快速完成计算的目标,来确定将用于进行该任务的受限虚拟机。
由上可以看出,根据本发明实施例的分布式计算管理装置能够根据计算节点(受限虚拟机)的资源情况,自动对任务进行调度,以分布式方式向用户提供物理机集群中的闲置资源,使得用户无需关心资源的位置及部署,从而可以专注于算法的优化。
实施例中,选择一个以上的受限虚拟机来用于进行与上述任务对应的计算,优选地,选择多个受限虚拟机来用于进行与上述任务对应的计算。选择多个受限虚拟机的好处是同一个任务可以被发送多个副本到多个受限虚拟机来进行计算,能够防止在只有一个受限虚拟机用于进行计算的情况下,由于该受限虚拟机突然的故障、或者普通虚拟机突然占用大量虚拟资源(负载增加)而导致的该受限虚拟机无法完成计算或者无法快速完成计算的问题,这是因为当一个受限虚拟机出现问题,还存在其它的受限虚拟机来较快速地完成计算,以为用户更好地提供服务。由此可以看出,根据本发明实施例的分布式计算管理装置可以通过冗余计算的方法,避免单个计算节点故障或者负载增加所带来的无法完成任务或者任务延时完成的问题,从而能够具备节点容灾的优点。并且,由于按需使用计算资源并能够快速地完成计算,用户按照任务实际消耗的cpu时间计费,相对租用普通虚拟机而言能够节省内存和磁盘的配用。
当受限虚拟机确定模块302确定好用于进行分布式计算任务的一个以上的受限虚拟机后,分布式计算分配模块303被配置为将上述分布式计算任务分配到上述一个以上的受限虚拟机,以由上述一个以上的受限虚拟机进行与上述分布式计算任务对应的计算。
如之前所述,实施例中,由于与分布式计算任务对应的算法被存储在Docker镜像仓库中,因此在将分布式计算任务分配到一个以上的受限虚拟机之前,分布式计算分配模块303会根据由任务请求接收模块301接收到的请求中所包含的算法的存储地址来从Docker镜像仓库中获取到该算法,以便将分布式计算任务分配到一个以上的受限虚拟机。
在分配任务到一个以上的受限虚拟机时,还可能出现被分配任务的一个以上的受限虚拟机中的一个或者多个受限虚拟机突发故障、或者普通虚拟机突然占用大量虚拟资源(负载增大)而导致该受限虚拟机无法接受任务或者完成任务的时间会延迟等的情况。针对这样的情况,进一步,实施例中,在分布式计算分配模块303分配任务时,上述一个或者多个受限虚拟机可以拒绝接收任务使得其不被分配任务,并且此时受限虚拟机确定模块302会从受限虚拟机集群中未被确定用于进行该任务的受限虚拟机中再次选择一个或者多个受限虚拟机来用于进行上述任务,并且经由分布式计算分配模块303将上述任务分配到该再次选择的一个或者多个受限虚拟机,以由其进行与上述分布式计算任务对应的计算。再次选择的一个或者多个受限虚拟机可以是根据最近由受限虚拟机确定模块302获知的受限虚拟机的虚拟资源状态信息,基于需要快速完成计算的目标,从未被确定用于进行该分布式计算任务的受限虚拟机中选择出的。进一步,根据最近由受限虚拟机确定模块302基于受限虚拟机的虚拟资源状态信息而确定的优先级,基于需要快速完成计算的目标,从未被确定用于进行该分布式计算任务的受限虚拟机中再次选择出一个或者多个受限虚拟机。如此,能够保证执行每一项任务的受限虚拟机的数量,以在任何情况下都能较快速地完成计算,从而更好地为用户提供服务。
被分配了任务的上述一个以上的受限虚拟机将进行与上述分布式计算任务对应的计算。实施例中,在受限虚拟机上进行上述计算所获得的计算结果被输出到该受限虚拟机的内存文件***,以减少对物理机磁盘IO的压力。
进一步,分布式计算结果输出模块304被配置为将由上述一个以上的受限虚拟机进行计算所获得的计算结果输出给上述用户。
实施例中,上述计算结果由分布式计算结果输出模块304从受限虚拟机的内存文件***中读取出,并通过之前所述的向用户提交的api接口输出到由用户提交的请求中所包括的输出路径,以将计算结果输出给用户。通常,分布式计算结果输出模块304从最快计算出计算结果的受限虚拟机的内存文件***中读取出计算结果,并经由api接口将该计算结果输出给用户。
下面,将参照图4来说明根据本发明实施例的分布式计算***的结构。
图4示出了根据本发明实施例的分布式计算***400的基本结构示意图。如图4所示,根据本发明实施例的分布式计算***400包括:
受限虚拟机集群401,所述受限虚拟机集群401被配置为包括多个受限虚拟机;以及
如上参照图3说明的根据本发明实施例的分布式计算管理装置300。
图4中的受限虚拟机集群401与前面参照图1说明的根据本发明实施例的分布式计算方法中所涉及到的受限虚拟机集群以及参照图3说明的根据本发明实施例的分布式计算管理装置中所涉及到的受限虚拟机集群相同,本发明在此不再详细赘述。此外,图4中的分布式计算管理装置300与前面参照图3说明的根据本发明实施例的分布式计算管理装置相同,本发明在此同样不再详细赘述。
进一步,如图4所示,根据本发明实施例的分布式计算***进一步包括受限虚拟机信息收集器403和Docker镜像仓库404,其中,受限虚拟机信息收集器403被配置为定期获取受限虚拟机集群401中的受限虚拟机的虚拟资源状态信息,Docker镜像仓库404被配置为用作算法存储器,在其中存储与分布式计算任务对应的算法。
实施例中,当分布式计算管理装置300中的任务请求接收模块301第一次接收到来自用户的与分布式计算任务相关的请求时,即,分布式计算管理装置300刚刚起动起来以进行其的相应功能时,其中的受限虚拟机确定模块302被配置为从受限虚拟机信息收集器401中获取上述虚拟资源状态信息。而在受限虚拟机确定模块302已经从受限虚拟机信息收集器403中获取过一次受限虚拟机的虚拟资源状态信息后,其可以不再从受限虚拟机信息收集器403中获取受限虚拟机的虚拟资源状态信息,而是会在分布式计算分配模块303将分布式计算任务分配到一个以上的受限虚拟机后,由受限虚拟机确定模块302根据对受限虚拟机的任务分配情况来自动对受限虚拟机的虚拟资源状态信息进行更新,以便用于下一个来自用户的与分布式计算任务相关的请求。如此,可以进一步缩短完成任务的时间,进一步较小任务使用的cpu时间,从而为用户进一步节省开销。
通常,受限虚拟机集群401中的受限虚拟机越多,***则越难管理。而对于物理机集群,可能存在成千上万台物理机,并且跨越不同的机房。为克服上述问题,可以将一定数量的物理机(例如,500台)划分为一组,针对每一组提供一套完整的上述分布式计算***,并在接入层通过负载均衡技术将一个分布式计算请求同时发送给多个分布式计算***,以由其同时进行计算,如此使得***能够具有很强的跨机房容灾特性,单一机房的故障不会导致任务的不能完成。
综上所述,可以看出,本发明所提供的分布式计算方法、管理装置及***基于物理机集群中的闲置虚拟资源来实现,其能够在不影响其他租户的普通虚拟机的所需虚拟资源的情况下,从物理机集群中的资源较大的物理机中压榨出剩余的碎片资源(闲置资源)来进一步进行有效利用,如此能够实现在不需要对普通虚拟机的虚拟资源分配算法作改造的情况下就可以充分利用物理机集群的闲置虚拟资源,以达到物理机集群的资源使用均衡、提高资源利用率的目的。并且,该分布式计算方法、管理装置及***还能够带来如下优点:降低硬件采购成本提高资源利用率;在保证任务的计算资源的同时将计算资源的费用降低;闲置虚拟资源以分布式服务的方式提供,使用该服务的用户不需要关心资源的位置及管理;不受单个计算节点的影响,具有较强的节点容灾特性;具备跨机房容灾特性,不受单个机房故障的影响。
进一步,根据本发明的另一个实施例,还提供一种非易失性存储介质,该非易失性存储介质具有存储在其中的指令,当该指令被执行时,使得处理器执行以上参照图1说明的根据本发明实施例的分布式计算方法,该指令包括:
任务请求接收指令,接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定指令,当接收到上述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配指令,将上述分布式计算任务分配到上述一个以上的受限虚拟机,以由上述一个以上的受限虚拟机进行与上述分布式计算任务对应的计算;以及
分布式计算结果输出指令,将由上述一个以上的受限虚拟机进行上述计算所获得的计算结果输出给所述用户,
其中,所述受限虚拟机集群中的受限虚拟机被配置于物理机集群中的物理机上,为所述受限虚拟机分配有分配虚拟资源,并且所述物理机上还配置有普通虚拟机,
当与所述物理机对应的虚拟资源与所述物理机上的所述普通虚拟机实际使用的虚拟资源的差值小于所述物理机上的所述受限虚拟机的分配虚拟资源时,所述受限虚拟机的可用虚拟资源被限制为所述差值,
当上述差值不小于所述分配虚拟资源时,所述可用虚拟资源为所述分配虚拟资源。
进一步,根据本发明的另一个实施例,还提供一种分布式计算设备,包括:
存储器,所述存储器具有存储在其中的计算机可执行的指令;以及
处理器,所述处理器被耦合至所述存储器,并且被配置为执行与以上参照图1说明的根据本发明实施例的分布式计算方法对应的处理,该处理包括:
任务请求接收处理,接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定处理,当接收到上述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行上述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配处理,将上述分布式计算任务分配到上述一个以上的受限虚拟机,以由上述一个以上的受限虚拟机进行与上述分布式计算任务对应的计算;以及
分布式计算结果输出处理,将由上述一个以上的受限虚拟机进行上述计算所获得的计算结果输出给所述用户,
其中,所述受限虚拟机集群中的受限虚拟机被配置于物理机集群中的物理机上,为所述受限虚拟机分配有分配虚拟资源,并且所述物理机上还配置有普通虚拟机,
当与所述物理机对应的虚拟资源与所述物理机上的所述普通虚拟机实际使用的虚拟资源的差值小于所述物理机上的所述受限虚拟机的分配虚拟资源时,所述受限虚拟机的可用虚拟资源被限制为所述差值,
当上述差值不小于所述分配虚拟资源时,所述可用虚拟资源为所述分配虚拟资源。
虽然经过对本发明结合具体实施例进行描述,对于本领域的技术技术人员而言,根据上文的叙述后作出的许多替代、修改与变化将是显而易见。因此,当这样的替代、修改和变化落入附后的权利要求的精神和范围之内时,应该被包括在本发明中。
Claims (13)
1.一种分布式计算方法,其特征在于,包括:
任务请求接收步骤,接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定步骤,当接收到所述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行所述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配步骤,将所述分布式计算任务分配到所述一个以上的受限虚拟机,以由所述一个以上的受限虚拟机进行与所述分布式计算任务对应的计算;以及
分布式计算结果输出步骤,将由所述一个以上的受限虚拟机进行所述计算所获得的计算结果输出给所述用户,
其中,所述受限虚拟机集群中的受限虚拟机被配置于物理机集群中的物理机上,为所述受限虚拟机分配有分配虚拟资源,并且所述物理机上还配置有普通虚拟机,
当与所述物理机对应的虚拟资源与所述物理机上的所述普通虚拟机实际使用的虚拟资源的差值小于所述物理机上的所述受限虚拟机的分配虚拟资源时,所述受限虚拟机的可用虚拟资源被限制为所述差值,
当上述差值不小于所述分配虚拟资源时,所述可用虚拟资源为所述分配虚拟资源。
2.如权利要求1所述的分布式计算方法,其特征在于,
在所述受限虚拟机确定步骤中,基于受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,为所述受限虚拟机确定所述受限虚拟机能够被用于进行所述分布式计算任务的优先级,并且
根据所述优先级来确定用于进行所述分布式计算任务的所述一个以上的受限虚拟机。
3.如权利要求1或2所述的分布式计算方法,其特征在于,
若所述一个以上的受限虚拟机中的一个或者多个所述受限虚拟机拒绝接收所述分布式计算任务,则从所述受限虚拟机集群中未被确定用于进行所述分布式计算任务的受限虚拟机中再次选择一个或者多个受限虚拟机来用于进行所述分布式计算任务,并且
将所述分布式计算任务分配到再次选择的一个或者多个受限虚拟机,以由所述一个或者多个受限虚拟机进行所述计算。
4.如权利要求1或2所述的分布式计算方法,其特征在于,
所述与分布式计算任务相关的请求包括与所述分布式计算任务对应的算法的输入、输出路径、以及所述算法在算法存储器中的存储地址,其中,在将所述分布式计算任务分配到所述一个以上的受限虚拟机之前,根据所述存储地址从所述算法存储器中获取所述算法。
5.如权利要求1或2所述的分布式计算方法,其特征在于,
在受限虚拟机上进行所述计算所获得的计算结果被输出到所述受限虚拟机的内存文件***,并且
所述计算结果从所述内存文件***中被读取出并被输出给所述用户。
6.一种分布式计算管理装置,其特征在于,包括:
任务请求接收模块,被配置为接收来自用户的与分布式计算任务相关的请求;
受限虚拟机确定模块,被配置为当所述任务请求接收模块接收到所述请求时,根据受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,确定用于进行所述分布式计算任务的一个以上的受限虚拟机;
分布式计算分配模块,被配置为将所述分布式计算任务分配到所述一个以上的受限虚拟机,以由所述一个以上的受限虚拟机进行与所述分布式计算任务对应的计算;以及
分布式计算结果输出模块,被配置为将由所述一个以上的受限虚拟机进行所述计算所获得的计算结果输出给所述用户,
其中,所述受限虚拟机集群中的受限虚拟机被配置于物理机集群中的物理机上,为所述受限虚拟机分配有分配虚拟资源,并且所述物理机上还配置有普通虚拟机,
当与所述物理机对应的虚拟资源与所述物理机上的所述普通虚拟机实际使用的虚拟资源的差值小于所述物理机上的所述受限虚拟机的分配虚拟资源时,所述受限虚拟机的可用虚拟资源被限制为所述差值,
当上述差值不小于所述分配虚拟资源时,所述可用虚拟资源为所述分配虚拟资源。
7.如权利要求6所述的分布式计算管理装置,其特征在于,
所述受限虚拟机确定模块被配置为基于受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,为所述受限虚拟机确定所述受限虚拟机能够被用于进行所述分布式计算任务的优先级,并且
根据所述优先级来确定用于进行所述分布式计算任务的所述一个以上的受限虚拟机。
8.如权利要求6或7所述的分布式计算管理装置,其特征在于,
若所述一个以上的受限虚拟机中的一个或者多个所述受限虚拟机拒绝接收所述分布式计算任务,则所述受限虚拟机确定模块从所述受限虚拟机集群中未被确定用于进行所述分布式计算任务的受限虚拟机中再次选择一个或者多个受限虚拟机来用于进行所述分布式计算任务,并且
所述分布式计算分配模块将所述分布式计算任务分配到再次选择的一个或者多个受限虚拟机,以由所述一个或者多个受限虚拟机进行所述计算。
9.如权利要求6或7所述的分布式计算管理装置,其特征在于,
所述与分布式计算任务相关的请求包括与所述分布式计算任务对应的算法的输入、输出路径、以及所述算法在算法存储器中的存储地址,其中,在所述分布式计算分配模块将所述分布式计算任务分配到所述一个以上的受限虚拟机之前,所述分布式计算分配模块根据所述存储地址从所述算法存储器中获取所述算法。
10.如权利要求6或7所述的分布式计算管理装置,其特征在于,
在受限虚拟机上进行所述计算所获得的计算结果被输出到所述受限虚拟机的内存文件***,并且
所述分布式计算结果输出模块从所述内存文件***中读取出所述计算结果并输出给所述用户。
11.一种分布式计算***,其特征在于,包括:
受限虚拟机集群,所述受限虚拟机集群被配置为包括多个受限虚拟机;以及
如权利要求6-10中任一项所述的分布式计算管理装置。
12.如权利要求11所述的分布式计算***,其特征在于,进一步包括:
受限虚拟机信息收集器,所述受限虚拟机信息收集器被配置为定期获取所述受限虚拟机集群中的受限虚拟机的虚拟资源状态信息,
当所述任务请求接收模块第一次接收到所述请求时,所述受限虚拟机确定模块被配置为从所述受限虚拟机信息收集器中获取所述虚拟资源状态信息,并且
在所述分布式计算分配模块将所述分布式计算任务分配到所述一个以上的受限虚拟机后,所述受限虚拟机确定模块被配置为对所述虚拟资源状态信息进行更新。
13.如权利要求11或12所述的分布式计算***,其特征在于,进一步包括:
算法存储器,所述算法存储器被配置为存储与所述分布式计算任务对应的算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611237645.2A CN106681834A (zh) | 2016-12-28 | 2016-12-28 | 分布式计算方法、管理装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611237645.2A CN106681834A (zh) | 2016-12-28 | 2016-12-28 | 分布式计算方法、管理装置及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106681834A true CN106681834A (zh) | 2017-05-17 |
Family
ID=58871894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611237645.2A Pending CN106681834A (zh) | 2016-12-28 | 2016-12-28 | 分布式计算方法、管理装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106681834A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807859A (zh) * | 2017-10-24 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种FaaS框架及其工作方法、开发运维FaaS框架的*** |
CN108108248A (zh) * | 2017-12-28 | 2018-06-01 | 郑州云海信息技术有限公司 | 一种实现目标检测的cpu+gpu集群管理方法、装置及设备 |
CN108388658A (zh) * | 2018-03-07 | 2018-08-10 | 成都创信特电子技术有限公司 | 数据文件可靠存储方法 |
CN108399099A (zh) * | 2018-03-07 | 2018-08-14 | 成都创信特电子技术有限公司 | 文件安全存储和内容保护方法 |
CN109062658A (zh) * | 2018-06-29 | 2018-12-21 | 优刻得科技股份有限公司 | 实现计算资源服务化的调度方法、装置、介质、设备及*** |
CN110096331A (zh) * | 2018-01-30 | 2019-08-06 | ***通信有限公司研究院 | 分级方法及装置、分级设备及存储介质 |
WO2019153973A1 (zh) * | 2018-02-12 | 2019-08-15 | 华为技术有限公司 | 事件驱动方法及装置 |
CN110297693A (zh) * | 2019-07-04 | 2019-10-01 | 北京伟杰东博信息科技有限公司 | 一种分布式软件任务分配的方法及其*** |
CN110612705A (zh) * | 2017-11-08 | 2019-12-24 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN111314735A (zh) * | 2020-03-06 | 2020-06-19 | 新华智云科技有限公司 | 视频处理方法、***及存储介质 |
CN112513816A (zh) * | 2018-08-17 | 2021-03-16 | 威睿公司 | 函数即服务(faas)执行分配器 |
WO2022179423A1 (zh) * | 2021-02-26 | 2022-09-01 | 阿里巴巴集团控股有限公司 | 虚拟化处理***、方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346779A (zh) * | 2011-10-18 | 2012-02-08 | 中国联合网络通信集团有限公司 | 分布式文件***和主控节点的备份方法 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制*** |
CN105068874A (zh) * | 2015-08-12 | 2015-11-18 | 国家电网公司 | 一种结合Docker技术的资源按需动态分配方法 |
-
2016
- 2016-12-28 CN CN201611237645.2A patent/CN106681834A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346779A (zh) * | 2011-10-18 | 2012-02-08 | 中国联合网络通信集团有限公司 | 分布式文件***和主控节点的备份方法 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制*** |
CN105068874A (zh) * | 2015-08-12 | 2015-11-18 | 国家电网公司 | 一种结合Docker技术的资源按需动态分配方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807859A (zh) * | 2017-10-24 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种FaaS框架及其工作方法、开发运维FaaS框架的*** |
CN112214293A (zh) * | 2017-11-08 | 2021-01-12 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN112214293B (zh) * | 2017-11-08 | 2024-07-16 | 华为云计算技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN110612705A (zh) * | 2017-11-08 | 2019-12-24 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
US11431794B2 (en) | 2017-11-08 | 2022-08-30 | Huawei Cloud Computing Technologies Co., Ltd. | Service deployment method and function management platform under serverless architecture |
CN110612705B (zh) * | 2017-11-08 | 2020-09-25 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN108108248A (zh) * | 2017-12-28 | 2018-06-01 | 郑州云海信息技术有限公司 | 一种实现目标检测的cpu+gpu集群管理方法、装置及设备 |
CN110096331A (zh) * | 2018-01-30 | 2019-08-06 | ***通信有限公司研究院 | 分级方法及装置、分级设备及存储介质 |
WO2019153973A1 (zh) * | 2018-02-12 | 2019-08-15 | 华为技术有限公司 | 事件驱动方法及装置 |
CN108388658A (zh) * | 2018-03-07 | 2018-08-10 | 成都创信特电子技术有限公司 | 数据文件可靠存储方法 |
CN108399099A (zh) * | 2018-03-07 | 2018-08-14 | 成都创信特电子技术有限公司 | 文件安全存储和内容保护方法 |
CN109062658A (zh) * | 2018-06-29 | 2018-12-21 | 优刻得科技股份有限公司 | 实现计算资源服务化的调度方法、装置、介质、设备及*** |
CN112513816A (zh) * | 2018-08-17 | 2021-03-16 | 威睿公司 | 函数即服务(faas)执行分配器 |
CN112513816B (zh) * | 2018-08-17 | 2022-08-02 | 威睿公司 | 函数即服务(faas)执行分配器 |
CN110297693A (zh) * | 2019-07-04 | 2019-10-01 | 北京伟杰东博信息科技有限公司 | 一种分布式软件任务分配的方法及其*** |
CN111314735A (zh) * | 2020-03-06 | 2020-06-19 | 新华智云科技有限公司 | 视频处理方法、***及存储介质 |
WO2022179423A1 (zh) * | 2021-02-26 | 2022-09-01 | 阿里巴巴集团控股有限公司 | 虚拟化处理***、方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106681834A (zh) | 分布式计算方法、管理装置及*** | |
US10346216B1 (en) | Systems, apparatus and methods for management of software containers | |
Chauhan et al. | Brokering in interconnected cloud computing environments: A survey | |
US10346775B1 (en) | Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system | |
US10841241B2 (en) | Intelligent placement within a data center | |
CN109062658A (zh) | 实现计算资源服务化的调度方法、装置、介质、设备及*** | |
US11689613B2 (en) | Systems, apparatus and methods for cost and performance-based management of resources in a cloud environment | |
CN104040485B (zh) | Paas分层调度和自动缩放 | |
US20180173567A1 (en) | Systems, Apparatus and Methods For Managing Resources in Computer Systems | |
Fehling et al. | A framework for optimized distribution of tenants in cloud applications | |
CN107548549A (zh) | 分布式计算环境中的资源平衡 | |
CN109684074A (zh) | 物理机资源分配方法及终端设备 | |
CN106020966A (zh) | 用于将从客户接收的任务智能地分布于多个劳动资源间的***和方法 | |
CN107395733A (zh) | 地理分布交互服务云资源协同优化方法 | |
CN110362377A (zh) | 虚拟机的调度方法和装置 | |
CN108139940A (zh) | 对于计算能力的周期性请求的管理 | |
Bermbach et al. | AuctionWhisk: Using an auction‐inspired approach for function placement in serverless fog platforms | |
CN103064744B (zh) | 一种基于SLA的面向多层Web应用的资源优化方法 | |
CN106233276A (zh) | 网络可访问块存储装置的协调准入控制 | |
US10884801B2 (en) | Server resource orchestration based on application priority | |
US11386371B2 (en) | Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system | |
US10884800B2 (en) | Server resource balancing using a suspend-resume strategy | |
US11126466B2 (en) | Server resource balancing using a fixed-sharing strategy | |
US11307898B2 (en) | Server resource balancing using a dynamic-sharing strategy | |
CN110050261A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 200090 Room 201, 10 B, 619 Longchang Road, Yangpu District, Shanghai. Applicant after: Excellent Polytron Technologies Inc Address before: 200090 Shanghai city Yangpu District road 619 Longchang city concept 10 building B block. Applicant before: SHANGHAI UCLOUD INFORMATION TECHNOLOGY CO., LTD. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170517 |