CN111865794B - 一种逻辑端口的关联方法、***、设备及数据传输*** - Google Patents
一种逻辑端口的关联方法、***、设备及数据传输*** Download PDFInfo
- Publication number
- CN111865794B CN111865794B CN201910334741.6A CN201910334741A CN111865794B CN 111865794 B CN111865794 B CN 111865794B CN 201910334741 A CN201910334741 A CN 201910334741A CN 111865794 B CN111865794 B CN 111865794B
- Authority
- CN
- China
- Prior art keywords
- port
- dpvs
- target
- load balancing
- data packet
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- 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
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种逻辑端口的关联方法、***、设备及数据传输***,其中,所述方法应用于dpvs负载均衡设备中,所述dpvs负载均衡设备具备virtio端口以及多个逻辑端口,所述方法包括:针对所述多个逻辑端口中的任一目标逻辑端口,为所述目标逻辑端口设置路径标签;根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述virtio端口的端口标识,生成所述目标逻辑端口的配置信息,并将所述配置信息写入所述dpvs负载均衡设备的配置文件中;解析添加了所述配置信息的配置文件,以将所述目标逻辑端口关联至所述virtio端口上。本申请提供的技术方案,使得dpvs负载均衡设备能够支持更多的逻辑端口,并能够减少设备的成本。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种逻辑端口的关联方法、***、设备及数据传输***。
背景技术
在NFV(网络功能虚拟化,Network Function Virtualization)的优化方案中,DPDK(数据平面开发套件,Data Plane Development Kit)软件加速方案已成为一种普遍采用的基本方法。
目前,基于DPDK的dpvs负载均衡设备在云计算网络节点中被广泛地应用。请参阅图1,现有的dpvs负载均衡设备在与ovs(open vswitch,虚拟交换机)进行数据交互时,在dpvs负载均衡设备以及ovs中均可以具备多个逻辑端口。例如在图1中,dpvs负载均衡设备中可以具备两个网络租户,这两个网络租户对应dpvs0至dpvs3的四个逻辑端口,另外,在ovs中可以具备lp0至lp3的四个逻辑端口。其中,这四对逻辑端口可以通过四条物理通道收发数据。这样,针对dpvs负载均衡设备中的每个逻辑端口而言,都需要设置独立的virtio端口。
随着dpvs负载均衡设备中网络租户的不断增多,逻辑端口的数量也会随之增多。如果按照现有技术的方案,dpvs负载均衡设备中需求的virtio端口的数量也会不断增加。然而,dpvs负载均衡设备的virtio端口的数量通常是有限的。另外,virtio端口会影响dpvs负载均衡设备的内存开销,当virtio端口数量增多时,dpvs负载均衡设备的内存开销也会随之增大。因此,现有的dpvs负载均衡设备在与ovs数据传输时,无法支持大量的逻辑端口,并且由于增加内存开销而使得设备成本变高。
发明内容
本申请的目的在于提供一种逻辑端口的关联方法、***、设备及数据传输***,使得dpvs负载均衡设备能够支持更多的逻辑端口,并能够减少设备的成本。
为实现上述目的,本申请一方面提供一种逻辑端口的关联方法,所述方法应用于dpvs负载均衡设备中,所述dpvs负载均衡设备具备virtio端口以及多个逻辑端口,所述方法包括:针对所述多个逻辑端口中的任一目标逻辑端口,为所述目标逻辑端口设置路径标签;根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述virtio端口的端口标识,生成所述目标逻辑端口的配置信息,并将所述配置信息写入所述dpvs负载均衡设备的配置文件中;解析添加了所述配置信息的配置文件,以将所述目标逻辑端口关联至所述virtio端口上。
为实现上述目的,本申请另一方面还提供一种逻辑端口的关联***,所述***应用于dpvs负载均衡设备中,所述dpvs负载均衡设备具备virtio端口以及多个逻辑端口,所述***包括:路径标签设置单元,用于针对所述多个逻辑端口中的任一目标逻辑端口,为所述目标逻辑端口设置路径标签;配置信息生成单元,用于根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述virtio端口的端口标识,生成所述目标逻辑端口的配置信息,并将所述配置信息写入所述dpvs负载均衡设备的配置文件中;配置文件解析单元,用于解析添加了所述配置信息的配置文件,以将所述目标逻辑端口关联至所述virtio端口上。
为实现上述目的,本申请另一方面还提供一种dpvs负载均衡设备,所述dpvs负载均衡设备中包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的逻辑端口的关联方法。
由上可见,本申请提供的技术方案,可以将dpvs负载均衡设备中的多个逻辑端口均关联至同一个virtio端口处,从而使得多个逻辑端口能够复用同一个virtio端口向外发出数据包。为了能够区分不同逻辑端口向外发出的数据包,可以为不同的逻辑端口设置不同的路径标签。然后,可以根据逻辑端口的端口标识、路径标签以及virtio端口的端口标识,生成逻辑端口的配置信息。生成的配置信息可以添加至dpvs负载均衡设备的配置文件中。当dpvs负载均衡设备解析配置文件后,便可以根据各个逻辑端口的配置信息,将各个逻辑端口关联至同一个virtio端口处。后续,当某个逻辑端口需要向虚拟交换机发送数据包时,dpvs负载均衡设备可以在数据包中加入该逻辑端口的路径标签,从而将该数据包与其它逻辑端口的数据包进行区分。此外,当dpvs负载均衡设备接收到虚拟交换机发来的数据包时,通常可以根据数据包中携带的路径标签,查询到对应的逻辑端口,从而可以将接收到的数据包转发至对应的逻辑端口进行处理。由上可见,本申请提供的技术方案,通过将多个逻辑端口关联至同一个virtio端口,从而能够极大地减少dpvs负载均衡设备需求的virtio端口的数量,进而节省了设备的内存开销。此外,通过为逻辑端口设置路径标签,从而能够区分不同逻辑端口发出或者接收的数据包。这样,即使共用同一个virtio端口,依然能够对数据包进行正确的转发和处理。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中dpvs负载均衡设备与ovs的***架构示意图;
图2是本发明实施方式中dpvs负载均衡设备与ovs的***架构示意图;
图3是本发明实施方式中逻辑端口的关联方法流程图;
图4是本发明实施方式中多个virtio端口的关联示意图;
图5是本发明实施方式中逻辑端口的关联***的功能模块示意图;
图6是本发明实施方式中dpvs负载均衡设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种逻辑端口的关联方法,所述方法可以应用于如图2所示的***架构中。该***架构可以包括dpvs负载均衡设备和ovs。在所述dpvs负载均衡设备中,可以实现NFV方案,从而划分出多个网络隔离空间。例如在图2中,dpvs负载均衡设备中可以划分出空间名称为NS1和NS2的两个网络隔离空间。对于每个网络隔离空间而言,可以具备一个或者多个逻辑端口。例如,NS1可以具备端口标识为dpvs0和dpvs1的两个逻辑端口。NS2可以具备端口标识为dpvs2和dpvs3的两个逻辑端口。
在本实施方式中,dpvs负载均衡设备上还可以具备virtio端口,通过该virtio端口,dpvs负载均衡设备可以与ovs进行数据交互。如图2所示,在软件层面,dpvs负载均衡设备的virtio端口可以通过virtio_user来驱动。从DPDK的角度看,virtio_user可以作为前端通信驱动,与该前端通信驱动对应的是ovs上的后端通信驱动。在图2中,ovs上的后端通信驱动可以是vhost_user,该vhost_user可以驱动ovs上的物理路径端口。这样,dpvs负载均衡设备与ovs便可以通过virtio_user和vhost_user构建的物理通道进行数据传输。
在本实施方式中,可以分别对dpvs负载均衡设备以及ovs进行改造,使得多个逻辑端口能够关联至同一个virtio端口上,从而节省dpvs负载均衡设备以及ovs所需的virtio端口,进而节省内存开销。
具体地,在启动ovs时,可以添加一个或者多个指定类型的逻辑端口。该指定类型的逻辑端口例如可以是dpdkvhostsub类型的逻辑端口。在添加逻辑端口时,可以指定逻辑端口的端口名称。例如,在实际应用中,可以通过ovs-vsctl add-port bridge lp0这样的指令来添加逻辑端口。其中,ovs-vsctl可以表示当前ovs的名称,add-port bridge可以表示添加逻辑端口的命令,lp0则可以是添加的逻辑端口的端口名称。此外,在添加逻辑端口时,可以通过type=dpdkvhostsub这样的指令来限定逻辑端口的类型为dpdkvhostsub。为了使得多个逻辑端口能够复用同一个物理路径端口,并且为了保证在复用同一个物理路径端口时,不同逻辑端口发出或者接收的数据包能够彼此区分,可以通过options:dpdk-devargs="ptag=1,vdev=vhost_user0"这样的指令来为添加的逻辑端口分配路径标签,以及为添加的逻辑端口指定关联的物理路径端口。其中,ptag=1可以表示当前添加的逻辑端口的路径标签为1,vdev=vhost_user0可以表示当前添加的逻辑端口被关联至名称为vhost_user0的物理路径端口处。
通过上述的方式,便可以在ovs中添加名称为lp0的逻辑端口,并且该逻辑端口的路径标签为1,以及该逻辑端口被关联至物理路径端口vhost_user0处。在实际应用中,可以在ovs上添加其它的逻辑端口lp1至lp3,并且lp1至lp3也可以通过上述类似的方式分配各自的路径标签。例如,lp1至lp3的路径标签可以分别为2、3、4。并且,lp1至lp3也可以关联至上述的物理路径端口vhost_user0。这样,在ovs上添加的四个逻辑端口便可以复用同一个物理路径端口,并且不同的逻辑端口可以通过路径标签进行区分。
在本实施方式中,针对dpvs负载均衡设备而言,可以通过如图3所示的步骤,来完成逻辑端口的关联。请参阅图3,应用于dpvs负载均衡设备中的逻辑端口的关联方法可以包括以下步骤。
S1:针对所述多个逻辑端口中的任一目标逻辑端口,为所述目标逻辑端口设置路径标签。
S3:根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述virtio端口的端口标识,生成所述目标逻辑端口的配置信息,并将所述配置信息写入所述dpvs负载均衡设备的配置文件中。
S5:解析添加了所述配置信息的配置文件,以将所述目标逻辑端口关联至所述virtio端口上。
为了描述方便,在本申请中可以针对dpvs负载均衡设备中的任一目标逻辑端口,来阐述本申请的技术方案。本领域技术人员应当知晓,针对目标逻辑端口的处理方式,同样也适用于dpvs负载均衡设备上的其它逻辑端口。
在本实施方式中,为了区分所述dpvs负载均衡设备中的不同逻辑端口,可以为各个逻辑端口分配不同的路径标签。例如,在图2中,dpvs0至dpvs3这四个逻辑端口,可以分别设置ptag=1至4的四个不同的路径标签。对于同一个dpvs负载均衡设备而言,各个逻辑端口设置的路径标签各不相同,从而可以通过路径标签来对dpvs负载均衡设备中的各个逻辑端口进行区分。
在本实施方式中,在为dpvs负载均衡设备的目标逻辑端口设置路径标签后,可以根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述dpvs负载均衡设备上的virtio端口的端口标识,生成所述目标逻辑端口的配置信息。其中,所述目标逻辑端口的端口标识可以是逻辑端口的名称。例如在图2中,可以是dpvs0这样的名称。为目标逻辑端口设置的路径标签则可以是赋给ptag的数值。所述virtio端口的端口标识,则可以是DPDK层面的驱动标识。例如在图2中,所述dpvs负载均衡设备的virtio端口的标识可以是virtio_user0。
在一个应用示例中,可以通过以下字段来生成目标逻辑端口的配置信息:
其中,device dpvs1可以表征当前的字段是针对端口标识为dpvs1的逻辑端口配置的,ptag 2则表示为目标逻辑端口设置的路径标签为2,vdev virtio_user0可以表征将该目标逻辑端口关联至端口标识为virtio_user0的virtio端口处。此外,在该字段中还可以通过mac xx:xx:xx:xx:xx:xx注明目标逻辑端口的MAC地址。这样,生成的目标逻辑端口的配置信息中,可以包括目标逻辑端口的端口标识、目标逻辑端口的路径标签、目标逻辑端口关联至的virtio端口的端口标识以及目标逻辑端口对应的MAC地址等信息。
针对dpvs负载均衡设备中的各个逻辑端口,均可以通过上述的方式,生成各自的配置信息。在本实施方式中,在生成各个逻辑端口的配置信息后,可以将生成的配置信息写入dpvs负载均衡设备的配置文件中。这样,当dpvs负载均衡设备解析该添加了配置信息的配置文件时,便可以逐一解析各个逻辑端口的配置信息,从而可以按照解析的内容,将各个逻辑端口关联至同一个virtio端口上。
在本实施方式中,根据各个逻辑端口生成的配置信息,可以在dpvs负载均衡设备中维护一张关联关系表。该关联关系表中,可以注明具备关联关系的逻辑端口的端口标识、逻辑端口的路径标签以及virtio端口的端口标识。例如,按照图2的结构,可以构建如表1所示的关联关系表。
表1 dpvs负载均衡设备中的关联关系表
逻辑端口标识 | 逻辑端口的路径标签 | 关联virtio端口标识 |
dpvs0 | 1 | virtio_user0 |
dpvs1 | 2 | virtio_user0 |
dpvs2 | 3 | virtio_user0 |
dpvs3 | 4 | virtio_user0 |
在本实施方式中,在对dpvs负载均衡设备和ovs分别完成逻辑端口的关联后,便可以在dpvs负载均衡设备和ovs之间进行数据传输。具体地,在dpvs负载均衡设备的启动参数中,需要设置与该dpvs负载均衡设备进行通信的ovs的路径端口。由于ovs当前将多个逻辑端口关联至同一个物理路径端口上,因此,在所述dpvs负载均衡设备的启动参数中,可以将所述virtio端口原先指向的路径端口修改为所述虚拟交换机上的所述物理路径端口。以图2为例,在dpvs负载均衡设备的启动参数中,可以将virtio端口virtio_user0指向的路径端口修改为ovs上的vhost_user0物理路径端口。
当所述dpvs负载均衡设备中的目标逻辑端口需要向ovs发送数据包时,dpvs负载均衡设备可以查询所述目标逻辑端口对应的目标路径标签。举例来说,假设dpvs负载均衡设备中的逻辑端口dpvs0目前需要向ovs发送数据包,那么dpvs负载均衡设备根据维护的关联关系表,可以查询到dpvs0对应的目标路径标签为1。然后,dpvs负载均衡设备可以将查询得到的所述目标路径标签添加于待发送的所述数据包中。具体地,dpvs负载均衡设备向外发送的数据包,或者接收到的数据包中,均可以包括预设字段。该预设字段可以是数据包中未被占用的字段,该字段可以填充用户自定义的内容。例如,该预设字段可以是数据包的头部字段,那么在添加目标路径标签时,可以将该目标路径标签添加入数据包的头部字段中。在实际应用中,该预设字段还可以是数据包的尾部字段。具体地,dpvs负载均衡设备在收发数据包时,可以通过创建预设的结构体来存储待发送的数据包。该预设的结构体例如可以是mbuf结构体。所述mbuf结构体的部分构成可以如下所示:
struct rte_mbuf
{
void buf_addr;
uint16_t port;
uint32_t pkt_len;
uint16_t data_len;
}
其中,buf_addr可以是内容指针,该内容指针可以指向数据包的实际内容。port则可以代表数据包是从哪个端口得到的。pkt_len可以表示数据包的整体长度。data_len可以表示数据包中数据体的长度。
在通过mbuf结构体存储待发送的数据包后,为了在数据包中添加查询得到的目标路径标签,可以修改mbuf结构体中的内容指针buf_addr,将该内容指针指向数据包的预设尾部字段(tailroom),然后将查询得到的目标路径标签添加至该内容指针指向的预设尾部字段中。这样,在待发送的数据包中,便可以携带目标逻辑端口的目标路径标签。后续可以通过所述dpvs负载均衡设备上的virtio端口向ovs发送携带所述目标路径标签的数据包。当然,由于在dpvs负载均衡设备的启动参数中设置了路径端口,因此dpvs负载均衡设备通过virtio端口virtio_user0发出的数据包可以由ovs的物理路径端口vhost_user0接收。
在本实施方式中,当ovs接收到dpvs负载均衡设备发来的携带了目标路径标签的数据包后,可以解析接收到的数据包中携带的目标路径标签。具体地,ovs在接收数据包时,也可以创建上述的mbuf结构体,通过创建的mbuf结构体来存储接收到的数据包。然后,通过修改其中的内容指针,可以将内容指针指向数据包的预设尾部字段,并可以从该预设尾部字段中读取出目标路径标签。在读取出目标路径标签后,ovs可以查询该目标路径标签在本地对应的逻辑端口。例如,假设读取出的目标路径标签为1,那么在ovs中,该目标路径标签对应的逻辑端口为lp0。此时,ovs可以将接收到的数据包发送至查询得到的逻辑端口处,以通过该逻辑端口对数据包进行处理。
当然,ovs也可以向dpvs负载均衡设备发送数据包。具体地,ovs中的逻辑端口在向dpvs负载均衡设备发送数据包时,同样可以在待发送的数据包中写入逻辑端口的路径标签,并发送携带路径标签的数据包。这样,当dpvs负载均衡设备通过所述virtio端口接收到ovs发来的数据包后,可以解析接收到的所述数据包中携带的路径标签,然后可以查询解析得到的所述路径标签对应的逻辑端口,并将接收到的所述数据包发送至查询得到的所述逻辑端口处。
在dpvs负载均衡设备与ovs进行数据传输时,dpvs负载均衡设备和ovs均可以通过mbuf结构体存储收发的数据包,并通过修改内容指针的方式,在数据包的预设尾部字段内写入路径标签或者从数据包的预设尾部字段中解析出路径标签。
在一个实施方式中,在dpvs负载均衡设备中,还可以动态地新建、删除或者修改逻辑端口。具体地,当需要在dpvs负载均衡设备中创建新的逻辑端口时,可以按照上述的方式,为所述新的逻辑端口设置端口标识和路径标签。然后可以根据为所述新的逻辑端口设置的端口标识和路径标签以及所述virtio端口的端口标识,生成所述新的逻辑端口对应的新的配置信息,并将所述新的配置信息写入所述dpvs负载均衡设备的配置文件中。为了使得新的逻辑端口能够正常运行,dpvs负载均衡设备可以解析添加了所述新的配置信息的配置文件,从而将所述新的逻辑端口关联至所述virtio端口上。
在另一个实施方式中,当需要删除已创建的目标逻辑端口时,dpvs负载均衡设备可以接收指向所述目标逻辑端口的删除指令,并根据所述删除指令,在所述dpvs负载均衡设备中删除所述目标逻辑端口,同时,还可以在所述dpvs负载均衡设备的配置文件中删除所述目标逻辑端口的配置信息。然后,dpvs负载均衡设备可以解析删除了所述目标逻辑端口的配置信息的配置文件,从而将所述目标逻辑端口与所述virtio端口解除关联。
在另一个实施方式中,当需要对已经创建的目标逻辑端口进行更改时,dpvs负载均衡设备可以接收指向所述目标逻辑端口的修改指令,并根据所述修改指令为所述目标逻辑端口重新分配路径标签和/或MAC地址。然后可以根据分配结果重新生成所述目标逻辑端口的配置信息,并将重新生成的所述配置信息写入所述dpvs负载均衡设备的配置文件中。最后,dpvs负载均衡设备可以解析添加了重新生成的所述配置信息的配置文件,从而更改所述目标逻辑端口的路径标签和/或MAC地址。
由上可见,本申请提供的技术方案,可以在不重启dpvs负载均衡设备的情况下,动态地对逻辑端口进行增、删、改的操作。当然,上述针对逻辑端口的增、删、改的方案,同样可以应用于ovs中,这里就不再赘述。
需要说明的是,上述实施方式中都是以一个virtio端口为例在阐述技术方案,但本领域技术人员应当知晓,在实际应用中,同一个dpvs负载均衡设备或者ovs中都可以具备多个virtio端口。针对每个virtio端口,都可以按照上述的方式,将多个逻辑端口进行关联。具体地,请参阅图4,dpvs负载均衡设备中可以具备virtio_user1和virtio_user2的两个virtio端口,ovs中也可以具备vhost_user1和vhost_user2的两个物理路径端口。其中,在dpvs负载均衡设备中,可以将dpvs11和dpvs12的逻辑端口关联至virtio_user1上,并且可以将dpvs13和dpvs14的逻辑端口关联至virtio_user2上。类似地,在ovs中,可以将lp11和lp12的逻辑端口关联至vhost_user1上,并且可以将lp13和lp14的逻辑端口关联至vhost_user2上。
本申请还提供一种逻辑端口的关联***,所述***应用于上述的dpvs负载均衡设备中,所述dpvs负载均衡设备具备virtio端口以及多个逻辑端口,请参阅图5,所述***包括:
路径标签设置单元,用于针对所述多个逻辑端口中的任一目标逻辑端口,为所述目标逻辑端口设置路径标签;
配置信息生成单元,用于根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述virtio端口的端口标识,生成所述目标逻辑端口的配置信息,并将所述配置信息写入所述dpvs负载均衡设备的配置文件中;
配置文件解析单元,用于解析添加了所述配置信息的配置文件,以将所述目标逻辑端口关联至所述virtio端口上。
在一个实施方式中,所述***还包括:
路径标签查询单元,用于当所述目标逻辑端口向虚拟交换机发送数据包时,查询所述目标逻辑端口对应的目标路径标签;
标签添加单元,用于将查询得到的所述目标路径标签添加于所述数据包中,并通过所述virtio端口向所述虚拟交换机发送携带所述目标路径标签的数据包。
在一个实施方式中,所述***还包括:
路径标签解析单元,用于通过所述virtio端口接收所述虚拟交换机发来的数据包,并解析接收到的所述数据包中携带的路径标签;
逻辑端口查询单元,用于查询解析得到的所述路径标签对应的逻辑端口,并将接收到的所述数据包发送至查询得到的所述逻辑端口处。
请参阅图6,本申请还提供一种dpvs负载均衡设备,所述dpvs负载均衡设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现如上述的逻辑端口的关联方法。具体地,如图6所示,在硬件层面,该dpvs负载均衡设备可以包括处理器、内部总线和存储器。所述存储器可以包括内存以及非易失性存储器。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述识别装置的结构造成限定。例如,所述dpvs负载均衡设备还可包括比图6中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如GPU(Graphics Processing Unit,图像处理器),或者具有与图6所示不同的配置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等。
在本实施方式中,所述的处理器可以包括中央处理器(CPU)或图形处理器(GPU),当然也可以包括其他的具有逻辑处理能力的单片机、逻辑门电路、集成电路等,或其适当组合。本实施方式所述的存储器可以是用于保存信息的记忆设备。在数字***中,能保存二进制数据的设备可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也可以为存储器,如RAM、FIFO等;在***中,具有实物形式的存储设备也可以叫存储器等。实现的时候,该存储器也可以采用云存储器的方式实现,具体实现方式,本说明书不错限定。
需要说明的是,本说明书中的dpvs负载均衡设备,具体的实现方式可以参照方法实施方式的描述,在此不作一一赘述。
本申请还提供一种数据传输***,所述数据传输***包括dpvs负载均衡设备和虚拟交换机,所述dpvs负载均衡设备具备virtio端口以及与所述virtio端口相关联的多个逻辑端口,所述虚拟交换机具备物理路径端口以及与所述物理路径端口相关联的多个逻辑端口,所述dpvs负载均衡设备和所述虚拟交换机中的各个所述逻辑端口均具备路径标签,其中:
所述dpvs负载均衡设备,用于当所述dpvs负载均衡设备中的第一逻辑端口向所述虚拟交换机发送第一数据包时,查询所述第一逻辑端口对应的第一路径标签;以及将查询得到的所述第一路径标签添加于所述第一数据包中,并通过所述virtio端口向所述虚拟交换机发送携带所述第一路径标签的第一数据包;
所述虚拟交换机,用于当所述虚拟交换机中的第二逻辑端口向所述dpvs负载均衡设备发送第二数据包时,查询所述第二逻辑端口对应的第二路径标签;以及将查询得到的所述第二路径标签添加于所述第二数据包中,并通过所述物理路径端口向所述dpvs负载均衡设备发送携带所述第二路径标签的第二数据包。
在一个实施方式中,所述dpvs负载均衡设备,还用于通过所述virtio端口接收所述虚拟交换机发来的第三数据包,并解析所述第三数据包中携带的第三路径标签;以及查询所述第三路径标签对应的第三逻辑端口,并将接收到的所述第三数据包发送至所述第三逻辑端口处;
所述虚拟交换机,还用于通过所述物理路径端口接收所述dpvs负载均衡设备发来的第四数据包,并解析所述第四数据包中携带的第四路径标签;以及查询所述第四路径标签对应的第四逻辑端口,并将接收到的所述第四数据包发送至所述第四逻辑端口处。
由上可见,本申请提供的技术方案,可以将dpvs负载均衡设备中的多个逻辑端口均关联至同一个virtio端口处,从而使得多个逻辑端口能够复用同一个virtio端口向外发出数据包。为了能够区分不同逻辑端口向外发出的数据包,可以为不同的逻辑端口设置不同的路径标签。然后,可以根据逻辑端口的端口标识、路径标签以及virtio端口的端口标识,生成逻辑端口的配置信息。生成的配置信息可以添加至dpvs负载均衡设备的配置文件中。当dpvs负载均衡设备解析配置文件后,便可以根据各个逻辑端口的配置信息,将各个逻辑端口关联至同一个virtio端口处。后续,当某个逻辑端口需要向虚拟交换机发送数据包时,dpvs负载均衡设备可以在数据包中加入该逻辑端口的路径标签,从而将该数据包与其它逻辑端口的数据包进行区分。此外,当dpvs负载均衡设备接收到虚拟交换机发来的数据包时,通常可以根据数据包中携带的路径标签,查询到对应的逻辑端口,从而可以将接收到的数据包转发至对应的逻辑端口进行处理。由上可见,本申请提供的技术方案,通过将多个逻辑端口关联至同一个virtio端口,从而能够极大地减少dpvs负载均衡设备需求的virtio端口的数量,进而节省了设备的内存开销。此外,通过为逻辑端口设置路径标签,从而能够区分不同逻辑端口发出或者接收的数据包。这样,即使共用同一个virtio端口,依然能够对数据包进行正确的转发和处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种逻辑端口的关联方法,其特征在于,所述方法应用于dpvs负载均衡设备中,所述dpvs负载均衡设备具备至少一个virtio端口以及多个逻辑端口,所述方法包括:
针对所述多个逻辑端口中的任一目标逻辑端口,为所述目标逻辑端口设置路径标签;
根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述virtio端口的端口标识,生成所述目标逻辑端口的配置信息,并将所述配置信息写入所述dpvs负载均衡设备的配置文件中;
解析添加了所述配置信息的配置文件,以将所述目标逻辑端口关联至所述virtio端口上,并基于所述配置信息在所述dpvs负载均衡设备中维护关联关系表,所述关联关系表中注明了所述目标逻辑端口的端口标识、所述目标逻辑端口的路径标签以及所述virtio端口的端口标识之间的关联关系;
所述dpvs负载均衡设备和虚拟交换机之间根据所述virtio端口、所述关联关系表进行数据传输;
当所述目标逻辑端口向所述虚拟交换机发送数据包时,查询所述目标逻辑端口对应的目标路径标签;
其中,所述目标逻辑端口向所述虚拟交换机发送的数据包中包含预设字段,且所述预设字段为数据包中的尾部字段;
相应地,所述方法还包括:
将查询得到的所述目标路径标签添加于所述数据包的所述预设字段中。
2.根据权利要求1所述的方法,其特征在于,所述目标逻辑端口的配置信息中还包括所述目标逻辑端口对应的MAC地址。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
通过所述virtio端口向所述虚拟交换机发送携带所述目标路径标签的数据包。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过所述virtio端口接收所述虚拟交换机发来的数据包,并解析接收到的所述数据包中携带的路径标签;
查询解析得到的所述路径标签对应的逻辑端口,并将接收到的所述数据包发送至查询得到的所述逻辑端口处。
5.根据权利要求4所述的方法,其特征在于,所述虚拟交换机发来的数据包中包含预设字段;相应地,所述方法还包括:
从接收到的所述数据包的所述预设字段中解析出携带的路径标签。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建新的逻辑端口,并为所述新的逻辑端口设置端口标识和路径标签;
根据为所述新的逻辑端口设置的端口标识和路径标签以及所述virtio端口的端口标识,生成所述新的逻辑端口对应的新的配置信息,并将所述新的配置信息写入所述dpvs负载均衡设备的配置文件中;
解析添加了所述新的配置信息的配置文件,以将所述新的逻辑端口关联至所述virtio端口上。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收指向所述目标逻辑端口的删除指令,并根据所述删除指令,在所述dpvs负载均衡设备中删除所述目标逻辑端口,并在所述dpvs负载均衡设备的配置文件中删除所述目标逻辑端口的配置信息;
解析删除了所述目标逻辑端口的配置信息的配置文件,以将所述目标逻辑端口与所述virtio端口解除关联。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收指向所述目标逻辑端口的修改指令,并根据所述修改指令为所述目标逻辑端口重新分配路径标签和/或MAC地址;
根据分配结果重新生成所述目标逻辑端口的配置信息,并将重新生成的所述配置信息写入所述dpvs负载均衡设备的配置文件中;
解析添加了重新生成的所述配置信息的配置文件,以更改所述目标逻辑端口的路径标签和/或MAC地址。
9.一种逻辑端口的关联***,其特征在于,所述***应用于dpvs负载均衡设备中,所述dpvs负载均衡设备具备至少一个virtio端口以及多个逻辑端口,所述***包括:
路径标签设置单元,用于针对所述多个逻辑端口中的任一目标逻辑端口,为所述目标逻辑端口设置路径标签;
配置信息生成单元,用于根据所述目标逻辑端口的端口标识、为所述目标逻辑端口设置的路径标签以及所述virtio端口的端口标识,生成所述目标逻辑端口的配置信息,并将所述配置信息写入所述dpvs负载均衡设备的配置文件中;
配置文件解析单元,用于解析添加了所述配置信息的配置文件,以将所述目标逻辑端口关联至所述virtio端口上,并基于所述配置信息在所述dpvs负载均衡设备中维护关联关系表,所述关联关系表中注明了所述目标逻辑端口的端口标识、所述目标逻辑端口的路径标签以及virtio端口的端口标识之间的关联关系;以使所述dpvs负载均衡设备和虚拟交换机之间根据所述virtio端口、所述关联关系表进行数据传输;
路径标签查询单元,用于当所述目标逻辑端口向所述虚拟交换机发送数据包时,查询所述目标逻辑端口对应的目标路径标签;其中,所述目标逻辑端口向所述虚拟交换机发送的数据包中包含预设字段,且所述预设字段为数据包中的尾部字段;将查询得到的所述目标路径标签添加于所述数据包的所述预设字段中。
10.根据权利要求9所述的***,其特征在于,所述***还包括:
标签添加单元,用于将查询得到的所述目标路径标签添加于所述数据包中,并通过所述virtio端口向所述虚拟交换机发送携带所述目标路径标签的数据包。
11.根据权利要求10所述的***,其特征在于,所述***还包括:
路径标签解析单元,用于通过所述virtio端口接收所述虚拟交换机发来的数据包,并解析接收到的所述数据包中携带的路径标签;
逻辑端口查询单元,用于查询解析得到的所述路径标签对应的逻辑端口,并将接收到的所述数据包发送至查询得到的所述逻辑端口处。
12.一种dpvs负载均衡设备,其特征在于,所述dpvs负载均衡设备中包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910334741.6A CN111865794B (zh) | 2019-04-24 | 2019-04-24 | 一种逻辑端口的关联方法、***、设备及数据传输*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910334741.6A CN111865794B (zh) | 2019-04-24 | 2019-04-24 | 一种逻辑端口的关联方法、***、设备及数据传输*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111865794A CN111865794A (zh) | 2020-10-30 |
CN111865794B true CN111865794B (zh) | 2023-04-21 |
Family
ID=72952435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910334741.6A Active CN111865794B (zh) | 2019-04-24 | 2019-04-24 | 一种逻辑端口的关联方法、***、设备及数据传输*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111865794B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114301619B (zh) * | 2021-11-16 | 2024-01-30 | 北京威努特技术有限公司 | 一种无硬件管理口工控防火墙及其模拟管理口实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050018669A1 (en) * | 2003-07-25 | 2005-01-27 | International Business Machines Corporation | Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port |
CN104486124B (zh) * | 2014-12-19 | 2018-09-04 | 盛科网络(苏州)有限公司 | 使用逻辑端口实现多***链路聚合的装置及方法 |
CN106856454A (zh) * | 2015-12-09 | 2017-06-16 | 北京华为数字技术有限公司 | 一种报文转发的方法、设备及*** |
US10135726B2 (en) * | 2016-10-27 | 2018-11-20 | Vmware, Inc. | Virtualization port layer including physical switch port and logical switch port |
-
2019
- 2019-04-24 CN CN201910334741.6A patent/CN111865794B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111865794A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3057272B1 (en) | Technologies for concurrency of cuckoo hashing flow lookup | |
US7330918B2 (en) | Buffer memory management method and system | |
US9077563B2 (en) | Switch for identifying extended group information of ports | |
CN108848034B (zh) | 一种网络设备及表项学习方法 | |
JP5594171B2 (ja) | 通信処理装置、アドレス学習プログラムおよびアドレス学習方法 | |
US20110134928A1 (en) | Transmitting a packet | |
US10348603B1 (en) | Adaptive forwarding tables | |
EP3451592B1 (en) | Packet transmission between vxlan domains | |
US9584481B2 (en) | Host providing system and communication control method | |
US10397116B1 (en) | Access control based on range-matching | |
US9906449B2 (en) | System and method for reduced forwarding information storage | |
CN104468401A (zh) | 一种报文处理方法和装置 | |
CN104731635A (zh) | 一种虚拟机访问控制方法,及虚拟机访问控制*** | |
CN109240800B (zh) | 一种基于Hypervisor多***共享内存的管理方法 | |
CN115858160B (zh) | 远程直接内存访问虚拟化资源分配方法及装置、存储介质 | |
CN108337116B (zh) | 消息保序方法及装置 | |
CN115426312A (zh) | 一种大规模多模态网络中标识管理及优化转发方法和装置 | |
CN108259348B (zh) | 一种报文传输方法和装置 | |
US8762485B2 (en) | Information system having computer and storage apparatus coupled to network | |
CN111865794B (zh) | 一种逻辑端口的关联方法、***、设备及数据传输*** | |
CN114389995A (zh) | 资源共享的方法、装置以及电子设备 | |
US6996664B2 (en) | Ternary content addressable memory with enhanced priority matching | |
US7773590B2 (en) | Combined interface and non-interface specific associative memory lookup operations for processing of packets | |
CN108965093B (zh) | 一种vlan分配方法及装置 | |
EP3534576B1 (en) | Packet transmission |
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 |