CN107743611B - 优化动态资源分配的系统、方法和计算机存储介质 - Google Patents
优化动态资源分配的系统、方法和计算机存储介质 Download PDFInfo
- Publication number
- CN107743611B CN107743611B CN201680023596.4A CN201680023596A CN107743611B CN 107743611 B CN107743611 B CN 107743611B CN 201680023596 A CN201680023596 A CN 201680023596A CN 107743611 B CN107743611 B CN 107743611B
- Authority
- CN
- China
- Prior art keywords
- resource
- instance
- node
- dynamic
- allocation
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
在各种实施例中,提供了用于优化动态资源分配的方法和系统。在分配器处,接收用户服务请求资源实例。用户服务请求资源实例基于动态资源协议,该动态资源协议支持在资源分配平台中的部件之间生成和传送资源实例。该动态资源协议还定义用于将资源转换和表示为逻辑资源类型和逻辑单元的规则集合。在节点处,生成节点资源实例并且基于动态资源协议,将该节点资源实例从节点传送到分配器。节点资源实例具体包括资源交互矩阵,其指示资源类型之间的依赖关系。在分配器处,生成针对用户服务请求资源实例的资源分配实例。传送资源分配实例,使得基于资源分配实例来分配节点上的资源类型。
Description
技术领域
本公开的实施例总体涉及云计算领域,并且具体涉及用于优化动态资源的系统、方法和计算机存储介质。
背景技术
大规模联网系统是在多种设置中使用的常见平台,该多种设置是用于运行应用并且维护用于业务功能和操作功能的数据的。例如,数据中心(例如,物理云计算平台)同时可以为多个客户提供多种服务(例如,web应用、电子邮件服务、搜索引擎服务等)。典型地,这些大规模联网系统包括分布在整个数据中心的大量资源,其中每种资源类似于在物理节点或主机上运行的物理机器或虚拟机(VM)。当数据中心托管多个租户(例如,客户程序)时,可以将这些资源最佳地分配给不同的租户,以改善云计算平台的操作。
发明内容
该发明内容被提供以简化形式介绍下文在具体实施方式中进一步描述的概念的选择。该发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在孤立地被用来帮助确定所要求保护的主题的范围。
本文中所描述的实施例提供了用于优化动态资源分配的方法和系统。在分配器处,用户服务请求资源实例被接收。该用户服务请求资源实例是基于动态资源协议,该协议支持在资源分配平台中的部件之间生成和传送资源实例。动态资源协议还定义了用于将资源转换(translate)和表示为逻辑资源类型和逻辑单元的规则集合。在节点处,节点资源实例被生成并且基于动态资源协议来从节点向分配器传送该节点资源实例。节点资源实例具体包括资源交互矩阵,其指示资源类型之间的依赖关系(dependency)。针对用户服务请求资源实例,资源分配实例在分配器处被生成。资源分配实例被传送,使得节点上的资源类型基于资源分配实例而被分配。
附图说明
下文参考附图对本发明进行详细描述,其中
图1A和图1B是其中可以采用本文中所描述的实施例的、示例性操作环境的框图;
图2是根据本文中所描述的实施例的、具有资源交互矩阵的示例性节点资源实例的示意图;
图3是根据本文中所描述的实施例的、物理硬件资源的示例性描述;
图4A至图4C是根据本文中所描述的实施例的、基于物理硬件资源的云计算平台中的示例性供给(offering);
图5A和图5B是根据本文中所描述的实施例的、示例性节点资源实例;
图6是示出了根据本文中所描述的实施例的、用于基于动态资源协议来优化资源分配的示例性方法的流程图;
图7是示出了根据本文中所描述的实施例的、用于基于动态资源协议来优化资源分配的示例性方法的流程图;以及
图8是适用于实现本文中所描述的实施例的、示例性计算环境的框图。
具体实施方式
在本文中,对本发明的实施例的主题进行具体描述,以满足法定要求。然而,该描述本身并不旨在限制该专利的范围。相反,发明人已经设想了所要求保护的主题还可以以其他方式体现,以结合其他现有技术或未来技术来包括与本文档中所描述的步骤类似的不同步骤或步骤的组合。而且,尽管术语“步骤”和/或“框”在本文中可以被用于表示所采用的方法的不同元件,但是除非在明确描述了各个步骤的顺序时之外,否则这些术语不应被解释为暗示在本文中公开的各种步骤之中或之间的任何特定顺序。
出于本公开的目的,单词“包括”具有与单词“包括”相同的广泛含义,并且单词“访问”包括“接收”、“引用”或“检索”。另外,除非另有说明,否则单词“一”和“一个”包括复数以及单数。因此,例如,当存在一个或多个特征时,则满足“特征”的约束。还有,术语“或”包括连接、转折和两者(因此,a或b包括a或b,也包括a和b)。
为了下文的详细讨论的目的,参考资源分配平台的分布式计算设备和部件来对实施例进行描述,其中该资源分配平台是基于动态资源协议来支持动态资源的最优分配。部件可以被配置用于执行实施例的新颖方面,其中被配置用于包括被编程为执行具体任务或使用代码实现具体抽象数据类型。可以设想,本文中所描述的方法可以在不同类型的操作环境中执行,该不同类型的操作环境具有本文中所描述的功能部件的可替换的配置。因此,本文中所描述的实施例仅仅是示例性的,并且可以设想,这些技术可以扩展到其他实现方式的上下文。
当数据中心托管与对应的租户程序、应用和服务相关联的多个租户时,可以将这些资源最优地分配给不同租户,以改善云计算平台的操作。作为背景技术,云计算平台可以在被一起管理的节点集合内,提供不同的云计算服务供给。供给可以是指租户或用户可以请求或选择以便为其租户基础设施运行的资源(例如,CPU、GPU、Ram、存储等)的组合。基于供给来有效提供云计算资源以满足租户服务请求,可以有利地改善云计算平台的操作。妨碍云计算平台提供商以快速可靠的方式支持云计算平台供给的效率是与不同类型供给相对应的资源之间的复杂交互。
常规系统以几种不同的方式解决资源分配问题。云计算平台提供商可以支持基于在主机中部署的容器(例如,VM)的供给。例如,主机可以通告用于五个小型VM或三个小型VM和两个中等VM,或一个GPU大型VM和两个小型VM等的可用容量。这种解决方案简化了主机的资源的粒度表示中所涉及的挑战。然而,在具有可以看似支持供给的无尽组合的资源的现代主机的情况下,标识可以部署在主机中的单个VM的可能组合可能是困难的。而且,当尝试快速有效地更改对租户的供给时,必须对主机进行更新以考虑新的VM供给组合。
其他系统可以实现具有关于在云计算平台中运行的特定硬件SKU(库存保持单元)的知识的算法。预测这些算法是基于如下假设:即硬件在暴露(expose)主机的资源的资源规范合约中是同质的。在这样的系统中,因为硬件SKU是算法的固有部分,所以支持新硬件SKU和资源类型需要实质性地改变算法。主机机器与资源分配器之间的大多数资源规范合约还缺乏暴露或描述部分硬件故障的能力。作为示例,因为这样的合约打破了期望主机上的硬件是同质的算法的前提,所以五个磁盘中的单个磁盘故障不在资源规范合约中被表示。因此,分配算法不使用具有部分故障的主机。进一步地,同质硬件前提可以以机会主义的方式,防止分配算法使用由另一无关主机所拥有或共享的资源。
因而,在具有常规资源分配解决方案的云计算平台中采用新硬件SKU涉及若干种不同的考虑,诸如跨云计算平台的架构堆栈的多个改变。进一步地,引入新供给(例如,简单SSD VM)可能导致堆栈之间的改变,这可能会减慢云计算平台提供商对新供给做出反应的能力。此外,当做出分配决策时,由于部分硬件故障导致的容量损失可能难以被考虑到。另外,动态清除未充分利用的资源可能导致超量预订,这可能使得对推定的可用资源进行实时调整成为必要。
本发明的实施例提供了简单有效的方法和系统,以用于使用动态资源协议,基于资源分配平台来分配云计算平台资源,该资源分配平台支持动态资源的最优分配。动态资源协议便于以逻辑单元表示物理资源容量,其中逻辑单元跨硬件SKU而保持恒定。特定地,资源容量可以基于资源的预先定义的逻辑资源类型来表示,该逻辑资源类型由动态资源协议定义。动态资源协议可以用于在资源分配平台的部件之间生成并且传送资源表示,以使得一个或多个分配器可以基于逻辑资源类型来做出决策并且管理资源。进一步地,分配器可能与云计算平台中的实际硬件无关。
在高层,节点可以基于动态资源协议来呈现可用资源,该动态资源协议便于在云计算平台的部件之间表示和传送资源。通常,资源是指可以被抽象成在动态资源协议中定义的逻辑资源类型的、节点中的硬件资源、软件资源或其他资源。具体地,节点使用动态资源协议来暴露包括资源交互矩阵的节点资源实例,该资源交互矩阵将当使用另一资源时而隐式消耗的资源考虑在内。动态资源协议还支持资源表示,使得资源分配可以包括异构硬件和部分故障硬件。动态资源实例(例如,用户服务请求资源实例或节点资源实例)还被称为规范合约,其是使用动态资源协议定义的各个资源表示,该动态资源协议可以被分配器用于将用户服务请求与节点相匹配,使得资源分配最优化。
在操作中,节点使用动态资源协议,来暴露可用作资源名称和对应的逻辑单元的资源类型和资源类型的量化数量。主机(例如,主机操作系统)基于动态资源协议来将物理容量转换成逻辑资源容量,并且向分配器传送逻辑资源容量。动态资源协议可以支持用于定义和传送物理容量的密钥对。例如,CPU逻辑资源容量可以是被指示为{CPU_MHz,3000}的密钥对。动态资源协议可以特定地支持节点资源实例。例如,可以在节点资源实例中表示若干个核的计数。节点资源实例还可以包括具有用于可适用资源的依赖关系矩阵的资源交互矩阵。例如,如果使用GPU,则禁用一个或多个核。
用户还可以基于动态资源协议来定义要求集合。例如,用户服务请求资源实例可以包括在节点资源实例中使用的相同的资源名称。可以设想,用户服务请求资源实例可以包括可用资源名称集合(例如,资源名称的子集)中的一个或多个可用资源名称。分配器可以接收用户服务请求(例如,用户服务请求资源实例)。使用关于单个资源类型的动态资源协议,分配器可以将资源类型与不同的用户服务请求混合和匹配,以便产生资源的最优放置,其中资源的最优放置特定地把一个或多个资源的稀缺性作为因素计入。
分配器可以基于资源名称来匹配资源,以确定可以被引导至用户服务请求的实际资源,该资源名称是在具有节点的资源交互矩阵的节点资源实例中使用。在这方面,在未意识到可能的资源类型的情况下,分配者可以继续对资源的稀缺性敏感。基于动态资源协议,表示资源支持以基本上更少的工作来更新虚拟机供给。
本公开的实施例可以支持向其他节点借出资源的节点的概念。可以设想,第二分配器可以基于传送针对硬件资源的请求并且接收使用硬件资源的准许来借用硬件。硬件资源与远程节点(或者换句话说,通常不支持第二分配器的工作负载的节点)相关联。第二分配器可以基于远程节点的节点资源实例,来请求硬件资源。远程节点负责管理到第二分配器的资源,包括在请求时允许或拒绝初始准许,以及向第二分配器传送节点资源实例更新,同时第二分配器利用来自远程节点的资源,支持其工作负载。
本文中描述的实施例可以通过特定示例进一步描述。在一个实施例中,联网资源使用资源名称,该资源名称与由节点呈现的资源集合相对应。网络资源名称可以指示在DIP池中剩余的直接互联网协议(DIP)的可用容量。节点还可以基于基础设施分类方案(例如,节点级资源和机架级资源)来呈现资源。节点可以呈现节点级资源和机架级资源两者。例如,节点处的若干个可用DIP和机架池中的若干个可用DIP。当做出资源分配时,分配器可以使用相同的网络资源名称,把其中的多个节点实例和对应的资源级别作为因素计入。作为示例,因此在一个节点上分配DIP将隐式消耗来自共享相同DIP池的其他节点的DIP。
节点可以呈现资源以及资源的数量,同时考虑在任何时间点使用的资源的数量。在这方面,节点可以处理广泛范围的条件。例如,可以容易识别节点上的几个磁盘中的单个磁盘的丢失,并且将其计为所报告的可用资源的减少。另一条件可以包括所分配的资源未被充分利用的动态发现,这导致可用资源的增加。
特定地,参考动态资源协议,动态资源协议可以被用于在资源分配平台的部件之间生成并且传送资源表示。动态资源协议(“协议”)标识用于在云计算平台中定义并且传送云计算资源的规则、策略和逻辑。该协议可以是指用于表示资源以支持资源的优化分配的协定元件集合。该协议可以使用基于软件的端到端资源分配平台,而被实现为具有其在客户端设备、分配器设备和节点上的部分的应用或服务。该协议可以支持利用对应的用户服务请求设备和节点,生成动态资源实例(例如,用户服务请求资源实例和节点资源实例)。
动态资源协议可以特定地支持从主机向分配器传送具有资源交互矩阵的节点实例。分配器基于中央分配逻辑来操作。使用中央分配逻辑的分配器可以决定哪个主机最佳适合放置虚拟机。动态资源协议可以使得能够实现几个不同的协议属性(例如,资源交互矩阵元素),包括将可用资源和总资源定义为密钥-值对集合。该密钥-值对集合可以包括中央分配逻辑未知的特定属性。另一协议属性可以包括定义一种用于声明不同资源之间的依赖关系的方法。声明依赖关系至少基于将这些依赖关系作为因素计入分配逻辑中,来防止过度分配。例如,与资源类型GPU相关联的资源还减少在主机中可用CPU的数目。该协议使得主机能够通告可用资源,同时排除由主机支持的硬件资源的部分硬件故障。
而且,分配逻辑可以对在动态资源实例中所提供的资源执行稀缺性分析。当将虚拟机放置在节点上时,分配逻辑可以利用最佳拟合启发法(heuristic)。该协议可以支持用于特定业务决策人员的用户服务请求资源实例,来在资源方面描述供给,而不涉及分配算法的改变。该协议为各种单个资源目录管理器(例如,网络资源管理器)提供了一种向分配算法高效传输可用资源信息的方式,并且类似地使得能够实现分配器所需的可用资源信息的有效传输。
本文所描述的实施例可以进一步改善基于资源分配平台来分配资源。资源分配平台是指使用动态资源分配协议的集成部件,该动态资源分配协议便于资源的优化分配。集成部件是指使用分配平台支持优化分配功能性的硬件架构和软件框架。硬件架构是指通用物理部件及其相互关系,而软件框架是指提供可以用在设备上操作的硬件实现的功能性的软件。特别地,硬件架构可以是通用的,以简化在本文中使用分配平台的软件框架描述的功能性。基于软件的端到端分配平台可以利用分配平台部件操作,以便操作计算机硬件来提供优化分配功能性。
作为示例,分配平台可以包括应用编程接口(API)库,其包括例程、数据结构、对象类别和变量的规范。API库可以支持硬件架构和分配平台的软件框架之间的交互。这些API包括分配平台的配置规范,以使得用户请求设备、分配器设备和节点服务器可以在云计算平台中进行通信。例如,用户服务请求接口可以被集成在分配平台中,以支持经由在用户服务请求设备和分配器处的接口来传送信息。
因此,在本文中所描述的第一实施例中,提供了一种用于优化动态资源分配的系统。该系统包括分配器部件,其被配置用于:基于动态资源协议来接收用户服务请求资源实例,其中动态资源协议支持在资源分配平台中的部件之间传送的资源实例;基于节点资源实例来生成针对用户服务请求资源实例的资源分配实例,其中节点资源实例基于动态资源协议,节点资源实例包括指示资源类型之间的一个或多个依赖关系的资源交互矩阵;以及传送用于用户服务请求资源实例的资源分配实例,使得基于资源分配实例来分配与节点资源实例相关联的节点上的资源。
该系统还包括主机部件,其被配置用于:基于动态资源协议来生成节点资源实例;向分配器部件传送节点资源实例;基于节点资源实例来接收资源分配实例;以及基于资源分配实例来分配节点资源。
在本文中所描述的第二实施例中,提供了一种用于优化动态资源分配的计算机实现方法。该方法包括:基于动态资源协议来接收用户服务请求资源实例,其中动态资源协议支持在资源分配平台中的部件之间传送的资源实例。该方法还包括:基于节点资源实例来生成用于用户服务请求资源实例的资源分配实例,其中节点资源实例基于动态资源协议,节点资源实例包括资源交互矩阵。该方法还包括:传送用于用户服务请求实例的资源分配实例,使得基于资源分配实例来分配与节点资源实例相关联的节点的资源。
在本文中所描述的第三实施例中,提供了一个或多个计算机存储介质,其具有在其上体现的计算机可执行指令,当该计算机可执行指令由一个或多个处理器执行时,使得一个或多个处理器执行用于优化动态资源的方法。该方法包括:生成具有资源交互矩阵的节点资源实例,其中节点资源实例基于动态资源协议。该方法还包括:向分配器部件传送节点资源实例。该方法还包括:基于节点资源实例来接收资源分配实例。该方法包括:基于资源分配实例来分配节点资源。
现在参考图1A和图1B,图1A图示了其中可以采用本公开的实现方式的、示例性分布式计算环境100。具体地,图1A示出了包括云计算平台110的资源分配平台系统(“分配系统”)的高级架构,其中分配系统支持根据本公开的实现方式使用动态资源协议进行通信。应当理解,本文中所描述的这种布置和其他布置仅作为示例而阐述。除了或代替所示出的那些,还可以使用其他布置和元件(例如,机器、接口、功能、顺序、以及功能的分组等),并且一些元件可以被全部省略。进一步地,本文中所描述的元件中的许多元件是功能实体,该功能实体可以被实现为离散部件或分布式部件,或者以任何合适的组合和位置与其他部件结合来实现。本文中被描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。
数据中心可以支持分布式计算环境100,其包括云计算平台110、机架120、以及机架120中的节点130(例如,计算设备、处理单元或刀片)。分配系统可以利用跨不同数据中心和地理区域运行云服务的云计算平台110来实现。云计算平台110可以实现分配器140部件,用以提供并且管理云服务的资源分配、部署、升级和管理。典型地,云计算平台110用于以分布式方式存储数据或运行服务应用。数据中心中的云计算平台110可以被配置成托管并且支持特定服务应用的端点的操作。云计算平台110可以是公共云、私有云或专用云。
节点130可以被提供有在节点130上运行定义的软件堆栈的主机150(例如,操作系统或运行时间环境)。节点130还可以被配置成在云计算平台110内执行专门功能性(例如,计算节点或存储节点)。节点130被分配以运行租户的服务应用的一个或多个部分。租户可以是指利用云计算平台110的资源的客户。支持特定租户的云计算平台110的服务应用部件可以被称为租户基础设施或租赁。术语“服务应用”、“应用”或“服务”在本文中可互换使用,并且宽泛地是指在数据中心的顶部上运行的、或访问数据中心内的存储装置和计算设备位置的任何软件或软件的部分。
当多于一个单独的服务应用正在由节点130支持时,该节点可以被划分为虚拟机(例如,虚拟机152和虚拟机154)。物理机还可以同时运行单独的服务应用。虚拟机或物理机可以被配置为由云计算平台110中的资源160(例如,硬件资源和软件资源)支持的个性化计算环境。可以设想,资源可以被配置用于特定服务应用。进一步,每个服务应用可以被划分为功能部分,使得每个功能部分能够在单独的虚拟机上运行。在云计算平台110中,多个服务器可以用于运行服务应用并且在集群中执行数据存储操作。具体地,服务器可以独立地执行数据操作,但是被暴露为被称为集群的单个设备。集群中的每个服务器都可以被实现为节点。
客户端设备180可以被链接到云计算平台110中的服务应用。例如,客户端设备180可以是任何类型的计算设备,其可以与参考图8描述的计算设备800相对应。客户端设备180可以被配置成向云计算平台110发出命令。在实施例中,客户端设备180可以通过虚拟因特网协议(IP)和负载均衡器或者将通信请求引导至云计算平台110中的指定端点的其他器件,来与服务应用进行通信。云计算平台110的部件可以通过网络(未示出)彼此通信,该网络可以包括但不限于,一个或多个局域网(LAN)和/或广域网(WAN)。
已经对分布式计算环境100和云计算平台110的各种方面进行描述,应当注意,在本公开的范围内,可以采用任何数目的部件来实现所需的功能性。尽管图1A的各种部件为了清楚起见用线示出,但是实际上,对各种部件的描述可能不是那么清楚,并且从比喻意义上,线可能更准确地是灰色或模糊的。进一步地,尽管图1的一些部件被描绘为单个部件,但是描述在本质上和数目上是示例性的,而不被解释为对本公开的所有实现方式的限制。
现在转到图1B,图1B图示了在便于执行本文中所描述的功能性的资源分配平台系统内的附加部件。在未示出的其他部件中,资源分配平台系统包括节点130、分配器140、主机150、传输部件156、资源160、客户端设备180和目录管理器190。有利地,本文中所描述的实施例支持在节点和分配器之间传送的动态资源实例,使得分配器可以仅基于在节点资源实例中暴露的逻辑资源而做出决策。节点资源可以由主机150生成,该主机150具有对硬件的控制,并且基于动态资源协议,来生成远离该物理属性的资源(例如,硬件资源和OS资源)的抽象。因此,为了以安全可靠的方式更快地采用新硬件资源,不再需要对分配器做出改变,并且分配器可以是与特定硬件SKU无关的纯全局放置功能。
继续参考图1B,客户端设备180可以被配置成生成和传送用户服务请求。用户服务请求可以作为用户服务请求实例182而被传送。请求转换部件(未示出)负责与客户端设备通信,以接收用户服务请求。可以设想,用户服务请求可以被转换成用户服务请求实例182。具体地,基于动态资源协议来生成用户服务请求实例,使得用户服务请求资源实例182指示在动态资源协议中描述的逻辑资源(例如,资源名称和逻辑单元)方面的要求集合。用户服务请求资源实例182可以被传送到分配器。分配器在中间使用节点资源实例,以产生针对所请求资源的接近最优的放置决策。
主机150负责管理、追踪和传送节点资源。主机150可以基于主机150上的动态工作负载来控制本地硬件资源。主机150可以采取关于本地资源的最优本地决策。例如,主机可以基于物理资源布局(例如,磁盘配置或多级存储)来做出决策。具体地,主机150可以选择不通告不健康或故障资源(例如,故障磁盘),使得在新分配决策中不考虑故障资源。主机150还可以以不同的粒度级别来定义逻辑资源。主机150可以通告在节点资源实例中的逻辑资源。在一个实施例中,节点资源实例可以包括可以被托管的VM类型(例如,X-小(X-small)、大(large)等),并且在另一实施例中,主机可以有利地在ACU、存储、容量、NIC带宽等方面通告逻辑资源。因此,主机150可以是与不同的云计算基础设施供给无关。
主机150和一个或多个单独的目录管理器(例如,目录管理器190)可以负责资源核算(accounting)。目录管理器190负责分类资源。在这方面,目录管理器可以将资源定义为资源分类内的具体逻辑资源类型。例如,网络服务管理器可以负责节点上的多个DIP或多个主机的DIP的共享池。资源核算可以是指追踪可用资源和资源处的当前利用。因此,可以以主机级别以及以每个目录管理器级别追踪资源。主机和目录管理器将可以独立地传送到分配器140或传送到分配器140的资源考虑在内。在这方面,可以设想,目录管理器可以根据本文中所描述的实施例来生成目录管理器资源实例。
主机150负责存留主机150中的现有容器分配。主机150可以进一步执行资源核算,以跟踪节点的可用资源容量。例如,节点可以在请求时提供资源目录。主机150还可以基于硬件的状态,来更新资源核算。主机150还负责通过将容器标记为具有公知错误代码的故障,来通知过度分配故障。在从分配器140接收到资源分配实例时,主机分配如资源分配实例中所指示的资源(例如,容器)。这降低了过度分配的风险,并且使得分配器140能够执行全局稀缺资源分配。
分配器140可以被配置成基于节点资源实例,来做出针对用户服务请求的资源分配的决定。分配器140可以在做出决策时,利用节点资源实例以及中心逻辑。节点资源实例142可以指代与使用动态资源协议所表示的物理硬件解耦的资源抽象。基于节点资源实例来做出决策使得能够更轻松地采用云计算平台中的新硬件SKU。可以设想,分配器140没有保持云计算平台中的资源的状态,然而,分配器140可以在存储器中维持正在运行的(in-flight)分配决策,以便当做出更多决定时考虑正在运行的分配。
在操作中,分配器140可以接收用户服务请求资源实例182,并且将用户服务请求资源实例182与节点资源实例相匹配,以便生成针对用户服务请求实例142的资源分配实例144。分配器140可以在分配决策之后重新计算目录,并且使目录与来自主机150的目录信息同步,以便了解哪些决策尚未到达主机150。这可以使得主机150在其变得可用时或者在故障发生时,能够通告更多的容量。可以设想,分配器140没有做出依赖于特定硬件资源或其知识的决策,在节点资源实例142中对所通告的资源做出决策。分配器150还可以被配置成基于资源交互矩阵和节点资源实例的资源权重,来执行资源稀缺性分析,以进行接近最优的放置。
可以设想,主机140和分配器140可以被配置成与云计算平台中的现有部件向后兼容。动态资源实例(例如,节点资源实例142和资源分配实例144)涉及在分配器140(以仅依赖于正在被暴露的资源)和主机150(以通告逻辑资源并且将它们转换为物理描述)两者中做出配置。配置可以完全与现有分配决策向后兼容,因为它们在云计算平台110中被移出。
动态资源协议可以被用于定义资源实例(例如,用户服务请求实例和节点资源实例)。表1包含动态资源协议可以支持的信息的描述。具有对应的节点的以下信息的目录合约(例如,节点资源实例)可以被生成并且被传送到分配器140。图2图示了具有基于在动态资源分配协议中定义的资源交互矩阵属性的资源交互矩阵的节点资源实例的示例。资源交互矩阵属性的附加细节如下所述。分配器140可以接收多个节点资源实例并且利用节点资源实例,以做出分配决策。
表1
上述信息可以在分配器140和主机150之间持续地同步,以便分配器140当采取放置决策决定时,具有现有资源的最新视图。该信息的来源是主机150,分配器140可以在每个决策之后重新估计信息,以避免意外的过度分配。分配器140可以将从主机150接收到的信息与所采取的最近决策进行对比,以便将尚未提交给目标主机的那些放置合理化并且进行适当的核算估计。
动态资源协议可以进一步支持非预期的过度分配和预期的过度分配场景。参考非预期的过度分配,依赖关系矩阵支持在已经采取分配决策之后并且直到下一目录同步为止,重新计算空闲可分配容量。因为分配器将具有对节点利用的估计,所以这减少了无意的过度分配的风险。由于诸如由于硬件故障而导致的部分遗忘和容量减少等之类的若干因素,该风险尚未完全移除。参照预期的过度分配,通过给主机150自由来通告比可用资源的更多的逻辑资源,该设计使得能够进行预期的过度分配。
动态资源协议支持多级存储表示。例如,在硬件(例如,Gen-3硬件)和云计算平台功能性中添加的附加SSD媒体类型,提供了将多种媒体类型(SSD,HDD)的磁盘集合表示为多级存储阵列的机会。在可能的实现方式中,最快(和最小)的介质被用作零级存储装置,并且在满足某些条件之后回落到下一级(较慢,较大);相同的样式适用于阵列中的后续级别。通过将每个级别指定为不同的资源类型并且确保针对给定级别所通告的空闲可分配容量可以被用于以最小的每级存储容量来完成分配请求,可以在依赖关系矩阵中表示多级存储装置。例如,在具有512GB SSD(0级)和2048GB HDD(1级)的空节点的情况下,所通告的空闲可分配容量对于0级和1级分别为512GB和2048GB,而总通告存储容量为2560GB。分配请求可以指定级别L0,L1的最低所需容量以及总存储。[L0+L1]和总存储之间的差异是溢出,该操作系统决定如何通过使用可用介质中的任一可用介质或进入辅助存储装置来实现。注意,上文适用于可以被表示为多级存储装置的任何资源。因为每个级别都是不同的逻辑资源,所以磁盘存储不是特殊情况。
动态资源协议还支持依赖关系矩阵函数。可能的是,并不是所有的依赖关系都可以被表达为线性递减容量的函数。例如,有可能的是,一旦资源按分配顺序被使用,则一些其他资源容量被设置为零。当存在这样的依赖关系时,可以实现将容量依赖关系表达为函数的能力。
动态资源协议还支持降级状态功能性。降级状态是指其中一些资源(例如,硬件资源)停止旋转的状态。适当时,主机可以通过不包括某些硬件资源而在降级状态下工作,这可以减少与硬件有关的逻辑资源集合的空闲可分配容量和总可分配容量。作为结果,因为故障硬件不再被主机通告,所以分配器140自然而然地避免在故障硬件中放置客户部署的分配顺序。在硬件容器已经被分配和启动之后发生故障的情况下,主机可以工作以了解容器迁移是否需要发生,或者容器是否仍然使用故障硬件。如果需要异地恢复(out-of-placerecovery),则可以将容器标记为故障,并且不再通告故障硬件,以使得当触发迁移时,分配器140可以选择来重新分配给不同的主机。
动态资源协议支持共享资源池。需要分配给单个主机的资源中的一些资源是共享资源池的一部分。例如,可指派给虚拟机的可用IP地址池容易跨越多个主机并且由网络服务管理器进行管理。因此,主机可以报告在目录被同步时资源的利用,以及指向共享资源的空闲和总可分配容量表的指针。当做出放置决策时,分配器140可以使用这些资源的所有者所提供的空闲和总可分配容量表。作为示例,主机可以通告它正在使用x IP地址,并且提供指向资源容量表guid1的指针。容量表guid1由网络服务管理器提供,并且指定总共有y个IP地址以及z个是空闲的。如果为当前请求选择了主机,则当估计容量时,分配器140将z减小1。
动态资源协议可以支持资源权重。存在如下业务场景,其中分配器140在资源交互矩阵的顶部上作出的稀缺性分析可能影响高度稀缺资源(典型地,专门的和昂贵的)的总容量。作为示例,只有在可用CPU容量的数目达到某个低阈值(例如,5%)时,诸如GPU之类的硬件资源可以在业务决策中被指定为CPU的替代。在没有任何操作控制的情况下,在剩余的CPU的数目达到5%之前,分配器140可能会使用GPU方式,因为分配器140可能分配更多容器。本文中所描述的实施例支持将每资源权重添加为操作控制,该操作控制提示分配器140关于GPU做出的业务决策。资源权重可以被定义为[0-100]范围内的整数值,其中较低的值表示较少的稀缺性。在所概述的示例中,对于“CPU”资源,可以指示高值,比如95;对“GPU”资源,可以指示低值,比如5。资源权重没有被主机传送或控制。这是分配器140内部的操作控制,该操作控制基于业务决策而改变,以便影响最终分配决策。
传输部件156可以被配置成以有效方式处理节点资源实例的通信。节点可以支持演进成可以处理指派给一个分配器的数十万个VM的部件的计算,具有资源交互矩阵的节点资源实例的网络要求可以成为受关注区域。因此,可以实现传输部件156,以支持串行化通过仅在每个文档中提供增量(delta)(即,改变或变化)而交换的信息并且支持避免(例如,标识和排除)发出诸如具有零容量的资源之类的重复信息。分配器140还可以以最大值来实现,以在存储器、网络和CPU消耗方面满足服务级别协定。因此,节点资源实例的各方面的一些示例性限制使得分配器可以满足其SLA,该示例性限制在下表2中被示出。
表2
现在转到图3,图3图示了示例性硬件资源(例如,Gen-3计算硬件)的物理描述。图4A至图4C图示了Gen-3计算容器配置的修改版本,其通过作为标签的不同供给而列举资源。这些供给是可以由做出针对资源的请求的用户选择的预先定义的用户服务请求的示例。这些供给可以暴露给标识一个或多个不同供给以满足其业务目标的用户。图4A包括若干标准和高存储器供给。图4B包括基本的虚拟机供给,而图4C包括固态磁盘虚拟机供给,每个供给集合可以包括在动态资源协议中可用的资源类型(例如,资源标签)的至少一个子集。
可以设想,供给不能包括在动态资源协议中使用的所有资源。资源的子集可以在不同的供给中公开暴露;然而,供给的实现方式可以包括附加资源类型,该附加资源类型被作为因素计入资源分配中。作为示例,特定的资源类型能够在操作系统服务或应用的使用期间被锁定;因此,在资源分配之前,资源类型是稀缺性分析中的有价值因素。如本文中所实现的,这样的资源类型可以是或可以不是在供给中的公开暴露资源。
现在转到图5A和图5B,图5A和图5B图示了暴露由主机基于动态资源协议所通告的总可分配容量和空闲可分配容量以及依赖关系矩阵的表。作为示例,矩阵基于Gen-3硬件的物理描述,并且假设没有实现多级存储。进一步地,假设没有VM部署在节点中,计算空闲可分配容量。
还可以参考案例研究,对本公开的实施例进行描述。该案例研究可能涉及云计算提供商移出名为Bargain-GPU的新供给。‘廉价’GPU是基于软件的GPU,其提供了与标准GPU现今可以提供的几乎相同的矩阵运算和并行计算能力,但是这是以性能为代价,其还带来了价格的降低。因此,可以更新动态资源协议,以包括虚拟GPU资源类型。虚拟GPU资源类型可以被并入到矩阵设计中,使得分配虚拟GPU的一个单元直接将主机中可用的CPU的数量减少两个。或者,为了使容量最大化,资源分配器可以分配实际的GPU,但是GPU被抑制以便满足供给的性能一致性要求。另外,GPU可以被实现为加权资源。例如,因为GPU被认为是比CPU更昂贵的专门资源,所以权重值‘5’可以被指派给‘GPU’资源类型,并且权重‘95’可以被指派给‘CPU’资源。结果是,当CPU可用性变得非常稀缺时,仅分配GPU以用于廉价GPU供给。
现在转到图6,提供了流程图,其图示了用于优化动态资源分配的方法600。最初,在框610处,接收基于动态资源协议的用户服务请求资源实例。动态资源协议支持在资源分配平台中的部件之间传送的资源实例。在框620处,基于节点资源实例来生成针对用户服务请求资源实例的资源分配实例。节点资源实例基于动态资源协议,节点资源实例包括资源交互矩阵。在框630处,传送针对用户服务请求实例的资源分配实例,使得基于资源分配实例来分配与节点资源实例相关联的节点的资源。
现在转到图7,提供了流程图,其图示了用于优化动态资源的方法700。最初,在框710处,生成具有资源交互矩阵的节点资源实例。节点资源实例基于动态资源协议。在框720处,节点资源实例被传送到分配器部件。在框730处,基于节点资源实例来接收资源分配实例。在框740处,基于资源分配实例来分配节点资源。
已经对本发明的实施例的概述进行了简要描述,下文对其中可以实现本发明的实施例的示例性操作环境进行描述,以便为本发明的各个方面提供一般上下文。具体地,最初参考图8,示出了用于实现本发明的实施例的示例性操作环境,并且通常被指定为计算设备800。计算设备800仅是合适计算环境的一个示例,并不旨在对本发明的使用或功能性作出限制。计算设备800也不应被解释为具有与所图示的部件的任何一个或组合有关的任何依赖关系或要求。
可以在计算机代码或机器可用指令的一般上下文中描述本发明,该机器可用指令包括计算机可执行指令,诸如程序模块,该计算机可执行指令由计算机或者诸如个人数据助理或其他手持式设备之类的其他机器执行。通常,包括例程、程序、对象、部件、数据结构等的程序模块是指执行具体任务或实现具体抽象数据类型的代码。本发明可以以多种系统配置来实施,其包括手持式设备、消费者电子装置、通用计算机、更专门的计算设备等。本发明还可以在分布式计算环境中实施,其中任务由通过通信网络而链接的远程处理设备来执行。
参考图8,计算设备800包括总线810,其直接或间接耦合以下设备:存储器812、一个或多个处理器814、一个或多个呈现部件816、输入/输出端口818、输入/输出部件820和说明性电源822。总线810表示可以是一个或多个总线(诸如地址总线、数据总线或其组合)。尽管为了清楚起见图8的各个框用线示出,但是实际上,对各种部件的描绘并不是很清楚,并且在比喻上,更准确地线可能是灰色和模糊的。例如,可以将诸如显示设备之类的呈现部件视为I/O部件。此外,处理器具有存储器。我们认识到这是本领域的性质,并且重申图8的图仅仅说明可以结合本发明的一个或多个实施例而使用的示例性计算设备。在诸如“工作站”、“服务器”、“膝上型电脑”、“手持式设备”等之类的这些类别之间,没有做出区分,这是因为所有这些均可以在图8的范围内被设想到并且这些被称为“计算设备”。
典型地,计算设备800包括多种计算机可读介质。计算机可读介质可以是可以由计算设备800访问的任何可用介质,并且包括易失性介质和非易失性介质两者,可移除介质和不可移除介质两者。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术而实现的易失性介质和非易失性介质、可移除介质和不可移除介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储所需信息并且可以由计算设备100访问的任何其他介质。计算机存储介质不包括信号本身。
典型地,通信介质包括计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且包括任何信息递送介质。术语“调制数据信号”是指以对信号中的信息进行编码的方式,来设置或改变其特点中的一个或多个的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质以及诸如声学、RF、红外和其他无线介质之类的无线介质。上述任一项的组合还应包括在计算机可读介质的范围内。
存储器812包括易失性存储器和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除存储器、不可移除存储器或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备800包括从诸如存储器812或I/O部件820之类的各种实体读取数据的一个或多个处理器。一个或多个呈现部件816向用户或其他设备呈现数据指示。示例性呈现部件包括显示设备、扬声器、打印部件、振动部件等。
I/O端口818允许计算设备800逻辑上耦合至包括I/O部件820的其他设备,其中一些设备可以被内置。说明性部件包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、打印机、无线设备等。
已经关于具体实施例对本文中所呈现的实施例进行了描述,其旨在所有方面都是说明性的而非限制性的。对于本发明所属领域的普通技术人员而言,不背离本发明的范围的情况下,可替换的实施例将变得显而易见。
从上述描述可以看出,本发明非常适合于实现前述所有目标和目的,并且同时具有其他优点,这些优点对于结构来说是显而易见的,也是其所固有的。
应当理解,某些特征和子组合是有用的,并且可以在不参考其他特征或子组合的情况下被采用。这是由权利要求的范围所限定并且在该权利要求的范围之内。
Claims (20)
1.一种用于优化动态资源分配的系统,所述系统包括:
一个或多个硬件处理器以及存储器,所述存储器存储在其上体现的计算机可执行指令和部件,所述计算机可执行指令和部件当由所述一个或多个硬件处理器执行时使所述一个或多个硬件处理器执行:
分配器部件,被配置用于:
基于动态资源协议,接收用户服务请求资源实例,其中所述动态资源协议支持在资源分配平台中的部件之间传送的资源实例,其中所述动态资源协议定义规则集合,所述规则集合用于基于资源交互矩阵元素来表示所述资源交互矩阵,所述资源交互矩阵元素包括以下各项中的一项或多项:
资源类型的总可分配容量,
资源类型的空闲可分配容量,
表示资源类型之间的依赖关系的依赖关系矩阵,
用于资源类型的现有资源分配容量,以及
共享资源池;
基于节点资源实例,生成用于所述用户服务请求资源实例的资源分配实例,其中所述节点资源实例基于所述动态资源协议,所述节点资源实例包括指示资源类型之间的一个或多个依赖关系的资源交互矩阵;
传送用于所述用户服务请求资源实例的所述资源分配实例,使得与所述节点资源实例相关联的节点上的资源基于所述资源分配实例而被分配;以及
主机部件,被配置用于:
基于所述动态资源协议,生成所述节点资源实例;
向所述分配器部件传送所述节点资源实例;
基于所述节点资源实例,接收所述资源分配实例;以及
基于所述资源分配实例,分配节点资源。
2.根据权利要求1所述的系统,还包括请求转换部件,被配置用于基于所述动态资源协议将用户服务请求转换为所述用户服务请求资源实例,其中所述用户服务请求资源实例包括在所述动态资源协议中定义的逻辑资源名称。
3.根据权利要求1所述的系统,还包括目录管理器,被配置用于:
基于所述动态资源协议,将资源定义为逻辑资源类型,其中目录管理器的所述资源与所述资源的分类相关联;
追踪作为逻辑单元的逻辑资源类型的资源容量;以及
传送用于所述资源的所述逻辑资源类型和逻辑单元。
4.根据权利要求1所述的系统,还包括传输组件,被配置用于:
通过在每个节点资源实例中提供增量来串行化关于节点资源实例的信息;以及
标识和排除节点资源实例中的重复信息。
5.根据权利要求1所述的系统,其中所述动态资源协议定义所述规则集合,所述规则集合用于在所述资源交互矩阵中将异构硬件资源和部分故障硬件资源表示为用于所述节点的逻辑资源容量。
6.根据权利要求1所述的系统,还包括第二分配器部件,被配置用于:
引用主机的所述节点资源实例,其中所述主机与所述分配器部件相对应,所述主机是所述第二分配器部件的远程主机;以及
基于对所述远程主机的一个或多个资源的批准请求,生成用于所述远程主机的远程资源分配实例,其中所述远程资源分配实例基于所述节点资源实例。
7.一种用于优化动态资源分配的计算机实现方法,所述方法包括:
基于动态资源协议,接收用户服务请求资源实例,其中所述动态资源协议支持在资源分配平台中的部件之间传送的资源实例,其中所述动态资源协议定义规则集合,所述规则集合用于基于资源交互矩阵元素来表示所述资源交互矩阵,所述资源交互矩阵元素包括以下各项中的一项或多项:
资源类型的总可分配容量,
资源类型的空闲可分配容量,
表示资源类型之间的依赖关系的依赖关系矩阵,
用于资源类型的现有资源分配容量,以及
共享资源池;
基于节点资源实例,生成用于所述用户服务请求资源实例的资源分配实例,其中所述节点资源实例基于所述动态资源协议,所述节点资源实例包括资源交互矩阵;以及
传送用于所述用户服务请求实例的所述资源分配实例,使得与所述节点资源实例相关联的节点的资源基于所述资源分配实例而被分配。
8.根据权利要求7所述的方法,其中所述用户服务请求资源实例包括所述动态资源协议的资源类型,其中所述动态资源协议支持对分配器和节点上的动态工作负载的动态资源分配。
9.根据权利要求7所述的方法,其中生成所述资源分配实例还包括:
基于逻辑资源类型,将所述用户服务请求资源实例匹配到所述节点资源实例;以及
基于在所述用户服务请求实例中请求的逻辑单元和在所述节点资源实例中请求的逻辑单元,确定所述节点资源实例满足所述用户服务请求资源实例。
10.根据权利要求7所述的方法,其中生成所述资源分配实例还包括:
基于所述节点资源实例,执行资源稀缺性分析;以及
至少部分地基于最佳拟合启发法,生成所述资源分配实例。
11.根据权利要求7所述的方法,其中所述动态资源协议还包括用于表示资源权重的规则集合,其中资源权重是指示资源类型稀缺性的操作控制。
12.一个或多个计算机存储介质,具有在其上体现的计算机可执行指令,所述计算机可执行指令当由一个或多个硬件处理器执行时使所述一个或多个硬件处理器执行一种用于优化动态资源的计算机实现方法,所述方法包括:
生成具有资源交互矩阵的节点资源实例,其中所述节点资源实例基于动态资源协议,其中所述动态资源协议定义规则集合,所述规则集合用于在所述资源交互矩阵中将异构硬件资源和部分故障硬件资源表示为用于所述节点的逻辑资源容量;
向分配器部件传送所述节点资源实例;
基于所述节点资源实例,接收资源分配实例;以及
基于所述资源分配实例,分配节点资源。
13.根据权利要求12所述的计算机存储介质,其中生成所述节点资源实例还包括引用一个或多个目录管理器资源实例,其中目录管理器资源实例包括使用目录管理器来控制的资源类型的逻辑资源容量。
14.根据权利要求12所述的计算机存储介质,其中生成所述节点资源实例还包括:
标识与选择的资源类型相关联的部分故障;以及
从所述节点资源实例中排除所述选择的资源类型的部分故障,其中所述节点资源实例包括所述选择的资源类型的非故障部分,并且排除所述选择的资源类型的故障部分。
15.根据权利要求12所述的计算机存储介质,其中所述动态资源协议定义规则集合,所述规则集合用于将硬件资源转换和表示为包括逻辑资源类型和逻辑单元的逻辑资源容量,其中所述逻辑资源类型跨用于异构硬件的多个硬件库存保持单元而保持恒定。
16.根据权利要求12所述的计算机存储介质,其中所述动态资源协议还包括用于基于资源交互矩阵元素来表示所述资源交互矩阵的所述规则集合,所述资源交互矩阵元素包括以下各项中的一项或多项:
资源类型的总可分配容量,
所述资源类型的空闲可分配容量,
表示资源类型之间的依赖关系的依赖关系矩阵,
用于所述资源类型的现有资源分配容量,以及
共享资源池。
17.根据权利要求16所述的计算机存储介质,其中所述依赖关系矩阵便于表示多级存储,其中每个存储级别被表示为不同的资源类型,其中针对每个存储级别的空闲可分配容量以最小的每级存储容量满足分配请求。
18.根据权利要求16所述的计算机存储介质,其中所述共享资源池与节点上的多个主机相对应,其中每个主机报告在所述共享资源池中的共享资源的共享资源利用,其中所述共享资源利用包括指向所述共享资源的空闲可分配容量和总可分配容量的指针。
19.根据权利要求16所述的计算机存储介质,还包括:
基于所述资源分配实例,更新所述依赖关系矩阵;以及
基于所述资源分配实例,重新计算硬件资源的空闲可分配容量,其中重新计算所述空闲可分配容量包括引用所述硬件资源的所述依赖关系矩阵。
20.根据权利要求12所述的计算机存储介质,还包括:
基于所述资源分配实例,更新现有资源分配记录;以及
在资源核算操作期间保持经更新的现有资源分配记录。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/699,673 | 2015-04-29 | ||
US14/699,673 US9871857B2 (en) | 2015-04-29 | 2015-04-29 | Optimal allocation of dynamic cloud computing platform resources |
PCT/US2016/029406 WO2016176231A1 (en) | 2015-04-29 | 2016-04-27 | Optimal allocation of dynamic cloud computing platform resources |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107743611A CN107743611A (zh) | 2018-02-27 |
CN107743611B true CN107743611B (zh) | 2020-10-16 |
Family
ID=55911114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680023596.4A Active CN107743611B (zh) | 2015-04-29 | 2016-04-27 | 优化动态资源分配的系统、方法和计算机存储介质 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9871857B2 (zh) |
EP (1) | EP3289457A1 (zh) |
CN (1) | CN107743611B (zh) |
TW (1) | TW201706839A (zh) |
WO (1) | WO2016176231A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9900378B2 (en) | 2016-02-01 | 2018-02-20 | Sas Institute Inc. | Node device function and cache aware task assignment |
US9830677B2 (en) * | 2016-03-03 | 2017-11-28 | International Business Machines Corporation | Graphics processing unit resource sharing |
US10346252B1 (en) * | 2016-03-30 | 2019-07-09 | EMC IP Holding Company LLC | Data protection in a multi-site cloud computing environment |
US10387198B2 (en) | 2016-08-11 | 2019-08-20 | Rescale, Inc. | Integrated multi-provider compute platform |
US10193762B2 (en) * | 2016-08-11 | 2019-01-29 | Rescale, Inc. | Dynamic optimization of simulation resources |
WO2018170732A1 (zh) * | 2017-03-21 | 2018-09-27 | 华为技术有限公司 | 一种边缘云架构下服务部署的方法和装置 |
US10673955B2 (en) | 2017-04-04 | 2020-06-02 | Microsoft Technology Licensing, Llc | Systems and methods for negotiation of structured configuration parameters for stateful server/client systems |
US10303522B2 (en) * | 2017-07-01 | 2019-05-28 | TuSimple | System and method for distributed graphics processing unit (GPU) computation |
CN108519917B (zh) * | 2018-02-24 | 2023-04-07 | 国家计算机网络与信息安全管理中心 | 一种资源池分配方法和装置 |
US10733020B2 (en) * | 2018-04-17 | 2020-08-04 | Microsoft Technology Licensing, Llc | Resource allocation state management |
CN108667940B (zh) * | 2018-05-22 | 2021-04-09 | 深信服科技股份有限公司 | 云平台的资源分配方法、装置及计算机可读存储介质 |
US11190599B2 (en) * | 2018-06-27 | 2021-11-30 | Oracle International Corporation | Method and system for cloud service pre-provisioning |
US10712958B2 (en) * | 2018-07-24 | 2020-07-14 | Accenture Global Solutions Limited | Elastic storage volume type selection and optimization engine for public cloud environments |
US11201828B2 (en) * | 2018-10-08 | 2021-12-14 | EMC IP Holding Company LLC | Stream allocation using stream credits |
CN109903023B (zh) * | 2018-11-22 | 2023-07-11 | 创新先进技术有限公司 | 一种资源分配方法及系统 |
CN109788036B (zh) * | 2018-12-20 | 2021-09-28 | 北京动力机械研究所 | 基于云网络的分布式计算方法、装置及具有其的云服务器 |
US10977081B2 (en) * | 2019-02-20 | 2021-04-13 | International Business Machines Corporation | Context aware container management |
TWI695329B (zh) * | 2019-04-01 | 2020-06-01 | 中華電信股份有限公司 | 一種建置於容器平台的資料碎片管理系統及方法 |
CN110297693B (zh) * | 2019-07-04 | 2020-07-28 | 北京伟杰东博信息科技有限公司 | 一种分布式软件任务分配的方法及其系统 |
CN110704220B (zh) * | 2019-09-02 | 2023-03-24 | 东软集团股份有限公司 | 一种熔断参数的调整方法、装置及设备 |
CN110837417A (zh) * | 2019-09-24 | 2020-02-25 | 华为技术有限公司 | 一种云系统资源集合的推荐方法、装置及计算设备集群 |
CN112925635B (zh) * | 2019-12-06 | 2024-05-14 | 中盈优创资讯科技有限公司 | 逻辑资源的处理方法及装置 |
CN111552560B (zh) * | 2020-04-09 | 2023-11-14 | 图灵深视(南京)科技有限公司 | 负载分配方法和系统、计算机装置、节点装置及存储介质 |
CN111611073B (zh) * | 2020-05-08 | 2023-01-31 | 暨南大学 | 一种容器化数据中心下基于流量感知的容器放置方法 |
US11392419B2 (en) * | 2020-07-16 | 2022-07-19 | Salesforce.Com, Inc. | Cloud agnostic workload identity |
EP4209907A4 (en) * | 2020-10-22 | 2024-01-17 | Huawei Cloud Computing Technologies Co., Ltd. | METHOD, SYSTEM AND APPARATUS FOR ALLOCATING INSTANCES |
CN112162864B (zh) * | 2020-10-26 | 2023-06-09 | 新华三大数据技术有限公司 | 一种云资源分配方法、装置及存储介质 |
CN112732440A (zh) * | 2021-01-07 | 2021-04-30 | 中国铁塔股份有限公司 | 资源分配方法、装置、云平台服务器和边缘节点设备 |
CN113220372B (zh) * | 2021-06-01 | 2022-05-27 | 深圳市中盛瑞达科技有限公司 | 一种人工智能云平台 |
CN113626189B (zh) * | 2021-08-03 | 2024-02-06 | 优刻得科技股份有限公司 | 资源管理模型的构建方法、设备和介质 |
TWI796887B (zh) * | 2021-12-21 | 2023-03-21 | 宏碁股份有限公司 | 繪圖資源調度方法與繪圖資源調度系統 |
CN114598665A (zh) * | 2022-01-19 | 2022-06-07 | 锐捷网络股份有限公司 | 资源调度方法、装置和计算机可读存储介质及电子设备 |
CN114785760A (zh) * | 2022-05-07 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 服务预热方法、设备、介质及产品 |
CN117149474A (zh) * | 2022-05-23 | 2023-12-01 | 中兴通讯股份有限公司 | 一种异构加速资源异常处理方法、装置、存储介质及电子装置 |
CN115883661A (zh) * | 2022-11-25 | 2023-03-31 | 缀初网络技术(上海)有限公司 | 一种云边协同云游戏场景下的请求动态调度方法 |
TWI826182B (zh) * | 2022-12-13 | 2023-12-11 | 奔騰網路科技股份有限公司 | 雲平台管理系統 |
CN116775313B (zh) * | 2023-08-18 | 2023-12-08 | 浪潮(山东)计算机科技有限公司 | 一种资源分配方法、装置、设备及介质 |
CN116846979B (zh) * | 2023-08-29 | 2024-03-15 | 江苏睿鸿网络技术股份有限公司 | 一种云计算环境下资源的调度方法及调度系统 |
CN117076142B (zh) * | 2023-10-17 | 2024-01-30 | 阿里云计算有限公司 | 多租户资源池配置方法和多租户服务系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938416A (zh) * | 2010-09-01 | 2011-01-05 | 华南理工大学 | 一种基于动态重配置虚拟资源的云计算资源调度方法 |
CN102014159A (zh) * | 2010-11-29 | 2011-04-13 | 华中科技大学 | 一种云计算环境下的分层资源预留系统 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032634B1 (en) | 1999-08-23 | 2011-10-04 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on resource requirements |
US6457143B1 (en) * | 1999-09-30 | 2002-09-24 | International Business Machines Corporation | System and method for automatic identification of bottlenecks in a network |
US6901446B2 (en) | 2001-02-28 | 2005-05-31 | Microsoft Corp. | System and method for describing and automatically managing resources |
US6990666B2 (en) | 2002-03-18 | 2006-01-24 | Surgient Inc. | Near on-line server |
US7519726B2 (en) | 2003-12-12 | 2009-04-14 | International Business Machines Corporation | Methods, apparatus and computer programs for enhanced access to resources within a network |
TW200532480A (en) * | 2003-12-19 | 2005-10-01 | Ibm | Dynamic late binding of third party on demand services in an on-demand infrastructure |
US8990365B1 (en) * | 2004-09-27 | 2015-03-24 | Alcatel Lucent | Processing management packets |
US8214461B1 (en) * | 2004-11-23 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | Method of processing request by server computer system |
GB2443229B (en) | 2006-08-23 | 2009-10-14 | Cramer Systems Ltd | Capacity management for data networks |
US8584130B2 (en) * | 2006-11-30 | 2013-11-12 | International Business Machines Corporation | Allocation of resources on computer systems |
US20090113021A1 (en) * | 2007-10-24 | 2009-04-30 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for generating functional addresses |
EP2556450A4 (en) * | 2010-04-09 | 2017-06-07 | Nokia Technologies Oy | Method and apparatus for coordinating media presentation on devices via an information space |
US8607242B2 (en) | 2010-09-02 | 2013-12-10 | International Business Machines Corporation | Selecting cloud service providers to perform data processing jobs based on a plan for a cloud pipeline including processing stages |
US10491662B2 (en) | 2011-01-27 | 2019-11-26 | Computenext, Inc. | Dynamically organizing cloud computing resources to facilitate discovery |
US8966039B1 (en) * | 2011-04-25 | 2015-02-24 | Sprint Communications Company L.P. | End-to-end communication service monitoring and reporting |
US9450838B2 (en) * | 2011-06-27 | 2016-09-20 | Microsoft Technology Licensing, Llc | Resource management for cloud computing platforms |
KR20130088512A (ko) * | 2012-01-31 | 2013-08-08 | 한국전자통신연구원 | 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법 |
US9535764B2 (en) | 2012-02-15 | 2017-01-03 | Cisco Technology, Inc. | Resource allocation mechanism |
US8335851B1 (en) | 2012-03-12 | 2012-12-18 | Ringcentral, Inc. | Network resource deployment for cloud-based services |
US9311148B2 (en) | 2012-12-20 | 2016-04-12 | Telefonaktiebolaget L M Ericsson (Publ) | Pseudo-random hardware resource allocation through the plurality of resource controller based on non-repeating sequence of index list entries |
EP2782318A1 (en) | 2013-03-18 | 2014-09-24 | Koninklijke KPN N.V. | Allocating resources between network nodes for providing a network node function |
US9537728B2 (en) * | 2013-11-26 | 2017-01-03 | International Business Machines Corporation | Minimizing service restart by optimally resizing service pools |
US9626262B1 (en) * | 2013-12-09 | 2017-04-18 | Amazon Technologies, Inc. | Primary role reporting service for resource groups |
WO2016054382A1 (en) * | 2014-10-03 | 2016-04-07 | SorsEm, LLC | Resource allocation methods and apparatus |
-
2015
- 2015-04-29 US US14/699,673 patent/US9871857B2/en active Active
-
2016
- 2016-03-28 TW TW105109669A patent/TW201706839A/zh unknown
- 2016-04-27 WO PCT/US2016/029406 patent/WO2016176231A1/en unknown
- 2016-04-27 EP EP16720667.1A patent/EP3289457A1/en not_active Ceased
- 2016-04-27 CN CN201680023596.4A patent/CN107743611B/zh active Active
-
2018
- 2018-01-16 US US15/872,775 patent/US10652321B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938416A (zh) * | 2010-09-01 | 2011-01-05 | 华南理工大学 | 一种基于动态重配置虚拟资源的云计算资源调度方法 |
CN102014159A (zh) * | 2010-11-29 | 2011-04-13 | 华中科技大学 | 一种云计算环境下的分层资源预留系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201706839A (zh) | 2017-02-16 |
EP3289457A1 (en) | 2018-03-07 |
US20180359313A1 (en) | 2018-12-13 |
CN107743611A (zh) | 2018-02-27 |
US20160323374A1 (en) | 2016-11-03 |
US10652321B2 (en) | 2020-05-12 |
WO2016176231A1 (en) | 2016-11-03 |
US9871857B2 (en) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107743611B (zh) | 优化动态资源分配的系统、方法和计算机存储介质 | |
US10623481B2 (en) | Balancing resources in distributed computing environments | |
US8589557B1 (en) | Automatic provisioning of resources to software offerings | |
US8108855B2 (en) | Method and apparatus for deploying a set of virtual software resource templates to a set of nodes | |
US8667139B2 (en) | Multidimensional modeling of software offerings | |
US8135751B2 (en) | Distributed computing system having hierarchical organization | |
CN106453457B (zh) | 云计算平台内的多优先级服务实例分配 | |
US10528897B2 (en) | Graph databases for storing multidimensional models of software offerings | |
US8732654B2 (en) | Dependency-based impact analysis using multidimensional models of software offerings | |
US8104038B1 (en) | Matching descriptions of resources with workload requirements | |
US20120222037A1 (en) | Dynamic reprovisioning of resources to software offerings | |
US11614977B2 (en) | Optimizing clustered applications in a clustered infrastructure | |
US20120222004A1 (en) | Publishing and updating of multidimensional models using orchestration tools for software offerings | |
US9483258B1 (en) | Multi-site provisioning of resources to software offerings using infrastructure slices | |
US11487591B1 (en) | Automatically configuring execution of a containerized application | |
CN113939803B (zh) | 用于专用主机的管理计算资源放置即服务 | |
US20180260261A1 (en) | Availability management in a distributed computing system | |
US20180262563A1 (en) | Availability management operations in a distributed computing system | |
US10250455B1 (en) | Deployment and management of tenant services | |
WO2018164888A1 (en) | Availability management interfaces in a distributed computing system | |
US10097431B1 (en) | Routing to tenant services utilizing a service directory | |
US11307889B2 (en) | Schedule virtual machines |
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 |