CN104424013B - 在计算环境中部署虚拟机的方法和设备 - Google Patents

在计算环境中部署虚拟机的方法和设备 Download PDF

Info

Publication number
CN104424013B
CN104424013B CN201310376402.7A CN201310376402A CN104424013B CN 104424013 B CN104424013 B CN 104424013B CN 201310376402 A CN201310376402 A CN 201310376402A CN 104424013 B CN104424013 B CN 104424013B
Authority
CN
China
Prior art keywords
virtual machine
resources
use pattern
attribute information
disposed
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
CN201310376402.7A
Other languages
English (en)
Other versions
CN104424013A (zh
Inventor
R.伦德尔
朱晓阳
陈荔龙
邹林志
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.)
Qindarui Co.
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310376402.7A priority Critical patent/CN104424013B/zh
Priority to US14/904,970 priority patent/US9846590B2/en
Priority to PCT/CN2014/085000 priority patent/WO2015027865A1/en
Publication of CN104424013A publication Critical patent/CN104424013A/zh
Priority to US15/646,415 priority patent/US10303500B2/en
Application granted granted Critical
Publication of CN104424013B publication Critical patent/CN104424013B/zh
Priority to US16/283,909 priority patent/US10831517B2/en
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/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

Abstract

本发明公开了一种在包括多个节点的计算环境中部署虚拟机的方法和设备。所述方法包括:响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式;基于所选择的虚拟机资源使用模式以及所述多个节点的可用资源,从所述多个节点中选择要部署所述虚拟机的节点;以及在所选择的节点上部署所述虚拟机。通过上述方法和设备,可以基于同样类型的虚拟机的历史运行数据,预测要部署的虚拟机在运行时的资源需求,使得基于所预测的资源需求选择的节点更适合于部署所述虚拟机,从而在提供良好的客户体验的同时,优化计算环境的吞吐量。

Description

