CN102314378B - 使用共享存储来迁移虚拟机的技术 - Google Patents

使用共享存储来迁移虚拟机的技术 Download PDF

Info

Publication number
CN102314378B
CN102314378B CN201110189822.5A CN201110189822A CN102314378B CN 102314378 B CN102314378 B CN 102314378B CN 201110189822 A CN201110189822 A CN 201110189822A CN 102314378 B CN102314378 B CN 102314378B
Authority
CN
China
Prior art keywords
page
computer system
virtual machine
copied
file
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
Application number
CN201110189822.5A
Other languages
English (en)
Other versions
CN102314378A (zh
Inventor
L·鲁瑟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102314378A publication Critical patent/CN102314378A/zh
Application granted granted Critical
Publication of CN102314378B publication Critical patent/CN102314378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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或用于通过例如因特网等WAN52建立通信的其他手段。调制解调器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。阈值可由几种手段来标识。例如,它可以基于剩余已修改状态的大小、它可以基于时间段、或者它可以基于旨在使VM108需要被暂停的时间量最小的更精细的试探法。因此,在该示例性实施例中,虚拟化模块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 (18)

1.一种发起迁移操作以便将虚拟机从源计算机系统转移到目标计算机系统的方法,所述方法包括:
在客操作系统在源虚拟机中执行时,源计算机系统使被分配给源虚拟机的客物理存储器的页被复制到位于共享存储介质中的主操作系统页文件;
源计算机系统使源虚拟机的虚拟设备的虚拟设备状态信息被复制到主操作系统页文件;
源计算机系统使在被分配给源虚拟机的客物理存储器的页被复制到主操作系统页文件时客操作系统所改变的客物理存储器的页被标识;
源计算机系统使在客操作系统执行时已改变的虚拟设备状态信息被标识;
源计算机系统使所标识的页被复制到主操作系统页文件;
源计算机系统使所标识的虚拟设备状态信息被复制到主操作系统页文件;
目标计算机系统使客物理存储器被分配给目标虚拟机;以及
目标计算机系统响应于接收与被复制到所述主操作系统页文件的页相关联的页错误而使被复制到所述主操作系统页文件的页从主操作系统页文件被读入目标虚拟机的客物理存储器。
2.如权利要求1所述的方法,其特征在于,进一步包括:
源计算机系统使源计算机系统经由网络与共享存储介质通信。
3.如权利要求1所述的方法,其特征在于,进一步包括:
源计算机系统响应于确定客物理存储器的页的内容和主操作系统页文件的内容之间的差别小于预定阈值,使源虚拟机被停止并且使其余的已标识页被复制到主操作系统页文件。
4.如权利要求1所述的方法,其特征在于,进一步包括:
源计算机系统响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,使源虚拟机被停止并且使其余已标识的页被复制到主操作系统页文件。
5.如权利要求1所述的方法,其特征在于,进一步包括:
目标计算机系统使目标计算机系统基于其他空闲资源的可用性而将被复制到所述主操作系统页文件的页复制到目标计算机系统的客物理存储器中。
6.如权利要求1所述的方法,其特征在于,进一步包括:
源计算机系统响应于确定客物理存储器的页的内容和主操作系统页文件的内容之间的差别小于预定阈值,使其余的已标识页和已标识虚拟设备状态信息被复制到主操作系统页文件。
7.如权利要求1所述的方法,其特征在于,进一步包括:
源计算机系统响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,使其余的已标识页和已标识虚拟设备状态信息被复制到主操作系统页文件。
8.如权利要求1所述的方法,其特征在于,进一步包括:
源计算机系统响应于确定当前被出页至主操作系统页文件的客物理存储器的页数量大于一阈值,使被分配给源虚拟机的客物理存储器的页被复制到主操作系统页文件。
9.一种用于将源计算机系统上运行的源虚拟机迁移到目标计算机系统的方法,包括:
在客操作系统在源虚拟机中执行时,将被分配给源虚拟机的客物理存储器的页复制到由所述源计算机系统和所述目标计算机系统两者共享并能由所述源计算机系统和所述目标计算机系统两者访问的位于联网存储系统中的已保存状态文件;
将源虚拟机的虚拟设备的虚拟设备状态信息复制到已保存状态文件;
标识在页被复制到已保存状态文件时由客操作系统改变的客物理存储器中的页;
标识在客操作系统执行时改变的虚拟设备状态信息;
将所标识的页复制到已保存状态文件;
使所标识的虚拟设备状态信息被复制到已保存状态文件;以及
将被复制到已保存状态文件中的页从位于所述联网存储系统中的已保存状态文件读入在所述目标计算机系统上运行的目标虚拟机的客物理存储中,其中所述目标计算机系统具有与所述源计算机系统物理存储器分开的物理存储器。
10.如权利要求9所述的方法,其特征在于,还包括:
与联网存储系统建立网络通信信道。
11.如权利要求9所述的方法,其特征在于,还包括:
响应于确定在页被复制到已保存状态文件时由客操作系统改变的页的数量小于一阈值,将其余的已标识页复制到已保存状态文件。
12.如权利要求9所述的方法,其特征在于,还包括:
响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,将其余的已标识页复制到已保存状态文件。
13.如权利要求9所述的方法,其特征在于,还包括:
响应于确定二级分页被禁用,把被分配给源虚拟机的客物理存储器的页复制到位于联网存储系统中的已保存状态文件。
14.如权利要求9所述的方法,其特征在于,还包括:
响应于确定在页被复制到已保存状态文件时改变的已标识页的数量小于一阈值,停止源虚拟机并且将其余的已标识虚拟设备状态信息复制到已保存状态文件。
15.如权利要求9所述的方法,其特征在于,还包括:
响应于确定用于复制客物理存储器的页的操作执行了多于阈值次数,停止源虚拟机并且将其余的已标识虚拟设备状态信息复制到已保存状态文件。
16.一种用于将源虚拟机从源计算机系统迁移到目标计算机系统的系统,包括:
所述源计算机系统;
所述目标计算机系统;
在操作上耦合到源计算机系统和目标计算机系统的联网存储系统;
其中所述源计算机系统进一步包括:
用于使被分配给源虚拟机的客物理存储器的页被复制到位于共享存储介质中的虚拟化模块页文件的装置;
用于标识客物理存储器中的在页被复制到虚拟化模块页文件时由客操作系统改变的页的装置;
用于使已标识页被复制到所述虚拟化模块页文件的装置;
用于使客物理存储器被分配到目标虚拟机中的装置;
其中所述目标计算机系统进一步包括:
用于响应于接收与所述目标虚拟机的客物理存储器中的相应页相关联的页错误,使页从虚拟化模块页文件被读入所述目标虚拟机的所述客物理存储器的装置。
17.如权利要求16所述的系统,其特征在于,所述源计算机系统还包括:
用于确定客物理存储器中的在被分配给所述源虚拟机的客物理存储器的页被复制到虚拟化模块页文件时由客操作系统改变的页的数量是否小于最大数的装置;
用于确定是否达到最大保存遍次数量的装置;以及
用于使其余的已标识页被复制到虚拟化模块页文件的装置。
18.如权利要求16所述的系统,其特征在于,所述源计算机系统还包括:
用于使源虚拟机的虚拟设备状态被复制到虚拟化模块页文件的装置;
用于标识在状态被复制到虚拟化模块页文件时由客操作系统改变的虚拟设备状态的装置。
CN201110189822.5A 2010-06-29 2011-06-28 使用共享存储来迁移虚拟机的技术 Active CN102314378B (zh)

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 CN102314378A (zh) 2012-01-11
CN102314378B true 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)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
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
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
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
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
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a 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
CN104040459B (zh) 2011-12-22 2017-11-14 施耐德电气It公司 用于降低数据中心的能量存储需求的系统和方法
US9116736B2 (en) * 2012-04-02 2015-08-25 Cisco Technology, Inc. Virtualized movement of enhanced network services associated with a virtual machine
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
CN102833319A (zh) * 2012-08-08 2012-12-19 浪潮集团有限公司 一种基于web的Virtualbox实时迁移方法
CN103049308B (zh) 2012-11-30 2016-01-20 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统
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
US9280371B2 (en) * 2013-07-10 2016-03-08 International Business Machines Corporation Utilizing client resources during mobility operations
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
US9836327B1 (en) 2015-06-12 2017-12-05 Amazon Technologies, Inc. Network-based storage access control for migrating live storage clients
US9594598B1 (en) 2015-06-12 2017-03-14 Amazon Technologies, Inc. Live migration for virtual computing resources utilizing network-based storage
US10725804B2 (en) * 2015-08-05 2020-07-28 Vmware, Inc. Self triggered maintenance of state information of virtual machines for high availability operations
US10725883B2 (en) 2015-08-05 2020-07-28 Vmware, Inc. Externally triggered maintenance of state information of virtual machines for high availablity operations
US20180246751A1 (en) * 2015-09-25 2018-08-30 Intel Corporation Techniques to select virtual machines for migration
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered 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
CN106686139A (zh) * 2017-03-01 2017-05-17 郑州云海信息技术有限公司 一种基于nfs网络文件系统的数据迁移方法
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
CN110196770B (zh) * 2018-07-13 2023-04-18 腾讯科技(深圳)有限公司 云系统内存数据处理方法、装置、设备及存储介质
CN109189335A (zh) * 2018-08-16 2019-01-11 博飞信息科技(上海)有限公司 基于网络状态不佳、大数据量系统迁移的方法及存储设备
US11188368B2 (en) 2018-10-31 2021-11-30 Nutanix, Inc. Asynchronous workload migration control
US11194620B2 (en) 2018-10-31 2021-12-07 Nutanix, Inc. Virtual machine migration task management
US11550755B2 (en) * 2018-11-15 2023-01-10 Red Hat, Inc. High performance space efficient distributed storage
CN109597677B (zh) * 2018-12-07 2020-05-22 北京百度网讯科技有限公司 用于处理信息的方法和装置
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 杭州海康威视系统技术有限公司 虚拟机任务状态的恢复方法、装置及电子设备
US11103780B2 (en) * 2019-11-06 2021-08-31 Microsoft Technology Licensing, Llc Saving and restoring virtual machine states and hardware states for application content
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 北京汇钧科技有限公司 用于虚拟机的内存共享方法及装置
CN113596143A (zh) * 2021-07-27 2021-11-02 西安万像电子科技有限公司 一种基于vdi多虚拟机间数据传输方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307456A1 (en) * 2008-06-09 2009-12-10 International Business Machines Corporation Migrating memory data between partitions
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
US20110145471A1 (en) * 2009-12-10 2011-06-16 Ibm Corporation Method for efficient guest operating system (os) migration over a network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
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
US8635395B2 (en) * 2009-09-14 2014-01-21 Vmware, Inc. Method of suspending and resuming virtual machines
US9027017B2 (en) * 2010-02-22 2015-05-05 Virtustream, Inc. Methods and apparatus for movement of virtual resources within a data center environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
US20110145471A1 (en) * 2009-12-10 2011-06-16 Ibm Corporation Method for efficient guest operating system (os) migration over a network

