一种虚拟机管理系统及其文件访问方法

文档序号:7866784阅读:399来源:国知局
专利名称:一种虚拟机管理系统及其文件访问方法
技术领域
本发明属于云计算与虚拟化、桌面虚拟化领域,尤其涉及一种虚拟机管理系统及其文件访问方法。
背景技术
虚拟化概念最早出现在20世纪70年代,大型计算机就一直在同时运行多个操作系统实例,每个实例也彼此独立。虚拟化的主要目的是对信息技术基础设施进行简化。它可以简化对资源以及对资源管理的访问。降低了消费者与资源之间的耦合程度。虚拟机是对真实计算环境的抽象和模拟,虚拟机监控器(VMM)需要为每个虚拟机分配一套数据结构来管理它们状态,包括虚拟处理器的全套寄存器,物理内存的使用情况,虚拟设备的状态等。 在云计算的模式下,个人计算机将从以桌面系统为中心转向以网络为中心,所有的服务和应用都可以按照用户的需要弹性地在线提供。桌面虚拟化技术的本质是将桌面的操作环境与机器运行环境分离,实现在任何地点,通过非特定设备(例如不同的台式机、笔记本、甚至包括手机)都可以实现对桌面的访问与操作。伴随着虚拟化技术蓬勃发展,作为虚拟化领域的热门技术,桌面虚拟化得到了极大的发展,桌面虚拟化技术的进步和用户需求也逐渐兴起,现在已经有一些虚拟化方案实现虚拟机对物理机硬盘上文件的访问,但在用户使用虚拟桌面的过程中,在文件共享方面,仍有以下的局限性I.只能共享虚拟机所在物理机的本地文件,如Oracle的virtualbox产品、VMware的 VMware Workstation 等。2.通过远程虚拟桌面显示协议访问,但只能共享远程虚拟桌面连接所在的物理机的本地文件,如微软的RDP远程显示协议等。

