CN112583655B - 数据传输方法、装置、电子设备及可读存储介质 - Google Patents
数据传输方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112583655B CN112583655B CN202011206999.7A CN202011206999A CN112583655B CN 112583655 B CN112583655 B CN 112583655B CN 202011206999 A CN202011206999 A CN 202011206999A CN 112583655 B CN112583655 B CN 112583655B
- Authority
- CN
- China
- Prior art keywords
- tenant
- matched
- information
- flow table
- matching
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Abstract
本申请提供一种数据传输方法、装置、电子设备及可读存储介质,涉及通信技术领域。该方法包括:接收虚拟机发送的数据包,数据包携带有接收方设备的信息以及待匹配信息;将待匹配信息与预先配置的流表中的匹配项进行匹配,流表中的匹配项包括需要通过RDMA网络进行数据传输的租户的租户标识;若待匹配信息中的租户标识与流表中的匹配项中的租户标识匹配时,则根据接收方设备的信息将数据包通过RDMA网络发送给接收方设备。通过物理网卡对接收的数据包中的待匹配信息与流表中的匹配项进行匹配,如此可对需要通过RDMA网络进行数据传输的租户的数据包进行识别,实现了在满足租户隔离的场景下也兼容了RDMA网络。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种数据传输方法、装置、电子设备及可读存储介质。
背景技术
为实现资源的高效利用和轻量隔离,很多流行的大型云应用都在逐渐使用容器化,如在Kubernetes平台上实现虚拟化方案即可以通过容器技术实现对各个租户的资源的隔离。
目前很多租户希望采用远程直接内存访问(Remote Direct Memory Access,RDMA)来提高网络性能,但是在云环境下,难以在实现租户隔离的场景下又兼容RDMA网络。
发明内容
本申请实施例的目的在于提供一种数据传输方法、装置、电子设备及可读存储介质,用以改善现有技术中在租户隔离的场景下难以兼容RDMA网络的问题。
第一方面,本申请实施例提供了一种数据传输方法,应用于发送方设备上的物理网卡,所述发送方设备上运行有至少一个虚拟机,每个虚拟机被配置为归属一租户,所述方法包括:
接收虚拟机发送的数据包,所述数据包携带有接收方设备的信息以及待匹配信息,所述待匹配信息包括所述虚拟机所归属的租户的租户标识;
将所述待匹配信息与预先配置的流表中的匹配项进行匹配,所述流表中的匹配项包括需要通过远程直接内存访问RDMA网络进行数据传输的租户的租户标识;
若所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配时,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备。
在上述实现过程中,通过物理网卡对接收的数据包中的待匹配信息与流表中的匹配项进行匹配,如此可对需要通过RDMA网络进行数据传输的租户的数据包进行识别,实现了在满足租户隔离的场景下也兼容了RDMA网络。
可选地,所述待匹配信息还包括所述接收方设备中接收租户的租户标识,所述将所述待匹配信息与预先配置的流表中的匹配项进行匹配,包括:
将所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识进行匹配,以及将所述接收租户的租户标识与所述匹配项中的另一租户标识进行匹配;
所述若所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配时,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备,包括:
若所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识匹配,以及所述接收租户的租户标识与所述匹配项中的租户标识进行匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收租户。
在上述实现过程中,通过在数据包的待匹配信息中还携带相应的接收租户的租户标识,然后对接收租户的租户标识以及虚拟机所属的租户的租户标识的匹配,从而可满足两个租户之间的RDMA网络传输。
可选地,所述根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备,包括:
建立与所述接收方设备之间的RDMA连接;
根据所述接收方设备的信息将所述数据包通过建立的RDMA网络发送给所述接收方设备。
在上述实现过程中,在确定需要将数据包通过RDMA网络传输时,再建立RDMA连接,相比于预先就建立RDMA连接的方式,该方式可按需建立连接,有效节省了资源。
可选地,所述租户标识为在Kubernetes平台中通过创建对应的自定义资源CRD对象为各个租户分配的,所述CRD对象包括所述发送方设备中各个租户对应的租户标识。
在上述实现过程中,通过创建CRD对象来保存各个租户的租户标识,从而可灵活根据需求对租户标识进行修改、增删等操作。
可选地,所述物理网卡为支持远程直接内存访问协议RoCE的网卡,所述接收虚拟机发送的数据包之前,还包括:
接收所述Kubernetes平台中的控制节点下发的流表。通过将流表卸载到物理网卡上,使得物理网卡能够根据流表中定义的规则对数据包进行相应处理,从而提高虚拟机环境中的数据包转发性能。
可选地,所述租户标识为虚拟可扩展局域网VXLAN网络的虚拟网络标识符。通过VXLAN实现租户的网络隔离,可满足大规模租户的应用场景。
第二方面,本申请实施例提供了一种数据传输装置,运行于发送方设备上的物理网卡,所述发送方设备上运行有至少一个虚拟机,每个虚拟机被配置为归属一租户,所述装置包括:
数据接收模块,用于接收虚拟机发送的数据包,所述数据包携带有接收方设备的信息以及待匹配信息,所述待匹配信息包括所述虚拟机所归属的租户的租户标识;
匹配模块,用于将所述待匹配信息与预先配置的流表中的匹配项进行匹配,所述流表中的匹配项包括需要通过远程直接内存访问RDMA网络进行数据传输的租户的租户标识;
数据发送模块,用于若所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配时,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备。
可选地,所述待匹配信息还包括所述接收方设备中接收租户的租户标识,所述匹配模块,用于将所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识进行匹配,以及将所述接收租户的租户标识与所述匹配项中的另一租户标识进行匹配;
所述数据发送模块,用于若所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识匹配,以及所述接收租户的租户标识与所述匹配项中的租户标识进行匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收租户。
可选地,所述数据发送模块,用于建立与所述接收方设备之间的RDMA连接;根据所述接收方设备的信息将所述数据包通过建立的RDMA网络发送给所述接收方设备。
可选地,所述租户标识为在Kubernetes平台中通过创建对应的自定义资源CRD对象为各个租户分配的,所述CRD对象包括所述发送方设备中各个租户对应的租户标识。
可选地,所述物理网卡为支持远程直接内存访问协议RoCE的网卡,所述装置包括:
流表接收模块,用于接收所述Kubernetes平台中的控制节点下发的流表。
可选地,所述租户标识为虚拟可扩展局域网VXLAN网络的虚拟网络标识符。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数据传输方法的流程图;
图2为本申请实施例提供的一种数据传输装置的结构框图;
图3为本申请实施例提供的一种用于执行数据传输方法的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了便于对本申请实施例的理解,下面先对本申请实施例所涉及到的一些名词进行解释。
RDMA是一种直接进行远程内存存取的技术,是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。
基于融合以太网的RDMA(RDMA over Converged Ethernet,RoCE),是一个网络协议,运行在一个以太网网络上使用远程直接内存访问。RoCE有RoCE v1和RoCE v2两个版本,RoCE v1是一个以太网链路层协议,因此允许同一个以太网广播域中的任意两台主机间进行通信。RoCE v2是一个网络层协议,因而RoCE v2数据包可以被路由。
Kubernetes是一套全新的基于容器技术的分布式管理系统,在Kubernetes中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对一组应用实例的管理、发现与访问。
Kubernetes中的容器使用的是Linux中叫做Cgroups和Namespace的分区功能来实现的。容器进程映射到网络、存储和其他的命名空间,每一个命名空间只能看到操作系统授权的一部分,通过这种方式做到容器之间的隔离。
在网络方面,每一个命名空间都有自己的网络堆栈,包括网络接口、路由表等,一个接口只能属于某一个网络的命名空间,使用多容器就意味着需要多接口。另外一个选择是生成伪接口,并将它们软连接到真实的接口。
创建并连接伪接口的方式有如下几种:虚拟桥、多路复用和单根I/O虚拟化(Single Root I/O Virtualization,SR-IOV)。相比来说性能最好的是SR-IOV,是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性,SR-IOV标准允许在虚拟机之间高效共享快速外设组件互连(Peripheral Component Interconnect express,PCIe)设备。
SR-IOV使用两种功能:
PF(Physical Functions):这是完整的带有SR-IOV能力的PCIe设备,PF能像普通PCI设备那样被发现、管理和配置。
VF(Virtual Functions):简单的PCIe功能,它只能处理I/O,每个VF都是从PF中分离出来的,每个物理硬件都有一个VF数目的限制,一个PF能被虚拟成多个VF用于分配给多个虚拟机。
SR-IOV网卡通过将SR-IOV功能集成到物理网卡上,将单一的物理网卡虚拟成多个VF接口,每个VF接口都有单独的虚拟PCIe通道,这些虚拟的PCIe通道共用物理网络的PCIe通道。每个虚拟机可占用一个或多个VF接口,这个虚拟机就可以直接访问自己的VF接口,而不需要Hypervisor的协调干预,从而大幅提升网络吞吐性能。
下面针对本申请提供的具体的数据传输方法进行详细介绍。
请参照图1,图1为本申请实施例提供的一种数据传输方法的流程图,该方法包括如下步骤:
步骤S110:接收虚拟机发送的数据包,所述数据包携带有接收方设备的信息以及待匹配信息,所述待匹配信息包括所述虚拟机所归属的租户的租户标识。
本申请实施例的数据传输方法应用于发送方设备上的物理网卡,发送方设备上运行有至少一个虚拟机,每个虚拟机被配置为归属一租户,即每个租户包括至少一个虚拟机。
其中,发送方设备可以理解为宿主机,其可以是计算机、服务器、平板电脑、路由器、交换机等具有处理功能的设备。
本申请实施例中应用场景为在Kubernetes平台上实现虚拟化方案,在实际应用中,一个租户可以根据实际需求在Kubernetes平台上创建一定数量的虚拟机,其虚拟机的创建过程可参照现有技术中的相关实现过程,在此不再过多赘述。
在云计算场景下,一个租户可以理解为使用云服务的厂商、企业、公司等,各个租户拥有自己的虚拟机。公有云的环境下,这些租户可通过访问公有网络获得第三方提供的服务,但是由于公有网络是共享的,租户的数据很可能会被其他租户探查到,所以,为了确保各个租户之间的数据安全,需要将每个租户的数据进行隔离。
在一些实施方式中,可以通过为各个租户划分逻辑网络,如虚拟扩展局域网(Virtual Extensible Local Area Network,VXLAN)或虚拟局域网(Virtual Local AreaNetwork,VLAN),以实现各个租户之间的隔离。
VXLAN的目的是在云计算环境中创建更多的逻辑网络,在云计算的多租户环境下,VXLAN可以极大地扩充云计算环境中所能支持的逻辑网络的数量,同时通过逻辑段可以将逻辑网络扩展到不同的子网内,使虚拟机能够在不同的子网间做迁移。
VXLAN采用了24bit的网络标识,叫做虚拟网络标识符(VXLAN NetworkIdentifier,VNI),通过24bit的网络标识,用户可以创建相互隔离的虚拟网络,而传统的VLAN技术只能提高4K个隔离网络,这样可以满足在大规模且含有大量租户的云环境中的网络隔离需求。
在具体实现过程中,可以预先将每个租户的虚拟机划分在一个VXLAN网络内,并通过VNI进行标识,即每个租户的虚拟机均被分配有对应的租户标识,租户标识即为VXLAN的虚拟网络标识符VNI,租户标识相同的虚拟机表示处于同一VXLAN网络内,租户标识不同的虚拟机之间无法互通,从而可实现各个租户之间的网络隔离。
在对各个租户划分VXLAN网络后,每个租户内的数据可通过专有的VXLAN网络进行服务访问,从而可避免其他租户探查到该租户的数据,确保了各个租户的数据安全。
另外,通过上述介绍可知,在Kubernetes平台中可通过SR-IOV虚拟出多个VF,每个VF就像是物理网卡硬件资源的一个切片,类似于虚拟网卡,然后可将这些VF挂载到虚拟机,以供虚拟机使用,这样虚拟机即可通过VF与宿主机进行数据交互。
在宿主机上启动SR-IOV之后,可建立物理网卡与各个VF接口之间的连接,然后虚拟机可通过VF接口将数据包发送给物理网卡,从而物理网卡可通过相应的VF接口接收虚拟机发送的数据包。相应地,虚拟机也可以通过VF接口接收物理网卡转发的数据包。
在某些应用场景下,某些租户希望采用RDMA来提高网络性能,因为与标准的TCP/IP的网络相比,RDMA网络能够提供更高的吞吐量、更低的延迟和更少的CPU占用,所以,对于有高速数据交互需求的租户来说,RDMA是一个较好的选择。
而对于某些租户并没有数据高速交互的需求,这些租户仍然可以使用传统的TCP网络进行数据交互。所以,物理网卡为了便于对这些需要进行RDMA网络传输的数据包进行识别,可通过租户标识来识别需要进行RDMA网络传输的数据包。这样虚拟机在发送数据包时,可将该虚拟机所属的租户的租户标识添加到数据包中,然后发送给物理网卡,当然为了便于物理网卡将数据包转发给接收方设备,数据包中还携带有接收方设备的信息。所以,虚拟机发送的数据包中携带有接收方设备的信息以及待匹配信息,待匹配信息包括虚拟机所归属的租户的租户标识。
其中,接收方设备的信息可以包括接收方设备的IP地址、端口号、MAC地址等信息,在实际的应用中,接收方设备的信息也可以根据实际情况进行增删。
步骤S120:将所述待匹配信息与预先配置的流表中的匹配项进行匹配,所述流表中的匹配项包括需要通过RDMA网络进行数据传输的租户的租户标识。
为了便于识别物理网卡接收的数据包是否需要通过RDMA网络传输,可以通过物理网卡中安装的流表来进行识别。
其中,在本申请实施例中,流表可以是指OpenFlow流表,OpenFlow可以通过用户定义的流表来匹配和处理报文。流表中可包含有多条表项,所有的表项都被组织在不同的Flow Table中,在同一个Flow Table中按照表项的优先级进行先后匹配,也即,物理网卡在接收到数据包后,可根据表项的优先级依次与各个表项进行匹配,直至匹配到某个表项,或者匹配完全部的表项。
其中,一条表项可以由匹配项、优先级、动作和统计数据等字段组成,其匹配项可以根据实际需求自行定义,如可以匹配入接口、物理入接口、流表间数据、二层报文头、三层报文头、端口号等字段;优先级用于定义表项之间的匹配顺序,优先级高的先匹配;统计数据可用于统计有多少个数据包匹配到该表项;动作用于定义匹配到该表项的数据包需要进行的处理,其处理的动作可以包含0个或多个,当数据包匹配到表项时,每个表项包含的动作就会执行。
所以,有了OpenFlow流表就可以在正常运行的网络中根据实际需求定义一些特殊的规则,通过定义不同的动作,可以将符合规则的流量按照需求进行转发,可以达到把物理网络切成若干不同的虚拟逻辑网络的目的。
在本申请实施例中,为了对需要进行RDMA网络传输的数据包进行识别,各个表项的匹配项中包含需要通过有租户标识,各个表项的匹配项中的动作即可为对数据包通过RDMA网络进行转发。这样,物理网卡在接收到数据包后,可对数据包进行解析,从中获得相应的租户标识,然后将租户标识依次与各个表项中的匹配项进行匹配,也即将数据包中携带的租户标识依次与流表中各个表项中匹配项所包括的租户标识进行匹配。
步骤S130:若所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配时,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给接收方设备。
若待匹配信息中的租户标识与某个表项中匹配项中的租户标识匹配时,则认为该待匹配信息中的租户标识与流表中的匹配项中的租户标识匹配,表示该数据包为需要通过RDMA网络传输的数据包。
物理网卡在进行数据包转发时,可依据数据包中携带的接收方设备的信息来将该数据包通过RDMA网络转发到下一跳地址,如接收方设备为该租户中的某个虚拟机,则物理网卡可根据该虚拟机对应的地址信息来将数据包转发至对应的VF接口,从而虚拟机可从对应的VF接口获得物理网卡转发的数据包。
在其他实施方式中,若待匹配信息中的租户标识与任一个表征中的匹配项的租户标识均不匹配时,则可默认对该数据包执行丢弃动作,不对该数据包进行转发。
而某些租户不需要通过RDMA网络传输时,则可选择采用传统的TCP传输,针对这些租户,也可以针对这些租户配置相应的流表,该流表中的表项中的匹配项即包括需要通过传统TCP网络进行数据传输的租户的租户标识,其对应的动作为对匹配的数据包通过TCP网络进行传输。这样在某个数据包中携带的租户标识匹配到该流表中的某个表项时,则可将该数据包通过TCP网络进行转发。
在上述实现过程中,通过物理网卡对接收的数据包中的待匹配信息与流表中的匹配项进行匹配,如此可对需要通过RDMA网络进行数据传输的租户的数据包进行识别,实现了在满足租户隔离的场景下也兼容了RDMA网络。
在一些实施方式中,某些租户之间在有RDMA数据传输需求时,为了便于对这些数据包的识别,数据包的待匹配信息中还可以包括接收方设备中接收租户的租户标识,而流表中各个表项的匹配项即包括有两个租户标识,则在将数据包与流表进行匹配时,可以将虚拟机所归属的租户的租户标识与各个表项中匹配项中的租户标识进行匹配,以及将接收租户的租户标识与匹配项中的租户标识进行匹配,若两个租户标识均匹配时,则根据接收方设备的信息将数据包转发给接收租户。
例如,流表中各个表项的匹配项包括租户标识1和租户标识2,一个租户标识表示发送租户的租户标识,另一个租户标识表示接收租户的租户标识,从数据包中提取出两个租户标识,包括租户标识a与租户标识b,租户标识a表示发送该数据包的虚拟机所属的租户的租户标识,租户标识b表示接收租户的租户标识,在进行租户标识匹配时,则分别将租户标识a与租户标识1、租户标识2匹配,且将租户标识b分别与租户标识1、租户标识2匹配,若租户标识a与租户标识1匹配,租户标识b与租户标识2匹配,或者租户标识a与租户标识2匹配,租户标识b与租户标识1匹配,均可认为该数据包与该表项匹配,继而可将数据包通过RDMA网络传输给接收租户。
需要说明的是,在实际应用中,各个表项中的匹配项还可以包含更多的匹配信息,如IP地址、端口号等,具体的匹配信息可以根据实际需求进行设置。
在上述实现过程中,通过在数据包的待匹配信息中还携带相应的接收租户的租户标识,然后对接收租户的租户标识以及虚拟机所属的租户的租户标识的匹配,从而可满足两个租户之间的RDMA网络传输。
在一些实施方式中,为了便于实现RDMA网络传输数据,可以预先针对需要RDMA网络传输的发送方设备和接收方设备建立RDMA连接,这样即可在确定将数据包通过RDMA传输时,直接可通过RDMA网络传输。
但是,在某些应用场景下,可能很长时间发送方设备与接收方设备之间并没有RDMA数据传输需求,预先就建立发送方设备与接收方设备之间的RDMA连接可能占据一定的资源。所以,还可以在确定数据包需要通过RDMA网络发送给接收方设备时,再建立与接收方设备之间的RDMA连接,然后再根据接收方设备的信息将数据包通过建立的RDMA网络发送给接收方设备。
其中,在建立RDMA连接时,发送方设备可以向接收方设备发送RDMA连接请求,接收方设备在接收到发送方设备发送的RDMA连接请求后,可对该连接请求进行响应,如拒绝连接或者同意连接等,其具体的连接建立过程可参照现有技术中的相关实现过程,在此不再过多赘述。
在上述实现过程中,在确定需要将数据包通过RDMA网络传输时,再建立RDMA连接,相比于预先就建立RDMA连接的方式,该方式可按需建立连接,有效节省了资源。
在一些实施方式中,为了满足用户对统一部署、扩展和运行容器集群的需求,可以采用Kubernetes来实现对容器的管理。在Kubernetes平台上,为了实现各个租户的网络隔离,上述的租户标识可以为在Kubernetes平台中通过创建对应的自定义资源(CustomResource Definition,CRD)对象为各个租户分配的,该CRD对象包括发送方设备中各个租户对应的租户标识。
其中,CRD对象是指对Kubernetes API的扩展,代表了一个特定的Kubernetes的定制化安装,在一个运行中的集群中,自定义资源可以动态注册到集群中,注册完毕以后,用户可以通过kubelet创建和访问这个自定义的对象,类似于操作pod一样。CRD对象使得开发人员可以不修改Kubernetes的原有代码,而是通过扩展形式,来管理自定义资源对象。
在本申请实施例中,可以通过在Kubernetes平台上创建CRD对象,然后在CRD对象中保存各个租户的名称以及各个租户对应的租户标识,当然,这些租户标识也可以包括接收方设备中各个租户的租户标识,其租户标识可以为上述的VNI,从而可根据租户标识来区别各个租户。
然后可通过Kubernetes平台中的控制节点为各个租户分配租户标识,Kubernetes平台中的控制节点可调取CRD对象中存储的各个租户对应的租户标识,然后可为各个租户配置相应的租户标识,即为各个虚拟机配置相应的租户标识。
可以理解地,为了实现各个租户之间的隔离,针对每个租户内的虚拟机可配置一样的租户标识,这样不同租户的虚拟机即可实现网络隔离。
在上述实现过程中,通过创建CRD对象来保存各个租户的租户标识,从而可灵活根据需求对租户标识进行修改、增删等操作。
在一些实施方式中,上述的物理网卡为支持RoCE的网卡,这样物理网卡可同时支持RDMA网络传输和TCP网络传输,各个租户可根据自身需求来选择对应的网络进行数据传输。其中,可以通过Kubernetes平台中的控制节点根据需求创建相应的流表,然后将流表下发给物理网卡,这样物理网卡即可接收到控制节点下发的流表。
物理网卡中可保存有一个或多个流表,其中,每个流表中可包括一个或多个表项,每个表项中可记录有相应的转发处理规则,如上述的匹配项和动作等信息。若在流表中查找到与数据包匹配的表项,则物理网卡可基于该匹配的表项中记录的转发处理规则对数据包进行处理,若物理网卡在流表中未查找到与数据包匹配的表项,则可默认对该数据包的处理为丢弃。如此,物理网卡即可根据流表来实现对接收的数据包的操作。
本申请实施例中,通过将流表卸载到物理网卡上,使得物理网卡能够根据流表中定义的规则对数据包进行相应处理,从而提高虚拟机环境中的数据包转发性能。
上述在Kubernetes平台实现虚拟化方案中,可以通过Kubernetes平台中的控制节点配置各个容器与虚拟网卡(即上述的VF)之间的对应关系、以及配置各个容器所属的租户信息,这样虚拟机发送的数据包可通过虚拟网卡发送给对应的物理网卡,物理网卡即通过虚拟机对应的虚拟网卡接收对应的数据包。
其中,可以通过CNI网络插件,将网络配置放到/etc/cni/net.d目录中,并将CNI插件的二进制文件放入/opt/cni/bin,这样控制节点可从二进制文件中读取各个容器与虚拟网络之间的对应关系,从而可便于实现流表的配置。
请参照图2,图2为本申请实施例提供的一种数据传输装置100的结构框图,该装置100可以是发送方设备上的模块、程序段或代码。应理解,该装置100与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置100具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
可选地,所述装置100包括:
数据接收模块110,用于接收虚拟机发送的数据包,所述数据包携带有接收方设备的信息以及待匹配信息,所述待匹配信息包括所述虚拟机所归属的租户的租户标识;
匹配模块120,用于将所述待匹配信息与预先配置的流表中的匹配项进行匹配,所述流表中的匹配项包括需要通过远程直接内存访问RDMA网络进行数据传输的租户的租户标识;
数据发送模块130,用于若所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配时,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备。
可选地,所述待匹配信息还包括所述接收方设备中接收租户的租户标识,所述匹配模块120,用于将所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识进行匹配,以及将所述接收租户的租户标识与所述匹配项中的另一租户标识进行匹配;
所述数据发送模块130,用于若所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识匹配,以及所述接收租户的租户标识与所述匹配项中的租户标识进行匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收租户。
可选地,所述数据发送模块130,用于建立与所述接收方设备之间的RDMA连接;根据所述接收方设备的信息将所述数据包通过建立的RDMA网络发送给所述接收方设备。
可选地,所述租户标识为在Kubernetes平台中通过创建对应的自定义资源CRD对象为各个租户分配的,所述CRD对象包括所述发送方设备中各个租户对应的租户标识。
可选地,所述物理网卡为支持远程直接内存访问协议RoCE的网卡,所述装置100包括:
流表接收模块,用于接收所述Kubernetes平台中的控制节点下发的流表。
可选地,所述租户标识为虚拟可扩展局域网VXLAN网络的虚拟网络标识符。
需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
请参照图3,图3为本申请实施例提供的一种用于执行数据传输方法的电子设备的结构示意图,该电子设备即为上述的发送方设备,所述电子设备可以包括:至少一个处理器210,例如CPU,至少一个通信接口220,至少一个存储器230和至少一个通信总线240。其中,通信总线240用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口220用于与其他节点设备进行信令或数据的通信。存储器230可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器230可选的还可以是至少一个位于远离前述处理器的存储装置。存储器230中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器210执行时,电子设备执行上述图1所示方法过程。
可以理解,图3所示的结构仅为示意,所述电子设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例提供一种可读存储介质,所述计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:接收虚拟机发送的数据包,所述数据包携带有接收方设备的信息以及待匹配信息,所述待匹配信息包括所述虚拟机所归属的租户的租户标识;将所述待匹配信息与预先配置的流表中的匹配项进行匹配,所述流表中的匹配项包括需要通过远程直接内存访问RDMA网络进行数据传输的租户的租户标识;若所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配时,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备。
综上所述,本申请实施例提供一种数据传输方法、装置、电子设备及可读存储介质,通过物理网卡对接收的数据包中的待匹配信息与流表中的匹配项进行匹配,如此可对需要通过RDMA网络进行数据传输的租户的数据包进行识别,实现了在满足租户隔离的场景下也兼容了RDMA网络。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种数据传输方法,其特征在于,应用于发送方设备上的物理网卡,所述发送方设备上运行有至少一个虚拟机,每个虚拟机被配置为归属一租户,所述方法包括:
接收虚拟机发送的数据包,所述数据包携带有接收方设备的信息以及待匹配信息,所述待匹配信息包括所述虚拟机所归属的租户的租户标识;其中,所述租户标识为在Kubernetes平台中通过创建对应的自定义资源CRD对象为各个租户分配的,所述CRD对象包括所述发送方设备中各个租户对应的租户标识;
将所述待匹配信息与预先配置的流表中的匹配项进行匹配;
若所述流表中的匹配项包括需要通过直接内存访问RDMA网络进行数据传输的租户的租户标识,且所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备;
若所述流表中的匹配项包括需要通过传输控制协议TCP网络进行数据传输的租户的租户标识,且所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过TCP网络发送给所述接收方设备。
2.根据权利要求1所述的方法,其特征在于,所述待匹配信息还包括所述接收方设备中接收租户的租户标识,所述将所述待匹配信息与预先配置的流表中的匹配项进行匹配,包括:
将所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识进行匹配,以及将所述接收租户的租户标识与所述匹配项中的另一租户标识进行匹配;
所述若所述流表中的匹配项包括需要通过直接内存访问RDMA网络进行数据传输的租户的租户标识,且所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备,包括:
若所述流表中的匹配项包括需要通过直接内存访问RDMA网络进行数据传输的租户的租户标识,且所述虚拟机所归属的租户的租户标识与所述流表中的匹配项中的租户标识匹配,以及所述接收租户的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收租户。
3.根据权利要求1所述的方法,其特征在于,所述根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备,包括:
建立与所述接收方设备之间的RDMA连接;
根据所述接收方设备的信息将所述数据包通过建立的RDMA网络发送给所述接收方设备。
4.根据权利要求1所述的方法,其特征在于,所述物理网卡为支持远程直接内存访问协议RoCE的网卡,所述接收虚拟机发送的数据包之前,还包括:
接收所述Kubernetes平台中的控制节点下发的流表。
5.根据权利要求1所述的方法,其特征在于,所述租户标识为虚拟可扩展局域网VXLAN网络的虚拟网络标识符。
6.一种数据传输装置,其特征在于,运行于发送方设备上的物理网卡,所述发送方设备上运行有至少一个虚拟机,每个虚拟机被配置为归属一租户,所述装置包括:
数据接收模块,用于接收虚拟机发送的数据包,所述数据包携带有接收方设备的信息以及待匹配信息,所述待匹配信息包括所述虚拟机所归属的租户的租户标识;其中,所述租户标识为在Kubernetes平台中通过创建对应的自定义资源CRD对象为各个租户分配的,所述CRD对象包括所述发送方设备中各个租户对应的租户标识;
匹配模块,用于将所述待匹配信息与预先配置的流表中的匹配项进行匹配;
数据发送模块,用于若所述流表中的匹配项包括需要通过直接内存访问RDMA网络进行数据传输的租户的租户标识,且所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备;以及,若所述流表中的匹配项包括需要通过传输控制协议TCP网络进行数据传输的租户的租户标识,且所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过TCP网络发送给所述接收方设备。
7.根据权利要求6所述的装置,其特征在于,所述待匹配信息还包括所述接收方设备中接收租户的租户标识,所述匹配模块,还用于将所述虚拟机所归属的租户的租户标识与所述匹配项中的租户标识进行匹配,以及将所述接收租户的租户标识与所述匹配项中的另一租户标识进行匹配;所述若所述流表中的匹配项包括需要通过直接内存访问RDMA网络进行数据传输的租户的租户标识,且所述待匹配信息中的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收方设备,包括:若所述流表中的匹配项包括需要通过直接内存访问RDMA网络进行数据传输的租户的租户标识,且所述虚拟机所归属的租户的租户标识与所述流表中的匹配项中的租户标识匹配,以及所述接收租户的租户标识与所述流表中的匹配项中的租户标识匹配,则根据所述接收方设备的信息将所述数据包通过RDMA网络发送给所述接收租户。
8.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-5任一所述的方法。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011206999.7A CN112583655B (zh) | 2020-11-02 | 2020-11-02 | 数据传输方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011206999.7A CN112583655B (zh) | 2020-11-02 | 2020-11-02 | 数据传输方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112583655A CN112583655A (zh) | 2021-03-30 |
CN112583655B true CN112583655B (zh) | 2023-04-14 |
Family
ID=75120111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011206999.7A Active CN112583655B (zh) | 2020-11-02 | 2020-11-02 | 数据传输方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112583655B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086194B (zh) * | 2022-05-20 | 2024-02-02 | 阿里巴巴(中国)有限公司 | 云应用的数据传输方法、计算设备及计算机存储介质 |
CN115473766B (zh) * | 2022-08-22 | 2024-01-26 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330602A (zh) * | 2016-08-22 | 2017-01-11 | 中国科学院信息工程研究所 | 一种云计算虚拟租户网络监控方法及系统 |
CN111225042A (zh) * | 2019-12-27 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 数据传输的方法、装置、计算机设备以及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160057768A1 (en) * | 2013-05-03 | 2016-02-25 | Telefonaktiebolaget L M Ericsson (Publ) | Method and network node for downlink scheduling in a mobile communication network |
KR102310188B1 (ko) * | 2015-08-10 | 2021-10-08 | 한국전자기술연구원 | Rdma 기반으로 데이터를 송수신하는 수신자 단말 및 방법 |
CN112398817B (zh) * | 2018-01-23 | 2022-02-25 | 华为技术有限公司 | 数据发送的方法及设备 |
CN111193653B (zh) * | 2019-12-31 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及存储介质 |
-
2020
- 2020-11-02 CN CN202011206999.7A patent/CN112583655B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330602A (zh) * | 2016-08-22 | 2017-01-11 | 中国科学院信息工程研究所 | 一种云计算虚拟租户网络监控方法及系统 |
CN111225042A (zh) * | 2019-12-27 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 数据传输的方法、装置、计算机设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112583655A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11895154B2 (en) | Method and system for virtual machine aware policy management | |
CN111885075B (zh) | 容器通信方法、装置、网络设备及存储介质 | |
US10063470B2 (en) | Data center network system based on software-defined network and packet forwarding method, address resolution method, routing controller thereof | |
US8954992B2 (en) | Distributed and scaled-out network switch and packet processing | |
CN111796905B (zh) | 一种kubernetes容器云平台VLAN网络的实现方法及系统 | |
US11374899B2 (en) | Managing network connectivity between cloud computing service endpoints and virtual machines | |
US20190081818A1 (en) | Data center networks | |
CN110635987B (zh) | 一种报文传输方法、装置、设备及机器可读存储介质 | |
WO2017113231A1 (zh) | 一种报文传输的方法、装置和系统 | |
CN109302466B (zh) | 数据处理方法、相关设备及计算机存储介质 | |
EP2965476B1 (en) | Forwarding ethernet packets | |
CN112398687B (zh) | 云计算网络的配置方法、云计算网络系统以及存储介质 | |
US20190166196A1 (en) | Data replication for a virtual networking system | |
CN112910685B (zh) | 实现对容器网络统一管理的方法及装置 | |
CN112583655B (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN110830574B (zh) | 一种基于docker容器实现内网负载均衡的方法 | |
CN108965094A (zh) | 一种虚拟机网络连接方法和装置 | |
CN104734930B (zh) | Vlan接入vf网络的实现方法及装置、fcf | |
CN108540408B (zh) | 一种基于Openstack的分布式虚拟交换机的管理方法及系统 | |
CN113839862A (zh) | Mclag邻居之间同步arp信息的方法、系统、终端及存储介质 | |
WO2016206562A1 (zh) | 一种配置用户设备转发表的方法、装置及系统 | |
CN111262771B (zh) | 虚拟私有云通信系统、系统配置方法及控制器 | |
CN111294316A (zh) | 基于用户态协议栈虚拟路由器的网络隔离方法和装置 | |
CN111865801B (zh) | 一种基于Virtio端口传输数据的方法和系统 | |
CN113904871A (zh) | 网络切片的接入方法、pcf实体、终端和通信系统 |
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 |