CN108207114B - 用于重新配置虚拟机的技术 - Google Patents

用于重新配置虚拟机的技术 Download PDF

Info

Publication number
CN108207114B
CN108207114B CN201580083946.1A CN201580083946A CN108207114B CN 108207114 B CN108207114 B CN 108207114B CN 201580083946 A CN201580083946 A CN 201580083946A CN 108207114 B CN108207114 B CN 108207114B
Authority
CN
China
Prior art keywords
reconfiguration
virtual machine
resource allocation
application
offer
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
CN201580083946.1A
Other languages
English (en)
Other versions
CN108207114A (zh
Inventor
B.福尔马内克
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN108207114A publication Critical patent/CN108207114A/zh
Application granted granted Critical
Publication of CN108207114B publication Critical patent/CN108207114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

公开一种用于重新配置云计算环境中的虚拟机的技术。该技术的方法实现包括:从在云计算环境中的虚拟机上执行的应用(110)接收(S310)重新配置请求,重新配置请求指示对于虚拟机的期望资源分配;向应用(110)发送(S312)重新配置响应,重新配置响应包括指示对于虚拟机的可能的资源分配的重新配置提供;从应用(110)接收(S316)指示接受重新配置提供的重新配置确认;以及触发(S318)虚拟机的重新配置,以便根据接受的重新配置提供来将资源分配给虚拟机。

Description

用于重新配置虚拟机的技术
技术领域
一般来说,本公开涉及云计算。具体来说,呈现了一种用于重新配置云计算环境中的虚拟机的技术。该技术可以用方法、计算机程序、设备和系统来实施。
背景技术
近年来,云计算已经演变成向用户提供对远程计算和存储资源的访问的一般概念。云计算一般涉及到计算基础设施的抽象供应,计算基础设施包括通常(但不一定)在数据中心中提供的大型联网远程服务器群组。
普遍利用虚拟化技术来实现诸如软件即服务(SaaS)的云计算服务。虚拟化允许在诸如服务器或服务器刀片的单个物理计算单元上执行一个或多个虚拟机。虚拟机在逻辑上彼此分开,并共享底层计算单元的处理器、存储器和/或网络资源。在计算单元上采用所谓的管理程序(又称为虚拟机管理器(VMM))来将硬件资源分配给在其上执行的虚拟机。就像在物理机上那样可在每个虚拟机上安装操作系统,操作系统可用于执行在其上的应用程序。
云基础设施管理系统通常决定将虚拟机分配给在云计算环境中可用的物理计算单元。如果需要改变分配,那么虚拟机可从一个计算单元迁移到另一个计算单元。可在虚拟机上在它们的执行继续的同时执行迁移(所谓的“实况迁移”),或者迁移可能需要关闭(所谓的“冷迁移”)或暂停(所谓的“暖迁移”)一个计算主机上的相应虚拟机并重新启动另一个计算主机上的虚拟机。冷迁移和暖迁移也可通过术语“离线迁移”来概括。
物理硬件资源的虚拟化提供众多益处。例如,虚拟化允许跨越应用复用资源并使得应用隔离成为可能。采用虚拟化的另一个优点是能以灵活的方式将资源映射到虚拟机或虚拟机群组,以便动态地处置变化的工作负载。例如,可通过增加分配给虚拟机的资源(所谓的“纵向扩展”)或通过在虚拟机本身继续在相同工作负载上工作时增加虚拟机的数量(所谓的“横向扩展”)来处置工作负载增加。
对于横向扩展途径,通常采用负载平衡器来在虚拟机之间分布工作负载。横向扩展途径最适合于能够划分成独立工作单元并且不需要或只需要相应虚拟机之间的少量通信的可良好并行化的工作负载。
对于纵向扩展途径,当前技术通常应用基本虚拟机和/或操作系统级性能度量来处置工作负载动态。
根据一种此类纵向扩展技术,在虚拟机上运行的优化代理器监测资源使用。代理器可向用户建议配置改变,并且基于用户响应,代理器可告知云管理系统相应地调整给虚拟机的资源分配。
根据另一种技术,通过外部观察虚拟机并且另外通过观察操作系统级统计来测量工作负载。基于观察的统计决定重新配置虚拟机,并在底层计算主机上的资源不充足的情况下通过实况迁移来处置该重新配置。
根据还有的另一种技术,主机控制器获得虚拟机配置数据,并且响应于计算主机的更新或安装在它上面的操作系统的更新,主机控制器标识支持的虚拟硬件资源,并采用优化的配置更新对应的虚拟机。
在网络功能虚拟化(NFV)系统中,通过支持以下三种缩放类别的基于工作负载测量的缩放来处置重新配置:自动缩放,按需缩放和管理请求。在自动缩放中,管理器实体监测虚拟网络功能(VNF),并且当满足某些条件时触发缩放。在按需缩放中,VNF本身通过对管理器实体的显式请求来触发缩放。在管理请求中,通过云运营商发起重新配置。
在这些途径的每个中,测量的工作负载数据只提供关于过去资源使用的信息,并且相应地,只能估计未来的资源要求。然后,过去的和估计的未来资源使用形成对关于将如何执行缩放的决定的基础。但是,在一些情况下,此类估计不足以正确地反映未来的资源使用,并且因此,当前技术并不总是能够合适地处置动态工作负载。
发明内容
因此,存在对于准许对云计算环境中的虚拟机上的动态改变的工作负载的改善的处置的技术的需要。
根据第一方面,提供一种用于触发云计算环境中的虚拟机的重新配置的方法。该方法包括:从在云计算环境中的虚拟机上执行的应用接收重新配置请求,重新配置请求指示对于虚拟机的期望资源分配;向应用发送重新配置响应,重新配置响应包括指示对于虚拟机的可能的资源分配的重新配置提供;从应用接收指示接受重新配置提供的重新配置确认;以及触发虚拟机的重新配置,以便根据接受的重新配置提供来将资源分配给虚拟机。
该方法可通过配置成控制对云计算环境中的虚拟机的资源分配的资源控制器来执行。资源控制器可以是云基础设施管理系统的一部分。
如本文中所提到的,对于虚拟机的资源分配可包括将硬件资源指派给虚拟机。硬件资源可由在其上执行虚拟机的物理计算单元(在下文被表示为“底层计算单元”)提供。因此,资源分配可包括将底层计算单元的硬件组件或其子组件/部分映射到提供给虚拟机的虚拟硬件组件。该映射可通过在底层计算单元上执行并具有对虚拟机的控制的管理程序来进行管理。虚拟机可基于这些虚拟硬件组件进行操作,并利用它们来执行操作系统,而操作系统又可用于执行其中的应用。分配给虚拟机的硬件资源可包括例如处理器和存储器资源中的一个或两个,但不限于此。
备选地或另外地,对于虚拟机的资源分配可包括软件资源。例如,可将虚拟交换机(作为在底层计算单元上的软件组件实现)提供给虚拟机,以便对网络连接性提供支持。仍然备选地或另外地,对于虚拟机的资源分配可包括逻辑资源,诸如例如针对受到管理程序控制的虚拟机的实时调度参数。将了解,对于软件资源和逻辑资源的这些示例不是限制性的,并且可设想为虚拟机配置各种进一步的此类资源。
应用可选择期望资源分配以便优化虚拟机上的应用的执行。为此,应用可基于对它自己的即将发生的执行的了解来确定期望资源分配。期望资源分配可包括期望要分配给虚拟机的一个或多个资源项。所述资源项可包括硬件资源、软件资源和逻辑资源中的至少一个。例如,在硬件资源的情况下,资源项可包括处理器资源和存储器资源中的至少一个。处理器资源可以是例如优选支持一定速度的处理器(或其的核),并且存储器资源可以是例如一定量的随机存取存储器(RAM)或硬盘存储器。例如,在软件资源的情况下,资源项可包括优选支持一定带宽的虚拟交换机提供的接口。
期望资源分配可定义除了用于虚拟机的当前资源分配外的资源,以便增加分配给虚拟机的资源。例如,与当前资源分配相比,期望资源分配可指示,另一个处理器核被期望用于虚拟机上的应用执行。备选地,期望资源分配可包括比用于虚拟机的当前资源分配更少的资源,以便释放分配给虚拟机的资源。当不再需要此类资源用于在虚拟机上执行应用时,可能会出现上述情况。
当向应用发送重新配置响应时,将重新配置提供包括在重新配置响应中可取决于某些条件。因此,只有当满足此类条件中的一个或多个条件时,才可将重新配置提供包含到重新配置响应中。否则,重新配置响应可指示期望资源分配不可能。在这种情况下,可省略从应用接收重新配置确认和触发虚拟机的重新配置的随后方法步骤。
根据一个此类条件,当用于满足期望资源分配的资源至少部分地可用时,重新配置响应可有条件地包括重新配置提供。因此,可能的资源分配可完全对应于期望资源分配,或者可包括包含在期望资源分配中的资源项的一部分。为了确定满足(完全或至少部分地)期望资源分配的资源是否在云计算环境中的计算单元上可用,可查询配置成存储关于当前分配给云计算环境中的虚拟机的资源的信息的虚拟机配置数据库。
根据另一个条件,当期望资源分配不超过预定的最大(或下降为低于预定的最小)资源量时,重新配置响应可有条件地包括重新配置提供。预定的最大(或最小)资源量可由物理限制(例如由相应计算单元的可用硬件资源定义的限制)给定,或者可由用户定义。
根据还有的另一个条件,当应用有权发起虚拟机的重新配置时,重新配置响应可有条件地包括重新配置提供。这种权利可例如取决于在虚拟机上执行的应用的操作系统级权利。在某些变型中,重新配置请求可指示用于重新配置虚拟机的期望重新配置方案。期望重新配置方案可对应于虚拟机的运行时间重新配置、实况迁移和离线迁移之一。
并且,在某些变型中,重新配置提供可进一步指示用于重新配置虚拟机的可能的重新配置方案。可能的重新配置方案可同样地对应于虚拟机的运行时间重新配置、实况迁移和离线迁移之一。可选择可能的重新配置方案以符合期望的重新配置方案。可基于确定在云计算环境中的相应计算单元上是否有足够资源可用来选择可能的重新配置方案。如果确定在底层计算单元上有足够资源可用,那么可选择运行时间重新配置作为可能的重新配置方案。否则,可在云计算环境中确定与底层计算单元不同并具有充足资源的目的地计算单元,并且可相应地选择实况迁移或离线迁移作为可能的重新配置方案。
如果可能的重新配置方案对应于运行时间重新配置,那么触发虚拟机的重新配置可包括命令具有对虚拟机的控制的管理程序根据接受的重新配置提供将资源分配给虚拟机。在这种情况下,虚拟机可保持在底层计算单元上,即,不须经迁移。
另一方面,如果可能的重新配置方案对应于实况迁移,那么触发虚拟机的重新配置可包括:命令具有对虚拟机的控制的管理程序执行虚拟机的实况迁移以将对虚拟机的控制转移给目的地管理程序;以及命令目的地管理程序根据接受的重新配置提供来将资源分配给虚拟机。类似地,如果可能的重新配置方案对应于离线迁移,那么触发虚拟机的重新配置可包括:命令具有对虚拟机的控制的管理程序执行虚拟机的离线迁移以将对虚拟机的控制转移给目的地管理程序;以及命令目的地管理程序根据接受的重新配置提供将资源分配给虚拟机。在这两种情况下,可在已经被确定为具有足够资源可用来满足(完全或至少部分地)期望资源分配的目的地计算单元上执行目的地管理程序。可按照冷迁移或按照暖迁移执行离线迁移。
在某些变型中,该方法可进一步包括将关于根据接受的重新配置提供被分配给虚拟机的资源的信息存储到虚拟机配置数据库中,虚拟机配置数据库配置成存储关于当前分配给云计算环境中的虚拟机的资源的信息。在一些变型中,这可允许收集对于确定在云计算环境中的计算单元上是否有满足(完全或至少部分地)期望资源分配的资源可用所要求的数据。
一般可通过应用来发起触发虚拟机的重新配置。在另一个实现中,可通过诸如例如资源控制器的另一个实体来发起触发虚拟机的重新配置。为此,该方法可包括:在接收重新配置请求之前,向应用发送指示资源可用性改变的通知。该通知可包括对于虚拟机的建议的资源分配。在一些变型中,可以用与本文中描述的可能的资源分配相同的方式对待建议的资源分配。在此类情况下,可将通知当作是重新配置提供,其指示可被应用以与本文中关于可能的资源分配所描述的方式相同的方式所接受的对于虚拟机的建议的资源分配。在这种情况下,可省略从应用接收重新配置请求和将重新配置响应发送给应用的方法步骤。因此,当通知不包含建议的资源分配时,可有条件地执行从应用接收重新配置请求以及向应用发送重新配置响应。
根据第二方面,提供一种用于发起云计算环境中的虚拟机的重新配置的方法。该方法由在云计算环境中的虚拟机上执行的应用执行,并包括:将重新配置请求发送给配置成控制对云计算环境中的虚拟机的资源分配的资源控制器,重新配置请求指示对于虚拟机的期望资源分配;从资源控制器接收重新配置响应,重新配置响应包括指示对于虚拟机的可能的资源分配的重新配置提供;以及将指示接受重新配置提供的重新配置确认发送给资源控制器。
根据第二方面的方法从应用的角度定义方法,其可与根据第一方面的方法互补。因此,第二方面的方法也可包括关于第一方面的方法描述的可适用于第二方面的方法的那些方面。因此,下文中省略了不必要的重复。
在发送重新配置请求之前,应用可确定对于虚拟机的期望资源分配。为此,根据第二方面的方法可包括:在发送重新配置请求之前,通过查询在其中执行应用的操作系统来确定对于虚拟机的当前本地级资源分配。本地级资源分配可包括关于当前分配的虚拟资源(诸如例如由具有对虚拟机的控制的管理程序提供给虚拟机的虚拟硬件组件)的信息。然后,可在当前本地级资源分配的基础上生成重新配置请求。
备选地或另外地,该方法可包括:在发送重新配置请求之前,通过查询配置成存储关于分配给云计算环境中的虚拟机的资源的信息的虚拟机配置数据库来确定与虚拟机有关的当前云级资源分配。云级资源分配可包括关于在云级上当前分配给虚拟机的资源的信息,并且因此可包括不能通过操作系统在本地级上收集的信息。此类信息只可从虚拟机的外部是可访问的。然后,可在当前云级资源分配的基础上生成重新配置请求。
正如在第一方面的方法中那样,重新配置请求可指示用于重新配置虚拟机的期望重新配置方案。期望重新配置方案可对应于虚拟机的运行时间重新配置、实况迁移和离线迁移之一。并且,与重新配置响应一起接收的重新配置提供可进一步指示用于重新配置虚拟机的可能的重新配置方案。可能的重新配置方案同样可对应于虚拟机的运行时间重新配置、实况迁移和离线迁移之一。
在从资源控制器接收到重新配置响应时,取决于在重新配置提供中所指示的可能的重新配置方案,可有条件地执行向资源控制器发送重新配置确认。因此,取决于特定的可能的重新配置方案,可省略或不省略向资源控制器发送重新配置确认。如果省略了发送重新配置确认,那么可向资源控制器发送指示拒绝重新配置提供的通知。
如果可能的重新配置方案对应于运行时间配置,那么应用可接受重新配置提供,并且因此相应地将重新配置确认发送给资源控制器。
如果可能的重新配置方案对应于实况迁移,那么当被应用使用的所有资源可迁移时,可有条件地发送重新配置确认。因此,应用可检查在应用的执行中所使用的资源是否可被迁移。例如,如果应用只使用在云级提供的全局资源,那么可给出可迁移性。另一方面,例如,如果使用的本地资源中的至少一个本地资源不能被迁移或不能有效地被迁移,那么可不给出可迁移性。
此外,如果可能的重新配置方案对应于离线迁移,那么当应用的状态在虚拟机暂停或关闭之后可恢复时,可有条件地发送重新配置确认。因此,应用可检查是否给出可恢复性,并且相应地接受或拒绝重新配置提供。
在一个实现中,该方法可包括:在发送重新配置请求之前,从资源控制器接收指示资源可用性改变的通知。该通知可包括对于虚拟机的建议的资源分配。在一些变型中,可以用与本文中描述的可能的资源分配相同的方式对待建议的资源分配。在此类情况下,可将通知当作是重新配置提供,其指示可被应用以与本文中关于可能的资源分配描述的方式相同的方式所接受的对于虚拟机的建议的资源分配。在这种情况下,可省略向资源控制器发送重新配置请求以及从资源控制器接收重新配置响应的方法步骤。因此,当通知不包含建议的资源分配时,可有条件地执行向资源控制器发送重新配置请求以及从资源控制器接收重新配置响应。
根据第三方面,提供一种计算机程序产品。该计算机程序产品包括当在一个或多个计算装置(例如,处理器或处理器的分布式集合)上执行该计算机程序产品时,用于执行第一和第二方面中的至少一个方面的方法的程序代码部分。该计算机程序产品可被存储在诸如半导体存储器、DVD、CD-ROM等的计算机可读记录介质上。
根据第四方面,提供一种用于触发云计算环境中的虚拟机的重新配置的资源控制器。该资源控制器包括存储程序代码的至少一个存储器和配置成执行程序代码的至少一个处理器,其中程序代码配置成使所述至少一个处理器执行如下步骤:从在云计算环境中的虚拟机上执行的应用接收重新配置请求,重新配置请求指示对于虚拟机的期望资源分配;向应用发送重新配置响应,重新配置响应包括指示对于虚拟机的可能的资源分配的重新配置提供;从应用接收指示接受重新配置提供的重新配置确认;以及触发虚拟机的重新配置,以便根据接受的重新配置提供来将资源分配给虚拟机。
根据第五方面,提供一种用于发起云计算环境中的虚拟机的重新配置的计算单元。该计算单元包括存储程序代码的至少一个存储器和配置成执行程序代码的至少一个处理器,其中程序代码属于在云计算环境中的虚拟机上执行的应用,并且程序代码配置成使所述至少一个处理器执行如下步骤:将重新配置请求发送给配置成控制对云计算环境中的虚拟机的资源分配的资源控制器,重新配置请求指示对于虚拟机的期望资源分配;从资源控制器接收重新配置响应,重新配置响应包括指示对于虚拟机的可能的资源分配的重新配置提供;以及将指示接受重新配置提供的重新配置确认发送给资源控制器。
根据第四方面的资源控制器和根据第五方面的计算单元一般可配置成执行本文中所呈现的任何方法和方法步骤。
根据第六方面,提供有一种系统,其包括第四方面的资源控制器和第五方面的至少一个计算单元。
附图说明
本文在下文参考附图来描述本文中所呈现的技术的实施例,图中:
图1示意性地示出可在其中执行本公开的实施例的云计算环境;
图2示出当新实例化一虚拟机时在图1的云计算环境的实体之间执行的通信;
图3示出用于触发图1的云计算环境中的虚拟机的重新配置的过程的序列图;以及
图4示出可通过在图1的云计算环境中的虚拟机上执行的应用来执行的方法的流程图。
具体实施方式
在以下描述中,出于解释而非限制的目的,阐述了特定细节,以便提供对本公开的透彻理解。对本领域技术人员将显而易见的是,可在偏离这些特定细节的其它实施例中实践本公开。例如,尽管将联系示范云架构来部分地描述以下实施例,但是将明白,也可结合其它云架构和其它云管理途径实践本公开。并且,本领域技术人员将明白,本公开提到虚拟机作为虚拟化技术的示例,但是本公开不限于此。而是,本领域技术人员将明白,可结合诸如容器、沙箱等的具有类似性质的其它虚拟化概念来实施本公开。
本领域技术人员还将明白,可利用各个硬件电路、利用结合编程的微处理器或通用计算机运作的软件、利用一个或多个专用集成电路(ASIC)和/或利用一个或多个数字信号处理器(DSP)来实现本文中在下文所解释的服务和功能。还将明白,当在方法方面描述本公开时,它也可在一个或多个处理器与耦合到所述一个或多个处理器的一个或多个存储器中实施,其中采用在由所述一个或多个处理器执行时执行本文中公开的步骤、服务和功能的一个或多个程序来编码所述一个或多个存储器。
图1示意性地示出云计算环境100,其中提供多个计算单元102,例如物理服务器或服务器刀片。每个计算单元102托管一个或多个虚拟机104,每个虚拟机104可通过管理程序106(又称为虚拟机管理器“VMM”)访问相应的底层计算单元102的资源,使得若干个虚拟机104可共享相同计算单元102的资源,例如它的处理器和存储器资源。对于每个计算单元102,通过管理程序106管理资源的分配,管理程序106可将可用资源的专用部分指派给在它上面执行的虚拟机104。在每个虚拟机104上,安装了可用于执行其中的应用110(或若干个应用)的操作系统108,从而为应用110(或若干个应用)提供对分配给相应虚拟机104的资源的访问。此外,在每个计算单元102上,可提供虚拟交换机(未示出),相应虚拟机104可利用该虚拟交换机来建立到云计算环境100中的其它实体的网络连接性。
云计算环境100还包括资源控制器112。资源控制器112配置成控制对虚拟机104的资源分配,并且它可以是云基础设施管理系统的一部分。资源控制器112可决定实例化虚拟机104、终止虚拟机104以及在不同计算单元102上及其间迁移虚拟机104。具体来说,资源控制器112可决定对虚拟机104的硬件资源、软件资源和逻辑资源的分配。因此,可以说资源控制器112在云级处置资源的分配,而不是管理程序106(其在本地级处置资源的分配)。为了实现期望的分配,资源控制器112可经由网络114与相应的管理程序106通信,并命令它将资源分配给相应虚拟机104。
云计算环境100还包括存储关于当前分配给云计算环境100中的虚拟机104的资源的详细信息的虚拟机配置数据库116。存储在虚拟机配置数据库116中的信息可包括关于硬件资源、软件资源和逻辑资源中的至少一种资源的分配的信息。例如,在硬件资源的情况下,虚拟机配置数据库116可存储关于相应计算单元102的物理硬件资源以及它们到提供给虚拟机104的相应虚拟硬件组件的映射的信息。作为示例,在同时多线程(SMT)环境中,虚拟机配置数据库116可存储相应计算单元102的物理多核处理器的核到指派给相应虚拟机104的虚拟处理器的映射。例如,在软件资源的情况下,虚拟机配置数据库116可存储关于提供给虚拟机104的虚拟交换机的配置的信息。例如,在逻辑资源的情况下,虚拟机配置数据库116可存储用于受到对应管理程序106控制的虚拟机104的实时调度参数。将了解,硬件/软件/逻辑资源的这些示例不是限制性的,并且可设想在虚拟机配置数据库116中存储关于此类或其它资源的各种进一步信息。
资源控制器112可查询虚拟机配置数据库116,以便收集用于确定在云计算环境100中的计算单元102上是否有满足相应虚拟机104的期望资源分配的资源可用所要求的信息。在图1的示例中,将资源控制器112和虚拟机配置数据库116示出为可通过网络114建立到彼此的连接的单独实体。但是,将了解,也可用单个实体的形式提供资源控制器112和虚拟机配置数据库116。此外,如图1中所示,每个应用110实现可用于通过网络114与资源控制器112和虚拟机配置数据库116通信的应用编程接口(API)。
图2示出当新实例化虚拟机104时在云计算环境100的实体之间执行的通信的实施例。
当要实例化虚拟机104时,资源控制器112可首先确定云计算环境100中具有足够多自由资源以用于实例化虚拟机104的计算单元102,并然后可命令对应计算单元102的管理程序106相应地实例化虚拟机104。一旦完成虚拟机104的实例化,资源控制器112便可将关于分配给虚拟机104的资源的信息存储到虚拟机配置数据库116中。这在图2中用虚线箭头指示。因此,启动虚拟机104,并相应地引导安装在它上面的操作系统108。操作系统108检测虚拟机104的虚拟硬件配置并相应地配置它本身。在此之后,启动应用110。这在图2中用加粗箭头指示。
图3示出用于触发云计算环境100中的虚拟机104的重新配置的过程的实施例的序列图。在初始状态中,在虚拟机104上的操作系统108中以当前工作负载执行应用110。在预期有工作负载中的改变中或者在工作负载中发生改变时,应用110可能想要优化它在虚拟机104上的执行。作为示例,应用110可能了解到关于它连续接收的输入数据的即将发生的改变。在输入数据改变成可更加并行化的格式的情况下,可通过将更多处理器核分配给虚拟机104来加速对输入数据的处理。
因此,作为该过程的第一步骤,应用110确定对于虚拟机104的当前资源分配。这包括:在步骤S302中,通过查询在其中执行应用110的操作系统108来确定对于虚拟机104的当前本地级资源分配。本地级资源分配可包括关于当前分配给虚拟机104的虚拟资源的信息,诸如例如由对应管理程序106提供给虚拟机104的虚拟硬件组件。此外,通过在步骤S304中查询虚拟机配置数据库116并在步骤S306中从虚拟机配置数据库116接收对应响应来确定与虚拟机104有关的当前云级资源分配。云级资源分配可包括关于云级上当前所分配的涉及虚拟机104的资源的信息,并且因此可包括不能通过对应操作系统108在本地级上收集的信息(即,此类信息只可从虚拟机104的外部是可访问的)。
接着,在步骤S308中,应用110确定期望资源分配。应用110可选择期望资源分配以便优化应用110在虚拟机104上的执行。为此,应用110可基于对关于它自己的即将发生的执行的了解确定期望资源分配。期望资源分配可包括一个或多个资源项,所述一个或多个资源项可进而包括硬件资源、软件资源和逻辑资源中的至少一个。例如,在硬件资源的情况下,资源项可包括处理器资源和存储器资源中的至少一个。处理器资源可以是例如优选支持一定速度的处理器(或其核),并且存储器资源可以是例如一定量的随机存取存储器(RAM)或硬盘存储器。在软件资源的情况下,资源项可包括优选支持一定带宽的虚拟交换机提供的接口。
然后,应用110可检查当前资源分配是否与期望资源分配匹配。如果当前资源分配与期望资源分配不匹配并且因此可优化应用110的执行,那么应用110生成指示期望资源分配的重新配置请求并将它发送给资源控制器112(在步骤S310中)。可选地,重新配置请求还可指示用于重新配置虚拟机104的期望重新配置方案。期望重新配置方案可对应于虚拟机104的运行时间重新配置、实况迁移和离线迁移之一。在接收到重新配置请求时,资源控制器112确定在云计算环境100中的底层计算单元102上或另一个计算单元102上是否有(完全或至少部分地)满足期望资源分配的资源可用。可选地,资源控制器112可针对对于此类确定所要求的对应信息来查询虚拟机配置数据库116(图3中没有示出)。
如果资源控制器112确定能够(完全或至少部分地)满足期望资源分配,那么它生成指示对于虚拟机104的可能资源分配以及指示用于重新配置虚拟机104的可能的重新配置方案的重新配置提供。可能的重新配置方案可对应于虚拟机104的运行时间重新配置、实况迁移和离线迁移之一。资源控制器112可选择符合期望重新配置方案的可能的重新配置方案。资源控制器112可基于确定在云计算环境100中的相应计算单元102上是否有足够资源可用来选择可能的重新配置方案。如果确定在底层计算单元102上有足够资源可用,那么可选择运行时间重新配置作为可能的重新配置方案。否则,可确定不同于底层计算单元102并具有足够资源的目的地计算单元102,并可相应地选择实况迁移或离线迁移作为可能的重新配置方案。一旦完成重新配置提供的生成,资源控制器112便在步骤S312中将包括重新配置提供的重新配置响应发送给应用110。
在发送重新配置响应之前,资源控制器112可以可选地执行额外检查,诸如确定期望资源分配是否超过预定的最大资源量或应用110是否有权发起虚拟机104的重新配置,并且只有当这些检查成功时才将重新配置提供包含到重新配置响应中。
然后,应用110检查接收的重新配置提供,并且如果它在步骤S314中确定重新配置提供可接受,那么应用110在步骤S316中向资源控制器112发送指示接受重新配置提供的重新配置确认。资源控制器112进而在步骤S318中触发虚拟机104的重新配置,以便将根据接受的重新配置提供的资源分配给虚拟机104。
取决于选择的可能的重新配置方案,触发虚拟机104的重新配置可不相同。如果可能的重新配置方案对应于运行时间重新配置,那么触发虚拟机104的重新配置可包括命令对应管理程序106根据接受的重新配置提供将资源分配给虚拟机104。另一方面,如果可能的重新配置方案对应于实况迁移或离线迁移,那么触发虚拟机104的重新配置可包括:命令管理程序106执行虚拟机104的实况/离线迁移以便将对虚拟机104的控制转移给目的地管理程序106;并命令目的地管理程序106根据接受的重新配置提供将资源分配给虚拟机104。目的地管理程序106可以是在已被确定为具有可用于(完全或至少部分地)满足期望资源分配的足够资源的目的地计算单元102上被执行的管理程序。
一旦完成对虚拟机104进行重新配置,应用110便可通过例如对应操作系统108检测指派给虚拟机104的新资源分配,并且可将它的执行适配到新的可用资源。
图4示出可通过在云计算环境100中的虚拟机104上执行的应用110执行的方法实施例的流程图。在图4中,步骤S404到S412对应于图3的步骤S302到S312,并且因此省略对这些步骤的详细描述以免不必要的重复。
在步骤S404之前,可执行可选步骤S402,在步骤S402中,应用110从资源控制器112接收指示资源可用性改变的通知。在这种情况下,触发虚拟机104的重新配置不由应用110发起,而是由资源控制器112发起。除了指示资源可用性改变以外,通知还可指示对于虚拟机104的建议的资源分配。在异常事件中,例如如果过多的资源变得可用(例如,由于云中的负载较少或由于虚拟机关闭),或者如果要求额外资源(例如,用于实例化新的虚拟机或用于纵向扩展高优先级应用),那么可通过资源控制器112发送通知。在一个变型(未被描绘)中,可以用与下文关于步骤S412描述的可能的资源分配相同的方式来对待建议的资源分配。在这种情况下,可将通知当作是重新配置提供,其指示可被应用110以与下文关于步骤S414到S426中的可能资源分配所描述的方式相同的方式所接受的对于虚拟机104的建议的资源分配。在这种情况下,可省略步骤S410和S412。
在步骤S412中接收重新配置提供之后,应用110可确定重新配置提供是否可接受。这可取决于在重新配置提供中指示的可能的重新配置方案。因此,应用110在步骤S414中检查可能的重新配置方案是否对应于运行时间配置。如果情况如此,那么应用110在步骤S416中接受重新配置提供,并相应地向资源控制器112发送重新配置确认。否则,应用110在步骤S418中检查可能的重新配置方案是否对应于实况迁移。如果情况如此,那么应用110在步骤S420中检查在执行应用110中所使用的资源是否可被迁移。如果情况如此,那么应用110在步骤S416中接受重新配置提供,并且否则,在步骤S422中拒绝重新配置提供。如果在步骤S418中可能的重新配置方案不对应于实况迁移,那么应用在步骤S424中检查可能的重新配置方案是否对应于离线迁移。如果情况如此,那么应用110在步骤S426中检查应用110的状态是否在虚拟机104暂停或关闭之后可恢复。如果情况如此,那么应用110在步骤S416中接受重新配置提供,并且否则在步骤S422中拒绝重新配置提供。
在下文中,将描述特定应用110的四个示范实现,以便进一步阐明本公开的技术。
在第一示例中,应用110是执行离线编码的视频编码器。视频编码器110从本地文件(资源F1)读未压缩的视频数据、对视频数据进行编码、并将压缩后的视频数据写到另一个本地文件(资源F2)。以标准清晰度(SD)分辨率提供视频数据的第一部分,并以高清晰度(HD)分辨率提供视频数据的第二部分。
假设,对于虚拟机104的当前分配包括两个虚拟处理器(资源P1,P2)。对于处理视频的SD部分,视频编码器110可使用两个线程,每个线程在所述两个虚拟处理器之一上执行。以此方式,视频编码器110可实时执行编码。然而,对于处理视频的HD部分,应用知道要求四个线程以保持实时处理速度。
因此,视频编码器110向资源控制器112发送指示包括两个额外虚拟处理器(P3,P4)的期望资源分配的重新配置请求,从而请求分配总共4个处理器(P1,P2,P3,P4)。在该示例中,资源控制器112用包括四个处理器并指示实况迁移作为可能的可能的重新配置方案的重新配置提供做出应答。视频编码器110进而确定本地文件(F1,F2)过大而无法有效地被迁移(即,这些文件对于实况迁移并不是足够高效地可转移的)。因此,视频编码器110确定并非它使用的所有资源都可迁移,并且相应地拒绝重新配置提供。
为了检查另一个资源分配是否可用于加速编码,视频编码器110向资源控制器112发送指示只具有一个额外虚拟处理器(P3)的期望资源分配的另一个重新配置请求,从而请求分配总共三个处理器(P1,P2,P3)。在该示例中,资源控制器112用包括三个处理器并指示运行时间重新配置作为可能的可能的重新配置方案的重新配置提供做出应答。在这种情况下,视频编码器110接受重新配置提供,并且——在检测到虚拟机104中的第三虚拟处理器(P3)的可用性之后——视频编码器110启动第三线程以用于处理HD视频数据。实际上,并没有然后实时地处置处理,但这并不至关重要,因为视频编码器110执行离线编码(而非实况编码)。
此外,在继续处理HD视频数据的同时,视频编码器110从资源控制器112接收指示第四处理器(或分别地第四处理器核)在底层计算主机102处变得可用的通知。因此,视频编码器110向资源控制器112发送指示包括一个额外虚拟处理器(P4)的期望资源分配的重新配置请求,从而请求分配总共四个处理器(P1,P2,P3,P4)。资源控制器112现在用包括四个处理器并指示运行时间重新配置作为可能的重新配置方案的重新配置提供做出应答。在这种情况下,视频编码器110接受重新配置提供,并且——在检测到虚拟机104中的第四虚拟处理器(P4)的可用性之后——视频编码器110启动第四线程以用于处理HD视频数据的剩余部分。处理速度现在是实时的。
在第二示例中,应用110是执行实况编码的视频编码器。视频编码器110在多播IP(因特网协议)插口(资源M1)上接收压缩视频数据、对视频数据进行编码、并将压缩视频数据发送到多播IP地址(资源M2)。
与第一示例类似,采用SD分辨率提供视频数据的第一部分,并采用HD分辨率提供视频数据的第二部分。再次假设,对于虚拟机104的当前分配包括允许实时处理视频的SD部分的两个虚拟处理器(P1,P2)。然而,要求四个线程以保持实时处理速度以用于处理视频的HD部分。
因此,视频编码器110向资源控制器112发送指示包括两个额外虚拟处理器(P3,P4)的期望资源分配的重新配置请求,从而请求分配总共四个处理器(P1,P2,P3,P4)。在该示例中,资源控制器112用包括四个处理器并指示实况迁移作为可能的重新配置方案的重新配置提供做出应答。视频编码器110进而确定它使用的所有资源(具体来说是M1、M2)都可迁移,并且因此接受重新配置提供。然后,执行虚拟机104的实况迁移,并且——在检测到虚拟机104中的第三和第四处理器(P3,P4)的可用性之后——视频编码器110启动第三和第四线程以用于实时处理HD视频数据。
在第三示例中,应用110是高性能分组处理应用程序。分组处理应用110包括不断旋转以拾取到达虚拟机104的入站虚拟网络接口的分组的分组接收线程。在提供给虚拟机104的虚拟处理器(PV)上执行该线程。通过在底层计算单元102本身上(即,在虚拟机104外部)运行的应用程序来执行进行旋转以从对应的物理网络接口拾取分组的额外分组接收线程。在底层计算单元102的物理处理器核上的逻辑处理器(PL)上执行该线程。在该示例中,分组处理应用110知道,如果与在虚拟机104的外部运行的分组接收线程(刚好在另一个逻辑核上)在相同的物理处理器核上执行它自己的分组接收线程,那么能够实现改善的性能,因为于是所述两个线程能够使用相同的高速缓冲存储器。
由于分组处理应用110不能在本地级上确定该信息(关于在虚拟机104外部运行的线程的信息不可从虚拟机104内访问),所以分组处理应用110查询虚拟机配置数据库116,以便找出关于指派给虚拟机104的虚拟处理器到底层计算单元102的逻辑处理器的映射。如果基于从虚拟机配置数据库116接收的信息,分组处理应用110确定在不同处理器核上执行所述两个线程,那么分组处理应用110向资源控制器112发送指示其中将它的虚拟处理器(PV)映射到与在虚拟机104外部运行的分组接收线程相同的物理处理器核上的逻辑处理器核的期望资源分配的重新配置请求。资源控制器112采用指示对应的(完全满足的)可能资源分配并指示运行时间重新配置作为可能的重新配置方案的重新配置提供做出应答。分组处理应用110相应地接受重新配置提供,并继续以更高性能运行。
在第四示例中,应用110是在计算单元102上执行的高优先级应用程序,在计算单元102上执行的多个虚拟机104完全(或几乎完全)利用计算单元102的资源。在此类情况下,在不释放在相同计算单元102上执行的其它虚拟机104的资源的情况下,或者在不在虚拟机104之一上执行实况迁移的情况下,不能履行对在其上执行应用110的虚拟机104的额外资源的分配。
在该示例中,高优先级应用110向资源控制器112发送指示包括例如额外虚拟处理器的期望分配并指示运行时间重新配置作为期望重新配置方案(因此指示不期望实况迁移)的重新配置请求。然后,资源控制器112确定,只有当在相同计算单元102上执行的一个或多个其它虚拟机104被纵向缩减、即释放一些它们的分配的资源时才能够满足重新配置请求。因此,资源控制器112向在另一个虚拟机104上执行(但在相同计算单元102上执行)的另一个应用110发送指示资源可用性改变以及对于所述另一个虚拟机104的建议的资源分配的通知。在该示例中,所述另一个应用110采用指示接受所建议的资源分配的重新配置确认做出应答。然后,资源控制器112相应地触发所述另一个虚拟机104的重新配置。由于现在已经释放了足够的资源以用于满足高优先级应用110的期望分配,所以资源控制器112采用指示(完全满足的)可能的资源分配并指示运行时间重新配置作为可能的重新配置方案的重新配置提供向高优先级应用110做出应答。高优先级应用110相应地接受重新配置提供,并继续以更高性能运行。
在该示例的变型中,所述另一个应用110拒绝接受建议的资源分配可以是可能的。然后,资源控制器112可以用相同方式向仍有的进一步应用110发送通知,直到它们中的一个接受(或除了一起接受外,它们中的更多个接受)对应资源释放以满足高优先级应用110的期望应用。在其它应用110中没有应用110接受资源释放的情况下,资源控制器112可在其它虚拟机104中的一个或多个虚拟机104上执行实况迁移。
正如从以上实施例已变得显而易见,能够通过在要被重新配置的虚拟机上执行的应用来发起和控制虚拟机的重新配置。应用一般对其未来的资源要求具有最佳的了解,并且因此能够实现对动态工作负载改变的更快速的反应时间。例如,应用可在发生工作负载改变之前就已经了解关于此类改变,并且它不取决于外部工作负载测量。应用能够通过分配更多资源或释放过多的资源而及时地做出反应,并且以此方式,减少资源超额预定,避免性能损失,并增加资源利用率。
应用能够协商底层虚拟机自身的重新配置,并且能够请求能够在运行时间被决定的期望重新配置。此外,在某些变型中,应用具有对它自身要应用的重新配置方案的控制,并且甚至可考虑关于该应用的物理到虚拟资源映射的特殊要求。云计算环境并不总是需要有对在云中执行的应用的任何了解,并且只需跟踪哪些资源可用或分配了哪些资源。来自资源控制器的通知能够使得应用对全局或本地资源可用性改变做出动态地反应。
相信,从以上的描述将全面了解本文中所呈现的技术的优点,并且将显而易见的是,在不偏离本发明的范围的情况下或在不牺牲所有的其有利效果的情况下,可在其示范方面的形式、构造和布置中做出各种改变。由于本文中所呈现的技术能够以许多方式进行变化,所以将意识到,本发明应只受到随附权利要求的范围的限制。

Claims (44)

1.一种用于触发云计算环境(100)中的虚拟机(104)的重新配置的方法,所述方法由在所述云计算环境(100)中的配置成控制对所述虚拟机(104)的资源分配的资源控制器(112)执行,并包括:
从在所述云计算环境(100)中的所述虚拟机(104)上执行的应用(110)接收(S310)重新配置请求,所述重新配置请求指示对于所述虚拟机(104)的期望资源分配,其中,所述应用基于对它自己的即将发生的执行的了解来确定所述期望资源分配,并且其中,已经在通过查询在其中执行所述应用(110)的操作系统(108)来对于所述虚拟机(104)确定的当前本地级资源分配的基础上生成所述重新配置请求;
向所述应用(110)发送(S312)重新配置响应,所述重新配置响应包括指示对于所述虚拟机(104)的可能的资源分配的重新配置提供;
从所述应用(110)接收(S316)指示接受所述重新配置提供的重新配置确认;以及
触发(S318)所述虚拟机(104)的重新配置,以便根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
2.如权利要求1所述的方法,其中通过配置成控制对所述云计算环境(100)中的虚拟机(104)的资源分配的资源控制器(112)来执行所述方法。
3.如权利要求1或2所述的方法,其中当用于满足所述期望资源分配的资源至少部分地可用时,所述重新配置响应有条件地包括所述重新配置提供。
4.如权利要求3所述的方法,其中当所述期望资源分配不超过预定的最大资源量时,所述重新配置响应有条件地包括所述重新配置提供。
5.如权利要求4所述的方法,其中当所述应用(110)有权发起所述虚拟机(104)的重新配置时,所述重新配置响应有条件地包括所述重新配置提供。
6.如权利要求5所述的方法,其中所述重新配置请求进一步指示用于重新配置所述虚拟机(104)的期望重新配置方案。
7.如权利要求6所述的方法,其中所述期望重新配置方案对应于所述虚拟机(104)的运行时间重新配置、实况迁移、以及离线迁移之一。
8.如权利要求1所述的方法,其中所述重新配置提供进一步指示用于重新配置所述虚拟机(104)的可能的重新配置方案。
9.如权利要求8所述的方法,其中所述可能的重新配置方案对应于所述虚拟机(104)的运行时间重新配置、实况迁移、以及离线迁移之一。
10.如权利要求8或9所述的方法,其中如果所述可能的重新配置方案对应于运行时间重新配置,那么触发所述虚拟机(104)的重新配置包括:
命令具有对所述虚拟机(104)的控制的管理程序(106)根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
11.如权利要求8或9所述的方法,其中如果所述可能的重新配置方案对应于实况迁移,那么触发所述虚拟机(104)的重新配置包括:
命令具有对所述虚拟机(104)的控制的管理程序(106)执行所述虚拟机(104)的实况迁移以将对所述虚拟机(104)的控制转移给目的地管理程序(106);以及
命令所述目的地管理程序(106)根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
12.如权利要求8或9所述的方法,其中如果所述可能的重新配置方案对应于离线迁移,那么触发所述虚拟机(104)的重新配置包括:
命令具有对所述虚拟机(104)的控制的管理程序(106)执行所述虚拟机(104)的离线迁移以将对所述虚拟机(104)的控制转移给目的地管理程序(106);以及
命令所述目的地管理程序(106)根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
13.如权利要求1所述的方法,还包括:
将关于根据所述接受的重新配置提供被分配给所述虚拟机(104)的所述资源的信息存储到虚拟机配置数据库(116)中,所述虚拟机配置数据库(116)配置成存储关于当前分配给所述云计算环境(100)中的虚拟机(104)的资源的信息。
14.如权利要求1所述的方法,还包括:
在接收所述重新配置请求之前,向所述应用(110)发送指示资源可用性改变的通知。
15.如权利要求14所述的方法,其中所述通知包括对于所述虚拟机(104)的建议的资源分配。
16.一种用于发起云计算环境(100)中的虚拟机(104)的重新配置的方法,所述方法由在所述云计算环境(100)中的虚拟机(104)上执行的应用(110)执行,并包括:
通过查询在其中执行所述应用(110)的操作系统(108)来确定(S302;S404)对于所述虚拟机(104)的当前本地级资源分配;
在所述当前本地级资源分配的基础上生成所述重新配置请求;
由所述应用基于对它自己的即将发生的执行的了解来确定期望资源分配;
将重新配置请求发送(S310;S410)给配置成控制对所述云计算环境(100)中的虚拟机(104)的资源分配的资源控制器(112),所述重新配置请求指示对于所述虚拟机(104)的期望资源分配;
从所述资源控制器(112)接收(S312;S412)重新配置响应,所述重新配置响应包括指示对于所述虚拟机(104)的可能的资源分配的重新配置提供;以及
将指示接受所述重新配置提供的重新配置确认发送(S316)给所述资源控制器(112)。
17.如权利要求16所述的方法,还包括:
在发送(S310;S410)所述重新配置请求之前,通过查询(S304)配置成存储关于分配给所述云计算环境(100)中的虚拟机(104)的资源的信息的虚拟机配置数据库(116)来确定(S406)与所述虚拟机(104)有关的当前云级资源分配;以及
在所述当前云级资源分配的基础上生成所述重新配置请求。
18.如权利要求16到17中任一权利要求所述的方法,其中所述重新配置请求进一步指示用于重新配置所述虚拟机(104)的期望重新配置方案。
19.如权利要求18所述的方法,其中所述期望重新配置方案对应于所述虚拟机(104)的运行时间重新配置、实况迁移、以及离线迁移之一。
20.如权利要求16所述的方法,其中所述重新配置提供进一步指示用于重新配置所述虚拟机(104)的可能的重新配置方案。
21.如权利要求20所述的方法,其中所述可能的重新配置方案对应于所述虚拟机(104)的运行时间重新配置、实况迁移、以及离线迁移之一。
22.如权利要求20或21所述的方法,其中如果所述可能的重新配置方案对应于实况迁移,那么当被所述应用(110)所使用的所有资源可迁移时,有条件地发送所述重新配置确认。
23.如权利要求20或21所述的方法,其中如果所述可能的重新配置方案对应于离线迁移,那么当所述应用(110)的状态在所述虚拟机(104)暂停之后可恢复时,有条件地发送所述重新配置确认。
24.如权利要求16所述的方法,还包括:
在发送(S310;S410)所述重新配置请求之前,从所述资源控制器(112)接收(S402)指示资源可用性改变的通知。
25.如权利要求24所述的方法,其中所述通知包括对于所述虚拟机(104)的建议的资源分配。
26.一种存储程序代码部分的计算机可读记录介质,当在一个或多个计算装置上执行所述程序代码部分时,所述程序代码部分用于执行权利要求1到25中任一权利要求的所述方法。
27.一种用于触发云计算环境(100)中的虚拟机(104)的重新配置的资源控制器(112),所述资源控制器(112)包括:
存储程序代码的至少一个存储器;以及
配置成执行所述程序代码的至少一个处理器,其中所述程序代码配置成使所述至少一个处理器执行以下操作:
从在所述云计算环境(100)中的虚拟机(104)上执行的应用(110)接收(S310)重新配置请求,所述重新配置请求指示对于所述虚拟机(104)的期望资源分配,其中,所述期望资源分配由所述应用基于对它自己的即将发生的执行的了解来确定,并且其中,已经在通过查询在其中执行所述应用(110)的操作系统(108)来对于所述虚拟机(104)确定的当前本地级资源分配的基础上生成所述重新配置请求;
向所述应用(110)发送(S312)重新配置响应,所述重新配置响应包括指示对于所述虚拟机(104)的可能的资源分配的重新配置提供;
从所述应用(110)接收(S316)指示接受所述重新配置提供的重新配置确认;以及
触发(S318)所述虚拟机(104)的重新配置,以便根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
28.如权利要求27所述的资源控制器(112),其中当用于满足所述期望资源分配的资源至少部分地可用时,所述重新配置响应有条件地包括所述重新配置提供。
29.如权利要求27或28所述的资源控制器(112),其中所述重新配置请求进一步指示用于重新配置所述虚拟机(104)的期望重新配置方案。
30.如权利要求29所述的资源控制器(112),其中所述重新配置提供进一步指示用于重新配置所述虚拟机(104)的可能的重新配置方案。
31.如权利要求30所述的资源控制器(112),其中所述可能的重新配置方案对应于所述虚拟机(104)的运行时间重新配置、实况迁移、以及离线迁移之一。
32.如权利要求31所述的资源控制器(112),其中配置成使所述至少一个处理器触发所述虚拟机(104)的重新配置的所述程序代码还配置成如果所述可能的重新配置方案对应于运行时间重新配置,则使所述至少一个处理器执行如下操作:
命令具有对所述虚拟机(104)的控制的管理程序(106)根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
33.如权利要求31所述的资源控制器(112),其中配置成使所述至少一个处理器触发所述虚拟机(104)的重新配置的所述程序代码还配置成如果所述可能的重新配置方案对应于实况迁移,则使所述至少一个处理器执行如下操作:
命令具有对所述虚拟机(104)的控制的管理程序(106)执行所述虚拟机(104)的实况迁移以将对所述虚拟机(104)的控制转移给目的地管理程序(106);以及
命令所述目的地管理程序(106)根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
34.如权利要求31所述的资源控制器(112),其中配置成使所述至少一个处理器触发所述虚拟机(104)的重新配置的所述程序代码还配置成如果所述可能的重新配置方案对应于离线迁移,则使所述至少一个处理器执行如下操作:
命令具有对所述虚拟机(104)的控制的管理程序(106)执行所述虚拟机(104)的离线迁移以将对所述虚拟机(104)的控制转移给目的地管理程序(106);以及
命令所述目的地管理程序(106)根据所述接受的重新配置提供来将资源分配给所述虚拟机(104)。
35.如权利要求27所述的资源控制器(112),其中所述程序代码还配置成使所述至少一个处理器执行如下操作:
在接收所述重新配置请求之前,向所述应用(110)发送指示资源可用性改变的通知。
36.一种用于发起云计算环境(100)中的虚拟机(104)的重新配置的计算单元(102),所述计算单元(102)包括:
存储程序代码的至少一个存储器;以及
配置成执行所述程序代码的至少一个处理器,其中所述程序代码属于在所述云计算环境(100)中的虚拟机(104)上执行的应用(110),并且所述程序代码配置成使所述至少一个处理器执行如下操作:
通过查询在其中执行所述应用(110)的操作系统(108)来确定(S302;S404)对于所述虚拟机(104)的当前本地级资源分配;
在所述当前本地级资源分配的基础上生成所述重新配置请求;
由所述应用基于对它自己的即将发生的执行的了解来确定期望资源分配;
将重新配置请求发送(S310;S410)给配置成控制对所述云计算环境(100)中的虚拟机(104)的资源分配的资源控制器(112),所述重新配置请求指示对于所述虚拟机(104)的期望资源分配;
从所述资源控制器(112)接收(S312;S412)重新配置响应,所述重新配置响应包括指示对于所述虚拟机(104)的可能的资源分配的重新配置提供;以及
将指示接受所述重新配置提供的重新配置确认发送(S316)给所述资源控制器(112)。
37.如权利要求36所述的计算单元(102),其中所述程序代码还配置成使所述至少一个处理器执行如下操作:
在发送(S310;S410)所述重新配置请求之前,通过查询(S304)配置成存储关于分配给所述云计算环境(100)中的虚拟机(104)的资源的信息的虚拟机配置数据库(116)来确定(S406)与所述虚拟机(104)有关的当前云级资源分配;以及
在所述当前云级资源分配的基础上生成所述重新配置请求。
38.如权利要求37所述的计算单元(102),其中所述重新配置请求进一步指示用于重新配置所述虚拟机(104)的期望重新配置方案。
39.如权利要求38所述的计算单元(102),其中所述重新配置提供进一步指示用于重新配置所述虚拟机(104)的可能的重新配置方案。
40.如权利要求39所述的计算单元(102),其中所述可能的重新配置方案对应于所述虚拟机(104)的运行时间重新配置、实况迁移、以及离线迁移之一。
41.如权利要求40所述的计算单元(102),其中配置成使所述至少一个处理器发送所述重新配置确认的所述程序代码配置成:如果所述可能的重新配置方案对应于实况迁移,那么当被所述应用(110)使用的所有资源可迁移时,使所述至少一个处理器有条件地发送所述重新配置确认。
42.如权利要求40所述的计算单元(102),其中配置成使所述至少一个处理器发送所述重新配置确认的所述程序代码配置成:如果所述可能的重新配置方案对应于离线迁移,那么当所述应用(110)的状态在所述虚拟机(104)暂停之后可恢复时,使所述至少一个处理器有条件地发送所述重新配置确认。
43.如权利要求42所述的计算单元(102),其中所述程序代码还配置成使所述至少一个处理器执行如下操作:
在发送(S310;S410)所述重新配置请求之前,从所述资源控制器(112)接收(S402)指示资源可用性改变的通知。
44.一种系统,包括权利要求27到35中任一权利要求的所述资源控制器(112)和权利要求36到43中任一权利要求的至少一个计算单元(102)。
CN201580083946.1A 2015-08-18 2015-08-18 用于重新配置虚拟机的技术 Active CN108207114B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/068940 WO2017028907A1 (en) 2015-08-18 2015-08-18 Technique for reconfiguring a virtual machine

Publications (2)

Publication Number Publication Date
CN108207114A CN108207114A (zh) 2018-06-26
CN108207114B true CN108207114B (zh) 2021-12-21

Family

ID=53872065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580083946.1A Active CN108207114B (zh) 2015-08-18 2015-08-18 用于重新配置虚拟机的技术

Country Status (4)

Country Link
US (1) US10754702B2 (zh)
EP (1) EP3338184B1 (zh)
CN (1) CN108207114B (zh)
WO (1) WO2017028907A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
WO2017034527A1 (en) * 2015-08-21 2017-03-02 Hewlett Packard Enterprise Development Lp Adjusting cloud-based execution environment by neural network
US10476839B2 (en) * 2016-08-15 2019-11-12 Cisco Technology, Inc. Datapath triggered on-demand NFV service activation
US10304153B2 (en) * 2016-11-07 2019-05-28 Vmware, Inc. Virtual machine graphic resource usage
WO2019016584A1 (en) * 2017-07-17 2019-01-24 Telefonaktiebolaget Lm Ericsson (Publ) TRIGGER CORRELATION FOR DYNAMIC SYSTEM RECONFIGURATION
JP6958414B2 (ja) * 2018-02-19 2021-11-02 日本電信電話株式会社 仮想リソース管理装置、仮想リソース割り当て方法、仮想リソース割り当てプログラム、および、仮想リソース管理システム
US10817046B2 (en) 2018-12-31 2020-10-27 Bmc Software, Inc. Power saving through automated power scheduling of virtual machines
US11068313B2 (en) * 2019-02-07 2021-07-20 International Business Machines Corporation Cloud brokerage application decomposition and migration
US11429415B2 (en) * 2019-03-27 2022-08-30 Red Hat Israel, Ltd. Dynamic tuning of hypervisor for high-performance virtual machines
US11824736B2 (en) * 2019-05-24 2023-11-21 Telefonaktiebolaget Lm Ericsson (Publ) First entity, second entity, third entity, and methods performed thereby for providing a service in a communications network
JP7010272B2 (ja) * 2019-10-08 2022-01-26 横河電機株式会社 リアルタイム通信処理システム、およびリアルタイム通信処理方法
US11263025B2 (en) 2020-05-26 2022-03-01 International Business Machines Corporation Proactively performing tasks based on estimating hardware reconfiguration times
US20220100543A1 (en) * 2020-09-25 2022-03-31 Ati Technologies Ulc Feedback mechanism for improved bandwidth and performance in virtual environment usecases
CN117170795A (zh) * 2022-05-25 2023-12-05 中兴通讯股份有限公司 一种虚拟机加速硬件调整方法、装置、存储介质及电子装置
CN117112500B (zh) * 2023-10-17 2024-01-26 天津市天河计算机技术有限公司 一种资源管理方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571905A (zh) * 2010-10-20 2012-07-11 微软公司 为在线服务管理网络和机器
WO2014066820A2 (en) * 2012-10-28 2014-05-01 Citrix Systems, Inc. Network offering in cloud computing environment
CN103778178A (zh) * 2012-10-23 2014-05-07 国际商业机器公司 用于重新配置虚拟机的快照的方法和系统
CN104679591A (zh) * 2013-11-28 2015-06-03 国际商业机器公司 用于在云环境中进行资源分配的方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028048B2 (en) * 2007-02-27 2011-09-27 International Business Machines Corporation Method and apparatus for policy-based provisioning in a virtualized service delivery environment
EP2435926A4 (en) * 2009-05-29 2013-05-29 Hewlett Packard Development Co SYSTEM AND METHOD FOR ASSIGNING RESOURCES OF A SERVER TO A VIRTUAL MACHINE
US8862720B2 (en) * 2009-08-31 2014-10-14 Red Hat, Inc. Flexible cloud management including external clouds
US8595722B2 (en) * 2010-10-14 2013-11-26 International Business Machines Corporation Preprovisioning virtual machines based on request frequency and current network configuration
US9110709B2 (en) * 2010-12-14 2015-08-18 International Business Machines Corporation Preserving changes to a configuration of a running virtual machine
US9128745B2 (en) * 2012-12-27 2015-09-08 International Business Machines Corporation Automatically managing the storage of a virtual machine
US10241814B2 (en) * 2013-01-29 2019-03-26 Red Hat Israel, Ltd. Virtual machine memory migration by storage
US9009722B2 (en) * 2013-02-05 2015-04-14 International Business Machines Corporation Collaborative negotiation of system resources among virtual servers running in a network computing environment
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US9448826B2 (en) * 2013-03-15 2016-09-20 Symantec Corporation Enforcing policy-based compliance of virtual machine image configurations
US9411622B2 (en) * 2013-06-25 2016-08-09 Vmware, Inc. Performance-driven resource management in a distributed computer system
US9660834B2 (en) * 2014-05-13 2017-05-23 International Business Machines Corporation Bursting cloud resources to affect state change performance
US10089128B2 (en) * 2014-05-21 2018-10-02 Vmware, Inc. Application aware service policy enforcement and autonomous feedback-based remediation
US10248460B2 (en) * 2015-03-27 2019-04-02 Hitachi, Ltd. Storage management computer
US9983807B1 (en) * 2015-03-30 2018-05-29 EMC IP Holding Company LLC Static service levels and application specific usage tags for storage policy based management of storage resources
US10579403B2 (en) * 2015-06-29 2020-03-03 Vmware, Inc. Policy based provisioning of containers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571905A (zh) * 2010-10-20 2012-07-11 微软公司 为在线服务管理网络和机器
CN103778178A (zh) * 2012-10-23 2014-05-07 国际商业机器公司 用于重新配置虚拟机的快照的方法和系统
WO2014066820A2 (en) * 2012-10-28 2014-05-01 Citrix Systems, Inc. Network offering in cloud computing environment
CN104679591A (zh) * 2013-11-28 2015-06-03 国际商业机器公司 用于在云环境中进行资源分配的方法和装置

Also Published As

Publication number Publication date
CN108207114A (zh) 2018-06-26
EP3338184A1 (en) 2018-06-27
EP3338184B1 (en) 2020-01-15
WO2017028907A1 (en) 2017-02-23
US20180239648A1 (en) 2018-08-23
US10754702B2 (en) 2020-08-25

Similar Documents

Publication Publication Date Title
CN108207114B (zh) 用于重新配置虚拟机的技术
US10860362B2 (en) Methods and apparatus to deploy a hybrid workload domain
US10701139B2 (en) Life cycle management method and apparatus
US11553034B2 (en) Server computer management system for supporting highly available virtual desktops of multiple different tenants
US9405571B2 (en) Method and system for abstracting virtual machines in a network comprising plurality of hypervisor and sub-hypervisors
US20200356402A1 (en) Method and apparatus for deploying virtualized network element device
US11734172B2 (en) Data transmission method and apparatus using resources in a resource pool of a same NUMA node
US9836322B1 (en) Methods and apparatus for virtualizing switch control plane engine
US11343141B2 (en) Methods and apparatus to migrate physical server hosts between virtual standard switches and virtual distributed switches in a network
JP6003590B2 (ja) データセンタ,仮想システムの複写サービスの提供方法,データセンタの管理サーバ及び仮想システムの複写プログラム
KR101585160B1 (ko) 독립실행환경을 제공하는 분산 컴퓨팅 시스템 및 분산 컴퓨팅 시스템의 제어방법
US10157066B2 (en) Method for optimizing performance of computationally intensive applications
KR20160025926A (ko) 가상 응용서버들로 부하를 분산하는 장치 및 방법
CN108347341A (zh) 一种用于调整虚拟机加速能力的加速能力调整方法及装置
JP2014067322A (ja) 仮想サーバの負荷分散システム、および負荷分散方法
US11868805B2 (en) Scheduling workloads on partitioned resources of a host system in a container-orchestration system
US20210157626A1 (en) Prioritizing booting of virtual execution environments
US11080079B2 (en) Autonomously reproducing and destructing virtual machines
US10860347B1 (en) Virtual machine with multiple content processes
EP4109255A1 (en) Scheduling in a container orchestration system utilizing hardware topology hints
TW201828086A (zh) 計算設備及計算設備儲存部件的管理方法及系統
EP4145801A1 (en) Distributed data grid routing for clusters managed using container orchestration services
US20220138008A1 (en) Methods and apparatus to manage resources in a hybrid workload domain
KR101235414B1 (ko) 데이터 방송 수신기에서 스레드 관리 방법

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