流表项的控制方法以及装置与流程

文档序号:30339030发布日期:2022-06-08 07:33阅读:159来源:国知局
流表项的控制方法以及装置与流程

1.本说明书实施例涉及计算机技术领域,特别涉及一种流表项的控制方法。


背景技术:

2.随着云计算、虚拟化技术的快速发展,云计算生产环境部署的规模越来越大。而虚拟化技术的发展使得虚拟服务器(又叫虚拟机)应运而生。虚拟机是指通过软件模拟的、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。当硬件发生故障需要维护或数据处理需求转移时,正在运行的服务需要被迁移到其他的平台上继续运行,并且这一过程不能对虚拟机所承载的应用服务产生影响,这就涉及到虚拟机迁移技术,虚拟机迁移技术能使虚拟机在物理机之间进行快速的在线迁移,并且保持虚拟机在运行过程中不间断运行,有效的改善资源分配。可见,虚拟机会在不同的主机上进行迁移。
3.实际使用过程中,若虚拟机进行迁移,则需对迁移之前该虚拟机所对应的流表进行老化、删除。但目前多是按照该虚拟机对应的流表信息逐条查找轮询,即需要遍历全部的流表,这个过程需要花费大量的时间,并且在此期间会有大量报文仍然按照未删除流表的行为进行转发,从而造成报文的转发错误,因此,亟需一种有效的方法以解决此类问题。


