CN102317909A - 便于在多个物理机器间迁移虚拟机的系统和方法 - Google Patents

便于在多个物理机器间迁移虚拟机的系统和方法 Download PDF

Info

Publication number
CN102317909A
CN102317909A CN2009801566305A CN200980156630A CN102317909A CN 102317909 A CN102317909 A CN 102317909A CN 2009801566305 A CN2009801566305 A CN 2009801566305A CN 200980156630 A CN200980156630 A CN 200980156630A CN 102317909 A CN102317909 A CN 102317909A
Authority
CN
China
Prior art keywords
physical
virtual machine
machine
subclass
machines
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.)
Pending
Application number
CN2009801566305A
Other languages
English (en)
Inventor
R·W·夏普
J·J·鲁德拉姆
V·汉奎兹
D·J·斯科特
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN102317909A publication Critical patent/CN102317909A/zh
Pending legal-status Critical Current

Links

Images

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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

一种便于在多个物理机器间迁移虚拟机的方法包括将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于多个物理机器的第一子集是不可访问的而对于多个物理机器的第二子集是可用的,所述虚拟机在多个物理机器的第二子集中的第一物理机器上执行。该方法包括接收向多个物理机器中的第二物理机器迁移虚拟机的请求。该方法包括识别多个物理机器的第二子集中的第二物理机器。该方法包括将虚拟机迁移到第二物理机器。

Description