在计算环境中部署虚拟机的方法和设备
技术领域
本发明涉及云计算,并且更具体地涉及一种在包括多个节点的计算环境中部署虚拟机的方法和设备。
背景技术
目前,可以通过云计算环境(或称为云计算平台、云服务平台)向客户提供云服务。云计算环境包括多个节点(或称为云计算节点、云服务节点),每个节点具有中央处理单元(CPU)、存储器、磁盘等物理资源。当客户需要云服务时,即,当客户需要使用云计算环境的计算资源时,它发送对于部署虚拟机的请求,该虚拟机将配置有所述计算资源。响应于该请求,配置云计算环境中的某个节点上的物理资源以便在该节点上部署所述虚拟机,然后将该虚拟机提供给客户使用。由于云计算环境包括多个节点,并且每个节点的资源使用情况不同,因此在上述虚拟机部署过程中需要解决的问题是:如何以一种可预测的方式获知要部署的虚拟机在运行时的资源需求特征,从而合理地选择该虚拟机的部署节点,使得在为客户提供良好的服务体验的同时,优化云计算环境的吞吐量。
已经提出了多种方法来选择要部署所述虚拟机的节点。例如,一种方法是循环(Round Robin)法,在这种方法中,以循环的方式依次在云计算环境中的所有可用节点上部署用于客户的虚拟机。另一种方法是简单贪婪(Simple Greedy)法,在这种方法中,始终在同一个节点上部署用于客户的虚拟机,直到该节点的可用资源耗尽为止。然而,这些方法都是基于部署虚拟机时的静态配置信息,而不是基于该虚拟机在运行时的资源需求特征,来选择节点。具体地,用于不同客户以及不同应用场景的虚拟机在运行时消耗的各种资源量(即,运行时资源需求)根据该客户的具体使用场景而动态地变化,因此具有不同的资源需求特征,然而,这两种方法在选择部署虚拟机的节点时,只考虑所述虚拟机的初始静态资源需求,即在发送所述请求时确定的虚拟机的资源需求,而没有考虑该虚拟机的动态的运行时资源需求。由于虚拟机的初始静态资源需求往往不同于其运行时资源需求,因此在某些情况下,通过这两种方法选择的节点可能难以满足虚拟机的运行时资源需求,导致云服务系统吞吐量下降,并且用户体验变差。
发明内容
鉴于以上问题,提出了本发明。本发明的一个目的是提供一种在计算环境(例如云计算环境)中部署虚拟机的方法和设备,其能够预测用于客户的虚拟机在运行时的动态运行时资源需求,由此合理地选择计算环境中的节点并且部署虚拟机,从而在为客户提供良好的服务体验的同时,优化云计算环境的吞吐量。
根据本发明的一个方面,提供了一种在包括多个节点的计算环境中部署虚拟机的方法,包括:响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式;基于所选择的虚拟机资源使用模式以及所述多个节点的可用资源,从所述多个节点中选择要部署所述虚拟机的节点;以及在所选择的节点上部署所述虚拟机。
根据本发明的另一个方面,提供了一种在包括多个节点的计算环境中部署虚拟机的设备,包括:模式选择装置,被配置为响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式;节点选择装置,被配置为基于所选择的虚拟机资源使用模式以及所述多个节点的可用资源,从所述多个节点中选择要部署所述虚拟机的节点;以及部署装置,被配置为在所选择的节点上部署所述虚拟机。
通过根据本发明上述方面的方法和设备,可以基于预先创建的虚拟机资源匹配模式“预测”要部署的虚拟机在运行时的资源需求,即,将来该虚拟机实际运行时的资源需求,然后根据所预测的运行时资源需求来选择要部署该虚拟机的节点。这样,可以保证所选择的节点能够满足要部署的虚拟机在实际运行时的动态资源需求,从而在提供良好的客户体验的同时,优化计算环境的吞吐量。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1表示根据本发明一实施例的云计算节点;
图2表示根据本发明一实施例的云计算环境;
图3表示根据本发明一实施例的抽象模型层;
图4示出了根据本发明实施例的在云计算环境中部署虚拟机的方法的流程图。
图5示出了根据本发明实施例的在云计算环境中部署虚拟机的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及移动桌面。
下面,参照图4来描述根据本发明实施例的在计算环境中部署虚拟机的方法。该方法例如可以在管理层64中执行。在下文中,以云计算环境为例来描述本发明的实施例,但是应当认识到,所述实施例适用于其他类型的计算环境。
如上文所述,云计算环境包括多个节点,每个节点具有多种物理资源,例如CPU、存储器和硬盘等。当客户需要使用云计算环境中的资源时,该客户发出部署用于该客户的虚拟机(为便于描述,以下称为新虚拟机)的请求,该新虚拟机将配置有客户所需的资源。响应于该请求,从云计算环境的多个节点中选择适当的节点,然后将该新虚拟机部署在所选择的节点上,并且通过运行该虚拟机来向客户提供服务。
在本发明的实施例中,当客户请求部署新虚拟机时,可以基于在云计算环境中已经部署的、具有与该新虚拟机的属性信息的至少一部分相同的属性信息的虚拟机的历史运行数据,预测该新虚拟机的运行时资源需求(即,未来该虚拟机实际运行时的资源需求),然后基于所预测的该运行时资源需求来选择要部署该新虚拟机的节点。
具体地,在云计算环境中,可能已经部署并且运行了用于不同客户的多个虚拟机和/或用于同一客户的一个或多个虚拟机。用于不同客户的虚拟机可具有不同的属性信息,而用于同一客户的虚拟机可具有相同或不同的属性信息,并且这些虚拟机在运行时的资源需求(或称为资源需求特征)可能相同或不同。如下文所述,所述属性信息可以是与虚拟机相关联的静态信息,例如与该虚拟机相关联的客户的客户信息及其业务相关信息、该虚拟机的使用模式等等。在本发明的实施例中,根据虚拟机的属性信息将虚拟机分为不同的类型,其中,具有相同属性信息的虚拟机为相同类型的虚拟机,而具有不同属性信息的虚拟机为不同类型的虚拟机。可以基于已经部署的每种类型的至少一个虚拟机的历史运行数据,建立与这种类型的虚拟机对应的虚拟机资源使用模式,所建立的虚拟机资源使用模式至少可以包括这种类型的虚拟机的属性信息、以及这种类型的虚拟机在运行时的资源使用信息(其包含在运行时消耗的各种资源的数量),所述资源使用信息表示这种类型的虚拟机在运行时的资源需求特征。这样,当要部署新虚拟机时,可以从所建立的虚拟机资源使用模式中,找出与该新虚拟机匹配的虚拟机资源使用模式,然后使用该虚拟机资源使用模式中的运行时资源使用信息,预测该新虚拟机的运行时资源需求,从而可以基于与传统方法所使用的静态配置信息相比更加接近真实的运行时情况的、所预测的运行时资源需求来选择节点。可以使用安装在已经部署的虚拟机中的代理程序(proxy)来获取该虚拟机的历史运行数据。
下面,详细描述根据本发明实施例的虚拟机资源使用模式。如上所述,基于已经部署的每种类型的虚拟机的历史运行数据建立的虚拟机资源使用模式至少可以包括这种类型的虚拟机的属性信息、以及这种类型的虚拟机在运行时的资源使用信息(以下称为运行时资源使用信息)。
虚拟机资源使用模式中包含的虚拟机的属性信息可以包括虚拟机的至少一个属性。在一个示例中,所述至少一个属性可以包括:虚拟机映像类型、虚拟机主应用、虚拟机使用模式、该虚拟机所服务的客户的客户ID、所述客户的客户行业、所述客户的业务部门等中的一个或多个。虚拟机映像类型表示这种类型的虚拟机中安装的操作系统的类型,例如Linux、Windows等。虚拟机主应用表示这种类型的虚拟机主要运行的应用的类型,例如数据库等。虚拟机使用模式表示这种类型的虚拟机运行的应用所提供的服务的类型,例如,在所述应用是数据库的情况下,如果该数据库仅提供查询服务,则虚拟机使用模式可以是“报告”,而如果该数据库可以提供信息存取服务,则虚拟机使用模式可以是“事务”。客户ID是指这种类型的虚拟机所服务的客户的身份信息,例如客户的名称(如花旗银行)或其他形式的身份信息。客户行业是指客户所在的行业,例如银行业、制造业等。客户的业务部门是指客户所在的具体业务部门,在所述客户是跨国银行的例子中,客户的业务部门例如可以是“信用卡→国家A1→省B1→城市C1→分行D1”。通过上述属性,可以将不同的客户区分开。应当注意,上面列举的各个属性只是示例性的,而非限制性的。可以根据实际需要灵活地选择所述属性信息中包括的属性。例如,所述属性信息可以不包括虚拟机主应用和虚拟机使用模式之一或全部。此外,可以将所述虚拟机的属性信息分为多个层级,以便在后续的匹配过程中逐个层级地进行匹配操作。例如,虚拟机映像类型、虚拟机主应用、虚拟机使用模式、该虚拟机所服务的客户的客户ID、所述客户的客户行业、所述客户的业务部门可以按照提及的顺序而位于从高到低的多个层级上。此外,每个属性可以进一步分为一个或多个层级。
虚拟机资源使用模式中包含的虚拟机的运行时资源使用信息可以包括表示这种类型的虚拟机在运行时消耗的各种资源量的资源消耗量信息,并且还可以可选地包括与这种类型的虚拟机的运行有关的运行特征信息,例如这种类型的虚拟机的峰值时间(负荷最大的时间)或吞吐量等。在一个示例中,虚拟机资源使用模式中包含的运行时资源使用信息可以是“CPU Usage=2VCPU,Memory Usage=200MB,Disk IO=100IOPS,Network IO=100Mbps,Disk Usage=1.5G,Peak Time=20:00->23:30,Throughput=3960000],其表示这种类型的虚拟机在运行时需要2个虚拟CPU、1024MB的虚拟存储器空间、每秒100次磁盘I/O操作、100Mbps的网络I/O速率、1.5G的硬盘空间,并且该虚拟机的峰值时间为晚上8点至11点半,吞吐量为3960000字节。在云计算环境中仅部署了这种类型的一个虚拟机的情况下,可以使用这一个虚拟机在运行时消耗的各种资源量及其运行特征信息,作为所述虚拟机的运行时资源使用信息。在云计算环境中部署了这种类型的多个虚拟机的情况下,可以使用基于各个虚拟机在运行时实际消耗的各种系统资源及其运行特征信息获得的资源使用信息,作为所述虚拟机的运行时资源使用信息,例如,可以使用各个虚拟机在运行时消耗的各种资源量的平均值,作为运行时资源使用信息中的资源消耗量信息,并且使用以任意适当方式从各个虚拟机的运行特征信息确定的运行特征信息,作为运行时资源使用信息中的运行特征信息。
除了上述属性信息和运行时资源使用信息以外,所述虚拟机资源使用模式还可以包括来源信息,该信息表示作为运行时资源使用信息的数据来源的一个或多个虚拟机的相关信息。例如,所述来源信息可以包括:作为所述数据来源的每个虚拟机所在的云计算环境中的节点(即,宿主节点)的信息,例如所述节点的ID和IP地址、该节点的运行时间等;该虚拟机自身的相关信息,例如该虚拟机的ID和IP地址、该虚拟机的运行时间等;以及根据需要选择的其他信息。在一个示例中,假设某个虚拟机资源使用模式的运行时资源使用信息是基于同一类型的三个虚拟机VM1、VM2和VM3的历史运行数据确定的,并且这三个虚拟机分别位于节点(即,主机)A、节点A和节点B上,则所述来源信息可以表示为:[Hypervisor ID:Host A,Hypervisor IP:9.186.115.73,Hypervisor Running Hours:3000h,{VM ID:VM1,VM IP:192.168.100.23,VM Running Hours:89h;VM ID:VM2,VM IP:192.168.100.11,VMRunning Hours:29h};Hypervisor ID:Host B,Hypervisor IP:9.186.115.74,HypervisorRunning Hours:3200h,{VM ID:VM3,VM IP:192.168.101.10,VM Running Hours:26h}]。应当认识到,上面给出的各种信息的格式仅仅是示例性的,根据需要,也可以采用任何其他适当的格式。
在最初构建云计算环境时,由于云计算环境中的每个节点都是空闲的,因此当接收到第一个来自客户的部署虚拟机(为便于描述,称为第一虚拟机)的请求时,可以随机地选择云计算环境中的节点来部署并且运行该第一虚拟机。然后,可以基于该第一虚拟机的属性信息和运行数据建立对应的虚拟机资源使用模式。随后,在接收到第二个来自客户的部署虚拟机(为便于描述,称为第二虚拟机)的请求时,如果该第二虚拟机具有第一虚拟机相同的属性信息,即,第二虚拟机与第一虚拟机为相同类型的虚拟机,则在按照下文所述的方法部署并运行了第二虚拟机之后,可以利用该第二虚拟机的运行数据来更新所述虚拟机资源使用模式。具体地,可以通过更新虚拟机资源使用模式中的运行时资源使用信息以及来源信息(如果有的话)来更新该虚拟机资源使用模式。例如,可以将虚拟机资源使用模式包含的运行时资源使用信息中的资源消耗量信息更新为第二虚拟机在运行时消耗的各种资源量与该运行时资源消耗量信息中原来记录的各种资源消耗量的平均值,并且相应地将第二虚拟机所在节点的信息、该第二虚拟机本身的信息以及其他相关信息添加到所述来源信息中以更新所述来源信息。另一方面,当第二虚拟机不具有与第一虚拟机相同的属性信息时,第二虚拟机与第一虚拟机为不同类型的虚拟机,此时,在按照下文所述的方法部署并运行了第二虚拟机之后,可以基于该第二虚拟机的运行数据建立对应的虚拟机资源使用模式。对于后续的来自客户的部署虚拟机的请求,重复上述过程,从而建立或更新针对不同类型的虚拟机建立的至少一个虚拟机资源使用模式。所述至少一个资源使用模式例如可以存储在虚拟机资源使用模式库中,并且在需要时可以被查询和提取出来。
下面,参照图4来描述根据本发明实施例的在计算环境(例如云计算环境)中部署虚拟机的方法。
如图4所示,在步骤S401中,响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的该虚拟机匹配的虚拟机资源使用模式。
如上文所述,当客户需要使用云计算环境的资源时,客户发送请求部署虚拟机的请求。该请求包含所述虚拟机的属性信息。该请求中包含的属性信息可以是虚拟机资源使用模式中包含的属性信息的全部或一部分,并且可以由客户指定,以便随后用来选择虚拟机资源使用模式。在下面的描述中,作为示例,假设所述请求中包含的虚拟机的属性信息与在虚拟机资源使用模式中包含的属性信息相同,并且都包括虚拟机映像类型、虚拟机主应用、虚拟机使用模式、客户ID、客户行业和客户业务部门。
可以从至少一个虚拟机资源使用模式中,选择具有与所述请求包含的属性信息的至少一部分相同的属性信息的虚拟机资源使用模式,作为与要部署的该虚拟机匹配的虚拟机资源使用模式。具体地,可以将所述请求包含的属性信息分为多个层级,并且按照层级的顺序(例如从低层级到高层级的顺序),在所述请求包含的属性信息中确定与要部署的该虚拟机匹配的虚拟机资源使用模式应当具有的属性信息。在这里,假设所述请求包含的属性信息按照从高层级到低层级的顺序依次为:虚拟机映像类型(=Linux)、虚拟机主应用(=数据库)、虚拟机使用模式(=事务)、客户行业(=银行业)、客户ID(=花旗银行)、以及客户业务部门,其中所述客户业务部门可以进一步分为5个层级,并且按照从高层级到低层级的顺序依次为信用卡→国家A1→省B1→城市C1→分行D1。
首先,进行第一层级的选择操作。具体地,确定在至少一个资源使用模式中,是否存在具有与所述请求中包含的属性信息完全相同的属性信息的虚拟机资源使用模式,如果存在这样的虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。在本例中,确定在所述至少一个资源使用模式中,是否存在具有属性信息“虚拟机映像类型(=Linux)、虚拟机主应用(=数据库)、虚拟机使用模式(=事务)、客户行业(=银行业)、客户ID(=花旗银行)、以及客户业务部门(信用卡→国家A1→省B1→城市C1→分行D1)”的虚拟机资源使用模式。可以通过将虚拟机资源使用模式中的属性信息与所述请求中包含的属性信息进行比较,来进行这一确定。优选地,对于该第一层级的选择操作,可以设置附加标准,使得在第一层级的选择操作中,确定在至少一个资源使用模式中,是否存在具有与所述请求中包含的属性信息完全相同的属性信息、且满足所述附加标准的虚拟机资源使用模式,并且如果存在该虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。所述附加标准可以根据实际需要灵活地设定。
如果在第一层级的选择操作中没有找到匹配的虚拟机资源使用模式,则可以进行第二层级的选择操作。具体地,舍弃所述请求中包含的最低层级的属性信息,并且确定在所述至少一个虚拟机资源使用模式中,是否存在具有与所述请求中包含的剩余属性信息相同的属性信息的虚拟机资源使用模式,如果存在这样的虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。在本例中,舍弃所述请求中包含的最低层级的属性信息“分行D1”,并且确定是否存在具有属性信息“虚拟机映像类型(=Linux)、虚拟机主应用(=数据库)、虚拟机使用模式(=事务)、客户行业(=银行业)、客户ID(=花旗银行)、以及客户业务部门(信用卡→国家A1→省B1→城市C1)”的虚拟机资源使用模式,如果存在这样的虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。对于第二层级的选择操作,也可以设置附加标准,使得确定在至少一个资源使用模式中,是否存在具有与所述请求中包含的剩余属性信息相同的属性信息、且满足所述附加标准的虚拟机资源使用模式,并且如果存在该虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。所述附加标准可以根据实际需要灵活地设定。例如,所述预定标准可以设置为虚拟机资源使用模式的来源信息中记录的虚拟机的总数大于70,以便选择基于超过70个虚拟机的历史运行数据建立的虚拟机资源使用模式。
如果在第二层级的选择操作中没有找到匹配的虚拟机资源使用模式,则可以进行第三层级的选择操作。具体地,进一步舍弃所述请求中包含的次低层级的属性信息,并且确定在所述至少一个虚拟机资源使用模式中,是否存在具有与所述请求中包含的剩余属性信息相同的属性信息的虚拟机资源使用模式,如果存在这样的虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。在本例中,进一步舍弃所述请求中包含的次低层级的属性信息“城市C1”,并且确定是否存在具有属性信息“虚拟机映像类型(=Linux)、虚拟机主应用(=数据库)、虚拟机使用模式(=事务)、客户行业(=银行业)、客户ID(=花旗银行)、以及客户业务部门(信用卡→国家A1→省B1)”的虚拟机资源使用模式,如果存在这样的虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。对于第三层级的选择操作,也可以设置附加标准,使得确定在至少一个资源使用模式中,是否存在具有与所述请求中包含的剩余属性信息相同的属性信息、且满足所述附加标准的虚拟机资源使用模式,并且如果存在该虚拟机资源使用模式,则选择该虚拟机资源使用模式,作为与所述请求要部署的虚拟机匹配的虚拟机资源使用模式。所述附加标准可以根据实际需要灵活地设定。例如,所述预定标准可以设置为虚拟机资源使用模式的来源信息中记录的虚拟机的总运行时间>1000天。
按照上述方式,逐个层级地进行虚拟机资源模式选择操作,即,按照从低层级到高层级的顺序在所述请求包含的属性信息中确定与要部署的该虚拟机匹配的虚拟机资源使用模式应当具有的属性信息,然后根据所确定的属性信息检查在至少一个虚拟机资源使用模式中是否存在匹配的虚拟机资源使用模式,直到找到该匹配的虚拟机资源使用模式为止,或者直到进行了基于最高层级的属性的选择操作并且仍然未能找到匹配的虚拟机资源使用模式为止。可替换地,可以为上述逐个层级的选择操作设置结束条件,使得当满足该结束条件时,停止该逐个层级的选择操作。所述结束条件例如可以是如果进行了某个层级的选择操作之后仍然未能找到匹配的虚拟机资源使用模式,则停止该逐个层级的选择操作。
返回图4,在找到并选择了与要部署的虚拟机匹配的虚拟机资源使用模式的情况下,在步骤S402中,基于所选择的虚拟机资源使用模式以及所述多个节点的可用资源,从所述多个节点中选择要部署所述虚拟机的节点。
如上文所述,所选择的虚拟机资源使用模式中的运行时资源使用信息包括虚拟机在运行时的资源消耗量的资源消耗量信息,可以通过将该资源消耗量信息中记录的资源消耗量与各个节点的可用资源进行比较,以确定能够用来部署所述要部署的虚拟机的节点。例如,可以选择可用资源多于所选择的虚拟机资源使用模式中记录的资源消耗量的节点作为用来部署所述要部署的虚拟机的节点,在存在多个这样的节点的情况下,可以选择任意一个节点、或者根据预定标准确定的一个节点(例如可用资源最多的节点)作为用来部署所述虚拟机的节点。可以通过在每个节点上安装的监管程序(hypervisor)来获知该节点的可用资源。
接下来,在步骤S403中,在所选择的节点上部署所述要部署的虚拟机。通过部署和运行该虚拟机,可以向客户提供服务。所部署的虚拟机可以配置有不小于所选择的虚拟机资源使用模式中记录的资源消耗量的资源。可以使用本领域公知的方法来在所选择的节点上部署该虚拟机,例如,可以通过从预先设置的虚拟机映像库中选择适当的虚拟机映像并且将其部署在所选择的节点上,来部署该虚拟机。此外,还可以按照上文所述的方式,基于所部署的虚拟机在运行时的资源使用信息,更新所选择的资源使用模式。
另一方面,如上文所述,可能存在通过逐个层级的选择操作仍然未能找到与要部署的虚拟机匹配的虚拟机资源使用模式的情况。在这种情况下,可以检查是否存在与要部署的虚拟机对应的经验数据。所述经验数据表示根据经验获得的、与要部署的虚拟机相同类型的虚拟机在运行时消耗的各种资源量。可以用多种方式获得所述经验数据。例如,可以根据产生最佳性能的虚拟机的属性信息和运行数据获得所述经验数据,或者可以通过分析从云计算环境的数据中心收集的虚拟机的运行数据而获得所述经验数据。如果存在这样的经验数据,则可以使用该经验数据作为要部署的虚拟机在运行时的预测资源消耗量,从而基于该经验数据和各个节点的可用资源来选择用来部署所述虚拟机的节点,然后在所选择的节点上部署所述虚拟机。另一方面,如果不存在所述经验数据,则可以随机地选择云计算环境中的节点,然后在所选择的节点上部署所述虚拟机。在这两种情况下,还可以按照上文所述的方式,基于所部署的虚拟机的运行数据建立对应的虚拟机资源使用模式,并且将其存储在虚拟机资源使用模式库中,以便在接收到后续的部署相同或相似类型的虚拟机的请求时使用。
在根据本发明实施例的上述部署虚拟机的方法中,基于与要部署的虚拟机匹配的虚拟机资源使用模式来选择要部署该虚拟机的节点。由于所述虚拟机资源使用模式是根据与要部署的虚拟机相同或相似类型的虚拟机(或虚拟机的集合)的历史运行数据建立的,其能够反映要部署的虚拟机在运行时最可能发生的资源使用情况,因此,这样选择的节点能够满足要部署的虚拟机的动态资源需求,从而优化系统吞吐量,并且提供良好的客户体验。此外,由于所建立的虚拟机资源使用模式不断被更新,因此,可以保证该虚拟机资源使用模式中记录的资源使用信息始终接近真实的资源使用情况,这使得所选择的节点更适合于要部署的虚拟机。
下面,参照图5来描述根据本发明实施例的用于在计算环境中部署虚拟机的设备。该设备可以执行上文所述的部署虚拟机的方法。此外,该设备可以设置在所述计算环境中,例如设置在所述计算环境的某个管理节点上,或者可以设置在其他适当的位置。同样,在这里以云计算环境为例来描述本发明的实施例,但是该实施例适用于其他类型的计算环境。
如图5所示,所述用于部署虚拟机的设备500包括模式建立/更新装置501、虚拟机资源使用模式库502、模式选择装置503、节点选择装置504和部署装置505。
如上文所述,在云计算环境中,可能已经部署并且运行了用于不同客户的多个虚拟机和/或用于同一客户的一个或多个虚拟机。根据它们的属性信息,这些虚拟机可以被分为相同或不同的类型。模式建立/更新装置501可以基于已经部署的每种类型的至少一个虚拟机的历史运行数据,建立与这种类型的虚拟机对应的虚拟机资源使用模式(如上文所述),该虚拟机资源使用模式至少可以包括这种类型的虚拟机的属性信息、以及这种类型的虚拟机在运行时的资源使用信息,所述资源使用信息表示这种类型的虚拟机在运行时的资源需求特征。此外,在如下文所述选择了与要部署的虚拟机匹配的虚拟机资源使用模式,并且基于该虚拟机资源使用模式选择了节点并且在该节点上部署了虚拟机之后,模式建立/更新装置501可以利用所部署的虚拟机在运行时的资源使用信息,更新所选择的虚拟机资源使用模式。模式建立/更新装置501可以按照上文所述的方式建立/更新虚拟机资源使用模式,在这里不再赘述。虚拟机资源使用模式库502可以用来存储模式建立/更新装置501建立或更新的至少一个虚拟机资源使用模式。在其他实施例中,可以从外部接收预先建立的至少一个虚拟机资源使用模式,在这种情况下,可以省略模式建立/更新装置501和/或虚拟机资源使用模式库502。
模式选择装置503响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式。
具体地,如上文所述,当客户需要使用云计算环境的计算资源时,客户发送请求部署虚拟机的请求。该请求包含所述虚拟机的属性信息,该属性信息可以是虚拟机资源使用模式中包含的属性信息的全部或一部分,并且可以由客户指定。响应于该请求,模式选择装置503从存储在虚拟机资源使用模式库中存储的至少一个虚拟机资源使用模式中选择与要部署的虚拟机匹配的虚拟机资源使用模式。模式选择装置503可以按照在上文中参照图4描述的方式来选择所述虚拟机资源使用模式。简单地说,模式选择装置503可以从所述至少一个虚拟机资源使用模式中,选择具有与所述请求包含的属性信息中的至少一部分相同的属性信息的虚拟机资源使用模式,作为与要部署的所述虚拟机匹配的虚拟机资源使用模式。或者,模式选择装置503可以从所述至少一个虚拟机资源使用模式中,选择具有与所述请求包含的属性信息中的至少一部分相同的属性信息且满足附加标准的虚拟机资源使用模式,作为与要部署的该虚拟机匹配的虚拟机资源使用模式。在这里,所述请求包含的属性信息可以被分为多个层级,并且模式选择装置503可以按照层级的顺序(例如从低层级到高层级的顺序),在所述请求包含的属性信息中确定与要部署的该虚拟机匹配的虚拟机资源使用模式应当具有的属性信息。
节点选择装置504基于模式选择装置503选择的虚拟机资源使用模式以及云计算环境中的多个节点的可用资源,从所述多个节点中选择要部署所述虚拟机的节点。节点选择装置504可以通过所选择的虚拟机资源使用模式的资源消耗量信息中记录的资源消耗量与各个节点上的可用资源进行比较,来选择能够用来部署所述虚拟机的节点。
此外,在模式选择装置503通过逐个层级的选择操作仍然未能找到与要部署的虚拟机匹配的虚拟机资源匹配模式的情况下,节点选择装置504可以检查是否存在与要部署的虚拟机对应的经验数据(如上文所述)。如果存在这样的经验数据,则节点选择装置504可以使用该经验数据作为要部署的虚拟机在运行时的预测资源消耗量,从而基于该经验数据和各个节点的可用资源来选择用来部署所述要部署的虚拟机的节点。另一方面,如果不存在所述经验数据,则节点选择装置504可以随机地选择云计算环境中的节点,作为用来部署所述虚拟机的节点。
部署装置505在节点选择装置504选择的节点上部署所述虚拟机。这样,通过运行所部署的虚拟机,可以向客户提供服务。部署装置505可以按照本领域公知的方式来进行虚拟机的部署。例如,部署装置505可以通过从预先设置的虚拟机映像库(未示出)中提取适当的虚拟机映像并且将其部署在所选择的节点上,来部署该虚拟机。
这样,通过基于与客户要部署的虚拟机匹配的虚拟机资源使用模式来选择要部署该虚拟机的节点,可以基于该虚拟机资源使用模式预测要部署的虚拟机在运行时的动态资源需求,从而保证所选择的节点能够满足要部署的虚拟机在运行时的动态资源需求,由此避免由于部署不当而降低系统吞吐量的问题,并且改善客户体验。此外,由于所建立的虚拟机资源使用模式不断被更新,因此,可以使该虚拟机资源使用模式中记录的资源使用信息始终接近真实的资源使用值,使得所选择的节点适合于要部署的虚拟机。而且,通过利用上述设备选择节点并且部署虚拟机,可以根据客户的具体使用场景将用于该客户的虚拟机部署到不同的节点上,使得云计算环境的各个节点的负荷更加均衡,从而进一步优化系统吞吐量。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (6)

