Smart NIC components, physical machines, cloud service systems, and data center devices

Through the combination of LACP protocol and tunnel port group, the problem of the inability to aggregate the smart network card is solved, and the port aggregation and packet transmission of the smart network card group is realized, improving the network performance and user experience of the physical machine.

CN116366379BActive Publication Date: 2025-08-22BEIJING BAIDU NETCOM SCI & TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310176510.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-01-26
Publication Date
2025-08-22
Estimated Expiration
2041-01-26

AI Technical Summary

Technical Problem

In the use scenario where multiple smart network cards are assembled by physical machines, multiple smart network cards cannot be effectively aggregated, resulting in the inability to make full use of broadband and inconvenience during application.

Method used

Through the LACP protocol, the communication ports of the smart network card are aggregated into an aggregated port group, and communication between different smart network cards is realized through the tunnel port group. The hash algorithm is used to determine the message transmission path, and the port aggregation and message transmission of the smart network card group is realized.

Benefits of technology

It realizes full utilization of broadband of multiple smart network cards, reduces application complexity, and improves network performance and user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116366379B_ABST
    Figure CN116366379B_ABST
Patent Text Reader

Abstract

The present disclosure provides a smart network card component, a physical machine, a cloud service system, and a data center device, which relate to the field of computer technology and can be applied to cloud computing or data centers in the cloud field. The smart network card component includes multiple smart network card groups, which are configured on corresponding physical machines. The smart network card group includes multiple smart network cards; the communication port of the smart network card communicates with the physical machine using the LACP protocol, and the data units fed back by the communication ports of each smart network card in the smart network card group to the physical machine are configured to be the same to form an aggregated port group of the smart network card group, wherein the data unit includes the MAC address and operation key of the smart network card. Through the above technical solution, port aggregation of multiple smart network cards on a physical machine can be achieved, thereby ensuring that the broadband of multiple smart network cards can be fully utilized by the physical machine.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to a smart network card component, a physical machine, a cloud service system, and a data center device. Background Art

[0002] In related technologies, when a physical machine is equipped with multiple smart network cards, the multiple smart network cards need to be used separately, which causes many inconveniences during application and fails to effectively utilize the broadband of the multiple smart network cards. Summary of the Invention

[0003] The present disclosure provides a smart network card component, a physical machine, a cloud service system, and a data center device.

[0004] According to one aspect of the present disclosure, a smart NIC assembly is provided, comprising multiple smart NIC groups, each of which is configured on a corresponding physical machine and includes multiple smart NICs. The communication ports of the smart NICs communicate with the physical machine using the LACP protocol, and the data units fed back by the communication ports of each smart NIC in the smart NIC group to the physical machine are configured to be identical, thereby forming an aggregated port group of the smart NIC group, wherein the data units include the MAC address and operation key of the smart NIC.

[0005] According to another aspect of the present disclosure, a physical machine is provided, which communicates with an aggregated port group of a SmartNIC group of a SmartNIC assembly.

[0006] According to another aspect of the present disclosure, a cloud service system is provided, comprising: a smart network card component, comprising multiple smart network card groups, the smart network card groups being configured on corresponding physical machines, the smart network card groups comprising multiple smart network cards; the communication ports of the smart network cards communicating with the physical machines using the LACP protocol, the data units fed back by the communication ports of each smart network card in the smart network card group to the physical machines being configured to be identical, so as to form an aggregated port group of the smart network card group, wherein the data units include a MAC address and an operation key of the smart network card; and multiple physical machines, wherein the physical machines communicate with the aggregated port group of the corresponding smart network card group.

[0007] According to another aspect of the present disclosure, a method for sending a message by a physical machine is provided, comprising:

[0008] Based on the header of the network message, a hash algorithm is used to determine the first destination Smart NIC from the Smart NIC group communicating with the source physical machine;

[0009] The network message is sent to the first destination Smart NIC by using the aggregated port group of the Smart NIC group.

[0010] According to another aspect of the present disclosure, a method for sending a message by a smart network card component is provided, comprising:

[0011] Determining, according to a header of the network message, a destination tunnel port group from a plurality of tunnel port groups of the virtual switch of the first destination smart network card;

[0012] Based on the header of the network message, a hash algorithm is used to determine the destination tunnel and the second destination smart network card;

[0013] Sending the network message to the second destination smart network card through the destination tunnel;

[0014] The network message is sent to the destination physical machine by using the aggregated port group of the smart network card group corresponding to the second destination smart network card.

[0015] According to another aspect of the present disclosure, a message sending device of a physical machine is provided, comprising:

[0016] a first destination Smart NIC determination module, configured to determine the first destination Smart NIC from the Smart NIC group communicating with the source physical machine using a hash algorithm based on a header of the network message;

[0017] The first sending module is configured to send the network message to the first destination smart network card by using the aggregated port group of the smart network card group.

[0018] According to another aspect of the present disclosure, a message sending device of an intelligent network card component is provided, comprising:

[0019] a destination tunnel port group determining module, configured to determine a destination tunnel port group from a plurality of tunnel port groups of the virtual switch of the first destination smart network card using a hash algorithm according to a header of the network message;

