CN107548549B - 分布式计算环境中的资源平衡 - Google Patents

分布式计算环境中的资源平衡 Download PDF

Info

Publication number
CN107548549B
CN107548549B CN201680025482.3A CN201680025482A CN107548549B CN 107548549 B CN107548549 B CN 107548549B CN 201680025482 A CN201680025482 A CN 201680025482A CN 107548549 B CN107548549 B CN 107548549B
Authority
CN
China
Prior art keywords
placement
plan
job
placement plan
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
CN201680025482.3A
Other languages
English (en)
Other versions
CN107548549A (zh
Inventor
M·斯奈德
A·格普塔
陆迅
李阳
G·卡基沃亚
曾华军
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 CN107548549A publication Critical patent/CN107548549A/zh
Application granted granted Critical
Publication of CN107548549B publication Critical patent/CN107548549B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • 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

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)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

在各种实现方式中,提供了分布式计算环境中的资源平衡方法和系统。接收客户端定义的资源度量,其表示云计算平台的节点资源。生成用于服务应用的作业实例的布置计划。布置计划包括可执行以实现作业实例在节点上的目标布置的一个或多个移动。确定布置计划符合布置规则。每个布置规则指示作业实例中的给定作业实例是否适合布置在节点中的给定节点上。基于确定作业实例的目标布置基于由客户端定义的资源度量所表示的资源改善了跨越云计算平台的节点的资源平衡,来执行布置计划。

Description

分布式计算环境中的资源平衡
技术领域
本公开的实施例总体上涉及云计算,具体地涉及用于资源平衡的方法和系统。
背景技术
云计算平台可以为不同类型的应用提供构建、部署和管理功能性。云计算平台可以包括许多大型数据中心,其通常包括运行软件包集合的有组织的硬件集群,诸如web服务器、数据库服务器等。云计算平台可以提供托管资源集合,诸如处理器、操作系统、软件和可以被用于云计算平台的客户端的应用的其他部件。客户端可以从中央服务器或管理系统请求实例化应用。例如,客户端可能希望从云端设置和实例化虚拟服务器,以创建店面来销售产品或服务。用户可以租用或订阅资源集合,以使用那些预先定义的资源构建和运行实例化的应用。
发明内容
提供该发明内容以简化形式介绍下文在具体实施方式中进一步描述的一系列概念。该发明内容并非旨在标识所要求保护的主题的关键特征或基本特征,也不旨在孤立地被用于帮助确定所要求保护的主题的范围。
本公开部分地涉及平衡分布式计算环境(例如,云计算平台)中的资源。在一些方面中,本公开涉及在云计算平台上为服务应用生成和选择布置计划。每个服务应用可以包括布置在云计算平台的节点上的一个或多个作业实例,使得作业实例可以消耗在那些节点上可用的资源。尽管存在在选择和生成在云计算平台上执行的布置计划时可能需要考虑的潜在的大量因素,但可以有效且高效地生成合适的布置计划。
在一些方面中,本申请涉及生成和选择作业实例的布置计划,其改善跨越云计算平台的节点的资源度量的平衡。每个资源可以由相应的资源度量来表示。在一些情况下,资源度量中的至少一些资源度量可以由客户端定义,并且可以由客户端分配给作业实例。资源度量中的其他资源度量可以由系统定义。
在其他方面中,本申请涉及生成和选择符合布置规则的用于作业实例的布置计划,该布置计划指示给定作业实例是否适合给定节点。在一些情况下,布置规则中的至少一些布置规则可以由客户端定义,并且可能在云计算平台的操作期间由客户端动态改变。布置计划中的其他布置计划可能由系统定义。
附图说明
下文参考附图对本发明进行详细描述,其中
图1是其中可以采用本文中所描述的实施例的示例性分布式计算环境的框图;
图2是根据本文中所描述的实施例的用于平衡分布式计算环境中的资源的示例性系统的示意图;
图3是示出了根据本文中所描述的实施例的用于资源平衡的示例性方法的流程图;
图4是示出了根据本文中所描述的实施例的用于资源平衡的示例性方法的流程图;
图5是示出了根据本文中所描述的实施例的用于资源平衡的示例性方法的流程图;以及
图6是适用于实现本文中所描述的实施例的示例性计算环境的框图。
具体实施方式
在本文中对本发明的实施例的主题进行具体描述以满足法定要求。然而,该描述本身并不旨在限制该专利的范围。相反,发明人已经设想了所要求保护的主题还可以以其他方式体现,以结合其他现有技术或未来技术来包括与本文档中描述的步骤类似的不同步骤或步骤的组合。而且,尽管术语“步骤”和/或“框”在本文中可以用于意味着所采用的方法的不同元件,但是术语不应被解释为暗示在本文中公开的各种步骤之中或之间的任何特定顺序,除非和除了明确描述了个体步骤的顺序。
出于本公开的目的,单词“包括(including)”具有与单词“包括(comprising)”相同的广泛含义。另外,除非另有说明,否则单词“一(a)”和“一个(an)”包括复数以及单数。因此,例如,当存在一个或多个特征时,满足“特征”的约束。还有,术语“或(or)”包括结合性的、分离性的、以及两者(因此,“a或b”既包括a或b,也包括a和b)。
出于下文的详细讨论的目的,参考由云计算平台支持的节点和客户端设备操作环境对实施例进行了描述,节点和客户端设备操作环境包括利用云计算平台上的应用和服务的客户端设备。然而,本文中所描述的方法可以在具有本文中所描述的功能部件的备选配置的不同类型的操作环境中执行。如此,本文中所描述的实施例仅仅是示例性的,并且设想这些技术可以扩展到其他实现方式的上下文。
分布式存储系统可以在云计算平台上实现,该云计算平台跨越不同的数据中心和地理区域运行云应用和服务。云计算平台可以实现组织(fabric)控制器部件,用于提供和管理云应用和服务的资源分配、部署/升级和管理。通常,云计算系统以分布式方式存储数据或运行应用和服务。云计算平台的应用和服务部件可以包括节点(例如,计算设备、处理单元或服务器机架中的刀片、虚拟机、物理机),其被分配以运行应用和服务的一个或多个部分,其在本文中还被称为“作业”。如本文中所使用的,“节点”是指表示经定义的计算资源的池或组中的、概念上的单元。
计算资源由诸如服务器之类的物理机提供,服务器可以分为虚拟机或物理机,这些虚拟机或物理机分别在特定于每个服务应用的支持资源和/或操作系统的个性化计算环境中并发运行单独的服务应用。进一步地,每个应用或服务可以被分为作业,使得每个功能部分能够在单独的机器(物理或虚拟)上运行。在云计算平台中,多台服务器可以被用于运行应用和服务,以执行群集中的数据存储操作。具体地,这些服务器可以独立地执行数据操作,但是被显露为单个设备,其被称为集群。每个节点可以与集群中的一个或多个服务器和/或虚拟机相对应。
云计算平台上的存储服务可以是使用组织控制器部件支持的服务。存储服务可以负责管理跨越磁盘的作业的复制和数据布置,以及对存储集群的数据和应用业务量进行资源平衡。存储服务可以负责管理大量存储的访问。存储服务可以实现作为存储节点或服务器的N个机架的集群的存储戳记,以及管理存储戳记的位置服务。特定地,位置服务可以分配位置戳记并且跨越存储戳记对它们进行管理以用于灾难恢复和资源平衡。
支持存储服务的云计算平台可以支持几个不同客户端同时请求访问相同数据(例如,文件或二进制大对象(BLOB))或相同数据的各部分(例如,数据块),请求实例化新服务应用,为服务应用提供资源分配/需求,以及改变实例化服务应用的资源分配/需求。为了资源平衡和其他资源分配的目的,存储服务可以限制对具体数据的访问。
常规云计算平台可以提供资源的简单和通用表示,从而简化资源平衡,或者避免在大量因素影响平台上的平衡时,由于难以充分平衡资源而造成的完全资源平衡。进一步地,这些云计算平台缺乏稳健而动态的环境,客户端可以在其中表达对其应用的请求,需求和要求,这些请求,需求和要求可能会随时间而改变。
尽管在云计算平台中可能需要考虑潜在的大量因素,但是本公开的实施例提供了以有效且高效的方式来平衡资源。可以基于由客户端和/或系统定义的资源度量来平衡资源。进一步地,资源可以在平衡的同时尊重由客户端和/或系统定义的布置规则。当应用在平台上运行时,将资源分配给应用以及资源本身可以由客户端动态改变。应用的布置规则可以类似地动态改变。随着不同客户端向平台提供不同的或经修改的布置规则、资源和分配,云计算平台的作业实例的合适布置和资源平衡的概念也会发生动态改变。
现在,参考图1,图1图示了其中可以采用本公开的实现方式的示例性分布式计算环境100。具体地,图1示出了包括云计算平台110的高级体系架构。应当理解,本文中描述的这种布置和其他布置仅作为示例来阐述。除了所示出的那些布置之外或代替所示出的那些布置,可以使用其他布置和元件(例如,机器、接口、功能、命令和功能的分组等),并且一些元件可以完全省略。进一步地,本文中所描述的元件中的许多元件是功能实体,其可以被实现为独立的部件或分布式部件,或以任何合适的组合和位置与其他部件结合来实现。本文中被描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。比如,各种功能可以由执行存储在存储器中的指令的处理器来执行。
注意,在本公开的范围内,可以采用任何数目个部件来实现分布式计算环境100的所需功能性。尽管图1的各个部件为了清楚起见用线表示,但是实际上,描绘各种部件的轮廓不是如此清楚的,并且按比喻的说法,线可能更准确地是灰色或模糊的。进一步地,尽管图1的一些部件被描绘为单个部件,但是描绘在本质上和数目上是示例性的,而不被解释为对本公开的所有实现方式的限制。
云计算平台110包括在跨越不同数据中心和地理区域运行云服务的云计算基础设施。数据中心可以支持多个机架120,每个机架120包括一个或多个服务器。例如,图1示出了包括服务器130的机架122,其中服务器132被单独标记。云计算平台110可以实现组织控制器140,其是用于提供和管理资源分配、部署/升级和云服务管理的部件。
通常,云计算平台110用于以分布式方式存储数据或运行服务应用。云计算平台110可以包括公共云、私有云或专用云的任何组合。云计算平台110可以包括数据中心,其被配置成托管和支持具体应用或服务中的端点的操作。术语“服务应用”,“应用”或“服务”在本文中可互换使用,并且广泛地指代在数据中心的顶部运行的或访问数据中心内的存储和计算设备位置的任何软件或软件的各部分。
在分布式计算环境100中,诸如服务器130之类的服务器被包括在诸如机架122之类的机架中。服务器被分配以运行租户的服务应用的一个或多个部分。服务器可以被配备有在服务器上运行定义的软件栈的诸如主机150之类的主机(例如,操作系统或运行时环境)。服务器还可以被配置成在云计算平台110内执行专门功能性(例如,计算服务器或存储服务器)。支持具体客户、客户或租户的云计算平台110的服务应用部件可以被称为租户基础设施或租赁物。
当分布式计算环境100的服务器正在支持单独的服务应用时,服务器中的至少一些服务器可以可选地被划分为可以并发地运行单独的服务应用的虚拟机(例如,虚拟机152和虚拟机154)。如本文中所使用的,除非另有规定,否则“机器”可以指虚拟机或物理机。这些机器可以被配置成由云计算平台110中的资源160(例如,硬件资源和软件资源)支持的个性化计算环境。云计算平台100的节点被定义为瓜分云计算平台100的资源(例如,资源160)。节点可以与一个或多个物理机和/或虚拟机相对应,其示例由图1的节点151和153所示。在一些情况下,每个虚拟机与节点相对应。可以设想,资源可以被配置成用于特定服务应用。进一步地,每个服务应用可以被划分为功能部分或作业,使得每个功能部分能够在单独的机器或节点上运行。在云计算平台110中,多个服务器可以用于运行服务应用并且在集群中执行数据存储操作。具体地,这些机器可以独立地执行数据操作,但是作为被称为集群的单个设备被显露给客户端。
在一些情况下,服务应用或其一部分可以与服务应用的作业相对应,并且作业的一个或多个实例可以并发地托管在云计算平台110上。如本文中所使用的,术语“作业”通常可以与用于执行服务应用的具体功能方面的部件程序相对应,并且“作业实例”可以与作业的实例化相对应。在这方面,服务应用的实例可以包括一个或多个作业实例。
在一些方面中,可以可选地使用服务应用的功能部分的对应的模板描述来实现作业。模板描述可以包括以下一项或多项:用于实现或实例化作业的计算机代码的指示,作业所需的托管环境内的条件,要应用于作业的配置设置,以及用于与其他作业、元件等通信的作业的端点集合。在一些情况下,作业的配置设置可能包括由作业的所有实例共享的集体设置或作业的每个实例特有的个体设置。在示例性实施例中,作业各自表示服务应用的特定类别的部件。通常,服务模型描画了在节点内布置一个或多个作业中的每个作业的多少实例,其中实例中的每个实例都是具体类别的部件或作业的复制。换句话说,每个作业可以表示每个类别的部件的实例的集合,其中服务应用可以具有用于执行其功能的任何数目个类别的部件。
在一些实现方式中,服务应用的多个实例可以并发地托管在云计算平台110上。在本公开的一些方面中,实例中的一个或多个实例可以是服务应用的主要实例,并且实例中的一个或多个实例可以是服务应用的辅助实例。应用的主要实例可以是指应用的活动或实况(live)实例化,并且应用的辅助实例可以是指应用的活动或实况实例化(例如,对应的主要实例)的备份或副本。应用的每个主要实例可以具有不包括辅助实例的应用的任何数目个相关联的辅助实例。在这方面中,应用的主要实例可以包括一个或多个主要作业实例,并且应用的辅助实例(如果存在)可以包括一个或多个辅助作业实例。
尽管组织控制器140在图1中被独立地示出,但是在一些实现方式中,组织控制器140是跨越云计算平台110的各种节点中的任一节点分布的有状态应用。换句话说,若干个组织控制器作业实例可以在各种节点、机架、数据中心、和/或云计算平台110的地理区域中运行,并且可以互相协调地动作以实现其功能性。此外,实例中的一个或多个实例可以被选定为主要实例,并且一个或多个其他实例可以是辅助实例。
在本文中还称为租户的客户端可以采用客户端设备,诸如客户端设备180,其可以链接到云计算平台110中的一个或多个服务应用。客户端设备可以是任何类型的计算设备,其例如可以与参考图6描述的计算设备600相对应。客户端设备可以被配置成向云计算平台110发布命令,以及提供与客户端相关联的作业的模板描述的信息,其包括作业中的一个或多个作业的配置设置。在实施例中,客户端设备可以通过虚拟互联网协议(IP)和资源平衡器或将通信请求引导到云计算平台110中的指定端点的其他装置与服务应用进行通信。云计算平台110的部件可以通过网络(未示出)彼此通信,网络可以包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。
现在,参考图2,图2图示了用于平衡分布式计算环境中的资源的示例性系统200。分布式计算环境可以与图1的分布式计算环境100相对应。因此,图2中的节点212,214,216和218可以与分布式计算环境100的各种节点中的任一个节点相对应,诸如服务器130和/或虚拟机152和154,和/或其他节点。系统200包括应用布置部件210,其被配置成选择用于布置服务应用的作业实例的节点,诸如作业实例220a,220b,220c,220d,222a,222b,222c和224a,224b和224c。
作业实例可以布置在所选择的节点上,其中所布置的作业实例可以消耗其对应节点的各种资源中的任何资源。具体地,每个节点具有相应的资源(例如,图1中的资源160中的),其可供被布置在节点上的一个或多个作业实例消耗。然而,有效地利用云计算平台的资源,同时有效地满足客户端及其服务应用的需求以及系统本身的需求,可能在决定在哪里布置作业实例最佳的过程中引入过多的因素。这些因素可以快速膨胀,从而确定最佳布置成为NP困难问题。
在小规模的情况下,仍然可以使用可接受的计算资源量在可接受的时间量内做出布置决定。然而,在具有许多节点、作业实例、数据中心和/或客户端的大型云计算平台中,所需的时间和计算资源量可能会迅速变得令人望而却步。例如,布置决定中考虑的因素可能不断改变和演变,使得到确定和执行最佳布置的时候,配置可能对于系统的当前状态不再是最佳的。常规云计算平台通过大大限制和预先定义所考虑的因素的数目和类型以及平台的规模,来避免这个问题。
根据本公开的各种实现方式,即使考虑到关于大规模云计算平台的大量因素,应用布置部件210也可以布置作业实例,同时还有效且高效地满足作业实例、客户端和系统本身的需要。如稍后将详细描述的那样,应用布置部件210可能不一定总是针对这些因素选择最佳布置计划,但是仍然可以选择接近最优和有效的布置计划。进一步地,可以使用有限量的计算资源快速确定布置计划,以满足分布式计算环境的需求。
下文对各种因素的一些示例进行了描述,应用布置部件210在布置作业实例时可以考虑它们的任何组合。如果应用布置部件210在布置作业实例时要利用传统途径,则考虑到这些因素可能是不可实现的或非常不切实际的。
在各种实现方式中,应用布置部件210可以基于诸如布置规则230之类的布置规则和诸如资源度量232之类的资源度量来生成用于作业实例的布置计划。每个资源度量定义并且量化云计算平台中的相应资源。进一步地,每个布置规则可以指示给定节点是否适合给定作业实例。在布置作业实例时,应用布置部件210可以选择用于作业实例的节点以符合布置规则,并且进一步实现跨越平台的节点对资源利用的平衡。
平衡资源为云计算平台带来许多潜在的益处。云计算平台中的资源平衡不佳或变化的条件可能会导致偏斜(skew)问题,其中一些节点的资源的利用显著大于其他节点。例如,被重度使用的节点,或热节点更容易发生故障和瓶颈源,其可以通过将工作分流到未充分利用的节点或冷节点来缓解,这些节点正在被支付并处于相对空闲的状态。此外,通过扩展资源利用,单个故障不太可能占用平台上的大部分工作负载。可能部分地需要作业实例的有效布置,从而确保作业实例布置在节点上,使得对于资源中的每个资源,资源利用跨越节点被平衡。
资源度量包括应用布置部件210用于量化关于给定资源的节点的利用的信息。例如,资源度量可以通过作业实例来量化节点的给定资源的实际利用和/或所请求的利用。在一些情况下,应用布置部件210可以确定给定节点是否能够在资源度量方面充分地服务于给定作业实例。在各种实现方式中,应用布置部件210采用资源度量232以平衡跨越云计算平台的节点定义的对应的资源。
使用一些途径,应用布置部件210在资源平衡中所考虑的因素的数目可以通过使用从作业实例/应用可能需要的多种实际资源中高度抽象出的、有限和预先定义的资源定义来表示系统中的资源来限制。例如,使用被称为工作单元的单个资源,每个作业实例可以具有所需数目个工作单元,并且每个节点可以具有可以由该节点提供的工作单元的最大容量。因此,由于变量的数量很少,所以作业实例可以以简单直接的方式最佳地布置到节点上。然而,除非作业实例在资源利用中是高度同质的,否则这种途径易于将实际资源过度分配到作业实例,而并不有效地平衡这些资源。例如,工作单元资源可以封装中央处理单元(CPU)资源和磁盘空间资源两者。因此,要求低CPU利用和中等磁盘空间的作业实例可能被分配与要求高CPU利用和中等磁盘空间的作业实例相同的资源量。如此,相对于某些资源,节点可能没有得以充分利用。
根据本公开的各种实现方式,使用资源度量,应用布置部件210可以将作业实例布置在代表作业实例和客户端所需的实际资源而不限于有限和预先定义的资源的节点上。示例性资源度量与CPU资源、磁盘空间资源、存储器(例如,RAM)资源、GPU资源、实况业务量、工作队列深度资源和网络带宽相对应。然而,应用布置部件210可以平衡的资源并不限于此。在各种实现方式中,资源度量232可以包括可以定义任意类型的资源的基本上任意数目个资源度量。
在一些方面中,用于资源平衡的资源度量可以包括一个或多个系统定义的资源度量和/或一个或多个客户端定义的资源度量。例如,资源度量232包括系统定义的资源度量232a和客户端定义的资源度量232b。通过允许系统定义的资源和客户端定义的资源两者,云计算平台可以更有效地满足客户及其服务应用的需要。例如,该平台可以有效地用作通用应用平台,其对于可能在其上运行或未来可能在其上运行的多种类型的应用不需要特定知识和设计,同时仍然有效地向那些应用分配和分发资源。
每个客户端定义的资源度量可以与一个或多个客户端相关联,并且每个客户端可以采用不同的客户端定义的资源度量集合。进一步地,在一些情况下,每个作业、服务应用或其实例可以采用不同的客户端定义的资源度量集合。在一些实现方式中,客户端定义的资源度量可以由客户端定义,其指定用于一个或多个作业实例的资源度量的资源。例如,可以为具体作业实例、具体服务应用实例(即,对于应用的所有作业实例)、作业和/或服务应用的所有主要实例、作业和/或服务应用的所有辅助实例、和/或服务应用的所有实例指定资源度量集合。
因此,不同的作业实例和/或服务应用实例可以根据其需要具有为它们指定的不同的资源度量集合。在一些情况下,资源度量由客户端指定,其规定与作业和/或服务应用(或其实例)相关联的资源度量标识符。该指定可以可选地为该度量相对于其他资源度量指派优先级。进一步地,该指定可以可选地定义用于作业/应用的利用需求或缺省。主要实例利用需求或缺省可以可选地与辅助实例利用需求分开规定。应用布置部件210可以采用利用需求或缺省来预测在布置作业实例时平台上的资源的平衡,以便访问潜在的布置计划相对于资源是否得以平衡。
作为特定示例,在一些情况下,客户端可以使用以下格式来指定资源度量:ServiceApplicationName service application-度量“Metric1,Priority,PrimaryUtilization,SecondaryUtilization”。在该示例中,ServiceApplicationName是服务应用的标识符,“application”是作为指定对象的服务应用的实例的标识符。应当领会,所使用的标识符可以用于被指定的元素。因此,可以在作业实例被标识的位置使用作业实例标识符。-Metric规定正在为服务应用实例指定资源度量,Metric1是资源度量的标识符。Priority是与相对于其他资源度量的资源度量的优先级相对应的值(例如,高,中,低)。如稍后将进一步详细描述的那样,应用布置部件210可以在选择作业实例布置中可选地采用优先级。PrimaryUtilization是表示主服务应用实例所需的资源度量的资源量的值(例如,数字),SecondaryUtilization是表示任何辅助服务应用实例所需的资源度量的资源量的值(例如,数字)。应当领会,主要利用需求和辅助利用需求不需要单独规定,但这样做可以允许主要实例和辅助实例具有不同的需求。例如,辅助实例可能比对应的主要实例具有较低的CPU需求。
除了规定向作业实例指定资源度量的利用的客户端之外或代替该客户端,在一些实现方式中,作业实例可以在节点上被服务的同时报告资源度量的资源的利用。例如,每个节点上的作业实例可以向它们的对应的节点报告客户端定义的资源度量(以及可选的系统定义的资源度量)的资源利用(可能经由其对应的机器),其又可以报告由应用布置部件210做出的用于资源平衡决定的单个或总体资源利用。在一些情况下,向节点上的主机(例如,主机150)报告利用,该节点向收集部件报告节点上的单个或总体资源利用。收集部件又可以向云计算平台的层次结构之间的收集部件的其他实例或部分报告信息。例如,根据资源平衡决定的需要,一系列报告和/或聚合可以在每个级别的收集部件之间沿节点/机架/数据库/区域/国家层次结构向上流动。
在一些实现方式中,通过作业实例和/或其优先级对客户端定义的资源度量的利用可以随时间改变和更新。例如,客户端可以为一个或多个作业实例指定新利用,并且向平台提供这样的指定。这种指定可以可选地采用上文所描述的格式,或者可以采取另一形式。额外地或者替换地,一个或多个作业实例可以报告对利用的更新或更改。例如,每个作业实例可以包括用于由作业实例确定和/或报告一个或多个资源的利用的内部逻辑。所报告的利用可以随着时间而改变,其反映在作业实例所提供的(例如,向节点提供的)一个或多个报告中。在一些情况下,可以由作业实例主动地提供报告,例如,响应于作业实例的利用改变和/或在预先确定的时间段之后的利用。进一步地,可以由作业实例在被轮询以提供例如节点的利用时提供报告。
与客户端定义的资源度量类似,可以可选地为作业实例指定系统定义的资源度量。然而,在一些实现方式中,由系统定义的资源度量表示的资源中的至少一些资源可能不被作业实例报告。作为示例,节点的每台机器可以测量资源利用并且将利用报告给节点的主机。通过利用系统定义的资源度量和客户端定义的资源度量的组合,以及提供对那些需求和定义的改变,云计算平台可以提供灵活的资源平衡,其可以适应客户端和应用的变化的需要。
如上文所描述的,应用布置部件210可以在将作业实例布置在节点上时考虑布置规则。每个布置规则可以包括关于作业实例在节点上的潜在布置或移动的、可以被评估的一个或多个条件。布置或移动可能符合满足一个或多个条件的布置规则。与资源度量一样,布置规则可以由系统和/或客户端定义。例如,布置规则230包括系统定义的布置规则230a和客户端定义的布置规则230b。与资源度量一样,可以为具体作业实例、具体服务应用实例(即,应用的所有作业实例)和/或服务应用的所有实例(或为所有主要实例或辅助实例)指定布置规则。此外,随着时间的推移,布置规则可以改变并且可以通过系统和/或客户端更新、添加或替换。
布置规则可以确保对每个节点(其中定义用于资源的容量),一个或多个资源的利用低于该容量。作为示例,每个节点可以已经定义了用于利用节点上的一个或多个资源的容量。可以由系统和/或客户端定义各种容量,并且可以是特定于机器和/或节点。例如,节点可以是异构的,使得不同的节点可以包括可用于作业实例的消耗的不同数量的资源。为此,在各种实现方式中,应用布置部件210可以基于确定作业实例是否在其对应节点上具有足够的资源用于作业实例所要求的利用,来选择作业实例的节点。
可能部分地需要作业实例的有效布置,从而确保一个或多个作业实例被布置在节点上,使得每个所布置的作业实例在节点上具有足够的资源。在一些情况下,这包括确定节点上资源的利用,以及将该利用与节点的容量进行比较以确定可用容量。可用容量可以与正在被布置的作业实例的利用需求进行比较,以确定可用容量是否足以容纳该作业实例。然而,值得注意的是,资源平衡目的不需要针对容量的布置规则。例如,至少一些客户端定义的资源度量可以与仍然可以由系统平衡的、基本上无限制的资源相对应。
布置规则的其他示例包括升级或域布置规则。作为示例,布置规则可以指示禁止将服务应用的主要作业实例布置在与服务应用的辅助作业实例相同的升级域和/或故障域上。通过禁止将服务应用的主要作业实例布置在与服务应用的辅助作业实例相同的升级域和故障域上,可以确保单个硬件故障无法取出所有主要作业实例和辅助作业实例,即使在对服务应用升级期间。
“升级域”通常表示在不会显著降低服务应用的性能的情况下,可以使得其不可用的服务应用的最大部分或其租户的类别的最大部分。通常,更新域的约束(例如,具体作业实例或占总服务应用的百分比)由为服务应用建立的服务模型(例如,服务水平协议(SLA))来表达。通常定义客户端定义的升级域,以确保在服务应用经历更新的同时,该应用被保持并且运行。通常定义系统定义的升级域,以确保在一个或多个系统部件正在经历更新的同时,该应用被保持并且运行。在一种实例中,当更新正在进行时,更新域被定义为每个服务模型可以被立即取下的服务应用的最大百分比单位(例如,10%表示作业的实例正在其上运行的总共100个VM中的10个VM)。一旦更新完成后,具体更新域的VM被恢复在线,而另一更新域被定为用于离线。通常,该一次迭代地处理一个更新域的过程对于客户端而言是不可见的。
因此,布置规则可能指示作业实例被分布到多个升级域中,其中每个升级域作为部署的逻辑单元。升级部署可能一次可以执行一个升级域。在执行升级时,可以停止在升级域中运行的作业实例,可以应用更新,然后可以还原作业实例,然后重复针对其他升级域的步骤。当与更新相对应的所有升级域都被处理时,升级可以完成。通过仅停止在一个升级域内运行的作业实例,可以确保进行升级,而对正在运行的服务应用的影响最小。
“故障域”通常表示服务应用应当通过其被分发的若干个硬件故障单元(例如,机架、物理主机、数据中心等),以便促进云计算平台遇到内部崩溃时或数据中心遇到所包含的设备发生故障时的弹性。故障域可能与云计算平台中的单个故障点相对应。通过标识/组织故障域并且因而提供布置规则,平台可以防止单个故障点取出服务应用。例如,布置规则可能指示主要作业实例要被布置在与辅助作业实例不同的故障域上。本身连接到电源插座的计算机可能被认为是故障域,其中如果连接失败,计算机关闭。进一步地,数据中心中的计算机的机架可能是故障域,因为机架的断电可能会去掉机架中的硬件的集合。通常,关于故障域的布置规则可以是系统定义的布置规则,并且客户端可以可选地不参与这样的布置规则。
布置规则的其他示例是地理布置规则。例如,客户端可以针对一个或多个特定数据中心,区域,国家等定义作业实例的布置。例如,因为客户位于波士顿,所以客户端可以提供将主要作业实例布置在位于波士顿的数据中心中的布置规则。辅助作业实例可能具有与地理相关的不同布置规则,或者在这方面可以不受限制。
作为另一示例,布置规则可以包括与相对于节点集合控制服务应用布置的布尔规则相对应的布置约束。布置约束可以例如用来实施作业实例的硬件需求。例如,客户端可以定义布置规则,其指定一个或多个作业实例被布置在包括一个或多个定义类型的硬件的节点上。作为示例,服务应用可能需要特定类型的硬件(例如,GPU或CPU)来运行。作为另一示例,出于测试目的,客户端可以规定在具体硬件配置上运行服务应用。客户端可以为服务应用的每个作业和/或其实例定义一个或多个硬件需求,诸如HasDisk=0(无硬盘)和MemorySize>=8192(大于或等于8192MB的RAM)。系统可以维护平台上的节点的硬件配置日志,以便与作业实例的硬件需求进行交叉引用。
布置规则的另一示例是向外扩展计数规则。向外扩展计数规则可以阻止应用服务在多于指定数目个节点上运行。向外扩展计数可能适用于具有高创建成本的服务应用,其可以跨越其他实例进行摊销。使用向外扩展计数,一些服务可能会在节点之间更广泛地展开,从而授予更多的资源,而其他服务可能被聚集,从而授予较少的资源。在一些情况下,布置规则的向外扩展计数可以基于时间来动态改变。例如,服务应用在夜间时段期间可以具有比在白天时间段期间更大的向外扩展计数。这可以被采用,例如,其中服务应用在夜间利用批量处理,而白天则处于前端上。
另一类型的布置规则与服务规避规则相对应。该服务规避规则可以与布置策略相对应,该布置策略规定一个或多个服务应用(或作业实例)相对于一个或多个其他服务应用(或作业实例)的布置的规避。例如,服务规避规则可以规定第一客户端的作业实例不会布置在与第二客户端的作业实例相同的机器、节点或机架上。这样的特征可能是需要的,例如,两个客户端表示竞争公司。作为另一示例,代替约束第二客户端的作业实例,服务规避规则可以被推广到所有其他客户端或多个客户端。因此,服务规避规则可以规定作业/应用实例要具有专用机器、节点或机架。作为另一示例,服务规避规则可以附加地或替代地相对于相同客户端的作业实例和/或服务应用。
布置规则的另一示例与服务亲和规则相对应。服务亲和规则可以与服务规避规则相反,在于服务亲和规则可以与规定一个或多个服务应用(或作业实例)相对于一个或多个其他服务应用(或作业实例)的亲和布置关联的布置策略。例如,服务亲和规则可以规定服务应用的作业实例布置在与第二服务应用的作业实例相同的机器、节点或机架上。这样的特征可能是需要的,以提供作业实例和/或服务应用实例之间的物理临近。
因此,在各种实现方式中,系统和客户端可以针对要由云计算平台平衡的作业实例和资源度量来定义布置规则。每个客户端可以根据每个服务应用、每个作业或其实例来定义自定义资源度量和/或布置规则。因此,应用布置部件210可能具有大量因素需要在选择合适的作业实例布置时考虑。让问题更加复杂的是,考虑因素可以在值和数量上都动态改变。附加地,随着作业实例、节点、机器、数据中心、机架等不断添加到系统中或从系统中移除,云计算平台可以不断变化。如下文进一步详细描述的,应用布置部件210能够针对作业实例选择布置计划,该计划在合适的时间量内并且利用合适数量的计算资源有效地解决这些因素。
根据本公开的实现方式,应用布置部件210被配置成使用在线算法来生成用于作业实例的一个或多个布置计划。尽管云计算平台具有动态性,该在线算法也能够提供有效解。应用布置部件210可以可选地选择用于在云计算平台上执行的候选布置计划。
应用布置部件210可以例如基于作业实例(诸如在云计算平台上被实例化的作业实例224c和220d)来生成布置计划。然而,作业实例中的至少一些作业实例可能已被实例化并且被布置在节点上。例如,应用布置部件210可以在超过阈值时,至少尝试基于检测到云计算环境中的一个或多个资源的不平衡来生成布置计划。不平衡可以相对于一个或多个节点(例如,基于检测到关于一个或多个资源的一个或多个热节点)或整个系统。
进一步地,应用布置部件210可以生成布置计划,其中一个或多个节点不再包括足够的资源来托管一个或多个作业实例。例如,节点的资源可能改变,或者一个或多个作业实例的需求可能改变。作为另一示例,应用布置部件210可以生成布置计划,其中一个或多个节点例如通过故意被离线或由于故障(例如,节点216)而离线来变得不可用于服务一个或多个作业实例。
在其他情况下,应用布置部件210可以生成布置计划,其中违反了一个或多个节点上的针对一个或多个作业实例的一个或多个布置规则。例如,客户端可以在节点上增加被违反的新的服务规避规则,从而需要驱逐一个或多个作业实例以遵守该规则。作为另一示例,应用布置部件210可以诸如在定期的基础上不时地生成布置计划。由于应用布置部件210不能总是生成最佳布置计划,所以周期性生成可以提供更优化的作业实例布置。这些和其他因素被认为是生成和/或执行新布置计划的潜在动力。
由应用布置部件210生成的每个候选布置计划可以包括关于云计算平台的节点的作业实例的移动的集合,其可操作以实现作业实例在节点上的对应的目标布置。在一些实现方式中,移动为作业实例提供新位置(即,节点)。如上文所指示的,移动可以改变先前布置的作业实例的位置,或者可以向作业实例提供初始位置。
目标布置可以被认为是将作业实例布置在云计算平台的节点上的解。因此,由应用布置部件210探索的解空间可以包括针对作业实例的所有可能的目标布置。由于可能包含在系统中的潜在的大量节点和作业实例,正在探索的解空间可能很大。因此,在一些情况下,在分析解空间之前,可以基于分析解与布置规则中的一个或多个布置规则的合规性来移除解。例如,导致不符合布置规则中的一个或多个或任一个布置规则的解可以从解空间中移除,并且可以随后相对于其余解访问资源平衡。然而,由于可能存在大量的布置规则,从解空间中移除解的动作可能在时间和/或资源上是成本过高的。
因此,在一些实现方式中,在访问解的资源平衡之前,相对于布置规则的无效或不充分的解不会从解空间中移除。相反,应用布置部件210可以使用选择策略来选择目标布置。可以根据布置规则分析所选择的目标布置。在应用布置部件210确定目标布置充分符合布置规则的情况下,可以相对于资源度量的平衡进一步分析目标布置。然而,在目标布置不符合布置规则或者其他方面相对于布置规则而言不充分,则可能会拒绝该目标布置作为解,并且可以选择另一目标布置。因此,应用布置部件210不需要执行大量的处理,以便从解空间中移除所有无效解。在一些情况下,用于选择目标布置的选择策略是启发式选择策略。然而,在各种实现方式中,目标布置的选择是随机的,从而需要可忽略的处理能力。
在各种实现方式中,目标布置的选择包括:选择先前目标布置的邻近解,该先前目标布置与先前布置计划(或平台上的作业实例的当前布置)相对应。例如,目标布置可以通过以下一项或多项来生成:将移动添加到布置计划(或选择初始移动)、从布置计划移除移动、和/或改变布置计划中的移动,以产生与修改后的目标布置相对应的修改后的布置计划。可以使用选择策略来选择这些移动,例如,通过选择一个或多个随机移动来修改布置计划。应当注意,在一些情况下,修改可以被限制于用于确定新目标布置的移动的单个添加、移除或改变。进一步地,候选布置计划可以被限制于预先定义的数目个移动,从而防止进一步向计划添加移动。
在一些方面中,可以相对于资源平衡来分析目标布置。例如,可以分析充分符合布置规则的目标布置。目标布置可能会被拒绝,并且可能随后基于分析来选择新的目标布置,或者分析可能导致接受目标布置(以及其候选布置计划)。在一些实现方式中,使用一个或多个平衡分数来量化资源平衡,该分数量化由资源度量定义的资源中的一个或多个资源的平衡。使用平衡分数,可以确定目标布置相对于云计算平台的一个或多个资源是否改善、减少或维持平衡。
在一些实现方式中,应用布置部件210针对每个资源度量计算量化由资源度量表示的资源的平衡的资源平衡分数。资源度量的平衡分数可以基于将节点上的资源利用的标准偏差除以节点上平均的资源利用。然后,更平衡的目标布置可以减少相对于节点的资源利用的平均标准偏差。作为示例,对于每个度量,平衡分数可以使用等式1来计算:
Figure GDA0002646860240000191
其中i表示正在被评估的第i个资源度量,而j表示评估中的第j个节点。
在一些情况下,应用布置部件210计算量化云计算平台上的资源的总体平衡的总体平衡分数。计算总体平衡分数可以包括:组合针对每个资源度量的平衡分数(例如,使用等式1确定的)。在一些情况下,资源度量的平衡分数基于与资源度量相关联的优先级来进行加权。较高优先级资源度量可能会在总体平衡分数中接收较高的权重。在一些情况下,客户端可以规定资源度量的优先级。例如,如上文先前所描述的,客户端可以在为服务应用或作业(或其实例)指定资源度量时为该资源度量提供优先级。在各种实现方式中,客户端可以为客户端定义的资源度量和/或系统定义的资源度量提供优先级。因此,不同的客户端对于类似的资源度量可能具有不同的优先级。作为示例,总体平衡分数可以使用等式2来计算:
Figure GDA0002646860240000201
其中i表示第i个资源度量,w表示资源度量的当前权重,并且n表示正在被评估的资源度量的总数。
尽管平衡分数(例如,总体平衡分数)可能指示目标布置相对于资源平衡改善了先前目标布置和/或系统的当前状态,但目标布置仍然可能被应用布置部件210拒绝。目标布置可能仍然被拒绝,例如,基于执行与目标布置相对应的布置计划的成本(例如,基于包括先前目标布置和/或系统的当前状态的成本)。在一些情况下,布置计划的成本与平衡分数(例如,总体平衡分数)一起作为因素计入布置分数中。然而,如本文中所使用的,布置分数通常可以是指量化云计算平台的状态(例如,从布置度量生成的)并且不需要成本作为因素的分数。在一些情况下,可以使用总体平衡分数或其他平衡分数作为布置分数。作为具体示例,布置分数可以使用等式3来计算:
Figure GDA0002646860240000202
其中Cost代表目标布置的成本,而MaxCost表示任何目标布置的总可能成本。
在本示例中,Cost可以被定义为布置计划的移动集合中的移动数目,而MaxCost可以被定义为云计算平台中的作业实例的数目。然而,这是将成本作为因素计入布置分数中的一种合适途径的简化示例。应当领会,不同移动可以对总成本具有不同影响量。例如,数据中心之间的移动可能比数据中心内的移动增加成本。进一步地,移动可以具有各种各样的成本量,其取决于将移动到哪个节点、机架、数据中心、区域和/或国家。
在一些方面中,可以在选择用于在云计算平台上执行的候选布置计划之前,生成和选择多个候选布置计划和对应的目标布置。例如,可以彼此迭代地生成候选布置计划并且进行分析。可以从节点上的作业实例的当前布置状态生成初始候选布置计划,并且可以随着移动被迭代地添加、移除或改变而演变。基于可能因素的任何组合,迭代可能会停止。例如,迭代可以基于候选移动计划中的移动的数目超过阈值而停止。另外或者替代地,迭代可以基于生成候选解计划的经过时间而停止。另外或者替代地,迭代可以基于应用布置部件210确定生成的候选布置地点具有改善在平台的节点上的资源平衡(例如,大于阈值量)的对应的目标布置来停止。
基于包括云计算平台的预测状态到云计算平台的当前状态,候选布置计划可以可选地被选择用于在云计算平台上执行。预测状态可以与布置分数、总体平衡分数或与可以由候选者布置计划实现的目标布置相对应的其他分数相对应。云计算平台的当前状态可以与布置分数、总体平衡分数或针对平台上的作业实例的当前布置计算的其他分数(例如,等式3中的成本可以为0,因为不需要移动)相对应。可以基于应用布置部件210确定候选布置计划将会相对于分数改善平台的状态来选择和执行候选布置计划。否则,候选布置计划可能会被丢弃。
在确定是接受还是拒绝目标布置和/或其候选布置计划时,一些途径可以包括:拒绝减少总体平衡分数或布置分数的任何目标布置。然而,在始终遵循这种途径的情况下,应用布置部件210可能倾向于被局限于解空间中的局部最大值。在这些情况下,可能存在更优化的解(例如,全局最大值),但是不能通过目标布置迭代时达到,因为作为比较基础的参考分数(例如,总体平衡分数或布置分数)可能需要在达到较高/改善后的分数之前,降低由分数表示的系统的状态。
这样,选择目标布置可以被考虑为寻求克服局部最大值的爬山问题。因此,在一些情况下,在通过目标布置迭代时,应用布置部件210可以接受一个或多个目标布置,尽管其选择准则指示相对于先前所选择的目标布置对于云计算平台的状态的减少。
在一些情况下,应用布置部件210可以使用模拟退火算法或使用布置分数作为其能量函数的其他爬山算法来克服局部最大值。模拟退火算法可以接受改善或维持布置分数的任何目标布置(以及相关联的候选布置计划)。在目标布置减少布置分数的情况下,目标布置可能仍然被接受。例如,应用布置部件210可以有概率地接受基于模拟退火算法的概率函数来减少布置分数的至少一个目标布置。作为具体示例,接受目标布置的概率可以使用等式4来表示:
Figure GDA0002646860240000221
其中diff是正在被考虑的目标布置的布置分数与先前目标布置的布置分数之间的差,而T是模拟退火算法的温度参数。
使用指示T值的退火调度,布置分数可能在一段时间内具有下降趋势,随后需要越来越好的布置分数用于接受目标布置,以便达到新的局部最大值。作为示例,T可能逐渐减少。在一些情况下,新局部最大值可能比云计算平台的当前状态更差。在这种情况下,可以拒绝与当前目标布置相对应的候选布置计划,并且可以重复模拟退火算法,直到生成更优选的候选布置计划为止。这样,应用布置部件210可以通过探索解空间来预测云计算平台的状态,并且实现候选布置计划,使得状态通过作业实例的充分的最佳布置得以维持,而不需要作业实例的最佳布置。
现在参考图3以及图1和图2,图3是示出了用于资源平衡云计算平台的方法300的流程图。方法300的每个框和本文中所描述的其他方法包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。比如,可以由执行存储在存储器中的指令的处理器执行各种功能。方法还可以被实现为存储在计算机存储介质上的计算机可用指令。仅举几例,这些方法可以由独立应用、服务或托管服务(独立的或与其他托管服务组合)或另一产品的插件提供。
在框318处,方法300包括:接收客户端定义的资源度量。例如,应用布置部件210可以接收客户端定义的资源度量232b,其每个表示云计算平台110的节点的相应的资源。在一些实现方式中,在一个或多个网络通信中从一个或多个客户端设备接收客户端定义的资源度量。例如,客户端可以在为服务应用和/或作业实例分配对应的资源的一个或多个消息中指定客户端定义的资源度量。另外或者替代地,可以从在节点上运行的一个或多个作业实例接收客户端定义的资源度量。例如,作业实例可以提供指示对应的资源度量的用于一个或多个资源的利用需求。
在框320处,该方法包括:生成用于服务应用的作业实例的布置计划。例如,应用布置部件210可以生成用于服务应用的作业实例的布置计划,每个布置计划包括一个或多个移动,其可执行以实现节点上的作业实例的对应的目标布置。
在一些情况下,可以基于资源平衡阈值来生成布置计划。例如,应用布置部件210可以寻求平衡节点212、214和218上的资源,其中至少一个平衡指示器分数超过资源平衡阈值。在一些实施例中,平衡指示器分数被计算为最高利用的节点与最低利用的节点之间的比例。例如,可以计算针对每个资源的平衡指示器分数,或者可以与总体资源相对应。作为示例,可以在资源平衡指示器中的至少一个资源平衡指示器超过资源平衡阈值的情况下执行资源平衡。
另外或者替代地,可以基于应用布置部件210接收要布置的一个或多个新作业实例(诸如作业实例224c和220d)来生成布置计划。新作业实例可能来自使用客户端设备的客户提供的工作负载请求。
作为另一示例,一个或多个节点可能已经失败,使得那些节点上的作业实例需要重新定位。作为示例,如所述示出的,节点216可能已经失败或可能被调度用于系统更新。因此,应用布置部件210可以生成新布置计划,其包括其他节点上的作业实例224a和224b的布置。
作为另一示例,一个或多个节点可能已经失败,使得那些节点上的作业实例需要重新定位。作为示例,如所图示的,节点216可能已经失败或可能被调度用于系统更新。因此,应用布置部件210可以生成新布置计划,其包括其他节点上的作业实例224a和224b的布置。
作为另一示例,一个或多个作业实例的利用需求可以在被布置在节点之后已经改变。例如,作业实例可以向应用布置部件210提供可能导致资源不平衡的利用需求。作为另一示例,客户端可以通过改变它们的资源指定来改变针对所布置的作业实例中的一个或多个作业实例的利用需求。
每个所生成的布置计划可以包括移动集合,其可执行以从云计算平台的当前状态实现云计算平台110上的作业实例的目标布置。例如,移动可以添加,移除和/或替换节点上的作业实例。
在框322处,方法300包括:确定布置计划符合布置规则。例如,应用布置部件210可以确定布置计划符合布置规则,其中每个布置规则指示作业实例中的给定作业实例是否适合布置在节点的给定节点上。布置规则可以包括客户端定义的布置规则230b和系统定义的布置规则230a。作为具体示例,客户端定义的布置规则可以指示具体服务应用或其实例的作业实例必须布置在具有
Figure GDA0002646860240000241
GPU的机器上。作为另一示例,系统定义的布置规则可以指示主要作业实例不要被布置在与它们对应的辅助作业实例相同的故障域中。
不符合布置规则的布置规则可以从优选布置计划中被丢弃以不再被考虑。通过在生成之后检查布置计划的合规性,可以节省处理能力,因为在选择之前不需要从解空间中移除不合规的布置计划。
在框324处,方法300包括:基于确定优选布置计划基于客户端定义的资源度量中的每个客户端定义的资源度量来改善资源的平衡来执行优选布置计划。例如,可以通过评估由每个布置计划实现的作业实例的目标布置的总体平衡分数来从所生成的布置计划中选择优选布置计划。针对每个目标布置的总体平衡分数可以作为因素计入所有客户端定义的资源度量和任何系统定义的资源度量(例如,至少表示分配给节点上的至少一个作业实例和/或指定用于要新近布置在节点上的作业实例的资源的所有度量)。在一些情况下,可以基于具有最高的布置分数来选择优选布置计划。最高的布置分数可以基于总体平衡分数,例如,如通过与执行对应的布置计划相关联的成本调整的总体平衡分数。
现在参考图4以及图1和图2,图4是示出了用于资源平衡云计算平台的方法400的流程图。在框418处,方法400包括:接收客户端定义的资源度量。例如,应用布置部件210可以接收客户端定义的资源度量232b。
在一些实现方式中,框420和424被执行为优选布置计划的迭代选择计划的一部分,其包括可执行以实现云计算平台的节点上的作业实例的目标布置的一个或多个移动,其中框420和424由应用布置部件210在每次迭代中执行。
在框420处,方法400包括:根据优选布置计划生成服务应用的作业实例的新布置计划。优选布置计划可能最初已经根据云计算平台110的节点上的作业实例的当前布置生成。在一些情况下,通过使用选择策略选择优选布置计划的邻近解来生成新布置计划。作为一个示例,选择策略可以是随机的。每个实例中的邻近解可以是例如由一个或多个动作(在一些实施例中仅一个动作)修改的优选布置计划的移动集合,这些动作随机选自以下各项:从集合中的节点移除作业实例的移动,将作业实例添加到集合中节点的移动,和/或改变集合中的节点的作业实例的移动。还可以随机选择作业实例和/或节点。
在框422处,包括:基于对客户端定义的资源度量的分析来评估是否用新布置计划替换优选布置计划。例如,应用布置部件210可以生成针对新布置计划和优选布置计划中的每个布置计划的布置分数,并且使用该布置分数来确定是否使新布置计划成为优选布置计划。在一些情况下,新布置计划替换优选布置计划,其中改善了(或至少维持)新布置计划的布置分数。进一步地,在一些情况下,新布置计划被拒绝,并且维持优选布置计划,其中针对新布置计划的布置分数减少。然而,一些实现方式可能倾向于选择具有局部最大值的优选布置计划。因此,在一些情况下,新布置计划可能仍然会成为优选布置计划,即使其中新布置计划的布置分数减少。作为示例,可以采用爬山算法来确定何时仍然执行替换。在一些情况下,该确定基于诸如等式4中描述的函数之类的概率函数。因此,优选布置计划可以通过概率地接受新布置计划来尝试最大化布置分数来克服局部最大值。
方法400的框426包括:评估是否满足结束条件。例如,只要不满足迭代选择的结束条件,应用布置部件210可以执行迭代选择的后续迭代。因此,可以重复框422和424,直到满足结束条件为止。每次框422和424被重复时,优选布置计划可以从先前迭代改变,或者可能在新布置计划被拒绝的情况下保持不变。
结束条件可以包括各种因素。在一些情况下,结束条件至少部分地基于优选布置计划选择的运行时。例如,应用布置部件210可以限制用于优选布置计划选择的时间,使得算法不会耗费太长时间,因为平台的状态可能在该时间内改变。另一因素可以基于当前优选布置计划和平台的当前状态之间的布置分数的改善量(例如,在改善或分数超过阈值量的情况下)。作为另一示例,结束条件可以基于应用布置部件210确定优选布置计划已经收敛。这些和其他因素可能被认为是结束条件。
在框428处,方法400包括:基于确定优选布置计划基于客户端定义的资源度量改善了资源平衡来执行优选布置计划。例如,应用布置部件210可以评估优选布置计划和系统的当前状态的总体平衡分数。总体平衡分数各自可以作为因素计入所有客户端定义的资源度量和任何系统定义的资源度量(例如,至少表示被分配给节点上的至少一个作业实例和/或指定用于要新近布置在节点上的作业实例的资源的所有度量)中。进一步地,应用布置部件210的总体平衡分数可以用于生成包括与执行计划相关联的成本的布置分数,并且可以在布置分数相对于系统的当前状态改善(或至少维持)的情况下执行。然而,在一些情况下,成本可能不会作为因素计入布置分数中。因此,应当领会,在选择优选布置计划之后,系统可以维持节点上的作业实例上的当前布置,或者可以采取由优选布置计划实现的目标布置。
现在参考图5以及图1和图2,图5是示出了用于平衡云计算平台的资源的方法500的流程图。具体地,方法500示出了用于选择采用模拟退火算法的优选布置计划的实现方式。模拟退火算法可以可选地使用等式3作为能量函数并且使用等式4作为概率函数。方法500可以由应用布置部件210执行以生成和选择优选布置计划。
在框518处,温度T被设置为初始值,并且优选布置计划被设置为云计算平台上的作业实例的当前布置。在框520处,评估优选布置计划是否已经收敛,或者是否没有剩余时间来选择优选布置计划。应当领会,评估不需要在所示的框的顺序处被执行,并且可以在别处进行。如果满足框520中的结束条件中的任一个结束条件,则方法500可以结束。否则,方法500可以进行到框522。
在框522处,生成新布置计划。例如,新布置计划Sn可以是随机选择的优选布置计划Sb的邻近解。可以根据所准许的修改来定义邻近解,这些修改可以随机选择以更改优选布置计划,并且可以从每个时间框522中随机选择相同的所准许的修改被执行。
在框524处,方法500包括:评估新布置计划Sn是否违反任何布置规则(例如,布置规则230中的任一布置规则)。在新布置计划Sn确实违反布置规则的情况下,它可以在框522中被丢弃或拒绝并且被替换,直到生成不违反任何布置规则的新布置计划Sn为止。这样,方法500可以确保它输出的优选布置计划符合布置规则。进一步地,此时可能会丢弃不合规的新布置计划,以节省处理能力,然而,在一些情况下,可能会在稍后丢弃新布置计划。
在框526处,方法500包括:评估新布置计划Sn的布置分数是否大于当前优选布置计划Sb的布置分数。布置分数可以使用等式3来生成。如所示出的,在新布置计划Sn改善或者至少维持布置分数的情况下,它可以在框528处成为优选布置计划。否则,如框530所指示的,受制于基于新布置计划和优选布置计划的布置分数之间的差的概率函数,新布置计划Sn仍然可以成优选布置计划。
在框532处,方法500包括:更新在模拟退火算法中使用的温度T。更新后的温度T可以在随后的迭代中使用,除非在框520处满足结束条件。应当领会,在不满足结束条件的情况下,不需要更新温度T。因此,方法500提供优选布置计划Sb,其可以进一步由应用布置部件210评估以确定是否在云计算平台110上执行该计划。
已经对本发明的实施例的概述进行了简要描述,下文对其中可以实现本发明的实施例的示例性操作环境进行描述,以便为本发明的各个方面提供一般的上下文。具体地,首先参考图6,示出了用于实现本发明的实施例的示例性操作环境,并且通常被指定为计算设备600。计算设备600仅是合适计算环境的一个示例,并不旨在暗示对本发明的使用范围或功能性的限制。计算设备600也不应被解释为具有与所图示的部件的任何一个或组合有关的任何依赖或要求。
可以在计算机代码或机器可用指令的一般上下文中描述本发明,该机器可用指令包括计算机可执行指令,诸如程序模块,其由计算机或诸如个人数据助理或其他手持式设备之类的其他机器执行。通常,包括例程、程序、对象、部件、数据结构等的程序模块是指执行具体任务或实现特定抽象数据类型的代码。本发明可以以多种系统配置来实施,其包括手持式设备、消费者电子装置、通用计算机、更专业的计算设备等。本发明还可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。
参考图6,计算设备600包括总线610,其直接或间接耦合以下设备:存储器612、一个或多个处理器614、一个或多个呈现部件616、输入/输出端口618、输入/输出部件620和说明性电源622。总线610表示可以是一个或多个总线(诸如地址总线、数据总线、或其组合)。尽管图6的各个框为了清楚起见用线示出,但是实际上,描画各种部件并不是很清楚的,并且按比喻的说法,线可能更准确地是灰色和模糊的。例如,可以将诸如显示设备之类的呈现部件视为I/O部件。还有,处理器具有存储器。我们认识到这是本领域的性质,并且重申图6的图仅是说明性的示例性计算设备,其可以结合本发明的一个或多个实施例使用。在诸如“工作站”、“服务器”、“膝上型电脑”、“手持式设备”等之类的这些类别之间没有做出区分,因为所有这些均在图6的范围内被预期并且被称为“计算设备”。
通常,计算设备600包括多种计算机可读介质。计算机可读介质可以是可以由计算设备600访问的任何可用介质,并且包括易失性介质和非易失性介质,可移除介质和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性介质和非易失性介质、可移除介质和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储所需信息并且可以由计算设备600访问的任何其他介质。计算机存储介质不包括信号本身。
通常,通信介质体现计算机可读指令、数据结构、程序模块或诸如载波或其他传送机制的调制数据信号中的其他数据,并且包括任何信息递送介质。术语“调制数据信号”是指以对信号中的信息进行编码的方式设置或改变其特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质;以及诸如声学、RF、红外和其他无线介质之类的无线介质。上述任一项的组合也应包括在计算机可读介质的范围内。
存储器612包括易失性存储器和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除存储器、不可移除存储器或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备600包括从诸如存储器612或I/O部件620之类的各种实体读取数据的一个或多个处理器。呈现部件616向用户或其他设备呈现数据指示。示例性呈现部件包括显示设备、扬声器、打印部件、振动部件等。
I/O端口618允许计算设备600逻辑上耦合至包括I/O部件620的其他设备,其中一些可以被内置。说明性部件包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、打印机、无线设备等。
已经关于具体实施例对本文中所呈现的实施例进行了描述,其旨在在所有方面都是说明性的而非限制性的。对于本发明所属领域的普通技术人员而言,本发明适合的备选实施例将变得明显,而不背离本发明的范围。
从前述可以看出,本发明非常适合于实现前述提出的所有目标和目的,同时具有其他优点,这些优点对于结构来说是明显的并且是其所固有的。
应当理解,某些特征和子组合是有用的,并且可以在不参考其他特征或子组合的情况下采用。这是由权利要求的范围设想的并且在权利要求的范围内。

