一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法和设备与流程

2021-11-09 22:39:00 来源:中国专利 TAG:


1.本技术实施例涉及信息技术领域,尤其涉及一种数据处理方法和设备。


背景技术:

2.随着通信技术的发展,虚拟技术被越来越多的应用。通过虚拟技术,可以在主机(host)中设置多个相对独立的虚拟设备。由此在不增加硬件投入的前提下,极大增强主机对数据的处理能力。在包括虚拟设备的通信网络中,可以采用多主机(multi host)技术实现不同虚拟设备的数据处理。
3.示例性的,以数据被承载在报文中,在包括虚拟设备的通信网络中进行传输,接收该数据的设备为虚拟设备为例。在multi host技术中,在承载有数据的报文进行传输时,报文的报文头中一般都会包括一个目的媒体存取控制(media access control,mac)地址,该目的mac地址可以用于标识接收该数据的虚拟设备的mac地址。为表述方便,将目的mac地址称为dmac。工作在mac层的交换设备,如共享网卡,在接收到该报文时,可以根据报文中包括的dmac,查询其中的mac表,该mac表可以包括一个或多个mac地址与对应端口的对应关系。在确定该报文包括的dmac对应的端口后,交换设备就可以通过该端口,传输报文。以便报文能够通过该端口被传输给正确的虚拟设备。
4.可以看到,完善准确的mac表,对于交换设备中数据的正确传输,起到了至关重要的作用。


技术实现要素:

5.本技术实施例提供一种数据处理方法,装置和设备,能够在简化mac表的同时,保证mac表中对应关系的完整性与准确性。
6.为达到上述目的,本技术实施例采用如下技术方案:
7.第一方面,提供一种数据处理方法,该方法包括:
8.交换设备通过物理端口接收来自主机的媒体存取控制mac地址,该mac地址是该主机新增的虚拟设备的mac地址。该交换设备在mac表中添加该mac地址与该物理端口的对应关系。
9.基于该方案,交换设备(如共享网卡)可以根据主机发送的mac地址,调整mac表中的表项,如增加接收到的mac地址与接收该mac地址的物理端口的对应关系。这样就可以保证交换设备中的mac表中的表项的完整与实时性。每当有报文需要传输给主机中的虚拟设备(如虚拟机)时,由于mac表中存储有所有虚拟机的mac地址与对应物理端口的对应关系,因此交换设备可以通过查询mac表实现对该报文的准确传输,而不需通过泛洪的将该报文在多个物理端口上进行传输,由此避免了由于mac表不完整导致的数据传输压力大的问题。
10.在一种可能的设计中,该方法还包括:该交换设备接收报文,该报文包括目的mac地址。该交换设备在该mac表中查询该目的mac地址。当在该mac表中查询到该目的mac地址时,通过该mac表中,与该目的mac地址对应的物理端口传输该报文。其中该目标mac地址对
应的物理端口为该交换设备与具有该目的mac的设备通信的物理端口。基于该方案,在该示例中,交换设备可以用于将数据转发给主机中的虚拟机。由于mac表中存储了所有虚拟机的mac地址与对应的物理端口信息,因此,当有数据需要传输给虚拟机时,交换设备可以通过查询该mac表,确定对应报文的传输物理端口并进行传输。
11.在一种可能的设计中,该方法还包括:当在该mac表中未查询到该目的mac地址时,通过与接收该报文的端口对应的转发端口传输该报文。基于该方案,在该示例中,交换设备还可以将数据转发给其他设备,如与交换设备连接的交换机等。示例性的,当数据是由主机中的虚拟机发出,需要通过交换机发往外网设备时,该数据对应报文的dmac地址由于不是虚拟机的mac地址,因此不会从mac表中查询获取对应的端口信息,此时交换设备就通过与接收该报文的物理端口对应的连接到交换机的物理端口(如转发端口)发出,由此实现数据的向外网的顺利转发。
12.在一种可能的设计中,该方法还包括:该交换设备在接收该mac地址时,接收来自该主机的第一操作标识,该第一操作标识用于指示该mac地址是新增的虚拟设备的mac地址。基于该方案,交换设备在获取mac地址的同时,还可以接收用于指示该mac地址为新增的mac地址的标识,如第一操作标识,以便交换设备能够更加准确地确定该mac地址为新增的地址,需要在mac表中增加对应的表项。
13.在一种可能的设计中,该方法还包括:该交换设备通过该物理端口接收来自该主机的该mac地址和第二操作标识,该第二操作标识用于指示该mac地址是删除的虚拟设备的mac地址。该交换设备删除该mac表中该mac地址与该物理端口的对应关系。基于该方案,交换设备除了可以根据上述示例中的方案进行mac表的表项添加,还可以删除mac表中已经无效的表项,如在主机中已经被删除对应虚拟机的mac地址的相关表项。示例性的,交换设备可以获取mac地址,以及指示该mac地址已经被删除的标识(如第二操作标识),并据此从mac表中删除该mac地址及其对应的表项。由此实现精简mac表的作用。
14.第二方面,提供一种数据处理方法,该方法包括:主机创建虚拟设备。该主机为该虚拟设备配置mac地址。该主机向交换设备发送该虚拟设备的mac地址。基于该方案,主机可以在每新增一个虚拟机并为其分配mac地址时,向交换设备(如共享网卡)发送该mac地址,以便告知交换设备有新增的虚拟机可能用于数据传输。在一种实现方式中,该mac地址可以为交换设备更新mac表提供充分的基础。
15.在一种可能的设计中,该方法还包括:该主机向该交换设备发送第一操作标识,该第一操作标识用于指示该mac地址是新增的虚拟设备的mac地址。基于该方案,主机可以在发送新增的mac地址的同时,发送第一操作标识,用于标示该mac地址时新增的,以提高对该mac地址相关数据的使用准确度。
16.在一种可能的设计中,该方法还包括:该主机删除该虚拟设备。该主机向该交换设备发送第二操作标识。该第二操作标识用于指示该mac地址是删除的虚拟设备的mac地址。基于该方案,主机还可以在每删除一个虚拟机及其对应的mac地址(如虚拟机的卸载,虚拟机的迁移等)时,主动向交换设备发送对应信息,例如已经删除的mac地址以及用于指示该mac地址为被删除的mac地址的标识(如第二操作标识),以便该交换设备可以根据该信息进行相关处理,如从mac表中删除对应mac地址的相关表项。
17.第三方面,提供一种交换设备,包括:通信单元和编辑单元。该通信单元,用于通过
物理端口接收来自主机的媒体存取控制mac地址,该mac地址是该主机新增的虚拟设备的mac地址。该编辑单元,用于在mac表中添加该mac地址与该物理端口的对应关系。
18.在一种可能的设计中,该交换设备还包括:查询单元。该通信单元,还用于接收报文,该报文包括目的mac地址。该查询单元,用于在该mac表中查询该目的mac地址。该通信单元,还用于当在该mac表中查询到该目的mac地址时,通过该mac表中,与该目的mac地址对应的物理端口传输该报文。其中该目标mac地址对应的物理端口为该交换设备与具有该目的mac的设备通信的物理端口。
19.在一种可能的设计中,该通信单元,还用于当在该mac表中未查询到该目的mac地址时,通过与接收该报文的端口对应的转发端口传输该报文。
20.在一种可能的设计中,该通信单元,还用于在接收该mac地址时,接收来自该主机的第一操作标识,该第一操作标识用于指示该mac地址是新增的虚拟设备的mac地址。
21.在一种可能的设计中,该通信单元,还用于通过物理端口接收来自该主机的该mac地址和第二操作标识,该第二操作标识用于指示该mac地址是删除的虚拟机的mac地址。该编辑单元,还用于删除该mac表中该mac地址与该物理端口的对应关系。
22.第四方面,提供一种主机,该主机包括:创建单元,配置单元和通信单元。该创建单元,用于创建虚拟设备。该配置单元,用于为该虚拟设备配置mac地址。该通信单元,用于向交换设备发送该虚拟设备的mac地址。
23.在一种可能的设计中,该通信单元,还用于向该交换设备发送第一操作标识,该第一操作标识用于指示该mac地址是新增的虚拟设备的mac地址。
24.在一种可能的设计中,该主机还包括:删除单元,该删除单元,还用于删除该虚拟设备。该通信单元,还用于向该交换设备发送第二操作标识。该第二操作标识用于指示该mac地址是删除的虚拟设备的mac地址。
25.第五方面,提供一种交换设备,该交换设备包括处理器和物理端口,处理器用于执行如第一方面及其可能的设计中的任一项所述的数据处理方法。示例性的,该处理器用于:通过该物理端口接收来自主机的媒体存取控制mac地址,该mac地址是该主机新增的虚拟设备的mac地址;在mac表中添加该mac地址与该物理端口的对应关系。
26.在一种可能的设计中,该处理器还用于:接收报文,该报文包括目的mac地址;在该mac表中查询该目的mac地址;当在该mac表中查询到该目的mac地址时,通过该mac表中,与该目的mac地址对应的物理端口传输该报文;其中该目标mac地址对应的物理端口为该交换设备与具有该目的mac的设备通信的物理端口。
27.在一种可能的设计中,该处理器还用于当在该mac表中未查询到该目的mac地址时,通过与接收该报文的端口对应的转发端口传输该报文。
28.在一种可能的设计中,该处理器还用于在接收该mac地址时,接收来自该主机的第一操作标识,该第一操作标识用于指示该mac地址是新增的虚拟设备的mac地址。
29.在一种可能的设计中,该处理器还用于:通过该物理端口接收来自该主机的该mac地址和第二操作标识,该第二操作标识用于指示该mac地址是删除的虚拟设备的mac地址;删除该mac表中该mac地址与该物理端口的对应关系。
30.第六方面,提供一种主机,该主机包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与该一个或多个处理器耦合,该一个或多个存储器存储有计算机指令。
当该一个或多个处理器执行该计算机指令时,使得该主机执行如第二方面及其可能的设计中的任一项所述的数据处理方法。
31.第七方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行如第一方面及其可能的设计中的任一项所述的数据处理方法和/或如第二方面及其可能的设计中的任一项所述的数据处理方法。
32.第八方面,本技术提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面及其可能的设计中的任一项所述的数据处理方法和/或如第二方面及其可能的设计中的任一项所述的数据处理方法。
33.第九方面,提供一种芯片系统,该芯片系统包括处理电路和接口。该处理电路用于从存储介质中调用并运行该存储介质中存储的计算机程序,以执行如第一方面及其可能的设计中的任一项所述的数据处理方法和/或如第二方面及其可能的设计中的任一项所述的数据处理方法。
34.可以理解地,上述第三方面提供的交换设备,第四方面提供的主机,第五方面提供的交换设备,第六方面提供的主机,第七方面提供的计算机可读存储介质,第八方面提供的计算机程序产品以及第九方面提供的芯片系统均可以用于执行第一方面以及第一方面各种可能的设计所提供的数据处理方法或第二方面以及第二方面各种可能的设计所提供的数据处理方法,因此,其所能达到的有益效果类似,此处不再赘述。
附图说明
35.图1为一种设置有虚拟机的通信网络的组成示意图;
36.图2为本技术实施例提供的一种通信网络的组成示意图;
37.图3为本技术实施例提供的一种mac表的获取方法的流程示意图;
38.图4为本技术实施例提供的又一种mac表的获取方法的流程示意图;
39.图5为本技术实施例提供的一种数据处理方法的流程示意图;
40.图6为本技术实施例提供的又一种数据处理方法的流程示意图;
41.图7为本技术实施例提供的又一种数据处理方法的流程示意图;
42.图8为本技术实施例提供的一种交换设备的组成示意图;
43.图9为本技术实施例提供的一种主机的组成示意图;
44.图10为本技术实施例提供的又一种交换设备的组成示意图;
45.图11为本技术实施例提供的又一种主机的组成示意图;
46.图12为本技术实施例提供的一种芯片系统的组成示意图;
47.图13为本技术实施例提供的又一种芯片系统的组成示意图。
具体实施方式
48.在主机中可以通过设置虚拟设备(例如虚拟机),实现在不扩充硬件资源的前提下,充分发挥主机的数据处理能力。虚拟机在工作时,不可避免的需要同其他设备进行数据的交互。当虚拟机要向其他设备传输数据时,可以通过主机中设置的虚拟交换机制(如设置交换桥(bridge)),将数据通过主机的物理端口发送给交换设备,进而通过交换设备将对应数据转发给其他设备。本实施例中,以交换设备为工作在mac层的设备,如共享网卡为例进
行说明。类似的,数据可以经过共享网卡转发至对应主机,再在主机中的虚拟交换机制的引导下,发送到对应的虚拟机。由此便实现了虚拟机之间的数据交互。
49.示例性的,图1示出了一种设置有虚拟机的通信网络的组成示意图。其中以该网络中包括两个主机(如host 1和host 2),每个主机中都设置有2个虚拟机(如在host 1中设置有虚拟机vm1-1和vm1-2,在host 2中设置有虚拟机vm2-1和vm2-2),host1与host2通过共享网卡通信,虚拟交换机制通过交换桥实现为例。
50.虚拟机可以通过对应的虚拟端口,与主机中的虚拟交换的一端实现逻辑连接,虚拟交换的另一端可以与主机的物理端口实现逻辑连接。例如,如图1所示,vm1-1可以通过虚拟端口101与交换桥1的虚拟侧实现逻辑连接,vm1-2可以通过虚拟端口102与交换桥1的虚拟侧实现逻辑连接,交换桥1的物理侧可以与host 1的物理端口103实现逻辑连接。类似的,vm2-1可以通过虚拟端口104与交换桥2的虚拟侧实现逻辑连接,vm2-2可以通过虚拟端口105与交换桥2的虚拟侧实现逻辑连接,交换桥2的物理侧可以与host 2的物理端口106实现逻辑连接。
51.共享网卡的主机侧可以设置有多个物理端口,分别与不同主机逻辑连接。其中,共享网卡可以通过多种不同的形式实现与主机的逻辑连接,例如,共享网卡可以通过如图1所示物理端口110以及物理端口111,分别通过高速串行计算机扩展总线(peripheral component interconnect express,pcie)1和pcie 2实现与host 1以及host 2连接。共享网卡上还可设置有一个或多个用于与其他设备(如工作在协议层的交换机等)实现逻辑连接的物理端口,如图1所示的物理端口107,物理端口108以及物理端口109。
52.一般而言,数据是以报文的形式在网络中进行传递的。报文中可以包括报文头以及数据载荷。其中,报文头包括对应的标识。例如,报文的报文头中可以包括一个源mac(smac)以及一个dmac。其中,smac为发送该报文的设备的mac地址,dmac为接收该报文的设备的mac地址。根据smac以及dmac,传递该报文的设备就能够知晓该报文的来源以及目的地,以便将其传输到与dmac对应的设备。数据载荷用于承载对应的数据。
53.示例性的,结合图1,以vm1-1想要传输报文1给vm2-1为例。vm1-1可以将smac为mac1-1,dmac为mac2-1的报文1通过虚拟端口101传输给交换桥1,交换桥1将该报文1通过物理端口103发出,通过pcie 1传输给共享网卡。
54.在共享网卡中,可以存储有mac表,该mac表中存储有不同mac地址与对应的物理端口的对应关系,以便共享网卡可以根据该mac表进行数据的转发。例如,对于共享网卡而言,具有mac 1的虚拟设备运行在共享网卡的物理端口连接的主机上,则该mac表可以存储有mac 1与物理端口1的对应关系。以便当有报文需要传输给具有mac 1的虚拟设备时,共享网卡可以通过物理端口1传输该报文。
55.在接收到报文1后,共享网卡可以通过查询该mac表中,与报文1的dmac对应的匹配项,确定具有该dmac的虚拟设备对应的物理端口(如物理端口111),并将该报文1通过物理端口111传输给host 2。对应的,host 2在接收到该报文1后,可以根据其dmac,将该报文转发给vm2-1。由此就实现了报文在vm1-1和vm2-1之间的传输。其中,dmac对应的物理端口可以为共享网卡与具有dmac的虚拟设备通信的物理端口。
56.当然,如果报文需要传输给其他设备(如与外网进行数据交换的交换机等)时,共享网卡也可根据该报文的dmac,查询mac表,确定对应的物理端口(如物理端口107),并通过
该物理端口107,传输该报文。由此实现报文的向外传输。
57.可以看到,mac表在交换设备进行数据转发时,起到了至关重要的作用。由于主机中,虚拟设备的mac地址一般是在新增虚拟设备时,主机为其配置的,而此mac地址并不为交换设备所知。因此,交换设备需要通过一定方法获取并存储该mac表。
58.通常,mac表可以通过mac学习的方式获取物理端口与mac的对应关系。示例性的,共享网卡可以记录每个收到的报文包括的smac与接收该报文的物理端口的对应关系,存储在mac表中。例如,共享网卡在通过物理端口1接收到smac为mac 1的报文时,可以在mac表中存储mac 1与物理端口1的对应关系。这样,在接收到dmac为mac 1的报文时,共享网卡可以通过该物理端口1传输该报文。
59.然而,这种mac表的获取以及存储方式,也存在明显的问题。由于mac学习的mac表获取机制,导致mac表中的内容很难覆盖所有与交换设备连接的所有虚拟设备的mac地址,这样,就会导致在进行数据转发时,经常出现由于无法从mac表中查到与dmac对应的物理端口,而进行的泛洪(flooding)传输,即通过共享网卡上,除接收该报文的物理端口之外的所有物理端口发送该报文。由于一个报文只有在发送到预期dmac对应的设备时才是有效的,因此,这种泛洪的传输方法无疑会降低数据传输效率。而由于上述mac表的学习机制,无法保证mac表中包括所有可能的dmac以及对应物理端口的对应关系,因此这种泛洪的传输是不可避免的。
60.另外,由于需要尽可能地确定不同dmac与物理端口的对应关系,因此,在mac表也会存储与该交换设备连接的交换机及其后端设备的mac地址。一般而言,与交换机所连接的设备数量是非常庞大的,因此就会导致mac表中包括较大的数据量,由此也就对交换设备的存储能力提出了更高的要求。
61.为了解决上述问题,本技术实施例提供一种数据处理方法,能够在简化mac表的同时,保证mac表中对应关系的完整性与准确性。并保证基于该mac表的数据处理的高效。
62.以下结合附图,对本技术实施例提供的技术方案进行详细说明。
63.请参考图2,为本技术实施例提供的一种通信网络的组成示意图。该通信网络中包括一个或多个主机(如,图2所示的主机1-主机m)。主机中运行有一个或多个操作系统,通过主机中的操作系统,可以在一个主机中设置一个或多个虚拟网络。一个虚拟网络可以对应一个虚拟机。例如,如图2所示,该通信网络中的每个主机中都可设置有n个虚拟机。需要说明的是,当通信网络中包括多个主机时,每个主机中的虚拟机的数量可以相同,也可不同,图2中仅以每个主机中都包括n个虚拟机为例。
64.一般的,为了区分不同的虚拟网络,每个虚拟网络都可以设置有一个虚拟端口,用于与其他网络进行数据通信。虚拟端口都配置有对应的虚拟mac地址。本技术实施例中,虚拟端口的虚拟mac地址,也可称为虚拟机的虚拟mac地址,或称为虚拟机的mac地址。在一些实施例中,在该通信网络中的每个主机中都可以设置有虚拟网卡(network interface controller,nic)管理模块,以实现对虚拟端口的配置和管理。例如,虚拟nic管理模块可以用于为新增的虚拟机配置对应的虚拟端口,并为该虚拟端口设置对应的mac地址。又如,虚拟nic管理模块还可用于删除的已经删除的虚拟机对应的虚拟端口及其mac地址,释放资源。该虚拟nic管理模块,还可以用于在新增mac地址时,向交换设备发送该mac地址或者mac地址以及对应的新增标识。该虚拟nic管理模块,还可以用于在删除mac地址时,向交换设备
发送该mac地址或者该mac地址以及对应的删除标识。
65.如图2所示,该通信网络中还可以包括与主机连接的交换设备。该交换设备可以为共享网卡等工作在mac层的设备。该交换设备可以用于将数据转发给不同的主机。交换设备还可通过其上设置的物理端口与一个或多个其他设备(如进行外网交换的交换机等)连接(图2中未示出),以便接收来自交换机的数据,或者,将数据处理给交换机。其中,主机可以通过pcie等通信线缆与交换设备实现连接。交换设备可以通过光纤,网线等线缆与交换机实现连接。当然,主机与交换设备以及交换机,也可以是通过无线的方式实现相互之间的数据通信。本技术实施例对此不作限制。
66.本技术实施例中,交换设备可以根据mac表,进行报文的正确转发。作为一种示例,主机可以在新增虚拟机时,向交换设备发送对应的新增虚拟机的mac地址。交换设备可以根据收到的mac地址,更新mac表,如存储新增的mac地址与接收该mac地址的物理端口的对应关系。以便在接收到dmac为上述新增的mac地址的报文时,通过mac表中存储的与该mac地址对应的物理端口转发该报文。本技术实施例中接收该mac地址的物理端口也是共享网卡连接运行该虚拟机的主机的物理端口。在另一些实施例中,主机可以在删除虚拟机时,向交换设备发送对应的删除的虚拟机的mac地址。交换设备可以根据收到的mac地址,更新mac表,如删除该mac地址与接收该mac地址的物理端口的对应关系。以便保证mac表中mac地址与物理端口对应关系的准确性。
67.作为一种实现方式,一个主机可以对应一个设置有一个或多个存储器以及一个或多个处理器的板卡,交换设备(如共享网卡)也可对应一个具有对应功能的板卡,这些板卡可以分别插接在高速通信背板上,以实现如图2所示通信网络的搭建。
68.可以理解的是,如图1所示的通信网络,是如图2所示的通信网络中的一个具体示例,本技术实施例提供的数据处理方法,可以应用于上述如图2(例如,如图1所示的通信网络)所示的通信网络中。
69.为了能够更加清楚地对本技术实施例提供的技术方案进行说明,以下示例中,以交换设备为共享网卡,应用于上述如图1所示的通信网络中为例。
70.可以理解的是,数据在交换设备中的转发,是基于mac表实现的。因此,以下首先对本技术实施例提供的数据处理方法中,mac表的获取方法进行示例说明。
71.请参考图3,为本技术实施例提供的一种mac表的获取方法。如图3所示,该方法可以包括s301-s304。
72.s301、主机中新增虚拟机并且为虚拟机配置mac1-1。
73.一般而言,主机中的虚拟机的设置,是可以根据需求灵活设置。例如,在主机上电时,其中未设置任何虚拟机。当需要使用虚拟机进行报文处理时,可以通过主机中的操作系统,在主机的硬件架构的基础上,设置一个或多个虚拟机。又如,在主机正常工作时,可以根据需求,通过其中的操作系统,新增额外的一个或多个虚拟机。本技术实施例中的新增虚拟机也可以称为创建虚拟机。
74.示例性的,如图1所示,在host 1创建vm1-1和vm1-2。类似的,在host 2创建vm2-1和vm2-2。
75.需要说明的是,为了保证虚拟机的独立运行,需要在报文传输时区分同一个主机上运行的不同虚拟机。因此,每个虚拟机都配置有一个虚拟端口,每个虚拟端口都对应一个
mac地址。这样,在报文被传输时,就可根据不同的虚拟机对应的mac地址,将报文传输到对应的虚拟机中,以便实现虚拟机对报文的独立处理。作为一种示例,主机可以通过设置其中的虚拟nic管理模块,实现对虚拟端口的配置和管理。
76.示例性的,继续结合图1,host 1可以通过其中的虚拟nic管理模块,为vm1-1分配虚拟端口,如虚拟端口101。虚拟nic管理模块还可以用于为虚拟端口101分配mac地址,如mac1-1。这样,就为vm1-1配置了对应mac1-1的虚拟端口。
77.可以理解的是,host 1还可以通过其中的虚拟nic管理模为vm1-2分配虚拟端口(虚拟端口102),并为虚拟端口102分配mac地址(如mac1-2)。类似的,host 2可以通过其中的虚拟nic管理模为vm2-1分配虚拟端口(虚拟端口104),并为虚拟端口104分配mac地址(如mac2-1)。host 2还可以通过其中的虚拟nic管理模为vm2-2分配虚拟端口(虚拟端口105),并为虚拟端口105分配mac地址(如mac2-2)。
78.s302、主机向共享网卡发送mac1-1。
79.本技术实施例中,主机可以在新增配置有mac地址的虚拟机时,向共享网卡发送对应的mac地址。
80.示例性的,继续结合图1,host 1在新增vm1-1时,虚拟nic管理模块可以通过虚拟交换,物理端口103,以及pcie 1,向共享网卡发送该mac1-1。
81.类似的,host 1在新增vm1-2时,虚拟nic管理模块可以通过虚拟交换,物理端口103,以及pcie 1,向共享网卡发送该mac1-2。host 2在新增vm2-1时,虚拟nic管理模块可以通过虚拟交换,物理端口106,以及pcie 2,向共享网卡发送该mac2-1。host 2在新增vm2-2时,虚拟nic管理模块可以通过虚拟交换,物理端口106,以及pcie 2,向共享网卡发送该mac2-2。
82.s303、共享网卡通过物理端口接收来自主机的mac1-1。
83.s304、共享网卡在mac表中添加mac1-1与接收该mac1-1的物理端口的对应关系。
84.在本技术实施例中,共享网卡在接收到主机发送的mac地址时,默认该mac地址为新增的虚拟机的mac地址。由此共享网卡就可以知晓,在接收到该mac地址的物理端口后,新增了一个mac地址,因此就可以在mac表中存储该mac地址与接收该mac地址的对应关系。
85.示例性的,结合图1,以共享网卡接收到了分别来自于host 1以及host 2的mac1-1,mac1-2,mac2-1以及mac2-2为例。共享网卡在通过物理端口110接收到mac1-1和mac1-2时,就可以知晓在物理端口110连接的主机上新增了具有这两个mac地址的虚拟机,则共享网卡可以在其mac表中存储mac1-1与物理端口110的对应关系,以及mac1-2与物理端口110的对应关系。类似的,共享网卡在通过物理端口111接收到mac2-1和mac2-2时,就可以知晓在物理端口111连接的主机上新增了具有这两个mac地址的虚拟机,则共享网卡可以在其mac表中存储mac2-1与物理端口111的对应关系,以及mac2-2与物理端口111的对应关系。
86.作为一种示例,共享网卡存储了上述信息后,获取的mac表可以如表1所示。
87.表1
88.mac地址物理端口mac1-1物理端口110mac1-2物理端口110mac2-1物理端口111
mac2-2物理端口111
89.需要说明的是,以上示例中,是以mac表中包括的对应关系为mac地址与共享网卡上的物理端口之间的对应关系为例的。在本技术的另一些实施例中,由于在搭建如图1所示的通信网络时,共享网卡需要为与其连接的主机,如host 1与host 2,分配不同的mac地址。因此,共享网卡能够知晓应该通过哪个物理端口才能将报文发送到对应的主机。因此,mac表中包括的对应关系,还可以是mac地址与主机名之间的对应关系。例如,包括该类型的对应关系的mac表如表2所示。
90.表2
91.mac地址主机名mac1-1host 1mac1-2host 1mac2-1host 2mac2-2host 2
92.在另一些实施例中,由于不同主机的mac地址是由共享网卡分配的,因此,共享网卡能够知晓应该通过哪个物理端口才能将报文发送到具有对应mac地址的主机。因此,mac表中包括的对应关系,还可以是mac地址与主机的mac地址之间的对应关系。
93.应当理解的是,上述仅仅为本技术实施例提供的mac表的组成示例。在具体的实现过程中,可以根据实际需要,选取上述示例中的任意一种,或者其他类型的对应关系,作为mac表的内容。本技术实施例对此不作限制。以下以mac表中存储有mac地址与共享网卡上的物理端口为例进行说明。
94.以上示例是以共享网卡接收到mac地址后默认该mac地址为新增的虚拟机的mac地址为例进行说明的,在另一些实施例中,主机在发送新增的虚拟机的mac地址时,还可发送第一操作标识,该标识可以用于标示发送的mac地址为新增的虚拟机的mac地址。共享网卡在接收该第一操作标识以及mac地址后,就可明确该mac地址为新增的虚拟机的mac地址,进而将该mac地址与接收到该mac地址的物理端口的对应关系添加到mac表中。作为一种可能的实现方式,第一操作标识可以是任意一种能够用于标示对应mac地址为新增的虚拟机的mac地址的标识。例如,可以在报文头中的固定字段,用“1”标识该mac地址为新增的虚拟机的mac地址。在该示例中,通过在发送mac地址时发送第一操作标识,能够使得共享网卡进一步地确定需要在mac表中添加该mac地址相关的表项,由此能够提升mac表中对应关系的准确度。
95.基于该方案上述方案,共享网卡中的mac表可以存储有与之连接的所有主机中,设置的虚拟机的mac地址与共享网卡上的物理端口的对应关系(如表1所示的对应关系)。与现有技术中的mac表获取方法相比,根据本技术实施例提供的方案,能够保证mac表中包括多有mac地址的对应关系,进而在报文需要被转发给虚拟机时,不需要进行泛洪传输,由此能够有效地减小网络的传输压力。
96.由于主机中的虚拟机是根据需求所设置的,因此,当需求变更时,可能会将部分虚拟机删除,由此也就删除了对应的mac地址。本技术实施例中,在由于虚拟机被删除等原因导致的mac地址被删除时,主机还可向共享网卡发送该删除的mac地址,以便共享网卡更新mac表,以精简mac表中已经被删除的mac地址的对应关系,降低共享网卡对于mac表的存储
压力。
97.作为一种示例,请参考图4,为本技术实施例提供的一种数据处理方法。通过该方法,主机可以在删除虚拟机时将删除的虚拟机的mac地址发送给共享网卡,以便共享网卡据此进行mac表的精简。如图4所示,该方法可以包括s401-s404。
98.s401、主机中删除配置有mac1-1的虚拟机。
99.s402、主机向共享网卡发送mac1-1和第二操作标识。
100.可以理解的是,由于共享网卡接收到的主机发送的mac地址,可能是新增的,也可能是删除的。因此,在一些实现方式中,主机在发送mac1-1时,还可以向共享网卡发送第二操作标识,用于指示mac1-1是删除的虚拟机的mac地址。这样,共享网卡就可以根据该操作标识,确定接收到的mac1-1为删除的虚拟机的mac地址,并据此进行对应操作。
101.其中,该第二操作标识的形式可以与上述第一操作标识类似,可以是任意一种能够用于标示对应mac地址为删除的虚拟机的mac地址的标识。例如,可以在报文头中的固定字段,用“0”标识该mac地址为删除的虚拟机的mac地址。
102.s403、共享网卡接收来自主机的mac1-1和第二操作标识。
103.s404、共享网卡在mac表中删除mac1-1与对应端口的对应关系。
104.共享网卡可以根据获取的mac1-1以及第二操作标识,确定该mac1-1为删除的虚拟机的mac地址。据此,共享网卡就可以调整mac表中的对应表项,如删除与该mac1-1对应的表项,以达到精简mac表的目的。
105.示例性的,结合图1,共享网卡可以通过物理网口110获取mac1-1以及第二操作标识。据此,共享网卡就可以根据该第二操作标识,确定主机中已经不存在mac1-1。共享网卡就可以从其存储的mac表中删除mac1-1与物理网口110的对应关系。
106.类似的,当主机中删除了mac1-2,和/或mac2-1,和/或mac2-2对应的虚拟机时,也可在发送对应mac地址以及第二操作标识,以便共享网卡据此删除mac表中对应的表项。
107.需要说明的是,上述示例中涉及的在mac表中新增mac地址对应的方法,及上述涉及的在mac表中删除mac地址对应的方法,不存在逻辑上的先后顺序,可以根据实际情况同时或不同时执行,本技术实施例对此不作限制。
108.基于上述图3以及图4的方法,共享网卡就可以获取包括所有虚拟机的mac地址以及对应物理端口的对应关系的mac表。据此,共享网卡就可以进行数据的转发。
109.示例性的,请参考图5,为本技术实施例提供的一种数据处理方法的流程示意图。如图5所示,该方法可以包括s501-s504。
110.s501、共享网卡接收报文。
111.共享网卡可以通过其连接主机的物理端口接收来自主机中的虚拟机的报文,也可通过其上设置的物理端口,接收来自交换机的报文。
112.如上述说明,在报文的报文头中,可以包括有用于指示接收该报文的设备的mac地址的标识,例如,该标识可以是报文头中的dmac。
113.s502、共享网卡根据该报文中包括的dmac,在mac表中查找是否存在与该dmac对应的mac地址。
114.共享网卡在接收到报文后,可以提取该报文中的dmac,以便根据该dmac,确定接受该报文的设备。并根据该设备的mac地址(即dmac),在存储的mac表中查询是否存在与该
dmac对应的mac地址。如果存在,认为mac表中存在与dmac对应的物理端口,执行以下s503。如果不存在,认为mac表中不存在与dmac对应的物理端口,则执行以下s504。
115.需要说明的是,本技术实施例中,共享网卡在mac表中查询是否存在与该dmac对应的mac地址的方法可以是灵活设置的。作为一种示例,共享网卡可以根据该dmac,查询mac表中,是否存在与该dmac相同的mac地址,即确定该mac表中是否包括dmac。以便共享网卡确定mac表中查询是否存在与该dmac对应的mac地址。
116.s503、通过mac表中,与该dmac对应的物理端口传输该报文。
117.可以理解的是,基于上述对图3以及图4的说明,本技术实施例中,共享网卡里存储的mac表包括所有虚拟机的mac地址,因此,当mac表中存在与该dmac对应的mac地址时,则包括该dmac的报文就是需要被传输给虚拟机的报文。
118.共享网卡可以根据mac表中,与该dmac对应的物理端口,传输该报文给对应的主机,以便主机将该报文传输给对应的虚拟机。
119.s504、通过与接收该报文的物理端口对应的转发端口传输报文。
120.类似于s503中的说明,由于共享网卡里存储的mac表包括所有虚拟机的mac地址,因此,如果在mac表中查询不到报文的dmac,则该报文是需要被传输给交换机的。
121.需要说明的是,一般而言,主机的mac地址是共享网卡的为其配置的,而在为每个主机配置mac地址时,共享网卡都会将该主机的mac地址与共享网卡中的一个连接交换机的端口相关联。也就是说,当该主机要向交换机发送数据时,都会通过与该主机的mac地址关联的物理端口传输给对应的交换机。而由于一个主机与共享网卡之间的数据处理的物理端口是固定的,因此,接收报文的物理端口就存在一个对应的物理端口可以将该报文传输给交换机。本技术实施例中,可以将该与接收报文的物理端口对应的,与交换机连接的物理端口称为接收报文的物理端口对应的转发端口。
122.本技术实施例中,可以将dmac不在mac表中的报文,通过对应的转发端口发送给交换机,以实现报文在共享网卡中的转发。
123.为了使得本领域技术人员能够更加清楚地对本技术实施例所提供的方案有所了解,以下结合实例,对如图5所示的数据处理方法进行示例说明。请参考图6,为本技术实施例提供的又一种数据处理方法的流程示意图。其中,以数据对应的报文在如图1所示的通信网络中进行传输,报文1需要被传输给与共享网卡连接的虚拟机为例。如图6所示,该方法可以包括s601-s604。
124.s601、共享网卡接收报文1。
125.其中,该报文1可以是由host 1,或host 2上运行的虚拟机发出的,也可以是共享网卡通过物理端口107,或物理端口108,或物理端口109从交换机接收到的。
126.该报文1的报文头中可以携带有dmac,用于指示接收该报文1的设备的mac地址。
127.s602、共享网卡提取该报文1的dmac。
128.共享网卡在接收到报文1后,可以提取该报文1的报文头中的dmac。示例性的,共享网卡可以从预设的字段位置,提取报文头中的对应字段,以确定dmac。
129.s603、共享网卡在mac表中查询与该dmac对应的物理端口。
130.s604、共享网卡通过该物理端口,传输报文1。
131.由于mac表中包括了所有虚拟机的mac地址与对应物理端口的对应关系(如上述表
1的对应关系),而报文1是被传输给虚拟机的,因此,共享网卡必定能够从mac表查询到与dmac一致的mac地址。进而通过与该dmac对应的端口传输该报文1。
132.例如,当dmac为mac1-1时,则共享网卡通过物理端口110传输该报文1。当dmac为mac1-2时,则共享网卡通过物理端口110传输该报文1。当dmac为mac2-1时,则共享网卡通过物理端口111传输该报文1。当dmac为mac2-2时,则共享网卡通过物理端口111传输该报文1。
133.请参考图7,为本技术实施例提供的又一种数据处理方法的流程示意图。其中,以数据对应的报文在如图1所示的通信网络中进行传输,报文2需要被传输给与共享网卡连接的交换机为例。如图7所示,该方法可以包括s701-s704。
134.s701、共享网卡接收报文2。
135.其中,该报文2可以是由host 1,或host 2中的虚拟机发出的,将要发送给交换机的报文。
136.类似于报文1,该报文2的报文头中可以携带有dmac,用于指示接收该报文2的设备的mac地址。
137.s702、共享网卡提取该报文2的dmac。
138.该步骤与s701类似,其实现方式也可以互相参考,此处不再赘述。
139.s703、共享网卡确定mac表中不包括该dmac。
140.基于上述mac表的获取方法的说明,本技术实施例中,mac表中存储有所有的虚拟机的mac地址与对应物理端口的对应关系。也就是说,mac表中不包括交换机以及交换机后端的其他设备的mac地址。
141.在该实现方式中,共享网卡可以根据报文2的dmac,在mac表中进行查找,当没有命中项,则说明mac表中不存在该dmac,也就是说,该报文2不是发送给虚拟机的报文。
142.s704、共享网卡通过与接收报文2的物理端口对应的转发端口,传输报文2。
143.共享网卡在确定报文2的dmac不包括在mac表中后,则确定需要将该报文2发送给交换机。例如,从物理端口107,物理端口108或物理端口109发送该报文2。根据接收该报文2的物理端口,共享网卡就可以确定与该物理端口对应的转发端口,并通过该转发端口传输该报文2。
144.作为一种示例,以物理端口110与物理端口107对应,物理端口110与物理端口109对应为例。当报文2是从物理端口110接收时,共享网卡可从物理端口107传输该报文2。类似的,当报文2是从物理端口111接收时,共享网卡可从物理端口109传输该报文2。
145.应当理解的是,通过上述图3,图4,图5,图6以及图7的说明,本领域技术人员应当能够清晰准确地知晓本技术实施例所提供的技术方案。通过该方案,可以保证共享网卡的mac表中,能够覆盖所有的虚拟机的mac地址与对应物理端口的对应关系,并且能够实时地根据虚拟机的新增和/或删除,对mac表进行调整,以及时新增新的mac地址与对应端口的对应关系,删除不会使用的mac地址与对应物理端口的对应关系。进一步的,由于采用了如图5,图6或图7的数据处理方法,因此在mac表中不需要存储交换机以及交换机后端的设备的mac地址与物理端口的对应关系,由此极大地精简了mac表,使得交换设备(如共享网卡)存储该mac表的存储压力得到有效的缓解。另外,由于采取了上述mac表,使得共享网卡在查询mac表时,能够更快地获取与dmac对应的物理端口,或确定mac表中不包括该dmac,进而进行对应的传输,由此提升了报文的传输效率。
146.上述主要从主机以及交换设备的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
147.本技术实施例可以根据上述方法示例对上述主机以及交换设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
148.请参考图8,为本技术实施例提供的一种交换设备800的组成示意图。如图8所示,该交换设备800可以包括:通信单元801和编辑单元802。
149.该通信单元801,用于通过物理端口接收来自主机的媒体存取控制(mac)地址,该mac地址是该主机新增的虚拟设备的mac地址。
150.该编辑单元802,用于在mac表中添加该mac地址与该交换设备从该主机接收到该mac地址的物理端口的对应关系。
151.在一种可能的设计中,该装置还包括:查询单元803。该通信单元801,还用于接收报文,该报文包括目的mac地址。该查询单元803,用于在该mac表中查询该目的mac地址。该通信单元801,还用于当在该mac表中查询到该目的mac地址时,通过该mac表中,与该目的mac地址对应的物理端口传输该报文。其中该目标mac地址对应的物理端口为该交换设备与具有该目的mac的设备通信的物理端口。
152.在一种可能的设计中,该通信单元801,还用于当在该mac表中未查询到该目的mac地址时,通过与接收该报文的端口对应的转发端口传输该报文。
153.在一种可能的设计中,该通信单元801,还用于在接收该mac地址时,接收来自该主机的第一操作标识,该第一操作标识用于指示该mac地址是新增的虚拟设备的mac地址。
154.在一种可能的设计中,该通信单元801,还用于通过物理端口接收来自该主机的该mac地址和第二操作标识,该第二操作标识用于指示该mac地址是删除的虚拟设备的mac地址。该编辑单元802,还用于删除该mac表中该mac地址与该物理端口的对应关系。
155.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。作为可选而不是必须,必要时,本技术实施例提供的交换设备800还可以包括用于支持上述通信单元801和/或编辑单元802和/或查询单元803完成相应功能的处理模块或者控制模块。
156.请参考图9,为本技术实施例提供的一种主机900的组成示意图。如图9所示,该主机900可以包括创建单元901,配置单元902和通信单元903。
157.该创建单元901,用于创建虚拟设备。
158.该配置单元902,用于为该虚拟设备配置mac地址。
159.该通信单元903,用于向交换设备发送该虚拟设备的mac地址。
160.在一种可能的设计中,该通信单元903,还用于向该交换设备发送第一操作标识,该第一操作标识用于指示该mac地址是新增的虚拟设备的mac地址。
161.在一种可能的设计中,该装置还包括:删除单元904,该删除单元904,还用于删除该虚拟设备。该通信单元903,还用于向该交换设备发送第二操作标识。该第二操作标识用于指示该mac地址是删除的虚拟设备的mac地址。
162.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。作为可选而不是必须,必要时,本技术实施例提供的主机900还可以包括用于支持上述处理单元901和/或通信单元902完成相应功能的处理模块或者控制模块。
163.请参考图10,为本技术实施例提供的又一种交换设备1000的组成示意图。该交换设备1000可以包括:处理器1001和物理端口1002。示例性的,在一些实施例中,该处理器1001可以与物理端口1002配合,执行上述说明中涉及的交换设备需要执行的任一种数据处理方法。
164.请参考图11,为本技术实施例提供的又一种主机1100的组成示意图。该主机1100可以包括:处理器1101和存储器1102。该存储器1102用于存储计算机执行指令。示例性的,在一些实施例中,当该处理器1101执行该存储器1102存储的指令时,可以使得该主机1100执行上述说明中涉及的主机需要执行的任一种数据处理方法。
165.图12示出了的一种芯片系统1200的组成示意图。该芯片系统1200可以包括:处理器1201和通信接口1202,用于支持交换设备实现上述实施例中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,用于保存交换设备必要的程序指令和数据(如mac表)。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
166.图13示出了的一种芯片系统1300的组成示意图。该芯片系统1300可以包括:处理器1301和通信接口1302,用于支持主机实现上述实施例中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,用于保存主机必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
167.本发明实施例中的虚拟设备可以为虚拟机,还可以为容器(container)等,本发明实施例对此不作限定。
168.在上述实施例中的功能或动作或操作或步骤等,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,
ssd))等。
169.尽管结合具体特征及其实施例对本技术进行了描述,显而易见的,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包括这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献