[0020] a destination tunnel and second destination smart network card determining module, configured to determine the destination tunnel and the second destination smart network card from the destination tunnel port group according to a header of the network message;

[0021] A second sending module, configured to send the network message to a second destination smart network card through a destination tunnel;

[0022] The third sending module is configured to send the network message to the destination physical machine by using the aggregated port group of the smart network card group corresponding to the second destination smart network card.

[0023] According to another aspect of the present disclosure, there is provided an electronic device, comprising:

[0024] at least one processor; and

[0025] a memory communicatively connected to the at least one processor; wherein,

[0026] The memory stores instructions that can be executed by the at least one processor. The instructions are executed by the at least one processor to enable the at least one processor to perform the method in any embodiment of the present disclosure.

[0027] According to another aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided. The computer instructions are used to cause a computer to execute the method in any embodiment of the present disclosure.

[0028] According to another aspect of the present disclosure, a computer program product is provided, including a computer program, which implements the method in any embodiment of the present disclosure when executed by a processor.

[0029] According to another aspect of the present disclosure, a data center device is provided, including the smart network card component of any embodiment of the present disclosure, or the physical machine of any embodiment of the present disclosure, or the cloud service system of any embodiment of the present disclosure.

[0030] Through the above technical solution, port aggregation of multiple smart network cards on a physical machine can be achieved, thereby ensuring that the broadband of multiple smart network cards can be fully utilized by the physical machine.

[0031] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] The accompanying drawings are provided to facilitate a better understanding of the present invention and do not constitute a limitation of the present disclosure.

[0033] Figure 1 is a schematic diagram of a cloud service system according to an embodiment of one aspect of the present disclosure;

[0034] Figure 2 is a flowchart of a method for sending a message by a physical machine according to another embodiment of the present disclosure;

[0035] Figure 3 is a specific flow chart of determining a first destination smart network card according to another embodiment of the present disclosure;

[0036] Figure 4 is a flow chart of generating and sending fault information according to another embodiment of the present disclosure;

[0037] Figure 5 is a flowchart of a message sending method of a smart network card component according to another embodiment of the present disclosure;

[0038] Figure 6is a specific flow chart of determining a destination tunnel and a second destination smart network card according to another embodiment of the present disclosure;

[0039] Figure 7 is a schematic diagram of a message sending device of a physical machine according to another embodiment of the present disclosure;

[0040] Figure 8 is a schematic diagram of a message sending device of a smart network card assembly according to another embodiment of the present disclosure;

[0041] Figure 9 It is a block diagram of an electronic device used to implement the message sending method of a physical machine according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0042] The following description of exemplary embodiments of the present disclosure is made in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding. These details should be considered as merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.

[0043] Cloud physical machines are high-performance cloud computing resources, distinct from cloud virtual machines. Users of cloud physical machines enjoy full access to their computing resources without the overhead of virtualization. To connect to a VPC (Virtual Private Cloud) network, cloud physical machines must be equipped with a SmartNIC. SmartNICs have independent operating systems and are used by cloud IaaS (Infrastructure as a Service) operators. All packets sent through SmartNICs are encapsulated within the virtual switch running on the SmartNIC, preventing tenants from directly accessing the physical network.

[0044] If the bandwidth provided by Smart NICs is insufficient, you need to add more Smart NICs to the cloud physical machine. However, after assembling multiple Smart NICs on the cloud physical machine, the network ports of multiple Smart NICs cannot be aggregated, so the multiple Smart NICs must be used separately.

[0045] Based on this, applications on cloud physical machines need to explicitly select one of the multiple local virtual network IPs (Internet Protocol) as the source IP address and specify one of the multiple virtual network IP addresses on the other end as the destination IP address each time they connect to the network. Otherwise, all outbound traffic can only use one of the Smart NICs, and the bandwidth of multiple local Smart NICs cannot be fully utilized.

[0046] It can be seen that in the related technology, in the usage scenario where a cloud physical machine is equipped with multiple smart network cards, the multiple smart network cards need to be used separately, which causes many inconveniences during application and cannot effectively utilize the broadband of the multiple smart network cards.

[0047] In order to solve the above-mentioned problems existing in the related art, an embodiment of the present disclosure provides a smart network card component.

[0048] like Figure 1 As shown, the smart network card assembly according to an embodiment of the present disclosure includes multiple smart network card groups.

[0049] Specifically, SmartNIC groups are configured on corresponding physical machines. Each SmartNIC group is associated with a single physical machine, and a SmartNIC group includes multiple SmartNICs. The SmartNICs' communication ports communicate with the physical machine using the Link Aggregation Control Protocol (LACP). Within any SmartNIC group, the data units fed back from the communication ports of each SmartNIC to the physical machine are configured identically, forming an aggregated port group for the SmartNIC group. These data units include the SmartNIC's MAC (Media Access Control) address and operation key.

[0050] It should be noted that the LACP protocol is based on the IEEE 802.3ad standard (a standard method for implementing link aggregation). Each SmartNIC's communication port uses the LACP protocol to exchange information with the peer physical machine by sending data units back to the physical machine. The data units sent back by each SmartNIC's communication port to the physical machine can be Link Aggregation Control Protocol Data Units (LACPDUs). Interfaces in a dynamic aggregation group automatically use the LACP protocol. These interfaces send LACP units to the peer physical machine, notifying it of its system LACP priority, system MAC address, port LACP priority, port number, and operation key.

[0051] After receiving the link aggregation control protocol data unit sent by each smart network card, the peer physical machine compares the information therein and determines that the communication port of the smart network card with the same MAC address and operation key is in the selected state. By configuring the MAC address and operation key of the smart network card in the link aggregation control protocol data unit sent by each smart network card to the physical machine to be the same, each smart network card in the same smart network card group can reach a consensus on the selected state of the communication port, thereby ensuring that the communication ports of multiple smart network cards in the smart network card group can be aggregated into an aggregated port group, so that the peer physical machine can exchange information with the smart network card through each information port in the aggregated port group.

[0052] For example, Figure 1 As shown, the Smart NIC assembly may include a first Smart NIC group and a second Smart NIC group, wherein the first Smart NIC group communicates with the first physical machine, and the second Smart NIC group communicates with the second physical machine. The first Smart NIC group includes the first Smart NIC and the second Smart NIC, and the first Smart NIC and the second Smart NIC communicate with the first physical machine through the aggregated port group of the first Smart NIC group, and the communication ports of the first Smart NIC and the second Smart NIC respectively use the LACP protocol to communicate with the first physical machine. The second Smart NIC group includes the third Smart NIC and the fourth Smart NIC, and the third Smart NIC and the fourth Smart NIC communicate with the second physical machine through the aggregated port group of the second Smart NIC group, and the communication ports of the third Smart NIC and the fourth Smart NIC respectively use the LACP protocol to communicate with the second physical machine.

[0053] The communication ports of the first and second Smart NICs feed back the same data units to the first physical machine, thereby forming an aggregated port group of the first Smart NIC group. The communication ports of the third and fourth Smart NICs feed back the same data units to the second physical machine, thereby forming an aggregated port group of the second Smart NIC group.

[0054] It should be understood that the above is merely illustrative and should not be construed as limiting the present disclosure. For example, there may be multiple SmartNIC groups, and the number of SmartNICs in each SmartNIC group may be any number. The number of SmartNICs in different SmartNIC groups may be the same or different. The number of SmartNIC groups may be specifically set based on the number of physical machines, and the number of SmartNICs in a SmartNIC group may be specifically set based on the bandwidth requirements of the peer physical machine.

[0055] According to the Smart NIC assembly of the embodiments of the present disclosure, by using the LACP (Link Aggregation Control Protocol) protocol for the communication ports of the Smart NICs to communicate with the physical machine, and by configuring the data units fed back to the physical machine by the communication ports of each Smart NIC in any Smart NIC group to be identical, the communication ports of each Smart NIC in the Smart NIC group can be aggregated into an aggregated port group according to the LACP protocol. As a result, when an application on a peer physical machine uses the Smart NICs in the corresponding Smart NIC group, the peer physical machine can use the communication ports of any Smart NIC to exchange information, because the data units fed back to it by the Smart NICs in the corresponding Smart NIC group are identical. This ensures that the peer physical machine can freely use each Smart NIC in the Smart NIC group without explicitly selecting the source and destination IP addresses from multiple local virtual network IP addresses. This allows the multiple Smart NICs in the Smart NIC group to be transparently used by the applications on the peer physical machine, and ensures that the bandwidth of the multiple Smart NICs in the Smart NIC group is fully utilized.

[0056] like Figure 1 As shown, in one embodiment, the SmartNIC is configured with a virtual switch, and the virtual switches of different SmartNIC groups communicate with each other through tunnels. In other words, the virtual switches of any two SmartNICs in different SmartNIC groups communicate with each other through tunnels. The virtual switch of the SmartNIC is configured with a tunnel port group, which is formed by merging multiple tunnels between the virtual switch and the virtual switches of other SmartNIC groups.

[0057] As you can understand, tunneling is a method of transmitting data between networks using the internetwork infrastructure. The messages transmitted using tunneling can be data frames or packets from different protocols. Tunneling re-encapsulates these messages in a new header and sends them. This new header provides routing information, enabling the encapsulated payload data to be transmitted between different SmartNICs across the internetwork.

[0058] Among them, such as Figure 1 As shown, the two endpoints of the tunnel are located between two SmartNICs in different SmartNIC groups. For example, the first virtual switch of the first SmartNIC and the third virtual switch of the third SmartNIC exchange information through the first tunnel (1-3). Encapsulated packets are routed through the public internet between the two tunnel endpoints. The logical path that encapsulated packets traverse on the public internet is called a tunnel. Once at the network endpoint, the data is unpacked and forwarded to its final destination. In other words, a tunnel refers to the entire process, including packet encapsulation, transmission, and unpacking.

[0059] Tunneling enables two different SmartNIC virtual switches to transmit packets over incompatible transport networks, allowing users on a VPC network to gain access to other SmartNICs. Furthermore, tunneling uses data encryption to transmit packets, ensuring that encapsulated packets appear as public data. Any two SmartNIC virtual switches in different SmartNIC groups can exchange information.

[0060] For example, according to the Open System Interconnection Reference Model (OSI model), a tunnel can be a Layer 2 tunneling protocol or a Layer 3 tunneling protocol. Layer 2 tunneling protocols use frames as data exchange units, such as PPTP (Point to Point Tunneling Protocol) or L2TP (Layer 2 Tunneling Protocol). Both of these protocols encapsulate messages in Point-to-Point Protocol frames and send them over the Internet. Layer 3 tunneling protocols use packets as data exchange units, such as IPSec (Internet Protocol Security). IPSec is a set of protocols that provide IP security at the network layer, used to ensure secure communication between network layers, and can encapsulate IP packets in additional IP headers for transmission over IP networks.

[0061] In a specific example, Figure 1 As shown, in the first SmartNIC, the first virtual switch of the first SmartNIC communicates with the third virtual switch of the third SmartNIC via a first tunnel (1-3); the first virtual switch of the first SmartNIC communicates with the fourth virtual switch of the fourth SmartNIC via a second tunnel (1-4). 1-3 indicates that the two endpoints of the first tunnel are connected to the first virtual switch and the third virtual switch, respectively, and 1-4 indicates that the two endpoints of the second tunnel are connected to the first virtual switch and the fourth virtual switch, respectively. The first tunnel and the second tunnel together constitute a tunnel port group for communication between the first virtual switch and the second SmartNIC group.

[0062] In the second SmartNIC, the second virtual switch of the second SmartNIC communicates with the third virtual switch of the third SmartNIC via a third tunnel (2-3). The second virtual switch of the second SmartNIC communicates with the fourth virtual switch of the fourth SmartNIC via a fourth tunnel (2-4). 2-3 indicates that the two endpoints of the third tunnel are connected to the second virtual switch and the third virtual switch, respectively, and 2-4 indicates that the two endpoints of the fourth tunnel are connected to the second virtual switch and the fourth virtual switch, respectively. The third and fourth tunnels constitute a tunnel port group for communication between the second virtual switch and the second SmartNIC group.

[0063] Similarly, the first tunnel and the third tunnel constitute a tunnel port group for communication between the third virtual switch and the first smart network card group; the second tunnel and the fourth tunnel constitute a tunnel port group for communication between the fourth virtual switch and the first smart network card group.

[0064] It is understandable that the number of tunnel port groups on the virtual switch of each smart network card is related to the number of smart network card groups. Specifically, if the number of smart network card groups is N (N≥2), the number of tunnel port groups on the virtual switch of each smart network card is N-1. Figure 1 In the example, if the number of Smart NIC groups is 2, the number of tunnel port groups on the virtual switch of each Smart NIC is 1.

[0065] By merging multiple tunnels between a Smart NIC and multiple Smart NICs in a Smart NIC group into a tunnel port group, multiple tunnels can be uniformly deployed and managed for the virtual switch of each Smart NIC. A hash table can be constructed based on the tunnel port group, which facilitates the use of a hash algorithm to determine the destination Smart NIC for message transmission.

[0066] According to an embodiment of the present disclosure, the present disclosure further provides a physical machine.

[0067] like Figure 1 As shown, the physical machine of the embodiment of the present disclosure communicates with the aggregation port group of the smart NIC group of the smart NIC assembly.

[0068] Among them, the smart network card component can be the smart network card component of the above embodiment of the present disclosure, which will not be described in detail here.

[0069] According to the embodiment of the present disclosure, the physical machine can effectively utilize the broadband of each smart network card in the smart network card group by communicating with the aggregated port group of the smart network card assembly, thereby improving the network performance of the physical machine and further improving the user experience.

[0070] According to an embodiment of the present disclosure, the present disclosure further provides a cloud service system, which includes a smart network card component and a physical machine.

[0071] Specifically, the SmartNIC assembly includes multiple SmartNIC groups, each of which is configured on a corresponding physical machine and includes multiple SmartNICs. The communication ports of the SmartNICs communicate with the physical machines using the LACP protocol. The data units fed back by the communication ports of each SmartNIC in the SmartNIC group to the physical machine are configured to be identical, forming an aggregated port group of the SmartNIC group. The data units include the SmartNIC's MAC address and operation key. There are multiple physical machines, each of which communicates with the aggregated port group of the corresponding SmartNIC group.

[0072] Among them, the smart network card component can be the smart network card component of the above embodiment of the present disclosure, and the physical machine can be the physical machine of the above embodiment of the present disclosure, which will not be repeated here.

[0073] For example, the cloud service system can be an Elastic Bare Metal Server. Specifically, an Elastic Bare Metal Server is a high-performance physical bare metal server that users can use exclusively in a cloud environment. Users have full management rights to the physical device. Flexible networking can be combined with Elastic IP (EIP) and Baidu Load Balance (BLB), and it can communicate with the cloud server intranet. This allows users to flexibly meet the business needs of various complex scenarios and build an intranet hybrid cloud.

[0074] Refer to the following Figure 1 A specific example of a cloud service system according to an embodiment of the present disclosure is described.

[0075] like Figure 1 As shown, the multiple physical machines include a first physical machine and a second physical machine, and the Smart NIC assembly includes a first Smart NIC group and a second Smart NIC group. The first Smart NIC group communicates with the first physical machine, and the second Smart NIC group communicates with the second physical machine. The first Smart NIC group includes a first Smart NIC and a second Smart NIC. The first and second Smart NICs communicate with the first physical machine via the aggregation port group of the first Smart NIC group, and the communication ports of the first and second Smart NICs respectively use the LACP protocol to communicate with the first physical machine. The second Smart NIC group includes a third Smart NIC and a fourth Smart NIC. The third and fourth Smart NICs communicate with the second physical machine via the aggregation port group of the second Smart NIC group, and the communication ports of the third and fourth Smart NICs respectively use the LACP protocol to communicate with the second physical machine. The communication ports of the first and second Smart NICs feed back the same data units to the first physical machine, forming the aggregation port group of the first Smart NIC group. The communication ports of the third and fourth Smart NICs feed back the same data units to the second physical machine, forming the aggregation port group of the second Smart NIC group.

[0076] In a first smart network card, the first virtual switch of the first smart network card communicates with the third virtual switch of the third smart network card via a first tunnel (1-3); the first virtual switch of the first smart network card communicates with the fourth virtual switch of the fourth smart network card via a second tunnel (1-4). 1-3 indicates that the two endpoints of the first tunnel are connected to the first virtual switch and the third virtual switch, respectively, and 1-4 indicates that the two endpoints of the second tunnel are connected to the first virtual switch and the fourth virtual switch, respectively. The first tunnel and the second tunnel together constitute a tunnel port group for communication between the first virtual switch and the second smart network card group. In a second smart network card, the second virtual switch of the second smart network card communicates with the third virtual switch of the third smart network card via a third tunnel (2-3); the second virtual switch of the second smart network card communicates with the fourth virtual switch of the fourth smart network card via a fourth tunnel (2-4). 2-3 indicates that the two endpoints of the third tunnel are connected to the second virtual switch and the third virtual switch, respectively, and 2-4 indicates that the two endpoints of the fourth tunnel are connected to the second virtual switch and the fourth virtual switch, respectively. The third tunnel and the fourth tunnel constitute a tunnel port group for communication between the second virtual switch and the second smart network card group.

[0077] Similarly, the first tunnel and the third tunnel constitute a tunnel port group for communication between the third virtual switch and the first smart network card group; the second tunnel and the fourth tunnel constitute a tunnel port group for communication between the fourth virtual switch and the first smart network card group.

[0078] According to the cloud service system of the embodiment of the present disclosure, by adopting the interactive method of communication between the physical machine and the smart network card group of the smart network card component, the bandwidth of the physical machine can be improved, the complexity of using applications on the physical machine can be reduced, and it is beneficial to reduce network latency and improve user experience.

[0079] According to an embodiment of the present disclosure, the present disclosure further provides a data center device, comprising a SmartNIC assembly according to any of the aforementioned embodiments of the present disclosure, a physical machine according to any of the aforementioned embodiments of the present disclosure, or a cloud service system according to any of the aforementioned embodiments of the present disclosure. The data center device may be a cloud computing or cloud-domain data center.

[0080] According to an embodiment of the present disclosure, the present disclosure also provides a method for sending a message of a physical machine.

[0081] like Figure 2 As shown, the message sending method of the physical machine includes:

[0082] Step S201: Determine a first destination SmartNIC from a group of SmartNICs communicating with a source physical machine using a hash algorithm (hash function) based on a header of a network message;

[0083] Step S202: Using the aggregation port group of the smart network interface card group, the network message is sent to the first destination smart network interface card.

[0084] For example, a hash table can be constructed based on the network packet header and the packet's transmission path. It is understood that a hash table is a data structure that is directly accessed based on a key value. For a constructed hash table, there exists a function f(key). For any given key value key, substituting it into the function yields the address of the record containing the key in the table. The network packet header can serve as the key value for the hash table, and the packet's transmission path can serve as the key value. After obtaining the key value based on the network packet header, a hash algorithm is used to obtain the corresponding key value in the hash table, thereby obtaining the packet's transmission path. Ultimately, based on the packet's transmission path, the first destination SmartNIC is determined from the SmartNIC group communicating with the source physical machine. The source physical machine sends the network packet to the first destination SmartNIC via the aggregation port group of the SmartNIC group where the first destination SmartNIC resides.

[0085] Illustratively, the header of the network message may be a message header of the network message at a network layer or a transport layer.

[0086] According to the message sending method of the physical machine in the embodiment of the present disclosure, by using a hash algorithm to determine the first destination smart network card, the smart network card for forwarding the network message can be reasonably determined in the smart network card group communicating with the source physical machine, thereby achieving balanced distribution and use of multiple smart network cards in the smart network card group.

[0087] like Figure 3 As shown, in one embodiment, step S201 may include:

[0088] Step S301: Obtain the source flag and destination flag of the network message according to the header of the network message;

[0089] Step S302: constructing a first keyword value based on the source flag and the destination flag, wherein the first keyword value is represented from the source flag to the destination flag;