Claims (19)

1.一种用于资源平衡的计算机实现的系统,所述系统包括:
一个或多个硬件处理器;以及
一个或多个计算机可读介质,所述计算机可读介质在其上实现的可执行指令,所述可执行指令当被所述一个或多个硬件处理器执行时,使得所述一个或多个硬件处理器执行以下方法,包括:
接收用以在云计算平台中的两个或更多个节点之间移动多个作业实例的指示;
生成用于移动所述多个实例的多个布置计划,其中布置计划包括作业实例的移动的集合,所述作业实例的移动的集合用于将所述多个作业实例的至少子集移动到所述两个或更多个节点中的对应位置,其中所述多个作业实例在所述移动的集合之后的每个位置被定义为针对对应作业实例的目标布置;
使用针对第一布置计划和第二布置计划中的每一个布置计划而被定义的多因素分数来比较所述第一布置计划与所述第二布置计划,其中所述多因素分数基于作为第一因素的成本和作为第二因素的资源平衡而被定义,其中所述成本基于所述多个作业实例的移动的数目而被定义,并且其中所述资源平衡基于与处于所述多个作业实例的目标布置的所述多个作业实例相关联的所述两个或更多个节点的资源度量中所计算的平衡而被定义;以及
基于所述第一布置计划与所述第二布置计划的比较,选择所述第一布置计划;以及
执行所述第一布置计划。
2.根据权利要求1所述的计算机实现的系统,其中所述第一布置计划被生成作为模拟退火算法的部分,所述模拟退火算法从所述多个布置计划中的目标布置相应地计算所述模拟退火算法的能量函数的结果,并且基于所述结果输出所述第一布置计划。
3.根据权利要求1所述的计算机实现的系统,其中所述方法还包括在基于所述多因素分数来比较所述第一布置计划和所述第二布置计划之前,从所述多个布置计划中移除布置计划的子集。
4.根据权利要求1所述的计算机实现的系统,其中所述方法还包括:
生成用于所述作业实例的中间布置计划;
确定所述中间布置计划符合布置规则;
概率性地用所述中间布置计划替换用于所述作业实例的先前的优选布置计划,其中所述中间布置计划相对于所述先前的优选布置计划减少了所述多因素分数;以及
用所述先前的优选布置计划替换所述中间布置计划以用于所述执行。
5.根据权利要求1所述的计算机实现的系统,其中所述方法还包括从特定客户端接收由客户端定义的资源度量的子集对所述作业实例中的特定作业实例的指定,其中多个报告中的至少一个报告来自所述特定作业实例并且基于所述指定来规定由所述特定作业实例对所述由客户端定义的资源度量的所述子集的利用。
6.根据权利要求1所述的计算机实现的系统,其中所述方法还包括:
从多个客户端接收由客户端定义的布置规则;以及
在所述布置规则中包括所述由客户端定义的布置规则以及由系统定义的布置规则。
7.一种用于资源平衡的计算机实现的方法,所述方法包括:接收用以在云计算平台中的两个或更多个节点之间移动多个作业实例的指示;
生成用于移动所述多个实例的多个布置计划,其中布置计划包括作业实例的移动的集合,所述作业实例的移动的集合用于将所述多个作业实例的至少子集移动到所述两个或更多个节点中的对应位置,其中所述多个作业实例在所述移动的集合之后的每个位置被定义为用于对应作业实例的目标布置;
使用针对第一布置计划和第二布置计划中的每一个布置计划而被定义的多因素分数来比较所述第一布置计划与所述第二布置计划,其中所述多因素分数基于作为第一因素的成本和作为第二因素的资源平衡而被定义,其中所述成本基于所述多个作业实例的移动的数目而被定义,并且其中所述资源平衡基于与处于所述多个作业实例的目标布置中的所述多个作业实例相关联的所述两个或更多个节点的资源度量中所计算的平衡而被定义;以及
基于所述第一布置计划与所述第二布置计划的比较,选择所述第一布置计划;以及
执行所述第一布置计划。
8.根据权利要求7所述的计算机实现的方法,其中,所述生成所述布置计划基于确定针对所述作业实例的不充分的布置计划违反多个布置规则中的至少一个布置规则。
9.根据权利要求7所述的计算机实现的方法,其中所述执行基于确定所述布置计划的布置分数超过针对所述作业实例的先前布置计划的布置分数。
10.根据权利要求7所述的计算机实现的方法,还包括:
生成用于所述作业实例的中间布置计划;
确定所述中间布置计划符合多个布置规则中的布置规则;
概率性地用所述中间布置计划替换用于所述作业实例的先前布置计划,其中所述中间布置计划相对于所述先前布置计划减少了布置分数;
用所述布置计划替换所述中间布置计划以用于执行。
11.根据权利要求7所述的计算机实现的方法,其中接收由客户端定义的资源度量包括:客户端使用资源度量标识符向一个或多个作业实例指定所述资源度量的所述由客户端定义的资源。
12.根据权利要求7所述的计算机实现的方法,其中所述执行所述第一布置计划还基于评估所述执行所述第一布置计划的成本。
13.根据权利要求7所述的计算机实现的方法,其中所述生成所述第一布置计划包括:修改先前生成的布置计划的至少一个移动。
14.根据权利要求7所述的计算机实现的方法,其中所述第一布置计划被生成为模拟退火算法的一部分,所述模拟退火算法从布置计划的目标布置相应地计算所述模拟退火算法的能量函数的结果,并且基于所述结果来输出所述第一布置计划。
15.根据权利要求7所述的计算机实现的方法,其中对所述作业实例的所述目标布置改善至少跨越所述云计算平台的所述节点的、由客户端定义的资源的平衡分数的确定进一步基于由系统定义的资源度量所表示的所述节点的资源。
16.一种用于资源平衡的计算机实现的系统,所述系统包括:
一个或多个硬件处理器;以及
一个或多个计算机可读介质,所述计算机可读介质在其上实现的可执行指令,所述可执行指令当被所述一个或多个硬件处理器执行时,使得所述一个或多个硬件处理器执行以下方法,包括:
接收用以在云计算平台中的两个或更多个节点之间移动多个作业实例的指示;
生成用于移动所述多个实例的多个布置计划,其中布置计划包括作业实例的移动的集合,所述作业实例的移动的集合用于将所述多个作业实例的至少子集移动到所述两个或更多个节点中的对应位置,其中所述多个作业实例在所述移动的集合之后的每个位置被定义为用于对应作业实例的目标布置;
使用针对第一布置计划和第二布置计划中的每一个布置计划而被定义的多因素分数来比较所述第一布置计划与所述第二布置计划,其中所述多因素分数基于作为第一因素的成本和作为第二因素的资源平衡而被定义,其中所述成本基于所述多个作业实例的移动的数目而被定义,并且其中所述资源平衡基于与处于所述多个作业实例的目标布置的所述多个作业实例相关联的所述两个或更多个节点的资源度量中所计算的平衡而被定义;以及
基于所述第一布置计划与所述第二布置计划的比较,选择所述第一布置计划;以及
执行所述第一布置计划。
17.根据权利要求16所述的计算机实现的系统,其中当分析指示所述第一布置计划将使布置分数关于所述第二布置计划减少时,概率函数确定是否使用所述第一布置计划替换所述第二布置计划。
18.根据权利要求16所述的计算机实现的系统,其中所述生成所述第一布置计划是通过修改所述第二布置计划,并且所述第一布置计划是经修改的所述第二布置计划。
19.根据权利要求16所述的计算机实现的系统,其中在每次迭代中,在生成所述第一布置计划时,所述方法包括:
从在先的布置计划生成至少一个布置计划,直到遵从布置规则的布置计划被生成,所述布置规则包括客户端定义的布置规则和系统定义的布置规则,其中每个布置规则指示所述作业实例中的给定作业实例是否适合布置在所述节点中的给定节点上;以及
使用生成的所述布置计划作为所述第一布置计划。
CN201680025482.3A 2015-04-27 2016-04-15 分布式计算环境中的资源平衡 Active CN107548549B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562153458P 2015-04-27 2015-04-27
US62/153,458 2015-04-27
US14/852,233 2015-09-11
US14/852,233 US10623481B2 (en) 2015-04-27 2015-09-11 Balancing resources in distributed computing environments
PCT/US2016/027709 WO2016176060A1 (en) 2015-04-27 2016-04-15 Balancing resources in distributed computing environments

