CN101739285B - 用于全虚拟化计算环境中图形硬件资源使用的系统和方法 - Google Patents

用于全虚拟化计算环境中图形硬件资源使用的系统和方法 Download PDF

Info

Publication number
CN101739285B
CN101739285B CN200910212032.7A CN200910212032A CN101739285B CN 101739285 B CN101739285 B CN 101739285B CN 200910212032 A CN200910212032 A CN 200910212032A CN 101739285 B CN101739285 B CN 101739285B
Authority
CN
China
Prior art keywords
main frame
virtual machine
request
graphics hardware
migration
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
CN200910212032.7A
Other languages
English (en)
Other versions
CN101739285A (zh
Inventor
F·约里奥
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101739285A publication Critical patent/CN101739285A/zh
Application granted granted Critical
Publication of CN101739285B publication Critical patent/CN101739285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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)
  • Stored Programmes (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

用于全虚拟化计算环境中的图形硬件资源使用的方法、系统和计算机程序产品。示范性实施例包括在具有第一主机和第二主机的虚拟数据中心中的图形硬件资源使用的方法,所述方法包括:接收针对所述第一主机上不可获得的图形硬件特征的请求,向供给中介器产生第一请求以便把驻留在所述第一主机上的虚拟机迁移到具有所述图形硬件特征的第二主机,把所述虚拟机和客户端连接迁移到所述第二主机,向所述供给中介器产生第二请求以便找到所述虚拟机可以迁移到的合适的主机,并把所述虚拟机迁移到所述合适的主机。

Description

用于全虚拟化计算环境中图形硬件资源使用的系统和方法
技术领域
本发明涉及图形硬件资源,并特别涉及用于全虚拟化计算环境中的图形硬件资源使用的方法、系统和计算机程序产品。
背景技术
目前,信息技术(IT)正推动服务器上计算基础设施的整合,生成具有集成的供给设施的全虚拟化数据中心。在全虚拟化数据中心中,服务器被配置成在管理程序软件层之上的虚拟机内部运行操作系统和应用程序,所述管理程序软件层是允许多个操作系统同时在主机上运行的虚拟机监视器或者虚拟化平台。当几个和可视化相关的工作负荷要求3D图形硬件加速时,有必要提供适用于虚拟化环境中的3D图形资源的管理和供给机制,这是在当前一代虚拟IT基础设施中不存在的特性。
发明内容
示范性实施例包括在具有第一主机和第二主机的虚拟数据中心中的图形硬件资源使用的方法,所述方法包括:接收针对所述第一主机上不可获得的图形硬件特征的请求,向供给中介器产生第一请求以便把驻留在所述第一主机上的虚拟机迁移到具有所述图形硬件特征的第二主机,把所述虚拟机和客户端连接迁移到所述第二主机,向所述供给中介器产生第二请求以便找到所述虚拟机可以迁移到的合适的主机,并把所述虚拟机迁移到所述合适的主机。
另外的实施例包括虚拟数据中心系统,包括:具有虚拟机的第一主机,第二主机,可通信地耦合到所述第一主机和第二主机的供给中介器,用于在所述第一和第二主机之间迁移所述虚拟机的进程,所述进程具有指令,用于:接收针对所述第一主机上不可获得的图形硬件特征的请求,向供给中介器产生第一请求以便把所述虚拟机从所述第一主机迁移到具有所述图形硬件特征的第二主机,把所述虚拟机和客户端连接迁移到所述第二主机,向所述供给中介器产生第二请求以便找到所述虚拟机可以迁移到的合适的主机,并把所述虚拟机迁移到所述合适的主机。
进一步的实施例包括用于在具有第一主机和第二主机的虚拟数据中心中提供图形硬件资源使用的计算机程序产品,所述计算机程序产品包括用于使计算机实施一种方法的指令,所述方法包括:接收针对所述第一主机上不可获得的图形硬件特征的请求,向供给中介器产生第一请求以便把驻留在所述第一主机上的虚拟机迁移到具有所述图形硬件特征的第二主机,把所述虚拟机和客户端连接迁移到所述第二主机,向所述供给中介器产生第二请求以便找到所述虚拟机可以迁移到的合适的主机,并且一旦不再需要最初不可获得的图形硬件特征则把所述虚拟机迁移到所述合适的主机。
在考察过下面的附图和详细描述之后,根据实施例的其他系统、方法,和/或计算机程序产品对本领域技术人员来说将是清晰的或变得清晰。预期所有这些额外的系统、方法,和/或计算机程序产品应该被包括本说明书中,在本发明的范围以内,并受所附权利要求保护。
作为所概括的发明的结果,在技术上我们已经取得了在整合了服务器侧的计算基础设施的计算环境中实现专用硬件资源的可视化的方案,生成了具有集成的供给设施的全虚拟化数据中心,根据针对特定硬件支持的应用请求透明地触发VM迁移。
附图说明
在说明书结尾的权利要求中特别指出并明确要求保护被视作本发明的主题。结合附图,从下面的详细描述,本发明的前述以及其他目的、特征和优点是清晰的,在附图中:
图1示出了在全虚拟化计算环境中用于图形硬件资源使用的系统的示范性实施例;
图2示出了在全虚拟化计算环境中用于实施图形硬件资源使用的示范性系统;和
图3根据示范性实施例示出了在全虚拟化计算环境中实施图形硬件资源使用的方法的流程图。
该详细描述通过参考附图举例,说明了本发明的优选实施例,以及优点和特征。
具体实施方式
示范性实施例包括用于使包括能够检测在虚拟机中运行的应用程序的3D图形加速要求的水平的软件堆栈的可视化资源的使用最大化,并触发这种虚拟机环境向和从容纳3D图形硬件的服务器池动态迁移的方法、系统和计算机程序产品。在示范性实施例中,这里描述的所述方法、系统和计算机程序产品在整合了服务器侧的计算基础设施的计算环境中实现了专用硬件资源的可视化,生成了具有集成的供给设施的全虚拟化数据中心,根据针对特定硬件支持的应用请求透明地触发VM迁移。
图1示出了在全虚拟化计算环境中用于图形硬件资源使用的系统100的示范性实施例。系统100可以是这里根据示范性实施例描述的客户端和服务器中的任何一个。这里描述的方法可以被在软件(例如固件)、硬件,或者其组合中实施。在示范性实施例中,这里描述的方法被在软件中实施为可执行程序,并由例如个人计算机、工作站、微型计算机或大型计算机的通用或专用数字计算机执行。因此,系统100包括通用计算机101。
在示范性实施例中,就硬件体系结构来说,如图1中所示,计算机101包括:处理器105、耦合到存储器控制器115的存储器110,以及一个或更多个通过本地输入/输出控制器135可通信地耦合的输入和/或输出(I/O)设备140、145(或外围设备)。例如,输入/输出控制器135例如可以是但不限于技术上已知的一个或更多个总线或其他有线或无线连接。输入/输出控制器135可以具有为了简洁而省略的用于实现通信的额外元件,例如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器。此外,本地接口可以包括用于实现前述部件之间的适当通信的地址、控制、和/或数据连接。
处理器105是用于执行软件,具体来说是存储在存储器110中的软件的硬件设备。处理器105可以是任何的定制的或者商业上可获得的处理器、中央处理单元(CPU)、与计算机101相关联的几个处理器间的辅助处理器、基于半导体的微处理器(微芯片或芯片组的形式)、宏处理器,或者一般地,任何用于执行软件指令的设备。
存储器110可以包括易失性存储器元件(例如,随机访问存储器(RAM,例如DRAM、SRAM、SDRAM等))和非易失性存储器元件(例如,ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、紧致盘只读存储器(CD-ROM)、磁盘、软盘、卡式盒、盒式带等等)中的任何一个或者组合。而且,存储器110可以包含电子、磁性、光学、和/或其他类型的存储介质。注意,存储器110可以具有分布式体系结构,其中,各种部件相互远离,但是能够被处理器105访问。
存储器110中的软件可以包括一个或更多个单独的程序,每一个程序均包含用于实施逻辑功能的可执行指令的有序列表。在图1的例子中,存储器110中的软件包括这里根据示范性实施例描述的图形硬件资源使用方法和合适的操作系统(OS)111。操作系统111实质上控制其他计算机程序的执行,例如这里所描述的图形硬件资源使用系统和方法,并提供调度、输入-输出控制、文件和数据管理、存储器管理和通信控制以及相关服务。
这里描述的图形硬件资源使用方法可以是源程序、可执行程序(目标代码)、脚本的形式,或者是包含要被执行的一组指令的任何其他实体。当源程序,然后程序需要通过可能被包括或未被包括在存储器110内的编译器、汇编器、解释器等转换以便结合OS 111正确地工作。此外,图形硬件资源使用方法可以被写成具有数据和方法类的面向对象的编程语言,或者具有例程、子例程,和/或函数的过程编程语言。
在示范性实施例中,常规的键盘150和鼠标155可以被耦合到输入/输出控制器135。其他的输出设备,例如I/O设备140、145可以包括例如打印机、扫描仪、麦克风等的设备,但不限于此。最后,I/O设备140、145还可以包括既传递输入也传递输出的设备,例如网络接口卡(NIC)或者调制器/解调器(用于访问其他文件、设备、系统或者网络)、射频(RF)或其他收发机、电话接口、网桥、路由器,等等,但不限于此。系统100还可以包括耦合到显示器130的显示控制器125。在示范性实施例中,系统100还可以包括用于耦合到网络165的网络接口160。网络165可以是基于IP的网络,用于在计算机101和任何外部服务器、客户端等之间通过宽带连接通信。网络165在计算机101和外部系统之间传送和接收数据。在示范性实施例中,网络165可以是由服务供应商管理的被管理的IP网络。网络165可以被以无线形式实施,例如使用诸如WiFi、WiMax等的无线协议和技术。网络165也可以是分组交换网络,例如局域网、广域网、城域网、互联网,或者其他类似类型的网络环境。网络165可以是固定的无线网络、无线局域网(LAN)、无线广域网(WAN)、个人区域网(PAN)、虚拟专用网(VPN)、企业网或其他合适的网络系统,并且包括用于接收和发射信号的设备。
如果虚拟计算机101是PC、工作站、智能设备等等,则存储器110中的软件还可以包括基本输入输出系统(BIOS)(为简洁而省略)。BIOS是一组在启动时初始化并测试硬件、开始OS 111,并支持数据在硬件设备间转移的重要软件例程。BIOS由虚拟机的主机管理程序提供,使得当计算机101被激活时BIOS可以被执行。
当计算机101在运行中时,处理器105被配置成执行存储在存储器110中的软件,把数据传递到存储器110,并从存储器110传递数据,并且依据所述软件一般性地控制计算机101的操作。这里描述的图形硬件资源使用方法和OS 111被处理器105整体或部分地读取,但通常是后者,或许被缓存在处理器105内,然后被执行。
如图1中所示,当这里描述的系统和方法被在实施在软件中时,所述方法可以被存储在任何计算机可读介质,例如存储设备120上,供任何和计算机相关的系统或方法使用,或者与其结合使用。在本文献的上下文中,计算机可读介质是电子的、磁性的、光学的或其他物理设备或者装置,其能够包含或者存储供任何与计算机相关的系统或方法使用,或者与其结合使用的计算机程序。这里描述的图形硬件资源使用方法可以被具体实施在任何计算机可读介质中,供指令执行系统、装置或设备使用,或者与其结合使用,所述供指令执行系统、装置或设备例如是基于计算机的系统、包含处理器的系统,或者其他能够从指令执行系统、装置或设备取指令并执行所述指令的系统。在示范性实施例中,“计算机可读介质”可以是任何能够存储、传递、传播或传输供指令执行系统、装置或设备使用,或者与其结合使用的程序的装置。例如,计算机可读介质可以是电子、磁性、光学、电磁、红外或半导体系统、装置、设备或者传播介质,但不限于此。计算机可读介质的更具体的例子(非穷举列表)将包括下列:具有一个或更多个电线的电气连接(电子)、便携式计算机软盘(磁性)、随机访问存储器(RAM)(电子)、只读存储器(ROM)(电子)、可擦除可编程只读存储器(EPROM、EEPROM,或者快闪存储器)(电子)、光纤(光学)和便携式紧致盘只读存储器(CDROM)(光学)。注意,计算机可读介质甚至可能是其上打印了程序的纸或其他合适的介质,因为程序可以通过例如对纸或其他介质的光学扫描被电子捕获,然后被编译、解释,或者如果有必要则以合适的方式不同地处理,然后被存储在计算机存储器中。
在图形硬件资源使用方法被在硬件中实施的示范性实施例中,这里描述的图形硬件资源使用方法可以用下列技术中的任何一个或者组合来实施,这些技术每一个都是本领域公知的:具有用于对数据信号实施逻辑功能的逻辑门的离散逻辑电路、具有适当的组合逻辑门的专用集成电路(ASIC)、可编程门阵列(PGA)、现场可编程门阵列(FPGA),等等。
上面描述的通用计算机可以被实施为现在描述的服务器或者客户端中的任何一个。
图2示出了在全虚拟化计算环境中用于实施图形硬件资源使用的示范性系统200。在示范性实施例中,系统200可以包括耦合到虚拟化数据中心210的客户端205。虚拟化数据中心210可以包括具有第一虚拟机220和伪图形驱动器225的第一主机215。虚拟化数据中心210还可以包括具有第二虚拟机235和图形硬件240(例如3D图形硬件)的第二主机230。虚拟化数据中心210还可以包括耦合到第一主机215和第二主机230的供给中介器245。图2仅仅示出了两个主机:第一主机215和第二主机230。但是,要理解,在虚拟化数据中心210中可以包括额外的主机(服务器)。
在示范性实施例中,为了使3D视频硬件资源(例如图形硬件240)的使用最大化,虚拟化数据中心210中只有一小部分服务器配备有3D加速视频硬件(例如第二主机230)。但是,如果客户端205向第一主机215提出请求,请求使用图形硬件(例如图形硬件240),则创建定制软件堆栈以便访问图形硬件240。在示范性实施例中,定制软件堆栈由伪图形驱动器225(例如定制图形库,支持例如OpenGL或Direct3D的API和/或虚拟视频显示适配驱动器)组成,并且其被包括在所有运行于全虚拟化数据中心210中的虚拟机220、235中。
在示范性实施例中,在所有虚拟机220、235内部运行的软件堆栈通过在图形库层或在视频驱动器级截取API调用来截取请求特定3D硬件加速设施的任何软件应用程序的API/驱动器调用(例如来自运行在客户端205上的应用)。例如,当软件堆栈检测到视频硬件加速要求时,软件堆栈触发管理程序级调用,使涉及的虚拟机220、235迁移到容纳3D视频硬件的服务器其中之一(例如,第二主机230)。在使用3D加速的应用程序终止以后,软件堆栈触发不同的管理程序级调用,从容纳3D图形硬件(例如图形硬件240)的服务器释放虚拟机220、235,并且数据中心级负荷分布系统可以重新指派虚拟机220、235在不同的物理服务器上运行。要理解,系统200支持运行各种操作系统的虚拟机220、235。
图3根据示范性实施例示出了在全虚拟化计算环境中实施图形硬件资源使用的方法300的流程图。在步骤305,客户端与在主机215上的虚拟机220上运行的应用程序交互作用,主机215运行通用硬件。在示范性实施例中,应用程序可能要求主机215不具备的先进图形硬件特征。来自该应用程序的针对先进图形硬件特征的请求被伪驱动器225(例如定制图形库,支持OpenGL或Direct3D/虚拟3D图形驱动器)检测。在步骤310,在检测到所述请求以后,主机215联系供给中介器245(在虚拟化数据中心210中位于本地或远程),并且请求把虚拟机220迁移到能够支持所述图形要求的主机。在步骤315,供给中介器245或者找到具有合适的支持的现有主机(例如第二主机230),或者供给满足应用程序需求的新的主机。在步骤320,第一主机215把虚拟机220迁移到第二主机230。同时,到第一主机215的客户端205连接也被透明地迁移到第二主机230。在步骤325,被迁移的虚拟机220在第二主机230上被作为第二虚拟机235启动。在步骤330,客户端205和现在在第二主机上运行的应用程序交互作用,直到应用程序以所述图形硬件要求完成。在步骤335,一旦要求先进图形硬件的应用程序已经完成,第二主机230联系供给中介器245以便为虚拟机235找到合适的主机。在步骤340,供给中介器以合适的主机做出响应,所述合适的主机或者是新被供给的,或者已经存在(例如第一主机215)。在步骤345,虚拟机235被迁移到例如第一主机215,任何活动的连接也被迁移。例如虚拟机220,现在是第一主机215的虚拟机220,在最适于其要求的位置中运行。在步骤350,则第二主机空闲,以便响应于所请求的将来的需求提供先进硬件支持。
要理解,虚拟化数据中心210是包括一组运行虚拟机的服务器的基础设施,一些服务器安装了真正的3D图形硬件,其他的服务器不运行真正的硬件。
为了实施虚拟化数据中心210,客户端205连接到虚拟化数据中心210,并且指派客户端希望运行的应用程序在一个或更多个虚拟机上执行,所述虚拟机在虚拟数据中心210内部的一个或更多个服务器(例如第一和第二主机215、230)上运行。
当客户端205使用在主机之一(例如第一主机215)内部的虚拟机(例如虚拟机220)上运行的应用程序,并且该应用程序调用3D加速功能时,伪驱动器225(例如,定制图形库和/或虚拟3D图形驱动器,即,第一主机215上的软件堆栈)触发虚拟机220向虚拟数据中心210内部的不同主机(例如第二主机230)迁移,所述不同的主机安装了3D图形硬件,以使所述应用程序能够使用加速的3D图形正确地运行。客户端连接被透明地路由到第二主机230,但是包含所述应用程序的虚拟机(例如迁移到第二主机230作为虚拟机235的虚拟机220)在不同的物理主机(例如第二主机230)上运行。在客户端205已经完成使用所述应用程序后,基于特定的探试程序,不再要求3D图形加速的虚拟机235被迁移回不具有先进3D图形硬件加速支持的第一主机215。
本发明的效能可以被在软件、固件、硬件,或者其某种组合中实施。
作为一个例子,本发明的一个或更多个方面可以被包括在具有例如计算机可使用介质的制造物(例如,一个或更多个计算机程序产品)中。所述介质在其中具体实施了例如计算机可读程序代码装置,用于提供和辅助本发明的效能。所述制造物可以作为计算机系统的一部分被包括,或者被单独地销售。
此外,可以提供至少一个可被机器读取的程序存储设备,具体地实施了至少一个可被所述机器执行的指令程序以执行本发明的效能。
这里绘出的流程图只是例子。不偏离本发明的精神,这里所描述的这些图或者步骤(或者操作)可能存在很多变化。例如,这些步骤可以被以不同的顺序执行,或者可以添加、删除或者修改步骤。所有这些变化被视作做出要求保护的发明的一部分。
如上所述,实施例可以被以计算机实施的过程和用于实施那些过程的装置的形式具体实施。在示范性实施例中,本发明被具体实施在由一个或更多个网络元件执行的计算机程序代码中。实施例包括计算机程序代码,所述代码包含具体实施在例如软盘、CD-ROM、硬驱动器或者任何其他计算机可读存储介质的有形介质中的指令,其中,当所述计算机程序代码被加载并由计算机执行时,所述计算机变成了用于实施本发明的装置。实施例包括计算机程序代码,例如,无论存储在存储介质中,被加载到和/或由计算机执行,或经某种传输介质上被传送,例如经电线或电缆、通过光纤,或者通过电磁辐射,其中,当所述计算机程序代码被加载到并由计算机执行时,所述计算机变成用于实施本发明的装置。当实施在通用微处理器上时,所述计算机程序代码段配置所述微处理器以生成特定逻辑电路。
虽然已经参考示范性实施例描述了本发明,但是本领域技术人员将理解,不偏离本发明的范围,可以做出各种变化,并且其元素可被等同物替换。此外,可以做出很多修改,以使具体情况或者材料适应于本发明的教导而不偏离其实质范围。因此,预期本发明不限于作为预计用于实现本发明的最佳实施方式公开的具体实施例,相反,本发明将包括所有落入所附权利要求范围内的实施例。而且,术语第一、第二等的使用不代表任何顺序或者重要性,相反,术语第一、第二用于把一个元件与另一个进行区分。此外,术语“一种”的使用不代表数量的限制,而是代表存在至少一个被提到的项目。

Claims (14)

1.一种在具有第一主机和第二主机的虚拟数据中心中的图形硬件资源使用方法,包含:
通过伪驱动器接收针对所述第一主机上不可获得的图形硬件特征的请求;
向供给中介器产生第一请求以便把驻留在所述第一主机上的虚拟机迁移到具有所述图形硬件特征的所述第二主机;
把所述虚拟机和客户端连接迁移到所述第二主机;
向所述供给中介器产生第二请求以便找到所述虚拟机可以迁移到的合适的主机;和
把所述虚拟机迁移到所述合适的主机。
2.如权利要求1所述的方法,其中,针对所述图形硬件特征的请求在所述第一主机上的伪图形驱动器/库上被截取。
3.如权利要求1所述的方法,其中,所述图形硬件特征由驻留在所述虚拟机上的应用程序实施。
4.如权利要求3所述的方法,其中,响应于把所述虚拟机迁移到所述第二主机,所述应用程序在所述第二主机上运行。
5.如权利要求3所述的方法,其中,所述第一请求由所述第一主机产生,并且所述第二请求由所述第二主机产生。
6.如权利要求5所述的方法,其中,所述合适的主机是所述第一主机。
7.如权利要求6所述的方法,其中,响应于所述应用程序不再要求所述图形硬件特征,所述虚拟机迁移到所述第一主机。
8.一种在具有第一主机和第二主机的虚拟数据中心中的图形硬件资源使用系统,包含:
配置为通过伪驱动器接收针对所述第一主机上不可获得的图形硬件特征的请求的装置;
配置为向供给中介器产生第一请求以便把驻留在所述第一主机上的虚拟机迁移到具有所述图形硬件特征的所述第二主机的装置;
配置为把所述虚拟机和客户端连接迁移到所述第二主机的装置;
配置为向所述供给中介器产生第二请求以便找到所述虚拟机可以迁移到的合适的主机的装置;和
配置为把所述虚拟机迁移到所述合适的主机的装置。
9.如权利要求8所述的系统,其中,针对所述图形硬件特征的请求在所述第一主机上的伪图形驱动器/库上被截取。
10.如权利要求8所述的系统,其中,所述图形硬件特征由驻留在所述虚拟机上的应用程序实施。
11.如权利要求10所述的系统,其中,响应于把所述虚拟机迁移到所述第二主机,所述应用程序在所述第二主机上运行。
12.如权利要求10所述的系统,其中,所述第一请求由所述第一主机产生,并且所述第二请求由所述第二主机产生。
13.如权利要求12所述的系统,其中,所述合适的主机是所述第一主机。
14.如权利要求13所述的系统,其中,响应于所述应用程序不再要求所述图形硬件特征,所述虚拟机迁移到所述第一主机。
CN200910212032.7A 2008-11-21 2009-11-06 用于全虚拟化计算环境中图形硬件资源使用的系统和方法 Active CN101739285B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/275,451 US8266618B2 (en) 2008-11-21 2008-11-21 Graphics hardware resource usage in a fully virtualized computing environment
US12/275,451 2008-11-21

Publications (2)

Publication Number Publication Date
CN101739285A CN101739285A (zh) 2010-06-16
CN101739285B true CN101739285B (zh) 2013-07-17

Family

ID=42197568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910212032.7A Active CN101739285B (zh) 2008-11-21 2009-11-06 用于全虚拟化计算环境中图形硬件资源使用的系统和方法

Country Status (3)

Country Link
US (1) US8266618B2 (zh)
CN (1) CN101739285B (zh)
TW (1) TW201030621A (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745173B1 (en) * 2011-12-30 2014-06-03 hopTo Inc. Client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
US9344401B2 (en) * 2009-02-04 2016-05-17 Citrix Systems, Inc. Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment
US8506402B2 (en) * 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
US8405666B2 (en) * 2009-10-08 2013-03-26 Advanced Micro Devices, Inc. Saving, transferring and recreating GPU context information across heterogeneous GPUs during hot migration of a virtual machine
US8970603B2 (en) 2010-09-30 2015-03-03 Microsoft Technology Licensing, Llc Dynamic virtual device failure recovery
US9384029B1 (en) * 2010-09-30 2016-07-05 Amazon Technologies, Inc. Managing virtual computing nodes
US9069622B2 (en) * 2010-09-30 2015-06-30 Microsoft Technology Licensing, Llc Techniques for load balancing GPU enabled virtual machines
US8966477B2 (en) * 2011-04-18 2015-02-24 Intel Corporation Combined virtual graphics device
US10264058B1 (en) 2011-06-30 2019-04-16 Emc Corporation Defining virtual application templates
US10042657B1 (en) * 2011-06-30 2018-08-07 Emc Corporation Provisioning virtual applciations from virtual application templates
US8766990B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Server computing system for and method of providing cross-platform remote access to 3D graphics applications
US8838749B1 (en) 2011-12-30 2014-09-16 hopTo Inc. Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US8769052B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications
CN102725736B (zh) * 2011-12-31 2014-03-12 华为技术有限公司 基于虚拟化技术的图形显示方法及系统
US8914583B1 (en) 2012-03-31 2014-12-16 Emc Corporation System and method for improving cache performance
US8909886B1 (en) * 2012-03-31 2014-12-09 Emc Corporation System and method for improving cache performance upon detecting a migration event
US8966190B1 (en) 2012-03-31 2015-02-24 Emc Corporation System and method for assigning control of a logical unit number
JP5955148B2 (ja) 2012-07-27 2016-07-20 キヤノン株式会社 画像形成装置及び仮想マシンプログラム
TWI482118B (zh) 2012-10-18 2015-04-21 Wistron Corp 處理圖形運算負載平衡之方法及系統
US9251115B2 (en) * 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US20140351811A1 (en) * 2013-05-24 2014-11-27 Empire Technology Development Llc Datacenter application packages with hardware accelerators
US9929918B2 (en) * 2013-07-29 2018-03-27 Alcatel Lucent Profile-based SLA guarantees under workload migration in a distributed cloud
US9870268B2 (en) * 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
EP3053041B1 (en) * 2013-10-03 2019-03-06 Telefonaktiebolaget LM Ericsson (publ) Method, system, computer program and computer program product for monitoring data packet flows between virtual machines, vms, within a data centre
US9336039B2 (en) * 2014-06-26 2016-05-10 Vmware, Inc. Determining status of migrating virtual machines
US10509688B1 (en) * 2017-06-29 2019-12-17 Parallels International Gmbh System and method for migrating virtual machines between servers
CN109062665A (zh) * 2018-07-26 2018-12-21 郑州云海信息技术有限公司 一种虚拟机桌面环境配置方法、装置及系统
US11545288B2 (en) 2020-04-15 2023-01-03 Northrop Grumman Systems Corporation Superconducting current control system
US11907748B2 (en) * 2021-04-23 2024-02-20 VMware LLC Secure graphics processing unit (GPU) virtualization using sandboxing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
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
US7644407B2 (en) 2004-03-05 2010-01-05 Intel Corporation Method, apparatus and system for seamlessly sharing a graphics device amongst virtual machines
US8274518B2 (en) 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
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
US7761612B2 (en) * 2006-12-07 2010-07-20 International Business Machines Corporation Migrating domains from one physical data processing system to another
US7856549B2 (en) * 2007-01-24 2010-12-21 Hewlett-Packard Development Company, L.P. Regulating power consumption
US7970903B2 (en) * 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
US7743389B2 (en) * 2007-11-06 2010-06-22 Vmware, Inc. Selecting between pass-through and emulation in a virtual machine environment
US7925923B1 (en) * 2008-01-31 2011-04-12 Hewlett-Packard Development Company, L.P. Migrating a virtual machine in response to failure of an instruction to execute
US9032397B2 (en) * 2008-05-28 2015-05-12 Hewlett-Packard Development Company, L.P. Virtual machine migration with direct physical access control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
H. Andres Lagar-Cavilla et al..VMM-Independent Graphics Acceleration.《VEE "07 Proceedings of the 3rd international conference on Virtual execution environments》.2007,33-43. *

Also Published As

Publication number Publication date
US8266618B2 (en) 2012-09-11
TW201030621A (en) 2010-08-16
CN101739285A (zh) 2010-06-16
US20100131944A1 (en) 2010-05-27

Similar Documents

Publication Publication Date Title
CN101739285B (zh) 用于全虚拟化计算环境中图形硬件资源使用的系统和方法
US11461125B2 (en) Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure
CN107506258B (zh) 用于数据备份的方法和设备
CN107534571B (zh) 用于管理虚拟网络功能的方法、系统和计算机可读介质
US7823023B2 (en) Test framework for testing an application
US11327821B2 (en) Systems and methods to facilitate infrastructure installation checks and corrections in a distributed environment
US8650556B2 (en) Virtual machine asynchronous patch management
US20220050711A1 (en) Systems and methods to orchestrate infrastructure installation of a hybrid system
US10430172B2 (en) Re-configuration in cloud computing environments
US10114665B2 (en) Communication node upgrade system and method for a communication network
US11163669B1 (en) Measuring test coverage during phased deployments of software updates
CN110741352B (zh) 虚拟网络功能管理系统和管理方法及计算机可读存储设备
CN110196722B (zh) 云主机批量管理方法、系统、设备及存储介质
CN110149409B (zh) 云主机元数据服务管理方法、系统、设备及存储介质
US10789111B2 (en) Message oriented middleware with integrated rules engine
CN109688191B (zh) 流量调度方法及通信装置
US8027817B2 (en) Simulation management within a grid infrastructure
US10509688B1 (en) System and method for migrating virtual machines between servers
US20190317845A1 (en) Device based automated tool integration for lifecycle management platform
US9898389B2 (en) Debugging a transaction in a replica execution environment
WO2019222941A1 (zh) 用于评估应用部署的方法、设备、计算机程序产品和可读介质
CN110221910B (zh) 用于执行mpi作业的方法和装置
CN111338866A (zh) 基于影子分身虚机的云主机压力测试方法及系统
CN115220869A (zh) 资源配置方法、装置、设备、介质
US20180150336A1 (en) Management system and control method

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