本技术实施例涉及数据处理,尤其涉及一种数据处理方法、装置及计算设备。
背景技术:
1、由于虚拟机运行在物理主机中,位于不同物理主机中的虚拟机(简称:vm,英文:virtual machine)之间进行网络互联是通过虚拟交换机(简称:vswitch,英文:virtualswitch)实现。
2、在目前的一种实现方式中,位于第一物理主机中的第一虚拟机将请求发送至位于第二物理主机中的第二虚拟机的第一数据包,首先发送至位于第一物理主机的第一虚拟交换机,第一虚拟交换机中存储了第一虚拟机对应的一些表项,如路由表、acl(accesscontrol list,访问控制列表)等,通过对第一数据包进行解析,获得第一数据包中的相应标识信息等,从而基于第一数据包中的相应标识信息可以查找这些表项,以确定对应的一些执行方式,并据此对第一数据包进行处理;在第一数据包需要发出的情况下,第一数据包被封装为第二数据包,并被转发至第二物理主机中的第二虚拟交换机,第二虚拟交换机首先对第二数据包进行解析,获得第一数据包以及第一数据包中的相应标识信息等,并查找第二虚拟机对应的一些表项,对第一数据包进行处理之后,再转发至第二虚拟机。
3、结合上文描述可知,现有的这种实现网络互联的数据包传输方式,存在资源消耗较大的技术问题。
技术实现思路
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、确定第二虚拟机对应的至少一个第二表项;
48、将所述至少一个第二表项传输至第一虚拟机交换机;所述至少一个第二表项用以结合第一虚拟机对应的至少一个第一表项,基于所述第一虚拟机请求发送至所述第二虚拟机的第一数据包,查找对应的至少一个执行方式;所述至少一个执行方式用以处理所述第一数据包。
49、可选地,所述确定第二虚拟机对应的至少一个第二表项包括:
50、在所述第一虚拟机与所述第二虚拟机之间的通信事件满足直通条件的情况下,确定第二虚拟机对应的至少一个第二表项。
51、可选地,所述第一虚拟机与所述第二虚拟机之间的通信事件满足直通条件包括如下一种或多种实现方式:
52、所述第一虚拟机与所述第二虚拟机之间传输的数据包数量大于第一阈值;
53、所述第一虚拟机与所述第二虚拟机之间传输的数据包所消耗的带宽大于第二阈值;
54、所述第一虚拟机与所述第二虚拟机之间传输的数据包所消耗的硬件资源大于第三阈值。
55、可选地,所述将所述至少一个第二表项传输至第一虚拟机交换机包括:
56、将所述至少一个第二表项通过控制系统传输至第一虚拟机交换机。
57、第三方面,本技术实施例中提供了一种数据处理方法,应用于第二虚拟交换机,所述方法包括:
58、接收第二数据包;所述第二数据包是对第一数据包进行封装获得;所述第一数据包由第一虚拟机请求发送至第二虚拟机,对所述第一数据包的封装是通过查找所述第一虚拟机对应的至少一个第一表项以及所述第二虚拟机对应的至少一个第二表项,并基于查找获得的所述第二虚拟交换机的地址以及所述第二虚拟机对应的转发信息进行的;
59、解析获得所述第二数据包中的所述第一数据包以及所述转发信息;
60、基于所述转发信息,将所述第一数据包发送至所述第二虚拟机。
61、可选地,所述转发信息包括虚拟端口标识;所述虚拟端口标识用以与所述第二虚拟交换机的地址封装至所述第一数据包的头部,获得所述第二数据包;
62、所述基于所述转发信息,将所述第一数据包发送至所述第二虚拟机包括:
63、基于所述虚拟端口标识所标记的虚拟端口,将所述第一数据包发送至所述第二虚拟机;
64、或者,所述转发信息包括直通标识以及虚拟网卡地址;所述基于所述转发信息,将所述第一数据包发送至所述第二虚拟机包括:
65、解析获得所述直通标识的情况下,基于所述虚拟网卡地址查找第三路由表以确定所述虚拟网卡地址对应的所述虚拟端口标识,并利用所述虚拟端口标识所标记的虚拟端口,将所述第一数据包发送至所述第二虚拟机。
66、可选地,所述解析获得所述第二数据包中的所述第一数据包以及所述转发信息包括:
67、将所述第二数据包发送至硬件设备,利用所述硬件设备解析获得所述第二数据包中的所述第一数据包以及所述转发信息;
68、所述基于所述转发信息,将所述第一数据包发送至所述第二虚拟机包括:
69、利用所述硬件设备,基于所述转发信息,将所述第一数据包发送至所述第二虚拟机。
70、第四方面,本技术实施例中提供了一种计算设备,包括处理组件以及存储组件;
71、所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行,以实现如上述第一方面所述数据处理方法或者如上述第二方面所述的数据处理方法或者如上述第三方面所述的数据处理方法。
72、第五方面,本技术实施例中提供了一种计算机存储介质,存储有计算机程序,所述计算机程序被计算机执行时,实现如上述第一方面所述数据处理方法或者如上述第二方面所述的数据处理方法或者如上述第三方面所述的数据处理方法。
73、本技术实施例通过第一虚拟交换机接收第一虚拟机请求发送至第二虚拟机的第一数据包;确定第二虚拟交换机发送的所述第二虚拟机对应的至少一个第二表项;查找所述第一虚拟机对应的至少一个第一表项以及所述至少一个第二表项,以确定至少一个执行方式;按照所述至少一个执行方式处理所述第一数据包,可以实现在第一虚拟交换机处根据第二虚拟机对应的至少一个第二表项确定执行方式处理第一数据包,从而可以终止转发符合控制条件的第一数据包,节省了第二虚拟交换机对第一数据包的查表、处理操作,减少了资源消耗,并提高了虚拟网络的性能,提高了带宽和吞吐,缩小时延。
74、本技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。