CN103970607B - 使用等价集合来计算优化虚拟机分配的方法和装置 - Google Patents

使用等价集合来计算优化虚拟机分配的方法和装置 Download PDF

Info

Publication number
CN103970607B
CN103970607B CN201410042069.0A CN201410042069A CN103970607B CN 103970607 B CN103970607 B CN 103970607B CN 201410042069 A CN201410042069 A CN 201410042069A CN 103970607 B CN103970607 B CN 103970607B
Authority
CN
China
Prior art keywords
combination
unit
network
node
resource
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
Application number
CN201410042069.0A
Other languages
English (en)
Other versions
CN103970607A (zh
Inventor
E.M.道
J.P.吉尔克里斯特
S.K.施密特
C.J.斯托克
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103970607A publication Critical patent/CN103970607A/zh
Application granted granted Critical
Publication of CN103970607B publication Critical patent/CN103970607B/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种用于确定虚拟机的分配的方法包括:被配置为在网络上运行的虚拟机(VM)的列表的产生和访问的至少一个,每个VM具有至少一个网络资源要求,在所述列表中的每一个VM与所述至少一个网络资源要求的大小相关联;选择至少一个等价集合的具有至少大体相同的资源要求大小的VM;从所述至少一个等价集合的VM产生多个元组合,每一个元组合表示从所述等价集合选择的多个单独VM的所有可能的组合;确定在所述网络中的节点的最大资源容量;并且,向所述节点提供元组合指派,所述元组合指派包括具有小于或等于所述最大资源容量的累积资源要求大小值的一组元组合。

Description

使用等价集合来计算优化虚拟机分配的方法和装置
技术领域
本发明涉及虚拟机(VM)的管理,并且更具体地涉及用于优化VM分配的方法和算法。
背景技术
当代虚拟机(VM)是如物理机器那样执行程序的机器(即,计算机)的软件实现方式。该VM通常模拟物理计算环境,但是通过虚拟层来管理对于中央处理单元(CPU)、存储器、硬盘、网络和其他硬件资源的请求,该虚拟层将这些请求转换为基础的物理硬件。在诸如在客户机或服务器操作系统的顶部运行的超管理器(hypervisor)或虚拟平台的虚拟层内建立VM。该虚拟层通常用于在单个物理机器内建立许多单独的孤立的VM。通常在服务器联合体中使用许多VM,其中,先前在单独机器上运行的不同服务相反在同一的物理机器上的孤立的VM中运行。
对于云托管和其他网络管理服务的提供者的一个持续挑战是系统资源的有效使用。期望VM向诸如网络服务器的不同网络节点的有效分配,以便最大化网络资源的使用,并且减少向客户提供计算服务所需的物理服务器和/或物理资源的数量。
发明内容
根据一个实施例,一种用于确定虚拟机向网络节点的分配的方法包括:被配置为在网络上运行的虚拟机(VM)的列表的产生和访问的至少一个,每个VM具有至少一个网络资源要求,在所述列表中的每一个VM与所述至少一个网络资源要求的大小相关联;选择VM的至少一个等价集合,其具有至少大体相同的资源要求大小的VM;从所述至少一个等价集合的VM产生多个元组合,每一个元组合表示从所述等价集合选择的多个单独VM的所有可能的组合;确定在所述网络中的节点的最大资源容量;并且,向所述节点提供元组合指派,所述元组合指派包括具有小于或等于所述最大资源容量的累积资源要求大小值的一组元组合。
根据另一个实施例,一种用于确定虚拟机向网络节点的分配的计算机程序产品包括计算机可读存储介质,包含程序代码。所述程序代码能够被处理器读取/执行以执行一种方法,所述方法包括:被配置为在网络上运行的虚拟机(VM)的列表的产生和访问的至少一个,每个VM具有至少一个网络资源要求,在所述列表中的每一个VM与所述至少一个网络资源要求的大小相关联;选择VM的至少一个等价集合,其具有至少大体相同的资源要求大小的VM;从所述至少一个等价集合的VM产生多个元组合,每一个元组合表示从所述等价集合选择的多个单独VM的所有可能的组合;确定在所述网络中的节点的最大资源容量;并且,向所述节点提供元组合指派,所述元组合指派包括具有小于或等于所述最大资源容量的累积资源要求大小值的一组元组合。
根据另一个实施例,一种装置包括在网络节点和网络控制设备的至少一个中布置的至少一个处理设备与其上存储了指令的存储设备。当被所述至少一个处理设备执行时,所述指令使得所述装置:被配置为在网络上运行的虚拟机(VM)的列表的产生和访问的至少一个,每个VM具有至少一个网络资源要求,在所述列表中的每一个VM与所述至少一个网络资源要求的大小相关联;选择VM的至少一个等价集合,其具有至少大体相同的资源要求大小的VM;从所述至少一个等价集合的VM产生多个元组合,每一个元组合表示从所述等价集合选择的多个单独VM的所有可能的组合;确定在所述网络中的节点的最大资源容量;并且,向所述节点提供元组合指派,所述元组合指派包括具有小于或等于所述最大资源容量的累积资源要求大小值的一组元组合。
通过本发明的技术来实现另外的特制和优点。本发明的其他实施例和方面在此被详细描述,并且被看作所要求保护的发明的一部分。为了更好地明白具有优点和特制的本发明,参见说明书和附图。
附图说明
在说明书的结尾处的权利要求中具体指出和清楚地要求保护被看作本发明的主题。通过下面结合附图获得的详细说明,本发明的上述和其他特征与优点显然,在附图中:
图1描述了根据本发明的一个实施例的云计算节点;
图2描述了根据本发明的一个实施例的云计算环境;
图3描述了根据本发明的一个实施例的抽象模型层;
图4描述了包括被配置来执行和/或促进虚拟机(VM)分配的节点处理器的示例性网络计算系统;
图5是示出建立VM分配(allocation)模型或用于对于网络节点有效分配VM的指派(assignment)的方法的流程图;以及
图6是示出向所选择的网络节点分配VM的方法的流程图。
具体实施方式
在此所述的实施例涉及方法、设备和计算机程序产品,用于建模虚拟机(VM)分配,并且将VM封装或分配到在例如服务器或对等计算机网络内的独立主机或节点。在此所述的实施例对于许多网络应用有效,该许多网络应用例如是包括提供IaaS、PaaS或SaaS云托管的那些的虚拟机基础结构。
例如,联合体或VM管理软件建模向主机的VM分配,以便模拟可能的云数据中心VM分配。软件利用VM等价类的象征性操纵(即,相对于一个或多个资源的消耗有效地克隆的单独的具体VM的广泛组)以提供VM的最佳分配。
在一个实施例中,在运行时间可获得的VM被编组为各种等价集合(set),它们是具有至少大体等价的资源要求的VM的列表。可以相对于诸如存储器要求的单个资源类型编组该等价集合,或者可以相对于诸如存储器和CPU核心数量要求的多个资源类型来编组该等价集合。对于每一个等价集合产生多个元组合,每一个元组合表示在相应的等价集合内的所选择的多个VM的所有可能的组合。元组合被配置来表示来自等价集合的多个VM,而不具体列举在该集合内的VM的单独具体实例。VM管理软件可以产生用于在网络中的每一个节点的或至少用于相对于最大资源容量的在网络中的最大节点的一个或多个元组合列表或指派。为了产生元组合列表或指派,该软件可以例如执行用于选择具有最佳地满足每一个节点的资源容量的累积资源要求的一组元组合的算法(例如,贪婪启发算法)。
在一个实施例中,运行时间满足器或其他应用利用元组合和/或元组合指派来向一个或多个节点分配VM。例如,可获得或未分配的VM的列表可以与等价类相关联,并且用于根据对应的元组合指派来选择和向节点分配VM。可以与元组合指派相结合地使用诸如现有分配和迁移开销的额外考虑,以进一步优化分配。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境(例如,任何客户机-服务器模型)而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A、台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及用于移动设备访问云计算服务的移动桌面(例如,54A、54C和54N,以及云计算环境50中的移动节点10)。
在一个实施例中,硬件和软件层60与虚拟层62之一或两者可以包括诸如网络服务器前端和图像高速缓存的边缘组件以及例如在更性能RAID存储区域网(SAN)中的图像库存储器。在一个示例性实施例中,诸如在虚拟层62中的虚拟机分配应用70的应用可以实现用于确定和/或执行在此所述的虚拟机分配的处理或方法;然而,可以明白,可以在任何层中实现应用70。
图4图示了任何示例性计算系统80,其包含对等和/或客户机/服务器网络82,诸如云计算网络,该云计算网络包括多个主机或节点74,诸如服务器。在示例性实施例中,每一个节点84包括高速处理设备(例如,主机或服务器计算机),该高速处理装置包括至少一个处理电路(例如,CPU),该至少一个处理电路能够读取和执行指令,并且处理来自用户或作为共享的物理资源的客户计算机86的多个交互请求。用户可以经由用户计算机86来启动在节点84上的各种任务,诸如开发和执行系统测试、运行应用程序和启动系统迁移。
网络82可以是在本领域中公知的任何类型的通信网络。例如,网络82可以是内联网、外联网或诸如因特网的互连网络或者其组合。网络82可以包括无线、有线和/或光纤链路。
在示例性实施例中,每一个节点84访问和在一个或多个相关联的数据存储装置中存储数据,该一个或多个相关联的数据存储装置可以包括任何类型的存储器并且可以包括辅助存储元件,诸如硬盘驱动器、带或在节点84内部或外部的存储子系统。可以在源数据存储装置中存储的数据的类型例如包括在一个或多个虚拟机(VM)88中包括的存储器与分配和迁移数据(例如,数据结构)。在一个示例性实施例中,也在数据存储装置中存储VM配置信息和/或节点存储器访问数据。
在示例性实施例中,节点84执行各种应用,诸如节点超管理器90和多个VM 88。术语“超管理器”指的是支持一个或多个虚拟机的执行的低级应用。超管理器90管理对于节点84的资源的访问,并且作为用于支持VM的同时运行的VM监控器。每一个VM可以支持特定的客人操作系统和用于执行被写入目标客人操作系统的软件的多个用户会话。例如,一个VM可以支持操作系统的实例,而第二VM执行操作系统的实例。在本领域中公知的其他客人操作系统也可以被源超管理器90通过VM支持。
在示例性实施例中,在节点84中的超管理器或其他应用执行VM联合体或管理器92以执行在此所述的处理,以确定VM的最佳分配和向各个节点84和/或在其之间迁移VM。诸如包括可获得的VM的列表和用于指定所有可获得的节点的节点列表96的VM目录94的各种数据结构可以被超管理器90和/或管理器92存储和利用来促进VM的分配。另外的示例性数据结构包括等价集合98和相关联的VM列表99,下面进一步详细地描述它们。
诸如节点10和/或节点84或中央处理设备的如上所述的系统和设备可以用于执行和/或促进在此所述的机器(例如,VM)迁移和包装。
图5图示了用于建立允许向诸如主机服务器的网络节点有效地分配VM的VM分配模型或指派的方法100。方法100包括在此所述的一个或多个阶段101-106。结合系统80描述了方法100,但是不限于此。诸如超管理器或虚拟机管理器(VMM)的、能够监控和/或控制在网络环境中的VM的一个或多个处理器或其他设备可以执行方法100。在一个实施例中,方法100包括以所述顺序的所有阶段101-106的执行。然而,可以省略特定阶段,可以增加阶段,或者可以改变阶段的顺序。
在第一阶段101中,在诸如云计算网络的网络中的一个或多个节点从客户或客户端计算机接收各种执行请求。例如,网络82可以从用户计算机86接收各种执行请求。
在第二阶段102中,诸如超管理器90的处理器例如从在超管理器的服务器上存储的VM目录94编译或访问一组VM,该超管理器的服务器可以被配置为在构成网络或工作组的服务器或其他节点中运行。每个特定的VM具有多个资源要求。示例性资源要求包括存储器大小、CPU核心的数量、由VM要求的网络累积通过量、由VM要求的网络外出和/或进入通过量、用于VM的盘累积通过量和用于VM的盘外出和/或进入通过量等。
在第三阶段103中,将VM编组为一个或多个等价集合的元素。每一个等价集合包括相对于一个或多个资源要求相同或近乎相同的一组VM。在等价集合中列出的这样的VM可以被称为“克隆的VM”或“VM克隆”。VM不必完全相同,而是从资源大小的视点看相同,即,每一个克隆的VM有具有相同或大体相同的大小的资源要求(例如,存储器)。如在此所述,资源“大小”指的是用于资源的度量值,诸如存储器大小、CPU核心的数量或者处理或通过速度。
可以根据与可获得的VM相关联的不同资源要求大小的数量来产生多个等价集合。例如,图4示出管理器92为访问数量“M”的等价集合,该数量对应于所需的不同大小的数量。
在一个实施例中,在等价集合中的每一个VM克隆对于单个资源类型或对于任何数量的资源类型具有相同的大小要求。在此所述的实施例不限于此,因为可以使用任何类似或类型的资源要求来产生等价集合。例如,对于包括存储器空间、核心的数量和/或平台类型的相同的资源要求的一组VM可以产生等价集合。然而,可以定义等价集合使得可以将在指定的资源要求上具有较小差别的VM看作等价集合的一部分。
为了说明的目的,描述一个非限定性示例。在这个示例中,从一组VM,识别具有等价资源属性的三个克隆的VM(称为“A”、“B”和“C”)。A、B和C的每一个具有128MB RAM和两个CPU核心。对于这些VM,可以产生被称为“SMALL”的等价集合。可以使用对于在此所述的等价集合或其他数据结构的任何适当的指定或命名惯例,因为该指定或命名惯例不限于在此所述的那些。
在第四阶段104中,对于每一个等价集合产生或指定多个元组合。每一个“元组合”是用于表示在等价集合内的选择数量的VM元素的所有可能组合的指定。
例如,首先通过建立用于每一个等价集合的占位符来产生在此被称为元组合列表或指定的数据结构。每一个占位符被提供来指定来自对应的等价集合的元组合。注意,因为在等价集合中的每一个VM被视为相同(至少相对于感兴趣的资源要求),所以可以将VM的每一个元组合看作在组合中的多个VM。因此,对于每一个可能数量的元素产生元组合。
例如,对于包括数量“N”的元素(即,独立的VM)的等价集合,可能的元组合的数量是元素的数量,即,N。为了例示,考虑包含N个元素的等价集合指定的“SET”。从这一点,可以产生N个元组合“SETx”,其中,x=1、2...N。
对于包含三个不同VM的示例性等价集合,N=3,并且因此,元组合的数量是3。等价集合列表包括表示在等价集合内的每指定数量的VM的所有可能组合,例如,第一元组合具有一个VM并且表示任何单个VM,第二元组合表示两个VM的任何组合,并且第三元组合表示三个VM的任何组合。
再一次参照被指定为SMALL等价集合的VM(A、B和C)的示例性组,可以指定三个元组合。因此对于下述部分产生占位符:用于表示来自该集合的任何单个VM的第一元组合“SMALL1”、用于表示来自该集合的两个不同的VM的任何组合的第二组合“SMALL2”和用于表示来自该集合的所有三个VM的第三组合“SMALL3”。
基于每一个VM的已知的资源要求,可以向每一个元组合指派累积资源要求。通过将在元组合中的VM的数量乘以这样要求的标称值来确定该累积资源要求。
例如,对于在SMALL集合中的每一个元组合的资源要求是在元组合中的VM的数量(即,乘数)乘以用于在所指定的集合中的任何单独元素的具体测量的资源要求的标称值。因此,对于SMALLx1(A、B或C)的资源要求是128MB RAM和2个CPU核心,对于SMALLx2(A、B或C的任何两个)的资源要求是256MB RAM,并且,对于SMALLx3(A、B或C)的资源要求是384MBRAM和6个CPU核心。
注意,包括VM克隆的每一个元组合表示在对应的等价集合中的VM的所有可能组合,而不明确地列举每个VM组合。这提供了指定VM的分配的有效方式,特别是当虚拟机的大多数是现有的虚拟机的克隆或拷贝的时候。
在第五阶段105中,基于一个或多个选择的节点的资源能力来约束元组合列表。在一个实施例中,通过下述方式来约束列表:仅构造具有小于或等于所选择的每一个维度的阈值(其中,每一个维度对应于所选择的资源类型)的累积资源要求的那些元组合或元组合的组。在一个实施例中,所选择的阈值对应于一个或多个节点的最大资源容量(相对于当构造元组合和等价集合时考虑的资源类型)。资源容量涉及主机的资源能力,即,涉及主机能够支持的资源的最大大小值。在一个实施例中,将该阈值给出为在网络上的最大主机的最大资源容量。例如,元组合的累积存储器(例如,RAM消耗)限于小于期望的RAM超额因子乘以在网络上的最大主机中的最大RAM。
例如,考虑从等价集合构造的所有元组合,并且选择在大小上小于在网络上的最大主机的那些元组合的所有可能组合(即,元组合列表)。在此,“在大小上较小”表示对于每一个选择的维度的元组合的累积资源分配(诸如网络消耗、所需的CPU核心或存储量分配)必须小于相应的最大主机值。
可以使用任何适当的算法来选择具有小于或等于最大资源容量或其他阈值的累积资源要求的可能的元组合和元组合列表。例如,使用有效的基于列表的算法来构造对于基于最大主机的网络适当地小的每一个可能的元组合和/或元组合列表。该算法通过例如使用扩展类似于计算Pascal的三角形的形状的三角波表格的方案来在有效的空间和时间中执行该构造。
在一个实施例中,产生节点的列表和它们各自的资源容量,以用在指派元组合列表中。例如,基于网络询问和收集阶段来了解每一个节点的资源容量。在运行时间,可以通过了解每一个主机的容量来将主机的列表从最大向最小分类。
在第六阶段106中,对于一个或多个选择的节点产生元组合指派。在一个实施例中,对于在网络上的每一个节点或节点的子集(例如,工作组)产生元组合指派。可以通过节点的各自的超管理器或通过中央服务器或处理器来产生对于该节点的指派。
利用适当的搜索算法来选择作为相对于节点的资源容量最佳的适合的元组合列表。在一个实施例中,贪婪搜索算法选择作为用于节点的多维最佳适合的元组合的组合。
在一个实施例中,该算法用于选择用于在网络上的多个节点的每一个的元组合。例如,从节点列表96选择最大的未填充或可获得的节点,并且选择和向该节点指派对于该节点最适合的元组合列表。对于在网络中的每一个随后的节点重复该选择,通过选择在网络中的下一个最大节点来进行穿过节点列表96。
例如,选择在网络中的最大的未填充主机,并且选择元组合列表。通过选择单个资源要求类型(或者至少少于在列表的每一个元组合中等价的资源要求类型的总数)来尝试初始的元组合列表选择。示例性初始资源类型是存储器,其可以被单独看作作为从更大的主机最快地消耗的资源瓶颈的存储器。在两个或更多的元组合列表选项在存储器要求中等价的情况下,可以通过哪个列表包括具有最少元素的元组合(即,包括由最大资源要求大小构成的元组合,并且可能在后面处理的较小的硬件配置上更难满足)来将该选项分类。在绘图的情况下,可以基于诸如CPU消耗、网络消耗和其他(使用作为连接断路器的较少元组合的相同手段)的另外的资源类型来执行该同一手段。
结果是向节点或主机的元组合指派。回忆元组合列表不是用于向主机分派的虚拟机的特定的或具体的集合,而是VM类型或组的最佳组合应当看起来像的。
下面示出了示例性元组合指派。在这个示例中,通过相对于存储器要求的等价集合来组织一组VM。VM具有范围从1GB的RAM至8GB的RAM的存储器要求。确定四个等价集合:“MICRO(宏)”集合,其包括具有1GB的存储器资源要求的所有VM;“SMALL(小)”集合,其包括要求2GB的VM;“MEDIUM(中等)”集合,其包括要求4GB的VM;以及,“LARGE(大)”聚合,其包括要求8GB的VM。对于每一个等价集合,考虑多个元组合。例如,包括数量N的VM的SMALL集合对应于N个元组合SMALL 1、SMALL 2、...、SMALL N。
使用如上所述的算法,对于具有20GB的存储器容量的节点提供了从可能的元组合选择的元组合列表:
[(SMALL3:2x3),(MEDIUM1:4x1),(LARGE1:8x1),(MICRO2:1x2)-20]
该元组合列表包括四个元组合:包括来自小集合的三个元素(小集合的每一个元素使用2GB RAM,得出用于这个元组合的6GB RAM使用)、来自中等集合的一个元素(中等集合的每个元素使用4GB RAM,得出用于这个元组合的4GB RAM使用)、来自大集合的一个元素(大集合的每一个元素使用8GB RAM,得出用于这个元组合的8GB RAM使用)和来自宏集合的两个元素(宏集合的每一个元素使用1GB RAM,得出用于这个元组合的2GB RAM使用)的元组合。尾部标签-20指示元组合列表的整体存储量消耗(即,20GB)
元组合列表可以被产生为选择的数据结构,诸如用于主机的元数据。一种示例性数据结构是开放虚拟格式(OVF)包的一部分,例如,在该包中的虚拟机合同(VMC)。
在一个实施例中,多个元组合列表被存储为由服务器超管理器或向主机指派VM的其他处理器可访问的列表。提供了元组合列表的分类的列表,并且以最佳的元组合列表在先。例如,上面的元组合列表示例是一系列或一组具有20GB的组合存储器要求的元组合列表的第一个。指派处理器仅需要选择第一可获得元组合列表来作为指派,并且根据每一个元组合来从每一个等价集合选择VM。
图6图示了用于向选择的节点分配VM的方法110,该方法可以包括向所选择的节点迁移VM和/或包装VM。方法110包括在此所述的一个或多个阶段111-114。结合系统80来描述方法110,但是不限于此。可以通过诸如超管理器或虚拟机管理器(VMM)的、能够监控和/或控制在网络环境中的虚拟机的一个或多个处理器或其他设备来执行方法110。在一个实施例中,方法110包括以所述的顺序的阶段111-114的全部的执行。然而,可以省略特定的阶段,可以增加阶段,或者可以改变阶段的顺序。
在第一阶段111中,诸如超管理器90和/或VM管理器92的节点的处理器产生或接收对于该节点的一个或多个元组合指派。元组合指派包括经由方法110选择的元组合列表的一个或多个。
在第二阶段112中,处理器在运行时间访问元组合指派,并且选择满足在该指派中的每一个元组合的可获得VM(例如,具体、离散VM实例)。在一个实施例中,处理器从列表或列表的组选择元组合列表。
对于每一个元组合,处理器访问与那个元组合相关联的等价集合列表96中的一系列VM。来自等价集合列表96的可获得的VM被选择来向节点分配和/或迁移。
参见如上所述的示例性元组合指派,在那个示例中,管理器92对于由元组合指定的每一个等价集合选择VM的数量。例如,从小集合选择三个VM,从中等集合选择一个VM,从大集合选择一个VM,并且从宏集合选择两个VM。可以适当地排序每一个等价集合,使得可以从每一个列表的顶部选择适当的可获得的VM,由此简化选择。
可以利用各种算法的任何一种来执行该VM的选择。例如,超管理器(例如,在运行时间)可以有效地尝试在修改的最佳适合第一搜索中满足元组合。例如通过下述方式来简化这个任务:对于等价集合98的未分配或未指派的具体候选元素(即,具体VM实例)的每一个该集合,保存被称为“具体实例列表”或VM列表99的一个链接列表。如果关于元组合指定可获得N个,则超管理器从该列表选择前N个项目。
在一个实施例中,对于节点提供多个元组合指派。如果不能填充最佳的元组合指派,则可以通过允许处理器选择另一个列表的期望来组织该指派。例如,如果存在不足的具体实例,则超管理器可以上一个台阶,并且选择下一个最佳的元组合指派,并且尝试满足它直到找到具体的满意。
在一个实施例中,在选择时,可以相对于任何另外的标准或限制查看任何VM候选选择。例如,可以查看每一个列出的VM以便不共置列入黑名单的虚拟机对,并且可以优先地布置合同指定的VM对。
在一个实施例中,通过在网络中的节点上动态地映射VM的现有分配来保持用于表示可获得和分配的VM(例如,VM目录94和/或VM列表99)的列表或其他数据结构。在这个实施例中,方法110包括:将用于服务器或其他节点的所选择的元组合指派与现有的分配作比较,以确定现有的分配是否匹配或否则满足由元组合指派规定的分配。
可以保存VM列表以在运行时间期间监控VM分配。在列表和/或映射中的每一个现有的VM可以被标注与元组合符号相同或充分类似的符号,使得如果已经在网络上存在与规定元组合分配之一的精确的匹配或类似,则可以省略资源的重新分配。
可以在选择阶段期间协商动态更新的VM列表或映射,以确定是否可获得至少类似于由元组合指派表示的最佳组合的VM的现有的分配的组合。例如,使用一种算法,该算法通过确定迁移开销来选择VM的现有的接近组合,以将这样的现有组合转换为由元组合指派规定的最佳分配。可以通过下述方式来确定迁移开销:查看例如需要从节点撤出的VM的数量外加需要与那些虚拟机的RAM大小一起被输入的VM的数量。这些值允许人们预测(基于已知的网络带宽和现有的通过量公式)到优化布置的时间以及被迁移的虚拟机的可能扰动的持续时间。这可以允许处理器进行迁移决定,其导致现有的虚拟机的更少的扰动。VM列表或映射也可以包括对于相对重力的给定虚拟机或一组虚拟机的指定,通过这一点,那些机器趋向于不被居住迁移。可以避免这些VM的迁移,并且在列表中的其他VM当动态重新平衡需要出现时可以被迁移到它们。
在第三阶段113中,可获得的VM的列表被更新以反映已经分配或新的不可获得的VM。例如,当分配来自VM目录和/或等价集合列表98的具体VM时,从其去除它们。
在第四阶段114中,向适当的节点分配或包装所选择的VM。可以通过下述方式来实现这一点:从在网络上的存储位置或另一个节点迁移或移动所选择的VM。
技术效果和益处包括通过最佳地向网络节点或主机分配或包装VM来提供网络资源的有效利用。例如,在此所述的系统和设备例如通过禁止或动态地将一些主机掉电来允许向最小数量的主机上包装虚拟机,以由此允许节能和高效。可以在可接受的时间范围内执行在此所述的方法,以避免在执行网络请求中的延迟。
现有技术的方法不允许算法的有效确定。例如,强力方法太慢以至于在云计算应用中不可行。同样,多线程算法证明对于中等至大的云应用(例如,超过大约30个VM)太慢。一般地求解VM分配被称为与渐缩问题相关的非确定性多项式困难问题以及其他n维指定包装问题。因此,计算在H个主机上的N个虚拟机的所有可能的包装是N^H个可能组合,并且即使与许多线程并行地计算也对于短的运行时间(动态频繁重新加强)是棘手的。在此所述的实施例提供了用于求解分配问题的方法,该方法处理这些问题并且提供了改善的启发求解技术。
在此使用的术语仅用于描述特定实施例的目的,并且不意欲限制本发明。支持使用的单数形式“一个”和“该”意欲也包括复数形式。除非上下文清楚地另外指示。进一步可以明白,术语“包括”和/或“包含”当在本说明书中使用时指定所述特征、整数、步骤、操作、元件和/或部件的存在,但是不排出一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组的存在或增加。
在所附的权利要求中的所有部件或步骤外加功能元素的对应的结构、材料、行为和等同内容意欲包括用于与具体要求保护的其他要求保护的元素相结合地执行功能的任何结构、材料或行为。为了例示和说明的目的,已经提供了在本说明书内公开的实施例的描述,但是该说明不意欲是穷尽的或限于所公开的形式。在不偏离本发明的实施例的范围和精神的情况下,许多修改和变化对于本领域内的普通技术人员是显然的。选择和描述实施例以便最佳地解释本发明的原理和实际应用,并且使得其他本领域内的普通技术人员能够明白用于具有适合于所考虑的特定用途的各种修改的各个实施例的发明布置。
而且,本领域的技术人员可以明白,本发明的方面可以实现为系统、方法或计算机程序产品。因此,本发明的方面可以采用以下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例,它们可以全部被一般在此称为“电路”、“模块”或“系统”。此外,本发明的方面可以采用在其中包含计算机可读程序代码的一个或多个计算机可读介质中包含的计算机程序产品的形式。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线或半导体的系统、设备或装置或者以上的任意合适组合。计算机可读存储介质的更具体的示例(非穷尽的列表)包括下述部分:具有一条或多条导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备或者上述的任意合适的组合。在本文的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、设备或者装置使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的信号可以采用多种形式的任何一种,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是不是计算机可读存储介质的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、设备或者装置使用或者与其结合使用的程序。
在计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆线缆、RF等等或者上述的任意合适的组合。
可以以一种或多种编程语言的组合来编写用于执行本发明的方面的操作的计算机程序代码,所述编程语言包括:面向对象的编程语言,诸如Java、Smalltalk或C++等;以及,常规的过程式编程语言,诸如“C”编程语言或类似的编程语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上并且部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任意种类的网络连接到用户的计算机,或者,可以建立到外部计算机的连接(例如,利用因特网服务提供商来通过因特网连接)。
上面参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器,使得通过计算机的处理器或其它可编程数据处理设备执行的指令产生实现流程图和/或框图的一个或多个方框中规定的功能/操作的设备。
也可以把这些计算机程序指令存储在能使得计算机、其它可编程数据处理设备或其他设备以特定方式工作的计算机可读介质中,使得存储在计算机可读介质中的指令产生出一个包括实现流程图和/或框图的一个或多个方框中规定的功能/操作的指令的制造品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理设备或其它设备上,以使得在计算机、其它可编程数据处理设备或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程设备上执行的指令能够提供实现流程图和/或框图的一个或多个方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (16)

1.一种用于确定虚拟机向网络节点的分配的方法,包括:
被配置为在网络上运行的虚拟机(VM)的列表的产生和访问的至少一个,每个VM具有至少一个网络资源要求,在所述列表中的每一个VM与所述至少一个网络资源要求的大小相关联;
选择VM的至少一个等价集合;
从所述至少一个等价集合的VM产生多个元组合,每一个元组合表示从所述等价集合选择的多个单独VM的所有可能的组合;
确定在所述网络中的节点的最大资源容量;并且,
向所述节点提供元组合指派,所述元组合指派包括具有小于或等于所述最大资源容量的累积资源要求大小值的一组元组合;
其中选择所述至少一个等价集合包括:至少选择具有第一资源要求大小的VM的第一等价集合和具有与所述第一资源要求大小不同的第二资源要求大小的第二等价集合。
2.根据权利要求1所述的方法,其中,产生所述多个元组合包括:至少从所述第一等价集合产生第一多个元组合,并且从所述第二等价集合产生第二多个元组合。
3.根据权利要求1所述的方法,其中,提供所述元组合指派包括:产生多个组的不同元组合,并且选择最接近最大资源容量的组。
4.根据权利要求1所述的方法,其中,提供所述元组合指派包括:基于贪婪搜索算法来选择所述元组合的组,以找到表示对于所述节点的多维最佳适合的组。
5.根据权利要求1所述的方法,其中,提供所述元组合指派包括:产生具有小于或等于所述最大资源容量的组合资源要求的所有可能组的元组合的列表。
6.根据权利要求1所述的方法,其中,所述网络包括多个节点,确定最大资源容量包括确定所述多个节点的每一个的最大资源容量,并且提供所述元组合指派包括产生多个元组合指派,并且对于所述多个节点的每一个提供元组合指派。
7.根据权利要求1所述的方法,其中,所述网络包括多个节点,并且所述最大资源容量是在所述网络中的最大节点的所述最大资源容量。
8.根据权利要求1所述的方法,其中,从存储器大小、CPU核心的数量、所需的网络通过量和所需的盘通过量的至少一个选择所述资源要求。
9.根据权利要求1所述的方法,其中,每一个元组合表示多个VM,而不具体列举单独的VM。
10.一种用于确定虚拟机向网络节点的装置,包括:
在网络节点和网络控制设备的至少一个中布置的至少一个处理设备;以及
其上存储了指令的存储设备,所述指令当被所述至少一个处理设备执行时,使得所述装置:
执行被配置为在网络上运行的虚拟机(VM)的列表的产生和访问的至少一个,每个VM具有至少一个网络资源要求,在所述列表中的每一个VM与所述至少一个网络资源要求的大小相关联;
选择VM的至少一个等价集合;
从所述至少一个等价集合的VM产生多个元组合,每一个元组合表示从所述等价集合选择的多个单独VM的所有可能的组合;
确定在所述网络中的节点的最大资源容量;并且,
向所述节点提供元组合指派,所述元组合指派包括具有小于或等于所述最大资源容量的累积资源要求大小值的一组元组合;
其中选择所述至少一个等价集合包括:至少选择具有第一资源要求大小的VM的第一等价集合和具有与所述第一资源要求大小不同的第二资源要求大小的第二等价集合。
11.根据权利要求10所述的装置,其中,产生所述多个元组合包括:至少从所述第一等价集合产生第一多个元组合,并且从所述第二等价集合产生第二多个元组合。
12.根据权利要求10所述的装置,其中,所述装置被配置来产生多个组的不同元组合,并且选择最接近最大资源容量的组来作为所述元组合指派。
13.根据权利要求10所述的装置,其中,所述装置被配置来基于贪婪搜索算法来选择所述元组合的组,以找到表示对于所述节点的多维最佳适合的组。
14.根据权利要求10所述的装置,其中,所述装置被配置来提供产生具有小于或等于所述最大资源容量的组合资源要求的所有可能组的元组合的列表。
15.根据权利要求10所述的装置,其中,所述网络包括多个节点,并且所述最大资源容量是在所述网络中的最大节点的所述最大资源容量。
16.根据权利要求10所述的装置,其中,所述网络是云计算网络。
CN201410042069.0A 2013-01-28 2014-01-28 使用等价集合来计算优化虚拟机分配的方法和装置 Active CN103970607B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/751,416 2013-01-28
US13/751,416 US9329888B2 (en) 2013-01-28 2013-01-28 Computing optimized virtual machine allocations using equivalence combinations

Publications (2)

Publication Number Publication Date
CN103970607A CN103970607A (zh) 2014-08-06
CN103970607B true CN103970607B (zh) 2017-06-23

Family

ID=51224274

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410042069.0A Active CN103970607B (zh) 2013-01-28 2014-01-28 使用等价集合来计算优化虚拟机分配的方法和装置

Country Status (2)

Country Link
US (1) US9329888B2 (zh)
CN (1) CN103970607B (zh)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9778718B2 (en) 2009-02-13 2017-10-03 Schneider Electric It Corporation Power supply and data center control
US9519517B2 (en) 2009-02-13 2016-12-13 Schneider Electtic It Corporation Data center control
EP2795424A4 (en) 2011-12-22 2016-06-01 Schneider Electric It Corp SYSTEMS AND METHOD FOR REDUCING THE ENERGY STORAGE REQUIREMENTS IN A DATA CENTER
EP2973071B1 (en) * 2013-03-15 2020-05-06 Fluke Corporation Automatic recording and graphing of measurement data
US20140280977A1 (en) * 2013-03-15 2014-09-18 Servicemesh, Inc. Systems and methods for evaluating computing resources
US9411622B2 (en) * 2013-06-25 2016-08-09 Vmware, Inc. Performance-driven resource management in a distributed computer system
US10193963B2 (en) * 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
IN2013CH05013A (zh) 2013-11-07 2015-05-08 Schneider Electric It Corp
US10048976B2 (en) * 2013-11-29 2018-08-14 New Jersey Institute Of Technology Allocation of virtual machines to physical machines through dominant resource assisted heuristics
JP6215481B2 (ja) * 2014-08-13 2017-10-18 株式会社日立製作所 クラウド環境におけるitインフラ管理のための方法とその装置
JP6190969B2 (ja) * 2014-08-27 2017-08-30 株式会社日立製作所 マルチテナントリソース調停方法
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9699085B2 (en) * 2014-11-13 2017-07-04 Cisco Technology, Inc. Periodic advertisements of host capabilities in virtual cloud computing infrastructure
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
CN104468803B (zh) 2014-12-12 2018-02-09 华为技术有限公司 一种虚拟数据中心资源映射方法和设备
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9471775B1 (en) 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9870246B2 (en) * 2015-02-09 2018-01-16 Dell Products L.P. Systems and methods for defining virtual machine dependency mapping
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9727366B2 (en) * 2015-04-23 2017-08-08 International Business Machines Corporation Machine learning for virtual machine migration plan generation
CN105049475B (zh) * 2015-05-26 2018-10-30 重庆房慧科技有限公司 大规模社区的数据高效存储优化方法及系统
CN104994136B (zh) * 2015-05-26 2018-10-09 重庆房慧科技有限公司 大规模社区的数据存储优化方法及系统
US9946564B2 (en) 2015-06-23 2018-04-17 International Business Machines Corporation Adjusting virtual machine migration plans based on alert conditions related to future migrations
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
WO2017068310A1 (en) 2015-10-21 2017-04-27 Hewlett Packard Enterprise Development Lp Assignment of processes to computational resources
CN105245536B (zh) * 2015-10-26 2018-07-03 中国互联网络信息中心 一种基于安全评价的云数据中心资源分配方法
US10067803B2 (en) * 2015-11-25 2018-09-04 International Business Machines Corporation Policy based virtual machine selection during an optimization cycle
CN105553975A (zh) * 2015-12-14 2016-05-04 上海红神信息技术有限公司 一种用于提供网络服务的方法、装置和系统
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US9977691B2 (en) 2016-06-29 2018-05-22 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions based on communication between frontends
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10891547B2 (en) * 2016-08-23 2021-01-12 International Business Machines Corporation Virtual resource t-shirt size generation and recommendation based on crowd sourcing
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
CN108664324B (zh) * 2017-03-30 2022-02-01 微软技术许可有限责任公司 云服务实例分配的更新日志
CN108667874A (zh) * 2017-03-31 2018-10-16 微软技术许可有限责任公司 使用高速缓存和采样的有效云服务实例
CN107783798A (zh) * 2017-10-25 2018-03-09 深圳市瑞驰信息技术有限公司 可动态调整服务器数量的存储架构
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
CN110875934B (zh) * 2018-08-29 2023-01-31 阿里巴巴集团控股有限公司 一种基于多租户服务的业务分组方法和装置
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US10956211B2 (en) * 2019-02-25 2021-03-23 GM Global Technology Operations LLC Method and apparatus of allocating automotive computing tasks to networked devices with heterogeneous capabilities
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11307889B2 (en) 2020-05-28 2022-04-19 International Business Machines Corporation Schedule virtual machines
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
CN112769629A (zh) * 2021-02-26 2021-05-07 北京百度网讯科技有限公司 带宽分配方法、装置、电子设备及存储介质
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN102299842A (zh) * 2011-05-19 2011-12-28 江苏电力信息技术有限公司 一种生产调度时延感知的网格资源协同分配方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732699B1 (en) * 2006-10-27 2014-05-20 Hewlett-Packard Development Company, L.P. Migrating virtual machines between physical machines in a define group
US9354960B2 (en) * 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US8789043B2 (en) * 2009-03-24 2014-07-22 International Business Machines Corporation Optimized placement planning for virtual machines in a network by breaking relocation graph into one or more cores to apply different solutions
US8117613B2 (en) 2009-04-08 2012-02-14 Microsoft Corporation Optimized virtual machine migration mechanism
US8464267B2 (en) * 2009-04-10 2013-06-11 Microsoft Corporation Virtual machine packing method using scarcity
US8423998B2 (en) 2010-06-04 2013-04-16 International Business Machines Corporation System and method for virtual machine multiplexing for resource provisioning in compute clouds
US9083658B2 (en) * 2012-09-24 2015-07-14 Steelseries Aps Method and apparatus for delegating resources between devices
US9223608B2 (en) * 2012-12-14 2015-12-29 Vmware, Inc. Systems and methods for finding solutions in distributed load balancing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488098A (zh) * 2009-02-13 2009-07-22 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
CN102299842A (zh) * 2011-05-19 2011-12-28 江苏电力信息技术有限公司 一种生产调度时延感知的网格资源协同分配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Automated Clustering of Virtual Machines based on Correlation of Resource Usage;Canali et al;《Journal of Communication Software & Systems》;20121231;全文 *

Also Published As

Publication number Publication date
US20140215073A1 (en) 2014-07-31
CN103970607A (zh) 2014-08-06
US9329888B2 (en) 2016-05-03

Similar Documents

Publication Publication Date Title
CN103970607B (zh) 使用等价集合来计算优化虚拟机分配的方法和装置
CN103814358B (zh) 服务器群内的虚拟机放置
CN104424013B (zh) 在计算环境中部署虚拟机的方法和设备
CN106020940B (zh) 用于确定数据集的放置的存储层级的方法和系统
CN105988878B (zh) 用于动态地管理虚拟化环境中的工作负荷放置的方法及系统
Li et al. Cloud task scheduling based on load balancing ant colony optimization
CN103299274B (zh) 确定运行图像的最佳计算环境的系统和方法
US10310908B2 (en) Dynamic usage balance of central processing units and accelerators
CN104205056B (zh) 跨多个云的工作负荷的动态分配的方法和系统
CN103810036B (zh) 移动性操作资源分配
Lee et al. Performance analysis based resource allocation for green cloud computing
CN104679591B (zh) 用于在云环境中进行资源分配的方法和装置
CN103455486B (zh) 安置数据库的方法和系统
Alguliyev et al. PSO-based load balancing method in cloud computing
CN105843683B (zh) 用于动态优化平台资源分配的方法、系统和设备
Wu A tunable workflow scheduling algorithm based on particle swarm optimization for cloud computing
US20150213106A1 (en) Methods and systems for recommending cloud-computing services to a customer
JP2021504780A (ja) 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け
KR101557747B1 (ko) 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법
JP2023101462A (ja) コンピュータ実装方法、システム及びコンピュータプログラム(Kubernetesにおけるビッグデータに関するデータ局所性)
Mangalampalli et al. Cloud computing and virtualization
Prakash et al. An efficient workflow scheduling approach in cloud computing
JP2023544192A (ja) ファンクション実行のためのコンピューティング・リソースのタグ・ドリブン・スケジューリング
Garg et al. Evaluation and improvement of load balancing using proposed cuckoo search in CloudSim
CN115516435A (zh) 基于混合存储器的推理计算平台中数据结构的优化布置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant