Communication method, computer device, storage medium and program product

By integrating OVS and SMCR communication mechanisms, adjusting the data communication links between virtual switches and remote direct data access network cards, the problem that OVS bridges cannot use SMCR is solved, high-performance network communication is achieved, and network performance and bandwidth are improved. .

CN118714106BActive Publication Date: 2025-01-10JINAN INSPUR DATA TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411204443.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-08-30
Publication Date
2025-01-10
Estimated Expiration
2044-08-30

AI Technical Summary

Technical Problem

When using OVS bridges, the network performance is low because the SMCR and OVS bridges cannot be used at the same time, resulting in the inability to use RDMA, and the limit on the number of network cards further reduces network performance.

Method used

Through the communication mechanism of converged OVS and SMCR, the data communication link between the virtual switch and the remote direct data access network card is adjusted, and the converged data communication link is generated, the kernel network protocol stack is bypassed, and the remote direct data access network card is directly used for Data transmission.

Benefits of technology

It improves network performance, reduces network latency of cloud computing platform, improves network bandwidth, and improves the performance of communication networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118714106B_ABST
    Figure CN118714106B_ABST
Patent Text Reader

Abstract

The present application relates to a communication method, a computer device, a storage medium and a program product, and belongs to the field of network virtualization technology. The method includes: deploying a software-defined network cluster, wherein the software-defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches; based on a converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link; based on the converged data communication link, transmitting message data between different cloud hosts. The present application transmits message data based on the converged data communication link, can use the remote direct data access network card, bypass the kernel network protocol stack, reduce CPU overhead, reduce the impact of the host memory protocol stack on network performance, and improve network performance.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of network virtualization, and in particular to a communication method, computer equipment, storage medium and program product. Background Art

[0002] When the network uses the OVS (Open vSwitch, open source virtual switch) bridge, there may be different services in the business network, such as migration, backup, disaster recovery and other networks, which use different IP addresses (Internet Protocol Address, Internet Protocol address) and may also use different VLANs (Virtual Local Area Network, virtual local area network). The kernel protocol stack of the OVS network and the kernel protocol stack of SMCR (a kernel network protocol based on RDMA technology and compatible with the socket interface) are almost unrelated. For applications, SMCR and OVS bridges cannot be used at the same time. In addition, due to the limitation of the number of network cards, in actual business scenarios, the business network on the OVS bridge cannot use SMCR, and RDMA (Remote Direct Memory Access) cannot be used, resulting in low network performance.

[0003] Therefore, there is an urgent need to propose a communication method, computer device, storage medium and program product that can improve network performance. Summary of the invention

[0004] Based on this, it is necessary to provide a communication method, computer equipment, storage medium and program product that can improve network performance in response to the above technical problems.

[0005] In a first aspect, a communication method is provided, the method comprising:

[0006] Deploy a software defined network cluster, wherein the software defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches;

[0007] Based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card;

[0008] Based on the fused data communication link, message data between different cloud hosts is transmitted.

[0009] Optional deployment methods for software-defined network clusters include:

[0010] Deploy a software defined network environment, select a network card that supports a remote direct data access function, and install the network card that supports a remote direct data access function on a cloud host in the software defined network environment;

[0011] Installing a virtualization platform in the software defined network environment and creating a virtual switch and its corresponding virtual bridge;

[0012] The software-defined network cluster is generated based on a cloud host with a virtual switch and its corresponding virtual bridge and remote direct data access network card installed, as well as other related network components.

[0013] Optionally, before adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card based on the converged communication mechanism to obtain the converged data communication link, the method further includes:

[0014] Detecting whether a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address;

[0015] In response to detecting that a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address, based on the fusion communication mechanism, the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card is adjusted to obtain a fusion data communication link.

[0016] Optionally, based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain the converged data communication link includes:

[0017] Based on a preset command, a user state port is created in the user state of the virtual bridge, and configuration information corresponding to the created user state port is written into a database corresponding to the virtual bridge;

[0018] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the configuration information is sent to the kernel state of the operating system, and the corresponding virtual network device is created in the kernel state.

[0019] Optionally, the method further includes:

[0020] When creating a user state port in the user state of the virtual bridge based on a preset command, adding identification field information and virtual local area network field information of the remote direct data access network card corresponding to the virtual bridge;

[0021] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the identification field information and the virtual local area network field information are sent to the virtual network bridge data path layer in the kernel state and written into the private field of the virtual network device.

[0022] Optionally, based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain the converged data communication link includes:

[0023] In response to detecting an Internet Protocol address configuration request, configuring an Internet Protocol address for the cloud host;

[0024] In response to detecting that the Internet Protocol address has been successfully configured, detecting whether the cloud host corresponding to the Internet Protocol address supports a remote direct data access function;

[0025] In response to detecting that the cloud host corresponding to the Internet Protocol address supports the remote direct data access function, a unique identifier corresponding to the virtual bridge port is generated based on the ib_core module.

[0026] Optionally, in response to detecting that the Internet Protocol address has been successfully configured, the method further includes:

[0027] Check whether there is an ib_core module in kernel state;

[0028] In response to detecting that the ib_core module exists in the kernel state, a configuration event is sent to the ib_core module.

[0029] Optionally, after sending the configuration event to the ib_core module, the method further includes:

[0030] When the ib_core module detects the configuration event, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0031] Optionally, modifying the ib_core module to generate a unique identifier corresponding to the virtual bridge port includes:

[0032] Get the name of the virtual bridge port and the configured Internet Protocol address;

[0033] Based on the name of the virtual bridge port and the configured Internet Protocol address, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0034] Optionally, based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain the converged data communication link includes:

[0035] Based on the smc kernel module in the operating system, read the private fields of the virtual network device;

[0036] Extracting identification field information of the remote direct data access network card based on the private field of the virtual network device;

[0037] Based on the identification field information of the remote direct data access network card, the message data sending port of the smc kernel module is determined.

[0038] Optionally, determining the message data sending port of the smc kernel module based on the identification field information of the remote direct data access network card includes:

[0039] Based on the identification field information of the remote direct data access network card, determining whether the network card corresponding to the virtual bridge port supports the remote direct data access function;

[0040] In response to detecting that the network card corresponding to the virtual bridge port supports the remote direct data access function, the message data sending port of the smc kernel module is adjusted to the network card corresponding to the virtual bridge port.

[0041] Optionally, before transmitting the message data between different cloud hosts based on the converged data communication link, the method further includes:

[0042] In response to detecting that different cloud hosts support a remote direct data access function, transmitting message data between different cloud hosts based on the converged data communication link;

[0043] In response to detecting that the remote direct data access function is not supported between different cloud hosts, the message data between the different cloud hosts is transmitted based on the transmission control protocol.

[0044] Optionally, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0045] The virtual local area network field information is read from the private field of the virtual network device, and the virtual local area network field information is added and stripped in the ib_core module.

[0046] Optionally, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0047] The message data is transmitted in segments based on the number of bytes corresponding to the preset maximum transmission unit.

[0048] Optionally, the method for determining the maximum transmission unit includes:

[0049] Get the number of bytes of the corresponding fields of multiple maximum transmission units;

[0050] Sorting the maximum transmission units according to the number of bytes and in descending order to obtain a sorting result;

[0051] Based on the sorting result, the maximum transmission units corresponding to the two cloud hosts that need to perform message data transmission are negotiated;

[0052] In response to detecting that the negotiation is successful, the maximum transmission unit is defined as a target maximum transmission unit.

[0053] Optionally, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0054] Get the data volume of the message data;

[0055] In response to detecting that the amount of the message data is less than a first preset threshold, determining the notification interval of the buffer zone to be real-time notification;

[0056] In response to detecting that the data volume of the message data is greater than or equal to a first preset threshold, determining the notification interval of the buffer zone to notify according to a preset duration.

[0057] Optionally, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0058] Apply for a shared memory for user state and kernel state to realize direct sharing of user state and kernel network protocol stack.

[0059] In a second aspect, a computer device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the following steps are implemented:

[0060] Deploy a software defined network cluster, wherein the software defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches;

[0061] Based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card;

[0062] Based on the fused data communication link, message data between different cloud hosts is transmitted.

[0063] In a third aspect, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0064] Deploy a software defined network cluster, wherein the software defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches;

[0065] Based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card;

[0066] Based on the fused data communication link, message data between different cloud hosts is transmitted.

[0067] In a fourth aspect, a computer program product is provided, the computer program product comprising a computer program, and when the computer program is executed by a processor, the following steps are implemented:

[0068] Deploy a software defined network cluster, wherein the software defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches;

[0069] Based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card;

[0070] Based on the fused data communication link, message data between different cloud hosts is transmitted.

[0071] The above-mentioned communication method, computer equipment, storage medium and program product, the method includes: deploying a software-defined network cluster, the software-defined network cluster includes multiple cloud hosts equipped with remote direct data access network cards and virtual switches; based on the fusion communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a fusion data communication link, the fusion communication mechanism is used to fuse the kernel network protocol stack of the virtual bridge and the remote direct data access network card; based on the fusion data communication link, transmitting message data between different cloud hosts, the present application transmits message data based on the fusion data communication link, can use the remote direct data access network card, bypass the kernel network protocol stack, reduce CPU overhead, reduce the impact of the host memory protocol stack on network performance, and improve network performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0072] Figure 1 A schematic diagram of an RDMA framework of a communication method in one embodiment;

[0073] Figure 2 A schematic diagram of the SMCR architecture of a communication method in one embodiment;

[0074] Figure 3 A schematic diagram of a general network card usage scenario of a communication method in an embodiment;

[0075] Figure 4 An application environment diagram of a communication method in an embodiment;

[0076] Figure 5 is a flow chart of a communication method in one embodiment;

[0077] Figure 6 A schematic diagram of a communication framework structure of a communication method in an embodiment;

[0078] Figure 7 OVS modification flow diagram of a communication method in one embodiment;

[0079] Figure 8 A schematic diagram of a GID generation process of a communication method in an embodiment;

[0080] Fig. 9 A schematic diagram of a flow chart of VLAN tag processing by an ib_core module of a communication method in one embodiment;

[0081] Fig.10 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0082] In order to make the purpose, technical solutions and advantages of this application clearer, the technical solutions in the embodiments of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0083] It should be understood that in the description of the present application, unless the context clearly requires otherwise, words such as "include", "comprises", and the like throughout the specification should be interpreted as including rather than being exclusive or exhaustive; that is, as including but not limited to.

[0084] It should also be understood that the terms "first", "second", etc. are only used for descriptive purposes and cannot be understood as indicating or implying relative importance. In addition, in the description of this application, unless otherwise specified, "plurality" means two or more.

[0085] It should be noted that the terms "S1", "S2", etc. are only used for the purpose of describing the steps, and do not specifically refer to the order or sequence, nor are they used to limit the present application. They are only for the convenience of describing the method of the present application, and cannot be understood as indicating the order of the steps. In addition, the technical solutions between the various embodiments can be combined with each other, but they must be based on the ability of ordinary technicians in this field to implement them. When the combination of technical solutions is contradictory or cannot be implemented, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection required by the present application.

[0086] In the context of large-scale cloud computing applications, performance issues have always been a widely concerned issue in the industry. Although lossless networks and IB (InfiniBand, a high-performance computing computer network communication standard) technology have been around for some time, and their performance is much better than the existing TCP (Transmission Control Protocol) protocol stack network communication method, this high-performance network has not yet been widely used due to other factors such as its high physical cost and difficulty in application development. For RDMA (Remote Direct Memory Access), its framework is as follows: Figure 1As shown in the figure, for any application, if it uses RDMA to communicate, it will first complete the basic configuration of RDMA through commands. The configuration is completed by issuing commands in user mode, passing through the kernel protocol stack, and completing the configuration of the RDMA network card. The application layer sends and receives messages directly bypassing the kernel, realizing kernel bypass. In order to solve the disadvantage of the user layer directly using the RDMA network card, the existing technology proposes the SMCR solution (a set of kernel protocol stacks that are parallel to the TCP / IP protocol, upward compatible with the socket interface, and use RDMA at the bottom to complete shared memory communication). Its architecture Figure 2 As shown in this architecture, the application layer still uses socket programming (based on the transport layer protocol to implement network transmission of data packets). Figure 2 For example, for applications on two cloud hosts to communicate, before using SMCR communication, the two cloud hosts will confirm whether both ends support SMCR during the TCP handshake phase. If not, they will fall back to TCP for communication. If they do, they will further negotiate SMCR, and after the negotiation is completed, they will perform RDMA communication. If the negotiation fails, they will continue to fall back to the TCP communication mode. Although SMCR can be more compatible with existing applications, it is still greatly restricted on the cloud platform. This is mainly because the cloud platform is hosted by a physical server, but the number of network cards on a physical server is limited. The use of SMCR requires the IP address (Internet Protocol Address) to be configured on the network card, or the bond port (a virtual interface formed by binding multiple physical interfaces together) of the network card. The application scenarios of the cloud platform are complex and there are many networks. When using SMCR, there is a problem of insufficient number of network cards. In addition, in the existing cloud platform environment, a considerable number of servers use OVS bridges as virtual switches inside the server. When the virtual switch communicates externally, it also uses network cards, so the virtual switch will also occupy a small number of network card resources, such as Figure 3 As shown in the figure, three different networks on a cloud host occupy three network cards. Generally, the business network uses more IPs for different functions. Since this application considers the integration of OVS and SMCR, the focus is on the scenario where the network uses the OVS bridge. In the business network, there may be different businesses, such as migration, backup, disaster recovery and many other networks, which use different IP addresses and may also use different VLANs. The kernel protocol stack of the OVS network and the kernel protocol stack of the SMCR are almost unrelated. For applications, SMCR and OVS bridge cannot be used at the same time. In addition, due to the limitation of the number of network cards, in actual business scenarios, the business network on the OVS bridge cannot use SMCR, and therefore cannot use RDMA.

[0087] To solve the above technical problems, the present application provides a communication method, an apparatus, a computer device and a storage medium. By integrating OVS with SMCR, the ports on the OVS bridge can use SMCR, so that the ports on the OVS bridge can use TCP-based communication, and can also use SMCR for RDMA communication, thereby reducing the network delay of the cloud computing platform, increasing the network bandwidth, and improving the performance of the communication network.

[0088] The communication method provided by this application can be applied to Figure 4 In the application environment shown, the terminal 102 communicates with the data processing platform set on the server 104 through the network, wherein the terminal 102 can be but not limited to various personal computers, laptops, smart phones, tablet computers and portable wearable devices, and the server 104 can be implemented by an independent server or a server cluster composed of multiple servers.

[0089] In one embodiment, Figure 5 As shown, a communication method is provided, which is applied to Figure 4 The terminal in is used as an example to illustrate, including the following steps:

[0090] S1: Deploy a software-defined network cluster, wherein the software-defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches.

[0091] It should be noted that a software-defined network cluster refers to a cluster deployed based on the SDN (Software Defined Network) network environment, which includes multiple cloud hosts, on which are installed network cards that support remote direct data access (i.e. physical network cards that support RDMA), virtual switches, cloud management platforms, and other network components (such as network adapters, etc.).

[0092] In some specific implementations, the deployment method of the software defined network cluster includes:

[0093] Deploy a software defined network environment, select a network card that supports a remote direct data access function, and install the network card that supports the remote direct data access function on a cloud host in the software defined network environment, wherein the software defined network environment is an SDN environment, and the network card that supports the remote direct data access function is an RDMA network card;

[0094] Install a virtualization platform in the software defined network environment, and create a virtual switch and its corresponding virtual bridge, wherein the virtual bridge can be an OVS bridge or other virtual bridges;

[0095] The software-defined network cluster is generated based on a cloud host with a virtual switch and its corresponding virtual bridge and remote direct data access network card installed, as well as other related network components, wherein the other related network components may be components such as a network adapter.

[0096] S2: Based on the fusion communication mechanism, adjust the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a fusion data communication link. The fusion communication mechanism is used to fuse the kernel network protocol stack of the virtual bridge and the remote direct data access network card.

[0097] It should be noted that the fusion communication mechanism is used to fuse the kernel network protocol stack of the virtual bridge and the remote direct data access network card. Among them, this application takes the OVS bridge as an example, that is, it fuses the kernel network protocol stack of the OVS bridge and the RDMA network card.

[0098] In some specific implementations, before adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card based on the converged communication mechanism to obtain the converged data communication link, the method further includes:

[0099] Detecting whether a remote direct data access network card and a virtual switch including a virtual bridge are set on a cloud host corresponding to the target Internet Protocol address, wherein the cloud host corresponding to the target Internet Protocol address refers to a physical device corresponding to the IP address;

[0100] In response to detecting that a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address, based on the fusion communication mechanism, the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card is adjusted to obtain a fusion data communication link.

[0101] In some specific implementations, based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain the converged data communication link includes:

[0102] Based on the preset command, a user state port is created in the user state of the virtual bridge, and the configuration information corresponding to the creation of the user state port is written into the database corresponding to the virtual bridge, wherein the preset command refers to the port creation command, and the database corresponding to the virtual bridge refers to the ovsdb database;

[0103] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the configuration information is sent to the kernel state of the operating system, and the corresponding virtual network device is created in the kernel state, wherein the daemon process of the virtual network bridge refers to the vswitchd process, the inter-process communication mechanism refers to the netlink message, and the kernel state of the operating system refers to the kernel state of Linux;

[0104] Further, when a user state port is created in the user state of the virtual bridge based on a preset command, the identification field information and the virtual local area network field information of the remote direct data access network card corresponding to the virtual bridge are added, wherein the identification field information and the virtual local area network field information refer to the br_name and vlan_tag fields respectively;

[0105] In the daemon process of the virtual bridge, based on the inter-process communication mechanism, the identification field information and the virtual LAN field information are sent to the virtual bridge data path layer in the kernel state, and written into the private field of the virtual network device, wherein the virtual bridge data path layer refers to the kernel datapath, and the private field of the virtual network device refers to the net_device private field.

[0106] Specifically, this application is applied to the SDN environment. In the SDN environment, the environment is clustered. Depending on the size of the application scenario, a cluster contains several physical servers to thousands of physical servers. This application takes the business network as an example for explanation. It can actually be applied to the network environment using OVS bridge and supporting SMCR, such as Figure 6 As shown in the figure, OVS switches are deployed on both cloud hosts. When PORT_A and PORT_B (specific ports) on the two cloud hosts communicate, they will pass through the OVS virtual switch and then send and receive through the network card NIC (i.e., RDMA network card). To use RDMA for communication, each communication port must have a GID (globally unique identifier). In the current RDMA communication method, only the device where the IP address is located supports RDMA, and the system can generate a GID. However, the port of the OVS bridge is a virtual port, not an actual physical device. The problem of GID generation needs to be solved. GID is generated by the ib_core module of the kernel. In the ib_core module, it is determined whether the physical device to which the IP address belongs supports RDMA. Because the OVS port does not support RDMA, the process of generating GID in the ib_core module needs to be modified so that it can generate GID. The specific method is as follows:

[0107] For OVS bridge, such as Figure 7As shown in the figure, first, a user-state port, namely ovs-vsctl, is created in the user state through a command (virtual bridge port creation command), and is written to the ovsdb database through ovsdb-sever (virtual bridge database-server). Then, in the vswitchd process (virtual bridge daemon), the netlink message is sent to the kernel state of Linux, and the corresponding virtual network device is created in the kernel state. To generate the GID, the OVS bridge is modified here, and the physical network card (i.e., RDMA network card) and VLAN field used by the OVS bridge are written to the ovsdb database, and then sent to the kernel datapath (virtual bridge data path layer) through the netlink message, and finally written to the private field of the virtual network device.

[0108] In some specific implementations, based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain the converged data communication link further includes:

[0109] In response to detecting an Internet Protocol address configuration request, configuring an Internet Protocol address for the cloud host, that is, configuring an IP address on the Linux host;

[0110] In response to detecting that the Internet Protocol address has been successfully configured, detecting whether the cloud host corresponding to the Internet Protocol address supports a remote direct data access function;

[0111] In response to detecting that the cloud host corresponding to the Internet Protocol address supports the remote direct data access function, a unique identifier corresponding to the virtual bridge port is generated based on the ib_core module.

[0112] In some specific implementations, in response to detecting that the Internet Protocol address has been successfully configured, the method further includes:

[0113] Check whether there is an ib_core module in kernel state;

[0114] In response to detecting that the ib_core module exists in the kernel state, sending a configuration event to the ib_core module;

[0115] When the ib_core module detects the configuration event, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port, which specifically includes:

[0116] Get the name of the virtual bridge port and the configured Internet Protocol address;

[0117] Based on the name of the virtual bridge port and the configured Internet Protocol address, the ib_core module is modified to generate a unique identifier (ie, GID, globally unique identifier) ​​corresponding to the virtual bridge port.

[0118] Specifically, Figure 8 As shown in the figure, it is the process of generating GID. When any IP address is configured on the Linux host port, the ib_core module will be notified through an event. In this module, it is determined whether the device corresponding to the IP address supports RDMA. If it supports RDMA, a GID will be generated to generate a GID for the OVS port. This application modifies the ib_core module. In the above judgment process, since the OVS virtual port does not support RDMA, the network card name carried in the private field of the port is matched here. If the network card supports RDMA, a GID is generated for the port. The OVS port name is d-xxxxx, and the configured IP address is 33.33.33.183. The format of the generated GID is as follows:

[0119] [root@node-82760-73771 ~]# show_gids

[0120] DEVPORTINDEXGIDIPv4VERDEV

[0121] ---------------------------------

[0122] mlx5_110fe80:0000:0000:0000:0e42:a1ff:fe3f:8a21v1sw0001bond

[0123] mlx5_111fe80:0000:0000:0000:0e42:a1ff:fe3f:8a21v2sw0001bond

[0124] mlx5_1120000:0000:0000:0000:0000:ffff:2121:21b733.33.33.183v1d-xxxxx

[0125] mlx5_1130000:0000:0000:0000:0000:ffff:2121:21b733.33.33.183v2d-xxxxx

[0126] mlx5_114fe80:0000:0000:0000:0e42:a1ff:fe3f:8a21v1d-xxxxx

[0127] mlx5_115fe80:0000:0000:0000:0e42:a1ff:fe3f:8a21v2d-xxxxx

[0128] Based on the above process, the GID is generated by modifying the OVS and ib_core modules.

[0129] In some specific implementations, based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain the converged data communication link further includes:

[0130] Based on the smc kernel module in the operating system, read the private fields of the virtual network device;

[0131] Extracting identification field information of the remote direct data access network card based on the private field of the virtual network device;

[0132] Based on the identification field information of the remote direct data access network card, determining the message data sending port of the smc kernel module specifically includes:

[0133] Based on the identification field information of the remote direct data access network card, determining whether the network card corresponding to the virtual bridge port supports the remote direct data access function;

[0134] In response to detecting that the network card corresponding to the virtual bridge port supports the remote direct data access function, the message data sending port of the smc kernel module is adjusted to the network card corresponding to the virtual bridge port.

[0135] Specifically, Fig. 9 As shown in the figure, when the ports on the two cloud hosts communicate, the underlying layer uses the service network port by default. However, the RDMA network card is used at this time. The port needs to be modified to a physical network card at the underlying layer. The smc kernel module of the kernel can be modified to perform this operation. Smc is a kernel module of Linux. The system uses SMCR for RDMA communication, which must pass through the smc kernel module. In the smc kernel module, the service port of OVS is matched and the network card name carried in its port private field is read. If it supports RDMA, its message data sending port is changed to the underlying physical network card, that is, the RDMA network card.

[0136] In the above implementation, by modifying the OVS bridge, ib_core module and smc kernel module, the OVS bridge and the SMCR on the RDMA network card are integrated to enable the service port of the OVS bridge to support RDMA communication, that is, SMCR can be used for RDMA communication, and the message data of the service network port can use RDMA for communication, thereby reducing network latency, increasing network bandwidth, and improving network forwarding efficiency.

[0137] S3: Based on the fused data communication link, the message data between different cloud hosts is transmitted.

[0138] It should be noted that, before transmitting the message data between different cloud hosts based on the fused data communication link, the method further includes:

[0139] In response to detecting that different cloud hosts support a remote direct data access function, transmitting message data between different cloud hosts based on the converged data communication link;

[0140] In response to detecting that the remote direct data access function is not supported between different cloud hosts, the message data between the different cloud hosts is transmitted based on the transmission control protocol.

[0141] Specifically, when the underlying physical network card supports RDMA, the converged data communication link is used to transmit the message data. When the underlying physical network card does not support RDMA, the transmission control protocol (ie, TCP communication) is used to transmit the message data.

[0142] In some specific implementations, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0143] The virtual local area network field information is read from the private field of the virtual network device, and the virtual local area network field information is added and stripped in the ib_core module.

[0144] Specifically, the VLAN issue was not considered after the fusion data communication link was built. For the OVS bridge, its VLAN is placed in the user-state database. After the fusion, the VLAN (virtual local area network) cannot be used directly. However, in the previous modification, this application has also written the VLAN field into the private field of the underlying virtual port. Therefore, it is necessary to further support VLAN communication here, and the ib_core module needs to be modified. When using RDMA for communication, the VLAN tag (ie, the VLAN field) is added and stripped in the ib_core module. At this time, the VLAN tag of the OVS bridge data network port has been written into the private field. When adding and stripping VLAN in the ib_core module, the VLAN tag is read from the private field of the port, and then the VLAN addition and stripping of the RDMA message are completed.

[0145] In the above implementation, for the addition and stripping of VLAN, since the original VLAN tag is in the user state, the present application sends it to the private field of the underlying virtual port through a netlink message, so that the underlying module ib_core can add and strip VLAN tags to complete the support for VLAN communication.

[0146] In some specific implementations, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0147] The message data is segmented and transmitted based on the number of bytes corresponding to the preset maximum transmission unit, wherein the maximum transmission unit refers to MTU, and the method for determining the maximum transmission unit includes:

[0148] Get the number of bytes of the corresponding fields of multiple maximum transmission units;

[0149] Sorting the maximum transmission units according to the number of bytes and in descending order to obtain a sorting result;

[0150] Based on the sorting result, the maximum transmission units corresponding to the two cloud hosts that need to perform message data transmission are negotiated;

[0151] In response to detecting that the negotiation is successful, the maximum transmission unit is defined as a target maximum transmission unit.

[0152] Specifically, the MTU currently used by the RDMA device network card is 256, 512, 1024, 2048, and 4096 bytes, while the network card is generally 1500 bytes. The interaction of the MTU field is increased during the SMCR communication establishment phase, so that its MTU is 1500. In the SMCR interaction phase, the negotiation can be started from the highest field 4096. If the large MTU negotiation is successful, it will not be reduced, otherwise it will be reduced to 2048, and so on, until the negotiation is successful.

[0153] In some specific implementations, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0154] Get the data volume of the message data;

[0155] In response to detecting that the amount of the message data is less than a first preset threshold, determining that the notification interval of the buffer is real-time notification, the buffer being an RDMA buffer;

[0156] In response to detecting that the data volume of the message data is greater than or equal to a first preset threshold, determining the notification interval of the buffer zone to notify according to a preset duration, wherein the preset duration and the first preset threshold can be set according to actual needs.

[0157] Specifically, during RDMA communication, the information is generally determined at the time of initialization, which will also affect performance. In actual communication, it depends on the other end to inform the other end how much buffer is left. This notification is sometimes too slow, resulting in untimely message sending on the local end, affecting performance. Therefore, two notification mechanisms are set. One is when the message data is small, the notification is made directly after the message is received and processed. The other is to notify after a certain buffer is accumulated. That is, when the message data is large, the notification is made after a certain amount is accumulated. The accumulated time is the preset time, and the accumulated amount can be set according to actual needs.

[0158] In some specific implementations, when transmitting message data between different cloud hosts based on the converged data communication link, the method further includes:

[0159] Apply for a shared memory for user state and kernel state to realize direct sharing of user state and kernel network protocol stack.

[0160] Specifically, when using the present application to issue a package, three memory copies are involved. The first is from user state to kernel state, the second is from kernel state to the buffer specified by SMCR, and the third is from the buffer specified by SMCR to the network card. The first buffer can be copied using the IO_URING method to reduce memory copies and thus improve performance. In addition, the first and second steps above can be combined to directly apply for a shared memory for user state and kernel state, and directly share it between user state and SMCR to reduce two copies and improve network data transmission performance.

[0161] In the above implementation, based on the OVS and SMCR fusion method, the service network port on the OVS bridge can use the RDMA network card, bypassing the kernel network protocol stack, reducing CPU overhead, reducing the impact of the cloud host memory protocol stack on network performance, and improving network performance. At the same time, for scenarios where the underlying physical network card does not support RDMA, it defaults to TCP communication, and the traffic of this application can be linux-bond or ovs-bond, and bond makes the network more robust.

[0162] In the above-mentioned communication method, the method includes: deploying a software-defined network cluster, the software-defined network cluster includes multiple cloud hosts equipped with remote direct data access network cards and virtual switches; based on the fusion communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a fusion data communication link, the fusion communication mechanism is used to fuse the kernel network protocol stack of the virtual bridge and the remote direct data access network card; based on the fusion data communication link, transmitting message data between different cloud hosts. The present application transmits message data based on the fused data communication link, can use the remote direct data access network card, bypass the kernel network protocol stack, reduce CPU overhead, reduce the impact of the host memory protocol stack on network performance, and improve network performance.

[0163] It should be understood that although Figure 5-Figure 9 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figure 5-Figure 9 At least part of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least part of the sub-steps or stages of other steps.

[0164] In one embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as follows: Fig.10 As shown. The computer device includes a processor, a memory, a network interface, a display screen and an input device connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a communication method is implemented. The display screen of the computer device can be a liquid crystal display screen or an electronic ink display screen, and the input device of the computer device can be a touch layer covering the display screen, or a key, trackball or touchpad set on the computer device housing, or an external keyboard, touchpad or mouse, etc.

[0165] Those skilled in the art will understand that Fig.10 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0166] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer program:

[0167] S1: deploying a software-defined network cluster, wherein the software-defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches;

[0168] S2: Based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card;

[0169] S3: Based on the fused data communication link, the message data between different cloud hosts is transmitted.

[0170] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0171] Deploy a software defined network environment, select a network card that supports a remote direct data access function, and install the network card that supports a remote direct data access function on a cloud host in the software defined network environment;

[0172] Installing a virtualization platform in the software defined network environment and creating a virtual switch and its corresponding virtual bridge;

[0173] The software-defined network cluster is generated based on a cloud host with a virtual switch and its corresponding virtual bridge and remote direct data access network card installed, as well as other related network components.

[0174] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0175] Detecting whether a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address;

[0176] In response to detecting that a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address, based on the fusion communication mechanism, the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card is adjusted to obtain a fusion data communication link.

[0177] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0178] Based on a preset command, a user state port is created in the user state of the virtual bridge, and configuration information corresponding to the created user state port is written into a database corresponding to the virtual bridge;

[0179] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the configuration information is sent to the kernel state of the operating system, and the corresponding virtual network device is created in the kernel state.

[0180] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0181] When creating a user state port in the user state of the virtual bridge based on a preset command, adding identification field information and virtual local area network field information of the remote direct data access network card corresponding to the virtual bridge;

[0182] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the identification field information and the virtual local area network field information are sent to the virtual network bridge data path layer in the kernel state and written into the private field of the virtual network device.

[0183] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0184] In response to detecting an Internet Protocol address configuration request, configuring an Internet Protocol address for the cloud host;

[0185] In response to detecting that the Internet Protocol address has been successfully configured, detecting whether the cloud host corresponding to the Internet Protocol address supports a remote direct data access function;

[0186] In response to detecting that the cloud host corresponding to the Internet Protocol address supports the remote direct data access function, a unique identifier corresponding to the virtual bridge port is generated based on the ib_core module.

[0187] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0188] Check whether there is an ib_core module in kernel state;

[0189] In response to detecting that the ib_core module exists in the kernel state, a configuration event is sent to the ib_core module.

[0190] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0191] When the ib_core module detects the configuration event, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0192] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0193] Get the name of the virtual bridge port and the configured Internet Protocol address;

[0194] Based on the name of the virtual bridge port and the configured Internet Protocol address, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0195] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0196] Based on the smc kernel module in the operating system, read the private fields of the virtual network device;

[0197] Extracting identification field information of the remote direct data access network card based on the private field of the virtual network device;

[0198] Based on the identification field information of the remote direct data access network card, the message data sending port of the smc kernel module is determined.

[0199] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0200] Based on the identification field information of the remote direct data access network card, determining whether the network card corresponding to the virtual bridge port supports the remote direct data access function;

[0201] In response to detecting that the network card corresponding to the virtual bridge port supports the remote direct data access function, the message data sending port of the smc kernel module is adjusted to the network card corresponding to the virtual bridge port.

[0202] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0203] In response to detecting that different cloud hosts support a remote direct data access function, transmitting message data between different cloud hosts based on the converged data communication link;

[0204] In response to detecting that the remote direct data access function is not supported between different cloud hosts, the message data between the different cloud hosts is transmitted based on the transmission control protocol.

[0205] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0206] The virtual local area network field information is read from the private field of the virtual network device, and the virtual local area network field information is added and stripped in the ib_core module.

[0207] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0208] The message data is transmitted in segments based on the number of bytes corresponding to the preset maximum transmission unit.

[0209] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0210] Get the number of bytes of the corresponding fields of multiple maximum transmission units;

[0211] Sorting the maximum transmission units according to the number of bytes and in descending order to obtain a sorting result;

[0212] Based on the sorting result, the maximum transmission units corresponding to the two cloud hosts that need to perform message data transmission are negotiated;

[0213] In response to detecting that the negotiation is successful, the maximum transmission unit is defined as a target maximum transmission unit.

[0214] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0215] Get the data volume of the message data;

[0216] In response to detecting that the amount of the message data is less than a first preset threshold, determining the notification interval of the buffer zone to be real-time notification;

[0217] In response to detecting that the data volume of the message data is greater than or equal to a first preset threshold, determining the notification interval of the buffer zone to notify according to a preset duration.

[0218] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0219] Apply for a shared memory for user state and kernel state to realize direct sharing of user state and kernel network protocol stack.

[0220] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0221] S1: deploying a software-defined network cluster, wherein the software-defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches;

[0222] S2: Based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card;

[0223] S3: Based on the fused data communication link, the message data between different cloud hosts is transmitted.

[0224] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0225] Deploy a software defined network environment, select a network card that supports a remote direct data access function, and install the network card that supports a remote direct data access function on a cloud host in the software defined network environment;

[0226] Installing a virtualization platform in the software defined network environment and creating a virtual switch and its corresponding virtual bridge;

[0227] The software-defined network cluster is generated based on a cloud host with a virtual switch and its corresponding virtual bridge and remote direct data access network card installed, as well as other related network components.

[0228] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0229] Detecting whether a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address;

[0230] In response to detecting that a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address, based on the fusion communication mechanism, the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card is adjusted to obtain a fusion data communication link.

[0231] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0232] Based on a preset command, a user state port is created in the user state of the virtual bridge, and configuration information corresponding to the created user state port is written into a database corresponding to the virtual bridge;

[0233] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the configuration information is sent to the kernel state of the operating system, and the corresponding virtual network device is created in the kernel state.

[0234] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0235] When creating a user state port in the user state of the virtual bridge based on a preset command, adding identification field information and virtual local area network field information of the remote direct data access network card corresponding to the virtual bridge;

[0236] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the identification field information and the virtual local area network field information are sent to the virtual network bridge data path layer in the kernel state and written into the private field of the virtual network device.

[0237] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0238] In response to detecting an Internet Protocol address configuration request, configuring an Internet Protocol address for the cloud host;

[0239] In response to detecting that the Internet Protocol address has been successfully configured, detecting whether the cloud host corresponding to the Internet Protocol address supports a remote direct data access function;

[0240] In response to detecting that the cloud host corresponding to the Internet Protocol address supports the remote direct data access function, a unique identifier corresponding to the virtual bridge port is generated based on the ib_core module.

[0241] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0242] Check whether there is an ib_core module in kernel state;

[0243] In response to detecting that the ib_core module exists in the kernel state, a configuration event is sent to the ib_core module.

[0244] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0245] When the ib_core module detects the configuration event, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0246] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0247] Get the name of the virtual bridge port and the configured Internet Protocol address;

[0248] Based on the name of the virtual bridge port and the configured Internet Protocol address, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0249] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0250] Based on the smc kernel module in the operating system, read the private fields of the virtual network device;

[0251] Extracting identification field information of the remote direct data access network card based on the private field of the virtual network device;

[0252] Based on the identification field information of the remote direct data access network card, the message data sending port of the smc kernel module is determined.

[0253] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0254] Based on the identification field information of the remote direct data access network card, determining whether the network card corresponding to the virtual bridge port supports the remote direct data access function;

[0255] In response to detecting that the network card corresponding to the virtual bridge port supports the remote direct data access function, the message data sending port of the smc kernel module is adjusted to the network card corresponding to the virtual bridge port.

[0256] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0257] In response to detecting that different cloud hosts support a remote direct data access function, transmitting message data between different cloud hosts based on the converged data communication link;

[0258] In response to detecting that the remote direct data access function is not supported between different cloud hosts, the message data between the different cloud hosts is transmitted based on the transmission control protocol.

[0259] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0260] The virtual local area network field information is read from the private field of the virtual network device, and the virtual local area network field information is added and stripped in the ib_core module.

[0261] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0262] The message data is transmitted in segments based on the number of bytes corresponding to the preset maximum transmission unit.

[0263] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0264] Get the number of bytes of the corresponding fields of multiple maximum transmission units;

[0265] Sorting the maximum transmission units according to the number of bytes and in descending order to obtain a sorting result;

[0266] Based on the sorting result, the maximum transmission units corresponding to the two cloud hosts that need to perform message data transmission are negotiated;

[0267] In response to detecting that the negotiation is successful, the maximum transmission unit is defined as a target maximum transmission unit.

[0268] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0269] Get the data volume of the message data;

[0270] In response to detecting that the amount of the message data is less than a first preset threshold, determining the notification interval of the buffer zone to be real-time notification;

[0271] In response to detecting that the data volume of the message data is greater than or equal to a first preset threshold, determining the notification interval of the buffer zone to notify according to a preset duration.

[0272] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0273] Apply for a shared memory for user state and kernel state to realize direct sharing of user state and kernel network protocol stack.

[0274] In one embodiment, a computer program product is provided, the computer program product comprising a computer program, the computer program when executed by a processor implements the following steps:

[0275] S1: deploying a software-defined network cluster, wherein the software-defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches;

[0276] S2: Based on the converged communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card;

[0277] S3: Based on the fused data communication link, the message data between different cloud hosts is transmitted.

[0278] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0279] Deploy a software defined network environment, select a network card that supports a remote direct data access function, and install the network card that supports a remote direct data access function on a cloud host in the software defined network environment;

[0280] Installing a virtualization platform in the software defined network environment and creating a virtual switch and its corresponding virtual bridge;

[0281] The software-defined network cluster is generated based on a cloud host with a virtual switch and its corresponding virtual bridge and remote direct data access network card installed, as well as other related network components.

[0282] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0283] Detecting whether a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address;

[0284] In response to detecting that a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address, based on the fusion communication mechanism, the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card is adjusted to obtain a fusion data communication link.

[0285] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0286] Based on a preset command, a user state port is created in the user state of the virtual bridge, and configuration information corresponding to the created user state port is written into a database corresponding to the virtual bridge;

[0287] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the configuration information is sent to the kernel state of the operating system, and the corresponding virtual network device is created in the kernel state.

[0288] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0289] When creating a user state port in the user state of the virtual bridge based on a preset command, adding identification field information and virtual local area network field information of the remote direct data access network card corresponding to the virtual bridge;

[0290] In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the identification field information and the virtual local area network field information are sent to the virtual network bridge data path layer in the kernel state and written into the private field of the virtual network device.

[0291] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0292] In response to detecting an Internet Protocol address configuration request, configuring an Internet Protocol address for the cloud host;

[0293] In response to detecting that the Internet Protocol address has been successfully configured, detecting whether the cloud host corresponding to the Internet Protocol address supports a remote direct data access function;

[0294] In response to detecting that the cloud host corresponding to the Internet Protocol address supports the remote direct data access function, a unique identifier corresponding to the virtual bridge port is generated based on the ib_core module.

[0295] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0296] Check whether there is an ib_core module in kernel state;

[0297] In response to detecting that the ib_core module exists in the kernel state, a configuration event is sent to the ib_core module.

[0298] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0299] When the ib_core module detects the configuration event, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0300] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0301] Get the name of the virtual bridge port and the configured Internet Protocol address;

[0302] Based on the name of the virtual bridge port and the configured Internet Protocol address, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

[0303] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0304] Based on the smc kernel module in the operating system, read the private fields of the virtual network device;

[0305] Extracting identification field information of the remote direct data access network card based on the private field of the virtual network device;

[0306] Based on the identification field information of the remote direct data access network card, the message data sending port of the smc kernel module is determined.

[0307] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0308] Based on the identification field information of the remote direct data access network card, determining whether the network card corresponding to the virtual bridge port supports the remote direct data access function;

[0309] In response to detecting that the network card corresponding to the virtual bridge port supports the remote direct data access function, the message data sending port of the smc kernel module is adjusted to the network card corresponding to the virtual bridge port.

[0310] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0311] In response to detecting that different cloud hosts support a remote direct data access function, transmitting message data between different cloud hosts based on the converged data communication link;

[0312] In response to detecting that the remote direct data access function is not supported between different cloud hosts, the message data between the different cloud hosts is transmitted based on the transmission control protocol.

[0313] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0314] The virtual local area network field information is read from the private field of the virtual network device, and the virtual local area network field information is added and stripped in the ib_core module.

[0315] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0316] The message data is transmitted in segments based on the number of bytes corresponding to the preset maximum transmission unit.

[0317] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0318] Get the number of bytes of the corresponding fields of multiple maximum transmission units;

[0319] Sorting the maximum transmission units according to the number of bytes and in descending order to obtain a sorting result;

[0320] Based on the sorting result, the maximum transmission units corresponding to the two cloud hosts that need to perform message data transmission are negotiated;

[0321] In response to detecting that the negotiation is successful, the maximum transmission unit is defined as a target maximum transmission unit.

[0322] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0323] Get the data volume of the message data;

[0324] In response to detecting that the amount of the message data is less than a first preset threshold, determining the notification interval of the buffer zone to be real-time notification;

[0325] In response to detecting that the data volume of the message data is greater than or equal to a first preset threshold, determining the notification interval of the buffer zone to notify according to a preset duration.

[0326] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0327] Apply for a shared memory for user state and kernel state to realize direct sharing of user state and kernel network protocol stack.

[0328] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be implemented by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application may include non-volatile and / or volatile memory. Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory may include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

[0329] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0330] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for ordinary technicians in this field, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application.

Claims

1. A communication method, characterized in that: The method comprises: Deploy a software defined network cluster, wherein the software defined network cluster includes a plurality of cloud hosts provided with remote direct data access network cards and virtual switches; Based on the converged communication mechanism, a data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card is adjusted to obtain a converged data communication link, wherein the converged communication mechanism is used to converge the kernel network protocol stack of the virtual bridge and the remote direct data access network card, including: Based on a preset command, a user state port is created in the user state of the virtual bridge, and configuration information corresponding to the created user state port is written into a database corresponding to the virtual bridge, wherein the configuration information at least includes identification field information and virtual local area network field information of the remote direct data access network card corresponding to the added virtual bridge; In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the configuration information is sent to the kernel state of the operating system, a corresponding virtual network device is created in the kernel state, the identification field information and the virtual local area network field information are sent to the virtual network bridge data path layer in the kernel state, and written into the private field of the virtual network device; In response to detecting an Internet Protocol address configuration request, configuring an Internet Protocol address for the cloud host; in response to detecting that the Internet Protocol address has been successfully configured and the cloud host corresponding to the Internet Protocol address supports a remote direct data access function, generating a unique identifier corresponding to the virtual bridge port based on the ib_core module; Based on the fused data communication link, message data between different cloud hosts is transmitted.

2. The communication method according to claim 1, characterized in that: The deployment methods of software-defined network clusters include: Deploy a software defined network environment, select a network card that supports a remote direct data access function, and install the network card that supports a remote direct data access function on a cloud host in the software defined network environment; Installing a virtualization platform in the software defined network environment and creating a virtual switch and its corresponding virtual bridge; The software-defined network cluster is generated based on a cloud host with a virtual switch and its corresponding virtual bridge and remote direct data access network card installed, as well as other related network components.

3. The communication method according to claim 1, characterized in that: Before adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card based on the converged communication mechanism to obtain the converged data communication link, the method further includes: Detecting whether a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address; In response to detecting that a remote direct data access network card and a virtual switch including a virtual bridge are set on the cloud host corresponding to the target Internet Protocol address, based on the fusion communication mechanism, the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card is adjusted to obtain a fusion data communication link.

4. The communication method according to claim 1, characterized in that: The method further comprises: When creating a user state port in the user state of the virtual bridge based on a preset command, adding identification field information and virtual local area network field information of the remote direct data access network card corresponding to the virtual bridge; In the daemon process of the virtual network bridge, based on the inter-process communication mechanism, the identification field information and the virtual local area network field information are sent to the virtual network bridge data path layer in the kernel state and written into the private field of the virtual network device.

5. The communication method according to claim 1, characterized in that: In response to detecting that the Internet Protocol address has been successfully configured, the method further includes: Check whether there is an ib_core module in kernel state; In response to detecting that the ib_core module exists in the kernel state, a configuration event is sent to the ib_core module.

6. The communication method according to claim 5, characterized in that: After sending the configuration event to the ib_core module, the method further includes: When the ib_core module detects the configuration event, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

7. The communication method according to claim 6, characterized in that: Modifying the ib_core module to generate a unique identifier corresponding to the virtual bridge port includes: Get the name of the virtual bridge port and the configured Internet Protocol address; Based on the name of the virtual bridge port and the configured Internet Protocol address, the ib_core module is modified to generate a unique identifier corresponding to the virtual bridge port.

8. The communication method according to claim 1, characterized in that: Based on the fusion communication mechanism, adjusting the data communication link between the virtual bridge corresponding to the virtual switch and the remote direct data access network card, and obtaining the fusion data communication link includes: Based on the smc kernel module in the operating system, read the private fields of the virtual network device; Extracting identification field information of the remote direct data access network card based on the private field of the virtual network device; Based on the identification field information of the remote direct data access network card, the message data sending port of the smc kernel module is determined.

9. The communication method according to claim 8, characterized in that: Determining the message data sending port of the smc kernel module based on the identification field information of the remote direct data access network card includes: Based on the identification field information of the remote direct data access network card, determining whether the network card corresponding to the virtual bridge port supports the remote direct data access function; In response to detecting that the network card corresponding to the virtual bridge port supports the remote direct data access function, the message data sending port of the smc kernel module is adjusted to the network card corresponding to the virtual bridge port.

10. The communication method according to claim 1, characterized in that: Before transmitting the message data between different cloud hosts based on the fused data communication link, the method further includes: In response to detecting that different cloud hosts support a remote direct data access function, transmitting message data between different cloud hosts based on the converged data communication link; In response to detecting that the remote direct data access function is not supported between different cloud hosts, the message data between the different cloud hosts is transmitted based on the transmission control protocol.

11. The communication method according to claim 1, characterized in that: When transmitting message data between different cloud hosts based on the fused data communication link, the method further includes: The virtual local area network field information is read from the private field of the virtual network device, and the virtual local area network field information is added and stripped in the ib_core module.

12. The communication method according to claim 1, characterized in that: When transmitting message data between different cloud hosts based on the fused data communication link, the method further includes: The message data is transmitted in segments based on the number of bytes corresponding to the preset maximum transmission unit.

13. The communication method according to claim 12, characterized in that: The method for determining the maximum transmission unit includes: Get the number of bytes of the corresponding fields of multiple maximum transmission units; Sorting the maximum transmission units according to the number of bytes and in descending order to obtain a sorting result; Based on the sorting result, the maximum transmission units corresponding to the two cloud hosts that need to perform message data transmission are negotiated; In response to detecting that the negotiation is successful, the maximum transmission unit is defined as a target maximum transmission unit.

14. The communication method according to claim 1, characterized in that: When transmitting message data between different cloud hosts based on the fused data communication link, the method further includes: Get the data volume of the message data; In response to detecting that the amount of the message data is less than a first preset threshold, determining the notification interval of the buffer zone to be real-time notification; In response to detecting that the data volume of the message data is greater than or equal to a first preset threshold, determining the notification interval of the buffer zone to notify according to a preset duration.

15. The communication method according to claim 1, characterized in that: When transmitting message data between different cloud hosts based on the fused data communication link, the method further includes: Apply for a shared memory for user state and kernel state to realize direct sharing of user state and kernel network protocol stack.

16. A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the method according to any one of claims 1 to 15 is implemented.

17. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 15 is implemented.

18. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 15 is implemented.

Citation Information

Patent Citations

  • Method and device for upgrading para-virtualized network card kernel acceleration module

    CN106250166A

  • Data forwarding method of virtual switch based on hybrid virtual network bridge and device thereof

    CN112769716A