便于在多个物理机器间迁移虚拟机的系统和方法
相关申请
本申请要求2008年12月19日提交的美国专利申请序列号12/340,057的优先权,将其公开内容视为本申请公开的一部分并且通过引用将其整体包含于此。
技术领域
本发明总的涉及用于迁移虚拟机的系统和方法。本发明尤其涉及便于在多个物理机器间迁移虚拟机的系统和方法。
背景技术
在实现管理程序以在宿主计算装置上执行虚拟机的传统计算环境中,管理程序通常向虚拟机提供对由主机计算装置提供的硬件资源的访问。管理程序可分配来自物理计算装置池中的物理资源,所述物理计算装置池可包括提供不同层次的功能的异构处理器。在一些环境中,管理程序可能需要将虚拟机从一个物理计算装置迁移到第二物理计算装置;例如,当第一物理计算装置需要维护或者不再具有给虚拟机提供所分配的硬件资源的能力时。如果两个物理计算装置提供不同的功能(例如,第一物理计算装置可访问某个物理资源(例如,网络存储装置或物理盘)而第二物理计算装置不提供对该物理资源的访问),那么从第一物理计算装置向第二物理计算装置迁移虚拟机可能会失败。例如,虚拟机可能执行要求访问由第一物理计算装置而不是由第二物理计算装置提供的功能的进程,那么虚拟机的迁移将导致难以预料的执行错误或者不希望的虚拟机的终止。
对这个问题的常规解决方案通常涉及到在物理计算装置池中提供同构的功能,例如,通过从池中排除对不能被池中的每个物理计算装置普遍访问的物理资源提供访问的物理计算装置,或通过禁止对该物理资源的访问。然而,这个方法通常限制了管理员为用户提供各种范围的功能的能力。而且,当物理资源老化以及要求更换时,管理员可能找不到提供相同功能的替代装置。
发明内容
一方面,一种便于在多个物理机器间迁移虚拟机的方法包括将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于多个物理机器的第一子集是不可访问的而对于所述多个物理机器的第二子集是可用的,所述虚拟机在多个物理机器的第二子集中的第一物理机器上执行。该方法包括接收向多个物理机器中的第二物理机器迁移虚拟机的请求。该方法包括识别多个物理机器的第二子集中的第二物理机器。该方法包括将虚拟机迁移到第二物理机器。
在一个实施例中,该方法包括接收识别与包括处理器类型的至少一个物理资源关联的虚拟机的请求。在又一个实施例中,该方法包括接收识别与包括网络的至少一个物理资源关联的虚拟机的请求。在又一个实施例中,该方法包括接收识别与包括网络存储装置的至少一个物理资源关联的虚拟机的请求。在又一个实施例中,该方法包括接收识别与包括多个资源的至少一个物理资源关联的虚拟机的请求。
在一些实施例中,该方法包括响应于第一物理机器上的迁移事件来识别能访问至少一个物理资源的第二物理机器。在这些实施例的一个中,迁移事件是在第一物理机器上的软件安装。
在又一个方面,便于在多个物理机器间迁移虚拟机的系统包括管理程序和管理组件。管理组件将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于所述多个物理机器的第一子集是不可访问的而对于所述多个物理机器的第二子集是可用的,所述虚拟机在所述多个物理机器的第二子集中的第一物理机器上执行。管理组件接收向多个物理机器中的第二物理机器迁移虚拟机的请求。管理组件识别多个物理机器的第二子集中的第二物理机器。管理程序从管理组件接收第二物理机器的标识并将虚拟机迁移到第二物理机器。一个实施例中,管理组件包括用于接收请求的用户接口。一些实施例中,管理组件接收向多个物理机器的第一子集中的物理机器迁移虚拟机的请求。在这些实施例的一个中,管理组件指示管理程序向多个物理机器的第二子集中的第二物理机器迁移虚拟机。在这些实施例又一个中,管理组件拒绝向多个物理机器的第一子集中的物理机器迁移虚拟机的请求。
附图说明
本发明的前述和其它目的、方面、特征和优点通过参考下述结合附图的描述将会更加明显并更易于理解,其中:
图1A是描述包括管理程序层、虚拟化层和硬件层的计算环境的实施例的框图;
图1B和1C是描述有益于与此处所描述的方法和系统的相关的计算装置的实施例的框图;
图2是描述便于在多个物理机器间迁移虚拟机的系统的实施例的框图;
图3是描述便于在多个物理机器间迁移虚拟机的方法的实施例的流程图;以及
图4是描述由便于在多个物理机器间迁移虚拟机的系统所提供的用户接口的实施例的屏幕快照。
具体实施方式
现参考图1A,框图描述了虚拟化环境的一个实施例。简而言之,计算装置100包括管理程序层、虚拟化层和硬件层。管理程序层包括管理程序101(也称为虚拟化管理器),其通过在虚拟化层中执行的至少一个虚拟机来分配和管理对硬件层中的多个物理资源的访问(例如处理器221和盘228)。虚拟化层包括至少一个操作系统110和分配给至少一个操作系统110的多个虚拟资源,虚拟资源可包括而不限于多个虚拟处理器132a、132b、132c(总称为132)和虚拟盘142a、142b、142c(总称为142)、以及例如虚拟存储器和虚拟网络接口的虚拟资源。可将多个虚拟资源和操作系统110称为虚拟机106。虚拟机106可包括控制操作系统105,该控制操作系统105与管理程序101通信,并用于执行应用以管理并配置计算装置100上的其他虚拟机。
现参考图1A,具体而言,管理程序101可以以模拟可访问物理设备的操作系统的任何方式向操作系统提供虚拟资源。管理程序101可以向任一数量的客户操作系统110a、110b(总称为110)提供虚拟资源。一些实施例中,计算装置100执行一种或多种管理程序。这些实施例中,管理程序可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件并执行提供对计算环境的访问的虚拟机。管理程序可包括由位于美国加利福尼亚州的Palo Alto的VMWare公司制造的这些程序、XEN管理程序(一种开源产品,其开发由开源Xen.org协会监管)、由Microsoft公司提供的HyperV、VirtualServer或虚拟PC管理程序或其他。一些实施例中,计算装置100执行创建客户操作系统可在其上执行的虚拟机平台的管理程序,该计算装置100被称为宿主服务器。在这些实施例的一个中,例如,计算装置100是由位于美国佛罗里达州FortLauderdale的Citrix Systems公司提供的XEN SERVER。
一些实施例中,管理程序101在计算装置上执行的操作系统之内执行。在这些实施例的一个中,执行操作系统和管理程序101的计算装置可被视为具有宿主操作系统(在计算装置上执行的操作系统)和客户操作系统(在由管理程序101提供的计算资源分区内执行的操作系统)。其他实施例中,管理程序101和计算装置上的硬件直接交互而不是在宿主操作系统上执行。在这些实施例的一个中,管理程序101可被视为是在“裸金属(bare metal)”上执行,所述“裸金属”指包括计算装置的硬件。
一些实施例中,管理程序101可以创建操作系统110在其中执行的虚拟机106a-c(总称为106)。在这些实施例的一个中,管理程序101加载虚拟机映像以创建虚拟机106。在这些实施例的又一个中,管理程序101在虚拟机106内执行操作系统110。在这些实施例的又一个中,虚拟机106执行操作系统110。
一些实施例中,管理程序101控制对在计算装置100上执行的虚拟机106的处理器调度和内存划分。在这些实施例的一个中,管理程序101控制至少一个虚拟机106的执行。在这些实施例的又一个中,管理程序101向至少一个虚拟机106呈现对由计算装置100提供的至少一个硬件资源的抽象。其他实施例中,管理程序101控制是否以及如何把物理处理器能力呈现给虚拟机106。
控制操作系统105可以执行用于管理和配置客户操作系统的至少一个应用。一个实施例中,控制操作系统105可以执行管理应用,如包括如下用户接口的应用,该用户接口为管理员提供对用于管理虚拟机执行的功能的访问,这些功能包括用于执行虚拟机、终止虚拟机执行或者识别要分配给虚拟机的物理资源类型的功能。另一个实施例中,管理程序101在由管理程序101创建的虚拟机106内执行控制操作系统105。在又一个实施例中,控制操作系统105在被授权直接访问计算装置100上的物理资源的虚拟机106上执行。一些实施例中,计算装置100a上的控制操作系统105a可经由管理程序101a和管理程序101b之间的通信与计算装置100b上的控制操作系统105b交换数据。这样,一个或多个计算装置100可以与一个或多个其他计算装置100交换关于资源池中可用的处理器和其他物理资源的数据。在这些实施例的一个中,该功能允许管理程序管理分布在多个物理计算装置上的资源池。在这些实施例的又一个中,多个管理程序管理在其中一个计算装置100上执行的一个或多个客户操作系统。
一个实施例中,控制操作系统105在被授权与至少一个客户操作系统110交互的虚拟机106上执行。另一个实施例中,客户操作系统110通过管理程序101与控制操作系统105通信,以请求访问盘或网络。在又一个实施例中,客户操作系统110和控制操作系统105可通过由管理程序101建立的通信信道通信,例如,通过由管理程序101提供的多个共享存储器页面通信。
一些实施例中,控制操作系统105包括用于直接与由计算装置100提供的网络硬件通信的网络后端驱动器。在这些实施例的一个中,网络后端驱动器处理来自至少一个客户操作系统110的至少一个虚拟机请求。其他实施例中,控制操作系统105包括用于与计算装置100上的存储单元通信的块后端驱动器。在这些实施例的一个中,块后端驱动器根据从客户操作系统110接收的至少一个请求从存储单元读写数据。
一个实施例,控制操作系统105包括工具堆栈104。其他实施例中,工具堆栈104提供如下功能:和管理程序101交互、和其他控制操作系统105(例如位于第二计算装置100b上)通信,或者管理计算装置100上的虚拟机106b、106c。另一个实施例中,工具堆栈104包括自定义应用,其用于向虚拟机群的管理员提供改进的管理功能。一些实施例中,工具堆栈104和控制操作系统105中的至少一个包括管理API,其提供用于远程配置并控制计算装置100上运行的虚拟机106的接口。其他实施例中,控制操作系统105通过工具堆栈104和管理程序101通信。
一个实施例中,管理程序101在由管理程序101创建的虚拟机106内执行客户操作系统110。另一个实施例中,客户操作系统110为计算装置100的用户提供对计算环境中的资源的访问。另一个实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或对计算装置100的用户可用的其他资源。另一个实施例中,可通过多个访问方法将资源传送给计算装置100,这些方法包括但不限于:常规的直接安装在计算装置100上、通过应用流的方法传送给计算装置100、将由在第二计算装置100′上执行资源产生的并通过表示层协议传送给计算装置100的输出数据传送给计算装置100、将由在第二计算装置100′上执行的虚拟机执行资源所产生的输出数据传送给计算装置100、或者从连接到计算装置100的移动存储装置(例如USB设备)执行,或者通过在计算装置100上执行的虚拟机执行并且产生输出数据。一些实施例中,计算装置100把执行资源所产生的输出数据传输给另一个计算装置100′。
一个实施例中,客户操作系统110和该客户操作系统110在其上执行的虚拟机结合形成完全虚拟化虚拟机,该完全虚拟化虚拟机并不知道自己是虚拟机,这样的机器可称为“Domain U HVM(硬件虚拟机)虚拟机”。另一个实施例中,完全虚拟化机包括模拟基本输入/输出系统(BIOS)的软件以便在完全虚拟化机中执行操作系统。在另一个实施例中,完全虚拟化机可包括驱动器,其通过和管理程序101通信提供功能。这样的实施例中,驱动器通常意识到自己在虚拟化环境中执行。
另一个实施例中,客户操作系统110和该客户操作系统110在其上执行的虚拟机结合形成超虚拟化虚拟机(paravirtualized),该超虚拟化虚拟机意识到自己是虚拟机,这样的机器可称为“Domain U PV虚拟机”。另一个实施例中,超虚拟化机包括完全虚拟化机不包括的额外驱动器。另一个实施例中,超虚拟化机包括如上所述的被包含在控制操作系统105中的网络后端驱动器和块后端驱动器。
计算装置100可以被部署为任意类型和形式的计算装置和/或在其上执行,例如能够与任意类型和形式的网络通信并且执行此处所描述的操作的计算机、网络装置或设备。图1B和1C描述了用于实施此处所描述的方法和系统的实施例的计算装置100的框图。如图1B和1C所示,计算装置100包括中央处理单元121和主存储器单元122。如图1B所示,计算装置100可包括存储装置128、安装装置116、网络接口118、I/0控制器123、显示装置124a-124n、键盘126和诸如鼠标的指示装置127。存储装置128可包括但不限于操作系统、软件和客户机代理120。如图1C所示,每个计算装置100也可包括另外的可选部件,例如存储器端口103、桥170、一个或多个输入/输出装置130a-130n(总的使用标号130表示)以及与中央处理单元121通信的高速缓存存储器140。
中央处理单元121是响应并处理从主存储器单元122取出的指令的任意逻辑电路。在一些实施例中,中央处理单元121由微处理器单元提供,例如:由位于美国加利福尼亚州Mountain View的Intel公司制造的微处理器单元;由位于美国伊利诺伊州Schaumburg的Motorola公司制造的微处理器单元;由位于美国加利福尼亚州Santa Clara的Transmeta公司制造的微处理器单元;RS/6000处理器,由位于美国纽约州White Plains的InternationalBusiness Machines公司制造的微处理器单元;或者由位于美国加利福尼亚州Sunnyvale的Advanced Micro Devices公司制造的微处理器单元。计算装置100可以基于这些处理器中的任意一种,或者能够按照这里所说明的那样运行的任意其它处理器。
主存储器单元122可以是能够存储数据并允许微处理器121直接访问任意存储位置的一个或多个存储器芯片,例如静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页模式DRAM(FPM DRAM)、增强DRAM(EDRAM)、扩展数据输出DRAM(EDO DRAM)、突发扩展数据输出DRAM(BEDO DRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100SDRAM、双倍数据速率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接RambusDRAM(DRDRAM)或铁电RAM(FRAM)。主存储器122可以基于上述存储器芯片的任意一种,或者能够像这里所说明的那样运行的任意其它可用存储器芯片。在图1B所示的实施例中处理器121通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1C描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1C中主存储器122可以是DRDRAM。
图1C描述在其中主处理器121通过有时被称为背侧总线的次级总线直接与高速缓存存储器140通信的实施例。其他实施例中,主处理器121使用系统总线150与高速缓存存储器140通信。高速缓存存储器140通常有比主存储器122更快的响应时间,并且通常由SRAM、BSRAM或EDRAM提供。在图1C所示的实施例中,处理器121通过本地系统总线150与各种I/O装置130进行通信。可以使用各种不同的总线将中央处理单元121连接到任意I/O装置130,包括VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器121可以使用高级图形端口(AGP)与显示装置124通信。图1C描述了在其中主处理器121通过HYPERTRANSPORT、RAPIDIO、或INFINIBAND通信技术直接与I/O装置130b通信的计算机100的实施例。图1C也描述了在其中本地总线和直接通信相混合的实施例:处理器121使用本地互连总线与I/O装置130a通信同时直接与I/O装置130b通信。
计算装置100中可以有多种I/O装置130a-130n。输入装置包括键盘、鼠标、触控板、轨迹球、话筒、拨号盘和绘图板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机。如图1B所示,I/O装置可以由I/O控制器123控制。I/O控制器可以控制一个或多个I/O装置,例如键盘126和指示装置127(如鼠标或光笔)。此外,I/O装置还可以为计算装置100提供存储和/或安装介质116。在其它实施例中,计算装置100可以提供USB连接(未示出)以接收手持USB存储装置,例如由位于美国加利福尼亚州Los Alamitos的Twintech Industry公司生产的设备的USB闪存驱动线。
再次参考图1B,计算装置100可以支持任意适当的安装装置116,例如用于接收像3.5英寸、5.25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、闪存驱动器、多种格式的磁带驱动器、USB设备、硬盘驱动器或适于安装软件和程序的任意其它设备。计算装置100还可以包括存储装置,诸如一个或者多个硬盘驱动器或者独立磁盘冗余阵列,用于存储操作系统和其它相关软件,以及用于存储诸如涉及客户机代理120的任意程序的应用软件程序。或者,可以使用安装装置116的任意一种作为存储装置。此外,操作系统和软件可从可引导介质运行,可引导介质例如是可引导CD,诸如KNOPPIX,其为一种用于GNU/Linux的可引导CD,可自knoppix.net作为GNU/Linux分发获得。
此外,计算装置100可以包括网络接口118以通过多种连接来与网络104对接,所述连接包括但不限于标准电话线路、LAN或WAN链路(例如802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、SONET上以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某种组合。可使用多种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)来建立连接。在一个实施例中,计算装置100可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS)协议,或由位于美国佛罗里达州Ft.Lauderdale的Citrix Systems公司制造的Citrix网关协议的隧道协议来与其他计算装置100’通信。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行这里所说明的操作的任意类型的网络的任意其它设备。
在一些实施例中,计算装置100可以包括多个显示装置124a-124n或与其相连,这些显示装置各自可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任一类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计算装置100可以包括任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示装置124a-124n对接、通信、连接或以其他方式使用显示装置124a-124n。在一个实施例中,视频适配器可以包括多个连接器以与多个显示装置124a-124n对接。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器与显示装置124a-124n中的一个或多个连接。在一些实施例中,计算装置100的操作系统的任一部分都可以被配置用于使用多个显示器124a-124n。在其它实施例中,显示装置124a-124n中的一个或多个可以由一个或多个其它计算装置提供,诸如(例如通过网络)与计算装置100连接的计算装置100a和100b。这些实施例可以包括被设计和构造来使用另一个计算机的显示装置作为计算装置100的第二显示装置124a的任何类型的软件。本领域的普通技术人员会认识和意识到可以将计算装置100配置成拥有多个显示装置124a-124n的各种方式和实施例。
在进一步的实施例中,I/O装置130可以是系统总线150和外部通信总线之间的桥,所述外部通信总线如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线、串行SCSI总线或HDMI总线。
图1B和1C中所描述类型的计算装置100通常地在操作系统的控制下运行,操作系统控制任务的调度和对系统资源的访问。计算装置100可运行任一操作系统,诸如任一版本的MICROSOFT WINDOWS操作系统;不同发行版本的Unix和Linux操作系统;用于Macintosh计算机的MAC OS的任意版本;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算装置的操作系统,或者能够在计算装置上运行且执行此处所描述的操作的任意其它操作系统。典型的操作系统包括但不限于:WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS MOBILE、WINDOWS XP和WINDOWS VISTA,所有这些均由位于美国华盛顿州Redmond的微软公司出品;由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的Mac OS;由位于美国纽约州Armonk的国际商业机器公司出品的OS/2;以及由位于美国犹他州Salt LakeCity的Caldera公司发布的可免费使用的Linux操作系统或者任意类型和/或形式的Unix操作系统,以及其它。
计算机系统100可以是任意工作站、电话、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话或其他便携电信设备、媒体播放设备、游戏系统、移动计算装置,或能够通信的任意其它类型和/或形式的计算、电信或者媒体装置。计算机系统100有足够的处理器能力和存储容量以执行此处所述的操作。例如,计算机系统100可包括由位于美国加利福尼亚州Cupertino的苹果计算机公司出品的IPOD系列设备、由位于日本Tokyo的索尼公司出品的PLAYSTATION2、PLAYSTATION3或PERSONAL PLAYSTATIONPORTABLE(PSP)设备,由位于日本Kyoto的Nintendo有限公司出品的NINTENDO DS、NINTENDO GAMEBOY、NINTENDO GAMEBOY ADVANCED或NINTENDOREVOLUTION设备,或者由位于美国华盛顿州Redmond的微软公司出品的XBOX或XBOX 360设备。
在一些实施例中,计算装置100可以有不同的处理器、操作系统以及与该装置一致的输入设备。例如,在一个实施例中,计算装置100是由Palm公司出品的TREO180、270、600、650、680、700p、700w或750智能电话。在这些实施例的一些中,TERO智能电话是在Pa lmOS操作系统的控制下操作并且包括笔输入设备以及五向导航设备。
在其他实施例中,计算装置100是移动设备,例如,JAVA使能蜂窝电话或个人数字助理(PDA),诸如i55sr、i58sr、i85s、i88s、i90c、i95c1、i335、i365、i570、I576、i580、i615、i760、i836、i850、i870、i880、i920、i930、ic502、ic602、ic902、i776或im1100,以上这些均由位于美国伊利诺伊州Schaumburg的摩托罗拉公司制造;由位于日本Kyoto的Kyocera公司制造的6035或7135;或者由位于韩国首尔的Samsung电子有限公司制造的i300或i330。在一些实施例中,计算装置100是由位于芬兰的诺基亚公司制造或由位于瑞典Lund的Sony Ericsson MobileCommunications AB公司制造的移动设备。
在其他实施例中,计算装置100是黑莓(Blackberry)手持或智能电话,诸如由Research In Motion有限公司制造的设备,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520、黑莓PERAL 8100、8700系列、8800系列、黑莓Storm、黑莓Bold、黑莓Curve 8900、黑莓Pearl Flip。在其他实施例中,计算装置100是智能电话、Pocket PC、Pocket PC电话,或支持Microsft Windows Mobile Software的其它手持移动设备。此外,计算装置100可以是任意工作站、台式计算机、膝上型或笔记本电脑、服务器、掌上电脑、移动电话、任意其它计算机、或能够通信并有足够的处理器能力和存储容量以执行此处所述操作的其它形式的计算或者电信设备。
在一些实施例中,计算装置100是数字音频播放器。在这些实施例的一个中,计算装置100是诸如由位于美国加利福尼亚州Cupertino的苹果计算机公司制造的Apple IPOD、IPOD Touch、IPOD NANO和IPOD SHUFFLE系列设备的数字音频播放器。在这些实施例的又一个中,数字音频播放器可作为便携媒体播放器和作为大容量存储装置来工作。在其他实施例中,计算装置100是诸如由位于美国新泽西州Ridgefield Park的Samsung ElectronicsAmerica公司制造的DigitalAudioPlayer Select MP3播放器,或由位于美国伊利诺伊州Schaumburg的Motorola公司制造的Motorola m500或m25的数字音频播放器。在其他实施例中,计算装置100是便携媒体播放器,诸如由Creative Technologies有限公司制造的ZEN VISION W、ZEN VISION系列、ZEN PORTABLE MEDIA CENTER设备或MP3播放器的Digital MP3系列。仍在其他实施例中,计算装置100是支持以下文件格式的便携媒体播放器或数字音频播放器,这些文件格式包括,但不限于MP3、WAV、M4A/AAC、WMAProtected AAC、AIFF、Audible音频书、Apple Lossless音频文件格式和.mov、.m4v以及.mp4MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施例中,计算装置100包括设备的组合,例如与数字音频播放器或便携媒体播放器相组合的移动电话。在这些实施例的一个中,计算装置100是智能电话,例如由苹果计算机公司制造的iPhone,或由Research InMotion有限公司制造的黑莓设备。又一个实施例中,计算装置100是装有web浏览器和麦克风与扬声器系统(如电话耳机)的笔记本电脑或台式计算机。在这样的实施例中,计算装置100是web使能的(web-enabled)的并且能接听和启动电话呼叫。在其他实施例中,计算装置100是组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR系列。
计算装置100可以是文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器或防火墙。在一些实施例中,计算装置100提供远程认证拨入用户服务,并被称为RADIUS服务器。在其他实施例中,计算装置100可以有作为应用服务器或者作为主应用服务器工作的能力。在其他实施例中,计算装置100是刀片服务器。
在一个实施例中,计算装置100可包括活动目录。计算装置100可以是应用加速设备。对于其中计算装置100是应用加速设备的实施例,计算装置100可提供包括防火墙功能、应用防火墙功能,或负载平衡功能的功能。在一些实施例中,计算装置100包括诸如由位于美国加州San Jose的CitrixApplication Networking Group、位于美国加州Mountain View的SilverPeak Systems公司、位于美国加州San Francisco的Riverbed Technology公司、位于美国华盛顿州Seattle的F5Ne tworks公司或位于美国加州Sunnyvale的Juniper Networks公司制造的设备系列中的一个设备。
在其他实施例中,计算装置100可被称为客户机节点、客户机器、端节点或端点。在一些实施例中,客户机100具有作为客户机节点寻求访问服务器所提供的资源的能力以及作为服务器节点为其它客户机提供对所寄载的资源访问的能力。
在一些实施例中,第一客户机计算装置100a与第二服务器计算装置100b通信。在一个实施例中,客户机与服务器群中的计算装置100之一进行通信。例如,通过网络,客户机可以请求执行由服务器群中的计算装置100所寄载的各种应用以及接收应用执行结果的输出数据以用于显示。在一个实施例中,客户机执行程序邻近应用(program neighborhood application)以与服务器群中的计算装置100通信。
计算装置100可以执行、操作或者以其它方式提供应用,该应用可以是任何类型和/或形式的软件、程序或可执行指令,诸如任何类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、或Java小程序,或者能够在计算装置100上执行的任何其他类型和/或形式的可执行指令。在一些实施例中,应用可以是由第二计算装置代表第一计算装置的用户执行的基于服务器的或者基于远程的应用。在其他实施例中,第二计算装置可使用任何瘦客户端或远程显示协议向第一客户计算装置显示输出的数据,所述协议如:由位于美国佛罗里达州Ft.Lauderdale的CitrixSystems公司制造的独立计算架构(ICA)协议;或由位于美国华盛顿州Redmond的Microsoft公司制造的远程桌面协议(RDP);X11协议;由AT&T贝尔实验室制造的虚拟网络计算(VNC)协议;由位于美国加州Sunnyvale和以色列Raanana的Qumranet公司制造的SPICE协议;由位于美国加州Milpitas的VESA公司制造的Net2Display协议;由位于加拿大不列颠哥伦比亚省Burnaby的Teradici公司制造的PC-over-IP协议;由位于美国加州San Jose的Wyse Technology公司制造的TCX协议;由位于美国纽约州NewYork的纽约市哥伦比亚大学开发的THINC协议;或者由位于美国马萨诸塞州Chelmsford的Desktone公司制造的Virtual-D协议。应用可以使用任何类型的协议,并且其可以是例如HTTP客户机、FTP客户机、Oscar客户机或Telnet客户机。在其他实施例中,应用包括与诸如软IP电话的网络电话(VoIP)通信有关的任意类型的软件。在进一步的实施例中,应用包括与实时数据通信有关的任何应用,例如用于流式传输视频和/或音频的应用。
一些实施例中,第一计算装置100a代表客户机计算装置100b的用户执行应用。其他实施例中,计算装置100a执行虚拟机,其提供执行会话,在该会话中,代表用户或客户机计算装置100b执行应用。一个这样的实施例中,执行会话是寄载的桌面会话。另一个这样的实施例中,计算装置100执行终端服务会话。终端服务会话可以提供寄载的桌面环境。在另一个这样的实施例中,执行会话提供对计算环境的访问,计算环境可包括以下的一个或多个:应用、多个应用、桌面应用以及在其中可执行一个或多个应用的桌面会话。
现参考图2,框图描述了便于在多个物理机器间迁移虚拟机的系统的一个实施例。总的来说,该系统包括管理组件104和管理程序101。该系统包括多个计算装置100、多个虚拟机106、多个管理程序101、多个被称为工具堆栈104的管理组件和物理资源260。多个物理机器100可以各自作为与图1A-C有关的上文所描述的计算装置100而被提供。
现参考图2,更具体地,管理组件将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于多个物理机器的第一子集是不可访问的而对于多个物理机器的第二子集是可用的,所述虚拟机在多个物理机器的第二子集中的第一物理机器上执行。管理组件接收向多个物理机器中的第二物理机器迁移虚拟机的请求。管理组件识别多个物理机器的第二子集中的第二物理机器。
一个实施例中,计算装置100a、计算装置100b和计算装置100c是多个物理机器的一部分。又一个实施例中,计算装置100c在多个物理机器的第一子集中,因为它不能访问物理资源260。又一个实施例中,计算装置100a和100b是多个物理机器的第二子集的一部分,因为它们各自都可以访问物理资源260。
一个实施例中,物理资源260驻留在计算装置中;例如,物理资源260可以是由计算装置100d提供的物理存储器或者由计算装置100d提供的数据库或应用。又一个实施例中,物理资源260是计算装置;例如,物理资源260可以是网络存储装置或应用服务器。又一个实施例中,物理资源260是计算装置的网络;例如,物理资源260可以是存储区域网络。
一个实施例中,管理组件被称为工具堆栈104a。又一个实施例中,管理操作系统105a(其可以被称为控制操作系统105a)包括管理组件。在一些实施例中,管理组件被称为工具堆栈。在这些实施例的一个中,管理组件是与图1A-1C有关的上文所描述的工具堆栈104。
一个实施例中,管理组件104提供用户接口,该用户接口用于从用户(例如管理员)接收信息,识别虚拟机106请求或要求访问的物理资源260的类型。又一个实施例中,管理组件104提供用于从用户(例如管理员)接收迁移虚拟机106b的请求的用户接口。又一个实施例中,管理组件104访问数据库,所述数据库将至少一个虚拟机的标识与由所识别的虚拟机106要求的、请求的或者对其可用的至少一个物理资源的标识相关联。
管理程序101a在计算装置100a上执行。管理程序101将虚拟机250迁移到物理机器100b。一个实施例中,管理程序101a从管理组件104a接收第二计算装置100b的标识和向所识别的第二计算装置迁移虚拟机106b的命令。
现参考图3流程图描述了便于在多个物理机器间迁移虚拟机的方法的一个实施例。总的来说,该方法包括将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于多个物理机器的第一子集是不可访问的而对于多个物理机器的第二子集的可用的,所述虚拟机在多个物理机器的第二子集中的第一物理机器上执行(302)。该方法包括接收向多个物理机器中的第二物理机器迁移虚拟机的请求(304)。该方法包括识别多个物理机器的第二子集中的第二物理机器(306)。该方法包括将虚拟机迁移到第二物理机器(308)。一些实施例中,提供具有便于在多个物理机器间迁移虚拟机的可执行代码的计算机可读介质。
现参考图3,更具体地,管理组件将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于多个物理机器的第一子集是不可访问的而对于多个物理机器的第二子集是可用的,所述虚拟机在多个物理机器的第二子集中的第一物理机器上执行(302)。一个实施例中,管理组件104经由用户接口接收虚拟机请求或要求访问的物理资源260的标识;例如,管理员可以经由用户接口来配置虚拟机并在配置文件中包含物理资源260的标识。又一个实施例中,管理组件104接收虚拟机106b将要提供的服务的标识,而且,管理组件104识别虚拟机106需要访问的物理资源260。
管理组件接收向多个物理机器中的第二物理机器迁移虚拟机的请求(304)。一个实施例中,管理组件104经由用户接口接收来自管理员的请求,所述用户接口是由管理组件104在其中执行的控制操作系统105提供的。又一个实施例中,管理组件104接收当该事件发生时应自动迁移虚拟机的迁移事件的标识;例如,管理员可识别对于执行虚拟机106b的第一物理机器100a的维护计划(用于安装软件更新或执行病毒扫描或执行其他管理任务的时间)并且指引管理组件104在维护事件之前将虚拟机106b迁移到多个物理机器中的另一个物理机器106。
一个实施例中,管理组件104接收未指定目的物理计算装置的请求;例如,管理员可指示虚拟机106b应该迁移到多个物理机器的任何一个而不是指定虚拟机106b应该迁移到计算装置100b。又一个实施例中,管理组件104识别物理计算装置100b,其提供对虚拟机106b需要访问的任何物理资源260的访问。
一个实施例中,管理组件104接收将虚拟机迁移到指定的目的物理计算装置的请求;例如,管理员可选择计算装置100b或100c并且指示管理组件104将虚拟机106b迁移到所选择的计算装置。又一个实施例中,管理组件104确认管理员已经选择了计算装置100,所述计算装置100提供对虚拟机106b需要访问的物理资源的每一个的访问。一些实施例中,管理组件104确定管理员已经选择了计算装置100c,所述计算装置100c不提供对虚拟机106b要求的物理资源260的访问。在这些实施例的一个中,管理组件104拒绝迁移虚拟机的请求。在这样的实施例中,管理组件104可提供计算装置100c未能提供的物理资源的标识。在这些实施例的又一个中,管理组件104识别供替代的计算装置100b,其提供对物理资源260的访问。在这个实施例中,管理组件104可请求向所识别的计算装置100b迁移虚拟机106b的许可;或者,管理组件104可自动地将虚拟机迁移到所识别的物理机器并传输该迁移的标识。又一个实施例中,管理组件204确认所识别的物理计算装置提供对物理资源260的访问的能力。
在一个实施例中,请求识别与具有处理器类型的至少一个物理资源关联的虚拟机。在又一个实施例中,请求识别与至少一个网络存储装置关联的虚拟机。又一个实施例中,请求识别与网络关联的虚拟机。又一个实施例中,请求识别与多个资源关联的虚拟机。一些实施例中,管理组件104基于虚拟机106b的标识来识别物理资源260。
管理组件识别多个物理机器的第二子集中的第二物理机器(306)。如上面所指出的,一些实施例中,管理组件104接收向其迁移虚拟机106b的指定的物理机器100b的标识。在这些实施例的一个中,管理组件104确认物理机器100b的提供虚拟机106b所期望的物理资源260的能力。在这些实施例的又一个中,管理组件104识别所指定的物理机器100c的替代机器。其他实施例中,管理组件104不接收物理机器100b的标识而是响应于被包含在与虚拟机106b关联的数据和请求中的数据来识别物理机器100b。进一步的实施例中,管理组件104通过访问虚拟机106b与物理资源260之间的关联和物理资源260与物理机器100b之间的关联来识别物理机器100b。
一些实施例中,举例来说,虚拟机配置对象可包括至少一个关联的虚拟块设备(VBD)对象的标识。在这些实施例的一个中,VBD对象定义引导时将要出现在虚拟机106b内的磁盘设备(因此,其对运行在虚拟机106b内的应用将是可访问的)。在这些实施例的又一个中,VBD对象v指向虚拟磁盘映像对象(VDI);VDI对象代表可经由对应于VBD v的磁盘设备从虚拟机106内读/写的虚拟硬盘映像。在这些实施例的又一个中,VDI对象指向存储仓库(SR)对象,其定义虚拟磁盘映像如何被表示为一些物理块存储上的位。在这些实施例的又一个中,SR s对物理资源池p中的物理机器100b(其可被称为主机h)是可访问的,如果物理块设备(PBD)对象连接对应于s和h的对象,并且h被连接到表示池p的对象。在这些实施例的又一个中,PBD对象的字段可指定特定的主机如何访问与特定的SR有关的存储。在这些实施例的又一个中,考虑到上文所描述的对象和关系,为了识别哪个物理主机100可访问物理资源,例如实例化虚拟机106b,v,所需的存储资源,管理组件识别与V关联的VBD、识别与这些VBD关联的VDI、识别与这些VDI关联的SR、识别与这些SR关联的PBD以及识别与这些PBD关联的Host(主机)。
在其他实施例中,其中物理资源260不是存储相关的资源,管理组件104可执行类似的步骤来识别定义物理资源260的对象的类型以及确定物理主机是否能访问支持给定的虚拟机106所需要的物理网络资源。在这些实施例的一个中,作为又一个例子,所涉及的对象代表网络资源而不是存储配置。在这些实施例的又一个中,为了识别能够给虚拟机106n提供物理资源260的物理机器100b(主机h),管理组件104确定h属于能访问虚拟机106b所需的所有存储的主机集合以及确定h是否属于能看到虚拟机106b所需的所有网络的主机集合。在这些实施例的又一个中,管理组件104确定主机h是否有足够的物理资源来开始执行虚拟机106b;例如,管理组件104可确定h是否由足够的空闲物理RAM来启动虚拟机106b。
在其他实施例中,管理组件104维护配置对象和配置对象之间的关系的至少一个数据库。在这些实施例的一个中,管理组件104通过访问这些数据库的其中一个来识别多个物理机器100的第二子集中的第二物理机器100b。
管理程序将虚拟机迁移到第二物理机器(308)。在一个实施例中,管理程序101a从管理组件104接收虚拟机106b的标识。在又一个实施例中,管理程序101a从管理组件104接收计算装置100b的标识。在又一个实施例中,管理程序101a向管理程序101b传输虚拟机106b的标识。在又一个实施例中,管理程序101a向管理程序101b传输虚拟机106b的存储器映像。在又一个实施例中,管理程序101a向管理程序101b传输虚拟机106b的执行状态的标识和由执行的虚拟机106b访问的数据。在又一个实施例中,管理组件104a和管理组件104b经由管理程序101a和101b通信以完成虚拟机的迁移。
现参考图7,屏幕快照描述了用户接口的一个实施例,所述用户接口显示所识别的在多个物理机器的第二子集中的物理机器100b。在一个实施例中,在控制操作系统105(其本身在虚拟机106a内执行)内执行的管理组件向用户(诸如多个物理机器的管理员)显示用户接口702。又一个实施例中,用户接口包括物理机器的列举704。又一个实施例中,管理组件104提供用户接口706,通过该用户接口706,用户可管理一个或多个所列举的物理机器和虚拟机。又一个实施例中,用户接口706提供接口元件,用户可使用该元件来请求虚拟机的迁移。如图7所描述的,该接口元件可以是上下文菜单。图7也包括接口元件708,其显示哪个物理机器在多个物理机器的第一子集中以及哪个物理机器在第二子集中。如图7所示,“h13”指的是诸如不提供对物理资源260的访问的计算装置100c的机器,而“h09”和“h12”指的是诸如多个物理机器的第二子集中的第一计算装置100a和第二计算装置100b的机器。在一些实施例中,如图7所示,管理组件104可拒绝向多个物理机器的第一子集中的一个物理机器迁移虚拟机的请求;例如通过禁用与物理机器100c管理的交互元件(在图4中,通过禁用与“h13”关联的超链接)。在这些实施例的一个中,管理组件104可显示关于为什么机器是第一子集而不是第二子集的一部分的解释;例如,用户接口元件708显示“h13”不能访问用户试图迁移的虚拟机所需的物理存储资源的指示。
一些实施例中,此处所描述的方法和系统提供了便于迁移虚拟机的功能。在这些实施例的一个中,通过确定用户是否试图将虚拟机迁移到不能提供对该虚拟机所请求或要求的物理资源的访问的物理机器,以及通过将虚拟机仅迁移到提供该物理资源的多个物理机器的其中一个子集,此处描述的方法和系统提供改善的迁移功能而不要求同构的物理机器池。
应该理解,此处描述的系统可提供多个组件或每个组件并且这些组件可以在单独机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。此外,上述系统和方法可作为一件或多件产品上所体现的或在其中的一个或多个计算机可读程序而被提供。所述产品可以是软盘、硬盘、CD-ROM,闪存卡、PROM、RAM、ROM或磁带。通常,计算机可读程序可以任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者诸如JAVA的任何字节码语言。软件程序可以作为目标代码被存储在一件或多件产品上或其中。
已经描述了便于在多个物理机器之间迁移虚拟机的方法和系统的某些实施例,对本领域技术人员而言,显而易见可以使用包含所述实施例的概念的其他实施例。本发明应该不限于某些实施例,而是应由下列权利要求的精神和范围进行限制。