发明内容
本发明所要解决的技术问题之一是需要提供一种能够通过远程虚拟机安全地访问指定物理机中的文件的虚拟机管理系统及其文件访问方法。为了解决上述技术问题,本发明提供了一种虚拟机管理系统的文件访问方法。该方法包括创建步骤,虚拟机硬件模拟器创建虚拟机及该虚拟机的第一监听进程;连接建立步骤,所述虚拟机硬件模拟器通过所述第一监听进程与客户端建立远程桌面连接;接收步骤,所述虚拟机硬件模拟器接收从与所述虚拟机建立连接的客户端发来的文件访问地址信息,文件访问地址信息包括指定的物理机地址和访问路径;设备创建步骤,若所述虚拟机硬件模拟器接收到从与所述虚拟机建立连接的客户端发来的文件访问地址信息,则所述虚拟机硬件模拟器创建用于访问所接收到的文件访问地址信息指示的路径下的文件的虚拟设备;所述虚拟机挂载所创建虚拟设备以备所述客户端访问。进一步,所述创建步骤中,所述虚拟机硬件模拟器还创建第二监听进程;所述连接建立步骤中,所述虚拟机硬件模拟器还通过第二监听进程与客户端建立第二连接;所述接收步骤中,所述虚拟机硬件模拟器通过第二连接接收从与所述虚拟机建立连接的客户端发来的文件访问地址信息。优选地,虚拟机硬件模拟器是QEMU硬件模拟器,其中,所述创建步骤中,所述QEMU硬件模拟器在启动所述虚拟机时利用-monitor选项来指定监听主机地址范围和监听端口号来创建所述第二监听进程,以及在启动所述虚拟机时利用-spice选项来指明要采用的远程虚拟桌面连接协议。进一步,所述设备创建步骤中,若所述虚拟机硬件模拟器接收到从与所述虚拟机 建立连接的客户端发来的文件访问地址信息,则所述虚拟机硬件模拟器创建用于访问所接收到的文件访问地址信息指示的路径下的文件的第一虚拟设备和第二虚拟设备,其中,所述第一虚拟设备用来定义共享的文件系统的属性,所述第二虚拟设备是用于访问所述第一虚拟设备表示的文件系统的驱动,以及所述第一虚拟设备用的文件系统类型为计划9文件系统。优选地,所述虚拟机硬件模拟器和所述虚拟机处于云计算系统中,所述指定的物理机地址是与所述虚拟机所在物理机的物理机地址不同的地址。根据本发明的另一方面,还提供一种虚拟机管理系统。该系统包括虚拟机硬件模拟器和一个或一个以上虚拟机。其中,虚拟机硬件模拟器用于创建所述一个或一个以上的虚拟机及所述一个或一个以上虚拟机的各自的第一监听进程;通过各自的第一监听进程与客户端建立远程桌面连接;接收从与各个虚拟机建立连接的客户端发来的文件访问地址信息,文件访问地址信息包括指定的物理机地址和访问路径;若所述虚拟机硬件模拟器接收到从与所述各个虚拟机之一建立连接的客户端发来的文件访问地址信息,则创建针对所述各个虚拟机之一的用于访问所接收到的文件访问地址信息指示的路径下的文件的虚拟设备。其中,所述虚拟机用于挂载所述虚拟机硬件模拟器为其创建的虚拟设备。优选地,虚拟机硬件模拟器进一步用于创建各虚拟机各自的第二监听进程;通过各虚拟机各自的第二监听进程与作为各自对端的客户端建立第二连接;通过各虚拟机各自的第二连接接收从作为各自对端的客户端发来的文件访问地址信息。优选地,虚拟机硬件模拟器是QEMU硬件模拟器,在启动所述虚拟机时利用-monitor选项来指定监听主机地址范围和监听端口号来创建所述第二监听进程,以及在启动所述虚拟机时利用-spice选项来指明要采用的远程虚拟桌面连接协议。所述虚拟机硬件模拟器进一步用于若所述虚拟机硬件模拟器接收到从与所述各个虚拟机之一建立连接的客户端发来的文件访问地址信息,则创建所述各个虚拟机之一的用于访问所接收到的文件访问地址信息指示的路径下的文件的第一虚拟设备和第二虚拟设备。其中,所述第一虚拟设备用来定义共享的文件系统的属性,所述第二虚拟设备是用于访问所述第一虚拟设备表示的文件系统的驱动,以及所述第一虚拟设备用的文件系统类型为计划9文件系统。优选地,所述虚拟机硬件模拟器和一个或一个以上虚拟机处于云计算系统中;所述指定的物理机地址是与所述虚拟机所在物理机的物理机地址不同的地址。与现有技术相比,本发明的一个或多个实施例可以具有如下优点利用本发明的虚拟机管理系统及其文件访问方法,用户可通过远程虚拟机访问任意指定物理机中的文件,从而解决传统技术中用户无法通过远程虚拟机访问除远程虚拟机本地的指定物理机上的文件的技术问题;此外,本发明可通过远程虚拟机,即可访问指定物理机中的文件。尤其是,本发明的一实施例中使用了计划9文件系统(plan9file system,简称9p文件系统)协议的网络层协议,采用客户端/服务器端(client/server)模式,每次的操作都视为一次事务,其提供了一种抽象的接口,用来存取本地和远程资源,使得在应用层用户的角度,访问远程资源就像访问本地资源一样透明。从而使得可实现用户可通过远程虚拟机访问任意指定物理机中的文件的同时,避免了传统的NFS、CIFS等在虚拟网络设备上实现的文件共享的技术可能带来的不安全因素,以尽量确保该远程虚拟机能够安全访问指定物理机。本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可 以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书,权利要求书,以及附图中所特别指出的结构来实现和获得。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中图I是根据本发明一实施例的虚拟机管理系统的架构及其与客户端的连接关系的不意图;图2是根据本发明一实施例的通过远程虚拟机访问文件的方法的流程图。
具体实施例方式以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。本发明通过对虚拟机管理系统中的虚拟机硬件模拟器进行改进,使得能够将用户指定物理机的文件目录映射到虚拟机硬件模拟器创建的虚拟机中,从而实现通过远程虚拟机访问指定物理机硬盘上的文件。本文中,QEMU, Bochs, PearPC等虚拟机硬件模拟器用于支持虚拟机的创建与运行而动态模拟特定架构的CPU指令。QEMU是一个开源的虚拟机硬件模拟器,简称QEMU硬件模拟器,它能够动态模拟特定架构的CPU指令,如X86,PPC, ARM等。允许对一个完整的PC环境进行虚拟化(包括磁盘、图形适配器和网络设备)。虚拟机的客户操作系统所生成的任何I/O请求都会被中途截获,并重新发送到QEMU进程模拟的用户模式中。QEMU进程模拟的用户模式是指运行在内核之外的非特权模式,是由QEMU创建的虚拟机进程,可用来执行I/O操作。本发明适用于QEMU、Bochs、PearPC等各种虚拟机的模拟处理器,尤其适用于QEMU。下文中,为了便于说明,不失一般地仅以QEMU为例进行说明。下面结合图I和图2来进行详细说明本发明的各实施例。
图I是根据本发明一实施例的虚拟机管理系统的架构及其与客户端的连接关系的示意图。如图I所示,该虚拟机管理系统包括虚拟机硬件模拟器QEMUlO和一个或一个以上虚拟机20。客户端30通过网络访问虚拟机20。下面结合图2来进一步说明根据本实施例的通过远程虚拟机访问文件的方法是如何实现通过虚拟机20来访问客户端30指定的任意物理机(实体主机)上的文件的。步骤S210,虚拟机硬件模拟器QEMUlO (简称QEMUlO )创建虚拟机20及该虚拟机20的第一监听进程。更具体地,QEMUlO可根据用户(客户端)请求来创建虚拟机20。需要说明的是,由于用户请求的数量是不定的,因此,一个虚拟机管理系统可以包括一个虚拟机硬件模拟器QEMUlO和一个或一个以上虚拟机20。在本例子中,位于远端物理机A上的QEMUlO创建虚拟机10,并创建该虚拟机10的第一监听进程。这个第一监听进程监听来自客户端30的消息。 步骤S220,QEMUlO通过第一监听进程与客户端30建立远程桌面连接。作为例子,客户端30可设置在物理机B上。步骤S230,物理机B上的客户端30向QEMUlO发送文件访问地址信息,文件访问地址信息包括指定的物理机地址和访问路径。指定的物理机地址可为任意物理机的地址,一般为由用户指定的与物理机A和/或物理机B不同的另一物理机(记为物理机C)的地址。物理机地址可以为物理机的IP地址、域名及主机名称等。该访问路径是用户期望访问的路径。步骤S240,QEMUlO接收从与其建立连接的客户端30发来的文件访问地址信息。步骤S250,若QEMUlO接收到从与虚拟机20建立连接的客户端30发来的文件访问地址信息,则QEMUlO创建用于映射所接收到的文件访问地址信息指示的路径下的文件的虚拟设备。在虚拟机20挂载该虚拟设备后,即可直接对物理机C硬盘上的文件进行读写访问操作,从而实现通过远程虚拟机访问物理机文件。步骤S260,虚拟机20挂载所创建的虚拟设备以备客户端30访问。这样,客户端30能够远程访问所创建的虚拟设备。在步骤S230中,客户端30可以通过所建立的建立远程桌面连接向QEMUlO发送文件访问地址信息,也可以通过其它方式发送消息。例如,一个优选实施例中,QEMUlO还创建第二监听进程。这样,客户端30还可通过第二监听进程与QEMUlO建立第二连接,然后通过第二连接向所述QEMUlO发送文件访问地址信息。在这种情况下,QEMUlO可通过第二连接接收从该客户端10发来的文件访问地址信息。这样,可以避免使得第一监听进程过于复杂、减少调试第一监听进程的难度,从而提高系统稳定性。对于本实施例中使用的虚拟机硬件模拟器QEMU10,可在启动所述虚拟机时利用-monitor选项来指定监听主机地址范围和监听端口号来创建所述第二监听进程,这样可以充分利用现有代码的以减少代码开发量及调试难度。更具体地,这样可以充分利用现有QEMU中的monitor选项功能、通过作较小的修改(修改monitor处理部分)便于可实现本实施相关步骤。在monitor选项中指定监听的主机地址范围和监听端口号,监听是否有访问某指定物理机文件的请求连接。同时,还可以在启动所述虚拟机时利用-spice选项来指明要采用的远程虚拟桌面连接协议。
该第二监听进程可通过创建传输控制协议套接字来进行监听。可通过模拟器QEMU的启动监听连接的处理函数中,加入分析是否有共享文件的需求部分及相应处理部分来实现本发明第二监听进程。在步骤S250中,虚拟机20可采用Linux操作系统,若QEMUlO接收到从与虚拟机20建立连接的客户端10发来的文件访问地址信息,QEMUlO还可创建用于映射所接收到的文件访问地址信息指示的路径下的文件的第一虚拟设备和第二虚拟设备。第一虚拟设备用来定义共享的文件系统的属性,第二虚拟设备是用于映射所述第一虚拟设备表示的文件系统的驱动,以及所述第一虚拟设备用的文件系统类型为计划9文件系统(plan9fileSyStem,简称9p系统)。例如,可创建如下两个虚拟设备分别作为第一虚拟设备和第二虚拟设备Dfsdev:此设备用来定义共享的文件系统的属性,包括此文件系统所在物理主机ip地址、设备的id号、要访问的目录路径以及用来标记此设备的标记mount_tag,在虚拟机20中,以此mount_tag来表示挂载的fsdev设备。2)virtio-9p-pci :此设备是fsdev文件系统的驱动,负责在物理主机和虚拟机之 间发送和接收协议消息和数据。这样,在虚拟机20中挂载该指定的访问路径,挂载文件系统类型为9p文件系统,要挂载的设备为模拟器QEMIU注册设备时指明的fsdev设备,以mount_tag为标记,mount系统命令提供了一个文件描述符,对本地用户进程提供了一个管道,对于远程主机则建立了一个网络连接,这样通过9p文件系统协议,实现在远程虚拟机中访问某物理机硬盘上的文件。此时,可在客户端上通过远程显示协议直接显示物理机C中访问路径下的文件。在虚拟机20和物理机C的操作系统为Linux操作系统时,可在虚拟机20和物理机C的内核配置的时候,将支持关于9p协议的模块编译进它们的内核。结合上述对虚拟机管理方法的详细说明容易理解当由一虚拟机硬件模拟器和一个以上虚拟机构成一虚拟机管理系统的情况。具体地,虚拟机硬件模拟器创建所述一个或一个以上的虚拟机及所述一个或一个以上虚拟机的各自的第一监听进程;接收从与各个虚拟机建立连接的客户端发来的文件访问地址信息,文件访问地址信息包括指定的物理机地址和访问路径;若接收到从与所述各个虚拟机之一建立连接的客户端发来的文件访问地址信息,则创建针对所述各个虚拟机之一的用于访问所接收到的文件访问地址信息指示的路径下的文件的虚拟设备。另一方面,虚拟机通过各自的第一监听进程与客户端建立远程桌面连接,挂载所述虚拟机硬件模拟器为其创建的虚拟设备。优选地,虚拟机硬件模拟器可进一步创建各虚拟机各自的第二监听进程;通过各虚拟机各自的第二监听进程与作为各自对端的客户端建立第二连接;通过各虚拟机各自的第二连接接收从作为各自对端的客户端发来的文件访问地址信息。在典型应用中,虚拟机硬件模拟器10和其所创建的一个或一个以上虚拟机20处于云计算系统中。本发明在保证了可用性和可靠性的前提下,可以在很大程度上满足用户对共享文件访问的需求,具有较高的实用价值和商业价值。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采 用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
权利要求
1.一种虚拟机管理系统的文件访问方法,其特征在于,包括 创建步骤,虚拟机硬件模拟器创建虚拟机及该虚拟机的第一监听进程; 连接建立步骤,所述虚拟机硬件模拟器通过所述第一监听进程与客户端建立远程桌面连接; 接收步骤,所述虚拟机硬件模拟器接收从与所述虚拟机建立连接的客户端发来的文件访问地址信息,文件访问地址信息包括指定的物理机地址和访问路径; 设备创建步骤,若所述虚拟机硬件模拟器接收到从与所述虚拟机建立连接的客户端发来的文件访问地址信息,则所述虚拟机硬件模拟器创建用于访问所接收到的文件访问地址信息指示的路径下的文件的虚拟设备; 所述虚拟机挂载所创建虚拟设备以备所述客户端访问。
2.根据权利要求I所述的方法,其特征在于 所述创建步骤中,所述虚拟机硬件模拟器还创建第二监听进程; 所述连接建立步骤中,所述虚拟机硬件模拟器还通过第二监听进程与客户端建立第二连接; 所述接收步骤中,所述虚拟机硬件模拟器通过第二连接接收从与所述虚拟机建立连接的客户端发来的文件访问地址信息。
3.根据权利要求2所述的方法,其特征在于,虚拟机硬件模拟器是QEMU硬件模拟器,其中, 所述创建步骤中,所述QEMU硬件模拟器在启动所述虚拟机时利用-monitor选项来指定监听主机地址范围和监听端口号来创建所述第二监听进程,以及在启动所述虚拟机时利用-spice选项来指明要采用的远程虚拟桌面连接协议。
4.根据权利要求I所述的方法,其特征在于,所述设备创建步骤中,若所述虚拟机硬件模拟器接收到从与所述虚拟机建立连接的客户端发来的文件访问地址信息,则所述虚拟机硬件模拟器创建用于访问所接收到的文件访问地址信息指示的路径下的文件的第一虚拟设备和第二虚拟设备,其中, 所述第一虚拟设备用来定义共享的文件系统的属性,所述第二虚拟设备是用于访问所述第一虚拟设备表示的文件系统的驱动,以及所述第一虚拟设备用的文件系统类型为计划9文件系统。
5.根据权利要求I所述的方法,其特征在于,所述虚拟机硬件模拟器和所述虚拟机处于云计算系统中,所述指定的物理机地址是与所述虚拟机所在物理机的物理机地址不同的地址。
6.—种虚拟机管理系统,其特征在于,包括虚拟机硬件模拟器和一个或一个以上虚拟机,其中, 虚拟机硬件模拟器用于 创建所述一个或一个以上的虚拟机及所述一个或一个以上虚拟机的各自的第一监听进程; 通过各自的第一监听进程与客户端建立远程桌面连接; 接收从与各个虚拟机建立连接的客户端发来的文件访问地址信息,文件访问地址信息包括指定的物理机地址和访问路径;若所述虚拟机硬件模拟器接收到从与所述各个虚拟机之一建立连接的客户端发来的文件访问地址信息,则创建针对所述各个虚拟机之一的用于访问所接收到的文件访问地址信息指示的路径下的文件的虚拟设备; 所述虚拟机用于挂载所述虚拟机硬件模拟器为其创建的虚拟设备。
7.根据权利要求6所述的系统,其特征在于,虚拟机硬件模拟器进一步用于 创建各虚拟机各自的第二监听进程; 通过各虚拟机各自的第二监听进程与作为各自对端的客户端建立第二连接; 通过各虚拟机各自的第二连接接收从作为各自对端的客户端发来的文件访问地址信肩、O
8.根据权利要求7所述的系统,其特征在于, 虚拟机硬件模拟器是QEMU硬件模拟器,在启动所述虚拟机时利用-monitor选项来指定监听主机地址范围和监听端口号来创建所述第二监听进程,以及在启动所述虚拟机时利用-spice选项来指明要采用的远程虚拟桌面连接协议。
9.根据权利要求6所述的系统,其特征在于,所述虚拟机硬件模拟器进一步用于 若所述虚拟机硬件模拟器接收到从与所述各个虚拟机之一建立连接的客户端发来的文件访问地址信息,则创建所述各个虚拟机之一的用于访问所接收到的文件访问地址信息指示的路径下的文件的第一虚拟设备和第二虚拟设备,其中, 所述第一虚拟设备用来定义共享的文件系统的属性,所述第二虚拟设备是用于访问所述第一虚拟设备表示的文件系统的驱动,以及所述第一虚拟设备用的文件系统类型为计划9文件系统。
10.根据权利要求6所述的系统,其特征在于, 所述虚拟机硬件模拟器和一个或一个以上虚拟机处于云计算系统中; 所述指定的物理机地址是与所述虚拟机所在物理机的物理机地址不同的地址。
全文摘要
本发明公开了一种虚拟机管理系统及其文件访问方法。该方法包括创建步骤,虚拟机硬件模拟器创建虚拟机及该虚拟机的第一监听进程;连接建立步骤,虚拟机硬件模拟器通过第一监听进程与客户端建立远程桌面连接;接收步骤,虚拟机硬件模拟器接收从与虚拟机建立连接的客户端发来的文件访问地址信息,文件访问地址信息包括指定的物理机地址和访问路径;设备创建步骤,若虚拟机硬件模拟器接收到从与虚拟机建立连接的客户端发来的文件访问地址信息,则虚拟机硬件模拟器创建用于访问所接收到的文件访问地址信息指示的路径下的文件的虚拟设备;虚拟机挂载所创建虚拟设备以备客户端访问。根据本发明的虚拟机管理系统及其文件访问方法,用户能够通过远程虚拟机访问任意指定物理机中的文件。
文档编号H04L29/08GK102968331SQ201210491229
公开日2013年3月13日 申请日期2012年11月27日 优先权日2012年11月27日
发明者陈俊秀 申请人:中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1