CN104252393B - 管理分布式计算机系统中资源的方法和应用资源分配模块 - Google Patents
管理分布式计算机系统中资源的方法和应用资源分配模块 Download PDFInfo
- Publication number
- CN104252393B CN104252393B CN201410286077.XA CN201410286077A CN104252393B CN 104252393 B CN104252393 B CN 104252393B CN 201410286077 A CN201410286077 A CN 201410286077A CN 104252393 B CN104252393 B CN 104252393B
- Authority
- CN
- China
- Prior art keywords
- resource
- application
- setting
- level
- level resources
- 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
- 238000009826 distribution Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000007726 management method Methods 0.000 claims abstract description 34
- 238000013468 resource allocation Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 19
- 230000003139 buffering effect Effects 0.000 claims description 14
- 230000014759 maintenance of location Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 8
- 238000004080 punching Methods 0.000 claims 1
- 230000001568 sexual effect Effects 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract description 2
- 238000003860 storage Methods 0.000 description 52
- 238000013500 data storage Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000000717 retained effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241001123248 Arma Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000009514 concussion Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及分布式计算机系统中的性能驱动的资源管理,具体地,涉及一种用于管理分布式计算机系统中的资源的系统和方法,该分布式计算机系统包括用于虚拟机(VM)集合的至少一个资源池,该VM使用对应于用于在分布式计算机系统中运行的应用的观察的性能的目标资源分配的期望个体VM资源设置的集合。期望的个体VM资源设置的集合通过构造作为当前VM等级资源分配的函数的观察的应用性能的模型来构造,并且继而求逆该函数以计算目标资源分配,以便满足至少一个用户定义的服务等级目标(SLO)。期望的个体资源池的集合被用以确定应用属于的资源池的最终RP等级资源设置、以及在资源池下运行的VM的最终VM等级资源设置,继而将其选择性地应用。
Description
技术领域
本发明概括地涉及计算机系统的领域,并且设计计算机系统中资源的分配。
背景技术
可以使用物理设备(诸如,主机计算机和存储设备)在云计算环境中实现多个虚拟数据中心(VDC)。这些物理设备可以支持虚拟机(VM)以及由这些VM执行的应用。VDC是资源池(RP)的示例,其是表示用于VM集合的聚合资源分配的逻辑容器。单一VDC 可以支持多个RP。用于VDC的资源管理技术对于VDC而言是重要的,以确保运行在VDC上的应用在其服务等级目标(SLO)处操作。现有资源分配技术提供有力的资源控制基元,诸如保留、限制和共享,其可以在VM等级或者RP等级(包括VDC)被设置,以确保满足在VDC上运行的应用的SLO。
这些资源控制基元允许管理员来控制由VM或者RP(包括VDC) 消费的资源的绝对和相对数量。然而,由于各种因素确定资源控制基元的正确设置可能受到极大地挑战。作为示例,支持相同应用的不同VM可以需要不同数量的资源以满足应用性能目标。另外,在 VDC上运行的应用可以具有时间可变的需求,这意味着针对一个时段确定的资源控制设置针对之后的时段而言可能变得变为无效。由此,针对多个RP设置资源控制以便在RP上运行的应用获得足够资源以满足相应的SLO,这变成几乎不可能的任务。
目标在于当操作虚拟数据中心(VDC)或者其他资源池(RP) 时改进分布式计算机系统的物理设备中的资源分配。
发明内容
根据本发明,在此提供了在所附权利要求书中阐明的装置和方法。本发明的其他特征将从从属权利要求以及下文的说明书中变得明了。
在一个示例中,在此提供了一种用于管理分布式计算机系统中的资源的系统和方法。分布式计算机系统可以包括用于虚拟机(VM) 的集合的至少一个资源池(RP)使用的资源。该系统和方法使用对应于目标资源分配的期望个体VM等级资源设置的集合,来用于在分布式计算机系统中运行的应用的观察的性能。期望个体VM等级资源设置的集合通过如下来确定:构造作为当前VM等级资源分配的函数的所述应用的观察到的性能的模型,并且继而将所述函数求逆以计算目标资源分配的集合,从而满足至少一个用户定义的服务等级目标(SLO)。期望个体VM等级资源设置的集合被用以确定应用所属于的最终RP等级资源设置、以及用于在资源池下运行的 VM的最终VM等级资源设置,其继而被选择性地应用。
在一个示例中,在此提供了一种用于管理分布式计算机系统中的资源的方法。计算机系统包括用于VM集合的至少一个资源池。该方法包括:构造所述分布式计算机系统中运行的应用的观察的性能的模型,所述模型作为当前VM等级资源分配的函数;将函数求逆以计算目标资源分配的集合,从而满足至少一个用户定义的服务等级目标(SLO);确定对应于目标资源分配的期望个体VM等级资源设置;至少基于期望个体VM等级资源设置的集合、资源池的当前RP等级资源设置以及资源池的可用资源容量,确定应用所属于的最终RP等级资源设置以及用于在资源池下运行的VM的最终VM 等级资源设置;以及至少基于资源池的资源属性,将最终RP等级资源设置和最终VM等级资源设置中的至少一个应用至资源池和在资源池下运行的应用中的至少一个。在某些实施方式中,在包括在计算机可读存储介质中的程序指令由主机计算机的一个或者多个处理器执行时,执行此方法的步骤。
在一个示例中,在此提供了一种用于分布式计算机系统的应用资源分配模块,该分布式计算机系统包括用于VM集合的至少一个资源池。该模块可以包括至少一个应用管理器、至少一个资源池管理器和致动器。应用管理器包括模块建立器,配置以构造应用的观察的性能的模型,所述模型作为应用的当前VM等级资源分配的函数;应用控制器,配置以将函数求逆以计算目标资源分配的集合,从而满足至少一个用户定义的服务等级目标(SLO);以及资源控制器,配置以确定对应于目标资源分配的期望个体VM等级资源设置。资源池管理器配置以至少基于期望个体VM等级资源设置的集合、资源池的当前RP等级资源设置以及资源池的可用资源容量,确定应用所属于的最终RP等级资源设置以及用于在资源池下运行的VM的最终VM等级资源设置。致动器配置以基于资源池的至少一个资源属性,将最终RP等级资源设置和最终VM等级资源设置中的至少一个应用至资源池和在资源池下运行的应用中的至少一个。
结合附图,借助于本发明的原理的示例,从下文详细描述中,本发明的实施方式的其他方面和优势将变得明显。
附图说明
图1是根据本发明一个实施方式的分布式计算机系统的框图;
图2是根据本发明一个实施方式的主机计算机的框图;
图3是根据本发明一个实施方式的如图1所示的分布式计算机系统的、具有多个VDC的层级资源池资源池(RP)结构;
图4是根据本发明一个实施方式的应用资源分配模块的框图;
图5是根据本发明一个实施方式的如图4所示的应用资源分配模块的应用管理器的框图;
图6是示出根据本发明一个实施方式的如图5所示的应用管理器的资源控制器的操作的流程图,该流程图用于针对每个资源类型计算期望VM等级资源控制设置;
图7是示出根据本发明一个实施方式的如图4中所示的应用资源分配模块的RP管理器的操作的流程图,该流程图用于计算针对每个资源类型的最终VM等级和RP等级资源设置;
图8是根据本发明一个实施方式的在包括针对组虚拟机的至少一个资源池的分布式计算机系统中用于管理资源的方法的流程图;
贯穿说明书,使用相同的参考数字标识相同的元素。
具体实施方式
易于理解,在此一般性描述以及在附图中示出的实施方式的组件可以以广泛的不同配置来安排和涉及。由此,下文更详细的各种实施方式的描述,如在附图中呈现的,并不旨在限制本公开的范围,而是仅仅是各种实施方式的示意性表示。尽管在附图中呈现了实施方式的各个方面,除非特别指示不必按比例绘制附图。
在不脱离本发明的精神和基本特征的情况下,本发明可以以具体形式来体现。所描述的实施方式将在仅仅是示例性而并非限制性的全部方面中考虑。本发明的范围由此通过所附权利要求书而不是借助于此详细的描述来限定。在权利要求书的等效范围和含义内的全部改变将被涵盖在其范围内。
贯穿说明书,对特征、优势或者相似语言的引用并不暗示应当在本发明的任何单一实施方式中实现利用本发明的实现的全部特征和优势。而是,涉及特征和优势的语言应当被理解为意味着结合实施方式而描述的特定特征、优势或者特性被包括在本发明的至少一个实施方式中。由此,贯穿本说明书,特征和优势以及类似语言的讨论可以不必涉及相同的实施方式。
此外,本发明的所描述的特征、优势和特性可以在一个或者多个实施方式中以任何适当的方式进行组合。相关领域技术人员应当认识到,在此描述的启示下,本实施方式可以在不具备特定实施方式的一个或者多个特定特征或者优势的情况下实现。在其他实例中,附加特征和优势可以在特定实施方式中体现而不必出现在本发明的全部实施方式中。
贯穿本说明书,对于“一个实施方式”、“一种实施方式”或者类似语言的引用意味着结合指定实施方式而描述的特定特征、结构或者特性被包括在本发明的至少一个实施方式中。由此,贯穿此说明书,短语“在一个实施方式中”以及类似的语言可以单不必全部指示相同的实施方式。
现在参见图1,分布式计算机系统100示出为提供根据本发明的一个实施方式的云计算环境。分布式计算机系统例如可以是计算机网络系统。如图1中所示,分布式计算机系统包括网络102、主机计算机的集群C-1、C-2、…、C-N(其中N为正整数)、存储设备104 和具有资源分配模块108的管理服务器106。包括在分布式计算机系统中的主机计算机集群的实际数量可以是从一到十个集群或者更多的任意数量的集群。不同集群的主机计算机、存储104和管理服务器106被连接至网络102。由此,集群中的每个主机计算机和管理服务器106能够经由网络102访问存储104,并且可以共享由存储104 提供的资源。由此,运行在任何主机计算机和管理服务器上的任何进程还可以经由网络102访问存储104。
在示出的实施方式中,集群C-1、C-2、…、C-N中的每一个包括多个主机计算机H-1、H-2、…、H-M(其中M是正整数)。主机计算机可以基于预定标准而被指派给主机计算机集群,其可以包括主机计算机之间的地理和/或逻辑关系。包括在每个集群中的主机计算机的数量可以是从一到数百或者更多的任何数量。另外,包括在每个集群中的主机计算机的数量可以是变化的,以便不同主机可以具有不同数量的主机计算机。主机计算机是物理计算系统,其主管或者支持一个或者多个客户端以便客户端在物理计算机系统上执行。如在此使用,术语“客户端”是任意软件实体,其在计算机系统上运行,诸如软件应用、软件进程或者虚拟机(VM)。主机计算机可以是通常在数据中心中找到的服务器。作为示例,主机计算机可以是安装在一个或者多个服务器机架上的服务器。通常,集群的主机计算机位于相同服务器机架内。
现在转向图2,示出了根据本发明一个示例实施方式的在集群 C-1、C-2、…、C-N中的主机计算机H-1、H-2、…、H-M的代表的主机计算机200。在图2中,出于清楚目的而没有示出在主机计算机的各个组件之间的物理连接,而是本领域技术人员应当理解这些物理连接。在示出的实施方式中,主机计算机配置用于支持客户端 220A、200B、…、200L(其中L是正整数)。在此示例中,客户端 220A–L中的每个是虚拟机(VM)。由主机计算机支持的VM的数量可以是从一个到超过100个的任意数量。由主机计算机支持的VM 的数量受限于主机计算机的物理资源。VM共享主机计算机的硬件资源中的至少某些,包括系统存储器222、一个或者多个处理器224、存储接口226、以及网络接口228。可以是随机访问存储器(RAM) 系统存储器是主机计算机的主存。处理器可以是任意类型的处理器,诸如通常在服务器中找到的中央处理器(CPU)。存储接口是允许主机计算机与存储104通信的接口。作为示例,存储接口可以是主机总线适配器或者网络文件系统接口。网络接口是允许主机计算机与连接至网络102的其他设备通信的接口。作为示例,网络接口可以是网络适配器。
在示出的实施方式中,VM 220A、220B、…、220L运行在虚拟机监视器(VMM)的顶部,其是支持由VM共享主机计算机200的硬件资源的软件接口层。然而,在其他实施方式中,一个或者多个 VM可以是嵌入式的,例如,VM在另一VM中运行。例如,VM之一可以运行在一VM中,其还运行在另一VM中。虚拟机监视器可以运行在主机计算机的操作系统的顶部,或者直接运行在主机计算机的硬件上。在某些实施方式中,虚拟机监视器运行在管理程度的顶端,该管理程序安装在主机计算机的硬件组件的顶端。在虚拟机监视器的支持下,VM提供虚拟化计算机系统,其给出的外观不同于主机计算机并且不同于彼此。每个VM包括访客操作系统(OS)232 以及一个或者多个访客应用(APP)234。访客操作系统是相应VM 的主控制程序,并且在其他事务之中,访客操作系统形成软件平台,访客应用在该软件平台上运行。
类似于连接到网络102的任何其他计算机系统,VM 220A、 220B、…、220L能够使用主机计算机200的网络接口228来与连接到网络的其他计算机系统通信。另外,VM能够通过使用主机计算机的存储接口226来访问存储104。
主机计算机200还包括本地资源分配模块236,其作为本地资源管理系统(诸如,分布式资源调度器系统)的部分操作,以管理由 VM 220A、220B、…、220L消费的资源。集群的主机计算机200中的本地资源分配模块与相同集群中的其他主机计算机200中的本地资源分配模块协同操作,以执行资源调度。资源调度可以包括平衡软件过程和/或存储资源调度的负载。尽管在图2中的本地资源分配模块236示出为分离于虚拟机监视器230,在一个示例中,本地资源分配模块236可以实现为虚拟机监视器230的部分。在某些实施方式中,本地资源分配模块230实现为在主机计算机200上运行的一个或者多个软件程序。然而,在其他实施方式中,本地资源分配模块236可以通过使用软件和硬件的任意组合来实现。
返回图1,网络102可以是任意类型的计算机网络或者网络的组合,该网络允许在连接到网络的设备之间进行通信。网络102可以包括因特网、广域网(WAN)、局域网(LAN)、存储区域网(SAN)、光纤信道网络和/或其他网络。网络102可以配置以支持适用于与存储阵列进行通信的协议,诸如光纤信道、因特网小型计算机接口 (iSCSI)、以太网上的光纤信道以及HyperSCSI。
存储104被用于存储用于主机C-1、C-2、…、C-N的主机计算机H-1、H-2、…、H-M的数据,其可以类似于连接至计算机系统的任何其他存储设备而被访问。在一个实施方式中,由实体可访问的存储(诸如运行在主机计算机上的客户端(例如,VM))使用任何文件系统(例如,虚拟机文件系统(VMFS)或者网络文件系统(NFS)。存储包括一个或者多个计算机系统存储设备110可以是任何类型的存储设备,诸如固态设备(SSD)、硬盘或者两者的组合。存储设备可以操作为网络附接存储(NAS)和/或存储区域网(SAN)的组件。存储包括存储管理模块112,其管理存储104的操作。在一个实施方式中,存储管理模块是在存储104的一个或者多个计算机系统(未示出)上执行的计算机程序。存储104支持多个数据存储DS-1、 DS-2、…、DS-X(其中X是整数),其可以使用逻辑单元号(LUN) 来标识。在一个实施方式中,数据是在存储设施的虚拟化表示。由此,每个数据存储DS 1-X可以使用来自包括在存储104中的一个以上的存储设备110的存储资源。数据存储被用于存储与由机器的主机计算机支持的客户端相关联的数据,例如,虚拟盘,由虚拟机中的每一个使用的,以及支持虚拟机所需的其他文件。一个或者多个数据存储可以与一个或者多个主机计算机相关联。由此,每个主机计算机与至少一个数据存储相关联。某些数据存储可以被分组到数据存储的一个或者多个集群,其通常被称为存储箱(storage pod)。
管理服务器106操作以监视和管理分布式计算系统100的存储 104和/或集群C-1、C-2、…、C-N的主机计算机H-1、H-2、…、H-M。管理服务器可以配置以监视主机计算机的当前配置以及运行在主机计算机上的客户端,例如,虚拟机(VM)。监视到的配置可以包括每个主机计算机的硬件配置,诸如CPU类型和存储器大小、和/或每个主机计算机的软件配置,诸如操作系统(OS)类型和安装的应用或者软件程序。监视的配置还可以包括集群化信息,即,哪些计算机包括在集群中。监视的配置还可以包括客户端主管信息,即,哪些客户端(例如,VM)被主管或者运行在哪个主机计算机上。监视的配置还可以包括客户端信息。客户端信息可以包括每个客户端的大小、每个客户端的虚拟化硬件配置(诸如,虚拟CPU类型和虚拟存储器大小)、每个客户端的软件配置(诸如OS类型和安装的应用或者在每个客户端上运行的软件程序)、以及针对每个客户端的虚拟存储大小。客户端信息还可以包括资源设置(诸如,限制、保留、权利)以及由客户端消费的各种资源的共享值(例如,CPU、存储器、网络带宽和存储)。
管理服务器106还可以配置以监视存储104的当前配置,包括物理存储设备110和存储的数据存储DS-1、DS-2、…、DS-X。监视的存储配置可以包括存储设备配置,其可以包括存储中的存储设备的编号、存储设备的设备类型(诸如固态设备(SSD)和硬盘)以及每个存储设备的存储容量。监视的存储配置还可以包括数据存储配置,诸如每个数据存储的存储容量和数据存储和主机计算机H-1、 H-2、…、H-M和/或运行在主机计算机上的客户端之间的连接和关联。
管理服务器106还可以配置以监视客户端对资源的当前使用、主机计算机H-1、H-2、…、H-M和主机计算机的集群C-1、C-2、…、 C-N。例如,管理服务器可以监视客户端的CPU处理使用、存储器使用、网络使用和存储使用。管理服务器还可以配置以存储客户端对资源的使用、主机计算机、主机计算机的集群以管理历史资源使用信息。历史资源使用信息继而可以用以开发针对单独客户端的各种资源使用统计数据、单独主机计算机和主机计算机的单独主机。
管理服务器106还可以配置以执行各种操作,以管理客户端、主机计算机H-1、H-2、…、H-M、主机计算机的客户端C-1、C-2、…、 C-N以及存储104。作为示例,管理服务器可以配置以初始地在特定集群中的一个或者多个主机计算机上放置新的客户端,以及将现有客户端移至不同的主机计算机和/或不同的集群。管理服务器可以以使得在主机计算机集群上运行的软件过程的负载平衡的方式,来向主机计算机集群指派软件过程。过程(诸如,VM)可以基于分配策略、资源需求和由主机计算机机器提供的资源的可用性而平衡。平衡可以应用于计算机资源,诸如处理器时间,即CPU周期、存储器空间、网络带宽(包括任意类型的输入/输出或者总线带宽)、存储空间、功率消耗、高速缓存空间、软件许可、以及其他。为了有效地平衡计算机资源,运行的VM可以在被称作活动VM迁移的过程中,从一个主机计算机集群迁移至另一个。作为另一示例,管理服务器可以被配置以将特定的客户端和/或主机计算机断电,或者将其下降至保留功率。
为了执行这些各种操作,管理服务器106针对主机计算机和数据存储来保持用于客户端的需求和性能。这些需求和性能可以包括针对某些客户端的密切性或者非密切性规则,其可以是强制性或者优选的。例如,这些密切性或者非密切性规则可以包括指定如下的规则:执行客户端应当在相同主机计算机上运行,或者保持在独立的主机计算机上。作为另一示例,这些密切相或者非密切性规则可以包括指定对于客户端而言哪些主机计算机是可接受的、而哪些主机计算机是不可接受的。管理服务器可以配置以或者编程以执行其他操作,用于管理分布式计算机系统100。在一个实现中,管理服务器是VMware vCenterTM服务器,其中至少某些特征从此类服务器可获得。
在一个实施方式中,管理服务器106进一步配置以允许管理员定义并创建VDC和/或其他资源池(RP)。每个RP(包括VDC)是一种逻辑容器,其表示针对虚拟机集合的聚合资源分配。每个RP可以包括一个或者多个甚至更小的RP,其中的每一个可以进一步包括一个或者多个更小的RP。VDC可以被看作特定类型的RP,其通常包括被分配给单独组织的资源集合。VDC的配置容量可以关联于组织被收取多少费用。VDC可以包括多个RP,每个支持特定的组织部分。另外,VDC的每个RP可以包括一个或者多个应用,每个支持特定业务规则。由此,由分布式计算机系统100提供的资源可以以层级RP结构表示。
在图3中,示出了用于分布式计算机系统100的具有多个VDC 的层级RP结构。如图3所示,层级RP结构包括根RP 300、VDC 302、 RP 304、应用306和VM 308。根RP表示分布式计算机系统的资源总量。根RP的资源被分配给VDC。每个VDC的所分配资源进一步被分配给该VDC的RP。每个RP的所分配资源更进一步地被分配给该RP的VM。这些VM中的某些可以是执行应用。这些应用可以是由多个VM支持的应用,诸如多级应用,每个应用具有web级、应用级和数据库级。在示出的示例中,RP 304-1包括运行在RP 304-1 的VM中的某些VM上的应用306-1、以及运行在RP 304-1的其他 VM上的另一应用304-2。然而,RP 304-2不包括运行在多个VM上的任何应用。
在一个实施方式中,可以由管理服务器106设置的资源控制包括针对包括VDC的分布式计算机系统100中的各个VM和RP的保留、限制和共享。保留值指定VM或者RP必须接收的特定资源的最小数量,甚至是当此资源被过渡承诺时,以便例如向组织内的特定应用或者部门提供确保数量的资源。限制值指定应当向VM或者RP 做出的最大分配,以便例如防止一个应用或者RP内的需求突刺影响其他。共享值(即,共享的数量)提供在相同RP内的VM群组或者 RP群组之间的相关重要性的测量,并且由此用于当容量受限时将分配排列优先级。由此,共享值允许相同组织内的多个应用或者RP,以与相应优先级成比例地共享资源。
应用资源分配模块108操作以针对一个或者多个计算机资源、计算在分布式计算机系统100上运行的应用相关联的VM和/或RP 的资源控制设置,以便应用服务等级目标(SLO)需求得以满足。计算机资源可以是可以被分配的任何资源,诸如处理器时间(即, CPU周期)存储器空间、网络带宽(包括任意类型的输入/输出或者总线带宽)、存储空间、功率消耗和高速缓存空间。应用资源分配模块108可以是周期性激活的,即,在被调用运行时、在预定间隔例如每五分钟。另外,资源分配模块108可以在特定事件或者条件出现时按需激活。例如,资源分配模块108可以在业务关键应用被部署并且开始运行之后被激活,或者当应用延迟超过阈值时激活。备选地,应用资源分配模块108可以由管理服务器106的用户手工激活。
现在转向图4,示出了根据本发明实施方式的在管理服务器106 中的应用资源分配模块108的组件的框图。如图4所示,应用资源分配模块108包括多个应用管理器410、多个RP管理器412和致动器414。每个应用管理器410配置以确定分布式计算机系统100中的用于运行特定应用的VM的资源控制设置以满足任何应用SLO需求。由此,包括在应用资源分配模块108中的应用管理器的数量可以与由应用资源分配模块管理的分布式计算机系统100上运行的应用的数量一致。每个RP管理器412配置以确定针对特定RP的适当资源控制设置和/或用于该RP中的VM的最终资源控制设置。由此,包括在应用资源分配模块108中的RP管理器的数量可以与将由应用资源分配模块管理的分布式计算机系统100的存在的RP数量一致。致动器414配置以设置或者应用用于VM和/或RP的资源控制设置,如由RP管理器412确定。应用资源分配模块108的这些组件可以实现为软件、硬件或者软件和硬件的组合。在一个实施方式中,应用资源分配模块108安装在管理服务器106上。在特定实现中,应用资源分配模块108可以安装在由与服务器相关联的一个或者多个处理器执行的VMware vCenterTM中。然而,在其他实施方式中,应用资源分配模块108可以安装在任何其他计算机系统中。
在图5中示出了根据本发明一个实施方式的应用管理器500。应用管理器500代表图4示出的应用资源分配模块108的应用管理器 410。如图5所示,应用管理器500与由多个VM执行的应用502配对以管理应用。应用500代表在分布式计算机系统100中运行的应用。由应用管理器500管理的应用502可以是多级应用,其中应用的每个级由一个或者多个VM执行。作为示例,应用502可以是具有web级、应用级和数据库级的多级应用,每个级由多个VM支持。
如图5所示,应用502由应用传感器模块504和系统传感器模块506监视。应用传感器模块504针对运行在分布式计算机系统上的全部应用(包括应用502)周期性地采集各种应用等级性能度量,诸如,流量、平均响应时间和百分比响应时间。系统传感器模块506 针对分布式计算机系统中的全部VM(包括运行应用502的VM)周期性地测量并保持对当前实时资源分配的跟踪。在特定实现中,资源使用统计通过vSphereTM Web服务应用编程接口(API)来由系统传感器模块采集。作为示例,系统传感器模块可以使用“使用”性能计数器采集一时间间隔之上的平均每VM CPU使用,并使用“消费”计数器采集每VM的存储器使用。在一个实施方式中,应用传感器模块504和系统传感器模块506是应用资源分配模块500的部分。在其他实施方式中,应用传感器模块504和系统传感器模块506 可以是管理服务器106中的其他模块或者系统的部分。
如图5所示,应用管理器500包括模型建立器510、应用控制器 512和资源控制器514。模型建立器510配置以使用来自应用传感器模块504和系统传感器模块506的信息,执行并迭代地细化作为VM 等级资源分配的函数的用于观察到的应用性能的模型,即,运行应用502的VM的资源分配。应用控制器512配置以将函数求逆以计算期望或者目标资源分配的新集合,以便满足用户定义的SLO。资源控制器514配置以确定单独VM等级资源设置的集合,其将使得运行在应用502上的VM在下一控制时段中获得期望资源分配。在特定实现中,模型建立器510、应用控制器514和资源控制器514 继续用于单一应用502的应用管理器500的实例。页面500的执行组件将在下文更详细地描述。
下文表格列出了在此使用的标记,该标记用以描述应用管理器 500的模型建立器510、应用控制器512和资源控制器514。
对于应用a∈A,资源分配变量ua被定义为一矢量,其包括针对应用a的全部测量的资源分配。例如,对于两个VM的应用(Ma={vm1, vm2}),如果两个资源被考虑(R={cpu,memory}),ua是矢量值,其中 ua=(ua,vm1,cpu,ua,vm1,mem,ua,vm2,cpu,ua,vm2,mem)。ua(t)表示在控制时段t期间针对应用a的测量的资源分配值。
模型建立器510配置以计算线性模型,该线性模型近似资源分配与应用a(ua)及其规则化性能之间的线性关系。对于最真实世界的系统,此关系通常是非线性的并且是工作负载依赖的。然而,多种线性模型可以在操作点周围的足够小的区域内通过线性模型来进行近似。在一个实施方式还总,下文的自动回归移动平均(ARMA) 模型用于表示资源分配与应用a(ua)及其规则化性能之间的关系:
其中是用于当前控制间隔的应用a的规则化性能,a(t)是自动回归参数,是用于先前控制间隔的应用a的规则化性能,bT(t)是移动平均参数的矢量,以及ua(t)是用于当前控制时间间隔的资源分配矢量。由于其参数a(t)和b(t)在每个控制时间间隔t中被重新估计,此模型是自适应的。由此,线性模型周期性被更新以适用于负载和/或系统状况的变化。
应用控制器512配置以确定用于运行应用的全部VM的资源分配,以便应用满足其性能SLO。应用控制器512寻求将如下成本函数最小化的用于下一控制时段的VM等级资源分配:
(等式2)
其中ua(t+1)是用于下一控制时段(t+1)的资源分配矢量,是用于下一控制时段的按照等式1预测的应用的规则化性能,ua(t)是用于当前控制时段的资源分配矢量,以及λ是伸缩因子。在等式2中,伸缩因子λ捕获如下之间的折中:惩罚应用偏离其目标(由规则化的值等于1表示)的性能的性能成本、以及惩罚资源分配值中的大的震荡的稳定性成本。
使用等式1的线性模型,将等式2的成本函数最小化的优化资源分配可以通过如下来求解和表示:
其中是用于下一控制时段(t+1)的期望资源分配,b是移动平均参数示例,bT是b的转置,λ是伸缩因子,I是标识矩阵,a是自动回归参数,是用于下一控制时段的应用的规则化性能,ua(t)是用于当前控制时段的资源分配矢量。
资源控制器514配置以将由应用控制器512计算的优选资源分配值转换至期望的VM等级资源控制设置。出于如下原因而需要转换:(1)在示例实施方式中,应用控制器512的输出是以百分比单元的形式,而VM等级资源控制设置是以绝对单元的形式,例如,用于CPU和存储器两者的保留和限制值均为兆赫(MHz)或者兆字节(MB)的单元的形式;以及(2)为了应对所计算优化资源分配中的不精确性,分配比作为“安全缓冲”的所计算值更多的资源。资源控制器514操作以计算期望的资源控制设置,例如,用于被考虑的每个资源类型的保留和限制值。
图6是示出示例方法的流程图。参考图6描述了根据本发明一个实施方式的、资源控制器514针对每个资源类型并针对运行应用 500的每个VM计算期望VM等级资源控制设置。在方框602处,如果优选分配值落在值的有效范围之外,则调整针对特定资源类型的来自应用控制器512所接收的优化分配值。在方框604处,基于资源类型以绝对单元形式计算资源容量。VM的资源容量是配置用于针对每个资源类型的资源的量,是静态的。在方框606处,基于优化分配值和容量计算期望的资源保留。在一个实施方式中,期望的资源保留是通过直接将优化分配值和容量相乘来计算的。在方框608 处,基于测量的应用性能来选择增量值。在方框610处,安全缓冲的大小是由计算的保留、规则化的性能和增量值来确定。在方框612,资源限制值是基于至少计算的保留而设置。在一个实施方式中,资源限制值是基于计算的保留和安全缓冲大小来设置。在特定实现中,资源限制值被设置至计算的保留和安全缓冲大小的总和。在其他实施方式中,资源限制值是基于计算的保留、常数值和/或应用性能来设置。在方框614处,如果需要,资源限制值基于可用容量和针对 VM的最小资源需求而调整,使得最终值是可行的。
在一个特定实现中,资源控制器514针对CP和存储器资源两者在运行应用500的每个VM上执行如下算法,以计算保留和限制设置:
算法:计算期望的保留和限制设置
输入:优化分配u*,资源类型type,以及规格化性能
输出:保留和限制值配对
在上述算法中,如果针对VM的优化分配值落在有效范围之外 (第1-2行),则首先对其进行调整。资源容量继而基于特定资源类型(即,CPU或者存储器)而以绝对单元形式被计算(第3-7行)。接着期望的资源保留通过直接将优化分配值和容量相乘而计算(第8 行)。依赖于测量的应用性能低于还是高于目标而选择低或者高的增量值(第10行)。所选择的增量值被用以确定“安全缓冲”的大小。如果应用性能优于SLO(perf<1),则相对小的缓存大小可以降低其目标周围的性能波动。如果性能差于SLO(perf>1),则需要相对大的缓冲大小以改进性能收敛域。作为示例,低的增量值可以被设置至0.1,并且高的增量值可以被设置至0.3。接着“安全缓冲”的大小继而通过计算的保留、规则化的性能和所选择的增量值来确定(第11行)。资源限制值继而被设置至保留和缓冲大小的总和(第12行)。在限制和保留之间的非零的自适应的缓冲允许资源控制器514调整运行时分配,如果需要的话。在其他实现中,限制值可以被设置至以下中的一个:(1)计算的保留,(2)计算的保留加上某常数,以及(3)计算的保留加上应用性能和计算保留的乘积。接着,限制继而与可用容量和VM的最小容量需求进行比较,以确保最终值是可行的(13-17行)。
返回图4,不同的应用管理器410可以关联于应用资源分配模块 108的特定RP管理器412。具体地,管理相同RP下的应用的应用管理器关联于相同的RP管理器。对于每个RP,相关联的RP管理器基于由相关联应用管理器请求的资源、可用的RP容量和RP设置,确定资源对在此RP下运行的应用的资源分配。这是需要的,因为应用管理器独立于彼此操作,并且在整体上可以请求多于特定RP可用的资源。
如在此使用,如果RP等级资源设置可以通过管理员或者通过 API修改,则RP定义为可修改。这允许资源从相同VDC内的低优先级的RP流动至高优先级的RP(例如,在图3中从RP 304-2到 RP 304-1)。另外,当被自己的孩子的保留的总和超越时,如果RP 可以自动增加其自身保留,则RP定义为可扩展。如果RP具有保留 R,VMi表示在此RP下运行的虚拟机,并且保留为ri,则RP具有如下约束:
在此RP的可修改性和可扩展性被称为RP的资源属性。
对于其中所请求的总保留小于RP等级保留的资源,RP管理器尊重每个相关联应用管理器的请求。对于其中VM等级保留的总和大于RP等级保留的竞争资源,RP管理器执行如下方案之一:
(1)如果RP为可扩展,则RP管理器将VM等级资源值直接设置为如由相关联的应用管理器所请求,并且RP自动扩展其保留以协调总需求。
(2)如果RP是不可扩展但是可修改,则RP管理器将RP等级保留设置为所请求VM等级保留的总和。
(3)如果RP为不可扩展并且不可修改,则RP管理器与针对每个 VM的所请求保留成比例来限制VM等级保留。
在操作中,每个应用管理器周期性地向相应RP管理器发送资源设置请求。在一个实施方式中,每个请求是四元组(vmname;type;resv; limit),包括VM名称、资源类型、所请求保留和请求的限制。对于每个资源RP管理器维护全局矢量(例如,cpu_alloc_table),其中矢量中的每个元素是三元组(vmname;req resv;alloc resv),包括VM名称、所请求保留和分配的保留。此表被更新以保持随着时间跟踪每个VM 的请求。
图7是进一步示例方法的流程图。一旦从应用管理器410接收了请求,相关联RP管理器412操作以计算实际或者最终VM等级和 RP等级资源设置。针对在RP下的每个VM,RP管理器412的操作用以根据参见图7描述的本发明的实施方式来针对每个资源类型计算最终VM等级和RP等级资源设置。在方框702中,检查资源类型的可扩展性。在方框704,读取当前RP保留设置和当前RP限制设置。在方框706,仍然可以被分配的未保留RP和VM的当前保留值被读取。在方框708处,如果资源类型在RP中可扩展,则VM保留被限制至RP保留,以确保满足用于可扩展资源类型的约束。在方框 710,如果资源类型为不可扩展,来自应用管理器的全部VM的所请求保留值被用于计算与用于VM成比例分配的保留值。例如,如果不可扩展RP的RP等级保留为1000MHz,如果运行在此RP下的两个VM(vm1和vm2)各自分别具有所请求的900MHz和300MHz 的所请求保留,则用于vm1和vm2的成比例分配的保留值应当分别是750MHz和250MHz。在方框712,最终分配的值被设置为以下三个候选值中的最小值:1)成比例分配的保留,2)可以继续被分配的未保留RP容量加上所请求的限制,以及3)所请求的保留。在方框714处,全局资源矢量表被更新。在可选方框716,RP等级限制被可选地使用标记来设置。例如,如果标记为真,则RP等级限制被设置为等于RP等级保留。否则,RP等级限制被设置为不受限。
在一个特定实现中,每个RP管理器412针对来自相关联应用管理器之一的每个资源设置请求执行如下算法,以计算实际VM等级和RP等级的资源设置。
算法:VM和RP设置计算
输入:应用管理器请求元组(vmname,type,resv,limit)
输出:VM和RP设置元组(vm_resv,vm_limit,rp_resv,rp_limit)
在上述算法中,由类型定义的资源的可扩展性和可修改性首先被检查(第1-2行)。当前使用的以及可用RP保留设置继而被读取,并且总RP容量被计算(第3-5行)。接着请求VM的当前保留值被取回(第6行)。如果RP是可扩展或者可修改的,则VM保留值被直接设置(第8行)。如果RP是不可扩展并且不可修改的,则全局矢量被扫描已获取来自资源池中的全部VM的所请求的保留的总值,并计算针对请求VM的成比例分配的值prop_resv(第10-12行)。RP等级保留和限制继而被设置,并且全局矢量在结束时以新的元组 (vname,type,resv,vm_resv)被更新(第15-17行)。
一旦最终VM等级和RP等级资源设置已经被计算,则RP管理器412确定某些或者全部最终VM等级和RP等级资源设置是否应当被设置或应用。依赖于RP的可扩展性和可修改性设置,RP管理器可以确定应用所计算的值如下:
1.可扩展:仅有VM等级节点(knob)(vm resv;vm limit)被设置。
2.不可扩展但可修改:
情况1:VM等级和RP等级节点两者被设置;
情况2:仅RP等级保留(rp resv)被设置(if set_rp_limit=false);
情况3:仅RP等级保留和限制(rp resv;rp limit)被设置(if set_rp_limit =true);
3.不可扩展并且不可修改:仅成比例地限制VM等级节点值(vm resv;vm limit)被设置。
致动器414被配置以将最终VM等级和RP等级资源设置和/或 RP等级资源设置(如由RP管理器412确定)应用至术语RP的相应RP和/或VM。在一个实施方式中,最终VM等级和RP等级资源设置和/或RP等级资源设置可以通过vSphereTM Web Service API由致动器来设置。
图8是进一步示例方法的流程图。参见图8的流程图描述了根据本发明一个实施方式的在分布式计算机系统中管理资源的方法,该分布式计算机系统包括用于虚拟机集合的至少一个资源池。在方框802处,构造所述分布式计算机系统中运行的应用的观察的性能的模型,所述模型作为在虚拟机(VM)等级分配的资源的当前VM 等级资源分配的函数。在方框804处,所述函数被求逆以计算满足至少一个用户定义的服务等级目标(SLO)目标资源分配的集合。在方框806处,确定对应于所述目标资源分配的期望个体VM等级资源设置的集合。在方框808处,至少于基于至少所述期望个体VM 等级资源设置的所述集合、所述资源池的当前RP等级资源设置和所述资源池的可用资源容量,确定用于所述应用属于的资源池的最终 RP等级资源设置、以及用于资源池的所述VM的最终VM等级资源设置。在方框810处,基于所述资源池的至少一个资源属性,将所述最终RP等级资源设置和所述最终VM等级资源设置中的至少一个应用至所述资源池和在所述资源池下运行的所述VM。
尽管在此以特定顺序示出并描述了方法的操作,每个方法的操作的顺序可以被调整,以便特定操作可以以逆序执行,从而特定操作可以至少部分期望个体VM等级资源设置与其他操作并发地执行。在另一实施方式中,不同操作的指令和子操作可以以间歇和/或备选方式执行。
应当注意,方法的至少某些操作可以使用软件指令来实现,该软件指令存储在计算机可用存储介质上用于由计算机执行。作为示例,计算机程序产品的实施方式包括计算机可读存储介质,用以存储计算机可读程序,当在计算机上执行时使得计算机执行如在此描述的操作。
此外,本发明的至少部分的实施方式可以采取计算机程序产品的形式,该计算机程序产品从计算机可用或者计算机可读介质可访问以提供用于由计算机或者任何指令执行系统使用或者与其相联系的程序代码。出于描述的目的,计算机可用或者计算机可读介质可以是任何装置,其可以包括、存储、传输、传播或者传递用于由指令执行系统、装置或者设备使用或者与其相联系的程序。
计算机可用或者计算机可读介质可以是电的、磁的、光学、电磁、红外、或者半导体系统(或者装置或设备)、或者传播介质。计算机可读介质的示例包括半导体或者固态存储器、磁带、可移除计算机盘、随机访问存储器(RAM)、只读存储器(ROM)、刚性磁盘、以及光盘。光盘的当前示例包括具有只读存储器的压缩盘 (CD-ROM)、具有读/写的压缩盘(CD-R/W)、数字视频盘(DVD) 和蓝光盘。
在上述说明书中,提供了各种实施方式的具体细节。然而,某些实施方式可以以少于全部这些具体细节来实现。在其他实例中,特定方法、过程、组件、结构和/或功能在不具有更多细节的情况下描述,以出于简明和清楚的原因支持本发明的各个实施方式。
尽管已经描述并示出了本发明的具体实施方式,本发明并不旨在局限于如此描述和示出的部分的具体形式或者设置。本发明的范围由所附权利要求书来定义。
Claims (19)
1.一种用于管理包括用于虚拟机VM的集合的至少一个资源池RP的分布式计算机系统中的资源的方法,所述方法包括:
构造所述分布式计算机系统中运行的应用的观察到的性能的模型,所述模型作为当前VM等级资源分配的函数,其中所述模型是对针对所述应用的VM等级资源分配与所述应用的性能之间的非线性关系进行近似的线性模型;
计算所述函数的逆函数以计算目标资源分配的集合,从而满足至少一个用户定义的服务等级目标;
确定对应于所述目标资源分配的期望个体VM等级资源设置的集合;
基于至少所述期望个体VM等级资源设置的所述集合、所述资源池的当前RP等级资源设置和所述资源池的可用资源容量,确定用于所述应用属于的资源池的最终RP等级资源设置以及用于在所述资源池下运行的所述VM的最终VM等级资源设置;以及
基于所述资源池的至少一个资源属性,将所述最终RP等级资源设置和所述最终VM等级资源设置中的至少一个应用至所述资源池和在所述资源池下运行的所述VM中的至少一个。
2.根据权利要求1所述的方法,其中计算所述函数的逆函数包括:计算百分比单元形式的所述目标资源分配,以及其中确定期望个体VM等级资源设置的所述集合包括:确定资源的绝对单元形式的期望个体VM等级资源设置。
3.根据权利要求1所述的方法,其中所述确定对应于所述目标资源分配的期望个体VM等级资源设置的所述集合包括:向所述目标资源分配添加安全缓冲。
4.根据权利要求3所述的方法,其中所述确定对应于所述目标资源分配的期望个体VM等级资源设置的所述集合包括:基于所述应用的所述观察到的性能选择增量值的步骤,以及基于选择的所述增量值计算所述安全缓冲,其中所述增量值是用于确定所述安全缓冲的大小的值。
5.根据权利要求4所述的方法,其中选择所述增量值的步骤包括:当所述应用的所述观察到的性能优于用户定义的服务等级目标时选择较低增量值,以及当所述应用的所述观察到的性能差于所述用户定义的服务等级目标时选择较高的增量值。
6.根据权利要求5所述的方法,其中所述确定对应于所述目标资源分配的期望个体VM等级资源设置的所述集合进一步包括:计算资源限制值作为保留值和所述安全缓冲的大小的总和,其中所述保留值是用于指定所述VM或者所述RP必须接收的计算机资源的最小数量的值。
7.根据权利要求1所述的方法,其中所述确定对应于所述目标资源分配的期望个体VM等级资源设置的所述集合进一步包括:通过将用于资源的目标分配值乘以用于该资源的所述容量来计算资源保留值。
8.根据权利要求1所述的方法,其中应用所述最终RP等级资源设置和所述最终VM等级资源设置中的至少一个包括:如果所述资源池为可扩展则仅应用所述最终VM等级资源设置。
9.根据权利要求8所述的方法,其中当所述资源池的资源权利被其孩子的资源权利的总和超出时,如果所述资源池自动增加所述资源池的资源权利,则所述资源池为可扩展。
10.根据权利要求1所述的方法,其中应用所述最终RP等级资源设置和所述最终VM等级资源设置中的至少一个包括:如果所述资源池为不可扩展并且不可修改则仅应用已经被成比例地限制的所述最终VM等级资源设置。
11.一种应用资源分配模块,用于分布式计算机系统,所述分布式计算机系统包括用于虚拟机VM的集合的至少一个资源池,所述应用资源分配模块包括:
存储器;
至少一个应用管理器,可操作地耦合至运行在所述分布式计算机系统中的应用,所述应用管理器包括:
模型建立器,配置以构造作为当前VM等级资源分配的函数的所述应用的观察到的性能的模型,其中所述模型是对针对所述应用的VM等级资源分配与所述应用的性能之间的非线性关系进行近似的线性模型;
应用控制器,配置以计算所述函数的逆函数以计算目标资源分配的集合,从而满足至少一个用户定义的服务等级目标;以及
资源控制器,配置以确定对应于所述目标资源分配的期望个体VM等级资源设置的集合;
至少一个资源池管理器,可操作地耦合至所述至少一个应用管理器,所述资源池管理器配置以至少基于所述期望个体VM等级资源设置的所述集合、所述资源池的当前RP等级资源设置和所述资源池的可用资源容量,确定用于所述应用属于的资源池的最终RP等级资源设置以及用于在所述资源池下运行的所述VM的最终VM等级资源设置;以及
致动器,可操作地耦合至所述至少一个资源池管理器,所述致动器配置以基于所述资源池的至少一个资源属性,将所述最终RP等级资源设置和所述最终VM等级资源设置中的至少一个应用至所述资源池和在所述资源池下运行的所述VM中的至少一个。
12.根据权利要求11所述的应用资源分配模块,其中所述应用控制器配置以计算百分比单元形式的所述目标资源分配,以及其中所述资源控制器配置以确定资源的绝对单元形式的期望个体VM等级资源设置。
13.根据权利要求11所述的应用资源分配模块,其中所述资源控制器配置以向所述目标资源分配添加安全缓冲,以确定期望个体VM等级资源设置的集合。
14.根据权利要求13所述的应用资源分配模块,其中所述资源控制器进一步配置以基于所述应用的所述观察到的性能选择增量值,以及基于选择的所述增量值计算所述安全缓冲,其中所述增量值是用于确定所述安全缓冲的大小的值。
15.根据权利要求14所述的应用资源分配模块,其中所述资源控制器配置以当所述应用的所述观察到的性能优于用户定义的服务等级目标时选择较低增量值,以及当所述应用的所述观察到的性能差于所述用户定义的服务等级目标时选择较高的增量值。
16.根据权利要求15所述的应用资源分配模块,其中所述资源控制器配置以计算资源限制值作为保留值和所述安全缓冲的大小的总和,其中所述保留值是用于指定所述VM或者所述RP必须接收的计算机资源的最小数量的值。
17.根据权利要求11所述的应用资源分配模块,其中所述资源控制器配置以通过将用于资源的目标分配值乘以用于该资源的所述容量来计算资源保留值。
18.根据权利要求11所述的应用资源分配模块,其中所述致动器配置以如果所述资源池为可扩展则仅应用所述最终VM等级资源设置。
19.根据权利要求11所述的应用资源分配模块,其中所述致动器配置以如果所述资源池为不可扩展并且不可修改则仅应用已经被成比例地限制的所述最终VM等级资源设置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/926,773 | 2013-06-25 | ||
US13/926,773 US9411622B2 (en) | 2013-06-25 | 2013-06-25 | Performance-driven resource management in a distributed computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104252393A CN104252393A (zh) | 2014-12-31 |
CN104252393B true CN104252393B (zh) | 2018-11-06 |
Family
ID=50896179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410286077.XA Active CN104252393B (zh) | 2013-06-25 | 2014-06-24 | 管理分布式计算机系统中资源的方法和应用资源分配模块 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9411622B2 (zh) |
EP (1) | EP2819010B1 (zh) |
CN (1) | CN104252393B (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032954A1 (en) * | 2013-07-24 | 2015-01-29 | Netapp, Inc. | Method and system for presenting and managing storage shares |
GB2517195A (en) * | 2013-08-15 | 2015-02-18 | Ibm | Computer system productivity monitoring |
US20150067677A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for defining virtual machine placement logic that is configurable and restricts virtual machine provisioning within a software defined cloud |
US20150067676A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for performing resource management for software defined clouds |
GB2518894A (en) * | 2013-10-07 | 2015-04-08 | Ibm | A method and a system for operating programs on a computer cluster |
US9769084B2 (en) * | 2013-11-02 | 2017-09-19 | Cisco Technology | Optimizing placement of virtual machines |
US10180948B2 (en) | 2013-11-07 | 2019-01-15 | Datrium, Inc. | Data storage with a distributed virtual array |
US10089013B2 (en) | 2013-11-07 | 2018-10-02 | Datrium, Inc. | System and method for managing a non-volatile storage resource as a shared resource in a distributed system |
US10140136B2 (en) * | 2013-11-07 | 2018-11-27 | Datrium, linc. | Distributed virtual array data storage system and method |
US10140141B2 (en) * | 2013-12-06 | 2018-11-27 | Hitachi, Ltd. | Measuring accumulated load values of first level and second level virtual machines for modifying resource allocation |
US9621427B1 (en) * | 2013-12-06 | 2017-04-11 | Vmware, Inc. | Automatic placement of clients in a distributed computer system satisfying constraints |
US10310903B2 (en) * | 2014-01-17 | 2019-06-04 | Red Hat, Inc. | Resilient scheduling of broker jobs for asynchronous tasks in a multi-tenant platform-as-a-service (PaaS) system |
US9367344B2 (en) | 2014-10-08 | 2016-06-14 | Cisco Technology, Inc. | Optimized assignments and/or generation virtual machine for reducer tasks |
US9886306B2 (en) | 2014-11-21 | 2018-02-06 | International Business Machines Corporation | Cross-platform scheduling with long-term fairness and platform-specific optimization |
CN105786587B (zh) * | 2014-12-23 | 2019-11-26 | 华为技术有限公司 | 一种虚拟机vm的伸缩方法和设备 |
CN104536829B (zh) * | 2014-12-30 | 2018-04-13 | 深圳先进技术研究院 | 一种云计算系统中虚拟机的性能预测方法及系统 |
CN104572301B (zh) * | 2015-01-04 | 2019-02-26 | 中国联合网络通信集团有限公司 | 一种资源分配方法和系统 |
US9680965B2 (en) * | 2015-04-01 | 2017-06-13 | Alcatel-Lucent Usa Inc. | Software upgrades for offline charging systems within a network |
US10540504B2 (en) | 2015-05-12 | 2020-01-21 | Datrium, Inc. | Distributed data method for encrypting data |
US9846589B2 (en) | 2015-06-04 | 2017-12-19 | Cisco Technology, Inc. | Virtual machine placement optimization with generalized organizational scenarios |
US9772792B1 (en) * | 2015-06-26 | 2017-09-26 | EMC IP Holding Company LLC | Coordinated resource allocation between container groups and storage groups |
CN108207114B (zh) * | 2015-08-18 | 2021-12-21 | 瑞典爱立信有限公司 | 用于重新配置虚拟机的技术 |
US10509683B2 (en) * | 2015-09-25 | 2019-12-17 | Microsoft Technology Licensing, Llc | Modeling resource usage for a job |
US9894150B2 (en) * | 2015-09-30 | 2018-02-13 | Spirent Communications, Inc. | Accurate generation of multiple dimensions of computer load |
GB2549773B (en) * | 2016-04-28 | 2018-05-16 | Metaswitch Networks Ltd | Configuring host devices |
US10296363B2 (en) * | 2016-09-16 | 2019-05-21 | Oracle International Corporation | Tuning a virtual machine startup parameter |
US11489731B2 (en) | 2016-09-30 | 2022-11-01 | Salesforce.Com, Inc. | Techniques and architectures for efficient allocation of under-utilized resources |
US10963311B2 (en) * | 2016-09-30 | 2021-03-30 | Salesforce.Com, Inc. | Techniques and architectures for protection of efficiently allocated under-utilized resources |
US10326834B2 (en) | 2016-10-17 | 2019-06-18 | At&T Intellectual Property I, L.P. | Efficient un-allocation of cloud resources |
US10768986B2 (en) * | 2017-01-06 | 2020-09-08 | International Business Machines Corporation | Management and utilization of storage capacities in a converged system |
US10824355B2 (en) | 2017-01-10 | 2020-11-03 | International Business Machines Corporation | Hierarchical management of storage capacity and data volumes in a converged system |
US10938901B2 (en) | 2017-01-11 | 2021-03-02 | International Business Machines Corporation | Management and utilization of data volumes in a converged system |
US10459753B2 (en) * | 2017-05-26 | 2019-10-29 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for agent based centralized and efficient transaction recordings for service virtualization |
US10318333B2 (en) * | 2017-06-28 | 2019-06-11 | Sap Se | Optimizing allocation of virtual machines in cloud computing environment |
US10768834B2 (en) | 2018-04-27 | 2020-09-08 | Netapp, Inc. | Methods for managing group objects with different service level objectives for an application and devices thereof |
US10785089B2 (en) | 2018-05-07 | 2020-09-22 | At&T Intellectual Property I, L.P. | Service-level resiliency in virtualization environments |
CN109005577B (zh) * | 2018-06-29 | 2021-06-18 | 歌尔科技有限公司 | 一种数据访问方法、装置、智能穿戴设备及存储介质 |
CN109901928B (zh) * | 2019-03-01 | 2022-11-29 | 厦门星界链科技有限公司 | 一种推荐云主机配置的方法及云主机 |
US11108685B2 (en) | 2019-06-27 | 2021-08-31 | Bank Of America Corporation | Intelligent delivery of data packets within a network transmission path based on time intervals |
CN112445569B (zh) * | 2019-09-02 | 2023-01-17 | 阿里巴巴集团控股有限公司 | 部署方法、装置、电子设备及存储介质 |
US20220066904A1 (en) * | 2020-08-28 | 2022-03-03 | Red Hat, Inc. | Simulating containerized clusters |
JP7191906B2 (ja) * | 2020-09-09 | 2022-12-19 | 株式会社日立製作所 | リソース割当制御装置、計算機システム、及びリソース割当制御方法 |
CN112099952A (zh) * | 2020-09-16 | 2020-12-18 | 亚信科技(中国)有限公司 | 资源调度方法、装置、电子设备及存储介质 |
US11366650B1 (en) * | 2020-12-04 | 2022-06-21 | International Business Machines Corporation | Automatic generation of affinity and anti-affinity rules |
CN112769629A (zh) * | 2021-02-26 | 2021-05-07 | 北京百度网讯科技有限公司 | 带宽分配方法、装置、电子设备及存储介质 |
US11323325B1 (en) * | 2021-04-26 | 2022-05-03 | At&T Intellectual Property I, L.P. | System and method for remote configuration of scalable datacenter |
JP2023037524A (ja) | 2021-09-03 | 2023-03-15 | 株式会社日立製作所 | リソース割当制御装置、計算機システム、及びリソース割当制御方法 |
US11797454B2 (en) * | 2021-11-22 | 2023-10-24 | Arm Limited | Technique for operating a cache storage to cache data associated with memory addresses |
CN114780170B (zh) * | 2022-04-11 | 2023-07-21 | 远景智能国际私人投资有限公司 | 容器资源的配置方法、装置、设备及存储介质 |
CN114866547B (zh) * | 2022-04-20 | 2023-09-29 | 中国银联股份有限公司 | 一种虚拟资源分配方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102388350A (zh) * | 2009-03-13 | 2012-03-21 | 惠普发展公司,有限责任合伙企业 | 确定优化实体利用率和资源功耗的状态分配 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7171654B2 (en) | 2000-05-25 | 2007-01-30 | The United States Of America As Represented By The Secretary Of The Navy | System specification language for resource management architecture and corresponding programs therefore |
US7562143B2 (en) | 2004-01-13 | 2009-07-14 | International Business Machines Corporation | Managing escalating resource needs within a grid environment |
US7596788B1 (en) * | 2004-05-11 | 2009-09-29 | Platform Computing Corporation | Support of non-trivial scheduling policies along with topological properties |
US7346401B2 (en) * | 2004-05-25 | 2008-03-18 | International Business Machines Corporation | Systems and methods for providing constrained optimization using adaptive regulatory control |
US8924534B2 (en) * | 2009-10-27 | 2014-12-30 | Vmware, Inc. | Resource optimization and monitoring in virtualized infrastructure |
WO2011138854A1 (ja) * | 2010-05-06 | 2011-11-10 | 日本電気株式会社 | リソース管理システム、リソース管理方法およびリソース管理プログラム |
US8612597B2 (en) | 2010-12-07 | 2013-12-17 | Microsoft Corporation | Computing scheduling using resource lend and borrow |
US8856321B2 (en) | 2011-03-31 | 2014-10-07 | International Business Machines Corporation | System to improve operation of a data center with heterogeneous computing clouds |
US9595054B2 (en) | 2011-06-27 | 2017-03-14 | Microsoft Technology Licensing, Llc | Resource management for cloud computing platforms |
US9329888B2 (en) * | 2013-01-28 | 2016-05-03 | International Business Machines Corporation | Computing optimized virtual machine allocations using equivalence combinations |
US9571567B2 (en) * | 2013-03-14 | 2017-02-14 | Vmware, Inc. | Methods and systems to manage computer resources in elastic multi-tenant cloud computing systems |
-
2013
- 2013-06-25 US US13/926,773 patent/US9411622B2/en active Active
-
2014
- 2014-06-05 EP EP14171336.2A patent/EP2819010B1/en active Active
- 2014-06-24 CN CN201410286077.XA patent/CN104252393B/zh active Active
-
2016
- 2016-08-02 US US15/226,520 patent/US10212098B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102388350A (zh) * | 2009-03-13 | 2012-03-21 | 惠普发展公司,有限责任合伙企业 | 确定优化实体利用率和资源功耗的状态分配 |
Also Published As
Publication number | Publication date |
---|---|
EP2819010A2 (en) | 2014-12-31 |
EP2819010A3 (en) | 2016-06-01 |
US9411622B2 (en) | 2016-08-09 |
EP2819010B1 (en) | 2021-03-24 |
CN104252393A (zh) | 2014-12-31 |
US20140380307A1 (en) | 2014-12-25 |
US10212098B2 (en) | 2019-02-19 |
US20160344650A1 (en) | 2016-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104252393B (zh) | 管理分布式计算机系统中资源的方法和应用资源分配模块 | |
US11263234B2 (en) | Resource provisioning systems and methods | |
US10623481B2 (en) | Balancing resources in distributed computing environments | |
Desai et al. | A survey of various load balancing techniques and challenges in cloud computing | |
US9379995B2 (en) | Resource allocation diagnosis on distributed computer systems based on resource hierarchy | |
US10606649B2 (en) | Workload identification and display of workload-specific metrics | |
US10146591B2 (en) | Systems and methods for provisioning in a virtual desktop infrastructure | |
Al-Dulaimy et al. | Type-aware virtual machine management for energy efficient cloud data centers | |
CN106687926A (zh) | 被克隆的虚拟机的负载均衡 | |
CN108073457B (zh) | 一种超融合基础架构的分层资源管理方法、装置及系统 | |
Chaudhary et al. | A new load balancing technique for virtual machine cloud computing environment | |
Deiab et al. | Energy efficiency in cloud computing | |
Chaudhary et al. | An analysis of the load scheduling algorithms in the cloud computing environment: A survey | |
Naskos et al. | Cost-aware horizontal scaling of NoSQL databases using probabilistic model checking | |
Vishakha | Performance Analysis of Cloud Load Balancing Algorithms | |
CN107528871A (zh) | 存储系统中的数据分析 | |
Jaiswal et al. | An approach towards the dynamic load management techniques in cloud computing environment | |
CN110109758A (zh) | 一种云计算资源分配方法 | |
Mirtaheri et al. | Adaptive load balancing dashboard in dynamic distributed systems | |
Patel et al. | Efficient resource allocation strategy to improve energy consumption in cloud data centers | |
Sajitha et al. | Dynamic VM consolidation enhancement for designing and evaluation of energy efficiency in green data centers using regression analysis | |
Kamboj et al. | A novel approach of optimizing performance using K-means clustering in cloud computing | |
US11487670B2 (en) | Machine learning based cache management | |
Zhang et al. | Adaptive management and multi objective optimization of virtual machine placement in cloud computing | |
Deshmukh et al. | A survey: Load balancing for distributed file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Weirui LLC Country or region after: U.S.A. Address before: California, USA Patentee before: VMWARE, Inc. Country or region before: U.S.A. |
|
CP03 | Change of name, title or address |