一种云平台的数据通信方法、系统及计算机可读介质技术方案

技术编号:23851614 阅读:67 留言:0更新日期:2020-04-18 08:56
本发明专利技术公开了一种云平台的数据通信方法、系统及计算机可读介质,其通过包括消息队列和与数据存储地址对应的存储空间的创建数据共享空间,接收Guest应用态进程发送的第一数据结构体,分配与数据发送请求消息一一对应的数据存储地址,依据数据存储地址存储第一数据结构体的数据,更新数据发送请求消息的数据存储地址和数据发送标志位,将更新后的数据发送请求消息放入消息队列;Host应用态进程轮询消息队列的消息,依据数据发送标志位获取待处理的数据发送请求消息,依据数据存储地址获取第一数据结构体的数据,更新数据发送请求消息的数据发送标志位,从而极大地提高了Guest应用态与Host应用态之间的网络传输速率。

A data communication method, system and computer readable medium of cloud platform

【技术实现步骤摘要】
一种云平台的数据通信方法、系统及计算机可读介质
本专利技术属于云计算领域,具体涉及一种云平台的数据通信方法、系统及计算机可读介质。
技术介绍
virtio、vhost和vhost-user网络技术是在云中虚拟化常用的网络通信,其中传输速度最快的为vhost-user。Virtio是qemu的半虚拟化的驱动,此种方式的弊端如下,当有虚拟机发包时,虚拟机发出中断信号退出kvm,从kvm退出到用户空间的qemu进程,然后由qemu开始对tap设备进行读写,其经历从用户态进入内核,再从内核切换到用户态的2次切换,从而造成网络经由的路线长,且内核态与用户态的转换多。目前,可以通过vhost内核中加入了vhost-net.ko模块,使得对网络数据可以在内核态得到处理,当guest(虚拟机)发包时,guest(虚拟机)发出中断信号退出kvm,利用kvm直接和vhost-net.ko通信,再由vhost-net.ko访问tap设备,这样网络数据只需要经过从用户态到内核态的一次切换,就可以完成数据的传输,大大提高了虚拟网卡的性能,然而,该方法的速度还是不够,作为进一步的改进,可利用vhost-user用于用户空间中两个进程之间的通信,Guest发包时,虚拟机发出中断信号退出kvm,kvm直接和vhost-backend通信,然后网络数据将交由vhost-backend进行处理,通过采用vring共享内存的通信方式,速度大大提升,但是还需要一种方法告知对端数据包已经拷贝到数据队列中。然而vhostuser套接口实现的控制通道可用来完成通知(kicking)对方的功能,通知必然有代价,首先,需要一个写套接口的系统调用;之后对端需要处理一个中断操作,所以,接收双方都会在控制通道上消耗时间,同时,以上这些网络通信都离不开虚拟机内核空间的virtio设备。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种云平台的数据通信方法、系统及计算机可读介质,其通过包括消息队列和与数据存储地址对应的存储空间的创建数据共享空间,接收Guest应用态进程发送的第一数据结构体,分配与数据发送请求消息一一对应的数据存储地址,Host应用态进程轮询消息队列的消息,依据数据存储地址获取第一数据结构体的数据,从而极大地提高了Guest应用态与Host应用态之间的网络传输速率。为实现上述目的,按照本专利技术的一个方面,提供了一种云平台的数据通信方法,包括如下步骤:创建数据共享空间,数据共享空间包括消息队列、数据存储地址和与数据存储地址一一对应的存储空间;数据共享空间接收Guest应用态进程发送的第一数据结构体,第一数据结构体包括数据发送请求消息和数据,分配与数据发送请求消息一一对应的数据存储地址,依据数据存储地址存储第一数据结构体的数据,更新数据发送请求消息的数据存储地址和数据发送标志位,将更新后的数据发送请求消息放入消息队列;Host应用态进程轮询消息队列的消息,依据数据发送标志位获取待处理的数据发送请求消息,依据数据存储地址获取第一数据结构体的数据,更新数据发送请求消息的数据发送标志位。作为本专利技术的进一步改进,数据发送请求消息还包括建立连接应答方式标志位、数据标识标志位和数据容量标志位,Host应用态进程获取待处理的数据发送请求消息,依据数据发送请求消息的建立连接应答方式与数据共享空间建立握手连接,握手连接建立成功后,Host应用态进程依据数据存储地址获取第一数据结构体的数据。作为本专利技术的进一步改进,该方法还包括如下步骤:数据共享空间接收Host应用态进程发送的第二数据结构体,第二数据结构体包括数据接收请求消息和数据,分配与数据接收请求消息一一对应的数据存储地址,依据数据存储地址存储第二数据结构体的数据,更新数据接收请求消息的数据存储地址和数据接收标志位,将更新后的数据接收请求消息放入消息队列;Guest应用态进程轮询消息队列的消息,依据数据接收标志位获取待处理的数据接收请求消息,依据数据存储地址获取第二数据结构体的数据,更新数据接收请求消息的数据接收标志位。作为本专利技术的进一步改进,数据接收请求消息还包括建立连接应答方式标志位、数据标识标志位和数据容量标志位,Guest应用态进程获取待处理的数据接收请求消息,依据数据接收请求消息的建立连接应答方式与数据共享空间建立握手连接;握手连接建立成功后,Guest应用态进程依据数据存储地址获取第二数据结构体的数据。作为本专利技术的进一步改进,在qemu中添加pci设备并通过libvirt的透传接口和xml文件建立数据共享空间,并在虚拟机内核中添加pci驱动。作为本专利技术的进一步改进,通过在libvirt与qga中添加相应的接口建立数据共享空间,并将sdn分配的共享地址发送给虚拟机的qga。作为本专利技术的进一步改进,通过在qemu中添加设备建立数据共享空间,在guest内核设置相应的寄存器进行触发中断,将guest内核分配的共享空间地址发送给qemu和sdn。为实现上述目的,按照本专利技术的另一个方面,提供了一种云平台的数据通信系统,包括至少一个处理单元、以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述方法的步骤。为实现上述目的,按照本专利技术的另一个方面,提供了一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当上述程序在终端设备上运行时,使得上述终端设备执行上述方法的步骤。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:本专利技术的一种云平台的数据通信方法、系统及计算机可读介质,其通过包括消息队列和与数据存储地址对应的存储空间的创建数据共享空间,接收Guest应用态进程发送的第一数据结构体,分配与数据发送请求消息一一对应的数据存储地址,Host应用态进程轮询消息队列的消息,依据数据存储地址获取第一数据结构体的数据,将控制面与数据面都放在数据共享空间中,这样就可以使虚拟机与宿主机快速的进行网络通信,同时,采用轮询机制能够实现控制面与业务面快速的传输数据,进而采用摒弃虚拟机内核中virtio的方式进行通信,虚拟机和宿主机内都可以把接收、发送、处理数据放在用户空间,当然也可以将虚拟机接收处理的部分放在内核中。本专利技术的一种云平台的数据通信方法、系统及计算机可读介质,其可以通过多种方式实现数据共享空间的创建,在虚拟机侧可以将其放入内核中,采用内核的网络接口处理数据,也可以放入应用层中与现有的sdn进行整合,进行数据处理;在宿主机侧可以将其与ovs等现有的sdn技术进行整合,进而实现在一个虚拟机中可以实现多个有关共享内存的网络通信。附图说明图1是本专利技术实施例的一种云平台的数据通信方法的示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所本文档来自技高网
...