[0090] Step S303: Based on the first keyword value, a hash algorithm is used to determine a first destination SmartNIC from the SmartNIC group corresponding to the source physical machine.

[0091] Exemplarily, the source flag of a network message may include other information such as the source IP address of the network message or the source port number of the network message, and the destination flag of the network message may include other information such as the destination IP address of the network message or the destination port number of the network message. The representation of the first keyword value may be (src->dst), where src (source) is the source flag of the network message, dst (destination) is the destination flag of the network message, and the first keyword value is the forward transmission direction of the network message from the source flag to the destination flag. Thus, the hash algorithm can be used to determine the transmission path of the network message from the source flag to the destination flag, and based on the transmission path, the object to which the source physical machine sends the network message, namely the first destination smart network card, can be determined.

[0092] Through the above implementation, by constructing the source mark to the destination mark of the network message into a first keyword value, and using a hash algorithm based on the first keyword value, the first destination smart network card that the network message sent by the source physical machine passes through in the forward sending direction can be determined, thereby ensuring that multiple smart network cards communicating with the source physical machine can be used evenly.

[0093] like Figure 4 As shown, in one embodiment, the method further includes:

[0094] Step S401: When any intelligent network card is detected to be abnormal, fault information is generated and the fault information is synchronized to other intelligent network cards using an aggregation port group.

[0095] For example, the physical machine's media-independent interface (MII) can be used to detect whether a Smart NIC is experiencing an anomaly. If an anomaly is detected on a specific Smart NIC, the physical machine's control network generates fault information and synchronizes the fault information to multiple Smart NICs communicating with the physical machine using an aggregated port group. Furthermore, the Smart NIC can also use a liveness detection mechanism on the network control plane to detect whether an anomaly is occurring on the Smart NIC. If an anomaly is detected on the Smart NIC, fault information is generated and synchronized to other Smart NICs in the Smart NIC group via a tunnel.

[0096] Through the above implementation, anomalies of the smart network card can be detected, and when the smart network card sends an anomaly, fault information can be synchronized to other smart network cards to block other smart network cards from selecting tunnels to the faulty smart network card, thereby ensuring the stability of information interaction between the smart network card component and the physical machine.

[0097] According to an embodiment of the present disclosure, the present disclosure also provides a message sending method of a smart network card component.

[0098] like Figure 5 As shown, the message sending method of the smart network card component includes:

[0099] Step S501: Determine a destination tunnel port group from multiple tunnel port groups of the virtual switch of the first destination smart network card according to the header of the network message;

[0100] Step S502: Determine the destination tunnel and the second destination smart network card using a hash algorithm based on the header of the network message;

[0101] Step S503: Send the network message to the second destination smart network card through the destination tunnel;

[0102] Step S504: Send the network message to the destination physical machine using the aggregated port group of the smart network card group corresponding to the second destination smart network card.

[0103] For example, in step S501, the destination physical machine corresponding to the destination virtual network can be obtained according to the IP address of the destination virtual network of the network message in the header of the network message, and the destination tunnel port group corresponding to the destination smart network card group can be determined from the multiple tunnel port groups of the virtual switch of the first destination smart network card according to the smart network card group communicating with the destination physical machine. Figure 1 In the example shown, the source physical machine is the first physical machine, and the first destination SmartNIC is the first SmartNIC. The network packet header includes the destination virtual network IP address, which is virtual network IP2. The destination physical machine of the network packet is physical machine B corresponding to virtual network IP2, and thus the second SmartNIC group communicating with physical machine B is obtained. In the first virtual switch of the first SmartNIC, the tunnel port group corresponding to the second SmartNIC group is selected from the multiple tunnel port groups as the destination tunnel port group.

[0104] For example, in step S502, a hash table can be constructed based on the network message header and the message transmission path. The network message header can serve as a key value for the hash table, and the message transmission path can serve as a key code value. After obtaining the key value based on the network message header, a hash algorithm is used to obtain the corresponding key code value in the hash table, thereby obtaining the network message transmission path. Finally, based on the network message transmission path, a second destination SmartNIC is determined from the SmartNIC group communicating with the destination physical machine, and a destination tunnel is determined from the destination tunnel port group.

[0105] Illustratively, the header of the network message may be a message header of the network message at a network layer or a transport layer.

[0106] According to the message sending method of the network card assembly of the embodiment of the present disclosure, the second destination Smart NIC communicating with the destination physical machine is determined based on the network message header and using a hash algorithm. The network message is then sent from the first Smart NIC to the second Smart NIC, and finally to the destination physical machine via the aggregation port group of the Smart NIC group where the second Smart NIC is located. This enables message forwarding between different physical machines by the Smart NIC assembly.

[0107] like Figure 6 As shown, in one embodiment, step S501 includes:

[0108] Step S601: Obtain the source flag and destination flag of the network message according to the header of the network message;

[0109] Step S602: constructing a second key value based on the source flag and the destination flag, wherein the second key value is represented from the destination flag to the source flag;

[0110] Step S603: Based on the second keyword value, a hash algorithm is used to determine a destination tunnel from the destination tunnel port group, and a second destination smart network card from a group of smart network cards communicating with the destination physical machine.