Publications (2)

Publication Number Publication Date
CN107548549A CN107548549A (zh) 2018-01-05
CN107548549B true CN107548549B (zh) 2021-02-02

Family

ID=57148227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680025482.3A Active CN107548549B (zh) 2015-04-27 2016-04-15 分布式计算环境中的资源平衡

Country Status (4)

Country Link
US (2) US10623481B2 (zh)
EP (1) EP3289456A1 (zh)
CN (1) CN107548549B (zh)
WO (1) WO2016176060A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621427B1 (en) * 2013-12-06 2017-04-11 Vmware, Inc. Automatic placement of clients in a distributed computer system satisfying constraints
CN106528287B (zh) 2015-09-09 2019-10-29 阿里巴巴集团控股有限公司 计算机系统资源分配方法和装置
TWI582607B (zh) * 2015-11-02 2017-05-11 廣達電腦股份有限公司 動態資源管理系統及其方法
TWI547817B (zh) * 2015-11-09 2016-09-01 緯創資通股份有限公司 叢集運算架構的資源規劃方法、系統及裝置
US10298720B1 (en) * 2015-12-07 2019-05-21 Amazon Technologies, Inc. Client-defined rules in provider network environments
US10013214B2 (en) 2015-12-29 2018-07-03 International Business Machines Corporation Adaptive caching and dynamic delay scheduling for in-memory data analytics
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10455007B2 (en) * 2016-07-14 2019-10-22 International Business Machines Corporation Managing asset placement with respect to a distributed computing environment having a set of hosts
US10387198B2 (en) * 2016-08-11 2019-08-20 Rescale, Inc. Integrated multi-provider compute platform
US10178045B2 (en) * 2016-09-07 2019-01-08 Sap Se Dynamic discovery and management of microservices for multi-cluster computing platforms
US11057263B2 (en) * 2016-09-27 2021-07-06 Vmware, Inc. Methods and subsystems that efficiently distribute VM images in distributed computing systems
US10476864B2 (en) * 2016-11-17 2019-11-12 Bank Of America Corporation Job analytics aggregation tool for network nodes
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US10333985B2 (en) * 2017-01-09 2019-06-25 Microsoft Technology Licensing, Llc Distribution and management of services in virtual environments
US20180262563A1 (en) * 2017-03-07 2018-09-13 Microsoft Technology Licensing, Llc Availability management operations in a distributed computing system
US10469411B1 (en) * 2017-07-31 2019-11-05 EMC IP Holding Company LLC Dynamic application scaling
CN109525410B (zh) 2017-09-20 2021-05-18 华为技术有限公司 分布式存储系统升级管理的方法、装置及分布式存储系统
US20190158367A1 (en) * 2017-11-21 2019-05-23 Hewlett Packard Enterprise Development Lp Selection of cloud service providers to host applications
US10652283B1 (en) * 2017-12-06 2020-05-12 Amazon Technologies, Inc. Deriving system architecture from security group relationships
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US20200059539A1 (en) * 2018-08-20 2020-02-20 Landmark Graphics Corporation Cloud-native reservoir simulation
WO2020082702A1 (en) * 2018-10-24 2020-04-30 Huawei Technologies Co., Ltd. Objective driven dynamic object placement optimization
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
CN111198649B (zh) * 2018-11-16 2023-07-21 浙江宇视科技有限公司 磁盘选择方法及装置
CN110022345B (zh) * 2018-12-28 2020-03-24 阿里巴巴集团控股有限公司 联盟链中的请求处理方法、系统、装置及设备
CN111176753B (zh) * 2019-12-20 2021-01-05 贝壳找房(北京)科技有限公司 云资源优化配置方法、装置、电子设备及可读存储介质
CN111541558B (zh) * 2020-03-20 2022-08-30 新华三技术有限公司成都分公司 一种sla配置方法及装置
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN113050974B (zh) * 2021-04-30 2024-02-20 中国工商银行股份有限公司 云计算基础设施在线升级方法及装置
US20240007416A1 (en) * 2022-07-01 2024-01-04 GM Global Technology Operations LLC Discovery of remote resource providers for offloading computational processes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103679404A (zh) * 2014-01-03 2014-03-26 北京神舟航天软件技术有限公司 一种多项目资源平衡优化方法
WO2014192132A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 負荷分散装置及び方法

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7165108B2 (en) 2001-03-19 2007-01-16 Sun Microsystems, Inc. Method and apparatus for providing application specific strategies to a JAVA platform including load balancing policies
US7526515B2 (en) 2004-01-21 2009-04-28 International Business Machines Corporation Method and system for a grid-enabled virtual machine with movable objects
US7571120B2 (en) * 2005-01-12 2009-08-04 International Business Machines Corporation Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US7607129B2 (en) 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
US8707323B2 (en) 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
US8365183B2 (en) * 2008-09-02 2013-01-29 Ca, Inc. System and method for dynamic resource provisioning for job placement
US20110238826A1 (en) * 2008-12-08 2011-09-29 Neuralitic Systems Method and system for analysing a mobile operator data network
US10203993B2 (en) * 2009-02-18 2019-02-12 International Business Machines Corporation Method and system for continuous optimization of data centers by combining server and storage virtualization
WO2010104521A1 (en) 2009-03-13 2010-09-16 Hewlett-Packard Development Company, L.P. Determining status assignments that optimize entity utilization and resource power consumption
WO2011079385A1 (en) * 2009-12-30 2011-07-07 Neuralitic Systems A method and system for subscriber journey analytics
US8478878B2 (en) * 2010-03-11 2013-07-02 International Business Machines Corporation Placement of virtual machines based on server cost and network cost
US8826292B2 (en) * 2010-08-06 2014-09-02 Red Hat Israel, Ltd. Migrating virtual machines based on level of resource sharing and expected load per resource on candidate target host machines
US8516495B2 (en) * 2010-12-09 2013-08-20 International Business Machines Corporation Domain management and integration in a virtualized computing environment
US8667496B2 (en) * 2011-01-04 2014-03-04 Host Dynamics Ltd. Methods and systems of managing resources allocated to guest virtual machines
US8793684B2 (en) * 2011-03-16 2014-07-29 International Business Machines Corporation Optimized deployment and replication of virtual machines
US8949428B2 (en) 2011-06-17 2015-02-03 International Business Machines Corporation Virtual machine load balancing
US8832239B2 (en) * 2011-09-26 2014-09-09 International Business Machines Corporation System, method and program product for optimizing virtual machine placement and configuration
US8417391B1 (en) * 2011-12-15 2013-04-09 Restore Nv Automated demand response energy management system
US9038065B2 (en) 2012-01-30 2015-05-19 International Business Machines Corporation Integrated virtual infrastructure system
JP5834999B2 (ja) * 2012-02-27 2015-12-24 富士通株式会社 データ収集方法、情報処理システムおよびプログラム
US20170278087A1 (en) * 2012-03-28 2017-09-28 Google Inc. Virtual machine pricing model
CN103455486B (zh) * 2012-05-28 2016-09-28 国际商业机器公司 安置数据库的方法和系统
US10127081B2 (en) * 2012-08-30 2018-11-13 International Business Machines Corporation Efficient resource management in a virtualized computing environment
US20140223122A1 (en) * 2013-02-06 2014-08-07 International Business Machines Corporation Managing virtual machine placement in a virtualized computing environment
WO2014163629A1 (en) * 2013-04-03 2014-10-09 Hewlett-Packard Development Company, L.P. Modifying a flow of operations to be executed in a plurality of execution environments
US9294557B2 (en) * 2013-04-19 2016-03-22 International Business Machines Corporation Hardware level generated interrupts indicating load balancing status for a node in a virtualized computing environment
US9270624B2 (en) * 2013-05-10 2016-02-23 Oracle International Corporation Cloud messaging services optimization through adaptive message compression
US9454408B2 (en) * 2013-05-16 2016-09-27 International Business Machines Corporation Managing network utility of applications on cloud data centers
JP6079476B2 (ja) * 2013-06-26 2017-02-15 富士通株式会社 分析支援プログラム、分析支援装置、および分析支援方法
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
EP3049959A1 (en) * 2013-09-27 2016-08-03 Hewlett Packard Enterprise Development LP Processing a hybrid flow associated with a service class
WO2015049731A1 (ja) * 2013-10-02 2015-04-09 株式会社日立製作所 物流拠点配置案算出装置及びプログラム
US9363192B2 (en) * 2013-10-31 2016-06-07 Vmware, Inc. Automatic remediation in a distributed computer system with multiple clusters of host computers
US9621427B1 (en) * 2013-12-06 2017-04-11 Vmware, Inc. Automatic placement of clients in a distributed computer system satisfying constraints
US20150244796A1 (en) * 2014-02-27 2015-08-27 Ncr Corporation Extensible Self-Service Terminal (SST) Server
US9582303B2 (en) * 2014-03-03 2017-02-28 Vmware, Inc. Extending placement constraints for virtual machine placement, load balancing migrations, and failover without coding
US9280376B2 (en) * 2014-05-13 2016-03-08 Dell Products, Lp System and method for resizing a virtual desktop infrastructure using virtual desktop infrastructure monitoring tools
US10122605B2 (en) * 2014-07-09 2018-11-06 Cisco Technology, Inc Annotation of network activity through different phases of execution
US11307884B2 (en) * 2014-07-16 2022-04-19 Vmware, Inc. Adaptive resource management of a cluster of host computers using predicted data
US9501306B2 (en) * 2014-09-22 2016-11-22 International Business Machines Corporation Placing virtual machines in a virtual environment
US9547534B2 (en) * 2014-10-10 2017-01-17 International Business Machines Corporation Autoscaling applications in shared cloud resources
US10176004B2 (en) * 2014-11-18 2019-01-08 International Business Machines Corporation Workload-aware load balancing to minimize scheduled downtime during maintenance of host or hypervisor of a virtualized computing system
US9880885B2 (en) * 2015-02-04 2018-01-30 Telefonaktiebolaget Lm Ericsson (Publ) Method and system to rebalance constrained services in a cloud using a genetic algorithm
JP6447217B2 (ja) * 2015-02-17 2019-01-09 富士通株式会社 実行情報通知プログラム、情報処理装置および情報処理システム
US20160243766A1 (en) * 2015-02-24 2016-08-25 Siemens Aktiengesellschaft Energy Star for Manufacturing
US9727366B2 (en) * 2015-04-23 2017-08-08 International Business Machines Corporation Machine learning for virtual machine migration plan generation
US9482442B1 (en) * 2015-04-24 2016-11-01 Dataxu, Inc. Decision dashboard balancing competing objectives

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014192132A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 負荷分散装置及び方法
CN103679404A (zh) * 2014-01-03 2014-03-26 北京神舟航天软件技术有限公司 一种多项目资源平衡优化方法