Also Published As

Publication number Publication date
CN102314378A (zh) 2012-01-11
US9317314B2 (en) 2016-04-19
US20160299774A1 (en) 2016-10-13
US20110320556A1 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
CN102314378B (zh) 使用共享存储来迁移虚拟机的技术
EP3762826B1 (en) Live migration of virtual machines in distributed computing systems
US8191063B2 (en) Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
US10346215B2 (en) Replication of a virtualized computing environment to a computing system with offline hosts
US7383405B2 (en) Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
US10817333B2 (en) Managing memory in devices that host virtual machines and have shared memory
US7313793B2 (en) Method for forking or migrating a virtual machine
KR101602519B1 (ko) 가상화된 저장소 할당 방법
US8151263B1 (en) Real time cloning of a virtual machine
US8307187B2 (en) VDI Storage overcommit and rebalancing
US8122212B2 (en) Method and apparatus for logical volume management for virtual machine environment
US7792918B2 (en) Migration of a guest from one server to another
KR20090025204A (ko) 머신을 가상 머신으로 변환하는 방법 및 컴퓨터 프로그램 제품
CN103699496A (zh) 分级存储器管理
WO2011153038A2 (en) Virtual machine migration techniques
WO2011057874A2 (en) Symmetric live migration of virtual machines
Elsaid et al. Virtual machines pre-copy live migration cost modeling and prediction: a survey
US9971785B1 (en) System and methods for performing distributed data replication in a networked virtualization environment
EP3786797A1 (en) Cloud resource marketplace
Haga et al. Windows server 2008 R2 hyper-V server virtualization
Gangadhar et al. Distributed memory and cpu management in cloud computing environment
Meier et al. IBM systems virtualization: Servers, storage, and software
Johansen Availability and performance aspects for mainframe consolidated servers
Opsahl A Comparison of Management of Virtual Machines with z/VM and ESX Server
GUIDE Deploying Virtualized Hadoop® Systems with VMware vSphere® Big Data Extensions™

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