Claims (23)

1.一种便于在多个物理机器间迁移虚拟机的方法,所述方法包括:
将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于所述多个物理机器的第一子集是不可访问的而对于所述多个物理机器的第二子集是可用的,所述虚拟机在所述多个物理机器的第二子集中的第一物理机器上执行;
接收向所述多个物理机器中的第二物理机器迁移虚拟机的请求;
识别所述多个物理机器的第二子集中的第二物理机器;以及
将虚拟机迁移到所述第二物理机器。
2.根据权利要求1所述的方法,其中接收还包括接收向所述多个物理机器的第一子集中的物理机器迁移虚拟机的请求。
3.根据权利要求2所述的方法,还包括向所述多个物理机器的第二子集中的第二物理机器迁移虚拟机。
4.根据权利要求2所述的方法,还包括拒绝迁移虚拟机的请求。
5.根据权利要求1所述的方法,其中接收还包括接收识别与包括处理器类型的至少一个物理资源关联的虚拟机的请求。
6.根据权利要求1所述的方法,其中接收还包括接收识别与包括网络的至少一个物理资源关联的虚拟机的请求。
7.根据权利要求1所述的方法,其中接收还包括接收识别与包括网络存储装置的至少一个物理资源关联的虚拟机的请求。
8.根据权利要求1所述的方法,其中接收还包括接收识别与包括多个资源的至少一个物理资源关联的虚拟机的请求。
9.根据权利要求1所述的方法,还包括响应于迁移事件来识别能访问所述至少一个物理资源的第二物理机器。
10.根据权利要求9所述的方法,其中所述迁移事件包括在所述第一物理机器上的软件安装。
11.根据权利要求9所述的方法,其中所述迁移事件包括在所述第一物理机器上的补丁安装。
12.一种在其上具有指令的计算机可读介质,当执行所述指令时提供便于在多个物理机器间迁移虚拟机的方法,所述计算机可读介质包括:
将虚拟机与至少一个物理资源相关联的指令,所述至少一个物理资源对于所述多个物理机器的第一子集是不可访问的而对于所述多个物理机器的第二子集是可用的,所述虚拟机在所述多个物理机器的第二子集中的第一物理机器上执行;
接收向所述多个物理机器中的第二物理机器迁移虚拟机的请求的指令;
识别所述多个物理机器的第二子集中的第二物理机器的指令;以及
将虚拟机迁移到所述第二物理机器的指令。
13.根据权利要求12所述的计算机可读介质,其中接收的指令还包括接收向所述多个物理机器的第一子集中的物理机器迁移虚拟机的请求的指令。
14.根据权利要求13所述的计算机可读介质,还包括向所述多个物理机器的第二子集中的第二物理机器迁移虚拟机的指令。
15.根据权利要求13所述的计算机可读介质,还包括拒绝迁移虚拟机的请求的指令。
16.根据权利要求12所述的计算机可读介质,其中接收的指令还包括接收识别与包括处理器类型的至少一个物理资源关联的虚拟机的请求的指令。
17.根据权利要求12所述的计算机可读介质,其中接收的指令还包括接收识别与包括网络的至少一个物理资源关联的虚拟机的请求的指令。
18.根据权利要求12所述的计算机可读介质,其中接收的指令还包括接收识别与包括网络存储装置的至少一个物理资源关联的虚拟机的请求的指令。
19.根据权利要求12所述的计算机可读介质,其中接收的指令还包括接收识别与包括多个资源的至少一个物理资源关联的虚拟机的请求的指令。
20.一种便于在多个物理机器间迁移虚拟机的系统,所述系统包括:
管理组件,其i)将虚拟机与至少一个物理资源相关联,所述至少一个物理资源对于所述多个物理机器的第一子集是不可访问的而对于所述多个物理机器的第二子集是可用的,所述虚拟机在所述多个物理机器的第二子集中的第一物理机器上执行,ii)接收向所述多个物理机器中的第二物理机器迁移虚拟机的请求,以及iii)识别所述多个物理机器的第二子集中的第二物理机器;以及
管理程序,其从管理组件接收所述第二物理机器的标识并将虚拟机迁移到所述第二物理机器。
21.根据权利要求20所述的系统,其中管理组件还包括用户接口,所述用户接口接收向所述多个物理机器的第一子集中的物理机器迁移虚拟机的请求。
22.根据权利要求20所述的系统,其中管理组件还包括用于指示管理程序向所述多个物理机器的第二子集中的第二物理机器迁移虚拟机的装置。
23.根据权利要求20所述的系统,其中管理组件还包括用于拒绝迁移虚拟机的请求的装置。
CN2009801566305A 2008-12-19 2009-11-19 便于在多个物理机器间迁移虚拟机的系统和方法 Pending CN102317909A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/340,057 US20100161922A1 (en) 2008-12-19 2008-12-19 Systems and methods for facilitating migration of virtual machines among a plurality of physical machines
US12/340057 2008-12-19
PCT/US2009/065107 WO2010080214A1 (en) 2008-12-19 2009-11-19 Systems and methods for facilitating migration of virtual machines among a plurality of physical machines