[0111] Exemplarily, the source identifier of a network message may include other information such as the source IP address or source port number of the network message, and the destination identifier of a network message may include other information such as the destination IP address or destination port number of the network message. The second keyword value may be represented by (dst->src), where src (source) is the source identifier of the network message, dst (destination) is the destination identifier of the network message, and the second keyword value is the reverse direction of the network message from the destination identifier to the source identifier. In other words, the second keyword value is the reverse direction of the message, which is the opposite of the direction of the network message.

[0112] It is understood that a hash function has the following basic property: if two key values ​​are different (according to the same function), then the key values ​​of these two hash values ​​are also different. This property is a result of the determinism of hash functions. However, the input and output of a hash function do not correspond one-to-one. If two key values ​​are the same, then the two key values ​​are likely to be the same. Therefore, a hash algorithm can be used to determine the reverse transmission path of a network message from the destination identifier to the source identifier. Based on this reverse transmission path, the second destination SmartNIC, to which the first destination SmartNIC is sending the network message, can be determined.

[0113] Through the above implementation method, by constructing the destination flag to the source flag of the network message into a second keyword value, and using a hash algorithm based on the second keyword value, not only can the object of the forward sending of the network message, that is, the second destination smart network card, be determined, but it can also ensure that the reverse message sent by the destination physical machine returns to the source physical machine along the reverse sending path opposite to the forward sending path of the network message, thereby realizing connection tracking of network messages in both forward and reverse directions.

[0114] According to an embodiment of the present disclosure, the present disclosure further provides a message sending device for a physical machine.

[0115] like Figure 7 As shown, the message sending device of the physical machine includes:

[0116] A first destination SmartNIC determination module 701 is configured to determine a first destination SmartNIC from a group of SmartNICs communicating with a source physical machine using a hash algorithm based on a header of a network message;

[0117] The first sending module 702 is configured to send the network message to the first destination smart network card by using the aggregated port group of the smart network card group.

[0118] In one embodiment, the first destination smart network card determination module 701 includes:

[0119] The source flag and destination flag acquisition submodule is used to obtain the source flag and destination flag of the network message according to the header of the network message;

[0120] A first keyword value construction submodule is configured to construct a first keyword value based on a source flag and a destination flag, wherein the first keyword value is represented from the source flag to the destination flag;

[0121] The first destination smart network card determination submodule is configured to determine the first destination smart network card from the smart network card group corresponding to the source physical machine using a hash algorithm based on the first keyword value.

[0122] In one embodiment, the device further comprises:

[0123] The fault information generation module is used to generate fault information when any intelligent network card is detected to be abnormal, and synchronize the fault information to other intelligent network cards using the aggregation port group.

[0124] According to an embodiment of the present disclosure, the present disclosure also provides a message sending device of a smart network card component.

[0125] like Figure 8 The message sending device of the smart network card component includes:

[0126] a destination tunnel port group determination module 801 for determining a destination tunnel port group from multiple tunnel port groups of the virtual switch of the first destination smart network card using a hash algorithm according to a header of the network message;

[0127] A destination tunnel and second destination smart network card determining module 802 is configured to determine a destination tunnel and a second destination smart network card based on a header of a network message;

[0128] A second sending module 803 is configured to send the network message to the second destination smart network card through the destination tunnel;

[0129] The third sending module 804 is configured to send the network message to the destination physical machine by using the aggregated port group of the smart network interface card group corresponding to the second destination smart network interface card.

[0130] In one embodiment, the destination tunnel and second destination smart network card determination module 802 includes:

[0131] The source flag and destination flag acquisition submodule is used to obtain the source flag and destination flag of the network message according to the header of the network message;

[0132] A second keyword value construction module is used to construct a second keyword value based on the source flag and the destination flag, wherein the second keyword value is represented from the destination flag to the source flag;

[0133] The destination tunnel and second destination smart network card determination submodule is used to determine the destination tunnel from the destination tunnel port group and determine the second destination smart network card from a group of smart network cards communicating with the destination physical machine using a hash algorithm based on the second keyword value.

[0134] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.

[0135] Figure 9 A schematic block diagram of an example electronic device 900 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0136] like Figure 9As shown, electronic device 900 includes a computing unit 901, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 902 or a computer program loaded from a storage unit 908 into a random access memory (RAM) 903. Various programs and data required for the operation of electronic device 900 may also be stored in RAM 903. Computing unit 901, ROM 902, and RAM 903 are interconnected via a bus 904. An input / output (I / O) interface 905 is also connected to bus 904.

