基于授权拷贝的虚拟机域间通信通道系统的制作方法

文档序号:6399051阅读:165来源:国知局
专利名称:基于授权拷贝的虚拟机域间通信通道系统的制作方法
技术领域
本发明涉及计算机科学中的在多核硬件平台下的系统虚拟化领域,特别是Xen平台上虚拟机的域间通信技术。
背景技术
虚拟化技术是一种计算机系统抽象技术,通过物理平台上的虚拟机逻辑层管理计算资源,并向运行在其上的客户层提供虚拟的资源。客户机操作系统可以通过标准接口访问资源,但是接口的实现却并不直接与物理资源通信;而是由虚拟化层负责实际资源的管理,使有限数量的资源能够在多个客户机之间复用。直接运行在硬件平台上的虚拟化层软件通常被称作虚拟机监视器(Virtual Machine Monitor, VMM或hypervisor),它负责维护抽象,同时确保资源复用的正确性;客户层的主体是多个完整的计算机操作系统,称作客户机操作系统。虚拟机是真实机器和虚拟化软件(Virtualization Software)的结合。“虚拟”包括两个过程从虚拟资源向实际资源的映射;把虚拟机的指令和系统调用所要求的功能通过实际的指令和系统调用实现。由此,虚拟机监视器可以促进资源的高效利用,同时维护客户机操作系统的隔离性,为软件系统设计提供了极大的灵活性和机动性。多核硬件平台技术的广泛使用为虚拟化技术的发展提供了机遇和挑战,具有代表性的是Intel的VT和AMD的SVM技术。正是基于上述原因,虚拟化技术越来越突出显著,应用范围愈加广泛。目前,虚拟化技术被应用在企业级系统、服务提供商、家庭桌面系统、移动设备和生产系统等方面。当前主流的虚拟化技术产品包括VMware ESXi以及Xen、KVM等,它们在服务器整合、资源优化、能量控制等方面具有很大贡献,并且逐步在云计算和高性能计算等领域得以应用,同时虚拟化技术还在虚拟集群领域有着广阔的利用前景。域间通信是指同一物理平台之上的客户虚拟机在网络层面进行彼此之间的直接通信,这种通信方式相比Xen的前后端通信方式具有低延迟、高吞吐等特点,而且通信过程不需要特权域虚拟机的参与,从而缓解了特权域虚拟机的CPU计算资源压力,使其能够更稳定、有效的履行其管理和监控职责。域间通信通道指的是在两个客户虚拟机之间建立的用于完成彼此网络数据包传输的各种资源的统一抽象。

发明内容
本系统发明以实现客户虚拟机域之间高效的网络数据包传输为目标,通过对Xen平台底层功能机制的有效利用,设计了一种能够在一对客户虚拟机之间建立并有效运行的域间通信通道系统,它能够降低虚拟机彼此通信的网络延迟,提高整个物理平台的网络吞吐率。该系统发明具体包括如下部分1.双向域间通信通道子系统本系统发明的主体是建立在一对客户虚拟机之间的双向域间通信通道子系统,它由两个单向的子通道(发送方向和接收方向)和一个异步事件通道构成。其中,单向子通道指的是用于进行单向网络数据包传输的I/o共享环,用于在客户虚拟机之间传送网络数据包的基本描述信息;异步事件通道则是用于数据包描述性息发送后向接收方进行消息通告,其自身具有双向特征。2.单向I/O共享环组件单向I/O共享环是构成双向域间通信通道子系统的重要组件。它是通过Xen底层的虚拟机内存页共享机制建立起来的共享内存页面,是由一个I/o环共享页和一个控制共享页构成的。其中,I/o环共享页存储着由发送方写入的网络数据包描述符供接收方进行读取;共享控制页则是虚拟机之间建立起来的共享内存页,用于存储虚拟机双方共享的关键数据。两种共享的内存页面共同实现了一套完整、可靠的生产者消费者模型。3.基于授权拷贝的网络数据包数据传输网络数据包数据传输是域间通信通道系统的实际运作流程。在网络数据包的发送方虚拟机,它获取网络数据包的实际数据占用的内存页面的描述信息,将描述信息按照固定格式写入到I/o共享环中;然后,通过事件通道向接收端进行数据包的通告;接收端在收到通告后,启动接收流程,从I/o共享环中读取数据包描述符信息,构建授权拷贝操作结构数据,启动内存拷贝的超级调用,更新I/o共享环的对应指针。在Xen虚拟化的域间通信技术领域,大部分采用共享内存方式的网络数据包传输方式,本系统发明的创新点在于(I)本系统发明采用了授权拷贝技术实现网络数据包数据的实际传输过程,支持双向通信;(2)本系统发明支持PV和HVM两种类型的客户虚拟机;(3)本系统发明既可以支持Linux系统,又可以应用在Windows系统上,基于与系统平台无关;(4)本系统发明可支持域间通信通道的动态建立和撤销。