1.一种在包括多个节点的计算环境中部署虚拟机的方法,包括:
响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式,其中根据所述虚拟机的属性信息将所述虚拟机分为不同的类型,具有相同属性信息的所述虚拟机为相同类型的虚拟机,而具有不同属性信息的所述虚拟机为不同类型的虚拟机,其中基于已经部署的每种类型的至少一个所述虚拟机的历史运行数据,建立与这种类型的虚拟机对应的所述虚拟机资源使用模式;
基于所选择的虚拟机资源使用模式以及所述多个节点的可用资源,从所述多个节点中选择要部署所述虚拟机的节点;以及
在所选择的节点上部署所述虚拟机,
其中,所述至少一个虚拟机资源使用模式具有先前在计算环境中部署的至少一种虚拟机的属性信息以及所述至少一种虚拟机在运行时的资源使用信息,
并且其中,所述请求包含要部署的所述虚拟机的属性信息,所述响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式包括:
从所述至少一个虚拟机资源使用模式中,选择具有与所述请求包含的属性信息的至少一部分相同的属性信息的虚拟机资源使用模式,作为与要部署的所述虚拟机匹配的虚拟机资源使用模式,
并且其中,所述请求包含的属性信息被分为多个层级,并且其中,按照层级的顺序,在所述请求包含的属性信息中确定与要部署的所述虚拟机匹配的虚拟机资源使用模式应当具有的属性信息。
2.如权利要求1所述的方法,其中,所述响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式包括:
从所述至少一个虚拟机资源使用模式中,选择具有与所述请求包含的属性信息的至少一部分相同的属性信息且满足附加标准的虚拟机资源使用模式,作为与要部署的所述虚拟机匹配的虚拟机资源使用模式。
3.根据权利要求1或2所述的方法,其中,利用部署在所选择的节点上的所述虚拟机在运行时的资源使用信息,更新所选择的虚拟机资源使用模式。
4.一种在包括多个节点的计算环境中部署虚拟机的设备,包括:
模式选择装置,被配置为响应于部署虚拟机的请求,从至少一个虚拟机资源使用模式中选择与要部署的所述虚拟机匹配的虚拟机资源使用模式,其中根据所述虚拟机的属性信息将所述虚拟机分为不同的类型,具有相同属性信息的所述虚拟机为相同类型的虚拟机,而具有不同属性信息的所述虚拟机为不同类型的虚拟机,其中基于已经部署的每种类型的至少一个所述虚拟机的历史运行数据,建立与这种类型的虚拟机对应的所述虚拟机资源使用模式;
节点选择装置,被配置为基于所选择的虚拟机资源使用模式以及所述多个节点的可用资源,从所述多个节点中选择要部署所述虚拟机的节点;以及
部署装置,被配置为在所选择的节点上部署所述虚拟机,
其中,所述至少一个虚拟机资源使用模式具有先前在计算环境中部署的至少一种虚拟机的属性信息以及所述至少一种虚拟机在运行时的资源使用信息,
并且其中,所述请求包含要部署的所述虚拟机的属性信息,并且其中,所述模式选择装置从所述至少一个虚拟机资源使用模式中,选择具有与所述请求包含的属性信息的至少一部分相同的属性信息的虚拟机资源使用模式,作为与要部署的所述虚拟机匹配的虚拟机资源使用模式,
并且其中,所述请求包含的属性信息被分为多个层级,并且其中,所述模式选择装置按照层级的顺序,在所述请求包含的属性信息中确定与要部署的所述虚拟机匹配的虚拟机资源使用模式应当具有的属性信息。
5.如权利要求4所述的设备,其中,所述模式选择装置从所述至少一个虚拟机资源使用模式中,选择具有与所述请求包含的属性信息的至少一部分相同的属性信息且满足附加标准的虚拟机资源使用模式,作为与要部署的所述虚拟机匹配的虚拟机资源使用模式。
6.根据权利要求4或5所述的设备,还包括:
模式更新装置,被配置为利用部署在所选择的节点上的所述虚拟机在运行时的资源使用信息,更新所选择的虚拟机资源使用模式。
CN201310376402.7A 2013-08-26 2013-08-26 在计算环境中部署虚拟机的方法和设备 Active CN104424013B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201310376402.7A CN104424013B (zh) 2013-08-26 2013-08-26 在计算环境中部署虚拟机的方法和设备
US14/904,970 US9846590B2 (en) 2013-08-26 2014-08-22 Deploying a virtual machine in a computing environment
PCT/CN2014/085000 WO2015027865A1 (en) 2013-08-26 2014-08-22 Method and apparatus for deploying virtual machine in computing environment
US15/646,415 US10303500B2 (en) 2013-08-26 2017-07-11 Deploying a virtual machine in a computing environment
US16/283,909 US10831517B2 (en) 2013-08-26 2019-02-25 Deploying a virtual machine in a computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310376402.7A CN104424013B (zh) 2013-08-26 2013-08-26 在计算环境中部署虚拟机的方法和设备

Publications (2)

Publication Number Publication Date
CN104424013A CN104424013A (zh) 2015-03-18
CN104424013B true CN104424013B (zh) 2018-03-09

Family

ID=52585570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310376402.7A Active CN104424013B (zh) 2013-08-26 2013-08-26 在计算环境中部署虚拟机的方法和设备

Country Status (3)

Country Link
US (3) US9846590B2 (zh)
CN (1) CN104424013B (zh)
WO (1) WO2015027865A1 (zh)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489224B2 (en) * 2010-12-28 2016-11-08 Nec Corporation Network virtualization system, physical node, and virtual interface identification method in virtual machine
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
CN104424013B (zh) 2013-08-26 2018-03-09 国际商业机器公司 在计算环境中部署虚拟机的方法和设备
US9800650B2 (en) * 2014-03-10 2017-10-24 Vmware, Inc. Resource management for multiple desktop configurations for supporting virtual desktops of different user classes
JP6455035B2 (ja) * 2014-09-10 2019-01-23 富士通株式会社 負荷分散管理装置、制御方法およびプログラム
CN104391735B (zh) * 2014-11-14 2018-11-06 深信服网络科技(深圳)有限公司 虚拟化一体机集群中虚拟机调度方法及系统
US10491667B1 (en) * 2015-03-16 2019-11-26 Amazon Technologies, Inc. Customized memory modules in multi-tenant service provider systems
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10033766B2 (en) 2015-06-05 2018-07-24 Cisco Technology, Inc. Policy-driven compliance
US10089099B2 (en) 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
JP6550945B2 (ja) * 2015-06-10 2019-07-31 富士通株式会社 判定制御プログラム、判定制御方法及び仮想マシン管理装置
US10002014B2 (en) * 2015-07-10 2018-06-19 International Business Machines Corporation Management of a virtual machine in a virtualized computing environment based on a fabric limit
CN106453457B (zh) * 2015-08-10 2019-12-10 微软技术许可有限责任公司 云计算平台内的多优先级服务实例分配
US9971664B2 (en) * 2015-08-27 2018-05-15 Vmware, Inc. Disaster recovery protection based on resource consumption patterns
US20170235588A1 (en) * 2015-09-15 2017-08-17 Intellectual Ventures Hong Kong Limited Provisioning of virtual machines with security requirements
US10452442B2 (en) * 2015-11-27 2019-10-22 Huawei Technologies Co., Ltd. System and method for resource management
US10931629B2 (en) 2016-05-27 2021-02-23 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
CN107608781B (zh) * 2016-07-11 2021-06-22 华为技术有限公司 一种负载预测方法、装置以及网元
US10708183B2 (en) 2016-07-21 2020-07-07 Cisco Technology, Inc. System and method of providing segment routing as a service
CN107665141B (zh) * 2016-07-27 2020-12-29 腾讯科技(深圳)有限公司 一种数据库配置方法及其设备
US10678603B2 (en) * 2016-09-01 2020-06-09 Microsoft Technology Licensing, Llc Resource oversubscription based on utilization patterns in computing systems
US10972388B2 (en) 2016-11-22 2021-04-06 Cisco Technology, Inc. Federated microburst detection
US10389612B1 (en) * 2017-01-25 2019-08-20 Amazon Technologies, Inc. Product agnostic pattern detection and management
US10942760B2 (en) * 2017-02-03 2021-03-09 Microsoft Technology Licensing, Llc Predictive rightsizing for virtual machines in cloud computing systems
US10296367B2 (en) * 2017-02-03 2019-05-21 Microsoft Technology Licensing, Llc Resource management for virtual machines in cloud computing systems
US10423455B2 (en) * 2017-02-03 2019-09-24 Microsoft Technology Licensing, Llc Method for deploying virtual machines in cloud computing systems based on predicted lifetime
CN108399101B (zh) * 2017-02-06 2021-03-16 腾讯科技(深圳)有限公司 资源调度的方法、装置和系统
US10708152B2 (en) 2017-03-23 2020-07-07 Cisco Technology, Inc. Predicting application and network performance
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10873794B2 (en) 2017-03-28 2020-12-22 Cisco Technology, Inc. Flowlet resolution for application performance monitoring and management
CN106959886A (zh) * 2017-05-15 2017-07-18 河南科技学院 一种基于云计算的虚拟机部署管控平台及使用方法
US11500663B1 (en) * 2017-06-07 2022-11-15 Amazon Technologies, Inc. Predictive virtual machine launch-based capacity management
US10445143B2 (en) * 2017-06-14 2019-10-15 Vmware, Inc. Device replacement for hyper-converged infrastructure computing environments
US10761869B2 (en) * 2017-06-26 2020-09-01 Wangsu Science & Technology Co., Ltd. Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type
CN109213565B (zh) * 2017-06-29 2023-08-11 中兴通讯股份有限公司 异构虚拟计算资源的管理方法、相关设备及存储介质
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
CN107733701B (zh) * 2017-09-29 2019-11-08 中国联合网络通信集团有限公司 一种虚拟机部署的方法及设备
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US11233821B2 (en) 2018-01-04 2022-01-25 Cisco Technology, Inc. Network intrusion counter-intelligence
US11765046B1 (en) 2018-01-11 2023-09-19 Cisco Technology, Inc. Endpoint cluster assignment and query generation
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching
US10873593B2 (en) 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US10798015B2 (en) 2018-01-25 2020-10-06 Cisco Technology, Inc. Discovery of middleboxes using traffic flow stitching
US10917438B2 (en) 2018-01-25 2021-02-09 Cisco Technology, Inc. Secure publishing for policy updates
US10826803B2 (en) 2018-01-25 2020-11-03 Cisco Technology, Inc. Mechanism for facilitating efficient policy updates
US10999149B2 (en) 2018-01-25 2021-05-04 Cisco Technology, Inc. Automatic configuration discovery based on traffic flow data
US11128700B2 (en) 2018-01-26 2021-09-21 Cisco Technology, Inc. Load balancing configuration based on traffic flow telemetry
CN108614727B (zh) * 2018-03-23 2021-04-20 华为技术有限公司 一种虚拟机创建方法及装置
CN110362377B (zh) * 2018-04-09 2023-05-30 阿里巴巴集团控股有限公司 虚拟机的调度方法和装置
US11263035B2 (en) * 2018-04-13 2022-03-01 Microsoft Technology Licensing, Llc Longevity based computer resource provisioning
US11140050B2 (en) * 2018-09-26 2021-10-05 International Business Machines Corporation Localization of private service instances
US11036537B1 (en) * 2019-03-26 2021-06-15 Amazon Technologies, Inc. On demand capacity management in provider networks using type-agnostic resources
US11023287B2 (en) * 2019-03-27 2021-06-01 International Business Machines Corporation Cloud data center with reduced energy consumption
CN110515693A (zh) * 2019-07-26 2019-11-29 浪潮电子信息产业股份有限公司 一种基于机架感知的虚拟机横向扩展的方法和系统
US11442781B2 (en) 2019-09-18 2022-09-13 International Business Machines Corporation Master image for deploying workloads in a heterogeneous computing environment
US11237868B2 (en) 2019-10-08 2022-02-01 Microsoft Technology Licensing, Llc Machine learning-based power capping and virtual machine placement in cloud platforms
CN111694873B (zh) * 2020-06-10 2023-10-27 腾讯科技(深圳)有限公司 虚拟资源包的处理方法、装置及数据库服务器
US11886926B1 (en) * 2020-12-10 2024-01-30 Amazon Technologies, Inc. Migrating workloads between computing platforms according to resource utilization
CN115131046A (zh) * 2021-03-24 2022-09-30 华为云计算技术有限公司 一种提供云服务的方法、装置及设备
CN113473488B (zh) * 2021-07-02 2024-01-30 福建晶一科技有限公司 一种基于容器的cu与mec共平台部署方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102646052A (zh) * 2011-02-16 2012-08-22 中国移动通信集团公司 一种虚拟机部署方法、装置及系统
CN103067425A (zh) * 2011-10-20 2013-04-24 中国移动通信集团公司 虚拟机创建方法、虚拟机管理系统及相关设备

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835899A (en) * 1996-03-01 1998-11-10 Electronic Data Systems Corporation System and method for deriving financial responsibility identification
US8099487B1 (en) * 2006-07-06 2012-01-17 Netapp, Inc. Systems and methods for determining placement of virtual machines
US8291411B2 (en) * 2007-05-21 2012-10-16 International Business Machines Corporation Dynamic placement of virtual machines for managing violations of service level agreements (SLAs)
US9158519B2 (en) * 2008-05-21 2015-10-13 Optumsoft, Inc. Dynamic collection attribute-based computer programming language methods
WO2010085255A1 (en) * 2009-01-23 2010-07-29 Hewlett-Packard Development Company, L.P. Verifying virtual machines
US7904540B2 (en) * 2009-03-24 2011-03-08 International Business Machines Corporation System and method for deploying virtual machines in a computing environment
US9396042B2 (en) * 2009-04-17 2016-07-19 Citrix Systems, Inc. Methods and systems for evaluating historical metrics in selecting a physical host for execution of a virtual machine
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US8694638B2 (en) * 2009-06-29 2014-04-08 Red Hat Israel Selecting a host from a host cluster to run a virtual machine
US8631405B2 (en) * 2010-02-26 2014-01-14 Red Hat Israel, Ltd. Identification and placement of new virtual machines based on similarity of software configurations with hosted virtual machines
US8655610B2 (en) * 2010-03-24 2014-02-18 International Business Machines Corporation Virtual machine placement for minimizing total energy cost in a datacenter
JP2012032877A (ja) * 2010-07-28 2012-02-16 Fujitsu Ltd 情報処理装置を管理するプログラム、管理方法および管理装置
US8645543B2 (en) * 2010-10-13 2014-02-04 International Business Machines Corporation Managing and reconciling information technology assets in a configuration database
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
EP2668600A4 (en) * 2011-01-27 2014-08-06 Computenext Inc DYNAMIC RESOURCE ORGANIZATION OF CLOUD COMPUTING TO FACILITATE DISCOVERY
US8806483B2 (en) * 2011-04-13 2014-08-12 International Business Machines Corporation Determining starting values for virtual machine attributes in a networked computing environment
US8806015B2 (en) * 2011-05-04 2014-08-12 International Business Machines Corporation Workload-aware placement in private heterogeneous clouds
US8843924B2 (en) * 2011-06-17 2014-09-23 International Business Machines Corporation Identification of over-constrained virtual machines
US8645950B2 (en) * 2011-06-28 2014-02-04 Microsoft Corporation Virtual machine image analysis
TW201305912A (zh) * 2011-07-18 2013-02-01 Hon Hai Prec Ind Co Ltd 虛擬機管理系統及方法
US8825863B2 (en) * 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
US8832239B2 (en) * 2011-09-26 2014-09-09 International Business Machines Corporation System, method and program product for optimizing virtual machine placement and configuration
DE102012217202B4 (de) * 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US9292350B1 (en) * 2011-12-15 2016-03-22 Symantec Corporation Management and provisioning of virtual machines
CN102446115B (zh) * 2012-01-09 2014-06-18 浙江大学 一种虚拟机的动态部署方法
US9940162B2 (en) * 2012-09-28 2018-04-10 Cycle Computing, Llc Realtime optimization of compute infrastructure in a virtualized environment
US8937882B2 (en) * 2012-10-26 2015-01-20 Ixia Methods, systems, and computer readable media for automatically decoding uplink data
US9430257B2 (en) * 2013-01-03 2016-08-30 Red Hat Israel, Inc. Scheduling virtual machines using user-defined rules
US9823942B2 (en) * 2013-02-08 2017-11-21 Avaya Inc. Virtual machine discovery and identification
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US20140282520A1 (en) * 2013-03-15 2014-09-18 Navin Sabharwal Provisioning virtual machines on a physical infrastructure
US20150058148A1 (en) * 2013-07-11 2015-02-26 Aryk Erwin Grosz Systems and methods for automatically adjusting pricing for group activities over a data network
CN104424013B (zh) 2013-08-26 2018-03-09 国际商业机器公司 在计算环境中部署虚拟机的方法和设备
US10324754B2 (en) * 2013-11-07 2019-06-18 International Business Machines Corporation Managing virtual machine patterns

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102646052A (zh) * 2011-02-16 2012-08-22 中国移动通信集团公司 一种虚拟机部署方法、装置及系统
CN103067425A (zh) * 2011-10-20 2013-04-24 中国移动通信集团公司 虚拟机创建方法、虚拟机管理系统及相关设备

Also Published As

Publication number Publication date
WO2015027865A1 (en) 2015-03-05
US10831517B2 (en) 2020-11-10
US20190188016A1 (en) 2019-06-20
US20160162308A1 (en) 2016-06-09
US10303500B2 (en) 2019-05-28
CN104424013A (zh) 2015-03-18
US9846590B2 (en) 2017-12-19
US20170308393A1 (en) 2017-10-26

Similar Documents

Publication Publication Date Title
CN104424013B (zh) 在计算环境中部署虚拟机的方法和设备
CN103365725B (zh) 在多个云之间动态分配工作负荷部署单元的方法和系统
CN104205056B (zh) 跨多个云的工作负荷的动态分配的方法和系统
CN103814358B (zh) 服务器群内的虚拟机放置
CN103970607B (zh) 使用等价集合来计算优化虚拟机分配的方法和装置
CN104731658B (zh) 供应和合并共享资源以最大化资源可用性的方法和系统
CN104765620B (zh) 一种程序模块部署的方法和系统
US10261819B2 (en) Determining an optimal computing environment for running an image based on performance of similar images
CN104660669B (zh) 针对应用模式组件从多个主机选择一个主机的方法和系统
CN102759979B (zh) 一种虚拟机能耗估计方法及装置
US8924559B2 (en) Provisioning services using a cloud services catalog
US9811370B2 (en) Determining an optimal datacenter for placing a resource instance in a cloud that would benefit an intended set of end users in a geographical region
CN104516773B (zh) 用于物理机的数据分配方法和数据分配装置
US9317337B2 (en) Utilizing software component metadata to provision virtual machines in a networked computing environment
CN104216662B (zh) 用于跨远程复制关系的卷布置的方法和系统
US20130219033A1 (en) End-to-end provisioning of storage clouds
CN103455486B (zh) 安置数据库的方法和系统
US20120284380A1 (en) Identifying optimal virtual machine images in a networked computing environment
US20130060945A1 (en) Identifying services and associated capabilities in a networked computing environment
CN103914511B (zh) 选择用于云存储的图像或者视频文件
CN103716347B (zh) 建立虚拟机的方法、装置和云服务器
US9432300B2 (en) Allocation of storage resources in a networked computing environment based on energy utilization
CN103238138A (zh) 用于云环境中的分区部署/重部署的网络接口
CN106066812B (zh) 用于管理计算资源的方法和系统
CN104067265A (zh) 用于支持在云中的安全应用部署的系统和方法

Legal Events

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

Effective date of registration: 20211118

Address after: New York, United States

Patentee after: Qindarui Co.

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right