CN109361693B - 虚拟设备通信方法和装置 - Google Patents

虚拟设备通信方法和装置 Download PDF

Info

Publication number
CN109361693B
CN109361693B CN201811393804.7A CN201811393804A CN109361693B CN 109361693 B CN109361693 B CN 109361693B CN 201811393804 A CN201811393804 A CN 201811393804A CN 109361693 B CN109361693 B CN 109361693B
Authority
CN
China
Prior art keywords
network card
virtual network
virtual
dpdk
queue
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.)
Active
Application number
CN201811393804.7A
Other languages
English (en)
Other versions
CN109361693A (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.)
Nanjing Zhongfu Information Technology Co Ltd
Original Assignee
Nanjing Zhongfu Information Technology Co Ltd
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 Nanjing Zhongfu Information Technology Co Ltd filed Critical Nanjing Zhongfu Information Technology Co Ltd
Priority to CN201811393804.7A priority Critical patent/CN109361693B/zh
Publication of CN109361693A publication Critical patent/CN109361693A/zh
Application granted granted Critical
Publication of CN109361693B publication Critical patent/CN109361693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种虚拟设备通信方法和装置,该虚拟设备通信方法包括:按照预设配置建立大页内存;调用dpdk‑master虚拟网卡驱动在大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建第一虚拟网卡的接收队列及发送队列;调用dpdk‑slave虚拟网卡驱动在大页内存中创建子虚拟设备的子虚拟网卡;利用dpdk函数将第一虚拟网卡的接收队列确定为子虚拟网卡的发送队列,第一虚拟网卡的发送队列确定为子虚拟网卡的接收队列。本发明的虚拟设备通信方法,通过使用大页内存,将虚拟设备发送的数据直接传输至大页内存,在接收该虚拟设备发送的数据时可以直接从大页内存中获取,从而无需进行***内核进行数据拷贝的过程,提高虚拟设备之间数据传输的效率。

Description

虚拟设备通信方法和装置
技术领域
本发明涉及虚拟网络领域,具体而言,涉及一种虚拟设备通信方法、装置、计算机设备和计算机存储介质。
背景技术
在虚拟网络中,虚拟设备之间通信一般使用socket通信(socket,套接字)。
虚拟设备利用socket通信发送数据时,会将数据拷贝到接收方虚拟设备的内核缓冲区中,当接收方虚拟设备接收数据时,需要在内核缓冲区中对数据再次进行拷贝。因此,现有的虚拟设备之间通信方法进行数据的收发时需要进行两次内核拷贝的过程,其传输效率较低。
发明内容
鉴于上述问题,本发明提供了一种虚拟设备通信方法、装置、计算机设备和计算机存储介质,以提高虚拟设备之间数据传输的效率。
为了实现上述目的,本发明采用如下的技术方案:
一种虚拟设备通信方法,包括:
按照预设配置建立大页内存;
调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列;
调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡;
利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述子虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述子虚拟网卡的接收队列。
优选地,所述的虚拟设备通信方法,还包括:
在创建所述主虚拟设备的第一虚拟网卡后,调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第二虚拟网卡;
利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述第二虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述第二虚拟网卡的接收队列;
在创建所述子虚拟设备的子虚拟网卡后,获取所述第二虚拟网卡的发送队列信息以及接收队列信息;
通过所述发送队列信息以及所述接收队列信息,将所述子虚拟网卡的发送队列与所述第二虚拟网卡的发送队列进行绑定,所述子虚拟网卡的接收队列与所述第二虚拟网卡的接收队列进行绑定。
优选地,述“调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列”包括:
添加dpdk-master端口,通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-master虚拟网卡驱动;
利用所述dpdk-master虚拟网卡驱动在所述大页内存中申请存放所述第一虚拟网卡的空间;
在所述大页内存中创建所述第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,所述第一虚拟网卡为dpdk-master类型网卡。
优选地,所述“调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡”包括:
通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-slave虚拟网卡驱动;
利用所述dpdk-slave虚拟网卡驱动在所述大页内存中申请存放所述子虚拟网卡的空间;
在所述大页内存中创建所述子虚拟网卡。
本发明还提供一种虚拟设备通信装置,包括:
内存创建模块,用于按照预设配置建立大页内存;
第一网卡创建模块,用于调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列;
子网卡创建模块,用于调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡;
通信队列设置模块,用于利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述子虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述子虚拟网卡的接收队列。
优选地,所述的虚拟设备通信装置,还包括:
第二网卡创建模块,用于在创建所述主虚拟设备的第一虚拟网卡后,调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第二虚拟网卡;
主设备配置模块,用于利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述第二虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述第二虚拟网卡的接收队列;
队列信息获取模块,用于在创建所述子虚拟设备的子虚拟网卡后,获取所述第二虚拟网卡的发送队列信息以及接收队列信息;
通信队列绑定模块,用于通过所述发送队列信息以及所述接收队列信息,将所述子虚拟网卡的发送队列与所述第二虚拟网卡的发送队列进行绑定,所述子虚拟网卡的接收队列与所述第二虚拟网卡的接收队列进行绑定。
优选地,所述第一网卡创建模块包括:
网卡驱动获取单元,用于添加dpdk-master端口,通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-master虚拟网卡驱动;
内存空间申请单元,用于利用所述dpdk-master虚拟网卡驱动在所述大页内存中申请存放所述第一虚拟网卡的空间;
网卡创建单元,用于在所述大页内存中创建所述第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,所述第一虚拟网卡为dpdk-master类型网卡。
优选地,所述子网卡创建模块包括:
网卡驱动获取单元,用于通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-slave虚拟网卡驱动;
内存空间申请单元,用于利用所述dpdk-slave虚拟网卡驱动在所述大页内存中申请存放所述子虚拟网卡的空间;
网卡创建单元,用于在所述大页内存中创建所述子虚拟网卡。
本发明还提供一种计算机设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述计算机设备执行所述的虚拟设备通信方法。
本发明还一种计算机存储介质,其存储有所述的计算机设备中所使用的计算机程序。
本发明提供一种虚拟设备通信方法,该虚拟设备通信方法包括:按照预设配置建立大页内存;调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列;调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡;利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述子虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述子虚拟网卡的接收队列。本发明的虚拟设备通信方法,通过使用大页内存,将虚拟设备发送的数据直接传输至大页内存,在接收该虚拟设备发送的数据时可以直接从大页内存中获取,从而无需进行虚拟设备的内核数据拷贝的过程,提高虚拟设备之间数据传输的效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明范围的限定。
图1是本发明实施例1提供的一种虚拟设备通信方法的流程图;
图2是本发明实施例1提供的一种大页内存中构建的网卡的结构示意图;
图3是本发明实施例2提供的一种虚拟设备通信方法的流程图;
图4是本发明实施例2提供的一种大页内存中构建的网卡的结构示意图;
图5是本发明实施例3提供的一种虚拟设备通信方法的创建第一虚拟网卡的流程图;
图6是本发明实施例4提供的一种虚拟设备通信方法的创建子虚拟网卡的流程图;
图7是本发明实施例5提供的一种虚拟设备通信装置的结构示意图;
图8是本发明实施例5提供的一种虚拟设备通信装置的第一网卡创建模块的结构示意图;
图9是本发明实施例5提供的一种虚拟设备通信装置的子网卡创建模块的结构示意图;
图10是本发明实施例6提供的一种虚拟设备通信装置的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1是本发明实施例1提供的一种虚拟设备通信方法的流程图,该方法包括如下步骤:
步骤S11:按照预设配置建立大页内存。
本发明实施例中,上述虚拟设备,也即虚拟网络中的设备,例如包括有虚拟主机、虚拟交换机以及虚拟路由器等,该虚拟设备可以搭建在在计算机设备中,例如可以搭建在服务器中,该服务器可以设置有多个虚拟机、交换机以及路由器,形成虚拟网络。
本发明实施例中,该大页内存,即在计算机设备***中划分出来的内存,将该大页内存确定为虚拟设备的内存有助于虚拟设备的管理,通过设置大页内存可以为***中指定的进程预留部分内存,也即预先利用该大页内存为指定的进程占用存储器中的空间,使这些被占用的空间不会被其他进程使用。其中,该大页内存可占用的内存空间为2MB~1GB,在建立大页内存时可以按照进程所需要的内存空间进行相应预设配置,该预设配置可以由工作人员来决定,这里不做限定。该大页内存中可存放虚拟设备之间的交互进程,例如虚拟设备端口之间的数据传输等进程,这里不做限定。
步骤S12:调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列。
本发明实施例中,该主虚拟设备,也即虚拟网络中进行数据转发的设备,例如可以是虚拟交换机以及虚拟路由器等,该主虚拟设备可以连接有多个子虚拟设备,通过端口接收子虚拟设备的数据,并进行转发。例如,在上述主虚拟设备为虚拟交换机时,可以在该虚拟交换机中添加dpdk库(dpdk,Data Plane Development Kit,数据平面开发套件),通过该dpdk库在该虚拟交换机上建立dpdk-master类型的端口。建立好的dpdk-master类型的端口可以通过调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡。在建立好第一虚拟网卡后,还需利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,该接收队列可以直接获取该大页内存中的数据,该发送队列可以将数据直接发送至该大页内存中,无需***内核对数据的拷贝。
步骤S13:调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡。
本发明实施例中,在同一大页内存中,可以创建与主虚拟设备通信的子虚拟设备的子虚拟网卡,从而使主虚拟设备与该子虚拟设备的通信进程在该大页内存中进行。其中,上述创建的第一虚拟网卡为dpdk-master类型网卡,而该子虚拟网卡为dpdk-slave类型网卡,仅在已创建有dpdk-master类型网卡的大页内存中才可创建该dpdk-slave类型网卡。
步骤S14:利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述子虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述子虚拟网卡的接收队列。
本发明实施例中,在该大页内存中创建完上述第一虚拟网卡以及子虚拟网卡后,再利用dpdk函数将第一虚拟网卡的接收队列确定为子虚拟网卡的发送队列,则该子虚拟设备利用子虚拟网卡发送数据时,该数据则从发送队列直接传输至大页内存中,主虚拟设备则可利用接收队列从大页内存中直接获取子虚拟设备发送的数据,数据传输过程不涉及内核进行数据的拷贝。同样地,利用dpdk函数将第一虚拟网卡的发送队列确定为子虚拟网卡的接收队列,该主虚拟设备发送的数据直接传输至大页内存中,子虚拟设备则可在大页内存中通过接收队列直接获取主虚拟设备传输的数据,从而提高数据传输效率。
本发明实施例中,通过上述方法在大页内存中构建的网卡如图2所示,其中,该大页内存200中包括有第一虚拟网卡210以及子虚拟网卡220,该第一虚拟网卡包括接收队列211以及发送队列212,该子虚拟网卡220包括接收队列221以及发送队列222。
实施例2
图3是本发明实施例2提供的一种虚拟设备通信方法的流程图,该方法包括如下步骤:
步骤S31:按照预设配置建立大页内存。
此步骤与上述步骤S11一致,在此不再赘述。
步骤S32:调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列。
此步骤与上述步骤S12一致,在此不再赘述。
步骤S33:在创建所述主虚拟设备的第一虚拟网卡后,调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第二虚拟网卡。
本发明实施例中,在建立主虚拟设备的第一虚拟网卡后,还可以建立虚拟设备的第二虚拟网卡,其中,该第二虚拟网卡同样使用dpdk-master虚拟网卡驱动在同一大页内存中进行创建,并且该第二虚拟网卡为dpdk-master类型网卡。
步骤S34:利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述第二虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述第二虚拟网卡的接收队列。
本发明实施例中,在主虚拟设备中,例如在虚拟交换机中,可以利用dpdk函数将第一虚拟网卡的接收队列确定为所述第二虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述第二虚拟网卡的接收队列,则可将该第二虚拟网卡确定为一个公共虚拟网卡,利用该第二虚拟网卡的接收队列以及发送队列可以进行多个子虚拟设备网卡的连接。
步骤S35:调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡。
此步骤与上述步骤S13一致,在此不再赘述。
步骤S36:在创建所述子虚拟设备的子虚拟网卡后,获取所述第二虚拟网卡的发送队列信息以及接收队列信息。
本发明实施例中,在大页内存中创建该子虚拟网卡后,还可以在大页内存中获取第二虚拟网卡的发送队列信息以及接收队列信息。其中,该获取的过程可以通过算法或应用程序来实现,例如可以在计算机设备中设置有应用程序,当有子虚拟设备需要连接主虚拟设备时,在该大页内存中建立子虚拟设备的子虚拟网卡后可以通过应用程序获取大页内存中已有的网卡的队列信息,并筛选出确定为公共网卡的第二虚拟网卡的队列信息。
步骤S37:通过所述发送队列信息以及所述接收队列信息,将所述子虚拟网卡的发送队列与所述第二虚拟网卡的发送队列进行绑定,所述子虚拟网卡的接收队列与所述第二虚拟网卡的接收队列进行绑定。
本发明实施例中,在大页内存中新建的子虚拟网卡的发送队列和接收队列分别与第二虚拟网卡的发送队列和接收队列绑定,也即,该子虚拟网卡通过队列的绑定与第二虚拟网卡进行数据的传输,该第二虚拟网卡确定为公共网卡,还可以与其他的子虚拟网卡进行连接。
本发明实施例中,通过上述方法在大页内存中构建的网卡如图4所示,其中,该大页内存400中包括有第一虚拟网卡410、第二虚拟网卡420以及子虚拟网卡430,该第一虚拟网卡包括接收队列411以及发送队列412,该第二虚拟网卡420包括接收队列421以及发送队列422,该子虚拟网卡430包括接收队列431以及发送队列432。
实施例3
图5是本发明实施例3提供的一种虚拟设备通信方法的创建第一虚拟网卡的流程图,包括如下步骤:
步骤S51:添加dpdk-master端口,通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-master虚拟网卡驱动。
本发明实施例中,在计算机设备中创建主虚拟设备后,可以为该主虚拟设备添加dpdk-master端口,并利用dpdk的虚拟网卡总线获取该端口建立虚拟网卡所需要的dpdk-master虚拟网卡驱动。其中,该获取虚拟网卡驱动的过程可以利用应用程序来实现,这里不做限定。
步骤S52:利用所述dpdk-master虚拟网卡驱动在所述大页内存中申请存放所述第一虚拟网卡的空间。
本发明实施例中,在获取dpdk-master虚拟网卡驱动后,该计算机设备可以利用该dpdk-master虚拟网卡驱动在大页内存中申请第一虚拟网卡的存放空间,其中,该存放空间的大小可以由建立虚拟设备的工作人员来决定。
步骤S53:在所述大页内存中创建所述第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,所述第一虚拟网卡为dpdk-master类型网卡。
本发明实施例中,在大页内存申请的存放空间中创建主虚拟设备的第一虚拟网卡,该创建过程可以通过应用程序来实现,例如在计算机设备中设置有编译程序,利用编译程序创建该第一虚拟网卡。该第一虚拟网卡通过dpdk-master虚拟网卡驱动创建,为dpdk-master类型网卡。
实施例4
图6是本发明实施例4提供的一种虚拟设备通信方法的创建子虚拟网卡的流程图,包括如下步骤:
步骤S61:通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-slave虚拟网卡驱动。
步骤S62:利用所述dpdk-slave虚拟网卡驱动在所述大页内存中申请存放所述子虚拟网卡的空间。
步骤S63:在所述大页内存中创建所述子虚拟网卡。
本发明实施例中,子虚拟网卡的创建可以先通过虚拟网卡总线获取dpdk-slave虚拟网卡驱动,然后利用dpdk-slave虚拟网卡驱动在大页内存中申请子虚拟网卡的存放空间,再进行该子虚拟网卡的创建。其中,上述创建子虚拟网卡的过程可以利用应用程序来实现,这里不做限定。
实施例5
图7是本发明实施例5提供的一种虚拟设备通信装置的结构示意图。
该虚拟设备通信装置700包括:
内存创建模块710,用于按照预设配置建立大页内存。
第一网卡创建模块720,用于调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列。
子网卡创建模块730,用于调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡。
通信队列设置模块740,用于利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述子虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述子虚拟网卡的接收队列。
如图8所示,该第一网卡创建模块720包括:
网卡驱动获取单元721,用于添加dpdk-master端口,通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-master虚拟网卡驱动.
内存空间申请单元722,用于利用所述dpdk-master虚拟网卡驱动在所述大页内存中申请存放所述第一虚拟网卡的空间。
网卡创建单元723,用于在所述大页内存中创建所述第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,所述第一虚拟网卡为dpdk-master类型网卡。
如图9所示,该子网卡创建模块730包括:
网卡驱动获取单元731,用于通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-slave虚拟网卡驱动。
内存空间申请单元732,用于利用所述dpdk-slave虚拟网卡驱动在所述大页内存中申请存放所述子虚拟网卡的空间。
网卡创建单元733,用于在所述大页内存中创建所述子虚拟网卡。
本发明实施例中,上述各个模块及单元更加详细的功能描述可以参考前述实施例中相应部分的内容,在此不再赘述。
实施例6
图10是本发明实施例6提供的一种虚拟设备通信装置的结构示意图。
该虚拟设备通信装置1000包括:
内存创建模块1010,用于按照预设配置建立大页内存。
第一网卡创建模块1020,用于调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列。
第二网卡创建模块1030,用于在创建所述主虚拟设备的第一虚拟网卡后,调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第二虚拟网卡。
主设备配置模块1040,用于利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述第二虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述第二虚拟网卡的接收队列。
子网卡创建模块1050,用于调用dpdk-slave虚拟网卡驱动在所述大页内存中创建子虚拟设备的子虚拟网卡。
队列信息获取模块1060,用于在创建所述子虚拟设备的子虚拟网卡后,获取所述第二虚拟网卡的发送队列信息以及接收队列信息。
通信队列绑定模块1070,用于通过所述发送队列信息以及所述接收队列信息,将所述子虚拟网卡的发送队列与所述第二虚拟网卡的发送队列进行绑定,所述子虚拟网卡的接收队列与所述第二虚拟网卡的接收队列进行绑定。
本发明实施例中,上述各个模块更加详细的功能描述可以参考前述实施例中相应部分的内容,在此不再赘述。
此外,本发明还提供了一种计算机设备,该计算机设备可以包括智能电话、平板电脑、车载电脑、智能穿戴设备等。该计算机设备包括存储器和处理器,存储器可用于存储计算机程序,处理器通过运行所述计算机程序,从而使计算机设备执行上述方法或者上述虚拟设备通信装置中的各个模块的功能。
存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本实施例还提供了一种计算机存储介质,用于储存上述计算机设备中使用的计算机程序。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.一种虚拟设备通信方法,其特征在于,包括:
按照预设配置建立大页内存;
添加dpdk-master端口,通过dpdk的虚拟网卡总线遍历网卡驱动,获得dpdk-master虚拟网卡驱动;
利用所述dpdk-master虚拟网卡驱动在所述大页内存中申请存放主虚拟设备的第一虚拟网卡的空间;
在所述大页内存中创建所述第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,所述第一虚拟网卡为dpdk-master类型网卡;
通过dpdk的虚拟网卡总线遍历网卡驱动,获得dpdk-slave虚拟网卡驱动;
利用所述dpdk-slave虚拟网卡驱动在所述大页内存中申请存放子虚拟设备的子虚拟网卡的空间;
在所述大页内存中创建所述子虚拟网卡;
利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述子虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述子虚拟网卡的接收队列。
2.根据权利要求1所述的虚拟设备通信方法,其特征在于,还包括:
在创建所述主虚拟设备的第一虚拟网卡后,调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第二虚拟网卡;
利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述第二虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述第二虚拟网卡的接收队列;
在创建所述子虚拟设备的子虚拟网卡后,获取所述第二虚拟网卡的发送队列信息以及接收队列信息;
通过所述发送队列信息以及所述接收队列信息,将所述子虚拟网卡的发送队列与所述第二虚拟网卡的发送队列进行绑定,所述子虚拟网卡的接收队列与所述第二虚拟网卡的接收队列进行绑定。
3.一种虚拟设备通信装置,其特征在于,包括:
内存创建模块,用于按照预设配置建立大页内存;
第一网卡创建模块,用于添加dpdk-master端口,通过dpdk的虚拟网卡总线遍历网卡驱动,获得dpdk-master虚拟网卡驱动,利用所述dpdk-master虚拟网卡驱动在所述大页内存中申请存放主虚拟设备的第一虚拟网卡的空间,在所述大页内存中创建所述第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,所述第一虚拟网卡为dpdk-master类型网卡;
子网卡创建模块,用于通过dpdk的虚拟网卡总线遍历网卡驱动,获得dpdk-slave虚拟网卡驱动,利用所述dpdk-slave虚拟网卡驱动在所述大页内存中申请存放子虚拟设备的子虚拟网卡的空间,在所述大页内存中创建所述子虚拟网卡;
通信队列设置模块,用于利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述子虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述子虚拟网卡的接收队列。
4.根据权利要求3所述的虚拟设备通信装置,其特征在于,还包括:
第二网卡创建模块,用于在创建所述主虚拟设备的第一虚拟网卡后,调用dpdk-master虚拟网卡驱动在所述大页内存中创建主虚拟设备的第二虚拟网卡;
主设备配置模块,用于利用dpdk函数将所述第一虚拟网卡的接收队列确定为所述第二虚拟网卡的发送队列,所述第一虚拟网卡的发送队列确定为所述第二虚拟网卡的接收队列;
队列信息获取模块,用于在创建所述子虚拟设备的子虚拟网卡后,获取所述第二虚拟网卡的发送队列信息以及接收队列信息;
通信队列绑定模块,用于通过所述发送队列信息以及所述接收队列信息,将所述子虚拟网卡的发送队列与所述第二虚拟网卡的发送队列进行绑定,所述子虚拟网卡的接收队列与所述第二虚拟网卡的接收队列进行绑定。
5.根据权利要求4所述的虚拟设备通信装置,其特征在于,所述第一网卡创建模块包括:
网卡驱动获取单元,用于添加dpdk-master端口,通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-master虚拟网卡驱动;
内存空间申请单元,用于利用所述dpdk-master虚拟网卡驱动在所述大页内存中申请存放所述第一虚拟网卡的空间;
网卡创建单元,用于在所述大页内存中创建所述第一虚拟网卡,并利用dpdk函数创建所述第一虚拟网卡的接收队列及发送队列,其中,所述第一虚拟网卡为dpdk-master类型网卡。
6.根据权利要求4所述的虚拟设备通信装置,其特征在于,所述子网卡创建模块包括:
网卡驱动获取单元,用于通过dpdk的虚拟网卡总线遍历网卡驱动,获得所述dpdk-slave虚拟网卡驱动;
内存空间申请单元,用于利用所述dpdk-slave虚拟网卡驱动在所述大页内存中申请存放所述子虚拟网卡的空间;
网卡创建单元,用于在所述大页内存中创建所述子虚拟网卡。
7.一种计算机设备,其特征在于,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述计算机设备执行根据权利要求1至2中任一项所述的虚拟设备通信方法。
8.一种计算机存储介质,其特征在于,其存储有权利要求7所述的计算机设备中所使用的计算机程序。
CN201811393804.7A 2018-11-21 2018-11-21 虚拟设备通信方法和装置 Active CN109361693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811393804.7A CN109361693B (zh) 2018-11-21 2018-11-21 虚拟设备通信方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811393804.7A CN109361693B (zh) 2018-11-21 2018-11-21 虚拟设备通信方法和装置