Publications (1)

Publication Number Publication Date
CN102317909A true CN102317909A (zh) 2012-01-11

Family

ID=42109265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801566305A Pending CN102317909A (zh) 2008-12-19 2009-11-19 便于在多个物理机器间迁移虚拟机的系统和方法

Country Status (4)

Country Link
US (1) US20100161922A1 (zh)
EP (1) EP2368182B1 (zh)
CN (1) CN102317909A (zh)
WO (1) WO2010080214A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833319A (zh) * 2012-08-08 2012-12-19 浪潮集团有限公司 一种基于web的Virtualbox实时迁移方法
CN114064182A (zh) * 2021-11-17 2022-02-18 成都香巴拉科技有限责任公司 一种低成本桌面虚拟化系统及运行方法

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8214576B2 (en) * 2009-03-03 2012-07-03 Vmware, Inc. Zero copy transport for target based storage virtual appliances
US8578083B2 (en) * 2009-03-03 2013-11-05 Vmware, Inc. Block map based I/O optimization for storage virtual appliances
US8359386B2 (en) * 2009-04-16 2013-01-22 Dell Products, Lp System and method of migrating virtualized environments
US20100275200A1 (en) * 2009-04-22 2010-10-28 Dell Products, Lp Interface for Virtual Machine Administration in Virtual Desktop Infrastructure
US8438256B2 (en) * 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
US8751738B2 (en) 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US9059978B2 (en) 2010-03-23 2015-06-16 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US9286485B2 (en) * 2010-03-23 2016-03-15 Fujitsu Limited Using trust points to provide services
GB2481232A (en) * 2010-06-16 2011-12-21 Advanced Risc Mach Ltd Cache for a multiprocessor system which can treat a local access operation as a shared access operation
US9384029B1 (en) * 2010-09-30 2016-07-05 Amazon Technologies, Inc. Managing virtual computing nodes
US8909767B2 (en) * 2010-10-13 2014-12-09 Rackware, Inc. Cloud federation in a cloud computing environment
US8756696B1 (en) * 2010-10-30 2014-06-17 Sra International, Inc. System and method for providing a virtualized secure data containment service with a networked environment
US8984506B2 (en) * 2011-01-07 2015-03-17 International Business Machines Corporation Techniques for dynamically discovering and adapting resource and relationship information in virtualized computing environments
US9612855B2 (en) * 2011-01-10 2017-04-04 International Business Machines Corporation Virtual machine migration based on the consent by the second virtual machine running of the target host
US9542215B2 (en) * 2011-09-30 2017-01-10 V3 Systems, Inc. Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections
FR2974965A1 (fr) * 2011-05-06 2012-11-09 France Telecom Procede de detection d'intrusions
US8893261B2 (en) 2011-11-22 2014-11-18 Vmware, Inc. Method and system for VPN isolation using network namespaces
US8719560B2 (en) 2011-12-13 2014-05-06 International Business Machines Corporation Virtual machine monitor bridge to bare-metal booting
US9021096B2 (en) * 2012-01-23 2015-04-28 International Business Machines Corporation Performing maintenance operations on cloud computing node without requiring to stop all virtual machines in the node
CA2867302A1 (en) 2012-03-14 2013-09-19 Convergent .Io Technologies Inc. Systems, methods and devices for management of virtual memory systems
US9021479B2 (en) * 2012-10-10 2015-04-28 International Business Machines Corporation Enforcing machine deployment zoning rules in an automatic provisioning environment
US10223139B2 (en) * 2013-03-15 2019-03-05 The Trustees Of The University Of Pennsylvania Dynamically deployable wireless infrastructure in cloud environment
US9294407B2 (en) 2013-06-26 2016-03-22 Vmware, Inc. Network device load balancing in a virtualized computing environment
US9841983B2 (en) * 2013-06-28 2017-12-12 Vmware, Inc. Single click host maintenance
US10348628B2 (en) * 2013-09-12 2019-07-09 Vmware, Inc. Placement of virtual machines in a virtualized computing environment
US9584883B2 (en) 2013-11-27 2017-02-28 Vmware, Inc. Placing a fibre channel switch into a maintenance mode in a virtualized computing environment via path change
US9164695B2 (en) * 2013-12-03 2015-10-20 Vmware, Inc. Placing a storage network device into a maintenance mode in a virtualized computing environment
US9678844B1 (en) * 2014-03-25 2017-06-13 Amazon Technologies, Inc. State-tracked testing across network boundaries
US9929969B1 (en) * 2014-12-31 2018-03-27 VCA IP Holding Company LLC Tenant-based management system and method for distributed computing environments
DE102015214385A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Absichern der Anwendungsprogrammierschnittstelle eines Hypervisors
US10379893B2 (en) 2016-08-10 2019-08-13 Rackware, Inc. Container synchronization
US10346191B2 (en) * 2016-12-02 2019-07-09 Wmware, Inc. System and method for managing size of clusters in a computing environment
JP6901683B2 (ja) * 2017-09-22 2021-07-14 富士通株式会社 調整プログラム、調整装置および調整方法
US11086686B2 (en) * 2018-09-28 2021-08-10 International Business Machines Corporation Dynamic logical partition provisioning
JP7177349B2 (ja) * 2019-02-08 2022-11-24 富士通株式会社 スケジュールプログラム、スケジュール装置およびスケジュール方法
US10922283B2 (en) 2019-02-22 2021-02-16 Rackware, Inc. File synchronization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6538669B1 (en) * 1999-07-15 2003-03-25 Dell Products L.P. Graphical user interface for configuration of a storage system
CN1696902A (zh) * 2004-05-11 2005-11-16 国际商业机器公司 迁移虚拟机的系统、方法和程序
US20090150529A1 (en) * 2007-12-10 2009-06-11 Sun Microsystems, Inc. Method and system for enforcing resource constraints for virtual machines across migration

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718535B1 (en) * 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US6601233B1 (en) * 1999-07-30 2003-07-29 Accenture Llp Business components framework
US7100195B1 (en) * 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6523027B1 (en) * 1999-07-30 2003-02-18 Accenture Llp Interfacing servers in a Java based e-commerce architecture
US6609128B1 (en) * 1999-07-30 2003-08-19 Accenture Llp Codes table framework design in an E-commerce architecture
US6704873B1 (en) * 1999-07-30 2004-03-09 Accenture Llp Secure gateway interconnection in an e-commerce based environment
US6633878B1 (en) * 1999-07-30 2003-10-14 Accenture Llp Initializing an ecommerce database framework
US6438594B1 (en) * 1999-08-31 2002-08-20 Accenture Llp Delivering service to a client via a locally addressable interface
US6529948B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Multi-object fetch component
US6715145B1 (en) * 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6550057B1 (en) * 1999-08-31 2003-04-15 Accenture Llp Piecemeal retrieval in an information services patterns environment
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6571282B1 (en) * 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6742015B1 (en) * 1999-08-31 2004-05-25 Accenture Llp Base services patterns in a netcentric environment
US6502213B1 (en) * 1999-08-31 2002-12-31 Accenture Llp System, method, and article of manufacture for a polymorphic exception handler in environment services patterns
US6640244B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6640238B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Activity component in a presentation services patterns environment
US6434628B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns
US6442748B1 (en) * 1999-08-31 2002-08-27 Accenture Llp System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US6601192B1 (en) * 1999-08-31 2003-07-29 Accenture Llp Assertion component in environment services patterns
US6578068B1 (en) * 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US6606660B1 (en) * 1999-08-31 2003-08-12 Accenture Llp Stream-based communication in a communication services patterns environment
US6640249B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6477580B1 (en) * 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
US6842906B1 (en) * 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US6496850B1 (en) * 1999-08-31 2002-12-17 Accenture Llp Clean-up of orphaned server contexts
US6477665B1 (en) * 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
US6615199B1 (en) * 1999-08-31 2003-09-02 Accenture, Llp Abstraction factory in a base services pattern environment
US6339832B1 (en) * 1999-08-31 2002-01-15 Accenture Llp Exception response table in environment services patterns
US6601234B1 (en) * 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6549949B1 (en) * 1999-08-31 2003-04-15 Accenture Llp Fixed format stream in a communication services patterns environment
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6615253B1 (en) * 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6332163B1 (en) * 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US6701514B1 (en) * 2000-03-27 2004-03-02 Accenture Llp System, method, and article of manufacture for test maintenance in an automated scripting framework
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
US6502102B1 (en) * 2000-03-27 2002-12-31 Accenture Llp System, method and article of manufacture for a table-driven automated scripting architecture
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US20050125744A1 (en) * 2003-12-04 2005-06-09 Hubbard Scott E. Systems and methods for providing menu availability help information to computer users
US7761573B2 (en) * 2005-12-07 2010-07-20 Avaya Inc. Seamless live migration of virtual machines across optical networks
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US8112527B2 (en) * 2006-05-24 2012-02-07 Nec Corporation Virtual machine management apparatus, and virtual machine management method and program
US20080059556A1 (en) * 2006-08-31 2008-03-06 Egenera, Inc. Providing virtual machine technology as an embedded layer within a processing platform
US20090007099A1 (en) * 2007-06-27 2009-01-01 Cummings Gregory D Migrating a virtual machine coupled to a physical device
US7970903B2 (en) * 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
US8102781B2 (en) * 2008-07-31 2012-01-24 Cisco Technology, Inc. Dynamic distribution of virtual machines in a communication network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6538669B1 (en) * 1999-07-15 2003-03-25 Dell Products L.P. Graphical user interface for configuration of a storage system
CN1696902A (zh) * 2004-05-11 2005-11-16 国际商业机器公司 迁移虚拟机的系统、方法和程序
US20090150529A1 (en) * 2007-12-10 2009-06-11 Sun Microsystems, Inc. Method and system for enforcing resource constraints for virtual machines across migration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VMWARE: "《http://www.vmware.com/files/pdf/vmotion_info_guide.pdf》", 25 June 2008 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833319A (zh) * 2012-08-08 2012-12-19 浪潮集团有限公司 一种基于web的Virtualbox实时迁移方法
CN114064182A (zh) * 2021-11-17 2022-02-18 成都香巴拉科技有限责任公司 一种低成本桌面虚拟化系统及运行方法
CN114064182B (zh) * 2021-11-17 2024-03-26 成都香巴拉科技有限责任公司 一种低成本桌面虚拟化系统及运行方法

