[发明专利]一种虚拟集群中的通信方法无效
申请号: | 201110031925.9 | 申请日: | 2011-01-28 |
公开(公告)号: | CN102075434A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 金海;吴松;石宣化;付宇 | 申请(专利权)人: | 华中科技大学 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/08;H04L1/18 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 方放 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种虚拟集群中的通信方法,属于虚拟化及集群计算领域,解决虚拟化技术下的网络通信效率性能低下、非域间通信时虚拟集群中TCP/IP通信协议过于复杂、域间通信时数据报穿越的路径过长导致域间通信性能低下的问题,以提高虚拟集群网络通信效率。本发明包括启动步骤、连接帮助步骤、非域间通信步骤、虚拟机发现步骤以及域间通信步骤。本发明对虚拟集群内非域间通信进行专门设计,可以显著提高网络通信的效率,降低处理器的负担;对域间通信采用在虚拟机之间开辟域间通信通道,大大提高网络通信的性能;本发明具有对已有应用程序的二进制兼容性,不依赖于虚拟集群使用的具体网络硬件,效率高、可用性高。 | ||
搜索关键词: | 一种 虚拟 集群 中的 通信 方法 | ||
【主权项】:
一种虚拟集群中的通信方法,包括启动步骤、连接帮助步骤、非域间通信步骤、虚拟机发现步骤以及域间通信步骤,其特征在于:(1)启动步骤,为每台虚拟机创建虚拟字符设备,在每台虚拟机的内存中设置通道指针数组、窗口值W和时间T,每台虚拟机在所在物理计算机的一块内存Xen Store中写入自己的虚拟机ID和MAC地址信息;所述窗口值W为64~256个,时间T为0.1~1ms;(2)连接帮助步骤,包括下述子步骤:(2.1)Linux内核调用截获子步骤:请求建立TCP连接的虚拟机修改Linux内核代码中的函数指针,截获上层应用程序对TCP连接建立函数的调用指令,根据调用指令中的目标IP地址判断网络通信是否属于虚拟集群内的非域间通信,是则请求建立一个用于建立轻量级通信连接时交换所需信息的TCP连接,转子步骤(2.2),否则转子步骤(2.4);(2.2)网络监听子步骤:TCP连接的目标虚拟机接受TCP连接请求,把TCP连接套接字描述符写入到自身的虚拟字符设备中,转子步骤(2.3);(2.3)连接建立子步骤:写入TCP连接套接字描述符后,目标虚拟机在自身的内存中分配数据缓冲区并将其初始化,在通道指针数组中为该数据缓冲区分配通道号,然后通过TCP连接向请求建立TCP连接的虚拟机发送自身的MAC地址和通道号,接收对方的MAC地址和通道号,完成轻量级协议连接的建立,转步骤(3);(2.4)TCP/IP协议子步骤:通过TCP/IP协议的三次握手过程与目标地址建立起TCP连接,在传输数据时,TCP/IP协议采用超时重传和捎带确认机制保证数据传输的可靠性,在流量控制上,TCP/IP协议采用滑动窗口的方式,已发送且未确认的数据的字节数最大不能超过滑动窗口的大小,在TCP/IP协议完成数据报的处理后,转步骤(4);(3)非域间通信步骤,包括下述子步骤:(3.1)数据缓冲子步骤:请求建立TCP连接的虚拟机或者目标虚拟机发送数据时,将要发送的数据存放在自身数据缓冲区的发送缓冲区中,转子步骤(3.2);请求建立TCP连接的虚拟机或者目标虚拟机接收数据时,将接收到的数据存放在自身数据缓冲区的接收缓冲区中,等待应用程序读取;(3.2)数据传输子步骤:从发送缓冲区中取出数据组装成数据报,将数据报通过Xen的虚拟网络接口发送给对方虚拟机,直至所要发送的数据全部发送完毕;(4)虚拟机发现步骤,包括下述子步骤:(4.1)虚拟机扫描子步骤:请求建立TCP连接的虚拟机所在的物理计算机周期性地扫描自身内存的Xen Store区域,获取参与域间通信的虚拟机列表信息,转子步骤(4.2);(4.2)虚拟机信息广播子步骤:将参与域间通信的虚拟机列表信息组成列表信息数据报,通过网络广播到每一个参与域间通信的虚拟机中去,转步骤(5);(5)域间通信步骤,包括下述子步骤:(5.1)数据报截获子步骤:请求建立TCP连接的虚拟机收到列表信息数据报,将其中的虚拟机列表信息存放在自身内存中;然后截获经过TCP/IP协议处理的数据报,查看该数据报的目标地址是否包括在所述虚拟机列表信息中,是则转子步骤(5.2),否则将数据报通过Xen的虚拟网络接口发送给目标地址;(5.2)域间通信通道建立子步骤:请求建立TCP连接的虚拟机查看是否和目标虚拟机之间已经建立域间通信通道,是则转子步骤(5.4),否则转子步骤(5.3);(5.3)在自身内存中分配读入缓冲区和写出缓冲区并创建一个事件通道,然后发送通道建立数据报通知目标虚拟机将两个缓冲区的内存地址映射到目标虚拟机的内存地址空间中并且与所创建的事件通道绑定,目标虚拟机收到通道建立数据报后完成所述映射和绑定操作,转子步骤(5.4);(5.4)域间数据发送子步骤:请求建立TCP连接的虚拟机将数据报拷贝到域间通信通道的写出缓冲区中,通过事件通道通知目标虚拟机,目标虚拟机收到通知后从自身读入缓冲区中取出数据报,并释放读入缓冲区中的空间;通信双方重复上述过程,直至数据报发送完毕。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110031925.9/,转载请声明来源钻瓜专利网。