Publications (2)

Publication Number Publication Date
CN109361693A CN109361693A (zh) 2019-02-19
CN109361693B true CN109361693B (zh) 2020-11-24

Family

ID=65332441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811393804.7A Active CN109361693B (zh) 2018-11-21 2018-11-21 虚拟设备通信方法和装置

Country Status (1)

Country Link
CN (1) CN109361693B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111934894B (zh) * 2019-05-13 2022-08-12 烽火通信科技股份有限公司 基于dpdk管理无线网络接口的方法及***
CN112925581A (zh) * 2021-02-22 2021-06-08 百果园技术(新加坡)有限公司 Dpdk容器的启动方法、装置及电子设备
CN113849277B (zh) * 2021-12-02 2022-02-18 飞腾信息技术有限公司 网卡测试方法、装置、计算机设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859263A (zh) * 2010-06-12 2010-10-13 中国人民解放军国防科学技术大学 一种支持在线迁移的虚拟机间快速通信方法
CN103559075A (zh) * 2013-10-30 2014-02-05 华为技术有限公司 一种数据传输方法、装置和***及内存装置
CN107145399A (zh) * 2017-04-22 2017-09-08 华为技术有限公司 一种共享内存管理方法及共享内存管理设备
CN107294869A (zh) * 2017-06-22 2017-10-24 郑州云海信息技术有限公司 一种虚拟网卡报文抓取的方法及***
EP3270291A2 (en) * 2016-06-20 2018-01-17 Stratus Technologies Bermuda Ltd. Method and apparatus for performing checkpointing on a network device
CN108199982A (zh) * 2018-01-03 2018-06-22 腾讯科技(深圳)有限公司 报文处理方法、装置、存储介质和计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10721154B2 (en) * 2015-06-12 2020-07-21 At&T Intellectual Property I, L.P. Virtual probes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859263A (zh) * 2010-06-12 2010-10-13 中国人民解放军国防科学技术大学 一种支持在线迁移的虚拟机间快速通信方法
CN103559075A (zh) * 2013-10-30 2014-02-05 华为技术有限公司 一种数据传输方法、装置和***及内存装置
EP3270291A2 (en) * 2016-06-20 2018-01-17 Stratus Technologies Bermuda Ltd. Method and apparatus for performing checkpointing on a network device
CN107145399A (zh) * 2017-04-22 2017-09-08 华为技术有限公司 一种共享内存管理方法及共享内存管理设备
CN107294869A (zh) * 2017-06-22 2017-10-24 郑州云海信息技术有限公司 一种虚拟网卡报文抓取的方法及***
CN108199982A (zh) * 2018-01-03 2018-06-22 腾讯科技(深圳)有限公司 报文处理方法、装置、存储介质和计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DPDK原理概述;Felven;《https://blog.csdn.net/zhaoxinfan/article/details/78408945》;20171031;全文 *
网络功能虚拟化平台研究;郭帅;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180915;全文 *

