CN102597958B - 虚拟机的对称实时迁移 - Google Patents
虚拟机的对称实时迁移 Download PDFInfo
- Publication number
- CN102597958B CN102597958B CN201080050225.8A CN201080050225A CN102597958B CN 102597958 B CN102597958 B CN 102597958B CN 201080050225 A CN201080050225 A CN 201080050225A CN 102597958 B CN102597958 B CN 102597958B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- page
- storage page
- storage
- recently used
- 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
Links
- 238000013508 migration Methods 0.000 title claims description 115
- 230000005012 migration Effects 0.000 title claims description 115
- 238000000034 method Methods 0.000 claims description 45
- 239000012141 concentrate Substances 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 32
- 238000013500 data storage Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 238000013509 system migration Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000001617 migratory effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
对于第一虚拟机的存储器页集产生第一最近最少使用图。该第一最近最少使用图包括元数据,该元数据包括存储器页物理地址位置信息。在第一虚拟机正执行时,从该第一虚拟机向第二虚拟机发送第一虚拟机的第一存储器页以及该第一存储器页的元数据。在第一虚拟机处从第二虚拟机接收第二虚拟机的第一存储器页以及与其相关联的元数据。基于该第一虚拟机的每个存储器页近来如何被使用,从第一最近最少使用图的第一位置到该第一最近最少使用图的最后位置对该第一虚拟机的存储器页排序。
Description
技术领域
本发明一般涉及虚拟机的领域,更具体地涉及虚拟机的迁移(migration)。
背景技术
由于各种原因进行虚拟机的系统迁移,包括在正安装硬件和/或软件更新时提供备份系统。正被复制的虚拟机(包括存储器、系统、应用等)被称为源虚拟机并且由于迁移而被建立的虚拟机称为目标虚拟机。
一种类型的迁移是实时迁移,其在虚拟机运行时迁移该虚拟机。具有关键任务系统的公司通常需要实时虚拟机访客(guest)迁移。传统的迁移系统一般如下在两个访客之间进行实时迁移(或者“交换(swapping)”)。访客A被迁移到访客B的物理机上,然后访客B被迁移到访客A的物理机上。但是,这样的传统迁移过程要求至少一个物理机具有足够的硬件资源来支持另外的虚拟访客。换句话说,如果至少一个物理机不具有足够的硬件资源来支持另外的虚拟访客,则可能不能进行迁移过程。而且,对于传统的实时迁移过程,仅可以在任意给定时间迁移一个虚拟机。
发明内容
本发明的一个实施例提供了一种虚拟机的对称实时迁移的方法。计算机实现的方法包括:产生对于第一虚拟机的存储器页集的第一最近最少使用图。该第一最近最少使用图包括第一虚拟机的存储器页集中每个存储器页的元数据。该元数据包括第一虚拟机的每个存储器页的物理地址位置。在第一虚拟机正执行时,从该第一虚拟机向第二虚拟机发送第一虚拟机的第一存储器页以及第一虚拟机的该第一存储器页的元数据。在第一虚拟机处从第二虚拟机接收第二虚拟机的第一存储器页以及第二虚拟机的该第一存储器页的元数据。基于该第一虚拟机的存储器页集中每个存储器页近来如何被使用,从第一最近最少使用图的第一位置到该第一最近最少使用图的最后位置排序该第一虚拟机的存储器页。最近最少被使用的存储器页由第一最近最少使用图的该第一位置指示。最近最多被使用的存储器页由该第一最近最少使用图的最后位置指示。该第一虚拟机的第一存储器页位于该第一最近最少使用图的第一位置。该第二虚拟机的第一存储器页位于该第二虚拟机的存储器页的第二最近最少使用图的相应第一位置处。
本发明的另一实施例提供了用于虚拟机的对称实时迁移的信息处理系统。该信息处理系统包括处理器和通信地耦接到该处理器的存储器。迁移管理器通信地耦接到该处理器和该存储器。该迁移管理器产生对于第一虚拟机的存储器页集的第一最近最少使用图。该第一最近最少使用图包括第一虚拟机的存储器页集的每个存储器页的元数据。该元数据包括第一虚拟机的每个存储器页的物理地址位置。在第一虚拟机正执行时,从该第一虚拟机向第二虚拟机发送第一虚拟机的第一存储器页以及第一虚拟机的该第一存储器页的元数据。在第一虚拟机处从第二虚拟机接收第二虚拟机的第一存储器页以及第二虚拟机的该第一存储器页的元数据。基于该第一虚拟机的存储器页集的每个存储器页近来如何被使用,从第一最近最少使用图的第一位置到该第一最近最少使用图的最后位置排序该第一虚拟机的存储器页。最近最少被使用的存储器页由第一最近最少使用图的该第一位置指示。最近最多被使用的存储器页由该第一最近最少使用图的最后位置指示。该第一虚拟机的第一存储器页位于该第一最近最少使用图的第一位置。该第二虚拟机的第一存储器页位于该第二虚拟机的存储器页的第二最近最少使用图的相应第一位置处。
附图说明
现在将参考如以下图中所示的本发明的优选实施例仅通过例子描述本发明:
图1是例示根据本发明的一个实施例的操作环境的框图;
图2例示根据本发明的一个实施例的仿真操作环境的硬件和软件架构的逻辑分层;
图3例示根据本发明的一个实施例的其中两个或更多虚拟机存在于相同的物理硬件上的虚拟化的计算系统;
图4示出根据本发明的一个实施例的虚拟机的LRU图;
图5-9示出根据本发明的一个实施例的两个虚拟机的对称实时迁移;
图10和11是例示根据本发明的一个实施例的对称实时迁移处理的操作流程图;以及
图12是例示根据本发明的一个实施例的信息处理系统的框图。
具体实施方式
以下将参考附图详细描述本发明的各个实施例。
当在主机计算机系统上仿真访客计算机系统时,访客计算机系统被称为是“虚拟机”,因为该访客计算机系统存在于主机计算机系统中作为一个或多个具体硬件架构的操作的纯软件表示。术语仿真器(emulator)、虚拟机和处理器仿真有时互换地使用以表示模拟或仿真整个计算机系统的硬件架构的能力。这些组件的操作在正运行在主机上的虚拟机中被仿真。在主机计算机的操作系统软件和硬件架构上执行的仿真器程序模拟整个访客计算机系统的操作。
仿真器程序担当主机的硬件架构和在仿真环境内运行的软件传输的指令之间的互换。该仿真器程序可以是主机操作系统(HOS),这是直接运行在物理计算机硬件上的操作系统。或者,该仿真环境也可以是虚拟机监视器(VMM),该虚拟机监视器是直接运行在硬件之上的软件,并且通过展示(expose)与VMM正虚拟化的硬件相同的接口来虚拟化机器的所有资源(这使得VMM能够不被运行在其上的操作系统层注意到)。主机操作系统和VMM可以一起运行在相同的物理硬件上。
在物理机之上的虚拟机(VM)的众多优点之一是迅速并廉价地建立相同虚拟机的多个实例的能力。如果虚拟机实施方式允许,则多个虚拟机可以同时存在于单个主机(主机计算机系统)环境中,并且主机的资源可以在若干虚拟机之间划分。当与从一个主机向另一主机移动或“迁移”虚拟机的能力结合时,这种灵活的资源分配变得甚至更有用。能够迅速并容易地从一个主机向另一主机迁移虚拟机对于例如“负载平衡”系统、进行硬件或软件升级或者处理灾难恢复是有用的。
图1示出根据本发明的一个实施例的操作环境。如所示,操作环境100包括通信地耦接到一个或多个网络106的多个信息处理系统(为了简化仅示出了两个系统)。第一信息处理系统102是源主机系统,其经由网络106通信地与作为目标主机系统的第二信息处理系统104耦接。网络106可以是任意类型的有线和/或无线通信网络。例如,网络106可以是内联网、外联网或者诸如Internet的互联网或其组合。网络106可以包括无线、有线和/或光纤链接。
源主机系统102被称为“源主机”,因为其主管一个或多个虚拟机112,目标主机系统104被称为“目标主机”,因为这是其中源主机102上的虚拟机112将被迁移到的系统。目标主机系统104对于起自己的虚拟机122也可以被称为源主机系统,并且源主机系统102对于此虚拟机122也可以被称为目标主机系统,因为虚拟机122将被迁移到在此实施例中的源主机系统104上。因此,任意的信息处理系统相对于另一系统可以是源主机系统,并且相对于再一系统可以是目标主机系统。在以下描述中,术语“第一信息处理系统”和“第二信息处理系统”用于指代相对其自身的源主机系统以及相对另一个的目标主机系统两者。
源主机系统102可以起着任意类型的信息处理系统的作用。在此实施例中,源主机系统102是高速处理设备,包括至少一个处理电路(例如CPU),该至少一个处理电路能够读取并执行指令并处理来自系统102内的应用和/或处理和/或来自作为共享的物理资源的用户系统的各种交互请求。在用户与源主机系统102交互的此实施例中,用户可以经由用户系统在源主机系统102上发起各种任务,诸如开发和执行系统测试,运行应用程序,以及发起系统迁移等。尽管在图1中仅示出了单个源主机系统102,但是可以容易地实现经由直接耦接或者经由一个或多个网络相互通信的多个主机系统。例如,多个主机系统可以通过分布式网络架构而互连。该单个源主机系统102也可以表示共同进行处理的主机的集群。
在此实施例中,源主机系统102访问数据并将其存储在源数据存储设备108中。源数据存储设备108指任意类型的存储器,且可以包括在源主机系统102内部或者外部的次级存储元件(例如硬盘、磁带或者存储子系统)。可以存储在源数据存储设备108中的数据的类型包括在一个或多个源虚拟机112(例如虚拟访客)中包括的源存储器110以及迁移数据111(例如数据结构)。在此实施例中,源存储器110的内容包括存储器页114。
此实施例的系统102还包括迁移管理器118在存储器页114的迁移期间使用的最近最少使用(LRU)图115。在此实施例中,迁移分组117可选地用于存储每个存储器页114的物理地址位置信息。在迁移期间,迁移分组117与相应的存储器页114一起被发送到目标系统104。在此实施例中,源虚拟机配置信息和/或源存储器访问数据也被存储在数据存储设备108中。图1中所示的源数据存储设备108是为了简化且易于说明的目的而例示的示例设备。在此实施例或者其他实施例中,可以存在由源主机系统102使用的多个源数据存储设备108。
在此实施例中,源主机系统102执行各种应用,包括源管理程序(hypervisor)116以及一个或多个虚拟机112。术语“管理程序”指支持一个或多个虚拟机的执行的低级应用。源管理程序116管理对源主机系统102的资源的访问,并用作支持虚拟机的同时执行的虚拟机监视器。每个虚拟机可以支持特定访客操作系统和用于执行以访客操作系统为目标写入的软件的多个用户会话。例如,一个虚拟机可以支持操作系统的实例,而第二虚拟机执行操作系统的实例。源管理程序116也可以通过虚拟机支持其他访客操作系统。
在此实施例中,源管理程序116包括迁移管理器118,其进行各种迁移操作以将源存储器128从源虚拟机112迁移到目标虚拟机122(例如虚拟访客)上的目标存储器120。在此示例实施例中,源管理程序116通过虚拟机控制总线124管理在源主机系统102上的虚拟机的执行控制。每个虚拟机控制总线124可以处理诸如中断、设备驱动器命令、设备驱动器数据等的低级控制信息的交换。
图1还示出了作为对于诸如源主机系统102的另一系统的目标主机系统的另一信息处理系统104。目标主机系统104经由网络106可通信地与源主机系统102耦接。目标主机系统104可以起着任意类型的信息处理系统的作用。在此实施例中,目标主机系统104是包括至少一个处理电路(例如CPU)的高速处理设备,该至少一个处理电路能够读取和执行指令,并处理来自系统104内的应用和/或处理的和/或来自作为共享的物理资源的用户系统的若干交互请求。
在其中用户与目标主机系统104交互的此实施例中,用户可以经由用户系统发起在目标主机系统104上的各种任务,诸如开发和执行系统测试,运行应用程序以及发起系统迁移。尽管在图1中仅示出了单个目标主机系统104,但是可以容易地实现经由直接耦接或者经由一个或多个网络相互通信的多个主机系统。例如,多个主机系统可以通过分布式网络架构互连。该单个目标主机系统104还可以表示共同进行处理的主机的集群。
在此实施例中,目标主机系统104访问数据并将其存储在源数据存储设备126中。目标数据存储设备126指任意类型的存储器并且可以包括在目标主机系统104的内部或者外部的次级存储元件(例如硬盘、磁带或者存储子系统)。可以存储在目标数据存储设备126中的数据的类型包括在一个或多个目标虚拟机122中包括的目标存储器120以及迁移数据121(例如数据结构)。在此实施例中,目标存储器120的内容包括存储器页128。
此实施例的系统104还包括迁移管理器132在存储器页128的迁移期间使用的最近最少使用(LRU)图129。在此实施例中,迁移分组131可选地用于存储每个存储器页128的物理地址位置信息。在迁移期间,迁移分组131与相应的存储器页128一起被发送到目标系统102。在此实施例中,目标虚拟机配置信息和/或目标存储器访问数据也被存储在数据存储设备126中。图1中所示的目标数据存储设备126是为了简化且易于说明的目的而例示的示例设备。在此实施例或者其他实施例中,可以存在由目标主机系统104使用的多个目标数据存储设备126。
在此实施例中,目标主机系统104执行各种应用,包括目标管理程序130以及一个或多个虚拟机122。目标管理程序130管理对目标主机系统104的资源的访问,并用作支持虚拟机的同时执行的虚拟机监视器。每个虚拟机可以支持特定访客操作系统和用于执行以访客操作系统为目标写入的软件的多个用户会话。例如,一个虚拟机可以支持操作系统的实例,而第二虚拟机执行操作系统的实例。目标管理程序130也可以通过虚拟机支持其他访客操作系统。
在此实施例中,目标管理程序130包括迁移管理器132,其进行各种迁移操作以将目标存储器120从目标虚拟机122迁移到源虚拟机112上的源存储器110。目标管理程序130通过虚拟机控制总线134管理在目标主机系统104上的虚拟机122的执行控制。每个虚拟机控制总线134可以处理诸如中断、设备驱动器命令、设备驱动器数据等的低级控制信息的交换。
从概念上的观点来看,信息处理系统通常包括运行在硬件的基本层(foundational layer)上的一个或多个层的软件。可以因为抽象的原因而进行此分层。通过为给定层的软件定义接口,该层可以通过在其上的其它层而不同地实现。在良好设计的计算机系统中,每个层仅了解(且仅依赖于)在其之下的中间层。这允许一层或者一个“堆叠”(多个接合的层)被替换而不会负面地影响在该层或该堆叠以上的层。例如,软件应用(较高层)通常依赖于较低级的操作系统(较低层)来将文件写到某种形式的永久存储器中,并且这些应用不需要理解将数据写到软盘、硬盘或者网络文件夹之间的区别。如果此较低层被用于写入文件的新的操作系统组件替换,则较高层软件应用的操作仍不受影响。
分层的软件的灵活性允许虚拟机(VM)呈现事实上是另一软件层的虚拟硬件层。以此方式,VM可以为在其之上的软件层创建那些软件正运行在其自己的私有计算机系统上的假象(illusion),因此VM可以允许多个“访客系统”以同时运行在单个“主机系统”上。
图2是表示在根据本发明的一个实施例的信息处理系统中的仿真操作环境的硬件和软件架构的逻辑分层的图。仿真程序202运行在主机操作系统203和/或硬件架构204上。仿真程序202仿真访客硬件架构206和访客操作系统208。一个或多个软件应用210又运行在访客操作系统208上。在图2的仿真的操作环境中,由于仿真程序202的操作,软件应用210可以运行在包括该仿真的环境的信息处理系统上,即使软件应用210被设计为运行在通常与主机操作系统和硬件架构204不兼容的操作系统上。
图3例示根据本发明的一个实施例的虚拟化的计算系统300。图3的虚拟化的计算系统300包括直接运行在物理计算机硬件340之上的主机操作系统软件层(主机OS)302。主机OS302通过展示与主机OS正在虚拟化的硬件相同的接口来虚拟化机器的所有资源(这使得主机OS不被运行在其之上的操作系统层注意到)。
在主机OS302之上的是两个虚拟机(VM)实现方式:VMA306,其在此示例实施例中是虚拟化的Intel386处理器;以及VMB308,其在此示例实施例中是Motorola 680X0系列处理器之一的虚拟化版本。在VM306和VM308每个之上的是访客操作系统(访客OS)A310和访客OSB312。在访客OSA310上运行两个应用:应用A1314和应用A2316。在访客OSB312之上的是应用B1318。VMA306和VMB308是虚拟化的计算机硬件表示,它们作为软件构造而存在并且由于专门化的软件代码的出现而使得以下成为可能:不仅将VMA306和VMB308分别呈现给访客OSA310和访客OSB312,而且还进行访客OSA310和访客OSB312间接与实际的物理计算机硬件304交互所需的所有软件步骤。这种完整的功能性可以称为虚拟机监视器(VMM),其中在诸如图3的示例实施例的实施例中,VMM包括主机操作系统302的部分。
在其他实施例中,VMM可以是运行在主机操作系统302之上并仅通过主机操作系统302与计算机硬件交互的应用。在其他实施例中,VMM包括在某些级别上经由主机操作系统302间接与计算机硬件304交互但是在其他级别上直接与计算机硬件304交互(类似于主机操作系统直接与计算机硬件交互的方式)的部分独立的软件系统。并且在其他的实施例中,VMM可以包括在所有级别上都不利用主机操作系统302直接与计算机硬件304交互(类似于主机操作系统直接与计算机硬件交互的方式)的完全独立的软件系统(尽管就计算机硬件304的配合使用以及避免冲突等而言仍与主机操作系统302交互)。
预期用于实现VMM的所有这些变化形成用于进行在此所述的各种处理的替换实施例,并且本发明不被这些替换实施例限制为任何特定VMM配置。另外,(可能在硬件仿真情景下)对应用314、316和318之间经由VMA306和/或VMB308的交互的任何引用应该被解释为事实上是应用314、316和318以及VMM之间的交互。同样,在适当时,对应用VMA306和/或VMB308与主机操作系统302和/或计算机硬件304之间的交互(可能直接或者在计算机硬件102上间接地执行计算机指令)的任何引用应该被解释为事实上是VMM和主机操作系统302或者计算机硬件304之间的交互。
虚拟化的计算系统300可以可选地经由网络106可通信地耦接到另一虚拟化的计算系统301,如图3所示。围绕第二虚拟化的计算系统301的虚线303指示这是本发明的另一实施例。第二虚拟化的计算系统301包括与上述的第一虚拟化的计算系统300类似的组件。
在本发明的实施例中,在第一信息处理系统102上的一个或多个虚拟机112以及在至少第二信息处理系统104上的一个或多个虚拟机122之间进行实时虚拟机(实施虚拟访客)迁移。此实时迁移处理是对称的实时迁移处理,该对称的实时迁移处理同时将第一信息处理系统102上的虚拟机112迁移到第二信息处理系统104并将第二信息处理系统104上的虚拟机122迁移到第一信息处理系统102。而且,在其中两个虚拟化的计算系统300和301耦接在一起的图3的实施例中,虚拟机的对称迁移可以跨过物理主机发生而不仅仅在主机内,尽管仅仅在主机内也是可能的。例如,OSA210可以与OSB312、OSM320或者OSN322中的任意一个交换。除了其他之外,在相同的主机内交换诸如OSB312的OS对于升级以及来回移动(shuffle)虚拟机是有用的。除了其他之外,跨过多个物理主机的迁移对于机器故障切换场景是有用的。而且,应该注意,操作系统310、312、320和322中的任意一个可以是具有其支持的访客的另一管理程序。
本发明的对称实时迁移是有益的,因为其即使当虚拟访客的物理机不具有足够的资源来支持其自己的访客以及新迁移的访客时也可以进行。该对称实时迁移处理也可以被用在其中过量使用(overcommit)不可选的情形下。在基本相同的时间,存储器页从一个系统移动到另一系统上的中间表示中并反之亦然。使用此中间表示,在新系统上的迁移的虚拟机的激活之前,在新系统上恢复虚拟机的原始表示。使用LRU逻辑图来控制被交换的页的组合(与传统使用的物理地址排序相比)允许当较早的传输需要被回退(roll back)时要求的页面调换(paging)。存储器页的元数据标记允许使用非显著的交换来去掉(undone)较早页选择中的“错误”。可以使用分类例程将LRU表示变换回到用于最终访客重启的物理表示。
在本发明的实施例中,每个迁移管理器维持由各自的虚拟机使用的存储器页的最近最少使用(LRU)图。可以使用任意机制来实现LRU图,诸如维持分配的页码的堆叠。当引用一页时,该页的相应页码被移动到堆叠的顶部。当该页被交换掉时,从堆叠中移除该页的相应页码。使用LRU图确保了最不可能很快再次使用的存储器页在更可能很快再次使用的存储器页之前被迁移。这允许在不打扰虚拟机的操作的情况下进行迁移,并且使得该迁移处理对用户是透明的。换句话说,在迁移处理期间不暂停(halt)虚拟机的操作。本发明的其他实施例使用替换LRU图的另一手段。
除了创建存储器页的LRU图之外,迁移管理器还监视存储器页的物理地址。例如,在一个实施例中,对于每个存储器页,迁移管理器使用该存储器页中的一个或多个可用位维持在其本身的存储器页中的原始主机系统的物理页偏移量。换句话说,迁移管理器将存储器页的物理地址嵌入在该存储器页本身中。在替换的实施例中,迁移管理器将存储器页的物理地址维持在该存储器页外部的位置处。例如,迁移管理器可以将此物理地址信息维持在在存储器页外部的日志中。然后无论何时将存储器页从一个物理系统交换到另一物理系统时,迁移管理器将包含被交换的存储器页的物理地址的分组与该存储器页一起发送。
图4示出根据本发明的一个实施例的信息处理系统内的虚拟机的示例LRU图。具体地,图4示出第一信息处理系统102上的虚拟机A(例如访客A)112的存储器页406的LRU图402以及第二信息处理系统上的虚拟机B(例如访客B)122的存储器页408的LRU图404。存储器页406和408以最近最少使用处于图顶部并且最近最多使用处于图底部的方式排序。在此实施例中,每个存储器页406和408的条目包括元数据410和412,该元数据包括该存储器页在其原始主机系统内的物理页偏移量。如上所述,这仅仅是一个示例实施例,并且在其他实施例中,存储器页的物理地址信息可以被存储在存储器页本身的外部。例如,此信息可以被存储在硬件寄存器中。
在此实施例中,第一和第二系统102和104的迁移管理器118和132彼此通信以确定何时进行该对称实时迁移处理。例如,如果一个系统需要进行负载平衡,则迁移管理器118和132彼此通信以发起对称实时迁移操作。如果系统102和104两者同时发送页请求,则可以实现各种规则/策略来确定哪个系统交换第一存储器页。
当要进行对称实时迁移操作时,每个迁移管理器118和132检索在另一系统处由该虚拟机需要的硬件资源。换句话说,每个迁移管理器118和132确定要被迁移到该迁移管理器的系统上的虚拟机的大小。这样做是因为在对称实时迁移中,对称地交换存储器页。因而,如果一个虚拟机具有比另一个更少的存储器页,则较大虚拟机处的另外的存储器页不具有在较小虚拟机处的用于交换的相应存储器页。因此,在此实施例中,如果虚拟机112和122大小不同,则管理较小虚拟机的迁移管理器填充该较小虚拟机的大小以基本与较大虚拟机的大小相匹配。例如,较小虚拟机的迁移管理器可以逻辑地向该较小虚拟机添加高端存储器(highmem)。而且,每个迁移管理器需要保留一页空闲存储器用于进行页的交换和分类。或者,可以将另外的空间实现为硬件特征寄存器。在这样的实施例中,硬件特征寄存器用于页的交换和分类,并且消除了对空闲页的需要。包括页的物理位置的分组仍被发送到目标主机系统。
图5-9示出根据本发明的一个实施例的虚拟机的示例对称实时迁移。图5示出第一信息处理系统102上的虚拟机112的逻辑图502以及第二信息处理系统104上的虚拟机122的逻辑图504。尽管在图5-9的示例中虚拟机112和122具有相同数量的存储器页,但是如果虚拟机之一在存储器页方面较小,则在此实施例中,较小虚拟机的大小将被填充以基本匹配较大虚拟机的大小。
如图5所示,虚拟机112具有嵌入了元数据508的第一存储器页506,该元数据508指示存储器页506在其原始/源系统102上的物理页偏移量。虚拟机112还具有嵌入了元数据512的第二存储器页510,该元数据512指示该存储器页510在其原始/源系统102上的物理页偏移量。第三存储器页514具有嵌入的元数据516,该元数据516指示该存储器页514在其原始/源系统102上的物理页偏移量。第四存储器页518具有嵌入的元数据520,该元数据520指示该存储器页518在其原始/源系统102上的物理页偏移量。虚拟机112还具有嵌入了元数据522的第五存储器页520,该元数据522指示该存储器页520在其原始/源系统102上的物理页偏移量。
虚拟机122具有嵌入了元数据528的第一存储器页526,该元数据528指示存储器页526在其原始/源系统104上的物理页偏移。虚拟机122还具有嵌入了元数据532的第二存储器页530,该元数据532指示该存储器页530在其原始/源系统104上的物理页偏移量。第三存储器页534具有嵌入的元数据536,该元数据536指示该存储器页534在其原始/源系统104上的物理页偏移量。第四存储器页538具有嵌入的元数据540,该元数据540指示该存储器页538在其原始/源系统104上的物理页偏移量。虚拟机122还具有嵌入了元数据544的第五存储器页542,该元数据544指示该存储器页542在其原始/源系统104上的物理页偏移量。
当对称实时迁移处理开始时,每个迁移管理器118和132将其数据存储设备108和126中的页面移出(page out)的存储器页复制到另一系统的数据存储器。例如,第一信息处理系统102处的迁移管理器118将其页面调换的数据集复制到第二信息处理系统104的数据存储设备126,并且第二信息处理系统104处的迁移管理器132将其页面调换的数据集复制到第一信息处理系统102的数据存储器108。虚拟机A112的存储器页506、510、514、518和522以及虚拟机B 122的存储器页526、530、534、538和542通过在虚拟机112和122的LRU图502和504中从上向下移动而对称地交换。
图6示出在此实施例中首先发生虚拟机112和122的LRU图502和504中的第一存储器页506和526的对称交换。如所示,现在,虚拟机A 112的第一存储器页506存在于其中虚拟机B 122的第一存储器页526曾存在的虚拟机B LRU图504的相同位置中。现在,虚拟机B 122的第一存储器页526存在于其中虚拟机A 112的第一存储器页506曾存在的虚拟机A LRU图502的相同位置中。在此实施例中,当交换完成时,通过步伐一致地(in lockstep)推进各虚拟机的LRU指针602和604来追踪该对称迁移。在此实施例中,用于这些指针602和604的另外的空间被分派在每个系统上,但这不是必须的。或者,另外的空间可以被实现为硬件特征寄存器。
图7示出已经进行另外的对称交换操作。如所示,虚拟机A 112的第二存储器页510现在存在于其中虚拟机B 122的第二存储器页530曾存在的虚拟机B LRU图504的相同位置中。虚拟机B 122的第二存储器页530现在存在于其中虚拟机A 112的第二存储器页510曾存在的虚拟机A LRU图502的相同位置中。甚至进一步地,虚拟机A 112的第三存储器页514现在存在于其中虚拟机B 122的第三存储器页534曾存在的虚拟机B LRU图504的相同位置中。虚拟机B 122的第三存储器页534现在存在于其中虚拟机A 112的第三存储器页514曾存在的虚拟机A LRU图502的相同位置中。该处理继续,直到所有存储器页都已被对称地交换。
如果在对称实时迁移期间的任意时间点虚拟机之一需要已经被交换的其自己的页(即该页已被发送到另一系统,如逻辑地存在于相应LRU图中的指针以上的页所指示的),则此虚拟机可以从该另一系统要求此丢失的页。当此要求发生时,所请求的页必须被交换回到原始主机。图8示出了其中虚拟机B需要来自第二系统104的后面具有偏移量“2”的其存储器页514的例子。此反转的页不能仅被放置于在原始主机系统102的数据存储器108内的任何位置,因为这可能导致在交换阶段末尾处的分类不正确。因此,在此实施例中,迁移管理器通过以下步骤来反转先前的对称页交换:将正被反转的所请求的页放置在请求者侧的LRU图的底部。正从请求者交换回到原始侧的对称地对准(aligned)的页被放置于指针已经前进到的位置。交换可以如常继续,因为LRU图的对称性未被扰乱。
另外,也可以实现用于减慢访客并打包(pack)寄存器状态的机制。在一些实施例中,使用一个或多个机制用于当期望的进程未在进行时减慢访客。例如,如果访客正以全速运行,则其可能在某个时间间隔期间引用1000页。很可能这1000页中的一些已经被发送到目标系统。如果现在源系统需要拿回这些页并且在访客已经用完这些页时的稍后的时间点将这些页再次发送出,则这显著地减慢了该迁移处理。如果访客在较慢地运行,则其可能在相同的时间间隔中仅引用100页而不是1000页,并且源系统将不需要从目标系统拿回那么多页。减慢访客的一个简单方案是降低其优先级(如果主机系统使用了基于优先级的CPU调度)。随着降低的优先级,访客得到更少的CPU周期,因此更慢地运行。在大部分页已被传送到目标系统之后,也传送寄存器的内容,因为此访客在目标系统上的系统状态应该与在源系统上的原始状态一致。由于寄存器状态(以及任何剩余页)传送,暂停访客系统。
图8示出在此例子中虚拟机A 112请求回的存储器页514被放置于虚拟机A 112的LRU图502的底部。与反转的存储器页514对称地对准的虚拟机B 122的存储器页534也被交换回到其原始系统104在其中指针已经前进到的LRU图504中的位置处。因为反转的存储器页514被放置于其原始LRU图502的底部并且相应的对称对准的存储器页534已被交换回到其原始主机系统104,所以当请求该页反转时在指针602所指示的位置处以及在该位置以下的存储器页518和522在LRU图502中向上移动一个位置,如图8所示。
一旦对称实时迁移处理完成(即虚拟机A 112的所有存储器页506、510、514、518和522被迁移到第二信息处理系统104,并且虚拟机B 122的所有存储器页526、530、534、538和542被迁移到第一信息处理系统102),在激活系统上的访客之前,迁移管理器118和132通过在交换处理期间嵌入在存储器页内的或者被包括在单独的分组内的存储器页的物理位置来对存储器页进行分类,如图9所示。换句话说,每个迁移管理器118和132通过存储器页的物理起源地元数据来对存储器页进行分类并通过那些物理地址来对准存储器页。
图10和11是例示根据本发明的一个实施例用于对称地迁移两个或更多虚拟机的处理的操作流程图。可以在迁移处理期间同时对两个信息处理系统进行图10和11的操作流程。图10的操作流程开始于步骤1002,并且直接行进到步骤1004。在步骤1004,迁移管理器将每个存储器页的物理地址位置信息嵌入到存储器页本身中。或者,迁移管理器可以将此信息存储在存储器页外部并在迁移期间将包括此地址信息的单独的分组与存储器页一起发送。
在步骤1006,迁移管理器维持存储器页的LRU图。在步骤1008,迁移管理器确定是否已经开始对称实时迁移处理。如果此确定的结果是否定的,则迁移管理器再次确定是否已经开始对称实时迁移处理。如果此确定的结果是肯定的,则迁移管理器在步骤1010确定另一虚拟机(即要被迁移到该系统的虚拟机)的大小是否等于该系统处主管的虚拟机。
如果此确定的结果是肯定的,则控制来到步骤1018。如果此确定的结果是否定的,则迁移管理器在步骤1012确定该另一虚拟机的大小是否大于主管的(hosted)虚拟机。如果此确定的结果是否定的,则迁移管理器在步骤1014确定另一迁移管理器是否已调整另一虚拟机的大小。当此确定的结果是肯定时,控制来到步骤1016。如果步骤1012的确定的结果是肯定的,则迁移管理器在步骤1016填充主管的虚拟机的大小以便与另一虚拟机的大小基本匹配。
在步骤1018迁移管理器从LRU图的顶部开始将该图中的每个存储器页对称地交换到另一系统上的对称地对准的位置。该迁移管理器还对称地接收来自另一系统的相应存储器页并将此接收的存储器页放置于已经从该系统对称地交换出的存储器页的位置。在步骤1020,迁移管理器在交换之后推进LRU图指针。然后该控制来到图11的步骤1102。
在步骤1102,迁移管理器确定主机系统是否需要返回被交换的页。如果此确定的结果是肯定的,则迁移管理器在步骤1104从目标系统请求拿回该页。迁移管理器在步骤1106接收请求回的页并将接收的页放置于LRU图的底部。然后该控制来到步骤1110。
如果步骤1102处的确定的结果是否定的,则迁移管理器在步骤1110确定目标系统是否需要返回被交换的页。如果此确定的结果是肯定的,则迁移管理器在步骤1112将所需的页发送回目标系统。迁移管理器在步骤1114接收与被发送回目标系统的存储器页对称地对准的从目标系统回来的相应存储器页。然后该控制来到步骤1116。
如果在步骤1110处的确定的结果是否定的,则迁移管理器在步骤1116确定是否所有存储器页已被对称地交换。如果此确定的结果是否定的,则该控制来到图10的步骤1018。如果此确定的结果是肯定的(即虚拟机已被对称地交换),则迁移管理器在步骤1118分析每个对称交换的存储器页或者随每个存储器页接收的外部分组以识别与每个存储器页相关的物理地址。迁移管理器在步骤1120基于每个存储器页的物理地址信息来对准从目标系统接收的每个存储器页。迁移管理器在步骤1122激活迁移的虚拟机。然后该控制在步骤1124退出。
图12是例示根据本发明的一个实施例的信息处理系统的框图。例如,信息处理系统1200可以是图1的任意的信息处理系统,并且可以包括以上关于那些系统所述的组件。信息处理系统1200是基于被用来实现本发明的一个或多个实施例的适当配置的处理系统。任何适当配置的处理系统都能够类似地被本发明的实施例用作信息处理系统1200。
信息处理系统1200包括计算机1202。计算机1202具有:(一个或多个)处理器1204,其连接到主存储器1206;海量存储接口1208;以及网络适配器硬件1210。系统总线1212互连这些系统组件。海量存储接口1208用于将诸如数据存储设备1214的海量存储设备连接到信息处理系统1200。一种具体类型的数据存储设备是诸如CD/DVD驱动器的光驱动器,其可以用于将数据存储到计算机可读介质或者诸如CD或DVD 1216的存储产品或者从其读取数据。另一类型的数据存储设备是被配置为支持例如NTFS型文件系统操作的数据存储设备。
在此实施例中,主存储器1206包括虚拟机112和122、管理程序116和130、迁移管理器118和132、数据存储设备108和126、存储器页114和128(以及迁移数据)以及LRU图115和129(以及迁移分组)。尽管被示出为同时存在于主存储器1206中,但是主存储器1206的组件不必须一直或甚至同时完全存在于主存储器1206中。在此实施例中,信息处理系统1200利用传统的虚拟寻址机制以允许程序表现为就像它们访问大的单个存储实体(称为计算机系统存储器)而不是访问多个诸如主存储器1206和数据存储设备1216的较小存储实体。在此使用术语“计算机系统存储器”概括地指代信息处理系统1200的整个虚拟存储器。
尽管仅为计算机1202例示了一个CPU 1204,但是同样可以有效地使用具有多个CPU的计算机系统。本发明的进一步的实施例并入了每个包括单独的完全编程的微处理器的接口,这些微处理器用于卸下来自CPU 404的处理。主存储器中包括的操作系统是适合的多任务操作系统,诸如Linux、UNIX、Windows XP或者Windows Server操作系统。本发明的其他实施例能够使用任何其他适当的操作系统。本发明的一些实施例利用允许操作系统的组件的指令在位于信息处理系统1200内的任意处理器上执行的诸如面向对象的框架机制的架构。网络适配器硬件1210被用于提供与一个或多个网络106的接口。本发明的其他实施例能够被适配为与包括当今的模拟和/或数字技术的任意数据通信连接或者经由将来的联网机制而工作。
尽管已经在全功能的计算机系统的背景下描述了本发明的示例实施例,但是本领域技术人员将认识到,各实施例能够经由CD、DVD、CD-ROM、其他形式的可记录介质或者其他形式的计算机可读存储介质、例如图12的计算机可读介质或者存储产品1216而分发为程序产品。
尽管已经例示并描述了目前被认为是本发明的优选实施例的那些,但是本领域技术人员将理解,可以进行各种其他的修改,并且可以替换等效物而不脱离本发明的真正范围。另外,可以进行许多修改以使具体情况适应于本发明的教导而不脱离在此所述的中心发明概念。此外,本发明的一个实施例可以不包括上述的所有特征。因此,意图本发明的范围不限于公开的具体实施例,而是本发明包括落在所附权利要求的范围内的所有实施例。
Claims (18)
1.一种虚拟机的对称实时迁移的方法,该方法包括步骤:
产生对于第一虚拟机的存储器页集的第一最近最少使用图,该第一最近最少使用图包括所述第一虚拟机的所述存储器页集中的每个存储器页的元数据,并且该元数据包括所述第一虚拟机的所述存储器页集中每个存储器页的物理地址位置;
在所述第一虚拟机正执行时,从该第一虚拟机向第二虚拟机发送所述第一虚拟机的第一存储器页以及所述第一虚拟机的该第一存储器页的元数据;以及
在所述第一虚拟机处从所述第二虚拟机接收所述第二虚拟机的第一存储器页以及所述第二虚拟机的该第一存储器页的元数据,
其中基于该第一虚拟机的所述存储器页集中每个存储器页近来如何被使用,从所述第一最近最少使用图的第一位置到该第一最近最少使用图的最后位置排序该第一虚拟机的该存储器页集,最近最少被使用的存储器页由所述第一最近最少使用图的该第一位置指示,最近最多被使用的存储器页由该第一最近最少使用图的该最后位置指示,以及
该第一虚拟机的该第一存储器页位于该第一最近最少使用图的该第一位置,并且该第二虚拟机的该第一存储器页位于该第二虚拟机的存储器页的第二最近最少使用图的相应第一位置处,其中,该第二最近最少使用图包括所述第二虚拟机的所述存储器页集中的每个存储器页的元数据,并且该元数据包括所述第二虚拟机的所述存储器页集中每个存储器页的物理地址位置,其中基于该第二虚拟机的所述存储器页集中每个存储器页近来如何被使用,从所述第二最近最少使用图的第一位置到该第二最近最少使用图的最后位置排序该第二虚拟机的该存储器页集,最近最少被使用的存储器页由所述第二最近最少使用图的该第一位置指示,最近最多被使用的存储器页由该第二最近最少使用图的该最后位置指示。
2.如权利要求1的方法,还包括步骤:基于该第一和第二虚拟机的最近最少使用图中的存储器页的顺序,对于该第一和第二虚拟机的其他存储器页的每个重复所述发送和接收步骤。
3.如权利要求2的方法,还包括步骤:
在所述第一虚拟机的所有存储器页已被发送到所述第二虚拟机并且所述第二虚拟机的所有存储器页已在所述第一虚拟机处被接收之后,基于随所述第二虚拟机的存储器页一起被接收的元数据中的物理地址位置来分类从所述第二虚拟机接收的存储器页。
4.如权利要求3的方法,还包括步骤:
在所述分类步骤之后,激活利用从所述第二虚拟机接收的每个存储器页的虚拟机。
5.如权利要求1的方法,还包括步骤:
在所述发送步骤之前,如果所述第一虚拟机的所述存储器页集小于所述第二虚拟机的存储器页集,则逻辑地增加所述第一虚拟机的所述存储器页集的大小以便与所述第二虚拟机的所述存储器页集相匹配。
6.如权利要求1的方法,其中,所述发送步骤包括将所述第一虚拟机的该第一存储器页的元数据嵌入该第一虚拟机的该第一存储器页内。
7.如权利要求1的方法,其中发送步骤包括:
产生与所述第一虚拟机的所述第一存储器页分离的分组,该分组包括该第一虚拟机的该第一存储器页的元数据;以及
将该分组从该第一虚拟机发送到所述第二虚拟机。
8.如权利要求1的方法,还包括步骤:
在所述发送步骤之后,从所述第二虚拟机请求所述第一虚拟机的所述第一存储器页;
从该第二虚拟机接收该第一虚拟机的该第一存储器页;以及
将从该第二虚拟机接收的该第一虚拟机的该第一存储器页放置于该第一最近最少使用图的最后位置。
9.如权利要求1的方法,还包括:
在所述接收步骤之后,接收来自所述第二虚拟机的对于该第二虚拟机的该第一存储器页的请求;
将该第二虚拟机的该第一存储器页发送到该第二虚拟机;以及
从该第二虚拟机接收位于该第二虚拟机的该第二最近最少使用图的相应位置处的该第一虚拟机的存储器页。
10.一种与处理器一起使用的用于虚拟机的对称实时迁移的信息处理系统,存储器通信地耦接到该处理器,该信息处理系统包括:
迁移管理器,通信地耦接到该处理器和该存储器,其中该迁移管理器:
产生对于第一虚拟机的存储器页集的第一最近最少使用图,该第一最近最少使用图包括该第一虚拟机的该存储器页集中每个存储器页的元数据,并且该元数据包括该第一虚拟机的该存储器页集中每个存储器页的物理地址位置;
在该第一虚拟机正执行时,从该第一虚拟机向第二虚拟机发送该第一虚拟机的第一存储器页以及该第一虚拟机的该第一存储器页的元数据;以及
在该第一虚拟机处从该第二虚拟机接收该第二虚拟机的第一存储器页以及该第二虚拟机的该第一存储器页的元数据,
其中基于该第一虚拟机的所述存储器页集中每个存储器页近来如何被使用,从该第一最近最少使用图的第一位置到该第一最近最少使用图的最后位置排序该第一虚拟机的该存储器页集,最近最少被使用的存储器页由该第一最近最少使用图的该第一位置指示,最近最多被使用的存储器页由该第一最近最少使用图的该最后位置指示,以及
该第一虚拟机的该第一存储器页位于该第一最近最少使用图的该第一位置,并且该第二虚拟机的该第一存储器页位于该第二虚拟机的存储器页的第二最近最少使用图的相应第一位置处,其中,该第二最近最少使用图包括所述第二虚拟机的所述存储器页集中的每个存储器页的元数据,并且该元数据包括所述第二虚拟机的所述存储器页集中每个存储器页的物理地址位置,其中基于该第二虚拟机的所述存储器页集中每个存储器页近来如何被使用,从所述第二最近最少使用图的第一位置到该第二最近最少使用图的最后位置排序该第二虚拟机的该存储器页集,最近最少被使用的存储器页由所述第二最近最少使用图的该第一位置指示,最近最多被使用的存储器页由该第二最近最少使用图的该最后位置指示。
11.如权利要求10的信息处理系统,其中该迁移管理器基于该第一和第二虚拟机的最近最少使用图中的存储器页的顺序,对于该第一和第二虚拟机的其他存储器页重复所述发送和接收。
12.如权利要求11的信息处理系统,其中该迁移管理器在该第一虚拟机的所有存储器页已被发送到该第二虚拟机并且该第二虚拟机的所有存储器页已在该第一虚拟机处被接收之后,基于随该第二虚拟机的存储器页一起被接收的元数据中的物理地址位置来分类从该第二虚拟机接收的存储器页。
13.如权利要求12的信息处理系统,其中该迁移管理器在所述分类步骤之后,激活利用从该第二虚拟机接收的每个存储器页的虚拟机。
14.如权利要求10的信息处理系统,其中在所述发送之前,如果该第一虚拟机的该存储器页集小于该第二虚拟机的存储器页集,则该迁移管理器逻辑地增加该第一虚拟机的该存储器页集的大小以便与该第二虚拟机的该存储器页集相匹配。
15.如权利要求10的信息处理系统,其中该迁移管理器通过将该第一虚拟机的该第一存储器页的元数据嵌入该第一虚拟机的该第一存储器页内来发送该第一存储器页。
16.如权利要求10的信息处理系统,其中该迁移管理器
产生与该第一虚拟机的该第一存储器页分离的分组,该分组包括该第一虚拟机的该第一存储器页的元数据;以及
将该分组从该第一虚拟机发送到该第二虚拟机。
17.如权利要求10的信息处理系统,其中该迁移管理器:
在所述发送步骤之后,从所述第二虚拟机请求所述第一虚拟机的该第一存储器页;
从该第二虚拟机接收该第一虚拟机的该第一存储器页;以及
将从该第二虚拟机接收的该第一虚拟机的该第一存储器页放置于该第一最近最少使用图的最后位置。
18.如权利要求10的信息处理系统,其中该迁移管理器:
在所述接收步骤之后,接收来自该第二虚拟机的对于该第二虚拟机的该第一存储器页的请求;
将该第二虚拟机的该第一存储器页发送到该第二虚拟机;以及
从该第二虚拟机接收位于该第二虚拟机的该第二最近最少使用图的相应位置处的该第一虚拟机的存储器页。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/619,137 US8370560B2 (en) | 2009-11-16 | 2009-11-16 | Symmetric live migration of virtual machines |
US12/619,137 | 2009-11-16 | ||
PCT/EP2010/065433 WO2011057874A2 (en) | 2009-11-16 | 2010-10-14 | Symmetric live migration of virtual machines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102597958A CN102597958A (zh) | 2012-07-18 |
CN102597958B true CN102597958B (zh) | 2014-12-24 |
Family
ID=43992137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080050225.8A Active CN102597958B (zh) | 2009-11-16 | 2010-10-14 | 虚拟机的对称实时迁移 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8370560B2 (zh) |
JP (1) | JP5619173B2 (zh) |
CN (1) | CN102597958B (zh) |
DE (1) | DE112010003554B4 (zh) |
GB (1) | GB2485730B (zh) |
WO (1) | WO2011057874A2 (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5159898B2 (ja) * | 2009-01-06 | 2013-03-13 | 三菱電機株式会社 | 管理装置及び管理方法及びプログラム |
US8832683B2 (en) * | 2009-11-30 | 2014-09-09 | Red Hat Israel, Ltd. | Using memory-related metrics of host machine for triggering load balancing that migrate virtual machine |
US8589921B2 (en) * | 2009-11-30 | 2013-11-19 | Red Hat Israel, Ltd. | Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm |
US20120005675A1 (en) * | 2010-01-22 | 2012-01-05 | Brutesoft, Inc. | Applying peer-to-peer networking protocols to virtual machine (vm) image management |
WO2011135637A1 (en) * | 2010-04-30 | 2011-11-03 | Hitachi,Ltd. | Computer system and control method thereof |
US8826292B2 (en) * | 2010-08-06 | 2014-09-02 | Red Hat Israel, Ltd. | Migrating virtual machines based on level of resource sharing and expected load per resource on candidate target host machines |
US8677004B2 (en) * | 2010-09-10 | 2014-03-18 | International Business Machines Corporation | Migration of logical partitions between two devices |
US9384029B1 (en) * | 2010-09-30 | 2016-07-05 | Amazon Technologies, Inc. | Managing virtual computing nodes |
US9104458B1 (en) | 2010-09-30 | 2015-08-11 | Amazon Technologies, Inc. | Managing virtual computing nodes using isolation and migration techniques |
US9183028B1 (en) | 2010-09-30 | 2015-11-10 | Amazon Technologies, Inc. | Managing virtual computing nodes |
US8555278B2 (en) * | 2011-05-02 | 2013-10-08 | Symantec Corporation | Method and system for migrating a selected set of virtual machines between volumes |
US8533714B2 (en) | 2011-05-03 | 2013-09-10 | International Business Machines Corporation | Dynamic virtual machine domain configuration and virtual machine relocation management |
AU2011380288B2 (en) | 2011-10-31 | 2015-09-17 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Apparatus and method for transferring event detector processes |
US20130166504A1 (en) * | 2011-12-27 | 2013-06-27 | RiverMeadow Software, Inc. | Systems and methods for virtual machine migration |
US9432304B2 (en) * | 2012-03-26 | 2016-08-30 | Oracle International Corporation | System and method for supporting live migration of virtual machines based on an extended host channel adaptor (HCA) model |
US9311122B2 (en) | 2012-03-26 | 2016-04-12 | Oracle International Corporation | System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment |
US8930747B2 (en) | 2012-03-30 | 2015-01-06 | Sungard Availability Services, Lp | Private cloud replication and recovery |
CN103812823B (zh) * | 2012-11-07 | 2017-10-10 | 华为技术有限公司 | 虚拟机热迁移时配置信息迁移的方法、设备及系统 |
CN103049308B (zh) | 2012-11-30 | 2016-01-20 | 华为技术有限公司 | 实现虚拟机热迁移的方法、装置及系统 |
DE102013021997A1 (de) * | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Verschieben von Seiten unterschiedlicher Grösse zwischen heterogenen Prozessoren |
CN104050008B (zh) * | 2013-03-15 | 2018-01-23 | 中兴通讯股份有限公司 | 一种内存超分配管理系统及方法 |
US9990221B2 (en) | 2013-03-15 | 2018-06-05 | Oracle International Corporation | System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment |
JP2014191752A (ja) * | 2013-03-28 | 2014-10-06 | Fujitsu Ltd | マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム |
US9854036B2 (en) * | 2013-09-30 | 2017-12-26 | Huawei Technologies Co., Ltd. | Method for migrating memory data of virtual machine, and related apparatus and cluster system |
US9348654B2 (en) | 2013-11-19 | 2016-05-24 | International Business Machines Corporation | Management of virtual machine migration in an operating environment |
WO2015092847A1 (ja) * | 2013-12-16 | 2015-06-25 | 株式会社日立製作所 | コンピュータシステムおよびその処理方法 |
US9823842B2 (en) | 2014-05-12 | 2017-11-21 | The Research Foundation For The State University Of New York | Gang migration of virtual machines using cluster-wide deduplication |
US9361145B1 (en) | 2014-06-27 | 2016-06-07 | Amazon Technologies, Inc. | Virtual machine state replication using DMA write records |
JP6365085B2 (ja) * | 2014-08-04 | 2018-08-01 | 富士通株式会社 | データ移行方法及びデータ移行装置 |
US9542100B2 (en) * | 2014-09-02 | 2017-01-10 | International Business Machines Corporation | Management of memory pages |
US9723009B2 (en) | 2014-09-09 | 2017-08-01 | Oracle International Corporation | System and method for providing for secure network communication in a multi-tenant environment |
WO2016070302A1 (zh) | 2014-11-03 | 2016-05-12 | 华为技术有限公司 | 虚拟网络功能实例的迁移方法、装置和系统 |
WO2016074166A1 (en) * | 2014-11-12 | 2016-05-19 | Intel Corporation | Live migration of virtual machines from/to host computers with graphics virtualization |
DE102015015196A1 (de) * | 2014-12-16 | 2016-06-16 | Canon Kabushiki Kaisha | Verwaltungssystem und Steuerungsverfahren für Verwaltungssystem |
US9146769B1 (en) | 2015-04-02 | 2015-09-29 | Shiva Shankar | Systems and methods for copying a source machine to a target virtual machine |
US9727366B2 (en) | 2015-04-23 | 2017-08-08 | International Business Machines Corporation | Machine learning for virtual machine migration plan generation |
US9836327B1 (en) * | 2015-06-12 | 2017-12-05 | Amazon Technologies, Inc. | Network-based storage access control for migrating live storage clients |
US9946564B2 (en) | 2015-06-23 | 2018-04-17 | International Business Machines Corporation | Adjusting virtual machine migration plans based on alert conditions related to future migrations |
US10129331B2 (en) * | 2015-06-25 | 2018-11-13 | Vmware, Inc. | Load balancing using a client swapping operation |
US9996377B2 (en) | 2015-06-30 | 2018-06-12 | International Business Machines Corporation | Virtual machine migration via a mobile device |
JP2017049772A (ja) * | 2015-09-01 | 2017-03-09 | 富士通株式会社 | 移動制御プログラム、移動制御装置及び移動制御方法 |
US9552233B1 (en) | 2015-09-10 | 2017-01-24 | Red Hat Israel, Ltd. | Virtual machine migration using free page hinting |
US9880870B1 (en) | 2015-09-24 | 2018-01-30 | Amazon Technologies, Inc. | Live migration of virtual machines using packet duplication |
US10768959B2 (en) * | 2015-11-24 | 2020-09-08 | Red Hat Israel, Ltd. | Virtual machine migration using memory page hints |
US9934157B2 (en) * | 2015-11-25 | 2018-04-03 | Red Hat Israel, Ltd. | Post-copy VM migration speedup using free page hinting |
US9529620B1 (en) * | 2015-12-17 | 2016-12-27 | International Business Machines Corporation | Transparent virtual machine offloading in a heterogeneous processor |
US10169065B1 (en) | 2016-06-29 | 2019-01-01 | Altera Corporation | Live migration of hardware accelerated applications |
US10489273B2 (en) | 2016-10-20 | 2019-11-26 | Microsoft Technology Licensing, Llc | Reuse of a related thread's cache while recording a trace file of code execution |
US10318332B2 (en) | 2017-04-01 | 2019-06-11 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
WO2019013775A1 (en) * | 2017-07-12 | 2019-01-17 | Hewlett-Packard Development Company, L.P. | MIGRATION OF MEMORY DEVICES |
CN109240803A (zh) * | 2018-09-25 | 2019-01-18 | 郑州云海信息技术有限公司 | 一种虚拟机迁移方法、装置、服务器及存储介质 |
US11307985B2 (en) | 2018-09-28 | 2022-04-19 | Intel Corporation | Method and apparatus to use dram as a cache for slow byte-addressible memory for efficient cloud applications |
CN109828829B (zh) * | 2019-01-22 | 2022-10-18 | 重庆邮电大学 | 一种基于灾难预警时间的虚拟机快速撤离方法 |
US11436043B2 (en) | 2019-11-13 | 2022-09-06 | International Business Machines Corporation | Operating system code patching during live migration |
US11520612B2 (en) | 2019-11-13 | 2022-12-06 | International Business Machines Corporation | Virtual machine migration detection by a hosted operating system |
US11656982B2 (en) * | 2021-01-15 | 2023-05-23 | Nutanix, Inc. | Just-in-time virtual per-VM swap space |
US11799971B2 (en) | 2022-02-17 | 2023-10-24 | Bank Of America Corporation | Systems and methods for session migration between devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696902A (zh) * | 2004-05-11 | 2005-11-16 | 国际商业机器公司 | 迁移虚拟机的系统、方法和程序 |
EP2065805A1 (en) * | 2007-11-21 | 2009-06-03 | SafeNet, Inc. | Secured live software migration |
US20090204718A1 (en) * | 2008-02-08 | 2009-08-13 | Lawton Kevin P | Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05128006A (ja) * | 1991-02-12 | 1993-05-25 | Fuji Xerox Co Ltd | 仮想計算機システム |
US7146524B2 (en) * | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US7313793B2 (en) * | 2002-07-11 | 2007-12-25 | Microsoft Corporation | Method for forking or migrating a virtual machine |
US7484208B1 (en) * | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
US20080189700A1 (en) * | 2007-02-02 | 2008-08-07 | Vmware, Inc. | Admission Control for Virtual Machine Cluster |
JP5246388B2 (ja) * | 2007-03-08 | 2013-07-24 | 日本電気株式会社 | 仮想装置構成システム、及びその方法 |
US8019962B2 (en) * | 2007-04-16 | 2011-09-13 | International Business Machines Corporation | System and method for tracking the memory state of a migrating logical partition |
US7904692B2 (en) * | 2007-11-01 | 2011-03-08 | Shrijeet Mukherjee | Iommu with translation request management and methods for managing translation requests |
US20090007099A1 (en) * | 2007-06-27 | 2009-01-01 | Cummings Gregory D | Migrating a virtual machine coupled to a physical device |
US8239646B2 (en) * | 2007-07-31 | 2012-08-07 | Vmware, Inc. | Online virtual machine disk migration |
US7962703B1 (en) * | 2007-08-08 | 2011-06-14 | Symantec Corporation | Techniques for improving dirty page logging |
WO2009069573A1 (ja) * | 2007-11-26 | 2009-06-04 | Nec Corporation | 仮想計算機移行システム、仮想計算機移行方法および仮想計算機移行プログラム |
US8200771B2 (en) * | 2008-10-10 | 2012-06-12 | International Business Machines Corporation | Workload migration using on demand remote paging |
-
2009
- 2009-11-16 US US12/619,137 patent/US8370560B2/en not_active Expired - Fee Related
-
2010
- 2010-10-14 JP JP2012538261A patent/JP5619173B2/ja active Active
- 2010-10-14 DE DE112010003554.7T patent/DE112010003554B4/de active Active
- 2010-10-14 WO PCT/EP2010/065433 patent/WO2011057874A2/en active Application Filing
- 2010-10-14 GB GB1203919.4A patent/GB2485730B/en active Active
- 2010-10-14 CN CN201080050225.8A patent/CN102597958B/zh active Active
-
2012
- 2012-11-01 US US13/666,495 patent/US8635396B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696902A (zh) * | 2004-05-11 | 2005-11-16 | 国际商业机器公司 | 迁移虚拟机的系统、方法和程序 |
EP2065805A1 (en) * | 2007-11-21 | 2009-06-03 | SafeNet, Inc. | Secured live software migration |
US20090204718A1 (en) * | 2008-02-08 | 2009-08-13 | Lawton Kevin P | Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication |
Also Published As
Publication number | Publication date |
---|---|
US20130060988A1 (en) | 2013-03-07 |
WO2011057874A3 (en) | 2011-07-21 |
DE112010003554B4 (de) | 2016-12-15 |
CN102597958A (zh) | 2012-07-18 |
GB2485730B (en) | 2012-08-08 |
DE112010003554T5 (de) | 2012-08-23 |
US8370560B2 (en) | 2013-02-05 |
JP5619173B2 (ja) | 2014-11-05 |
US20110119427A1 (en) | 2011-05-19 |
WO2011057874A2 (en) | 2011-05-19 |
US8635396B2 (en) | 2014-01-21 |
GB201203919D0 (en) | 2012-04-18 |
JP2013511079A (ja) | 2013-03-28 |
GB2485730A (en) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102597958B (zh) | 虚拟机的对称实时迁移 | |
EP3762826B1 (en) | Live migration of virtual machines in distributed computing systems | |
EP2053509B1 (en) | System for and method of migrating one or more virtual machines | |
US7383405B2 (en) | Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity | |
CN104965757B (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 | |
US7313793B2 (en) | Method for forking or migrating a virtual machine | |
CN102314378B (zh) | 使用共享存储来迁移虚拟机的技术 | |
CN103631633B (zh) | 虚拟机全系统在线迁移方法、装置与系统 | |
CN106528327B (zh) | 一种数据处理方法以及备份服务器 | |
CN102165431B (zh) | 使用仿真对物理硬件的运行时替换的方法和系统 | |
CN100489787C (zh) | 一种虚拟机的外存在线迁移方法 | |
Williams | Virtualization with Xen (tm): Including XenEnterprise, XenServer, and XenExpress | |
CN110088733A (zh) | 虚拟机迁移的基于存储层的编排 | |
CN101243396B (zh) | 用于在虚拟化环境中支持通用串行总线装置的方法和设备 | |
CN108351752A (zh) | 存储虚拟化卸载 | |
CN103793258A (zh) | 基于管理程序的服务器复制系统及其方法 | |
US9792075B1 (en) | Systems and methods for synthesizing virtual hard drives | |
CN103885719B (zh) | 虚拟机系统在线存储迁移的方法、系统与装置 | |
CN103493021A (zh) | 虚拟机高可用性 | |
US8732427B2 (en) | Systems and methods for collapsing a derivative version of a primary storage volume | |
US20180088975A1 (en) | Virtual Machine Live Migration Using Intelligent Order Of Pages To Transfer | |
CN103885811B (zh) | 虚拟机系统全系统在线迁移的方法、系统与装置 | |
CN105556473A (zh) | 一种i/o任务处理的方法、设备和系统 | |
CN106598696A (zh) | 一种虚拟机之间数据交互的方法及装置 | |
CN106775956B (zh) | Xen虚拟机Fork机制建立方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |