CN103853596A - 公共相邻存储区域优化长距离虚拟机迁移方法和系统 - Google Patents
公共相邻存储区域优化长距离虚拟机迁移方法和系统 Download PDFInfo
- Publication number
- CN103853596A CN103853596A CN201310627471.0A CN201310627471A CN103853596A CN 103853596 A CN103853596 A CN 103853596A CN 201310627471 A CN201310627471 A CN 201310627471A CN 103853596 A CN103853596 A CN 103853596A
- Authority
- CN
- China
- Prior art keywords
- machine
- working group
- working
- destination
- mark
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
实施例涉及在工作组之间迁移虚拟机(VM)。第一工作组中的第一机器生成识别被VM用于操作的一个或多个相邻存储器区域的迁移请求。第一机器将迁移请求传送至多个工作组。第一机器从所述多个工作组中的每一个接收分数,该分数指示在各工作组处可用的在迁移请求中所识别的相邻存储器区域的数目。所述多个工作组中的第二工作组基于分数和第二工作组与第一机器的距离而被识别为用于VM的目的地。基于第二工作组作为目的地的识别而引起VM从第一机器到第二工作组中的第二机器的迁移。
Description
技术领域
本发明一般地涉及虚拟机(VM)的管理,并且更具体地涉及用于在具有公共相邻存储器区域的硬件平台之间平衡VM负载的方法。
背景技术
云计算的提供商具有在还高效地分配用来向消费者提供服务的资源的同时,为消费者或最终用户提供期望性能的竞争任务。资源可以由提供商动态地分配以帮助实现这些目标。相应地,硬件平台可以操控多个VM,每个VM对应于消费者。硬件平台资源的高效使用支配的是提供商在不损坏消费者的VM使用和体验的情况下在平台上放置尽可能多的VM。可能期望将VM从一个硬件平台移动或迁移至另一个以确保消费者不会受到用于VM的资源变换的负面影响。
发明内容
实施例针对一种用于在工作组之间迁移虚拟机(VM)的方法。该方法包括由第一作业组中的第一机器来生成迁移请求,其识别被VM用于操作的一个或多个相邻存储器区域。该方法包括由第一机器向多个工作组传送迁移请求。该方法包括由第一机器从所述多个工作组中的每一个接收指示在各工作组处可用的在迁移请求中所识别的相邻存储器区域的数目。该方法包括基于第二工作组的分数和与第一机器的距离来将所述多个工作组中的第二工作组识别为目的地。该方法包括基于第二工作组作为目的地的识别引起VM从第一机器到第二工作组中的第二机器的迁移。
实施例针对一种包括多个工作组的系统,每个工作组包括多个虚拟机。所述多个工作组包括第一工作组,其包括具有要迁移的虚拟机(VM)的第一机器。该系统被配置成由第一机器生成识别被VM用于操作的一个或多个相邻存储器区域的迁移请求。该系统被配置成由第一机器向包括在所述多个工作组中的其他工作组传送迁移请求。该系统被配置成由第一机器从每个其他工作组接收分数,该分苏指示在各工作组处可以用的在迁移请求中识别的相邻存储器区域的数目。该系统被配置成用于基于第二工作组的分数和与第一机器的距离来将所述多个工作组中的第二工作组识别为目的地。该系统被配置成用于基于第二工作组作为目的地的识别引起VM从第一机器到第二工作组中的第二机器的迁移。
实施例针对一种计算机程序产品,包括具有与之一起体现的程序代码的计算机可读存储介质。该程序代码可被处理器读取以执行一种方法,该方法包括由第一工作组中的第一机器生成识别被虚拟机(VM)用于操作的一个或多个相邻存储器区域的迁移请求。该方法包括向多个工作组传送迁移请求。该方法包括从所述多个工作组中的每一个接收分数,该分数指示在各工作组处可用的在迁移请求中所识别的区域的数目。该方法包括基于第二工作组的分数和与第一机器的距离来将所述多个工作组中的第二工作组识别为目的地。该方法包括基于第二工作组作为目的地的识别引起VM从第一机器到第二工作组中的第二机器的迁移。
通过本发明的技术实现了附加特征和优点。在此详细地描述了本发明的其他实施例和方面并将其视为要求保护的本发明的一部分。为了更好地理解具有该优点和特征的本发明,参考描述和附图。
附图说明
特别地指出了被视为本发明的主题并在本说明书结束时在权利要求中作为示例明确地要求保护。根据结合附图进行的以下详细描述,本发明的前述及其他特征和优点是显而易见的,在所述附图中:
图1表示根据本发明一实施例的云计算节点;
图2表示根据本发明一实施例的云计算环境;
图3表示根据本发明一实施例的抽象模型层;
图4图示出根据实施例的与工作组相关联的示例性计算系统;
图5图示出根据实施例的与多个工作组相关联的示例性计算系统;
图6图示出根据实施例的示例性存储器映射的集合;以及
图7图示出根据实施例的示例性方法的流程图。
具体实施方式
本文所述的实施例针对机器(例如,虚拟机(VM))迁移。在某些实施例中,迁移判定或确定可以基于一个或多个因素诸如相对于主机而言,目的地机器或与目的地机器相关联的工作组的距离和存储器环境。用一个或多个分数来表示或反映所述一个或多个因素。
在此所使用的术语“主机”指的是由于一个或多个规划及而想要其本身减轻VM的机器。在此所使用的术语“工作组”指的是被直接连接到主机的那些机器。工作组的机器全部被相互直接连接。在此所使用的术语“对端机器”指的是在对象机器的工作组内的任何机器。在此所使用的术语“边缘机器”指的是术语不止一个工作组的机器。
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现(例如,任何客户机-服务器模型)。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理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,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及用于访问云计算服务的移动设备(例如,54A、54C和54N以及云计算环境50中的移动节点10)的移动台式计算机。
在一个实施例中,硬件和软件层60和虚拟化层62中的一者或两者可以包括边缘部件,诸如网络服务器前端和图像高速缓存以及图像库存储器,例如在高性能RAID存储区域网(SAN)中。在示例性实施例中,诸如虚拟化层62中的虚拟机(VM)监视应用程序70的应用程序可以实现用于迁移VM的过程或方法;然而,应理解的是可以在任何层中实现应用程序70。在某些实施例中,应用程序70可以基于指示在候选目的地机器或工作组处有多少与被VM访问的公共相邻存储器区域相同的公共相邻存储器区域可用的分数来迁移VM。在某些实施例中,应用程序70可以在为迁移机器选择目的地时将其他因素考虑在内。
现在转向图4,示出了根据实施例的计算系统或环境400。系统400可以指示集群或工作站。
系统400包括三个设备,设备1402、设备2404以及设备3406。设备402、404以及406可以被配置成相互通信。例如,可以将设备402、404以及406配置成通过有线或无线连接相互通信。虽然系统400被示为包括三个设备,但在某些实施例中,可以包括多于或少于三个设备。在某些实施例中,设备402、404以及406中的一个或多个可以包括上文结合图1所述的实体中的一个或多个或与之相关联。
设备402、404和406中的一个或多个可以包括一个和多个部件。例如,设备402在图4中被示为包括处理器408和存储器410。在某些实施例中,处理器408可以对应于图1的处理单元16。在某些实施例中,存储器410可以对应于图1的存储器28。存储器410可以被配置成存储数据或信息。存储器410具有存储在其上面的指令,该指令在被处理器408执行时促使设备402执行一个或多个方法动作,诸如在此所述的那些。在某些实施例中,设备402可以包括不止一个处理器408。设备402可以包括图4中未示出的附加部件。例如,设备402可以包括收发机以促进与设备404和406的通信。
在某些实例中,可能由于催化剂而期望设备402、404和406中的一个其本身减轻VM。此类催化剂可以包括主机上的存储空间的缺乏、或由于过大处理器负荷而引起的总体性能的下降、虚拟机的新组合的协同退化、主机上的计划端点以及正在主机上执行的破坏性软件维护。在图4的示例性实施例中,设备404被示为包括被迁移到设备406的VM422。与设备402相反,将VM422迁移到设备406的选择可以基于一个或多个因素,诸如设备406相对于设备402与主机共享更多的公共相邻存储器区域。
图4中所示的实施例可以用来将VM(例如,VM422)从主机(例如,设备404)转移或迁移至工作组(例如,工作组400)内的目的地机器(例如,设备406)。
在某些实例中,将VM从位于第一工作组中的主机迁移至位于第二工作组中的目的地机器可能是期望或最佳的。图5中所示的实施例图示出此类情形。
在图5中,示出了计算系统500。系统500可以包括一个或多个部件或设备,诸如上文结合图1—2所述的那些。
系统500包括许多工作组,表示为工作组‘A’590、‘B’592、‘C’594和‘D’596。工作组A590被示为包括设备或机器502、504、506、508以及510。工作组B592被示为计算设备或机器522、524、526、528和530。工作组C594被示为包括设备或机器542、544、546、548和550。工作组D596被示为包括设备或机器562、564、566、568和570。
虽然工作组A590、B592、C594和D596中的每一个在图5中被示为包括五个机器,但在任何给定工作组中可以包括不同数目的机器。此外,工作组中的机器的数目可以随时间而变。例如,机器可以留下第一工作组以潜在地加入第二工作组。
在某些实施例中,工作组包括一个或多个边缘机器。例如,工作组A590计算经由边缘机器550被耦合到工作组C594的边缘机器506。工作组A590包括经由边缘机器522被耦合到工作组B的边缘机器508。工作组B592包括经由边缘机器550被耦合到工作组C594的边缘机器524。工作组B592包括经由边缘机器566被耦合到工作组D596的边缘机器528。
在其中与主机(例如,机器502)相关联的VM将被迁移的示例性情形或使用情况中,可以进行识别候选人目的地机器的确定。更具体地,可以进行识别被包括在一组候选机器中的最佳机器以充当用于VM的目的地机器的确定。该确定可以基于一个或多个因素或分数。该因素或分数可以经由边缘机器506、508、522、524、550、528和566被传送至例如主机502。以这种方式,可以经由边缘机器506、508、522、524、550、528和566将主机502耦合或间接地连接到系统500中的所有其他机器。
在从主机502迁移VM时,可以假设VM将可访问一个或多个相邻存储器区域。此类区域可以与VM的执行相关联。可以使用一个或多个标识符(例如,字母数字标识符)来标记或识别该区域。出于说明简化的目的,可以假设要从主机502迁移的VM将具有五个区域,其中,第一区域具有‘1’的标识符,第二区域具有‘2’的标识符,第三区域具有‘3’的标识符,第四区域具有‘4’的标识符,并且第五区域具有‘5’的标识符。
在某些实施例中,主机502将标识符‘1’至‘5’传送至机器504、506、508和510。机器504、506、508和510中的每一个可以将其自己存储的相邻存储器区域与标识符相比较以确定其是否具有由该标识符识别的相应区域中的一个或多个。如果例如在机器504、506、508或510中的一个上存在用标识符‘1’、‘2’、‘3’、‘4’和‘5’中的一个或多个识别的足够区域,则工作组内迁移可以在工作组A590内进行。工作组内迁移可以使距离最小化,并且可以避免使边缘机器负担协调与其他工作组的通信的任务。
在某些实施例中,将标志符‘1’、‘2’、‘3’、‘4’和‘5’从主机502传送至工作组B592、C594和D596。此类传输可以经由边缘机器506、508、522、524、550和566发生。响应于接收到标识符,边缘机器可以计算用于其各自工作组的分数。例如,边缘机器550可以计算用于工作组C594的分数,边缘机器522可以计算用于工作组B592的分数,并且边缘机器566可以计算用于工作组D596的分数。
由边缘机器计算的分数可以包括群组分数。该群组分数可以基于在工作组中可用的与由主机传送到工作组的标识符匹配的相邻存储器区域的数目。边缘机器可以通过生成反映存储在每个机器的各自工作组内的每个机器处的相邻存储器区域的标识符的存储器映射来计算群组分数,如下所述。
如果机器522具有用标识符‘1’和‘8’识别的区域,机器524具有用标识符‘2’和‘3’识别的区域,机器526具有用标识符‘4’和‘9’识别的区域,机器528就用标识符‘6’和‘7’识别的区域,并且机器530具有用标识符‘2’、‘3’和‘4’识别的区域,则用于工作组B592的群组分数可以等于四(4),对应于区域‘1’、‘2’、‘3’和‘4’被存储在工作组B592中的至少一个机器处。
图6图示出可以由例如边缘机器522生成的存储器映射602。存储器映射602可以反映与存储于包括在图6的工作组B592中的每个机器处的每个区域相关联的标识符。
如果机器542具有用标识符‘1’和‘3’识别的区域,机器544具有用标识符‘1’和‘6’识别的区域,机器546具有用标识符‘3’和‘5’识别的区域,机器548就用标识符‘6’和‘7’识别的区域,并且机器550具有用标识符和‘3’识别的区域,则用于工作组C594的群组分数可以等于三(3),对应于区域‘1’、‘3’和‘5’被存储在工作组C中的至少一个机器处。
图6图示出可以由例如边缘机器550生成的存储器映射642。存储器映射642可以反映与存储于包括在图5的工作组A594中的每个机器处的每个区域相关联的标识符。
如果机器562具有用标识符‘3’和‘8’识别的区域,机器564具有用标识符‘2’和‘3’识别的机器564,机器566具有用标识符‘1’和‘7’识别的区域,机器568就用标识符‘1’和‘9’识别的区域,并且机器570具有用标识符‘2’和‘6’识别的区域,则用于工作组592的群组分数可以等于四(4),对应于区域‘1’、‘2’、‘3’和‘4’被存储在工作组596中的至少一个机器处。
图6图示出可以由例如边缘机器566生成的存储器映射672。存储器映射672可以反映与存储于包括在图5的工作组D596中的每个机器处的每个区域相关联的标识符。
可以由各组中的边缘机器来计算用于图5的每个群组B592、C594和D596的群组分数并返回至主机502(或另一机器)。主机502(或另一机器)可以基于群组分数来选择工作组作为用于VM迁移的目的地。
继续此说明性示例,可以将工作组B592选择为用于迁移的目的地(假设从主机502到工作组A590内的另一机器的迁移是不可能或最佳的)。例如,可以相对于工作组C594来选择工作组B592,因为工作组B592可以具有更高的群组分数或用于VM的更好的总体存储器环境。可以相对于工作组D596来选择工作组B592,尽管每个具有等于四的群组分数,因为工作组B592比工作组D596更接近于主机502(例如,工作组B592被连接到操控主机502的工作组A590,而工作组D596经由工作组B592被间接地连接到工作组A)。
当主机502的VM被迁移至工作组B592时,可以为边缘机器522分派将VM委托给工作组B592内的“最佳配合”机器的任务。可以将机器530选择为用于VM的目的地或“最佳配合”。可以基于相对于工作组B592中的任何其他机器而言具有用于VM的更好总体存储器环境来选择机器530。例如,可以基于具有如在存储器映射602中反映的与VM所请求的标识符(‘1’、‘2’、‘3’、‘4’和‘5’)匹配的最高数目的区域(3,对应于标识符‘2’、‘3’和‘4’)来选择机器530。
机器530可以获取或访问与来自机器522的标识符‘1’相关联的区域,因为机器522具有与标识符‘1’相关联的区域,并且在与机器530相同的工作组内。机器522可以基于存储器映射602将与标识符‘1’相关联的区域转送至机器530。
机器530可以从机器546获取或访问与标识符‘5’相关联的区域,优选地经由具有边缘机器中的一个或多个的协调努力。例如,机器522可以基于存储器映射602而知道在工作组B592中的任何机器上并不存在与标识符‘5’相关联的区域。基于此类知识,机器522可以向被耦合到机器522的边缘机器(508、524、528)中的一个或多个传送用于与标识符‘5’相关联的区域的请求。
如果被耦合到机器522的边缘机器508、524、528满足两个条件:(1)对存储器映射的访问,其(2)指示与标识符‘5’相关联的区域被包括在各工作组中,则边缘机器可以将此类状态返回至机器22,并且其后可以向机器522提供与标识符‘5’相关联的区域以便转送至机器530。如果边缘机器未能满足以上条件(1)或(2),则边缘机器可以促使用于该区域的请求传播至另一边缘机器(潜在地与另一工作组相关联)以求满足该请求。
在从主机502/工作组A590接收到VM时,边缘机器522可以将VM转送至目的的机器530。边缘机器522可以协调工作组B592内的通信。例如,边缘机器522可以帮助目的地机器530检索所需的区域(例如,与标识符‘1’和/或‘5’相关联的区域)以便使得目的地机器530的环境尽可能接近于VM所需要或请求的环境。
在某些实施例中,可以在工作组中的机器之间共享存储器映射(例如,存储器映射602、642、672)的生成或收集和群组分数的计算。例如,在从主机(例如,机器502)接收到用于迁移的请求时,可以使包括在该请求中的标识符(前述示例中的‘1’、‘2’、‘3’、‘4’和‘5’)在包括在工作组中的机器之间循环。工作组中的每个对端机器可以指示其是否具有与该请求相关联的一个或多个区域。因此,生成存储器映射或计算群组分数的负担或任务并不需要直接地落在工作组中的边缘机器上。在某些实施例中,在每个工作组中提供一个或多个专用机器作为边缘机器。在某些实施例中,在计算系统或环境中提供一个或多个专用机器作为边缘机器。
现在转到图7,示出了示例性方法700的流程图。可以执行方法700以便使VM从主机迁移至目的地机器。方法700可以根据一个或多个系统能够、设备或机器或部件操作,诸如在此描述的那些。在某些实施例中,方法700可以与图3的应用程序70相结合地执行。
在方框702中,可以生成从主机迁移VM的请求。该请求可以响应于任何数目的催化剂而生成,诸如主机应停止使用的确定、主机上的负载平衡等。该迁移请求可以识别被VM用于操作的区域。作为方框702的一部分,可以将迁移请求传送至一个或多个其他机器。例如,可以将该迁移请求传送至与工作组相关联的边缘机器。
在方框704中,接收到迁移请求时,边缘机器可以协调努力以生成用于工作组的存储器映射。边缘机器可以自己将存储器映射组装,或者可以支配通过使存储器映射在工作组的每个机器之间循环来将存储器映射组装。作为方框704的一部分,与第一工作组相关联的第一边缘机器可以向与第二工作组相关联的第二边缘机器分发迁移请求。
在方框706中,可以基于方框704的存储器映射和在方框702的迁移请求中识别的区域来计算分数(例如,群组分数)。该分数可以反映给定工作组中的迁移请求与存储器映射之间共有的区域的数目。在方框706中,可以针对每个工作组计算分数。
在方框708中,可以收集和比较用于各工作组的分数。可以基于该分数来选择目的地工作组。例如,可以基于具有最高分数来选择目的的工作组。在平局的情况下,可以基于是与主机的最短距离来选择目的地工作组。在某些实施例中,可以基于其将VM迁移至目的地工作组的时间来选择目的的工作组。例如,可以基于相对于其他候选工作组而言具有用以迁移VM的最低时间来选择目的地工作组。迁移VM的时间可以是将源工作组和目的地工作组耦合的线速度或吞吐量的函数。
在方框710中,可以选择包括在方框708的目的地工作组中的目的地机器。可以基于方框704的存储器映射来选择目的地机器。边缘机器可以负责选择或将VM委托为目的地机器,协调由目的地机器或VM堆一个或多个区域的访问等。
可以基于相对于迁移VM或客户机具有最大聚合共享相邻存储器区域或以字节(或用于共有的存储器量的某个其他单位)为单位的所有公共相邻存储器区域的最大和来选择目的地机器。例如,如果第一候选目的地机器具有每个与迁移VM共有的一(1)个字节的一百(100)个相邻存储器区域,并且第二候选目的地机器具有每个与迁移VM共有的一百(100)个字节的十(10)个相邻存储器区域,则在技术上说,与迁移VM共有的“最相邻存储器区域”将是每个一个字节的一百个区域。然而,本领域的技术人员将认识到一百个字节的十个区域每个将提供更多的存储器复制。同样地,在本示例中,可以将第二候选目的地机器选择为目的地机器以便减少复制努力或使其最小化。更一般地,可以基于目的地机器相对于目的地工作组中的一个或多个其他机器而言具有迁移请求中所识别的可用的最相邻存储器的确定来选择目的地工作组中的目的地机器。
方法700是说明性的。在某些实施例中,块中的一个或多个(或其一部分)可以是可选的。在某些实施例中,各方框可以按照与图7中所示的不同的顺序或序列来执行。在某些实施例中,可以包括未示出的一个或多个附加方框。
如在此所述,VM从主机到目的地机器的迁移可以基于在主机与目的地之间共有的区域的数目和主机与目的地之间的距离。当从一组候选目的地中选择目的地时,可以将单独地或相互以任何组合采取的其他因素考虑在内。例如,当从一组候选目的地机器中选择目的地机器时,可以将VM所使用的存储器页面或区域的尺寸、施加于每个候选目的地上的可执行负载、每个候选目的地上可用的处理资源等考虑在内。
在某些实施例中,可以将各因素相对于彼此进行加权以便相对于其他因素对给定因素施加特定水平的强调。例如,可以使用VM的活动水平来确定用以迁移VM的可容忍距离。因此,相对于某个阈值被视为空闲的第一VM可能相对于更加活动的第二VM被迁移更大的距离(例如,更大数目的网络跳跃)。当确定可容忍距离时,还可以将由VM执行的功能考虑在内。例如,如果VM执行关键功能(例如,对紧急电信的支持),可容忍迁移的距离相对于执行不那么关键的功能(例如,选择用于在网页上使用的徽标的色彩)的第二VM而言可能是小的。
在某些实施例中,可以减少或消除与迁移VM相关联的跳跃的距离或数目。例如,在某些实施例中,可以建立虚拟专用网络(VPN)或隧道以避免迁移VM时的过多数目的跳跃。以这种方式,较长的迁移距离能够有效地被短路以便使VM离线的时间最小化,或者以便提高吞吐量。
技术效果和益处包括通过减少在迁移期间需要传送的信息或数据的量来增加或提高性能。相对于常规解决方案而言可以减少目的地机器上的启动时间或使其最小化。可以实现尝试访问存储器时的失败次数的减少。可以将VM迁移至最佳主机,这可以提供有限计算资源的最佳使用。
在此使用的术语仅是为了描述特定实施例,且不旨在限制本发明。如在此使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚地指明。还将理解,当在说明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件和/或组件。
以下权利要求中的所有装置或步骤加功能元件的相应结构、材料、动作以及等效物(如果有的话)意图包括用于与其他权利要求要素相结合地执行功能的任何结构、材料或动作,如具体地要求保护的那样。呈现本发明的说明是为了示出和描述的作用,但不是穷尽性的或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说是明显的,且不脱离本发明的范围。选择和描述实施例是为了最佳地解释本发明的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用途的具有各种修改的各种实施例理解本发明。
此外,本领域的技术人员将认识到,可以将本发明的各方面体现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是--但不限于--电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读信号介质可以包括具有在其中体现(例如在基带中或作为载波的一部分)的计算机可读程序代码的传播数据信号。此类传播信号可以采取多种形式中的任何一个,包括但不限于电磁、光或其任意适当的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括--但不限于--无线、有线、光缆、射频(RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络--包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上文将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各方面。将理解的是可以由计算机程序指令来实现流程图和/或方框图的每个方框以及流程图和/或方框图中的方框的组合。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (14)
1.一种用于在工作组之间迁移虚拟机(VM)的方法,该方法包括:
由第一工作组中的第一机器来生成迁移请求,其识别被VM用于操作的一个或多个相邻存储器区域;
由第一机器向多个工作组传送迁移请求;
由第一机器从所述多个工作组中的每一个接收分数,所述分数指示在各工作组处可用的在迁移请求中所识别的相邻存储器区域的数目;
基于分数和第二工作组与第一机器的距离来将所述多个工作组中的第二工作组识别为目的地;以及
基于第二工作组作为目的地的识别,引起VM从第一机器到第二工作组中的第二机器的迁移。
2.如权利要求1所述的方法,其中,所述第一机器是第一边缘机器且所述第二机器是第二边缘机器。
3.如权利要求2所述的方法,其中,引起从第一机器到第二机器的迁移是基于第二边缘机器确定在第二工作组中第二机器具有在迁移请求中识别的可用的最相邻存储器。
4.如权利要求1所述的方法,其中,所述传送是到包括在第二工作组中的第二边缘机器,并且第一工作组中的第一边缘机器从第二边缘机器接收用于第二工作组的分数。
5.如权利要求1所述的方法,还包括:
基于每个分数相对于包括在多个工作组中的每个工作组的距离的加权,将第二工作组识别为用于VM的目的地。
6.如权利要求1所述的方法,还包括:
基于与VM相关联的活动水平,将第二工作组识别为用于VM的目的地。
7.如权利要求1所述的方法,还包括:
使用虚拟专用网络(VPN)和隧道中的至少一个,将VM从第一机器迁移至第二机器以便使跳跃的数目最小化。
8.一种系统,包括:
多个工作组,每个包括多个虚拟机,所述多个工作组包括第一工作组,所述第一工作组包括具有要迁移的虚拟机(VM)的第一机器,所述系统被配置成用于:
由第一机器生成识别被VM用于操作的一个或多个相邻存储器区域的迁移请求;
由第一机器将迁移请求传送至包括在所述多个工作组中的其他工作组;
由第一机器从所述其他工作组中的每一个接收分数,所述分数指示在各工作组处可用的在迁移请求中所识别的相邻存储器区域的数目;
基于分数和第二工作组与第一机器的距离来将所述多个工作组中的第二工作组识别为目的地;以及
基于第二工作组作为目的地的识别,引起VM从第一机器到第二工作组中的第二机器的迁移。
9.如权利要求8所述的系统,其中,所述第一工作组包括不同于第一机器的边缘机器,并且其中,所述边缘机器被配置成从每个其他工作组的每一个接收分数。
10.如权利要求8所述的系统,其中,包括在第二工作组中的边缘机器被配置成基于生成用于第二工作组的存储器映射,生成用于第二工作组的分数。
11.如权利要求10所述的系统,其中,所述存储器映射包括包含在第二工作组中的每个机器的标识,以及存储于包含在第二工作组中的每个机器处的相邻存储器区域的各自标识。
12.如权利要求10所述的系统,其中,所述存储器映射被配置成当生成存储器映射时在包括在第二工作组中的每个机器之间循环。
13.如权利要求10所述的系统,其中,所述边缘机器被配置成基于存储器映射和迁移请求,选择用于VM的第二工作组中的目的地机器。
14.如权利要求13所述的系统,其中,所述边缘机器被配置成协调对用于目的地机器的被VM用于操作的一个或多个相邻存储器区域的访问。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/690,190 US9003409B2 (en) | 2012-11-30 | 2012-11-30 | Common contiguous memory region optimized long distance virtual machine migration |
US13/690,190 | 2012-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103853596A true CN103853596A (zh) | 2014-06-11 |
CN103853596B CN103853596B (zh) | 2017-04-05 |
Family
ID=50826855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310627471.0A Expired - Fee Related CN103853596B (zh) | 2012-11-30 | 2013-11-29 | 用于在工作组之间迁移虚拟机的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9003409B2 (zh) |
CN (1) | CN103853596B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896250A (zh) * | 2017-11-16 | 2018-04-10 | 优公里(北京)网络技术有限公司 | 一种基于SaaS的多租户数据动态迁移的方法 |
CN108241523A (zh) * | 2016-12-27 | 2018-07-03 | 南宁富桂精密工业有限公司 | 虚拟机迁移方法及装置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430262B1 (en) * | 2013-12-19 | 2016-08-30 | Amdocs Software Systems Limited | System, method, and computer program for managing hierarchy and optimization in a network function virtualization (NFV) based communication network |
RU2568282C2 (ru) * | 2014-04-18 | 2015-11-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обеспечения отказоустойчивости антивирусной защиты, реализуемой в виртуальной среде |
US9727366B2 (en) | 2015-04-23 | 2017-08-08 | International Business Machines Corporation | Machine learning for virtual machine migration plan generation |
US9996377B2 (en) | 2015-06-30 | 2018-06-12 | International Business Machines Corporation | Virtual machine migration via a mobile device |
US11416305B2 (en) | 2016-08-24 | 2022-08-16 | Improbable Worlds Limited | Commands for simulation systems and methods |
US10878146B2 (en) | 2016-08-24 | 2020-12-29 | Improbable Worlds Ltd | Handover techniques for simulation systems and methods |
US10289767B2 (en) | 2016-08-24 | 2019-05-14 | Improbable Worlds Ltd | Communications interface facilitating operations of a persistent spatially-optimized computer-based simulation |
US10579434B2 (en) | 2016-08-24 | 2020-03-03 | Improbable Worlds Ltd | Simulation systems and methods using query-based interest |
US10380282B2 (en) | 2016-08-24 | 2019-08-13 | Improbable Worlds Ltd | Distributable and customizable load-balancing of data-associated computation via partitions and virtual processes |
US10643010B2 (en) | 2016-08-24 | 2020-05-05 | Improbable Worlds Ltd | Scalable simulation system with scalable data propagation |
US11087047B2 (en) | 2016-08-24 | 2021-08-10 | Improbable Worlds Ltd | Scalable update propagation via query aggregations and connection migrations |
US10241840B2 (en) * | 2016-09-30 | 2019-03-26 | Vmware, Inc. | Resource based virtual computing instance scheduling |
JP6801468B2 (ja) * | 2017-01-19 | 2020-12-16 | 富士通株式会社 | 管理装置、制御方法、および管理プログラム |
US10542104B2 (en) * | 2017-03-01 | 2020-01-21 | Red Hat, Inc. | Node proximity detection for high-availability applications |
US10599560B2 (en) * | 2018-06-12 | 2020-03-24 | Unity IPR ApS | Method and system for improved performance of a video game engine |
US11392400B2 (en) * | 2019-07-17 | 2022-07-19 | Hewlett Packard Enterprise Development Lp | Enhanced migration of clusters based on data accessibility |
US11429411B2 (en) | 2019-08-30 | 2022-08-30 | Nutanix, Inc. | Fast ARP cache rewrites in a cloud-based virtualization environment |
US20210067466A1 (en) | 2019-08-30 | 2021-03-04 | Nutanix, Inc. | Virtual machine migration in cloud infrastructure networks |
US11550616B2 (en) | 2019-08-30 | 2023-01-10 | Nutanix, Inc. | Virtual IP support for bare metal cloud infrastructures |
US11461123B1 (en) | 2019-11-21 | 2022-10-04 | Amazon Technologies, Inc. | Dynamic pre-copy and post-copy determination for live migration between cloud regions and edge locations |
US11573839B1 (en) * | 2019-11-21 | 2023-02-07 | Amazon Technologies, Inc. | Dynamic scheduling for live migration between cloud regions and edge locations |
US11734038B1 (en) | 2019-11-21 | 2023-08-22 | Amazon Technologies, Inc | Multiple simultaneous volume attachments for live migration between cloud regions and edge locations |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7203944B1 (en) * | 2003-07-09 | 2007-04-10 | Veritas Operating Corporation | Migrating virtual machines among computer systems to balance load caused by virtual machines |
US7529897B1 (en) * | 2003-12-31 | 2009-05-05 | Vmware, Inc. | Generating and using checkpoints in a virtual computer system |
US7685251B2 (en) * | 2007-06-21 | 2010-03-23 | International Business Machines Corporation | Method and apparatus for management of virtualized process collections |
US8191063B2 (en) * | 2007-09-30 | 2012-05-29 | Symantex Corporation | Method for migrating a plurality of virtual machines by associating files and state information with a single logical container |
US8239609B2 (en) * | 2009-10-23 | 2012-08-07 | Sap Ag | Leveraging memory similarity during live migrations |
US8370473B2 (en) * | 2009-12-16 | 2013-02-05 | International Business Machines Corporation | Live multi-hop VM remote-migration over long distance |
US8751738B2 (en) * | 2010-02-08 | 2014-06-10 | Microsoft Corporation | Background migration of virtual storage |
US9201678B2 (en) * | 2010-11-29 | 2015-12-01 | International Business Machines Corporation | Placing a virtual machine on a target hypervisor |
US8826272B2 (en) * | 2010-11-29 | 2014-09-02 | International Business Machines Corporation | Planning a reliable migration in a limited stability virtualized environment |
US8893124B2 (en) * | 2011-03-31 | 2014-11-18 | Intel Corporation | Method, apparatus and system for limiting access to virtualization information in a memory |
US8966084B2 (en) * | 2011-06-17 | 2015-02-24 | International Business Machines Corporation | Virtual machine load balancing |
-
2012
- 2012-11-30 US US13/690,190 patent/US9003409B2/en not_active Expired - Fee Related
-
2013
- 2013-03-07 US US13/788,428 patent/US9015715B2/en not_active Expired - Fee Related
- 2013-11-29 CN CN201310627471.0A patent/CN103853596B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108241523A (zh) * | 2016-12-27 | 2018-07-03 | 南宁富桂精密工业有限公司 | 虚拟机迁移方法及装置 |
CN107896250A (zh) * | 2017-11-16 | 2018-04-10 | 优公里(北京)网络技术有限公司 | 一种基于SaaS的多租户数据动态迁移的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103853596B (zh) | 2017-04-05 |
US9003409B2 (en) | 2015-04-07 |
US9015715B2 (en) | 2015-04-21 |
US20140157259A1 (en) | 2014-06-05 |
US20140157269A1 (en) | 2014-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853596A (zh) | 公共相邻存储区域优化长距离虚拟机迁移方法和系统 | |
Xu et al. | Dynamic resource allocation for load balancing in fog environment | |
US10261819B2 (en) | Determining an optimal computing environment for running an image based on performance of similar images | |
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 | |
CN103814358A (zh) | 服务器群内的虚拟机放置 | |
CN103238138B (zh) | 用于迁移逻辑分区的方法、装置和系统 | |
CN104067265B (zh) | 用于支持在云中的安全应用部署的系统和方法 | |
CN103970607A (zh) | 使用等价集合来计算优化虚拟机分配的方法和装置 | |
CN104424013A (zh) | 在计算环境中部署虚拟机的方法和设备 | |
CN100428168C (zh) | 管理虚拟机的中央处理单元利用的方法及系统 | |
CN104660669A (zh) | 针对应用模式组件从多个主机选择一个主机的方法和系统 | |
CN103856480A (zh) | 虚拟机迁移中的用户数据报协议分组迁移 | |
CN103294556B (zh) | 用于主机系统准入控制的方法和系统 | |
CN102981907A (zh) | 用于虚拟机分配的系统和方法 | |
CN104679591A (zh) | 用于在云环境中进行资源分配的方法和装置 | |
CN103365725A (zh) | 在多个云之间动态分配工作负荷部署单元的方法和系统 | |
CN104731658A (zh) | 供应和合并共享资源以最大化资源可用性的方法和系统 | |
CN103970604A (zh) | 基于MapReduce架构实现图处理的方法和装置 | |
CN103365781A (zh) | 用于动态地重新配置存储系统的方法和设备 | |
CN105359088A (zh) | 使用动态生成的虚拟磁盘内容优化供应时间的方法 | |
CN103297492A (zh) | 用于在联网计算环境之间迁移数据的方法和系统 | |
CN105938525B (zh) | 虚拟机设备的基于目录的发现 | |
CN103927216A (zh) | 用于管理虚拟装置的方法和系统 | |
CN104216662A (zh) | 用于跨远程复制关系的卷布置的方法和系统 | |
CN104657411A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170405 Termination date: 20201129 |
|
CF01 | Termination of patent right due to non-payment of annual fee |