CN103077153A - 基于授权拷贝的虚拟机域间通信通道系统 - Google Patents
基于授权拷贝的虚拟机域间通信通道系统 Download PDFInfo
- Publication number
- CN103077153A CN103077153A CN2013100426067A CN201310042606A CN103077153A CN 103077153 A CN103077153 A CN 103077153A CN 2013100426067 A CN2013100426067 A CN 2013100426067A CN 201310042606 A CN201310042606 A CN 201310042606A CN 103077153 A CN103077153 A CN 103077153A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- page
- channel subsystem
- inter
- ring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种在多核虚拟化环境下的基于授权拷贝的客户虚拟机域间通信通道系统,它是由发送方向通道子系统、接收方向通道子系统和一个事件通道构成的。其中,单向I/O共享环是构成双向域间通信通道子系统的主要组件,它是通过Xen底层的虚拟机内存页共享机制建立起来的共享内存页面,由一个I/O环共享页和一个共享控制页构成的;事件通道用于发送端虚拟机在将完整的网络数据包发送请求描述符写入到I/O共享环后,向接收端虚拟机进行发送通告的。该系统通过在一对客户虚拟机域之间建立直接连接的域间通信通道,支持虚拟机进行双向网络通信,可支持Linux和Windows两种不同类型的虚拟机操作系统,同时也可支持PV和HVM两种类型的Xen客户虚拟机。
Description
技术领域
本发明涉及计算机科学中的在多核硬件平台下的系统虚拟化领域,特别是Xen平台上虚拟机的域间通信技术。
背景技术
虚拟化技术是一种计算机系统抽象技术,通过物理平台上的虚拟机逻辑层管理计算资源,并向运行在其上的客户层提供虚拟的资源。客户机操作系统可以通过标准接口访问资源,但是接口的实现却并不直接与物理资源通信;而是由虚拟化层负责实际资源的管理,使有限数量的资源能够在多个客户机之间复用。直接运行在硬件平台上的虚拟化层软件通常被称作虚拟机监视器(Virtual MachineMonitor,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虚拟化的域间通信技术领域,大部分采用共享内存方式的网络数据包传输方式,本系统发明的创新点在于:
(1)本系统发明采用了授权拷贝技术实现网络数据包数据的实际传输过程,支持双向通信;
(2)本系统发明支持PV和HVM两种类型的客户虚拟机;
(3)本系统发明既可以支持Linux系统,又可以应用在Windows系统上,基于与系统平台无关;
(4)本系统发明可支持域间通信通道的动态建立和撤销。
附图说明
图1双向域间通信通道系统构成图
图2单向I/O共享环组件原理示意图
图3基于授权拷贝技术的网络数据包数据传输流程原理示意图
具体实施方式
如图1所示,双向域间通信通道系统是建在两个客户虚拟机域之间的,对每个虚拟机而言,域间通信通道系统都是由发送方向通道子系统、接收方向通道子系统和事件通道构成的。其中,单向通道子系统依赖于一个单向的I/O共享环组件,该组件通过共享内存方式实现在发送和接收两端虚拟机之间的数据共享;事件通道是一种客户虚拟机之间的异步事件通道机制。每个虚拟机都需要申请自己的发送方向通道子系统的内存资源,再由接收端虚拟机通过内存共享映射到其虚拟地址空间中作为自己的接受方向通道子系统。事件通道则可以由任一方虚拟机申请建立,再由对端虚拟机进行连接,从而达到双向通信的能力。
网络数据包从发送端虚拟机经由发送方向通道子系统传输到接收端虚拟机的过程主要是通过单向的I/O共享环组件来实现的。单向I/O共享环组件的构成如图2所示,它是由1个I/O环共享页和1个控制共享页构成。控制共享页保存了发送和接收两端虚拟机的共享数据变量,而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完成数据包数据的拷贝。在完成上述传输过程过后,接收端虚拟机便可以通过上层网络协议栈所提供的对应接口,向上层网络协议栈递交接收到的网络数据包。
Claims (3)
1.一种客户虚拟机域间通信通道系统,由发送方向通道子系统、接收方向通道子系统和一个事件通道构成,通过在一对客户虚拟机域之间建立直接连接的域间通信通道,支持虚拟机直接的双向网络通信。
2.如权利要求1所述的系统,其特征在于:
发送方向通道子系统和接收方向通道子系统共同提供对双向域间通信功能的支持,每个通道子系统都是基于单向I/O共享环组件,其中发送方向通道子系统的资源由发送端虚拟机申请建立,同时又被接收端虚拟机通过授权映射进行共享,作为接收端虚拟机的接收方向通道子系统的资源;
单向I/O共享环组件通过内存授权映射实现发送和接收两端虚拟机之间的共享访问,由一个I/O环共享页和一个控制共享页构成,其中,I/O环共享页存储着由发送方写入的网络数据包发送请求描述符供接收方进行读取;共享控制页是虚拟机之间建立起来的共享内存页,用于存储虚拟机双方共享的关键数据;
事件通道是建立在发送和接收两端虚拟机之间的双向异步消息通信通道,用于发送端虚拟机在将完整的网络数据包发送请求描述符写入到I/O共享环后向接收端虚拟机进行消息通告;
接收端通过读取所述请求描述符的信息,发起授权拷贝超级调用,完成网络包内存页面数据的拷贝,从而实现虚拟机之间的网络通信。
3.如权利要求1所述的系统,其特征在于,该系统独立于具体操作系统类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310042606.7A CN103077153B (zh) | 2013-02-01 | 2013-02-01 | 基于授权拷贝的虚拟机域间通信通道系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310042606.7A CN103077153B (zh) | 2013-02-01 | 2013-02-01 | 基于授权拷贝的虚拟机域间通信通道系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103077153A true CN103077153A (zh) | 2013-05-01 |
CN103077153B CN103077153B (zh) | 2016-03-02 |
Family
ID=48153684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310042606.7A Expired - Fee Related CN103077153B (zh) | 2013-02-01 | 2013-02-01 | 基于授权拷贝的虚拟机域间通信通道系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103077153B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015003312A1 (en) * | 2013-07-09 | 2015-01-15 | Hua Zhong University Of Science Technology | Data communication on a virtual machine |
CN104657224A (zh) * | 2013-11-21 | 2015-05-27 | 华为技术有限公司 | 一种进程间通信的方法和装置 |
CN105556473A (zh) * | 2014-12-27 | 2016-05-04 | 华为技术有限公司 | 一种i/o任务处理的方法、设备和系统 |
CN113973088A (zh) * | 2021-05-18 | 2022-01-25 | 上海赫千电子科技有限公司 | 一种智能主机的mcu通信服务系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070153715A1 (en) * | 2005-12-30 | 2007-07-05 | Covington Michael J | Reliable reporting of location data |
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
-
2013
- 2013-02-01 CN CN201310042606.7A patent/CN103077153B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070153715A1 (en) * | 2005-12-30 | 2007-07-05 | Covington Michael J | Reliable reporting of location data |
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
Non-Patent Citations (2)
Title |
---|
CONG XU等: "Performance Evaluation of Parallel Programming in Virtual Machine Environment", 《2009 SIXTH IFIP INTERNATIONAL CONFERENCE ON NETWORK AND PARALLEL COMPUTING》 * |
李世晗等: "无线传感器网络软件技术研究", 《计算机应用研究》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015003312A1 (en) * | 2013-07-09 | 2015-01-15 | Hua Zhong University Of Science Technology | Data communication on a virtual machine |
US9430034B2 (en) | 2013-07-09 | 2016-08-30 | Hua Zhong University Of Science Technology | Data communication on a virtual machine |
CN104657224A (zh) * | 2013-11-21 | 2015-05-27 | 华为技术有限公司 | 一种进程间通信的方法和装置 |
CN104657224B (zh) * | 2013-11-21 | 2017-12-15 | 华为技术有限公司 | 一种进程间通信的方法和装置 |
CN105556473A (zh) * | 2014-12-27 | 2016-05-04 | 华为技术有限公司 | 一种i/o任务处理的方法、设备和系统 |
CN113973088A (zh) * | 2021-05-18 | 2022-01-25 | 上海赫千电子科技有限公司 | 一种智能主机的mcu通信服务系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103077153B (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109314726B (zh) | 操作系统容器之间通讯的系统和方法 | |
US10936535B2 (en) | Providing remote, reliant and high performance PCI express device in cloud computing environments | |
US11429442B2 (en) | Parallel and distributed computing using multiple virtual machines | |
US20180088804A1 (en) | Virtualizing non-volatile storage at a peripheral device | |
US9459897B2 (en) | System and method for providing data analysis service in cloud environment | |
CN113614722A (zh) | 网络功能虚拟化基础设施中的进程到进程安全数据移动 | |
CN104199718A (zh) | 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法 | |
US20140359613A1 (en) | Physical/virtual device failover with a shared backend | |
CN103984591B (zh) | 计算机虚拟化系统的PCI设备INTx中断投递方法 | |
US9798482B1 (en) | Efficient and secure memory allocation in virtualized computer systems | |
CN102968331A (zh) | 一种虚拟机管理系统及其文件访问方法 | |
CN103077153A (zh) | 基于授权拷贝的虚拟机域间通信通道系统 | |
CN114662088A (zh) | 用于提供对内核和用户空间存储器区域的访问的技术 | |
US9588921B2 (en) | System on a chip comprising an I/O steering engine | |
CN107003904A (zh) | 一种内存管理方法、设备和系统 | |
Sarddar et al. | Central controller framework for mobile cloud computing | |
EP3671472B1 (en) | Data access method and device | |
US20230185593A1 (en) | Virtual device translation for nested virtual machines | |
US11983555B2 (en) | Storage snapshots for nested virtual machines | |
US9535742B1 (en) | Clustering for parallel processing | |
US11748135B2 (en) | Utilizing virtual input/output memory management units (IOMMU) for tracking encryption status of memory pages | |
US20220035649A1 (en) | Event notification support for nested virtual machines | |
Wang et al. | Efficient asynchronous communication between virtual machines in embedded systems | |
CN102999393B (zh) | 一种数据传输的方法、装置及电子设备 | |
Garrido et al. | Aggregating and managing memory across computing nodes in cloud environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160302 Termination date: 20200201 |
|
CF01 | Termination of patent right due to non-payment of annual fee |