CN103970608A - 用于借助至少两个虚拟机来管理计算机资源的方法及虚拟化控制器 - Google Patents
用于借助至少两个虚拟机来管理计算机资源的方法及虚拟化控制器 Download PDFInfo
- Publication number
- CN103970608A CN103970608A CN201410044188.XA CN201410044188A CN103970608A CN 103970608 A CN103970608 A CN 103970608A CN 201410044188 A CN201410044188 A CN 201410044188A CN 103970608 A CN103970608 A CN 103970608A
- Authority
- CN
- China
- Prior art keywords
- resource
- access
- virtual machine
- virtual
- virtualization controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及用于通过至少两个虚拟机使用计算机资源的虚拟化控制器和方法,虚拟化控制器设立用于虚拟化资源。对于通过虚拟机中的第一个对资源的唯一访问,提供第一虚拟机对资源的直接访问,为了访问资源,将第二虚拟设备与第二虚拟机相关联,其中在第二虚拟机发出对资源的访问请求时,在第一步骤中终止第一虚拟机对资源的直接访问,在第二步骤中由虚拟化控制器来完全承担对资源的控制,在第三步骤中,为了继续访问资源将第一虚拟设备与第一虚拟机相关联,在第四步骤中借助第二虚拟设备执行第二虚拟机对资源的访问。
Description
技术领域
本发明涉及一种用于借助至少两个虚拟机来管理计算机资源的方法以及一种用于实施所述方法的虚拟化控制器。
背景技术
在许多应用情况中已在计算机上实现了虚拟化的运行环境,其中在硬件平台上能够并行地运行多个虚拟化的运行环境(通常也称为“虚拟机”)。通过这种虚拟化,能够并行地运行多个、甚至不同的操作系统。
在此,所述虚拟化提供如下优点,即各个虚拟化的运行环境在很大程度上彼此解耦。这意味着,除了在为此而设置的接口上以外,不能进行运行环境之间的数据交换,进而例如在所述数据环境的一个中的执行在理想情况下不会对在其它运行环境中的程序的执行产生不利的影响。
也在工业、智能电网或者其它自动化系统中利用这样的架构,其中控制目的通过一个或多个标准操作系统或实时操作系统以及在其上运行的自动化程序来实现。因此例如能够在计算机上运行实时操作系统(RTOS-Real Time Operation System),并且同时能够在其它虚拟化运行环境中运行其它操作系统、特别是所谓的“标准系统”或“通用系统”如Microsoft Windows7或Linux,其在这里也称为GOPS(GeneralPurpose Operation System,通用操作系统)。在另一示例中,多个GPOS操作系统能够在执行不同的服务器应用程序的计算机上运行。
平台的现有资源的这样的分配的目的是提高相同资源的利用。所述应用程序通常不会满负荷使用平台的资源。另一点是,不同的操作系统提供不同的功能性,而通常还没有以便携的方式针对特定的操作系统开发相应的应用程序。并非现在,任何操作系统和在其上运行的应用程序都分配有自己的硬件平台(计算机),计算机能够通过虚拟化技术运行多个操作系统和其应用程序。
虚拟化的运行环境通常通过管理装置生成和监视,其中所述管理装置将硬件平台的资源分配给各个虚拟化的运行环境,或者对于资源的一部分代表虚拟化的运行环境对资源进行访问。这样的管理装置通常被称为“管理程序(Hypervisor)”或者“虚拟机监视器(Virtual MachineMonitor,VMM)”;在下文中还将使用通用名称“虚拟化控制器”。在此,管理程序通常需要呈已知的虚拟化技术如VMX(Intel VirtualizationTechnology(Intel虚拟化技术)-VT-x,)或者SVM(AMD Secure VirtualMachine(AMD安全虚拟机)-SVM)形式的硬件支持,所述硬件支持现在通常由常见的处理器提供。
在下文中示例地观察虚拟化控制器,即(作为直接在硬件上的独立程序、作为固件的、操作系统的一部分、或者作为在操作系统上运行的应用程序的)管理程序(VMM),具有多个虚拟机(“VMs”)VM1,……,VMx和在其上运行的客户机操作系统G1…Gn,或者简称为“客户机”,其中管理程序也被称为其客户机操作系统的“主机”。这种划分的特点是,管理程序运行在所谓的根模式中,而其客户机占有的VMs始终运行在非根模式中。管理程序应这样实现:能够将底层硬件的真实(真正的,既实际可用的)资源R分配给客户机系统Gx。
因为管理程序能够监视对其客户机的I/O和内存访问,为所述访问提供任意的数据并且将异步事件如中断传输(例如“注入”,英语:Interrupt Injection(中断注入))给客户机,因此,可以对客户机的任意硬件的功能性进行模拟,所述功能性不存在于系统上,或者虽然存在,但是不应专门地分配给客户机。如果硬件这样地被模拟,因而其被称为虚拟硬件。为了实现虚拟硬件,管理程序能够相应地提供一个或多个真实设备,例如能够使用真实的硬盘存储器、RAM存储器或者也能够使用网络驱动器,以便对虚拟硬盘进行模拟。虚拟硬件的实现能够在管理程序本身中或者在专门为此而配有仪器的其它的客户机操作系统中和/或在其应用程序中进行。
通过直接地分配“真实的”(真正的)硬件而不是虚拟硬件,能够将管理程序与其客户机的交互降低到最小程度。只要资源作为真正的硬件(例如在PCI总线上的设备或者在PCI总线上的设备的功能)的在功能上独立的单元直接被分配给仅一个客户机,那么该客户机能够在没有VMM控制的情况下访问所述资源,也就是说,对于相应的客户机而言,所述资源的地址不被监视并且对资源的访问不会导致客户机执行中的中断。对于所有的其它客户机而言,这些地址必须被监视,以便禁止对R的访问,以便避免硬件状态的不一致和可能由不受控制的交替访问所产生的其它问题。如果资源R应在多个客户机之间被划分,那么只要管理程序适宜地协调对R的访问,以便避免在访问不同的客户机时的重叠,仍然能够放弃提供虚拟硬件。这尤其适用于如下资源,其中单个任务经历不同的状态,所述状态强制性地以预设的顺序进行。
在上文中所描述的在虚拟化控制器内部的任务的解决方案是通过现有技术已知的。基本上,为此监视和/或禁止客户机对资源的访问,适宜地协调真实的硬件访问,并且将客户机进行的访问根据真实的硬件访问的形式来模拟给客户机。
客户机对资源的直接访问在下文中也被称为“非虚拟化”,与VMM交互相结合的访问被称为“虚拟化”。对于后者而言,属于资源的I/O和/或内存映射区域必须通过管理程序来监视并且中断对其的访问。如果客户机系统具有管理程序环境的知识进而通过特地发起的VMM交互对R进行访问,那么这个客户机系统被称为“半虚拟化”。即使当进行与专门为了处理R所提供的其它客户机系统(服务器-VM)的交互时,也保持这样的称号,所述其它客户机系统在逻辑上被认为是VMM的一部分,虽然其本身不运行在根模式中,而是在VMM的控制下运行并且通过根据现有技术的方法与其它客户机进行通信。如果所有对资源的访问仅通过VMM交互的方式是可能的,那么这相对于“部分虚拟化”的访问是“全虚拟化的”,所述“部分虚拟化”的访问代表由非虚拟化的访问和虚拟化的访问组成的混合体。在上文中提到的特地通过客户机发起的与管理程序的交互也被称为超级调用或者管理程序调用。
但是产生如下问题,即通过与虚拟化的资源相结合的、与VMM的交互对所述虚拟化资源进行访问相对于对资源的硬件直接进行访问导致显著的性能缺陷。虽然存在已经能够减少所述缺陷的方法,但是结果并不总是令人满意的。
发明内容
因此根据本发明的方法和根据本发明的虚拟化控制器的目的是,在将硬件资源在多个客户机之间进行分配时进一步减少所描述的性能缺陷。
所述目的通过本文所述的方法和本文所述的虚拟化控制器来实现。
在此,提出一种用于通过至少两个虚拟机来使用计算机的资源的方法,其中对资源的交替访问通过分别安装在虚拟机上的操作系统来提供,其中虚拟化控制器设立用于对资源进行虚拟化,并且其中为在所述虚拟化控制器中作为第一或第二虚拟设备的每一个虚拟机提供资源。在此,对于通过所述虚拟机中的第一个对资源的唯一的访问而言,提供第一虚拟机的第一操作系统对资源的直接访问,其中,为了对资源进行访问,将第二虚拟机与第二虚拟设备相关联,并且其中,在第二虚拟机发出对资源的访问请求的情况下,在第一步骤中终止第一虚拟机对资源的直接的访问,并且在第二步骤中由虚拟化控制器来完全承担对资源的控制。通过连接透明的设备,虚拟化控制器虽然原则上已经具有对资源的完全的控制,但是并不使用这些资源,而是仅监视可能仍在运行的使用周期。仅在识别适宜的时间点时,虚拟化控制器才将控制也用于全虚拟化。在第三步骤中,为了继续对资源进行访问,将第一虚拟机与第一虚拟设备相关联,并且在第四步骤中,第二虚拟机对资源的访问借助于第二虚拟设备来实施。因此通过多个虚拟机或者在其上运行的操作系统和进程对资源进行交替访问是可能的,其中,根据需要一个单一的机器能够高性能地访问资源或者多个机器能够竞争性地或者几乎同时地分别访问资源。
此外,所述目的的解决方案提出一种用于借助至少两个虚拟机来管理计算机资源的以及用于管理至少两个虚拟机对资源的访问的虚拟化控制器,其中所述虚拟化控制器设立为用于提供第一虚拟设备以用于第一虚拟机对所述资源的访问以及设立为用于提供第二虚拟设备以用于第二虚拟机对所述资源的访问。在此,虚拟化控制器设计为,为了通过虚拟机中的第一个对资源进行唯一的访问,配置所述第一虚拟机的操作系统对资源的直接访问,其中为了对资源进行访问,第二虚拟设备与具有第二操作系统的第二虚拟机相关联,并且其中在具有第二操作系统的第二虚拟机发出对资源的访问请求的情况下,在第一步骤中终止第一虚拟机对资源的直接访问,在第二步骤中,对资源的控制完全由虚拟化控制器承担,在第三步骤中,为了继续对资源进行访问,第一虚拟设备与第一虚拟机相关联,并且在第四步骤中,第二虚拟机对资源的访问借助于第二虚拟设备来实施。通过这样的虚拟化控制器(Virtual MachineMonitor(虚拟机监视器)-VMM或者管理程序)能够实现根据所述方法阐述的优点。
在下文中给出优选的设计方案。在此阐述的特征和优点既能够单独地也能够以相互组合的方式使用或者起作用。在下文中就所述方法的有利的设计方案进行详细研究,这也符合意义地适合于虚拟化控制器。
通过在结束第四步骤之后在第五步骤中再次建立第一虚拟机对资源的直接访问的方式,能够回到高性能的操作方式,在所述高性能的操作方式中虚拟机中的一个直接且独占地使用资源。
如果使用硬件资源作为资源,那么能够尤其有利地应用所述方法,因为硬件资源不能够任意地被多次复制,而软件资源(例如服务)能较简单地被复制,只要计算机硬件具有足够的基础资源(存储器和处理器性能)。有利地,硬件资源能够是海量存储器或者不能由多个实例竞争性地使用的其它设备。
有利地,在虚拟化控制器控制资源期间,第一虚拟机借助于第一虚拟设备对资源的访问与第二虚拟机借助于第二虚拟设备的访问以有利地交替的方式执行,以至于这两个虚拟机或者由这些虚拟机支持的操作系统能够分别使用资源。
通过虚拟化控制器,有利地实施对资源的操作状态的监视,其中仅在资源具有适合其的操作状态时才执行第一步骤。由此能够实现,在操作方式改变之前,将对资源的正在进行的使用有秩序地终止。类似于此,在回到初始的操作方式之前同样能够等待适宜的操作状态。有利地,作为适宜的操作状态能够等待资源的空闲(Leerlauf)或者处理周期的结束。
当在执行第一步骤之前通过虚拟化控制器缓存第二虚拟机对第二虚拟设备的访问时,其中仅在达到所确定次数的被缓存的访问之后和/或在经过预先设置的等待时间之后才执行所述第一步骤和后续的步骤,操作方式的变化的次数能够被减少,因此在变化时出现的延迟能够被降低到最小程度。
附图说明
在下文中根据附图阐述根据本发明的方法的实施例;同时通过附图说明根据本发明的虚拟化控制器的实施例。
在此示出:
图1示出示例性的资源的任务处理的状态,
图2示出第一操作状态,其中操作系统借助于直接访问独占地使用资源,
图3示出第二操作状态,所述第二操作状态具有通过两个操作系统对资源的竞争性的访问,
图4示出从第一操作状态向第二操作状体的过渡,以及
图5示出在各个操作状态之间的过渡的概览。
具体实施方式
在下文中所描述的方法借助于在图1中简化地示出的资源R来阐述,其状态在序列图中示出。在此,以“空闲”Idle为出发点,在Idle时能够开始处理周期;在最后的状态Read_RES(从寄存器等中读取结果)之后,所述状态跳转回状态Idle,这在所有的附图中通过相应的向上的箭头可视化。应当注意的是,真实的资源R的状态模型可能与所示出的简化的示例不同,但是这对所描述的方法不产生影响。
通过将资源块RB的块编号和用于有效数据存储器的物理主机地址HA写入到为此设置的寄存器RB和HA中来使资源R参数化。所述参数化的顺序在不同的示例中既能够自由地预设也能够固定地预设,在这里这仅在其为重要的时候才被提及。在资源R被参数化之后,通过到命令寄存器CMD中的“读”命令或“写”命令来执行读或写任务CMD并且随后通过中断退出。最后,能够通过读取结果寄存器RES来检查任务的结果。资源R的寄存器能够在真正的系统上通过内存映射I/O,或者通过I/O被访问来读和写。其它的硬件组件也能够影响资源R的功能,因而也必须在真正的系统,例如中断控制器中被处理。
在这里不再探讨资源状态中的错误分支,因为它们完全不改变基本原理。仅假设,在限定的时间之后未出现的中断显示任务的失败,这随后也在RES中表现出来。
在图2中示出如下情况,即客户机G1独占地访问资源R。在此,对于G1而言没有插入虚拟设备VG1,而是进行直接访问DZ;对于客户机G2而言,虚拟设备VG2防止直接访问资源R,并且在访问尝试时,促使虚拟化控制器VS承担对资源R的控制。对于客户机G1直接访问资源R的时间段,虚拟设备VG2必须强制性地被激活。
在图3中图解说明了竞争性访问的情况并且示出了两个虚拟机(客户机G1,G2)在一起访问资源R时的同步。所述附图3相应于竞争性访问的现有技术。
最后,图4图解阐明了在客户机G2的访问尝试之后插入虚拟设备VG1。因为虚拟设备VG1在该运行状态中透明地构成,所以其在图4和5的上下文中被表示为透明的虚拟设备。
在下述段落中讨论在所述方法的范围中的细节和不同的策略。
虚拟设备在现有技术中能够以不同的方式实现。一方面,设备的全虚拟化是可能的。在此,管理程序能够识别完整的任务并且随后在自身的控制下执行所述任务。通过这种方法,不同的客户机能够并行地对其用于R的虚拟设备进行访问,并且管理程序能够根据其自身的判断来管理所识别出的任务。另一方面,也能够应用部分虚拟化。在此,仅监视资源R的个别寄存器,并且能够实现对正在处理访问序列的客户机的访问。在此,管理程序(虚拟化控制器VS)仅管理客户机对资源R的访问权限。由于较大数量的被监视的寄存器、内存区域或者I/O区域,全虚拟化相对于部分虚拟化的解决方案具有性能上的缺陷,但是全虚拟化更灵活并且在识别和监视访问序列时不会引发问题。
对于知道其运行在虚拟机中的操作系统而言,能够安装驱动器,所述驱动器通过半虚拟化将对资源R的访问有利地转到管理程序中或者独立的虚拟机(“Service-VM”(服务器-VM))中,以至于因此不必再监视客户机操作系统对硬件的访问进而避免与之关联的性能缺陷。但是这在此没有进一步详述。
在下文中,根据图2,通过第一虚拟化的操作系统GPOS对资源R的独占的使用应被解释为所述方法的起始点,所述操作系统GPOS被安装在第一虚拟机G1(客户机)上。对此示例性地给出的是,具有虚拟化控制器VS(Virtual Machine Manager VMM(虚拟机管理器))和两个“客户机”的系统(硬件平台,例如个人计算机),所述两个“客户机”即虚拟机G1和G2。G1应是通用的操作系统GPOS(General-PurposeOperating System),例如Microsoft Windows7,用于可视化和数据存储,并且G2应是具有对时间要求严格的控制和管理任务的实时操作系统RTOS(Real Time Operating System),所述对时间要求严格的控制和管理任务例如是信号处理和/或实时通信。但是可替选地,G2也能够是第二种通用的操作系统。客户机操作系统中的每一个都具有专门的驱动器TR(GPOS)、TR(RTOS)以用于操作资源R。
待共享的资源R在这里例如应是硬盘,所述硬盘被G1用作为系统和数据盘,以高频使用所述系统和数据盘。G2在这种情况下使用所述盘用于偶尔存储过程数据并且用于偶尔加载配方数据或者通常永久地位于主存储器中的其它数据,并且因而G2很少访问硬盘。
如从这个示例中看到的,在现有技术中通过G2偶尔地使用资源R也引起G1的虚拟化访问的必要性,所述G1因此在性能上受损。本方法示出如下途径:在虚拟化控制器VS中在通过多个客户机G1,G2严重不对称地使用同一资源R时,如何能够优化客户机G1的性能,所述客户机是资源R的主要使用者。
如在图2至5中所示出的,虚拟化控制器VS为资源R建立虚拟设备VG1,VG2。在此通常将虚拟设备VG1,VG2理解为作为虚拟化控制器VG的一部分的进行虚拟化的中间层,所述中间层拦截、同步化、必要时适当地修改客户机系统G1,G2对资源R的硬件访问,并且最后将其转发给所述资源R。在此,应用由处理器提供的虚拟化技术,所述虚拟化技术能够监视I/O和内存区域,并且在相应的访问时能够将控制从客户机传输给虚拟化控制器VS。同样地,在中断控制器上的中断源被参数化为,使得对R的中断由虚拟化控制器VS拦截并且转发给正确的客户机G1,G2。
作为对此的特殊情况,“透明的”虚拟设备不改变地转发所拦截到的寄存器对资源R的访问和/或资源R的响应例如中断,并且此外,为了识别资源R的状态,能够任意地读取资源R的寄存器,只要这不损害资源R的功能;为此,在图4中,虚拟设备VG1被构造为透明的虚拟设备。其仅用于为虚拟化控制器VS提供关于正在进行的访问的信息。这例如能够用于,通过客户机G1识别对于中断访问的适宜的点,或者也用于收集关于访问频率的统计数据。使用由透明的虚拟设备控制的资源R的客户机G1表现为如“非虚拟化”一样的情况,因此其具有到资源R的独占的入口,但是由于与虚拟化控制器VS的交互而具有略微降低的性能。
在下文中,G1应是高频地使用共同所需要的资源R的客户机,G2仅应偶尔使用资源R。现在,如在图1中示出的一样,所描述的方法的基本状态仅在于,能够实现G1在正常情况下对R的非虚拟化的访问(直接访问DZ)。因此G1能够在正常情况下无性能缺陷地使用资源R。G2在这种操作类型中根本不可能对资源R进行直接访问。每个客户机G1,G2如所提到一样具有自己的驱动器TR(GPOS)、TR(RTOS)以用于访问资源R,但是其中在该操作状态中不使用驱动器(RTOS)或者其不能够用于对资源R进行直接访问DZ。仅在通过客户机G2尝试使用资源R时,驱动器TR(RTOS)才第一次被使用。只要G2的管理程序登记对R的访问请求,那么G1的非虚拟化的访问通过插入虚拟设备而被转换为虚拟化的访问。
所述状态在图3中示出。在此,这两个客户机G1,G2以同样的权限借助于对插入的虚拟设备VG1,VG2的访问VZ1A,VZ2A来访问资源R,其中虚拟化控制器VS将由虚拟设备VG1,VG2产生的访问VZ1B,VZ2B借助于中间层SYNC、TR(VMM)(在虚拟化控制器中用于资源R的同步器和驱动器)同步;获得访问VZ的次序。中间层SYNC、TR(VMM)在此例如能够交替地处理访问VZ1B,VZ2B或者根据其它的策略来引导,例如根据优先法或者时间片法。
从根据图2的独占使用的状态(直接访问DZ)到根据图3的竞争性的访问的过渡在下文中根据图4来阐述。状态的次序和共同作用在图5中示出。
如在上文中所提到的,虚拟设备VG1首先是“透明的”虚拟设备。管理程序(虚拟化控制器VS)因此首先仍不能够完全地控制资源R,因为不知道资源R是否正在被使用。客户机G1的访问直接发生,见图4的箭头1和2。现在,借助于插入的透明的虚拟设备,虚拟化控制器VS能够一如既往地监视G1对R的直接的、非虚拟化的访问,并且确定,客户机G1对资源R的访问正好处于访问序列(见图1)的哪个部分中。在此,在这里必须至少能够明确地识别资源R的Idle-状态,这在这里能够通过监视对寄存器RES(结果)的访问而发生(箭头3a,3b,3c)或者否则例如也能够通过监视中断而发生。
在此能够区分这两种情况。一方面可能的是,客户机G1当前不实施任何访问。资源R因此已经处于所期望的Idle状态。现在适合于区分,虚拟化控制器VS是否能够基于R的情况可靠地识别所述Idle-状态。如果这是这种情况,那么就已经达到所期望的状态。如果不是,那么在虚拟化控制器VS能够确定当前没有任务在处理中之前,虚拟化控制器VS至少必须等待由资源R预设的暂停时间(Timeout)。
而在第二种情况下能够与Idle-状态的一般可识别性无关地借助于对资源R的寄存器的访问来识别所进行的访问序列。因此虚拟化控制器VS能够确定资源R处于Idle状态的时间点。
只要虚拟化控制器VS已识别出资源R的Idle-状态,那么为了全虚拟化地访问用于客户机G1的资源R,虚拟设备VG1被插入(见图3)。资源R从这个位置起通过根据现有技术的方法在G1和G2之间被划分(全虚拟化的操作)。应当指出的是,为此所使用的虚拟设备VG1,VG2也能够使用超出简单地监视I/O和内存地址以及中断的范围的机制。
在客户机G2已实施其访问(见图3中的访问VZ2B)之后,虚拟设备VG1能够在资源R处于Idle-状态中的位置上被关断并且能够为客户机G1再次实现对资源R的非虚拟化的、直接访问DZ(见图2)或者在图4的范围中所描述的对资源R的被监视的、非虚拟化的访问。
在透明的虚拟设备VG1(图4)中的性能提高是可能的,只要在不对访问序列进行完整的监视的情况下也能够确定资源R的Idle-状态。然后,通过虚拟化控制器VS监视的资源R的寄存器的范围被降低到最小程度,其方式为:仅监视对于识别Idle-状态必要的寄存器。在本示例中,例如可能局限于对中断和随后的读取寄存器RES中的状态的监视。
进一步提高性能能够通过任务缓存来实现。为此,虚拟化控制器VS能够中间缓存并且仅在随后才独立地进一步处理客户机G2的仅偶尔发生的访问VZ2A。在这里不同的策略是可能的,特别是积攒多个任务,所述任务仅在达到特定的数量之后或者仅在经过特定的时间之后才借助于所描述的方法在资源R上被执行。当在对时间要求严格的事物期间不允许中断或者不期望中断G1并且与此同时G2不应等待其任务的完成时,这种方式尤其具有优势。G1能够通过所谓的“锁定机制(Locking-Mechanismen)”将这样的事物标记在资源R上,其例如能够通过发送给虚拟化控制器VS的命令来实现,所述命令例如是超级调用(Hypercall)/管理程序调用(Hypervisor call)/VM退出(VM-EXIT)。
在一个有利的设计方案中能够避免在上文中所描述的、用于确定Idle-状态的“暂停机制(Timeout-Mechanismus)”。如所描述的,在如下情况中,其中在没有对访问序列的完整的监视时不能确认资源R的Idle-状态,能够在客户机G1方面等待“暂停(Timeout)”,以便可靠地排除对任务的处理。所述暂停能够通过如下方式避免,即在资源R上因G1而缺失活性时,客户机G1暂停对R的预设任务,所述预设任务对于G1的运行不是必要的,但是与通过暂停机制是可能的情况相比,它能够使管理程序(虚拟化控制器VS)更快地识别资源R的Idle-状态。所述任务在理想情况下应是读任务并且在比暂停值更高的频率中应被暂停。与此同时,其在G1上应是具有低优先级的,以便能够必要地阻止G1的实施。在这里所描述的虚设任务在G1上既能够实现为驱动器也能够实现为应用程序。
通过使用虚拟设备VG1,VG2,除了协调访问本身,虚拟化控制器VS能够通过各个客户机G1,G2生成关于资源R的使用的统计。在对R的非竞争性的访问的情况下(见图2),为此也能够使用透明的虚拟设备(见对图4的阐述)。所述统计数据能够用于,有利地为客户机系统分配访问频率。因此在所提出的方法中,经常地和偶然地访问资源R的客户机的角色能够动态地改变,这在客户机上暂时提高的访问速率的情况下改善所述方法。在多个客户机的动态出现的提高的访问频率的情况下,所述方法能够有利地有助于将虚拟设备使用在所有的客户机上。
以对由客户机在较长的时间段内所采集的数据进行周期性评估作为举例,所述评估每天在特定的时间点发生。管理程序能够借助于其访问统计预见,在该时间点,相应的客户机具有对资源R的提高的访问频率,并且资源R优选相应地分配给所述客户机。
与之前所描述的途径相反,提高的访问频率能够通过虚拟化控制器VS经由评估统计的访问数据本身来识别或预测,客户机本身也能够借助于通信方法例如超级调用将其对资源R的访问频率通知给虚拟化控制器VS。以这种方式,客户机G2例如在访问其数据存储库(Datenhaltung)之前告知虚拟化控制器VS目前跟随的大量的访问,因此该虚拟化控制器VS能够针对此安排策略,即将G1和G2作为具有类似的对R的访问频率的客户机来处理,或者甚至将G1从现在起设置为具有较低的访问频率的客户机进而将G2设置为具有优选对资源R进行直接访问的机器。在对数据存储库的访问结束之后,例如再次通过超级调用告知虚拟化控制器VS从现在起进一步降低的访问频率。该方法能够与在上文中所描述的统计法结合,其方式为:以从统计中获得的数值评估特定的访问序列的通知,并且相应地调节R的虚拟化策略。
Claims (16)
1.一种用于通过至少两个虚拟机(G1,G2)来使用计算机的资源(R)的方法,
其中通过分别安装在虚拟机(G1,G2)上的操作系统提供对所述资源(R)的交替的访问,
其中所述虚拟化控制器(VS)设立为用于对所述资源(R)进行虚拟化,并且
其中在所述虚拟化控制器(VS)中,为所述虚拟机(G1,G2)的作为第一或者第二虚拟设备(VG1,VG2)的每一个提供所述资源(R),
其特征在于,对于通过所述虚拟机(G1)的第一个对所述资源(R)的唯一的访问而言,提供所述第一虚拟机(G1)的第一操作系统对所述资源(R)的直接访问(DZ),
其中为了对所述资源(R)进行访问,将所述第二虚拟设备(VG2)与所述第二虚拟机(G2)相关联,并且
在所述第二虚拟机(G2)发出对所述资源(R)的访问请求的情况下,
-在第一步骤中,终止所述第一虚拟机(G1)对所述资源(R)的所述直接访问(DZ),
-在第二步骤中,由所述虚拟化控制器(VS)来完全承担对所述资源(R)的控制,
-在第三步骤中,为了继续对所述资源(R)进行访问,将所述第一虚拟设备(VG1)与所述第一虚拟机(G1)相关联,以及
-在第四步骤中,借助于所述第二虚拟设备(VG2)来执行所述第二虚拟机(G2)对所述资源(R)的所述访问。
2.根据权利要求1所述的方法,
其特征在于,在结束所述第四步骤之后,在第五步骤中,再次建立所述第一虚拟机(G1)对所述资源(R)的所述直接访问(DZ)。
3.根据上述权利要求中任一项所述的方法,
其特征在于,
使用硬件资源作为所述资源(R)。
4.根据权利要求3所述的方法,
其特征在于,
使用海量存储器或者另一个暂时仅能由一个实例使用的设备作为所述硬件资源。
5.根据上述权利要求中任一项所述的方法,
其特征在于,
在所述虚拟化控制器(VS)控制所述资源(R)期间,以交替的方式实施所述第一虚拟机(G1)借助于所述第一虚拟设备(VG1)对所述资源(R)的访问与所述第二虚拟机(G2)借助于所述第二虚拟设备(VG2)的访问。
6.根据上述权利要求中任一项所述的方法,
其特征在于,
通过所述虚拟化控制器(VS)来实施对所述资源(R)的操作状态的监视,其中仅在所述资源(R)具有对其适合的操作状态时才实施所述第一步骤。
7.根据权利要求6所述的方法,
其特征在于,
作为适宜的操作状态等待所述资源(R)的空闲或者该资源的处理周期的结束。
8.根据上述权利要求中任一项所述的方法,
其特征在于,
在执行所述第一步骤之前,通过所述虚拟化控制器(VS)缓存所述第二虚拟机(G2)对所述第二虚拟设备(VG2)的访问,其中仅在达到所确定次数的被缓存的访问之后和/或在经过预先设置的等待时间之后才实施所述第一步骤和后续的步骤。
9.一种用于借助至少两个虚拟机(G1,G2)来管理计算机的资源的虚拟化控制器(VS)以及用于管理所述至少两个虚拟机(G1,G2)对所述资源的访问的方法,
其中所述虚拟化控制器(VS)设立为用于提供第一虚拟设备(VG1)以用于第一虚拟机(G1)对所述资源(R)的访问以及设立为用于提供第二虚拟设备(VG2)以用于第二虚拟机(G2)对所述资源(R)的访问,
其特征在于,
所述虚拟化控制器(VS)设立为,为了通过所述虚拟机中的第一个(G1)对所述资源(R)进行唯一的访问,配置所述第一虚拟机的操作系统对所述资源(R)的直接访问,
其中为了对所述资源(R)进行访问,将所述第二虚拟设备(VG2)与具有所述第二操作系统的所述第二虚拟机(G2)相关联,并且
在具有所述第二操作系统的所述第二虚拟机(G2)发出对所述资源(R)的访问请求的情况下,
-在第一步骤中终止所述第一虚拟机(G1)对所述资源(R)的直接访问(DZ),
-在第二步骤中,由所述虚拟化控制器(VS)来完全承担对所述资源(R)的所述控制,
-在第三步骤中,为了继续对所述资源(R)进行访问,将所述第一虚拟设备(VG1)与所述第一虚拟机(G1)相关联,并且
-在第四步骤中,借助于所述第二虚拟设备(VG2)来实施所述第二虚拟机(G2)对所述资源(R)的访问。
10.根据权利要求9所述的虚拟化控制器(VS),
其特征在于,
所述虚拟化控制器(VS)设立为,在结束所述第四步骤之后,在第五步骤中再次建立所述第一虚拟机(G1)对所述资源(R)的所述直接访问(DZ)。
11.根据权利要求9或10所述的虚拟化控制器(VS),
其特征在于,
所述虚拟化控制器(VS)设立为用于将硬件资源作为所述资源(R)来使用。
12.根据权利要求11所述的虚拟化控制器(VS),
其特征在于,
所述虚拟化控制器(VS)设立为用于将海量存储器或者另一个暂时仅能由一个实例使用的设备作为所述硬件资源来使用。
13.根据权利要求9至12中任一项所述的虚拟化控制器(VS),
其特征在于,
在所述虚拟化控制器(VS)控制所述资源(R)期间,以交替的方式实施所述第一虚拟机(G1)借助于所述第一虚拟设备(VG1)对所述资源(R)的所述访问与所述第二虚拟机(G2)借助于所述第二虚拟设备(VG2)的访问。
14.根据权利要求9至13中任一项所述的虚拟化控制器(VS),
其特征在于,
通过所述虚拟化控制器(VS)来实施对所述资源(R)的所述操作状态的监视,其中仅在所述资源(R)具有对其适合的操作状态时才实施所述第一步骤。
15.根据权利要求14所述的虚拟化控制器(VS),
其特征在于,
作为适宜的操作状态等待所述资源(R)的空闲或者该资源的处理周期的结束。
16.根据权利要求9至15中任一项所述的虚拟化控制器(VS),
其特征在于,
在执行所述第一步骤之前,通过所述虚拟化控制器(VS)缓存所述第二虚拟机(G2)对所述第二虚拟设备(VG2)的访问,其中仅在达到所确定次数的被缓存的访问之后和/或在经过预先设置的等待时间之后才实施所述第一步骤和后续的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13153288.9 | 2013-01-30 | ||
EP13153288.9A EP2763039A1 (de) | 2013-01-30 | 2013-01-30 | Verfahren und Virtualisierungssteuerung zur Verwaltung einer Ressource eines Computers mit zumindest zwei virtuellen Maschinen |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103970608A true CN103970608A (zh) | 2014-08-06 |
Family
ID=47683582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410044188.XA Pending CN103970608A (zh) | 2013-01-30 | 2014-01-30 | 用于借助至少两个虚拟机来管理计算机资源的方法及虚拟化控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20140215467A1 (zh) |
EP (1) | EP2763039A1 (zh) |
CN (1) | CN103970608A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225134B2 (en) * | 2007-04-06 | 2012-07-17 | Cisco Technology, Inc. | Logical partitioning of a physical device |
JP6114829B2 (ja) * | 2012-09-28 | 2017-04-12 | サイクルコンピューティング エルエルシー | 仮想環境における演算インフラストラクチャのリアルタイム最適化 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132365A1 (en) * | 2003-12-16 | 2005-06-16 | Madukkarumukumana Rajesh S. | Resource partitioning and direct access utilizing hardware support for virtualization |
US20050198633A1 (en) * | 2004-03-05 | 2005-09-08 | Lantz Philip R. | Method, apparatus and system for seamlessly sharing devices amongst virtual machines |
US20080294808A1 (en) * | 2007-05-23 | 2008-11-27 | Vmware, Inc. | Direct access to a hardware device for virtual machines of a virtualized computer system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090007100A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Suspending a Running Operating System to Enable Security Scanning |
US8970603B2 (en) * | 2010-09-30 | 2015-03-03 | Microsoft Technology Licensing, Llc | Dynamic virtual device failure recovery |
US9021475B2 (en) * | 2011-05-04 | 2015-04-28 | Citrix Systems, Inc. | Systems and methods for SR-IOV pass-thru via an intermediary device |
US8666723B2 (en) * | 2011-08-31 | 2014-03-04 | Oregon State Board Of Higher Education On Behalf Of Portland State University | System and methods for generating and managing a virtual device |
-
2013
- 2013-01-30 EP EP13153288.9A patent/EP2763039A1/de not_active Withdrawn
-
2014
- 2014-01-29 US US14/167,692 patent/US20140215467A1/en not_active Abandoned
- 2014-01-30 CN CN201410044188.XA patent/CN103970608A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050132365A1 (en) * | 2003-12-16 | 2005-06-16 | Madukkarumukumana Rajesh S. | Resource partitioning and direct access utilizing hardware support for virtualization |
US20050198633A1 (en) * | 2004-03-05 | 2005-09-08 | Lantz Philip R. | Method, apparatus and system for seamlessly sharing devices amongst virtual machines |
US20080294808A1 (en) * | 2007-05-23 | 2008-11-27 | Vmware, Inc. | Direct access to a hardware device for virtual machines of a virtualized computer system |
Also Published As
Publication number | Publication date |
---|---|
US20140215467A1 (en) | 2014-07-31 |
EP2763039A1 (de) | 2014-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9864627B2 (en) | Power saving operating system for virtual environment | |
US10552272B2 (en) | Maintaining high availability during N-node failover | |
US7945908B1 (en) | Method and system for improving the accuracy of timing and process accounting within virtual machines | |
US10185514B2 (en) | Virtual machine trigger | |
CN107577185B (zh) | 一种任务执行方法及基于多核处理器的控制器 | |
JP5505914B2 (ja) | 単一プロセッサまたはマルチプロセッサ・コンピュータ・システムにおけるマルチタスク・アプリケーションのロギングおよび再生を最適化する方法 | |
US8191062B2 (en) | System for processor frequency governors to govern a processor frequency by deriving CPU utilization information based on the state of virtual machine monitor | |
JP2002202959A (ja) | 動的な資源分配をする仮想計算機システム | |
US9864626B2 (en) | Coordinating joint operation of multiple hypervisors in a computer system | |
US20140373010A1 (en) | Intelligent resource management for virtual machines | |
WO2018039967A1 (zh) | 虚拟机切换方法、装置、电子设备和计算机程序产品 | |
US20140026143A1 (en) | Exclusive access control method and computer product | |
US20220004420A1 (en) | Optimizing Host CPU Usage Based on Virtual Machine Guest OS Power and Performance Management | |
US9715403B2 (en) | Optimized extended context management for virtual machines | |
JP2008529114A5 (zh) | ||
US20150121152A1 (en) | System monitoring and debugging in a multi-core processor system | |
US20150339155A1 (en) | Virtual Processor States | |
CN113826072B (zh) | 系统管理模式中的代码更新 | |
US10459747B2 (en) | Exitless timer access for virtual machines | |
US11061730B2 (en) | Efficient scheduling for hyper-threaded CPUs using memory monitoring | |
CN103970608A (zh) | 用于借助至少两个虚拟机来管理计算机资源的方法及虚拟化控制器 | |
CN105340246A (zh) | 一种管理系统资源的方法、装置及设备 | |
US9933832B2 (en) | Systems and methods for modifying power states in a virtual environment | |
KR101379835B1 (ko) | 가상 머신에 가상 배터리를 제공하는 가상 머신 모니터, 가상 머신 호스트 시스템 및 가상 배터리 관리 방법 | |
US8402191B2 (en) | Computing element virtualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140806 |