CN101390079A - 迁移拥有诸如硬件设备等资源的虚拟机 - Google Patents

迁移拥有诸如硬件设备等资源的虚拟机 Download PDF

Info

Publication number
CN101390079A
CN101390079A CNA2007800068178A CN200780006817A CN101390079A CN 101390079 A CN101390079 A CN 101390079A CN A2007800068178 A CNA2007800068178 A CN A2007800068178A CN 200780006817 A CN200780006817 A CN 200780006817A CN 101390079 A CN101390079 A CN 101390079A
Authority
CN
China
Prior art keywords
resource
port
request
access
described resource
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
Application number
CNA2007800068178A
Other languages
English (en)
Other versions
CN101390079B (zh
Inventor
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of CN101390079A publication Critical patent/CN101390079A/zh
Application granted granted Critical
Publication of CN101390079B publication Critical patent/CN101390079B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

一种计算设备具有第一和第二虚拟机(VM)以及分配给第一VM的资源。对该资源的每一访问请求被转发到该资源直到第一VM被保存或迁移。之后,每一访问请求被转发给一保持队列。当该资源处理了被转发给它的所有访问请求之后,该资源被重新分配给第二VM,并且在该保持队列处的每一访问请求被转发给第二VM然后被转发给该资源。因此,对该资源的所有访问请求甚至在该资源从第一VM移除并被分配给第二VM之后也由该资源来处理,并且之后可以完成第一VM的保存或迁移。

Description

迁移拥有诸如硬件设备等资源的虚拟机
技术领域
本发明涉及可用于将拥有诸如硬件设备或另一物理设备等资源的虚拟机从第一机器或平台迁移到第二机器或平台的方法和机制。更具体而言,本发明涉及允许在不丢失与资源有关的任何状态信息的情况下迁移这一虚拟机的这一方法和机制。
背景
如应当理解的,虚拟机是出于仿真硬件系统的目的而在计算设备等上操作的软件构造等。通常,但不必然地,虚拟机是应用程序等,并且在计算设备上用于主存用户应用程序等,同时将这一用户应用程序与该计算设备或该计算设备上的其它应用程序隔离开。虚拟机的一种不同的变型例如可以是对多个不同的计算设备中的每一个编写的,使得为该虚拟机编写的任何用户应用程序可在不同计算设备的任一个上操作。由此,并不需要针对每一不同计算设备的用户应用程序的不同变型。
用于计算设备的新体系结构和新软件现在允许单个计算设备实例化并运行多个分区,每一分区可用于实例化一虚拟机以便进而主存其上可实例化一个或多个应用程序的操作系统的一个实例。通常,但不必然地,计算设备包括具有担当监督应用程序或“超集管理程序”的虚拟机监控程序等的虚拟化层,其中虚拟化层监督和/或以其它方式管理每一虚拟机的管理方面,并担当每一虚拟机和该虚拟机外部的世界之间的可能链接。
特别地,计算设备上的一个特定虚拟机可能需要访问与该计算设备相关联的资源。如可以理解的,这一资源可以是可与计算设备相关联的任何种类的资源。例如,资源可以是储存和检索数据的存储设备,且一般将出于任何目的采用存储设备。同样,资源可以是诸如网络、打印机、扫描仪、网络驱动器、虚拟驱动器、服务器等的任何其它资产。因此,不管资源是什么,虚拟机实际上都可具有对由这些资源提供的服务的访问。
在实例化了多个分区的计算设备中,可将该计算设备的任何特定的资源动态地分配给特定分区/虚拟机(以下称为“虚拟机”或“VM”),使得特定VM可直接控制这些资源并服务来自计算设备上的其它VM的对资源的请求。这一特定VM因此实际上是提供资源能力的主机,被称为为“拥有”该特定资源的资源主机VM(“VM-H”)。类似地,这一VM-H向另一VM提供资源服务,而另一VM实际上是使用这些能力的客户机,被称为资源客户VM(“VM-C”)。由此,VM-C和VM-H相组合实现了需要使用特定资源的操作。
在计算设备上操作的特定VM-C通常被构造为如同真实机器一样操作。即,访问特定资源的特定VM-C通常如同该特定资源可通过对其的直接请求来访问那样运作。因此,情况可以是VM-C构造了此类请求所针对的驱动程序的路径或栈(以下称为“栈”),不同之处在于该特定资源在该栈的末端。然而,如已经确定的,VM-C实际上并不是真实的机器,并且特定资源实际上不在该栈的末端。
因此,情况可以是资源由虚拟化层/虚拟机监控程序仿真为在栈的末端。在现实中,虚拟化层将对资源的请求转发给拥有或能够访问该资源的VM-H。类似地,情况可以是VM-C可以被赋予其中该VM-C知道其虚拟存在的受启发的能力,并且通过“受启发的”栈来发送对特定资源的请求,在该“受启发的”栈的末端是将VM-C与拥有或能够访问该资源VM-H相连接的VM总线或其它通信路径,其中VM总线绕过虚拟化层。同样类似地,情况可以是具有受启发的能力的VM-C通过VM-C和VM-H之间如用VM总线来实现的虚拟管道来发送对特定资源的请求。不管采用了什么通信协议,VM-C都通过VM-H来访问特定资源,且因此由VM-C发送的对特定资源的每一请求都遵循通过对应的VM-H到该特定资源的路径。
特别地,对于拥有特定资源的VM-H,则应当理解,这一VM-H可以通过被分配给该VM-H的用于该资源的适当的适配器来直接访问该资源。通常,但不必然地,适配器是VM-H的计算设备上的一个硬件或软件,其中这一硬件或软件将资源接口到VM-H。例如,这一适配器可以是网络接口卡或视频卡,或软件等价物。有了对这一适配器的直接访问,VM-H因此能以程度相对较高的效率和性能来利用该资源。此处要注意,特定资源可具有多个对应的适配器,其每一个都可能被分配给一特定的VM-H,且因此多个VM-H可拥有一特定资源。然而,至少在通常情况系,在任一时刻,仅一个VM-H可被分配给或“拥有”一特定适配器。无论如何,通常可以假定对特定资源的所有权等价于对特定适配器的资源的所有权。
VM的一个特点是VM作为一虚拟构造可以被随意地停止和重启,并且VM在被停止时可以被随意地保存、检索和重启。特别地,在特定计算设备上实例化的VM是可被整洁地打包的单一软件构造,因为该软件构造包括与该VM有关的所有数据,包括与该VM有关的操作数据和状态信息。结果,第一计算设备上的VM可以被移动或“迁移”到第二计算设备,这通过在第一计算设备上停止该VM、将停止的VM移动到第二设备、并在第二计算设备上重启所移动的VM等来实现。更一般地,VM能以类似的方式从第一平台迁移到第二平台,其中平台表示不同的计算设备或同一计算设备的不同配置。在后一情况下,应当理解,如果例如添加了附加的存储器、改变了处理器、提供了附加的输入设备、移除了选择设备等,则计算设备可具有不同的配置。
然而,注意,有时并非所有涉及VM的状态信息都被包括在该VM的软件构造内。特别地,拥有资源或其适配器的VM-H可能具有同该资源或其适配器一起储存的涉及该资源的特定状态信息。仅作为一个实例,如果VM-H拥有的资源是网络,且该VM-H拥有的相应的适配器是网络接口卡,则情况可以是诸如对网络的某些读和写命令等状态信息至少在被处理之前临时被储存在该网络接口卡中。作为另一示例,如果资源是具有所包括的适配器的光盘读取驱动器,则同样情况可以是诸如对该驱动器的某些读命令等状态信息被储存在这一驱动器中。作为又一示例,如果资源是打印机而对应的适配器包括打印机假脱机程序,则同样情况可以是诸如对打印机的某些写命令等状态信息被储存在这一假脱机程序中。
无论如何,可以理解,当VM的状态信息的一部分没有被包括在该VM的软件构造中时,诸如当VM-H拥有资源并随该资源一起储存了状态信息的情况,则将VM从第一平台迁移到第二平台变得更困难。特别地,这一迁移在资源处的状态信息被处理之前不应发生,使得在资源处的这一状态信息不会丢失,也不会以其它方式与VM永久分离。
由此,存在对当VM-H要从第一平台迁移到第二平台时处理在其所拥有的资源处的VM-H的状态信息的需求。特地地,存在对这样一种方法和机制的需求,通过该方法和机制,在资源处的状态信息可在迁移之前在其普通操作中从资源删除,或者可被储存以供VM-H在迁移之后检索,或者可被另一VM-H处理。
概述
以上需求至少部分地由本发明来满足,在本发明中,一种计算系统具有用于提供资源服务的资源,以及其上实例化了第一和第二虚拟机(VM)的计算设备。每一VM主存其上可实例化一个或多个应用程序的操作系统的一个实例。第一VM最初通信地耦合到该资源,且该资源最初被分配给第一VM,使得第一VM最初拥有该资源以及由其提供的服务。该第一VM是该计算设备上能够被保存并能从第一平台迁移到第二平台的软件构造。
该第一VM包括一资源栈,该资源栈对应于资源,并且根据通过这一资源栈发送的访问请求来访问资源;通信地耦合到该资源的第一端口;通信地耦合到通信介质的第二端口;以及通信地耦合到资源栈、第一端口和第二端口的端口重定向器。端口重定向器转发来自资源栈的每一访问请求,以便在第一和第二端口之一处排队。
特别地,端口重定向器转发来自资源栈的每一访问请求以便在第一端口处排队,直到第一VM被指示来保存或迁移。第一端口处的每一访问请求进而被进一步转发到资源以供该资源处理。当第一VM被指示来保存或迁移时,之后,端口重定向器将来自资源栈的每一访问请求转发到第二端口。第二端口处的每一访问请求进而仅在该资源处理了在第一端口处排队的所有访问请求并且之后被移除以便不再被第一VM拥有之后才被进一步转发。
第二VM随后通信上耦合到资源,并且该资源在其从第一VM移除之后随后被分配给第二VM,使得第二VM随后拥有该资源以及由其提供的服务。第二VM作为资源的所有者通过通信介质通信地耦合到第一VM的第二端口,并且第二端口处的每一访问请求进而通过通信介质被进一步转发给第二VM,然后进而通过第二VM被进一步转发给资源以便由该资源处理。因此,来自第一VM的资源栈的所有访问请求进而甚至在该资源从第一VM移除并被分配给第二VM之后由该资源来处理,并且之后可以完成保存或迁移。
附图简述
以上概述以及以下本发明实施例的详细描述在结合附图阅读时能够被更好地理解。出于说明本发明的目的,在附图中示出目前优选的实施例。然而,如应理解的,本发明不限于所示的精确安排和手段。在附图中:
图1是表示其中可实现本发明的示例性非限制计算环境的框图;
图2是表示具有其中可实现本发明的各种计算设备的示例性网络环境的框图;
图3是示出根据本发明的各实施例的运行多个分区的计算设备的框图,该多个分区包括具有拥有特定资源并为其提供资源服务的虚拟机(VM-H)的主机分区,以及具有采用VM-H的资源服务的虚拟机(VM-C)的客户机分区;
图4是更详细地示出图3的VM-H耦合到该VM-H所拥有的资源的框图;
图5是更详细地示出根据本发明的一个实施例的图3的VM-H耦合到该VM-H所拥有的资源的框图;以及
图6是示出根据本发明的一个实施例的关于图5的VM-H所执行的用于在确保对资源的所有访问请求都被正确地处理的同时执行VM-H的保存或迁移的关键步骤的流程图。
发明详述
计算机环境
图1及以下讨论旨在提供对其中可实现本发明的合适的计算环境的简要概括描述。然而,应当理解,构想了所有种类的手持式、便携式和其它计算设备来结合本发明使用。尽管以下描述了通用计算机,但这仅是一个示例。由此,本发明可在其中蕴含了极少或最小客户机资源的联网的主存服务的环境,例如其中客户机设备仅用作浏览器或到万维网的接口的联网环境中实现。
尽管并非所需,但本发明可经由开发者使用的,和/或包括在网络浏览软件中的应用程序编程接口(API)来实现,该网络浏览软件将在诸如程序模块等由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。此外,本领域的技术人员可以理解,本发明可以用其它计算机系统配置来实施。适用于本发明的其它众所周知的计算系统、环境和/或配置包括但不限于,个人计算机(PC)、自动提款机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费者电子设备、网络PC、小型机、大型计算机等等。本发明也可以在其中任务由通过通信网络链接或其它数据传输介质的远程处理设备来执行的分布式计算环境中实践。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
因此,图1示出了其中可实现本发明的合适的计算系统环境100的一个示例,尽管如上所述,计算系统环境100仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
参见图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型总线结构中的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、外围部件互连(PCI)总线(也称为小背板(Mezzanine)总线)以及PCI Express。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例而非局限,通信介质包括诸如有线网络或直接线链接或光纤链接等有线介质,以及诸如声学、RF、红外、光学、以任何波长工作的相控阵天线、以任何波长工作的定向或非定向电磁发射机和接收机以及其它无线介质等无线介质。上述的任意组合应该包含在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常被存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性的计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141,对可移动、非易失性磁盘152进行读写的磁盘驱动器151,以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。
上文讨论并在图1中示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线121的用户输入接口160连接到处理单元121,但是也可由诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构连接。
监视器191或其它类型的显示设备也经由诸如视频接口190等接口连接到系统总线121。诸如北桥(Northbridge)等图形接口182也可连接到系统总线121。北桥是与CPU或主机处理单元120通信的芯片组,并承担了加速图形端口(AGP)通信的责任。一个或多个图形处理单元(GPU)184可以与图形接口182通信。在这一点上,GPU 184一般包括诸如寄存器存储等片上存储器存储,并且GPU 184与视频存储器186通信。然而,GPU 184仅是协处理器的一个示例,且因此计算机110中可包括各种协处理设备。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121,而视频接口190又与视频存储器186通信。除监视器191之外,计算机也可包括其它外围输出设备,如扬声器197和打印机196,它们通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。
本领域的普通技术人员可以理解,计算机110或其它客户机设备可作为计算机网络的一部分来部署。在这一点上,本发明涉及具有任意数量的存储器或存储单元以及在任意数量的存储单元或卷上发生的任意数量的应用程序和进程的任何计算机系统。本发明可应用于具有部署在具有远程或本地存储的网络环境中的服务器计算机和客户计算机的环境。本发明也可应用于具有编程语言功能、解释和执行能力的独立计算设备。
分布式计算便于通过计算设备和系统之间的直接交换共享计算机资源和服务。这些资源和服务包括信息交换、高速缓存存储和文件的盘存储。分布式计算利用网络连接,允许客户机利用它们的集体力量来使整个企业受益。在这一点上,各种设备可具有可交互以蕴含用于可信图形流水线的本发明的认证技术的应用程序、对象或资源。
图2提供了示例性的网络化或分布式计算环境的示意图。分布式计算环境包括计算对象10a、10b等,以及计算对象或设备110a、110b、110c等。这些对象可包括程序、方法、数据存储、可编程逻辑等等。这些对象可包括诸如PDA、电视机、MP3播放器、电视机、个人计算机等的相同或不同设备的各部分。每一对象可通过通信网络14与另一对象通信。该网络本身可包括向图2的系统提供服务的其它计算对象和计算设备。根据本发明的一个方面,每一对象10或110可包含可以请求用于可信图形流水线的本发明的认证技术的应用程序。
还可以理解,诸如110c等对象可以主存在另一计算设备10或110上。因此,尽管所示的物理环境可以将所连接的设备示为计算机,但是这样的说明仅是示例性的,并且该物理环境可以被替换地描述或描绘成含有诸如PDA、电视机、MP3播放器等的各种数字设备,以及诸如接口、COM对象等软件对象。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可以由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络。
在家庭网络环境中,有至少四个全异的网络传输媒体,其每一个可支持一种唯一的协议,这些媒体如电力线、数据(无线和有线)、语音(如,电话)和娱乐媒体。诸如电灯开关和电器设备等大多数家庭控制设备可使用电力线来连接。数据服务可通过宽带(如,DSL或电缆调制解调器)进入家庭,并可在家庭内使用无线(如,HomeRF或802.11B)或有线(如,家庭PNA、Cat5、甚至是电力线)连接来访问。语音话务可通过有线(如,Cat3)或无线(如,蜂窝电话)进入家庭,并可在家庭中使用Cat3连线来分布。娱乐媒体可通过卫星或电缆进入家庭,并通常在家庭中使用同轴电缆来分布。IEEE 1394和DVI也作为用于媒体设备群集的数字互联而浮现。可作为协议标准浮现的所有这些网络环境和其它环境可被互联来形成可通过因特网连接到外部世界的内联网。简言之,存在各种全异的源用于数据的存储和传输,并因此向前发展,计算设备需要走在数据处理流水线的所有部分处保护内容的方式。
“因特网”通常指使用TCP/IP协议套件的网络和网关的集合,该协议在计算机联网领域中是公知的。TCP/IP是“传输控制协议/网际协议”的缩写。因特网可被描述为由处理允许用户通过网络交互和共享信息的联网协议的计算机互连的地理上分布的远程计算机网络的系统。由于这类广泛分布的信息共享,诸如因特网等远程网络至今发展成一种开放式系统,开发者可对该开放式系统设计用于执行专用操作或服务的软件应用程序,在本质上没有限制。
由此,网络基础结构启用了诸如客户机/服务器、对等或混合体系结构等大量网络拓朴结构。“客户机”是使用它无关的另一类或组的服务的一个类或组中的成员。由此,在计算时,客户机是进程,即,粗略地而言是一组请求由另一程序提供的服务的指令或任务。客户机进程利用所请求的服务,而不必“知道”有关其它程序或服务本身的任何工作细节。在客户机/服务器体系结构中,尤其是网络化系统中,客户机通常是访问由另一计算机,如服务器提供的共享网络资源的计算机。在图2的示例中,计算机110a、110b等可以被认为是客户机,而计算机10a、10b等可以被认为是服务器,其中服务器10a、10b等维护随后在客户机计算机110a、110b等中复制的数据。
服务器通常是可通过诸如因特网的远程网络访问的远程计算机系统。客户机进程可以在第一计算机系统中活动,而服务器进程可以在第二计算机系统中活动,它们通过通信介质彼此通信,从而提供分布式功能并允许多个客户机利用服务器的信息收集能力。
客户机和服务器可使用由协议层提供的功能彼此通信。例如,超文本传输协议(HTTP)是一种结合万维网(WWW)使用的常见协议。通常,计算机网络地址,如统一资源定位符(URL)或网际协议(IP)地址,可用于彼此标识服务器或客户机计算机。网络地址可被称为统一资源定位符地址。例如,通信可在通信介质上提供。特别地,客户机和服务器可经由TCP/IP连接而彼此耦合,以便进行高容量通信。
由此,图2示出了其中可采用本发明的具有通过网络/总线与客户机计算机通信的服务器的示例性网络化或分布式环境。更详细地,根据本发明,多个服务器10a、10b等经由通信网络/总线14互连,通信网络/总线14可以是LAN、WAN、内联网、因特网等,它具有多个客户机或远程计算设备110a、110b、110c、110d、110e等,如便携式计算机、手持式计算机、瘦客户机、联网设备或其它设备,如VCR、TV、烤箱、灯、加热器等等。由此可以构想,本发明可应用于对于其希望处理、储存或呈现来自可信源的安全内容的任何计算设备,以及对于其希望呈现由虚拟机生成的高性能图形的任何计算设备。
例如,在其中通信网络/总线14是因特网的网络环境中,服务器10可以是客户机110a、110b、110c、110d、110e等通过诸如HTTP等多种已知协议中的任一种与其通信的web服务器。服务器10也可用作客户机110,这可以是分布式计算环境的特征。通信可以在适当时是有线或无线的。客户机设备110可以通过或不通过通信网络/总线14通信,并可具有与其相关联的独立通信。例如,在TV或VCR的情况下,可以有或没有其控制的网络化方面。每一客户机计算机110以及服务器计算机10可以具备各种应用程序模块或对象135,并具有对各种类型的存储元件或对象的连接或访问,在这些存储元件或对象上可储存文件,或者可向其下载或迁移文件的各部分。由此,本发明可以用于具有可访问计算机网络/总线14或与其交互的客户机计算机110a、110b等,以及可与客户机计算机110a、110b等交互的服务器计算机10a、10b等,以及其它设备111和数据库20的计算机网络环境中。
分区的计算设备
现在转向图3,计算设备10包括或能够访问用于向计算设备10提供资源服务的特定资源12。这一计算设备10、资源12和资源服务可以是任何适当的计算设备、资源和资源服务,而不背离本发明的精神和范围。例如,计算设备10可以是诸如台式或膝上型计算机等具有硬盘驱动器作为提供数据存储服务的资源12的个人计算机。同样,计算设备10可以是诸如便携式音频或视频播放器等具有显示屏作为提供显示服务的资源12的便携式回放机器。类似地,计算设备10可以是具有数据通信网络作为提供通信服务的资源12的服务器机器。类似地,服务器机器本身可以是资源12。注意,资源12可以是一个特定的硬件、用于访问一个特定硬件的适配器、远程服务、本地服务、其组合等等。
重要的是,计算设备10被配置为运行多个分区,其中每一分区可用于实例化一虚拟机以便进而主存其上可实例化一个或多个应用程序的操作系统的实例。如可以见到的,在这一计算设备10中,计算设备10的特定资源12被分配给一特定的分区或虚拟机14(以下称为VM 14),使得该特定VM 14可直接控制这一特定资源12。这一特定VM 14因此是提供资源能力的主机(“VM-H 14”)。类似地,这一VM-H 14向一个或多个其它VM 16提供资源服务,每一其它VM实际上是使用这些服务的客户机(“VM-C 16”)。通常,每一VM-C 16和VM-H 14通过诸如虚拟机(VM)总线18等管道或通道进行通信以完成资源相关操作。
VM总线18可被建立为计算设备10上其本身中以及其本身的对象,或者也可以改为被建立为不在其本身的存在中或不是其本身的存在的概念对象,而不背离本发明的精神和范围。在后一情况下,应当理解,当VM 14、16选择在其间建立通信时,这一概念VM总线18被表现为VM 14、16之间的通信管道。特别地,这一VM总线18的表现可以被认为是在VM 14、16选择在其间进行通信其间当VM 14各自建立了用于该通信的必要服务并实际上采用了这些服务来如此通信时出现。在这一情况下,通信可在计算设备10内的任何适当的通信介质上发生,而不背离本发明的精神和范围。
图3的计算设备10及其每一VM 14、16可以在功能上被操作来同时包括用户模式和内核模式,但是这些模式并不被认为是对本发明的目的是绝对必需的。无论如何,可以理解,用户模式是其中执行代码被硬件禁止执行某些操作(例如写入未被分配给该代码的存储器)的一般非特许的状态。一般而言,这一禁止的操作是可能会使VM 14、16的操作系统不稳定或可能会构成安全威胁的操作。在操作系统方面,用户模式是其中运行代码被内核禁止执行可能危险的操作(诸如写入系统配置文件、杀死其它进程、重启系统等)的类似的非特许执行模式。
还可以理解,内核模式或特许模式是操作系统和相关核心组件在其中运行的模式。在内核模式中运行的代码对于分配给VM/分区14、16的系统存储器和资源有不受限制的访问。一般而言,运行在内核模式中的代码的数量出于安全性和简洁性两个目的而被最小化。概括而言,计算设备10的用户大多直接通过用户模式和其中操作的应用程序来与其接口,而计算设备10大多直接通过内核模式来与包括特定资源12在内的资源接口。
迁移拥有硬件资源12的VM-H 14
如上所述,VM 14、16作为虚拟构造能够被随意地停止、保存、检索和重启。结果,第一平台上所保存的VM 14、16可以被移动或“迁移”到第二平台,其中平台表示不同的计算设备或同一计算设备的不同配置。由此,例如为web服务器的VM 14、16可以被停止在第一物理机器上运行、被迁移、并在第二物理机器上重启,而该web服务器的任何客户机甚至都不知道该web服务器被移动。进行了这一迁移之后,第一物理机器然后可离线以便进行维护或重新配置而不中断其上运行的工作。另外,这一迁移允许一组物理机器动态地平衡其负载。类似地,表示用户的个人工作空间的VM 14、16可由用户在工作时、在家里等在计算设备12之间移动。
然而,注意,有时并非所有涉及VM的状态信息都被包括在该VM 14、16的软件构造内。特别地,拥有资源12(其是一个硬件或其适配器)的VM-H14可以具有与该资源12一起储存在涉及该资源12的特定状态信息。在特别是VM-H14的状态信息的一部分没有被包括在该VM-H 14的软件构造内的情况下,则将VM-H14从第一平台迁移到第二平台变得更困难。特别地,这一迁移在资源12处的VM-H14的状态信息被处理之前不应发生,使得在资源12处的这一状态信息不会丢失,也不会以其它方式与VM-H 14永久分离。
在VM-H 14能够容忍在使用硬件资源12时的中断的一个情形中,资源12处的状态信息本质上是相对良好的,并且可能在停止VM-H 14以便进行其迁移之前被处理并从资源12中删除。例如,如果资源12是打印机而状态信息涉及一打印作业,则可允许该打印作业完成,使得打印机使用了该状态信息,之后可剥夺VM-H 14对打印机资源12的所有权并且可迁移该VM-H 14。
在VM-H 14能够容忍在使用硬件资源12时的中断的另一个情形中,资源12处的状态信息本质上略微不良,并且可能在停止VM-H 14以便进行其迁移之前被移动到VM-H 14。例如,如果资源12是与之前相同的打印机而状态信息涉及与之前相同的打印作业,但是该打印作业不能在合理的时间量之内完成,则该打印作业可被停止,并且可在停止VM-H 14以便进行其迁移之前将涉及该打印作业的其余状态信息移动到VM-H 14,之后同样可对VM-H 14剥夺其对打印机资源12的所有权并且可迁移该VM-H 14。然后,在迁移之后,假设VM-H 14再次拥有了同一打印机资源12,则涉及该打印作业的其余状态信息可从VM-H移动到这一打印机以完成该打印作业。
然而,情况可能是不能作出上述假设。由此,VM-H 14在迁移之后所拥有的打印机资源12可能是诸如完全不同类型的打印机等完全不同的打印机资源12,或者是诸如具有已升级的打印控制器的同一打印机等略微不同的打印机资源12。重要的是,在任一情况下,涉及该打印作业的其余状态信息都有可能无法从VM-H 14移动到这一打印机来完成打印作业,因为不同的打印机资源不再能够识别或处理这一状态信息。
还要注意,拥有资源12的VM-H 14可以包括资源处的状态信息,这包括作业列表、内部状态机器变量等。如果VM-14被任意地停止和重启,则资源12处的状态信息将有可能不同,并且未完成的请求最好也只不过是被丢弃,这可导致VM-14崩溃。最坏情况下,用于资源12的驱动程序等将错误地理解情形,并且在对资源12编程时将破坏资源12中的存储器,这同样会导致VM-H14崩溃,并且还有可能会导致计算设备10上的其它VM 14、16也崩溃。
由此,如果能够确保VM-H 14在迁移之后将在同一计算设备10上并且用对其可用的相同的资源12来重启,则使VM-H 14的操作系统在迁移VM-H 14之前将所有状态信息移出资源12并将其与VM-H 14一起储存将是足够的。然后,当VM-H在迁移之后被重启时,VM-H 14的操作系统可以将所储存的状态信息移回资源12以便由其进一步处理。
然而,如果没有这一保证,或者如果工作负荷阻止了在迁移之前移动所有状态信息,则可以理解,通常在迁移之前将资源12从VM-H 14的所有权中移出或“弹出”是足够的。可以理解,这一弹出可以在对VM-H 14的操作系统的适当的请求时实现。在本发明的一个实施例中,这一弹出是在停止要迁移的VM-H 14之前命令的,这导致VM-H 14的操作系统仅将被认为是重要的、并且有可能少于资源12处的全部状态信息的状态信息移出资源12并移入VM-H14中。应当理解,在弹出之后,资源12没有涉及VM-H 14的状态信息,且无论在迁移之前还是之后都不再被VM-H 14拥有,也不再对其可用。由此,在迁移之后,VM-H 14将不会试图将任何状态信息移回资源12中,并且因此避免了从这一移动引发的任何可能的问题。当然,如果可用且需要,VM-H 14将必须重新获取资源12的所有权。
然而,在再一情形中,VM-H 14不能容忍在使用硬件资源12时的中断,且因此资源12处的状态信息本质上是相对关键的。例如,如果资源12是诸如盘驱动器等VM-H 14采用的主存储设备,则对其的访问对于VM-H 14是关键的,否则VM-H 14的操作系统将崩溃。由此,在这一情形中,没有可从VM-H14剥夺盘驱动器资源12的所有权的时间点,因为VM-H 14必须始终能够将状态信息定向到该资源12。因此,在这一情形中,必须采用某一机制来暂停资源12的操作,并从其中移除VM-H 14的任何状态信息,同时仍允许VM-H 14将状态信息定向到该资源12。
现在转向图4,可以看到,典型的VM-H 14通过存储设备栈22来访问诸如存储设备资源12等资源12,该存储设备栈可包括文件系统驱动程序、分区驱动程序、卷驱动程序、盘驱动程序等等。当然,本发明不限于存储设备资源12,而可以是任何其它类型的资源12而不会背离本发明的精神和范围,在这一情况下,可以采用适当的相应栈22等来进行访问。
如图所示,图4的存储设备栈22通过端口驱动程序24等(以下称为“端口24”或其等价物)来与存储设备资源12通信。可以理解,典型地,端口24将来自存储设备栈22的一般的、理想化的命令和请求转换成对存储设备资源12专用的命令或请求。注意,如果例如存储设备资源12包括VM-H 14的操作系统驻留其上的存储器的一部分,则这一存储设备资源12必须连续地操作以接受分页请求等,否则VM-H 14的操作系统将崩溃。简言之,在这一情况下,至少在VM-H 14必须始终能够将访问请求等形式的状态信息定向到存储设备资源12的限度内,对存储设备资源12的访问不能被中断。
因此,现在转向图5,在本发明的一个实施例中,图4的单个端口24用一对端口24a、24b来替换,其中端口24a通信地将存储设备栈22与存储设备资源12耦合,而端口24b通过通信介质通信地将存储设备栈22与替换目的地耦合。如图所示,通信介质是VM总线18,并且替换目的地假定是在计算设备10上操作的另一VM 14、16。然而,该替换目的地和通信介质可以是任何适当的替换目的地和通信介质而不背离本发明的精神和范围。
重要的是,在本发明的一个实施例中,如图5所见,每一端口24a、24b通过端口重定向器26耦合到存储设备栈22。可以理解,端口重定向器26将对存储设备资源12的每一访问请求或者通过端口24a定向到该存储设备资源12,或者通过端口24b和通信介质/VM总线18定向到替换目的地。原则上,端口重定向器26以下述方式确定如何定向每一访问请求。
现在转向图6,在本发明的一个实施例中,可以看到,示出了可用于迁移拥有诸如存储设备资源12等资源12的VM-H 14的操作序列。还要注意,该操作序列也可用于保存这一VM-H 14而不必迁移它。不论是迁移还是保存,在VM-H14的正常运行时操作期间,存储设备资源12由VM-H 14拥有,端口重定向器26将来自VM-H 14的存储设备栈22的访问请求等通过端口24a定向到存储设备资源12,并且端口24a和存储设备资源12将这些访问请求等排队并对其进行处理(步骤601)。然而,在由任一适当的源执行了VM-H 14的保存或迁移之后(步骤603),端口重定向器26将来自VM-H 14的存储设备栈22的访问请求等定向到端口24b(步骤605)。
最初,端口24b将所接收到的访问请求等排队,而端口24a和存储设备资源12就地处理任何剩余的请求等(步骤607)。由此,端口24a和存储设备资源12处的所有访问请求都被允许完成,之后对存储设备资源12没有剩余任何涉及该资源的状态信息(步骤609)。关键的是,尽管在端口24a和存储设备资源12处的这些访问请求等被允许完成,但进一步的访问请求等在端口24b处排队,并且这些访问请求等没有以会导致VM-H 14的操作系统崩溃的方式被拒绝、忽略或抛弃。
重要的是,一旦端口24a和存储设备资源12处的所有访问请求等都已完成并且对存储设备资源12没有剩下涉及该资源的任何状态信息,则从(第一)VM-H 14移除存储设备资源12,使得(第一)VM-H 14不再拥有该起源,这可能通过弹出等来实现(步骤611),并且这一存储设备资源12然后被分配给另一VM 14、16,该另一VM 14、16现在是拥有存储设备资源12的第二VM-H14(步骤613)。可以理解,执行这一移除和分配动作可以用任何适当的方式并由任何适当的实体来完成,而不背离本发明的精神和范围。
同样重要的是,在本发明的一个实施例中,一旦存储设备资源12被分配给第二VM-H 14,则端口24b通过VM总线18等耦合到这一第二VM-H 14(步骤615),并且在该端口24b处排队的访问请求等然后被转发给该第二VM-H 14以便在其现在拥有的存储设备资源12处完成(步骤617)。现在应当理解,在某一点,所有必要的访问请求等都已由第一VM-H 14的存储设备栈12在所执行的其保存或迁移期间通过端口24a或端口24b发送到存储设备资源12,并且存储设备资源12已经处理了所有这些发送的访问请求等(步骤619)。因此,第一VM-H 14的保存或迁移可以在知道以下情况的前提下完成:来自VM-H14的对存储设备资源12的所有访问请求都已或者通过端口24a直接地或者通过端口24b和第二VM-H 14间接地处理,并且存储设备资源12已从第一VM-H14弹出而没有保留涉及该第一VM-H 14的任何状态信息(步骤621)。
现在应当理解,在迁移之后向第一VM-H 14重新分配存储设备资源12本质上是在步骤603-621处执行的移除的反操作。因此,这一重新分配的细节无需在此详细阐明。
注意,第一VM-H 14的端口24b不应当将其接收到的一般命令转换成专用命令。由此,并不要求第二VM-H 14的存储设备栈22是超过等价于第一VM-H14的存储设备栈22的功能的任何东西。特别地,由于两个栈22都发出一般命令,因此在第二VM-H 24的端口24处接收到的一般命令可由其变为专用命令。
结论
尽管本发明至少部分地是按照主机和客户机VM 14、16来阐明的,但是可以理解,本发明针对要迁移拥有硬件的分区或VM的任何情形。尽管这一迁移VM有可能是主机到其它客户机的迁移,但是情况不一定是这一迁移VM总是主机到其它客户机的迁移。此外,可以理解,至少根据此处所使用的术语,在迁移过程中,VM-H 14在放弃了对硬件设备的所有权之后实际上变为VM-C16。因此,应当理解,尽管本发明是适当地在主机和客户机VM 14、16的上下文中公开的,但更正确地是应在不考虑诸如“主机”或“客户机”等术语的情况下,即按照要迁移的拥有硬件的VM,并且在这样做之前将这一硬件的所有权放弃给另一VM,来考虑本发明。
实现结合本发明执行的过程所需的编程相当直接,且应对相关编程公众是显而易见的。特别地,构造图5所示的每一对象以及实现图6的步骤所必需的编程基于对每一这样的对象和步骤所必需的功能应是显而易见的。从而,这样的编程不附在此。因此,可采用任何特定的编程来实现本发明,而不背离其精神和范围。
在本发明中,提供了一种当VM-H要从第一平台保存或迁移到第二平台时处理在其所拥有的资源12处的VM-H的状态信息的方法和机制。资源12处的状态信息可在迁移之前在其普通操作中从资源12中删除,或者可被储存以供VM-H 14稍后在迁移之后检索,或者可被另一VM-H 14处理。
应当理解,可对上述实施例作出改变而不脱离其发明概念。作为一个实例,尽管本发明是按照具有VM-H 14的状态信息的硬件资源12来阐明俄,但该资源12也可以是具有VM-H 14的状态信息的另一类型的资源,诸如软件资源12,而不背离本发明的精神和范围。作为另一示例,尽管本发明是按照用于访问资源12的栈22和端口24来阐明的,但这一栈22和端口24旨在不仅分别包括栈和端口,而且还包括用于访问资源12的任何其它适当的访问机制,所有这些都不背离本发明的精神和范围。从而应理解,本发明不限于所公开的具体实施例,而是旨在覆盖落入如由所附权利要求书定义的本发明的精神和范围内的修改。

Claims (15)

1.一种计算系统,包括:
用于提供资源服务的资源;以及
计算设备,所述计算设备具有在其上实例化的第一和第二虚拟机(VM),每一VM用于主存其上可实例化一个或多个应用程序的操作系统的实例,所述第一VM最初通信地耦合到所述资源,且所述资源最初被分配给所述第一VM,使得所述第一VM最初拥有所述资源及其提供的服务,所述第一VM是所述计算设备上能够从第一平台保存和迁移到第二平台的软件构造,所述第一VM包括:
资源栈,所述资源栈对应于所述资源,并根据通过所述资源栈发送的访问请求来访问所述资源;
通信地耦合到所述资源的第一端口;
通信地耦合到通信介质的第二端口;
通信地耦合到所述资源栈、所述第一端口和所述第二端口的端口重定向器,所述端口重定向器转发来自所述资源栈的每一访问请求以便在所述第一端口和所述第二端口之一处排队,
所述端口重定向器转发来自所述资源栈的每一访问请求以便在所述第一端口处排队直到所述第一VM被指示来保存或迁移,所述第一端口处的每一访问请求进而被进一步转发给所述资源以便由所述资源处理,
所述端口重定向器在所述第一VM被指示来保存或迁移之后将来自所述资源栈的每一访问请求转发到所述第二端口,并且之后,所述第二端口处的每一访问请求进而仅在所述资源已处理了所述第一端口处排队的所有访问请求并在之后被移除以使所述第一VM不再拥有之后才被进一步转发,
在从所述第一VM移除了所述资源之后,所述第二VM随后通信地耦合到所述资源且所述资源随后被分配给所述第二VM,使得所述第二VM随后拥有所述资源及其提供的资源服务,所述第二VM作为所述资源的所有者通过所述通信介质通信地耦合到所述第一VM的第二端口,在所述第二端口处的每一访问请求进而通过所述通信介质被进一步转发给所述第二VM,然后进而通过所述第二VM被进一步转发给所述资源以便由所述资源处理,
由此,来自所述第一VM的资源栈的所有访问请求进而甚至在所述资源从所述第一VM移除并被分配给所述第二VM之后由所述资源处理,并且之后可完成所述保存或迁移。
2.如权利要求1所述的计算系统,其特征在于,所述计算设备还具有VM总线作为通信地耦合所述第一VM和所述第二VM的所述通信介质。
3.如权利要求1所述的计算系统,其特征在于,所述计算设备具有所述资源。
4.如权利要求1所述的计算系统,其特征在于,所述资源是硬件资源。
5.如权利要求1所述的计算系统,其特征在于,所述资源是存储设备资源。
6.一种关于计算系统的方法,所述计算系统包括:
用于提供资源服务的资源;以及
计算设备,所述计算设备具有在其上实例化的第一和第二虚拟机(VM),每一VM用于主存其上可实例化一个或多个应用程序的操作系统的实例,所述第一VM最初通信地耦合到所述资源,且所述资源最初被分配给所述第一VM,使得所述第一VM最初拥有所述资源及其提供的服务,所述第一VM包括:
资源栈,所述资源栈对应于所述资源,并根据通过所述资源栈发送的访问请求来访问所述资源;
通信地耦合到所述资源的第一端口;
通信地耦合到通信介质的第二端口;
通信地耦合到所述资源栈、所述第一端口和所述第二端口的端口重定向器,所述端口重定向器转发来自所述资源栈的每一访问请求以便在所述第一端口和所述第二端口之一处排队,
所述方法包括:
所述端口重定向器最初转发来自所述资源栈的每一访问请求以便在所述第一端口处排队,在所述第一端口处排队的每一访问请求进而被进一步转发到所述资源以便由所述资源来处理;
首先确定所述第一VM已被指示来从第一平台保存或迁移到第二平台,并在所述首先确定之后,所述端口重定向器转发来自所述资源栈的每一访问请求以便在所述第二端口处排队;以及
其次确定所述资源已经处理了在所述第一端口处排队并由其转发的所有访问请求,并在所述其次确定之后:
移除所述资源以使所述第一VM不再拥有所述资源,并随后将所述第二VM通信地耦合到所述资源并将所述资源分配给所述第二VM,使得所述第二VM拥有所述资源及其提供的服务;
通过所述通信介质将所述第二VM作为所述资源的所有者通信地耦合到所述第一VM的第二端口;
进而通过所述通信介质进一步将在所述第二端口处排队的每一访问请求进一步转发给所述第二VM,每一访问请求然后通过所述第二VM进而被进一步转发给所述资源以便由所述资源处理,由此进而甚至在所述资源从所述第一VM移除并被分配给所述第二VM之后来自所述第一VM的资源栈的所有访问请求也被所述资源来处理;以及
之后完成所述第一VM的保存或迁移。
7.如权利要求6所述的方法,其特征在于,所述计算设备还具有VM总线作为通信地耦合所述第一VM和所述第二VM的所述通信介质。
8.如权利要求6所述的方法,其特征在于,所述通信设备具有所述资源。
9.如权利要求6所述的方法,其特征在于,所述资源是硬件资源。
10.如权利要求6所述的方法,其特征在于,所述资源是存储设备资源。
11.一种关于计算系统的方法,所述计算系统包括:
用于提供资源服务的资源;以及
计算设备,所述计算设备具有在其上实例化的第一和第二虚拟机(VM),每一VM用于主存其上可实例化一个或多个应用程序的操作系统的实例,所述第一VM最初通信地耦合到所述资源,且所述资源最初被分配给所述第一VM,使得所述第一VM最初拥有所述资源及其提供的服务,所述方法包括:
最初将对所述资源的每一访问请求转发给所述资源以便由所述资源来处理;
首先确定所述第一VM已被指示来从第一平台保存或迁移到第二平台,并在所述首先确定之后,将对所述资源的每一访问请求转发给一保持队列;以及
其次确定所述资源已经处理了转发给其的所有访问请求,并在所述其次确定之后:
移除所述资源以使所述第一VM不再拥有所述资源,并随后将所述第二VM通信地耦合到所述资源并将所述资源分配给所述第二VM,使得所述第二VM拥有所述资源及其提供的服务;
将所述第二VM作为所述资源的所有者通信地耦合到所述保持队列;
进一步将在所述保持队列处的每一访问请求转发给所述第二VM,每一访问请求然后通过所述第二VM进而被进一步转发给所述资源以便由所述资源处理,由此甚至在所述资源从所述第一VM移除并被分配给所述第二VM之后对所述资源的所有访问请求也被所述资源来处理;以及
之后完成所述第一VM的保存或迁移。
12.如权利要求11所述的方法,其特征在于,所述计算设备还具有VM总线作为通信地耦合所述第一VM和所述第二VM的通信介质。
13.如权利要求11所述的方法,其特征在于,所述通信设备具有所述资源。
14.如权利要求11所述的方法,其特征在于,所述资源是硬件资源。
15.如权利要求11所述的方法,其特征在于,所述资源是存储设备资源。
CN2007800068178A 2006-02-28 2007-02-13 迁移拥有诸如硬件设备等资源的虚拟机 Active CN101390079B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/363,897 2006-02-28
US11/363,897 US7788665B2 (en) 2006-02-28 2006-02-28 Migrating a virtual machine that owns a resource such as a hardware device
PCT/US2007/004047 WO2007100508A1 (en) 2006-02-28 2007-02-13 Migrating a virtual machine that owns a resource such as a hardware device

Publications (2)

Publication Number Publication Date
CN101390079A true CN101390079A (zh) 2009-03-18
CN101390079B CN101390079B (zh) 2010-12-08

Family

ID=38445496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800068178A Active CN101390079B (zh) 2006-02-28 2007-02-13 迁移拥有诸如硬件设备等资源的虚拟机

Country Status (11)

Country Link
US (4) US7788665B2 (zh)
EP (1) EP1989635B1 (zh)
JP (1) JP5214473B2 (zh)
KR (1) KR20080106908A (zh)
CN (1) CN101390079B (zh)
AU (1) AU2007221339A1 (zh)
BR (1) BRPI0708338A8 (zh)
CA (1) CA2638765A1 (zh)
NO (1) NO20083314L (zh)
RU (1) RU2436149C2 (zh)
WO (1) WO2007100508A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226496A (zh) * 2013-03-15 2013-07-31 杭州华三通信技术有限公司 业务同步处理方法和多核设备
CN103699389A (zh) * 2013-12-30 2014-04-02 北京大学 一种基于编译选项的Linux内核模块关系提取方法
CN105431858A (zh) * 2013-06-14 2016-03-23 微软技术许可有限责任公司 安全特权等级执行和访问保护
CN108139933A (zh) * 2015-10-20 2018-06-08 微软技术许可有限责任公司 物理和虚拟电话移动性

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788665B2 (en) 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
CA2547047A1 (en) * 2006-05-15 2007-11-15 Embotics Corporation Management of virtual machines using mobile autonomic elements
US7823152B2 (en) * 2006-06-06 2010-10-26 International Business Machines Corporation System and method for collaborative hosting of applications, virtual machines, and data objects
US8819242B2 (en) * 2006-08-31 2014-08-26 Cisco Technology, Inc. Method and system to transfer data utilizing cut-through sockets
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
JP5246388B2 (ja) * 2007-03-08 2013-07-24 日本電気株式会社 仮想装置構成システム、及びその方法
US20080244574A1 (en) * 2007-03-26 2008-10-02 Vedvyas Shanbhogue Dynamically relocating devices between virtual machines
CA2699562A1 (en) * 2007-09-20 2009-03-26 C&S Operations, Inc. Computer system
US8468521B2 (en) * 2007-10-26 2013-06-18 Netapp, Inc. System and method for utilizing a virtualized compute cluster as an execution engine for a virtual machine of a storage system cluster
CA2645716C (en) * 2007-11-21 2017-05-30 Datagardens Inc. Adaptation of service oriented architecture
US8910152B1 (en) * 2007-11-30 2014-12-09 Hewlett-Packard Development Company, L.P. Migrating a virtual machine by using a hot-plug event
US8370833B2 (en) * 2008-02-20 2013-02-05 Hewlett-Packard Development Company, L.P. Method and system for implementing a virtual storage pool in a virtual environment
US8145471B2 (en) * 2008-04-30 2012-03-27 International Business Machines Corporation Non-destructive simulation of a failure in a virtualization environment
US8201166B2 (en) * 2008-04-30 2012-06-12 Hewlett-Packard Development Company, L.P. Virtualization platform configured with virtual connect control
US9032397B2 (en) * 2008-05-28 2015-05-12 Hewlett-Packard Development Company, L.P. Virtual machine migration with direct physical access control
US7917617B1 (en) * 2008-08-14 2011-03-29 Netapp, Inc. Mitigating rebaselining of a virtual machine (VM)
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US8321878B2 (en) 2008-10-09 2012-11-27 Microsoft Corporation Virtualized storage assignment method
US8266618B2 (en) * 2008-11-21 2012-09-11 International Business Machines Corporation Graphics hardware resource usage in a fully virtualized computing environment
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US20100161922A1 (en) * 2008-12-19 2010-06-24 Richard William Sharp Systems and methods for facilitating migration of virtual machines among a plurality of physical machines
US8565118B2 (en) * 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8190769B1 (en) * 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US8054832B1 (en) 2008-12-30 2011-11-08 Juniper Networks, Inc. Methods and apparatus for routing between virtual resources based on a routing location policy
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
US8813048B2 (en) * 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8832699B2 (en) 2009-05-11 2014-09-09 Accenture Global Services Limited Migrating processes operating on one platform to another platform in a multi-platform system
US8826269B2 (en) * 2009-06-15 2014-09-02 Microsoft Corporation Annotating virtual application processes
US8429652B2 (en) * 2009-06-22 2013-04-23 Citrix Systems, Inc. Systems and methods for spillover in a multi-core system
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US9645857B2 (en) * 2009-12-17 2017-05-09 Hewlett Packard Enterprise Development Lp Resource fault management for partitions
US20110161495A1 (en) * 2009-12-26 2011-06-30 Ralf Ratering Accelerating opencl applications by utilizing a virtual opencl device as interface to compute clouds
US9110702B2 (en) * 2010-06-02 2015-08-18 Microsoft Technology Licensing, Llc Virtual machine migration techniques
US8719847B2 (en) * 2010-09-27 2014-05-06 Microsoft Corp. Management and marketplace for distributed home devices
DK2622469T3 (da) 2010-09-30 2020-02-17 Commvault Systems Inc Effektive datastyringsforbedringer, så som docking af datastyringsmoduler med begrænset funktion til et komplet datastyringssystem
US9183028B1 (en) 2010-09-30 2015-11-10 Amazon Technologies, Inc. Managing virtual computing nodes
US9104458B1 (en) * 2010-09-30 2015-08-11 Amazon Technologies, Inc. Managing virtual computing nodes using isolation and migration techniques
US9384029B1 (en) 2010-09-30 2016-07-05 Amazon Technologies, Inc. Managing virtual computing nodes
JP5594049B2 (ja) * 2010-10-18 2014-09-24 富士通株式会社 仮想計算機移動方法、コンピュータ及びプログラム
JP5681465B2 (ja) * 2010-12-02 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US8924965B2 (en) * 2011-01-07 2014-12-30 Red Hat Israel, Ltd. Memory state transfer of virtual machine-controlled peripherals during migrations of the virtual machine
US9104459B2 (en) 2011-01-07 2015-08-11 Red Hat Israel, Ltd. Memory change tracking during migration of virtual machine (VM) with VM-controlled assigned peripherals
US8490092B2 (en) * 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
US10042656B2 (en) * 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
WO2013025196A1 (en) * 2011-08-15 2013-02-21 Empire Technology Development Llc Multimodal computing device
US9372827B2 (en) 2011-09-30 2016-06-21 Commvault Systems, Inc. Migration of an existing computing system to new hardware
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
US9280380B2 (en) * 2012-02-29 2016-03-08 Red Hat Israel, Ltd. Management of I/O reqeusts in virtual machine migration
ES2439803B1 (es) * 2012-04-19 2014-10-29 Universitat Politècnica De Catalunya Procedimiento, sistema y pieza de código ejecutable para controlar el uso de recursos de hardware de un sistema informático
CN103577265A (zh) * 2012-07-25 2014-02-12 田文洪 一种云计算数据中心离线节能调度的方法与装置
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US20140181046A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to backup unprotected virtual machines
CN103051479B (zh) * 2012-12-24 2016-01-20 北京启明星辰信息技术股份有限公司 虚拟机网络控制策略的迁移处理方法及系统
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US9338254B2 (en) * 2013-01-09 2016-05-10 Microsoft Corporation Service migration across cluster boundaries
CN103116517B (zh) * 2013-01-24 2016-09-14 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置
KR102083289B1 (ko) * 2013-01-29 2020-03-02 삼성전자주식회사 마이크로서버 환경의 소프트웨어 이주 방법 및 이를 지원하는 장치
US9720712B2 (en) * 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
US9674105B2 (en) * 2013-06-19 2017-06-06 International Business Machines Corporation Applying a platform code level update to an operational node
CN103473139B (zh) * 2013-09-26 2016-06-01 四川中电启明星信息技术有限公司 虚拟机集群资源分配调度方法
US9772876B2 (en) * 2014-01-06 2017-09-26 International Business Machines Corporation Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes
JP6026705B2 (ja) * 2014-03-28 2016-11-16 株式会社Nttドコモ 更新管理システムおよび更新管理方法
US10013276B2 (en) * 2014-06-20 2018-07-03 Google Llc System and method for live migration of a virtualized networking stack
US9513946B2 (en) 2014-06-27 2016-12-06 Vmware, Inc. Maintaining high availability during network partitions for virtual machines stored on distributed object-based storage
US9367414B2 (en) 2014-06-27 2016-06-14 Vmware, Inc. Persisting high availability protection state for virtual machines stored on distributed object-based storage
US9495259B2 (en) * 2014-06-27 2016-11-15 Vmware, Inc. Orchestrating high availability failover for virtual machines stored on distributed object-based storage
US10897506B2 (en) * 2014-07-02 2021-01-19 Hewlett Packard Enterprise Development Lp Managing port connections
CN104158868B (zh) * 2014-08-06 2017-12-08 新华三技术有限公司 一种文件传输方法和管理服务器
US10296320B2 (en) * 2014-09-10 2019-05-21 International Business Machines Corporation Patching systems and applications in a virtualized environment
US9811367B2 (en) * 2014-11-13 2017-11-07 Nsp Usa, Inc. Method and apparatus for combined hardware/software VM migration
CN105677441B (zh) * 2014-11-21 2019-07-09 华为技术有限公司 虚拟机迁移方法、虚拟设施管理器及协调器
US9959157B1 (en) * 2014-12-02 2018-05-01 Amazon Technologies, Inc. Computing instance migration
US10698607B2 (en) * 2015-05-19 2020-06-30 Netapp Inc. Configuration update management
US10084873B2 (en) 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9563514B2 (en) 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
US9804873B2 (en) 2015-08-14 2017-10-31 Red Hat Israel, Ltd. Guest management of devices assigned to a virtual machine
US10430221B2 (en) 2015-09-28 2019-10-01 Red Hat Israel, Ltd. Post-copy virtual machine migration with assigned devices
US9639388B2 (en) 2015-09-30 2017-05-02 Red Hat, Inc. Deferred assignment of devices in virtual machine migration
US9933957B1 (en) * 2015-12-30 2018-04-03 EMC IP Holding Company LLC Non-disruptively migrating virtual disks using virtualization appliance
CN105718310B (zh) * 2016-01-13 2018-09-18 上海应用技术学院 一种云平台下io密集型应用的虚拟机调度方法
US9954958B2 (en) 2016-01-29 2018-04-24 Red Hat, Inc. Shared resource management
US10061528B2 (en) * 2016-05-22 2018-08-28 Vmware, Inc. Disk assignment for multiple distributed computing clusters in a virtualized computing environment
RU2644126C2 (ru) * 2016-05-31 2018-02-07 Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" Способ оптимального планирования использования виртуальных сетевых ресурсов центров обработки данных
US10210326B2 (en) * 2016-06-20 2019-02-19 Vmware, Inc. USB stack isolation for enhanced security
US10423444B2 (en) 2016-08-09 2019-09-24 Red Hat Israel, Ltd. Routing table preservation for virtual machine migration with assigned devices
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US11108858B2 (en) 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US11074138B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Multi-streaming backup operations for mailboxes
US11221939B2 (en) 2017-03-31 2022-01-11 Commvault Systems, Inc. Managing data from internet of things devices in a vehicle
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
US11294786B2 (en) 2017-03-31 2022-04-05 Commvault Systems, Inc. Management of internet of things devices
US10552294B2 (en) 2017-03-31 2020-02-04 Commvault Systems, Inc. Management of internet of things devices
US10191911B2 (en) * 2017-05-27 2019-01-29 Plesk International Gmbh Permanent website hosting on mobile devices
WO2019100014A1 (en) * 2017-11-17 2019-05-23 Duke Manufacturing Co. Food preparation apparatus having a virtual data bus
US10740479B2 (en) * 2018-01-24 2020-08-11 International Business Machines Corporation Controlling access to removable non-volatile memory device using instruction file
US10904330B2 (en) * 2018-07-10 2021-01-26 Vmware, Inc. Systems, methods and apparatus to manage services in distributed systems
US11385909B2 (en) * 2020-01-06 2022-07-12 International Business Machines Corporation Cascading data configuration and data migration
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3653159B2 (ja) * 1997-04-01 2005-05-25 株式会社日立製作所 仮想計算機システム間の仮想計算機移動制御方法
US6854115B1 (en) * 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6934755B1 (en) * 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
JP3877519B2 (ja) * 2000-12-15 2007-02-07 株式会社日立製作所 システム回復方法およびその実施計算機システム並びにその処理プログラムを記録した記録媒体
JP3426216B2 (ja) * 2001-01-19 2003-07-14 三菱電機株式会社 フォールトトレラント計算機システム
US7065549B2 (en) * 2002-03-29 2006-06-20 Illinois Institute Of Technology Communication and process migration protocols for distributed heterogeneous computing
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
DE20215241U1 (de) * 2002-10-02 2003-02-27 Wang, Huo-Pia, Changhua Bürste mit einer austauschbaren Borsteneinheit
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7424710B1 (en) * 2002-12-18 2008-09-09 Vmware, Inc. TCP/IP offloading for virtual machines
JP4256693B2 (ja) * 2003-02-18 2009-04-22 株式会社日立製作所 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
US7114153B2 (en) * 2003-09-10 2006-09-26 Qualcomm Inc. Method and apparatus for continuation-passing in a virtual machine
US7552436B2 (en) * 2003-11-25 2009-06-23 International Business Machines Memory mapped input/output virtualization
US7467381B2 (en) 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US7971203B2 (en) * 2004-03-05 2011-06-28 Intel Corporation Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
US20050216920A1 (en) 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
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
US7464019B1 (en) * 2004-07-14 2008-12-09 Unisys Corporation Method of resolving conflicts of virtualized disks between two operating environments
US7660910B2 (en) * 2004-08-30 2010-02-09 Lantronix, Inc. Secure communication port redirector
US20060184938A1 (en) 2005-02-17 2006-08-17 Intel Corporation Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
US7730486B2 (en) * 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US7797707B2 (en) * 2005-03-02 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of a domain in which a shared resource's device driver resides
US7581229B2 (en) * 2005-03-11 2009-08-25 Microsoft Corporation Systems and methods for supporting device access from multiple operating systems
CN100367210C (zh) * 2005-06-16 2008-02-06 武汉理工大学 构建单机环境下的分布式应用系统的方法
US20070039050A1 (en) * 2005-08-15 2007-02-15 Vladimir Aksenov Web-based data collection using data collection devices
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US20070143315A1 (en) * 2005-12-21 2007-06-21 Alan Stone Inter-partition communication in a virtualization environment
US7984438B2 (en) * 2006-02-08 2011-07-19 Microsoft Corporation Virtual machine transitioning from emulating mode to enlightened mode
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103226496A (zh) * 2013-03-15 2013-07-31 杭州华三通信技术有限公司 业务同步处理方法和多核设备
CN103226496B (zh) * 2013-03-15 2016-05-25 杭州华三通信技术有限公司 业务同步处理方法和多核设备
CN105431858A (zh) * 2013-06-14 2016-03-23 微软技术许可有限责任公司 安全特权等级执行和访问保护
US10198578B2 (en) 2013-06-14 2019-02-05 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
CN103699389A (zh) * 2013-12-30 2014-04-02 北京大学 一种基于编译选项的Linux内核模块关系提取方法
CN103699389B (zh) * 2013-12-30 2016-11-16 北京大学 一种基于编译选项的Linux内核模块关系提取方法
CN108139933A (zh) * 2015-10-20 2018-06-08 微软技术许可有限责任公司 物理和虚拟电话移动性

Also Published As

Publication number Publication date
BRPI0708338A2 (pt) 2011-05-24
RU2436149C2 (ru) 2011-12-10
US20100325282A1 (en) 2010-12-23
KR20080106908A (ko) 2008-12-09
US20170161103A1 (en) 2017-06-08
JP2009528620A (ja) 2009-08-06
AU2007221339A1 (en) 2007-09-07
US8769530B2 (en) 2014-07-01
CA2638765A1 (en) 2007-09-07
RU2008135084A (ru) 2010-03-10
JP5214473B2 (ja) 2013-06-19
EP1989635B1 (en) 2016-07-13
WO2007100508A1 (en) 2007-09-07
CN101390079B (zh) 2010-12-08
US9535745B2 (en) 2017-01-03
US10552208B2 (en) 2020-02-04
BRPI0708338A8 (pt) 2016-12-13
US20140317621A1 (en) 2014-10-23
NO20083314L (no) 2008-07-31
US20070204265A1 (en) 2007-08-30
EP1989635A4 (en) 2012-05-09
US7788665B2 (en) 2010-08-31
EP1989635A1 (en) 2008-11-12

Similar Documents

Publication Publication Date Title
CN101390079B (zh) 迁移拥有诸如硬件设备等资源的虚拟机
US11570271B2 (en) Differentiated smart sidecars in a service mesh
US7984438B2 (en) Virtual machine transitioning from emulating mode to enlightened mode
CN110199271B (zh) 用于现场可编程门阵列虚拟化的方法和设备
US11212374B2 (en) Managing network sockets
KR101991537B1 (ko) 자율형 네트워크 스트리밍 기법
US7941800B2 (en) Transferring data between virtual machines by way of virtual machine bus in pipe mode
CN112424765A (zh) 用于用户定义的函数的容器框架
US11650869B2 (en) Quantum computing service with local edge devices supporting multiple quantum computing technologies
KR20210071962A (ko) 디앱에서 요구하는 높은 트랜잭션 처리량을 효율적으로 블록체인에서 처리하기 위한 방법 및 시스템
US20070169012A1 (en) Asynchronous just-in-time compilation
GB2520515A (en) Publish and subscribe broker with multiple orthogonal topic trees
US20200252485A1 (en) Accelerating isochronous endpoints of redirected usb devices
US8527650B2 (en) Creating a checkpoint for modules on a communications stream
US8966019B2 (en) Application server for mainframe computer systems
US11872497B1 (en) Customer-generated video game player matchmaking in a multi-tenant environment
US20180210855A1 (en) State-based irp management for redirected device
Robertazzi et al. InfiniBand
KR20060056650A (ko) 소프트웨어를 분산 처리하기 위한 방법 및 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150430

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150430

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.