Also Published As

Publication number Publication date
US20160316003A1 (en) 2016-10-27
EP3289456A1 (en) 2018-03-07
CN107548549A (zh) 2018-01-05
US10623481B2 (en) 2020-04-14
US20200287961A1 (en) 2020-09-10
WO2016176060A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
CN107548549B (zh) 分布式计算环境中的资源平衡
US11409556B2 (en) Custom placement policies for virtual machines
CN102844724B (zh) 管理分布式计算系统中的功率供应
EP3161632B1 (en) Integrated global resource allocation and load balancing
CN106453457B (zh) 云计算平台内的多优先级服务实例分配
US9417903B2 (en) Storage management for a cluster of integrated computing systems comprising integrated resource infrastructure using storage resource agents and synchronized inter-system storage priority map
US10055239B2 (en) Resource optimization recommendations
US9466036B1 (en) Automated reconfiguration of shared network resources
Shen et al. A resource usage intensity aware load balancing method for virtual machine migration in cloud datacenters
US20100077449A1 (en) Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment
CN104601664B (zh) 一种云计算平台资源管理与虚拟机调度的控制系统
US20070180453A1 (en) On demand application scheduling in a heterogeneous workload environment
US11614977B2 (en) Optimizing clustered applications in a clustered infrastructure
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
CN104679594B (zh) 一种中间件分布式计算方法
EP4029197B1 (en) Utilizing network analytics for service provisioning
Hasan et al. Heuristic based energy-aware resource allocation by dynamic consolidation of virtual machines in cloud data center
US11093288B2 (en) Systems and methods for cluster resource balancing in a hyper-converged infrastructure
US20150319234A1 (en) Load balancing scalable storage utilizing optimization modules
Li et al. PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters
CN109558214B (zh) 异构环境下宿主机资源管理方法、装置和存储介质
Harper et al. A virtual resource placement service
Zhang et al. Task assignment optimization in geographically distributed data centers
Hasan et al. Maximizing SLA and QoE in Heterogeneous Cloud Computing Environment
Ajayi et al. An Energy-Aware Class-Based Load Balancing Model for Resource Management in Cloud Computing

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