首页> 中国专利> 虚拟机和宿主机之间的通信方法、宿主机和虚拟机系统

虚拟机和宿主机之间的通信方法、宿主机和虚拟机系统

摘要

本发明公开了一种虚拟机和宿主机之间的通信方法、宿主机和虚拟机系统,宿主机中的端口通信装置为虚拟机分配端口文件,端口通信装置启动宿主机端口通信服务。宿主机端口通信服务能够读写端口文件,并监控端口文件。虚拟机通过读写端口文件与宿主机进行数据交互。本发明公开的通信方法、宿主机和虚拟机系统,在宿主机里面增加一个端口通信装置或者说是端口通信模块,实现虚拟机和宿主机之间的通讯,通过对宿主机上一个加密文件进行读写,可实现在虚拟机在没有TCP/IP网络,或者防火墙端口全关闭的情况下和宿主机通讯,进而实现虚拟机内应用程序和虚拟化环境之外应用程序之间的通讯。

著录项

  • 公开/公告号CN103593246A

    专利类型发明专利

  • 公开/公告日2014-02-19

    原文格式PDF

  • 申请/专利权人 中国电信股份有限公司;

    申请/专利号CN201210289780.7

  • 申请日2012-08-15

  • 分类号G06F9/54(20060101);G06F9/455(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人方亮

  • 地址 100033 北京市西城区金融大街31号

  • 入库时间 2024-02-19 22:14:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-11

    授权

    授权

  • 2014-08-06

    实质审查的生效 IPC(主分类):G06F9/54 申请日:20120815

    实质审查的生效

  • 2014-02-19

    公开

    公开

说明书

技术领域

本发明涉及虚拟机应用技术领域,尤其涉及一种虚拟机和宿主机 之间的通信方法、宿主机和虚拟机系统。

背景技术

服务器虚拟化是指在一台物理宿主机上虚拟出多个虚拟机(VM), 各个虚拟机之间相互隔离,并能同时运行相互独立的一种技术。该技 术将一台物理宿主机拆分成数十个独立的虚拟机,各虚拟机能独立运 行业务,可以实现提高服务器资源利用率,提高管理效率的目标。作 为云计算的基础类技术,服务器虚拟化技术在近年来得到了大量的应 用和推广。例如,IDC(Internet Data Center:互联网数据中心) 服务商将一台物理宿主机虚拟成20台左右的虚拟机,每台虚拟机具 备独立的操作系统、网络环境,再将其出租给用户,凭借IDC丰富的 IT基础资源和高度集中化、标准化的运营管理系统向客户提供数据 存储、数据备份、数据交换等服务,客户可以通过租用IDC的服务来 建设自身的信息系统。对IDC服务商来说可以增加业务收入,对用户 来说,可以降低租赁成本。

在传统服务器虚拟化环境中,虚拟机和宿主机通过TCP/IP网络 进行通讯。图1为现有的虚拟机系统的示意图。一台物理宿主机12 启动虚拟机进程122生成虚拟机11,虚拟机11具备独立的操作系统 和网络设备112。网络设备112和应用程序121通过网络交换机13 通过TCP/I P协议进行通信。这种通信方式存在以下两个弊端:

1、在虚拟机没有完成网络配置或者启用网卡前无法通讯;

2、虚拟机和宿主机由不同的管理人员进行管理,他们会在各自的 系统上建立防火墙规则,而彼此又不知道需要开放的端口,造成虚拟机 和宿主机之间无法通讯。

发明内容

有鉴于此,本发明要解决的一个技术问题是提供一种虚拟机和宿主 机之间的通信方法,虚拟机和宿主机之间通过读写端口文件进行数据 交互。

一种虚拟机和宿主机之间的通信方法,宿主机中的端口通信装置 为虚拟机分配端口文件;所述端口通信装置启动宿主机端口通信服 务;其中,所述宿主机端口通信服务能够读写所述端口文件,并监控 所述端口文件;所述虚拟机通过读写所述端口文件与所述宿主机进行 数据交互。

根据本发明所述的通信方法的一个实施例,进一步的,所述虚拟机 启动虚拟机端口通信服务;所述虚拟机端口通信服务监控、读写所述 端口文件。

根据本发明所述的通信方法的一个实施例,进一步的,所述宿主机 上设置多个虚拟机;所述端口通信装置为每个虚拟机都分配对应的端 口文件,其中,每个端口文件都与所述宿主机的一个socket端口对 应。

根据本发明所述的通信方法的一个实施例,进一步的,用户访问所 述宿主机的socket端口;所述宿主机端口通信服务接收到对所述 socket端口的访问,将用户信息写入与所述socket端口对应的端口 文件中;所述虚拟机从与此虚拟机对应的端口文件中读取所述用户信 息。

根据本发明所述的通信方法的一个实施例,进一步的,所述虚拟机 将处理结果数据写入与此虚拟机对应的端口文件中;所述宿主机端口 通信服务从端口文件中获取处理结果数据,并通过与端口文件对应的 宿主机的socket端口发送处理结果数据。

根据本发明所述的通信方法的一个实施例,进一步的,所述端口通 信装置启动一个宿主机端口通信服务;或者,所述端口通信模块为每 个虚拟机启动一个宿主机端口通信服务。

根据本发明所述的通信方法的一个实施例,进一步的,所述端口文 件为加密文件;对所述端口文件加密的算法包括:DES、AES或 3DES。

本发明要解决的一个技术问题是提供一种宿主机,通过读写端口 文件与虚拟机进行数据交互。

一种宿主机,包括:端口通信装置,用于为虚拟机分配端口文 件,并启动宿主机端口通信服务;其中,所述宿主机端口通信服务能 够读写所述端口文件,并监控所述端口文件;虚拟机通过读写所述端 口文件与所述宿主机进行数据交互。

根据本发明所述的宿主机的一个实施例,进一步的,所述宿主机 上设置多个虚拟机;所述端口通信装置为每个虚拟机都分配对应的端 口文件,其中,每个端口文件都与所述宿主机的一个socket端口对 应。

根据本发明所述的宿主机的一个实施例,进一步的,用户访问所 述宿主机的socket端口;所述宿主机端口通信服务接收到对所述 socket端口的访问,将用户信息写入与所述socket端口对应的端口 文件中;所述虚拟机从与此虚拟机对应的端口文件中读取所述用户信 息;所述虚拟机将处理结果数据写入与此虚拟机对应的端口文件中; 所述宿主机端口通信服务从端口文件中获取处理结果数据,并通过与 端口文件对应的宿主机的socket端口发送处理结果数据。

根据本发明所述的宿主机的一个实施例,进一步的,所述端口通 信装置启动一个宿主机端口通信服务;或者,所述端口通信模块为每 个虚拟机启动一个宿主机端口通信服务;所述虚拟机启动虚拟机端口 通信服务;所述虚拟机端口通信服务监控、读写所述端口文件。

根据本发明所述的宿主机的一个实施例,进一步的,所述端口文 件为加密文件,对所述端口文件加密的算法包括:DES、AES或 3DES。

本发明要解决的一个技术问题是提供一种虚拟机系统,其特征在 于,包括上述的宿主机。

本发明的虚拟机和宿主机之间的通信方法、宿主机和虚拟机系 统,在宿主机里面增加一个端口通信装置或者说是端口通信模块,实 现虚拟机和宿主机之间的通讯,不需要直接访问虚拟机的IP地址,相 当于采用了一种半虚拟化的PCI总线方式。

虚拟机和宿主机通过对宿主机上一个加密文件进行读写,起到一 个信息中转桥梁的作用,外部的用户也可以通过访问宿主机的scoket 端口访问虚拟机,可实现在虚拟机在没有TCP/IP网络,或者防火墙 端口全关闭的情况下和宿主机通讯,进而实现虚拟机内应用程序和虚 拟化环境之外应用程序之间的通讯。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将 对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易 见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通 技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图 获得其他的附图。

图1为现有技术中虚拟机系统的示意图;

图2为根据本发明的虚拟机和宿主机之间的通信方法的一个实施 例的流程图;

图3为根据本发明的虚拟机系统的一个实施例的示意图。

具体实施方式

下面参照附图对本发明进行更全面的描述,其中说明本发明的示例 性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技 术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一 部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普 通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都 属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案 进行多方面的描述。

图2为根据本发明的虚拟机和宿主机之间的通信方法的一个实施 例的流程图。如图2所示:

步骤202,宿主机中的端口通信装置为虚拟机分配端口文件。端 口文件为存储在宿主机中的文件,端口文件的格式为宿主机支持的文 件格式,如文本格式,XML格式等等。

步骤203,端口通信装置启动宿主机端口通信服务。

其中,宿主机端口通信服务能够读写端口文件,并监控端口文 件;如果端口文件发生变化,宿主机端口通信服务将读取此端口文 件,获取数据。

步骤204,虚拟机读写端口文件。虚拟机通过读写端口文件与宿 主机进行数据交互。

根据本发明的一个实施例,宿主机为安装在一台PC服务器上的一 个操作系统,一般是linux改造的。该操作系统上可以启多个虚拟机进 程,每个虚拟机进程启来后就是一个虚拟机。该虚拟机和我们正常使用 的电脑是一样的,可以有CPU,有内存,有硬盘,可以安装操作系统, 有IP地址。

根据本发明的一个实施例,端口通信装置启动宿主机端口通信服 务,即启动宿主机端口通信服务进程或线程。虚拟机启动虚拟机端口 通信服务,即启动虚拟机端口通信服务进程或线程。虚拟机端口通信 服务监控、读写端口文件。宿主机上设置多个虚拟机,端口通信装置 为每个虚拟机都分配对应的端口文件,其中,每个端口文件都与宿主 机的一个socket端口对应。Socket(套接字)端口用于在两个基于 TCP/IP协议的应用程序之间相互通信。根据一个实施例,多个虚拟 机也可以共享同一个端口文件。

用户访问宿主机的socket端口,宿主机端口通信服务接收到对 socket端口的访问,将用户信息写入与socket端口对应的端口文件 中,虚拟机从与此虚拟机对应的端口文件中读取用户信息。虚拟机将 处理结果数据写入与此虚拟机对应的端口文件中,宿主机端口通信服 务从端口文件中获取处理结果数据,并通过与端口文件对应的宿主机 的socket端口发送处理结果数据。

根据本发明的一个实施例,端口通信装置启动一个宿主机端口通 信服务。或者,端口通信模块为每个虚拟机启动一个宿主机端口通信 服务,每个宿主机端口通信服务监控、读写与虚拟机相对应的端口文 件。端口文件为加密文件;对端口文件加密的算法包括:DES、AES 或3DES。DES(Data Encryption Standard)是一种数据加密标准, DEA(Data Encryption Algorithm:数据加密算法)是一种对称加密算 法。3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple  Data Encryption Algorithm)的通称,相当于是对每个数据块应用三 次DES加密算法。AES(Advanced Encryption Standard:高级加密 标准)又称Rijndael加密法,是一种区块加密标准。

