HK1250189B - Method for message processing in cloud computing system, host and system - Google Patents
Method for message processing in cloud computing system, host and system Download PDFInfo
- Publication number
- HK1250189B HK1250189B HK17111741.0A HK17111741A HK1250189B HK 1250189 B HK1250189 B HK 1250189B HK 17111741 A HK17111741 A HK 17111741A HK 1250189 B HK1250189 B HK 1250189B
- Authority
- HK
- Hong Kong
- Prior art keywords
- data packet
- virtual machine
- network
- network port
- vlan
- Prior art date
Links
Description
技术领域Technical Field
本发明涉及IT技术领域,尤其涉及云计算系统中报文处理的方法、主机和系统。The present invention relates to the field of IT technology, and in particular to a method, host, and system for message processing in a cloud computing system.
背景技术Background Art
虚拟化技术是云计算领域的关键技术之一,可将主机的物理资源抽象成共享资源池,供主机上运行的若干个虚拟机(Virtual Machine,VM)使用。主机上运行的若干个虚拟机可以共享使用主机的网卡,与主机外部网络进行通信。在现有技术中,可以通过网卡虚拟化的方式将网卡分配给虚拟机使用,网卡虚拟化可以采用单根输入输出虚拟化(Single-Root I/O Virtualization,SR-IOV)或多根输入输出虚拟化(Multi Root Input/OutputVirtualization,MR-IOV),上述网卡虚拟化又称为网卡直通。以SR-IOV直通为例,当网卡支持SR-IOV时,使用SR-IOV技术可以将主机上网卡共享给主机上运行的若干个虚拟机。Virtualization technology is one of the key technologies in the field of cloud computing. It can abstract the physical resources of the host into a shared resource pool for use by several virtual machines (VMs) running on the host. Several virtual machines running on the host can share the host's network card and communicate with the host's external network. In the existing technology, the network card can be allocated to the virtual machine through network card virtualization. Network card virtualization can adopt single-root input and output virtualization (SR-IOV) or multi-root input/output virtualization (MR-IOV). The above network card virtualization is also called network card passthrough. Taking SR-IOV passthrough as an example, when the network card supports SR-IOV, SR-IOV technology can be used to share the network card on the host with several virtual machines running on the host.
在主机上使用支持SR-IOV能力的网卡时,网卡的网口会虚拟出至少一个物理功能(Physical Function,PF)以及多个虚拟功能(Virtual Function,VF),主机上的虚拟机连接到至少一个VF。网卡内部包含具备交换机功能的交换设备。该交换设备按照介质访问控制(MediaAccessControl,MAC)表转发数据包,负责着PF、VF和物理网口之间的数据包转发,但由于该交换设备的处理和存储能力有限,因此无法为用户提供丰富的网络功能,例如安全组、服务质量(Quality of Service,QoS)、二层隧道封装以及分布式路由等等。When using a network card that supports SR-IOV on a host, the network port of the network card will virtualize at least one physical function (PF) and multiple virtual functions (VF), and the virtual machines on the host are connected to at least one VF. The network card contains a switching device with switch functions. This switching device forwards data packets according to the Media Access Control (MAC) table and is responsible for forwarding data packets between PFs, VFs, and physical network ports. However, due to the limited processing and storage capabilities of this switching device, it cannot provide users with rich network functions such as security groups, Quality of Service (QoS), Layer 2 tunnel encapsulation, and distributed routing.
发明内容Summary of the Invention
本文描述了一种云计算系统中报文处理的方法、主机和系统以解决网卡直通场景下无法提供丰富的网络功能的问题。This article describes a method, host, and system for message processing in a cloud computing system to solve the problem of not being able to provide rich network functions in a network card passthrough scenario.
第一方面,本发明实施例提供了一种主机,至少一个网卡连接到该主机,所述主机上运行有虚拟机监视器VMM,VMM上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个物理功能PF和多个逻辑功能VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,In a first aspect, an embodiment of the present invention provides a host, at least one network card is connected to the host, a virtual machine monitor (VMM) runs on the host, a first virtual machine runs on the VMM, the VMM includes multiple VLAN sub-interfaces and a virtual network function module, the at least one network card includes a switching device and at least three network ports, wherein the first network port and the second network port support network card virtualization capabilities, the first network port corresponds to at least one physical function (PF) and multiple logical functions (VFs), the multiple VFs are configured with VLAN identifiers, and the VLAN identifiers of the VFs are different, the first virtual machine is connected to at least one VF of the first network port, the number of the VLAN sub-interfaces is the same as the number of the VFs of the first network port and corresponds one-to-one, the VLAN sub-interfaces and their corresponding VFs have the same VLAN identifier, and the first network port is connected to the second network port via a network cable.
所述第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,所述第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;所述第二网口的交换设备根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口;所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块,由所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,将处理后的数据包发送到第二虚拟机。在网卡直通的场景中,虚拟机将数据包从直通的VF发出后,通过上述方式可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的网络功能,实现对数据包进行网络功能处理。The first virtual machine sends a data packet to the second virtual machine through the VF connected to itself, and the data packet carries the VLAN ID of the VF that sends the data packet. The switching device of the first network port receives the data packet and forcibly forwards the data packet to the second network port through the network cable. The switching device of the second network port sends the data packet to the VLAN sub-interface with the same VLAN ID as the data packet based on the VLAN ID carried by the data packet. The VLAN sub-interface receives the data packet, removes the VLAN ID of the data packet, and sends the data packet to the virtual network function module. The virtual network function module performs network function processing on the modified data packet and then sends the processed data packet to the second virtual machine. In the scenario of direct network card pass-through, after the virtual machine sends the data packet from the direct-through VF, the data packet can be sent to the virtual network function module in the VMM through the above method. The software module is used to provide users with rich network functions and realize network function processing of data packets.
在一种可能的设计中,所述第一网口与所述第二网口的模式为虚拟以太网端口聚合VEPA模式。所述VEPA模式使得数据包可以在第一网口和第二网口之间进行强制转发。需要说明的是,VEPA模式仅是实现数据包强制转发其中一种方式,本领域技术人员可以采用其他的软件设置或者硬件设置以实现数据包强制转发,本发明实施例并不进行限定。In one possible design, the first network port and the second network port operate in Virtual Ethernet Port Aggregation (VEPA) mode. The VEPA mode enables mandatory forwarding of data packets between the first network port and the second network port. It should be noted that the VEPA mode is only one method for implementing mandatory forwarding of data packets. Those skilled in the art may employ other software or hardware configurations to implement mandatory forwarding of data packets, and this is not a limitation of the present invention.
在一种可能的设计中,所述主机还包括设备管理模块,所述设备管理模块用于创建VLAN子接口。具体的:In one possible design, the host further includes a device management module, which is used to create a VLAN sub-interface. Specifically:
所述设备管理模块,用于在第一虚拟机创建成功后,接收云管理平台发送的VLAN子接口创建请求,所述VLAN子接口创建请求携带分配给所述第一虚拟机的VF的VLAN标识;The device management module is configured to receive a VLAN sub-interface creation request sent by the cloud management platform after the first virtual machine is successfully created, wherein the VLAN sub-interface creation request carries the VLAN identifier of the VF assigned to the first virtual machine;
所述设备管理模块,还用于向VMM发送通知消息,用于通知所述VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。The device management module is further configured to send a notification message to the VMM, informing the VMM to create a VLAN sub-interface corresponding to the VF of the first virtual machine, wherein the VLAN sub-interface corresponding to the VF of the first virtual machine has the same VLAN identifier as the VF of the first virtual machine.
上述至少一个网卡包含至少三个网口,所述至少三个网口可以位于同一网卡或者不同网卡上。当第一网口和第二网口位于同一网卡上时,所述第一网口和所述第二网口可以共享网卡上的交换设备,也可以各自具备独立的交换设备。The at least one network card includes at least three network ports, and the at least three network ports can be located on the same network card or different network cards. When the first network port and the second network port are located on the same network card, the first network port and the second network port can share a switching device on the network card, or each can have an independent switching device.
在一种可能的设计中,数据包的源虚拟机(第一虚拟机)和目的虚拟机(第二虚拟机)位于同一主机上,所述虚拟网络功能模块将所述处理后的数据包发送到与所述第二虚拟机相连的VF对应的VLAN子接口,其中,所述第二虚拟机相连的VF与接收所述处理后的数据包的VLAN子接口具备相同的VLAN标识;与所述第二虚拟机相连的VF对应的VLAN子接口为所述数据包添加自身的VLAN标识,将所述数据包发送到第二网口;所述第二网口的交换设备,通过所述网线将所述数据包强制转发到第一网口;所述第一网口的交换设备根据所述数据包携带的VLAN标识,将所述数据包发送到所述数据包中的VLAN标识所标识的VF,从而使得所述数据包传输到第二虚拟机。In one possible design, the source virtual machine (first virtual machine) and the destination virtual machine (second virtual machine) of the data packet are located on the same host, and the virtual network function module sends the processed data packet to the VLAN sub-interface corresponding to the VF connected to the second virtual machine, wherein the VF connected to the second virtual machine and the VLAN sub-interface receiving the processed data packet have the same VLAN identifier; the VLAN sub-interface corresponding to the VF connected to the second virtual machine adds its own VLAN identifier to the data packet and sends the data packet to the second network port; the switching device of the second network port forcibly forwards the data packet to the first network port through the network cable; the switching device of the first network port sends the data packet to the VF identified by the VLAN identifier in the data packet according to the VLAN identifier carried by the data packet, so that the data packet is transmitted to the second virtual machine.
在一种可能的设计中,数据包的源虚拟机(第一虚拟机)和目的虚拟机(第二虚拟机)位于不同主机上,所述虚拟网络功能模块,具体用于建立与所述第二虚拟机所在的主机上的另一虚拟网络功能模块之间的隧道,通过第三网口将所述处理后的数据包发送到外部的物理交换机,通过所述外部的物理交换机将所述处理后的数据包发送到第二虚拟机所在的主机,以使得所述另一虚拟网络功能模块将所述处理后的数据包发送到所述第二虚拟机。In one possible design, the source virtual machine (first virtual machine) and the destination virtual machine (second virtual machine) of the data packet are located on different hosts. The virtual network function module is specifically used to establish a tunnel with another virtual network function module on the host where the second virtual machine is located, send the processed data packet to an external physical switch through a third network port, and send the processed data packet to the host where the second virtual machine is located through the external physical switch, so that the other virtual network function module sends the processed data packet to the second virtual machine.
第二方面,与第一方面的装置相对应,本发明实施例还提供了一种云计算系统中报文处理的方法,所述云计算系统中的至少一个主机包括虚拟机监视器VMM,以及至少一个网卡,所述主机上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个PF和多个VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,所述方法包括:In a second aspect, corresponding to the device of the first aspect, an embodiment of the present invention further provides a method for message processing in a cloud computing system, wherein at least one host in the cloud computing system includes a virtual machine monitor (VMM) and at least one network card, a first virtual machine is running on the host, the VMM includes multiple VLAN sub-interfaces and a virtual network function module, the at least one network card includes a switching device and at least three network ports, wherein the first network port and the second network port support network card virtualization capabilities, the first network port corresponds to at least one PF and multiple VFs, the multiple VFs are configured with VLAN identifiers, and the VLAN identifiers of the VFs are different from each other, the first virtual machine is connected to at least one VF of the first network port, the number of the VLAN sub-interfaces is the same as the number of the VFs of the first network port and corresponds one-to-one, the VLAN sub-interfaces and the corresponding VFs have the same VLAN identifier, and the first network port and the second network port are connected via a network cable, the method comprising:
所述第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;The first virtual machine sends a data packet to the second virtual machine through the VF connected to itself, where the data packet carries the VLAN identifier of the VF that sends the data packet and the address of the second virtual machine;
所述第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;The switching device of the first network port receives the data packet and forcibly forwards the data packet to the second network port through the network cable;
所述第二网口的交换设备接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识所标识的VLAN子接口;The switching device of the second network port receives the data packet from the first network port, and sends the data packet to the VLAN sub-interface identified by the VLAN identifier according to the VLAN identifier carried by the data packet;
所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;The VLAN sub-interface receives the data packet, removes the VLAN identifier of the data packet, and sends the data packet to the virtual network function module;
所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,发送处理后的数据包,所述处理后的数据包的目的地址为所述第二虚拟机的地址。After performing network function processing on the modified data packet, the virtual network function module sends the processed data packet, and the destination address of the processed data packet is the address of the second virtual machine.
在一种可能的设计中,所述第一网口与所述第二网口的模式为VEPA模式。In one possible design, the mode of the first network port and the second network port is VEPA mode.
在一种可能的设计中,所述方法还包括VLAN子接口创建流程,所述VLAN子接口创建流程包括:主机的设备管理模块在第一虚拟机创建成功后,接收云管理平台发送的VLAN子接口创建请求,所述VLAN子接口创建请求携带分配给所述第一虚拟机的VF的VLAN标识;所述设备管理模块向VMM发送通知消息,以使得所述VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。In one possible design, the method also includes a VLAN sub-interface creation process, which includes: after the first virtual machine is successfully created, the host's device management module receives a VLAN sub-interface creation request sent by the cloud management platform, and the VLAN sub-interface creation request carries the VLAN identifier of the VF assigned to the first virtual machine; the device management module sends a notification message to the VMM, so that the VMM creates a VLAN sub-interface corresponding to the VF of the first virtual machine, and the VLAN sub-interface corresponding to the VF of the first virtual machine has the same VLAN identifier as the VF of the first virtual machine.
第三方面,本发明实施例提供了一种云计算系统,所述云计算系统包括云管理平台以及第一方面所述的主机,其中,所述云管理平台,用于在所述主机上创建所述第一虚拟机,在所述第一虚拟机创建成功后,通知所述主机的VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。In a third aspect, an embodiment of the present invention provides a cloud computing system, comprising a cloud management platform and the host described in the first aspect, wherein the cloud management platform is used to create the first virtual machine on the host, and after the first virtual machine is successfully created, notify the VMM of the host to create a VLAN sub-interface corresponding to the VF of the first virtual machine, and the VLAN sub-interface corresponding to the VF of the first virtual machine has the same VLAN identifier as the VF of the first virtual machine.
第四方面,与前述装置、方法以及系统相对应,本发明实施例提供了一种主机,该主机具有实现第一方面中定义的主机的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。具体的,所述主机包括第一处理器、第一存储器以及至少一个网卡,所述网卡包含第二处理器、第二存储器以及至少两个网口,其中,所述至少一个网卡中的第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个PF和多个VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一存储器和所述第二存储器中存储有指令,所述第一处理器执行所述第一存储器中的第一指令以实现第一虚拟机的功能,所述第一虚拟机连接到所述第一网口的至少一个VF,所述第一处理器执行所述第一存储器中的第二指令以实现VLAN子接口的功能,所述第一处理器执行所述第一存储器中的第三指令以实现虚拟网络功能模块的功能,所述第二处理器用于执行所述第二存储器中的指令以实现交换设备的功能,In a fourth aspect, corresponding to the aforementioned apparatus, method, and system, an embodiment of the present invention provides a host having the function of implementing the host defined in the first aspect. The function can be implemented by hardware, or can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. Specifically, the host includes a first processor, a first memory, and at least one network card, the network card includes a second processor, a second memory, and at least two network ports, wherein the first network port and the second network port in the at least one network card support network card virtualization capabilities, the first network port corresponds to at least one PF and multiple VFs, the multiple VFs are configured with VLAN identifiers, and the VLAN identifiers of the VFs are different from each other, instructions are stored in the first memory and the second memory, the first processor executes the first instruction in the first memory to implement the function of the first virtual machine, the first virtual machine is connected to at least one VF of the first network port, the first processor executes the second instruction in the first memory to implement the function of the VLAN sub-interface, the first processor executes the third instruction in the first memory to implement the function of the virtual network function module, and the second processor is used to execute the instruction in the second memory to implement the function of the switching device,
所述第一虚拟机连接到所述第一网口的至少一个VF,所述主机中包含多个VLAN子接口,所述多个VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,The first virtual machine is connected to at least one VF of the first network port, the host includes multiple VLAN sub-interfaces, the number of the multiple VLAN sub-interfaces is the same as the number of VFs of the first network port and corresponds one to one, the VLAN sub-interfaces and their corresponding VFs have the same VLAN identifier, and the first network port is connected to the second network port via a network cable.
所述第一处理器用于执行所述第一存储器中的第一指令以执行步骤:通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;The first processor is configured to execute the first instruction in the first memory to perform the steps of: sending a data packet to the second virtual machine through the VF connected to the first processor, the data packet carrying the VLAN identifier of the VF that sends the data packet and the address of the second virtual machine;
所述第二处理器用于执行所述第二存储器中的指令以执行步骤:用于接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;The second processor is configured to execute instructions in the second memory to perform the following steps: receiving the data packet, and forcibly forwarding the data packet to the second network port through the network cable;
所述第二处理器用于执行所述第二存储器中的指令以执行步骤:接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识所标识的VLAN子接口;The second processor is configured to execute instructions in the second memory to perform the steps of: receiving a data packet from the first network port, and sending the data packet to a VLAN sub-interface identified by the VLAN identifier according to a VLAN identifier carried by the data packet;
所述第一处理器用于执行所述第一存储器中的第二指令以执行步骤:接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;The first processor is configured to execute the second instruction in the first memory to perform the steps of: receiving the data packet, removing the VLAN identifier of the data packet, and sending the data packet to the virtual network function module;
所述第一处理器用于执行所述第一存储器中的第三指令以执行步骤:对所述修改后的数据包进行网络功能处理后,根据所述第二虚拟机的地址将处理后的数据包发送到第二虚拟机。The first processor is used to execute the third instruction in the first memory to perform the steps: after performing network function processing on the modified data packet, the processed data packet is sent to the second virtual machine according to the address of the second virtual machine.
在一个可能的设计中,所述主机和云管理平台由通用或专用的服务器实现,服务器的结构中包括处理器、存储器、系统总线以及输入输出接口,所述处理器被配置为支持所述系统中主机/云管理平台的相应的功能。所述输入输出接口用于与所述云计算系统中的其他部件进行通信,处理器执行所述存储器中存储的指令。In one possible design, the host and cloud management platform are implemented by a general-purpose or dedicated server. The server structure includes a processor, memory, a system bus, and input/output interfaces. The processor is configured to support the corresponding functions of the host/cloud management platform in the system. The input/output interfaces are used to communicate with other components in the cloud computing system, and the processor executes instructions stored in the memory.
第五方面,本发明实施例提供了一种计算机存储介质,用于储存为上述主机所用的计算机软件指令,其包含用于执行上述方面所设计的程序。In a fifth aspect, an embodiment of the present invention provides a computer storage medium for storing computer software instructions for the above-mentioned host, which includes a program designed for executing the above-mentioned aspects.
第六方面,本发明实施例提供了另一种计算机存储介质,用于储存为上述网卡中的交换设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。In a sixth aspect, an embodiment of the present invention provides another computer storage medium for storing computer software instructions used for the switching device in the above-mentioned network card, which includes a program designed for executing the above-mentioned aspect.
第七方面,本发明实施例提供了一种计算机程序,当物理服务器运行该计算机程序时,该物理服务器执行主机中虚拟机、VLAN子接口以及虚拟网络功能模块的功能。In a seventh aspect, an embodiment of the present invention provides a computer program. When a physical server runs the computer program, the physical server executes the functions of the virtual machine, VLAN sub-interface and virtual network function module in the host.
第八方面,本发明实施例提供了一种计算机程序,当网卡中的处理器或可编程逻辑电路运行该计算机程序时,网卡执行前述方面中交换设备的功能。In an eighth aspect, an embodiment of the present invention provides a computer program. When a processor or a programmable logic circuit in a network card runs the computer program, the network card performs the functions of the switching device in the aforementioned aspects.
综上,虚拟机将数据包从与虚拟机相连的VF发出,由第一网口的交换设备进行强制转发到第二网口,第二网口的交换设备根据数据包携带的VLAN标识将数据包发送给VMM上的VLAN子接口,通过该VLAN子接口将数据包传递到虚拟网络功能模块,由虚拟网络功能模块为该数据包提供丰富的网络功能处理。在网卡直通的基础上,虚拟机将数据包从直通的VF发出后,通过上述方式可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的网络功能,实现对数据包进行网络功能处理。In summary, a virtual machine sends a data packet from the VF connected to the virtual machine. The switching device on the first network port forcibly forwards the data packet to the second network port. The switching device on the second network port then sends the data packet to the VLAN sub-interface on the VMM based on the VLAN identifier carried in the data packet. The data packet is then passed through the VLAN sub-interface to the virtual network function module, which then provides rich network function processing for the data packet. Based on NIC direct passthrough, after the virtual machine sends a data packet from the direct passthrough VF, the data packet can be sent to the virtual network function module in the VMM through the above method. This software module provides users with rich network functions and implements network function processing for the data packet.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面附图中反映的仅仅是本发明的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得本发明的其他实施方式。而所有这些实施例或实施方式都在本发明的保护范围之内。To more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly describes the drawings required for use in the embodiments or descriptions of the prior art. Obviously, the drawings below only depict a portion of the embodiments of the present invention. Those skilled in the art can, without inventive effort, derive other embodiments of the present invention from these drawings. All of these embodiments or implementations fall within the scope of protection of the present invention.
图1A是本发明实施例提供的主机上的虚拟化结构示意图;FIG1A is a schematic diagram of a virtualization structure on a host provided by an embodiment of the present invention;
图1B是本发明实施例提供的一种网卡直通场景下主机上的虚拟化结构示意图;1B is a schematic diagram of a virtualization structure on a host in a network card pass-through scenario provided by an embodiment of the present invention;
图2是本发明实施提供的另一种主机上的虚拟化架构示意图;FIG2 is a schematic diagram of another virtualization architecture on a host provided by an embodiment of the present invention;
图3是本发明实施例提供的虚拟机的创建流程示意图;3 is a schematic diagram of a process for creating a virtual machine according to an embodiment of the present invention;
图4是本发明实施例提供的云计算系统中报文的处理方法流程示意图;FIG4 is a flow chart of a method for processing messages in a cloud computing system according to an embodiment of the present invention;
图5是本发明实施例提供的一种计算机设备硬件结构示意图;FIG5 is a schematic diagram of a hardware structure of a computer device provided by an embodiment of the present invention;
图6是本发明实施例提供的一种云计算系统结构示意图。FIG6 is a schematic diagram of the structure of a cloud computing system provided by an embodiment of the present invention.
具体实施方式DETAILED DESCRIPTION
本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。The network architecture and business scenarios described in the embodiments of the present invention are intended to more clearly illustrate the technical solutions of the embodiments of the present invention, and do not constitute a limitation on the technical solutions provided by the embodiments of the present invention. Ordinary technicians in this field can know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present invention are also applicable to similar technical problems.
如图1A所示,为本发明实施例提供的主机上的虚拟化结构示意图。主机为一台物理服务器,该物理服务器的底层为硬件层,硬件层主要包括中央处理器(CPU,CentralProcessing Unit)、内存、硬盘以及网卡等硬件资源。服务器虚拟化是在物理服务器上借助虚拟化软件(如VMWare ESX、Citrix XEN)实现多个虚拟机(Virtual Machine,VM)的虚拟化运行环境。安装在服务器上实现虚拟化环境的软件层被称为虚拟机监视器(VirtualMAChine Monitor,VMM)。运行在硬件层之上的VMM承担对硬件层中的硬件资源进行调度、分配和管理工作。VMM之上运行多个虚拟机VM,VMM为每个虚拟机提供虚拟化的CPU、内存、存储、IO设备(如网卡)以及以太网交换机等硬件环境,保证多个虚拟机相互隔离运行。As shown in Figure 1A, it is a schematic diagram of the virtualization structure on the host provided by an embodiment of the present invention. The host is a physical server, and the bottom layer of the physical server is the hardware layer, which mainly includes hardware resources such as the central processing unit (CPU), memory, hard disk and network card. Server virtualization is to implement a virtualized operating environment of multiple virtual machines (VM) on a physical server with the help of virtualization software (such as VMWare ESX, Citrix XEN). The software layer installed on the server to implement the virtualization environment is called a virtual machine monitor (VMM). The VMM running on the hardware layer is responsible for scheduling, allocating and managing the hardware resources in the hardware layer. Multiple virtual machines VM run on the VMM, and the VMM provides each virtual machine with a virtualized CPU, memory, storage, IO devices (such as network card) and Ethernet switch and other hardware environments to ensure that multiple virtual machines run in isolation from each other.
在虚拟化运行环境中,VMM为每个虚拟机创建虚拟网卡(Virtual NetworkInterface Card,vNIC),虚拟交换机VSwitch提供了虚拟机之间,以及虚拟机与外部网络之间的通讯能力。每个虚拟机的虚拟网卡对应到VSwitch的一个逻辑端口上,主机的物理网卡对应于VSwitch与外部物理交换机相连的端口。当虚拟机发送或接收的数据包经过VMM时,VMM中的虚拟网络功能模块对经过的数据进行网络功能处理,由于虚拟网络功能模块为软件模块,可以根据需要进行更新,因此,VMM中的虚拟网络功能模块可以为用户提供丰富的网络功能。In a virtualized operating environment, the VMM creates a virtual network interface card (vNIC) for each virtual machine. The virtual switch VSwitch provides communication capabilities between virtual machines and between virtual machines and external networks. Each virtual machine's virtual network card corresponds to a logical port on the VSwitch, and the host's physical network card corresponds to the port connecting the VSwitch to the external physical switch. When data packets sent or received by the virtual machine pass through the VMM, the virtual network function module in the VMM performs network function processing on the passing data. Since the virtual network function module is a software module and can be updated as needed, the virtual network function module in the VMM can provide users with a rich set of network functions.
物理网卡的网口支持虚拟化能力可以通过单根输入输出虚拟化(Single RootInput/Output Virtualization,SR-IOV)或多根输入输出虚拟化(Multi Root Input/Output Virtualization,MR-IOV)来实现,本发明实施例以SR-IOV技术为例进行说明。SR-IOV技术是一种基于硬件的虚拟化解决方案,可以在虚拟机之间高效共享PCIe(PeripheralComponent Interconnect Express,快速外设组件互连)设备,并且由于SR-IOV技术是在硬件中实现的,因此可以能够获得高效的I/O性能。The network port virtualization capability of a physical network card can be achieved through Single Root Input/Output Virtualization (SR-IOV) or Multi Root Input/Output Virtualization (MR-IOV). The embodiments of the present invention use SR-IOV technology as an example to illustrate. SR-IOV technology is a hardware-based virtualization solution that can efficiently share PCIe (Peripheral Component Interconnect Express) devices between virtual machines. Because SR-IOV technology is implemented in hardware, it can achieve efficient I/O performance.
标准化组织PCI-SIG(Peripheral Component Interconnect Special InterestGroup,外围设备互连专业组)定义了SR-IOV规范,SR-IOV规范可参阅http://www.pcisig.com。The SR-IOV specification is defined by the Peripheral Component Interconnect Special Interest Group (PCI-SIG), a standards organization. The SR-IOV specification can be found at http://www.pcisig.com.
通过使用SR-IOV技术,单个I/O资源可由主机上的多个虚拟机共享,这样,每个虚拟机都可访问同一个的硬件资源。因此,启用了SR-IOV的PCIe设备(例如物理网卡的网口)可以显示为多个单独的设备,显示出的每个单独的设备都具有独立的PCIe配置空间。以支持SR-IOV的物理网卡为例,该物理网卡上包含若干个网口,可以分别针对各个网口启用/禁用SR-IOV能力,启用了SR-IOV能力的网口对应于至少一个物理功能(Physical Function,PF)以及多个虚拟功能(Virtual Function,VF),根据现有的SR-IOV规范,每个PF最多可有64,000个与其关联的VF。创建VF后,可以直接将VF指定给主机上的虚拟机使用,从而使得多个虚拟机通过与其相连的至少一个VF共享PCIe设备。By using SR-IOV technology, a single I/O resource can be shared by multiple virtual machines on a host, allowing each virtual machine to access the same hardware resources. Therefore, an SR-IOV-enabled PCIe device (such as a physical network card's network port) can be displayed as multiple separate devices, each with its own independent PCIe configuration space. Taking an SR-IOV-enabled physical network card as an example, the card contains several network ports, and SR-IOV can be enabled/disabled for each port. An SR-IOV-enabled network port corresponds to at least one physical function (PF) and multiple virtual functions (VFs). According to the existing SR-IOV specification, each PF can have up to 64,000 associated VFs. After creating a VF, it can be directly assigned to a virtual machine on the host, allowing multiple virtual machines to share a PCIe device through at least one VF connected to it.
如图1B所示,为本发明实施例提供的一种网卡直通场景下主机上的虚拟化结构示意图,与图1A不同的是,物理网卡支持单根IO虚拟化,物理网卡的一个网口对应于至少一个PF以及多个VF,各VF能共享物理网卡的物理资源(例如网卡端口)。As shown in Figure 1B, it is a schematic diagram of the virtualization structure on the host in a network card pass-through scenario provided by an embodiment of the present invention. Unlike Figure 1A, the physical network card supports single-root IO virtualization. One network port of the physical network card corresponds to at least one PF and multiple VFs, and each VF can share the physical resources of the physical network card (such as the network card port).
当主机上的虚拟机通过直通VF发送数据包时,虚拟机发出的数据包将会通过虚拟机上安装的VF驱动直接传递给网卡的VF,导致数据包无法经过VMM中的虚拟网络功能模块。由于网卡的交换设备中的MAC表容量有限,处理能力有限,且无法进行自由的功能扩展,因此网卡无法提供丰富的网络功能。在一种可能的场景中,交换设备为virtual ethernetbridge&classifier。When a virtual machine on a host sends packets through a passthrough VF, the packets are passed directly to the NIC's VF via the VF driver installed on the VM. This prevents the packets from passing through the virtual network function module in the VMM. Because the NIC's switching device has limited MAC table capacity and processing power, and lacks flexible functional expansion, the NIC cannot provide rich network functions. In one possible scenario, the switching device is a virtual Ethernet bridge and classifier.
需要说明的是,本发明实施例针对网卡直通的场景,上述网卡直通的实现可以通过SR-IOV或者MR-IOV,本发明实施例对此并不进行限定。It should be noted that the embodiment of the present invention is aimed at the scenario of network card pass-through, and the above network card pass-through can be implemented through SR-IOV or MR-IOV, which is not limited in the embodiment of the present invention.
如图2所示,为本发明实施提供的另一种主机上的虚拟化架构示意图,该主机包含VMM以及至少一个物理网卡,所述主机上运行有至少一个虚拟机。所述至少一个物理网卡包括至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,第三网口连接到主机外部的物理交换机,负责发送和接收跨主机的网络流量。第一网口虚拟出至少一个PF以及至少两个VF(图2中以两个VF为例进行说明),第一虚拟机和第二虚拟机上安装有VF驱动,第一虚拟机和第二虚拟机分别连接到至少一个VF,第一网口和第二网口通过网线直连,第二网口的PF连接到VMM上的VLAN子接口,因此,从虚拟机发出的流量,均会通过网线(networkingcable)迂回到第二网口,由第二网口将流量引导回VMM中的虚拟网络功能模块。所述网线具体可以为各种介质的线缆,包括双绞线、光纤以及同轴电缆等等。本发明实施例通过网线将第一网口和第二网口的直连,从而将与第一网口的VF相连的虚拟机发出的数据包强制转发到第二网口,使得数据包传输路径必然经过VMM上的虚拟网络功能模块,从而实现在网卡直通的基础上,由VMM中的虚拟网络功能模块提供丰富的虚拟网络功能。As shown in Figure 2, another schematic diagram of a virtualization architecture on a host provided for the implementation of the present invention includes a virtual machine (VMM) and at least one physical network card (NIC), on which at least one virtual machine (VM) is running. The at least one physical NIC includes at least three network ports, wherein the first and second network ports support NIC virtualization capabilities, and the third network port is connected to a physical switch outside the host and is responsible for sending and receiving network traffic across the host. The first network port virtualizes at least one PF and at least two VFs (two VFs are used as an example in Figure 2). The first and second virtual machines are installed with VF drivers, and the first and second virtual machines are each connected to at least one VF. The first and second network ports are directly connected via a network cable, and the PF of the second network port is connected to a VLAN sub-interface on the VMM. Therefore, all traffic emitted from the virtual machine will be routed to the second network port via a networking cable, which will then direct the traffic back to the virtual network function module in the VMM. The network cable can be a cable made of various media, including twisted pair, optical fiber, and coaxial cable. In the embodiment of the present invention, a first network port and a second network port are directly connected through a network cable, so that data packets sent by a virtual machine connected to the VF of the first network port are forcibly forwarded to the second network port, so that the data packet transmission path must pass through the virtual network function module on the VMM, thereby realizing rich virtual network functions provided by the virtual network function module in the VMM on the basis of direct pass-through of the network card.
本领域技术人员可以理解的是,图2中仅以两个VF以及两个VLAN子接口为例,在实际产品实现时,支持网卡虚拟化功能的网卡可以虚拟化为至少一个PF以及多个VF,并不限定为两个,相对应得到VLAN子接口的数量也并不限定为两个。Those skilled in the art will understand that Figure 2 only takes two VFs and two VLAN sub-interfaces as an example. In actual product implementation, a network card that supports the network card virtualization function can be virtualized into at least one PF and multiple VFs, and is not limited to two. The corresponding number of VLAN sub-interfaces is also not limited to two.
在本发明各实施例中,网卡虚拟化具体是指网卡硬件虚拟化。In various embodiments of the present invention, network card virtualization specifically refers to network card hardware virtualization.
在本发明各实施例中,将第一网口称为直通网口,第二网口称为迂回网口,第三网口称为业务网口。In various embodiments of the present invention, the first network port is referred to as a direct network port, the second network port is referred to as a detour network port, and the third network port is referred to as a service network port.
直通网口使用标准的SR-IOV/MR-IOV技术将VF直通给虚拟机,对不同的VF设置不同的虚拟局域网(Virtual Local Area Network,VLAN)标识,避免使用本网口的VF的多个虚拟机之间直接通信,强制虚拟机的数据包从网线发出。具体的,由于一个VLAN标识代表一个广播域,当不同的VF设置为不同的VLAN标识时,各个虚拟机连接的VF处在不同的广播域中,由于广播报文只能发送到处于一个VLAN内的虚拟机,所以,通过为每个VF设置的不同的VLAN标识,虚拟机发出的广播报文只能被虚拟机自身和PF收到。在设置VF的VLAN标识时,需要保证主机范围内VLAN标识唯一即可,不同主机上的VLAN标识可以相同。The pass-through network port uses standard SR-IOV/MR-IOV technology to pass the VF directly to the virtual machine, and sets different virtual local area network (VLAN) identifiers for different VFs to avoid direct communication between multiple virtual machines using the VF of this network port, and force the virtual machine's data packets to be sent from the network cable. Specifically, since a VLAN identifier represents a broadcast domain, when different VFs are set to different VLAN identifiers, the VFs connected to each virtual machine are in different broadcast domains. Since broadcast messages can only be sent to virtual machines in one VLAN, by setting different VLAN identifiers for each VF, the broadcast messages sent by the virtual machine can only be received by the virtual machine itself and the PF. When setting the VLAN identifier of the VF, it is only necessary to ensure that the VLAN identifier is unique within the host range. The VLAN identifiers on different hosts can be the same.
在VMM上创建VLAN子接口,VLAN子接口的数量和直通网口的VF数量一致,且VLAN子接口的VLAN标识与直通网口上的VF的VLAN标识一一对应。迂回网口上与直通网口相连的网口可以是PF,也可以是设置为混杂模式(promiscuous mode)的VF。所述VLAN子接口为虚拟网桥,具备二层转发的能力。Create VLAN subinterfaces on the VMM. The number of VLAN subinterfaces matches the number of VFs on the passthrough network port, and the VLAN IDs of the VLAN subinterfaces correspond one-to-one with the VLAN IDs of the VFs on the passthrough network port. The network port on the detour network port connected to the passthrough network port can be a PF or a VF set to promiscuous mode. The VLAN subinterface is a virtual bridge with Layer 2 forwarding capabilities.
需要说明的是,图2所示的实施例中,第一虚拟机向第二虚拟机发送数据包是同一主机内部的两个虚拟机之间的通信。本领域技术人员可以理解的是,第二虚拟机与第一虚拟机也可以位于不同主机上,此时第一虚拟机和第二虚拟机为跨主机通信。It should be noted that in the embodiment shown in Figure 2, the transmission of a data packet from the first virtual machine to the second virtual machine represents communication between two virtual machines within the same host. Those skilled in the art will appreciate that the second virtual machine and the first virtual machine may also be located on different hosts, in which case the communication between the first and second virtual machines is cross-host communication.
结合图2所示的主机的虚拟化结构,本发明实施例以第一虚拟机发送数据包到第二虚拟机为例对数据包的处理流程进行说明,所述第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,所述第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;所述第二网口的交换设备根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口;所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块,由所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,将处理后的数据包发送到第二虚拟机。在网卡直通的场景中,虚拟机将数据包从直通的VF发出后,通过上述方式可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的虚拟网络功能,实现对数据包进行虚拟网络功能处理。In conjunction with the virtualization structure of the host shown in FIG2 , the embodiment of the present invention uses the example of a first virtual machine sending a data packet to a second virtual machine to illustrate the data packet processing process. The first virtual machine sends a data packet to the second virtual machine through the VF connected to itself. The data packet carries the VLAN ID of the VF that sent the data packet. The switching device of the first network port receives the data packet and forcibly forwards the data packet to the second network port through the network cable. The switching device of the second network port sends the data packet to a VLAN sub-interface with the same VLAN ID as the data packet based on the VLAN ID carried by the data packet. The VLAN sub-interface receives the data packet, removes the VLAN ID of the data packet, and sends the data packet to the virtual network function module. The virtual network function module performs network function processing on the modified data packet and then sends the processed data packet to the second virtual machine. In the scenario of network card direct pass, after the virtual machine sends the data packet from the direct pass VF, the data packet can be sent to the virtual network function module in the VMM through the above method. The software module is used to provide users with rich virtual network functions and implement virtual network function processing of data packets.
在上述第一虚拟机发送数据包到第二虚拟机的流程中,所述第一虚拟机连接的VF的VLAN标识与对应的VMM中的VLAN子接口的VLAN标识相同。如图3所示,为本发明实施例提供的一种虚拟机的创建流程示意图,用于创建具备直通VF的虚拟机以及创建与直通VF对应的VLAN子接口。In the process of sending a data packet from the first virtual machine to the second virtual machine, the VLAN ID of the VF connected to the first virtual machine is the same as the VLAN ID of the corresponding VLAN sub-interface in the VMM. As shown in Figure 3, a schematic diagram of a virtual machine creation process provided by an embodiment of the present invention is used to create a virtual machine with a pass-through VF and create a VLAN sub-interface corresponding to the pass-through VF.
步骤301:计算管理模块接收虚拟机创建请求,所示虚拟机创建请求用于创建具备直通VF的虚拟机;Step 301: The computing management module receives a virtual machine creation request, where the virtual machine creation request is used to create a virtual machine with a pass-through VF.
在一种场景中,虚拟机的创建流程可以由管理员或用户发起,管理员或者用户通过终端登录云管理平台对外呈现的界面,选择待创建的虚拟机的规格,向计算管理模块发起虚拟机创建请求,该虚拟机创建请求携带待创建的虚拟机的参数,所述参数包括待创建虚拟机具备直通VF的指示信息;In one scenario, the virtual machine creation process can be initiated by an administrator or user. The administrator or user logs in to the external interface of the cloud management platform through a terminal, selects the specifications of the virtual machine to be created, and initiates a virtual machine creation request to the computing management module. The virtual machine creation request carries parameters of the virtual machine to be created, including information indicating that the virtual machine to be created has a passthrough VF.
步骤302:计算管理模块向设备管理模块发送分配请求,请求为待创建的虚拟机分配VF;Step 302: The computing management module sends an allocation request to the device management module, requesting that a VF be allocated for the virtual machine to be created;
步骤303:设备管理模块向计算管理模块返回空闲的VF的标识给所述计算管理模块,该空闲的VF即为主机上尚未分配给虚拟机的VF;Step 303: The device management module returns an identifier of an idle VF to the computing management module. The idle VF is a VF on the host that has not been allocated to a virtual machine.
步骤304:计算管理模块为该VF分配VLAN标识;Step 304: The computing management module assigns a VLAN ID to the VF;
步骤305:计算管理模块将所述VLAN标识发送给设备管理模块,设备管理模块将所述VLAN标识配置到分配的所述VF;Step 305: The computing management module sends the VLAN ID to the device management module, and the device management module configures the VLAN ID to the allocated VF;
步骤306:设备管理模块将用于创建虚拟机的信息发送给VMM,所述用于创建虚拟机的信息包含VF标识;Step 306: The device management module sends information for creating a virtual machine to the VMM, where the information for creating a virtual machine includes a VF identifier.
步骤306:VMM创建虚拟机,将所述VF设置为虚拟机的直通网口;Step 306: The VMM creates a virtual machine and sets the VF as the direct network port of the virtual machine;
步骤307:虚拟机创建成功后,计算管理模块向设备管理模块发送VLAN子接口创建请求,所述VLAN子接口创建请求携带所述VF的VLAN标识;Step 307: After the virtual machine is successfully created, the computing management module sends a VLAN sub-interface creation request to the device management module. The VLAN sub-interface creation request carries the VLAN ID of the VF.
步骤308:设备管理模块接收所述VLAN子接口创建请求,在VMM上创建与所述VF对应的VLAN子接口,配置所述VLAN子接口的VLAN标识与所述VF相同。Step 308: The device management module receives the VLAN sub-interface creation request, creates a VLAN sub-interface corresponding to the VF on the VMM, and configures the VLAN ID of the VLAN sub-interface to be the same as that of the VF.
需要说明的是,VLAN子接口是linux系统提供的一种虚拟网络设备,可以直接通过linux系统的ip命令创建。实例性的,创建VLAN标识是100的VLAN子接口命令如下:ip linkadd link eth0 name vlan100 type vlan id 100It should be noted that a VLAN sub-interface is a virtual network device provided by the Linux system and can be created directly through the ip command of the Linux system. For example, the command to create a VLAN sub-interface with VLAN ID 100 is as follows: ip linkadd link eth0 name vlan100 type vlan id 100
步骤309:计算管理模块接收VLAN子接口创建响应消息,向网络管理模块发送通知消息,将创建出的VLAN子接口连接到虚拟网络管理模块对应的网桥上。Step 309: The computing management module receives the VLAN sub-interface creation response message, sends a notification message to the network management module, and connects the created VLAN sub-interface to the bridge corresponding to the virtual network management module.
需要说明的是,一个虚拟机可以具有多个直通VF,具体的创建过程与上述步骤类似,但每个直通VF均会被设置不同的VLAN标识,且在VMM上创建与每个直通VF一一对应的VLAN子接口。It should be noted that a virtual machine can have multiple pass-through VFs. The specific creation process is similar to the above steps, but each pass-through VF will be set with a different VLAN ID, and a VLAN sub-interface corresponding to each pass-through VF will be created on the VMM.
如图4所示,为本发明实施例提供的一种云计算系统中报文的处理方法流程示意图,本发明实施例以主机A上的第一虚拟机向主机B上的第二虚拟机通信为例进行说明。As shown in FIG4 , it is a flow chart of a method for processing messages in a cloud computing system provided by an embodiment of the present invention. The embodiment of the present invention is described by taking the communication between the first virtual machine on host A and the second virtual machine on host B as an example.
步骤401:主机A上的第一虚拟机通过与自身相连的VF发出数据包,所述数据包的目的地址为第二虚拟机的地址,所述数据包携带与发出所述数据包的VF的VLAN标识;Step 401: The first virtual machine on host A sends a data packet through the VF connected to itself. The destination address of the data packet is the address of the second virtual machine. The data packet carries the VLAN ID of the VF that sends the data packet.
步骤402:直通网口的交换设备(第一交换设备)接收所述数据包后广播接收到的数据包,由于直通网口上各VF的VLAN标识各不相同,各VF位于不同的虚拟局域网,因此,直通网口上的其他VF不会接收到广播的所述数据,该数据包通过网线强制发送到迂回网口;Step 402: After receiving the data packet, the switching device (first switching device) of the direct network port broadcasts the received data packet. Since the VLAN IDs of the VFs on the direct network port are different and the VFs are located in different virtual local area networks, other VFs on the direct network port will not receive the broadcasted data. The data packet is forcibly sent to the detour network port via the network cable.
需要说明的是,所述直通网口和迂回网口为虚拟以太网端口聚合(VirtualEthernet Port Aggregator,VEPA)模式,所述VEPA模式用于指示直通网口和迂回网口对接收到的数据包进行强制转发,该VEPA模式由IEEE802.1Qbg标准定义。It should be noted that the through-port and the detour port are in Virtual Ethernet Port Aggregator (VEPA) mode, and the VEPA mode is used to instruct the through-port and the detour port to forcibly forward received data packets. The VEPA mode is defined by the IEEE802.1Qbg standard.
步骤403:迂回网口的交换设备(第二交换设备)接收来自直通网口的所述数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到VMM上具备相同VLAN标识的VLAN子接口;Step 403: The switching device of the detour network port (the second switching device) receives the data packet from the direct network port and sends the data packet to the VLAN sub-interface with the same VLAN ID on the VMM according to the VLAN ID carried in the data packet.
步骤404:所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识后,将数据包发送到第一虚拟网络功能模块;Step 404: The VLAN sub-interface receives the data packet, removes the VLAN identifier of the data packet, and sends the data packet to the first virtual network function module;
步骤405:所述第一虚拟网络功能模块对所述数据包进行网络功能处理后,将所述数据包发送到业务网口,主机A的业务网口将接收到的数据包发送到主机A外部的网络,所述数据包路由到第二虚拟机所在的主机B的业务网口,所述主机B的业务网口在接收到所述数据包后,将数据包发送到主机B的虚拟网络功能模块。Step 405: After the first virtual network function module performs network function processing on the data packet, it sends the data packet to the service network port. The service network port of host A sends the received data packet to the network outside host A. The data packet is routed to the service network port of host B where the second virtual machine is located. After receiving the data packet, the service network port of host B sends the data packet to the virtual network function module of host B.
具体的,可以在主机A的第一虚拟网络功能模块与主机B的第二虚拟网络功能模块之间建立隧道,通过隧道技术使得数据包经过主机A与主机B之间的网络传递到主机B的虚拟网络功能模块。Specifically, a tunnel can be established between the first virtual network function module of host A and the second virtual network function module of host B, and the data packet is transmitted to the virtual network function module of host B through the network between host A and host B through tunnel technology.
步骤406:由主机B上的第二虚拟网络功能模块进行网络功能处理后,将数据包发送到与所述第二虚拟机相连的VF对应的VLAN子接口,其中,所述第二虚拟机相连的VF与接收所述数据包的VLAN子接口具备相同的VLAN标识。Step 406: After the second virtual network function module on host B performs network function processing, the data packet is sent to the VLAN sub-interface corresponding to the VF connected to the second virtual machine, wherein the VF connected to the second virtual machine and the VLAN sub-interface receiving the data packet have the same VLAN ID.
需要说明的是,在一种可能的场景中,VLAN子接口连接在软件实现的虚拟网桥上,由虚拟网桥提供二层转发能力,将数据包发送给VLAN子接口。由于VLAN子接口和对应的VF设置的是相同的VLAN标识,所以直通给第二虚拟机的VF可以接受到数据包。It should be noted that in one possible scenario, a VLAN subinterface is connected to a software-implemented virtual bridge, which provides Layer 2 forwarding capabilities and sends packets to the VLAN subinterface. Because the VLAN subinterface and the corresponding VF are set to the same VLAN ID, the VF that is directly connected to the second virtual machine can receive the packets.
步骤407:所述VLAN子接口为所述数据包添加VLAN标识,所述VLAN标识为所述VLAN子接口的VLAN标识,将所述数据包发送到迂回网口,由于迂回网口连接的各VLAN子接口具备不同的VLAN标识,因此,所述迂回网口的交换设备(第四交换设备)将该数据包经过网线强制转发到直通网口;Step 407: The VLAN sub-interface adds a VLAN identifier to the data packet, where the VLAN identifier is the VLAN identifier of the VLAN sub-interface, and sends the data packet to the detour network port. Because each VLAN sub-interface connected to the detour network port has a different VLAN identifier, the switching device (the fourth switching device) of the detour network port forcibly forwards the data packet to the pass-through network port via the network cable.
步骤408:所述直通网口的交换设备(第三交换设备)根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识标识的VF;Step 408: The switching device of the direct network port (the third switching device) sends the data packet to the VF identified by the VLAN ID according to the VLAN ID carried by the data packet;
步骤409:所述VF去除所述数据包的VLAN标识,将所述数据包发送到第二虚拟机。Step 409: The VF removes the VLAN ID of the data packet and sends the data packet to the second virtual machine.
需要说明的是,在本发明实施例中,直通网口、迂回网口和业务网口可以处在同一网卡上,也可以单独位于不同的网卡上,本发明实施例对此并不进行限定。进一步的,当直通网口和迂回网口位于同一网卡上时,直通网卡和迂回网卡可以各自拥有独立的交换设备,或者,直通网口和迂回网口共享同一交换设备。It should be noted that in the embodiments of the present invention, the direct network port, the bypass network port, and the service network port can be located on the same network card or on different network cards, and this is not limited in the embodiments of the present invention. Furthermore, when the direct network port and the bypass network port are located on the same network card, the direct network card and the bypass network port can each have independent switching devices, or the direct network port and the bypass network port can share the same switching device.
需要说明的是,在一种具体的实施场景中,本发明实施例中的VLAN子接口可以为OpenVswitch.It should be noted that, in a specific implementation scenario, the VLAN sub-interface in the embodiment of the present invention may be OpenVswitch.
本发明实施例中,直通网口的各个VF具备不同的VLAN标识,VMM上设置有与直通网口的VF一一对应的VLAN子接口,每个VLAN子接口与对应的VF具备相同的VLAN标识,虚拟机将数据包从VF发出后,所述数据包携带VF的VLAN标识,由于直通网口与迂回网口直接通过网线相连,数据包会强制转发到迂回网口的交换设备,迂回网口的交换设备根据数据包携带的VLAN标识将数据包发送到具备相同VLAN标识的VLAN子接口,从而使得数据包发送到VMM,进而由VMM中的虚拟机网络功能模块进行网络功能处理,将经过处理后的数据包发送到第二虚拟机。通过上述方式,在网卡直通的场景下,将数据包发送到VMM中的虚拟网络功能模块,利用软件实现网络功能的灵活性,提供丰富的网络功能。In an embodiment of the present invention, each VF of the direct network port has a different VLAN ID, and a VLAN sub-interface corresponding to the VF of the direct network port is set on the VMM. Each VLAN sub-interface has the same VLAN ID as the corresponding VF. After the virtual machine sends a data packet from the VF, the data packet carries the VLAN ID of the VF. Since the direct network port and the detour network port are directly connected through a network cable, the data packet will be forcibly forwarded to the switching device of the detour network port. The switching device of the detour network port sends the data packet to the VLAN sub-interface with the same VLAN ID according to the VLAN ID carried by the data packet, so that the data packet is sent to the VMM, and then the virtual machine network function module in the VMM performs network function processing and sends the processed data packet to the second virtual machine. In the above manner, in the scenario of direct network card, the data packet is sent to the virtual network function module in the VMM, and the flexibility of network functions is realized by software, providing rich network functions.
图4对应的实施例给出了两个主机上的两个虚拟机之间的数据包传输流程,本领域技术人员可以理解的是,数据包的源虚拟机和目的虚拟机可以位于同一主机上。此时,当主机上的虚拟网络功能模块针对所述数据包进行网络功能处理后,将处理后的数据包发送给与第二虚拟机相连的VF对应的VLAN子接口,通过该VLAN子接口将数据包发送到第二虚拟机。The embodiment corresponding to FIG4 illustrates a data packet transmission process between two virtual machines on two hosts. Those skilled in the art will appreciate that the source and destination virtual machines of a data packet can be located on the same host. In this case, after the virtual network function module on the host performs network function processing on the data packet, it sends the processed data packet to the VLAN sub-interface corresponding to the VF connected to the second virtual machine, and the data packet is then sent to the second virtual machine through the VLAN sub-interface.
主机、云管理平台可以采用通用的计算机设备,示例性的,The host and cloud management platform can use general computer equipment, for example,
如图5所示,为本发明实施例提供的计算机设备硬件结构示意图。计算机设备500包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。As shown in FIG5 , which is a schematic diagram of the hardware structure of a computer device provided in an embodiment of the present invention, the computer device 500 includes at least one processor 501 , a communication bus 502 , a memory 503 , and at least one communication interface 504 .
处理器501可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。The processor 501 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present invention.
通信总线502可包括一通路,在上述组件之间传送信息。所述通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。The communication bus 502 may include a path for transmitting information between the aforementioned components. The communication interface 504 may be any transceiver or similar device for communicating with other devices or communication networks, such as Ethernet, a radio access network (RAN), or a wireless local area network (WLAN).
存储器503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。The memory 503 can be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program codes in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory can be independent and connected to the processor via a bus. The memory can also be integrated with the processor.
其中,所述存储器503用于存储执行本发明方案的应用程序代码,并由处理器501来控制执行。所述处理器501用于执行所述存储器503中存储的应用程序代码。The memory 503 is used to store application code for executing the solution of the present invention, and the execution is controlled by the processor 501. The processor 501 is used to execute the application code stored in the memory 503.
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图5中的CPU0和CPU1。In a specific implementation, as an embodiment, the processor 501 may include one or more CPUs, such as CPU0 and CPU1 in FIG. 5 .
在具体实现中,作为一种实施例,计算机设备500可以包括多个处理器,例如图5中的处理器501和处理器508。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。In a specific implementation, as an embodiment, the computer device 500 may include multiple processors, such as processor 501 and processor 508 in FIG5 . Each of these processors may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. The processor herein may refer to one or more devices, circuits, and/or processing cores for processing data (e.g., computer program instructions).
在具体实现中,作为一种实施例,计算机设备500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506可以是鼠标、键盘、触摸屏设备或传感设备等。In a specific implementation, as an embodiment, the computer device 500 may further include an output device 505 and an input device 506. The output device 505 communicates with the processor 501 and can display information in a variety of ways. For example, the output device 505 can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device 506 communicates with the processor 501 and can receive user input in a variety of ways. For example, the input device 506 can be a mouse, a keyboard, a touch screen device, or a sensor device.
上述的计算机设备500可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备500可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图5中类似结构的设备。本发明实施例不限定计算机设备500的类型。The computer device 500 described above can be a general-purpose computer device or a dedicated computer device. In a specific implementation, the computer device 500 can be a desktop computer, a portable computer, a network server, a personal digital assistant (PDA), a mobile phone, a tablet computer, a wireless terminal device, a communication device, an embedded device, or a device having a similar structure to that shown in FIG5 . The embodiment of the present invention does not limit the type of the computer device 500.
云管理平台和图2中的主机可以为图5所示的设备,存储器中存储了一个或多个软件模块,用于实现主机和云管理平台的各项功能。主机和云管理平台可以通过处理器以及存储器中的程序代码来实现本发明实施例公开的报文处理的方法。The cloud management platform and the host in Figure 2 may be the devices shown in Figure 5 , with one or more software modules stored in the memory for implementing the various functions of the host and the cloud management platform. The host and the cloud management platform may implement the message processing method disclosed in the embodiments of the present invention through the processor and the program code in the memory.
需要说明的是,图5所示的计算机设备仅仅是给出了云计算系统中各部分的可能的硬件实现方式,根据系统各部分功能的不同或者变化,可以对计算机设备的硬件组件进行增删,以使得与系统各部分的功能进行匹配。It should be noted that the computer device shown in Figure 5 only provides possible hardware implementation methods for various parts of the cloud computing system. According to the differences or changes in the functions of various parts of the system, the hardware components of the computer device can be added or deleted to match the functions of various parts of the system.
进一步的,与图5所示的硬件装置类似,上述实施例中的网卡中包含处理器以及存储器,网卡中的处理器执行存储器中的指令以实现上述交换设备的功能。本发明实施例不再赘述。Furthermore, similar to the hardware device shown in Figure 5, the network card in the above embodiment includes a processor and a memory, and the processor in the network card executes instructions in the memory to implement the functions of the above switching device.
更进一步的,如图6所示,为本发明实施例提供的一种云计算系统结构示意图,所述云计算系统包括至少一个主机601以及云管理平台602,所述主机601的结构如图2所示。Furthermore, as shown in FIG6 , which is a schematic diagram of a cloud computing system structure provided by an embodiment of the present invention, the cloud computing system includes at least one host 601 and a cloud management platform 602 . The structure of the host 601 is shown in FIG2 .
所述主机601包括虚拟机监视器VMM,以及至少一个网卡,所述主机601上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个PF和多个VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,The host 601 includes a virtual machine monitor (VMM) and at least one network card. A first virtual machine runs on the host 601. The VMM includes multiple VLAN sub-interfaces and a virtual network function module. The at least one network card includes a switching device and at least three network ports. The first network port and the second network port support network card virtualization capabilities. The first network port corresponds to at least one PF and multiple VFs. The multiple VFs are configured with VLAN identifiers, and the VLAN identifiers of the VFs are different. The first virtual machine is connected to at least one VF of the first network port. The number of VLAN sub-interfaces is the same as the number of VFs of the first network port and corresponds one-to-one. The VLAN sub-interfaces and their corresponding VFs have the same VLAN identifier. The first network port and the second network port are connected via a network cable.
所述云管理平台602,用于在所述主机上创建所述第一虚拟机,在所述第一虚拟机创建成功后,通知所述主机的VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识;The cloud management platform 602 is configured to create the first virtual machine on the host, and after the first virtual machine is successfully created, notify the VMM of the host to create a VLAN sub-interface corresponding to the VF of the first virtual machine, wherein the VLAN sub-interface corresponding to the VF of the first virtual machine has the same VLAN ID as the VF of the first virtual machine;
所述第一虚拟机,用于通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;The first virtual machine is configured to send a data packet to the second virtual machine through the VF connected to the first virtual machine, where the data packet carries a VLAN identifier of the VF that sends the data packet and an address of the second virtual machine;
所述第一网口的交换设备,用于接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;The switching device of the first network port is configured to receive the data packet and forcibly forward the data packet to the second network port through the network cable;
所述第二网口的交换设备,用于接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口;The switching device of the second network port is configured to receive a data packet from the first network port, and send the data packet to a VLAN sub-interface having the same VLAN ID as the data packet according to the VLAN ID carried by the data packet;
所述VLAN子接口,用于接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;The VLAN sub-interface is used to receive the data packet, remove the VLAN identifier of the data packet, and send the data packet to the virtual network function module;
所述虚拟网络功能模块,用于对所述修改后的数据包进行网络功能处理后,发送处理后的数据包,所述处理后的数据包的目的地址为所述第二虚拟机的地址。The virtual network function module is used to perform network function processing on the modified data packet and then send the processed data packet, where the destination address of the processed data packet is the address of the second virtual machine.
本发明实施例还提供了一种计算机存储介质,用于储存为上述图2-6中的设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现云计算系统中报文处理的方法。Embodiments of the present invention further provide a computer storage medium for storing computer software instructions for the apparatus of Figures 2-6, including a program designed to execute the method embodiments described above. By executing the stored program, the method for message processing in a cloud computing system can be implemented.
本发明实施例提供的云计算系统中报文处理的方法,主机和系统,应用于网卡直通的场景,虚拟机将数据包从直通的VF发出后,通过本发明实施例公开的报文处理流程,可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的网络功能,实现对数据包进行网络功能处理。The method, host, and system for message processing in a cloud computing system provided by an embodiment of the present invention are applied to a scenario where a network card is passed through. After a virtual machine sends a data packet from a passed-through VF, the data packet can be sent to a virtual network function module in the VMM through the message processing process disclosed in the embodiment of the present invention. This software module is used to provide users with rich network functions and implement network function processing of the data packet.
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明实施例过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。Although the present invention is described herein in conjunction with various embodiments, in the process of implementing the claimed embodiments of the invention, those skilled in the art may understand and implement other variations of the disclosed embodiments by reviewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps. A single processor or other unit may implement several functions listed in the claims. The fact that certain measures are recited in different dependent claims does not mean that these measures cannot be combined to produce good results.
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。Those skilled in the art will appreciate that embodiments of the present invention may be provided as methods, devices (equipment), or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Furthermore, embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The computer program may be stored/distributed in a suitable medium, provided together with other hardware or as part of the hardware, or in other distributed forms, such as via the Internet or other wired or wireless telecommunications systems.
本发明实施例涉及到的计算机程序指令可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,通过执行计算机程序指令可以实现前述各实施例中各部件的功能The computer program instructions involved in the embodiments of the present invention may be stored in a computer-readable memory that can guide a computer or other programmable data processing device to work in a specific manner. By executing the computer program instructions, the functions of the components in the aforementioned embodiments can be realized.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。Although the present invention has been described with reference to specific features and embodiments thereof, it will be apparent that various modifications and combinations may be made thereto without departing from the spirit and scope of the invention. Accordingly, this specification and drawings are merely illustrative of the invention as defined by the appended claims and are deemed to cover any and all modifications, variations, combinations or equivalents within the scope of the invention. It will be apparent that various modifications and variations may be made to the present invention by those skilled in the art without departing from the spirit and scope of the invention. Thus, the present invention is intended to encompass such modifications and variations as fall within the scope of the claims and their equivalents.
Claims (20)
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1250189A1 HK1250189A1 (en) | 2018-11-30 |
| HK1250189B true HK1250189B (en) | 2020-02-07 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10491517B2 (en) | Packet processing method in cloud computing system, host, and system | |
| CN107278359B (en) | Method, host and system for message processing in cloud computing system | |
| EP4004722B1 (en) | Computer device including nested network interface controller switches | |
| US9154451B2 (en) | Systems and methods for sharing devices in a virtualization environment | |
| EP3629162B1 (en) | Technologies for control plane separation at a network interface controller | |
| CN110088732B (en) | A data packet processing method, host and system | |
| US9031081B2 (en) | Method and system for switching in a virtualized platform | |
| US20100287262A1 (en) | Method and system for guaranteed end-to-end data flows in a local networking domain | |
| CN106557444B (en) | Method and device for realizing SR-IOV network card and method and device for realizing dynamic migration | |
| EP4004721B1 (en) | Computer device including process isolated containers with assigned virtual functions | |
| US10911405B1 (en) | Secure environment on a server | |
| US9344376B2 (en) | Quality of service in multi-tenant network | |
| HK1250189B (en) | Method for message processing in cloud computing system, host and system | |
| HK1250189A1 (en) | Method for message processing in cloud computing system, host and system | |
| BR112018000362B1 (en) | PACKET PROCESSING METHOD IN CLOUD COMPUTING SYSTEM, HOST AND SYSTEM |