【技术保护点】
1.一种云平台的数据通信方法,其特征在于,包括如下步骤:/n创建数据共享空间,所述数据共享空间包括消息队列、数据存储地址和与数据存储地址一一对应的存储空间;/n所述数据共享空间接收Guest应用态进程发送的第一数据结构体,所述第一数据结构体包括数据发送请求消息和数据,分配与数据发送请求消息一一对应的数据存储地址,依据数据存储地址存储所述第一数据结构体的数据,更新数据发送请求消息的数据存储地址和数据发送标志位,将更新后的数据发送请求消息放入消息队列;/nHost应用态进程轮询消息队列的消息,依据数据发送标志位获取待处理的数据发送请求消息,依据数据存储地址获取所述第一数据结构体的数据,更新数据发送请求消息的数据发送标志位。/n

【技术特征摘要】
1.一种云平台的数据通信方法,其特征在于,包括如下步骤:
创建数据共享空间,所述数据共享空间包括消息队列、数据存储地址和与数据存储地址一一对应的存储空间;
所述数据共享空间接收Guest应用态进程发送的第一数据结构体,所述第一数据结构体包括数据发送请求消息和数据,分配与数据发送请求消息一一对应的数据存储地址,依据数据存储地址存储所述第一数据结构体的数据,更新数据发送请求消息的数据存储地址和数据发送标志位,将更新后的数据发送请求消息放入消息队列;
Host应用态进程轮询消息队列的消息,依据数据发送标志位获取待处理的数据发送请求消息,依据数据存储地址获取所述第一数据结构体的数据,更新数据发送请求消息的数据发送标志位。


2.根据权利要求1所述的一种云平台的数据通信方法,其特征在于,数据发送请求消息还包括建立连接应答方式标志位、数据标识标志位和数据容量标志位,Host应用态进程获取待处理的数据发送请求消息,依据数据发送请求消息的建立连接应答方式与数据共享空间建立握手连接,握手连接建立成功后,Host应用态进程依据数据存储地址获取第一数据结构体的数据。


3.根据权利要求1或2所述的一种云平台的数据通信方法,其特征在于,该方法还包括如下步骤:
数据共享空间接收Host应用态进程发送的第二数据结构体,所述第二数据结构体包括数据接收请求消息和数据,分配与数据接收请求消息一一对应的数据存储地址,依据数据存储地址存储所述第二数据结构体的数据,更新数据接收请求消息的数据存储地址和数据接收标志位,将更新后的数据接收请求消息放入消息队列;
Guest应用态进程轮询消息队列的消息,依据数据接收标志位获取待处理的数据接收请求消息,依据数据存...

【专利技术属性】
技术研发人员:许前坤肖丁段志伟
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1