CN101430674B - 一种分布式虚拟机监控器内连通信方法 - Google Patents

一种分布式虚拟机监控器内连通信方法 Download PDF

Info

Publication number
CN101430674B
CN101430674B CN2008102398997A CN200810239899A CN101430674B CN 101430674 B CN101430674 B CN 101430674B CN 2008102398997 A CN2008102398997 A CN 2008102398997A CN 200810239899 A CN200810239899 A CN 200810239899A CN 101430674 B CN101430674 B CN 101430674B
Authority
CN
China
Prior art keywords
vmm
data
operating system
ring
node
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.)
Expired - Fee Related
Application number
CN2008102398997A
Other languages
English (en)
Other versions
CN101430674A (zh
Inventor
宋忠雷
肖利民
陈思名
彭近兵
祝明发
马博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2008102398997A priority Critical patent/CN101430674B/zh
Publication of CN101430674A publication Critical patent/CN101430674A/zh
Application granted granted Critical
Publication of CN101430674B publication Critical patent/CN101430674B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明提供一种分布式虚拟监控器通信技术的实现方法,它主要采用扩展***设备模拟部分,结合描述符环机制,来利用现有的可靠传输协议实现VMM间可靠高效的通信,提供资源整合所必需的基础,为上层客户操作***提供一个单一物理节点,实现客户操作***对多节点资源的管理和使用。该实现方法具体步骤如下:步骤一、准备阶段;步骤二、建立连接阶段;步骤三、数据传输过程;步骤四、连接关闭阶段。本发明在现有的成熟技术基础上进行创新,实施简便,具有良好的使用和发展前景。

Description

一种分布式虚拟机监控器内连通信方法
(一)技术领域
本发明涉及一种分布式虚拟机监控器内连通信方法,属于计算机***虚拟化技术,尤其是涉及一种以实现服务器机群虚拟化目标的分布式虚拟机监视器***的内连通信技术。属于计算机技术领域。
(二)背景技术
虚拟化技术
单机虚拟化逐步成熟
虚拟化技术自从一出现便受到人们广泛的关注,现在,越来越多的厂商开始介入,从处理器层面的AMD和Intel到操作***层面的微软的加入,从数量众多的第三方软件厂商的涌现到服务器***厂商的高调响应。可见虚拟化技术发展迅猛。
Xen是由剑桥大学计算机实验室开发的一个开源虚拟机监控器(VMM),在其上可以同时创建多个虚拟机,每个虚拟机运行一个操作***。Xen采用的虚拟化技术被称为para-virtualization(半虚拟化),即VMM对客户操作***的一般指令不予理睬,对操作***的敏感指令需要使用超级调用(hypercall)来代替。这样极大的提高了***的隔离性和性能,但是有一个缺点就是它需要用户对操作***进行修改。随着AMD和Intel推出硬件辅助虚拟化支持技术,Xen也支持全虚拟化和硬件辅助虚拟化。
VMware公司是目前市场上的领军人物,它采用全虚拟化(Full-Virtualization)技术。全虚拟化技术就是客户操作***不需要作任何改动可以直接运行在虚拟机上,它能允许用户使用常规的,无需修订的操作***来作为客户端。
多机虚拟化走上舞台
随着应用对计算机资源的增长,单机资源已经满足不了用户的需求,如何突破单宿主机限制成为虚拟化技术的另一重要发展方向。
日本东京大学的Virtual Multiprocessor项目是基于IA-32机群的分布式VMM。这个项目中,在VMM和硬件层之间,运行了一个简化的操作***。它可以由这层host OS提供支持。VirtualMultiprocessor采用了半虚拟化的技术,通过对客户操作***的修改使其与VirtualMultiprocessor协作完成任务。Virtual Multiprocessor运行于用户态,其主要功能依赖对宿主操作***的***调用,因而效率低下。其分布式VMM之间的通信是通过调用下层多操作***的TCP协议完成,节点间的通信由操作***负责。
vNUMA是澳大利亚新南威尔士大学开发的基于IA-64机群的分布式VMM,其运行于最底层。客户操作***(Linux)通过准虚拟化的方式与vNUMA协作。vNUMA的主要目标在于提供透明的分布式共享存储用于科学计算。vNUMA***采用了一种被称为预虚拟化的方法,该方法由德国Karlsruhe大学、澳大利亚新南威尔士大学和IBM共同提出。这是一种提供工具支持的半自动Guest构造方法,利用汇编器的支持,对Guest***的代码进行扫描,将其中的部分特权指令进行静态替换,对无法静态处理的指令采用profile方法动态地寻找并手工替换。这个方法的指导思想是采用编译工具支持,尽可能增加可以直接运行的指令,减少需要模拟的指令。
跨节点的通信***
VMM间的通信
Virtual Multiprocessor通信
日本东京大学的Virtual Multiprocessor项目也是实现分布式虚拟机。这个项目中,在VMM和硬件层之间,运行了一个简化的操作***,称为Host OS。VMM间的通信使用自己的应用协议,它使用Host OS中基于以太网的TCP/IP协议栈来完成数据的发送与接收。它的优点是通信协议使用现有的TCP/IP协议栈,给实现带来极大的方便。而缺点也是很显然的,它需要有host OS的支持,通信属于应用级的,效率上要低。
vNUMA通信
vNUMA是澳大利亚新南威尔士大学开发的一种基于IA-64机群的分布式VMM。它是基于安腾体系结构的VMM直接运行在硬件上,底层通信直接在硬件上实现。但是它是非开源的。它的优点是由硬件实现效率上高,缺点就是专用硬件支持,给实现带来了困难。
其它跨结点间高效通信机制
VMMC通信机制
Virtual Memory-Mapped Communication(VMMC)是一种基于虚拟内存映射的通信机制,它支持从发送方虚拟内存到接收方虚拟内存的数据直接传送。支持数据零拷贝,但是它需要专用的硬件支持。
Active Messages
它是第一个被广泛使用的ULN(User Level Networking),最初是为并行的微机开发的,在不同的网络接口硬件上应用,接着发展成为一种用于通讯的汇编语言。它是不需要任何协议支持的,更加接近于硬件,效率高,但是在死锁处理和同步上较差。
Fast Sockets
它用的是GAM(Globally Addressable Memory)接口,并不将底部的队列结构展示出来,排除了处理程序的隐含执行,而是由用户进程为即将到来的消息提供缓存管理并管理流量以避免死锁。它被广泛应用于机群互连,并推动了为解决由大批传送引起的节点争夺问题等相关协议的发展。虽然它只需要少量的数据拷贝,但是需要专用的平台接口才能实现。
综上所述,目前的VMM间通信主要有两种,一种是在基于host OS的VMM中,通信靠host OS中的协议栈来完成;另外一种是基于硬件的VMM,它在专有通信硬件的基础上完成通信。本发明阐述的通信机制基于千兆以太网,为直接运行于硬件之上的VMM提供通信。
(三)发明内容
本发明的目的在于提供一种分布式虚拟机监控器内连通信方法,它主要采用环机制与可靠传输协议结合,并辅助以有效的通告机制,利用高速互连局域网网络,为分布式虚拟机监控器提供可靠高效的通信,完成集群资源的整合。
本发明所述的方法基于集群***-一种通过外部互联网络连接的多计算机***,其特点是各物理资源分布于多个节点之上,通过对各节点资源的虚拟化及模块协作,完成对服务器资源的整合,集群中的计算机需要通过网络传递消息的方式进行合作。本发明专利的目标是为在机群***之上利用虚拟化技术提供具有对称式多处理器(Symmetric Multi-Processors,SMP)特性的虚拟机监控器提供可靠高效的通信。分布式虚拟机监控器的特点是直接工作于物理硬件之上,而无需操作***的帮助。
本发明专利通过在机群节点上部署VMM,在机群***的物理结构上提供具有SMP特性的虚拟机监控器。并在VMM运行修改过的linux操作***,称之为设备domain(Dom0),并由它提供可靠传输协议栈。通过在VMM中实现与设备domain高效的交互机制,来完成对设备domain协议栈的调用,从而达到VMM间可靠高效的数据传输,使支持SMP结构的商业化的操作***无需修改即可运行在该虚拟机中。
VMM的通信模块负责为布署于各物理结点之上的VMM提供可靠高效的数据传输,使VMM完成对多机资源的整合,为客户操作***呈现单一的镜像。
本发明一种分布式虚拟机监控器内连通信方法,具体实现步骤如下:
步骤一、准备阶段:
各结点VMM创建虚拟机并为虚拟机分配内存时为双环预留空间,告知虚拟机页面不可用,并初始化请求环和服务环结构;
各节点VMM分别在启动虚拟机时启动设备模拟模块dm,并将双环所在的页面映射到domain0地址空间内,以供domain0和工作在domain0之上的dm模块中应用程序使用;
在各节点VMM分别事件通道的初始化,事件通道由VMM管理,并呈现给domain0使用;
步骤二、建立连接阶段:
当客户操作***启动时:
1.由管理模块启动客户操作***,首先陷入到VMM中,VMM对客户操作***进行分配核心资源后启动为客户操作***提供设备模拟的qemu-dm模块;
启动qemu-dm模块中我们所实现的通信模块部分:
为提高数据传输率,我们使用三个连接进行通信,分别是不同物理节点上的vcpu间,远程I/O设备访问,远程访存;
qemu-dm模块运行在domain0的应用层,各节点分别从客户操作***的配置文件读取参数,将参数传递过来,比如节点IP地址。启动节点创建socket,开始对连接进行监听,而非启动节点创建socket后发起连接请求;这个过程为阻塞方式,也就是说只有建立好连接之后才可往下进行;
通过***调用方式进入到domain0的内核态使用TCP/IP协议栈完成连接的建立;分别将建立好的连接的描述符保存到连接数组,以供数据发送时使用;
步骤三、数据传输过程:
当客户操作***发生缺页或者I/O设备访问时会首先陷入到VMM中;
VMM对陷入原因进行分析,根据不同请求创建不同的请求,将需要发送的数据的地址映射到domain0,然后通过写指针加入到请求环中,最后设置事件通道;
qemu-dm模块中通信线程被VMM以事件通道的方式唤醒,开始对请求环进行轮询,当有数据需要发送会通过读指针将请求取出来,并根据请求组建数据包,为数据包加应用层头部;
数据传入domain0中的TCP/IP协议栈,通过网卡将数据发送出去;
目的节点接收到数据后由网卡中断交由TCP/IP协议栈,协议栈在去掉传输层以下的头部后将数据保存,并将地址保存到一个环描述符中,通过服务环写指针将它放入到服务环中去,然后通过事件通道告知VMM来处理;
VMM读取服务环,得到描述符中的地址后将数据映射到客户操作***中去,这样接收数据完成;
步骤四、连接关闭阶段:
客户操作***关闭;
释放启动节点资源并通过通信模块释放远程资源;
检查环中数据是否已经处理完毕;
将连接关闭;
释放环以及与通信相关资源;
通信线程服务退出。
本发明一种分布式虚拟机监控器内连通信方法,其优点及功效在于:通过利用现有的可靠传输协议栈,并通过双环和事件通道等机制的结合来完成分布式VMM的通信,本发明提高了分布式VMM***中通信的高效性和可扩展性,并且本发明在现有的成熟技术基础上进行创新,实施更加容易,具有良好的使用和发展前景。
(四)附图说明
图1DVMM***整体结构示意图
图2两结点***模块示意图
图3通信整体架构示意图
图4两结点通信模型示意图
图5描述符环结构示意图
图6通信过程详细示意图
(五)具体实施方式
请参阅图1至5所示,本发明一种分布式虚拟监控器内连通信方法,
1.方法概述
本发明专利基于集群***-一种通过外部互联网络连接的多计算机***,其特点是各物理资源分布于多个节点之上,通过对各节点资源的虚拟化及模块协作,完成对服务器资源的整合,集群中的计算机需要通过网络传递消息的方式进行合作。本发明专利的目标是为在机群***之上利用虚拟化技术提供具有对称式多处理器(Symmetric Multi-Processors,SMP)特性的虚拟机监控器提供可靠高效的通信。分布式虚拟机监控器的特点是直接工作于物理硬件之上,而无需操作***的帮助。
本发明专利通过在机群节点上部署VMM,在机群***的物理结构上提供具有SMP特性的虚拟机监控器。并在VMM运行修改过的linux操作***,称之为设备domain(Dom0),并由它提供可靠传输协议栈。通过在VMM中实现与设备domain高效的交互机制,来完成对设备domain协议栈的调用,从而达到VMM间可靠高效的数据传输,使支持SMP结构的商业化的操作***无需修改即可运行在该虚拟机中。
VMM的通信模块负责为布署于各物理结点之上的VMM提供可靠高效的数据传输,使VMM完成对多机资源的整合,为客户操作***呈现单一的镜像。
2.分布式VMM通信的特点
分布式VMM***是直接运行在物理硬件之上的,负责管理和整合硬件资源,为运行在上层的操作***服务。通信作为分布VMM***的一部分,为实现整个分布式VMM***的其他功能服务。
由于VMM本身并不具有可靠传输层协议,并且不负责外部设备的管理(以太网网卡),而这些是设备domain所有的,为利用以太网完成VMM间的可靠通信,需要VMM本身实现与设备domain的高效交互机制,完成对设备domain中协议栈的使用。这样充分利用了设备domain,而不必在VMM实现繁杂的传输层协议和网卡驱动,使VMM更具有可扩展性。
3.***结构
VMM通信按功能流程分为以下几个模块:
模块一、VMM通信的预处理。
当Guest OS引发远程请求时会陷入到VMM中,这时VMM对Guest OS的陷入原因进行分析,对不同的通信进行区分,并加入不同的头部,构成了应用层的头部。在DVMM***中,通信的种类主要有:
Figure G2008102398997D00061
IPI,每次传输一个寄存器的内容。
Figure G2008102398997D00062
远程设备访问,每次传输IOREQ和控制信息,不超过100字节。
Figure G2008102398997D00063
DSM,每次通信的数据量是一页。
远程I/O操作,每次传输一个指令。
模块二、VMM与dom0上DM模块中通信线程的交互。
VMM为通信的两端,处于内核态,即硬件之上,而qemu-dm模块运行于domain0之上,处于用户态,两者必须有数据交互。为了使VMM与Dom0交换数据,引入双环机制,分别称为请求环和服务环。由于发送或接收的数据通常比较大,VMM和Dom0并不交换实体数据,而以引用的方式来通告。环是存放发送数据控制结构的,称为描述符环。VMM将要发送的数据或者Dom0将接收的数据的地址保存在环中一项中,并通过VMM中的授权表将数据所在页面授权给Dom0由它映射过来完成发送,这样既减少了数据的持贝,提高了效率,又增大了环的容量。
授权表是为实现不同domain之间数据共享的,在DVMM中,客户操作***与Dom0可以看作是对等的两个domain,VMM应保证两者的独立性、安全性。然而通信需要让dom0发送GOS中的数据,或者接收到数据提供给GOS,为减少数据的拷贝,需要实现两者之间的数据共享。
显然,对于请求环和服务环来说,它们应该能被VMM和Dom0共同访问,而且最重要一点是,它们所处的位置必须安全的,不能被其它模块所修改。基于以上考虑,发送环和接收环从GuestOS的内核页面中预留出来,并限制Guest OS不能使用此页面。然后通过映射的方式以供Dom0来使用。Guest OS的页面是由VMM来管理的,所以它也可以使用。
如图5所示,请求环和服务环结构相同,每一个环有两个指针,分别为读和写,由VMM和dom0共同使用,一端读一端写,VMM在请求通信时会通过写指针将请求放入到环中,而在另一端的dom0通过读指针读取请求进行处理将数据发送出去,对于服务环,Dom0收到数据后,新建环一项结构通过写指针将它放入到服务环,然后VMM通过读指针将服务读取并处理。
事件通道机制是为解决VMM与Dom0之间的协作。在DVMM***中,为提高通信的效率,通信采用异步方式,VMM通过事件通道机制来通知dom0内核服务器来处理请求。这样VMM在不影响其性能的情况下也保障了通信的高效。
事件通道本质上设置掩码位,每一位代表一个通道,由VMM和Dom0两者共同使用,当需要触发Dom0事件时,比如VMM发起通信请求,将数据准备好后,通过对事件通道的置位,并由Dom0查询得知有数据请求需要处理。Dom0也可以对它进行修改,不过由于它是由VMM来维护的,所以需要通过超级调用来完成。
模块三、qemu-dm模块中实现通信线程服务器
在DVMM***中,qemu-dm模块本身负责的是I/O模拟,我们对qemu-dm进行的扩展,使其在负责I/O模拟的同时还负责节点间可靠消息的传递。通信线程主要负责连接的建立,请求和服务环的轮询,数据的发送与接收。
在Guest OS创建时,qemu-dm负责建立到其他不同节点对应qemu-dm的TCP链接。通信线程会分别对TCP套接字以及请求环进行轮询。当通信线程发现此次消息的目的是qemu-dm时,它会将消息传递给qemu-dm;当通信线程发现此次消息的目的是VMM时,其会将消息直接放入服务环并利用事件通道通知VMM消息的到来。
每当VMM需要传递信息时,其会将通信的目的以及消息放入请求发送环并利用事件通道的方式通知通信线程。通信线程从请求发送环中取走对应的消息后会选择与目的节点对应的TCP链接,并将这个消息通过socket发送至目的节点。
通信线程会对每一条消息做简单的解释,当其发现VMM需要发送页面时,其首先会将该页面映射至自己的地址空间中,让后直接从该页面获取数据并发送至对应的socket。与发送的过程类似,当通信线程发现远程的页面数据到达时,它首先会将目的页面映射至自己的线性地址空间中,并直接将socket中的页面数据读入目的客户页面中。
由于在多节点***中,每个通信线程可能维护多个TCP连接,所以通信线程还还需要负责在请求发送环与TCP套接字之间转发或路由对应的包。VMM仅仅负责按照节点编号进行通信,节点编号所对应的IP地址对VMM透明。所以通信线程必须负责将VMM所需要传递的包按照其目的节点对应的IP地址,从对应的TCP连接中发送出去。
模块四、domain0中协议栈对数据的传输
Dom0中提供的协议栈以及网络设备驱动程序:由于在VMM中,外部设备由dom0负责管理,所以我们只能复用dom0提供的网络设备驱动程序与可靠传输协议(TCP),TCP协议为面向连接的通信,而且本身提供了重传机制等,因而可以实现VMM间的可靠通信。
通过多种机制的结合,通信***为DVMM***提供简单、可靠但高效的数据传输。
如图6中所示,当Guest OS需要远程页面或I/O访问时,会①陷入到VMM中,VMM根据GuestOS陷入原因处理请求②将需要发送的数据请求放入到发送环中,此时处于③qemu-dm模块中的应用级进程轮询此请求,当发现有数据需要发送时进行④应用层的处理并调用dom0中的协议栈将数据通过⑤网卡从以太网上发送出去。接收方⑥网卡收到数据后中断由协议栈接收,⑦交由应用层处理,⑧放入接收环,并⑨告知VMM,⑩VMM服务于Guest OS.这样整个发送接收过程就完成了。
4.***工作流程
初始化阶段:
通信模块的初始化
由于通信协议是面向连接的C/S模式,因此初始化时各节点并不是对称的***在初始化阶段区分两类节点:***选取一个节点作为启动节点,其余节点作为非启动节点。启动节点以server端建立socket,并开始对端口监听连接,而非启动节点建立socket后呼叫连接,将连接保存到数组中。
环的初始化:
双描述符环实现在客户操作***的保留页面中,在客户操作***启动进进行页面的初始化清零,然后设置读写指针,读写指针均指向环起始位置,根据两者差值判断是否有数据。
服务的建立:
DVMM***通过对qemu-dm模块进行扩展,加入两个通信线程,其中一个为负责发送数据的线程,它对请求发送环进行轮询对进行处理。另一个是负责接收数据的线程,它由设备domain0中协议栈引发,当协议栈接收到数据后放入服务环中,以供VMM处理。线程在qemu-dm模块启动过程建立。
***正常工作阶段:
分布式VMM实现多节点的资源整合,为提供不同节点上VMM间的模块通信。
连接建立:多节点间利用socket建立连接,启动节点为server端,其它节点为client端。
数据发送:VMM有数据要发送将请求置入到请求环中,通知qemu-dm模块处理,然后利用TCP/IP协议栈发送。
数据接收:TCP/IP协议栈接收后放入到服务环中,由VMM处理。
下面结合附图,详述具体实施步骤如下:
步骤一、准备阶段:
各结点VMM创建虚拟机并为虚拟机分配内存时为双环预留空间,告知虚拟机页面不可用,并初始化请求环和服务环结构;
各节点VMM分别在启动虚拟机时启动设备模拟模块dm,并将双环所在的页面映射到domain0地址空间内,以供domain0和工作在domain0之上的dm模块中应用程序使用;
在各节点VMM分别事件通道的初始化,事件通道由VMM管理,并呈现给domain0使用。
步骤二、建立连接阶段:
当客户操作***启动时:
1.由管理模块启动客户操作***,首先陷入到VMM中,VMM对客户操作***进行分配核心资源后启动为客户操作***提供设备模拟的qemu-dm模块;
启动qemu-dm模块中我们所实现的通信模块部分:
为提高数据传输率,我们使用三个连接进行通信,分别是不同物理节点上的vcpu间,远程I/O设备访问,远程访存;
qemu-dm模块运行在domain0的应用层,各节点分别从客户操作***的配置文件读取参数,将参数传递过来,比如节点IP地址。启动节点创建socket,开始对连接进行监听,而非启动节点创建socket后发起连接请求。这个过程为阻塞方式,也就是说只有建立好连接之后才可往下进行;
通过***调用方式进入到domain0的内核态使用TCP/IP协议栈完成连接的建立,分别将建立好的连接的描述符保存到连接数组,以供数据发送时使用。
步骤三、数据传输过程:
当客户操作***发生缺页或者I/O设备访问时会首先陷入到VMM中;
VMM对陷入原因进行分析,根据不同请求创建不同的请求,将需要发送的数据的地址映射到domain0,然后通过写指针加入到请求环中,最后设置事件通道;
qemu-dm模块中通信线程被VMM以事件通道的方式唤醒,开始对请求环进行轮询,当有数据需要发送会通过读指针将请求取出来,并根据请求组建数据包,为数据包加应用层头部;
数据传入domain0中的TCP/IP协议栈,通过网卡将数据发送出去;
目的节点接收到数据后由网卡中断交由TCP/IP协议栈,协议栈在去掉传输层以下的头部后将数据保存,并将地址保存到一个环描述符中,通过服务环写指针将它放入到服务环中去,然后通过事件通道告知VMM来处理;
VMM读取服务环,得到描述符中的地址后将数据映射到客户操作***中去,这样接收数据完成。
步骤四、连接关闭阶段:
客户操作***关闭;
释放启动节点资源并通过通信模块释放远程资源;
检查环中数据是否已经处理完毕;
将连接关闭;
释放环以及与通信相关资源;
通信线程服务退出。

Claims (1)

1.一种分布式虚拟机监控器VMM通信技术的实现方法,其特征在于:该实现方法步骤如下:
步骤一、准备阶段:
各节点VMM创建虚拟机并为虚拟机分配内存时为双环预留空间,告知虚拟机页面不可用,并初始化请求环和服务环结构;
各节点VMM分别在启动虚拟机时启动设备模拟模块dm,并将双环所在的页面映射到domain0地址空间内,以供domain0和工作在domain0之上的dm模块中应用程序使用;
在各节点VMM中分别对事件通道初始化,事件通道由VMM管理,并呈现给domain0使用;
所述domain0为:在VMM运行修改过的linux操作***;
步骤二、建立连接阶段:
当客户操作***启动时:
由管理模块启动客户操作***,首先陷入到VMM中,VMM对客户操作***进行分配核心资源后启动为客户操作***提供设备模拟的qemu-dm模块;
启动qemu-dm模块中我们所实现的通信模块部分:
为提高数据传输率,我们使用三个连接进行通信,分别是不同物理节点上的vcpu间,远程I/O设备访问,远程访存;
qemu-dm模块运行在domain0的应用层,各节点分别从客户操作***的配置文件读取参数,将参数传递过来,启动节点创建socket,开始对连接进行监听,而非启动节点创建socket后发起连接请求;这个过程为阻塞方式,也就是说只有建立好连接之后才可往下进行;
通过***调用方式进入到domain0的内核态使用TCP/IP协议栈完成连接的建立;分别将建立好的连接的描述符保存到连接数组,以供数据发送时使用;
步骤三、数据传输过程:
当客户操作***发生缺页或者I/O设备访问时会首先陷入到VMM中;
VMM对陷入原因进行分析,根据不同请求创建不同的请求,将需要发送的数据的地址映射到domain0,然后通过写指针加入到请求环中,最后设置事件通道;
qemu-dm模块中通信线程被VMM以事件通道的方式唤醒,开始对请求环进行轮询,当有数据需要发送会通过读指针将请求取出来,并根据请求组建数据包,为数据包加应用层头部;
数据传入domain0中的TCP/IP协议栈,通过网卡将数据发送出去;
目的节点接收到数据后由网卡中断交由TCP/IP协议栈,协议栈在去掉传输层以下的头部后将数据保存,并将地址保存到一个环描述符中,通过服务环写指针将它放入到服务环中去,然后通过事件通道告知VMM来处理;
VMM读取服务环,得到描述符中的地址后将数据映射到客户操作***中去,这样接收数据完成;
步骤四、连接关闭阶段:
客户操作***关闭;
释放启动节点资源并通过通信模块释放远程资源;
检查环中数据是否已经处理完毕;
将连接关闭;
释放环以及与通信相关资源;
通信线程服务退出。
CN2008102398997A 2008-12-23 2008-12-23 一种分布式虚拟机监控器内连通信方法 Expired - Fee Related CN101430674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102398997A CN101430674B (zh) 2008-12-23 2008-12-23 一种分布式虚拟机监控器内连通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102398997A CN101430674B (zh) 2008-12-23 2008-12-23 一种分布式虚拟机监控器内连通信方法

Publications (2)

Publication Number Publication Date
CN101430674A CN101430674A (zh) 2009-05-13
CN101430674B true CN101430674B (zh) 2010-10-20

Family

ID=40646080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102398997A Expired - Fee Related CN101430674B (zh) 2008-12-23 2008-12-23 一种分布式虚拟机监控器内连通信方法

Country Status (1)

Country Link
CN (1) CN101430674B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667144B (zh) * 2009-09-29 2013-02-13 北京航空航天大学 一种基于共享内存的虚拟机通信方法
CN102045378B (zh) * 2009-10-13 2013-02-13 杭州华三通信技术有限公司 协议栈处理的全分布式实现方法和分布式***
CN101751284B (zh) * 2009-12-25 2013-04-24 华为技术有限公司 一种分布式虚拟机监控器的i/o资源调度方法
CN101859263B (zh) * 2010-06-12 2012-07-25 中国人民解放军国防科学技术大学 一种支持在线迁移的虚拟机间快速通信方法
US8533712B2 (en) * 2010-10-01 2013-09-10 International Business Machines Corporation Virtual machine stage detection
CN101957900B (zh) * 2010-10-26 2012-02-15 中国航天科工集团第二研究院七○六所 一种可信虚拟机平台
CN102708330B (zh) * 2012-05-10 2015-07-08 深信服网络科技(深圳)有限公司 一种防止***被入侵的方法、入侵防御***及计算机
CN102799465B (zh) * 2012-06-30 2015-05-27 华为技术有限公司 分布式虚拟化***的虚拟中断管理方法及装置
EP2912564B1 (en) * 2012-11-05 2021-02-24 AFL Telecommunications LLC Distributed test system architecture
CN103701791B (zh) * 2013-12-20 2017-09-01 中电长城网际***应用有限公司 一种基于虚拟桌面***的虚拟桌面的操作方法
CN105630576B (zh) * 2015-12-23 2019-08-20 华为技术有限公司 一种虚拟化平台中的数据处理方法及装置
CN105700826A (zh) * 2015-12-31 2016-06-22 华为技术有限公司 虚拟化方法和装置
CN106445642A (zh) * 2016-10-27 2017-02-22 广东铂亚信息技术有限公司 一种基于虚拟机监视器的安全通信方法与***
CN111241201B (zh) * 2020-01-14 2023-02-07 厦门网宿有限公司 一种分布式数据处理方法及***

Also Published As

Publication number Publication date
CN101430674A (zh) 2009-05-13

Similar Documents

Publication Publication Date Title
CN101430674B (zh) 一种分布式虚拟机监控器内连通信方法
US11934341B2 (en) Virtual RDMA switching for containerized
US10936535B2 (en) Providing remote, reliant and high performance PCI express device in cloud computing environments
US8832688B2 (en) Kernel bus system with a hyberbus and method therefor
US8856801B2 (en) Techniques for executing normally interruptible threads in a non-preemptive manner
Huang et al. A case for high performance computing with virtual machines
US8776050B2 (en) Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
CN104871493B (zh) 用于高性能计算网络中的通信信道故障切换的方法和设备
JP3980487B2 (ja) 区分処理環境におけるリソース平衡化
US20050044301A1 (en) Method and apparatus for providing virtual computing services
US20050080982A1 (en) Virtual host bus adapter and method
JP2002342280A (ja) 区分処理システム、区分処理システムにおけるセキュリティを設ける方法、およびそのコンピュータ・プログラム
Ren et al. Shared-memory optimizations for inter-virtual-machine communication
US20120254896A1 (en) Method and system for protocol offload in paravirtualized systems
JP2004535615A (ja) 区分処理環境における共有i/o
US7539987B1 (en) Exporting unique operating system features to other partitions in a partitioned environment
Barham et al. Xen 2002
Zhang et al. Workload adaptive shared memory management for high performance network i/o in virtualized cloud
Dai et al. A lightweight VMM on many core for high performance computing
CN114978589B (zh) 一种轻量级云操作***及其构建方法
Lu et al. Building efficient hpc cloud with sr-iov-enabled infiniband: The mvapich2 approach
Song et al. Research and design of inter-communication in DVMM
Huang High performance network I/O in virtual machines over modern interconnects
Zhang Designing and Building Efficient HPC Cloud with Modern Networking Technologies on Heterogeneous HPC Clusters
Primorac Combining Dataplane Operating Systems and Containers for Fast and Isolated Datacenter Applications

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
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO LTD

Free format text: FORMER OWNER: BEIJING AERONAUTICS AND ASTRONAUTICS UNIV.

Effective date: 20110926

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100191 HAIDIAN, BEIJING TO: 518129 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20110926

Address after: 518129 headquarter office building of Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong, China

Patentee after: Huawei Technologies Co., Ltd.

Address before: 100191 School of computer science and engineering, Beihang University, Xueyuan Road 37, Beijing, Haidian District

Patentee before: Beihang University

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101020

Termination date: 20181223