本发明通过在宿主机里面增加一个端口通信装置或者说是端口通 信模块,通过它来实现虚拟机和宿主机之间的通讯,不需要直接访问虚 拟机的IP地址,相当于采用了一种半虚拟化的PCI总线方式。通过对 宿主机上一个加密文件进行读写,起到一个信息中转桥梁的作用,外部 的用户也可以通过访问宿主机的scoket端口访问虚拟机。

图3为根据本发明的虚拟机系统的一个实施例的示意图。宿主机 32包括端口通信装置324。根据一个实施例,端口通信装置324也可 以为端口通信模块。端口通信装置324为虚拟机分配端口文件323, 并启动宿主机端口通信服务。宿主机端口通信服务能够读写端口文件 323,并监控端口文件323。虚拟机31通过读写端口文件与宿主机进 行数据交互。

根据本发明的一个实施例,宿主机32上设置多个虚拟机,端口通 信装置324为每个虚拟机都分配对应的端口文件,每个端口文件都与 宿主机的一个socket端口对应。用户访问宿主机32的socket端 口;宿主机端口通信服务接收到对socket端口的访问,将用户信息 写入与socket端口对应的端口文件323中。虚拟机31从与此虚拟机 31对应的端口文件323中读取用户信息。虚拟机31将处理结果数据 写入与此虚拟机31对应的端口文件323中。宿主机端口通信服务从 端口文件323中获取处理结果数据,并通过与端口文件对应的宿主机 的socket端口发送处理结果数据。

根据本发明的一个实施例,通过访问宿主机32的IP地址和一个特 定端口来访问该虚拟机31。即使虚拟机31的网卡没有安装,或者ip 地址没有配置,也可以被访问。例如,宿主机32为一台PC服务器 host1,上面安装了KVM的服务器虚拟化软件,配置了一个IP地址为 192.168.1.10。然后在这个宿主机上安装了多了虚拟机,分别配置了 IP地址,虚拟机31:192.168.1.20等。

在传统模式下,用户要登入虚拟机31,需要开启远程桌面,然后去 访问192.168.1.20。一旦虚拟机31没有配置IP地址,或者IP地址和 别人冲突。用户就无法登入虚拟机31,需要管理员在管理平台上登入 虚拟机去重新配置IP地址,用户才能访问。这样,管理员就需要具备 用户的vm1的虚拟机的管理员账号。

端口通信装置324为虚拟机31分配对应的端口文件323,端口 文件323与宿主机32的端口5901相对应。根据一个实施例,可以在 启动虚拟机进程322时分配端口文件323,也可以提前配置。用户要 登入虚拟机31,通过网络交换机33访问host1:192.168.1.10:5901。 监控此端口文件323的宿主机端口通信服务接收到对socket端口 5901的访问,将用户信息写入与socket端口对应的端口文件323 中。

根据一个实施例,宿主机32中的应用程序321接收到外部对端 口的访问,通知宿主机端口通信服务外部访问的内容和端口信息。宿 主机端口通信服务将用户信息写入端口文件323中。

虚拟机31中的虚拟机端口通信服务获得端口文件323发生改 变,并获取用户信息通知应用程序311。应用程序311将处理结果数 据通过虚拟机端口通信服务写入端口文件323中。一般指操作系统 内,应用程序无法直接调用设备,需要通过设备驱动312来进行调用。 设备驱动312提供该设备的调用方法和调用接口。应用程序311或虚 拟机端口通信服务执行设备驱动312的方法和接口即可驱动该设备。 例如,设备驱动312包括以下调用方法:打开、读、写、关闭文件。

宿主机端口通信服务从端口文件323中获取处理结果数据,并通 过5901端口发送处理结果数据。处理结果数据经过网络交换机33返 回给用户。

本发明通过该方法即可实现在虚拟机在没有TCP/IP网络,或者 防火墙端口全关闭的情况下和宿主机通讯,进而实现虚拟机内应用程 序和虚拟化环境之外应用程序之间的通讯。

可能以许多方式来实现本发明的方法和系统。例如,可通过软 件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方 法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的 方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。 此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程 序,这些程序包括用于实现根据本发明的方法的机器可读指令。因 而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介 质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的 或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技 术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理 和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适 于特定用途的带有各种修改的各种实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号