[0137] Multiple components in the electronic device 900 are connected to the I / O interface 905, including an input unit 906, such as a keyboard, a mouse, etc.; an output unit 907, such as various types of displays, speakers, etc.; a storage unit 908, such as a magnetic disk, an optical disk, etc.; and a communication unit 909, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 909 allows the electronic device 900 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0138] The computing unit 901 can be any general-purpose and / or specialized processing component with processing and computing capabilities. Some examples of the computing unit 901 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various specialized artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The computing unit 901 performs the various methods and processes described above, such as the message sending method for a physical machine or the message sending method for a SmartNIC component. For example, in some embodiments, the message sending method for a physical machine or the message sending method for a SmartNIC component can be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 908. In some embodiments, part or all of the computer program can be loaded and / or installed on the electronic device 900 via the ROM 902 and / or the communication unit 909. When the computer program is loaded into the RAM 903 and executed by the computing unit 901, one or more steps of the message sending method for a physical machine or the message sending method for a SmartNIC component described above can be performed. Alternatively, in other embodiments, the computing unit 901 may be configured to execute the message sending method of the physical machine or the message sending method of the smart network card component in any other appropriate manner (for example, by means of firmware).

[0139] Various embodiments of the systems and techniques described above can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0140] The program code for implementing the method of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device so that when the program code is executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.

[0141] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of machine-readable storage media may include an electrical connection based on one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fibers, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0142] To provide for interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide for interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0143] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.

[0144] Computer systems may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The client and server relationship arises through computer programs running on the respective computers and having a client-server relationship to each other.

[0145] It should be understood that the various forms of the processes shown above can be used to reorder, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved. This is not limited herein.

[0146] The above specific embodiments do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art will appreciate that various modifications, combinations, sub-combinations, and substitutions may be made based on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure shall be included within the scope of protection of this disclosure.

Claims

1. A smart network card component, characterized in that: The smart network card group includes multiple smart network cards, each of which is configured on a corresponding physical machine and includes multiple smart network cards; The communication port of the smart network card communicates with the physical machine using the LACP protocol, and the data units fed back by the communication ports of each smart network card in the smart network card group to the physical machine are configured to be the same to form an aggregated port group of the smart network card group, wherein the data unit includes the MAC address and operation key of the smart network card; The smart network card component sends the message in the following way: Determining, according to a header of the network message, a destination tunnel port group from a plurality of tunnel port groups of the virtual switch of the first destination smart network card; Acquire a source flag and a destination flag of the network message according to a header of the network message; constructing a second key value based on the source flag and the destination flag, wherein the second key value is represented from the destination flag to the source flag; Based on the second keyword value, determine the destination tunnel from the destination tunnel port group using a hash algorithm, and determine the second destination smart network card from a group of smart network cards communicating with the destination physical machine; The network message is sent to the destination physical machine by using the aggregated port group of the smart network card group corresponding to the second destination smart network card.

2. The smart network card assembly according to claim 1, wherein: The smart network card is configured with a virtual switch, and the virtual switches of different smart network card groups communicate with each other through tunnels; The virtual switch is provided with a tunnel port group, and the tunnel port group is obtained by merging multiple tunnels between the virtual switch and virtual switches of other intelligent network card groups.

3. The smart network card assembly according to claim 1, wherein: The data unit is a link aggregation control protocol data unit.

4. The smart network card assembly according to claim 3, wherein: The communication port of the smart network card communicates with the physical machine using the LACP protocol, including: the communication port of the smart network card uses the LACP protocol to notify the physical machine of its own system LACP protocol priority, system MAC, port LACP protocol priority, port number and operation key by sending the link aggregation control protocol data unit.

5. The smart network card assembly according to claim 4, characterized in that: After receiving the link aggregation control protocol data unit sent by the smart network card, the physical machine compares information of the link aggregation control protocol data unit and determines the communication port of the smart network card with the same MAC address and operation key to be in a selected state.

6. The smart network card assembly according to claim 1, wherein: The number of the tunnel port groups is related to the number of smart network interface card groups.

7. A physical machine, characterized in that: The physical machine is configured with a smart network card group of the smart network card assembly according to any one of claims 1 to 6, and the physical machine communicates with the aggregation port group of the smart network card group.

8. A cloud service system, characterized in that: include: A smart network card assembly includes multiple smart network card groups, each of which is configured on a corresponding physical machine and includes multiple smart network cards; the communication ports of the smart network cards communicate with the physical machine using the LACP protocol, and the data units fed back by the communication ports of each smart network card in the smart network card group to the physical machine are configured to be the same to form an aggregated port group of the smart network card group, wherein the data unit includes the MAC address and operation key of the smart network card; A physical machine, where there are multiple physical machines, and the physical machines communicate with the aggregation port group of the corresponding smart network interface card group; The smart network card component sends the message in the following way: Determining, according to a header of the network message, a destination tunnel port group from a plurality of tunnel port groups of the virtual switch of the first destination smart network card; Acquire a source flag and a destination flag of the network message according to a header of the network message; constructing a second key value based on the source flag and the destination flag, wherein the second key value is represented from the destination flag to the source flag; Based on the second keyword value, determine the destination tunnel from the destination tunnel port group using a hash algorithm, and determine the second destination smart network card from a group of smart network cards communicating with the destination physical machine; The network message is sent to the destination physical machine by using the aggregated port group of the smart network card group corresponding to the second destination smart network card.

9. A data center device, characterized in that: It includes the smart network card component described in any one of claims 1 to 6, or the physical machine described in claim 7, or the cloud service system described in claim 8.

Citation Information

Patent Citations

  • Automatic adaptation method for different physical service networks of private cloud system

    CN111556110A