CN110249311A - 云计算系统中针对虚拟机的资源管理 - Google Patents

云计算系统中针对虚拟机的资源管理 Download PDF

Info

Publication number
CN110249311A
CN110249311A CN201880010125.9A CN201880010125A CN110249311A CN 110249311 A CN110249311 A CN 110249311A CN 201880010125 A CN201880010125 A CN 201880010125A CN 110249311 A CN110249311 A CN 110249311A
Authority
CN
China
Prior art keywords
node
virtual machine
prediction
hdd
iops value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880010125.9A
Other languages
English (en)
Other versions
CN110249311B (zh
Inventor
R·比安基尼
E·科尔特斯
M·F·方图拉
A·邦德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN110249311A publication Critical patent/CN110249311A/zh
Application granted granted Critical
Publication of CN110249311B publication Critical patent/CN110249311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (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 (15)

1.一种系统,包括:
处理器和存储器;以及
在所述存储器中存储的机器可读指令,当由所述处理器执行时,所述机器可读指令将所述处理器配置为:
接收在云计算系统中运行多个虚拟机的多个节点中的节点上部署虚拟机的请求;
选择所述多个节点中的一个节点,所述一个节点所具有的硬盘驱动器(HDD)每秒输入输出操作(IOPS)值小于针对运行所述多个虚拟机的所述多个节点的观察到的HDD IOPS值;
接收针对所述虚拟机的预测HDD IOPS值;
基于针对选择的所述节点的所述HDD IOPS值和针对所述虚拟机的所述预测HDD IOPS值,来确定针对选择的所述节点的新HDD IOPS值;以及
当针对选择的所述节点的所述新HDD IOPS值小于或等于针对所述多个节点的所述观察到的HDD IOPS值时,在选择的所述节点上实例化所述虚拟机。
2.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:
收集关于由所述多个节点在运行所述多个虚拟机时执行的HDD IOPS的数据;
基于收集的所述数据来生成针对所述多个节点的所述观察到的HDD IOPS值,其中针对所述多个节点的所述观察到的HDD IOPS值包括针对所述多个节点的平均HDD IOPS值和针对所述多个节点的最大HDD IOPS值中的一个或多个;以及
基于收集的所述数据来生成针对所述虚拟机的所述预测HDD IOPS值,其中针对所述虚拟机的所述预测HDD IOPS值包括针对所述虚拟机的平均预测HDD IOPS值和针对所述虚拟机的最大预测HDD IOPS值中的一个或多个。
3.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:
当所述虚拟机在选择的所述节点上被实例化时,更新针对选择的所述节点的所述HDDIOPS值和针对所述多个节点的所述观察到的HDD IOPS值;或者
当所述虚拟机在选择的所述节点上终止时,更新针对选择的所述节点的所述HDD IOPS值和针对所述多个节点的所述观察到的HDD IOPS值;或者
当所述多个虚拟机中的一个虚拟机在所述多个节点上终止时,更新针对所述多个节点的所述观察到的HDD IOPS值。
4.根据权利要求1所述的系统,其中所述机器可读指令还将所述处理器配置为:
动态地追踪针对所述多个节点中的每个节点的平均或最大HDD IOPS值;以及
不追踪针对所述多个虚拟机中的每个虚拟机的平均或最大HDD IOPS值。
5.一种方法,包括:
接收在云计算系统中运行多个虚拟机的多个节点中的节点上部署虚拟机的请求;
收集关于由所述多个节点在运行所述多个虚拟机时执行的硬盘驱动器(HDD)每秒输入输出操作(IOPS)的数据;
选择所述多个节点中的一个节点,所述一个节点所具有的硬盘驱动器(HDD)每秒输入输出操作(IOPS)值小于针对运行所述多个虚拟机的所述多个节点的观察到的HDD IOPS值,所述观察到的HDD IOPS值是基于收集的所述数据生成的;
接收针对所述虚拟机的预测HDD IOPS值,所述预测HDD IOPS值是基于收集的所述数据生成的;
基于针对选择的所述节点的所述HDD IOPS值和针对所述虚拟机的所述预测HDD IOPS值,来确定针对选择的所述节点的新HDD IOPS值;以及
当针对选择的所述节点的所述新HDD IOPS值小于或等于针对所述多个节点的所述观察到的HDD IOPS值时,在选择的所述节点上实例化所述虚拟机。
6.根据权利要求5所述的方法,其中:
针对所述多个节点的所述观察到的HDD IOPS值包括针对所述多个节点的平均HDDIOPS值和针对所述多个节点的最大HDD IOPS值中的一个或多个;以及
针对所述虚拟机的所述预测HDD IOPS值包括针对所述虚拟机的平均预测HDD IOPS值和针对所述虚拟机的最大预测HDD IOPS值中的一个或多个。
7.根据权利要求5所述的方法,还包括:
当所述虚拟机在选择的所述节点上被实例化时,更新针对选择的所述节点的所述HDDIOPS值和针对所述多个节点的所述观察到的HDD IOPS值;或者
当所述虚拟机在选择的所述节点上终止时,更新针对选择的所述节点的所述HDD IOPS值和针对所述多个节点的所述观察到的HDD IOPS值;或者
当所述多个虚拟机中的一个虚拟机在所述多个节点上终止时,更新针对所述多个节点的所述观察到的HDD IOPS值。
8.根据权利要求5所述的方法,还包括:
动态地追踪针对所述多个节点中的每个节点的平均或最大HDD IOPS值;以及
不追踪针对所述多个虚拟机中的每个虚拟机的平均或最大HDD IOPS值。
9.一种系统,包括:
处理器和存储器;以及
在所述存储器中存储的机器可读指令,当由所述处理器执行时,所述机器可读指令将所述处理器配置为:
接收在云计算系统中运行多个虚拟机的多个节点中的一个节点上部署虚拟机的请求;
接收指示所述虚拟机是第一类型或第二类型的预测,所述第一类型经得起有限量的性能下降,所述第二类型经不起性能下降;
接收关于由所述虚拟机对多个资源的利用的预测;
从所述多个节点中选择超额订阅节点,其中超额订阅节点是在其上总体而言不只是可用资源被分配给所述多个虚拟机中的一个或多个虚拟机的节点;
当所述虚拟机是所述第一类型时,并且当由所述虚拟机和所述多个虚拟机中的一个或多个虚拟机对所述超额订阅节点上的每个资源的预测利用小于或等于预定限制时,将所述虚拟机分配给所述超额订阅节点;以及
当所述虚拟机是所述第二类型时,不将所述虚拟机分配给所述超额订阅节点。
10.根据权利要求9所述的系统,其中:
所述第一类型的虚拟机包括非面向用户或者能够以批处理模式在后台运行的虚拟机,并且所述第二类型的虚拟机包括面向用户的虚拟机;并且
所述预定限制基于由所述虚拟机和所述多个虚拟机中的一个或多个虚拟机对所述超额订阅节点上的每个资源的最大预测利用。
11.根据权利要求9所述的系统,其中所述机器可读指令还将所述处理器配置为:
收集关于由所述多个虚拟机中的第一类型的虚拟机和第二类型的虚拟机对所述多个节点的资源的利用的数据,以基于收集的所述数据来生成指示所述虚拟机是所述第一类型或所述第二类型的所述预测;以及
收集关于由所述多个虚拟机对所述多个节点的资源的利用的数据,以基于收集的所述数据来生成关于由所述虚拟机对所述多个资源的所述利用的所述预测。
12.根据权利要求9所述的系统,其中所述机器可读指令还将所述处理器配置为:
当所述虚拟机被分配给所述超额订阅节点时,更新所述超额订阅节点上的每个资源的所述预测利用;或者
当所述虚拟机在所述超额订阅节点上终止时,更新所述超额订阅节点上的每个资源的所述预测利用;或者
当一个或多个虚拟机在所述超额订阅节点上终止时,更新所述超额订阅节点上的每个资源的所述预测利用。
13.一种方法,包括:
接收在云计算系统中运行多个虚拟机的多个节点中的一个节点上部署虚拟机的请求;
收集关于由所述多个虚拟机对所述多个节点的资源的利用的数据;
基于收集的所述数据,接收指示所述虚拟机是第一类型或第二类型的预测,所述第一类型经得起有限量的性能下降,所述第二类型经不起性能下降;
基于收集的所述数据,接收关于由所述虚拟机对多个资源的利用的预测;
从所述多个节点中选择超额订阅节点,其中超额订阅节点是在其上总体而言不只是可用资源被分配给所述多个虚拟机中的一个或多个虚拟机的节点;
当所述虚拟机是所述第一类型时,并且当由所述虚拟机和所述多个虚拟机中的一个或多个虚拟机对所述超额订阅节点上的每个资源的预测利用小于或等于预定限制时,将所述虚拟机分配给所述超额订阅节点;以及
当所述虚拟机是所述第二类型时,不将所述虚拟机分配给所述超额订阅节点。
14.根据权利要求13所述的方法,其中:
所述第一类型的虚拟机包括非面向用户或者能够以批处理模式在后台运行的虚拟机,并且所述第二类型的虚拟机包括面向用户的虚拟机;并且
所述预定限制基于由所述虚拟机和所述多个虚拟机中的一个或多个虚拟机对所述超额订阅节点上的每个资源的最大预测利用。
15.根据权利要求13所述的方法,还包括:
当所述虚拟机被分配给所述超额订阅节点时,更新所述超额订阅节点上的每个资源的所述预测利用;或者
当所述虚拟机在所述超额订阅节点上终止时,更新所述超额订阅节点上的每个资源的所述预测利用;或者
当一个或多个虚拟机在所述超额订阅节点上终止时,更新所述超额订阅节点上的每个资源的所述预测利用。
CN201880010125.9A 2017-02-03 2018-01-30 云计算系统中针对虚拟机的资源管理 Active CN110249311B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/424,305 2017-02-03
US15/424,305 US10296367B2 (en) 2017-02-03 2017-02-03 Resource management for virtual machines in cloud computing systems
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 true CN110249311A (zh) 2019-09-17
CN110249311B 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 (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120324444A1 (en) * 2011-06-14 2012-12-20 Vmware, Inc. Decentralized management of virtualized hosts
US20130097601A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Optimizing virtual machines placement in cloud computing environments
CN103814358A (zh) * 2011-09-20 2014-05-21 国际商业机器公司 服务器群内的虚拟机放置
CN104142853A (zh) * 2014-08-12 2014-11-12 华为技术有限公司 虚拟机存储资源部署方法和装置
US20140359091A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Dynamically migrating virtual machines and gateways
CN104424013A (zh) * 2013-08-26 2015-03-18 国际商业机器公司 在计算环境中部署虚拟机的方法和设备
US20150143364A1 (en) * 2013-11-19 2015-05-21 International Business Machines Corporation Management of virtual machine migration in an operating environment

Family Cites Families (54)

* Cited by examiner, † Cited by third party
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 情報処理装置、情報処理システム、配置構成決定方法、プログラムおよび記録媒体
EP2707795A1 (en) 2011-05-13 2014-03-19 Telefonaktiebolaget LM 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
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
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
EP2898410B1 (en) 2012-09-20 2022-04-27 Amazon Technologies, 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
JP6114829B2 (ja) * 2012-09-28 2017-04-12 サイクルコンピューティング エルエルシー 仮想環境における演算インフラストラクチャのリアルタイム最適化
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
WO2014159740A1 (en) 2013-03-13 2014-10-02 Cloubrain, Inc. Feedback system for optimizing the allocation of resources in a data center
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
WO2015058377A1 (zh) 2013-10-23 2015-04-30 华为技术有限公司 一种创建虚拟机的方法和装置
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
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120324444A1 (en) * 2011-06-14 2012-12-20 Vmware, Inc. Decentralized management of virtualized hosts
CN103814358A (zh) * 2011-09-20 2014-05-21 国际商业机器公司 服务器群内的虚拟机放置
US20130097601A1 (en) * 2011-10-12 2013-04-18 International Business Machines Corporation Optimizing virtual machines placement in cloud computing environments
US20140359091A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Dynamically migrating virtual machines and gateways
CN104424013A (zh) * 2013-08-26 2015-03-18 国际商业机器公司 在计算环境中部署虚拟机的方法和设备
US20160162308A1 (en) * 2013-08-26 2016-06-09 International Business Machines Corporation Deploying a virtual machine in a computing environment
US20150143364A1 (en) * 2013-11-19 2015-05-21 International Business Machines Corporation Management of virtual machine migration in an operating environment
CN104142853A (zh) * 2014-08-12 2014-11-12 华为技术有限公司 虚拟机存储资源部署方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
温少君等: "一种云平台中优化的虚拟机部署机制", 《计算机工程》 *
钱育蓉等: "云环境下能耗感知的虚拟机动态迁移策略研究", 《微电子学与计算机》 *

Also Published As

Publication number Publication date
US10296367B2 (en) 2019-05-21
WO2018144403A3 (en) 2018-10-18
US20190205157A1 (en) 2019-07-04
WO2018144403A2 (en) 2018-08-09
CN110249311B (zh) 2023-02-28
EP3577561B1 (en) 2023-08-23
US10963285B2 (en) 2021-03-30
US20180225137A1 (en) 2018-08-09
EP3577561A2 (en) 2019-12-11

Similar Documents

Publication Publication Date Title
CN110249311A (zh) 云计算系统中针对虚拟机的资源管理
CN110249310A (zh) 云计算系统中的用于虚拟机的资源管理
US11392843B2 (en) Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer
Zhang et al. {History-Based} harvesting of spare cycles and storage in {Large-Scale} datacenters
Feller et al. Energy-aware ant colony based workload placement in clouds
Belgacem et al. Efficient dynamic resource allocation method for cloud computing environment
Kirby et al. An approach to ad hoc cloud computing
CN105897805B (zh) 对多层架构的数据中心的资源进行跨层调度的方法和装置
US9154366B1 (en) Server maintenance modeling in cloud computing
WO2019099281A1 (en) Predictive rightsizing for virtual machines in cloud computing systems
JP5352890B2 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
CN104050042A (zh) Etl作业的资源分配方法及装置
US10810054B1 (en) Capacity balancing for data storage system
Riahi et al. A multi-objective decision support framework for virtual machine placement in cloud data centers: a real case study
US11409453B2 (en) Storage capacity forecasting for storage systems in an active tier of a storage environment
Guzek et al. A holistic model for resource representation in virtualized cloud computing data centers
CN106471473A (zh) 用于控制数据中心中的服务器过高分配的机制
Bouhouch et al. Dynamic data replication and placement strategy in geographically distributed data centers
Hsu et al. A proactive, cost-aware, optimized data replication strategy in geo-distributed cloud datastores
CN105827744A (zh) 云存储平台的数据处理方法
Peng et al. Research on cloud computing resources provisioning based on reinforcement learning
CN106161516A (zh) 用于存储数据的方法、装置以及系统
Ajmera et al. SR-PSO: server residual efficiency-aware particle swarm optimization for dynamic virtual machine scheduling
Prasad et al. Resource allocation in cloud computing
US11381468B1 (en) Identifying correlated resource behaviors for resource allocation

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