技术实现要素:

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.根据本说明书实施例的第六方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述流表项的控制方法的步骤。
44.本说明书一个实施例通过接收用户发送的数据报文,并确定与所述数据报文匹配的目标流表项,其中,所述目标流表项为本地目标虚拟机对应的至少一个流表项之一,在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号不一致的情况下,将本地包含所述第一版本号的流表项进行删除;以及,将所述数据报文发送至虚拟交换机,以使所述虚拟交换机将所述数据报文转发至目标宿主机,其中,所述第二版本号在所述目标虚拟机迁移至所述目标宿主机的情况下生成。
45.本说明书实施例通过为本地的虚拟机设置版本号,并将该版本号添加至虚拟机对应的流表项,而当该虚拟机发生迁移的情况下,其版本号则会在迁移之后发生变化。因此,本说明书实施例在接收用户的数据报文后,确定该数据报文匹配的目标流表项,并通过将目标流表项中目标虚拟机的第一版本号与该目标虚拟机的第二版本号进行比对,以确定该目标虚拟机是否发生迁移;在比对不一致的情况下,确定该目标虚拟机发生迁移,则需按照迁移后目标虚拟机所在的位置确定该数据报文的转发路径,具体即通过虚拟交换机重新确定该数据报文的转发路径,并按照该路径将数据报文转发至目标宿主机。通过这种方式,可以在确定目标虚拟机迁移的情况下,及时改变数据报文的转发路径,以避免数据报文的错误转发,即有利于提高数据报文转发结果的准确性,从而有利于提升用户体验。
46.另外,在比对不一致的情况下,确定该目标虚拟机发生迁移,则可将本地包含第一版本号的流表项批量删除,即通过在流表项中添加目标虚拟机的版本号,并通过查找版本号的方式确定需要删除的流表项,有利于提高流表项的老化、删除速度,同样有利于避免因流表项删除不及时导致的数据报文转发错误的问题,即有利于提高数据报文转发结果的准确性,从而有利于提升用户体验。
附图说明
47.图1是本说明书一个实施例提供的一种流表项的控制方法的流程图;
48.图2是本说明书一个实施例提供的一种流表项的控制过程的示意图;
49.图3是本说明书一个实施例提供的一种流表项的控制方法的处理过程流程图;
50.图4是本说明书一个实施例提供的一种流表项的控制装置的结构示意图;
51.图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
52.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
53.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
54.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
55.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
56.虚拟交换机(centrex):利用公众网络的资源来组成专用网络,为公众网络用户提供虚拟pbx(privatebranchexchange,专用交换分机)服务的特殊交换功能。
57.在本说明书中,提供了一种流表项的控制方法,本说明书同时涉及一种流表项的控制装置,一种计算设备,一种计算机可读存储介质,以及一种计算机程序,在下面的实施例中逐一进行详细说明。
58.图1示出了根据本说明书一个实施例提供的一种流表项的控制方法的流程图,具体包括以下步骤。
59.步骤102,接收用户发送的数据报文,并确定与所述数据报文匹配的目标流表项,其中,所述目标流表项为本地目标虚拟机对应的至少一个流表项之一。
60.本说明书实施例提供的流表项的控制方法,应用于源宿主机,即目标虚拟机未迁移前所在的宿主机(物理机)。
61.实际应用中,用户对该目标虚拟机有使用权限,因此,用户可通过向源宿主机发送数据报文的方式,将数据报文在该目标虚拟机和/或其他虚拟机之间进行转发处理的方式,以实现相应的数据处理需求。
62.由于用户具有目标虚拟机的使用权限,而在需要将数据报文从目标虚拟机转发至其他虚拟机的情况下,可设置该目标虚拟机与其他虚拟机之间的通信协议,并基于该通信协议在虚拟机之间建立长连接数据通道,还可基于长连接数据通道生成目标虚拟机对应的
流表项,该流表项可用于记录目标虚拟机与其他虚拟机之间的已基于目标通信协议建立连接的协议状态信息。
63.因此,在用户通过客户端初次访问目标虚拟机的情况下,由于该目标虚拟机与其他虚拟机机之间未建立连接,这种情况下,若接收到用户的数据报文,则无法查找到与该数据报文匹配的目标流表项,进而无法通过目标虚拟机实现报文转发。因此,在未查找到与所述数据报文匹配的目标流表项的情况下,将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文生成第一流表项;
64.将所述第一版本号添加至所述第一流表项。
65.进一步的,将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文生成第一流表项,包括:
66.将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文包含的、所述用户的客户端标识,建立与所述用户的客户端间的长连接数据通道,并根据所述长连接数据通道的建立结果构建第一流表项,其中,所述第一流表项中包含所述长连接数据通道的接口配置信息。
67.具体的,宿主机上除运行虚拟机外,还运行有虚拟交换机,该虚拟交换机可负责模拟物理交换机完成流量(数据报文)转发。通常情况下,数据报文进入宿主机后,首先经过智能网卡,智能网卡查询流表以确定数据报文命中的目标流表项;若数据报文命中了目标流表项,则可根据目标流表项中的动作集合进行报文转发;若数据报文未命中目标流表项,则可将数据报文发送至虚拟交换机;由虚拟交换机生成该数据报文对应的第一流表项,根据生成的第一流表项对该数据报文进行转发处理,并将生成的第一流表项下发至智能网卡,这样后续的数据报文即可直接命中该目标虚拟机的第一流表项,以进行转发处理。
68.其中,接口配置信息,即可以是用户的客户端与源宿主机之间,或用户的客户端与目标虚拟机之间,或目标虚拟机与其他虚拟机的目标通信协议信息。
69.实际应用中,在未查找到与该数据报文匹配的目标流表项的情况下,可将该数据报文发送至虚拟交换机,以使虚拟交换机根据该数据报文包含的、用户的客户端标识,建立源宿主机与用户的客户端间的长连接数据通道,或根据该数据报文包含的、用户的客户端标识,建立源宿主机中目标虚拟机与用户的客户端间的长连接数据通道,或者,还可根据客户端标识,确定用户具有使用权限的目标虚拟机,以建立目标虚拟机与其他虚拟机间的长连接数据通道。
70.需要说明的是,根据具体场景的不同,根据目标流表项对数据报文进行转发处理时数据报文的接收方可以不同。例如,对于负载均衡场景,根据目标流表项对数据报文进行转发处理具体可以是将数据报文转发给虚拟机集群中的目的虚拟机,或者,服务器集群中的目的服务器。又例如,对于网络转发场景,根据目标流表项对数据报文进行转发处理具体可以是将数据报文转发给下一级数据报文转发设备(虚拟交换机或目的虚拟机)或者数据报文的目的设备。
71.另外,在接收用户发送的数据报文之前,可先生成所述目标虚拟机的所述第一版本号,并将所述第一版本号添加至所述至少一个流表项;
72.在确定所述目标虚拟机从本地迁移至所述目标宿主机的情况下,记录迁移后所述目标虚拟机的所述第二版本号。
73.具体的,由于每接收到一个数据报文之后,均需在目标虚拟机对应的至少一个流表项中确定与该数据报文匹配的目标流表项,从而基于该目标流表项中记载的动作集合,对该数据报文进行转发处理。其中,具体可根据动作集合确定数据报文的转发路径,并可根据该转发路径对数据报文进行转发处理。但在目标虚拟机发生迁移的情况下,由于目标虚拟机迁移后前位置发生变化,因此,该数据报文对应的转发路径则可能会发生变化。这种情况下,若仍然按照前述目标流表项中的动作集合进行报文转发,则可能会导致数据报文被错误转发。
74.基于此,本说明书实施例可为源宿主机内的每个虚拟机设置对应的版本号,即为目标虚拟机设置第一版本号,并将该第一版本号添加至目标虚拟机对应的至少一个流表项;然后在确定目标虚拟机发生迁移的情况下,即目标虚拟机从本地的源宿主机迁移至目标宿主机的情况下,可重新为迁移后的目标宿主机设置第二版本号,该第二版本号可由源宿主机或目标宿主机进行设置,设置完成后,由源宿主机对该第二版本号进行记录。
75.在接收到用户的数据报文,并确定与该数据报文匹配的目标流表项后,可将目标流表项中的第一版本号与本地记录的第二版本号进行比对,并根据比对结果确定目标虚拟机是否发生迁移,以保证在确定目标虚拟机发生迁移的情况下,可重新确定数据报文的转发路径,避免数据报文的错误转发。
76.具体实施时,确定与所述数据报文匹配的目标流表项,包括:
77.根据所述用户的用户标识,确定本地与所述用户关联的所述目标虚拟机;
78.确定所述目标虚拟机对应的所述至少一个流表项,并根据每个流表项的包头域包含的元组数据,确定与所述数据报文匹配的目标流表项。
79.具体的,每个目标虚拟机可对应多个流表,并且每个流表中可由多个流表项构成,是虚拟机或虚拟交换机进行数据报文转发控制的关键数据结构,虚拟机或虚拟交换机通过查找流表的流表项决定对接收到的数据报文采取适合的动作,每个流表项包括包头域、计数器、动作三个域。其中,包头域用于对虚拟机或虚拟交换机接收到的数据报文的包头内容进行匹配。通常情况下,流表项的包头域中包括了12个元组(tuple),具体为:输入接口、mac源地址、mac目的地址、以太网类型、虚拟id、虚拟优先级、ip源地址、ip目标地址、ip协议、ip tos位、tcp/udp目的端口以及源端口;计数器用来统计流量的某些信息,例如发送包数;动作是虚拟交换机接收到数据报文后的处理方法,例如丢弃、转发端口等。
80.因此,在接收到用户发送的数据报文后,可先根据用户的用户标识,确定本地中与该用户关联的目标虚拟机,然后根据目标虚拟机对应的流表项的包头域所包含的元组数据与数据报文的包头进行匹配,若数据报文的包头所包含的信息与流表项的包头域所包含的元组数据匹配或一致,则可将该流表项确定为与该数据报文匹配的目标流表项,且该目标流表项为与目标虚拟机对应的至少一个流表项之一。
81.步骤104,在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号不一致的情况下,将本地包含所述第一版本号的流表项进行删除。
82.具体的,在目标虚拟机未发生迁移的情况下,该第二版本号与第一版本号均可表征未迁移之前,源宿主机为该目标虚拟机设置的版本号;在目标虚拟机发生迁移的情况下,该第一版本号即可表征未迁移之前,源宿主机为该目标虚拟机设置的版本号,而第二版本
号即为迁移之后,源宿主机或目标宿主机为该目标虚拟机设置的版本号。
83.源宿主机在确定各虚拟机的版本号后,除本地记录不同虚拟机的版本号外,还可将该版本号添加至虚拟机对应的流表内。而在目标虚拟机发生迁移的情况下,本地记录的版本号则会随之更新,但本地与目标虚拟机对应的流表内添加的版本号不会被更新。
84.因此,在接收到用户的数据报文,并确定该数据报文匹配的目标流表项后,可将该目标流表项中目标虚拟机的第一版本号,与本地记录的目标虚拟机的第二版本号进行比对;在比对不一致的情况下,则表征目标虚拟机发生迁移,这种情况下,由于目标虚拟机的位置发生变化,则会导致数据报文的转发路径随之发生变化。基于此,由于源宿主机本地所保存的目标流表项对应的流表项中,记载的转发路径仍为目标虚拟机未迁移之前,数据报文的转发路径,若仍按该转发路径转发该数据报文,则会导致数据报文转发错误。因此,在确定目标虚拟机发生迁移的情况下,则可将本地包含第一版本号的流表项进行删除处理(流表老化)。
85.另外,在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号一致的情况下,确定所述数据报文的属性标识;
86.确定所述目标流表项中与所述属性标识对应的动作集合,并根据所述动作集合对所述数据报文进行转发。
87.具体的,若目标流表项包含的目标虚拟机的第一版本号,与本地记录的目标虚拟机的第二版本号一致的情况下,则表征目标虚拟机未发生迁移,这种情况下,则可确定数据报文的属性标识,并确定目标流表项中与该属性标识对应的动作集合,再根据所述动作集合对该数据报文进行转发。
88.如前所述,目标流表项中包含动作域,而动作域中包含的动作包括但不限于转发或丢弃等。因此,在确定目标虚拟机未迁移的情况下,即确定数据报文的转发路径未发生变化,可直接确定目标流表项中包含的动作集合,再根据数据报文的属性标识,确定该数据报文对应的动作集合,即根据属性标识确定该数据报文应该被丢弃,还是应该被转发;在确定该数据报文对应的动作集合为转发的情况下,则对该数据报文进行转发处理。
89.具体实施时,由于在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号一致的情况下,则确定所述目标流表项被命中;
90.相应的,源宿主机还可统计目标时间区间内所述目标流表项的命中次数;
91.在所述命中次数小于预设次数阈值的情况下,则将本地包含所述第一版本号的流表项进行删除。
92.具体的,由于第二版本号可用于表征目标虚拟机迁移之后,为其重新设置的版本号,因此,若目标虚拟机迁移之后,其第二版本号与第一版本号不同,这种情况下,目标流表项包含的目标虚拟机的第一版本号,与本地记录的目标虚拟机的第二版本号比对不一致,即目标流表项未被命中。可见,若本地中目标虚拟机的目标流表项长时间未被命中,其原因则可能是目标虚拟机已发生迁移。
93.因此,本说明书实施例可统计目标时间区间内目标流表项的命中次数,若目标时间区间内,其命中次数小于预设次数阈值(预设次数阈值可设为0),则表示目标虚拟机已发生迁移,这种情况下,即可将本地包含第一版本号的流表项进行批量删除。
94.与前述在目标流表项包含的目标虚拟机的第一版本号,与本地记录的目标虚拟机
的第二版本号不一致的情况下,即将本地包含第一版本号的流表项进行删除的这种流表老化方式相比,在确定一定时长内目标流表项未被命中的情况下,再将包含第一版本号的流表项进行删除,有利于避免流表项误删除的情况出现,从而有利于提高系统的可靠性与安全性。
95.步骤106,将所述数据报文发送至虚拟交换机,以使所述虚拟交换机将所述数据报文转发至目标宿主机,其中,所述第二版本号在所述目标虚拟机迁移至所述目标宿主机的情况下生成。
96.具体实施时,在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号不一致的情况下,将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机生成所述数据报文对应的第二流表项;
97.将所述第二版本号添加至所述第二流表项,根据所述第二流表项对所述数据报文进行转发处理,并将所述第二流表项下发至所述目标宿主机。
98.进一步的,将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文生成第二流表项,包括:
99.将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文包含的、所述用户的客户端标识,建立目标宿主机与所述用户的客户端间的长连接数据通道,并根据所述长连接数据通道的建立结果构建第二流表项,其中,所述第二流表项中包含所述长连接数据通道的接口配置信息。
100.具体的,第二版本号可用于表征目标虚拟机迁移后,为其设置的新的版本号,即目标虚拟机从源宿主机(本地)迁移至目标宿主机的情况下,可由源宿主机或目标宿主机为该目标虚拟机设置第二版本号。
101.另外,如前所述,宿主机上除运行虚拟机外,还运行有虚拟交换机,该虚拟交换机可负责模拟物理交换机完成流量(数据报文)转发。通常情况下,数据报文进入宿主机后,首先经过智能网卡,智能网卡查询流表以确定数据报文命中的目标流表项;若数据报文命中了目标流表项,则可将目标流表项中的第一版本号与本地记录的第二版本号进行比对,若比对不一致,则可将数据报文发送至虚拟交换机;由虚拟交换机生成该数据报文对应的第二流表项,根据生成的第二流表项将该数据报文转发至目标宿主机,并将生成的第二流表项下发至目标宿主机,即下发至目标宿主机的智能网卡,这样后续的数据报文即可直接命中该目标虚拟机的第二流表项,以进行转发处理。
102.其中,接口配置信息,即可以是用户的客户端与目标宿主机之间,或用户的客户端与目标虚拟机之间,或目标虚拟机与其他虚拟机的目标通信协议信息。
103.实际应用中,在目标流表项包含的目标虚拟机的第一版本号,与本地记录的目标虚拟机的第二版本号不一致的情况下,可将该数据报文发送至虚拟交换机,以使虚拟交换机根据该数据报文包含的、用户的客户端标识,建立目标宿主机与用户的客户端间的长连接数据通道,或根据该数据报文包含的、用户的客户端标识,建立目标宿主机中目标虚拟机与用户的客户端间的长连接数据通道,或者,还可根据客户端标识,确定用户具有使用权限的目标虚拟机,以建立目标虚拟机与其他虚拟机间的长连接数据通道。
104.需要说明的是,根据具体场景的不同,根据第二流表项对数据报文进行转发处理时数据报文的接收方可以不同。例如,对于负载均衡场景,根据第二流表项对数据报文进行
转发处理具体可以是将数据报文转发给虚拟机集群中的目的虚拟机,或者,服务器集群中的目的服务器。又例如,对于网络转发场景,根据第二流表项对数据报文进行转发处理具体可以是将数据报文转发给下一级数据报文转发设备(虚拟交换机或目的虚拟机)或者数据报文的目的设备。
105.本说明书实施例提供的一种流表项的处理过程的示意图如图2所示,源宿主机可分别为源宿主机内的各虚拟机设置不同的版本号,而由于不同虚拟机对应不同的流表,每个流表可包含多个流表项。因此,在确定各虚拟机的版本号后,除本地记录不同虚拟机的版本号外,还可将该版本号添加至虚拟机对应的流表项内。在目标虚拟机发生迁移的情况下,本地记录的版本号则会随之更新,但本地与目标虚拟机对应的流表项内添加的版本号不会被更新。
106.因此,在源宿主机接收到用户的数据报文后,可通过数据报文的报文头信息,确定目标虚拟机对应的至少一个流表项中、与该数据报文匹配的目标流表项,然后将目标流表项中包含的第一版本号与本地记录的目标虚拟机的第二版本号进行比对。
107.在比对一致的情况下,可确定目标流表项中与该数据报文对应的动作集合,并根据该动作集合对数据报文进行转发;
108.在比对不一致的情况下,将该数据报文发送至虚拟交换机,以使虚拟交换机生成该数据报文对应的第二流表项,然后由虚拟交换机将第二版本号添加至第二流表项,根据第二流表项对该数据报文进行转发处理,并将第二流表项下发至目标宿主机。
109.本说明书一个实施例通过接收用户发送的数据报文,并确定与所述数据报文匹配的目标流表项,其中,所述目标流表项为本地目标虚拟机对应的至少一个流表项之一,在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号不一致的情况下,将本地包含所述第一版本号的流表项进行删除;以及,将所述数据报文发送至虚拟交换机,以使所述虚拟交换机将所述数据报文转发至目标宿主机,其中,所述第二版本号在所述目标虚拟机迁移至所述目标宿主机的情况下生成。
110.本说明书实施例通过为本地的虚拟机设置版本号,并将该版本号添加至虚拟机对应的流表项,而当该虚拟机发生迁移的情况下,其版本号则会在迁移之后发生变化。因此,本说明书实施例在接收用户的数据报文后,确定该数据报文匹配的目标流表项,并通过将目标流表项中目标虚拟机的第一版本号与该目标虚拟机的第二版本号进行比对,以确定该目标虚拟机是否发生迁移;在比对不一致的情况下,确定该目标虚拟机发生迁移,则需按照迁移后目标虚拟机所在的位置确定该数据报文的转发路径,具体即通过虚拟交换机重新确定该数据报文的转发路径,并按照该路径将数据报文转发至目标宿主机。通过这种方式,可以在确定目标虚拟机迁移的情况下,及时改变数据报文的转发路径,以避免数据报文的错误转发,即有利于提高数据报文转发结果的准确性,从而有利于提升用户体验。
111.另外,在比对不一致的情况下,确定该目标虚拟机发生迁移,则可将本地包含第一版本号的流表项批量删除,即通过在流表项中添加目标虚拟机的版本号,并通过查找版本号的方式确定需要删除的流表项,有利于提高流表项的老化、删除速度,同样有利于避免因流表项删除不及时导致的数据报文转发错误的问题,即有利于提高数据报文转发结果的准确性,从而有利于提升用户体验。
112.下述结合附图3,以本说明书提供的流表项的控制方法在实际场景的应用为例,对
所述流表项的控制方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种流表项的控制方法的处理过程流程图,具体包括以下步骤。
113.步骤302,生成目标虚拟机的第一版本号,并将第一版本号添加至与目标虚拟机对应的至少一个流表项。
114.步骤304,在确定目标虚拟机从本地迁移至目标宿主机的情况下,记录迁移后目标虚拟机的第二版本号。
115.步骤306,接收用户发送的数据报文。
116.步骤308,根据用户的用户标识,确定本地是否与用户关联的目标虚拟机。
117.若是,则执行步骤310;若否,则将数据报文发送至虚拟交换机,以使虚拟交换机根据数据报文包含的、用户的客户端标识,建立与用户的客户端间的长连接数据通道。
118.步骤310,确定目标虚拟机对应的至少一个流表项,并根据每个流表项的包头域包含的元组数据,确定与数据报文匹配的目标流表项。
119.其中,目标流表项为本地目标虚拟机对应的至少一个流表项之一。
120.步骤312,判断目标流表项包含的目标虚拟机的第一版本号,与本地记录的目标虚拟机的第二版本号是否一致。
121.若否,则执行步骤314;若是,则执行步骤320。
122.步骤314,将本地包含第一版本号的流表项进行删除。
123.步骤316,将数据报文发送至虚拟交换机,以使虚拟交换机生成数据报文对应的第二流表项。
124.步骤318,将第二版本号添加至第二流表项,根据第二流表项对数据报文进行转发处理,并将第二流表项下发至目标宿主机。
125.其中,在目标虚拟机未发生迁移的情况下,该第二版本号与第一版本号均可表征未迁移之前,源宿主机为该目标虚拟机设置的版本号;在目标虚拟机发生迁移的情况下,该第一版本号即可表征未迁移之前,源宿主机为该目标虚拟机设置的版本号,而第二版本号即为迁移之后,源宿主机或目标宿主机为该目标虚拟机设置的版本号。
126.步骤320,在目标流表项包含的目标虚拟机的第一版本号,与本地记录的目标虚拟机的第二版本号一致的情况下,确定数据报文的属性标识。
127.步骤322,确定目标流表项中与属性标识对应的动作集合,并根据动作集合对数据报文进行转发。
128.另外,在未查找到与数据报文匹配的目标流表项的情况下,将数据报文发送至虚拟交换机,以使虚拟交换机根据数据报文包含的、用户的客户端标识,建立与用户的客户端间的长连接数据通道。
129.根据长连接数据通道的建立结果构建第一流表项。
130.其中,第一流表项中包含长连接数据通道的接口配置信息。
131.将第一版本号添加至第一流表项,将第一流表项发送至目标虚拟机,并基于所述第一流表项包含的动作集合,对所述数据报文进行转发。
132.本说明书实施例通过为本地的虚拟机设置版本号,并将该版本号添加至虚拟机对应的流表项,而当该虚拟机发生迁移的情况下,其版本号则会在迁移之后发生变化。因此,本说明书实施例在接收用户的数据报文后,确定该数据报文匹配的目标流表项,并通过将
目标流表项中目标虚拟机的第一版本号与该目标虚拟机的第二版本号进行比对,以确定该目标虚拟机是否发生迁移;在比对不一致的情况下,确定该目标虚拟机发生迁移,则需按照迁移后目标虚拟机所在的位置确定该数据报文的转发路径,具体即通过虚拟交换机重新确定该数据报文的转发路径,并按照该路径将数据报文转发至目标宿主机。通过这种方式,可以在确定目标虚拟机迁移的情况下,及时改变数据报文的转发路径,以避免数据报文的错误转发,即有利于提高数据报文转发结果的准确性,从而有利于提升用户体验。
133.另外,在比对不一致的情况下,确定该目标虚拟机发生迁移,则可将本地包含第一版本号的流表项批量删除,即通过在流表项中添加目标虚拟机的版本号,并通过查找版本号的方式确定需要删除的流表项,有利于提高流表项的老化、删除速度,同样有利于避免因流表项删除不及时导致的数据报文转发错误的问题,即有利于提高数据报文转发结果的准确性,从而有利于提升用户体验。
134.与上述方法实施例相对应,本说明书还提供了流表项的控制装置实施例,图4示出了本说明书一个实施例提供的一种流表项的控制装置的结构示意图。如图4所示,该装置包括:
135.接收模块402,被配置为接收用户发送的数据报文,并确定与所述数据报文匹配的目标流表项,其中,所述目标流表项为本地目标虚拟机对应的至少一个流表项之一;
136.删除模块404,被配置为在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号不一致的情况下,将本地包含所述第一版本号的流表项进行删除;以及,
137.发送模块406,被配置为将所述数据报文发送至虚拟交换机,以使所述虚拟交换机将所述数据报文转发至目标宿主机,其中,所述第二版本号在所述目标虚拟机迁移至所述目标宿主机的情况下生成。
138.可选地,所述流表项的控制装置,还包括记录模块,被配置为:
139.生成所述目标虚拟机的所述第一版本号,并将所述第一版本号添加至所述至少一个流表项;
140.在确定所述目标虚拟机从本地迁移至所述目标宿主机的情况下,记录迁移后所述目标虚拟机的所述第二版本号。
141.可选地,所述流表项的控制装置,还包括第一处理模块,被配置为:
142.在未查找到与所述数据报文匹配的目标流表项的情况下,将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文生成第一流表项;
143.将所述第一版本号添加至所述第一流表项。
144.可选地,所述流表项的控制装置,还包括第二处理模块,被配置为:
145.在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号不一致的情况下,将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机生成所述数据报文对应的第二流表项;
146.将所述第二版本号添加至所述第二流表项,根据所述第二流表项对所述数据报文进行转发处理,并将所述第二流表项下发至所述目标宿主机。
147.可选地,所述流表项的控制装置,还包括转发模块,被配置为:
148.在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标
虚拟机的第二版本号一致的情况下,确定所述数据报文的属性标识;
149.确定所述目标流表项中与所述属性标识对应的动作集合,并根据所述动作集合对所述数据报文进行转发。
150.可选地,所述接收模块402,进一步被配置为:
151.根据所述用户的用户标识,确定本地与所述用户关联的所述目标虚拟机;
152.确定所述目标虚拟机对应的所述至少一个流表项,并根据每个流表项的包头域包含的元组数据,确定与所述数据报文匹配的目标流表项。
153.可选地,所述第一处理模块,进一步被配置为:
154.将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文包含的、所述用户的客户端标识,建立与所述用户的客户端间的长连接数据通道,并根据所述长连接数据通道的建立结果构建第一流表项,其中,所述第一流表项中包含所述长连接数据通道的接口配置信息。
155.可选地,所述第二处理模块,被配置为:
156.将所述数据报文发送至所述虚拟交换机,以使所述虚拟交换机根据所述数据报文包含的、所述用户的客户端标识,建立目标宿主机与所述用户的客户端间的长连接数据通道,并根据所述长连接数据通道的建立结果构建第二流表项,其中,所述第二流表项中包含所述长连接数据通道的接口配置信息。
157.可选地,在所述目标流表项包含的所述目标虚拟机的第一版本号,与本地记录的所述目标虚拟机的第二版本号一致的情况下,则确定所述目标流表项被命中;
158.相应的,所述装置还包括统计模块,被配置为:
159.统计目标时间区间内所述目标流表项的命中次数;
160.在所述命中次数小于预设次数阈值的情况下,则将本地包含所述第一版本号的流表项进行删除。
161.上述为本实施例的一种流表项的控制装置的示意性方案。需要说明的是,该流表项的控制装置的技术方案与上述的流表项的控制方法的技术方案属于同一构思,流表项的控制装置的技术方案未详细描述的细节内容,均可以参见上述流表项的控制方法的技术方案的描述。
162.图5示出了根据本说明书一个实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
163.计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
164.在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其
他部件。
165.计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
166.其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述流表项的控制方法的步骤。
167.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的流表项的控制方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述流表项的控制方法的技术方案的描述。
168.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述流表项的控制方法的步骤。
169.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的流表项的控制方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述流表项的控制方法的技术方案的描述。
170.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述流表项的控制方法的步骤。
171.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的流表项的控制方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述流表项的控制方法的技术方案的描述。
172.本说明书一实施例还提供一种网卡,包括存储器和处理器,存储器中存储有计算机可执行指令,处理器用于执行该计算机可执行指令,该计算机可执行指令被处理器执行时实现上述流表项的控制方法的步骤。
173.上述为本实施例的一种网卡的示意性方案。需要说明的是,该网卡的技术方案与上述的流表项的控制方法的技术方案属于同一构思,网卡的技术方案未详细描述的细节内容,均可以参见上述流表项的控制方法的技术方案的描述。
174.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
175.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
176.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
177.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
178.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1