图1双向域间通信通道系统构成2单向I/O共享环组件原理示意3基于授权拷贝技术的网络数据包数据传输流程原理示意图
具体实施例方式如图1所示,双向域间通信通道系统是建在两个客户虚拟机域之间的,对每个虚拟机而言,域间通信通道系统都是由发送方向通道子系统、接收方向通道子系统和事件通道构成的。其中,单向通道子系统依赖于一个单向的I/o共享环组件,该组件通过共享内存方式实现在发送和接收两端虚拟机之间的数据共享;事件通道是一种客户虚拟机之间的异步事件通道机制。每个虚拟机都需要申请自己的发送方向通道子系统的内存资源,再由接收端虚拟机通过内存共享映射到其虚拟地址空间中作为自己的接受方向通道子系统。事件通道则可以由任一方虚拟机申请建立,再由对端虚拟机进行连接,从而达到双向通信的能力。网络数据包从发送端虚拟机经由发送方向通道子系统传输到接收端虚拟机的过程主要是通过单向的I/o共享环组件来实现的。单向I/O共享环组件的构成如图2所示,它是由I个I/O环共享页和I个控制共享页构成。控制共享页保存了发送和接收两端虚拟机的共享数据变量,而I/o环共享页则是由保存在共享控制页中的请求生产者、请求消费者、响应生产者和响应消费者四个指针变量进行控制管理。发送端虚拟机作为请求生产者,会在请求队列中写入网络数据包发送请求描述符,同时会更新双方虚拟机共享的请求指针;接收端虚拟机作为响应生产者,将处理网络数据包发送请求并移除这些请求,更新其私有的请求消费者指针,把请求对应的响应放在队列中,同时更新共享的响应生产者指针。发送端虚拟机既发送I/o请求,又作为响应消费者,更新其私有的响应消费者指针。在I/O共享环组件的I/O环共享页面空间中,请求生产者和请求消费者指针之间的空间表示的是发送端已发送但接收端未接收处理的数据包I/o请求,请求消费者和响应生产者指针之间表示的是接收端已接收但未完成请求响应的数据包I/O请求,响应生产者和响应消费者指针之间表示的是接收端已完成接收但发送端未完成响应处理的数据包I/o响应。通过域间通信通道系统进行完整的网络数据包发送和接收的流程如图3所示,图中以Linux系统中的skb_buff网络数据包表示形式为例说明。网络数据包经由域间通信通道系统进行传输的第一步就是将发送端的网络数据包数据实际占用的物理内存页面授权给接收端虚拟机能够进行拷贝;然后再将该数据包的完整信息描述符写入到I/O共享环中,图例中的数据包描述符包括了数据包数据实际占用的3个内存页面,其完整描述符占用了 3个I/O共享环描述项,同时更新I/O共享环中的控制共享页中的相应指针变量的值;在完成数据包描述符的写入后,通过事件通道触发接收端虚拟机的数据包接收流程;在接收端接到事件通道通告后,就会将对应的数据包发送请求描述符从I/O共享环中读出,生成对应的数据包内核表示数据结构;根据数据包发送请求描述符中每一项的描述,接收端虚拟机申请对应数量的内核态内存页,同时构建授权拷贝操作的数据结构内容;最后,接收端把构建好的授权拷贝的数据结构作为参数传递给内存拷贝超级调用,陷入到超级调用操作中由Xen完成数据包数据的拷贝。在完成上述传输过程过后,接收端虚拟机便可以通过上层网络协议栈所提供的对应接口,向上层网络协议栈递交接收到的网络数据包。
权利要求
1.一种客户虚拟机域间通信通道系统,由发送方向通道子系统、接收方向通道子系统和一个事件通道构成,通过在一对客户虚拟机域之间建立直接连接的域间通信通道,支持虚拟机直接的双向网络通信。
2.如权利要求1所述的系统,其特征在于: 发送方向通道子系统和接收方向通道子系统共同提供对双向域间通信功能的支持,每个通道子系统都是基于单向I/O共享环组件,其中发送方向通道子系统的资源由发送端虚拟机申请建立,同时又被接收端虚拟机通过授权映射进行共享,作为接收端虚拟机的接收方向通道子系统的资源; 单向I/O共享环组件通过内存授权映射实现发送和接收两端虚拟机之间的共享访问,由一个I/O环共享页和一个控制共享页构成,其中,I/O环共享页存储着由发送方写入的网络数据包发送请求描述符供接收方进行读取;共享控制页是虚拟机之间建立起来的共享内存页,用于存储虚拟机双方共享的关键数据; 事件通道是建立在发送和接收两端虚拟机之间的双向异步消息通信通道,用于发送端虚拟机在将完整的网络数据包发送请求描述符写入到I/o共享环后向接收端虚拟机进行消息通告; 接收端通过读取所述请求描述符的信息,发起授权拷贝超级调用,完成网络包内存页面数据的拷贝,从而实现虚拟机之间的网络通信。
3.如权利要求1所述 的系统,其特征在于,该系统独立于具体操作系统类型。
全文摘要
一种在多核虚拟化环境下的基于授权拷贝的客户虚拟机域间通信通道系统,它是由发送方向通道子系统、接收方向通道子系统和一个事件通道构成的。其中,单向I/O共享环是构成双向域间通信通道子系统的主要组件,它是通过Xen底层的虚拟机内存页共享机制建立起来的共享内存页面,由一个I/O环共享页和一个共享控制页构成的;事件通道用于发送端虚拟机在将完整的网络数据包发送请求描述符写入到I/O共享环后,向接收端虚拟机进行发送通告的。该系统通过在一对客户虚拟机域之间建立直接连接的域间通信通道,支持虚拟机进行双向网络通信,可支持Linux和Windows两种不同类型的虚拟机操作系统,同时也可支持PV和HVM两种类型的Xen客户虚拟机。
文档编号G06F9/455GK103077153SQ20131004260
公开日2013年5月1日 申请日期2013年2月1日 优先权日2013年2月1日
发明者白跃彬, 马耀, 吕多, 彭远峰 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1