书签 分享 收藏 举报 版权申诉 / 9

一种基于KVM虚拟机的客户机之间高速通信的方法.pdf

  • 上传人:Y948****062
  • 文档编号:4059456
  • 上传时间:2018-08-13
  • 格式:PDF
  • 页数:9
  • 大小:503.74KB
  • 摘要
    申请专利号:

    CN201210128970.0

    申请日:

    2012.04.28

    公开号:

    CN102662777A

    公开日:

    2012.09.12

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情:

    发明专利申请公布后的视为撤回IPC(主分类):G06F 9/54申请公布日:20120912|||实质审查的生效IPC(主分类):G06F 9/54申请日:20120428|||公开

    IPC分类号:

    G06F9/54; G06F9/455

    主分类号:

    G06F9/54

    申请人:

    浪潮电子信息产业股份有限公司

    发明人:

    何志平; 吴楠; 张东; 周雄; 谢若鸿

    地址:

    250014 山东省济南市高新区舜雅路1036号

    优先权:

    专利代理机构:

    代理人:

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供一种基于KVM虚拟机的客户机之间高速通信的方法,步骤如下:为KVM虚拟机虚拟一个带设备内存的高速通信的设备,并把该虚拟设备的设备内存映射到客户机的物理地址空间,在虚拟机监控层,通过共享内存的方式,把不同虚拟机中的该虚拟设备的内存映射到同一片主机物理内存中,在两个客户机之中进程,分别把该虚拟设备的内存映射到进程地址空间,然后,通过读写这片物理地址空间便实现高速通信,该方法是针对虚拟机之间通信速度慢的缺点,在KVM虚拟机中虚拟一个用于虚拟机间高速通信的虚拟设备,通过该虚拟PCI设备,虚拟机之间可以高速通信,从而提高KVM虚拟机之间的通信效率。

    权利要求书

    1.一种基于KVM虚拟机的客户机之间高速通信的方法,其特征在于:为KVM虚拟机虚拟一个带设备内存的高速通信的设备,并把该虚拟设备的设备内存映射到客户机的物理地址空间,在虚拟机监控层,通过共享内存的方式,把不同虚拟机中的该虚拟设备的内存映射到同一片主机物理内存中,在两个客户机之中进程,分别把该虚拟设备的内存映射到进程地址空间,然后,通过读写这片物理地址空间便实现高速通信;具体基于KVM虚拟机的客户机之间高速通信运行步骤如下:(1)在KVM虚拟机中虚拟出一个带有内存的高速通信的设备,该虚拟PCI设备遵循PCI设备规范,在虚拟机启动时,将该虚拟PCI设备的内存和IO端口映射到客户机的物理地址空间中;(2)利用KVM虚拟机以进程的方式实现的特点,通过共享内存的方式,把两个不同客户机中的虚拟高速通信的设备的内存映射到同一片主机的物理内存中;(3)在两个客户机中,分别把虚拟高速通信设备的内存映射到各自的物理地址空间,这样,这两个客户机中的进程只需要把该虚拟高速通信设备的内存映射到各自的进程地址空间中,然后通过读写这片进程地址空间;(4)当客户机A中的进程读/写虚拟高速通信设备的设备内存映射的进程地址区域时,会被KVM虚拟机监控器截获,当KVM虚拟机监控器截获到该IO操作时,把要读/写的数据直接读/写到实现虚拟高速通信设备的设备内存的主机共享内存中;(5)客户机B中的进程通过写/读自己的虚拟高速通信设备的内存映射的进程地址区域时,也会被KVM虚拟机监控器截获,并且转化成对于同一片主机共享内存的写/读,从而实现客户机之间的高速通信。

    说明书

    一种基于KVM虚拟机的客户机之间高速通信的方法

    技术领域

    发明涉及计算机操作系统软件技术领域, 具体地说是一种基于KVM虚拟机的客户机之间高速通信的方法。

    背景技术

    虚拟机的每一个I/O操作,都要由虚拟机监控器或者特权域的介入和协助方可完成。这已经成为了制约虚拟机性能和功能的一大瓶颈,尤其是对于那些I/O吞吐量很大的应用,如Web服务器,数据库服务器,个人多媒体应用等。

    另外,当前虚拟机之间通信方式主要是基于网络,而通过网络通信需要在虚拟机监控层经过一次协议解析,这也影响了虚拟机的性能。受限于前面两个因素,虚拟机之间的通信效率低下,即使是同一台主机上运行的两个虚拟机之间通信效率也不高。

    针对于这个问题,产生了直接I/O访问的方法。直接I/O访问主要涉及两个方面:隔离和共享。隔离指的是当属于某个虚拟机的I/O设备在进行DMA操作时,必须限制它访问属于其他虚拟机的内存,以保证虚拟机之间的隔离性和安全性。共享指的是一个物理设备应该能够提供多个抽象的界面,以供不同的虚拟机同时使用,从而降低硬件的冗余配置。

    目前,针对隔离性和共享性主要从硬件层次上解决,如Intel的VT-d技术,AMD的IOMMU技术等。但是,当前这些硬件I/O虚拟机技术,在KVM虚拟机IA64平台上尚未完全成熟,而且有一定得局限性,因此未能很好的发挥它的优势。因此,我们仍需要从软件层面从发,采用一些办法来提升虚拟机I/O的性能,尤其是运行在同一台物理机上的不同虚拟机之间的通信速度。

    发明内容

    本发明的目的是提供一种KVM虚拟机之间高速通信的方法。

    本发明的目的是按以下方式实现的,为KVM虚拟机虚拟一个带设备内存的高速通信的设备,并把该虚拟设备的设备内存映射到客户机的物理地址空间,在虚拟机监控层,通过共享内存的方式,把不同虚拟机中的该虚拟设备的内存映射到同一片主机物理内存中,在两个客户机之中进程,分别把该虚拟设备的内存映射到进程地址空间,然后,通过读写这片物理地址空间便实现高速通信;具体基于KVM虚拟机的客户机之间高速通信运行步骤如下:

    1)在KVM虚拟机中虚拟出一个带有内存的高速通信的设备,该虚拟PCI设备遵循PCI设备规范,在虚拟机启动时,将该虚拟PCI设备的内存和IO端口映射到客户机的物理地址空间中;

    2)利用KVM虚拟机以进程的方式实现的特点,通过共享内存的方式,把两个不同客户机中的虚拟高速通信的设备的内存映射到同一片主机的物理内存中;

    3)在两个客户机中,分别把虚拟高速通信设备的内存映射到各自的物理地址空间,这样,这两个客户机中的进程只需要把该虚拟高速通信设备的内存映射到各自的进程地址空间中,然后通过读写这片进程地址空间;

    4)当客户机A中的进程读/写虚拟高速通信设备的设备内存映射的进程地址区域时,会被KVM虚拟机监控器截获,当KVM虚拟机监控器截获到该IO操作时,把要读/写的数据直接读/写到实现虚拟高速通信设备的设备内存的主机共享内存中;

    5)客户机B中的进程通过写/读自己的虚拟高速通信设备的内存映射的进程地址区域时,也会被KVM虚拟机监控器截获,并且转化成对于同一片主机共享内存的写/读,从而实现客户机之间的高速通信。

    本发明的有益效果是: 本发明针对于KVM虚拟机IO效率低下,即便是运行在同一台主机之上的两个虚拟机之间也缺乏高效的通信方法,设计了一种用于虚拟机之间高效通信的虚拟通信设备,该虚拟通信设备的设备内存是基于共享内存实现的,这样通过读写该设备的设备内存便可以实现虚拟机之间高速通信。

    附图说明

    附图1是KVM虚拟机监控器的系统结构示意图;

    附图2是带有虚拟高速通信设备的KVM虚拟机监控器的系统结构示意图;

    附图3是针对的虚拟高速通信设备的设备内存的在不同地址空间中的映射示意图;

    附图4是针对KVM虚拟机之间高速通信时数据的流动示意图。

    具体实施方式

    参照说明书附图对本发明的方法作以下详细地说明。

    本发明的一种KVM虚拟机之间高速通信的方法, 下面参照附图,对本发明的内容以一个具体实例来描述实现这一体系结构的过程;

    (1)首先,在客户机A和客户机B中各自虚拟出一个用于虚拟机之间高速通信的设备;该虚拟设备遵守PCI规范,并且在虚拟设备的PCI配置空间中指定虚拟设备的设备内存和IO端口要映射的客户机物理地址空间的区域。另外,虚拟设备的设备内存通过共享内存的方式实现,它使用的是主机内存;

    (2)然后,启动客户机A和客户机B,并分别在客户机A中启动进程a,在客户机B中启动进程b,进程a和进程b分别将虚拟高速通信设备的设备内存映射到各自的进程地址空间中;

    (3)接着,客户机A中的进程a对该片地址空间执行写操作。由于这个写操作属于设备IO,因此KVM虚拟机监控器将截获该写操作,并将要写的数据写到设备内存中,也就是虚拟高速通信设备的设备内存使用的主机上的共享内存;

    (4) 客户机B中的进程b对该片地址空间执行读操作。同样,由于该读操作属于设备IO,因此KVM虚拟机也将截获该读操作,并且从设备内存中读数据,也就是从虚拟高速通信设备的设备内存使用的主机上的共享内存上读数据,这样便读到了客户机A中的进程a写的数据,从而实现了客户机A中的进程a和客户机B中的进程b之间的高速通信。

    以上所述的实例对本发明的实现方式作了详细的说明,但是本发明的具体实现形式并不局限于此,对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行各种显而易见的改变都在本发明的保护范围之内。

    除说明书所述的技术特征外,均为本专业技术人员的已知技术。

    关 键  词:
    一种 基于 KVM 虚拟机 客户机 之间 高速 通信 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种基于KVM虚拟机的客户机之间高速通信的方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4059456.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1