Also Published As

Publication number Publication date
CN109361693A (zh) 2019-02-19

Similar Documents

Publication Publication Date Title
CN109361693B (zh) 虚拟设备通信方法和装置
CN109067877B (zh) 一种云计算平台部署的控制方法、服务器及存储介质
CN111934918A (zh) 对同一容器集群内的容器实例的网络隔离方法和装置
CN109634720B (zh) 一种多虚拟机共享fpga板卡的方法、***及装置
CN102388357B (zh) 访问存储设备的方法及***
CN111163130A (zh) 一种网络服务***及其数据传输方法
CN104919762B (zh) 软件定义网络中的控制方法,控制设备和处理器
CN107463339B (zh) 一种nas存储***
CN105337750A (zh) 光纤通道存储区域网络配置方法和装置
CN110213147B (zh) 一种云网络互通方法、装置、存储介质及终端设备
CN110312266B (zh) 终端的多***实现wifi通信的方法和装置
US20170180468A1 (en) Method, electronic device and non-transitory computer-readable storage medium for connecting P2P network node
CN104092661A (zh) 虚拟机串口的通信方法及装置
CN110753093B (zh) 云计算***中设备的管理方法和装置
CN108874699B (zh) 多***使用mtp功能的方法、装置及电子设备
CN109005068B (zh) 一种集群虚拟机qos的配置方法
CN114911421B (zh) 基于csi插件的数据存储方法、***、装置及存储介质
CN103795856A (zh) 一种信息处理方法及电子设备
CN108279855A (zh) 一种读写存储设备的方法
CN107454021B (zh) 一种通信方法及装置
CN110971696B (zh) 一种实现虚拟电子卡通讯的***和方法
CN109739615B (zh) 一种虚拟硬盘的映射方法、设备和云计算平台
CN111078135B (zh) 数据处理环境中的虚拟节点的增强数据存储
CN105939214B (zh) 一种实现网卡功能的方法和装置
CN111600827B (zh) 通信方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant