服务器群内的虚拟机放置的制作方法

文档序号:6496535阅读:213来源:国知局
服务器群内的虚拟机放置的制作方法
【专利摘要】在此公开了用于在多个高速缓存一致性NUMA服务器内放置虚拟机的方法、系统和计算机程序产品。根据一个方面,示例方法包括确定虚拟机的资源需求。该示例方法还可以包括确定多个服务器的一个或多个节点的资源可用性。此外,该示例方法可以包括基于确定的资源需求和确定的资源可用性选择将该虚拟机放置在所述多个高速缓存一致性NUMA服务器的一个或多个节点内。
【专利说明】服务器群内的虚拟机放置
【技术领域】
[0001]本发明涉及虚拟机的放置,更具体地,涉及用于在多个服务器内放置虚拟机的方法和系统。
【背景技术】
[0002]在多处理器服务器中,处理器和存储器一般配置到通过高速缓存一致性互连而联系在一起的节点中。尽管这些多处理器系统可以符合对称多处理器编程模型,但是它们通常相对于来自不同处理器的存储器访问时间是不对称的。这类多处理器服务器通常称为高速缓存一致性非均匀存储器访问(cc-NUMA)服务器。在此类服务器中的非均匀性描述了靠近存储器控制器的处理器访问的存储器与不同节点上的处理器访问的存储器之间的访问时间差。当处理器参考远离节点的(off-node)存储器时,软件为此远离节点的存储器参考付出性能代价。因此操作系统或者管理程序在cc-NUMA节点内调度处理或者虚拟机使得在非均匀的存储器系统内软件可以经历“均匀的并且最佳的存储器访问时间”是有益的。
[0003]了解与在通常的节点内调度虚拟机相关的困难,在计算行业内已经实现了各种方案。这些种类的方案通常被称为基于cc-NUMA的调度和存储器分配算法。但是,这些方法的适用性和有用性限于一个服务器上可用的物理资源——换句话说,这些算法仅在单个基于cc-NUMA的服务器内理解并优化。如果虚拟机被放置在其中虚拟机的存储器不能完全被分配给单个节点的服务器上,此方法可能导致存储器碎片,导致存储器在多个cc-NUMA节点之间被分割。每当处理器访问其他节点中的虚拟机的存储器时,虚拟机可能经历存储器访问时间劣化。因而,需要用于优化虚拟机的放置的改进的方法和系统。

【发明内容】

[0004]根据本发明的一个或多个实施例,在此公开的方法和系统提供在多个服务器内放置虚拟机。一个示例方法包括:确定虚拟机的资源需求;确定多个服务器的一个或多个节点的资源可用性;以及基于确定的资源需求和确定的资源可用性选择将该虚拟机放置在所述多个服务器的一个或多个节点内。可以通过多个服务器的一个或多个节点内可用的物理存储器的量确定资源可用性,并且虚拟机的放置可以基于在那些节点内可用的物理存储器的量。可以将虚拟机放置在多个服务器之中的一个物理服务器的一个或多个节点内或者多个服务器之中的一个物理服务器的一个节点内。
[0005]根据本发明的实施例,资源可用性还可以基于均匀存储器访问可用性。多个服务器的一个或多个节点可以包括处理器和存储器。多个服务器可以是非均匀存储器访问服务器,其配置为利用高速缓存一致性互连并且在服务器群中操作。该方法还可以包括:选择用于迁移的虚拟机;从多个服务器中产生候选服务器的列表;以及基于确定的资源需求和确定的资源可用性将虚拟机从所述多个服务器中的第一服务器迁移到在所述候选服务器的列表之中的第二服务器。【专利附图】

【附图说明】
[0006]图1例示示例的云计算节点;
[0007]图2例示示例的云计算环境;
[0008]图3例示示例的抽象模型层;
[0009]图4例示根据本发明的实施例的用于将虚拟机放置在多个服务器内的方法的流程图;
[0010]图5例示根据本发明的实施例的配置为在服务器群中操作的基于CC-NUMA的服务器;
[0011]图6例不根据本发明的实施例的对于多个CC-NUMA节点的存储器分配;
[0012]图7例示根据本发明的实施例的对于多个服务器收集数据的方法的流程图;
[0013]图8例示根据本发明的实施例的用于设置虚拟机分配策略的方法的流程图;
[0014]图9例示根据本发明的实施例的用于将虚拟机放置在多个服务器内的方法的流程图;
[0015]图10例示根据本发明的实施例的用于虚拟机监视(profile)的方法的流程图;以及
[0016]图11例示根据本发明的实施例的用于虚拟机候选者选择的方法的流程图。【具体实施方式】
[0017]如本领域技术人员将认识到的,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,:完全硬件的实施方式、完全软件的实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以采取在一个或多个计算机可读介质中实现的计算机程序产品的形式,该计算机可读介质包含计算机可读程序代码。
[0018]可以使用一个或多个计算机可读介质的任何组合。该计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外或半导体系统、装置或设备,或者前述各项的任何适当组合。计算机可读存储介质的更多具体示例(非穷尽性列举)包括以下各项:具有一条或多条导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者前述各项的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储由指令执行系统、装置或设备使用或者结合所述指令执行系统、装置或设备使用的指令的任何有形介质。
[0019]计算机可读信号介质可包括例如在基带中或者作为载波的一部分的传播的数据信号,其中在该传播的数据信号中具体化了计算机可读程序码。这种传播的信号可以采用各种形式中的任意一种,包括但不限于电磁、光或任何以上适当的组合。计算机可读信号介质可以是并非是计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序的任何计算机可读介质。
[0020]可以使用任何适当的介质传送在计算机可读介质上包含的程序,所述介质包括但不限于无线、有线、光纤缆线、RF等,或者前者的任意适当的组合
[0021]用于执行本发明的各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,所述编程语目包括:面向对象编程语目,例如Java、Smalltalk、C++等;以及传统的过程编程语言,例如“C”编程语言或类似编程语言。该程序代码可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上并且部分地在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以(例如,使用因特网服务提供商通过因特网)连接到外部计算机。
[0022]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0023]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0024]计算机程序指令还可以加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行,产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个方框中规定的功能/行为的处理。
[0025]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0026]首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
[0027]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0028]特征包括:[0029]按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0030]广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
[0031]资源池:提供者的计算资源被归入资源池并通过多租户(mult1-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0032]迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0033]可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0034]服务模型如下:
[0035]软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0036]平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
[0037]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
[0038]部署模型如下:
[0039]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0040]共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
[0041]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0042]混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0043]云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
[0044]现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0045]云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 —起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等
坐寸ο
[0046]计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0047]如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0048]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0049]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0050]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0051 ] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0052]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12—起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统
坐寸ο
[0053]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
[0054]现在参考图3,其中显示了云计算环境50 (图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
[0055]硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如ffiM? zSeries?系统;基于RISC` (精简指令集计算机)体系结构的服务器,例如
IB^ pSeries?系统;ibm xSeries?系统;IBM BladeCenter?系统;存储设备;网络。软件
组件的例子包括:网络应用服务器软件,例如1間WebSphere?应用服务器软件;数据库软件,例如 IBM DB2?数据库软件。(IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0056]虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟机,包括虚拟应用和操作系统,以及虚拟客户端。
[0057]在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能--为根据SLA预测的对云计算资源未来需求提供预先安排和供应。[0058]工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及移动桌面。
[0059]图4例示根据本发明的实施例的在多个服务器内放置虚拟机的方法的流程图。参考图4,该方法包括确定70虚拟机的资源需求。该资源需求可以是虚拟机以最佳性能级别运作可能必需的存储器的分配形式的存储器需求。该方法还可以包括确定72多个服务器的一个或多个节点的资源可用性。资源可用性可以是存储器可用性或者均匀存储器访问可用性,该存储器可用性可以包括在服务器的每个节点内可用的物理存储器的量。也可以确定其他资源的可用性,比如特定服务器是否具有足够的处理器、存储器或I/O带宽。
[0060]最后,该方法可以包括基于确定的资源需求和确定的资源可用性选择74虚拟机在多个服务器的一个或多个节点内的放置。在检查了虚拟机的资源需求以及来自多个服务器内的多个节点的资源的可用性之后,可以关于要将虚拟机放置到哪里做出选择,以优化虚拟机的性能以及可用的服务器资源的使用。虚拟机放置可以基于在多个服务器的一个或多个节点的至少一个节点内可用的物理存储器的量,诸如例如当该放置是基于在一个物理服务器的一个节点内可用的物理存储器的量时,以便为虚拟机提供节点-本地(均匀)存储器访问。多个服务器可以包括多个非均匀的存储器访问服务器,并且那些服务器可以配置为利用高速缓存一致性互连或者在服务器群中操作。
[0061]图5例示根据本发明的实施例的配置为在服务器群中操作的基于cc-NUMA的服务器。现在参考图5,根据本发明的实施例,多个基于cc-NUMA的服务器配置为在服务器群中操作。为了例示的目的,示出网络80,其包括可以经由节点间连接94而通信的四个基于cc-NUMA的服务器92。此类服务器中的非均匀性描述了靠近存储器控制器的处理器访问存储器与更远离的处理器访问存储器之间的存储器访问时间差。尽管仅示出了四个基于cc-NUMA的服务器92,但是根据本发明的实施例,网络80可以包括任意数量的额外的配置为作为服务器群而操作的基于cc-NUMA的服务器。网络80可以是如之前所述的云计算环境50 (图2)中的计算节点10。储存设备90可用于由网络80的各种设备和组件使用。
[0062]计算机系统服务器82配置为管理可用服务器资源的提供。计算机系统服务器82可以包括如先前所述的计算机系统/服务器12 (图1)。计算机系统服务器82可以包括诸如键盘、指示设备、显示器或其他类似设备的用户接口 84,其使用户能够与计算机系统服务器82交互。还可以包括使计算机系统服务器82能够与网络80中或者云计算环境50中的其它设备通信的I/O接口 86。在本发明的实施例中,控制管理器88管理基于cc-NUMA的服务器群的资源。控制管理器88可以在硬件或软件中实现。控制管理器88可以包括:虚拟机放置管理器89,配置为执行并响应于放置请求;以及资源管理器91,配置为确定虚拟机的资源需求,确定多个服务器的一个或多个节点的资源可用性,并基于确定的资源需求和确定的资源可用性选择虚拟机在多个服务器的一个或多个节点内的放置。控制管理器88可以包括在计算机系统服务器82上运行的管理软件,其极大地改进服务器群内的服务器的选择标准以增加各个虚拟机的性能以及增加整体资源利用。
[0063]基于cc-NUMA的服务器92包括NUMA3服务器96和NUMA4服务器98。如所示,cc-NUMA服务器92可以包括处理器100、存储器102和存储器控制器104,它们被组织并配置到通过高速缓存一致性互连而联系在一起的一个或多个服务器节点。服务器节点可以具有多个处理器(CPU),并且相关联的存储器的大小和速度可以从节点到节点以及从服务器到服务器而变化。为了例示的目的,NUMA3服务器96和NUMA4服务器98每个具有四个服务器节点,但是每个服务器可以配置为具有任意数量的服务器节点。处理器100可以访问存储器102以及NUMA服务器96、NUMA服务器98和其他服务器的其他节点中的存储器。但是,存储器访问时间可能从节点到节点而变化;因此,当将虚拟机放置在基于cc-NUMA的服务器内时,最好将虚拟机放置在一个物理服务器的一个节点内分配了最佳性能所需的存储器的地方。
[0064]图6例示图5所示的计算机系统服务器82的根据本发明的实施例的对于多个cc-NUMA节点的存储器分配。参考图6,在此实施例中,每个基于cc-NUMA的服务器92具有40GB的总存储器——在服务器的每个节点上IOGB的存储器。这些服务器可以具有任意量的可以在服务器节点和其他设备之间按各种方式配置的存储器。在此例子中,基于cc-NUMA的服务器92的每个节点中的存储器已经被分配给各种虚拟机。如所示,四个虚拟机正同时运行在NUMA3服务器96上,并且四个虚拟机正同时运行在NUMA4服务器98上。正在NUMA3服务器96上运行的四个虚拟机中的每个具有在存储器102、110、112和114上的6GB存储器分配。这表示平衡的并且优化的网络负载,其中所有虚拟机可以享受节点-本地(均匀)存储器访问的性能益处。正在NUMA-4服务器98上运行的四个虚拟机具有不同的存储器需求,反映在存储器120上的7GB、存储器122上的7GB、存储器124上的8GB以及存储器126上的4GB的分配中。
[0065]在表面上,因为虚拟机仅需要6GB的存储器,所以将虚拟机放置在NUMA3服务器96看起来将是最佳选择,因为与在NUMA4服务器98上的可用的14GB的存储器相比,该服务器具有16GB可用的存储器。但是,在NUMA3服务器96上对于虚拟机的6GB存储器分配可能需要该存储器分配跨多个节点而分割,因为NUMA3服务器96中没有一个节点具有可用的6GB。这可能导致在虚拟机的处理器访问在另一节点中分配的存储器时存储器降级。图5所示的计算机系统服务器82先前已经存储了 NUMA3和NUMA4节点的存储器分配。可以基于其存储器使用确定用于新虚拟机的放置的最佳存储器分配。因此,根据本发明的实施例,在此所述的方法可以将虚拟机放置在NUMA4服务器98上而不是NUMA3服务器96上,因为NUMA4服务器98在存储器126中具有6GB的可用存储器,导致虚拟机的更好的性能以及服务器群可获得资源的更好的使用。
[0066]为了改进虚拟机的性能或者增加服务器利用,可以在虚拟机的初始放置期间利用本发明的实施例,或者通过将运行的工作负载从一个物理服务器移动到另一物理服务器杠杆调整(leverage)虚拟机从一个服务器到另一服务器的动态迁移而跨过服务器群动态地利用本发明的实施例。使用在此所述的用于初始虚拟机放置的方法和系统可以改进将节点-本地存储器分配到部署的虚拟机的可能性,这改进了虚拟机的性能。使用该方法用于动态资源管理涉及定位影响性能的次最佳存储器分配然后将虚拟机动态地重新定位到具有可用的节点-本地存储器的服务器以便改进性能。当迁移虚拟机时,该方法可以包括选择用于迁移的虚拟机然后将该虚拟机从多个服务器中的第一服务器迁移到多个服务器中的第二服务器。在此所述的方法和系统实施例还可以包括产生多个服务器中的用于虚拟机的放置的候选服务器的列表,然后基于确定的资源需求和确定的资源可用性将该虚拟机从多个服务器中的第一服务器迁移到在该候选服务器的列表中的第二服务器。[0067]图7例示根据本发明的实施例的对于多个服务器收集数据的方法的流程图。参考图7,该方法可以包括发现130簇内的所有服务器,然后对于簇内的每个服务器,通过收集并高速缓存132物理CPU核数量以及收集并高速缓存134分配给虚拟机的虚拟CPU来收集并高速缓存每个处理器核的物理CPU利用。该方法然后可以包括确定136服务器是否是cc-NUMA服务器。响应于确定服务器不是cc-NUMA服务器,该方法可以包括收集并高速缓存144未分配的物理存储器,然后发现142该簇内的任何新的服务器。如果服务器是cc-NUMA服务器,则该方法可以包括收集并高速缓存138每个节点上的未分配的物理存储器,收集并高速缓存140每个节点上的分配的物理存储器,然后发现142该簇内的任何新的服务器。
[0068]图8例示根据本发明的实施例的用于设置虚拟机分配策略的方法的流程图。可以在部署任何虚拟机之前由管理员设置虚拟机分配策略以帮助确定虚拟机的动态放置应该是多主动(aggressive)。参考图8,该方法可以包括对于服务器群内的服务器设置146CPU净空(headroom)策略。该CPU净空策略可以被设置为在大约O与99%之间的百分比。该方法还可以包括对于服务器群内的服务器设置148整体存储器净空策略。该存储器净空策略可以被设置为在O与99%之间某处的百分比。该方法还可以包括对于服务器群内的虚拟机设置节点内存储器分配策略。该节点内存储器分配策略可以被设置为在大约O与100%之间的百分比。
[0069]图9例示根据本发明的实施例的虚拟机在多个服务器内的放置的方法的流程图。可以通过虚拟机的管理或规划部署而开始该方法。参考图9,该方法可以包括确定152虚拟机的CPU带宽需求。可以通过读取虚拟机配置数据而确定该虚拟机的CPU带宽需求。该方法还可以包括确定154虚拟机的存储器容量需求。可以通过读取虚拟机的配置数据确定该虚拟机的存储器容量需求。该方法还可以包括在服务器群中搜索150潜在目标服务器。搜索服务器群可以包括为了具有可用的CPU和可用的存储器的所有服务器而搜索交叉服务器群资源可用性高速缓存,该可用的CPU和可用的存储器可以保持在CPU和存储器净空策略(图8)内并且满足虚拟机的资源需求。作为结果的列表是潜在目标服务器的列表。该方法还可以包括将潜在目标服务器按先后顺序排序158。可以根据可以将虚拟机的图像完全包含在单个cc-NUMA节点内的最小余量将潜在目标服务器按先后顺序排序。如果在节点内存储器分配策略(图8)内不能满足虚拟机的存储器需求,则可以向管理员发送警报,登记放置策略的违反。
[0070]图10例示根据本发明的实施例的虚拟机监视(profile)的方法的流程图。虚拟机监视可以包括运行时优化监视或动态虚拟机监视以及迁移优化。参考图10,该方法可以包括确定160是否已经达到CPU净空策略目标(图8)。响应于确定还没有达到CPU净空策略目标,该方法可以包括设置162策略违反的类型等于“CPU净空”。响应于确定达到了 CPU净空策略目标,该方法可以包括确定164是否已经达到存储器净空策略目标(图8)。响应于确定没有达到存储器净空策略目标,该方法可以包括设置166策略违反的类型等于“存储器净空”。响应于确定达到存储器净空策略目标,该方法可以包括确定168是否已经达到节点内存储器分配策略目标(图8)。如果没有达到节点内存储器分配策略目标,该方法可以包括设置170策略违反的类型等于“节点内存储器”。响应于确定达到节点内存储器分配策略目标,该方法可以结束。在已经设置了策略违反的类型之后,该方法可以包括选择172用于移动的虚拟机候选者以及随后移动174该虚拟机候选者。[0071]图11例示根据本发明的实施例的虚拟机候选者选择的方法的流程图。参考图11,该方法包括确定176策略违反的类型是否是CPU净空策略违反。响应于确定策略违反的类型是CPU净空策略违反,该方法可以包括标识178要移动的虚拟机候选者。响应于确定策略违反的类型不是CPU净空策略违反,该方法可以包括确定180策略违反的类型是否是存储器净空策略违反。响应于确定策略违反的类型是存储器净空策略违反,该方法可以包括标识178要移动的虚拟机候选者。响应于确定策略违反的类型不是存储器净空策略违反,该方法可以包括确定182策略违反的类型是否是节点内存储器分配策略违反。响应于确定策略违反的类型是节点内存储器分配策略违反,该方法可以包括标识184要移动的具有最大的远离节点存储器的百分比的虚拟机候选者。响应于确定策略违反的类型不是节点内存储器分配策略违反,该方法可以结束。
[0072]此处所使用的术语仅仅是为了描述特定的实施例的目的,而不意图限制本发明。如此处所使用的,单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文清楚地另外指明。还应该理解,当在本说明书中使用时,术语“包括”和/或“包括有”指明所述特征、整体、步骤、操作、元素和/或组件的存在,但不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或它们的组合的存在或添加。
[0073]以下权利要求中的所有部件或步骤加上功能元素的相应结构、材料、动作或等效物意图包括用于与明确声明的其它要求保护的元素相结合来执行功能的任何结构、材料、或行为。已经为了例示和描述的目的给出对本发明的描述,但并不旨在穷举或将本发明限制到公开的形式。对本【技术领域】的普通技术人员来说,不脱离本发明的范围和精神的许多修改和变型将是显而易见的。选取和描述实施例以便最佳地说明本发明的原理及其实际应用,以及使本领域其他普通技术人员理解对于具有适合于预期的具体用途的各种修改的各种实施例理解本发明。
[0074]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本【技术领域】的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1.一种在多个服务器内放置虚拟机的方法,该方法包括: 使用至少一个处理器和存储器用于: 确定虚拟机的资源需求; 确定所述多个服务器的一个或多个节点的资源可用性;以及 基于确定的资源需求和确定的资源可用性选择将该虚拟机放置在所述多个服务器的一个或多个节点内。
2.如权利要求1的方法,其中确定资源可用性包括确定在所述多个服务器的一个或多个节点的至少一个节点内可用的物理存储器的量。
3.如权利要求2的方法,其中选择放置虚拟机包括基于在所述多个服务器的一个或多个节点的该至少一个节点内可用的物理存储器的量来选择放置该虚拟机。
4.如权利要求1的方法,其中选择放置虚拟机包括选择将虚拟机放置在所述多个服务器之中的一个物理服务器的一个或多个节点内。
5.如权利要求1的方法,其中选择放置虚拟机包括选择将虚拟机放置在所述多个服务器之中的一个物理服务器的一个或多个节点中的一个节点内。
6.如权利要求1的方法,其中确定资源可用性包括基于均匀存储器访问可用性确定资源可用性。
7.如权利要求1的方法 ,其中所述一个或多个节点的至少一个节点包括存储器和处理器。
8.如权利要求1的方法,其中所述多个服务器包括多个非均匀存储器访问服务器。
9.如权利要求8的方法,其中所述多个非均匀存储器访问服务器配置为在服务器群中操作。
10.如权利要求8的方法,其中所述多个非均匀存储器访问服务器配置为利用高速缓存一致性互连。
11.如权利要求1的方法,还包括使用所述至少一个处理器和存储器来选择用于迁移的虚拟机。
12.如权利要求11的方法,还包括使用所述至少一个处理器和存储器来将虚拟机从所述多个服务器中的第一服务器迁移到所述多个服务器中的第二服务器。
13.如权利要求11的方法,还包括使用所述至少一个处理器和存储器来产生所述多个服务器中用于放置虚拟机的候选服务器的列表。
14.如权利要求13的方法,其中选择放置虚拟机包括基于确定的资源需求和确定的资源可用性将虚拟机从所述多个服务器中的第一服务器迁移到所述候选服务器的列表之中的第二服务器。
15.一种用于将虚拟机放置在多个服务器内的系统,该系统包括: 虚拟机放置管理器,配置为执行并响应于放置请求;以及 资源管理器,配置为: 确定虚拟机的资源需求; 确定所述多个服务器的一个或多个节点的资源可用性;以及 基于确定的资源需求和确定的资源可用性选择将该虚拟机放置在所述多个服务器的一个或多个节点内。
16.如权利要求15的系统,其中该资源管理器配置为: 确定在所述多个服务器的一个或多个节点的至少一个节点内可用的物理存储器的量;以及 基于在所述多个服务器的一个或多个节点的该至少一个节点内可用的物理存储器的量来选择放置该虚拟机。
17.如权利要求15的系统,其中所述资源管理器配置为选择将虚拟机放置在所述多个服务器中的一个物理服务器的一个或多个节点中的一个节点内。
18.如权利要求15的系统,其中所述资源管理器配置为选择将虚拟机放置在所述多个服务器之中的一个物理服务器的一个或多个节点中的一个节点内。
19.如权利要求15的系统,其中所述资源管理器配置为基于均匀存储器访问可用性确定资源可用性。
20.如权利要求15的系统,其中所述一个或多个节点的至少一个节点包括存储器和处理器。
21.如权利要求15的系统,其中所述多个服务器包括多个非均匀存储器访问服务器。
22.如权利要求15的系统,其中所述多个非均匀存储器访问服务器配置为利用高速缓存一致性互连。
23.如权利要求15的系统,其中所述资源管理器配置为: 选择用于迁移的虚拟机;以及 将该虚拟机从所述多个服务器中的第一服务器迁移到所述多个服务器中的第二服务器。
24.如权利要求15的系统,其中所述资源管理器配置为: 选择用于迁移的虚拟机; 产生所述多个服务器中的用于放置虚拟机的候选服务器的列表;以及基于确定的资源需求和确定的资源可用性将虚拟机从所述多个服务器中的第一服务器迁移到所述候选服务器的列表之中的第二服务器。
25.一种计算机程序产品,用于将虚拟机放置在多个服务器内,所述计算机程序产品包括: 计算机可读存储介质,包含计算机可读程序代码,该计算机可读程序代码包括: 配置为进行以下处理的计算机可读程序代码: 确定虚拟机的资源需求; 确定所述多个服务器的一个或多个节点的资源可用性;以及 基于确定的资源需求和确定的资源可用性选择将该虚拟机放置在所述多个服务器的一个或多个节点内。
【文档编号】G06F9/50GK103814358SQ201280045776
【公开日】2014年5月21日 申请日期:2012年7月18日 优先权日:2011年9月20日
【发明者】N.P.J.汉森, E.S.苏佛恩, J.L.伍尔德里奇, B.尤 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1