Also Published As

Publication number Publication date
EP2368182B1 (en) 2020-01-01
WO2010080214A1 (en) 2010-07-15
US20100161922A1 (en) 2010-06-24
EP2368182A1 (en) 2011-09-28

Similar Documents

Publication Publication Date Title
CN102317909A (zh) 便于在多个物理机器间迁移虚拟机的系统和方法
CN102334114B (zh) 用于优化确定由虚拟硬盘地址标识的数据位置的过程的系统和方法
CN102257481B (zh) 用于由管理程序控制对物理资源的访问的系统和方法
CN102272726B (zh) 便于异构处理器池虚拟化的系统和方法
CN102656578B (zh) 用于在第一机器上显示与第二机器的驱动器关联的数据而不必映射该驱动器的方法和系统
CN102257479A (zh) 用于优化运行至少一个进程的虚拟机的配置的系统和方法
CN102804140B (zh) 用于将设备驱动程序导入到客户计算环境中的方法和系统
CN102971706B (zh) 将信息从安全虚拟机重定向到不安全虚拟机
CN102763063B (zh) 用表示远程应用的用户界面元素更新停靠栏的方法和系统
CN102292698B (zh) 用于在云计算环境中自动管理虚拟资源的系统和方法
CN104246703B (zh) 为云资源指定状态
US9130903B2 (en) Unified out of band management system for desktop and server sessions
CN104704448A (zh) 本地和远程计算环境之间的反向无缝集成
CN102037444A (zh) 用于修补从通用基础磁盘映像获取的多个磁盘映像的方法和系统
US9122414B2 (en) Methods and systems for optimizing a process of archiving at least one block of a virtual disk image
CN104981776A (zh) 对个人虚拟磁盘的系统更新
CN114625481B (zh) 数据处理方法、装置、可读介质及电子设备
CN104115471A (zh) 托管的服务中的客户端带宽模拟
CN114691300A (zh) 一种虚拟机实例的热迁移方法
CN105117274A (zh) 虚拟机迁移方法和装置
US20190050350A1 (en) USB Method and Apparatus in a Virtualization Environment with Multi-VM
CN104487932B (zh) 用于远程应用和桌面的语音识别支持
EP2112596A2 (en) System and method for application and environment portability
CN102754092B (zh) 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统
Bhasarkar et al. Pendrive to Pendrive Selective Data Transfer

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120111