基于虚拟绑定网卡的通信方法及装置与流程

文档序号:30307887发布日期:2022-06-05 07:45阅读:182来源:国知局
基于虚拟绑定网卡的通信方法及装置与流程

1.本技术涉及虚拟网络技术领域,特别涉及一种基于虚拟绑定网卡的通信方法及装置。


背景技术:

2.在虚拟化场景里,当虚拟机或容器既有高性需求,又有高可用需求时,通常基于单输入输出虚拟化(sr-iov)技术,在多个物理网卡上分别虚拟出一个虚拟网卡,将多个虚拟网卡透传到虚拟机,虚拟机上设置绑定模块,通过绑定模块绑定多个虚拟网卡。
3.如此,虽然能够满足虚拟机或容器高性能和高可用的需求。但是由于绑定模块设置在虚拟机或容器上,因此通常需要虚拟机或容器的用户自行基于单输入输出虚拟化(sr-iov)技术进行虚拟网卡的绑定。而绑定操作通常需要具有较为专业的网络基础知识且对底层网络拓扑需要具有较为深刻认识的操作人员才能够完成。显然,这会显著的增加了用户对虚拟机和容器的使用难度,不利于提高用户体验,也不利于虚拟机和容器服务的推广。此外,由于需要虚拟机或容器上运行的绑定模块来调配多个虚拟网卡和多个物理网卡运行,绑定模块运行过程中会占用虚拟机或容器的资源。


技术实现要素:

4.本技术提供了一种基于虚拟绑定网卡的通信方法及装置,本技术实施例采用的技术方案如下:
5.一种基于虚拟绑定网卡的通信方法,包括:
6.响应于虚拟机生成通信报文,调用虚拟绑定网卡的驱动程序;其中,所述虚拟绑定网卡基于预置通信模式与多个物理网卡连接,且所述虚拟绑定网卡的收发队列与所述物理网卡的收发队列之间具有与所述预置通信模式相对应的第一映射关系;
7.通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列;
8.通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理。
9.在一些实施例中,所述通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,包括:
10.通过所述虚拟绑定网卡的驱动程序,确定所述虚拟绑定网卡与所述物理网卡之间的所述预置通信模式,以及与所述预置通信模式相对应的所述第一映射关系;
11.通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列。
12.在一些实施例中,所述通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,还包括:
13.通过所述虚拟绑定网卡的驱动程序,确定与所述预置通信模式相对应的第二映射
关系,其中,所述第二映射关系包括所述虚拟绑定网卡的中断寄存器与一个或多个所述物理网卡的中断寄存器之间的映射关系;
14.基于所述第二映射关系,向该一个或多个所述物理网卡的中断寄存器中添加中断标识。
15.在一些实施例中,所述通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理,包括:
16.响应于识别到所述中断标识,调取相对应的所述物理网卡的驱动程序;
17.通过所述物理网卡的驱动程序,确定所述物理网卡与所述虚拟绑定网卡之间的所述预置通信模式,以及所述预置通信模式下的报文处理方式;
18.基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理。
19.在一些实施例中,所述预置通信模式包括主备模式,在所述主备模式下,所述第一映射关系包括所述虚拟绑定网卡的收发队列与作为主网卡的所述物理网卡的收发队列之间的映射关系;
20.所述通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,包括:
21.在所述主备模式下,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至所述主网卡的收发队列中;
22.相应的,所述通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理,包括:
23.通过所述主网卡的驱动程序,控制所述主网卡对其收发队列中的所述通信报文进行发送。
24.在一些实施例中,所述预置通信模式包括广播模式,在所述广播模式下,所述第一映射关系包括所述虚拟绑定网卡的收发队列与多个所述物理网卡的收发队列之间的映射关系;
25.所述通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,包括:
26.在所述广播模式下,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文分别添加至多个所述物理网卡的收发队列中;
27.相应的,所述通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理,包括:
28.通过多个所述物理网卡的驱动程序,分别控制各所述物理网卡对其各自收发队列中的所述通信报文进行发送。
29.在一些实施例中,所述预置通信模式包括负载均衡模式,在所述负载均衡模式下,所述第一映射关系包括所述虚拟绑定网卡的收发队列与多个所述物理网卡的收发队列之间的映射关系;
30.所述通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,包括:
31.在所述负载均衡模式下,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关
系,将所述通信报文分别添加至多个所述物理网卡的收发队列中;
32.相应的,所述通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理,包括:
33.各所述物理网卡的驱动程序分别基于所述负载均衡模式下的负载均衡规则,对其各自的收发队列中的所述通信报文进行预处理;
34.各所述物理网卡的驱动程序分别根据预处理结果,确定是否对控制所述物理网卡对其收发队列中的所述通信报文进行发送。
35.在一些实施例中,所述物理网卡虚拟出一个或多个虚拟网卡,所述第一映射关系包括所述虚拟绑定网卡的收发队列与所述物理网卡所虚拟出的一个虚拟网卡的收发队列之间的映射关系。
36.在一些实施例中,所述方法还包括:
37.获取为所述物理网卡的收发队列分配的地址空间,以及用于标识所述预置通信模式的通信标识;
38.基于所述地址空间和所述通信标识,创建所述虚拟绑定网卡。
39.一种基于虚拟绑定网卡的通信装置,包括:
40.虚拟机,其具有虚拟网口,所述虚拟机通过所述虚拟网口与虚拟绑定网卡连接,所述虚拟机能够通过所述虚拟网口将所生成通信报文发送至所述虚拟绑定网卡;
41.虚拟绑定网卡,其分别与多个物理网卡连接,所述虚拟绑定网卡和多个所述物理网卡之间配置有预置通信模式,所述虚拟绑定网卡的收发队列与所述物理网卡的收发队列之间具有与所述预置通信模式相对应的第一映射关系,所述虚拟绑定网卡能够基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列;
42.多个物理网卡,其均具有第一桥接模块和第二桥接模块,所述第一桥接模块分别与所述虚拟绑定网卡和所述第二桥接模块连接;所述第一桥接模块用于确定所述预置通信模式下的报文处理方式;所述第二桥接模块用于基于所确定的报文处理方式,对所述物理网卡的收发队列中的所述通信报文进行处理。
43.本技术实施例的基于虚拟绑定网卡的通信方法,虚拟机只需要设置一个虚拟网口与该虚拟绑定网卡连接,就能够利用多个物理网卡进行通信报文的收发,虚拟机自身不需要设置绑定模块,也不需要设置多个虚拟网口,更不需要用户自行基于单输入输出虚拟化(sr-iov)技术执行复杂的绑定操作,不仅简化了用户操作,降低了用户使用难度,而且简化了虚拟机自身的网络拓扑。此外,由于不需要虚拟机判断各个物理网卡是否需要执行通信报文的收发操作,也无需设置例如虚拟交换机等虚拟设备来判断各个物理网卡是否需要执行通信报文的收发操作,在满足高性能和高可用需求的基础上,还能够减少对虚拟机的资源的占用量。
附图说明
44.图1为本技术实施例的基于虚拟绑定网卡的通信方法的流程图;
45.图2为本技术实施例的基于虚拟绑定网卡的通信方法的步骤s120的流程图;
46.图3为本技术实施例的基于虚拟绑定网卡的通信方法的步骤s130的流程图;
47.图4为物理网卡通过虚拟绑定网卡与多个虚拟机配合连接示意图;
48.图5为第一映射关系的一种实施例的示意图;
49.图6为第一映射关系的另一种实施例的示意图;
50.图7为本技术实施例的基于虚拟绑定网卡的通信装置的结构框图。
具体实施方式
51.此处参考附图描述本技术的各种方案以及特征。
52.应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本技术的范围和精神内的其他修改。
53.包含在说明书中并构成说明书的一部分的附图示出了本技术的实施例,并且与上面给出的对本技术的大致描述以及下面给出的对实施例的详细描述一起用于解释本技术的原理。
54.通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本技术的这些和其它特性将会变得显而易见。
55.还应当理解,尽管已经参照一些具体实例对本技术进行了描述,但本领域技术人员能够确定地实现本技术的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
56.当结合附图时,鉴于以下详细说明,本技术的上述和其他方面、特征和优势将变得更为显而易见。
57.此后参照附图描述本技术的具体实施例;然而,应当理解,所申请的实施例仅仅是本技术的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本技术模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本技术。
58.本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本技术的相同或不同实施例中的一个或多个。
59.本技术实施例提供了一种基于虚拟绑定网卡的通信方法,具体可包括如下步骤:
60.响应于虚拟机生成通信报文,调用虚拟绑定网卡的驱动程序;其中,所述虚拟绑定网卡基于预置通信模式与多个物理网卡连接,且所述虚拟绑定网卡的收发队列与所述物理网卡的收发队列之间具有与所述预置通信模式相对应的第一映射关系;
61.通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列;
62.通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理。
63.多个物理网卡基于预设通信模式与虚拟绑定网卡绑定,不仅虚拟绑定网卡的收发队列与一个或多个物理网卡的收发队列之间具有与该预设通信模式相对应的第一映射关系,而且物理网卡具有与该预设通信模式相对应的报文处理方式。在需要发送通信报文时,虚拟机可调用虚拟机上安装的虚拟绑定网卡的驱动程序,通过虚拟绑定网卡的驱动程序基于第一映射关系,将通信报文添加至一个或多个物理网卡的收发队列中,各个物理网卡分
别基于约定的报文处理方式,对各自收发队列中的报文进行处理,例如,选择发送该通信报文或者不发送该通信报文。
64.本技术实施例的基于虚拟绑定网卡的通信方法,虚拟机只需要设置一个虚拟网口与该虚拟绑定网卡连接,就能够利用多个物理网卡进行通信报文的收发,虚拟机自身不需要设置绑定模块,也不需要设置多个虚拟网口,更不需要用户自行基于单输入输出虚拟化(sr-iov)技术执行复杂的绑定操作,不仅简化了用户操作,降低了用户使用难度,而且简化了虚拟机自身的网络拓扑。此外,由于不需要虚拟机判断各个物理网卡是否需要执行通信报文的收发操作,也无需设置例如虚拟交换机等虚拟设备来判断各个物理网卡是否需要执行通信报文的收发操作,在满足高性能和高可用需求的基础上,还能够减少对虚拟机的资源的占用量。
65.以下结合具体实施例和附图对本技术实施例的基于虚拟绑定网卡的通信方法的步骤及原理进行详细说明。
66.本技术实施例的基于虚拟绑定网卡的通信方法,可以应用在各种能够支持虚拟机和多个物理网卡的电子设备或系统上,例如,单个服务器、多个服务器组成的分布式服务器集群、云服务器等等,此处不对该方法所应用的设备类型或系统类型进行限定。
67.图1为本技术实施例的基于虚拟绑定网卡的通信方法的流程图,参见图1所示,本技术实施例的基于虚拟绑定网卡的通信方法具体可包括如下步骤。
68.s110,响应于虚拟机生成通信报文,调用虚拟绑定网卡的驱动程序。
69.可选的,该虚拟绑定网卡可以是由物理网卡的驱动程序所虚拟出的虚拟网卡设备。该虚拟绑定网卡基于预置通信模式与多个物理网卡连接,该预设通信模式包括但不限于主备模式、广播模式和负载均衡模式等等。该虚拟绑定网卡的收发队列与一个或多个物理网卡的收发队列之间具有与所述预置通信模式相对应的第一映射关系。
70.例如,在主备模式下,虚拟绑定网卡的收发队列可与一个或多个作为主网卡的物理网卡的收发队列之间具有映射关系。在广播模式和负载模式下,虚拟绑定网卡的收发队列可与多个物理网卡的收发队列之间具有映射关系。
71.虚拟机需要发送通信报文时,可调用虚拟机上安装的虚拟绑定网卡的驱动程序。例如,在虚拟机上的应用程序需要发送通信报文时,可通过该应用程序调用虚拟绑定网卡的驱动程序。
72.s120,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列。
73.可选的,虚拟绑定网卡的驱动程序可响应于被调用,确定预设通信模式,以及与该预设通信模式相对应的第一映射关系。继而,基于该第一映射关系,将通信报文添加至一个或多个物理网卡的收发队列中。
74.可选的,第一映射关系可包括虚拟绑定网卡的收发队列的地址空间与一个或多个物理网卡的收发队列的地址空间之间的映射关系。例如,在创建虚拟绑定网卡时,可将物理网卡的收发队列的地址空间添加到虚拟绑定网卡的配置空间中,作为该虚拟绑定网卡的收发队列的地址空间。如此,虚拟绑定网卡的收发队列的地址空间实际即为物理网卡的收发队列的地址空间。基于该虚拟绑定网卡的地址空间向其收发队列中添加通信报文,实际即添加到物理网卡的收发队列中。
75.可选的,虚拟绑定网卡的收发队列的地址空间和物理网卡的收发队列的地址空间也可不同,此时,该第一映射关系可记载有虚拟绑定网卡的收发队列的地址空间和物理网卡的收发队列的地址空间之间的对应关系,以便虚拟绑定网卡的驱动程序能够基于该对应关系,将添加至虚拟绑定网卡的收发队列中的通信报文,添加至物理网卡的收发队列中。
76.s130,通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理。
77.可选的,虚拟绑定网卡的驱动程序在将通信报文添加至物理网卡的收发队列之后,可调用该物理网卡的驱动程序,通过该物理网卡的驱动程序对其收发队列中的通信报文进行处理。以主备模式为例,在虚拟绑定网卡的驱动程序将通信报文添加至主网卡的收发队列之后,可调用主网卡的驱动程序,驱使主网卡的驱动程序对其收发队列中的通信报文进行处理。
78.可选的,虚拟绑定网卡和物理网卡绑定时,可基于预设通信模式约定各个物理网卡的报文处理方式。以该预设通信模式为主备模式为例,可约定在主备模式下,由主网卡对其收发队列中的通信报文执行发送操作。
79.物理网卡的驱动程序可响应于被调用,确定预设通信模式,以及该预设通信模式下的报文处理方式,继而,基于预置的报文处理方式,对其收发队列中的通信报文进行处理。例如,在根据预置的报文处理方式确定一个物理网卡需要发送通信报文,则物理网卡的驱动程序控制物理网卡执行该通信报文的发送操作;在根据预置的报文处理方式确定一个物理网卡不应发送该通信报文,则物理网卡的驱动程序控制该物理网卡不执行该通信报文的发送操作,如可将收发队列中的通信报文丢弃。
80.本技术实施例的基于虚拟绑定网卡的通信方法,虚拟机只需要设置一个虚拟网口与该虚拟绑定网卡连接,就能够利用多个物理网卡进行通信报文的收发,虚拟机自身不需要设置绑定模块,也不需要设置多个虚拟网口,更不需要用户自行基于单输入输出虚拟化(sr-iov)技术执行复杂的绑定操作,不仅简化了用户操作,降低了用户使用难度,而且简化了虚拟机自身的网络拓扑。此外,由于不需要虚拟机判断各个物理网卡是否需要执行通信报文的收发操作,也无需设置例如虚拟交换机等虚拟设备来判断各个物理网卡是否需要执行通信报文的收发操作,在满足高性能和高可用需求的基础上,还能够减少对虚拟机的资源的占用量。
81.配合图2所示,在一些实施例中,步骤s120,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,可包括如下步骤。
82.s121,通过所述虚拟绑定网卡的驱动程序,确定所述虚拟绑定网卡与所述物理网卡之间的所述预置通信模式,以及与所述预置通信模式相对应的所述第一映射关系。
83.可选的,可通过通信标识来标识该预置通信模式,该通信标识可作为虚拟绑定网卡的配置信息予以保存。虚拟绑定网卡的驱动程序可响应于被调用,获取虚拟绑定网卡的配置信息,并从中获取该通信标识,以确定虚拟绑定网卡和物理网卡之间的预置通信模式。
84.在确定预置通信模式的情况下,可基于该预置通信模式的通信方式确定与该预置通信模式相对应的第一映射关系。例如,在确定该预置通信模式为主备模式的情况下,可确定该虚拟绑定网卡的收发队列与主网卡的收发队列之间的第一映射关系。
85.可选的,可通过虚拟绑定网卡的驱动程序,从虚拟绑定网卡的配置空间中确定收发队列被分配的地址空间。例如,虚拟绑定网卡的配置空间中可预置多个地址范围,该多个地址范围可映射到同一个物理网卡的收发队列,该多个地址范围也可分别映射到多个物理网卡的收发队列。
86.s122,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列。
87.可选的,在该第一映射关系包含虚拟绑定网卡的收发队列的地址空间,而该虚拟绑定网卡的收发队列的地址空间实际为在内存空间中为物理网卡的收发队列所分配的地址空间的情况下,可基于该物理网卡的收发队列的地址空间将通信报文添加至内存空间中相应的存储位置处。
88.可选的,虚拟绑定网卡的驱动程序在确定第一映射关系的情况下,无需进一步确定在该预置通信模式下,该第一映射关系所映射的物理网卡是否需要执行通信报文的发送操作,只需基于该第一映射关系将通信报文添加至物理网卡的收发队列中,以节省虚拟机的系统资源。
89.在一些实施例中,步骤s120,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,还可包括如下步骤。
90.s123,通过所述虚拟绑定网卡的驱动程序,确定与所述预置通信模式相对应的第二映射关系,其中,所述第二映射关系包括所述虚拟绑定网卡的中断寄存器与一个或多个所述物理网卡的中断寄存器之间的映射关系。
91.s124,基于所述第二映射关系,向该一个或多个所述物理网卡的中断寄存器中添加中断标识。
92.可选的,该第二映射关系可表现为虚拟绑定网卡的配置空间中所包含的中断寄存器的地址信息,该地址信息实际可包括一个或多个物理网卡的中断寄存器的地址信息,以使得虚拟绑定网卡的中断寄存器与该一个或多个物理网卡的中断寄存器之间形成映射关系。也即,通过将一个或多个物理网卡的中断寄存器的地址信息添加至该虚拟绑定网卡的配置中间中,作为该虚拟绑定网卡的中断寄存器的地址信息,从而在该虚拟绑定网卡和该一个或多个物理网卡的中断寄存器之间形成第二映射关系。
93.可选的,该第二映射关系可与第一映射关系相对应。例如,当虚拟绑定网卡的收发队列与一个或多个物理网卡的收发队列具有第一映射关系,相应的,该虚拟绑定网卡的中断寄存器也与该一个或多个物理网卡的中断寄存器之间具有第二映射关系。
94.在虚拟绑定网卡的驱动程序基于第一映射关系向一个或多个物理网卡的收发队列中添加通信报文的基础上,该虚拟绑定网卡的驱动程序还可基于该第二映射关系,向该一个或多个物理网卡的中断寄存器中添加中断标识,以使物理网卡的驱动程序触发中断,使处理器调用该物理网卡的驱动程序来对其收发队列中的通信报文进行处理。
95.可选的,向中断寄存器中添加中断标识可为将中断寄存器中特定位置的标识位由0修改为1,或者从1修改为0。当然,也可通过在中断寄存器中添加其他类型的信息来形成中断标识。
96.配合图3所示,在一些实施例中,步骤s130,通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进
行处理,可包括如下步骤。
97.s131,响应于识别到所述中断标识,调取相对应的所述物理网卡的驱动程序。
98.s132,通过所述物理网卡的驱动程序,确定所述物理网卡与所述虚拟绑定网卡之间的所述预置通信模式,以及所述预置通信模式下的报文处理方式。
99.s133,基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理。
100.可选的,可由中断系统响应于该中断标识,驱使处理器调取该中断标识相对应的物理网卡的驱动程序。例如,在虚拟绑定网卡的驱动程序基于第一映射关系将通信报文添加至一个或多个物理网卡的收发队列的基础上,该虚拟绑定网卡的驱动程序也可基于第二映射关系在该一个或多个物理网卡的中断寄存器中添加中断标识,使得处理器能够中断虚拟绑定网卡的驱动程序的执行,转而调取该一个或多个物理网卡的驱动程序。
101.可选的,物理网卡的驱动程序可包括第一桥接模块和第二桥接模块,处理器可响应于该中断标识调用物理网卡的驱动程序,并执行物理网卡的驱动程序中的第一桥接模块。基于该第一桥接模块识别预设通信模式,以及该预设通信模式下的报文处理方式。可选的,可通过例如通信标识来标识该预置通信模式,该物理网卡的配置信息中也可添加有该通信标识。第一桥接模块可获取该通信标识,基于该通信标识确定物理网卡和虚拟绑定网卡之间的预置通信模式,以及该预设通信模式下的报文处理方式。
102.在不同的预置通信模式下,可具有与该预置通信模式相对应的报文处理方式。报文处理方式可包括物理网卡对其收发队列中的通信报文执行发送操作、物理网卡不对其收发队列中的通信报文执行发送操作、基于特定算法对通信报文执行运算处理以及基于运算处理的结果确定是否对物理网卡的收发队列中的通信报文执行发送操作等等。
103.例如,当第一桥接模块确定需要对物理网卡的收发队列中的通信报文执行发送操作时,则调用第二桥接模块,通过第二桥接模块控制物理网卡对其收发队列中的通信报文执行发送操作。当第一桥接模块确定不需要对物理网卡的收发队列中的通信报文执行发送操作时,则不调用第二桥接模块,可选择丢弃物理网卡的收发队列中的通信报文。该第一桥接模块还基于特定算法对通信报文执行运算处理,并基于处理结果确定是否对通信报文执行发送操作,如果需要执行发送操作,则调用第二桥接模块控制物理网卡对其收发队列中的通信报文执行发送操作。
104.在一些实施例中,所述物理网卡虚拟出一个或多个虚拟网卡,所述第一映射关系包括所述虚拟绑定网卡的收发队列与所述物理网卡所虚拟出的一个虚拟网卡的收发队列之间的映射关系。
105.可选的,每个物理网卡可支持虚拟出多个虚拟网卡,物理网卡可将其收发队列的地址空间分配给多个虚拟网卡。如物理网卡可将其收发队列的地址空间划分为多个子地址空间,分别为每个虚拟网卡分配一个或多个子地址空间。虚拟绑定网卡的收发队列可与虚拟网卡的子地址空间形成映射关系。例如,可将该子地址空间添加至虚拟绑定网卡的配置空间中作为该虚拟绑定网卡的收发队列的地址空间,如此,虚拟绑定网卡的驱动程序基于该子地址空间向虚拟绑定网卡的收发队列中添加通信报文,实际即添加至该物理网卡的收发队列中。如此,物理网卡可通过多个虚拟绑定网卡分别与多个虚拟机连接,为多个虚拟机提供网络通信服务,以充分利用物理网卡的通信带宽,如图4所示。
106.需要说明的是,在具体实施时,物理网卡并非必然要真实的虚拟出多个虚拟网卡,可假定存在多个虚拟网卡,将自身的收发队列的地址空间划分为多个子地址空间,将该子地址空间映射到虚拟绑定网卡的地址空间即可。
107.以下结合几个具体的预置通信模式对本技术实施例的技术方案进行详细说明。
108.在一些实施例中,所述预置通信模式包括主备模式,在所述主备模式下,所述第一映射关系包括所述虚拟绑定网卡的收发队列与作为主网卡的所述物理网卡的收发队列之间的映射关系。
109.步骤s120,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,可包括。
110.在所述主备模式下,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至所述主网卡的收发队列中。
111.步骤s130,通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理,可包括。
112.通过所述主网卡的驱动程序,控制所述主网卡对其收发队列中的所述通信报文进行发送。
113.在主备模式下,多个物理网卡被划分为主网卡和备用网卡,主网卡处于活跃状态,为虚拟机提供网络通信服务,备用网卡处于待机状态。当主网卡出现故障时,将备用网卡切换为主网卡,为虚拟机提供网络通信服务。主备模式具有高可用性,能够连续稳定的为虚拟机提供网络通信服务。
114.在主备模式下,第一映射关系包括虚拟绑定网卡的收发队列与主网卡的收发队列之间的映射关系,如图5所示。虚拟绑定网卡的驱动程序基于该第一映射关系,将虚拟机生成的通信报文添加至主网卡的收发队列中。可选的,虚拟绑定网卡的驱动程序还可基于第二映射关系,向主网卡的中断寄存器中添加中断标识,使得中断系统可基于该中断标识驱使处理器调用主网卡的驱动程序,主网卡的驱动程序确定预置通信模式为主备模式的情况下,控制主网卡对其收发队列中的通信报文执行发送操作。
115.在一些实施例中,所述预置通信模式包括广播模式,在所述广播模式下,所述第一映射关系包括所述虚拟绑定网卡的收发队列与多个所述物理网卡的收发队列之间的映射关系。
116.步骤s120,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,可包括。
117.在所述广播模式下,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文分别添加至多个所述物理网卡的收发队列中。
118.步骤s130,通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理,可包括。
119.通过多个所述物理网卡的驱动程序,分别控制各所述物理网卡对其各自收发队列中的所述通信报文进行发送。
120.在广播模式下,虚拟绑定网卡的收发队列和与之绑定的多个物理网卡的收发队列之间均形成映射关系,如图6所示。也即,第一映射关系包括虚拟绑定网卡的收发队列与多个物理网卡的收发队列之间的映射关系。例如,可从每个物理网卡中选取一个为虚拟网卡
的收发队列预留的子地址空间,将该子地址空间映射为该虚拟绑定网卡的收发队列的地址空间,使得该虚拟绑定网卡在逻辑上分别与多个虚拟网卡绑定,实际上分别与各个物理网卡绑定。
121.虚拟绑定网卡的驱动程序基于该第一映射关系,能够将通信报文分别添加至多个物理网卡的收发队列中。虚拟绑定网卡的驱动程序还可基于第二映射关系分别向每个物理网卡的中断寄存器中添加中断标识,分别调取多个物理网卡的驱动程序,通过各物理网卡的驱动程序控制各自对应的物理网卡对收发队列中的通信报文执行发送操作。如此,能够实现同一个通信报文通过多个物理网卡执行多次发送操作的目的,以确保目标设备能够接收到该通信报文,在广播模式下,能够提供高可靠性的网络通信服务。
122.在一些实施例中,所述预置通信模式包括负载均衡模式,在所述负载均衡模式下,所述第一映射关系包括所述虚拟绑定网卡的收发队列与多个所述物理网卡的收发队列之间的映射关系。
123.步骤s120,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡的收发队列,可包括。
124.在所述负载均衡模式下,通过所述虚拟绑定网卡的驱动程序基于所述第一映射关系,将所述通信报文分别添加至多个所述物理网卡的收发队列中。
125.步骤s130,通过所述物理网卡的驱动程序基于所述预置通信模式下的报文处理方式,控制所述物理网卡对其收发队列中的所述通信报文进行处理,可包括。
126.各所述物理网卡的驱动程序分别基于所述负载均衡模式下的负载均衡规则,对其各自的收发队列中的所述通信报文进行预处理;
127.各所述物理网卡的驱动程序分别根据预处理结果,确定是否对控制所述物理网卡对其收发队列中的所述通信报文进行发送。
128.与广播模式类似,在负载均衡模式下,虚拟绑定网卡的收发队列也与多个物理网卡的收发队列形成映射关系,如图6所示。也即,第一映射关系包括虚拟绑定网卡的收发队列与多个物理网卡的收发队列之间的映射关系。
129.虚拟绑定网卡的驱动程序基于该第一映射关系,能够将通信报文分别添加至多个物理网卡的收发队列中。虚拟绑定网卡的驱动程序还可基于第二映射关系分别向每个物理网卡的中断寄存器中添加中断标识,分别调取多个物理网卡的驱动程序。
130.但与广播模式不同的是,在负载均衡模式下,物理网卡的驱动程序并非一定控制各自的物理网卡执行通信报文的发送操作。物理网卡的驱动程序基于负载均衡规则,对收发队列中的通信报文进行预处理,并根据预处理结果确定是否控制物理网卡对其收发队列中的通信报文执行发送操作。如此,在一定程度上能够兼顾高性能、高可用性和高稳定性。
131.例如,物理网卡的驱动程序可基于预设算法对通信报文执行运算处理,获得运算结果。基于该运算结果和负载均衡规则,确定是否控制各自的物理网卡执行通信报文的发送操作,如果是,则控制物理网卡对其收发队列中的通信报文执行发送操作,如果否,则可控制物理网卡将其收发队列中的通信报文丢弃。
132.在一些实施例中,所述方法还可包括:
133.s140,通过物理网卡接收发送给所述虚拟机的另一通信报文;
134.s150,通过物理网卡的驱动程序将该另一通信报文添加至虚拟绑定网卡的收发队
列中;
135.s160,通过虚拟绑定网卡的驱动程序将虚拟绑定网卡的收发队列中的另一通信报文发送至虚拟机。
136.可选的,当物理网卡接收到另一通信报文时,物理网卡的第二桥接模块可获取该另一通信报文的mac地址,如果该mac地址指向虚拟绑定网卡,则第二桥接模块调用第一桥接模块,通过第一桥接模块基于该mac地址将该另一通信报文添加至虚拟绑定网卡的收发队列中。该第一桥接模块还可向该虚拟绑定网卡的中断寄存器中添加中断标识,使得处理器调用虚拟绑定网卡的驱动程序,通过虚拟绑定网卡的驱动程序将虚拟绑定网卡的收发队列中的另一通信报文发送至虚拟机。
137.在一些实施例中,所述方法还可包括:
138.s170,获取为所述物理网卡的收发队列分配的地址空间,以及用于标识所述预置通信模式的通信标识;
139.s180,基于所述地址空间和所述通信标识,创建所述虚拟绑定网卡。
140.可选的,物理网卡可为支持虚拟网卡的物理网卡设备。物理网卡的驱动程序可响应于构建虚拟绑定网卡的第一请求,创建虚拟绑定网卡。该物理网卡的驱动程序可为多个物理网卡的驱动程序中的一个。其中,该第一请求可包括网卡标识、通信标识、负载均衡规则和故障检测时间等信息,网卡标识用于标识需要绑定的物理网卡,该网卡标识可为例如物理网卡的pci号,通信标识用于标识预置通信模式。
141.物理网卡的驱动程序还可基于网卡标识向多个物理网卡发送查询请求,查询请求用于请求查询物理网卡的收发队列的地址空间。由于物理网卡支持虚拟网卡,所以物理网卡可为虚拟网卡预留一个或多个子地址空间。也即,物理网卡会可将其收发队列的地址空间划分为多个子地址空间。物理网卡可从中选取一个或多个子地址空间,将子地址空间反馈给物理网卡的驱动程序。当然,查询请求也可用于查询物理网卡的中断寄存器的地址信息,物理网卡可将中断寄存器的地址信息一并反馈至物理网卡的驱动程序。
142.物理网卡的驱动程序可基于预置通信模式下映射关系构建规则,构建第一映射关系和第二映射关系。例如,在根据通信标识确定所设定的预置通信模式为主备模式的情况下,可将主网卡的子地址空间添加至虚拟绑定网卡的配置空间中,作为该虚拟绑定网卡的收发队列的地址空间,并将主网卡的中断寄存器的地址信息添加至虚拟绑定网卡的配置空间,作为该虚拟绑定网卡的中断寄存器的地址信息,从而在虚拟绑定网卡和主网卡之间形成第一映射关系和第二映射关系。当然,物理网卡的驱动程序还可记录备用网卡的子地址空间和中断寄存器的地址信息,以及故障检测时间等信息,以便物理网卡的驱动程序基于故障检测时间定期检测主网卡是否出现故障,并在主网卡出现故障时,通过备用网卡替代主网卡。
143.还例如,在根据通信标识确定所设定的预置通信模式为广播模式的情况下,可将多个物理网卡的子地址空间分别添加至虚拟绑定网卡的配置空间中,作为该虚拟绑定网卡的收发队列的地址空间,并分别将多个物理网卡的中断寄存器的地址信息添加至虚拟绑定网卡的配置空间中,作为该虚拟绑定网卡的中断寄存器的地址信息,从而在虚拟绑定网卡和多个物理网卡之间构建第一映射关系和第二映射关系。
144.又例如,在根据通信标识确定所设定的预置通信模式为负载均衡模式的情况下,
可将多个物理网卡的子地址空间分别添加至虚拟绑定网卡的配置空间中,作为该虚拟绑定网卡的收发队列的地址空间,并分别将多个物理网卡的中断寄存器的地址信息添加至虚拟绑定网卡的配置空间中,作为该虚拟绑定网卡的中断寄存器的地址信息,从而在虚拟绑定网卡和多个污泥网卡之间构建第一映射关系和第二映射关系。
145.可选的,物理网卡的驱动程序在创建虚拟绑定网卡,并构建第一映射关系和第二映射关系的基础上,还可创建第一桥接模块,通常情况下物理网卡的驱动程序中配置有第二桥接模块,所以,物理网卡的驱动程序仅需创建第一桥接模块。例如,在预置通信模式为主备模式的情况下,物理网卡的驱动程序可基于通信标识、主备模式下的报文处理方式以及用于标识网卡的主备身份的身份信息,创建第一桥接模块,以在主备模式下,通过该第一桥接模块控制主网卡对其收发队列中的通信报文执行发送操作。
146.还例如,在预置通信模式为广播模式的情况下,物理网卡的驱动程序可基于通信标识和广播模式下的报文处理方式创建个第一桥接模块,使得在广播模式下,第一桥接模块能够分别控制各自的物理网卡对收发队列中的通信报文执行发送操作。
147.又例如,在预置通信模式为负载均衡模式的情况下,物理网卡的驱动程序可基于通信标识、负载均衡规则、负载均衡模式下的报文处理方式等创建第一桥接模块,使得各个第一桥接模块能够分别基于负载均衡规则确定各自对应的物理网卡是否需要对收发队列中的通信报文执行发送操作。
148.在虚拟绑定网卡和第一桥接模块均创建完成的情况下,可通过虚拟机管理器将虚拟绑定网卡透传给虚拟机,使得虚拟机能够与虚拟绑定网卡连接,以便虚拟机能够调用虚拟绑定网卡的驱动程序。例如,可将虚拟绑定网卡的mac地址、网卡编号、配置空间中的各种配置信息等透传给虚拟机。
149.可选的,网络管理员可预先创建多个虚拟绑定网卡,并将多个虚拟绑定网卡添加至网卡池中。在虚拟机启动后可生成网络连接请求,响应于该网络连接请求,可从网卡池中选取虚拟绑定网卡,并通过虚拟机管理器将所选取的虚拟绑定网卡透传给虚拟机。
150.可选的,该网络连接请求可记录有该虚拟机的通信需求,例如,通信带宽、高可用性、高性能或高稳定性等等,虚拟机管理器可基于该网络连接请求从网卡池中选取相匹配的虚拟绑定网卡。
151.参见图7所示,一种基于虚拟绑定网卡220的通信装置,包括:
152.虚拟机210,其具有虚拟网口211,所述虚拟机210通过所述虚拟网口211与虚拟绑定网卡220连接,所述虚拟机210能够通过所述虚拟网口211将所生成通信报文发送至所述虚拟绑定网卡220;
153.虚拟绑定网卡220,其分别与多个物理网卡230连接,所述虚拟绑定网卡220和多个所述物理网卡230之间配置有预置通信模式,所述虚拟绑定网卡220的收发队列与所述物理网卡230的收发队列之间具有与所述预置通信模式相对应的第一映射关系,所述虚拟绑定网卡220能够基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡230的收发队列;
154.多个物理网卡230,其均具有第一桥接模块231和第二桥接模块232,所述第一桥接模块231分别与所述虚拟绑定网卡220和所述第二桥接模块232连接;所述第一桥接模块231用于确定所述预置通信模式下的报文处理方式;所述第二桥接模块232用于基于所确定的
报文处理方式,对所述物理网卡230的收发队列中的所述通信报文进行处理。
155.在一些实施例中,所述虚拟绑定网卡220具体用于:
156.确定所述虚拟绑定网卡220与所述物理网卡230之间的所述预置通信模式,以及与所述预置通信模式相对应的所述第一映射关系;
157.基于所述第一映射关系,将所述通信报文添加至一个或多个所述物理网卡230的收发队列。
158.在一些实施例中,所述虚拟绑定网卡220还用于:
159.确定与所述预置通信模式相对应的第二映射关系,其中,所述第二映射关系包括所述虚拟绑定网卡220的中断寄存器与一个或多个所述物理网卡230的中断寄存器之间的映射关系;
160.基于所述第二映射关系,向该一个或多个所述物理网卡230的中断寄存器中添加中断标识。
161.在一些实施例中,所述预置通信模式包括主备模式,在所述主备模式下,所述第一映射关系包括所述虚拟绑定网卡220的收发队列与作为主网卡的所述物理网卡230的收发队列之间的映射关系;
162.所述虚拟绑定网卡220具体用于:在所述主备模式下,基于所述第一映射关系,将所述通信报文添加至所述主网卡的收发队列中;
163.所述第一桥接模块231能够确定在所述主备模式下的报文处理方式为发送所述主网卡的收发队列中的所述通信报文;
164.所述第二桥接模块232用于对所述主网卡的收发队列中的所述通信报文执行发送操作。
165.在一些实施例中,所述预置通信模式包括广播模式,在所述广播模式下,所述第一映射关系包括所述虚拟绑定网卡220的收发队列与多个所述物理网卡230的收发队列之间的映射关系;
166.所述虚拟绑定网卡220具体用于:在所述广播模式下,基于所述第一映射关系,将所述通信报文分别添加至多个所述物理网卡230的收发队列中;
167.所述第一桥接模块231能够确定在所述主备模式下的报文处理方式为发送所述物理网卡的收发队列中的所述通信报文;
168.所述第二桥接模块232用于对所述物理网卡的收发队列中的所述通信报文执行发送操作。
169.在一些实施例中,所述预置通信模式包括负载均衡模式,在所述负载均衡模式下,所述第一映射关系包括所述虚拟绑定网卡220的收发队列与多个所述物理网卡230的收发队列之间的映射关系;
170.所述虚拟绑定网卡220具体用于:在所述负载均衡模式下,基于所述第一映射关系,将所述通信报文分别添加至多个所述物理网卡230的收发队列中;
171.所述第一桥接模块231具体用于基于所述负载均衡模式下的负载均衡规则,对所述物理网卡的收发队列中的所述通信报文进行预处理,根据预处理结果,确定是否对控制所述物理网卡230对所述物理网卡的收发队列中的所述通信报文执行发送操作;
172.所述第二桥接模块232具体用于在确定需要对所述通信报文执行发送操作的情况
下,对所述物理网卡的收发队列中的所述通信报文执行发送操作。
173.在一些实施例中,所述物理网卡230虚拟出一个或多个虚拟网卡,所述第一映射关系包括所述虚拟绑定网卡220的收发队列与所述物理网卡230所虚拟出的一个虚拟网卡的收发队列之间的映射关系。
174.在一些实施例中,所述物理网卡230还用于:
175.获取为所述物理网卡230的收发队列分配的地址空间,以及用于标识所述预置通信模式的通信标识;
176.基于所述地址空间和所述通信标识,创建所述虚拟绑定网卡220。
177.以上实施例仅为本技术的示例性实施例,不用于限制本技术,本技术的保护范围由权利要求书限定。本领域技术人员可以在本技术的实质和保护范围内,对本技术做出各种修改或等同替换,这种修改或等同替换也应视为落在本技术的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1