一种虚拟机系统及其处理方法转让专利

申请号 : CN200610169578.5

文献号 : CN101206582B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘建成

申请人 : 联想(北京)有限公司

摘要 :

本发明公开了一种虚拟机系统及其处理方法,该虚拟机系统包括服务操作系统、至少一个客户操作系统、虚拟机监视器和硬件,其中,所述服务操作系统包括虚拟机配置管理及支撑模块;所述虚拟机监视器包括:直接与硬件进行交互的模块,用于在客户操作系统和硬件之间传输客户操作系统与硬件交互的请求或硬件处理结果;服务操作系统控制模块,用于将对虚拟机监视器或虚拟机进行配置管理的请求发送给服务操作系统的虚拟机配置管理及支撑模块,并在服务操作系统空闲超时后关闭服务操作系统。本发明的SOS不需要实时运行,GOS和VMM能利用更多的资源,有效地提高了GOS及整个虚拟机系统的效率,更适合客户端的虚拟机应用场景。

权利要求 :

1.一种虚拟机系统,包括服务操作系统、至少一个客户操作系统、虚拟机监视器和硬件,其特征在于:所述服务操作系统包括虚拟机配置管理及支撑模块;

所述虚拟机监视器包括:

直接与硬件进行交互的模块,用于在客户操作系统和硬件之间传输客户操作系统与硬件交互的请求或硬件处理结果;

服务操作系统控制模块,用于将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给虚拟机配置管理及支撑模块,并在服务操作系统空闲超时后关闭服务操作系统;

所述客户操作系统包括:

应用程序模块;

第二客户操作系统驱动模块,用于在应用程序模块和所述直接与硬件进行交互的模块之间传输应用程序模块的与硬件交互的请求和硬件处理结果,和/或用于利用直接设备操作方式实现应用程序模块与硬件的交互。

2.根据权利要求1所述的虚拟机系统,其特征在于,所述客户操作系统包括:第一客户操作系统驱动模块,用于在应用程序模块和服务操作系统控制模块之间传输所述对虚拟机和/或虚拟机监视器进行配置管理的请求。

3.根据权利要求1所述的虚拟机系统,其特征在于,所述服务操作系统还包括服务操作系统驱动模块,用于传输对虚拟机和/或虚拟机监视器进行配置管理的请求。

4.根据权利要求1、2或3所述的虚拟机系统,其特征在于,所述直接与硬件进行交互的模块包括调度模块,内存管理模块,同时还包括设备共享模块和/或直接设备操作模块。

5.根据权利要求4所述的虚拟机系统,其特征在于,所述虚拟机配置管理及支撑模块包括虚拟机管理模块、通讯驱动模块和文件系统模块。

6.根据权利要求5所述的虚拟机系统,其特征在于,所述虚拟机配置管理及支撑模块还包括脚本语言分析执行模块。

7.一种虚拟机系统的处理方法,其特征在于,包括:

上电启动时,服务操作系统控制模块启动服务操作系统的步骤;

客户操作系统通过设置于虚拟机监视器中的直接与硬件进行交互的模块与硬件进行交互或通过直接设置操作方式与硬件进行交互的步骤;

服务操作系统控制模块将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给设置于服务操作系统中的虚拟机配置管理及支撑模块,由虚拟机配置管理及支撑模块进行虚拟机的配置及管理的步骤;

服务操作系统控制模块监控服务操作系统,并在服务操作系统空闲超时后关闭服务操作系统并释放资源的步骤。

8.根据权利要求7所述的处理方法,其特征在于,服务操作系统控制模块将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给设置于服务操作系统中的虚拟机配置管理及支撑模块,由虚拟机配置管理及支撑模块进行虚拟机的配置及管理的步骤具体包括:步骤31,客户服务系统或虚拟机监视器需要使用虚拟机监视器配置管理功能,向服务操作系统控制模块发送对虚拟机和/或虚拟机监视器进行配置管理的请求;

步骤32,服务操作系统控制模块接收到对虚拟机和/或虚拟机监视器进行配置管理的请求后,判断服务操作系统是否运行,如果是进入步骤33,否则启动服务操作系统,并开始空闲计时,进入步骤33;

步骤33,服务操作系统控制模块将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给虚拟机配置管理及支撑模块;

步骤34,服务操作系统启动后,虚拟机配置管理及支撑模块根据对虚拟机和/或虚拟机监视器进行配置管理的请求对虚拟机和/或虚拟机监视器进行配置管理。

9.根据权利要求7或8所述的处理方法,其特征在于,所述直接与硬件进行交互的模块包括调度模块,内存管理模块,同时还包括设备共享模块和/或直接设备操作模块。

10.根据权利要求9所述的处理方法,其特征在于,所述虚拟机配置管理及支撑模块包括虚拟机管理模块、通讯驱动模块和文件系统模块。

11.根据权利要求10所述的处理方法,其特征在于,所述虚拟机配置管理及支撑模块还包括脚本语言分析执行模块。

说明书 :

技术领域

本发明涉及虚拟机技术,特别是一种虚拟机系统及其处理方法。

背景技术

目前的虚拟机系统的架构主要有3种类型,如下所述:
1、运行于Host OS(Operation System,操作系统)之上的虚拟机系统,其效率比较低,其典型代表为VMWare;
2、准虚拟化虚拟机(Para VMM),其仅仅虚拟网卡,不支持多显示,无法满足PC客户端的其他引用场景,其典型代表为一些主流IT产商的Embedded IT型的虚拟机;
3、混合型型虚拟机(Hybrid VMM),直接运行硬件之上,效率高,能够虚拟所有设备,支持多显示,满足PC Client丰富应用场景需求,是业界的主流虚拟机架构。目前,一些开源组织和主流虚拟机公司的产品都采用这种架构。
混合型型虚拟机系统中包括一SOS(Service OS,服务操作系统),主要提供虚拟机的管理功能(如虚拟机的创建、删除、管理等),属于VMM(VirtualMachine Monitor,虚拟机监视器)的一部分,这种架构也存在一定的缺点:
模块划分不够清晰,有些Guest OS(客户操作系统)运行的必须的模块也运行在SOS,如Device Mode(设备模拟模块),VMMBus(虚拟总线)等,因此SOS必须实时运行;
然而,对于客户端的绝大多数应用场景来说,虚拟机管理功能运行的频率很少,仅仅针对虚拟机管理功能来说,绝大多数情况下SOS不需要实时运行,但是由于前述的原因,SOS又需要实时运行,这就存在矛盾,一方面SOS需要实时运行,而从另一方面来看,SOS的实时运行又造成了资源的不合理应用,虚拟机运行效率低下。

发明内容

本发明的目的在于提供一种虚拟机系统及其处理方法,降低SOS的运行时间,提高运行效率。
为了实现上述目的,本发明提供了一种虚拟机系统,包括服务操作系统、至少一个客户操作系统、虚拟机监视器和硬件,其中:
所述服务操作系统包括虚拟机配置管理及支撑模块;
所述虚拟机监视器包括:
直接与硬件进行交互的模块,用于在客户操作系统和硬件之间传输客户操作系统与硬件交互的请求和硬件处理结果;
服务操作系统控制模块,用于将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给虚拟机配置管理及支撑模块,并在服务操作系统空闲超时后关闭服务操作系统。
上述的虚拟机系统,其中,所述客户操作系统包括:
应用程序模块;
第一客户操作系统驱动模块,用于在应用程序模块和服务操作系统控制模块之间传输对虚拟机和/或虚拟机监视器进行配置管理的请求;
第二客户操作系统驱动模块,用于在应用程序模块和第一模块之间传输应用程序模块的与硬件交互的请求和硬件处理结果,和/或用于利用DHA方式实现应用程序模块与硬件的交互。
上述的虚拟机系统,其中,所述服务操作系统还包括服务操作系统驱动模块,用于传输对虚拟机和/或虚拟机监视器进行配置管理的请求。
上述的虚拟机系统,其中,所述直接与硬件进行交互的模块包括调度模块,内存管理模块,同时还包括设备共享模块和/或直接设备操作模块。
上述的虚拟机系统,其中,所述虚拟机配置管理及支撑模块包括虚拟机管理模块、通讯驱动模块和文件系统模块。
上述的虚拟机系统,其中,所述虚拟机配置管理及支撑模块还包括脚本语言分析执行模块。
为了实现上述目的,本发明还提供了一种虚拟机系统的处理方法,其中,包括:
客户操作系统通过设置于虚拟机监视器中的直接与硬件进行交互的模块与硬件进行交互或通过直接设置操作方式与硬件进行交互的步骤;
服务操作系统控制模块将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给设置于服务操作系统中的虚拟机配置管理及支撑模块,由虚拟机配置管理及支撑模块进行虚拟机的配置及管理的步骤;
服务操作系统控制模块在服务操作系统空闲超时后关闭服务操作系统并释放资源的步骤。
上述的处理方法,其中,服务操作系统控制模块将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给设置于服务操作系统中的虚拟机配置管理及支撑模块,由虚拟机配置管理及支撑模块进行虚拟机的配置及管理的步骤具体包括:
步骤31,客户服务系统或虚拟机监视器需要使用虚拟机监视器配置管理功能,向服务操作系统控制模块发送对虚拟机和/或虚拟机监视器进行配置管理的请求;
步骤32,服务操作系统控制模块接收到对虚拟机和/或虚拟机监视器进行配置管理的请求后,判断服务操作系统是否运行,如果是进入步骤33,否则启动服务操作系统,并开始空闲计时,进入步骤33;
步骤33,服务操作系统控制模块将对虚拟机和/或虚拟机监视器进行配置管理的请求发送给虚拟机配置管理及支撑模块;
步骤34,服务操作系统启动后,虚拟机配置管理及支撑模块根据对虚拟机和/或虚拟机监视器进行配置管理的请求对虚拟机和/或虚拟机监视器进行配置管理。
上述的处理方法,其中,设置于虚拟机监视器中的直接与硬件进行交互的模块在客户操作系统和硬件之间传输客户操作系统与硬件交互的请求和硬件处理结果的步骤具体为:
GOS可以通过第二客户操作系统驱动模块通过直接设备操作方式与硬件进行交互,同时由第一模块中的直接设备操作(DHA:Direct Hardware Access& Switch)模块把硬件切换到其他虚拟机或终止DHA;
当系统中存在多个GOS,各GOS可以通过第二客户操作系统驱动模块与第一模块交互,各GOS均通过第一模块实现与硬件的交互。
上述的处理方法,其中,所述直接与硬件进行交互的模块包括调度模块,内存管理模块,同时还包括设备共享模块和/或直接设备操作模块。
上述的处理方法,其中,所述虚拟机配置管理及支撑模块包括虚拟机管理模块、通讯驱动模块和文件系统模块。
上述的处理方法,其中,所述虚拟机配置管理及支撑模块还包括脚本语言分析执行模块。
本发明的虚拟机系统及其处理方法,通过将现有虚拟机监视器中的模块分为两部分,将不需要实时运行的虚拟机配置管理及其支撑模块设置于SOS,同时在虚拟机监视器中设置另外一个模块监控SOS,在SOS空闲超时时关闭SOS,而在需要进行虚拟机配置管理时再启动SOS,这样,SOS不需要实时运行,使GOS能利用更多的系统资源,有效地提高了虚拟机系统的效率。

附图说明

图1为本发明的虚拟机系统的结构示意图;
图2为本发明的虚拟机系统的处理方法中启动时的流程图;
图3为本发明的虚拟机系统的处理方法中运行时的流程图。

具体实施方式

本发明的虚拟机系统及其处理方法中,将虚拟机系统运行所必需的实时模块设置于VMM中,而其他模块设置于SOS中,同时,VMM在需要进行虚拟机配置、管理时,启动SOS,否则关闭SOS并释放资源。
在此,为方便描述,将本发明中所提到的虚拟机系统运行必需实时运行的基本模块命名为第一模块,该第一模块的基本特征是直接与硬件进行交互,管理硬件设备;而第一模块之外非必需实时运行模块命名为第二模块,其为虚拟机配置管理模块及支撑模块。
为了方便更好的理解本发明的虚拟机系统及其运行方法,在此先对第一模块和第二模块进行详细的说明如下,其中:
第一模块包括:
调度(Schedule)模块:直接分配、管理物理CPU,分配合理的物理CPU资源给不同的虚拟机,保证多个虚拟机能够在同一个或几个物理CPU上正常运行;
内存管理(Memory)模块:直接分配、管理物理内存,分配合理的物理内存给相应的虚拟机,建立、维护虚拟机物理内存到真实物理内存的映射关系,保证多个虚拟机合理有效共享有限的物理内存;
设备共享(Device Share)模块:截获虚拟机对真实设备的I/O、中断、DMA操作,建立、维护虚拟机设备和真实物理设备的I/O、中断、DMA通道的映射关系,保证多个虚拟机合理有效地共享有限的物理设备;
直接设备操作(DHA:Direct Hardware Access & Switch)模块:让某个虚拟机直接操作真实物理设备,虚拟机监视器可以不做干预,但是具备在把该设备切换到其他虚拟机或是终止DHA的能力;
而第二模块包括:
虚拟机管理(VM Management)模块:用于管理虚拟机,例如创建、删除虚拟机,或是修改虚拟机的配置;
虚拟机管理支撑(Support)模块:很多情况下,虚拟机管理模块以Web对外提供服务,因此,必须有Web服务模块;此外,通讯驱动模块,文件系统(管理虚拟机配置文件)模块以及脚本语言分析、执行模块往往也是必需的支撑模块。
在此,需要特别说明的是,上述的对第一模块和第二模块的描述中所涉及到的模块并不是固定不变,会根据不同应用场景发生变化。
例如,在某些应用场景只有一个GOS,该GOS DHA所有设备,则上述第一模块中的设备共享模块将不再是必需实时运行的模块;当然,如果多个GOS均通过设备共享模块与硬件交互,则直接设备操作(DHA:Direct HardwareAccess & Switch)模块将不再是必需实时运行的模块。
同时,通过二进制代码程序直接创建、删除虚拟机或是修改虚拟机的配置,则脚本语言分析、执行模块也不再需要。
如图1所示,本发明的虚拟机系统包括服务操作系统SOS、至少一个客户操作系统GOS(为方便说明GOS与硬件交互的各种方式,图1中以2个为例)、虚拟机监视器VMM和硬件Hardware,其中:
VMM中包括:
第一模块,用于接收客户操作系统的与硬件交互的请求,并将该与硬件交互的请求发送给硬件进行处理,并返回硬件处理结果给客户操作系统;
SOS控制模块,用于在接收到对VMM和/或VM进行配置管理的请求或初始上电启动时启动SOS,并将对VMM和/或VM进行配置管理的请求发送给服务操作系统,并在SOS空闲超时后关闭SOS;
其中,上述的对VMM和/或VM进行配置管理的请求可以是来自GOS,也可以来自VMM本身;
所述的服务操作系统SOS中设置有:
第二模块,用于提供VMM配置及管理功能,根据对VMM和/或VM进行配置管理的请求对VMM进行配置管理;
服务操作系统驱动模块,用于连接SOS控制模块和虚拟机配置管理模块,在SOS控制模块和虚拟机配置管理模块之间传输数据和命令;
所述的客户操作系统GOS中设置有:
第一客户操作系统驱动模块,用于连接应用程序模块和SOS控制模块,在应用程序模块和SOS控制模块之间传输对VMM和/或VM进行配置管理的请求及数据;
第二客户操作系统驱动模块,用于连接应用程序模块和第一模块,在应用程序模块和第一模块之间传输应用程序模块的与硬件交互的请求和硬件处理结果,和/或用于连接应用程序模块和硬件,利用DHA方式直接与硬件进行交互。在图1中示出了这两种情况。
该第一客户操作系统驱动模块可以是虚拟的网卡驱动,当然也可以是其它的实现应用程序模块和第一模块的连接的其它驱动。
当然,当GOS没有对VMM进行配置、管理的需求或者系统设置不允许GOS对VMM进行配置、管理时,该第一客户操作系统驱动模块并不是一个必需的模块。
下面对上述的虚拟机系统的运行进行详细描述。
本发明的虚拟机系统的处理方法中,对于虚拟机配置管理的处理包括启动步骤和运行步骤,其中:
启动步骤中,虚拟机上电后,运行BIOS/EFI,并启动VMM,SOS控制模块启动SOS,由第二模块创建GOS,并设定正确的设备访问方式,其中具体如图2所示,包括如下具体步骤:
步骤21,上电运行BIOS/EFI,同时启动VMM;
步骤22,VMM中的SOS控制模块启动SOS,并开始空闲计时;
步骤23,在需要创建GOS时,第二模块创建GOS并设定正确的设备访问方式后进入步骤24,否则直接进入步骤24;
步骤24,SOS控制模块监控SOS的空闲时间,并在SOS空闲超时后关闭SOS并释放资源。
而运行步骤中,SOS控制模块一旦接收到对VMM和/或VM进行配置管理的请求时,则启动SOS,并将对VMM和/或VM进行配置管理的请求转发给SOS进行处理,具体如图3所示,包括如下步骤:
步骤31,GOS或VMM需要使用VMM和/或VM配置管理功能,向SOS控制模块发送对VMM和/或VM进行配置管理的请求;
步骤32,SOS控制模块接收到对VMM和/或VM进行配置管理的请求后,判断SOS是否运行,如果是进入步骤33,否则启动SOS,并开始空闲计时,进入步骤33;
步骤33,SOS控制模块将对VMM和/或VM进行配置管理的请求通过服务操作系统驱动模块发送给第二模块;
步骤34,SOS启动后,第二模块提供VMM配置及管理功能,根据对VMM和/或VM进行配置管理的请求对VMM进行配置管理;
步骤35,SOS控制模块监控SOS的空闲时间,在SOS空闲超时后关闭SOS并释放资源。
同时,本发明的虚拟机系统的处理方法中,对于与硬件交互请求的处理具体如下所述:
GOS可以通过第二客户操作系统驱动模块通过直接设备操作方式与硬件进行交互,同时由第一模块中的直接设备操作(DHA:Direct Hardware Access& Switch)模块把硬件切换到其他虚拟机或终止DHA;
当系统中存在多个GOS,各GOS可以通过第二客户操作系统驱动模块与第一模块交互,各GOS均通过第一模块实现与硬件的交互。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。