CN110249311B - 云计算系统中针对虚拟机的资源管理 - Google Patents
云计算系统中针对虚拟机的资源管理 Download PDFInfo
- Publication number
- CN110249311B CN110249311B CN201880010125.9A CN201880010125A CN110249311B CN 110249311 B CN110249311 B CN 110249311B CN 201880010125 A CN201880010125 A CN 201880010125A CN 110249311 B CN110249311 B CN 110249311B
- Authority
- CN
- China
- Prior art keywords
- hddiops
- value
- nodes
- virtual machine
- predicted
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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]
-
- 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
-
- 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/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
- G06F9/5016—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 the resource being the memory
-
- 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
- G06F9/5022—Mechanisms to release 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/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
-
- 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/5044—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 hardware capabilities
-
- 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/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/5055—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 software capabilities, i.e. software resources associated or available to the machine
-
- 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
- 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
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/45583—Memory management, e.g. access or 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/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
-
- 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)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Abstract
系统接收在云计算系统中运行多个虚拟机的多个节点中的节点上部署虚拟机的请求。系统选择多个节点中的一个节点,该一个节点所具有的硬盘驱动器(HDD)每秒输入输出操作(IOPS)值小于针对运行多个虚拟机的多个节点的观察到的HDD IOPS值。系统接收针对虚拟机的预测HDD IOPS值,并基于针对所选节点的HDD IOPS值和针对虚拟机的预测HDD IOPS值,来确定针对所选节点的新HDD IOPS值。当针对所选节点的新HDD IOPS值小于或等于针对多个节点的观察到的HDD IOPS值时,系统在所选节点上实例化虚拟机。
Description
技术领域
本公开一般涉及云计算系统,并且更具体地涉及云计算系统中针对虚拟机的资源管理。
背景技术
本文提供的背景描述是为了总体上呈现本公开的上下文的目的。目前指名的发明人的工作(在本背景技术部分描述的工作范围内)以及在提交时可能不具备其他资格作为现有技术的描述的方面,既不明确也不暗示地被承认为相对于本公开的现有技术。
云计算系统的提供商(例如微软、亚马逊、IBM等)在云基础设施上投入巨资。有效利用云基础设施并从中获利可能是一项艰巨的任务。例如,云基础设施的平均CPU利用可能非常低(例如小于10%)。与云基础设施利用不足的每1%相关联的年度货币成本可能是显著的。随着云基础设施使用更新的硬件和其他资源进行更新,同时仍利用不足,成本可能会增长。
发明内容
一种系统包括处理器和存储器以及存储在存储器中的机器可读指令。当由处理器执行时,机器可读指令将处理器配置为接收在云计算系统中运行多个虚拟机的多个节点中的节点上部署虚拟机的请求。机器可读指令将处理器配置为选择多个节点中的一个节点,其具有的硬盘驱动器(HDD)每秒输入输出操作(IOPS)值小于针对运行多个虚拟机的多个节点的观察到的HDD IOPS值。机器可读指令将处理器配置为接收针对虚拟机的预测HDD IOPS值,并基于针对所选节点的HDD IOPS值和针对虚拟机的预测HDD IOPS值,来确定针对所选节点的新HDD IOPS值。机器可读指令将处理器配置为:当针对所选节点的新HDD IOPS值小于或等于针对多个节点的观察到的HDDIOPS值时,在所选节点上实例化虚拟机。
在其他特征中,机器可读指令还将处理器配置为:收集关于由多个节点在运行多个虚拟机时执行的HDD IOPS的数据,并且基于收集的数据来生成针对多个节点的观察到的HDD IOPS值。
在其他特征中,机器可读指令还将处理器配置为:收集关于由多个节点在运行多个虚拟机时执行的HDD IOPS的数据,并且基于所收集的数据来生成针对虚拟机的预测HDDIOPS值。
在其他特征中,针对多个节点的观察到的HDD IOPS值包括针对多个节点的平均HDD IOPS值和针对多个节点的最大HDD IOPS值中的一个或多个。针对虚拟机的预测HDDIOPS值包括针对虚拟机的平均预测HDD IOPS值和针对虚拟机的最大预测HDD IOPS值中的一个或多个。
在其他特征中,机器可读指令还将处理器配置为:在所选节点上实例化虚拟机时,更新针对所选节点的HDD IOPS值和针对多个节点的观察到的HDD IOPS值。
在其他特征中,机器可读指令还将处理器配置为:在虚拟机在所选节点上终止时,更新针对所选节点的HDD IOPS值和针对多个节点的观察到的HDD IOPS值。
在其他特征中,机器可读指令还将处理器配置为:在多个虚拟机中的一个虚拟机在多个节点上终止时,更新针对多个节点的观察到的HDD IOPS值。
在其他特征中,机器可读指令还将处理器配置为:动态地追踪针对多个节点中的每个节点的平均或最大HDD IOPS值。
在其他特征中,机器可读指令还将处理器配置为:不追踪针对多个虚拟机中的每个虚拟机的平均或最大HDD IOPS值。
在再一些其他特征中,一种方法包括接收在云计算系统中运行多个虚拟机的多个节点中的节点上部署虚拟机的请求。该方法还包括收集关于由多个节点在运行多个虚拟机时执行的硬盘驱动器(HDD)每秒输入输出操作(IOPS)的数据。该方法还包括选择多个节点中的一个节点,其具有的硬盘驱动器(HDD)每秒输入输出操作(IOPS)值小于针对运行多个虚拟机的多个节点的观察到的HDD IOPS值,观察到的HDD IOPS值是基于收集的数据生成的。该方法还包括接收针对虚拟机的预测HDD IOPS值,预测HDD IOPS值是基于所收集的数据生成的。该方法还包括基于针对所选节点的HDD IOPS值和针对虚拟机的预测HDD IOPS值来确定针对所选节点的新HDD IOPS值。该方法还包括:当针对所选节点的新HDD IOPS值小于或等于针对多个节点的观察到的HDD IOPS值时,在所选节点上实例化虚拟机。
在其他特征中,针对多个节点的观察到的HDD IOPS值包括针对多个节点的平均HDD IOPS值和针对多个节点的最大HDD IOPS值中的一个或多个。针对虚拟机的预测HDDIOPS值包括针对虚拟机的平均预测HDD IOPS值和针对虚拟机的最大预测HDD IOPS值中的一个或多个。
在其他特征中,该方法还包括当虚拟机在所选节点上被实例化时,更新针对所选节点的HDD IOPS值和针对多个节点的观察到的HDDIOPS值。
在其他特征中,该方法还包括当虚拟机在所选节点上终止时,更新针对所选节点的HDD IOPS值和针对多个节点的观察到的HDDIOPS值。
在其他特征中,该方法还包括当多个虚拟机中的一个虚拟机在多个节点上终止时,更新针对多个节点的观察到的HDD IOPS值。
在其他特征中,该方法还包括动态地追踪针对多个节点中的每个节点的平均或最大HDD IOPS值。
在其他特征中,该方法还包括不追踪针对多个虚拟机中的每个虚拟机的平均或最大HDD IOPS值。
在再一些其他特征中,一种系统包括处理器和存储器以及存储在存储器中的机器可读指令。当由处理器执行时,机器可读指令将处理器配置为接收在云计算系统中运行多个虚拟机的多个节点中的一个节点上部署虚拟机的请求。机器可读指令将处理器配置为接收指示所述虚拟机是第一类型或第二类型的预测,第一类型经得起有限量的性能下降,第二类型经不起性能下降。机器可读指令将处理器配置为接收关于由虚拟机对多个资源的利用的预测。机器可读指令将处理器配置为从多个节点中选择超额订阅节点,其中超额订阅节点是在其上总体而言不只是可用资源被分配给多个虚拟机中的一个或多个虚拟机的节点。机器可读指令将处理器配置为:当虚拟机是第一类型时,并且当由虚拟机和多个虚拟机中的一个或多个虚拟机对超额订阅节点上的每个资源的预测利用小于或等于预定限制时,将虚拟机分配给超额订阅节点。机器可读指令将处理器配置为当虚拟机是第二类型时,不将虚拟机分配给超额订阅节点。
在其他特征中,第一类型的虚拟机包括非面向用户或者可以以批处理模式在后台运行的虚拟机,并且第二类型的虚拟机包括面向用户的虚拟机。
在其他特征中,预定限制基于由虚拟机和多个虚拟机中的一个或多个虚拟机对超额订阅节点上的每个资源的最大预测利用。
在其他特征中,机器可读指令还将处理器配置为:收集关于由多个虚拟机中的第一和第二类型虚拟机对多个节点的资源的利用的数据,并且基于所收集的数据来生成指示虚拟机是第一类型或第二类型的预测。
在其他特征中,机器可读指令还将处理器配置为:收集关于由多个虚拟机对多个节点的资源的利用的数据,并且基于所收集的数据来生成关于由虚拟机对多个资源的利用的预测。
在其他特征中,机器可读指令还将处理器配置为在虚拟机被分配给超额订阅节点时,更新超额订阅节点上的每个资源的预测利用。
在其他特征中,机器可读指令还将处理器配置为在虚拟机在超额订阅节点上终止时,更新超额订阅节点上的每个资源的预测利用。
在其他特征中,机器可读指令还将处理器配置为在一个或多个虚拟机在超额订阅节点上终止时,更新超额订阅节点上的每个资源的预测利用。
在其他特征中,机器可读指令还将处理器配置为不追踪针对多个虚拟机中的每个虚拟机的平均或最大资源利用。
在再一些其他特征中,一种方法包括接收在云计算系统中运行多个虚拟机的多个节点中的一个节点上部署虚拟机的请求。该方法还包括收集关于由多个虚拟机对多个节点的资源的利用的数据。该方法还包括基于所收集的数据,接收指示虚拟机是第一类型或第二类型的预测,第一类型经得起有限量的性能下降,第二类型经不起性能下降。该方法还包括基于所收集的数据,接收关于由虚拟机对多个资源的利用的预测。该方法还包括从多个节点中选择超额订阅节点,其中超额订阅节点是在其上总体而言不只是可用资源被分配给多个虚拟机中的一个或多个虚拟机的节点。该方法还包括:当虚拟机是第一类型时,并且当由虚拟机和多个虚拟机中的一个或多个虚拟机对超额订阅节点上的每个资源的预测利用小于或等于预定限制时,将虚拟机分配给超额订阅节点。该方法还包括:当虚拟机是第二类型时,不将虚拟机分配给超额订阅节点。
在其他特征中,第一类型的虚拟机包括非面向用户或者可以以批处理模式在后台运行的虚拟机,并且第二类型的虚拟机包括面向用户的虚拟机。
在其他特征中,预定限制基于由虚拟机和多个虚拟机中的一个或多个虚拟机对超额订阅节点上的每个资源的最大预测利用。
在其他特征中,该方法还包括:当虚拟机被分配给超额订阅节点时,更新超额订阅节点上的每个资源的预测利用。
在其他特征中,该方法还包括:当虚拟机在超额订阅节点上终止时,更新超额订阅节点上的每个资源的预测利用。
在其他特征中,该方法还包括:当一个或多个虚拟机在超额订阅节点上终止时,更新超额订阅节点上的每个资源的预测利用。
在其他特征中,该方法还包括:不追踪针对多个虚拟机中的每个虚拟机的平均或最大资源利用。
根据详细描述、权利要求和附图,本公开的其他应用领域将变得显而易见。详细描述和具体示例仅旨在用于说明的目的,并不旨在限制本公开的范围。
附图说明
图1是用于云计算系统的包括预测引擎和虚拟机分配器的资源管理系统的一个示例的简化示意图。
图2是图1的资源管理系统的预测引擎的一个示例的简化示意图。
图3是利用图1的资源管理系统来部署虚拟机的云计算系统的一个简化示例的功能框图。
图4是图3中所示的数据中心的一个简化示例的功能框图,该数据中心利用图1的资源管理系统来部署虚拟机。
图5是图3中所示的集群的一个简化示例的功能框图。
图6示出了集群中的修复缓冲器和向外扩展/增长缓冲器的一个简化示例。
图7示出了不同类型的虚拟机的示例。
图8是示出用于使用平均/最大硬盘驱动器(HDD)每秒输入输出操作(IOPS)预测来最小化HDD绑定虚拟机的共同定位的方法的一个示例的流程图。
图9是示出用于使用虚拟机类别和平均/最大资源利用预测来实现超额订阅的方法的一个示例的流程图。
图10是示出用于在相同服务器上分配具有相似/不相似的寿命的虚拟机的方法的一个示例的流程图。
图11是示出用于使用部署大小预测来选择用于部署虚拟机并允许租户增长的适当集群的方法的一个示例的流程图。
图12是分布式网络系统的一个简化示例的功能框图。
图13是在图12的分布式网络系统中使用的客户端设备的一个简化示例的功能框图。
图14是在图12的分布式网络系统中使用的服务器的一个简化示例的功能框图。
在附图中,可以重复使用附图标记来标识相似和/或相同的元件。
具体实施方式
可以以许多方式处理云基础设施中资源利用不足的问题。例如在云计算系统中,虚拟机(VM)分配器可以基于VM的最大资源要求将VM紧密地打包到服务器上。如果VM分配器具有以下信息,则可以实现更紧密的打包:(1)关于实际VM资源需求的信息,而不仅仅是最大资源大小;和/或(2)VM将运行面向用户的工作负载还是后台/批处理工作负载的信息。该信息可以帮助云计算系统的资源管理器选择超额订阅物理服务器的VM共同定位,同时最小化VM干扰。此外,如果前端可以具有关于租户部署最终会变得多大的信息,为每个租户选择集群的云计算系统的前端可以减少为向外扩展保留的增长缓冲器的大小(下面参考图6说明)。
因此,如果关于未来VM和租户行为的准确预测可获得,则可以显著提高云计算系统中VM分配和资源管理的效率。可以利用关于VM和租户的历史数据来产生这样的预测。例如,历史数据可能指示许多VM角色随着时间的推移表现出非常一致的峰值CPU利用;随着时间的推移,执行面向用户的工作负载的VM角色一致地这么做;租户部署大小不太可能随时间变化很大;等等。在这些情况下,过去的行为是未来行为的合理预测器。
本公开的资源管理系统和方法从这些过去的行为中学习,并且在被请求时,产生对未来行为的预测。例如,在选择运行特定VM部署的服务器之前,VM分配器可以从资源管理系统获得关于VM分配器将要分配的VM的潜在行为的任何预测。利用这一信息,VM分配器可以做出更知情的选择集合。
图1示出了包括预测引擎2的资源管理系统1,预测引擎2可以向VM分配器4、功率控制器6和资源调整大小控制器8提供预测信息。基于由预测引擎2提供的针对VM的一个或多个预测,VM分配器4可以决定在何处放置VM。用于服务器机架的功率控制器6可以从预测引擎2中找出:当前运行的VM(VM角色)中的哪些VM(VM角色)可能是面向用户的,并且当在机架处发生功率封顶违规时(即,当机架处的功耗超过预定限制时),应该比非面向用户的VM接收针对机架的更大分数的功率预算。资源调整大小控制器8可受益于由预测引擎2提供的针对每个VM角色的相似信息以及关于先前观察到的资源利用峰值的数据,这可用于对分配给VM的资源调整大小。
图2图示了资源管理系统1的预测引擎2及其输入特征、学习技术和输出预测。预测引擎2可以使用数据挖掘和机器学习技术来标识可以在资源管理中利用的相关性。例如,预测引擎2可以接收客户、租户、分配和使用特征的大集合作为输入,以用于学习目的。这些特征的示例包括客户名称、客户类型(例如内部、外部)、部署类型(PaaS与IaaS)、部署时间、VM数量、VM角色、VM ID、VM资源利用和关闭时间。
在在线训练时段之后,资源管理系统1的其他组件可以用这些特征的子集查询预测引擎2,从而期望接收针对其他特征的预测。例如,在提供包括客户名称、客户类型、部署类型、部署时间和VM角色的信息时,VM分配器4可以查询预测引擎2。然后,预测引擎2可以向VM分配器4提供对该客户的部署可能变得多大以及这些VM的资源利用可能随时间增长多高的预测。相似地,功率控制器6可以用VM ID集合来查询预测引擎2,从而期望接收关于这些VM中的哪些VM可能是面向用户的预测。资源调整大小控制器8可以使用预测来对分配给VM的资源调整大小(即,调整分配给VM的资源的量)。
预测引擎2可以利用多种技术和算法来产生预测。例如,预测引擎2可以使用回归树来产生部署大小或VM寿命估计;预测引擎2可以对CPU利用时间序列使用快速傅立叶变换(FFT),以推断VM角色是否可能是面向用户的;等等。
预测引擎2可以是云计算系统的每个可用区域中的在线服务。预测引擎2可以实现离线和在线操作的组合。例如,预测CPU利用可以离线运行,并且可以产生在线更新的模型,其中短期租户操作发生在每个可用区域中。
由预测引擎2提供的预测的示例包括以下项:1)VM寿命;2)VM平均和最大资源利用(针对所有资源,而不仅仅是CPU);3)VM类别(潜在地面向用户的与非面向用户的);4)部署大小;5)使用模式(例如工作日期间使用但周末闲置);等等。
由预测引擎2提供的预测可用于改进云计算系统结构中的资源分配和VM放置质量。例如,在选择在其上运行特定VM部署的服务器之前,VM分配器4可以从预测引擎2获得关于VM分配器4将要分配的VM的潜在行为的预测(例如VM的期望寿命和期望最大资源利用)。利用该信息,VM分配器4可以做出更知情的选择集合。虽然本公开涉及最大利用,但是当最大利用不合适时,预测引擎2还可以预测高百分位利用。
基于预测,VM分配器4可以执行在物理服务器上的VM的放置,和/或前端可以执行集群选择。例如:1)VM寿命预测可用于在即将退役的服务器上启动瞬态VM;2)VM寿命预测可用于对具有相似(或多样)寿命的VM进行分组,以帮助可用性/更新;3)VM最大资源利用预测可用于对需要不同资源的VM进行分组(例如将I/O绑定的VM与CPU绑定的VM进行组合,将高CPU使用的VM与低CPU使用的VM组合,等等);4)VM类别预测可用于实现仅运行特定工作负载的那些服务器的超额订阅(即,将面向用户的VM与具有非面向用户的VM的超额订阅服务器进行分离);5)VM类别预测还可以用于产生可以帮助功率封顶的多样VM分配(例如,每个机壳可以具有某一数量的可以被功率封顶的非面向用户的VM);6)VM最大资源利用预测也可用于执行积极的超额订阅,而没有耗尽物理资源的风险;7)VM部署大小预测可用于选择将允许部署增长的集群;等等。
虽然预期更多使用案例,但是下面详细描述针对集群选择和服务器分配的以下具体使用案例。1)使用平均/最大硬盘驱动器(HDD)每秒输入/输出操作(IOPS)预测来最小化HDD绑定的VM的共同定位;2)使用VM类别和平均/最大利用预测来实现超额订阅;3)在相同的服务器上混合具有相似/不相似寿命的VM;4)使用部署大小预测来选择适当的集群并允许增长;以及5)在相同聚合(例如机壳)上混合不同类别的VM以帮助功率封顶。
本公开组织如下。在详细讨论具体使用案例之前,参考图3-图7描述云计算系统、集群、修复和增长缓冲器以及VM类型的示例。随后,参考图8-图11详细描述上述具体使用案例。图3中所示的云计算系统可以实现图1-图2中所示的资源管理系统1,并且可以实现参考图8-图11描述的具体使用案例。此后,参考图12-图14描述分布式网络系统的一个简化示例,其可用于实现图3中所示的云计算系统。
图3示出了根据本公开的云计算系统(CCS)10的一个简化示例。云计算系统10包括云控制器12和至少一个数据中心14。虽然为简单起见仅示出了一个数据中心14,但是云控制器12可以与多个数据中心接口。此外,虽然数据中心14被示为对于云控制器12是本地的,但是一个或多个数据中心可以在地理上远离云控制器12,可以位于不同的地理位置(例如在不同的时区、不同的国家或者大陆等),并且可以经由各种网络与云控制器12通信。
每个数据中心14包括多个结构控制器32-1、32-2、...、32-n(统称结构控制器32)和对应的集群34-1、34-2、...、34-n(统称集群34)。每个结构控制器32控制相应的集群34。每个集群34包括多个机架(在图4-图5中示出),并且每个机架包括多个节点(在图5中示出),节点在整个本公开中也称为服务器、主机或机器。每个结构控制器32与分配器36相关联,分配器36分配在集群34内的资源,以用于在集群34上托管的客户服务的实例。
云控制器12包括门户20和软件开发工具包(SDK)22,客户可以使用该软件开发工具包来选择资源并请求服务部署。云控制器12还包括云资源管理器24、计算资源提供器26和前端28。前端28与结构控制器32接口。云资源管理器24接收客户选择并将客户选择转发给计算资源提供器26。计算资源提供器26基于客户选择来生成租户模型。计算资源提供器26根据基于客户选择生成的租户模型来向客户服务提供资源。计算资源提供器26通过与云存储装置(Xstore)30、网络资源提供器31和结构控制器32接口来提供存储、联网和计算资源。计算资源提供器26和结构控制器32可以至少部分地实现图1-图2中所示的资源管理系统1。
图4示出了数据中心(例如图3中示出的数据中心14)的一个简单示例。数据中心14包括VM分配器50和集群34。VM分配器50可以实现图1的VM分配器4。VM分配器50包括集群选择器52和多个准入控制器54-1、54-2、...、54-n(统称为准入控制器54)。每个准入控制器54与对应的集群34相关联。每个集群34包括分配和修复控制器60(被示出为分配和修复控制器60-1、60-2、...、和60-n;每个集群一个分配和修复控制器)和一个或多个节点机架62(也称为服务器、主机或机器;并被示出为机架62-1、62-2、...、62-n)。分配和修复控制器60可以实现图3的VM分配器36。
分配VM可以是多级分配操作。VM分配器50首先与对应的准入控制器54相关联地选择要将VM分配到其中的集群34之一。在VM分配器50选择集群34之一以分配VM之后,取决于更新和故障域的数量以及客户指定的其他资源,并基于预测引擎2提供的预测,所选择的集群34的分配和修复控制器60将VM放置在所选集群34中的一个或多个机架62中的一个或多个节点上。
基于集群34中的VM活动,集群和服务更新控制器56向集群选择器52和资源管理系统1提供更新,资源管理系统1可以部分地由VM分配器50和分配和修复控制器60实现。例如VM活动可以包括集群34中的一个或多个VM的激活和终止。集群和服务更新控制器56还可以向集群选择器52和资源管理系统1提供关于由于服务向外扩展导致的增长缓冲器的利用以及由于节点/机架故障导致的修复缓冲器的利用的更新,这将在下面参考图6进行说明。
图5示出了集群(例如图3-图4中所示的集群34)的一个示例。每个集群34包括多个机架62。每个机架62包括机架控制器70和多个节点72。每个机架控制器70包括功率控制器(例如,图1中所示的功率控制器6),功率控制器控制向机架62中的多个节点72的功率分配。
图6示出了集群(例如图3-图5中所示的集群34)中的向外扩展/增长缓冲器和修复缓冲器的一个示例。向外扩展/增长缓冲器和修复缓冲器中的每一个缓冲器可以包括集群34内的多个节点72。如果节点72或机架62在集群34中发生故障,则在故障组件上运行的VM使用修复缓冲器中的多个节点被修复。如果服务需要向外扩展(即,扩张超出分配的资源,这需要除了分配的资源之外的附加资源),则额外的VM被放置在集群34内。为了解决这些情况中的一者或两者(修复和/或向外扩展),足够的节点被分配给相应的缓冲器。
当在集群34中达到新的部署阈值时,集群34中不可能发生新的VM部署。当在集群34中达到向外扩展阈值时,现有的租户不能再在集群34中增长。针对增长的任何尝试导致向外扩展故障。如果在集群34中修复缓冲器耗尽,则任何节点/机架故障无法被修复,并且发生修复故障。设置阈值确定缓冲器的大小(例如太小、太大或平衡)。基于来自资源管理系统1的预测,可以优化阈值并且可以使故障减到最少。
图7示出了取决于其资源要求的不同类型的VM的示例。这些仅是示例,并且预期其他类型的VM类别。由于资源需求不同,VM的类型或类别是分配决策中的重要考虑因素。例如,资源管理系统1可以收集和分析许多类型的VM的数据。基于该数据,资源管理系统1可以使用关于要部署的VM的类型的信息,并预测VM将是面向用户还是非面向用户的、VM的寿命等等。
因此,当由云计算系统10实现时,资源管理系统1可以分析历史租户大小模式、VM寿命模式、资源利用模式等,并且从这些模式与客户、部署时间、VM类型、VM数量等的相关性中进行学习。基于分析和相关性,资源管理系统1可以生成上述各种预测,其可以用于改进云计算系统10中的VM分配和资源管理。例如,预测可以用于:基于如所预测的集群部署的预期全大小,改善租户向集群的分配;将具有相似(如预测的)预期时间的VM分配给相同的服务器;通过基于预测来混合两种类型的VM,对非面向用户的VM进行功能封顶,同时允许面向用户的VM使用全功率;等等。下面参考上述具体使用案例来详细说明资源管理系统1的这些和其他特征。
图8-图11描述了用于实现具体使用案例的方法。在下面对方法的描述中,术语控件指的是下面参考图12-图14描述的客户端应用366和服务器应用386中的一个或多个,其实现资源管理系统1的一个或多个组件以及下面描述的使用案例的一个或多个方法的全部或一些方面。换句话说,在下面对方法的描述中使用的术语控件表示由图3中示出的云计算系统10的一个或多个组件执行以执行所描述的功能的代码或指令。
图8示出了用于第一使用案例的方法100,其涉及使用平均/最大HDD IOPS预测,来最小化HDD绑定VM的共同定位。在描述方法100之前,接下来是对第一使用案例的描述。第一使用案例通常取决于对VM平均和最大资源利用(对于所有资源,不仅仅是CPU)的预测,特别是取决于对每个主机的当前平均和最大HDD IOPS的预测。
HDD IOPS通常是主机上的性能关键资源。由于HDD IOPS导致的VM之间的干扰可能严重降低VM的性能。因此,由方法100提供的改进寻求将主机上的VM的组合平均和/或最大HDD IOPS保持在集群的平均和/或最大HDD IOPS周围。为了实现方法100,将规则添加到VM分配器4,以将每个服务器的预测的平均和/或最大HDDIOPS与相应的集群范围的平均值(服务器平均值的平均值和/或服务器最大值的平均值)进行比较。具有太高的预测平均和/或最大HDDIOPS的主机被跳过(即,不被视为用于部署VM的可能候选者)。每次将VM分配给主机或VM终止于主机时,按主机和集群范围的平均和/或最大HDD IOPS被更新。有效地,方法100可以展开HDD绑定的VM,从而平衡HDD IOPS并减少VM之间干扰的机会。
接下来是实现以上规则的伪代码的一个示例。以下代码假定平均和最大HDD IOPS两者被追踪。
在VM分配后执行以下操作。
update_host_iops_avg();//这将预测平均值添加到最近观察到的针对主机的平均值
update_host_iops_max();//这将预测最大值添加到最近观察到的针对主机的最大值
update_cluster_iops_avg();//这相应地更新服务器平均值的集群范围平均值
update_cluster_iops_max();//这相应地更新服务器最大值的集群范围平均值
当VM终止时,执行以下操作。
update_host_iops_avg();//这从最近观察到的平均值中减去针对VM的预测平均值
update_host_iops_max();//这从最近观察到的最大值中减去针对VM的预测最大值
update_cluster_iops_avg();//这相应地更新服务器平均值的集群范围平均值
update_cluster_iops_max();//这相应地更新服务器最大值的集群范围平均值
一种替代方法是将具有(1)最低当前平均和/或最大HDD IOPS以及(2)用于新VM的足够可用资源的N个主机标记为有资格。这种方法不需要预测。但是,这种方法需要当前的按主机平均和/或最大HDD IOPS被重复排序。
注意,上述基于规则的方法不需要保持追踪每个VM的实际平均和/或最大HDDIOPS。可以从预测引擎2获得每个VM的预测平均和/或最大HDD IOPS值。该方法动态地追踪每个主机的平均和/或最大HDD IOPS,其从CCS 10上运行的其他服务可获得。预测中的任何错误至少部分地通过该追踪得到校正,因为预测不断被实际观察所取代。在预测引擎2在其预测中具有低置信度的情况下,可以完全跳过该规则,并且可以将仍在考虑的所有主机标记为有资格用于(例如另一个使用案例的)下一个规则。在这种低置信度的情况下,不执行与上述VM分配和终止相关联的操作。
现在详细描述示出方法100的图8。在102处,控件从运行VM的节点收集关于HDDIOPS的数据。在104处,控件基于所收集的数据生成针对节点的观察到的HDD IOPS值。观察到的HDD IOPS值可以是平均或最大HDD IOPS值或两者。在106处,控件接收在节点之一上部署VM的请求。在108处,控件接收针对VM的预测HDD IOPS值。基于所收集的数据来生成预测HDD IOPS值。预测HDD IOPS值可以是平均或最大HDD IOPS值或两者。
在110处,控件选择具有比针对节点的观察到的HDD IOPS值小的HDD IOPS值的节点,作为用于部署VM的目标节点。在112处,基于所选节点的HDD IOPS值和VM的预测HDDIOPS值,控件确定针对所选节点的新HDD IOPS值。在114处,控件确定针对所选节点的新HDDIOPS值是否大于针对节点的观察到的HDD IOPS值。在116处,如果针对所选节点的新HDDIOPS值大于针对节点的观察到的HDD IOPS值,则控件确定是否选择另一节点作为用于部署VM的目标节点。如果选择另一节点作为用于部署VM的目标节点,则控件返回到110。如果未选择另一节点作为用于部署VM的目标节点,则控件结束。
在118处,如果在114处针对所选节点的新HDD IOPS值不大于针对节点的观察到的HDD IOPS值,则控件在所选节点上实例化或部署VM。在120处,控件基于VM的分配/终止来更新所选节点的HDDIOPS值和针对节点的观察到的HDD IOPS值。
图9示出了用于第二使用案例的方法150,其涉及使用VM类别和平均/最大资源利用预测来实现超额订阅。在描述方法150之前,接下来描述第二使用案例。第二使用案例取决于对VM平均和最大资源利用(对于所有资源,不仅仅是CPU)的预测,并且取决于对VM类别的预测。
在超额订阅中,来自非生产订阅的VM通常被分配给相同的主机,直到物理CPU核的超额订阅的最大水平。可以通过以下项来改进超额订阅管理:(1)使用比订阅水平处的生产和非生产更细粒度的VM分类,以及(2)在做出分配决策的同时考虑VM的预期资源利用。用于改进超额订阅管理的方法150使用按角色VM类别(可能面向用户/交互与非面向用户/后台/批处理),按角色VM类别由预测引擎2使用对应VM角色的CPU利用的过去历史来预测(其中VM角色包括其订阅和部署ID)。用于改进超额订阅管理的方法150利用针对重要资源(不仅是CPU核,而且还有如HDD IOPS的其他参数)的平均和/或最大资源利用预测,并确保VM分配不可能耗尽超额订阅主机的物理资源。
接下来是实现方法150的伪代码的一个示例。以下代码假定目的是限制资源的预测组合最大利用(即,限制最大预测利用的总和)。
//MAX_CPU_OVERSUBSCRIPTION:可超额订阅主机的最大可允许CPU超额订阅比率
//MAX_ACCEPTABLE_UTILIZATION[i]:可超额订阅主机的最大可允许资源i利用
if(new_vm_pred_user_facing)
将仍被考虑的具有用于VM的空间的所有非可超额订阅主机标记为有资格;
在VM分配后执行以下操作。
if(!new_vm_pred_user_facing){
update_host_CPU_allocation();//将新VM的CPU分配添加到host_CPU_allocation
update_host_pred_max_util();//针对所有我们追踪的资源,添加预测的最大利用
}
当VM终止时,执行以下操作。
if(!vm_pred_user_facing){
update_host_CPU_allocation();//从host_CPU_allocation中减去VM的CPU分配
update_host_pred_max_util();//针对所有我们追踪的资源,减去预测的最大利用
}
该方法不要求分配器追踪每个VM(或甚至每个主机)的实际平均和/或最大资源利用。可以从预测引擎2获得每个VM的预测平均值和/或最大值及其分类。预测引擎2在VM类别中的预测错误可以造成面向用户的VM被分配给超额订阅主机。但是,VM角色类别通常随时间是一致的。因此,误预测的可能性非常小。然而,即使在罕见的类别误预测情况下,也可以使用相对较低的最大利用限制来防止不良行为。VM的最大利用中的预测错误不太可能引起问题,除非预测引擎2低估了许多共同定位VM的这些值(共同定位VM的最大利用可能不会同时发生)。如果意图是限制组合的预测平均利用,而不是限制组合的预测最大利用,则利用误预测将更容易出现问题。在预测引擎2对其对该VM的预测具有低置信度的情况下,可以安全地假设该VM将面向用户并且将表现出高利用。
现在详细描述示出方法150的图9。在152处,控件从运行虚拟机的多个节点收集关于按VM类别(例如面向用户、非面向用户)的节点的资源利用的数据。在154处,控件接收在节点之一上部署VM的请求。在156处,基于所收集的数据,控件预测VM是否是面向用户或者非面向用户的,并且预测VM的平均/最大资源利用。在158处,基于预测,如果VM是面向用户的,则控件结束。在160处,基于预测,如果VM是非面向用户的,则控件选择超额订阅节点作为用于部署VM的目标。
在162处,控件确定共同定位VM所选择的超额订阅节点上的每个资源的预测使用是否大于预定限制。在164处,如果在162处共同定位VM所选择的超额订阅节点上的每个资源的预测使用大于预定限制,则控件确定是否选择另一超额订阅节点作为用于部署VM的目标节点。如果选择另一超额订阅节点作为用于部署VM的目标节点,则控件返回到160。如果未选择另一超额订阅节点作为用于部署VM的目标节点,则控件结束。
在166处,如果在162处共同定位VM所选择的超额订阅节点上的每个资源的预测使用不大于预定限制,则控件在所选择的超额订阅节点上实例化或部署VM。在168处,控件基于VM的分配/终止来更新超额订阅节点上的每个资源的预测利用。
图10示出了用于第三使用案例的方法200,其涉及在相同服务器上分配具有相似/不相似寿命的VM。在描述方法200之前,接下来描述第三使用案例。第三使用案例取决于对VM寿命的预测。
大多数VM存活相对较短的时间(例如小于1小时)。鉴于这种观察,VM分配器4可以实现第一策略以使短寿命VM共同定位(同时将它们与长寿命的VM分离),从而可以快速释放大多数主机以进行维护(例如软件更新),而不需要VM迁移。替代地,VM分配器4可以实现第二策略以共同定位具有不相似寿命的VM,使得每个主机将仅具有在需要维护时需要被迁移的少量VM(长寿命VM)。
接下来是实现方法200的伪代码的一个示例。以下代码适用于上述的任一共同定位策略。在以下代码中,“接近”意味着相差小于预定数量的标准差(例如两个标准差)。
在VM分配后执行以下操作。
compute_host_avg_and_two_std_dev();//基于新VM的预测寿命来更新主机统计信息
当VM终止时,执行以下操作。
compute_host_avg_and_two_std_dev();//基于已完成VM的预测寿命来更新主机统计信息
上述方法递增地追踪VM的平均寿命和每个主机上的对应标准偏差。当考虑将VM分配给主机时,将VM的预测寿命与主机处的预测平均VM寿命进行比较。如果策略是将短寿命VM和长寿命VM进行分离,则在VM的预测寿命与主机处的当前VM寿命接近(例如在一个或两个标准偏差内)的情况下,将VM分配给主机。如果策略是在每个主机上混合短寿命VM和长寿命VM,则在VM的预测寿命远离主机处的当前VM寿命(即,相差超过预定数量的标准偏差(例如两个标准偏差))的情况下,将VM分配给主机。
注意,该方法不要求分配器追踪每个主机处的所有VM的预测(或实际)寿命。可以使用当前预测的平均寿命以及每个时间点的预测平均值与预测寿命之间的平方差的运行总和,来简单地递增地计算标准偏差。可以从预测引擎2获得寿命预测。寿命误预测可以导致与期望的共同定位特性的偏差。然而,只有在预测引擎2一致地误预测寿命的情况下,这些影响才可能是显著的,这不太可能。在低置信度预测的情况下,可以跳过上述分配和终止时间处的规则和更新(即,要分配的VM不计入其主机的平均值和标准偏差)。
现在详细描述示出方法200的图10。在202处,控件收集关于在多个节点上运行的虚拟机的寿命的数据。在204,控件接收在节点之一上部署VM的请求。在206处,基于所收集的数据,控件预测要部署的VM的寿命,并指示在每个节点上运行的VM的平均寿命。在208,控件确定策略是否要共同定位相似或不相似的虚拟机(即,具有相似或不相似的寿命的VM)。
在210处,如果策略是将具有相似寿命的VM共同定位,则控件确定要部署的虚拟机的预测寿命是否接近所选节点的平均寿命(例如在该平均寿命的两个标准偏差内)。如果要部署的虚拟机的预测寿命不接近所选节点的平均寿命,则控件结束。在212处,如果要部署的虚拟机的预测寿命接近所选节点的平均寿命,则控件将VM分配或部署在具有相似VM(即,具有与要部署的VM的预测寿命相似的寿命的VM)的所选节点上。
在214处,如果策略是将具有不相似寿命的VM共同定位,则控件确定要部署的虚拟机的预测寿命是否远离所选节点的平均寿命(即,不在预定数量的标准偏差之内或相差超过预定数量的标准偏差(例如两个标准偏差))。如果要部署的虚拟机的预测寿命不远离所选节点的平均寿命,则控件结束。在216处,如果要部署的虚拟机的预测寿命远离所选节点的平均寿命,则控件将VM分配或部署在具有不相似VM(即,具有与要部署的VM的预测寿命不相似的寿命的VM)的所选节点上。
图11示出了用于第四使用案例的方法250,其涉及使用部署大小预测来选择适当的集群并允许租户增长。在描述方法250之前,接下来描述第四使用案例。第四使用案例取决于部署大小的预测。
租户通常不能增长超过其首次被指派的集群的容量。方法250最小化由租户增长导致的部署失败,同时允许降低按集群增长缓冲器的大小。方法250选择适当的(多个)集群进行部署。方法250利用来自预测引擎2的部署大小预测,来标记具有足够可用资源的集群,作为每个新部署的有资格目标。如果没有集群具有足够的资源,则方法250选择具有最大可用资源量的集群。
接下来是实现方法250的伪代码的一个示例。
在VM分配后执行以下操作。
update_cluster_free_resources();//从集群的空闲资源中减去VM的大小
当VM终止时,执行以下操作。
update_cluster_free_resources();//将VM的大小添加到集群的空闲资源
集群选择基础设施通常维护关于每个集群中的可用资源的信息。可以从预测引擎2获得部署的预测大小。部署大小的预测错误可能导致选择具有不足资源的集群。这种情况可以与降低增长缓冲器大小的能力进行权衡。根据误预测率,可以降低增长缓冲器的大小,而不会显著增加部署失败。
现在详细描述示出方法250的图11。在252处,控件收集在多个集群上运行的VM的资源分配数据。在254处,控件接收在集群之一上部署租户的请求。在256处,基于所收集的数据,控件预测租户的部署大小(即,针对其所有VM租户将需要的最大资源量)。换句话说,预测将指示租户的VM的全部署最终将需要的最大资源量。因此,部署大小是最终将需要为相同租户部署中的全VM集合分配的最大资源量。此外,当即将在集群中创建/放置/指派租户部署的第一VM时,预测是相关的。此后,将在为租户部署的第一VM选择的相同集群中创建/放置/指派相同租户部署的所有后续VM。
在258处,控件确定具有大于租户的预测部署大小的未分配资源量的集群是否可用。在260处,如果具有大于租户的预测部署大小的未分配资源量的集群可用,则控件在该集群上部署租户(或更具体地,租户的第一VM)。
在264处,如果具有大于租户的预测部署大小的未分配资源量的集群不可用,则控件选择具有最大未分配资源量的集群,并在该集群上部署租户(或更具体地,租户的第一VM)。
在266处,在租户在258或264处被部署之后,控件确定由于租户增长导致的资源需求是否大于预测部署大小或集群上的可用资源(以较小者为准)。在268处,如果由于租户增长导致的资源需求大于预测部署大小或集群上的可用资源,则控件确定具有足够的资源的另一集群是否可用来支持由于租户增长而增加的需求。在270处,如果具有足够资源的另一集群可用于支持由于租户增长而增加的需求,则控件将租户迁移到新集群。由于基于部署大小预测可以跨集群智能地放置租户部署,因此系统设计者可以更好地分配或调整(例如降低)为租户增长保留的资源量(即,增长缓冲器的大小)。
另外,第五使用案例涉及在相同聚合(例如机壳)上混合VM类别,以帮助功率封顶。此使用案例取决于VM类别预测(即,VM是面向用户还是非面向用户的)。
对面向用户的VM进行功率封顶可能降低其性能,因此是不期望的。相反,如果必要,非面向用户的VM可以在满足功率预算所需的任何程度上进行功率封顶。在相同聚合上混合VM类别确保了:可能需要功率封顶的任何聚合,足够的非面向用户的VM可用于最小化对面向用户的VM进行功率封顶的需求。此外,由于功率封顶通常仅可以在全主机的粒度处应用,因此面向用户和非面向用户的VM可以被分离在聚合内的不同主机上。
该改进适用于任何聚合,例如任何机壳、任何机架、任何行。但是,以下讨论涉及其在机壳级别的应用,因为这是当前功率可以被封顶(通过对主机功率封顶)的唯一级别。在这种情况下,分配器可以将非面向用户的VM跨不同机壳进行散布,同时将它们集中在每个机壳内不与面向用户的VM共享的主机子集上。因此,每个机壳控制器将具有一些其可以在对其机架进行功率封顶的需求出现时利用的功率富余部分。
接下来是实现上述方法的伪代码的一个示例。
在VM分配后执行以下操作。
当VM终止时,执行以下操作。
可以从预测引擎2获得任何VM的预测类别。VM类别中的预测错误可能导致面向用户(非面向用户)的VM被分配在不太理想的机壳中,或与非面向用户(面向用户)的VM被分配在相同节点上。除非预测引擎2一致地误预测类别,否则这些情况都不会是重要问题。但是,VM角色类别通常随着时间的推移是一致的,因此误预测的可能性非常小。为保守起见,可以就好像VM将面向用户一样来处理低置信度预测。
上述改进可一般地描述如下。分配器可以接收在云计算系统中运行多个虚拟机的多个节点之一上部署虚拟机的请求,其中提供给多个节点的总功率量被限制为小于或等于预定值。分配器可以接收指示虚拟机是以下类型的预测:第一类型,该第一类型经得起有限量的性能下降(例如非面向用户的VM);或者第二类型,该第二类型经不起性能下降(例如面向用户的VM)。当虚拟机是第二类型的并且多个虚拟机中的至少一个虚拟机是第一类型的时,分配器可以将虚拟机分配给多个节点之一。因此,当多个节点的总功率需求超过预定值时,功率控制器可以减少可用于第一类型的多个虚拟机中的一个或多个虚拟机的功率量。
下面是其中本公开的系统和方法可以被实现的分布式计算环境的简单示例。贯穿本公开,对诸如服务器、客户端设备、应用等术语的引用仅出于说明的目的。术语“服务器”和“客户端设备”应该被广泛地理解为表示包括一个或多个处理器和存储器的计算设备,这些处理器和存储器被配置为执行机器可读指令。术语“应用”和“计算机程序”应该被广泛理解为表示由计算设备可执行的机器可读指令。
图12示出了分布式网络系统300的一个简化示例。分布式网络系统300包括网络310、一个或多个客户端设备320-1、320-2、......和320-N(统称为客户端设备320)(其中N是大于或等于1的整数)、和服务器330。网络310可以包括局域网(LAN)、诸如因特网的广域网(WAN)、或其他类型的网络(集体示为网络310)。虽然仅示出了一个服务器,但是分布式网络系统300可以包括多个服务器。客户端设备320经由网络310与服务器330通信。客户端设备320和服务器330可以使用到网络310的无线和/或有线连接来连接到网络310。
一个或多个服务器330和客户端设备320可以实现图3中所示的云计算系统10的一个或多个组件。例如,一个服务器330可以实现云控制器12或云控制器12的计算资源提供器26,而一个或多个客户端设备320可以实现结构控制器32。替代地,一个或多个服务器330可以实现云控制器12的一个或多个组件。预期许多不同的实现配置。
服务器330可以向客户端设备320提供多个服务。例如,服务器330可以执行多个软件应用。服务器330可以托管由多个软件应用利用并且由客户端设备320使用的多个数据库。此外,服务器330和客户端设备320可以执行实现资源管理系统1的一个或多个组件和用于上述使用案例的一种或多种方法的应用。
图13示出了客户端设备320的一个简化示例。客户端设备320通常可以包括中央处理单元(CPU)或处理器350、一个或多个输入设备352(例如键盘、触摸板、鼠标等)、包括显示器356的显示子系统354、网络接口358、存储器360和大容量存储装置362。
网络接口358经由网络310将客户端设备320连接到分布式网络系统300。例如,网络接口358可以包括有线接口(例如以太网接口)和/或无线接口(例如Wi-Fi、蓝牙、近场通信(NFC)或其他无线接口)。存储器360可以包括易失性或非易失性存储器、缓存或其他类型的存储器。大容量存储装置362可以包括闪存、硬盘驱动器(HDD)或其他大容量存储设备。
客户端设备320的处理器350执行操作系统(OS)364和一个或多个客户端应用366。客户端应用366包括经由网络310将客户端设备320连接到服务器330的应用。客户端设备320经由网络310访问由服务器330执行的一个或多个应用。客户端应用366还可以包括实现资源管理系统1的一个或多个组件以及用于上述使用案例的一个或多个方法的全部或一些方面的应用。
图14示出了服务器330的一个简化示例。服务器330通常包括一个或多个CPU或处理器370、一个或多个输入设备372(例如键盘、触摸板、鼠标等)、包括显示器376的显示器子系统374、网络接口378、存储器380和大容量存储装置382。
网络接口378经由网络310将服务器330连接到分布式网络系统300。例如,网络接口378可以包括有线接口(例如以太网接口)和/或无线接口(例如Wi-Fi、蓝牙、近场通信(NFC)或其他无线接口)。存储器380可以包括易失性或非易失性存储器、缓存或其他类型的存储器。大容量存储装置382可以包括闪存、一个或多个硬盘驱动器(HDD)或其他大容量存储设备。
服务器330的处理器370执行操作系统(OS)384和一个或多个服务器应用386。服务器应用386可以包括实现资源管理系统1的一个或多个组件以及用于上述使用案例的一个或多个方法的全部或一些方面的应用。大容量存储装置382可以存储一个或多个数据库388,一个或多个数据库388存储由服务器应用386使用以执行相应功能的数据结构。
前述描述在本质上仅仅是说明性的,决不旨在限制本公开、其应用、或者用途。本公开的广泛教导可以以各种形式来实现。因此,虽然本公开包括具体的示例,但本公开的真正范围不应该受到如此限制,这是因为在研究了附图、说明书、以及所附权利要求书之后,其它修改会变得显见。应当理解,方法中的一个或多个步骤可以以不同的顺序(或同时)被执行,而不会改变本公开的原理。进一步地,尽管实施例中的每个实施例在上面被描述为具有某些特征,但针对本公开的任何实施例描述的那些特征中的任何一个或多个特征都可以被实现在其它实施例中的任何实施例中和/或与其它实施例中的任何实施例的特征相组合,即使没有明确地描述该组合。换言之,所描述的实施例并不相互排斥,并且一个或多个实施例与另一实施例的置换仍然在本公开的范围内。
元件之间(例如,模块、电路元件、半导体层等之间)的空间和功能关系使用不同的术语来描述,包括“连接”、“啮合”、“耦合”、“相邻”、“紧挨着…”、“在…顶部”、“上方”、“下方”和“设置”。除非明确地被描述为“直接”,否则当在上述公开中描述第一元件和第二元件之间的关系时,该关系可以是在第一元件和第二元件之间不存在其它中间元件的直接关系,但也可以是在第一元件和第二元件之间存在(空间上或者功能上)一个或多个中间元件的间接关系。本文使用的短语“A、B和C中的至少一个”应该被解释为意指使用非排他性逻辑“或”的逻辑(A或B或C),并且不应该被解释为意指“A中的至少一个、B中的至少一个、和C中的至少一个”。
在图中,箭头的方向,如由箭头头部所指示,通常表示该图示所关注的信息流(诸如数据或指令)。例如,当元件A和元件B交换各种信息但从元件A传输至元件B的信息与图示有关时,箭头可从元件A指向元件B。该单向箭头并不意味着没有其它信息从元件B传输至元件A。进一步地,针对从元件A发送至元件B的信息,元件B可以向元件A发送针对该信息的请求或接收对该信息的确认。
术语“存储器”是术语“计算机可读介质”或“机器可读介质”的子集。如本文使用的术语“计算机可读介质”或“机器可读介质”不涵盖通过介质(诸如在载波上)传播的暂时的电信号或者电磁信号;术语“计算机可读介质”或“机器可读介质”由此可被认为是有形并且非暂时性的。非暂时性有形的计算机可读介质或机器可读介质的非限制性的示例是非易失性存储器电路(诸如,闪存电路、可擦除可编程只读存储器电路、或者掩膜式只读存储器电路)、易失性存储器电路(诸如,静态随机存取存储器电路或者动态随机存取存储器电路)、磁性存储媒体(诸如,模拟或者数码磁带或者硬盘驱动器)、以及光学存储媒体(诸如,CD、DVD、或者蓝光碟)。
在本申请中,被描述为具有特定属性或执行特定操作的装置元件被专门配置来具有那些特定属性和执行那些特定操作。具体地说,执行动作的元件的描述意味着该元件被配置为执行该动作。元件的配置可以包括对元件进行编程,诸如通过将指令编码在与该元件相关联的非暂时性的有形的计算机可读介质上。
在本申请中所描述的装置和方法可以部分或者完全地由专用计算机来实现,通过配置通用计算机以执行被体现在计算机程序中的特定的功能来创建专用计算机。以上描述的功能块、流程图组件、和其它元件用作软件规范,该软件规范可以由技师或者程序员的常规作业译为计算机程序。
计算机程序包括被储存在至少一个非暂时性的有形的计算机可读介质上的处理器可执行指令。计算机程序也可以包括或者依赖于所存储的数据。计算机程序可以涵盖与专用计算机的硬件相互作用的基本输入/输出系统(BIOS)、与专用计算机的特定设备相互作用的设备驱动程序、一个或者多个操作系统、用户应用、后台服务、后台应用等。
计算机程序可以包括:(i)将被解析的描述性文本,诸如HTML(超文本标记语言)、XML(可扩展标记语言)、或JSON(JavaScript对象表示法);(ii)汇编代码;(iii)由编译器从源代码生成的对象代码;(iv)用于由解释器执行的源代码;(v)用于由即时编译器编译和执行的源代码,等。仅作为示例,源代码可以使用来自语言的语法而被编写,语言包括C、C++、C#、Objective C、Swift、Haskell、Go、SQL、R、Lisp、Fortran、Perl、Pascal、Curl、OCaml、HTML5(第五版本超文本标记语言)、Ada、ASP(动态服务器页面)、PHP(PHP:超文本预处理器)、Scala、Eiffel、Smalltalk、Erlang、Ruby、VisualLua、MATLAB、SIMULINK、以及
根据35 U.S.C.§112(f)的含义,在权利要求书中记载的任何元件都不旨在成为部件加功能元件,除非使用短语“用于...的部件”,或在方法权利要求中使用短语“用于…的操作”或“用于…的步骤”来明确记载元件。
Claims (16)
1.一种系统,包括:
处理器和存储器;以及
存储在所述存储器中的机器可读指令,当由所述处理器执行时,所述机器可读指令将所述处理器配置为:
接收在云计算系统中运行多个虚拟机的多个节点中的节点上部署虚拟机的请求;
选择所述多个节点中的一个节点,所述一个节点所具有的硬盘驱动器HDD每秒输入输出操作IOPS值小于针对运行所述多个虚拟机的所述多个节点的观察到的HDDIOPS值,所述观察到的HDDIOPS值包括针对所述多个节点的最大HDDIOPS值;
接收针对所述虚拟机的预测HDDIOPS值;
基于针对选择的所述节点的所述HDDIOPS值和针对所述虚拟机的所述预测HDDIOPS值,来确定针对选择的所述节点的新HDDIOPS值,所述预测HDDIOPS值包括针对所述虚拟机的最大预测HDDIOPS值;以及
当针对选择的所述节点的所述新HDDIOPS值小于或等于针对所述多个节点的所述观察到的HDDIOPS值时,在选择的所述节点上实例化所述虚拟机。
2.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:
收集关于由所述多个节点在运行所述多个虚拟机时执行的HDD IOPS的数据;以及
基于收集的所述数据来生成针对所述多个节点的所述观察到的HDDIOPS值。
3.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:
收集关于由所述多个节点在运行所述多个虚拟机时执行的HDD IOPS的数据;以及
基于收集的所述数据来生成针对所述虚拟机的所述预测HDD IOPS值。
4.根据权利要求1所述的系统,其中:
针对所述多个节点的所述观察到的HDDIOPS值包括针对所述多个节点的平均HDDIOPS值;以及
针对所述虚拟机的所述预测HDDIOPS值包括针对所述虚拟机的平均预测HDDIOPS值。
5.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:当所述虚拟机在选择的所述节点上被实例化时,更新针对选择的所述节点的所述HDDIOPS值和针对所述多个节点的所述观察到的HDDIOPS值。
6.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:当所述虚拟机在选择的所述节点上终止时,更新针对选择的所述节点的所述HDDIOPS值和针对所述多个节点的所述观察到的HDDIOPS值。
7.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:当所述多个虚拟机中的一个虚拟机在所述多个节点上终止时,更新针对所述多个节点的所述观察到的HDDIOPS值。
8.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:动态地追踪针对所述多个节点中的每个节点的平均或最大HDDIOPS值。
9.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:不追踪针对所述多个虚拟机中的每个虚拟机的平均或最大HDDIOPS值。
10.一种方法,包括:
接收在云计算系统中运行多个虚拟机的多个节点中的节点上部署虚拟机的请求;
收集关于由所述多个节点在运行所述多个虚拟机时执行的硬盘驱动器HDD每秒输入输出操作IOPS的数据;
选择所述多个节点中的一个节点,所述一个节点所具有的硬盘驱动器HDD每秒输入输出操作IOPS值小于针对运行所述多个虚拟机的所述多个节点的观察到的HDDIOPS值,所述观察到的HDDIOPS值是基于收集的所述数据生成的,并且所述观察到的HDDIOPS值包括针对所述多个节点的最大HDDIOPS值;
接收针对所述虚拟机的预测HDDIOPS值,所述预测HDDIOPS值是基于收集的所述数据生成的,并且所述预测HDDIOPS值包括针对所述虚拟机的最大预测HDDIOPS值;
基于针对选择的所述节点的所述HDDIOPS值和针对所述虚拟机的所述预测HDDIOPS值,来确定针对选择的所述节点的新HDD IOPS值;以及
当针对选择的所述节点的所述新HDDIOPS值小于或等于针对所述多个节点的所述观察到的HDDIOPS值时,在选择的所述节点上实例化所述虚拟机。
11.根据权利要求10所述的方法,其中:
针对所述多个节点的所述观察到的HDDIOPS值包括针对所述多个节点的平均HDDIOPS值;以及
针对所述虚拟机的所述预测HDDIOPS值包括针对所述虚拟机的平均预测HDDIOPS值。
12.根据权利要求10所述的方法,还包括:当所述虚拟机在选择的所述节点上被实例化时,更新针对选择的所述节点的所述HDD IOPS值和针对所述多个节点的所述观察到的HDDIOPS值。
13.根据权利要求10所述的方法,还包括:当所述虚拟机在选择的所述节点上终止时,更新针对选择的所述节点的所述HDDIOPS值和针对所述多个节点的所述观察到的HDDIOPS值。
14.根据权利要求10所述的方法,还包括:当所述多个虚拟机中的一个虚拟机在所述多个节点上终止时,更新针对所述多个节点的所述观察到的HDDIOPS值。
15.根据权利要求10所述的方法,还包括:动态地追踪针对所述多个节点中的每个节点的平均或最大HDDIOPS值。
16.根据权利要求10所述的方法,还包括:不追踪针对所述多个虚拟机中的每个虚拟机的平均或最大HDDIOPS值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/424,305 US10296367B2 (en) | 2017-02-03 | 2017-02-03 | Resource management for virtual machines in cloud computing systems |
US15/424,305 | 2017-02-03 | ||
PCT/US2018/015809 WO2018144403A2 (en) | 2017-02-03 | 2018-01-30 | Resource management for virtual machines in cloud computing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110249311A CN110249311A (zh) | 2019-09-17 |
CN110249311B true CN110249311B (zh) | 2023-02-28 |
Family
ID=61231322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880010125.9A Active CN110249311B (zh) | 2017-02-03 | 2018-01-30 | 云计算系统中针对虚拟机的资源管理 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10296367B2 (zh) |
EP (1) | EP3577561B1 (zh) |
CN (1) | CN110249311B (zh) |
WO (1) | WO2018144403A2 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423455B2 (en) | 2017-02-03 | 2019-09-24 | Microsoft Technology Licensing, Llc | Method for deploying virtual machines in cloud computing systems based on predicted lifetime |
US10942760B2 (en) | 2017-02-03 | 2021-03-09 | Microsoft Technology Licensing, Llc | Predictive rightsizing for virtual machines in cloud computing systems |
CN109582433B (zh) * | 2017-09-29 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 一种资源调度方法、装置、云计算系统及存储介质 |
CN109145053B (zh) * | 2018-08-01 | 2021-03-23 | 创新先进技术有限公司 | 数据处理方法和装置、客户端、服务器 |
US11113049B2 (en) * | 2019-02-25 | 2021-09-07 | Red Hat, Inc. | Deploying applications in a computing environment |
US11023287B2 (en) * | 2019-03-27 | 2021-06-01 | International Business Machines Corporation | Cloud data center with reduced energy consumption |
CN112087312B (zh) * | 2019-06-15 | 2023-02-03 | 华为云计算技术有限公司 | 一种提供边缘服务的方法、装置和设备 |
US11562299B2 (en) * | 2019-06-18 | 2023-01-24 | Vmware, Inc. | Workload tenure prediction for capacity planning |
CN112306373B (zh) * | 2019-07-31 | 2024-05-31 | 深信服科技股份有限公司 | 一种集群扩容方法、系统及电子设备和存储介质 |
CN110519365B (zh) * | 2019-08-26 | 2022-07-01 | 网宿科技股份有限公司 | 一种变更设备业务的方法和业务变更系统 |
US11237868B2 (en) | 2019-10-08 | 2022-02-01 | Microsoft Technology Licensing, Llc | Machine learning-based power capping and virtual machine placement in cloud platforms |
CN110866528B (zh) * | 2019-10-28 | 2023-11-28 | 腾讯科技(深圳)有限公司 | 一种模型训练方法、能耗使用效率预测方法、装置和介质 |
US11307889B2 (en) * | 2020-05-28 | 2022-04-19 | International Business Machines Corporation | Schedule virtual machines |
US11675634B2 (en) * | 2020-05-29 | 2023-06-13 | EMC IP Holding Company LLC | Finding the optimum time to prestart container running functions using events |
CN112328387A (zh) * | 2020-09-04 | 2021-02-05 | 广东电力信息科技有限公司 | 一种面向多租户的微服务资源调度方法 |
US20220188167A1 (en) * | 2020-12-14 | 2022-06-16 | Dell Products, Lp | System and method to adapt memory usage of containerized workspaces |
CN112835684B (zh) * | 2021-03-02 | 2024-03-22 | 浙江工业大学 | 一种面向移动边缘计算的虚拟机部署方法 |
US11928516B2 (en) * | 2021-04-27 | 2024-03-12 | EMC IP Holding Company LLC | Greener software defined storage stack |
CN113641445B (zh) * | 2021-07-02 | 2024-03-26 | 山东师范大学 | 基于深度确定性策略的云资源自适应配置方法及系统 |
US11729057B1 (en) * | 2022-02-07 | 2023-08-15 | The Bank Of New York Mellon | Application architecture drift detection system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103814358A (zh) * | 2011-09-20 | 2014-05-21 | 国际商业机器公司 | 服务器群内的虚拟机放置 |
CN104142853A (zh) * | 2014-08-12 | 2014-11-12 | 华为技术有限公司 | 虚拟机存储资源部署方法和装置 |
CN104424013A (zh) * | 2013-08-26 | 2015-03-18 | 国际商业机器公司 | 在计算环境中部署虚拟机的方法和设备 |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020194251A1 (en) * | 2000-03-03 | 2002-12-19 | Richter Roger K. | Systems and methods for resource usage accounting in information management environments |
US7334228B2 (en) | 2001-07-27 | 2008-02-19 | International Business Machines Corporation | Runtime-resource management |
US20070271560A1 (en) * | 2006-05-18 | 2007-11-22 | Microsoft Corporation | Deploying virtual machine to host based on workload characterizations |
US8677353B2 (en) | 2007-01-11 | 2014-03-18 | Nec Corporation | Provisioning a standby virtual machine based on the prediction of a provisioning request being generated |
WO2009108344A1 (en) | 2008-02-29 | 2009-09-03 | Vkernel Corporation | Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network |
US8046468B2 (en) | 2009-01-26 | 2011-10-25 | Vmware, Inc. | Process demand prediction for distributed power and resource management |
US8336049B2 (en) | 2009-02-05 | 2012-12-18 | Vmware, Inc. | Virtual machine utility computing method and system |
US8321862B2 (en) * | 2009-03-20 | 2012-11-27 | Oracle America, Inc. | System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy |
CN101937357B (zh) | 2009-07-01 | 2013-11-06 | 华为技术有限公司 | 一种虚拟机迁移决策方法、装置及系统 |
US9037717B2 (en) | 2009-09-21 | 2015-05-19 | International Business Machines Corporation | Virtual machine demand estimation |
US8789041B2 (en) * | 2009-12-18 | 2014-07-22 | Verizon Patent And Licensing Inc. | Method and system for bulk automated virtual machine deployment |
US8504689B2 (en) | 2010-05-28 | 2013-08-06 | Red Hat, Inc. | Methods and systems for cloud deployment analysis featuring relative cloud resource importance |
US9442771B2 (en) | 2010-11-24 | 2016-09-13 | Red Hat, Inc. | Generating configurable subscription parameters |
US9563479B2 (en) | 2010-11-30 | 2017-02-07 | Red Hat, Inc. | Brokering optimized resource supply costs in host cloud-based network using predictive workloads |
JP5767480B2 (ja) | 2011-01-31 | 2015-08-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 情報処理装置、情報処理システム、配置構成決定方法、プログラムおよび記録媒体 |
US9807159B2 (en) | 2011-05-13 | 2017-10-31 | Telefonaktiebolaget L M Ericsson (Publ) | Allocation of virtual machines in datacenters |
US8631099B2 (en) * | 2011-05-27 | 2014-01-14 | Red Hat, Inc. | Systems and methods for cloud deployment engine for selective workload migration or federation based on workload conditions |
US8701107B2 (en) | 2011-06-14 | 2014-04-15 | Vmware, Inc. | Decentralized management of virtualized hosts |
US8881142B1 (en) | 2011-06-21 | 2014-11-04 | Amazon Technologies, Inc. | Determining and using probable instance lifetimes |
US8788855B2 (en) | 2011-09-23 | 2014-07-22 | Microsoft Corporation | Cluster computational capacity level switching based on demand prediction and stability constraint and power consumption management |
US8832239B2 (en) | 2011-09-26 | 2014-09-09 | International Business Machines Corporation | System, method and program product for optimizing virtual machine placement and configuration |
DE102012217202B4 (de) * | 2011-10-12 | 2020-06-18 | International Business Machines Corporation | Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen |
US8826277B2 (en) | 2011-11-29 | 2014-09-02 | International Business Machines Corporation | Cloud provisioning accelerator |
US20130268940A1 (en) | 2012-04-04 | 2013-10-10 | Daniel Juergen Gmach | Automating workload virtualization |
US8839243B2 (en) | 2012-04-23 | 2014-09-16 | International Business Machines Corporation | Remediating resource overload |
US8930948B2 (en) | 2012-06-21 | 2015-01-06 | Vmware, Inc. | Opportunistically proactive resource management using spare capacity |
US9003037B2 (en) * | 2012-07-25 | 2015-04-07 | Vmware, Inc. | Dynamic allocation of physical computing resources amongst virtual machines |
SG10201705920SA (en) | 2012-09-20 | 2017-08-30 | Amazon Tech Inc | Automated profiling of resource usage |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9363154B2 (en) | 2012-09-26 | 2016-06-07 | International Business Machines Corporaion | Prediction-based provisioning planning for cloud environments |
US9940162B2 (en) * | 2012-09-28 | 2018-04-10 | Cycle Computing, Llc | Realtime optimization of compute infrastructure in a virtualized environment |
US9298443B2 (en) | 2013-02-14 | 2016-03-29 | International Business Machines Corporation | System and method for determining when cloud virtual machines need to be updated |
US9465630B1 (en) * | 2013-02-20 | 2016-10-11 | Ca, Inc. | Assigning dynamic weighted variables to cluster resources for virtual machine provisioning |
US9471394B2 (en) | 2013-03-13 | 2016-10-18 | Cloubrain, Inc. | Feedback system for optimizing the allocation of resources in a data center |
US9444689B2 (en) * | 2013-06-03 | 2016-09-13 | Microsoft Technology Licensing, Llc | Dynamically migrating virtual machines and gateways |
US20140373010A1 (en) * | 2013-06-14 | 2014-12-18 | International Business Machines Corporation | Intelligent resource management for virtual machines |
US9363190B2 (en) * | 2013-07-31 | 2016-06-07 | Manjrasoft Pty. Ltd. | System, method and computer program product for energy-efficient and service level agreement (SLA)-based management of data centers for cloud computing |
US9244711B1 (en) | 2013-09-30 | 2016-01-26 | Emc Corporation | Virtual machine capacity planning |
CN103797462B (zh) | 2013-10-23 | 2016-06-29 | 华为技术有限公司 | 一种创建虚拟机的方法和装置 |
US9348654B2 (en) * | 2013-11-19 | 2016-05-24 | International Business Machines Corporation | Management of virtual machine migration in an operating environment |
US9823881B2 (en) * | 2013-12-23 | 2017-11-21 | Vmware, Inc. | Ensuring storage availability for virtual machines |
US9423957B2 (en) | 2014-05-02 | 2016-08-23 | Ca, Inc. | Adaptive system provisioning |
US10430219B2 (en) | 2014-06-06 | 2019-10-01 | Yokogawa Electric Corporation | Configuring virtual machines in a cloud computing platform |
US9544367B2 (en) | 2014-06-16 | 2017-01-10 | Verizon Patent And Licensing Inc. | Automated server cluster selection for virtual machine deployment |
EP2988214A1 (en) | 2014-08-20 | 2016-02-24 | Alcatel Lucent | Method for balancing a load, a system, an elasticity manager and a computer program product |
JP6455035B2 (ja) | 2014-09-10 | 2019-01-23 | 富士通株式会社 | 負荷分散管理装置、制御方法およびプログラム |
US10171371B2 (en) | 2014-09-30 | 2019-01-01 | International Business Machines Corporation | Scalable metering for cloud service management based on cost-awareness |
US10282222B2 (en) * | 2014-10-13 | 2019-05-07 | Vmware, Inc. | Cloud virtual machine defragmentation for hybrid cloud infrastructure |
US9672054B1 (en) | 2014-12-05 | 2017-06-06 | Amazon Technologies, Inc. | Managing virtual machine migration |
TWI552077B (zh) | 2015-02-12 | 2016-10-01 | 國立中央大學 | 虛擬機器即時轉移方法 |
US9645847B1 (en) | 2015-06-08 | 2017-05-09 | Amazon Technologies, Inc. | Efficient suspend and resume of instances |
US9619261B2 (en) | 2015-06-29 | 2017-04-11 | Vmware, Inc. | Method and system for anticipating demand for a computational resource by containers running above guest operating systems within a distributed, virtualized computer system |
US10361919B2 (en) | 2015-11-09 | 2019-07-23 | At&T Intellectual Property I, L.P. | Self-healing and dynamic optimization of VM server cluster management in multi-cloud platform |
US9710305B2 (en) | 2015-11-12 | 2017-07-18 | International Business Machines Corporation | Virtual machine migration management |
US10083054B2 (en) | 2015-12-28 | 2018-09-25 | Amazon Technologies, Inc. | Application-based computing resource management |
US20180121237A1 (en) | 2016-10-27 | 2018-05-03 | Nutanix, Inc. | Life cycle management of virtualized storage performance |
US10942760B2 (en) | 2017-02-03 | 2021-03-09 | Microsoft Technology Licensing, Llc | Predictive rightsizing for virtual machines in cloud computing systems |
US10423455B2 (en) | 2017-02-03 | 2019-09-24 | Microsoft Technology Licensing, Llc | Method for deploying virtual machines in cloud computing systems based on predicted lifetime |
-
2017
- 2017-02-03 US US15/424,305 patent/US10296367B2/en active Active
-
2018
- 2018-01-30 EP EP18705760.9A patent/EP3577561B1/en active Active
- 2018-01-30 WO PCT/US2018/015809 patent/WO2018144403A2/en unknown
- 2018-01-30 CN CN201880010125.9A patent/CN110249311B/zh active Active
-
2019
- 2019-03-08 US US16/297,530 patent/US10963285B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103814358A (zh) * | 2011-09-20 | 2014-05-21 | 国际商业机器公司 | 服务器群内的虚拟机放置 |
CN104424013A (zh) * | 2013-08-26 | 2015-03-18 | 国际商业机器公司 | 在计算环境中部署虚拟机的方法和设备 |
CN104142853A (zh) * | 2014-08-12 | 2014-11-12 | 华为技术有限公司 | 虚拟机存储资源部署方法和装置 |
Non-Patent Citations (2)
Title |
---|
一种云平台中优化的虚拟机部署机制;温少君等;《计算机工程》;20120605(第11期);第23-25页 * |
云环境下能耗感知的虚拟机动态迁移策略研究;钱育蓉等;《微电子学与计算机》;20150905(第09期);第144-149页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110249311A (zh) | 2019-09-17 |
US20180225137A1 (en) | 2018-08-09 |
WO2018144403A2 (en) | 2018-08-09 |
US10296367B2 (en) | 2019-05-21 |
US20190205157A1 (en) | 2019-07-04 |
EP3577561A2 (en) | 2019-12-11 |
US10963285B2 (en) | 2021-03-30 |
WO2018144403A3 (en) | 2018-10-18 |
EP3577561B1 (en) | 2023-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110249311B (zh) | 云计算系统中针对虚拟机的资源管理 | |
CN110249310B (zh) | 云计算系统中的用于虚拟机的资源管理 | |
US10942760B2 (en) | Predictive rightsizing for virtual machines in cloud computing systems | |
US11416286B2 (en) | Computing on transient resources | |
US9396008B2 (en) | System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts | |
EP3698247B1 (en) | An apparatus and method for providing a performance based packet scheduler | |
WO2018194836A1 (en) | Systems and methods for proactively and reactively allocating resources in cloud-based networks | |
CN111399970B (zh) | 一种预留资源管理方法、装置和存储介质 | |
US11755369B2 (en) | Techniques for container scheduling in a virtual environment | |
US20190317824A1 (en) | Deployment of services across clusters of nodes | |
US10565021B2 (en) | Automated capacity management in distributed computing systems | |
US10140161B1 (en) | Workload aware dynamic CPU processor core allocation | |
Babu et al. | Interference aware prediction mechanism for auto scaling in cloud | |
US20230155955A1 (en) | Cluster capacity management for hyper converged infrastructure updates | |
US20230401085A1 (en) | Selection of hosts for virtual machines based on current virtual machine requirements and headroom availability | |
Bu | Autonomic management and performance optimization for cloud computing services | |
KR20230156510A (ko) | 기계학습 추론 작업을 위한 다중 gpu 환경 기반 시공간분할 스케줄링 sw | |
Bushehrian et al. | iScale: An Intelligent Auto-Scaling Engine for Migrated Applications to the Cloud | |
CN116266139A (zh) | 在混合模式下优化dc持久性内存模块(dcpmm)上的内存与存储容量划分 |
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 |