CN114095458B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN114095458B CN114095458B CN202010789929.2A CN202010789929A CN114095458B CN 114095458 B CN114095458 B CN 114095458B CN 202010789929 A CN202010789929 A CN 202010789929A CN 114095458 B CN114095458 B CN 114095458B
- Authority
- CN
- China
- Prior art keywords
- identifier
- virtual
- packet
- interface
- message
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000013507 mapping Methods 0.000 claims description 135
- 238000000034 method Methods 0.000 claims description 71
- 230000015654 memory Effects 0.000 claims description 46
- 238000011161 development Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 230000003993 interaction Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3045—Virtual queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据处理方法,虚拟交换机可以通过第一接口获取第一报文,获取第一报文之后,确定第二接口为用于转发第一报文的接口。而后,虚拟交换机根据第一标识对第一报文进行重新封装,得到包括第二标识的第二报文。第一标识用于标识第二接口,第二标识可以被虚机容器中的操作系统用于确定第一虚拟队列。其中:虚机容器包括多个部署点POD,虚机容器的操作系统基于多条虚拟队列与所述多个POD通信。第一虚拟队列为所述多个队列中的其中一个队列。第一虚拟队列用于和虚机容器中部署的其中一个部署点通信。虚拟交换机得到第二报文之后,通过第二接口将第二报文发送给虚机容器的操作系统。利用本方案,可以提升虚机容器的数据处理效率。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种数据处理方法及装置。
背景技术
随着虚拟机技术和容器技术的发展,可以将虚拟机和容器结合起来,在虚拟机上部署容器。虚拟机和容器的结合,也可以被称为“虚机容器”。虚机容器上可以包括多个部署点(POD),一个部署点中可以运行一个或者多个应用程序。
虚机容器可以和虚拟交换机(virtual switch,VSW)进行交互。目前,虚机容器和虚拟交换机进行交互时,整体数据处理效率较低。
发明内容
本申请实施例提供了一种数据处理方法,可以提升虚机容器和虚拟交换机进行交互时的整体数据处理效率。
第一方面,本申请实施例提供了一种数据处理方法,可以由虚拟交换机执行。在一个示例中,虚拟交换机可以通过第一接口获取第一报文,获取第一报文之后,可以确定转发第一报文的接口,在本申请实施例中,第二接口为用于转发第一报文的接口。虚拟交换器确定第二接口为用于转发第一报文的接口之后,可以根据第一标识对第一报文进行重新封装,得到包括第二标识的第二报文。其中,第一标识用于标识第二接口,第二标识可以被虚机容器中的操作系统用于确定第一虚拟队列。其中,虚机容器可以包括多个部署点POD,虚机容器的操作系统可以基于多条虚拟队列与所述多个POD通信。第一虚拟队列为所述多个队列中的其中一个队列。第一虚拟队列用于和虚机容器中部署的其中一个部署点通信。虚拟交换机得到第二报文之后,可以通过第二接口将第二报文发送给虚机容器的操作系统。虚机容器中的操作系统接收到第二报文之后,可以直接根据第二标识确定第一虚拟队列,从而利用第一虚拟队列将第二报文转发给第一虚拟队列对应的POD,虚机容器中的操作系统,无需解析第二报文中的目的IP地址或者目的MAC地址来确定转发第二报文的接口,直接根据第二标识即可确定基于第一虚拟队列转发第二报文,提升了虚机容器的数据处理效率。
在一种可能的实现方式中,第二标识可以与第一标识相同。对于这种情况,虚拟交换机在确定转发第一报文的接口为第二接口之后,可以直接基于第二接口的第一标识和第一报文,得的第二报文。
在一种可能的实现方式中,第二标识与第一标识不同。对于这种情况,虚拟交换机在确定转发第一报文的接口为第二接口之后,可以根据第一标识和第一映射关系,确定第二标识,而后,在根据第一报文和第二标识,得到第二报文。其中,第一映射关系用于指示第一标识和第二标识的对应关系。
在一种可能的实现方式中,虚机交换机可以利用共享虚拟队列传输经由虚拟交换机的多个接口到操作系统的报文。该多个接口可以包括第二接口、第三接口甚至第四接口。因此,虚拟交换机将第二报文发送给操作系统在具体实现时,可以利用该共享虚拟队列将第二报文发送给操作系统。
在一种可能的实现方式中,虚拟交换机具备DPDK,用于对接收到的数据进行处理。在一些实施例中,第二报文可以是DPDK报文。DPDK报文可以包括MBUF字段,MBUF字段。在一个示例中,第二报文的MBUF信息可以包括前述第二标识。换言之,前述第二标识可以携带在第二报文的MBUF字段中。
在一种可能的实现方式中,DPDK报文可以包括MBUF字段和PRIV字段。PRIV字段用于携带PRIV信息。在一个示例中,第二报文的PRIV信息可以包括前述第二标识。换言之,前述第二标识可以携带在第二报文的PRIV字段中。
在一种可能的实现方式中,虚拟交换机还可以接收来自于操作系统的第三报文,第三报文中包括第二标识。虚机交换机接收到第三报文之后,可以根据第二标识确定第二接口,并经由第二接口转发第三报文。在本申请实施例中,由于第三报文中携带第二标识,因此,虚拟交换机接收到第三报文之后,无需根据第三报文的目的IP地址或者目的MAC地址确定转发第三报文的接口,根据第二标识即可确定转发第三报文的接口,提升了虚拟交换机的数据处理效率。
在一种可能的实现方式中,虚拟交换机根据第二标识确定第二接口在具体实现时,可以根据第一映射关系和第二标识,确定标识第二接口的第一标识,从而实现根据第二标识确定第一接口,其中,第一映射关系用于指示第一标识和第二标识的对应关系。
在一种可能的实现方式中,虚拟交换机确定接收第三报文的接口为第二接口之后,可以通过第二接口转发第三报文。在一个示例中,虚拟交换机例如可以通过第三报文中的目的IP地址,确定转发第三报文的出接口,从而将第三报文转发给所述出接口。在一个示例中,转发第三报文的出接口,可以是前述第一接口。对于这种情况,可以实现对来自于第一POD的报文转发给其它设备,例如用户设备。
在一种可能的实现方式中,虚拟交换机确定接收第三报文的接口为第二接口之后,可以通过第二接口转发第三报文。在一个示例中,虚拟交换机例如可以通过第三报文中的目的IP地址,确定转发第三报文的出接口,从而将第三报文转发给所述出接口。在一个示例中,转发第三报文的出接口,可以是虚拟交换机和虚机容器交互的接口,例如第四接口。采用这种方式,可以将来自于第一POD的报文转发给虚拟容器中的其它POD例如第二POD。
在一种可能的实现方式中,虚拟交换机确定将报文转发给第四接口之后,虚拟交换机根据第三标识和第三报文,得到包括第四标识的第四报文,并通过第四接口向操作系统发送第四报文。其中:第三标识用于标识第四接口,第四标识被操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列。这样一来,操作系统接收来自于虚拟交换机的第四报文之后,操作系统根据第四标识和第三映射关系确定第二虚拟队列,其中,第三映射关系指示第四标识与所述第二虚拟队列的标识的对应关系,并基于第二虚拟队列向第二POD发送第四报文,第二POD为虚机容器中的其中一个POD。采用该方案,可以将来自于第一POD的报文转发给第二POD,在以上转发过程中,由于第四报文中包括第四标识,因此,操作系统可以直接根据第四标识和第三映射关系确定第二虚拟队列,而无需根据第四报文的目标IP地址或者目的MAC地址确定转发第四报文的接口,从而提升了操作系统的数据处理效率。
第二方面,本申请实施例提供了一种数据处理方法,可以由虚机容器执行。在一个示例中,虚机容器中的操作系统可以接收虚拟交换机发送的第二报文,第二报文包括第二标识。第二标识可以被虚机容器中的操作系统用于确定第一虚拟队列。其中,虚机容器可以包括多个部署点POD,该多个POD包括第一POD,虚机容器的操作系统可以基于多条虚拟队列与所述多个POD通信。第一虚拟队列为所述多个队列中的其中一个队列。第一虚拟队列用于和虚机容器中部署的第一POD通信。操作系统接收到第二报文之后,可以根据第二标识和第二映射关系确定第一虚拟队列,其中,第二映射关系指示第二标识和第一虚拟队列的标识的对应关系。确定第一虚拟队列之后,操作系统可以基于第一虚拟队列向第一POD发送第二报文。由此可见,利用本申请实施例的方案,操作系统可以直接根据第二标识确定第一虚拟队列,从而利用第一虚拟队列将第二报文转发给第一POD,虚机容器中的操作系统,无需解析第二报文中的IP地址或者MAC地址来确定转发第二报文的接口,直接根据第二标识即可确定基于第一虚拟队列转发第二报文,提升了虚机容器的数据处理效率。
在一种可能的实现方式中,虚机容器的操作系统可以通过第一虚拟队列接收来自于第一POD的第五报文。操作系统接收到第五报文之后,可以根据第一虚拟队列的标识和第二映射关系确定第二标识,其中,第二映射关系指示第二标识和第一虚拟队列的标识的对应关系。操作系统确定第二标识之后,可以利用第二标识对第五报文进行重新封装,得到包括前述第二标识的第三报文。其中,第三报文中的第二标识,可以被虚拟交换机用于确定转发第三报文的接口。操作系统得到第三报文之后,可以将第三报文发送给虚拟交换机。虚机交换机接收到第三报文之后,可以根据第二标识确定第二接口,并经由第二接口转发第三报文。在本申请实施例中,由于第三报文中携带第二标识,因此,虚拟交换机接收到第三报文之后,无需根据第三报文的目的IP地址或者目的MAC地址确定转发第三报文的接口,根据第二标识即可确定转发第三报文的接口,从而提升了虚拟交换机的数据处理效率。
在一种可能的实现方式中,操作系统可以利用共享虚拟队列来传输操作系统发送给虚拟交换机的多个接口的报文。因此,操作系统将第三报文发送给虚拟交换机在具体实现时,操作系统可以通过共享虚拟队列将第三报文发送给虚拟交换机。
在一种可能的实现方式中,所述第三报文是DPDK报文,所述第三报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
在一种可能的实现方式中,所述第三报文是DPDK报文,所述第三报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
在一种可能的实现方式中,所述操作系统还可以接收来自于所述虚拟交换机的第四报文,所述第四报文是所述虚拟交换机根据所述第三报文和第四标识得到的,所述第四报文包括所述第四标识,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;所述操作系统接收到第四报文之后,可以根据所述第四标识和第三映射关系确定所述第二虚拟队列,其中,所述第三映射关系指示所述第四标识与所述第二虚拟队列的标识的对应关系;而后,所述操作系统基于第二虚拟队列向第二POD发送所述第四报文,所述多个POD包括所述第二POD。由于第四报文中包括第四标识,因此,操作系统可以直接根据第四标识和第三映射关系确定第二虚拟队列,而无需根据第四报文的目标IP地址或者目的MAC地址确定转发第四报文的接口,从而提升了操作系统的数据处理效率。
在一种可能的实现方式中,虚机容器还可以包括容器管理模块,容器管理模块可以生成前述第二映射关系。作为一个示例,虚机容器的容器管理模块,可以确定与第一POD对应的第一虚拟队列的标识,并进一步确定虚拟交换机的接口中、与第一虚拟队列对应的第二接口。容器管理模块确定与第一虚拟队列对应的第二接口之后,可以进一步获取第二接口的第二标识,并根据第二标识和第一虚拟队列的标识的对应关系,得到第二映射关系。
在一种可能的实现方式中,若第二标识与第一标识不同,则容器管理模块还可以获取所述第一标识,并根据所述第一标识和所述第二标识的对应关系,得到第一映射关系。容器管理模块得到第一映射关系之后,可以将该第一映射关系发送给虚拟交换机,以便于虚拟交换机基于第一映射关系和第一标识,确定第二标识。
在一种可能的实现方式中,虚机容器的容器管理模块,可以确定与第二POD对应的第二虚拟队列的标识,并进一步确定虚拟交换机的接口中、与第二虚拟队列对应的第四接口。容器管理模块确定与第二虚拟队列对应的第四接口之后,可以进一步获取第二接口的第四标识,并根据第四标识和第二虚拟队列的标识的对应关系,得到第三映射关系。
在一种可能的实现方式中,第四标识可以和第三标识相同,第三标识用于标识第四接口。
在一种可能的实现方式中,第四标识和第三标识可以不同。若第四标识和第三标识不同,则容器管理模块还可以获取所述第三标识,并根据所述第三标识和所述第四标识的对应关系,得到第四映射关系。容器管理模块得到第四映射关系之后,可以将该第四映射关系发送给虚拟交换机,以便于虚拟交换机基于第一映射关系和第三标识,确定第四标识。
第三方面,本申请实施例提供了一种数据处理方法,可以由虚机容器执行。在一个示例中,虚机容器的操作系统可以通过第一虚拟队列接收来自于第一POD的第五报文。操作系统接收到第五报文之后,可以根据第一虚拟队列的标识和第二映射关系确定第二标识,其中,第二映射关系指示第二标识和第一虚拟队列的标识的对应关系。操作系统确定第二标识之后,可以利用第二标识对第五报文进行重新封装,得到包括前述第二标识的第三报文。其中,第三报文中的第二标识,可以被虚拟交换机用于确定转发第三报文的接口。操作系统得到第三报文之后,可以将第三报文发送给虚拟交换机。在本申请实施例中,由于第三报文中携带第二标识,因此,虚拟交换机接收到第三报文之后,无需根据第三报文的目的IP地址或者目的MAC地址确定转发第三报文的接口,根据第二标识即可确定转发第三报文的接口,提升了虚拟交换机的数据处理效率。
第四方面,本申请实施例提供了一种数据处理方法,可以由虚拟交换机执行。在一个示例中,虚拟交换机可以接收来自于操作系统的第三报文,第三报文中包括第二标识。虚机交换机接收到第三报文之后,可以根据第二标识确定第二接口,并经由第二接口转发第三报文。在本申请实施例中,由于第三报文中携带第二标识,因此,虚拟交换机接收到第三报文之后,无需根据第三报文的目的IP地址或者目的MAC地址确定转发第三报文的接口,根据第二标识即可确定转发第三报文的接口,提升了虚拟交换机的数据处理效率。
第五方面,本申请实施例提供了一种数据处理方法,应用于虚机容器系统,所述虚机容器系统包括虚拟交换机和虚机容器。在一个示例中,虚拟交换机可以通过第一接口获取第一报文,获取第一报文之后,可以确定转发第一报文的接口,在本申请实施例中,第二接口为用于转发第一报文的接口。虚拟交换器确定第二接口为用于转发第一报文的接口之后,可以根据第一标识对第一报文进行重新封装,得到包括第二标识的第二报文。其中,第一标识用于标识第二接口,第二标识可以被虚机容器中的操作系统用于确定第一虚拟队列。其中,虚机容器可以包括多个部署点POD,虚机容器的操作系统可以基于多条虚拟队列与所述多个POD通信。第一虚拟队列为所述多个队列中的其中一个队列。虚拟交换机得到第二报文之后,可以通过第二接口将第二报文发送给虚机容器的操作系统。操作系统接收到第二报文之后,可以根据第二标识和第二映射关系确定第一虚拟队列,其中,第二映射关系指示第二标识和第一虚拟队列的标识的对应关系。确定第一虚拟队列之后,操作系统可以基于第一虚拟队列向第一POD发送第二报文,其中,前述多个POD包括第一POD,操作系统可以基于第一虚拟队列和第一POD通信。由此可见,利用本申请实施例的方案,操作系统可以直接根据第二标识确定第一虚拟队列,从而利用第一虚拟队列将第二报文转发给第一虚拟队列对应的POD,操作系统无需解析第二报文中的IP地址或者MAC地址来确定转发第二报文的接口,直接根据第二标识即可确定基于第一虚拟队列转发第二报文,提升了虚机容器的数据处理效率。
第六方面,本申请实施例提供了一种数据处理方法,应用于虚机容器系统,所述虚机容器系统包括虚拟交换机和虚机容器。在一个示例中,虚机容器的操作系统可以通过第一虚拟队列接收来自于第一POD的第五报文。操作系统接收到第五报文之后,可以根据第一虚拟队列的标识和第二映射关系确定第二标识,其中,第二映射关系指示第二标识和第一虚拟队列的标识的对应关系。操作系统确定第二标识之后,可以利用第二标识对第五报文进行重新封装,得到包括前述第二标识的第三报文。其中,第三报文中的第二标识,可以被虚拟交换机用于确定转发第三报文的接口。操作系统得到第三报文之后,可以将第三报文发送给虚拟交换机。虚机交换机接收到第三报文之后,可以根据第二标识确定第二接口,并经由第二接口转发第三报文。在本申请实施例中,由于第三报文中携带第二标识,因此,虚拟交换机接收到第三报文之后,无需根据第三报文的目的IP地址或者目的MAC地址确定转发第三报文的接口,根据第二标识即可确定转发第三报文的接口,从而提升了虚拟交换机的数据处理效率。
第七方面,本申请实施例提供了一种数据处理方法,应用于虚机容器系统,所述虚机容器系统包括虚拟交换机和虚机容器。在一个示例中,虚机容器的操作系统可以通过第一虚拟队列接收来自于第一POD的第五报文。操作系统接收到第五报文之后,可以根据第一虚拟队列的标识和第二映射关系确定第二标识,其中,第二映射关系指示第二标识和第一虚拟队列的标识的对应关系。操作系统确定第二标识之后,可以利用第二标识对第五报文进行重新封装,得到包括前述第二标识的第三报文。其中,第三报文中的第二标识,可以被虚拟交换机用于确定转发第三报文的接口。操作系统得到第三报文之后,可以将第三报文发送给虚拟交换机。虚机交换机接收到第三报文之后,可以根据第二标识确定第二接口,并经由第二接口转发第三报文。虚拟交换机确定经由第二接口转发第三报文之后,可以将第三报文发送给虚拟交换机的第四接口,第四接口是虚拟交换机和操作系统进行交互的接口。虚拟交换机确定将报文转发给第四接口之后,虚拟交换机根据第三标识和第三报文,得到包括第四标识的第四报文,并通过第四接口向操作系统发送第四报文。其中:第三标识用于标识第四接口,第四标识被操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列。操作系统接收来自于虚拟交换机的第四报文之后,操作系统根据第四标识和第三映射关系确定第二虚拟队列,其中,第三映射关系指示第四标识与所述第二虚拟队列的标识的对应关系,并基于第二虚拟队列向第二POD发送第四报文,第二POD为虚机容器中的其中一个POD。采用该方案,可以将来自于第一POD的报文转发给第二POD,在以上转发过程中,由于第三报文中携带第二标识,因此,虚拟交换机接收到第三报文之后,无需根据第三报文的目的IP地址或者目的MAC地址确定转发第三报文的接口,根据第二标识即可确定转发第三报文的接口,从而提升了虚拟交换机的数据处理效率。由于第四报文中包括第四标识,因此,操作系统可以直接根据第四标识和第三映射关系确定第二虚拟队列,而无需根据第四报文的目标IP地址或者目的MAC地址确定转发第四报文的接口,从而提升了操作系统的数据处理效率。
第八方面,本申请实施例提供了一种数据处理方法,应用于虚机容器的容器管理模块,虚机容器的容器管理模块,可以确定与第一POD对应的第一虚拟队列的标识,并进一步确定虚拟交换机的接口中、与第一虚拟队列对应的第二接口。容器管理模块确定与第一虚拟队列对应的第二接口之后,可以进一步获取第二接口的第二标识,并根据第二标识和第一虚拟队列的标识的对应关系,得到第二映射关系。
在一种可能的实现方式中,若第二标识与第一标识不同,则容器管理模块还可以获取所述第一标识,并根据所述第一标识和所述第二标识的对应关系,得到第一映射关系。容器管理模块得到第一映射关系之后,可以将该第一映射关系发送给虚拟交换机,以便于虚拟交换机基于第一映射关系和第一标识,确定第二标识。
在一种可能的实现方式中,虚机容器的容器管理模块,可以确定与第二POD对应的第二虚拟队列的标识,并进一步确定虚拟交换机的接口中、与第二虚拟队列对应的第四接口。容器管理模块确定与第二虚拟队列对应的第四接口之后,可以进一步获取第二接口的第四标识,并根据第四标识和第二虚拟队列的标识的对应关系,得到第三映射关系。
在一种可能的实现方式中,第四标识可以和第三标识相同,第三标识用于标识第四接口。
在一种可能的实现方式中,第四标识和第三标识可以不同。若第四标识和第三标识不同,则容器管理模块还可以获取所述第三标识,并根据所述第三标识和所述第四标识的对应关系,得到第四映射关系。容器管理模块得到第四映射关系之后,可以将该第四映射关系发送给虚拟交换机,以便于虚拟交换机基于第一映射关系和第三标识,确定第四标识。
第九方面,本申请实施例提供了一种数据处理装置,应用于虚拟交换机,所述装置包括:获取单元,用于通过第一接口获取第一报文;确定单元,用于确定所述虚拟交换机的第二接口用于转发所述第一报文;所述获取单元,还用于根据第一标识和所述第一报文,得到第二报文,所述第二报文包括第二标识,所述第一标识用于标识所述第二接口,所述第二标识被虚机容器中的操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;发送单元,用于通过所述第二接口向所述操作系统发送所述第二报文。
在一种可能的实现方式中,所述第二标识与所述第一标识相同。
在一种可能的实现方式中,所述第二标识与所述第一标识不同,所述确定单元还用于:在根据第一标识和所述第一报文得到第二报文之前,根据所述第一标识和第一映射关系,确定所述第二标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
在一种可能的实现方式中,所述发送单元,用于:通过共享虚拟队列将所述第二报文发送给所述操作系统,所述共享虚拟队列还用于传输从所述虚拟交换机经由所述虚拟交换机的第三接口到所述操作系统的报文。
在一种可能的实现方式中,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
在一种可能的实现方式中,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
在一种可能的实现方式中,所述获取单元,还用于接收来自于所述操作系统的第三报文,所述第三报文中包括所述第二标识;所述确定单元,还用于根据所述第二标识确定所述第二接口;所述发送单元,还用于经由所述第二接口转发所述第三报文。
在一种可能的实现方式中,所述确定单元,用于:根据所述第二标识、以及第一映射关系,确定标识所述第二接口的所述第一标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
在一种可能的实现方式中,所述发送单元,用于:通过所述第二接口将所述第三报文转发给所述虚拟交换机的所述第一接口;或者,通过所述第二接口将所述第三报文转发给所述虚拟交换机的第四接口,所述第四接口为所述虚拟交换机和所述操作系统进行交互的接口。
在一种可能的实现方式中,若所述第三报文被转发给所述第四接口,所述获取单元,还用于:根据第三标识和所述第三报文,得到第四报文,所述第四报文中包括第四标识,所述第三标识用于标识所述第四接口,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;所述发送单元,还用于:通过所述第四接口向所述操作系统发送所述第四报文。
第十方面,本申请实施例提供了一种数据处理装置,应用于虚机容器的操作系统,所述装置包括:获取单元,用于接收虚拟交换机发送的第二报文,所述第二报文包括第二标识,所述第二标识被所述操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;确定单元,用于根据第二标识和第二映射关系确定所述第一虚拟队列,其中,所述第二映射关系指示所述第二标识与所述第一虚拟队列的标识的对应关系;发送单元,用于基于第一虚拟队列向第一POD发送所述第二报文,所述多个POD包括所述第一POD。
在一种可能的实现方式中,所述获取单元,还用于通过所述第一虚拟队列接收来自于所述第一POD的第五报文;所述确定单元,还用于根据所述第一虚拟队列的标识和所述第二映射关系确定所述第二标识;所述获取单元,还用于利用所述第二标识和所述第五报文,得到第三报文,所述第三报文包括所述第二标识,所述第二标识被所述虚拟交换机用于确定转发所述第三报文的接口;所述发送单元,还用于将所述第三报文发送给所述虚拟交换机。
在一种可能的实现方式中,所述发送单元,用于:通过共享虚拟队列将所述第三报文发送给所述虚拟交换机,所述共享虚拟队列用于传输所述操作系统发送给所述虚拟交换机的多个接口的报文。
在一种可能的实现方式中,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
在一种可能的实现方式中,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
在一种可能的实现方式中,所述获取单元,还用于接收来自于所述虚拟交换机的第四报文,所述第四报文是所述虚拟交换机根据所述第三报文和第四标识得到的,所述第四报文包括所述第四标识,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;所述确定单元,还用于根据所述第四标识和第三映射关系确定所述第二虚拟队列,其中,所述第三映射关系指示所述第四标识与所述第二虚拟队列的标识的对应关系;所述发送单元,还用于基于第二虚拟队列向第二POD发送所述第四报文,所述多个POD包括所述第二POD。
在一种可能的实现方式中,所述装置还应用于虚机容器的操作系统,所述获取单元,还用于获取所述第一部署点对应的第一虚拟队列的标识;所述获取单元,还用于获取所述虚拟交换机的接口中、与所述第一虚拟队列对应的第二接口;所述获取单元,还用于获取所述第二接口对应的第二标识;所述获取单元,还用于根据所述第二标识与所述第一虚拟队列的标识的对应关系,得到第二映射关系。
在一种可能的实现方式中,当所述第二标识与标识所述第二接口的第一标识不同时,所述获取单元,还用于获取所述第一标识,并根据所述第一标识和所述第二标识的对应关系,得到第一映射关系;所述发送单元,还用于将所述第一映射关系,发送给所述虚拟交换机。
第十一方面,本申请实施例提供了一种设备。所述设备包括处理器和存储器。所述存储器用于存储指令或计算机程序。所述处理器用于执行所述存储器中的所述指令或计算机程序,执行以上第一方面以及第一方面任意一项所述的方法,或者执行以上第二方面以及第二方面任意一项所述的方法,或者执行以上第三方面以及第三方面任意一项所述的方法,或者执行以上第四方面以及第四方面任意一项所述的方法,或者执行以上第五方面以及第五方面任意一项所述的方法,或者执行以上第六方面以及第六方面任意一项所述的方法,或者执行以上第七方面以及第七方面任意一项所述的方法,或者执行以上第八方面以及第八方面任意一项所述的方法。
第十二方面,本申请实施例提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上第一方面以及第一方面任意一项所述的方法,或者执行以上第二方面以及第二方面任意一项所述的方法,或者执行以上第三方面以及第三方面任意一项所述的方法,或者执行以上第四方面以及第四方面任意一项所述的方法,或者执行以上第五方面以及第五方面任意一项所述的方法,或者执行以上第六方面以及第六方面任意一项所述的方法,或者执行以上第七方面以及第七方面任意一项所述的方法,或者执行以上第八方面以及第八方面任意一项所述的方法。
第十三方面,本申请实施例提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上第一方面以及第一方面任意一项所述的方法,或者执行以上第二方面以及第二方面任意一项所述的方法,或者执行以上第三方面以及第三方面任意一项所述的方法,或者执行以上第四方面以及第四方面任意一项所述的方法,或者执行以上第五方面以及第五方面任意一项所述的方法,或者执行以上第六方面以及第六方面任意一项所述的方法,或者执行以上第七方面以及第七方面任意一项所述的方法,或者执行以上第八方面以及第八方面任意一项所述的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种虚机容器网络的结构示意图;
图2为本申请实施例提供的又一种虚机容器网络的结构示意图;
图3为本申请实施例提供的一种数据处理方法的信令交互示意图;
图4为本申请实施例提供的一种DPDK报文的结构示意图;
图5为本申请实施例提供的一种数据处理方法的信令交互示意图;
图6为本申请实施例提供的一种数据处理方法的信令交互示意图;
图7为本申请实施例提供的一种数据处理装置的结构示意图;
图8为本申请实施例提供的一种数据处理装置的结构示意图;
图9为本申请实施例提供的一种设备的结构示意图。
具体实施方式
本申请实施例提供了一种数据处理方法,可以提升虚机容器和虚拟交换机进行交互时的整体数据处理效率较低。
为方便理解,首先对本申请实施例可能的应用场景进行介绍。
参见图1,该图为本申请实施例提供的一种虚机容器系统的结构示意图。
图1所示的虚机容器系统100,包括虚机容器110和虚拟交换机120。其中,虚机容器110包括部署点(POD)111和POD 112,虚机容器110还包括操作系统(operating system,OS)113,所述操作系统113用于和POD 111和POD 112进行交互,操作系统113还可以用于和虚拟交换机120进行交互。
在一个示例中,图1所示的虚拟交换机120可以包括多个接口,可参见图2进行理解,图2为本申请实施例提供的又一个虚机操作系统的结构示意图。如图2所示:
虚拟交换机120可以包括接口121、接口122和接口123。其中,接口121是所述虚拟交换机与其它设备进行交互的接口,接口121可以是物理接口,接口122和接口123为虚拟交换机与操作系统113进行交互的接口,接口122和接口123可以是虚拟接口。
操作系统113可以包括接口113a、接口113b和接口113c,其中,接口113a是操作系统113与虚拟交换机120进行交互的接口,接口113b是与POD 111进行交互的接口,接口113c是与POD 112进行交互的接口。其中,接口113a、接口113b和接口113c均为虚拟接口。
POD 111包括接口111a,用于与接口113b进行交互,从而实现POD 111与操作系统113的交互。POD 112包括接口112a,用于与接口113c进行交互,从而实现POD 112与操作系统113的交互。其中。接口111a和112a均为虚拟接口。
关于图1和图2,需要说明的是,图1和图2是本申请实施例应用场景的示意图,其并不构成对本申请实施例的限定。虚机容器110包括的POD的数量,不限于图1所示的两个;另外,虚机容器110和虚拟交换机120可以运行在同一设备上,例如可以运行在服务器上,在一些示例中,虚机容器110和虚拟交换机120也可以运行在不同的设备上;操作系统113的接口数量不限于图2所示的3个;POD 111上与操作系统113进行交互的接口的数量不限于图2所示的1个;POD 112上与操作系统113进行交互的接口的数量不限于图2所示的1个,等等。
在一个示例中,虚拟交换机120可以通过入接口例如接口121接收数据报文,而后,虚拟交换机120确定转发该数据报文的出接口例如接口122,确定出接口之后,虚拟交换机120则将接收到的数据报文复制之后通过该出接口转发给操作系统113。操作系统113接收到该数据报文之后,操作系统113可以对该数据报文进行解析,确定转发该数据报文的出接口例如接口113b。操作系统113确定转发该数据报文的出接口在具体实现时,可以解析该数据报文中的目的互联网协议(Internet Protocol,IP)地址或者目的媒体接入控制(mediaaccess control,MAC)地址并查找本地存储的转发表,从而确定转发该数据报文的出接口,而根据IP地址或者MAC查找本地存储的转发表确定出接口的方式,效率比较低。
另外,操作系统113还需要对该数据报文进行复制,而操作系统对数据报文进行数据复制会耗费大量的资源,从而导致虚机容器的数据处理效率比较低。
在又一个示例中,POD 111可以通过操作系统113将数据报文发送给虚拟交换机120。操作系统113可以接收来自于POD 111的数据报文,而后将该数据报文发送给虚拟交换机120的数据平面开发套件(data plane development kit,DPDK),而后虚拟交换机120再确定用于接收该数据报文的接口。虚拟交换机120确定用于接收该数据报文的接口在具体实现时,可以解析该数据报文中的目的IP地址或者目的MAC地址并查找本地存储的转发表,从而确定接收该数据报文的接口,而根据IP地址或者MAC查找本地存储的转发表确定接收该数据报文的接口的方式,效率比较低。
另外,POD 111将数据报文发送给操作系统113之后,操作系统113需要对来自于POD 111的数据报文进行复制,而操作系统对数据报文进行数据复制会耗费大量的资源,从而导致虚机容器的数据处理效率比较低。
为了解决上述问题,本申请实施例提供了一种数据处理方法,接下来结合附图介绍该方法。在本申请实施例的以下描述中,如无特别说明,虚拟交换机可以是图1或者图2所示的虚拟交换机120,虚机容器可以对应图1或者图2所示的虚机容器110。操作系统可以对应图1或者图2所示的操作系统113。
参见图3,图3为本申请实施例提供的一种数据处理方法的信令交互示意图。
图3所示的方法,例如可以包括如下S101-S105实现。
S101:虚拟交换机通过第一接口获取第一报文,并确定虚拟交换机的第二接口用于转发第一报文。
第一接口为虚拟交换机上的一个接口,在一个示例中,第一接口可以对应图2所示的接口121。如前文对接口121的描述可知,接口121可以是物理接口。因此,在本申请实施例中,第一报文可以是业务报文。在一个示例中,第一报文可以是互联网协议第4版(InternetProtocol version 4,IPv4)报文,在又一个示例中,第一报文可以是互联网协议第6版(Internet Protocol version 6,IPv6)报文,在另一个示例中,第一报文可以是多协议标签交换(Multi-Protocol Label Switching,MPLS)报文。当然,第一报文还可以是其它封装格式的报文,此处不再一一列举说明。
虚机交换机通过第一接口获取第一报文之后,可以确定转发第一报文的出接口。在一个示例中,虚拟交换机例如可以根据第一报文中的目的IP地址和本地存储的路由表,确定转发第一报文的出接口。在本申请实施例中,第二接口为虚拟交换机用于转发第一报文的接口。第二接口可以对应图2所示的接口122或者接口123。在本申请实施例的以下描述中,以第二接口为接口122为例进行说明。
S102:虚拟交换机根据第一标识和第一报文,得到第二报文,第二报文中包括第二标识。
在本申请实施例中,虚拟交换机确定第二接口用于转发第一报文之后,可以根据第一标识对第一报文进行重新封装,得到第二报文。其中,第一标识用于标识第二接口,换言之,第一标识可以是第二接口的标识。封装得到的第二报文中包括第二标识。该第二标识可以被虚机容器中的操作系统用于确定第一虚拟队列。其中,第一虚拟队列用于和虚机容器中的第一POD进行通信。虚机容器中可以包括多个POD,虚机容器的操作系统可以基于多条虚拟队列与所述多个POD通信,第一虚拟队列为该多条虚拟队列中的其中一个虚拟队列。
关于所述第二标识,需要说明的是,在一个示例中,第二标识和第一标识可以相同。换言之,虚拟交换机可以确定第二接口用于转发第一报文之后,利用第二接口的标识对第一报文进行重新封装,得到第二报文。
在又一个示例中,第二标识和第一标识可以不同。对于这种情况,虚拟交换机可以首先根据第一标识确定第二标识,而后利用第二标识对第一报文进行重新封装,得到第二报文。在一些实施例中,虚拟交换机中可以预先存储第一映射关系,第一映射关系指示第一标识和第二标识的对应关系。因此,虚拟交换机可以根据第一标识和所述第一映射关系,得到第二标识,进一步地,利用第二标识和第一报文得到第二报文。
在本申请实施例中,虚拟交换机具备DPDK,用于对接收到的数据进行处理。在一些实施例中,第二报文可以是DPDK报文。参见图4,图4为本申请实施例提供的一种DPDK报文的结构示意图。如图4所示,DPDK报文包括存储器缓存(memory buffer,MBUF)字段401、私有(private,PRIV)字段402、头部空间(英文:headroom)字段403、数据(英文:data)字段404和尾部(英文:tail)字段405。其中:MBUF字段401用于携带MBUF信息,PRIV字段402用于携带PRIV信息。
在一个示例中,第二报文的MBUF信息可以包括前述第二标识。换言之,前述第二标识可以携带在第二报文的MBUF字段中。在又一个示例中,第二报文的PRIV信息可以包括前述第二标识。换言之,前述第二标识可以携带在第二报文的PRIV字段中。在另一个示例中,可以对DPDK报文的结构进行扩展,例如,新增类型长度值(type length value,TLV),利用该新增的TLV携带前述第二标识。
S103:虚拟交换机通过第二接口向操作系统发送第二报文。
虚拟交换机获得第二报文之后,可以通过第二接口向操作系统发送第二报文。在一些实施例中,虚拟交换机和操作系统之间可以利用共享虚拟队列传递报文。该共享虚拟队列,可以用于传输从虚拟交换机经由第二接口到操作系统的报文,也可以用于传输从虚拟交换机经由第三接口到操作系统的报文。其中,第三接口可以是虚拟交换机与操作系统进行交互的接口,第三接口例如可以是图2所示的接口122或者123。因此,虚拟交换机可以利用共享虚拟队列向操作系统发送所述第二报文。
S104:操作系统根据第二标识和第二映射关系确定第一虚拟队列。
S105:操作系统基于第一虚拟队列向第一POD发送第二报文。
在本申请实施例中,操作系统接收到第二报文之后,不再如传统技术中那样,根据第二报文中的目的IP地址或者目的MAC地址确定转发第二报文的出接口。而是根据第二标识和第二映射关系确定第一虚拟队列。操作系统确定第一虚拟队列之后,即可基于第一虚拟队列向第一POD发送第二报文。其中,所述第二映射关系指示所述第二标识与所述第一虚拟队列的标识的对应关系。其中,虚机容器可以预先存储该第二映射关系,该第二映射关系可以是虚机容器的容器管理模块预先确定的。
关于第一虚拟队列,需要说明的是,虚机容器中可以包括多个POD,所述多个POD包括第一POD。虚机容器的操作系统可以利用第一虚拟队列和第一POD通信,类似的,若所述多个POD包括第二POD,则虚拟容器的操作系统可以利用第二虚拟队列和第二POD通信。此处提及的第一POD,例如可以对应图1或者图2所示的POD 111,此处提及的第二POD,可以对应图1或者图2所示的POD 112。
通过S104可知,由于第二报文中携带第二标识,因此,操作系统无需根据目的IP地址或者目的MAC地址来确定转发第二报文的接口,直接根据第二标识即可确定基于第一虚拟队列转发第二报文,提升了操作系统的数据处理效率。
另外,在本申请实施例中,前述虚拟交换机和虚机容器可以共享内存,这样一来,操作系统接收到第二报文之后,无需再对第二报文进行复制,相应减少了对第二报文进行复制带来的性能消耗,从而可以进一步提升操作系统的数据处理效率。
参见图5,图5为本申请实施例提供的一种数据处理方法的信令交互示意图。图5所示的数据处理方法,例如可以应用于图1或者图2所示的虚机操作系统。图5所示的方法,例如可以包括如下S201-S206。
S201:操作系统通过第一虚拟队列接收来自于第一POD的第五报文。
关于第一虚拟队列和第一POD,可以参考上文的相关描述部分,此处不再详述。在一些实施例中,第五报文可以是DPDK报文。关于DPDK报文,可以参考上文的相关描述部分,此处不再详述。
S202:操作系统根据第一虚拟队列的标识和第二映射关系确定第二标识。
S203:操作系统根据第二标识和第五报文,得到第三报文,第三报文包括第二标识。
如上文,虚机容器中可以预先存储第二映射关系,第二映射关系指示第二标识和第二虚拟队列的标识的对应关系。而第二标识又可以被虚拟交换机用于确定转发来自于第一虚拟队列的报文的接口。因此,操作系统接收第五报文之后,可以利用第一虚拟队列的标识和第二映射关系确定第二标识,并利用第二标识对第五报文进行重新封装,从而得到包括第二标识的第三报文。
在本申请实施例中,第三报文可以是DPDK报文。在一个示例中,第三报文的MBUF信息可以包括前述第二标识。换言之,前述第二标识可以携带在第三报文的MBUF字段中。在又一个示例中,第三报文的PRIV信息可以包括前述第二标识。换言之,前述第二标识可以携带在第三报文的PRIV字段中。在另一个示例中,可以对DPDK报文的结构进行扩展,例如,新增TLV,利用该新增的TLV携带前述第二标识。
S204:操作系统将第三报文发送给虚拟交换机。
操作系统得到第三报文之后,可以将第三报文发送给虚拟交换机。在一个示例中,操作系统可以通过共享虚拟队列将第二报文发送给操作系统。在本申请实施例中,所述共享虚拟队列可以传输从所述操作系统到所述虚拟交换机的多个接口的报文。例如,所述共享虚拟队列可以传输从所述操作系统到前述第二接口的报文,所述共享虚拟队列可以传输从所述操作系统到前述第三接口的报文。
在本申请实施例中,操作系统首先通过所述共享虚拟队列将第三报文发送给虚拟交换机的DPDK,由DPDK模块进一步确定接收该第三报文的接口。
S205:虚拟交换机根据第三报文中的第二标识确定第二接口。
虚拟交换机接收到第三报文之后,由于第三报文中包括第二标识,因此,虚拟交换机可以根据第二标识确定接收第三报文的接口。在一个示例中,若第二标识用于标识第二接口,即第二标识与第一标识相同,则虚拟交换机可以直接确定第二接口为接收第三报文的接口。在又一个示例中,若第二标识与第一标识不同,则虚拟交换机可以根据第二标识和前述第一映射关系,确定标识所述第二接口的第一标识,从而确定第二接口为接收所述第三报文的接口。
S206:虚拟交换机经由第二接口转发第三报文。
虚拟交换机确定接收第三报文的接口为第二接口之后,可以通过第二接口转发第三报文。在一个示例中,虚拟交换机例如可以通过第三报文中的目的IP地址,确定转发第三报文的出接口,从而将第三报文转发给所述出接口。在一个示例中,转发第三报文的出接口,可以是前述第一接口。对于这种情况,可以实现对来自于第一POD的报文转发给其它设备,例如用户设备。在又一个示例中,转发第三报文的出接口,可以是虚拟交换机和虚机容器交互的接口,例如第四接口。此处提及的第四接口,例如可以对应图2所示的接口123。
通过以上描述可知,由于第三报文中携带第二标识,因此,虚拟交换机接收到第三报文之后,无需根据第三报文的目的IP地址或者目的MAC地址确定接收第三报文的接口,根据第二标识即可确定接收第三报文的接口,从而提升了虚拟交换机的数据处理效率。
在本申请实施例中,前述虚拟交换机和虚机容器可以共享内存,这样一来,操作系统接收到第五报文之后,无需再对第五报文进行复制,相应减少了对第五报文进行复制带来的性能消耗,从而可以提升操作系统的数据处理效率。
当转发第四报文的出接口为第四接口时,图5所示的数据处理方法,还可以包括图6所示的S207-S210。
S207:虚拟交换机根据第三标识和第三报文,得到第四报文,第四报文中包括第四标识。
在本申请实施例中,虚拟交换机将第三报文转发给第四接口之后,可以根据第三标识对第三报文进行重新封装,得到第四报文。其中,第三标识用于标识第四接口,换言之,第三标识可以是第四接口的标识。封装得到的第四报文中包括第四标识。该第四标识可以被虚机容器中的操作系统用于确定第二虚拟队列。其中,第二虚拟队列用于和虚机容器中的第二POD进行通信。
关于所述第四标识,需要说明的是,在一个示例中,第四标识和第三标识可以相同。换言之,虚拟交换机将第三报文转发给第四接口,可以利用第四接口的标识对第三报文进行重新封装,得到第四报文。
在又一个示例中,第四标识和第三标识可以不同。对于这种情况,虚拟交换机可以首先根据第三标识确定第四标识,而后利用第四标识对第三报文进行重新封装,得到第四报文。在一些实施例中,虚拟交换机中可以预先存储第四映射关系,第四映射关系指示第三标识和第四标识的对应关系。因此,虚拟交换机可以根据第三标识和所述第四映射关系,得到第四标识,进一步地,利用第四标识和第三报文得到第四报文。
在本申请实施例中,第四报文可以为DPDK报文。在一个示例中,第四报文的MBUF信息可以包括前述第四标识。换言之,前述第四标识可以携带在第四报文的MBUF字段中。在又一个示例中,第四报文的PRIV信息可以包括前述第四标识。换言之,前述第四标识可以携带在第四报文的PRIV字段中。在另一个示例中,可以对DPDK报文的结构进行扩展,例如,新增TLV,利用该新增的TLV携带前述第四标识。
S208:虚拟交换机通过第四接口向操作系统发送第四报文。
虚拟交换机获得第四报文之后,可以通过第四接口向操作系统发送第四报文。如前文,虚拟交换机和操作系统之间可以利用共享虚拟队列传递报文。该共享虚拟队列,除了可以用于传输从虚拟交换机经由第二接口和第三接口到操作系统的报文之外,也可以用于传输从虚拟交换机经由第四接口到操作系统的报文。因此,虚拟交换机可以利用所述共享虚拟队列向操作系统发送所述第四报文。
S209:操作系统根据第四标识和第三映射关系确定第二虚拟队列。
S210:操作系统基于第二虚拟队列向第二POD发送第四报文。
在本申请实施例中,操作系统接收到第四报文之后,不再如传统技术中那样,根据第四报文中的目的IP地址或者目的MAC地址确定转发第四报文的出接口。而是根据第四标识和第三映射关系确定第二虚拟队列。操作系统确定第二虚拟队列之后,即可基于第二虚拟队列向第二POD发送第四报文。其中,所述第三映射关系指示所述第四标识与所述第二虚拟队列的标识的对应关系。其中,虚机容器可以预先存储该第三映射关系,该第三映射关系可以是虚机容器的容器管理模块预先确定的。
关于第二虚拟队列,可以参考S105中的相关描述部分,此处不再重复描述。
通过以上S201-S210,可以实现对来自于第一POD的报文转发第二POD。
通过S209可知,由于第四报文中携带第四标识,因此,操作系统无需根据目的IP地址或者目的MAC地址来确定转发第四报文的接口,直接根据第四标识即可确定基于第二虚拟队列转发第四报文,从而提升了操作系统的数据处理效率。
另外,如前所述,虚拟交换机和虚机容器可以共享内存,这样一来,操作系统接收到第四报文之后,无需再对第四报文进行复制,相应减少了对第四报文进行复制带来的性能消耗,从而可以进一步提升操作系统的数据处理效率。
在一些实施例中,虚机容器处理包括操作系统之外,还可以包括容器管理模块。以上实施例提及的指示第一标识和第二标识的对应关系的第一映射关系、指示第二标识与第一虚拟队列的标识的对应关系的第二映射关系、指示第四标识和第二虚拟队列的标识的对应关系的第三映射关系、以及指示第三标识和第四标识的对应关系的第四映射关系,可以是由容器管理模块生成的。
接下来,介绍容器管理模块生成上述四个映射关系的具体实现方式。
当虚机容器上线时,虚机容器的容器管理模块,可以确定与第一POD对应的第一虚拟队列的标识,并进一步确定虚拟交换机的接口中,与第一虚拟队列对应的第二接口。容器管理模块确定与第一虚拟队列对应的第二接口之后,可以进一步获取第二接口的第二标识,并根据第二标识和第一虚拟队列的标识的对应关系,得到第二映射关系。
其中,第一虚拟队列与第二接口对应,指的是,虚拟交换机的第二接口向操作系统发送的报文,虚机容器利用第一虚拟队列向第一POD发送,相应的,第一POD通过第一虚拟队列向操作系统发送的报文,操作系统将该报文发送给虚拟交换机之后,由虚拟交换机的第二接口接收。
如前文,第二标识与第一标识可以相同,也可以不同。当第二标识与第一标识不同时,容器管理设备可以获取第一标识,并根据第一标识和第二标识的对应关系,得到第一映射关系。
在一个示例中,容器管理设备得到第二映射关系之后,可以将第二映射关系发送给操作系统。相应的,容器管理设备得到第一映射关系之后,可以将第一映射关系发送给虚拟交换机。
与生成第二映射关系的方式类似,当虚机容器上线时,虚机容器的容器管理模块,可以确定与第二POD对应的第二虚拟队列的标识,并进一步确定虚拟交换机的接口中,与第二虚拟队列对应的第四接口。容器管理模块确定与第二虚拟队列对应的第四接口之后,可以进一步获取第四接口的第四标识,并根据第四标识和第二虚拟队列的标识的对应关系,得到第三映射关系。
其中,第二虚拟队列与第四接口对应,指的是,虚拟交换机的第四接口向操作系统发送的报文,虚机容器利用第二虚拟队列向第二POD发送,相应的,第二POD通过第二虚拟队列向操作系统发送的报文,操作系统将该报文发送给虚拟交换机之后,由虚拟交换机的第四接口接收。
如前文,第四标识与第三标识可以相同,也可以不同。当第四标识与第三标识不同时,容器管理设备可以获取第三标识,并根据第三标识和第四标识的对应关系,得到第四映射关系。
在一个示例中,容器管理设备得到第三映射关系之后,可以将第二映射关系发送给操作系统。相应的,容器管理设备得到第四映射关系之后,可以将第一映射关系发送给虚拟交换机。
另外,若虚拟交换机和虚机容器共享内容,则该容器管理模块还可以为虚拟交换机和虚机容器分配共享内存。当虚拟交换机和虚机容器进行交互时,可以利用该共享内存存储交互的报文,例如,存储上文提及的第二报文、第三报文、第四报文以及第五报文。
基于以上实施例提供的数据处理方法,本申请实施例还提供了对应的装置,以下结合附图介绍本申请实施例提供的数据处理装置。
参见图7,该图为本申请实施例提供的一种数据处理装置的结构示意图。
图7所示的数据处理装置700,可以应用于虚拟交换机,用于执行以上实施例中由虚拟交换机执行的步骤。在一个示例中,图7所示的数据处理装置700,可以包括获取单元701、确定单元702和发送单元703。
获取单元701用于通过第一接口获取第一报文;
确定单元702用于确定所述虚拟交换机的第二接口用于转发所述第一报文;
所述获取单元701还用于根据第一标识和所述第一报文,得到第二报文,所述第二报文包括第二标识,所述第一标识用于标识所述第二接口,所述第二标识被虚机容器中的操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;
发送单元702用于通过所述第二接口向所述操作系统发送所述第二报文。
在一种实现方式中,所述第二标识与所述第一标识相同。
在一种实现方式中,所述第二标识与所述第一标识不同,所述确定单元702还用于:
在根据第一标识和所述第一报文得到第二报文之前,根据所述第一标识和第一映射关系,确定所述第二标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
在一种实现方式中,所述发送单元703用于:
通过共享虚拟队列将所述第二报文发送给所述操作系统,所述共享虚拟队列还用于传输从所述虚拟交换机经由所述虚拟交换机的第三接口到所述操作系统的报文。
在一种实现方式中,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
在一种实现方式中,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
在一种实现方式中,
所述获取单元701还用于接收来自于所述操作系统的第三报文,所述第三报文中包括所述第二标识;
所述确定单元702还用于根据所述第二标识确定所述第二接口;
所述发送单元703还用于经由所述第二接口转发所述第三报文。
在一种实现方式中,所述确定单元702用于:
根据所述第二标识、以及第一映射关系,确定标识所述第二接口的所述第一标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
在一种实现方式中,所述发送单元703用于:
通过所述第二接口将所述第三报文转发给所述虚拟交换机的所述第一接口;或者,
通过所述第二接口将所述第三报文转发给所述虚拟交换机的第四接口,所述第四接口为所述虚拟交换机和所述操作系统进行交互的接口。
在一种实现方式中,若所述第三报文被转发给所述第四接口,所述获取单元701还用于:
根据第三标识和所述第三报文,得到第四报文,所述第四报文中包括第四标识,所述第三标识用于标识所述第四接口,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;
所述发送单元703还用于:通过所述第四接口向所述操作系统发送所述第四报文。
由于所述装置700是与以上方法实施例提供的由虚拟交换机执行的数据处理方法对应的装置,所述装置700的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置700的各个单元的具体实现,可以参考以上方法实施例对于虚拟交换机执行的数据处理方法的描述部分,此处不再赘述。
参见图8,该图为本申请实施例提供的一种数据处理装置的结构示意图。
图8所示的数据处理装置800,可以应用于虚机容器,用于执行以上实施例中由虚机容器执行的步骤。在一个示例中,数据处理装置800可以应用于虚机容器的操作系统。在一个示例中,图8所示的数据处理装置800,可以包括获取单元801、确定单元802和发送单元803。
获取单元801用于接收虚拟交换机发送的第二报文,所述第二报文包括第二标识,所述第二标识被所述操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;
确定单元802用于根据第二标识和第二映射关系确定所述第一虚拟队列,其中,所述第二映射关系指示所述第二标识与所述第一虚拟队列的标识的对应关系;
发送单元803用于基于第一虚拟队列向第一POD发送所述第二报文,所述多个POD包括所述第一POD。
在一种实现方式中,
所述获取单元801还用于通过所述第一虚拟队列接收来自于所述第一POD的第五报文;
所述确定单元802还用于根据所述第一虚拟队列的标识和所述第二映射关系确定所述第二标识;
所述获取单元801还用于利用所述第二标识和所述第五报文,得到第三报文,所述第三报文包括所述第二标识,所述第二标识被所述虚拟交换机用于确定转发所述第三报文的接口;
所述发送单元803还用于将所述第三报文发送给所述虚拟交换机。
在一种实现方式中,所述发送单元803用于:
通过共享虚拟队列将所述第三报文发送给所述虚拟交换机,所述共享虚拟队列用于传输所述操作系统发送给所述虚拟交换机的多个接口的报文。
在一种实现方式中,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
在一种实现方式中,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
在一种实现方式中,
所述获取单元801还用于接收来自于所述虚拟交换机的第四报文,所述第四报文是所述虚拟交换机根据所述第三报文和第四标识得到的,所述第四报文包括所述第四标识,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;
所述确定单元802还用于根据所述第四标识和第三映射关系确定所述第二虚拟队列,其中,所述第三映射关系指示所述第四标识与所述第二虚拟队列的标识的对应关系;
所述发送单元803还用于基于第二虚拟队列向第二POD发送所述第四报文,所述多个POD包括所述第二POD。
在一种实现方式中,所述装置800还应用于虚机容器的操作系统,
所述获取单元801还用于获取所述第一部署点对应的第一虚拟队列的标识;
所述获取单元801还用于获取所述虚拟交换机的接口中、与所述第一虚拟队列对应的第二接口;
所述获取单元801还用于获取所述第二接口对应的第二标识;
所述获取单元801还用于根据所述第二标识与所述第一虚拟队列的标识的对应关系,得到第二映射关系。
在一种实现方式中,当所述第二标识与标识所述第二接口的第一标识不同时,所述获取单元801还用于获取所述第一标识,并根据所述第一标识和所述第二标识的对应关系,得到第一映射关系;
所述发送单元802还用于将所述第一映射关系,发送给所述虚拟交换机。
由于所述装置800是与以上方法实施例提供的由虚机容器执行的数据处理方法对应的装置,所述装置800的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置800的各个单元的具体实现,可以参考以上方法实施例对于虚机容器执行的数据处理方法的描述部分,此处不再赘述。
在本申请实施例中,虚拟交换机和虚机容器可以部署在同一个设备上,也可以部署在不同的设备上。当虚拟交换机和虚机容器部署在同一个设备上时,在一个示例中,该设备可以包括多个中央处理器(central processing unit,CPU),其中一个或者多个CPU用于执行前述实施例中由虚拟交换机执行的步骤,另外一个或者多个CPU用于执行前述实施例中由虚机容器执行的步骤。例如,该设备包括两个CPU,分别为第一CPU和第二CPU,则第一CPU可以用于执行前述实施例中由虚拟交换机执行的步骤,第二CPU用于执行前述实施例中由虚机容器执行的步骤。在又一个示例中,该设备中的CPU可以是多核CPU,则其中一个或者多个核用于执行前述实施例中由虚拟交换机执行的步骤,另外一个或者多个核用于执行前述实施例中由虚机容器执行的步骤。例如,该设备中的CPU为八核CPU,则其中4个核用于执行前述实施例中由虚拟交换机执行的步骤,另外4个核用于执行前述实施例中由虚机容器执行的步骤。当虚拟交换机和虚机容器部署在不同的设备上,在一些实施例中,部署虚拟交换机的和设备和部署虚机容器的设备在逻辑上可以构成一个设备,例如,部署虚拟交换机的第一设备和部署虚机容器的第二设备在逻辑上构成一个服务器。
需要说明的是,前述部署有虚拟交换机和/或虚机容器的和设备,其硬件结构可以为如图9所示的结构,图9为本申请实施例提供的一种设备的结构示意图。
请参阅图9所示,设备900包括:处理器910、通信接口920和和存储器930。其中设备900中的处理器910的数量可以一个或多个,图9中以一个处理器为例。本申请实施例中,处理器910、通信接口920和存储器930可通过总线系统或其它方式连接,其中,图9中以通过总线系统940连接为例。
处理器910可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器910还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器930可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,RAM);存储器930也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器930还可以包括上述种类的存储器的组合。当设备900为部署虚拟交换机的设备时,存储器930例如可以存储第一映射关系;当设备900为部署虚机容器的设备时,存储器930例如可以存储第二映射关系。
可选地,存储器930存储有操作系统和程序、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,程序可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。处理器910可以读取存储器930中的程序,实现本申请实施例提供的时间同步方法或者用于时间同步的消息处理方法。
总线系统940可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线系统940可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供了一种计算机可读存储介质,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上实施例提供的数据处理方法。
本申请实施例还提供了一种包含指令或计算机程序的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例提供的数据处理方法。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。
集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (38)
1.一种数据处理方法,其特征在于,所述方法包括:
虚拟交换机通过第一接口获取第一报文;
所述虚拟交换机确定所述虚拟交换机的第二接口用于转发所述第一报文;
所述虚拟交换机根据第一标识和所述第一报文,得到第二报文,所述第二报文包括第二标识,所述第一标识用于标识所述第二接口,所述第二标识被虚机容器中的操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;
所述虚拟交换机通过所述第二接口向所述操作系统发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,所述第二标识与所述第一标识相同。
3.根据权利要求1所述的方法,其特征在于,所述第二标识与所述第一标识不同,在所述虚拟交换机根据第一标识和所述第一报文得到第二报文之前,所述方法还包括:
所述虚拟交换机根据所述第一标识和第一映射关系,确定所述第二标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述虚拟交换机通过所述第二接口向所述操作系统发送所述第二报文,包括:
所述虚拟交换机通过共享虚拟队列将所述第二报文发送给所述操作系统,所述共享虚拟队列还用于传输从所述虚拟交换机经由所述虚拟交换机的第三接口到所述操作系统的报文。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
7.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
所述虚拟交换机接收来自于所述操作系统的第三报文,所述第三报文中包括所述第二标识;
所述虚拟交换机根据所述第二标识确定所述第二接口;
所述虚拟交换机经由所述第二接口转发所述第三报文。
8.根据权利要求7所述的方法,其特征在于,所述虚拟交换机根据所述第二标识确定所述第二接口,包括:
所述虚拟交换机根据所述第二标识、以及第一映射关系,确定标识所述第二接口的所述第一标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
9.根据权利要求7所述的方法,其特征在于,所述虚拟交换机经由所述第二接口转发所述第三报文,包括:
所述虚拟交换机通过所述第二接口将所述第三报文转发给所述虚拟交换机的所述第一接口;或者,
所述虚拟交换机通过所述第二接口将所述第三报文转发给所述虚拟交换机的第四接口,所述第四接口为所述虚拟交换机和所述操作系统进行交互的接口。
10.根据权利要求9所述的方法,其特征在于,若所述第三报文被转发给所述第四接口,所述方法还包括:
所述虚拟交换机根据第三标识和所述第三报文,得到第四报文,所述第四报文中包括第四标识,所述第三标识用于标识所述第四接口,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;
所述虚拟交换机通过所述第四接口向所述操作系统发送所述第四报文。
11.一种数据处理方法,其特征在于,所述方法包括:
虚机容器中的操作系统接收虚拟交换机发送的第二报文,所述第二报文包括第二标识,所述第二标识被所述操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;
所述操作系统根据第二标识和第二映射关系确定所述第一虚拟队列,其中,所述第二映射关系指示所述第二标识与所述第一虚拟队列的标识的对应关系;
所述操作系统基于第一虚拟队列向第一POD发送所述第二报文,所述多个POD包括所述第一POD。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述操作系统通过所述第一虚拟队列接收来自于所述第一POD的第五报文;
所述操作系统根据所述第一虚拟队列的标识和所述第二映射关系确定所述第二标识;
所述操作系统利用所述第二标识和所述第五报文,得到第三报文,所述第三报文包括所述第二标识,所述第二标识被所述虚拟交换机用于确定转发所述第三报文的接口;
所述操作系统将所述第三报文发送给所述虚拟交换机。
13.根据权利要求12所述的方法,其特征在于,所述将所述第三报文发送给所述虚拟交换机,包括:
所述操作系统通过共享虚拟队列将所述第三报文发送给所述虚拟交换机,所述共享虚拟队列用于传输所述操作系统发送给所述虚拟交换机的多个接口的报文。
14.根据权利要求13所述的方法,其特征在于,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
15.根据权利要求13所述的方法,其特征在于,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
16.根据权利要求12-15任意一项所述的方法,其特征在于,所述方法还包括:
所述操作系统接收来自于所述虚拟交换机的第四报文,所述第四报文是所述虚拟交换机根据所述第三报文和第四标识得到的,所述第四报文包括所述第四标识,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;
所述操作系统根据所述第四标识和第三映射关系确定所述第二虚拟队列,其中,所述第三映射关系指示所述第四标识与所述第二虚拟队列的标识的对应关系;
所述操作系统基于第二虚拟队列向第二POD发送所述第四报文,所述多个POD包括所述第二POD。
17.根据权利要求11-15任意一项所述的方法,其特征在于,所述虚机容器还包括容器管理模块,所述方法还包括:
所述容器管理模块获取所述第一POD对应的第一虚拟队列的标识;
所述容器管理模块获取所述虚拟交换机的接口中、与所述第一虚拟队列对应的第二接口;
所述容器管理模块获取所述第二接口对应的第二标识;
所述容器管理模块根据所述第二标识与所述第一虚拟队列的标识的对应关系,得到第二映射关系。
18.根据权利要求17所述的方法,其特征在于,当所述第二标识与标识所述第二接口的第一标识不同时,所述方法还包括:
所述容器管理模块获取所述第一标识,并根据所述第一标识和所述第二标识的对应关系,得到第一映射关系;
所述容器管理模块将所述第一映射关系,发送给所述虚拟交换机。
19.一种数据处理装置,其特征在于,应用于虚拟交换机,所述装置包括:
获取单元,用于通过第一接口获取第一报文;
确定单元,用于确定所述虚拟交换机的第二接口用于转发所述第一报文;
所述获取单元,还用于根据第一标识和所述第一报文,得到第二报文,所述第二报文包括第二标识,所述第一标识用于标识所述第二接口,所述第二标识被虚机容器中的操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;
发送单元,用于通过所述第二接口向所述操作系统发送所述第二报文。
20.根据权利要求19所述的装置,其特征在于,所述第二标识与所述第一标识相同。
21.根据权利要求19所述的装置,其特征在于,所述第二标识与所述第一标识不同,所述确定单元还用于:
在根据第一标识和所述第一报文得到第二报文之前,根据所述第一标识和第一映射关系,确定所述第二标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
22.根据权利要求19-21任意一项所述的装置,其特征在于,所述发送单元,用于:
通过共享虚拟队列将所述第二报文发送给所述操作系统,所述共享虚拟队列还用于传输从所述虚拟交换机经由所述虚拟交换机的第三接口到所述操作系统的报文。
23.根据权利要求19-21任意一项所述的装置,其特征在于,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
24.根据权利要求19-21任意一项所述的装置,其特征在于,所述第二报文是数据平面开发套件DPDK报文,所述第二报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
25.根据权利要求19-21任意一项所述的装置,其特征在于,
所述获取单元,还用于接收来自于所述操作系统的第三报文,所述第三报文中包括所述第二标识;
所述确定单元,还用于根据所述第二标识确定所述第二接口;
所述发送单元,还用于经由所述第二接口转发所述第三报文。
26.根据权利要求25所述的装置,其特征在于,所述确定单元,用于:
根据所述第二标识、以及第一映射关系,确定标识所述第二接口的所述第一标识,所述第一映射关系指示所述第一标识和所述第二标识的对应关系。
27.根据权利要求25所述的装置,其特征在于,所述发送单元,用于:
通过所述第二接口将所述第三报文转发给所述虚拟交换机的所述第一接口;或者,
通过所述第二接口将所述第三报文转发给所述虚拟交换机的第四接口,所述第四接口为所述虚拟交换机和所述操作系统进行交互的接口。
28.根据权利要求27所述的装置,其特征在于,若所述第三报文被转发给所述第四接口,所述获取单元,还用于:
根据第三标识和所述第三报文,得到第四报文,所述第四报文中包括第四标识,所述第三标识用于标识所述第四接口,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;
所述发送单元,还用于:通过所述第四接口向所述操作系统发送所述第四报文。
29.一种数据处理装置,其特征在于,应用于虚机容器的操作系统,所述装置包括:
获取单元,用于接收虚拟交换机发送的第二报文,所述第二报文包括第二标识,所述第二标识被所述操作系统用于确定第一虚拟队列,所述虚机容器还包括多个部署点POD,所述操作系统基于多条虚拟队列与所述多个POD通信,所述多条虚拟队列包括所述第一虚拟队列;
确定单元,用于根据第二标识和第二映射关系确定所述第一虚拟队列,其中,所述第二映射关系指示所述第二标识与所述第一虚拟队列的标识的对应关系;
发送单元,用于基于第一虚拟队列向第一POD发送所述第二报文,所述多个POD包括所述第一POD。
30.根据权利要求29所述的装置,其特征在于,
所述获取单元,还用于通过所述第一虚拟队列接收来自于所述第一POD的第五报文;
所述确定单元,还用于根据所述第一虚拟队列的标识和所述第二映射关系确定所述第二标识;
所述获取单元,还用于利用所述第二标识和所述第五报文,得到第三报文,所述第三报文包括所述第二标识,所述第二标识被所述虚拟交换机用于确定转发所述第三报文的接口;
所述发送单元,还用于将所述第三报文发送给所述虚拟交换机。
31.根据权利要求30所述的装置,其特征在于,所述发送单元,用于:
通过共享虚拟队列将所述第三报文发送给所述虚拟交换机,所述共享虚拟队列用于传输所述操作系统发送给所述虚拟交换机的多个接口的报文。
32.根据权利要求31所述的装置,其特征在于,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息,所述MBUF信息包括所述第二标识。
33.根据权利要求31所述的装置,其特征在于,所述第三报文是数据平面开发套件DPDK报文,所述第三报文包括存储器缓存MBUF信息和私有PRIV信息,所述PRIV信息包括所述第二标识。
34.根据权利要求30-33任意一项所述的装置,其特征在于,
所述获取单元,还用于接收来自于所述虚拟交换机的第四报文,所述第四报文是所述虚拟交换机根据所述第三报文和第四标识得到的,所述第四报文包括所述第四标识,所述第四标识被所述操作系统用于确定第二虚拟队列,所述多条虚拟队列包括所述第二虚拟队列;
所述确定单元,还用于根据所述第四标识和第三映射关系确定所述第二虚拟队列,其中,所述第三映射关系指示所述第四标识与所述第二虚拟队列的标识的对应关系;
所述发送单元,还用于基于第二虚拟队列向第二POD发送所述第四报文,所述多个POD包括所述第二POD。
35.根据权利要求29-33任意一项所述的装置,其特征在于,所述装置还应用于虚机容器的操作系统,
所述获取单元,还用于获取所述第一POD对应的第一虚拟队列的标识;
所述获取单元,还用于获取所述虚拟交换机的接口中、与所述第一虚拟队列对应的第二接口;
所述获取单元,还用于获取所述第二接口对应的第二标识;
所述获取单元,还用于根据所述第二标识与所述第一虚拟队列的标识的对应关系,得到第二映射关系。
36.根据权利要求35所述的装置,其特征在于,当所述第二标识与标识所述第二接口的第一标识不同时,所述获取单元,还用于获取所述第一标识,并根据所述第一标识和所述第二标识的对应关系,得到第一映射关系;
所述发送单元,还用于将所述第一映射关系,发送给所述虚拟交换机。
37.一种数据处理设备,其特征在于,包括:处理器和存储器;
所述存储器,用于存储指令或计算机程序;
所述处理器,用于执行所述指令或计算机程序,执行权利要求1-18任意一项所述的方法。
38.一种计算机可读存储介质,其特征在于,包括指令或计算机程序,当其在计算机上运行时,使得计算机执行以上权利要求1-18任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010789929.2A CN114095458B (zh) | 2020-08-07 | 2020-08-07 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010789929.2A CN114095458B (zh) | 2020-08-07 | 2020-08-07 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114095458A CN114095458A (zh) | 2022-02-25 |
CN114095458B true CN114095458B (zh) | 2023-03-24 |
Family
ID=80295254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010789929.2A Active CN114095458B (zh) | 2020-08-07 | 2020-08-07 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114095458B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8650299B1 (en) * | 2010-02-03 | 2014-02-11 | Citrix Systems, Inc. | Scalable cloud computing |
CN106612306A (zh) * | 2015-10-22 | 2017-05-03 | 中兴通讯股份有限公司 | 虚拟机的数据共享方法及装置 |
US10432466B2 (en) * | 2017-06-22 | 2019-10-01 | Nicira, Inc. | Translating PAAS/CAAS abstractions to logical network topologies |
CN110635987B (zh) * | 2019-09-09 | 2021-11-02 | 新华三信息安全技术有限公司 | 一种报文传输方法、装置、设备及机器可读存储介质 |
-
2020
- 2020-08-07 CN CN202010789929.2A patent/CN114095458B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114095458A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108566445B (zh) | 一种报文传输方法及装置 | |
US9910687B2 (en) | Data flow affinity for heterogenous virtual machines | |
CN111131037A (zh) | 基于虚拟网关的数据传输方法、装置、介质与电子设备 | |
JP7448597B2 (ja) | メッセージ生成方法および装置ならびにメッセージ処理方法および装置 | |
CN114640616A (zh) | 一种报文传输、段列表生成、压缩段标识获取方法及装置 | |
CN113132202A (zh) | 一种报文传输方法及相关设备 | |
JP2023544309A (ja) | パケットヘッダ情報取得方法、パケット生成方法、装置及び記憶媒体 | |
CN114095458B (zh) | 一种数据处理方法及装置 | |
RU2716748C1 (ru) | Способ выравнивания нагрузки и связанное с ним устройство | |
CN111600833B (zh) | 网络操作系统及报文转发方法 | |
JP2021114767A5 (zh) | ||
CN111262771B (zh) | 虚拟私有云通信系统、系统配置方法及控制器 | |
CN116170406A (zh) | 用于实现虚拟机与公网通信的系统和方法 | |
CN113132273A (zh) | 一种数据转发方法及装置 | |
CN114816651A (zh) | 一种通信方法、装置以及系统 | |
CN108519912B (zh) | 数据清洗方法、装置、计算机可读存储介质及电子设备 | |
CN113489848B (zh) | 一种终端设备测试方法、装置、电子设备及存储介质 | |
CN113726723B (zh) | 基于udp的数据传输方法、装置及设备 | |
CN111371723B (zh) | 一种在dpdk框架下实现pptp vpn网络隔离的方法和装置 | |
CN117424908A (zh) | 消息传输方法、装置及电子设备 | |
CN118158095A (zh) | 一种报文处理方法及装置 | |
CN117439946A (zh) | 报文传输方法、装置及存储介质 | |
CN117692435A (zh) | 网络处理性能的提升方法、装置、设备及存储介质 | |
CN117478591A (zh) | 一种报文处理方法、网络设备及系统 | |
CN117527812A (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 |