Method for determining network performance of cluster, system, medium, device and product
By running a probe program on the network device side of the high-performance computing cluster, the network card IP address is automatically obtained and associated with static routes, which solves the problems of complex configuration management and security risks, realizes efficient network performance detection and fault discovery, and improves the protection capability and scalability of the cluster.
Patent Information
- Application Number
- PCT/CN2025/079591
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-20
- Filing Date
- 2025-02-27
- Publication Date
- 2025-12-26
AI Technical Summary
Existing technologies for network performance probing in high-performance computing clusters suffer from complex configuration management, resulting in low probing efficiency and security risks, especially as the cluster size increases.
Run a probe program on the network device side of the computing cluster to automatically obtain the network card IP address and associate it with static routes. Pass probe data packets through static routes to directly determine the network card's network performance, avoiding reliance on additional probe machines and ACL configurations.
It improves the efficiency of network performance detection, reduces manual configuration errors, enhances the protection and security of the cluster, is easy to expand, and can detect network faults in a timely manner.
Smart Images

Figure CN2025079591_26122025_PF_FP_ABST
Abstract
Description
Methods, systems, media, equipment, and products for determining the network performance of a cluster.
[0001] Priority information
[0002] This application claims priority to Chinese Patent Application No. 2024108052455, filed on June 20, 2024, entitled “Network Detection Method, Apparatus, System, Medium, Device and Program Product”, the entire contents of which are incorporated herein by reference. Technical Field
[0003] This application relates to the field of cloud computing technology, and in particular to a method for determining the network performance of a computing cluster, an apparatus for determining the network performance of a computing cluster, a system for determining the network performance of a computing cluster, a computer-readable storage medium, an electronic device, and a computer program product. Background Technology
[0004] A high-performance computing (HPC) cluster is a system that connects a large number of computing resources (such as processors, storage devices, and network devices) through high-speed interconnect technology to collaboratively perform computationally intensive tasks. HPC clusters provide users with powerful computing capabilities, serving fields such as artificial intelligence, big data processing, scientific computing, engineering simulation, and data analysis. Network performance probing within a HPC cluster is a crucial component for maintaining and optimizing cluster performance and ensuring a positive user experience.
[0005] The network performance determination schemes provided by related technologies for computing clusters require separate application for Internet Protocol (IP) addresses for the probe machines. Furthermore, to ensure the probe machines can perform the probe process correctly, their IP addresses must be added to the access control lists (ACLs) of the switches within the cluster. However, these technologies suffer from complex configuration management, which hinders the improvement of efficiency in probing network performance. Summary of the Invention
[0006] This application provides a method, apparatus, system, computer-readable storage medium, electronic device, and computer program product for determining the network performance of a computing cluster, which has high network performance detection efficiency.
[0007] In a first aspect, this application provides a method for determining the network performance of a computing cluster, applied to network devices in the computing cluster. The method includes: the network device obtaining the Internet Protocol (IP) addresses of network interface cards (NICs) of nodes in the computing cluster to obtain an IP address list, wherein the IP address list contains N IP addresses corresponding to N NICs, each node is equipped with one or more NICs, and the node to which the i-th NIC belongs is configured with an i-th static route to a probe network segment, where N is a positive integer and i is a positive integer not greater than N; the network device sending a probe data packet to the node to which the i-th NIC belongs based on the i-th IP address, to transmit the probe data packet based on the i-th static route; and the network device determining the network performance probe result corresponding to the i-th NIC based on the transmission result of the probe data packet.
[0008] In an exemplary embodiment, based on the above scheme, the node to which the i-th network interface card (NIC) belongs contains at least two NICs; the network device sends a probe data packet to the node to which the i-th NIC belongs based on the i-th IP address to transmit the probe data packet based on the i-th static route, including: when the reverse route check is disabled in the node to which the i-th NIC belongs, or when the reverse route check is in a lenient mode in the node to which the i-th NIC belongs, the network device sends a probe data packet to the node to which the i-th NIC belongs based on the i-th IP address to transmit the probe data packet based on the i-th static route.
[0009] In an exemplary embodiment, based on the above scheme, before the network device obtains the Internet Protocol (IP) address of the network card of the node in the computing cluster, the method further includes: when the node to which the i-th network card belongs starts up, sending a first message through the i-th network card, so that the Dynamic Host Configuration Protocol (DHCP) server receiving the first message generates a second message in response to the first message, wherein the i-th static route points to the probe network segment; the node to which the i-th network card belongs receives the second message, wherein the second message includes the i-th IP address and the i-th static route.
[0010] In an exemplary embodiment, based on the above scheme, the method further includes: aggregating the IP addresses of all network cards set on the nodes in the computing cluster and the status information of the nodes to which each network card belongs through a cloud virtual machine;
[0011] The network device obtains the IP addresses of the network cards of the nodes in the computing cluster to obtain an IP address list, including: the network device obtaining the status information of the nodes to which all network cards belong and the IP addresses of all network cards from the cloud virtual machine through the cloud control application programming interface (API), and filtering out the target nodes that are running based on the status information; and the network device filtering out the IP addresses of the network cards in the target nodes from the IP addresses of all network cards to obtain an IP address list.
[0012] In an exemplary embodiment, based on the above scheme, the network device provides a probe interface to the outside world; the network device sends probe data packets to the node to which the i-th network card belongs based on the i-th IP address, including: triggering the controller of the network device to send probe data packets to the node to which the i-th network card belongs based on the i-th IP address by calling the probe interface of the network device.
[0013] In an exemplary embodiment, based on the above scheme, after determining the network performance detection result corresponding to the i-th network card according to the transmission result of the probe data packet, the method further includes: the network device sending the network performance detection result corresponding to the i-th network card to the probe server through the probe interface.
[0014] In an exemplary embodiment, based on the above scheme, determining the network performance detection result corresponding to the i-th network interface card (NIC) according to the transmission result of the probe data packet includes: if the network device receives the probe data packet, determining a first detection result corresponding to the i-th NIC based on the transmission duration of the probe data packet, wherein the first detection result includes latency information corresponding to the i-th NIC; and if the network device does not receive the probe data packet, determining a second detection result corresponding to the i-th NIC, wherein the second detection result includes packet loss issues with the i-th NIC.
[0015] In an exemplary embodiment, based on the above scheme, the computing cluster is a high-performance computing cluster interconnected via Remote Direct Memory Access (RDMA).
[0016] Secondly, this application provides a system for determining the network performance of a computing cluster. The system includes network devices in the computing cluster, used to obtain the Internet Protocol (IP) addresses of the network interface cards (NICs) of nodes in the computing cluster, resulting in an IP address list. The IP address list contains N IP addresses corresponding to each of the N NICs. Each node is equipped with one or more NICs, and the node to which the i-th NIC belongs is configured with an i-th static route to a probe network segment. N is a positive integer, and i is a positive integer not greater than N. The network devices are used to send probe data packets to the node to which the i-th NIC belongs based on the i-th IP address, transmitting the probe data packets based on the i-th static route. The network devices are used to determine the network performance probe result corresponding to the i-th NIC based on the transmission result of the probe data packets.
[0017] The node to which the i-th network card belongs is used to send a data acquisition request to the Dynamic Host Configuration Protocol (DHCP) service so that the DHCP service can determine the i-th IP address and the i-th static route, wherein the i-th static route points to the probe network segment; and is used to receive the i-th IP address and the i-th static route sent by the DHCP server.
[0018] In an exemplary embodiment, based on the above scheme, the network device provides a probe interface to the outside world; wherein, when called by the probed container, the probe interface is used to trigger the controller of the network device to send probe data packets to the node to which the i-th network card belongs based on the i-th IP address; the probe interface is also used to send the network performance probe results corresponding to the i-th network card to the probe server.
[0019] In an exemplary embodiment, based on the above scheme, the node to which the i-th network interface card (NIC) belongs contains at least two NICs; when the reverse routing check in the node to which the i-th NIC belongs is in a disabled state or in a lenient mode, the network device sends a probe data packet to the node to which the i-th NIC belongs based on the i-th IP address.
[0020] Thirdly, this application provides a device for determining the network performance of a computing cluster. The device includes: an acquisition module, a first sending module, and a determination module. The acquisition module is used to acquire the Internet Protocol (IP) addresses of the network interface cards (NICs) of nodes in the computing cluster, obtaining an IP address list. The IP address list contains N IP addresses corresponding to N NICs. Each node has one or more NICs, and the node to which the i-th NIC belongs is configured with an i-th static route to the probe network segment. N is a positive integer, and i is a positive integer not greater than N. The sending module is used to send probe data packets to the node to which the i-th NIC belongs based on the i-th IP address, transmitting the probe data packets based on the i-th static route. The determination module is used to determine the network performance probe result corresponding to the i-th NIC based on the transmission result of the probe data packets.
[0021] In an exemplary embodiment, based on the above scheme, the node to which the i-th network card belongs contains at least two network cards; the first sending module is specifically used to: when the reverse route check is disabled in the node to which the i-th network card belongs, or when the reverse route check is in a relaxed mode in the node to which the i-th network card belongs, the network device sends a probe data packet to the node to which the i-th network card belongs based on the i-th IP address, so as to transmit the probe data packet based on the i-th static route.
[0022] In an exemplary embodiment, based on the above scheme, the network performance determination device of the computing cluster further includes: a second sending module and a receiving module; the second sending module is configured to: before the acquisition module acquires the Internet Protocol IP address of the network card of the node in the computing cluster through the network device, when the node to which the i-th network card belongs starts up, send a first message through the i-th network card, so that the DHCP server receiving the first message generates a second message in response to the first message, wherein the i-th static route points to the probe network segment; the receiving module is configured to: receive the second message through the node to which the i-th network card belongs, wherein the second message includes the i-th IP address and the i-th static route.
[0023] In an exemplary embodiment, based on the above scheme, the device for determining the network performance of the computing cluster further includes: a summarization module:
[0024] The aggregation module is used to: aggregate the IP addresses of all network cards set in the nodes of the computing cluster and the status information of the nodes to which each network card belongs through the cloud virtual machine;
[0025] The acquisition module includes an acquisition submodule and a filtering submodule. The acquisition submodule is used to: acquire the status information of the nodes to which all network cards belong and the IP addresses of all network cards from the cloud virtual machine through the network device based on the cloud control application programming interface (API), and filter out the target nodes that are running based on the status information. The filtering submodule is used to: filter out the IP addresses of the network cards in the target nodes from the IP addresses of all network cards through the network device to obtain an IP address list.
[0026] In an exemplary embodiment, based on the above scheme, the network device provides a probe interface to the outside world; the first sending module is specifically used to: trigger the controller of the network device to send a probe data packet to the node to which the i-th network card belongs based on the i-th IP address by calling the probe interface of the network device.
[0027] In an exemplary embodiment, based on the above scheme, the device for determining the network performance of the computing cluster further includes: a third sending module:
[0028] The third sending module is used to send the network performance detection result of the i-th network card to the detection server through the detection interface via the network device after the determining module determines the network performance detection result of the i-th network card based on the transmission result of the detection data packet.
[0029] In an exemplary embodiment, based on the above scheme, the determining module is specifically used to: when the transmission result of the probe data packet is that the network device receives the probe data packet, determine a first detection result corresponding to the i-th network card based on the transmission duration of the probe data packet, wherein the first detection result includes latency information corresponding to the i-th network card; or, when the transmission result of the probe data packet is that the network device does not receive the probe data packet, determine a second detection result corresponding to the i-th network card, wherein the second detection result includes packet loss issues with the i-th network card.
[0030] In an exemplary embodiment, based on the above scheme, the computing cluster is a high-performance computing cluster interconnected via Remote Direct Memory Access (RDMA).
[0031] Fourthly, an electronic device is provided, including a processor and a memory. The memory stores a computer program, and the processor invokes and runs the computer program stored in the memory to perform the method for determining the network performance of a computing cluster as described in the first aspect or its various implementations.
[0032] Fifthly, a chip is provided for implementing the methods of any one of the first aspects or their implementations described above. Specifically, the chip includes a processor for retrieving and running a computer program from a memory, causing a device equipped with the chip to execute the method for determining the network performance of a computing cluster as described in the first aspect or its implementations described above.
[0033] In a sixth aspect, a computer-readable storage medium is provided for storing a computer program that causes a computer to execute the method for determining the network performance of a computing cluster as described in the first aspect or its various implementations.
[0034] In a seventh aspect, a computer program product is provided, including computer program instructions that cause a computer to execute the method for determining the network performance of a computing cluster as described in the first aspect or its implementations.
[0035] Eighthly, a computer program is provided that, when run on a computer, causes the computer to perform the method for determining the network performance of the computing cluster described in the first aspect or its various implementations.
[0036] In summary, the solution provided in this application embodiment runs a probe program on the network device side of the computing cluster, thereby collecting the IP addresses of the network cards of the nodes in the computing cluster through the network device, obtaining a list containing N IP addresses. The node to which the i-th network card belongs is configured with the i-th static route to the probe network segment. For example, the node to which network card a belongs on a node in the computing cluster is configured with a static route corresponding to network card a that leads to the probe network segment. It is evident that in this application embodiment, the network device can automatically obtain the IP addresses of the network cards in the computing cluster to form an IP address list, simplifying the preparation work for probing the network performance of the computing cluster. Furthermore, the IP addresses are automatically associated with the corresponding static routes, reducing the risk of manual configuration errors. Further, the network device can send probe data packets to the node to which the corresponding network card belongs based on the i-th IP address, and then transmit the probe data packets based on the i-th static route corresponding to that IP address. Based on the transmission result of the probe data packets, the network performance probe result corresponding to the i-th network card can be determined. As can be seen, the solution provided in this application does not rely on additional probe machines, and therefore does not require adding the probe machine's IP address to the ACL's allow rules within the cluster. Consequently, there is no configuration management regarding the probe machine's IP address, resulting in high detection efficiency and timely discovery of network faults in the cluster, thus improving the cluster's protection capabilities. Furthermore, this application avoids the security risks associated with adding the probe machine's IP address to the ACL, enhancing cluster security. Additionally, as the cluster size increases, this application only requires configuring corresponding static routes on newly added nodes, making it easily expandable and scalable. Attached Figure Description
[0037] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0038] Figure 1 is a schematic diagram of the system architecture of a network performance detection scheme for computing clusters provided by a related technology of this application;
[0039] Figure 2 is a flowchart illustrating the method for determining the network performance of a computing cluster provided by a related technology of this application;
[0040] Figure 3 is a schematic diagram of a system architecture for determining the network performance of a computing cluster according to an embodiment of this application;
[0041] Figure 4 is a flowchart illustrating a method for determining the network performance of a computing cluster according to an embodiment of this application;
[0042] Figure 5 is a schematic diagram of node X obtaining the IP addresses of its various network cards and the corresponding static routes according to an embodiment of this application;
[0043] Figure 6 is a schematic diagram of information interaction in a method for determining the network performance of a computing cluster according to an embodiment of this application;
[0044] Figure 7 is a flowchart illustrating a method for determining the network performance of a computing cluster according to an embodiment of this application;
[0045] Figure 8 is a schematic diagram of the structure of a device for determining the network performance of a computing cluster according to an embodiment of this application;
[0046] Figure 9 is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0047] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.
[0048] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in sequences other than those illustrated or described herein. In embodiments of this application, "B corresponding to A" means that B is associated with A. In one implementation, B can be determined based on A. However, it should also be understood that determining B based on A does not mean determining B solely based on A; B can also be determined based on A and / or other information. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or server that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to these processes, methods, products, or devices. In the description of this application, unless otherwise stated, "a plurality of" means two or more.
[0049] In this application, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.
[0050] A High Performance Computing (HPC) cluster is a system that connects a large number of computing resources (processors, storage devices, network devices, etc.) through high-speed interconnect technology to collaboratively perform computationally intensive tasks. HPC clusters provide users with powerful computing capabilities, such as parallel computing services. Specifically, HPC clusters, through parallel computing technology, can handle a large number of computing tasks simultaneously, which helps accelerate computing speed. They can also provide users with large-scale storage and data management services. Specifically, HPC clusters are typically equipped with high-performance storage systems, including high-speed caches and parallel file systems, which can efficiently store and manage large amounts of data and support fast data read and write operations. It is important to note that probing the network performance within a high-performance computing cluster is a crucial component of maintaining and optimizing cluster performance and ensuring a good user experience.
[0051] Figure 1 is a schematic diagram of the system architecture for determining the network performance of a computing cluster provided by a related technology of this application. Referring to Figure 1, the HPC cluster is divided into N (an integer greater than 1) sub-clusters, such as HPC sub-cluster 1, HPC sub-cluster 2, ..., HPC sub-cluster N. On the one hand, dividing the HPC cluster into multiple sub-clusters helps to isolate different workloads and user groups, thereby improving the security and stability of the system, while ensuring that a problem in one sub-cluster will not affect the operation of other sub-clusters. On the other hand, dividing the HPC cluster into multiple sub-clusters facilitates more effective management and resource allocation of the HPC cluster. Each sub-cluster can be optimized according to its specific workload requirements, such as memory, central processing unit (CPU), and storage.
[0052] Figure 2 is a flowchart illustrating a method for determining the network performance of a computing cluster provided by a related technology of this application. Referring to Figure 2, the flowchart of the method for determining the network performance of a computing cluster provided by the related technology includes:
[0053] S201 sends the first request to generate a child machine to the Cloud Virtual Machine (CVM) through the console of the computing cluster.
[0054] CVM instances allow users to quickly increase or decrease computing resources based on their computing needs. In a cloud environment, users can dynamically adjust resources according to their workload, automatically increasing the number of CVM instances during peak computing demand and decreasing the number of CVM instances during off-peak demand, thus achieving optimal resource utilization.
[0055] In S201, the process of generating a child machine is initiated by sending a first request to the CVM. An example scenario could occur when a new child machine is added to a sub-cluster.
[0056] S211, CVM sends a second request to the High Performance Network (HPN) controller to assign an IP address to the generated submachine. S212, after generating the new submachine's IP address, the HPN controller returns a response to the second request to CVM.
[0057] For example, the HPN controller can be responsible for the distribution and management of policies in a Remote Direct Memory Access (RDMA) network environment, playing the role of the control plane access layer.
[0058] For example, the HPN controller dynamically assigns IP addresses to new slave nodes.
[0059] In S221, the HPN controller sends an ACL to the switch controller. In S222, the switch controller returns the relevant results to the HPN controller.
[0060] For example, at this stage, the HPN controller formulates network isolation policies based on specified ports and sends ACLs to the switch controller to ensure network isolation between the current sub-cluster and other sub-clusters.
[0061] S231, the HPN controller sends a third request to the cloud probe server to notify it to assign an IP address to the probe. S222, upon receiving the notification, the cloud probe server returns a response to the third request to the HPN controller.
[0062] For example, to ensure the cloud detection system can quickly identify and begin detecting newly added slave machines, the HPN controller can send a request to the cloud detection service via an Application Programming Interface (API) call or other communication methods, informing it of the newly assigned IP address and related node information. For example, upon receiving the third request, the cloud detection service configures corresponding detection items for the new IP address according to a preset strategy or template, in order to obtain the new node's operating status and resource usage in a timely manner.
[0063] In S241, the HPN controller sends a fourth request to the switch controller to add the probe's IP address to the allowed rule in the cluster's ACL. This adds the probe's IP address to the switch controller's Access Control List (ACL), making it part of the allowed rule. This means the probe can now access the network of the submachines in the compute cluster. In S242, after adding the probe's IP address to the allowed rule in the cluster's ACL, the switch controller returns a response to the HPN controller regarding the fourth request. In S243, the HPN controller returns the aforementioned response to the fourth request to the compute cluster's console. Thus, the probe, using its authorized IP address, can attempt to connect to the network of the submachines in the compute cluster to check network status.
[0064] In S202, the CVM returns a response to the computing cluster's console regarding the first request. For example, the creation of the new submachine is considered complete after the probe machine is able to probe network performance within the current cluster.
[0065] As can be seen, to achieve network probing within a cluster, the relevant technologies require deploying a probe machine for each sub-cluster to probe the network within its respective sub-cluster. Referring to Figure 1, probe machine 1 is configured for HPC sub-cluster 1, probe machine N is configured for HPC sub-cluster N, and so on. For each probe machine, an IP address needs to be separately requested. Furthermore, to ensure that the probe machine can perform the probing process normally, its IP address also needs to be added to the ACL (Access Control List) rules within the cluster.
[0066] However, the network performance determination scheme for computing clusters based on the related technologies shown in Figure 2 has the following technical problems. On the one hand, to ensure data security and tenant privacy, there are network isolation policies between different sub-clusters, which means that different sub-clusters need to use different probe machines, and probe machine resources cannot be reused. This leads to an increase in the number of probe machines and increased resource consumption. On the other hand, since the probe machine IP address needs to be allowed by ACL on the switch side, the probe machine IP must remain unchanged when the machine needs to be replaced after a probe machine failure. At the same time, HPC cluster nodes usually have high bandwidth requirements, so more switch ports are needed for data transmission. This not only means more switch resources, but also means that each port needs to be configured and managed separately, which increases the configuration complexity and is not conducive to improving the efficiency of network performance probing. In addition, referring to Figure 2, after issuing the switch ACL isolation policy, requesting the probe machine IP from the cloud probe and adding it to the allow rule of the switch ACL not only increases the complexity of the process, but may also lead to security vulnerabilities.
[0067] This application embodiment solves the aforementioned technical problems existing in related technologies. Specifically, a probe program runs on the network device side of the computing cluster, thereby obtaining the IP addresses of the network cards in the computing cluster through the network device, and obtaining an IP address list containing N IP addresses corresponding to the aforementioned network cards; wherein, the aforementioned node is equipped with one or more of the aforementioned network cards, and the node to which the i-th network card belongs is configured with the i-th static route to the probe network segment, for example, the node to which network card a belongs is configured with a static route from network card a to the probe network segment. It can be seen that in this application embodiment, the network device can automatically obtain the IP addresses of the network cards to form an IP address list, simplifying the preparation work before probe, and the IP addresses are automatically associated with the corresponding static routes, reducing the risk of manual configuration errors. Further, the aforementioned network device can send probe data packets to the node to which the corresponding network card belongs based on the i-th IP address, and then transmit the probe data packets based on the i-th static route corresponding to the IP address; then, based on the transmission result of the probe data packets, the network performance probe result corresponding to the i-th network card is determined. As can be seen, the solution provided in this application does not rely on additional probe machines, and therefore there is no need to add the IP address of the probe machine to the allow rules of the ACL within the cluster. Thus, there is no configuration management of the probe machine's IP address. Consequently, the solution provided in this application has high detection efficiency and can promptly detect network faults in the cluster, which is beneficial to improving the cluster's protection capabilities.
[0068] Meanwhile, this embodiment avoids the security risks caused by adding the probe machine's IP address to the ACL, thus improving cluster security. Furthermore, as the cluster size increases, this embodiment only requires configuring the corresponding static routes on newly added nodes, making it easily expandable and scalable.
[0069] The exemplary system architecture of the embodiments of this application is described below with reference to Figure 3.
[0070] For example, Figure 3 is a schematic diagram of the architecture of a computing cluster network performance determination system 300 provided in an embodiment of this application. As shown in Figure 3, the system architecture 300 of this embodiment may include: network devices 311-318 and network devices 321-328, and nodes 331-33M, where M represents a positive integer. These nodes may include computing nodes and management nodes in the computing cluster; this embodiment does not limit the type of nodes. The network devices are responsible for forwarding data packets between different nodes within the computing cluster and are the foundation for connecting the various nodes.
[0071] For example, network devices and nodes can be connected via a network, as can nodes with each other. This network can be a wired communication link, a wireless communication link, or a fiber optic cable, etc., and this application embodiment does not impose any limitations. For instance, it can be a communication medium of various connection types capable of providing communication links between nodes.
[0072] For example, nodes in a computing cluster can be equipped with one or more network interface cards (NICs). Referring to Figure 1, the nodes in the computing cluster may include an eight-core processor (G0-G7), with each node providing eight NICs (0-7), thus providing eight interfaces between each node and network devices. For example, switches 321-328 connect to the relevant interfaces of each node, thereby enabling packet forwarding.
[0073] For example, the nodes in the computing cluster can be independent physical servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms. Terminals can be smartphones, tablets, laptops, desktop computers, smart speakers, smartwatches, etc., but are not limited to these.
[0074] In the solution provided in this application embodiment, the probe program used to determine network performance runs on the network device side of the computing cluster. That is, the solution provided in this application embodiment does not require an additional probe machine for each HPC sub-cluster, nor does it require adding the probe machine's IP address to the ACL's allow rules within the cluster. Therefore, there is no configuration management regarding the probe machine's IP address. Consequently, the solution provided in this application embodiment has high detection efficiency, can promptly detect network faults in the cluster, and is beneficial for improving the cluster's protection capabilities. Specifically, the network device in the computing cluster executes the following detection scheme based on the above probe program: It obtains the Internet Protocol (IP) addresses of all network cards in the computing cluster, resulting in a list containing N IP addresses; wherein the node to which the i-th network card belongs is configured with the i-th (i is a positive integer not greater than N) static route to the probe network segment, meaning the IP address is automatically associated with the corresponding static route, reducing the risk of manual configuration errors. Then, the network device sends a probe data packet to the node to which the i-th network card belongs based on the i-th IP address, to transmit the probe data packet based on the i-th static route. Furthermore, the network device can determine the network performance detection result corresponding to the i-th network card based on the transmission result of the probe data packet.
[0075] It should be noted that Figure 3 illustrates the system architecture of an embodiment of this application, but the system construction of the implementation environment of this application embodiment is not limited to that shown in Figure 3.
[0076] The technical solutions of the embodiments of this application will be described in detail below through some examples. The following embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.
[0077] Figure 4 is a flowchart illustrating a method P400 for determining the network performance of a computing cluster according to an embodiment of this application. Since the probe is deployed on network devices within the computing cluster, the execution entity of method P400 can be a network device, such as network devices 311-328 in Figure 3, or an electronic device as shown in Figure 9. This embodiment of the application does not limit the specific implementation of this method. Referring to Figure 4, method P400 includes steps S410 to S430.
[0078] In S410, the network devices in the computing cluster obtain the IP addresses of the network cards of the nodes in the computing cluster and obtain an IP address list. The IP address list contains N IP addresses corresponding to the above network cards. The above nodes are equipped with one or more of the above network cards. The node to which the i-th network card belongs is configured with the i-th static route to the probe network segment. N is a positive integer and i is a positive integer not greater than N.
[0079] In an exemplary embodiment, the aforementioned computing cluster is a high-performance computing cluster. An exemplary example could be a Hyper Computing Cluster (HCC) cluster. An HCC cluster is a cluster interconnected via RDMA, using high-performance cloud servers as nodes. HCC can provide high-bandwidth and extremely low-latency network services, significantly improving network performance and meeting the parallel computing needs of large-scale high-performance computing, artificial intelligence, big data recommendation, and other applications. Probing the network performance within an HCC cluster is a crucial component for maintaining and optimizing cluster performance and ensuring a positive user experience. RDMA bypasses the operating system kernel to achieve direct memory access between networks, significantly reducing CPU overhead and latency in data processing, thus effectively addressing the shortcomings of traditional protocols in high-throughput, low-latency scenarios. With the help of RDMA technology, HCC clusters can better optimize the efficiency of data interaction between clusters, thereby significantly improving high-performance computing tasks and large-scale data analysis. For example, when the computing cluster is an HCC cluster, the embodiments of this application can be used to probe the RDMA network performance within the HCC cluster to obtain network status information, etc. It should be noted that the nodes in the HCC cluster may have RDMA networks and Virtual Private Cloud (VPC) networks deployed. This application embodiment is used to perform performance testing on the RDMA network.
[0080] As previously stated, in this embodiment, the detection program is deployed and runs on the network device side of the computing cluster. For example, the network device can be various types of switches, such as InfiniBand switches, Omni-Path architecture switches, Ethernet switches, and Top-of-Rack (ToR) switches; for example, the network device can also be a router or gateway in the computing cluster; this embodiment does not limit the scope of the application.
[0081] In an exemplary embodiment, the specific implementation of deploying and running the above-described detection program on the network device side may include any of the following methods.
[0082] Method 1: The above detection program can run on a container platform or virtual machine in the same network environment as the network device. The advantage of doing so is that it is easy to manage and allocate resources, while maintaining close communication capability with the network device.
[0083] Method 2: The aforementioned detection program is implemented as a software module within the network device. For example, the detection generator can exist as a component or plugin of the network device's operating system, thus being tightly integrated with the network device to detect network performance.
[0084] Method 3: The above-mentioned detection program can be installed on a server connected to the network device, or on a dedicated device such as a network management station. These devices with the detection program installed are located in the same network segment as the network device or are directly connected to it, and can easily access the management interface of the switch.
[0085] In an exemplary embodiment, a probe program deployed and running on the network device side triggers the network device to perform a probe process on the network performance within the computing cluster by calling the management interface provided by the network device or the API (which may be called the probe interface) that interacts with the network device controller. This design enables dynamic network detection and rapid fault location, demonstrating the centralized control and flexible programming capabilities of software-defined networking.
[0086] For example, a probe can be deployed and run on the network device side as a probe container. For example, the process of deploying a containerized probe on a network device includes S11-S13.
[0087] In S11, prepare the container environment. Exemplary container environment preparation includes configuring a container registry to ensure that network devices can access the container registry storing probe images, such as Docker Hub, a private repository, etc. Exemplary container environment preparation also includes installing container-enabled software, such as Docker or a similar container runtime environment on the network device.
[0088] In S12, a probe container image is built. For example, a container image containing the required probe tools (such as ping) is selected or built. Furthermore, the image can be customized as needed, adding or modifying configuration files to ensure the probe is adaptable to the switch environment and meets probe requirements.
[0089] In S13, containers are deployed. For example, container management command-line tools such as Docker are used to run container images on network devices. When deploying probe containers on the network device side to probe the network performance of the compute cluster, setting appropriate port configurations and associating them with the network interface IPs of the compute nodes to be monitored are crucial steps. For example, to enable the probe container to probe data flow through the network device, port mirroring can be configured. Specifically, the network device copies data packets received from one or more source ports (i.e., the ports connected to the compute nodes to be monitored) and sends them to the mirror port (i.e., the port connected to the probe container); thus, the probe container can observe network traffic non-intrusively. For example, to ensure that the network configuration within the container can access the mirrored data, the container network mode is selected when creating or running the probe container. For example, using host network mode allows the probe container to directly use the host machine's (i.e., the network device's) network stack; another example is creating a network interface connected to the mirror port and binding that network interface to the probe container.
[0090] Containerized deployment allows for efficient use of network devices and their surrounding computing resources, enabling complex probing logic without additional hardware, thus reducing costs. Containerization technology allows probing programs to easily scale up or down according to cluster size and probing needs, while facilitating rapid updates and maintenance, ensuring the system for probing network performance remains synchronized with the latest requirements of the HPC cluster. Containers standardize the runtime environment of probing programs, simplifying the deployment process across different switches or cluster nodes. Therefore, deploying probing programs in container form on the switch side in an HPC cluster not only improves probing efficiency and response speed but also optimizes resource utilization, simplifies management and maintenance, and promotes stable operation of the high-performance computing environment.
[0091] In exemplary embodiments, to improve data transmission rates and reduce latency, nodes within the cluster can be configured with multiple network interface cards (NICs) to connect to different networks or subnets. For example, they can directly connect to the internal network of the high-performance computing cluster, or simultaneously connect to a regular VPC network for data exchange. When nodes in the computing cluster are configured with multiple NICs, if no specific NIC is explicitly specified as the route for particular traffic, the system will determine the packet's path based on default routing rules. By default, packets may be routed to the VPC network used for data exchange or other unexpected network paths. In this scenario, if probe packets are incorrectly directed to the VPC network used for data exchange instead of directly to the probe segment via a specific NIC, it may lead to incorrect probe paths, affecting the efficiency of network performance probing. Therefore, to address this issue, embodiments of this application require enabling routes pointing to specific probe segments. Specifically, adjustments need to be made to the routing configuration of nodes within the cluster, explicitly specifying which specific NIC should be used for traffic destined for the probe segment. This involves configuring a static route to the probe segment for each NIC participating in the probe within the computing cluster, ensuring that probe packets are correctly sent to that segment. This typically involves adding static routing rules to ensure that probe traffic follows the correct path. This way, even if the server has multiple network exits, probe traffic can accurately reach its target, enabling efficient network performance probing. The probe network segment mentioned above refers to a subnet or virtual LAN specifically used for network performance probing (not for data exchange or other business operations as described above). This network segment is dedicated to network performance probing to avoid interference with other business traffic, thus ensuring the accuracy and reliability of the probe results.
[0092] In an exemplary embodiment, when a node in the computing cluster starts up, it obtains the IP addresses of each network interface card (NIC) and the static routes pointing to the probe network segment for each NIC. For example, for a node A with eight NICs, when node A starts up, it will obtain the IP addresses of the eight NICs and the static routes pointing to the probe network segment for each NIC, based on the embodiment shown in FIG5. FIG5 is an exemplary diagram of a node X obtaining the IP addresses of its NICs and the corresponding static routes according to an embodiment of this application. Referring to FIG5, node X includes NICs 0-7, and the operating system of node X can control the following processes to obtain NIC-related information. Exemplarily, these include S21-S24.
[0093] In S21, when compute node X starts up, the operating system (OS) initializes each installed network interface card (NIC) (NICs 0-7). Each NIC is configured to obtain an IP address using the Dynamic Host Configuration Protocol (DHCP).
[0094] In S22, for each network interface card (NIC) intending to obtain an IP address via DHCP, the operating system (OS) independently sends a DHCPDISCOVER broadcast message (the first message) through the NIC's interface. Taking any NIC in node X (the i-th NIC) as an example, the i-th NIC sends its own DHCPDISCOVER message to request its own IP configuration. Different NICs perform this process independently.
[0095] In S23, the DHCP server that receives the DHCPDISCOVER message will respond with a DHCPOFFER message (the second message). This message contains basic network configuration information such as the IP address, subnet mask, default gateway, and DNS server address that the server can provide. If the DHCP server is configured with specific DHCP options, such as a static route for the i-th network interface card pointing to the probe segment, then the second message contains the i-th static route.
[0096] In S24, each network interface card (NIC) receives a DHCPOFFER message (second message) from the DHCP server. Further, as an example, each NIC acknowledges the request by sending a DHCPREQUEST and ultimately receives a DHCPACK to complete the configuration.
[0097] For example, once all network cards that were planned to be configured via DHCP receive a DHCPACK and the configuration is applied, the operating system of node X will set the IP address and related parameters of the network interface based on this information, so that each network card has independent network connectivity.
[0098] In an exemplary embodiment, the IP address information and corresponding static routes of the network interface cards (NICs) of all nodes in the computing cluster, as well as node status information, can be aggregated into a Cloud Virtual Machine (CVM), thereby achieving centralized detection and unified management of the cluster status. Furthermore, setting up CVM instances in a high-performance computing cluster can improve the cluster's flexibility and scalability; specifically, CVM instances allow users to quickly increase or decrease computing resources according to computing needs. When faced with sudden or periodically changing computing tasks, additional computing power can be obtained immediately, and resources can be easily released after the task is completed, avoiding resource waste.
[0099] In an exemplary embodiment, the network device can obtain node status information and network interface card (NIC) IP addresses from the CVM. For example, the network device can obtain node status information and NIC IP addresses from the CVM via the cloud control API based on the aforementioned detection procedure.
[0100] In an exemplary embodiment, as described above, the network device can obtain node status information and network interface card (NIC) IP addresses from the CVM via the cloud control API. The network device can then filter out online target nodes within the computing cluster based on the obtained node status information. This allows for targeted filtering of NIC IP addresses within these target nodes, thereby improving the targeting and efficiency of network performance detection.
[0101] In an exemplary embodiment, suppose there are N network interface cards (NICs) in the computing cluster, so that the network devices can obtain a list containing N IP addresses. The i-th IP address corresponds to the IP address of the i-th NIC, and the i-th static route corresponding to the i-th IP address is specifically a static route from the i-th NIC to the probe network segment.
[0102] Referring again to Figure 4, in S420, the network device sends a probe data packet to the node to which the i-th network card belongs based on the i-th IP address, so as to transmit the probe data packet based on the i-th static route.
[0103] In an exemplary embodiment, as described above, to improve data transmission rate and reduce latency, nodes within the cluster can be configured with multiple network interface cards (NICs) to connect to different networks or subnets. If the node to which the i-th NIC belongs contains at least two NICs, the reverse routing check (rp_filter) needs to be disabled or configured in a lenient mode when the node starts up to prevent probe packets from being intercepted and dropped by the reverse routing check. Specifically, if the reverse routing check within the computing node's operating system is in strict mode, the packet will be dropped when the incoming NIC and outgoing NIC are inconsistent, leading to probe errors. Therefore, in this embodiment, in scenarios where the node to be detected contains multiple NICs, disabling the reverse routing check (rp_filter) or configuring it in a lenient mode when the node starts up prevents probe packets from being intercepted and dropped by the reverse routing check, thereby ensuring the smooth execution of the network performance probe process. For example, a compute node A has network interface cards (NICs) a, b, and c. NICs a and b are the NICs to be probed. A data packet s enters from NIC a and may exit from NICs b and / or c. If the reverse routing check of the compute node A's operating system is in strict mode, the data packet s will be dropped because the NICs of the incoming and outgoing packets are different, causing a probe error. However, if the reverse routing check rp_filter is disabled or configured to be in a lenient mode when compute node A starts up, the dropping of data packets can be prevented, thus ensuring the smooth execution of the probe process.
[0104] For example, the reverse route check `rp_filter` operates in two modes: strict mode and loose mode. In strict mode, the router checks the source IP address of each incoming data packet to ensure that the packet arrived via the optimal path to that source IP address. If the packet does not arrive via this optimal path, it is filtered out. Strict mode provides the highest level of protection but may generate false positives for some legitimate network configurations (such as asymmetric routing). Compared to strict mode, loose mode only checks whether the source IP address of the data packet is reachable, i.e., whether it can return to the source address through a certain interface in the network, without being limited to the interface that received the data packet. Loose mode is more lenient and suitable for network environments with multiple paths or asymmetric routing. In the solution provided in this application embodiment, to avoid probe packets being dropped, it is necessary to ensure that the operating system of the node to be probed is not in strict mode of reverse route check. Therefore, according to actual needs, reverse route check can be disabled or configured to be in loose mode when the operating system starts.
[0105] In an exemplary embodiment, if the node to which the i-th network card belongs contains at least two network cards, it is necessary to control the node to disable reverse route checking or configure reverse route checking to be in a relaxed mode at startup. Furthermore, the network device sends a probe data packet to the node to which the i-th network card belongs based on the i-th IP address, so as to transmit the probe data packet based on the i-th static route. For example, Node B, to which the 4th network interface card (NIC) (denoted as NIC 003) in the IP address list obtained by the network device belongs, is configured with 8 NICs, denoted as NIC 000-NIC 007. All 8 NICs are the targets of this probe, meaning that the IP addresses of all NICs in Node B belong to the aforementioned IP address list obtained by the network device. Node B is also configured with 8 NICs executing the 8 static routes for the probed network segment. When Node B starts up, if reverse route checking is disabled or configured in a lenient mode, the network device sends probe packets to Node B based on the IP address of the 4th NIC (NIC 003) (i.e., the 4th IP address in the list), using the 4th static route to propagate probe packet x. Specifically, based on the 4th static route, the propagation path of the probe packet x can be from NIC 004 into Node B, and then out of Node B via NIC 006.
[0106] It is understandable that when a computing node contains only one network card, since there is no inconsistency between the network card for incoming packets and the network card for outgoing packets, the reverse routing check of the node can be exempted from the restrictions in the above embodiments. That is, during the process of probing the network performance of the computing cluster, the reverse routing check of the node is not required to be in a disabled state or in a relaxed mode.
[0107] In S430, the network device determines the network performance detection result corresponding to the i-th network card based on the transmission result of the probe data packet.
[0108] In an exemplary embodiment, the transmission result of the probe data packet can include two cases: the network device receives the probe data packet, and the network device does not receive the probe data packet for a relatively long period of time. For example, if the network device receives the probe data packet, based on the transmission duration of the probe data packet, the network performance detection result corresponding to the i-th network interface card (NIC) can be determined as the first detection result. The first detection result includes the latency information corresponding to the i-th NIC; for example, the first detection result is that the i-th NIC is reachable and has a latency of x milliseconds; or, for example, the second detection result is that the i-th NIC is reachable and has a latency of y milliseconds; etc. If the network device does not receive the probe data packet, the network device determines the network performance detection result corresponding to the i-th NIC as the second detection result. The second detection result includes the possibility that the i-th NIC has packet loss issues; for example, the second detection result is that the i-th NIC is unreachable.
[0109] In an exemplary embodiment, when the computing cluster described above is an HCC, the RDMA performance between network devices and nodes can be detected through the above embodiments. In the high-performance computing scenario of HCC, each customer's purchased node belongs to its own sub-cluster, and network isolation between different customer computing resources is achieved through sub-clusters. Therefore, related technologies face significant challenges in detecting the RDMA network of each sub-cluster in this scenario. For example, to ensure data security and tenant privacy, different sub-clusters have network isolation strategies, resulting in different sub-clusters needing to use different probe machines, preventing the reuse of probe machine resources. This leads to an increase in the number of probe machines and increased resource consumption. However, the solution provided by this application embodiment does not rely on additional probe machines, and therefore does not require separate hardware probe machines for different sub-clusters. Thus, the detection method provided by this application embodiment does not consume hardware resources and can promptly detect RDMA network faults in each sub-cluster, which is beneficial to improving the protection capabilities of each sub-cluster. At the same time, this application embodiment does not require adding the probe machine's IP address to the ACL's allow rules within the cluster, thus eliminating configuration management regarding the probe machine's IP address. Consequently, the solution provided by this application embodiment has high detection efficiency, which is beneficial to improving the user experience.
[0110] In an exemplary embodiment, after determining the network performance detection results, the network device can also send the network performance detection results corresponding to each network card to the detection server through the detection interface (the management interface provided by the network device or the API that interacts with the network device controller) to quickly locate the network card with network problems, thereby facilitating timely resolution of related issues and ensuring the user experience.
[0111] The above embodiments (such as those corresponding to S420 and S430) are described in detail using the example of probing the network performance of the "i-th" network interface card (NIC) among the N NICs corresponding to the N IP addresses in the above IP address list. It should be noted that the embodiments of this application can perform the network performance probing provided in the above embodiments on "each" NIC among the N NICs corresponding to the N IP addresses in the above IP address list.
[0112] It should be noted that the embodiments of this application can simultaneously probe the network performance corresponding to multiple network interface cards (NICs). Specifically, the network devices in the computing cluster execute the following processes A and B in parallel. Process A is used to probe the network performance corresponding to NIC a in the computing cluster, and process B is used to probe the network performance corresponding to NIC b in the computing cluster. In process A, the computing device sends probe data packet 1 to the node to which NIC a belongs based on the IP address of NIC a, and transmits probe data packet 1 based on the static route corresponding to NIC a; further, the network device determines the network performance probe result corresponding to NIC a based on the transmission result of probe data packet 1. In process B, the computing device sends probe data packet 2 to the node to which NIC b belongs based on the IP address of NIC b, and transmits probe data packet 2 based on the static route corresponding to NIC b; further, the network device determines the network performance probe result corresponding to NIC b based on the transmission result of probe data packet 2. In some embodiments, network interface card a and network interface card b may be located on the same node in the computing cluster; in other embodiments, network interface card a and network interface card b may be located on different nodes in the computing cluster.
[0113] The foregoing provides an overall overview of the method for determining the network performance of a computing cluster provided in the embodiments of this application. The following sections will further detail the solution provided in the embodiments of this application through specific examples of the method for determining the network performance of a computing cluster, as shown in Figure 6.
[0114] Figure 6 is a schematic diagram of information interaction for a method of determining the network performance of a computing cluster according to an embodiment of this application. In this embodiment, the probe program is deployed and runs on the switch side of the computing cluster. Referring to Figure 6, the embodiment shown in the figure includes the following steps.
[0115] In S611, the switch invokes the probe interface provided by the switch based on the probe program. In S612, the switch's probe interface triggers the switch controller to execute a network performance probe process.
[0116] For example, a switch with a probe program deployed and running triggers a network performance probe process by calling the management interface provided by the switch or the API (i.e., the probe interface) for interacting with the network device controller. Next, the switch controller executes the probe process described above, for example, steps S631-S633, to determine the probe results regarding network performance.
[0117] In S631, the switch controller retrieves the node status and IP addresses of the network interface cards (NICs) in the computing cluster from the cloud virtual machine (CVM). In S632, the cloud virtual machine (CVM) returns relevant information.
[0118] For example, the switch controller interacts with CVM cloud virtual machines. On one hand, the switch controller can obtain the status information of all nodes in the computing cluster. Based on this information, the switch controller can filter out target nodes that are online within the computing cluster. On the other hand, the switch controller can obtain the IP addresses of network interface cards (NICs) using a probe program. This allows it to specifically obtain a list of IP addresses from the NICs of the target nodes, thereby improving the targeting and efficiency of the probe.
[0119] For example, the IP address of the aforementioned network interface card (NIC) can be obtained when the node starts up. Specifically, the node operating system initializes each installed NIC, and each NIC is configured to use DHCP to obtain an IP address. For a specific implementation example of obtaining the IP address, please refer to the embodiment corresponding to Figure 5, which will not be repeated here.
[0120] Referring again to Figure 6, in S633, the switch controller probes the network performance of the target node's network card based on the target node's network card IP address. The specific implementation of this step can be found in the embodiments corresponding to S420 and S430, and will not be repeated here.
[0121] In S622, the switch controller returns the probe results to the probe interface provided by the switch. Then, in S641, the probe results are sent to the cloud probe server based on the probe interface. After the above network performance detection process is completed, the switch interface reports the probe results to the cloud probe platform, thereby assisting users in real-time detection and historical network data analysis.
[0122] In S612, the switch interface returns the network performance detection results to the probe program, which can then update its status information indicating that the detection has been completed and notify the user.
[0123] This application's embodiments can detect network latency, packet loss, and unreachability within a customer sub-cluster, significantly improving troubleshooting efficiency for existing network issues. It also facilitates the completion of Fullmesh probing, enabling rapid location of faulty devices. Fullmesh probing refers to the use of a Fullmesh probing architecture in the field of probing device network performance. In this architecture, each node in the network (such as routers, switches, servers, etc.) directly establishes probing connections with other relevant nodes, enabling direct probing and communication between them. That is, each node can act as a probe source to probe the status of all other nodes, while also receiving probes from other nodes.
[0124] The network performance detection scheme for computing clusters provided in this application runs the detection program on the network device side of the computing cluster. This means the scheme does not rely on additional detection machines and can effectively detect network performance in the computing cluster without introducing additional costs. It also features low management complexity, high detection efficiency, and is autonomously controllable and secure. Furthermore, this application does not require adding the detection machine's IP address to the ACL rules within the cluster, thus eliminating configuration management of the detection machine's IP address. Consequently, the scheme provides high detection efficiency, enabling timely detection of network faults in the cluster and improving the cluster's protection capabilities. This application avoids the security risks associated with adding the detection machine's IP address to the ACL, enhancing cluster security. Additionally, as the cluster size increases, this application only requires configuring corresponding static routes on newly added nodes, making it easily expandable and scalable.
[0125] The above description, with reference to Figures 1 to 6, details an embodiment of the method for determining the network performance of a computing cluster according to this application. The following description, with reference to Figure 7, details an embodiment of the system for determining the network performance of a computing cluster according to this application.
[0126] Figure 7 is a schematic diagram of a network performance determination system 700 for a computing cluster according to an embodiment of this application. Referring to Figure 7, the network performance determination system 700 for a computing cluster includes a network device 710 in the computing cluster.
[0127] In the aforementioned network device 700, the device is used to obtain the Internet Protocol (IP) addresses of the network interface cards (NICs) of the nodes in the computing cluster, thereby obtaining an IP address list. This IP address list contains N IP addresses corresponding to each of the N NICs. Each node has one or more NICs, and the node to which the i-th NIC belongs is configured with the i-th static route to the probe network segment. N is a positive integer, and i is a positive integer not greater than N. The network device is used to send probe data packets to the node to which the i-th NIC belongs based on the i-th IP address, transmitting the probe data packets based on the i-th static route. The network device is used to determine the network performance probe result corresponding to the i-th NIC based on the transmission result of the probe data packets.
[0128] The node to which the i-th network card belongs is used to send a data acquisition request to the Dynamic Host Configuration Protocol (DHCP) service so that the DHCP service can determine the i-th IP address and the i-th static route, wherein the i-th static route points to the probe network segment; and is used to receive the i-th IP address and the i-th static route sent by the DHCP server.
[0129] In an exemplary embodiment, based on the above scheme, the network device 700 provides a probe interface to the outside world; wherein, the probe interface is used to trigger the controller of the network device to send probe data packets to the node to which the i-th network card belongs based on the i-th IP address when invoked by the probed container; the probe interface is also used to send the network performance probe results corresponding to the i-th network card to the probe server.
[0130] In an exemplary embodiment, based on the above scheme, the node to which the i-th network interface card (NIC) belongs contains at least two NICs; when the reverse routing check in the node to which the i-th NIC belongs is in a disabled state or in a lenient mode, the network device sends a probe data packet to the node to which the i-th NIC belongs based on the i-th IP address.
[0131] It should be understood that the system embodiments and method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, further details are omitted here. Specifically, the network performance determination system of the computing cluster shown in Figure 7 can execute the embodiments of the above-described method for determining the network performance of the computing cluster, and the aforementioned and other operations and / or functions of each device in the network performance determination system of the computing cluster correspond to the method embodiments.
[0132] In the network performance determination system for a computing cluster provided in this application embodiment, a probe program runs on the network device side of the computing cluster. This allows the network device to obtain the IP addresses of the network interface cards (NICs) in the computing cluster, resulting in N IP addresses corresponding to N NICs. The node to which the i-th NIC belongs is configured with the i-th static route to the probed network segment. For example, the node to which NIC a belongs has a static route corresponding to NIC a leading to the probed network segment. Therefore, in this application embodiment, the network device can automatically obtain the NIC IP addresses to form an IP address list, simplifying the preparation work before probes. Furthermore, the IP addresses are automatically associated with the corresponding static routes, reducing the risk of manual configuration errors. Further, the network device can send probe data packets to the node to which the corresponding NIC belongs based on the i-th IP address, and then transmit the probe data packets based on the i-th static route corresponding to that IP address. The network device then determines the network performance probe result corresponding to the i-th NIC based on the transmission result of the probe data packets. As can be seen, the solution provided in this application does not rely on additional probe machines, and therefore does not require adding the probe machine's IP address to the ACL's allow rules within the cluster. Consequently, there is no configuration management regarding the probe machine's IP address, resulting in high detection efficiency and timely discovery of network faults in the cluster, thus improving the cluster's protection capabilities. Furthermore, this application avoids the security risks associated with adding the probe machine's IP address to the ACL, enhancing cluster security. Additionally, as the cluster size increases, this application only requires configuring corresponding static routes on newly added nodes, making it easily expandable and scalable.
[0133] The above description, with reference to Figure 7, illustrates an embodiment of the system for determining the network performance of a computing cluster according to this application. The following description, with reference to Figure 8, details an embodiment of the apparatus for determining the network performance of a computing cluster according to this application.
[0134] Figure 8 is a schematic diagram of a network performance determination device 800 for a computing cluster according to an embodiment of this application. The network performance determination device 800 is configured in a network device within the computing cluster. Referring to Figure 8, the network performance determination device 800 for the computing cluster includes: an acquisition module 810, a first transmission module 820, and a determination module 830.
[0135] The acquisition module 810 is used to acquire the Internet Protocol (IP) addresses of the network cards of the nodes in the computing cluster to obtain an IP address list, wherein the IP address list contains N IP addresses corresponding to N network cards, each node is equipped with one or more network cards, and the node to which the i-th network card belongs is configured with the i-th static route to the probe network segment, where N is a positive integer and i is a positive integer not greater than N; the sending module 820 is used to send probe data packets to the node to which the i-th network card belongs based on the i-th IP address, so as to transmit the probe data packets based on the i-th static route; and the determining module 830 is used to determine the network performance probe result corresponding to the i-th network card based on the transmission result of the probe data packets.
[0136] In an exemplary embodiment, based on the above scheme, the node to which the i-th network card belongs contains at least two network cards; the first sending module 820 is specifically used to: when the reverse route check is disabled in the node to which the i-th network card belongs, or when the reverse route check is in a relaxed mode in the node to which the i-th network card belongs, the network device sends a probe data packet to the node to which the i-th network card belongs based on the i-th IP address, so as to transmit the probe data packet based on the i-th static route.
[0137] In an exemplary embodiment, based on the above scheme, the network performance determination device 800 of the computing cluster further includes: a second sending module and a receiving module; the second sending module is configured to: before the acquisition module 810 acquires the Internet Protocol IP address of the network card of the node in the computing cluster through the network device, when the node to which the i-th network card belongs starts up, send a first message through the i-th network card, so that the DHCP server receiving the first message generates a second message in response to the first message, wherein the i-th static route points to the probe network segment; the receiving module is configured to: receive the second message through the node to which the i-th network card belongs, wherein the second message includes the i-th IP address and the i-th static route.
[0138] In an exemplary embodiment, based on the above scheme, the network performance determination device 800 of the computing cluster further includes: a summarization module:
[0139] The aggregation module is used to: aggregate the IP addresses of all network cards set in the nodes of the computing cluster and the status information of the nodes to which each network card belongs through the cloud virtual machine;
[0140] The acquisition module 810 includes an acquisition submodule and a filtering submodule. The acquisition submodule is used to: obtain the status information of the nodes to which all network cards belong and the IP addresses of all network cards from the cloud virtual machine through the network device based on the cloud control application programming interface (API), and filter out the target nodes that are running based on the status information. The filtering submodule is used to: filter out the IP addresses of the network cards in the target nodes from the IP addresses of all network cards through the network device to obtain an IP address list.
[0141] In an exemplary embodiment, based on the above scheme, the network device provides a probe interface to the outside world; the first sending module 820 is specifically used to: trigger the controller of the network device to send a probe data packet to the node to which the i-th network card belongs based on the i-th IP address by calling the probe interface of the network device.
[0142] In an exemplary embodiment, based on the above scheme, the network performance determination device 800 of the computing cluster further includes: a third sending module:
[0143] The third sending module is used to send the network performance detection result of the i-th network card to the detection server through the detection interface via the network device after the determining module 830 determines the network performance detection result of the i-th network card based on the transmission result of the detection data packet.
[0144] In an exemplary embodiment, based on the above scheme, the determining module 830 is specifically configured to: determine a first detection result corresponding to the i-th network interface card (NIC) based on the transmission duration of the probe data packet when the network device receives the probe data packet, wherein the first detection result includes latency information corresponding to the i-th NIC; or, determine a second detection result corresponding to the i-th NIC when the network device does not receive the probe data packet, wherein the second detection result includes packet loss issues with the i-th NIC.
[0145] In an exemplary embodiment, based on the above scheme, the computing cluster is a high-performance computing cluster interconnected via Remote Direct Memory Access (RDMA).
[0146] It should be understood that the device embodiments and method embodiments can correspond to each other, and similar descriptions can be referred to the method embodiments. To avoid repetition, they will not be repeated here. Specifically, the device shown in FIG8 can execute the above-described embodiment of the method for determining the network performance of the computing cluster, and the aforementioned and other operations and / or functions of each module in the device corresponding to the method embodiments will not be repeated here for the sake of brevity.
[0147] In the solution provided in this application embodiment, a probe program is deployed on the network device side of the computing cluster. This allows the acquisition module in the network performance determination device of the computing cluster to obtain the IP addresses of the network interface cards (NICs) in the computing cluster, resulting in a list containing N IP addresses. The node to which the i-th NIC belongs is configured with the i-th static route to the probe network segment. For example, the node to which NIC a belongs in the aforementioned computing cluster node has a static route corresponding to NIC a leading to the probe network segment. Therefore, in this application embodiment, the network device can automatically obtain the NIC's IP address to form an IP address list, simplifying the preparation work before probes. Furthermore, the IP address is automatically associated with the corresponding static route, reducing the risk of manual configuration errors. Further, the first sending module in the network performance determination device of the computing cluster can send probe data packets to the node to which the corresponding NIC belongs based on the i-th IP address, and then transmit the probe data packets based on the i-th static route corresponding to that IP address. The determination module then determines the network performance probe result corresponding to the i-th NIC based on the transmission result of the probe data packets. As can be seen, the solution provided in this application does not rely on additional probe machines, and therefore does not require adding the probe machine's IP address to the ACL's allow rules within the cluster. Consequently, there is no configuration management regarding the probe machine's IP address, resulting in high detection efficiency and timely discovery of network faults in the cluster, thus improving the cluster's protection capabilities. Furthermore, this application avoids the security risks associated with adding the probe machine's IP address to the ACL, enhancing cluster security. Additionally, as the cluster size increases, this application only requires configuring corresponding static routes on newly added nodes, making it easily expandable and scalable.
[0148] The apparatus of this application embodiment has been described above from the perspective of functional modules in conjunction with the accompanying drawings. It should be understood that this functional module can be implemented in hardware, in software instructions, or in a combination of hardware and software modules. Specifically, the steps of the method embodiments in this application can be completed by integrated logic circuits in the processor's hardware and / or by software instructions. The steps of the method disclosed in this application embodiment can be directly embodied as being executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. Optionally, the software module can reside in a mature storage medium in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps in the above method embodiments.
[0149] Figure 9 is a schematic block diagram of an electronic device provided in an embodiment of this application. The electronic device in Figure 9 can be used to execute the above-described method for determining the network performance of a computing cluster. The electronic device can be the above-described network device.
[0150] As shown in Figure 9, the electronic device 900 may include:
[0151] The system includes a memory 910 and a processor 920. The memory 910 stores the computer program 33 and transfers the program code 33 to the processor 920. In other words, the processor 920 can call and run the computer program 930 from the memory 910 to implement the methods in the embodiments of this application.
[0152] For example, the processor 920 can be used to execute the steps in the above method according to the instructions in the computer program 930.
[0153] In some embodiments of this application, the processor 920 may include, but is not limited to:
[0154] General-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0155] In some embodiments of this application, the memory 910 includes, but is not limited to:
[0156] Volatile memory and / or non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and Direct Rambus RAM (DR RAM).
[0157] In some embodiments of this application, the computer program 930 may be divided into one or more modules, which are stored in the memory 910 and executed by the processor 920 to complete the method for determining the network performance of the computing cluster provided in this application. The one or more modules may be a series of computer program instruction segments capable of performing specific functions, which describe the execution process of the computer program 930 in the electronic device.
[0158] As shown in Figure 9, the electronic device 900 may further include:
[0159] Transceiver 940, which can be connected to processor 920 or memory 910.
[0160] The processor 920 can control the transceiver 940 to communicate with other devices; specifically, it can send information or data to other devices or receive information or data sent by other devices. The transceiver 940 may include a transmitter and a receiver. The transceiver 940 may further include antennas, and the number of antennas may be one or more.
[0161] It should be understood that the various components in the electronic device 900 are connected through a bus system, which includes a data bus, a power bus, a control bus, and a status signal bus.
[0162] According to one aspect of this application, a computer storage medium is provided that stores a computer program thereon, which, when executed by a computer, enables the computer to perform the methods of the above-described method embodiments. Alternatively, embodiments of this application also provide a computer program product containing instructions that, when executed by a computer, cause the computer to perform the methods of the above-described method embodiments.
[0163] According to another aspect of this application, a computer program product or computer program is provided, comprising computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the method described in the above-described method embodiments.
[0164] In other words, when implemented using software, it can be implemented wholly or partially in the form of a computer program product. This computer program product includes one or more computer instructions. When these computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., digital video disc (DVD)), or a semiconductor medium (e.g., solid-state disk (SSD)).
[0165] Those skilled in the art will recognize that the modules and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0166] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or modules may be electrical, mechanical, or other forms.
[0167] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical modules; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. For example, the functional modules in the various embodiments of this application may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.
[0168] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for determining the network performance of a computing cluster, characterized in that, The method, applied to network devices in the computing cluster, includes: The network device obtains the Internet Protocol (IP) addresses of the network cards of the nodes in the computing cluster to obtain an IP address list, wherein the IP address list contains N IP addresses corresponding to N network cards respectively, the node is equipped with one or more network cards, the node to which the i-th network card belongs is configured with the i-th static route to the probe network segment, N is a positive integer, and i is a positive integer not greater than N; The network device sends a probe data packet to the node to which the i-th network card belongs based on the i-th IP address, and transmits the probe data packet based on the i-th static route; The network device determines the network performance detection result corresponding to the i-th network card based on the transmission result of the probe data packet.
2. The method according to claim 1, characterized in that, The node to which the i-th network interface card (NIC) belongs contains at least two NICs; the network device sends a probe data packet to the node to which the i-th NIC belongs based on the i-th IP address, and transmits the probe data packet based on the i-th static route, including: If the reverse route check is disabled in the node to which the i-th network interface card belongs, or if the reverse route check is in a relaxed mode in the node to which the i-th network interface card belongs, the network device sends a probe data packet to the node to which the i-th network interface card belongs based on the i-th IP address, so as to transmit the probe data packet based on the i-th static route.
3. The method according to claim 1, characterized in that, Before the network device obtains the Internet Protocol (IP) address of the network card of the node in the computing cluster, the method further includes: When the node to which the i-th network card belongs starts up, it sends a first message through the i-th network card, so that the Dynamic Host Configuration Protocol (DHCP) server that receives the first message generates a second message in response to the first message; The node to which the i-th network interface card belongs receives the second message, wherein the second message includes the i-th IP address and the i-th static route, and the i-th static route points to the probe network segment.
4. The method according to claim 3, characterized in that, The method further includes: The IP addresses of all network cards configured on the nodes in the computing cluster and the status information of the nodes to which each network card belongs are aggregated through cloud virtual machines. The network device obtains the IP addresses of the network cards of the nodes in the computing cluster, and obtains a list of IP addresses, including: The network device obtains the status information of the nodes to which all network cards belong and the IP addresses of all network cards from the cloud virtual machine through the cloud control application programming interface (API), and filters out the target nodes that are running based on the status information. The network device filters out the IP addresses of the network cards in the target node from the IP addresses of all network cards to obtain an IP address list.
5. The method according to claim 1, characterized in that, The network device provides external detection interfaces; The network device sends a probe data packet to the node to which the i-th network interface card belongs, based on the i-th IP address, including: By calling the probe interface of the network device, the controller of the network device is triggered to send probe data packets to the node to which the i-th network card belongs, based on the i-th IP address.
6. The method according to claim 5, characterized in that, After determining the network performance detection result corresponding to the i-th network interface card based on the transmission result of the probe data packet, the method further includes: The network device sends the network performance detection result corresponding to the i-th network card to the detection server through the detection interface.
7. The method according to any one of claims 1 to 6, characterized in that, The step of determining the network performance detection result corresponding to the i-th network interface card based on the transmission result of the probe data packet includes: If the network device receives the probe data packet, the first probe result corresponding to the i-th network card is determined based on the transmission duration of the probe data packet, wherein the first probe result includes the latency information corresponding to the i-th network card; If the network device does not receive the probe data packet, a second probe result is determined for the i-th network card, wherein the second probe result includes the i-th network card having a packet loss problem.
8. The method according to any one of claims 1 to 5, characterized in that, The computing cluster is a high-performance computing cluster interconnected via Remote Direct Memory Access (RDMA).
9. A system for determining the network performance of a computing cluster, characterized in that, The system includes: The network device in the computing cluster is used to obtain the Internet Protocol (IP) addresses of the network cards (NICs) of the nodes in the computing cluster, and to obtain an IP address list. The IP address list contains N IP addresses corresponding to each of the N NICs. Each node is equipped with one or more NICs. The node to which the i-th NIC belongs is configured with the i-th static route to the probe network segment. N is a positive integer, and i is a positive integer not greater than N. The network device is used to send probe data packets to the node to which the i-th NIC belongs based on the i-th IP address, and to transmit the probe data packets based on the i-th static route. The network device is used to determine the network performance probe result corresponding to the i-th NIC based on the transmission result of the probe data packets. The node to which the i-th network card belongs is used to send a data acquisition request to the Dynamic Host Configuration Protocol (DHCP) service so that the DHCP service can determine the i-th IP address and the i-th static route, wherein the i-th static route points to the probe network segment; and is used to receive the i-th IP address and the i-th static route sent by the DHCP server.
10. The system according to claim 9, characterized in that, The network device provides a probe interface; wherein, when invoked by the probed container, the probe interface is used to trigger the controller of the network device to send probe data packets to the node to which the i-th network card belongs based on the i-th IP address; the probe interface is also used to send the network performance probe results corresponding to the i-th network card to the probe server.
11. The system according to claim 9, characterized in that, The node to which the i-th network interface card (NIC) belongs contains at least two NICs; when the reverse routing check is off or in a lenient mode in the node to which the i-th NIC belongs, the network device sends a probe data packet to the node to which the i-th NIC belongs based on the i-th IP address.
12. A device for determining the network performance of a computing cluster, characterized in that, Network devices configured in the computing cluster, the device comprising: The acquisition module is used to acquire the Internet Protocol IP address of the network card of the node in the computing cluster and obtain an IP address list. The IP address list contains N IP addresses corresponding to N network cards respectively. The node is equipped with one or more network cards. The node to which the i-th network card belongs is configured with the i-th static route to the probe network segment. N is a positive integer and i is a positive integer not greater than N. The sending module is used to send a probe data packet to the node to which the i-th network card belongs based on the i-th IP address, so as to transmit the probe data packet based on the i-th static route; The determination module is used to determine the network performance detection result corresponding to the i-th network card based on the transmission result of the probe data packet.
13. An electronic device, characterized in that, Including processor and memory; The memory is used to store computer programs; The processor is configured to execute the computer program to implement the method for determining the network performance of the computing cluster as described in any one of claims 1 to 8.
14. A computer-readable storage medium, characterized in that, Used to store computer programs; The computer program causes the computer to execute the method for determining the network performance of the computing cluster as described in any one of claims 1 to 8.
15. A computer program product, characterized in that, It includes computer program instructions that cause a computer to perform a method for determining the network performance of a computing cluster as described in any one of claims 1 to 8.
Citation Information
Patent Citations
Route detection method based on tunnel technology, routing node and central server
CN108696428A
Network card detection method and device, electronic equipment and storage medium
CN115086208A
NFS high-availability system and method based on fault detection and routing strategy
CN116112500A
Network detection method, device, system, medium, equipment and program product
CN118869547A