CN101512488A - 在虚拟机环境中提供硬件虚拟化的系统和方法 - Google Patents

在虚拟机环境中提供硬件虚拟化的系统和方法 Download PDF

Info

Publication number
CN101512488A
CN101512488A CNA2007800335145A CN200780033514A CN101512488A CN 101512488 A CN101512488 A CN 101512488A CN A2007800335145 A CNA2007800335145 A CN A2007800335145A CN 200780033514 A CN200780033514 A CN 200780033514A CN 101512488 A CN101512488 A CN 101512488A
Authority
CN
China
Prior art keywords
machine
virtual machine
java
application program
request
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
CNA2007800335145A
Other languages
English (en)
Other versions
CN101512488B (zh
Inventor
乔基姆·达尔斯泰特
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.)
Oracle International Corp
Original Assignee
BEA 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 BEA Systems Inc filed Critical BEA Systems Inc
Priority to CN201310505477.0A priority Critical patent/CN103530170B/zh
Publication of CN101512488A publication Critical patent/CN101512488A/zh
Application granted granted Critical
Publication of CN101512488B publication Critical patent/CN101512488B/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/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
    • 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/505Allocation 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 the load

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)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

用于在虚拟机环境中提供硬件虚拟化和资源管理的系统和方法。根据一个实施例,应用程序服务器环境包括计算机系统、应用程序服务器,和虚拟机(例如,Java虚拟机或JVM)。根据一个实施例,虚拟化层被设置在每一物理机处,包括用于在机器上划分多个虚拟机的管理程序。执行层运行单一的基于Java的应用程序,尽可能高效集中运行该应用程序。根据另一个实施例,该系统包括两个主要部件:第一,代替常用操作系统的低级执行环境;以及第二,高级资源代理,用于负责将各新的虚拟机分发给上述各层,并用于监控正在运行的虚拟机的当前资源的使用。

Description

在虚拟机环境中提供硬件虚拟化的系统和方法
版权声明
本专利文件公开的一部分包括受版权保护的内容。当专利文件或专利公开中的任意一个的复制出现在专利和商标局专利文件或记录中时,该版权所有者对此没有异议,而对于其他任何情况都保留全部版权。
优先权声明
本发明申请要求于2006年8月7日提交的美国申请号为60/821,673的临时专利申请“SYSTEM AND METHOD FORPROVIDING HARDWARE VIRTUALIZATION IN A VIRTUALMACHINE ENVIRONMENT”、以及于2007年8月7日提交的美国申请号为11/835,307号专利申请“SYSTEM AND METHOD FORPROVIDING HARDWARE VIRTUALIZATION IN A VIRTUALMACHINE ENVIRONMENT”的权益,通过引证将其结合于此。
技术领域
本发明大体涉及操作系统、应用程序服务器、和虚拟机,更具体地涉及用于在虚拟机环境中提供硬件虚拟化和资源管理的系统和方法。
背景技术
当今的许多任务关键商业应用程序已经被开发出来并被部署在基于Java的应用程序服务器(包括,例如,符合Java2企业版或J2EE规格的应用程序服务器)上。这些应用程序通常被部署在单售主RISC计算机和服务器上,以及其他昂贵的硬件平台上。由于缺乏竞争力,不认为易于得到且低成本的基于PC的服务器适于替代能以这些构造使用的高性能Java虚拟机(JVM)。最新的虚拟机环境,诸如BEA系统公司的JRockit产品,能够解决这个问题就在于可以优化这些虚拟机以用于使Java应用程序能够在低成本、基于标准的平台上以提高的可靠性和性能来运行的各种环境(包括基于PC的环境)。JRockit虚拟机是为功率需求服务器侧Java应用程序、提供较好性能、可管理性、和可靠性特别优良设计的虚拟机的一个实例。
然而,尽管当前虚拟机产品(product offering)善于提供软件虚拟化,但是,至今很少能够以低层硬件或操作系统水平支持虚拟化,或在虚拟机水平对资源进行管理,然而,仍然允许应用程序服务器控制或参与虚拟化进程。
发明内容
本文中公开了用于在虚拟机环境中提供硬化虚拟化和资源管理的系统和方法。根据实施例,包括计算机系统、应用程序服务器、及虚拟机(例如,Java虚拟机或JVM)的应用程序服务器环境被扩展为提供从应用程序服务器环境中的较高层到系统实际处理能力(power)的接口,从而可以以机器独立的方式来进行处理的分配。软件层被放置在虚拟机和提高虚拟化Java执行系统的效率的硬件之间。根据该实施例,该系统包括两个主要部件:第一,低级执行环境,其代替常用操作系统;以及第二,高级资源代理,用于负责将各新的虚拟机分发给上面的层,并用于监控正在运行的虚拟机的当前资源的使用。以此方式,低层物理机可以被划分来支持多个JVM。此外,关于CPU和其他资源分配,可以在系统内部设置目标,并且该系统可以适当地分配多个JVM。
附图说明
图1示出了根据本发明一个实施例的包括虚拟机的应用程序服务器环境的示例。
图2示出了根据本发明一个实施例的分层虚拟机构造的示例。
图3示出了根据本发明一个实施例的多层域环境的示例。
图4示出了根据本发明一个实施例的可以如何将虚拟层用于共用计算环境中的示例。
图5示出了根据本发明一个实施例的连同资源代理的裸机(bare metal)域的示例。
图6示出了根据本发明一个实施例的连同JVM代理服务器的裸机域的示例。
图7示出了根据本发明一个实施例的虚拟机环境部件的逻辑图。
图8示出了根据本发明一个实施例的用于使用虚拟化的方法的流程图。
具体实施方式
本文中公开了用于在虚拟机环境中提供硬件虚拟化和资源管理的系统和方法。根据实施例,包括计算机系统、应用程序服务器、及虚拟机(例如,Java虚拟机或JVM)的应用程序服务器环境被扩展为提供从应用程序服务器环境中的较高层到系统实际处理能力的接口,从而可以以机器独立的方式来进行进程的分配。软件层被放置在虚拟机和提高虚拟化Java执行系统的效率的硬件之间。根据该实施例,该系统包括两个主要部件:第一,低级执行环境,其代替常用操作系统;以及第二,高级资源代理,用于负责将各新的虚拟机分发给上面的层,并用于监控正在运行的虚拟机的当前资源的使用。以此方式,低层物理机可以被划分来支持多个JVM。此外,关于CPU和其他资源分配,可以在系统内部设置目标,并且该系统可以适当地分配多个JVM。
术语
本文中使用了下列术语。
域:运行在管理程序层顶部的操作系统实例。多个域可以彼此不知道地运行在同一机器上。域在本文中还可以称作客户操作系统(OS)、客户(guest)、或VM。
裸机域:根据本发明一个实施例的运行虚拟层、虚拟机和应用程序的域。(例如,在一个实施例中,裸机域包括裸机操作系统(OS)层加诸如JRockit JVM的JVM,加应用程序)。裸机域在本文中还可以称作BM域。
节点:网络中的物理机或物理计算机。
网格计算:一组一起工作一解决一个计算问题的多个节点。
共用计算:允许多个应用程序在多个物理机上有效运行的系统或环境。共用计算环境允许对各应用程序指定高级策略以帮助系统决定将哪个(些)特定应用程序列入优先地位。共用计算环境还允许用户为系统部署新的应用程序;为每个应用程序提供高级策略和/或保证;监控应用程序和机器的状态;处理指定应用程序的资源使用的快速增长;供应系统升级;以及提供高可用性。
图1示出了包括虚拟机的且可以以本发明一个实施例的方式来使用应用程序服务器环境的示例。如图1所示,应用程序服务器环境10包括应用程序服务器14(例如,由BEA系统公司开发的WebLogic服务器产品,或其他类型的应用程序服务器),以及虚拟机16(例如,还是由BEA系统公司开发的JRockit JVM,或其他类型的虚拟机)。图1还示出了常用在应用程序服务器环境中的可选部件,例如,开发环境18、用户集成部件20、或线程集成部件22。后面这些可选部件分别包括WebLogic Workshop、WebLogic Portal、和WebLogic集成部件,其中的每一个都是由BEA系统公司开发的。需要的话,还可以将其他部件添加至该环境。
图2示出了根据本发明一个实施例的虚拟机构造的更详细的示例。如图2所示,诸如JRockit JVM的典型的虚拟机16包括用于管理系统中运行的线程的线程管理部件;用于管理诸如垃圾收集的过程的存储管理部件18;代码生成部件22;以及Java模型部件24。典型的虚拟机还提供外部接口28用于对虚拟机进行管理。尽管图2示出了JRockit产品,但是很显然,在本发明的精神和范围内,还可以使用除了JRockit实现以外的其他虚拟机。
为了能够有效的进行应用程序虚拟化,就需要相应的有效硬件资源虚拟化。这使得提供诸如挂起、动态配置(live provisioning)、和动态迁移的功能是可能的。根据本发明的一个实施例,添加了抽象的额外层。这使得虚拟机被移动至相对更接近下层硬件。
图3示出了根据本发明一个实施例的多层域环境的示例。如图3所示,计算环境30包括物理计算机硬件或计算机32。该计算机可以是物理服务器、计算机、网络设备、或等同类型的计算或处理设备。计算环境包括代替典型的操作系统而在逻辑上位于处理设备顶部的虚拟化层34。根据一个实施例,虚拟化层包括执行层部件38(本文中也称作“裸机层”),和管理程序层部件40或管理程序层。当前可得到的管理程序层部件的实例包括Xen管理程序和VMWare管理程序。根据其他的实施例,还可以使用其他的管理程序层和管理程序层部件。
管理程序层插入在服务器的硬件和操作系统之间。这提供了允许每个物理服务器运行一个或多个虚拟服务器的抽象层,并有效地将操作系统及其应用程序与下层物理服务器分离。一旦已经创建了虚拟服务器镜像,其就可以运行在任意服务器上。基于同样的原理,多个虚拟服务器可以同时共享单个物理服务器或机器。实际结果是增加了整个服务器的利用,而同时满足了接收确保任何特定应用程序层性能标准的资源保证。
如进一步在图3中示出的,虚拟机16在逻辑上位于虚拟化层之上。根据一个实施例,然后在虚拟机之上的层处提供资源代理36、或一组资源代理服务模块。资源代理由应用程序服务器14和其他应用程序使用,以使用由虚拟化层提供的服务。
在一些实施例中,通过为局域网中Java应用程序提供硬件虚拟化服务可以将上述系统用作整个共用计算环境的一部分。当用在共用计算环境的上下文中时,可以提供允许网络应用程序与虚拟机连接的服务。在共用计算或多虚拟机环境中,可以提供的服务的实例包括:在网络环境中某处创建新的虚拟机或JVM的能力;资源保证,诸如最小和最大CPU、内存、或网络带宽使用;资源计量和系统温度调节装置功能;当应用程序需要更多或更少这些资源时,动态增加或减少资源的能力;诸如挂起至磁盘或从磁盘重新开始运行的应用程序(本文中称作“冻干”)的特征;克隆“冻干”应用程序的能力(类似于Unix fork-like功能,即,以新的例程特定值来例示克隆的应用程序;以及将运行的例程移动至另一计算机以进行计划的系统维护的能力。
图4示出了在共用计算环境50中可以如何使用虚拟化层的实施例的示例。如图4所示,应用程序可以使用应用程序虚拟化特征52(包括,例如,上述的资源代理服务模块或共用计算服务)来经由应用程序服务器云56来访问下层硬件虚拟化层54。根据一个实施例,应用程序服务器可以是WebLogic服务器环境,其还可以提供其他高级的服务器特征(诸如企业群集)。
图5示出了根据本发明一个实施例的连同资源代理的裸机域的示例。根据一个实施例,资源代理向应用程序服务器和在其上运行的其他软件应用程序提供子服务。这些子服务可以包括例如:获得新的JVM;提供运行在服务器上的JVM;计量特定JVM的资源;以及控制JVM的资源。根据一个实施例,用于JVM创建的主部件是资源代理68(如上所述),在该示例中,资源代理跟踪机器60、62中的哪一个可用于在其上创建新的虚拟化层例程。根据一个实施例,资源代理经纪(resource broker agent,简称RBA)64、66位于每个机器上。根据其他实施例,不需要物理机和经纪之间的任何一对一的映射,例如,单一的经纪可以覆盖多个物理机。资源代理经纪负责JVM例程70、72、74的局部创建,即,作为经纪来创建和管理同一物理机上的JVM的操作。从第一机器到第二机器或整个群集的所有外部通信首先经过资源代理,然后向相应的资源代理经纪发送请求。在此方式中,资源代理就像一个经纪池,并跟踪哪个特定经纪控制哪个特定机器,而该特定机器还具有完成来自应用程序请求的必需的可用功率。
根据一个实施例,资源代理是通用硬件抽象层。其可以以大量不同机器类型来使用。如果机器类型支持划分,则资源代理可以在需要时使用该功能来划分该机器。根据特定机器类型支持哪种特征,可以得到不同的高端功能。至少该功能应该允许以接近的资源使用目标(例如至少受限保证,受限共享和非迁移)在机器上创建新的JVM。
应该注意,尽管当将资源代理与执行层组合会使系统运行的更好,并且还将支持更大的特征范围,但是对于资源代理本身来讲,其自身不需要执行层(即,裸机层)来执行其多种操作。
应该注意,标准机,即,非虚拟机还可以被添加至资源代理,即使在这些情况下功能会减少。根据其他实施例,资源代理还可以包括对诸如Azul、Solaris Containers和其他管理程序堆栈的第三方系统的支撑。根据一个实施例,Xen域和VMWare客户也能够支持原裸机资源保证、资源共享、挂起、迁移、可热插拔、和虚拟文件系统。
JMV代理
图6示出了根据本发明一个实施例的连同可选JVM代理的裸机域的示例。如上所述,在一些实施例中,资源代理服务模块可以用作独立实体。然而,在这些实例中,不会获得与通过所有元件的组合提供的相同的资源共享和相同的资源保证。如图6所示,物理服务器机80可以在其上运行多个JVM。在一些实例中,由标准操作系统(OS)90来操纵JNI代码执行和实体设备驱动器访问。当运行在管理程序层96顶部时,建立执行层92、94以优化在其上运行的任一JVM 86、88的执行。具体地,管理程序层/执行层组合支持数据的隔离和写时复制共享以减小运行在同一物理机上的多个JVM的足印。根据一个实施例,OS层上的JVM代理82、82被提供来允许经由OS调用执行层中的功能和服务。根据其他实施例,可以使用裸机执行层而无需JVM代理。
性能监控框架-CPU能力和CPU共享
如上所述,该系统的有用特征之一是响应于应用程序请求来分配可用资源的可靠性。根据一个实施例,CPU能力是应用程序消耗了或保证具有多少CPU时间的近似。该信息然后被用于在可用机器或其他物理硬件上分配JVM。根据一个实施例,所有测量结果的单位都被认为是估计值。这些测量结果然后被用作相对测量结果(即,200CPU能力单位约为100CPU能力单位计算能力的两倍)。对于一个物理机可以产生的单位的数量来说,通常是当前使用的所有虚拟机的确切总数加上空闲单位。在一个特定机器上,相对测量结果可能会比如果考虑通过若干不同机器工作地更好并且更有意义。具体地,两个机器越是不同就越不可能会有精确的相对测量结果。目标通常在于CPU能力应该可比得上不同机器间的最远扩展可能。
系统接口和功能
表1列出了根据一个实施例的由系统提供的一些接口和功能。这些功能允许高层应用程序创建JVM以及在若干个机器(包括在集群内)上分配资源。很显然,在其他实施例中,还可以提供其他的接口和功能。
Figure A200780033514D00161
根据一个实施例,系统可以请求和测量四种类型资源中的任一个或全部,然后其可以使用这些资源来将这些资源分配到合适的JVM上。这些可以包括:CPU能力测量(如上所述);Java堆内存;网络带宽;以及磁盘I/O。其他的实施例可以提供其他类型的资源测量选项。
当请求CPU能力时,上面的层都可以设置最小量(即,必须保证可用的量)和权重。对于其他三种资源类型只能被指定最小量。基于权重所指导的先来先服务,可能提供过量。该设计选择根本上简化了优化空间,并使得服务器的布置更简单。该方法的根本原因是因为大多数的应用程序倾向于受处理限制或受内存限制(即,受内存限制如同在等待加载,不是如同需要更多的内存)。
根据一个实施例,内存堆被设计为在应用程序的需要进行请求时可展开,因此,通常不应指定最大堆尺寸。只有在系统在地址空间(其可以是完全不固定的)不足或物理内存不足时才发生内存不足错误(这可以通过移动至具有更多内存的逻辑单元、将同一机器上的VM移动至另一机器、或通过减少由其他VM使用的内存来解决)。
使用管理程序的好处
使用管理程序的好处典型地包括,管理程序在隔离方面做得很好,而操作系统(OS)进程在这方面做得不好。尤其是在进程水平难以保证对CPU最小量的要求。诸如节省系统的全部状态的挂起和重新开始的特征在OS层上的任意层也是很难的。问题在于其是具有系统状态的全部信息的仅有的层(例如,JVM可以能够跟踪打开的文件、映射的内存、原生代码中的线程等,但是在重新开始时JVM完全恢复状态是不可能的。动态迁移特征更简单:由于管理程序对硬件进行抽象,因此系统具有将运行着的系统迁移至另一逻辑单元的能力。通过JVM层之间的合作,穿过OS层到达管理程序层,这可以更有效地执行。使用管理程序还可以保证例如,可以使系统可用一定量的CPU时间,并且系统可以计量每个容器(container)正在使用多少CPU时间。
使用特定OS层的好处
在一些实施例中,使用了特殊的操作系统(OS)层。可以在许多个级(应用程序、应用程序服务器、JVM、OS)处进行内存共享。但是许多类型的共享在堆栈的某些层处执行得更有效。具体的,来自JVM和管理程序的组合支持的组合允许系统在不同JVM之间以反向叉(inverse-fork-like)方式共享内存。这意味着系统可以“在事实过后(after thefact)”告诉管理程序在不同的JVM之间一些页是相同的。管理程序于是可以以写时复制策略让这些页映射到相同的物理页。
此外,特殊的OS层使得能够执行之前不可能的一些功能,例如:OS将只处理一个进程,即运行应用程序的JVM;以及OS理解JVM并且在JVM和使得能够进行有效优化的OS之间进行精确的合作/通信。一些特征在没有OS级支持的情况下是不可能的,例如:
●在垃圾收集器在那些区中压缩时,通过使增变线程的一些页不能运行的无休止压缩;
●代替在时钟日程上旋转的精确的线程日程,该线程保持时钟。
特殊的OS层还通过OS层去除来产生一些有效性。去除OS层导致较少的暂停次数,在高连接过程期间较好的运行和低内存。
添加管理程序添加了额外的抽象级,还自然地使系统慢下来。通过去除操作系统,系统可以补偿该降慢并且可能会通过其来进行提高。通过使用管理程序以及具有作为客户OS之一安装的一般的操作系统,裸机可以避免为不同的设备写设备驱动器,并且其只是通过管理程序告诉具有操作系统的客户OS上的设备驱动程序的简单的裸机。
系统设计
根据一个实施例,系统包括资源管理服务,该服务包括作为其主要接口的Java接口。该接口的用户可以包括应用程序服务器、应用程序、和企业范围(enterprise-wide)应用程序(例如,群集应用程序)。一个实施例的实际Java API如附件A所示。
图7示出了根据本发明一个实施例的虚拟机环境部件的逻辑示意图100。虚拟化层理想地是尽可能的小。如图7所示,根据一个实施例,这减小至管理程序(例如,Xen或VMWare,或其他管理程序)的薄层、操作环境(例如,裸机执行层)的薄层、以及执行引擎(例如,JRockit或另一JVM)的fatterblob,所有的这些都运行非常大的应用程序(例如,WebLogic服务器或另一应用程序服务器、加上客户应用程序)。
在一些实施例中,假设了准虚拟化管理程序(即,在OS和管理程序之间存在合作,OS是知道管理程序的),则假设建立了OS层;然而,其他实施例可以使用合作的OS和管理程序。
图8示出了根据本发明一个实施例的使用虚拟化的方法的流程图。如图8所示,在步骤120中,系统接收来自应用程序(例如,应用程序服务器,或在应用程序服务器上运行的客户应用程序)访问资源的请求,该请求必须由JVM提供。在步骤122中,资源代理基于例如可用性或当前负载来确定哪个机器出的哪个资源代理经纪最适于处理该请求。在步骤124中,资源代理经纪使用虚拟化层创建或管理在该机器上运行的JVM,其中,虚拟化层包括执行层和管理程序。
附件A
下列代码限定了以本发明一个实施例使用的实际Java API。显而易见地是,在本发明精神和范围内的其他实施例中可以限定其他API。
Resource Broker API
package com.bea.jvmbroker;
public interface JVMBroker
{
  /**
   *创建一个新的JVM例程。JVM例程受限于指定机器并且具有UUID并且在下文中可以共用。
   *JVM还没有使用任何资源
   */
  public JVM createJVM(JVMRequest rc);
  /**
   *创建一个新的JVM例程。
   *@注意这是一个看见createJVM的更多信息的方便的方法。
   */
  public JVM createJVM();
  /**
   *从镜像创建一个新的JVM例程。该镜像是之前挂起的JVM。
   *当被启动时,JVM将以挂起的状态被启动并且对resume()的调
   *用将被需要以重新开始执行
   *@注意这是一个看见createJVM的更多信息的方便的方法。
   */
   public JVM createJVMFromImage(JVMRequest rc,File image);
}
/**
*该接口表示来自JVM资源代理的JVM句柄
 *透视的
 *该接口用于配置JVM。在这点上,你具有其中之一,JVM限于一
 *台机器,但是它仍未启动。
*/
public interface JVM
{
   /**
    *获取JVM的IP地址。这典型的是一个IP地址。
    *
    */
   public InetAddress[]getAddresses();
   /**
    *设置JVM的启动命令
    *
    *@param name-启动的主类名称
    *@param args-传送至主类的主方法的论据
    */
   public void setStartCommand(String name,String[] args)throwsIllegalStateException;
   /**
    *安装预订安装点调用路径。路径必须是有效的
    *所述机器上的预订安装点。路径为类似UNIX的路径
    *
    *即,安装("/wls")或安装("/wls90");
    */
   public void mount(String path);
   /**
    *启动JVM。该方法只能调用一次。
    */
   public void start()throws IllegalStateException;
   /**
    *挂起运行的JVM。
    */
   public void suspend();
   /**
    *重新开始执行挂起的JVM。
    */
   public void resume();
   /**
    *被调用来增加或减少该JVM的经同意的资源使用
    */
  public boolean changeRequirements(JVMRequirements rc);
  /**
   *获取对当前资源使用的估计
   *
   *该信息可以用于在更高的级进行群集决定。
   *
   *例如,如果你正使用与你请求相同的或更多的能力单位,则该
   *应用程序可能被能力单位限制(类似于CPU/内存限制),从
   *而可能的话在本地请求更多的PU
   *可选地,如果应用程序没有使用其全部能力单位,
   *则瓶颈可以位于别处,并且请求更多的能力或
   *启动更多的例程不会有帮助。
   */
  public JVMResources getResourceUsage();
  /**
   *获取该JVM所在的物理机。此处的物理表示资源代理认为什么是物理机。
   *一些其他层当然会欺骗我们相信虚拟机是物理机
   */
  public Machine getMachine();
  /**
   *将节省对指定文件的挂起镜像(该文件被指定为来自存储镜像调用者的本地路径)
   *如果JVM位于另一机器上而不是调用者,则该操作完成该操
    *作需要很多秒,这是因为必须将数据从该服务器移动至调用
    *者(或调用者所指的任何文件服务器)
   *只有在JVM挂起时才可以调用该方法
   */
  public void storeImage(File f)throws IllegalStateException;
  /**
   *注册对JVM事件感兴趣的收听者
   */
  public void registerListener(JVMListener j1);
}
/**
 *这是用于指定对JVM的局域网宽请求的接口,其在其可以使用多
 *少资源以及更多的全局请求(诸如其可以关于其他JVM来定位)
 *之前都可以启动
 *
*对于JVM本地请求还可以见JVMRequirements。
 *
 *@见com.bea.jvmbroker.JVMRequirements
 *@作者Joakim Dahlstedt(joakim.dahlstedt@bea.com)
 */
public interface JVMRequest{
   /**
    *获取JVM资源请求
    */
   public abstract JVMRequirements getJVMRequirements();
   /**
    *为该JVM设置JVM资源请求
    */
   public abstract void setJVMRequirements(JVMRequirements r);
   /**
    *获取该JVM所属的JVM组。该组通常用于通知资源代理该组
    *JVM为同一应用程序服务
    */
   public abstract JVMGroup getJVMGroup();
   /**
    *获取该JVM所属的JVM组。该组通常用于通知资源代理该组
    *JVM为同一应用程序服务
    */
   public abstract void getJVMGroup(JVMGroup jg);
   /**
    *获取该JVM必须在其上运行的特定机器
    */
   public abstract Machine getMachine();
   /**
    *请求该JVM在特定机器上运行。
    *
    *这是不被推荐的行为。它将严格限制资源代理能力以规划资
    *源来充分利用机器。
    *
    *可以使用setMachine的情况:当特定机器只是可以访问某种服
    *务的机器时(就是说它只是具有到CICS系统或到REUTERS
    *终端的连接)。
     *
     *@注意这不是程序设计语言中支持的功能
     *@注意该构思会在V1.0中支持它
     */
    public abstract void setMachine(Machine m);
    /**
     *获取自动启动值
     */
    public abstract int getAutoRestart();
    /**
     *指定在利用非零退出代码关闭JVM的情况下是否重新启动
     *
     *该数字指定在放弃前尝试重启动多少次。
     *
     *0=不自动重启动(默认)
     */
    public abstract void setAutoRestart(int ntimes);
}
/**
 *该级别表示JVM上的本地资源限制。该情况中的本地指的是JVM
 *本身的本地,如果你想对不同JVM之间的依赖性提出请求或想要
 *某一JVM在某一机器上执行或其他类似的事情,你应该查看
 *JVMRequest
 *@见com.beajvmbroker.JVMRequest
 */
public class JVMRequirements{
    private static final int DEFAULT_WEIGHT=100;
    private static finallong MIN_MEMORY=16;//jrockit supports no less
    private static finallong MIN_PU=1;
    private static final long MIN_NBW=50;//50kBit~modem speed
    private static finallong MIN_DS=500;//0.5GB
    /**
     *JVMRequirements的优选构造器。只指定你想要多少能力。能力
     *不仅仅是CPU-MHz,它实际上是用于应用程序的bogo-mips。
     *这表示JVM管理(诸如垃圾收集和编辑)不包括在测量结果中,
     *而是用于获得更多的能力,该系统例如可以给你更多的内存而
     *不是CPU。
     */
    public JVMRequirements(long minPU);
    /**
     *JVMRequirements的简单构造器。为所有请求设置默认值。
     */
    public JVMRequirements();
    public JVMRequirements(long minPU,long minMem,long minNB);
    public JVMRequirements(long minPU,long minMem,long minNB,long minDS);
}
public class JVMResources implements Serializable{
    /**
     *返回在用的CPU能力的数量(这是通过最后三秒该JVM正执
     *行多少"java操作"计算出来的平均值)。该思想是该机器应该
     *有两倍的执行两倍于CPU能力的能力,如果是这种情况则是
     *不清楚的。
     */
    public long getCPU Power(){
        return CPU Power;
    }
    /**
     *这是JVM使用的所有内存(包括本地内存和堆内存)
     */
    public long getMemory(){
        returnmemory;
    }
    /**
     *获取由该JVM当前使用的本地磁盘空间量
     */
    public long getDiskUsage(){
        return diskUsage;
    }
    /**
     *获取网络带宽(这是通过最后三秒计算出来的平均值)
     */
    public long getNetworkBandwidth(){
        returnnetworkBandwidth;
    }
}
public interface JVMListener
{
    public void aboutToSuspend();
    public void resumed();
    /**
     *在JVM已经退出后(关闭)后调用。传递的值是JVM的退出
     *代码(如由进程返回的...,即,System.exit(value)
     */
    public void exited(int exitCode);
}
public interface ResourceBroker
{
    /**
     *将返回与ResourceBroker相关的机器队列。
     */
    Machine[]getMachines();
    /**
     *将返回ResourceBroker认为当前在其“域”中运行的JVM队列。
     */
    JVM[]   getJVMs();
    /**
     *由外部源作出的从池中去除机器(可能放入另一池中)的请
     *求。
     */
    public Machine relinquishMachine();
    public void addMachine(Machine m);
}
/**
 *该接口表示JVM资源代理是实际物理机的接口。如果在该机器上
 *安装有管理程序,则可以根据资源代理的命令将该机器划分为多
 *个虚拟机。
 */
public interface Machine
{
    /**
     *获取该LAN中的机器的IP地址。所有的机器都应该具有该
     *LAN中的一个精确的IP地址。(于是它们可以在逻辑单元上运
     *行多个域,其中的每一个都具有自己的本地IP)。
     */
    public InetAddress getAddress();
    /**
   *获取当前有多少机器资源在用的快照。该机器的资源是大4:
   *CPU/内存/磁盘/网络
   */
  public ResourceUsage getResourceUsage();
  /**
   *以MB为单位返回机器上的内存总量。
   */
  public long getTotalMemory();
  /**
   *以MB为单位返回机器上的磁盘空间总量。
   */
  public long getTotalDiskSpace();
  /**
   *检查当前机器是否支持管理程序(因此可以利用资源保证将
   *该逻辑单元划分成多个逻辑单元,挂起/重新开始/迁移能力)
   */
  public boolean hasHypervisor();
}
本发明可以使用根据本公开的教导的传统的通用或特殊数字计算机或微处理器。对软件领域中的技术人员显而易见的是,可以基于本公开的教导通过本领域的编程员来容易地准备适当的软件编码。
在一些实施例中,本发明包括计算机程序产品,该产品是包括其上存储的指令的存储介质(媒介),其中,指令可以用于对计算机进行编程来执行本发明的任意进程。存储介质可以包括但不限于任何类型的磁盘,磁盘包括软盘、光盘、DVD、CD-ROM、微小驱动器、和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁或光卡、纳系统(包括分子存储IC),或适于存储指令和/或数据的任何类型的介质或设备。
为了示例和说明的目的,已经提供了本发明的前述描述。并不是用于穷尽或将本发明限制于披露的精确形式。许多改进和变化对于本领域的技术人员来说是显而易见的。特别是,当在WebLogic应用程序服务器和JRockit产品的上下文中描述上述系统和方法的实施例时,很显然,可以以其他类型的应用程序服务器、JVM和虚拟机产品来使用这些系统和方法。类似的,当在Xen管理程序的上下文中描述上述实施例时,还可以使用其他类型的管理程序。选择并描述这些实施例是为了最好的说明本发明的原理及其实际应用,从而使得本领域的其他技术人员能够从各实施例以及通过适于预期使用的各改进来理解本发明。本发明的范围由所附的权利要求及其等同物限定。

Claims (35)

1.一种用于在虚拟机环境中提供硬件虚拟化的系统,包括:
机器或计算机,进一步包括虚拟化层,所述虚拟化层包括用于在所述机器上划分划分多个虚拟机的管理程序;
执行层,适于运行单一的基于Java的应用程序;以及
Java虚拟机,其运行在所述执行层上,用于运行多个基于Java的应用程序。
2.根据权利要求1所述的系统,进一步包括多个机器和位于每个所述机器处的虚拟化层。
3.根据权利要求1所述的系统,其中,所述执行层适于在特定时间只集中运行所述单一的基于Java的应用程序,而不能运行任何其他应用程序。
4.根据权利要求3所述的系统,其中,所述执行层适于尽可能高效的运行所述单一的基于Java的应用程序。
5.根据权利要求1所述的系统,进一步包括多个执行层,其中的每一个所述执行层均适于在一时间尽可能高效地只运行单一的基于Java的应用程序。
6.根据权利要求5所述的系统,其中,多个所述执行层中的每一个均适于集中于所述单一的基于Java的应用程序,而不能运行任何其他应用程序。
7.根据权利要求5所述的系统,其中,多个执行层位于管理程序、虚拟化层、和机器的相同组合上。
8.一种用于在虚拟机环境中提供硬件虚拟化的系统,包括:
机器,包括虚拟化层,所述虚拟化层包括用于在所述物理机上划分多个虚拟机的管理程序;
多个Java虚拟机,其运行在所述机器上;以及
多个执行层,包括用于多个所述Java虚拟机中的每一个的独立的执行层,其中,多个所述执行层中的每一个都使其自己的Java虚拟机的有效运行、其中在该Java虚拟机上运行有Java应用程序。
9.根据权利要求8所述的系统,其中,多个所述执行层中的每一个都提供其自己Java虚拟机的有效运行,以及使单一的Java应用程序运行其上,而不能运行任何其他应用程序。
10.根据权利要求8所述的系统,其中,每个所述执行层被提供作为操作系统(OS),所述操作系统只对作为单一线程的JVM线程进行处理,其中,所述JVM线程运行所述Java应用程序。
11.根据权利要求8所述的系统,其中,所述管理程序允许在两个以上虚拟层和其上运行的所述Java虚拟机之间共享内存。
12.根据权利要求8所述的系统,其中,用于每个Java虚拟机的所述执行层通知所述管理程序层存在不同Java虚拟机之间共享的相同页。
13.根据权利要求12所述的系统,其中,所述管理程序允许使用写时复制将所述相同页映射到相同的物理页。
14.根据权利要求8所述的系统,所述管理程序是Xen管理程序。
15.根据权利要求8所述的方法,所述管理程序是VMware管理程序。
16.一种用于在虚拟机环境中提供硬件虚拟化的系统,包括:
一个或多个机器或计算机,进一步包括在一个或多个所述机器上运行的多个虚拟机;
虚拟化层,位于每个所述机器处,其中,所述虚拟化层包括用于在所述机器上划分多个虚拟机的管理程序;以及
资源代理服务模块,用于:
接收来自应用程序的对虚拟机提供的资源的访问请求,
确定多个所述虚拟机中的哪一个最适于处理所述请求,以及
经由所述虚拟化层将所述请求传送至所选择的虚拟机。
17.根据权利要求16所述的系统,其中,所述系统进一步包括多个资源代理经纪,其负责将请求传送至最适合的虚拟机。
18.根据权利要求16所述的系统,其中,所述虚拟化层和所述资源代理服务模块根据对作出所述请求的应用程序的预定保证来分配请求。
19.根据权利要求16所述的系统,其中,所述管理程序是Xen管理程序。
20.根据权利要求16所述的系统,所述管理程序是VMware管理程序。
21.一种用于在虚拟机环境中提供硬件虚拟化的系统,包括:
多个虚拟机,在一个或多个物理机或计算机上运行;
虚拟化层,位于每个所述机器上,包括管理程序和用于在所述物理机上划分多个虚拟机的执行层;
资源代理服务模块,用于:接收来自应用程序的对虚拟机提供的资源的访问请求,确定多个所述虚拟机中的哪一个最适于处理所述请求,以及经由所述虚拟化层将所述请求传送至所选择的虚拟机。
22.根据权利要求21所述的系统,其中,所述系统进一步包括多个资源代理经纪,所述多个资源代理经纪包括负责将请求传送至最适合的虚拟机的经纪。
23.根据权利要求21所述的系统,其中,所述虚拟化层和所述资源代理服务模块根据对作出所述请求的应用程序的预定保证来分配请求。
24.根据权利要求21所述的系统,其中,所述管理程序是Xen管理程序。
25.根据权利要求21所述的系统,所述管理程序是VMware管理程序。
26.根据权利要求21所述的系统,其中,所述系统进一步包括:虚拟机代理服务器,其允许应用程序通过第一物理机处的操作系统将请求传送至所述虚拟化层、以及第二物理机处的虚拟机。
27.一种用于在虚拟机环境中提供硬件虚拟化的方法,包括以下步骤:
提供机器或计算机,进一步包括虚拟化层,所述虚拟化层包括用于在所述机器上划分多个虚拟机的管理程序;
提供执行层,适于运行单一的基于Java的应用程序;以及
提供Java虚拟机,其运行在所述执行层上,用于运行多个基于Java的应用程序。
28.根据权利要求27所述的方法,进一步包括提供多个机器和位于每个所述机器处的虚拟化层。
29.根据权利要求27所述的方法,其中,所述执行层适于在特定时间只集中运行所述单一的基于Java的应用程序,而不能运行任何其他应用程序。
30.根据权利要求29所述的方法,其中,所述执行层适于尽可能高效地运行所述单一的基于Java的应用程序。
31.一种用于在虚拟机环境中提供硬件虚拟化的方法,包括以下步骤:
接收来自应用程序的对虚拟机提供的资源的访问请求;
确定多个虚拟机或多个物理机或计算机中的哪一个最适于对处理所述请求;以及
使用虚拟化层传送所述请求以创建或管理虚拟机或所选的物理机上运行的虚拟机,其中,所述虚拟化层包括执行层和管理程序;以及
在所选择的虚拟机处处理所述请求。
32.根据权利要求31所述的方法,其中,所述方法进一步包括提供多个资源代理经纪,所述资源代理经纪包括负责将请求传送至最适合的虚拟机的经纪。
33.根据权利要求31所述的方法,其中,所述虚拟化层和所述资源代理服务模块根据对作出所述请求的应用程序的预定保证来分配请求。
34.根据权利要求31所述的方法,其中,所述管理程序是Xen管理程序。
35.根据权利要求31所述的方法,所述管理程序是VMware管理程序。
CN2007800335145A 2006-08-07 2007-08-07 在虚拟机环境中提供硬件虚拟化的系统和方法 Active CN101512488B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310505477.0A CN103530170B (zh) 2006-08-07 2007-08-07 在虚拟机环境中提供硬件虚拟化的系统和方法

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US82167306P 2006-08-07 2006-08-07
US60/821,673 2006-08-07
US11/835,307 2007-08-07
PCT/US2007/075407 WO2008019380A2 (en) 2006-08-07 2007-08-07 System and method for providing hardware virtualization in a virtual machine environment
US11/835,307 US8250572B2 (en) 2006-08-07 2007-08-07 System and method for providing hardware virtualization in a virtual machine environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310505477.0A Division CN103530170B (zh) 2006-08-07 2007-08-07 在虚拟机环境中提供硬件虚拟化的系统和方法

Publications (2)

Publication Number Publication Date
CN101512488A true CN101512488A (zh) 2009-08-19
CN101512488B CN101512488B (zh) 2013-11-27

Family

ID=39030744

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310505477.0A Active CN103530170B (zh) 2006-08-07 2007-08-07 在虚拟机环境中提供硬件虚拟化的系统和方法
CN2007800335145A Active CN101512488B (zh) 2006-08-07 2007-08-07 在虚拟机环境中提供硬件虚拟化的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310505477.0A Active CN103530170B (zh) 2006-08-07 2007-08-07 在虚拟机环境中提供硬件虚拟化的系统和方法

Country Status (7)

Country Link
US (3) US8250572B2 (zh)
EP (2) EP2485146B1 (zh)
JP (1) JP2010500667A (zh)
CN (2) CN103530170B (zh)
AU (1) AU2007281686A1 (zh)
CA (1) CA2660363A1 (zh)
WO (1) WO2008019380A2 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102109997A (zh) * 2009-12-26 2011-06-29 英特尔公司 通过利用虚拟OpenCL设备作为与计算云的接口来加速OpenCL应用
CN102204210A (zh) * 2011-05-18 2011-09-28 华为技术有限公司 启动应用的方法、服务器和系统
CN103136000A (zh) * 2011-11-21 2013-06-05 财团法人资讯工业策进会 于虚拟机器提供应用程序的方法以及系统
CN103514102A (zh) * 2013-10-25 2014-01-15 中国联合网络通信集团有限公司 一种Java虚拟机实现内存垃圾回收的方法及装置
CN103631228A (zh) * 2013-11-27 2014-03-12 上海慧控信息技术有限公司 控制系统虚拟化方法
CN104699625A (zh) * 2009-09-21 2015-06-10 甲骨文国际公司 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法
CN105373451A (zh) * 2015-12-07 2016-03-02 中国联合网络通信集团有限公司 一种虚拟机放置的方法及装置
CN107122235A (zh) * 2017-04-19 2017-09-01 中国舰船研究设计中心 基于应用优先级的公共基础设施资源调度方法
CN108170567A (zh) * 2017-12-25 2018-06-15 北京航空航天大学 基于写时复制特性的虚拟机中存储区域完整性检测方法
CN112860382A (zh) * 2014-09-30 2021-05-28 亚马逊技术有限公司 线程化作为服务
CN117573373A (zh) * 2024-01-15 2024-02-20 中诚华隆计算机技术有限公司 一种基于云计算的cpu虚拟化调度方法及系统

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620953B1 (en) * 2004-10-05 2009-11-17 Azul Systems, Inc. System and method for allocating resources of a core space among a plurality of core virtual machines
US8819673B1 (en) 2007-05-24 2014-08-26 United Services Automobile Association (Usaa) Systems and methods for java virtual machine management
US20090240930A1 (en) * 2008-03-24 2009-09-24 International Business Machines Corporation Executing An Application On A Parallel Computer
US8176482B1 (en) * 2008-03-28 2012-05-08 Symantec Corporation Methods and systems for inserting software applications into images
US20090265707A1 (en) * 2008-04-21 2009-10-22 Microsoft Corporation Optimizing application performance on virtual machines automatically with end-user preferences
US8281311B2 (en) * 2008-04-24 2012-10-02 International Business Machines Corporation Executing a distributed software application on a plurality of compute nodes according to a compilation history
US8185901B2 (en) 2008-04-24 2012-05-22 International Business Machines Corporation Parsing an application to find serial and parallel data segments to minimize migration overhead between serial and parallel compute nodes
US8161483B2 (en) 2008-04-24 2012-04-17 International Business Machines Corporation Configuring a parallel computer based on an interleave rate of an application containing serial and parallel segments
US9086924B2 (en) * 2008-04-24 2015-07-21 International Business Machines Corporation Executing a distributed java application on a plurality of compute nodes
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US8516494B2 (en) * 2008-06-16 2013-08-20 International Business Machines Corporation Executing an application on a parallel computer
US9069599B2 (en) 2008-06-19 2015-06-30 Servicemesh, Inc. System and method for a cloud computing abstraction layer with security zone facilities
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
EP2316071A4 (en) 2008-06-19 2011-08-17 Servicemesh Inc CLOUD DATA PROCESSING GATEWAY, CLOUD DATA PROCESSING HYPERVISOR, AND METHOD FOR IMPLEMENTING THEM
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US8151099B2 (en) * 2008-07-01 2012-04-03 Caterpillar Inc. Virtualized service tool and virtualized control tool
US8336047B2 (en) * 2008-08-25 2012-12-18 International Business Machines Corporation Provisioning virtual resources using name resolution
US9542222B2 (en) * 2008-11-14 2017-01-10 Oracle International Corporation Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement
US8239938B2 (en) * 2008-12-08 2012-08-07 Nvidia Corporation Centralized device virtualization layer for heterogeneous processing units
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
US9864637B2 (en) * 2009-03-18 2018-01-09 Microsoft Technology Licensing, Llc Adaptable software resource managers based on intentions
JP5218985B2 (ja) * 2009-05-25 2013-06-26 株式会社日立製作所 メモリ管理方法計算機システム及びプログラム
CN101630270B (zh) * 2009-07-22 2013-06-26 成都市华为赛门铁克科技有限公司 数据处理系统和方法
CN101998629B (zh) * 2009-08-28 2014-05-21 国际商业机器公司 搜索虚拟资源的位置的方法、装置和系统
US8498997B2 (en) * 2009-09-23 2013-07-30 Hitachi, Ltd. Server image migration
US8849966B2 (en) * 2009-10-13 2014-09-30 Hitachi, Ltd. Server image capacity optimization
KR20110040604A (ko) * 2009-10-14 2011-04-20 삼성전자주식회사 클라우드 서버, 클라이언트 단말, 디바이스, 클라우드 서버의 동작 방법 및 클라이언트 단말의 동작 방법
US8250213B2 (en) 2009-11-16 2012-08-21 At&T Intellectual Property I, L.P. Methods and apparatus to allocate resources associated with a distributive computing network
US8705513B2 (en) * 2009-12-15 2014-04-22 At&T Intellectual Property I, L.P. Methods and apparatus to communicatively couple virtual private networks to virtual machines within distributive computing networks
US8301746B2 (en) * 2010-01-26 2012-10-30 International Business Machines Corporation Method and system for abstracting non-functional requirements based deployment of virtual machines
US20110219373A1 (en) * 2010-03-02 2011-09-08 Electronics And Telecommunications Research Institute Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
KR101334842B1 (ko) 2010-03-02 2013-12-02 한국전자통신연구원 가상화 지원 단말 플랫폼을 위한 가상머신 관리장치 및 방법
US9059978B2 (en) 2010-03-23 2015-06-16 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US20110276621A1 (en) * 2010-05-05 2011-11-10 Microsoft Corporation Operating system and application virtualization for application execution
US9729464B1 (en) 2010-06-23 2017-08-08 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US8434081B2 (en) 2010-07-02 2013-04-30 International Business Machines Corporation Storage manager for virtual machines with virtual storage
US8799422B1 (en) 2010-08-16 2014-08-05 Juniper Networks, Inc. In-service configuration upgrade using virtual machine instances
US8473557B2 (en) 2010-08-24 2013-06-25 At&T Intellectual Property I, L.P. Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network
US8800055B2 (en) * 2010-10-20 2014-08-05 International Business Machines Corporation Node controller for an endpoint in a cloud computing environment
US20150106813A1 (en) * 2010-10-21 2015-04-16 Brocade Communications Systems, Inc. Method and apparatus for provisioning of resources to support applications and their varying demands
US9880836B2 (en) * 2010-10-26 2018-01-30 Hewlett Packard Enterprise Development Lp System and method for deploying a software program
CN102096596B (zh) * 2010-11-29 2013-11-06 华中科技大学 一种基于虚拟机内存模板的云计算服务Cache系统
CN102571832B (zh) * 2010-12-07 2016-03-02 财团法人资讯工业策进会 资源共享系统与方法
CN102088367A (zh) * 2010-12-10 2011-06-08 北京世纪互联工程技术服务有限公司 虚拟化环境下快速部署方法
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US9471384B2 (en) * 2012-03-16 2016-10-18 Rackspace Us, Inc. Method and system for utilizing spare cloud resources
US9183030B2 (en) 2011-04-27 2015-11-10 Microsoft Technology Licensing, Llc Virtual processor allocation techniques
US9432258B2 (en) 2011-06-06 2016-08-30 At&T Intellectual Property I, L.P. Methods and apparatus to configure virtual private mobile networks to reduce latency
US8701107B2 (en) 2011-06-14 2014-04-15 Vmware, Inc. Decentralized management of virtualized hosts
US9026630B2 (en) 2011-06-14 2015-05-05 Vmware, Inc. Managing resources in a distributed system using dynamic clusters
US8856784B2 (en) 2011-06-14 2014-10-07 Vmware, Inc. Decentralized management of virtualized hosts
US9386035B2 (en) 2011-06-21 2016-07-05 At&T Intellectual Property I, L.P. Methods and apparatus to configure virtual private mobile networks for security
US10044678B2 (en) 2011-08-31 2018-08-07 At&T Intellectual Property I, L.P. Methods and apparatus to configure virtual private mobile networks with virtual private networks
US9021459B1 (en) 2011-09-28 2015-04-28 Juniper Networks, Inc. High availability in-service software upgrade using virtual machine instances in dual control units of a network device
US8806266B1 (en) 2011-09-28 2014-08-12 Juniper Networks, Inc. High availability using full memory replication between virtual machine instances on a network device
US8694995B2 (en) 2011-12-14 2014-04-08 International Business Machines Corporation Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment
US9146847B2 (en) * 2011-12-14 2015-09-29 Vmware, Inc. Optimizing for page sharing in virtualized java virtual machines
US8863141B2 (en) 2011-12-14 2014-10-14 International Business Machines Corporation Estimating migration costs for migrating logical partitions within a virtualized computing environment based on a migration cost history
US9189287B1 (en) * 2012-06-27 2015-11-17 Arris Enterprises, Inc. Harnessing idle computing resources in customer premise equipment
US8943489B1 (en) * 2012-06-29 2015-01-27 Juniper Networks, Inc. High availability in-service software upgrade using virtual machine instances in dual computing appliances
US20140310706A1 (en) * 2012-12-17 2014-10-16 Unisys Corporation Method for managing commodity computing
US9256469B2 (en) 2013-01-10 2016-02-09 International Business Machines Corporation System and method for improving memory usage in virtual machines
US9343903B2 (en) 2013-03-14 2016-05-17 Mark Hauenstein Methods and systems architecture to virtualize energy functions and processes into a cloud based model
US9342343B2 (en) * 2013-03-15 2016-05-17 Adventium Enterprises, Llc Wrapped nested virtualization
KR20150040087A (ko) * 2013-10-04 2015-04-14 한국전자통신연구원 클라우드 서비스 지원을 위한 통신 시스템, 융합 통신 장치 및 방법
US9912570B2 (en) 2013-10-25 2018-03-06 Brocade Communications Systems LLC Dynamic cloning of application infrastructures
US9753784B2 (en) 2013-11-27 2017-09-05 At&T Intellectual Property I, L.P. Cloud delivery platform
FR3013969B1 (fr) * 2013-12-04 2018-01-26 Oreal Compositions de vernis photoreticulables a titre de revetement de base et procedes d'application
FR3013976B1 (fr) * 2013-12-04 2015-12-11 Oreal Compositions de vernis photoreticulables a titre de revetement de base et procedes d'application
US9319380B2 (en) 2014-03-20 2016-04-19 Bitdefender IPR Management Ltd. Below-OS security solution for distributed network endpoints
EP3767896A1 (en) * 2014-08-12 2021-01-20 Eingot LLC A zero-knowledge environment based social networking engine
US9743282B2 (en) 2015-01-20 2017-08-22 Sprint Communications Company L.P. Computer system hardware validation for virtual communication network elements
US10042662B1 (en) 2015-04-07 2018-08-07 Sprint Communications Company L.P. Network function virtualization (NFV) parameter trust in data communication systems
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
US9888127B2 (en) 2015-07-30 2018-02-06 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for adjusting the use of virtual resources providing communication services based on load
US9866521B2 (en) 2015-07-30 2018-01-09 At&T Intellectual Property L.L.P. Methods, systems, and computer readable storage devices for determining whether to forward requests from a physical telephone number mapping service server to a virtual telephone number mapping service server
US10277736B2 (en) 2015-07-30 2019-04-30 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for determining whether to handle a request for communication services by a physical telephone number mapping service or a virtual telephone number mapping service
US9851999B2 (en) 2015-07-30 2017-12-26 At&T Intellectual Property I, L.P. Methods, systems, and computer readable storage devices for handling virtualization of a physical telephone number mapping service
US10235227B2 (en) * 2015-10-12 2019-03-19 Bank Of America Corporation Detection, remediation and inference rule development for multi-layer information technology (“IT”) structures
CN105573820A (zh) * 2015-12-15 2016-05-11 国云科技股份有限公司 一种Xen虚拟机光盘热插拔方法
CN105589722A (zh) * 2015-12-23 2016-05-18 浪潮集团有限公司 一种基于虚拟机模板的初始化虚拟机用户名密码的方法
CN105677442A (zh) * 2015-12-28 2016-06-15 湖南蚁坊软件有限公司 一种基于容器虚拟化的部署方法
US10310893B2 (en) 2016-04-05 2019-06-04 Microsoft Technology Licensing, Llc Managing container pause and resume
CN106775956B (zh) * 2017-01-14 2019-09-06 中国人民解放军国防科学技术大学 Xen虚拟机Fork机制建立方法
US10255652B2 (en) * 2017-01-18 2019-04-09 Amazon Technologies, Inc. Dynamic and application-specific virtualized graphics processing
CN106790663A (zh) * 2017-01-22 2017-05-31 济南浪潮高新科技投资发展有限公司 基于Docker的网络存储系统的实现方法
US10666714B2 (en) * 2017-04-04 2020-05-26 International Business Machines Corporation Data integration application execution management
US10846070B2 (en) 2018-07-05 2020-11-24 At&T Intellectual Property I, L.P. Facilitating cloud native edge computing via behavioral intelligence
CN109857410B (zh) * 2019-03-06 2022-03-25 广东三维家信息科技有限公司 消息队列的云水刀处理方法和系统
DE102020200969A1 (de) * 2020-01-28 2021-07-29 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Instanziieren mindestens einer Ausführungsumgebung
KR102497087B1 (ko) * 2020-12-21 2023-02-07 엘아이지넥스원 주식회사 복합형 가상 훈련 방법 및 그를 위한 장치
US11809839B2 (en) 2022-01-18 2023-11-07 Robert Lyden Computer language and code for application development and electronic and optical communication
CN115080149B (zh) * 2022-07-20 2023-06-27 荣耀终端有限公司 终端设备的控制方法和终端设备

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6279013B1 (en) * 1998-07-20 2001-08-21 Xerox Corporation Interactive newspaper
US7143421B2 (en) * 1998-09-09 2006-11-28 Microsoft Corporation Highly componentized system architecture with a demand-loading namespace and programming model
US6931544B1 (en) * 1998-12-18 2005-08-16 The Sco Group, Inc. Method and apparatus for executing multiple JAVA(™) applications on a single JAVA(™) virtual machine
US6622015B1 (en) * 1999-01-29 2003-09-16 International Business Machines Method and apparatus for using electronic documents within a smart phone
US20040217877A1 (en) * 1999-05-04 2004-11-04 William Kokonaski Flexible electronic display and wireless communication system
US6732139B1 (en) * 1999-08-16 2004-05-04 International Business Machines Corporation Method to distribute programs using remote java objects
US7262763B2 (en) * 2000-04-18 2007-08-28 Fujifilm Corporation Image display apparatus and image display method
US6906705B2 (en) * 2000-10-16 2005-06-14 Matsushita Electric Industrial Co., Ltd. Electronic file with flexible display medium
US7088352B2 (en) * 2002-06-19 2006-08-08 Novus Partners Llc Dynamic device and method for dispensing machines
US7050835B2 (en) * 2001-12-12 2006-05-23 Universal Display Corporation Intelligent multi-media display communication system
US7174354B2 (en) * 2002-07-31 2007-02-06 Bea Systems, Inc. System and method for garbage collection in a computer system, which uses reinforcement learning to adjust the allocation of memory space, calculate a reward, and use the reward to determine further actions to be taken on the memory space
US7161590B2 (en) * 2002-09-04 2007-01-09 John James Daniels Thin, lightweight, flexible, bright, wireless display
US20050160423A1 (en) * 2002-12-16 2005-07-21 Bantz David F. Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations
US20040155833A1 (en) * 2003-02-07 2004-08-12 Fuji Xerox Co., Ltd. Display control device, computer, image display device, and image display system
US6963960B2 (en) * 2003-03-25 2005-11-08 Microsoft Corporation System and method for kernel mode memory management having movable kernel objects
US7171192B2 (en) * 2003-04-04 2007-01-30 Galleria Industrial Company Portable wireless data device
US7788669B2 (en) * 2003-05-02 2010-08-31 Microsoft Corporation System for isolating first computing environment from second execution environment while sharing resources by copying data from first portion to second portion of memory
JP4170988B2 (ja) * 2003-05-09 2008-10-22 富士通株式会社 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7873602B2 (en) * 2003-09-03 2011-01-18 International Business Machines Corporation Apparatus and method for maintaining databases on application servers
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7574709B2 (en) * 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
US7840772B2 (en) * 2004-09-10 2010-11-23 Hewlett-Packard Development Company, L.P. Physical memory control using memory classes
US9329905B2 (en) * 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7739366B2 (en) * 2005-05-19 2010-06-15 Bea Systems, Inc. Management of J2EE applications
US7610266B2 (en) * 2005-05-25 2009-10-27 International Business Machines Corporation Method for vertical integrated performance and environment monitoring
WO2006128112A2 (en) * 2005-05-25 2006-11-30 Terracotta, Inc. Clustering server providing virtual machine data sharing
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8042109B2 (en) * 2006-03-21 2011-10-18 Intel Corporation Framework for domain-specific run-time environment acceleration using virtualization technology
US20070247422A1 (en) * 2006-03-30 2007-10-25 Xuuk, Inc. Interaction techniques for flexible displays
US8214828B2 (en) * 2006-06-30 2012-07-03 Microsoft Corporation Module state management in a virtual machine environment

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699625A (zh) * 2009-09-21 2015-06-10 甲骨文国际公司 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法
CN104699625B (zh) * 2009-09-21 2018-04-10 甲骨文国际公司 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法
CN102109997A (zh) * 2009-12-26 2011-06-29 英特尔公司 通过利用虚拟OpenCL设备作为与计算云的接口来加速OpenCL应用
CN102204210A (zh) * 2011-05-18 2011-09-28 华为技术有限公司 启动应用的方法、服务器和系统
WO2011127860A3 (zh) * 2011-05-18 2012-04-12 华为技术有限公司 启动应用的方法、服务器和系统
CN103136000A (zh) * 2011-11-21 2013-06-05 财团法人资讯工业策进会 于虚拟机器提供应用程序的方法以及系统
CN103514102B (zh) * 2013-10-25 2016-09-21 中国联合网络通信集团有限公司 一种Java虚拟机实现内存垃圾回收的方法及装置
CN103514102A (zh) * 2013-10-25 2014-01-15 中国联合网络通信集团有限公司 一种Java虚拟机实现内存垃圾回收的方法及装置
CN103631228A (zh) * 2013-11-27 2014-03-12 上海慧控信息技术有限公司 控制系统虚拟化方法
CN112860382A (zh) * 2014-09-30 2021-05-28 亚马逊技术有限公司 线程化作为服务
CN105373451A (zh) * 2015-12-07 2016-03-02 中国联合网络通信集团有限公司 一种虚拟机放置的方法及装置
CN105373451B (zh) * 2015-12-07 2018-06-12 中国联合网络通信集团有限公司 一种虚拟机放置的方法及装置
CN107122235A (zh) * 2017-04-19 2017-09-01 中国舰船研究设计中心 基于应用优先级的公共基础设施资源调度方法
CN107122235B (zh) * 2017-04-19 2020-09-29 中国舰船研究设计中心 基于应用优先级的公共基础设施资源调度方法
CN108170567A (zh) * 2017-12-25 2018-06-15 北京航空航天大学 基于写时复制特性的虚拟机中存储区域完整性检测方法
CN108170567B (zh) * 2017-12-25 2020-11-20 北京航空航天大学 基于写时复制特性的虚拟机中存储区域完整性检测方法
CN117573373A (zh) * 2024-01-15 2024-02-20 中诚华隆计算机技术有限公司 一种基于云计算的cpu虚拟化调度方法及系统
CN117573373B (zh) * 2024-01-15 2024-03-26 中诚华隆计算机技术有限公司 一种基于云计算的cpu虚拟化调度方法及系统

Also Published As

Publication number Publication date
EP2057543A4 (en) 2012-07-04
US8250572B2 (en) 2012-08-21
EP2485146A1 (en) 2012-08-08
US9875122B2 (en) 2018-01-23
EP2485146B1 (en) 2021-03-17
WO2008019380A3 (en) 2008-12-18
CN101512488B (zh) 2013-11-27
US8806493B2 (en) 2014-08-12
US20080034365A1 (en) 2008-02-07
EP2057543A2 (en) 2009-05-13
WO2008019380A2 (en) 2008-02-14
CN103530170A (zh) 2014-01-22
JP2010500667A (ja) 2010-01-07
CN103530170B (zh) 2017-04-12
US20140157272A1 (en) 2014-06-05
US20120284718A1 (en) 2012-11-08
AU2007281686A1 (en) 2008-02-14
CA2660363A1 (en) 2008-02-14

Similar Documents

Publication Publication Date Title
CN101512488B (zh) 在虚拟机环境中提供硬件虚拟化的系统和方法
EP3469478B1 (en) Server computer management system for supporting highly available virtual desktops of multiple different tenants
EP1695210B1 (en) Grid application deployment
US9690632B2 (en) Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US9851989B2 (en) Methods and apparatus to manage virtual machines
EP1672498B1 (en) Control interfaces for distributed system applications
US11385883B2 (en) Methods and systems that carry out live migration of multi-node applications
CN105897805B (zh) 对多层架构的数据中心的资源进行跨层调度的方法和装置
US20050060704A1 (en) Managing processing within computing environments including initiation of virtual machines
US20060136913A1 (en) Method, system and computer program product for an automatic resource management of a virtual machine
EP2587375A1 (en) Securely hosting workloads in virtual computing environments
US20110167421A1 (en) Dynamic Scaling of Management Infrastructure in Virtual Environments
US20090089406A1 (en) Virtual cluster based upon operating system virtualization
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
JP2007500386A (ja) グリッド組織
JP2007500383A (ja) アプリケーションスタートプロトコル
CN101326489A (zh) 用于运行多个环境的操作系统小型引导
KR20040028805A (ko) 프로세서로 산출하기 위한 시스템
JP2007500382A (ja) 維持可能なグリッドマネージャ
WO2015132753A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
CN102946433A (zh) 云公共服务平台下的大规模计算机资源的监控和调度方法
Naik et al. Adaptive resource sharing in a web services environment
CN114546587A (zh) 一种在线图像识别服务的扩缩容方法及相关装置
US10095533B1 (en) Method and apparatus for monitoring and automatically reserving computer resources for operating an application within a computer environment
EP3786797A1 (en) Cloud resource marketplace

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ORACLE INT CORP

Free format text: FORMER OWNER: BEA SYSTEMS CORP.

Effective date: 20110328

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

Effective date of registration: 20110328

Address after: American California

Applicant after: Oracle Int Corp

Address before: American California

Applicant before: Bea Systems Corp.

C14 Grant of patent or utility model
GR01 Patent grant