CN102314378A - 使用共享存储来迁移虚拟机的技术 - Google Patents
使用共享存储来迁移虚拟机的技术 Download PDFInfo
- Publication number
- CN102314378A CN102314378A CN2011101898225A CN201110189822A CN102314378A CN 102314378 A CN102314378 A CN 102314378A CN 2011101898225 A CN2011101898225 A CN 2011101898225A CN 201110189822 A CN201110189822 A CN 201110189822A CN 102314378 A CN102314378 A CN 102314378A
- Authority
- CN
- China
- Prior art keywords
- page
- leaf
- file
- virtual machine
- copied
- 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/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
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
-
- 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/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及使用共享存储来迁移虚拟机的技术。用于提供将虚拟机从一个物理主机实况迁移至另一物理主机的能力的技术采用共享存储作为虚拟机状态的转移介质。此外,采用了使虚拟化模块使用二级分页功能的能力,将虚拟机存储器内容从一个物理主机出页至共享存储。通过采用按需分页以及任选的从共享存储到另一物理主机的低优先级背景分页,可以在另一物理主机上还原存储器文件的内容。
Description
技术领域
本发明涉及虚拟机,尤其涉及虚拟机的实况迁移。
背景技术
当在主机上支持客操作系统时,客操作系统可以在所谓“虚拟机”中运行,因为客操作系统不具有对计算机系统的物理硬件的控制。虚拟机管理系统(有时称为虚拟机监视程序或管理程序)经常被用于管理一个或多个虚拟机以使得多个虚拟机能够同时在单个计算设备上运行。虚拟机管理系统直接在本机硬件上运行,并且虚拟化机器的资源。主操作系统和虚拟机管理系统可在同一物理硬件上并排地运行。出于简明的目的,我们使用术语“虚拟化模块”来指代虚拟机管理系统的所有体现。
虚拟机对底层硬件的抽象提供了灵活的资源分配并且促进了将虚拟机从一个主机移动(即“迁移”)到另一主机的能力。能够将虚拟机快捷、简便地从一个主机迁移到另一主机对于例如“负载平衡”系统、执行硬件或软件升级、或者处理灾难恢复而言是有用的。更具体地,如果虚拟机要求比一个主机上可用的处理能力更多的处理能力,则它可以被移动到具有额外能力的另一主机上。另外,如果主计算机系统需要硬件维护或软件升级,则虚拟机可以临时从一个物理计算机系统迁移到另一物理计算机系统,由此允许第一个物理计算机系统被拆卸并升级。类似的,在停电时后备电池中有限电量可用的情况下,数据中心的所有虚拟机可以被迁移至另一数据中心,然后在电力恢复时被迁移回来。此外,虚拟机有助于简便地将企业工作卸载到主控的数据中心上,从而减少对于维护和升级资源的需求。
虚拟机的实况迁移是这样一个过程:将正在运行的虚拟机从在发起迁移时主控该虚拟机的物理计算机系统(源计算机系统)移动至另一物理计算机系统(目标计算机系统),而不引起不合理的停机时间量,其中不合理取决于虚拟机内运行的工作负载。实况迁移提供了动态负载平衡、虚拟机放置、物理计算机维护期间虚拟化的工作负载的高可用性以及减少的数据中心功耗等所需的核心技术。
实现实况迁移的一种常见方式是在两个物理计算机系统(源计算机系统和目标计算机系统)之间创建网络连接,并且使用该网络连接将虚拟机的状态从源计算机系统复制到目标计算机系统。然而,对单独网络连接的需求产生了开销成本,比如与防火墙管理相关联的管理成本。此外,当出于容量或安全原因需要单独网络连接来将迁移通信与其他网络通信隔离时,存在与设立该单独网络拓扑结构相关联的基础结构成本。
发明内容
公开了使用在源计算机系统和目标计算机系统间共享的存储来迁移虚拟机状态的技术。在一实施例中,可以通过将虚拟机的存储器的内容“出页”至共享存储介质并且将存储器的内容从共享存储器介质还原到目标计算机系统,在源计算机系统的迭代过程中利用虚拟化模块的分页功能。在一示例实施例中,可以使用页文件将虚拟机的状态从源计算机系统转移至目标计算机系统。在另一实施例中,可以使用已保存状态文件(而不是页文件)将虚拟机的状态从源计算机系统转移至目标计算机系统。
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图说明
参考附图来进一步描述用于虚拟机的实况迁移的系统、方法和计算机可读介质,附图中:
图1示出了其中可实现此处描述的技术的示例性通用计算环境。
图2示出了虚拟化的计算系统;
图3示出了虚拟化的计算系统;
图4示出存储器如何排列在虚拟化的环境中;
图5示出用于将虚拟机从一个计算机系统迁移至另一计算机系统的操作环境;
图6示出操作过程;
图7描述了示出使用页文件来迁移虚拟机的通用流程图;
图8示出图6的替代实施例,其中客物理存储器页被复制到目标虚拟机中;
图9示出图6的替代实施例,示出用于复制迭代复制的状态信息的操作;
图10示出图9的替代实施例;
图11描述了示出使用共享存储中的已保存状态文件来迁移虚拟机的通用流程图;
图12示出图11的替代实施例;
图13示出图11的替代实施例;以及
图14示出图11的替代实施例。
具体实施方式
图1是在其中可采用在此描述的技术的通用计算机系统的框图。计算系统120只是合适的计算环境的一个示例,并且不旨在对所公开的主题的使用范围或功能提出任何限制。也不应将计算机系统120解释为对示例性操作环境中示出的任一组件或其组合具有任何依赖性或需求。在一些实施例中,各种所描绘的计算元件可包括被配置成实例化本发明的特定方面的电路。例如,这里使用的术语电路可包括被配置成通过固件或开关来执行功能的专用硬件组件。在其他示例实施例中,术语“电路”可包括通过体现可操作以执行功能的逻辑的软件指令配置的通用处理单元、存储器等等。在其中电路包括硬件和软件的组合的示例实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择并留给实现者。
现在参考图1,描绘了示例性计算机系统120。计算机系统可包括常规计算机20等等,其中包括至少一个处理器或处理单元21、系统存储器22,以及将包括系统存储器在内的各种系统组件通信耦合到处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线,以及局部总线。系统存储器可包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)被存储在ROM 24中,它包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。计算机20还可以包括用于读写硬盘(未示出)的硬盘驱动器27、用于读写可移动磁盘(例如,可移动存储)29的磁盘驱动器(例如,软驱)28,以及用于读写诸如CD ROM或其他光学介质之类的可移动光盘31的光盘驱动器30。硬盘驱动器27、磁盘驱动器28,以及光驱动器30被示为分别通过硬盘驱动器接口32、磁盘驱动器接口33,以及光驱动器接口34连接到系统总线23。驱动器以及它们相关联的计算机可读介质为计算机20提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。虽然此处所描述的示例性环境采用了硬盘、可移动磁盘29和可移动光盘31,但本领域的技术人员可以理解,在示例性操作环境中也可以使用可储存可由计算机访问的数据的其它类型的计算机可读介质,如磁带盒、闪存卡、数字视频盘、贝努利盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等等。一般而言,可以在一些实施例中使用这样的计算机可读存储介质来存储体现本发明的各方面的处理器可执行指令。
可以有包括计算机可读指令的若干个程序模块存储在诸如硬盘、磁盘29、光盘31、ROM 24,和/或RAM 25之类的计算机可读介质上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。在由处理单元执行时,计算机可读取的指令使下面更详细地描述的动作被执行或使各种程序模块被实例化。用户可通过诸如键盘40和定点设备(例如,鼠标)42等输入设备将命令和信息输入到计算机20中。其它输入设备(未示出)可以包括话筒、操纵杆、游戏键盘、圆盘式卫星天线、扫描仪等。这些及其他输入设备常常通过耦合到系统总线23的串行端口接口46连接到处理单元21,但是,但也可以通过其他接口,如并行端口、游戏端口或通用串行总线(USB)端口、来进行连接。监视器47或其他类型的显示设备也经由诸如视频适配器48等接口连接至系统总线23。除监视器47之外,计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。图1的示例性系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56,以及连接到SCSI总线56的外部存储装置62。
计算机20可使用至一个或多个远程计算机,例如远程计算机49的逻辑连接在联网环境中操作。远程计算机49可以是另一计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常可包括上文参考计算机20所描述的许多或全部元件,虽然在图1中只示出了存储器存储设备(软驱)50。图1中所描绘的逻辑连接可包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业范围的计算机网络、内部网和因特网中是普遍现象。
当用于LAN联网环境中时,计算机20可通过网络接口或适配器53连接到LAN 51。当在WAN联网环境中使用时,计算机20通常包括调制解调器54或用于通过例如因特网等WAN 52建立通信的其他手段。调制解调器54,其可以是内置的或外置的,可通过串行端口接口46连接到系统总线23。在联网环境中,相对于计算机20所描述的程序模块或其部分可被存储在远程存储器存储设备中。可以理解的是,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。此外,尽管可以预想本发明的很多实施例特别适合于计算机化系统,但是,本文中没有任何表述旨在将本公开限制于这样的实施例。
转至图2,系统管理程序微内核202可以被配置成控制和仲裁对计算机系统200的硬件的访问,计算机系统200可具有图1的计算机20的一些组件或全部组件。广泛而言,系统管理程序微内核202可以生成称为分区的执行环境,如子分区1到子分区N(其中N是大于1的整数)。在各实施例中,子分区是系统管理程序微内核202支持的基本隔离单元。系统管理程序微内核202可将一个分区中的进程与访问另一分区的资源隔离,例如,一个分区中的客操作系统可与另一分区的存储器隔离并因此不能够检测其分区外部的存储器地址。每一子分区可被映射到在系统管理程序微内核202控制之下的一组硬件资源,例如,存储器、设备、逻辑处理器周期等。在各实施例中,系统管理程序微内核202可以是独立的软件产品、操作系统的一部分、嵌入在主板的固件中、专用集成电路、或其组合。
在所描绘的示例中,该示例性虚拟化体系结构可以包括父分区组件204,父分区组件204也可被认为是类似于Xen的开源系统管理程序的域0。该操作环境中的父分区204可被配置成通过使用虚拟化服务提供者228(VSP)来向在子分区1-N中执行的客操作系统提供资源,虚拟化服务提供者在开源社区中通常被称为后端驱动程序。广泛而言,VSP 228可用于通过虚拟化服务客户端(VSC)(开源社区中通常称为前端驱动程序)对到硬件资源的接口进行复用,并经由通信协议与虚拟化服务客户端进行通信。如图所示,虚拟化服务客户端可以在客操作系统的上下文中执行。这些驱动程序不同于客机中的其余驱动程序,因为向它们提供了系统管理程序而非客机。
如图所示,仿真器234(例如虚拟化IDE设备、虚拟化视频适配器、虚拟化NIC等)可被配置成在父分区204中运行并被附连到可供客操作系统220和222使用的资源。例如,当客操作系统触摸虚拟设备的寄存器或映射到虚拟设备的存储器时,微内核系统管理程序202可截取请求并传递客机试图写入相关联的仿真器的值。
每一子分区可包括一个或多个虚拟处理器(230和232),客操作系统(220和222)可管理并调度线程以便在这些虚拟处理器上执行。一般而言,虚拟处理器是提供具有特定架构的物理处理器的表示的可执行指令以及相关联的状态信息。例如,一个虚拟机可具有带有英特尔x86处理器特性的虚拟处理器,而另一虚拟处理器可具有PowerPC处理器的特性。本例中的虚拟处理器可被映射到计算机系统的逻辑处理器,使得实现虚拟处理器的指令将受到逻辑处理器的支持。由此,在包括多个逻辑处理器的实施例中,虚拟处理器可以由逻辑处理器同时执行,同时例如其他逻辑处理器执行系统管理程序指令。分区中虚拟处理器和存储器的组合可被认为是虚拟机。
客操作系统(220和222)可包括任何操作系统,如来自微软苹果开源社区等的操作系统。客操作系统可包括用户/内核操作模式,并且可具有能包括调度器、存储器管理器等的内核。一般而言,内核模式可包括逻辑处理器中的执行模式,该执行模式授予至少对特权处理器指令的访问。每一客操作系统可具有相关联的文件系统,该文件系统上存储有诸如终端服务器、电子商务服务器、电子邮件服务器等应用以及客操作系统本身。客操作系统可调度线程来在虚拟处理器上执行,并且可实现此类应用的实例。
现在参考图3,示出了对上述图2的替换体系结构。图3描绘了与图2的组件相类似的组件;然而,在该示例实施例中,系统管理程序302可包括微内核组件以及和图2的父分区204中的组件(如虚拟化服务提供者228和设备驱动程序224)相类似的组件,而管理操作系统304可包含例如用于配置系统管理程序302的配置实用程序。在该体系结构中,系统管理程序304可以执行与图2的系统管理程序微内核202相同或相似的功能;然而,在该体系结构中,系统管理程序304可被配置成向在子分区中执行的客操作系统提供资源。图3的系统管理程序302可以是独立的软件产品、操作系统的一部分、嵌入在主板的固件内,或者系统管理程序302的一部分可以由专用集成电路来实现。
转至图4,它示出存储器如何被管理。虚拟化模块400在图5中示出,该模块能通过限制客操作系统的系统存储器视图来实施分区。在示例性实施例中,虚拟化模块400可以是结合父分区204中运行的主操作系统操作的系统管理程序302或微内核系统管理程序202。客物理存储器(GPM)是分区的由虚拟化模块400(例如,微内核系统管理程序202)所控制的存储器视图。系统物理存储器(SPM)是来自虚拟化模块400视图的存储器。图中所示的每个框表示一个页,页是具有开始地址和结束地址的固定长度的存储器块。例如,根据所示附图,四页客物理存储器被分配给虚拟机,六页系统物理存储器是可用的。系统物理存储器可以作为物理存储器被分配给虚拟机。因此,被分配给虚拟机的存储器页会有客物理地址(虚拟机所使用的地址)和系统物理地址(页的实际地址)。术语客物理存储器是从虚拟机的视点描述存储器页的简写方式,术语系统物理存储器是从物理系统的观点描述存储器页的简写方式。
如图所示,客物理存储器可以由客操作系统进一步虚拟化为客虚拟存储器。客操作系统可以将客物理存储器中存储的信息移到页文件402内,页文件402可以被存储在诸如虚拟硬盘驱动器这样的次级存储中,以便释放客物理存储器。类似的,在采用二级分页的示例性实施例中,虚拟化模块400可具有对系统虚拟页和系统页文件404的访问(系统页文件404可对于每个虚拟机存在)。虚拟化模块400可以使用系统页文件404来交换到诸如磁盘等次级存储的信息。
二级分页描述了这样的技术,用于把客物理页的内容保存到虚拟平台所管理的页文件,并且重新使用出于其他目的支持该客物理页的系统物理页(在许多情况下为了支持该虚拟机或另一虚拟机的另一客物理页,但不必要)。如果客机访问内容的客物理页正在被写到磁盘,虚拟化模块400可以寻找系统物理页;将内容从磁盘读回该页;并且用该系统物理页支持客物理页。在一具体例子中,并且参照图4,客虚拟存储器页3可以被客物理存储器页3支持。客物理页3可能已经被系统物理页5支持;然而,虚拟化模块400可能把系统物理页5的内容分页到系统页文件404。
图5是示出用于实践本发明各方面的操作环境的框图。图5示出图2或3所示的系统的两个实例(506和508),每个都包括虚拟机“VM”(108和108’)并连接到共享存储510。所示共享存储510在计算机系统外部,然而在各实施例中,共享存储510可以被附连到源计算机系统506或目标计算机系统508。在这点上,共享存储510可以是可由虚拟化模块400和400’访问的任何存储设备。共享存储510可以包括但不限于:诸如服务器消息块(SMB)文件共享或网络文件系统(NFS)这样的网络附连存储(NAS)设备,以及提供逻辑单元号(LUN)的存储区域网络(SAN)目标。在一实施例中,连接504可以是以太网连接。在另一实施例中,连接504可以是小型计算机系统接口(SCSI)。在还有一实施例中,连接504可以是光纤通道。连接504’可以使用和连接304所用的协议相同或不同的协议。
此外,图5的系统包括目标计算机系统508,该系统包括客物理存储器、虚拟化模块400’和VM 108’。VM 108’可以在迁移操作开始时被实例化,虚拟化模块400’可以被配置成使用状态502来配置VM 108’。
一般而言,有虚拟机的两种状态,这两种状态可以构成虚拟机的总体已保存状态502。首先,可以有虚拟机存储器内容,即,被分配给虚拟机的客物理存储器的内容。其次,可以有虚拟设备运行时状态。虚拟设备运行时状态包含构成虚拟机状态的虚拟设备,诸如但不限于:任何虚拟处理器的状态、重要的输入/输出(I/O)、中央处理单元(CPU)、视频缓冲器等等。例如,虚拟设备的状态可以包括由虚拟视频设备管理的视频存储器的内容,或者由虚拟盘设备管理的高速缓存。在目标计算机系统上还原虚拟设备之前可能需要虚拟设备的运行时状态,因为虚拟机也许不能没有该状态而执行。在一实施例中,虚拟机存储器内容可以包括客操作系统页文件402,或在另一实施例中,客操作系统页文件402可以被存储在虚拟机存储516中。
如图所示,状态502可以以已保存状态文件512和/或页文件404被存储在共享存储510中。共享存储510可以存储例如主操作系统或系统管理程序302的页文件404、已保存状态文件512、以及虚拟机存储516(例如虚拟硬盘驱动器文件)。这三个元素以虚线示出,表明这些元素的不同组合可存在于共享存储510中。例如,在一实施例中,可以使用页文件404,而不是已保存状态文件512,反之亦然。在另一实施例中,可使用两者。在另一实施例中,虚拟机存储516(例如虚拟硬盘文件或LUN)可能不与页文件404或已保存状态文件512出现在同一物理存储介质上。例如,在一实施例中,虚拟机可以使用没有为存储而细分的LUN,页文件404可以被存储在一不同的LUN上。在另一实施例中,虚拟机存储516可以是LUN上与页文件404一起存储的虚拟硬盘驱动器文件。
可以使用各种技术将虚拟机103的状态502转移到目标计算机系统508。一个示例性技术包括,为存储器内容使用页文件404,为设备和处理器状态使用已保存状态文件512。另一技术包括使用已保存状态512或页文件404来既存储存储器内容,又存储设备和处理器状态。第三种方法是使用虚拟机108’的客物理存储器来存储设备和处理器状态(即,该状态信息可以从源计算机系统506直接转移到目标计算机系统508),并且使用页文件404或已保存状态文件512来转移存储器内容。
继续图5的描述,在一示例性实施例中,在虚拟机108运行时,虚拟机108的状态502可以以迭代的方式被保存到页文件404和/或已保存状态文件512。因为虚拟机108仍在修改状态502,因此使用状态502的各保存部分的重复,虚拟化模块400可以使用一种机制来标识状态502的已改变的部分。这一过程继续,直到达到阈值为止。在这一点,虚拟机108被暂停,剩余的已修改状态被写至页文件404和/或已保存状态文件512。阈值可由几种手段来标识。例如,它可以基于剩余已修改状态的大小、它可以基于时间段、或者它可以基于旨在使VM 108需要被暂停的时间量最小的更精细的试探法。因此,在该示例性实施例中,虚拟化模块400可以被配置成使用任一技术来标识状态502的已改变部分,并将它们写至页文件404和/或已保存状态文件512。例如,虚拟化模块400可以作用于页批次或单独页。在该示例性实施例中,虚拟化模块400可以被配置成发送一批页,如果在保存该批次时触摸到页,虚拟化模块400可以被配置成将所触摸的页立即写至页文件404和/或已保存状态文件512。停止转移并暂停虚拟机的阈值可以包括最大保存操作次数(例如,以强制迁移最终进行),但一般将最大保存操作次数与附加的试探法组合。
在另一具体例子中,虚拟化模块400可以使用基于遍次的方法。在该示例性实施例中,可以将单个迭代定义为检验每个客物理页并将已修改的页写至页文件404和/或已保存状态文件512的过程(通常以页的客物理地址的顺序来检验这些页),可以执行这些遍次的多个遍次(即,迭代)来节省存储器。
以下是参照描述操作过程的一系列流程图的描述。为便于理解,流程图被组织成使得初始流程图通过总体“大图”视点来演示各实现,并且后续的流程图提供进一步的附加物和/或细节。
图6示出了用于实施本发明的各方面的示意性的操作过程,包括操作600-612。操作600开始操作过程,可以开始迁移操作以便将虚拟机108从源计算机系统506移至目标计算机系统508。在操作602中,虚拟化模块400可以将被分配给源虚拟机的客物理存储器的页复制到位于共享存储介质中的主操作系统页文件,同时客操作系统在源虚拟机中执行。返回图5,在该例中,可以启用二级分页,页文件404可以与计算机系统中运行的主操作系统相关联,该计算机系统具有类似于图2所示的体系结构。
当在虚拟机中启用二级分页时,虚拟机的“物理”存储器中的一些或许多存储器页可能已经驻留在页文件404中。因此,在该示例性实施例中,二级分页可以使虚拟机的实况迁移更快地发生,因为在实况迁移开始后将较少的存储器页从源计算机系统506复制到共享存储器510;在实况迁移开始前已经被出页到共享存储页文件的存储器页将不需要再次被复制到共享存储,因为重新使用了已经存在的页文件。在该示例性实施例中,虚拟化模块400可以被配置成确定哪些存储器页尚未被出页到共享存储页文件,那些存储器页可以被复制到页文件404。
在替代的实施例中,返回图6,操作603示出,虚拟化模块400可以使源计算机系统506经由网络504与共享存储介质510通信。可以通过例如网络或光纤通道,完成源计算机系统506和共享存储510之间的转移、以及随后在共享存储510和目标计算机系统508之间的转移。在该实施例中,主操作系统可在共享存储510上具有已配置的页文件404,其可以是SAN目标。
由于虚拟机108在保存操作期间继续运行,因此已保存的状态可以被持续地修改。在操作604中,虚拟化模块400可以标识在页被复制到主操作系统页文件时客操作系统所改变的客物理存储器的页。在该例中,虚拟化模块400(例如微内核系统管理程序202)可以通过标识客物理存储器的在虚拟机108继续在保存操作期间运行时改变的页,来跟踪对已保存状态的修改。在操作606中,虚拟化模块400可以使所标识的页被复制到主操作系统页文件。在该实施例中,页文件404(例如主操作系统页文件)驻留在对源计算机系统506和目标计算机系统508两者可访问的存储中。
虚拟机108可以被暂停,因此不会再发生更多的虚拟机存储器内容修改。然后,可以将虚拟机的虚拟设备的状态以及虚拟机存储器内容的其余已修改状态保存到共享存储510中的页文件404。在该保存操作之后,虚拟机存储器内容和虚拟机的虚拟设备的状态有一致的副本。然后可以将共享存储510的所有权从源计算机系统506转移到目标计算机系统508。例如,所有权的转移可包括通过遮蔽和解除遮蔽SAN LUN来管理共享存储的所有权。
在操作608中,虚拟化模块400’可以通过在客操作系统中从共享存储510中的页文件404读取为执行虚拟机所必须的虚拟设备的状态(包括虚拟处理器状态),使客物理存储器被分配给目标虚拟机108’。或者换句话来说,虚拟化模块400’可以首先读入状态的为启动虚拟机108’绝对必须的部分。在虚拟机108’已经启动之后,如操作610所示,响应于接收到与页相关联的页错误,虚拟化模块400’可以使其余状态从主操作系统页文件被读入目标虚拟机的客物理存储器中。
在一替代实施例中,当二级分页对虚拟化模块400可用、但它尚未由虚拟化模块400在虚拟机108中设立时,可以在共享存储510上创建页文件404。
转至操作612,在一示例性实施例中,在阈值数量的页已经被出页至共享存储的情况下,虚拟化模块400可以使用页文件进行迁移。或者换句话来说,虚拟化模块400可以响应于确定当前被出页至主操作系统页文件的客物理存储器的页数量大于一阈值,使被分配给源虚拟机506的客物理存储器的页被复制到主操作系统页文件。在该例中,然后使用对虚拟化模块400可用的二级分页能力将虚拟机存储器内容出页至页文件404。这可以迭代地完成,因为虚拟机108继续在保存操作期间运行,后者会持续地修改已保存状态。
图7示出图6的操作过程的替换实施例,包括附加操作702和704。在一实施例中,虚拟化模块400继续将已修改的页保存至共享存储510,直到满足阈值比较值。由于虚拟机108仍在该保存操作期间运行,因此与此同时已被修改的页会需要在可完成迁移操作之前被复制。虚拟化模块400标识与此同时已被修改的页,然后确定在其余已改变的页被复制到共享存储介质510时是继续还是临时暂停虚拟机108。在使用保存遍次的实施例中,阈值可以基于一遍完成之后的已修改页的数量。在该例中,虚拟化模块400可以持续地复制页,直到改变页的数量小于最大数。在该实施例中,随着被修改的存储器页的数量的减少,每个保存遍次会变得更短。在另一实施例中,阈值可以基于已修改页的数量。
在使用保存遍次的另一实施例中,阈值可以基于虚拟化模块400执行的保存遍次的最大次数。在该例中,虚拟化模块400可以持续复制页,直到超过保存遍次的最大次数。在该实施例中,存在安全性原因以包括对所采用的遍次数量的限制:恶意虚拟机可以通过持续地修改很大数量的存储器页来无限期地延迟其迁移。最大数量取决于实现。例如,最大数量可以取决于对于要暂停虚拟机可接受的时间。在另一示例性实施例中,虚拟化模块400可以持续地复制页,直到最大时限已过。在各实施例中,可以通过将已修改页的数量与预定阈值量相比较,通过将已经执行的保存遍次的数量与预定阈值量相比较,或者通过两者的组合,来确定要继续执行保存遍次。和上述类似,停止转移并暂停虚拟机的阈值可以包括最大遍次数(例如,以强制迁移最终进行),但一般将最大遍次数与附加的试探法组合。
图8示出图6的操作过程的替换实施例,包括附加操作802。在该示例性实施例中,虚拟化模块400’可以使目标计算机系统基于其他空闲的资源(例如,空闲逻辑处理器和/或网络带宽或I/0存储带宽)的可用性,将主操作系统页文件中存储的页复制到目标计算机系统的客物理存储器。例如,可以发生低优先级的背景入页操作,以便还原尚未从共享存储510被复制到目标计算机系统508上的客物理存储器的存储器页。低优先级的背景入页操作可以在例如逻辑处理器空闲时运行,直到虚拟机108的已保存状态被加载到虚拟机108’中。低优先级的背景入页操作可以改进性能,因为存储器页在它们被需要之前被入页到虚拟机已保存状态。应当注意,因为仅使用按需的入页可能不能入页所有的存储器页,因此如果期望从共享存储510删除页文件404或已保存状态文件516,则低优先级的背景入页操作可能是期望的。
图9示出图6的替代实施例,包括附加操作902-906。在一实施例中,虚拟设备状态可被保存至页文件404。在另一示例性实施例中,虚拟设备状态可以在保存操作期间迭代地保存到共享存储510。在该示例性实施例中,对于单个虚拟设备来说,标识对设备状态的修改的方式和保存设备状态的方式这两者的实际实现是特定的。在至少一个示例性实施例中,当客存储器的一个或多个页被复制时,虚拟化模块400可以将设备状态复制到共享存储。
在一个具体例子中,虚拟机108的虚拟设备状态也可以使用二级分页被出页至共享存储510,以便将状态以及对虚拟设备状态的后续改变保存至共享存储510。在开始迁移后,已经被复制到共享存储510中并且尚未被改变的虚拟设备状态不需要再次被复制。在操作902中,源计算机系统506的虚拟化模块400可以使源虚拟机的虚拟设备的虚拟设备状态信息被复制到主操作系统页文件。在保存操作期间,虚拟化模块400可以在虚拟机108继续运行的同时,跟踪对虚拟机的虚拟设备状态的修改。在操作904中,源计算机系统506的虚拟化模块400可以标识在客操作系统执行期间已被改变的虚拟设备状态信息。在操作906中,源计算机系统506的虚拟化模块400可以使所标识的虚拟设备状态信息被复制到主操作系统页文件。
图10示出图9所述的操作过程的替换实施例,包括附加操作1002和1004。判断已保存状态和运行时状态之间的差异是否小于阈值,所述差异在该实施例中由客物理存储器的内容以及虚拟机的虚拟设备的状态组成。在操作1002中,源计算机系统506的虚拟化模块400可以响应于确定客操作系统所改变的页和/或设备状态的数量小于阈值,使其余的已标识页和已标识虚拟设备状态信息被复制到主操作系统页文件和/或已保存状态文件512。或者或另外,判断是否已达到最大保存遍次数量。在操作1004中,源计算机系统506的虚拟化模块400可以响应于确定用于复制客物理存储器的操作执行了超过阈值次数,使其余的已标识页和已标识虚拟设备状态信息被复制到主操作系统页文件和/或已保存状态文件512。如果尚未达到阈值,被标识为自前一次保存操作改变的页以及任何已修改的虚拟设备状态被保存到共享存储510,并且重复保存操作。当满足阈值比较值时,在源计算机系统508上暂停虚拟机108的执行,其余的已修改页和已修改虚拟设备状态被保存到共享存储510中的主操作系统页文件。
图11示出了用于实施本发明的各方面的示意性操作过程,包括操作1100-1106。在该示例性实施例中,已保存状态文件512(它是单独的存储内容文件)可以在共享存储510上创建,并且用于迁移操作。已保存状态文件512可以被存储在主操作系统或系统管理程序所控制的文件系统中(在目标可访问主机的文件系统的情况下);或者它可以被存储在网络文件系统中,等等。此外,已保存状态文件512可以被存储在不同于虚拟机存储516的物理设备上。操作1100开始操作过程,操作1102示出,在客操作系统在源虚拟机中执行时,虚拟化模块400可以将被分配给源虚拟机的客物理存储器的页复制到位于联网存储系统(即,共享存储510)中的已保存文件512。由于虚拟机108在保存操作期间继续运行,因此已保存的状态可以被持续地修改。在操作1104,虚拟化模块400可以在页被复制到已保存状态文件时,标识客物理存储器中的已由客操作系统改变的页。虚拟化模块400通过标识在虚拟机108在保存操作期间持续运行时已改变的客物理存储器的页,来跟踪修改。在操作1106,虚拟化模块400可以将已标识的页复制到已保存状态文件512。
在这一点,虚拟机108可以被暂停,因此不会再发生更多的虚拟机存储器修改。可以将虚拟机的虚拟设备的状态以及虚拟机存储器的其余已修改状态保存到已保存状态文件512。
图12示出图11的操作过程的替换实施例,包括附加操作1202-1208。在一实施例中,由操作1202所示,在迁移操作之前,源计算机系统506可以连接到共享存储510。
在一示例性实施例中,虚拟化模块400可以被配置成在禁用二级分页的情况下使用已保存状态文件512。在一具体例子中,虚拟化模块400可以响应于确定二级分页被禁用,把被分配给源虚拟机的客物理存储器的页复制到位于联网存储系统中的已保存状态文件512。例如,当虚拟化模块400运行时,它可以确定二级分页是否被启用。在它被禁用的情况下,虚拟化模块400可以在共享存储510上设立已保存状态文件512,并将其用于潜在的迁移操作。
转至操作1206,虚拟化模块400可以被配置成响应于确定在页被复制到已保存状态文件时由客操作系统改变的页的数量小于一阈值,将其余的已标识页复制到已保存状态文件。或者或另外,如操作1208所示,虚拟化模块400可以被配置成响应于确定用于复制客物理存储器的页的操作已经执行了多于阈值次数,将其余的已标识页复制到已保存状态文件。当满足阈值比较值时,在源计算机系统506上暂停虚拟机的执行,其余的已修改页和虚拟设备的状态一起被保存到共享存储510中的已保存状态文件512。
图13示出图11的替代实施例,包括附加操作1302-1306。在一实施例中,虚拟设备状态可被迭代地保存到共享存储510,以便与将虚拟机更快地从源计算机系统迁移至目标计算机系统。在操作1302中,源计算机系统506的虚拟化模块400可以将源虚拟机的虚拟设备的虚拟设备状态信息复制到已保存状态文件512。在保存操作期间,虚拟化模块400在虚拟机108继续运行的同时,跟踪对虚拟机的虚拟设备状态的修改。在操作1304中,源计算机系统506的虚拟化模块400可以标识在客操作系统执行期间已被改变的虚拟设备状态信息。在操作1306中,源计算机系统506的虚拟化模块400可以使所标识的虚拟设备状态信息被复制到已保存状态文件512。
图14示出图11的操作过程的替代实施例,包括附加操作1402,该操作说明了虚拟化模块400可以响应于确定用于复制客物理存储器的页的操作已经执行了多于阈值次数,而停止源虚拟机并将其余已标识的虚拟设备状态信息复制到已保存状态文件512。在该例中,当虚拟机108停止时,虚拟化模块400可以将其余设备(例如,虚拟处理器、虚拟NIC等)的状态信息复制到已保存状态文件512。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。
通过经由共享存储设备完成虚拟机的迁移,可以提供更有效且成本效能划算的计算环境。使用共享存储而不是网络连接作为虚拟机迁移的介质的好处在于,不需要专用的网络连接。尽管对传统的实况迁移不需要专用网络连接,避免中断和安全性原因也是优选的。共享存储作为介质这不需要这一点。此外,如果系统使用光纤通道和诸如存储区域网络(SAN)这样的共享存储,则带宽可以比用网络连接的情况更好。
尽管已经结合各附图所示的较佳方面描述了本发明,但要理解,可使用其它相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。因此,本发明不应该仅限于任何单个方面,而是应该在根据所附权利要求书的广度和范围内解释。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。因此,所公开的各实施例的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式。当程序代码被加载到诸如计算机等机器并由其执行时,该机器变为被配置成实施所公开的各实施例的装置。除了此处明确阐述的具体实现之外,考虑此处所公开的说明书,其它方面和实现将对本领域的技术人员是显而易见的。说明书和所示实现旨在仅被认为是示例。
Claims (20)
1.一种包括可执行指令的计算机可读存储介质,所述指令可用于发起迁移操作以便将虚拟机从源计算机系统转移到目标计算机系统,所述计算机可读存储介质包括:
在由源计算机系统执行时、在客操作系统在源虚拟机中执行时,使被分配给源虚拟机的客物理存储器的页被复制到位于共享存储介质中的主操作系统页文件的指令;
在由源计算机系统执行时,标识在页被复制到主操作系统页文件时客操作系统所改变的客物理存储器的页的指令;
在由源计算机系统执行时使所标识的页被复制到主操作系统页文件的指令;
在由目标计算机系统执行时,使客物理存储器被分配给目标虚拟机的指令;以及
在由目标计算机系统执行时,响应于接收与页相关联的页错误而使页从主操作系统页文件被读入目标虚拟机的客物理存储器的指令。
2.如权利要求1所述的计算机可读存储介质,其特征在于,进一步包括:
在由源计算机系统执行时,使源计算机系统经由网络与共享存储介质通信的指令。
3.如权利要求1所述的计算机可读存储介质,其特征在于,进一步包括:
在由源计算机系统执行时,响应于确定客物理存储器的页的内容和主操作系统页文件的内容之间的差别小于预定阈值,使源虚拟机被停止并且使其余的已标识页被复制到主操作系统页文件的指令。
4.如权利要求1所述的计算机可读存储介质,其特征在于,进一步包括:
在由源计算机系统执行时,响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,使源虚拟机被停止并且使其余已标识的页被复制到主操作系统页文件的指令。
5.如权利要求1所述的计算机可读存储介质,其特征在于,进一步包括:
在由目标计算机系统执行时,使目标计算机系统基于其他空闲资源的可用性而将主操作系统页文件中存储的页复制到目标计算机系统的客物理存储器中的指令。
6.如权利要求1所述的计算机可读存储介质,其特征在于,进一步包括:
在由源计算机系统执行时,使源虚拟机的虚拟设备的虚拟设备状态信息被复制到主操作系统页文件的指令;
在由源计算机系统执行时,标识在客操作系统执行时已改变的虚拟设备状态信息的指令;以及
在由源计算机系统执行时使所标识的虚拟设备状态信息被复制到主操作系统页文件的指令。
7.如权利要求6所述的计算机可读存储介质,其特征在于,进一步包括:
在由源计算机系统执行时,响应于确定客物理存储器的页的内容和主操作系统页文件的内容之间的差别小于预定阈值,使其余的已标识页和已标识虚拟设备状态信息被复制到主操作系统页文件的指令。
8.如权利要求6所述的计算机可读存储介质,其特征在于,进一步包括:
在由源计算机系统执行时,响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,使其余的已标识页和已标识虚拟设备状态信息被复制到主操作系统页文件的指令。
9.如权利要求1所述的计算机可读存储介质,其特征在于,进一步包括:
在由源计算机系统执行时,响应于确定当前被出页至主操作系统页文件的客物理存储器的页数量大于一阈值,使被分配给源虚拟机的客物理存储器的页被复制到主操作系统页文件。
10.一种用于将源计算机系统上运行的源虚拟机迁移到目标计算机系统的方法,包括:
在客操作系统在源虚拟机中执行时,将被分配给源虚拟机的客物理存储器的页复制到位于联网存储系统中的已保存状态文件;
标识在页被复制到已保存状态文件时由客操作系统改变的客物理存储器中的页;以及
将所标识的页复制到已保存状态文件。
11.如权利要求10所述的方法,其特征在于,还包括:
与联网存储系统建立网络通信信道。
12.如权利要求10所述的方法,其特征在于,还包括:
响应于确定在页被复制到已保存状态文件时由客操作系统改变的页的数量小于一阈值,将其余的已标识页复制到已保存状态文件。
13.如权利要求10所述的方法,其特征在于,还包括:
响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,将其余的已标识页复制到已保存状态文件。
14.如权利要求10所述的方法,其特征在于,还包括:
响应于确定二级分页被禁用,把被分配给源虚拟机的客物理存储器的页复制到位于联网存储系统中的已保存状态文件。
15.如权利要求10所述的方法,其特征在于,还包括:
将源虚拟机的虚拟设备的虚拟设备状态信息复制到已保存状态文件;
标识在客操作系统执行时改变的虚拟设备状态信息;以及
使所标识的虚拟设备状态信息被复制到已保存状态文件。
16.如权利要求15所述的方法,其特征在于,还包括:
响应于确定在页被复制到已保存状态文件时改变的已标识页的数量小于一阈值,停止源虚拟机并且将其余的已标识虚拟设备状态信息复制到已保存状态文件。
17.如权利要求15所述的方法,其特征在于,还包括:
响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,停止源虚拟机并且将其余的已标识虚拟设备状态信息复制到已保存状态文件。
18.一种用于将源虚拟机从源计算机系统迁移到目标计算机系统的系统,包括:
所述源计算机系统包括源计算机可读存储介质;
所述目标计算机系统包括目标计算机可读存储介质;
在操作上耦合到源计算机系统和目标计算机系统的联网存储系统;
其中所述源计算机可读存储介质包括:
使被分配给源虚拟机的客物理存储器的页被复制到位于共享存储介质中的虚拟化模块页文件的指令;
标识客物理存储器中的在页被复制到虚拟化模块页文件时由客操作系统改变的页的指令;
使已标识页被复制到主操作系统页文件的指令;
使客物理存储器被分配到目标虚拟机中的指令;
其中所述目标计算机可读存储介质包括:
响应于接收与页相关联的页错误,使页从虚拟化模块页文件被读入目标虚拟机的客物理存储器的指令。
19.如权利要求18所述的计算机系统,其特征在于,所述源计算机可读存储介质还包括:
用于确定客物理存储器中的在页被复制到虚拟化模块页文件时由客操作系统改变的页的数量是否小于最大数的指令;
用于确定是否达到最大保存遍次数量的指令;以及
使其余的已标识页被复制到虚拟化模块页文件的指令。
20.如权利要求18所述的计算机系统,其特征在于,所述源计算机可读存储介质还包括:
使源虚拟机的虚拟设备状态被复制到虚拟化模块页文件的指令;
用于标识在状态被复制到虚拟化模块页文件时由客操作系统改变的虚拟设备状态的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/826,264 | 2010-06-29 | ||
US12/826,264 US9317314B2 (en) | 2010-06-29 | 2010-06-29 | Techniques for migrating a virtual machine using shared storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102314378A true CN102314378A (zh) | 2012-01-11 |
CN102314378B CN102314378B (zh) | 2017-06-16 |
Family
ID=45353565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110189822.5A Active CN102314378B (zh) | 2010-06-29 | 2011-06-28 | 使用共享存储来迁移虚拟机的技术 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9317314B2 (zh) |
CN (1) | CN102314378B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833319A (zh) * | 2012-08-08 | 2012-12-19 | 浪潮集团有限公司 | 一种基于web的Virtualbox实时迁移方法 |
WO2014082459A1 (zh) * | 2012-11-30 | 2014-06-05 | 华为技术有限公司 | 实现虚拟机热迁移的方法、装置及系统 |
CN105359100A (zh) * | 2013-07-10 | 2016-02-24 | 国际商业机器公司 | 在移动性操作期间利用客户端资源 |
CN106686139A (zh) * | 2017-03-01 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种基于nfs网络文件系统的数据迁移方法 |
CN104205051B (zh) * | 2012-04-02 | 2018-04-03 | 思科技术公司 | 用于虚拟机的移动处理的方法和装置 |
CN109189335A (zh) * | 2018-08-16 | 2019-01-11 | 博飞信息科技(上海)有限公司 | 基于网络状态不佳、大数据量系统迁移的方法及存储设备 |
CN109597677A (zh) * | 2018-12-07 | 2019-04-09 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
CN110196770A (zh) * | 2018-07-13 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 云系统内存数据处理方法、装置、设备及存储介质 |
CN113596143A (zh) * | 2021-07-27 | 2021-11-02 | 西安万像电子科技有限公司 | 一种基于vdi多虚拟机间数据传输方法及系统 |
CN114641757A (zh) * | 2019-11-06 | 2022-06-17 | 微软技术许可有限责任公司 | 保存并还原应用内容的虚拟机状态和硬件状态 |
Families Citing this family (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671238B2 (en) * | 2010-07-13 | 2014-03-11 | Vmware, Inc. | Robust live migration using shared filesystem |
JP5206750B2 (ja) * | 2010-08-09 | 2013-06-12 | サンケン電気株式会社 | 電源装置およびプログラム |
US9984097B2 (en) * | 2010-11-10 | 2018-05-29 | International Business Machines Corporation | Systems and computer program products for transferring reserves when moving virtual machines across systems |
JP5681465B2 (ja) * | 2010-12-02 | 2015-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体 |
US9223611B2 (en) * | 2010-12-28 | 2015-12-29 | Microsoft Technology Licensing, Llc | Storing and resuming application runtime state |
US20120233236A1 (en) * | 2011-03-07 | 2012-09-13 | Min-Shu Chen | Cloud-based system for serving service request of embedded device by cloud computing and related cloud-based processing method thereof |
US9195510B2 (en) * | 2011-04-04 | 2015-11-24 | Dell Products L.P. | Information handling system application decentralized workload management |
US20120272239A1 (en) * | 2011-04-25 | 2012-10-25 | International Business Machines Corporation | Sharing class data |
US8943296B2 (en) * | 2011-04-28 | 2015-01-27 | Vmware, Inc. | Virtual address mapping using rule based aliasing to achieve fine grained page translation |
US8533714B2 (en) * | 2011-05-03 | 2013-09-10 | International Business Machines Corporation | Dynamic virtual machine domain configuration and virtual machine relocation management |
US8561067B2 (en) * | 2011-05-31 | 2013-10-15 | Red Hat, Inc. | Test suites for virtualized computing environments |
US8490092B2 (en) * | 2011-07-06 | 2013-07-16 | Microsoft Corporation | Combined live migration and storage migration using file shares and mirroring |
US9767039B2 (en) | 2011-07-18 | 2017-09-19 | Vmware, Inc. | Increasing granularity of dirty bit information in hardware assisted memory management systems |
US9009106B1 (en) | 2011-08-10 | 2015-04-14 | Nutanix, Inc. | Method and system for implementing writable snapshots in a virtualized storage environment |
US8863124B1 (en) | 2011-08-10 | 2014-10-14 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US9652265B1 (en) | 2011-08-10 | 2017-05-16 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types |
US8850130B1 (en) | 2011-08-10 | 2014-09-30 | Nutanix, Inc. | Metadata for managing I/O and storage for a virtualization |
US8601473B1 (en) | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US9747287B1 (en) | 2011-08-10 | 2017-08-29 | Nutanix, Inc. | Method and system for managing metadata for a virtualization environment |
US8549518B1 (en) | 2011-08-10 | 2013-10-01 | Nutanix, Inc. | Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment |
US9367453B1 (en) * | 2011-09-30 | 2016-06-14 | Emc Corporation | System and method for migrating cache data |
US9367452B1 (en) * | 2011-09-30 | 2016-06-14 | Emc Corporation | System and method for apportioning storage |
US9201612B1 (en) * | 2011-10-20 | 2015-12-01 | Amazon Technologies, Inc. | Utilizing shared storage for efficient VM-HA |
US20130111018A1 (en) * | 2011-10-28 | 2013-05-02 | International Business Machines Coporation | Passive monitoring of virtual systems using agent-less, offline indexing |
WO2013095505A1 (en) | 2011-12-22 | 2013-06-27 | Schneider Electric It Corporation | Systems and methods for reducing energy storage requirements in a data center |
US9996370B1 (en) * | 2012-04-18 | 2018-06-12 | Open Invention Network Llc | Page swapping in virtual machine environment |
US9772866B1 (en) | 2012-07-17 | 2017-09-26 | Nutanix, Inc. | Architecture for implementing a virtualization environment and appliance |
US9600206B2 (en) | 2012-08-01 | 2017-03-21 | Microsoft Technology Licensing, Llc | Request ordering support when switching virtual disk replication logs |
US10241814B2 (en) * | 2013-01-29 | 2019-03-26 | Red Hat Israel, Ltd. | Virtual machine memory migration by storage |
US9405642B2 (en) * | 2013-01-29 | 2016-08-02 | Red Hat Israel, Ltd. | Providing virtual machine migration reliability using an intermediary storage device |
US9582510B2 (en) * | 2013-05-30 | 2017-02-28 | Dassault Systemes Americas Corp. | Live Upgrade |
US9305009B1 (en) * | 2013-09-30 | 2016-04-05 | Emc Corporation | Synchronous replication of virtualized storage processors |
IN2013CH05013A (zh) * | 2013-11-07 | 2015-05-08 | Schneider Electric It Corp | |
US9483414B2 (en) | 2013-11-25 | 2016-11-01 | Red Hat Israel, Ltd. | Ordered memory pages transmission in virtual machine live migration |
US9317326B2 (en) * | 2013-11-27 | 2016-04-19 | Vmware, Inc. | Consistent migration of a group of virtual machines using source and destination group messaging |
US9436751B1 (en) * | 2013-12-18 | 2016-09-06 | Google Inc. | System and method for live migration of guest |
US10764323B1 (en) * | 2015-12-21 | 2020-09-01 | Amdocs Development Limited | System, method, and computer program for isolating services of a communication network in response to a distributed denial of service (DDoS) attack |
US20150205542A1 (en) * | 2014-01-22 | 2015-07-23 | Vmware, Inc. | Virtual machine migration in shared storage environment |
CN103810038B (zh) * | 2014-01-24 | 2018-04-06 | 新华三技术有限公司 | 一种ha集群中虚拟机存储文件迁移方法及其装置 |
US9354918B2 (en) | 2014-02-10 | 2016-05-31 | International Business Machines Corporation | Migrating local cache state with a virtual machine |
US10404795B2 (en) * | 2014-02-19 | 2019-09-03 | Vmware, Inc. | Virtual machine high availability using shared storage during network isolation |
US9542100B2 (en) * | 2014-09-02 | 2017-01-10 | International Business Machines Corporation | Management of memory pages |
US9389901B2 (en) * | 2014-09-09 | 2016-07-12 | Vmware, Inc. | Load balancing of cloned virtual machines |
US10318325B2 (en) * | 2015-01-07 | 2019-06-11 | International Business Machines Corporation | Host-side cache migration |
US20160283145A1 (en) * | 2015-03-24 | 2016-09-29 | Lenovo (Beijing) Co., Ltd. | Electronic Device, Power Failure Protection Method and Data Recovery Method |
US9594598B1 (en) | 2015-06-12 | 2017-03-14 | Amazon Technologies, Inc. | Live migration for virtual computing resources utilizing network-based storage |
US9836327B1 (en) | 2015-06-12 | 2017-12-05 | Amazon Technologies, Inc. | Network-based storage access control for migrating live storage clients |
US10725883B2 (en) | 2015-08-05 | 2020-07-28 | Vmware, Inc. | Externally triggered maintenance of state information of virtual machines for high availablity operations |
US10725804B2 (en) * | 2015-08-05 | 2020-07-28 | Vmware, Inc. | Self triggered maintenance of state information of virtual machines for high availability operations |
WO2017049617A1 (en) * | 2015-09-25 | 2017-03-30 | Intel Corporation | Techniques to select virtual machines for migration |
US10447728B1 (en) | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
US10846117B1 (en) | 2015-12-10 | 2020-11-24 | Fireeye, Inc. | Technique for establishing secure communication between host and guest processes of a virtualization architecture |
US10108446B1 (en) | 2015-12-11 | 2018-10-23 | Fireeye, Inc. | Late load technique for deploying a virtualization layer underneath a running operating system |
US10230785B1 (en) | 2015-12-28 | 2019-03-12 | Amazon Technologies, Inc. | Post data synchronization for domain migration |
US9946569B1 (en) | 2016-02-08 | 2018-04-17 | Nutanix, Inc. | Virtual machine bring-up with on-demand processing of storage requests |
EP3223456B1 (en) * | 2016-03-24 | 2018-12-19 | Alcatel Lucent | Method for migration of virtual network function |
US10467103B1 (en) | 2016-03-25 | 2019-11-05 | Nutanix, Inc. | Efficient change block training |
US10089146B2 (en) * | 2016-03-31 | 2018-10-02 | International Business Machines Corporation | Workload balancing for storlet infrastructure |
JP2017227969A (ja) * | 2016-06-20 | 2017-12-28 | 富士通株式会社 | 制御プログラム、システム、及び方法 |
JP6772655B2 (ja) * | 2016-08-15 | 2020-10-21 | 富士通株式会社 | 情報処理システムおよび情報処理方法 |
US10191861B1 (en) * | 2016-09-06 | 2019-01-29 | Fireeye, Inc. | Technique for implementing memory views using a layered virtualization architecture |
CN107967164B (zh) * | 2016-10-19 | 2021-08-13 | 阿里巴巴集团控股有限公司 | 一种虚拟机热迁移的方法及系统 |
US10346191B2 (en) * | 2016-12-02 | 2019-07-09 | Wmware, Inc. | System and method for managing size of clusters in a computing environment |
US10733004B2 (en) * | 2017-04-26 | 2020-08-04 | At&T Intellectual Property I, L.P. | Intelligent service on-demand robot virtualization |
CN107391229B (zh) * | 2017-07-26 | 2020-09-08 | 郑州云海信息技术有限公司 | 一种基于vmware虚拟化的集群填满方法及装置 |
CN107391233A (zh) * | 2017-08-09 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种虚拟机迁移方法和系统 |
CN108173810B (zh) * | 2017-12-07 | 2020-10-13 | 新华三信息安全技术有限公司 | 一种传输网络数据的方法及装置 |
US10956197B2 (en) * | 2017-12-13 | 2021-03-23 | Citrix Systems, Inc. | Virtual machine with an emulator manager for migration of synchronized streams of state data |
US10430227B2 (en) | 2018-01-09 | 2019-10-01 | Microsoft Technology Licensing, Llc | Fast instantiation of virtual machines in distributed computing systems |
US10552199B2 (en) | 2018-02-26 | 2020-02-04 | Nutanix, Inc. | System and method for binary throttling for live migration of virtual machines |
US10664323B2 (en) | 2018-03-07 | 2020-05-26 | Microsoft Technology Licensing, Llc | Live migration of virtual machines in distributed computing systems |
US10552209B2 (en) | 2018-03-15 | 2020-02-04 | Nutanix, Inc. | System and method for throttling for live migration of virtual machines |
US10552200B2 (en) * | 2018-03-22 | 2020-02-04 | Nutanix, Inc. | System and method for dynamic throttling for live migration of virtual machines |
US11194620B2 (en) | 2018-10-31 | 2021-12-07 | Nutanix, Inc. | Virtual machine migration task management |
US11188368B2 (en) | 2018-10-31 | 2021-11-30 | Nutanix, Inc. | Asynchronous workload migration control |
US11550755B2 (en) * | 2018-11-15 | 2023-01-10 | Red Hat, Inc. | High performance space efficient distributed storage |
CN109857521B (zh) * | 2019-01-23 | 2021-06-01 | 华为技术服务有限公司 | 一种主机搬迁方法及装置 |
US11650961B2 (en) * | 2019-02-04 | 2023-05-16 | Red Hat, Inc. | Managing replica unavailability in a distributed file system |
US11809888B2 (en) | 2019-04-29 | 2023-11-07 | Red Hat, Inc. | Virtual machine memory migration facilitated by persistent memory devices |
CN111090491B (zh) * | 2019-07-03 | 2023-10-10 | 杭州海康威视系统技术有限公司 | 虚拟机任务状态的恢复方法、装置及电子设备 |
US11416277B2 (en) * | 2019-11-22 | 2022-08-16 | Nutanix, Inc. | Situation-aware virtual machine migration |
US11411969B2 (en) * | 2019-11-25 | 2022-08-09 | Red Hat, Inc. | Live process migration in conjunction with electronic security attacks |
US11210171B2 (en) | 2020-01-06 | 2021-12-28 | International Business Machines Corporation | Apparatus, systems, and methods for booting from a checkpoint image |
US11354207B2 (en) | 2020-03-18 | 2022-06-07 | Red Hat, Inc. | Live process migration in response to real-time performance-based metrics |
CN111930467B (zh) * | 2020-07-02 | 2024-03-26 | 联想(北京)有限公司 | 虚拟机启动方法、装置、设备及计算机可读存储介质 |
CN114691287A (zh) * | 2020-12-29 | 2022-07-01 | 华为云计算技术有限公司 | 一种虚拟机迁移方法、装置及系统 |
CN112667361B (zh) * | 2020-12-31 | 2023-10-17 | 北京北信源软件股份有限公司 | 基于系统虚拟机的管理方法、装置、电子设备及存储介质 |
US11656982B2 (en) | 2021-01-15 | 2023-05-23 | Nutanix, Inc. | Just-in-time virtual per-VM swap space |
CN112905304B (zh) * | 2021-03-08 | 2024-07-09 | 深信服科技股份有限公司 | 一种虚拟机间通信方法、装置、物理主机及介质 |
CN112883369B (zh) * | 2021-03-25 | 2024-08-20 | 中国科学院信息工程研究所 | 一种可信虚拟化系统 |
CN113076175B (zh) * | 2021-03-26 | 2022-09-30 | 北京汇钧科技有限公司 | 用于虚拟机的内存共享方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307447A1 (en) * | 2008-06-06 | 2009-12-10 | International Business Machines Corporation | Managing Migration of a Shared Memory Logical Partition from a Source System to a Target System |
US20090307456A1 (en) * | 2008-06-09 | 2009-12-10 | International Business Machines Corporation | Migrating memory data between partitions |
US20110066786A1 (en) * | 2009-09-14 | 2011-03-17 | Vmware, Inc. | Method of Suspending and Resuming Virtual Machines |
US20110145471A1 (en) * | 2009-12-10 | 2011-06-16 | Ibm Corporation | Method for efficient guest operating system (os) migration over a network |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7383405B2 (en) * | 2004-06-30 | 2008-06-03 | Microsoft Corporation | Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity |
US7330942B2 (en) * | 2004-07-31 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Method for efficient virtualization of physical memory in a virtual-machine monitor |
US7536525B2 (en) * | 2004-11-09 | 2009-05-19 | Dell Products L.P. | Virtual machine hot cloning including freezing and unfreezing memory in a distributed network |
US8151263B1 (en) * | 2006-03-31 | 2012-04-03 | Vmware, Inc. | Real time cloning of a virtual machine |
US7925850B1 (en) * | 2007-02-16 | 2011-04-12 | Vmware, Inc. | Page signature disambiguation for increasing the efficiency of virtual machine migration in shared-page virtualized computer systems |
US8694990B2 (en) | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
US8671256B2 (en) * | 2007-08-27 | 2014-03-11 | International Business Machines Corporation | Migrating contents of a memory on a virtual machine |
US8037280B2 (en) * | 2008-06-11 | 2011-10-11 | Vmware, Inc. | System and method for improving memory locality of virtual machines |
US8307187B2 (en) | 2008-09-12 | 2012-11-06 | Vmware, Inc. | VDI Storage overcommit and rebalancing |
US8146082B2 (en) * | 2009-03-25 | 2012-03-27 | Vmware, Inc. | Migrating virtual machines configured with pass-through devices |
US9027017B2 (en) * | 2010-02-22 | 2015-05-05 | Virtustream, Inc. | Methods and apparatus for movement of virtual resources within a data center environment |
-
2010
- 2010-06-29 US US12/826,264 patent/US9317314B2/en active Active
-
2011
- 2011-06-28 CN CN201110189822.5A patent/CN102314378B/zh active Active
-
2016
- 2016-03-08 US US15/064,495 patent/US20160299774A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090307447A1 (en) * | 2008-06-06 | 2009-12-10 | International Business Machines Corporation | Managing Migration of a Shared Memory Logical Partition from a Source System to a Target System |
US20090307456A1 (en) * | 2008-06-09 | 2009-12-10 | International Business Machines Corporation | Migrating memory data between partitions |
US20110066786A1 (en) * | 2009-09-14 | 2011-03-17 | Vmware, Inc. | Method of Suspending and Resuming Virtual Machines |
US20110145471A1 (en) * | 2009-12-10 | 2011-06-16 | Ibm Corporation | Method for efficient guest operating system (os) migration over a network |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104205051B (zh) * | 2012-04-02 | 2018-04-03 | 思科技术公司 | 用于虚拟机的移动处理的方法和装置 |
CN102833319A (zh) * | 2012-08-08 | 2012-12-19 | 浪潮集团有限公司 | 一种基于web的Virtualbox实时迁移方法 |
WO2014082459A1 (zh) * | 2012-11-30 | 2014-06-05 | 华为技术有限公司 | 实现虚拟机热迁移的方法、装置及系统 |
US9672075B2 (en) | 2012-11-30 | 2017-06-06 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for implementing hot migration of virtual machine |
CN105359100B (zh) * | 2013-07-10 | 2018-07-17 | 国际商业机器公司 | 在移动性操作期间利用客户端资源 |
CN105359100A (zh) * | 2013-07-10 | 2016-02-24 | 国际商业机器公司 | 在移动性操作期间利用客户端资源 |
CN106686139A (zh) * | 2017-03-01 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种基于nfs网络文件系统的数据迁移方法 |
CN110196770A (zh) * | 2018-07-13 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 云系统内存数据处理方法、装置、设备及存储介质 |
CN109189335A (zh) * | 2018-08-16 | 2019-01-11 | 博飞信息科技(上海)有限公司 | 基于网络状态不佳、大数据量系统迁移的方法及存储设备 |
CN109597677A (zh) * | 2018-12-07 | 2019-04-09 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
CN114641757A (zh) * | 2019-11-06 | 2022-06-17 | 微软技术许可有限责任公司 | 保存并还原应用内容的虚拟机状态和硬件状态 |
CN114641757B (zh) * | 2019-11-06 | 2024-03-26 | 微软技术许可有限责任公司 | 保存并还原应用内容的虚拟机状态和硬件状态 |
CN113596143A (zh) * | 2021-07-27 | 2021-11-02 | 西安万像电子科技有限公司 | 一种基于vdi多虚拟机间数据传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102314378B (zh) | 2017-06-16 |
US20110320556A1 (en) | 2011-12-29 |
US9317314B2 (en) | 2016-04-19 |
US20160299774A1 (en) | 2016-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102314378A (zh) | 使用共享存储来迁移虚拟机的技术 | |
US8191063B2 (en) | Method for migrating a plurality of virtual machines by associating files and state information with a single logical container | |
CN100489787C (zh) | 一种虚拟机的外存在线迁移方法 | |
CN107111533B (zh) | 虚拟机集群备份 | |
US7313793B2 (en) | Method for forking or migrating a virtual machine | |
US7383405B2 (en) | Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity | |
DK3008600T3 (en) | Backup of a virtual machine from a storage snapshot | |
US9336132B1 (en) | Method and system for implementing a distributed operations log | |
EP2593867B1 (en) | Virtual machine aware replication method and system | |
ES2632512T3 (es) | Conversión de máquinas a máquinas virtuales | |
EP2755132B1 (en) | Virtual machine memory snapshot generating and recovering method, device and system | |
JP6186374B2 (ja) | 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法 | |
US9354907B1 (en) | Optimized restore of virtual machine and virtual disk data | |
CN103793258A (zh) | 基于管理程序的服务器复制系统及其方法 | |
US9218140B2 (en) | System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines | |
CN103885811A (zh) | 虚拟机系统全系统在线迁移的方法、系统与装置 | |
CN105335223A (zh) | 源主机和目的主机上的虚拟机内存迁移装置、方法及系统 | |
CN111459607A (zh) | 基于云桌面搭建虚拟化的虚拟服务器集群方法、系统及介质 | |
US8468298B2 (en) | Management device and management method | |
US11188393B1 (en) | Systems and methods for performing load balancing and distributed high-availability | |
US11593171B2 (en) | Reservation-based high-performance computing system and method | |
KR101460452B1 (ko) | 하이버네이션 기반 스냅샷 이미지 생성 장치 및 방법 | |
US8505007B2 (en) | Method and system for instantly creating an IT environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
GR01 | Patent grant |