基于资源利用在网络计算环境间迁移虚拟机的系统及方法与流程

文档序号:13323566阅读:145来源:国知局
基于资源利用在网络计算环境间迁移虚拟机的系统及方法与流程
一般地,本发明的实施例涉及虚拟机迁移。特别地,本发明的实施例涉及基于资源利用在网络化计算环境(例如,云计算环境)之间的虚拟机迁移。

背景技术:
网络化计算环境(例如,云计算环境)是对其前身——网格环境的一个增强,借此多个网格及其他计算资源可以由一个或多个附加抽象层(例如,云层)进一步增强,从而使不同设备对终端消费者都呈现为无缝的单一资源池。这些资源其中可以包括诸如物理或逻辑计算引擎、服务器和设备、设备内存及存储设备等事物。许多网络化计算服务(例如,云计算服务)都通过基础架构供给(例如,在相对静态的硬件池内)来提供,借此能够部署并重配置操作系统和计算机软件应用。在典型的云计算环境中,能够安装及重写应用的镜像,能够修改互联网协议(IP)地址,并且分配真实及虚拟处理器以满足不断变化的资源需求。但是,当云环境接收并处理工作负荷时,在将此类工作负荷中的一个或多个以具有时效性的方式于地理上分散的云环境之间迁移方面可能会存在挑战。照此,工作负荷可能不会以最优的方式来处理。

技术实现要素:
一般地,本发明的实施例涉及虚拟机(VM)基于资源利用在网络化计算环境(例如,云计算环境)之间的迁移。特别地,本发明的实施例提供一种选择最优的一组(一个或多个)虚拟机作为用于预先接移(pre-stage)迁移的候选者的方法。在一种典型的实施例中,当第一云环境接近物理资源容量时,将识别出待从第一云环境迁移至具有容纳工作负荷的足够容量的第二云环境的最优的一组虚拟机。要使该过程变得更有效率,可以将与该组虚拟机关联的数据从第一云环境“预先接移”复制到第二云环境(例如,在迁移所识别的那组虚拟机的之前)。本发明的第一方面提供一种用于在网络化计算环境之间迁移虚拟机的计算机实现的方法,包括:确定在第一网络化计算环境中的资源使用率正接近于预定水平;在第一网络化计算环境中识别出作为待迁移至第二网络化计算环境的候选者的一组虚拟机,该识别基于下列项中的至少一项:与该组虚拟机中的每个虚拟机关联的数据的大小,与该组虚拟机中的每个虚拟机关联的数据的变化频率,该组虚拟机中的每个虚拟机的生命周期,或者该组虚拟机中的每个虚拟机的使用率水平;执行与该组虚拟机关联的数据到第二网络化计算环境的预先接移复制;将该组虚拟机中的至少一个虚拟机从第一网络化计算环境迁移至第二网络化计算环境;以及响应于该迁移将该数据与该至少一个虚拟机关联。本发明的第二方面提供一种用于在网络化计算环境之间迁移虚拟机的系统,包括:包含指令的存储介质;与存储介质耦接的总线;以及与总线耦接的处理器,该处理器在执行指令时会促使系统:确定在第一网络化计算环境中的资源使用率正接近于预定水平;在第一网络化计算环境中识别出作为待迁移至第二网络化计算环境的候选者的一组虚拟机,该识别基于下列项中的至少一项:与该组虚拟机中的每个虚拟机关联的数据的大小,与该组虚拟机中的每个虚拟机关联的数据的变化频率,该组虚拟机中的每个虚拟机的生命周期,或者该组虚拟机中的每个虚拟机的使用率水平;执行与该组虚拟机关联的数据到第二网络化计算环境的预先接移复制;将该组虚拟机中的至少一个虚拟机从第一网络化计算环境迁移至第二网络化计算环境;以及响应于该迁移而使数据与该至少一个虚拟机关联。本发明的第三方面提供一种用于在网络化计算环境之间迁移虚拟机的计算机程序产品,该计算机程序产品包括计算机可读的存储介质,以及存储于计算机可读的存储介质上的程序指令,用于:确定在第一网络化计算环境中的资源使用率正接近于预定水平;在第一网络化计算环境中识别出作为待迁移至第二网络化计算环境的候选者的一组虚拟机,该识别基于下列项中的至少一项:与该组虚拟机中的每个虚拟机关联的数据的大小,与该组虚拟机中的每个虚拟机关联的数据的变化频率,该组虚拟机中的每个虚拟机的生命周期,或者该组虚拟机中的每个虚拟机的使用率水平;执行与该组虚拟机关联的数据到第二网络化计算环境的预先接移复制;将该组虚拟机中的至少一个虚拟机从第一网络化计算环境迁移至第二网络化计算环境;以及响应于该迁移而将该数据与该至少一个虚拟机关联。本发明的第四方面提供一种用于部署在网络化计算环境之间迁移虚拟机的系统的方法,包括:提供计算机基础架构,该计算机基础架构可操作用于:确定在第一网络化计算环境中的资源使用率正接近于预定水平;在第一网络化计算环境中识别出作为待迁移至第二网络化计算环境的候选者的一组虚拟机,该识别基于下列项中的至少一项:与该组虚拟机中的每个虚拟机关联的数据的大小,与该组虚拟机中的每个虚拟机关联的数据的变化频率,该组虚拟机中的每个虚拟机的生命周期,或者该组虚拟机中的每个虚拟机的使用率水平;执行与该组虚拟机关联的数据到第二网络化计算环境的预先接移复制;将该组虚拟机中的至少一个虚拟机从第一网络化计算环境迁移至第二网络化计算环境;以及响应于该迁移而将该数据与该至少一个虚拟机关联。附图说明本发明的这些及其他特征根据以下结合附图进行的关于本发明的各个方面的详细描述将会更容易理解,在附图中:图1示出了根据本发明的一种实施例的云计算节点;图2示出了根据本发明的一种实施例的云计算环境;图3示出了根据本发明的一种实施例的抽象模型层;图4示出了根据本发明的一种实施例的系统示意图。图5示出了根据本发明的一种实施例的方法流程图。附图并不一定按比例绘制。附图仅为示意性的图示,并非旨在描绘本发明的具体参数。附图旨在仅示出本发明的典型实施例,并且因此不应被看作是对本发明的范围的限制。在附图中,相似的编号表示相似的元件。具体实施方式现在,说明性的实施例在此将参照其中示出了实施例的附图进行更全面的描述。但是,本公开内容可以按照许多不同的形式来实现,而不应解释为仅限于本文所阐明的实施例。相反,本文提供这些实施例,使得本公开内容足够深入和全面,并且将本公开内容的范围完全传达给本领域技术人员。在描述中,可能省略熟知的特征和技术的细节,以避免不必要地使所给出的实施例变得晦涩难懂。本文所使用的术语只是为了描述特定的实施例,而并非是要限定本公开内容。如本文所使用的,单数形式的“一”、“一个”及“该”意指同样包括复数形式,除非上下文另有明确说明。而且,术语“一”、“一个”等的使用,并不表示对数量的限定,而是表示存在所引用项中的至少一个。术语“组”意指数量为至少一个。还应当理解,术语“包含”和/或“包括”,或者“含有”和/或“具有”,当用于本说明书中时,指定存在所述的特征、区域、整数、步骤、操作、元件和/或组件,但不排除存在或另加一个或多个其他特征、区域、整数、步骤、操作、元件、组件和/或它们的分组。正如以上所指出的,本发明的实施例涉及虚拟机(VM)基于资源利用在网络化计算环境(例如,云计算环境)之间的迁移。特别地,本发明的实施例提供一种选择最优的一组(一个或多个)虚拟机作为用于预先接移迁移的候选者的方法。在一种典型的实施例中,当第一云环境接近物理资源容量时,将识别出待从第一云环境迁移至具有容纳工作负荷的足够容量的第二云环境的最优的一组虚拟机。要使该过程变得更有效率,可以将与该组虚拟机关联的数据从第一云环境“预先接移”复制到第二云环境(例如,在迁移所识别出的那组虚拟机的之前)。首先应当理解,尽管本公开内容包括关于云计算的详细描述,但本文所述的教导的实现方式却不限于云计算环境。而是,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境而实现。云计算是一种服务交付模式,用于对可配置计算资源(例如,网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务)的共享池进行方便的、按需的网络访问,这种可配置计算资源能够以最少的管理工作或与服务提供者进行最少的交互进行快速的供给和释放。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。特征如下:按需自助服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需供给诸如服务器时间和网络存储之类的计算容量。广泛的网络接入:计算容量可以经由网络来获取以及通过标准机制来访问,这种标准机制促进了不同种类的瘦客户端平台或胖客户端平台(例如,移动电话、膝上型电脑、个人数字助理(PDA))的用途。资源池:提供者的计算资源被合并以使用多租户(multi-tenant)模式来服务于多个消费者,不同的物理资源和虚拟资源根据需求进行动态的分配和再分配。由于消费者一般不能控制或者并不知晓所提供的资源的确切位置,但也许能够在较高的抽象层次上指定位置(例如,国家、州或数据中心),因而具有位置无关性的感觉。快速弹性:计算容量能够被快速地且有弹性地(在某些情况下是自动地)提供以迅速扩大,并且能够被快速释放以迅速缩小。在消费者看来,可用于供给的计算容量往往呈现为无限的,并且能够在任意时候购买到任意的数量。可度量的服务:云系统通过在适于服务类型(例如,存储、处理、带宽和活跃消费者帐号)的某个抽象层次上调节计量容量来自动地控制和优化资源使用。能够监测、控制和报告资源使用情况,为所利用的服务的提供者和消费者双方提供透明度。服务模型如下:软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。这些应用可由各种客户端设备通过诸如网页浏览器之类的瘦客户端接口(例如,基于网页的电子邮件)来访问。可能除了有限的消费者专用的应用配置设置外,消费者并不管理或控制包括网络、服务器、操作系统、存储、乃至单个应用能力的底层云基础架构。平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者所支持的程序设计语言和工具来创建。消费者并不管理或控制包括网络、服务器、操作系统或存储的底层云基础架构,但对所部署的应用具有控制权,并且对应用托管环境配置可能也具有控制权。基础架构即服务(IaaS):向消费者提供的能力是提供消费者能够在其中部署并运行可包括操作系统和应用在内的任意软件的处理、存储、网络和其他基础计算资源。消费者并不管理或控制底层的云基础架构,但是对操作系统、存储和所部署的应用具有控制权,并且对选择网络组件(例如,主机防火墙)可能具有有限的控制权。部署模型如下:私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。社区云:云基础架构由若干组织共享并支持具有共同关注(例如,任务、安全需求、政策和合规性考虑)的特定社区。社区云可以由组织或第三方管理并且可以存在于该社区内部或外部。公共云:云基础架构可由公众或大型产业群使用并由出售云服务的组织拥有。混合云:云基础架构由两个或更多云(私有云、社区云或公共云)组成,这些云保持为独特的实体,但是通过使数据和应用能够移植的标准化技术或专有技术(例如,用于云之间的负载平衡的云爆发)连结在一起。云计算环境是面向服务的,聚焦于无状态性、低耦合性、模块性和语义互操作性。云计算的核心是包含互连节点网络的基础架构。现在参考图1,其中示出了云计算节点的一个实例。云计算节点10仅为适合的云计算节点的一个示例,而并非旨在暗示对本文所描述的本发明的实施例的用途或功能范围的任何限定。无论如何,云计算节点10是能够实现的和/或能够执行以上所阐明的任何功能。在云计算节点10中,存在计算机系统/服务器12,该计算机系统/服务器12可在众多其他通用或专用计算系统的环境或配置下操作。可适于与计算机系统/服务器12一起使用的众所周知的计算系统、环境和/或配置的实例包括(但不限于):个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统以及包括上述任意系统或设备的分布式云计算环境等。计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(例如,程序模块)的一般背景下描述。通常,程序模块可以包括执行特定任务的或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在任务由通过通信网络链接的远程处理设备执行的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括内存存储设备的本地及远程计算系统存储介质上。如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括(但不限于):一个或多个处理器或处理单元16、系统内存28以及用于将包括系统内存28在内的不同系统组件耦接至处理单元16的总线18。总线18代表若干种总线结构中的一种或多种,这些总线结构包括:内存总线或内存控制器、外围总线、图形加速端口以及使用多种总线结构中的任意总线结构的处理器或局域总线。举例来说,此类体系结构包括(但不限于)工业标准体系结构(ISA)总线、微通道体系结构(MAC)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线及外围组件互连(PCI)总线。计算机系统/服务器12典型地包括多种计算机系统可读介质。该介质可以是可由计算机系统/服务器12访问的任意可获得的介质,并且它包括易失性介质和非易失性介质、可移动介质和不可移动介质。系统内存28可以包括易失性内存形式的计算机系统可读介质,例如,随机存取存储器(RAM)30和/或高速缓冲存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性的计算机系统存储介质。仅作为举例,存储系统34可以设置用于读写不可移动的非易失性磁介质(未示出,且通常称为“硬盘驱动器”)。尽管未示出,但能够设置用于对可移动的非易失性磁盘(例如,“软盘”)读写的磁盘驱动器,以及用于对可移动的非易失性光盘(例如,CD-ROM,、DVD-ROM或其他光学介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或多个数据介质接口与总线18相连。如同下文将进一步示出和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置以执行本发明的实施例的功能。本发明的实施例可以被实现为计算机可读的信号介质,该信号介质可以包括具有实现于其内(例如,在基带中或作为载波的一部分)的计算机可读的程序代码的传播数据信号。该传播信号可以采用各种形式中的任一种,这些形式包括(但不限于)电磁、光学或者它们任意适合的组合。计算机可读的信号介质可以是任何计算机可读介质,该计算机可读介质不是计算机可读的存储介质,并且能够传递、传播或传输由指令执行系统、装置或设备使用的或者结合其使用的程序。实现于计算机可读介质上的程序代码可以使用任意适合的介质来发送,该介质包括(但不限于):无线电、导线、光纤线缆、射频(RF)等,或者上述介质的任意适合组合。具有一组(至少一个)程序模块42的程序/实用工具40可以存储于例如(但不限于)内存28中,以及存储于操作系统、一个或多个应用程序、其他程序模块及程序数据中。操作系统、一个或多个应用程序、其他程序模块及程序数据或者它们的某种组合各自都可以包括网络环境的实现方式。程序模块42通常执行本文所描述的本发明的实施例中的功能和/或方法。计算机系统/服务器12还可以与一个或多个外部设备14(例如,键盘、指点设备、显示器24等),一个或多个使得消费者能够与该计算机系统/服务器12交互的设备,和/或使得计算机系统/服务器12能够与一个或多个其他计算设备进行通信的任何设备(例如,网卡、调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口22进行。此外,计算机系统/服务器12还能够通过网络适配器20与一个或多个网络(例如,局域网(LAN)、广域网(WAN)和/或公共网络(如,因特网))通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其他组件通信。应当理解,尽管图中未示出,但是其他硬件和/或软件组件能够结合计算机系统/服务器12来使用。实例包括(但不限于):微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器及数据档案存储系统等。现在参照图2,其中示出了说明性的云计算环境50。如图所示,云计算环境50包括由云消费者(例如,个人数字助理(PDA)或移动电话54A、台式计算机54B、膝上型电脑54C和/或汽车计算机系统54N)使用的本地计算设备可以与其通信的一个或多个云计算节点10。节点10可以相互通信。节点10可以在一个或多个网络(例如,以上所述的私有云、社区云、公共云或混合云或者它们的组合)中进行物理或虚拟分组(未示出)。这允许云计算环境50将基础架构、平台和/或软件作为服务来提供,由此云消费者无需在本地计算设备上维护资源。应当理解,图2所示的各类计算设备54A-N仅仅是说明性的,并且云计算节点10及云计算环境50能够经由任意类型的网络和/或可网络寻址的连接(例如,使用网页浏览器)与任意类型的计算机化设备通信。现在参照图3,其中示出了云计算环境50(图2)所提供的一组功能抽象层。首先应当理解,图3所示的组件、层及功能都仅仅是说明性的,并且本发明的实施例不限定于此。如图3所示,图中提供了下列层和对应功能:硬件和软件层60包括硬件和软件组件。硬件组件的实例包括主机。在一个实例中为系统和基于RISC(精简指令集计算机)体系结构的服务器。在一个实例中为IBM系统、IBMSystem服务器、IBM系统、存储设备、网络和网络组件。软件组件的实例包括网络应用服务器软件。在一个实例中为IBM应用服务器软件及数据库软件。在一个实例中为IBM数据库软件。(IBM、zSeries、pSeries、SystemX、BladeCenter、WebSphere及DB2是国际商业机器公司在世界各地注册的商标)。虚拟层62提供一个抽象层,通过该抽象层可以设置下列虚拟实体的实例:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。在一个实例中,管理层64可以提供以下所描述的功能。资源供给提供对被用来在云计算环境内执行任务的计算资源及其他资源的动态获取。计量和定价在资源被用于云计算环境中时提供了成本跟踪,以及对这些资源的消费的计费或计价。在一个实例中,这些资源可以包括应用软件许可证。安全措施为云消费者和任务提供身份认证,以及为数据及其他资源提供保护。消费者门户为消费者和系统管理者提供对云计算环境的访问。服务水平管理提供云计算资源分配和管理,使得所要求的服务水平得以满足。服务水平协议(SLA)规划与实现为云计算资源提供预先布局以及提供云计算资源的获取,对该云计算资源的未来需求根据SLA来预测。进一步示于管理层内的是虚拟机迁移,该虚拟机迁移代表在本发明的实施例下提供的功能。工作负荷层66提供云计算环境可以应用于其中的功能的实例。可以由该层提供的工作负荷及功能的实例包括:映射和导航、软件开发和生命周期管理、虚拟课堂教育交付、数据分析处理、事务处理以及消费者数据存储和备份。如上所述,以上关于图3所描述的所有实例都只是说明性的,并且本发明并不限定于这些实例。应当理解,本文所描述的本发明的全部功能通常可以由管理层64的虚拟机迁移功能来执行,该虚拟机迁移功能能够以有形的方式实现为程序/实用工具40的程序代码42的模块(图1)。但是,这并不必如此。而是,本文所述的功能能够由图3所示的层60-66中的任意层来实施/实现和/或使能。应当重申的是,虽然本公开内容包含关于云计算的详细描述,但是本文所述的教导的实现方式并不限定于云计算环境。而是,本发明的实施例意指以现在已知的或以后开发的任何类型的网络化计算环境来实现。现在参照图4,其中示出了用于根据本发明的一种实施例的本文所讨论的功能的系统示意图。应当理解,本文所述的教导可以实施于任何类型的网络化计算环境86A-86B(例如,云计算环境50A-50B)中。计算机系统/服务器12,能够实现为独立式计算机系统或网络化计算机系统。在本文所述的教导被实施于网络化计算环境86A-86B的情况下,每个客户端不需要具有虚拟机迁移引擎(引擎70)。而是,引擎70能够装载于与客户端通信(例如,以无线方式)以为其提供虚拟机迁移的服务器或者具服务器能力的设备上。无论如何,如图所示,引擎70被示于计算机系统/服务器12内。一般地,引擎70能够实现为在图1的计算机系统12上的程序/实用工具40,并且能够使能本文所述的功能。如图所进一步示出的,引擎70(在一种实施例中)包括用于处理一组(至少一个)规则/逻辑72和/或依此提供虚拟机迁移的规则和/或计算引擎。按照此方法,引擎70可以执行与通用计算机类似的多个功能。特别地,除了其他功能外,引擎70可以(除此以外):确定在第一网络化计算环境86A(例如,云计算环境50A)中的资源使用率正接近于预定水平(例如,基于待由第一网络化计算环境86A处理的一组工作负荷请求,该工作负荷请求可以基于存储于计算机存储设备84内的历史数据88来预测);在第一网络化计算环境86A中识别出作为待迁移至第二网络化计算环境86B(例如,云计算环境50B)的候选者的一组虚拟机72A-72N,该识别基于下列项中的至少一项:与该组虚拟机72A-72N中的每个虚拟机关联的数据74A-74N的大小,与该组虚拟机72A-72N中的每个虚拟机关联的数据74A-74N的变化频率,该组虚拟机72A-72N的每个虚拟机的生命周期,该组虚拟机72A-72N中的每个虚拟机的使用率水平,和/或与第一网络化计算环境86A对应的一组服务水平协议(SLA)条款;对与该组虚拟机72A-72N关联的数据80执行到第二网络化计算环境86B的预先接移复制;将该组虚拟机中的至少一个虚拟机82从第一网络化计算环境86A迁移至第二网络化计算环境86B(例如,当在第一网络化计算环境中的资源使用率处于第一网络化计算环境的总资源容量的预定百分率内时);响应于该迁移而使数据80与该至少一个虚拟机82关联;和/或基于下列项中的至少一项为该迁移确定费用:该至少一个虚拟机82的数量或者作为预先接移迁移的数据80的大小。在说明性的实例中假定,云环境A具有用于100个虚拟机的空间并且处于90%的容量。监测趋势指示,它很可能会在七天内用光资源。进一步假定,云环境A与分配有450GB的存储量的云环境B建立起一个协议。然后,云环境A确定15个最佳的候选者虚拟机,用于预先接移数据迁移至云环境B。如果在云环境A中的资源在七天后确实耗尽了,则云环境A可以将工作负荷迁移至云环境B。由于在云环境A中的15个虚拟机内的大部分数据都已经镜像映射至云环境B,因而云环境A可以将该15个虚拟机中的一个或多个移至云环境B。正如以上所指出的,可以利用各种技术来识别出待迁移的候选者虚拟机。这些方法总结如下:虚拟机数据集该方法测量每个虚拟机的数据集的大小。可能有益的是选择与其他虚拟机相比具有较小的数据集的虚拟机来进行预先接移。这将代表着要预先接移的数量最小的数据,以及很可能是与短期存储和网络带宽有关的最低成本。较小的数据集还会接移(stage)得更快。数据集变化频率该方法监测每个虚拟机的数据集的变化数量。可能有益的是,选择含有其内所包含的数据修改最少的数据集的虚拟机来进行预先接移。这将代表着在一定间隔之后需要再次进行预先接移的或者在以下所描述的迁移阶段内需要移动的最小数量的数据。虚拟机生命周期该方法监测虚拟机的生命周期,并且选择更可能长期存留的虚拟机。例如,系统可以辨别出特定的用户通常创建仅持续一定时间段的实例。这些虚拟机不是进行预先接移的最优候选者,因为当迁移时间发生时,这些虚拟机可能不存在。一般地,系统可以选择存在时间最长的虚拟机或者从历史上看已供给长期持续的虚拟机的用户。虚拟机使用率该方法监测虚拟机的使用率,并且确定哪些虚拟机具有可以有利于预先接移或迁移的使用率趋势。例如,虚拟机可以捆绑于每天仅发生一次或若干次的特定操作。在其他时间内,虚拟机主要为闲置状态。具有使用率模式的虚拟机可能是更优的预先接移选择,因为它们的迁移会由于可能需要迁移较少的改变而更快。除了针对上述特性来分析每个虚拟机外,本发明的实施例还分析“时序”,使得预先接移发生的时间同样得到考虑。虚拟机时序迁移选择该方法选择哪些实例应当要迁移,以及应何时迁移这些实例。选择的必要性可以来自于外部压力或组织成长。例如,考虑在90%的CPU消耗下运行的云环境。监测和趋势指示,平均CPU消耗正在增长,并且CPU将在三小时内耗尽。在此刻,本发明可以开始迁移经预先接移的(pre-staged)虚拟机。说明性的实施例以下所示出的是根据本发明的实施例的说明性步骤:1.实例时序迁移A.监测云环境的未使用资源B.监测传入的包括预先保留的服务请求和现有项目结束日期C.估计在云环境用光资源之前还剩多少时间2.实例选择-可能由所识别/选择的虚拟机实例生成的列表A。对于每个云实例(或实例组),估计:1.数据使用模式2.预测的寿命3.预测的使用率B.基于云所有者的偏好(时间、成本、SLA等)对该列表进行分类并确定优先次序。(该步骤可以利用以上所述的预先接移选择方法)。C.推荐在已排序的列表中应当有多少实例要迁移,以便减轻所预料的云资源约束D.给出结果(例如,在云环境用光资源之前还剩多少时间)云计量/计费在另一种实施例中,可以为迁移计算费用。在该实施例中,云环境A可以与云环境B建立起一个协议以分配一部分存储。云环境B可以,例如,免费进行该预先分配,因为这意味着,既然数据已在那里,云环境A更有可能会就未来的工作负荷求助于云环境B。如果在其自己的数据中心内资源缺乏,则云环境B可以收取名义费用。以下所示出的是根据本发明的一种实施例的用于在需要进行预先接移时管理计量(例如,计费和核算)的说明性步骤:1.云环境A就多个虚拟机(每个都具有特定性质,例如,内存、磁盘、尺寸等)的预先接移传输请求与云环境B联系A.云环境A可任选地将动机附于该请求B.云环境A发送项目期限和所需的承诺水平(尽力而为、保证等)2.云环境B针对该请求估计空间可用性和项目期限A.云环境B确定是否接受该预先接移B.云环境B确定应当进行该预先接移的时间C.云环境B给云环境A发送确认,以开始所识别的虚拟机的预先接移D.云环境B计算计费和计量的变化(因为云环境B可能具有与云环境A不同的速率/计费标准)3.云环境A一旦(可任选)从任意速率变化的消费者处接收到确认就开始预先接移迁移现在参照图5,其中示出了根据本发明的一种实施例的方法流程图。如图所示,在第一步骤S1中,确定在第一网络化计算环境中的资源使用率正接近于预定水平。在步骤S2中,将第一网络化计算环境中的一组虚拟机识别为待迁移至第二网络化计算环境的候选者,该识别基于下列项中的至少一项:与该组虚拟机中的每个虚拟机关联的数据的大小,与该组虚拟机中的每个虚拟机关联的数据的变化频率,该组虚拟机中的每个虚拟机的生命周期,或者该组虚拟机中的每个虚拟机的使用率水平。在步骤S3中,对与该组虚拟机关联的数据执行到第二网络化计算环境的预先接移复制。在步骤S4中,将该组虚拟机中的至少一个虚拟机从第一网络化计算环境迁移至第二网络化计算环境。在步骤S5中,使该数据与该至少一个虚拟机关联。虽然在此作为虚拟机迁移方案来示出和描述,但是应当理解,本发明还提供了各种可替换的实施例。例如,在一种实施例中,本发明提供包含用于使计算机基础架构能够提供本文所讨论的虚拟机迁移功能的计算机程序代码的计算机可读/可用的介质。在这种意义下,计算机可读/可用的介质包含用于实现本发明的各个过程的每个过程的程序代码。应当理解,术语“计算机可读的介质”或“计算机可用的介质”包括程序代码的任何类型的物理实施例中的一种或多种。特别地,计算机可读/可用的介质能够包含实现于一个或多个便携式存储制品(例如,光盘、磁盘、磁带等)、计算设备的一个或多个数据存储部分(例如,内存28(图1)和/或存储系统34(图1)(例如,固定磁盘、只读存储器、随机存取存储器、高速缓冲存储器等))上的程序代码。在另一种实施例中,本发明提供一种用于执行本发明基于订购、广告和/或费用的过程的方法。也就是,服务提供者(例如,方案集成商)能够许诺提供虚拟机迁移功能。在这种情况下,服务提供者能够对计算机基础架构进行创建,维护,支持等,该计算机基础架构例如是用于为一个或多个消费者执行本发明的过程的计算机系统12(图1)。作为回报,服务提供者能够按照订购和/或费用协议收到消费者的支付款,和/或服务提供者能够从将广告内容出售出售给一个或多个第三方中收到支付款。在又一种实施例中,本发明提供一种用于虚拟机迁移的计算机实现的方法。在这种情况下,能够提供计算机基础架构(例如,计算机系统12(图1)),并且能够获得(例如,创建、购买、使用、修改等)用于执行本发明的过程的一个或多个系统并将其部署到计算机基础架构。在这种意义上,系统的部署能够包括下列操作中的一个或多个:(1)将计算机可读介质中的程序代码安装于计算设备(例如,计算机系统12(图1))上;(2)将一个或多个计算设备添加至计算机基础架构;以及(3)合并和/或修改计算机基础架构的一个或多个现有系统,以使计算机基础架构能够执行本发明的过程。如本文所使用的,应当理解,术语“程序代码”和“计算机程序代码”是同义的,并且意指以任何语言、代码或符号进行的关于一组指令的任何表示,该组指令旨在促使具有信息处理能力的计算设备直接地或者在下列操作中的任一或两项操作之后执行特定的功能:(a)转换为另一种语言、代码或符号;和/或(b)以不同的材料形式再现。在这种意义上,程序代码能够被实现为下列项中的一个或多个:应用程序/软件程序、组件软件/函数库、操作系统、基本设备系统/用于特定计算设备的驱动器等。适合于存储和/或执行程序代码的数据处理系统能够依此来提供,并且能够包括通过系统总线与存储单元直接或间接通信耦接的至少一个处理器。存储单元能够包括(但不限于):在实际执行程序代码时所采用的本地内存、大容量存储器及高速缓冲存储器,该高速缓存存储器为至少某些程序代码提供暂时存储以便减少在执行期间必须从大容量存储器中检索出代码的次数。输入/输出和/或其他外部设备(包括,但不限于,键盘、显示器、指点设备等)能够直接地或者通过中间设备控制器与系统耦接。网络适配器同样可以与系统耦接,以使数据处理系统能够通过中间的私有网络或公共网络的任意组合与其他数据处理系统、远程打印机、存储设备等耦接。说明性的网络适配器包括(但不限于):调制解调器、线缆调制解调器及以太网卡。以上已经为了说明和描述起见给出了关于本发明的各个方面的描述。上述描述并非意指为穷尽性的或者将本发明限定于所公开的精确形式,而是很明显,许多修改和变化都是可能的。对于本领域技术人员显而易见的此类修改和变化意指包含于由所附权利要求书界定的本发明的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1