CN104040526B - 对虚拟机池中的资源的分派 - Google Patents

对虚拟机池中的资源的分派 Download PDF

Info

Publication number
CN104040526B
CN104040526B CN201380005099.8A CN201380005099A CN104040526B CN 104040526 B CN104040526 B CN 104040526B CN 201380005099 A CN201380005099 A CN 201380005099A CN 104040526 B CN104040526 B CN 104040526B
Authority
CN
China
Prior art keywords
virtual machine
task
pool
standby
pond
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
CN201380005099.8A
Other languages
English (en)
Other versions
CN104040526A (zh
Inventor
B·G·卡尔德
J·王
V·贝德卡
S·桑卡兰
M·米克尼特二世
P·K·贡达
Y·张
S·安东尼
K·曼尼瓦纳
H·卡特里
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 CN104040526A publication Critical patent/CN104040526A/zh
Application granted granted Critical
Publication of CN104040526B publication Critical patent/CN104040526B/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
    • 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/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/5033Allocation 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 data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了用于分派和关联云计算环境中的资源的系统和方法。可以将云计算环境中的虚拟机作为专用、备用或可抢占机器来分派,或者将其与对应于用户的池相关联。各种状态向用户提供预留期望水平的资源的能力,同时还允许云计算环境的运营者增加资源利用。

Description

对虚拟机池中的资源的分派
背景
用于执行大规模计算作业的常规方法通常涉及用户购买计算机硬件来用作计算平台。这可导致各种低效,因为许多典型用户具有峰值水平的计算需求,该计算需求不同于对计算资源的常规需求。购买足够的硬件以满足峰值资源需求可导致对计算资源的低使用率。或者,使硬件与常规使用水平匹配可使得一些期望计算变得不切实际。最近,在处理速度和网络传输速度方面的改善已使得云计算环境变成本地计算平台的可行替换。
概述
在各实施例中,提供了用于分派和关联云计算环境中的资源的系统和方法。可以将云计算环境中的虚拟机作为专用、备用或可抢占机器来分派,或者将其与对应于用户的池相关联。各种状态向用户提供预留期望水平的资源的能力,同时还允许云计算环境的运营者增加资源利用。
提供本概述是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念选择。该概述不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在独立地用于帮助确定所要求保护的主题的范围。
附图简述
下面将参考附图详细描述本发明,其中:
图1示意性地示出适于在实现云计算环境时使用的系统或组件的示例。
图2示意性地示出适于在实现云计算环境时使用的系统或组件的示例。
图3示意性地示出适于在实现云计算环境时使用的系统或组件的示例。
图4示意性地示出适于在实现云计算环境时使用的系统或组件的示例。
图5-9示意性地示出根据本发明的一实施例的管理一个或多个虚拟机池的示例。
图10示意性地示出适于执行本发明的各实施例的计算设备。
图11-13示出根据本发明的过程流的示例。
详细描述
概览
由于通过网络的数据传输速度的增加和其他网络特征的改善,越来越有可能在其中计算资源分布在大型网络上的环境中执行大规模计算任务。处于第一位置的用户可向计算服务提交作业或计算任务,并且使该任务在该用户不直接知晓的计算机群组上执行。用于执行用户的任务的计算资源可分布在多个位置上。位于一个或多个位置中的第一计算资源群组可以存储用于执行用户的计算任务的数据和其他信息,而位于相同位置或者可能位于一组不同的一个或多个位置中的第二计算资源群组可被用于执行该计算任务。
对各种分布式计算资源的访问允许用户执行作业任务,而无需关心这些计算资源位于何处。分布式资源还为用户提供了扩展(scale out)(或收缩(scale in))所使用的资源量以便满足计算任务的目标(诸如用指定时间完成该计算任务)的机会。然而,为用户提供这种灵活性对分布式计算资源的运营者(或拥有者)提出了许多挑战。为了满足需求,分布式资源网络的运营者将优选地具有足够多的可用资源来满足在峰值需求时间的资源请求。
定义
“账户”是云计算环境内的全局唯一标识实体。在一实施例中,下面讨论的所有资源和任务均在一账户范围内。通常,用户将在使用云计算系统的资源之前先创建账户。在创建账户之后,用户可以使用该账户向该系统提交工作项并且基于这些工作项来管理用于执行作业的资源。
“工作项”是要在云计算环境中运行的作业的静态表示。工作项可以指定作业的各个方面,包括作业二进制代码、指向要处理的数据的指针、以及可任选的启动用于执行该作业的任务的命令行。此外,工作项可以指定重现时间表、优先级和约束。例如,工作项可指定在每天下午5点启动。
“作业”是工作项的运行实例。作业包含携手执行分布式计算的任务集合。这些任务可在云计算环境中的一个或多个虚拟机上运行。
“任务”是作业的基础执行单元。每个任务都在虚拟机上运行。用户可以为每个任务指定给命令行的附加输入以及到输入数据的指针。在任务的执行过程期间,该任务可以在其在执行该任务的虚拟机上的工作目录下创建文件的分层结构(hierarchy)。
“作业管理器任务”(JM任务)是作业中的特殊任务。作业管理器任务是可任选的,因此一些作业可在不使用JM任务的情况下执行。作业管理器任务为作业内的所有任务提供单一控制点,并且可被用作该作业的“主”任务。如果一作业具有JM任务,则该系统将该JM任务作为该作业中的第一个任务来启动。该JM任务随后可以向该作业提交更多任务,并且它可以监视这些任务的进程并且控制何时提交下一批次任务。以此方式,JM任务可以协调对作业中的所有任务的调度并且管理各任务之间的依赖关系。优选地,如果该作业管理器任务的节点或虚拟机发生故障,则可以自动在另一虚拟机上重启该JM任务,以便该JM任务总是为该相应作业而运行。此外,用户可以向该系统指定:一旦该JM任务完成,该系统就可以终止相应作业中的所有任务。
虚拟机池
虚拟机指的是处理能力的逻辑单元。虚拟机可与物理处理器具有一对一的对应关系,或者一虚拟机可对应于多个处理器,或者虚拟机可表示在一个或多个处理器上的处理时间的百分比。向池分派的虚拟机可在任何给定时间执行该池的一个或多个任务。
在各实施例中,可潜在地基于工作项来执行作业的各虚拟机在使用之前被分派给对应于该工作项的账户(即,用户)的至少一个池。“池”是虚拟机的逻辑群组。工作项总是具有至少一个相关联的池来运行与该工作项相对应的(诸)作业。每个账户可创建该账户获得访问权的一个或多个池,以供在执行与该账户相关联的工作项时使用。通常,账户对与该账户相关联的各池具有排他访问权。可在用户提交工作项时创建池,或者可以将工作项与现有的池相关联。池可被系统自动创建以执行作业。例如,在每天的特定时间运行的重现工作项可通过使池被自动创建以在开始时间执行该作业来处理。每天在完成该重现工作项之后可删除该池。可任选地,可关联一池以供与单个工作项、单个作业、或与一账户相对应的工作项的另一子集一起使用。
当用户提交一工作项时,可将该工作项与一个或多个虚拟机池相关联。可以按照任何方便的方式将虚拟机组织在池内。例如,无论虚拟机的底层处理器的地理位置如何,都可以将所有虚拟机组织在单个池中或分派给单个池。另一选项是基于地理位置来组织虚拟机,使得池的所有虚拟机均处于给定地理位置。又一选项是按照不同于地理位置的基础来组织虚拟机,诸如对其他变量(例如,存储资源、网络等待时间、用户位置/偏好、安全性要求)的接近度。又一选项是在创建工作项或作业时自动创建池,并且随后在该工作项或作业结束时拆卸该池。
虚拟机池表示一种用于组织虚拟机的方法。虚拟机的另一组织单元是虚拟机群集。虚拟机群集表示由云环境中的过程(例如任务承租者过程)一起管理的虚拟机组群。虚拟机群集中的虚拟机可对应于以方便的方式分组在一起的物理机。例如,虚拟机群集可对应于位于同一地理区(诸如,位于美国或美国东北部)的物理机群组;位于同一通用位置(诸如,位于像西雅图或圣地亚哥郡等城市或大都市区域)的物理机群组;或位于同一特定位置(诸如位于形成计算或数据中心的一个或多个互连或邻近建筑)的物理机群组。另一选项是基于具有有利数据传输速率的物理机群组用云环境中的特定存储部分形成虚拟机群集。又一选项是基于处于给定位置的物理机来形成多个虚拟机群集。虚拟机池可跨越多个虚拟机群集。用于管理虚拟机群集(诸如任务承租者)的过程可分派和解除分派来自虚拟机池的各虚拟机。任务承租者(或用于管理虚拟机群集的其他过程)也可基于与群集内的虚拟机被分派给的池相对应的作业队列来调度该虚拟机上的任务。当任务承租者需要附加的机器以便向虚拟机池分派足够的数目时,该任务承租者可以从通用云计算环境获得附加虚拟机。类似地,如果任务承租者具有多余的虚拟机,则该任务承租者向通用云计算环境返回这些多余的机器。
专用、备用、和可抢占(preemptible)机器
在将虚拟机分派给池时,可将该虚拟机作为两个类型之一来分派。可将该虚拟机作为专用虚拟机或可抢占虚拟机分派给该池。当虚拟机处于池中时,该虚拟机作为专用还是可抢占的状态也可以变化。
“专用”虚拟机是被分派给池的供被分派给该池的工作项/作业专门使用的机器。任选地,专用虚拟机可被分配以供一个或多个相关联的工作项专门使用,而不是一般性地可用于被提交给池的任何作业。在虚拟机具有专用状态时,该虚拟机被预留以供与该池相关联的账户使用。专用机器不会被提供来自其他账户的资源,并且不会代表其他账户执行作业。
“可抢占”虚拟机是当前正代表账户执行池中的任务、但是不保证该虚拟机将持续被分派给那个池并对那个池可用的虚拟机。当可抢占虚拟机变得对池可用时,将该可抢占机器分派给那个池中。随后可提供该可抢占机器,并使用该可抢占机器来执行该池的作业。该可抢占机器可通过任何方便的方法而变得对该池可用,诸如通过(代表相应帐户)使该池在资源拍卖中赢得在该可抢占虚拟机上的处理时间。
分派专用和可抢占虚拟机的附加因素是对该虚拟机的请求是否包括对特定虚拟机群集的亲和力。对虚拟机群集的亲和力可基于各种理由。对虚拟机群集的亲和力的请求的一个示例由具有以下虚拟机的期望和需要引起:该虚拟机具有对用于将在虚拟机上执行的作业的数据存储的改善的访问(例如,高数据传输速度)。对于这种类型的存储亲和力,该亲和力请求可指定对一个或多个虚拟机群集中具有对数据所需访问的虚拟机的分派。这可表示例如对应于具有到数据存储中心的所需物理数据连接的物理机的虚拟机群组。另一类型的亲和力是作业亲和力。由虚拟机执行的一些类型的作业可涉及各虚拟机之间对相同或类似作业起作用的大量通信。在作业亲和力场合中,使对某作业起作用的所有虚拟机都位于单个虚拟机群集(或其他虚拟机组织单元)中以便促成在这些虚拟机之间的消息传递可能是有利的。从单个虚拟机群集选择虚拟机可对应于选择与同一地理位置中的物理机相对应的虚拟机。
变得可用于作为可抢占虚拟机用于一账户的虚拟机通常将是云计算环境中具有另一目的的虚拟机。例如,可抢占虚拟机的一个来源是云计算环境所有者/运营者出于灾难恢复目的而提供的虚拟机。为了提供稳定操作,云计算环境可包括被预留的一组或多组虚拟机。这些预留虚拟机可用于取代由于处理器故障、网络故障、或导致云环境的一部分不再适于执行作业的任何其他种类的事件而失去的资源。当被分配给一池的一个或多个专用虚拟机由于一事件而被失去时,可使用预留的虚拟机来取代该失去的虚拟机。这改善了云计算环境中的资源的可用性。然而,由于期望故障事件是稀少的,因此预留灾难恢复机器通常将意味着大量虚拟机空闲并等待被使用。可将这些虚拟机的被指定用于处理故障事件的CPU循环周期作为可抢占虚拟机分派给各池以运行工作项或作业,而不是浪费这些虚拟机的这些CPU循环周期。如果故障发生并且该系统需要撤走可抢占资源以满足专用资源的要求,则在这种虚拟机上运行的可抢占作业在行得通时就将被停止(并且可能立即被停止),以便该可占用虚拟机可被用于其取代失去或故障资源的原始目的。
可抢占机器的另一来源是能力多余的虚拟机。通常,任何网络的峰值负载将不同于平均负载。结果是,具有足够资源来处理峰值负载情形的计算环境在其他时间通常将具有多余的资源可用。这些多余资源提供了资源缓冲。当用户作出对附加专用虚拟机的请求时,多余的虚拟机可用于满足用户的请求。当云计算环境具有小于专用机器的峰值负载的负载时,一个或多个虚拟机将空闲。可在抢占基础上将这些虚拟机的被指定用于提供空闲能力的CPU循环周期分派给用户和池,而不是浪费这些虚拟机的这些CPU循环周期。随着对专用虚拟机的请求的负载的增加,在这些多余虚拟机上运行的可抢占作业一行得通就将被停止(并且可能被立即停止)。这允许可抢占虚拟机被用于其在需要时提供附加专用资源的原始目的。附加地或替代地,专用机器的负载的一些增加将由所排定的对专用机器的请求引起。如果虚拟机将由于在经排定的时间被用作专用机器而变得不可用,则被分配给该虚拟机的可抢占作业可在该经排定的时间之前被停止以便允许从该可抢占作业到专用资源的有序转变。
在一些情形中,用户可能期望在某个将来时间具有对更大量的专用机器的访问权。在该情形下,用户可将一个或多个虚拟机作为备用虚拟机来预留。“备用”的虚拟机预留是与一池或账户相关联的、供要分派给该池或账户的虚拟机在将来的某时使用的预留。提供虚拟机以供使用可能仅意味着在云计算环境中标识和/或预留足够的虚拟机资源,使得虚拟机资源在被请求时将可用于转换成专用虚拟机。任选地,提供备用机器还可包括向虚拟机提供数据、可执行的代码或其组合。
备用虚拟机预留不是对虚拟机的分配或分派。相反,备用虚拟机预留会预留在将来使空闲或可抢占虚拟机转换成向与该备用预留相关联的用户或池分派的专用虚拟机的权力。可抢占作业可以是与关联于备用预留的池或账户、另一不同的池、或另一不同的账户相关联的作业。当备用预留由池或账户作出时,不将来自虚拟机群集的虚拟机分派给该池或账户。相反,保持与该虚拟机群集相对应的备用预留的数目的计数,使得足够数目的空闲或可抢占虚拟机可用于满足与该虚拟机群集相对应的备用预留。
虚拟机备用预留可出于各种理由而与池相关联。备用机器的一个用途是针对具有仅在特定时间帧期间发生的高优先级计算作业的用户。例如,金融公司可能希望对一个或多个金融市场的日常活动(诸如股票交易或商品交易)执行分析。金融市场可能按预定时间表开市和闭市,诸如在上午9:30开市并在下午4:00闭市。金融公司想要在金融市场开市的时间聚集数据以用于执行分析或模拟。分析的目标是在下一天市场开始之前为他们的员工提供信息。这种分析可能需要大量的虚拟机,但是虚拟机仅在例如从下午6:00直到第二天早晨3:30的时间之间被需要。在此时间期间,金融公司期望保证虚拟机的可用性。在当天的其他时间,该金融公司不需要这些机器。将虚拟机预留与金融公司的账户关联可以达到这一目标。作为支付预留价格的交换,向金融公司保证机器在所需时间期间的可用性。在所需时间窗口之外,这些虚拟机可用作该金融公司和/或其他用户的可抢占机器。
备用预留可用于根据基于时间的标准或基于负载的标准将空闲或可抢占虚拟机转换成向对应于用户的池分派的专用机器。在某些情形下,备用预留可导致至少部分地基于预定的时间和/或日期将空闲或可抢占虚拟机转换成专用虚拟机。在这样的情形下,基于备用预留将可抢占虚拟机转换成专用虚拟机可在排定的可用性事件之前按有序方式停止。这被定义成具有基于时间的标准的备用预留。基于时间的标准不同于基于负载的标准,基于负载的标准被用于定义基于负载的阈值。基于负载的阈值对应于基于一个或多个云资源的使用和/或性能的阈值。优选地,基于负载的阈值不包括对基于时间的标准的使用。除了基于时间的标准和基于负载的标准以外,用于将对应于备用预留的一个或多个虚拟机转换成专用虚拟机的又一选项是基于来自用户或系统管理员的请求。
备用预留的另一用途是允许在扩展作业时的改善的性能。例如,零售商店可以使用云计算资源来在假日之前处理购物季期间的附加在线流量,诸如用于浏览零售商的网站并下订单的在线流量。基于过去的经验,零售商期望一定水平的在线活动,并且预留相应数量的专用虚拟机。然而,在在线活动大于预期的情况下,零售商还经由备用预留来预留附加的机器。零售商随后可以设置一个或多个阈值,该一个或多个阈值指示高于预期的活动水平。随着这些阈值的出现,可使用备用预留来将空闲或可抢占虚拟机转换成专用机器以允许零售商处理此附加在线流量,而无需使零售商的顾客经历慢响应时间。在此情形中,备用预留可在不可预测的时间被转换为专用机器,因为它可能不知道活动阈值何时将被满足。当活动阈值被满足时,空闲或可抢占虚拟机被转换成向与备用预留相关联的池分派的专用虚拟机。如果可抢占任务在转换之前正在虚拟机上运行,则该可抢占任务在将该虚拟机转换成专用机器之前被停止。可任选地,活动阈值不包括基于时间的标准。
分布式网络环境中的计算资源的组织的示例
云计算环境的用户通常希望使用云计算资源来执行作业。这些作业通常涉及对存储在可经由云计算环境来访问的各位置中的数据执行作业。供运营者提供云计算环境的一种方式是将该环境作为多个层来提供。图1示意性地示出适于执行云计算环境中的任务的系统的示例。图1中的系统包括任务运行时层110、第三方任务运行时层120、资源管理层130以及调度和执行层140。
在图1中示出的实施例中,任务运行时层110负责为来自用户105的任务设置执行环境以及安全上下文。任务运行时层110还可启动任务并监视任务的状态。任务运行时层110可采用在每个虚拟机上运行的系统代理的形式。该任务运行时层还可包括链接到用户的任务可执行代码的运行时库。具有作为任务运行时层110的一部分的运行时库可潜在地向由该系统代理执行的任务提供更丰富的能力。运行时库的示例包括:用于允许任务间的快速通信的一个或多个高效通信库;用于从其他虚拟机和/或其他任务读取文件的高效远程文件访问库支持;用于允许任务进行检查点(例如,进入到二进制大对象中)和恢复的检查点库;日志记录库;以及用于提供跨虚拟机池内的执行给定任务的虚拟机使用的分布式文件系统的库。
第三方运行时层120允许附加的运行时被构建在任务运行时层110之上并在任务运行时层110之上运行。第三方任务运行时层120还可提供用于协调作业的各任务的运行的附加能力。示例可包括属于用于提供要跨执行虚拟机池内的给定任务的各虚拟机使用的分布式文件系统的库的MapReduce(映射减少)运行时。这允许用户按针对用户的作业或任务定制的方式组织云计算环境。在一些实施例中,作业管理器任务可促成允许用户使用第三方运行时层来运行和/或控制云计算资源。
资源管理层130涉及管理云计算环境中可用的计算资源。一个选项是使资源管理层130以三个不同的层级管理这些资源。在第一层级,资源管理层130管理与作业(即,工作项的执行)相关联的虚拟机的分配和解除分配以及存储在每个虚拟机上的与任务相关联的文件。在第二层级,将与作业相关联的虚拟机分组成各机器池。池可包含与一个或多个作业和/或工作项相关联的虚拟机。取决于该实施例,单个池可跨越多个虚拟机群集,诸如一数据中心中的所有虚拟机群集、跨一地理区中的多个数据中心的多个虚拟机群集,或跨多个地理区中的各数据中心的多个虚拟机群集。单个池可包含大量虚拟机,诸如数百万的虚拟机。所述虚拟机可被包含在大量的池中,诸如多达数十亿个池中。在第三层级,资源管理层管理给定池群组中可用于与各作业或工作项关联的虚拟机的量。这允许对基于系统的当前负载使用的计算资源的量进行动态调整。此外,未被当前池群组使用的虚拟机可被释放回云计算环境以供并入其他池群组。
在图1中示出的实施例中,调度和执行层140管理用户正执行的工作项、作业和任务。调度和执行层140做出调度决策并且负责启动作业和任务以及在故障时重试。这种调度和执行层140可包括用于以各个层级管理作业和/或任务的组件。
以上描述的层可以在多个地理位置处包括处理器的云计算环境中实现。图2示意性地示出不同位置处的处理器可如何被集成在单个云计算架构中的示例。
在图2中,一个或多个任务承租者215可被用来管理虚拟机池。任务承租者215可维持一组虚拟机。一个或多个用户的作业可在任务承租者215内作为一个或多个虚拟机池的一部分的虚拟机上运行。一个或多个任务承租者215可在给定地理区域中使用。任务承租者215的责任可包括维护该组虚拟机并基于该任务承租者内的资源利用来动态增长或收缩该任务承租者。这允许任务承租者215增加任务承租者内的虚拟机的数量以便容纳增加的顾客需求。这还允许任务承租者215释放未使用的虚拟机以便所述虚拟机能够被分配给数据中心中的处理其他顾客的服务的其他托管服务。任务承租者215的另一责任可以是实现池分配/解除分配/管理逻辑的一部分。这允许任务承租者215参与确定如何将虚拟机分派给与顾客的任务相关联的池。任务承租者215还可负责在该任务承租者内的各虚拟机上调度和执行任务。
在图2的实施例中,提供了控制多个任务承租者215的一个或多个任务位置服务225。此多个任务承租者可对应于给定地理区中的所有任务承租者、来自整个世界的各个任务承租者、或任务承租者的任何其他方便的分组。在图2中,示出了服务于被标记为“美国北部”和“美国南部”的区域的任务位置服务225。任务位置服务225的责任可包括管理该给定地理区域的任务帐户。任务位置服务225还可提供用于允许用户与该云计算环境交互的应用编程接口(API)。这些API可包括与虚拟机池、池管理逻辑、以及跨越给定地理区域中的任务承租者的池管理逻辑的协调相关联的处理API。这些API还可包括用于处理用户所提交的任务、以及用于维护、调度以及终止与该用户任务相关联的工作项或作业的API。这些API可进一步包括用于对地理位置中的所有工作项、作业、任务和池进行统计数据收集、聚集和报告的API。此外,这些API可包括用于允许基于虚拟机的现货市场短期地将可用虚拟机作为可抢占虚拟机向用户拍卖的API。这些API还可包括用于计量使用并且提供计费支持的API。
这些任务位置服务225可被全局位置服务235链接在一起。全局位置服务235可负责账户创建和账户管理,包括结合任务位置服务承租者215来管理任务账户。这包括在存在主要数据中心灾难的情况下,负责灾难恢复并负责工作项和作业的可用性。这可包括由于数据中心出于任何原因不可用而在不同的位置运行工作项或作业。这还可包括允许顾客将他们的工作项、作业和池从一个数据中心迁移到另一数据中心。通常,将仅存在一个活跃的全局位置服务235。该活跃全局位置服务235与各个任务位置服务225以及各用于管理数据存储的服务组件(未示出)通信。全局位置服务可维护全局账户命名空间237。
作为图2中的系统的操作的示例,假想的顾客或用户可经由全局位置服务235所提供的接口来创建任务账户。在此示例中,该假想的顾客被称为Sally。创建任务账户的用户请求可任选地指定需要在其中创建账户的地理区域。在该示例中,Sally请求与美国北部区域相关联的账户。作为响应,全局位置服务235联系与所请求的地理区域(例如,美国北部)相对应的任务位置服务225以便创建该账户。如果区域未被请求,则该任务账户可在用任何方便的方法选择的区域(诸如基于与请求用户相关联的位置)中创建。全局位置服务235还联系至少另一区域(诸如美国南部),使得该账户的灾难恢复副本被创建。可任选地,Sally可请求美国南部用作灾难恢复的故障转移区域,或者美国南部可被该系统用任何方便的方法自动分派。任务位置服务225为处于其地理区域中的所有账户维护所有信息。当成功地将该账户创建在针对美国北部和美国南部的任务位置服务225中后,全局位置服务235为Sally的账户注册指向针对美国北部的任务位置服务225的虚拟IP地址的任务服务端点。例如,域名服务(DNS)记录可被创建以将诸如“sally.task.core.windows.net”等主机名映射到美国北部中的任务位置服务225的虚拟IP地址。这完成了对Sally的任务账户的创建。如果在将来的时间发生数据中心灾难,则全局位置服务235可将该DNS记录更新为指向美国南部。
在创建该账户之后,顾客Sally可以访问该账户并且发送请求以访问用于针对主机名“sally.task.core.windows.net”与云计算环境进行交互的API。例如,Sally可访问API以发出创建新工作项或任务的请求。DNS服务器随后可以解析该主机名,并且该请求将被路由到正确的任务位置服务承租者215。在此示例中,该请求被路由到针对美国北部的任务位置服务承租者215,该任务位置服务承租者处理该请求并创建所请求的工作项、作业或任务。
图3示出了对任务位置服务的潜在配置。在图3中示出的配置中,任务位置服务可包括一个或多个账户服务器321。该账户服务器处理针对给定地理区域中的帐户的帐户管理,包括创建、删除、或属性更新。帐户前端322用作账户服务的前端节点。账户前端322在该图中所示出的账户虚拟IP地址324之后。帐户前端322处理来自全局位置服务的帐户API请求,诸如用于创建帐户或删除帐户的API请求
图3中的配置还包括一个或多个池服务器331。池服务器331处理针对给定地理区域中的虚拟机池的池管理和池事务。池服务器331处理池创建、删除和属性更新。池服务器331还管理跨多个任务承租者的高级虚拟机分配算法。虚拟机分配可将虚拟机与给定用户的存储的连接性纳入考虑。池服务器还可执行与虚拟机的分配有关的其他任务。
图3的配置还包括一个或多个工作项或作业调度器(WIJ)336。WIJ调度器336处理对工作项和作业的创建、删除和更新。此外,如果用户请求了在工作项或作业开始或结束时对池的自动创建和/或破坏,则WIJ调度器336可发起对与这些工作项或作业相关联的池的创建和删除。WIJ调度器336还使用用于缩放的类属划分机制。在一实施例中,在每个任务位置服务中存在多个WIJ调度器336,并且每个WIJ调度器处理一定范围的工作项。
池服务器331和WIJ调度器336经由任务位置服务前端338接收来自用户的请求。任务位置服务前端338还负责调用相应的组件来处理来自用户的请求。任务位置服务前端338在如该图中所示出的WA虚拟IP地址334之后。
图3中的配置还包括任务位置服务主机342。在一实施例中,任务位置服务主机342具有两个主要的责任。首先,任务位置服务主机342用作用于为图2中的任务位置服务225中的相应服务器实现划分逻辑的主机系统。此外,任务位置服务主机342可负责在每一现货时段的开始处为该任务位置服务的整个地理区域计算可抢占虚拟机的新市场价。可以从各池服务器和任务承租者处收集当前投标和资源可用性信息,并据此计算该新市场价。或者,任务位置服务主机可向现货价格市场服务发送该投标和资源可用性信息。它还作出对池服务器的关于跨地理区域中的所有任务承租者的可抢占虚拟机的高级分配指南。
为了跟踪计算环境的活动和行为,任务位置服务主机342可与一个或多个统计数据聚集服务器355通信。统计数据聚集服务器负责收集和聚集任务、作业、工作项和池的详细统计数据。该系统中的其他组件发出任务和虚拟机的精细粒度的统计数据。统计聚集服务器将来自任务层或虚拟机层统计数据的这些精细粒度的统计数据聚集为工作项、帐户层、和/或池层统计数据。所述统计数据可被披露以经由API使用。此外,统计数据聚集服务器可负责为每个帐户生成每小时计量记录以供计费使用。
图4示出任务承租者的一实施例的示例高级架构,该架构包括任务承租者的各组件及相应的责任的示例。如上所述,任务承租者可帮助管理虚拟机池。在图4中示出的实施例中,任务承租者包括一个或多个任务承租者前端422。该任务承租者前端422位于任务承租者虚拟IP地址424之后,该任务承租者虚拟IP地址424内部用于任务承租者和其相应的任务位置服务之间的通信,该通信包括在任务位置服务和任务承租者之间传递请求。
在图4所示的实施例中,任务承租者还包括任务调度器436。任务调度器436可负责做出任务承租者内的局部任务调度决策。任务调度器436决定在它所控制的每个虚拟机上运行什么任务。例如,用户所提交的工作项或作业可具有一组队列,所述队列包含要被调度的任务的列表。任务调度器436从该组队列中取得任务,选择与该作业相关联的池中的一个或多个可用虚拟机,并且联系(诸)虚拟机来调度这些任务。任务调度器436还可基于与作业相关联的优先级值来做出调度决策。此外,任务调度器436跟踪任务承租者内的虚拟机。任务调度器436与池服务器一起工作以将虚拟机分配给池/从池解除分配虚拟机。此外,任务调度器436与所有虚拟机保持心跳、经由心跳关于池成员与虚拟机同步,并且控制虚拟机的重启/重新映像。任务调度器436的又一功能可以是跟踪任务承租者的大小。基于任务承租者内的虚拟机的当前利用率,任务调度器可以增长或收缩该任务承租者,以便该任务承租者具有足够数量的虚拟机来运行与该任务承租者相关联的任务。类似地,如果该任务承租者中有太多虚拟机保持空闲,则可以释放这些虚拟机以供该数据中心中的其他托管服务使用。
图4还示出了与任务承租者相关联的多个虚拟机。在图4中示出的实施例中,每个虚拟机包括任务虚拟机代理450(TVM)。在一实施例中,任务虚拟机代理450负责启动虚拟机上的任务,以及设置任务的目录结构和许可。在该虚拟机上还配置了仅允许同一池内的虚拟机之间的流量(如果该池需要内部通信的话)的操作系统防火墙。如早先讨论的,任务调度器436经由任务虚拟机代理450与该虚拟机保持心跳。这允许任务调度器436监视虚拟机的健康以及为任务虚拟机代理同步池成员信息。
作业在云计算环境中的执行的示例
提供了以下解说云计算环境中的专用虚拟机、备用虚拟机和可抢占虚拟机的操作和交互的假想示例。在这些示例中,将讨论较小数目的虚拟机,以便简化该描述和附图。然而,本领域的技术人员将认识到本文中所描述的概念可扩大到任何所需数目的虚拟机。
名为Abel的用户具有用于在云计算环境中运行作业的账号。这些作业可用于执行任何类型的计算,诸如执行针对业务的数据挖掘和管理、执行科学计算、或处理零售顾客流量。在初始请求中,Abel请求5个专用机器和3个备用机器。在该示例中,这些计算具有保持在存储中的关联数据,并且Abel指示对具有较高通信速度和/或与Abel的数据的存储服务器有较佳连接性的机器的偏好。
图5示出了分派和管理机器以满足Able的请求的示例。在图5中,示出了两个不同任务承租者510和511内的虚拟机。任务承租者510具有较高的数据传输速率和/或对应于与用于存储Abel的数据的存储520有改善的连接性的另一特征。期望利用该改善的连接性的用户(诸如Abel)可以提交具有对任务承租者510的亲和力的请求。图5示出了各自都处于任务承租者510和511内的九个虚拟机。图5中示出的虚拟机是代表性的,并且任何方便数目的附加机器可以要么由任务承租者510要么由任务承租者511来管理。
在图5中,可示出任务承租者内处于若干状态的机器。向对应于用户的池分派的虚拟机可要么是专用机器(由指定(?)D来指示)要么是可抢占机器。此外,任务承租者内的机器可以为空闲。每一任务承租者还包括跟踪所请求的与任务承租者相关联的备用预留的数目的计数。如果备用预留不是具有对特定任务承租者(或其他虚拟机群集)的亲和力的请求的部分,则备用预留可以与任何方便的任务承租者相关联。可任选地,全局计数和/或每用户计数可用于跟踪备用预留的数目。这种全局计数和/或每用户计数可被改为用于跟踪任务承租者的备用预留,或者这种全局计数和/或每用户计数还可被用于跟踪任务承租者的备用预留。对于具有对任务承租者的亲和力的备用预留,偏好跟踪与任务承租者相关联的备用预留。
在图5中,Abel所请求的5个专用虚拟机分派自任务承租者510中的可用虚拟机。这些专用机器由图5中的参考标记531来指示,并包括表示Abel-专用的指定A(D)。虚拟机546是与用户David相关联的专用机器—D(D)。在图5中示出的初始配置中,其余的三个虚拟机557是空闲的。这三个与用户Abel相对应的池的备用预留也由备用计数517跟踪。Abel的备用预留由于所请求的对任务承租者510的亲和力而与该任务承租者相关联。任务承租者511包括2个作为专用机器向一个或多个其他用户分派的机器562。这些机器被记为R(D)。任务承租者511中的其余虚拟机558是空闲的。由于来自其他用户的备用预留,任务承租者511的备用计数518为7。任务承租者511的备用计数可指示有对承租者511的亲和力的备用预留,或者该备用计数可反映备用预留与任务承租者511的名义关联,使得某个任务承租者有责任保持足够数目的非专用机器以满足所有当前备用预留。
在向Abel的账户分派了这些虚拟机后,由Abel提交的任何工作项都是在专用机器531上执行的。如果没有工作项可用,则这些专用虚拟机保持空闲。
在一时间段后,用户Baker和Oliver决定使用一些附加计算资源。使用这些附加资源的计时并不紧急,以便Baker和Oliver各自请求5个可抢占虚拟机。在下一分派时间段期间,提供自Oliver和Baker两者的投标足以赢得对所请求的五个可抢占虚拟机的分派。在该示例中,提供自Oliver的投标高于提供自Baker的投标。这导致Oliver的可抢占虚拟机与Baker的可抢占虚拟机相比具有更高的优先级。图6示出用户Oliver现在具有任务承租者510和511中作为可抢占虚拟机–O(P)–来分派的虚拟机672和673。这些机器被分派给与Oliver相对应的池。类似地,承租者511中的虚拟机677被分派给对应于Baker的池,如由B(P)指定所指示的。
图7示出了向Abel分派的虚拟机在Abel的将备用预留转换成专用虚拟机的请求之后的配置的示例。虚拟机546是作为专用机器被分派给David的,因此不会受到来自Abel的对附加专用机器的请求的影响。相反,来自任务承租者510的向Oliver分派的三个可抢占虚拟机被转换成向Abel分派的专用虚拟机733。由于Abel将所有备用预留转换成专用虚拟机,并且没有请求任何附加的备用预留,因此任务承租者510的备用计数减少成零。
在图7中示出的示例中,任务承租者510中向Oliver分派的虚拟机由于Abel所请求的亲和力而被选择供抢占。然而,Oliver对可抢占虚拟机的投标大于Baker的投标,从而导致向Oliver分派的可抢占虚拟机有更高的优先级。为了恢复Oliver的更高优先级可抢占虚拟机,可将来自任务承租者511的三个虚拟机分派给Oliver。通常,在来自一个池的可抢占虚拟机向另一个池中的可抢占虚拟机的分派方面的改变发生在新分派时间段的开始处。然而,由于Oliver因Abel对专用虚拟机的请求的取代(displacement),可将任务承租者511中的可抢占机器重新分派给Oliver,而无需等待分派时间段的结束。这在图8中由机器874作为可抢占虚拟机向Oliver的分派示出。在该示例中,重新分派给Oliver的虚拟机将通过选择具有最低优先级的虚拟机来选择。这可表示为空闲的虚拟机、对应于最低投标的可抢占虚拟机、或者处于另一原因而具有最低优先级的可抢占虚拟机。
在完成了多个所需计算作业后,Abel对计算资源的需求返回到初始级别。人工地或自动地,Abel请求到5个专用机器和3个备用机器的资源减少。该减少请求的结果在图9中示意性地示出。Abel所请求的专用资源方面的减少导致可用虚拟机的数目的减少。这允许Baker对可抢占机器的请求的其余部分被履行,如虚拟机978所指示的。任务承租者510的备用计数也被再次增加到三,以反映Abel所请求的具有对承租者510的亲和力的备用预留。
附加实施例
在简要描述了本发明的各实施例的概览后,现在描述适于实现虚拟机的示例性操作环境。概括地参考附图,并首先具体参考图10,示出了用于实现本发明的各实施例的示例性操作环境,并将其概括地指定为计算设备1000。计算设备1000只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备1000解释为对所示出的任一组件或其组合有任何依赖性或要求。
本发明的各实施例可以在由计算机或诸如个人数据助理或其它手持式设备之类的其它机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、更专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
继续参考图10,计算设备1000包括直接或间接耦合以下设备的总线1010:存储器1012、一个或多个处理器1014、一个或多个可任选的呈现组件1016、输入/输出(I/O)端口1018、可任选的I/O组件1020、和说明性电源1022。总线1010表示可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图10的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。另外,许多处理器具有存储器。发明人关于此点认识到这是本领域的特性,并重申,图10的图示只是可以结合本发明的一个或多个实施例来使用的示例性计算设备的例示。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,因此它们全部都被认为是在图10的范围之内的并且被称为“计算设备”。
计算设备1000通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备1000访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它全息存储器、磁带盒、磁带、磁盘存储或其它磁性存储设备或可用于编码所需信息且可以由计算设备1000访问的任何其它介质。在一个实施例中,计算机存储介质可以从有形计算机存储介质中选择。在另一实施例中,计算机存储介质可以从非临时性计算机存储介质中选择。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,且包含任何信息传递介质。术语“已调制数据信号”指其一个或多个特征以这样的方式设置或改变以便在信号中对信息进行编码的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包括在计算机可读介质的范围之内。
存储器1012可包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1000包括从诸如存储器1012或I/O组件1020等各种实体读取数据的一个或多个处理器。呈现组件1016向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。
I/O端口1018可允许计算设备1000逻辑上耦合至包括I/O组件1020的其它设备,这些I/O组件中的一些可以是内置的。说明性组件可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、打印机、无线设备等等。
参考具体实施例描述了本发明的实施例,具体实施例在所有方面都旨在是说明性的而非限制性的。不偏离本发明范围的情况下,各替换实施例对于本发明所属领域的技术人员将变得显而易见。
图11示出了根据本发明的方法的示例。在图11中,接收1110对与对应于第一用户的第一虚拟机池相关联的虚拟机的一个或多个备用预留的请求。将一个或多个可抢占虚拟机分派1120给对应于第二用户的第二虚拟机池。在所分派的可抢占虚拟机上执行1130第二虚拟机池的一个或多个任务。随后确定1140基于负载的阈值被满足。基于负载的阈值对应于用于将备用预留转换成分派给第一虚拟机池的专用机器的阈值。选择1150分派给第二虚拟机池的至少一个可抢占虚拟机以供抢占。该选择可基于例如所选虚拟机具有最低优先级,诸如与最低投标相关联或已执行某任务达较短的时间长度。另选地或另外地,该选择可基于第一虚拟机池对包含分派给第二虚拟机池的机器的虚拟机群集的亲和力。该亲和力可例如基于虚拟机群集与数据存储位置的改善的连接性,或基于对使第一虚拟机池中的虚拟机处于同一(或几个)虚拟机群集中的亲和力。停止1160各任务在至少一个所选虚拟机上的执行。随后将该至少一个所选虚拟机作为专用虚拟机分派1170给第一虚拟机池。
图12示出了根据本发明的方法的另一示例。在图12中,跟踪1210与对应于用户的虚拟机池相关联的虚拟机的多个备用预留接收1220来自用户的将专用虚拟机的数目增加第一数量,并将备用预留的数目增加第二数量的请求。可任选地,该请求可以处于来自用户的多个通信和/或多个自动触发的消息的形式。将一个或多个备用预留中的至少一个备用预留转换1230成分派给该虚拟机池的专用虚拟机。将一个或多个附加备用预留与该虚拟机池关联1240,所关联的附加备用预留的数目足以达成所请求的第二数量的增加。使用至少一个经转换的专用虚拟机来执行1250虚拟机池的一个或多个任务。
图13示出了根据本发明的方法的又一示例。在图13中,将来自第一虚拟机群集的第一虚拟机作为可抢占虚拟机分派1310给第一虚拟机池。该分派可在分派时间段内作出。在该分派时间段内将来自第二虚拟机群集的第二虚拟机作为可抢占虚拟机分派1320给第二虚拟机池。在第一可抢占虚拟机和第二可抢占虚拟机上执行1330一个或多个任务。在第一可抢占虚拟机上的一个或多个任务比在第二可抢占虚拟机上的任务具有更大的优先级。随后接收来自第三虚拟机池的对一个或多个专用虚拟机的请求。随后将第一可抢占虚拟机转换1350成向第三虚拟机池分派的专用虚拟机。从第二虚拟机池中移除1360对第二可抢占虚拟机的分派。随后将第二可抢占虚拟机分派1370给第一虚拟机池。随后在第二可抢占虚拟机上发起1380第一虚拟机池的至少一个任务。该至少一个任务是在分派时间段的结束之前发起的。
在一实施例中,提供一种用于提供云计算环境中的资源的方法。该方法包括:接收来自第一用户的对与对应于第一用户的第一虚拟机池相关联的虚拟机的一个或多个备用预留的请求;将一个或多个可抢占虚拟机分派给对应于第二用户的第二虚拟机池;使用所分派的可抢占虚拟机来执行该第二虚拟机池的一个或多个任务;确定用于转换第一虚拟机池的至少一个备用预留的基于负载的阈值被满足;基于与第二虚拟机池相关联的投标价格和用于在可抢占虚拟机上执行任务的时间长度中的至少一者来选择分派给第二虚拟机池的至少一个可抢占虚拟机以供抢占;停止任务在至少一个所选虚拟机上的执行;以及将至少一个所选虚拟机作为专用虚拟机分派给第一虚拟机池。
在另一实施例中,提供了一种用于提供云计算环境中的资源的方法。该方法包括:跟踪与对应于用户的虚拟机池相关联的虚拟机的多个备用预留;接收来自该用户的将分派给该虚拟机池的专用机器增加第一数量以及将与该虚拟机池相关联的备用预留的数目增加第二数量的请求;将一个或多个备用预留中的至少一个备用预留转换成分派给该虚拟机池的专用虚拟机;使一个或多个附加备用预留与该虚拟机池相关联,附加备用预留的数目足以达成备用预留的数目的第二数量的增加;以及使用至少一个经转换专用虚拟机来执行该虚拟机池的一个或多个任务。
在又一实施例中,提供了一种用于提供云计算环境中的资源的方法。该方法包括:将来自第一虚拟机群集的第一虚拟机作为可抢占虚拟机分派给第一虚拟机池达分派时间段;将来自第二虚拟机群集的第二虚拟机作为可抢占虚拟机分派给第二虚拟机池达该分派时间段;在第一可抢占虚拟机和第二可抢占虚拟机上执行一个或多个任务,在第一可抢占虚拟机上的一个或多个任务比在第二可抢占虚拟机上的一个或多个任务具有更大的优先级;接收来自第三虚拟机池的对一个或多个专用虚拟机的请求,该请求包括对第一虚拟机群集的亲和力;将第一可抢占虚拟机转换成分派给第三虚拟机池的专用虚拟机;从第二虚拟机池中移除对第二可抢占虚拟机的分派;将第二可抢占虚拟机分派给第一虚拟机池;以及在该分派时间段的结束之前在第二可抢占虚拟机上发起第一虚拟机池的至少一个任务。
从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该结构是显而易见且固有的其他优点。
可理解的是,某些特征和子组合是有用的,并且可以加以利用而无需参考其它特征和子组合。这由权利要求所构想的,并在权利要求的范围内。

Claims (6)

1.一种用于提供云计算环境中的资源的方法,所述方法包括:
接收来自第一用户的对与对应于所述第一用户的第一虚拟机池相关联的虚拟机的一个或多个备用预留的请求;
将一个或多个备用虚拟机作为可抢占虚拟机分派给对应于第二用户的第二虚拟机池;
使用所分派的可抢占虚拟机来执行所述第二虚拟机池的一个或多个任务;
确定用于转换所述第一虚拟机池的至少一个备用预留的基于负载的阈值被满足,基于负载的阈值对应于用于将备用预留转换成分派给第一虚拟机池的专用机器的阈值;
基于与所述第二虚拟机池相关联的投标价格和用于在可抢占虚拟机上执行任务的时间长度中的至少一者来选择分派给所述第二虚拟机池的至少一个可抢占虚拟机以供抢占;
停止任务在至少一个所选虚拟机上的执行;以及
将所述至少一个所选虚拟机作为专用虚拟机分派给所述第一虚拟机池。
2.如权利要求1所述的方法,其特征在于,还包括跟踪与所述第一虚拟机池相关联的虚拟机的备用保留的数目。
3.如权利要求1所述的方法,其特征在于,对一个或多个备用预留的请求包括具有对一个或多个虚拟机群集的亲和力的请求,对所述一个或多个虚拟机群集的亲和力包括以下中的至少一者:基于与分派给所述第一虚拟机池的虚拟机的连接性的亲和力或到存储的连接性。
4.如权利要求1所述的方法,其特征在于,还包括响应于确定所述基于负载的阈值被满足而将至少一个空闲虚拟机作为专用虚拟机分派给所述第一虚拟机池,分派所述至少一个空闲虚拟机发生在分派所选的至少一个虚拟机之前。
5.如权利要求1所述的方法,其特征在于,任务在所述至少一个所选虚拟机上的执行在分派时间段的结束之前被停止,所述方法还包括在所述分派时间段的结束之前在所述至少一个所选虚拟机上发起所述第一虚拟机池的至少一个任务。
6.如权利要求1所述的方法,其特征在于,所述至少一个所选虚拟机来自第一虚拟机群集,并且其中分派给所述第一虚拟机池的一个或多个机器来自不同于所述第一虚拟机群集的虚拟机群集。
CN201380005099.8A 2012-01-09 2013-01-07 对虚拟机池中的资源的分派 Active CN104040526B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/346,416 US8904008B2 (en) 2012-01-09 2012-01-09 Assignment of resources in virtual machine pools
US13/346,416 2012-01-09
PCT/US2013/020443 WO2013106257A1 (en) 2012-01-09 2013-01-07 Assignment of resources in virtual machine pools

Publications (2)

Publication Number Publication Date
CN104040526A CN104040526A (zh) 2014-09-10
CN104040526B true CN104040526B (zh) 2017-12-01

Family

ID=48744742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380005099.8A Active CN104040526B (zh) 2012-01-09 2013-01-07 对虚拟机池中的资源的分派

Country Status (6)

Country Link
US (4) US8904008B2 (zh)
EP (2) EP2802998B1 (zh)
JP (2) JP2015507281A (zh)
KR (1) KR102005595B1 (zh)
CN (1) CN104040526B (zh)
WO (1) WO2013106257A1 (zh)

Families Citing this family (185)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8966027B1 (en) * 2010-05-24 2015-02-24 Amazon Technologies, Inc. Managing replication of computing nodes for provided computer networks
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8744367B2 (en) * 2010-08-31 2014-06-03 At&T Intellectual Property I, L.P. Tail optimization protocol for cellular radio resource allocation
AU2011308518B2 (en) 2010-09-30 2014-12-04 Commvault Systems, Inc. Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system
US8527627B2 (en) 2010-12-14 2013-09-03 At&T Intellectual Property I, L.P. Intelligent mobility application profiling with respect to identified communication bursts
US8793684B2 (en) * 2011-03-16 2014-07-29 International Business Machines Corporation Optimized deployment and replication of virtual machines
US9264872B2 (en) 2011-06-20 2016-02-16 At&T Intellectual Property I, L.P. Controlling traffic transmissions to manage cellular radio resource utilization
US9220066B2 (en) 2011-06-20 2015-12-22 At&T Intellectual Property I, L.P. Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9116633B2 (en) 2011-09-30 2015-08-25 Commvault Systems, Inc. Information management of virtual machines having mapped storage devices
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
JP6159402B2 (ja) * 2012-08-31 2017-07-05 華為技術有限公司Huawei Technologies Co.,Ltd. 中央処理装置のリソース割当方法及び計算ノード
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9740702B2 (en) 2012-12-21 2017-08-22 Commvault Systems, Inc. Systems and methods to identify unprotected virtual machines
US9378035B2 (en) * 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US9544348B2 (en) * 2013-01-04 2017-01-10 Google Inc. Cloud-based rendering
US9384517B2 (en) 2013-03-14 2016-07-05 Google Inc. Rendering
US9804890B1 (en) * 2013-02-15 2017-10-31 Amazon Technologies, Inc. Termination policies for scaling compute resources
US9507540B1 (en) 2013-03-14 2016-11-29 Amazon Technologies, Inc. Secure virtual machine memory allocation management via memory usage trust groups
US9740422B1 (en) * 2013-03-14 2017-08-22 EMC IP Holding Company LLC Version-based deduplication of incremental forever type backup
US9984206B2 (en) * 2013-03-14 2018-05-29 Volcano Corporation System and method for medical resource scheduling in a distributed medical system
US11669441B1 (en) 2013-03-14 2023-06-06 Amazon Technologies, Inc. Secure virtual machine reboot via memory allocation recycling
US9323552B1 (en) * 2013-03-14 2016-04-26 Amazon Technologies, Inc. Secure virtual machine memory allocation management via dedicated memory pools
US9645840B2 (en) * 2013-04-02 2017-05-09 Amazon Technologies, Inc. User-defined pools
US9634958B2 (en) 2013-04-02 2017-04-25 Amazon Technologies, Inc. Burst capacity for user-defined pools
WO2014177950A1 (en) * 2013-04-30 2014-11-06 Telefonaktiebolaget L M Ericsson (Publ) Availability management of virtual machines hosting highly available applications
US9665386B2 (en) 2013-06-14 2017-05-30 Nutanix, Inc. Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
US9740514B1 (en) 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
US9400718B2 (en) 2013-08-02 2016-07-26 Sanovi Technologies Pvt. Ltd. Multi-tenant disaster recovery management system and method for intelligently and optimally allocating computing resources between multiple subscribers
US20150066553A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. Method and apparatus for multi-tenant service catalog for a software defined cloud
US9923837B2 (en) * 2013-08-29 2018-03-20 Ericsson Ab Method and system to allocate bandwidth based on task deadline in cloud computing networks
GB2518894A (en) * 2013-10-07 2015-04-08 Ibm A method and a system for operating programs on a computer cluster
US10193963B2 (en) * 2013-10-24 2019-01-29 Vmware, Inc. Container virtual machines for hadoop
US10216758B2 (en) * 2013-10-24 2019-02-26 Vmware, Inc. Multi-tenant production and test deployments of Hadoop
US10476760B2 (en) 2013-10-30 2019-11-12 Oracle International Corporation System and method for placement logic in a cloud platform environment
US20150121373A1 (en) * 2013-10-30 2015-04-30 Alistair Black User Privacy Systems And Methods
US9298485B2 (en) 2013-11-19 2016-03-29 International Business Machines Corporation Maintaining virtual machines for cloud-based operators in a streaming application in a ready state
US9576039B2 (en) * 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9594584B2 (en) * 2014-03-31 2017-03-14 Electronics And Telecommunications Research Institute Apparatus and method for mapping of tenant based dynamic processor
CN104137482B (zh) 2014-04-14 2018-02-02 华为技术有限公司 一种云计算架构下的容灾数据中心配置方法及装置
RU2568282C2 (ru) * 2014-04-18 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде
US9459892B2 (en) 2014-05-05 2016-10-04 International Business Machines Corporation Optimization of virtual machines
CN105335207B (zh) 2014-05-29 2019-04-12 国际商业机器公司 用于管理虚拟机实例的方法和装置
US10547562B2 (en) 2014-07-31 2020-01-28 Hewlett Packard Enterprise Development Lp Cloud resource pool
US10452837B1 (en) 2014-09-26 2019-10-22 Amazon Technologies, Inc. Inbound link handling
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9715402B2 (en) * 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9678773B1 (en) * 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9830193B1 (en) * 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US20160117246A1 (en) * 2014-10-27 2016-04-28 Thomson Licensing Method and apparatus for cross-core covert channel
JP6506534B2 (ja) * 2014-11-07 2019-04-24 三星ディスプレイ株式會社Samsung Display Co.,Ltd. 有機電界発光素子用材料及びこれを用いた有機電界発光素子
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
CN105786587B (zh) * 2014-12-23 2019-11-26 华为技术有限公司 一种虚拟机vm的伸缩方法和设备
US9929969B1 (en) * 2014-12-31 2018-03-27 VCA IP Holding Company LLC Tenant-based management system and method for distributed computing environments
US9971621B1 (en) * 2015-02-02 2018-05-15 Amazon Technologies, Inc. Hotpooling virtual machines
US9471775B1 (en) 2015-02-04 2016-10-18 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
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
CN105022668B (zh) * 2015-04-29 2020-11-06 腾讯科技(深圳)有限公司 一种作业调度方法及系统
EP3304303B1 (en) 2015-06-03 2021-06-09 Telefonaktiebolaget LM Ericsson (PUBL) Allocating or announcing availability of a software container
US10848574B2 (en) 2015-06-11 2020-11-24 Microsoft Technology Licensing, Llc Computing resource management system
US9948711B2 (en) 2015-06-15 2018-04-17 International Business Machines Corporation Allocating and managing cloud computing resources for disaster recovery
US9563514B2 (en) 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
US10084873B2 (en) 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9760398B1 (en) * 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
EP3113026B1 (en) * 2015-06-29 2019-07-24 aicas GmbH Automatic memory management using a memory management unit
US10505869B2 (en) 2015-08-04 2019-12-10 International Business Machines Corporation Mimicking a presence notification from an application executing on a virtual component to optimize computing resource allocation/utilization
CN106453457B (zh) 2015-08-10 2019-12-10 微软技术许可有限责任公司 云计算平台内的多优先级服务实例分配
US10223140B2 (en) 2015-08-25 2019-03-05 Futurewei Technologies, Inc. System and method for network function virtualization resource management
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
US9811434B1 (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
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
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
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10395219B1 (en) * 2015-12-18 2019-08-27 Amazon Technologies, Inc. Location policies for reserved virtual machine instances
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
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10162682B2 (en) * 2016-02-16 2018-12-25 Red Hat, Inc. Automatically scaling up physical resources in a computing infrastructure
US10178119B1 (en) 2016-03-30 2019-01-08 Amazon Technologies, Inc. Correlating threat information across multiple levels of distributed computing systems
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10333962B1 (en) 2016-03-30 2019-06-25 Amazon Technologies, Inc. Correlating threat information across sources of distributed computing systems
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
US10142290B1 (en) * 2016-03-30 2018-11-27 Amazon Technologies, Inc. Host-based firewall for distributed computer systems
US10148675B1 (en) 2016-03-30 2018-12-04 Amazon Technologies, Inc. Block-level forensics for distributed computing systems
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
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
US10528374B2 (en) 2016-08-25 2020-01-07 International Business Machines Corporation Volume management by virtual machine affiliation auto-detection
US10108459B2 (en) 2016-09-12 2018-10-23 Bmc Software, Inc. System and method to dynamically allocate varying processing capacity entitlements based on workload importance
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
US20180109469A1 (en) 2016-10-17 2018-04-19 International Business Machines Corporation Systems and methods for controlling process priority for efficient resource allocation
US10616317B2 (en) * 2016-11-10 2020-04-07 Trilliant Networks, Inc. Method and system for affinity load balancing
US10331479B2 (en) 2017-01-13 2019-06-25 Microsoft Technology Licensing, Llc Computing on transient resources
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
US10715403B2 (en) * 2017-04-11 2020-07-14 Nerdio, Inc. Scalable, standardized I.T. deployment platform
US11500663B1 (en) * 2017-06-07 2022-11-15 Amazon Technologies, Inc. Predictive virtual machine launch-based capacity management
KR102263361B1 (ko) * 2017-06-15 2021-06-11 한국전자통신연구원 다중 클라우드 기반의 클라우드 브로커리지 서비스 제공 장치 및 그 방법
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US10565021B2 (en) * 2017-11-30 2020-02-18 Microsoft Technology Licensing, Llc Automated capacity management in distributed computing systems
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
CN108366095A (zh) * 2018-01-16 2018-08-03 厦门集微科技有限公司 一种软件即服务平台
US11762706B1 (en) 2018-02-01 2023-09-19 Vmware, Inc. Computing environment pooling
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including 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
JP7166765B2 (ja) * 2018-02-28 2022-11-08 富士フイルム株式会社 アプリケーション提供装置、アプリケーション提供方法、およびアプリケーション提供プログラム
US10970125B2 (en) * 2018-05-31 2021-04-06 Microsoft Technology Licensing, Llc Dynamic compute resource assignment and scalable computing environment generation for live environments
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
US11500685B2 (en) * 2018-07-24 2022-11-15 Citrix Systems, Inc. Mixed instance catalogs
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
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
CN111158962B (zh) * 2018-11-07 2023-10-13 中移信息技术有限公司 一种异地容灾方法、装置、系统、电子设备及存储介质
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
US20200174844A1 (en) * 2018-12-04 2020-06-04 Huawei Technologies Canada Co., Ltd. System and method for resource partitioning in distributed computing
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US10817046B2 (en) 2018-12-31 2020-10-27 Bmc Software, Inc. Power saving through automated power scheduling of virtual machines
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
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
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
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
US20210004387A1 (en) * 2019-07-03 2021-01-07 Hewlett Packard Enterprise Development Lp Changing the number of replicas of a pod based on size of message queue
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
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to 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
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for 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
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
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
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
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
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
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
CN112698908A (zh) * 2019-10-23 2021-04-23 阿里巴巴集团控股有限公司 云计算资源的伸缩处理方法及装置、存储介质及处理器
CN110865872B (zh) * 2019-11-14 2022-07-08 北京京航计算通讯研究所 基于资源合理化应用的虚拟化集群资源调度系统
CN114930295B (zh) * 2019-11-27 2024-03-15 亚马逊技术有限公司 利用预留容量而不抑制缩放的无服务器调用分配方法及系统
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
US11907764B2 (en) * 2020-05-20 2024-02-20 GE Precision Healthcare LLC Managing computer resources for clinical applications
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11797351B2 (en) * 2021-04-28 2023-10-24 Salesforce, Inc. High-availability continuous delivery of datacenter builds on cloud computing platforms
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN113472956A (zh) * 2021-09-03 2021-10-01 北京健康之家科技有限公司 一种云手机管理方法及装置
CN114416274A (zh) * 2021-10-18 2022-04-29 徐州医科大学 一种虚拟资源管理系统及其方法
KR102424596B1 (ko) * 2022-03-30 2022-07-28 주식회사 클라우드시스템즈 애플리케이션 가상화 서비스 제공 방법
US11928513B1 (en) 2022-12-28 2024-03-12 International Business Machines Corporation Cloud affinity based on evaluation of static and dynamic workload characteristics
CN117891618B (zh) * 2024-03-15 2024-05-24 杭州宇泛智能科技有限公司 人工智能模型训练平台的资源任务处理方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102307208A (zh) * 2010-09-25 2012-01-04 广东电子工业研究院有限公司 基于云计算的虚拟机运行控制装置及其运行控制方法

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062037A (en) 1988-10-24 1991-10-29 Ibm Corp. Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network
US5392430A (en) 1992-10-30 1995-02-21 International Business Machines Hierarchical scheduling method for processing tasks having precedence constraints on a parallel processing system
US5832262A (en) 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
KR19990013427A (ko) 1997-07-15 1999-02-25 포만제프리엘 컴퓨터 환경에서 실행되는 태스크의 관리 방법 및 관리 시스템과 그를 위한 제조물
US6223202B1 (en) 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US7290009B1 (en) 1999-08-25 2007-10-30 The Trustees Of Columbia University In The City Of New York System and method for allocating resources using spot market and derivative market techniques
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US6865591B1 (en) 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
JP2002041305A (ja) 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
US6985951B2 (en) 2001-03-08 2006-01-10 International Business Machines Corporation Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
US7962630B2 (en) 2002-05-10 2011-06-14 Oracle International Corporation Method and mechanism for implementing tagged session pools
US7395334B2 (en) 2003-04-25 2008-07-01 International Business Machines Corporation System for determining unreturned standby resource usage
US7596790B2 (en) 2003-08-29 2009-09-29 Intel Corporation Allocating computing resources in a distributed environment
US8560671B1 (en) * 2003-10-23 2013-10-15 Netapp, Inc. Systems and methods for path-based management of virtual servers in storage network environments
WO2005069155A2 (en) 2004-01-08 2005-07-28 Koninklijke Philips Electronics, N.V. Method and apparatus for task schedulin in a multi-processor system based on memory requirements
JP2005266917A (ja) 2004-03-16 2005-09-29 Nec Corp 分散資源獲得システム、分散資源獲得方法および分散資源獲得用プログラム
US7177878B2 (en) 2004-04-13 2007-02-13 International Business Machines Corporation Simple persistence mechanism for server based web applications
JP4308086B2 (ja) 2004-05-31 2009-08-05 富士通株式会社 自律制御プログラム及びその記録媒体、自律制御装置並びに自律制御方法
US7739685B2 (en) 2005-01-06 2010-06-15 International Business Machines Corporation Decoupling a central processing unit from its tasks
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
BRPI0707220A2 (pt) 2006-01-24 2011-04-26 Citrix Systems Inc métodos e sistemas para fornecer acesso a um ambiente de computação
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
JP2007323439A (ja) 2006-06-01 2007-12-13 Nec Corp リソース割当システム、情報処理装置、リソース割当方法及びリソース割当プログラム
US8151277B2 (en) 2007-05-15 2012-04-03 Dynatrace Software Gmbh Method and system for dynamic remote injection of in-process agents into virtual machine based applications
US8677353B2 (en) 2007-01-11 2014-03-18 Nec Corporation Provisioning a standby virtual machine based on the prediction of a provisioning request being generated
US8380880B2 (en) 2007-02-02 2013-02-19 The Mathworks, Inc. Scalable architecture
US20080189700A1 (en) 2007-02-02 2008-08-07 Vmware, Inc. Admission Control for Virtual Machine Cluster
US20080244607A1 (en) 2007-03-27 2008-10-02 Vladislav Rysin Economic allocation and management of resources via a virtual resource market
US8065676B1 (en) 2007-04-24 2011-11-22 Hewlett-Packard Development Company, L.P. Automated provisioning of virtual machines for a virtual machine buffer pool and production pool
KR101040117B1 (ko) 2007-12-13 2011-06-09 한국전자통신연구원 다중 시스템 워크로드 관리 시스템 및 방법
US8930946B1 (en) 2008-02-14 2015-01-06 Google Inc. Leasing prioritized tasks
US10372490B2 (en) * 2008-05-30 2019-08-06 Red Hat, Inc. Migration of a virtual machine from a first cloud computing environment to a second cloud computing environment in response to a resource or services in the second cloud computing environment becoming available
US8112526B2 (en) 2008-06-24 2012-02-07 International Business Machines Corporation Process migration based on service availability in a multi-node environment
US20100042670A1 (en) 2008-08-13 2010-02-18 Electronic Data Systems Corporation Integrated development engine for a cloud computing environment
US8434087B2 (en) 2008-08-29 2013-04-30 International Business Machines Corporation Distributed acceleration devices management for streams processing
US7870044B2 (en) 2008-10-02 2011-01-11 Verizon Patent And Licensing Inc. Methods, systems and computer program products for a cloud computing spot market platform
US10095533B1 (en) * 2008-10-06 2018-10-09 Veritas Technologies Llc Method and apparatus for monitoring and automatically reserving computer resources for operating an application within a computer environment
US10025627B2 (en) 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
US8291414B2 (en) 2008-12-11 2012-10-16 International Business Machines Corporation Shared resource service provisioning using a virtual machine manager
US9344401B2 (en) 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
KR20100092850A (ko) 2009-02-13 2010-08-23 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법
US8751627B2 (en) 2009-05-05 2014-06-10 Accenture Global Services Limited Method and system for application migration in a cloud
US9201485B2 (en) * 2009-05-29 2015-12-01 Red Hat, Inc. Power management in managed network having hardware based and virtual resources
US20100318454A1 (en) 2009-06-16 2010-12-16 Microsoft Corporation Function and Constraint Based Service Agreements
US8112659B2 (en) 2009-06-19 2012-02-07 Oracle International Corporation Reducing recovery time for business organizations in case of disasters
US8261275B2 (en) 2009-06-29 2012-09-04 Oracle America, Inc. Method and system for heuristics-based task scheduling
CA2674402C (en) 2009-07-31 2016-07-19 Ibm Canada Limited - Ibm Canada Limitee Optimizing on demand allocation of virtual machines using a stateless preallocation pool
US20110078303A1 (en) 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
JP5378946B2 (ja) 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法
US20110113426A1 (en) 2009-11-09 2011-05-12 Hsiang-Tsung Kung Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
US8589921B2 (en) 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
EP2510436A1 (en) 2009-12-11 2012-10-17 Deutsche Telekom AG Computer cluster and method for providing a disaster recovery functionality for a computer cluster
US8924569B2 (en) 2009-12-17 2014-12-30 Intel Corporation Cloud federation as a service
US8631403B2 (en) 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US20110173626A1 (en) 2010-01-12 2011-07-14 Nec Laboratories America, Inc. Efficient maintenance of job prioritization for profit maximization in cloud service delivery infrastructures
US8924982B2 (en) * 2010-01-12 2014-12-30 Amazon Technologies, Inc. Managing private use of program execution capacity
US8301746B2 (en) * 2010-01-26 2012-10-30 International Business Machines Corporation Method and system for abstracting non-functional requirements based deployment of virtual machines
US9703586B2 (en) 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
US20110214124A1 (en) * 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for generating cross-cloud computing appliances
US8489674B2 (en) * 2010-03-11 2013-07-16 Yahoo! Inc. Distributed publish/subscribe system
US8464255B2 (en) * 2010-03-12 2013-06-11 Microsoft Corporation Managing performance interference effects on cloud computing servers
US8271814B2 (en) 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
WO2011123467A1 (en) 2010-03-29 2011-10-06 Amazon Technologies, Inc. Managing committed request rates for shared resources
US9342801B2 (en) 2010-03-29 2016-05-17 Amazon Technologies, Inc. Managing committed processing rates for shared resources
US8738745B1 (en) 2010-03-31 2014-05-27 Amazon Technologies, Inc. Managing use of intermediate destination hardware devices for provided computer networks
US9116731B2 (en) 2010-04-07 2015-08-25 Accenture Global Services Limited Cloud reference model framework
US8667171B2 (en) 2010-05-28 2014-03-04 Microsoft Corporation Virtual data center allocation with bandwidth guarantees
US8606897B2 (en) 2010-05-28 2013-12-10 Red Hat, Inc. Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
CN102271145A (zh) 2010-06-04 2011-12-07 国云科技股份有限公司 一种虚拟计算机集群及其实施方法
US8656387B2 (en) 2010-06-17 2014-02-18 Gridcentric Inc. Method and system for workload distributing and processing across a network of replicated virtual machines
US9329947B2 (en) 2010-06-22 2016-05-03 Red Hat Israel, Ltd. Resuming a paused virtual machine without restarting the virtual machine
US8887163B2 (en) 2010-06-25 2014-11-11 Ebay Inc. Task scheduling based on dependencies and resources
US8719415B1 (en) 2010-06-28 2014-05-06 Amazon Technologies, Inc. Use of temporarily available computing nodes for dynamic scaling of a cluster
US8739170B1 (en) 2010-06-30 2014-05-27 Amazon Technologies, Inc. Managing requests for computing capacity
US20120011077A1 (en) * 2010-07-12 2012-01-12 Bhagat Bhavesh C Cloud Computing Governance, Cyber Security, Risk, and Compliance Business Rules System and Method
CN101938416B (zh) 2010-09-01 2012-08-08 华南理工大学 一种基于动态重配置虚拟资源的云计算资源调度方法
US8533103B1 (en) 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
JP2014038364A (ja) 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
US9237194B2 (en) 2010-11-05 2016-01-12 Verizon Patent And Licensing Inc. Load balancer and firewall self-provisioning system
JP5845571B2 (ja) 2010-11-30 2016-01-20 富士通株式会社 計算システムおよび計算システム管理方法
US20120159234A1 (en) 2010-12-15 2012-06-21 Microsoft Corporation Providing resilient services
US8918784B1 (en) * 2010-12-21 2014-12-23 Amazon Technologies, Inc. Providing service quality levels through CPU scheduling
US10678602B2 (en) * 2011-02-09 2020-06-09 Cisco Technology, Inc. Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures
US8639595B1 (en) 2011-03-10 2014-01-28 Amazon Technologies, Inc. Statistically cost-following accounting model for dedicated resources
US8806015B2 (en) * 2011-05-04 2014-08-12 International Business Machines Corporation Workload-aware placement in private heterogeneous clouds
US20120311575A1 (en) 2011-06-02 2012-12-06 Fujitsu Limited System and method for enforcing policies for virtual machines
US9015708B2 (en) 2011-07-28 2015-04-21 International Business Machines Corporation System for improving the performance of high performance computing applications on cloud using integrated load balancing
US20130061220A1 (en) * 2011-09-06 2013-03-07 Xerox Corporation Method for on-demand inter-cloud load provisioning for transient bursts of computing needs
US9038063B2 (en) * 2011-09-07 2015-05-19 International Business Machines Corporation Determining virtual machine image pattern distributions in a networked computing environment
US8631131B2 (en) * 2011-09-07 2014-01-14 Red Hat Israel, Ltd. Virtual machine pool cache
US8856797B1 (en) 2011-10-05 2014-10-07 Amazon Technologies, Inc. Reactive auto-scaling of capacity
US20130091376A1 (en) 2011-10-05 2013-04-11 International Business Machines Corporation Self-repairing database system
US9229749B2 (en) 2011-10-31 2016-01-05 Cisco Technology, Inc. Compute and storage provisioning in a cloud environment
US20130145004A1 (en) * 2011-12-05 2013-06-06 International Business Machines Corporation Provisioning using presence detection
US8966085B2 (en) 2012-01-04 2015-02-24 International Business Machines Corporation Policy-based scaling of computing resources in a networked computing environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102307208A (zh) * 2010-09-25 2012-01-04 广东电子工业研究院有限公司 基于云计算的虚拟机运行控制装置及其运行控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dynamic Resource Allocation for Spot Markets in Cloud Computing Environments;Zhang Q,Zhu Q,Boutaba R;《2011 Fourth IEEE International Conference on Utility and Cloud Computing》;20111108;178-185 *
云计算环境下虚拟机资源分配优化方法研究;谢文静;《湖南大学 硕士学位论文》;20110928;第3章 *

Also Published As

Publication number Publication date
US20150067682A1 (en) 2015-03-05
WO2013106257A1 (en) 2013-07-18
EP3223156A1 (en) 2017-09-27
KR20140111671A (ko) 2014-09-19
CN104040526A (zh) 2014-09-10
EP2802998B1 (en) 2020-03-18
US11922198B2 (en) 2024-03-05
US20190278622A1 (en) 2019-09-12
EP2802998A1 (en) 2014-11-19
US11194604B2 (en) 2021-12-07
EP2802998A4 (en) 2016-01-27
JP2015507281A (ja) 2015-03-05
US10241812B2 (en) 2019-03-26
JP2018055707A (ja) 2018-04-05
US8904008B2 (en) 2014-12-02
KR102005595B1 (ko) 2019-07-30
US20220156098A1 (en) 2022-05-19
US20130179574A1 (en) 2013-07-11

Similar Documents

Publication Publication Date Title
CN104040526B (zh) 对虚拟机池中的资源的分派
JP6254949B2 (ja) 仮想マシンプールにおけるリソースの価格設定
CN104040486B (zh) 解耦paas资源、作业和调度
CN104040485B (zh) Paas分层调度和自动缩放
CN103377091B (zh) 用于资源共享池中的作业的高效执行的方法和系统
US9280390B2 (en) Dynamic scaling of a cluster of computing nodes
CN104081354A (zh) 在可缩放环境中管理分区
CN104081353A (zh) 可缩放环境中的动态负载平衡
US11175948B2 (en) Grouping of tasks for distribution among processing entities
US20190188052A1 (en) Task queuing and dispatching mechanisms in a computational device
CN102934083B (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150729

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant