Data processing system, data processing method and related equipment
By directly connecting the control node, computing node, and switching node via a bus in the data processing system, the problem of low management and control security in existing technologies is solved, achieving high-security and high-efficiency control and improving system reliability and communication stability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2024-11-04
- Publication Date
- 2026-05-08
AI Technical Summary
In existing data processing systems, the management and control security of computing nodes and switching nodes is relatively low. Abnormalities or attacks on switching nodes can easily lead to discrepancies in the transmission of management and control information, affecting the security of management and control.
By using a bus that directly connects management nodes to computing nodes and switching nodes, management and control information can be directly transmitted, avoiding forwarding through switching nodes. This achieves physical isolation between management information and the forwarding plane, improving security, and utilizes programmable devices and distributed sub-nodes to enhance management efficiency and flexibility.
It achieves high-security management and control of computing nodes and switching nodes, reduces management and control costs, improves system reliability and communication stability, and avoids performance bottlenecks caused by single points of failure.
Smart Images

Figure CN122001879A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a data processing system, data processing method and related equipment. Background Technology
[0002] With the development of artificial intelligence (AI) and information technology, data processing systems such as data centers have become core infrastructure supporting information technology construction and important places for centralized computing, storage, transmission, exchange and management of data.
[0003] like Figure 1 As shown, a data processing system typically includes multiple computing nodes and switching nodes. Data exchange between the computing nodes occurs through the switching nodes; for example, data sent by computing node 101 can be forwarded to computing node 102 via switching node 111. Furthermore, the data processing system also includes a control node, such as… Figure 1 The control node 120 shown can communicate with switching nodes and computing nodes via a network to manage and control data interaction between them. For example, the control node's functions can be divided into control plane functions and management plane functions. In the control plane, the control node can configure the routing table in the switching node used to guide data forwarding, configure the port used by the computing node when sending data, etc. In the management plane, the control node can update the firmware in the switching node used to implement data forwarding, set the network protocol used by the computing node when sending data, etc.
[0004] However, this method of managing and controlling switching nodes and compute nodes has low security. For example, the forwarding table in the compute node may differ from the forwarding table configured on the control node. Summary of the Invention
[0005] This application provides a data processing system to improve the security of managing and controlling computing nodes and switching nodes. Furthermore, this application also provides a corresponding data processing method, management node, computer-readable storage medium, and computer program product.
[0006] Firstly, this application provides a data processing system comprising a control node, multiple computing nodes, and at least one switching node. The control node and computing nodes can be implemented using processors or computing devices including processors, and the switching node can be implemented using devices with data forwarding capabilities, such as routers or switches. The control node is connected to the multiple computing nodes via a first bus and also connected to at least one switching node via a second bus. The first and second buses can be of the same type or different types. The control node is used to send first management information and first control information to the multiple computing nodes via the first bus. The first management information includes information for managing the communication functions of the computing nodes, such as information for updating the communication strategies used when the computing nodes communicate with other computing nodes. The first control information includes information for controlling the communication functions of the computing nodes, such as information for configuring forwarding table entries in the computing nodes. Furthermore, the management node is also used to send second management information and second control information to at least one switching node based on the second bus. The second management information includes information for managing the data forwarding function of the switching node, such as information for managing the performance data reported by the switching node when forwarding data. The second control information includes information for controlling the data forwarding function of the switching node, such as information applicable to configuring the routing table in the switching node.
[0007] Because the control node connects to each computing node via a first bus, it can directly send management and control information to the computing nodes through this first bus, without needing to forward the information through switching nodes. This eliminates the need for information forwarding via a forwarding plane, achieving physical isolation between management and control information and the forwarding plane, thus improving the security of the control node's management and control of the computing nodes. Furthermore, the control node connects to the switching nodes via a second bus, allowing management and control information for the switching nodes to be sent directly to those nodes without forwarding through other switching nodes. This further enhances the overall security of the control node's management and control of the switching nodes. Additionally, the control node can send management and control information to computing nodes / switches through a single bus, eliminating the need to send management and control information separately via different buses. This reduces management costs while ensuring the security of control over computing nodes and switching nodes.
[0008] In one possible implementation, the control node is further configured to send third management information or third control information to at least one switching node via the second bus. The third management information includes information for managing the communication functions of the computing nodes, and the third control information includes information for controlling the communication functions of the computing nodes. At least one switching node is configured to forward the third management information or third control information to multiple computing nodes. For example, when the amount of data to be sent to multiple computing nodes is large, the control node can simultaneously send management and control information to multiple computing nodes in parallel via the first bus and at least one switching node, thereby improving the efficiency of the control node in managing these multiple computing nodes. Alternatively, the control node can send management and control information to multiple computing nodes via either of the two paths, thereby increasing the flexibility of the control node in managing the computing nodes.
[0009] In one possible implementation, when the control node manages multiple computing nodes, specifically in the event of a link failure between the control node and the multiple computing nodes (making it difficult for the control node to send management or control information to the computing nodes via the first bus), it can send third management or control information to at least one switching node via the second bus. Thus, in the event of a link failure, by forwarding the management or control information to the managed computing nodes through the forwarding plane, the reliability of the management and control of the computing nodes can be guaranteed.
[0010] Furthermore, when the control node manages the first switching node, specifically in the event of a link failure between the control node and the first switching node (making it difficult for the control node to send management or control information to the first switching node via the second bus), it can send fourth management or control information to the second switching node via the second bus. Thus, in the event of a link failure, by forwarding the management or control information to the managed switching node through the forwarding plane, the reliability of the management and control of the switching node can be guaranteed.
[0011] In one possible implementation, the multiple computing nodes include computing nodes in a first set and computing nodes in a second set, and the management node includes service sub-nodes, a first execution sub-node, and a second execution sub-node. When the management node manages the multiple computing nodes, specifically, the service sub-node sends a first management command to the first execution sub-node and a second management command to the second execution sub-node. The first execution sub-node, based on the first management command, sends first management information and first control information to the computing nodes in the first set via a first bus to manage one or more computing nodes in the first set. Similarly, the second execution sub-node, based on the second management command, sends first management information and first control information to the computing nodes in the second set via the first bus to manage one or more computing nodes in the second set. In this way, the management node can utilize multiple execution sub-nodes to manage computing nodes in multiple sets respectively, thereby improving the overall management performance of the management node for the multiple computing nodes and avoiding performance bottlenecks easily caused by a single sub-node.
[0012] In one possible implementation, the control node further includes a third execution sub-node. The service sub-node is then configured to send a third control command to the third execution sub-node. The third execution sub-node, based on the third control command, sends second management information and second control information to at least one switching node via the second bus. Thus, the control node can utilize at least one separate execution sub-node to control each switching node, thereby improving the control performance of the control node for at least one switching node.
[0013] In one possible implementation, when the service sub-node sends control commands to multiple execution sub-nodes, it specifically sends a first control command to a first execution sub-node and a second control command to a second execution sub-node via Ethernet. In this way, communication between the service sub-node and each execution sub-node can be based on Ethernet, reducing the constraints of deployment location between the service sub-node and the multiple execution sub-nodes.
[0014] In one possible implementation, the data processing system may further include a programmable device, such as an FPGA (Field-Programmable Gate Array), and the programmable device is connected to a first bus. Therefore, the control node can specifically use the programmable device to send first management information and first control information to multiple computing nodes via the first bus. In this way, the control node can use the programmable device to drive multiple computing nodes, thereby achieving control over multiple computing nodes and avoiding the limitation imposed by the hardware resources (such as the number of external interfaces) of a single node on the number of computing nodes connected to it via the bus.
[0015] In one possible implementation, the multiple computing nodes include a first computing node, which includes a computing chip and a communication chip. First control information is used to configure a forwarding table in the communication chip, which indicates the port used when sending data to different nodes. The computing chip sends access requests to the communication chip regarding the forwarding table. The communication chip refuses to respond to access requests that indicate modification of the forwarding table. Thus, in the first computing node, the computing chip is prohibited from modifying the forwarding table in the communication chip. Even if a program error occurs in the computing chip or it is attacked, the forwarding table in the communication chip will not be modified by the computing chip, thereby effectively isolating network management and business computing. This prevents business computing from affecting network management and ensures the security of management of the first computing node. Similarly, for second and third computing nodes among the multiple computing nodes, the security of management of these nodes can also be improved by restricting the computing chip's modification of the forwarding table in the communication chip.
[0016] In one possible implementation, the control node is further configured to generate a first test message and send the first test message to at least one switching node via a second bus. The first test message is used to test whether the communication links between at least one switching node and multiple computing nodes are connected. Alternatively, the control node is further configured to generate a second test message and send the second test message to multiple computing nodes via a first bus. The second test message is used to test whether the communication links between multiple computing nodes are connected. Thus, by detecting the connectivity of communication links between different computing nodes and switching nodes, or by detecting the connectivity of communication links between different computing nodes, the control node can promptly identify and maintain disconnected communication links, thereby improving the stability of communication services and the reliability of the data processing system.
[0017] In one possible implementation, the multiple computing nodes include a second computing node; thereby, the second computing node is used to send fault information to the management node via the first bus when a fault is detected, so that the management node can promptly perceive and locate the faulty computing node based on the fault information, thereby reducing the difficulty and timeliness of operation and maintenance for the faulty computing node.
[0018] Secondly, this application provides a data processing method applied to a data processing system. The data processing system includes a control node, multiple computing nodes, and at least one switching node. The control node is connected to the multiple computing nodes via a first bus and to the at least one switching node via a second bus. The method includes: the control node sending first management information and first control information to the multiple computing nodes via the first bus. The first management information includes information for managing the communication functions of the computing nodes, and the first control information includes information for controlling the communication functions of the computing nodes. The control node also sends second management information and second control information to the at least one switching node via the second bus. The second management information includes information for managing the data forwarding function of the switching node, and the second control information includes information for controlling the data forwarding function of the switching node.
[0019] In one possible implementation, the method further includes: a control node sending third management information or third control information to at least one switching node based on a second bus, the third management information including information for managing the communication functions of the computing nodes, and the third control information including information for controlling the communication functions of the computing nodes; at least one switching node forwarding the third management information or third control information to multiple computing nodes.
[0020] In one possible implementation, the control node sends third management information or third control information to at least one switching node via the second bus, including: in the event of a link failure between the control node and multiple computing nodes, the control node sends third management information or third control information to at least one switching node via the second bus.
[0021] In one possible implementation, the multiple computing nodes include computing nodes in a first set and computing nodes in a second set, and the management node includes service sub-nodes, a first execution sub-node, and a second execution sub-node; the management node sends first management information and first control information to the multiple computing nodes based on a first bus, including: the service sub-node sending a first management command to the first execution sub-node and a second management command to the second execution sub-node; the first execution sub-node sending the first management information and first control information to the computing nodes in the first set based on the first management command and the first execution sub-node based on the first bus; and the second execution sub-node sending the first management information and first control information to the computing nodes in the second set based on the second management command and the first bus.
[0022] In one possible implementation, the control node further includes a third execution sub-node; the control node sends second management information and second control information to at least one switching node based on the second bus, including: the service sub-node sending a third control command to the third execution sub-node; the third execution sub-node sending the second management information and second control information to at least one switching node based on the third control command and the second bus.
[0023] In one possible implementation, the service sub-node sends a first control command to the first execution sub-node and a second control command to the second execution sub-node, including: the service sub-node sends the first control command to the first execution sub-node and the second control command to the second execution sub-node via Ethernet.
[0024] In one possible implementation, the data processing system further includes a programmable device connected to a first bus; the control node sends first management information and first control information to multiple computing nodes based on the first bus, including: the control node uses the programmable device to send the first management information and first control information to multiple computing nodes based on the first bus.
[0025] In one possible implementation, the plurality of computing nodes include a first computing node, which includes a computing chip and a communication chip. First control information is used to configure a forwarding table in the communication chip, which indicates the port used when sending data to different nodes. The method further includes: the computing chip sending an access request for the forwarding table to the communication chip; when the access request is used to indicate modification of the forwarding table, the communication chip refuses to respond to the access request.
[0026] In one possible implementation, the method further includes: a control node generating a first test message and sending the first test message to at least one switching node via a second bus, the first test message being used to test whether the communication link between at least one switching node and multiple computing nodes is connected; or, the control node generating a second test message and sending the second test message to multiple computing nodes via a first bus, the second test message being used to test whether the communication link between multiple computing nodes is connected.
[0027] In one possible implementation, the plurality of computing nodes includes a second computing node, and the method further includes: when the second computing node detects a fault, it sends fault information to the management node via a first bus.
[0028] The data processing method provided in the second aspect corresponds to the data processing system provided in the first aspect. Therefore, the technical effects of any implementation of the data processing method provided in the second aspect can be referred to the technical effects of the corresponding implementation in the first aspect, and will not be elaborated further.
[0029] Thirdly, this application provides a control node, which is connected to multiple computing nodes via a first bus, and also connected to at least one switching node via a second bus; the control node includes: a first sending module, configured to send first management information and first control information to the multiple computing nodes via the first bus, wherein the first management information includes information for managing the communication functions of the computing nodes, and the first control information includes information for controlling the communication functions of the computing nodes; and a second sending module, configured to send second management information and second control information to at least one switching node via the second bus, wherein the second management information includes information for managing the data forwarding function of the switching node, and the second control information includes information for controlling the data forwarding function of the switching node.
[0030] In one possible implementation, the second sending module is further configured to send third management information or third control information to at least one switching node based on the second bus. The third management information includes information for managing the communication functions of the computing node, and the third control information includes information for controlling the communication functions of the computing node. The third management information or third control information is forwarded to multiple computing nodes through at least one switching node.
[0031] In one possible implementation, the second sending module is specifically used to send third management information or third control information to at least one switching node based on the second bus in the event of a link failure between the management node and multiple computing nodes.
[0032] In one possible implementation, the control node is also connected to a programmable device via a first bus; the first transmitting module is used to transmit first management information and first control information to multiple computing nodes via the programmable device and the first bus.
[0033] In one possible implementation, the control node further includes a generation module: the generation module is used to generate a first test message, in which case the second sending module is also used to send the first test message to at least one switching node via a second bus, the first test message being used to test whether the communication link between at least one switching node and multiple computing nodes is connected; or, the generation module is used to generate a second test message, in which case the second sending module is also used to send the second test message to multiple computing nodes via a first bus, the second test message being used to test whether the communication link between multiple computing nodes is connected.
[0034] In one possible implementation, the plurality of computing nodes includes a second computing node, and the control node further includes a receiving module for receiving fault information based on a first bus when a fault is detected.
[0035] Fourthly, this application provides a control node, which includes a processor and a memory, wherein the processor is used to execute instructions stored in the memory to perform the operation steps of the data processing method described in the second aspect or any implementation thereof.
[0036] Fifthly, this application provides a computer-readable storage medium storing instructions that, when executed on at least one computing device, cause the at least one computing device to perform the operational steps of the data processing method described in the second aspect or any implementation thereof.
[0037] In a sixth aspect, this application provides a computer program product containing instructions that, when run on at least one computing device, causes the at least one computing device to perform the operational steps of the data processing method described in the second aspect or any implementation thereof.
[0038] Based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods. Attached Figure Description
[0039] Figure 1 This is a schematic diagram of the structure of an exemplary data processing system;
[0040] Figure 2 A schematic diagram of the structure of an exemplary data processing system provided in this application;
[0041] Figure 3 This is a schematic diagram of the structure of another exemplary data processing system provided in this application;
[0042] Figure 4 A flowchart illustrating a data processing method provided in this application;
[0043] Figure 5 A flowchart illustrating the process of starting and running a node in the data processing system 30 as provided in this application;
[0044] Figure 6 A schematic diagram illustrating the connectivity of the communication link between the detection computing node 301 and the switching node 311 provided in this application;
[0045] Figure 7 A schematic diagram illustrating the connectivity of the communication link between computing node 301 and computing node 303 provided in this application;
[0046] Figure 8 A schematic diagram of the structure of a control node provided in this application;
[0047] Figure 9This is a schematic diagram of the hardware structure of a control node provided in this application. Detailed Implementation
[0048] To improve the security of managing and controlling computing nodes and switching nodes in a data processing system, this application provides a data processing system including a management node, multiple computing nodes, and at least one switching node. The management node is connected to both computing nodes and switching nodes via a bus. This allows the management node to send management and control information to the computing nodes / switching nodes via the bus, thereby achieving management and control without forwarding through the switching nodes. In other words, management and control information do not need to be forwarded through the forwarding plane, achieving physical isolation from the forwarding plane. This improves the security of the management and control node's management and control of the computing nodes / switching nodes.
[0049] To facilitate understanding of the technical solution of this application, the relevant technical terms involved in this application will be explained below.
[0050] The forwarding plane, or data plane, is the plane in a data processing system used to perform packet forwarding. It typically receives packets from the input interface and performs corresponding forwarding and other processing based on the routing information and forwarding policies provided by the control plane.
[0051] The control plane is the plane used to control the data forwarding method in the forwarding plane. It can usually provide the forwarding plane with various network information, routing information and forwarding policies required before data forwarding.
[0052] The management plane refers to the plane used to manage and maintain nodes (devices) in a data processing system. For example, it supports network administrators in managing nodes using methods such as telent (a remote login service protocol) and web, and supports, understands, and executes commands from administrators to configure one or more network protocols for nodes. For instance, administrators can use the management plane to update software on nodes, restart faulty nodes (to achieve fault recovery), and collect runtime status information of nodes (such as throughput, latency, and error rate).
[0053] A programmable logic device (PLD) is an integrated circuit device that can be programmed and configured according to requirements to achieve specific logic functions.
[0054] The technical solutions in this application will now be described with reference to the accompanying drawings.
[0055] See Figure 2The diagram illustrates the structure of a data processing system. Figure 2 As shown, the data processing system 20 includes a control node 200, multiple computing nodes, and multiple switching nodes. For ease of understanding, Figure 2 The example described uses four compute nodes (compute nodes 301 to 304) and two switching nodes (switching nodes 311 and 312). The compute nodes and switching nodes can be connected via a network, such as a wired network.
[0056] A computing node (such as computing node 301) can be implemented using a computing chip or a device including a computing chip, and the computing node supports a bus protocol. In practical applications, when a computing node supports the UB protocol, it can also be called a UB node. For example, a computing chip can be implemented using a die with computing capabilities. For instance, a computing chip can be a central processing unit (CPU), an accelerator, or any processor or combination thereof, such as an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), or a generic array logic (GAL). The accelerator can be any type of accelerator or any combination thereof, such as a GPU, neural network processing unit (NPU), tensor processing unit (TPU), deep learning processing unit (DPU), software-defined infrastructure (SDI) chip, artificial intelligence (AI) chip, etc.
[0057] Furthermore, in addition to computing chips, computing nodes may also include communication chips. These communication chips support communication between the computing node and other nodes, and can be implemented through a die with communication capabilities. For example, the communication chip may be configured with a forwarding table, allowing it to send data to external nodes on behalf of the computing node based on this forwarding table.
[0058] A switching node (such as switching node 311) can be implemented as a node with data forwarding capabilities, such as a switch or router. The switch can be a switching chip (a chip with data forwarding capabilities), an electrical switch, or an optical switch.
[0059] The management node 200 refers to the node in the data processing system 20 used to manage and control the computing nodes and switching nodes. The management node 200 can be implemented by a processor (such as a CPU) or a device that includes a processor.
[0060] Typically, the control node 200 controls and manages the compute nodes, such as configuring forwarding tables in the compute nodes (controlling the compute nodes) and instructing failed compute nodes to restart (managing the compute nodes). However, if the control node 200 sends management and control information to the compute nodes through the switching node 311, the management and control information transmitted to the compute node 301 may differ from the actual management and control information issued by the control node 200 during the transmission process from the switching node 311 to the compute node 301. This discrepancy could easily lead to lower security for the control node 200's management of the compute node 301. For example, during the process of configuring the forwarding table for compute node 301 by control node 200, if an error occurs in the forwarding table transmitted to compute node 301 via switch node 311, compute node 301 may be unable to send data normally based on the incorrect forwarding table, or the data sent by compute node 301 may be transmitted to the wrong switch node or compute node, thereby reducing the security of control node 200's management of compute node 301. Similarly, if management and control information for switch node 312 is also forwarded by control node 200 via switch node 311, this will also easily reduce the security of control node 200's management of switch node 312.
[0061] Based on this, Figure 2 In the data processing system 20 shown, the control node 200 can be connected to each computing node and each switching node via a bus. Thus, when controlling computing node 301 (and other computing nodes similarly), the control node 200 can directly send management and control information to computing node 301 via the bus connected to it, without needing to forward through the switching node, i.e., without needing to forward through the forwarding plane. This achieves physical isolation between management and control information and the forwarding plane, thereby improving the security of the control node 200's management and control of computing node 301.
[0062] Furthermore, when managing and controlling the switching node 311 (and other switching nodes similarly), the management node 200 can directly send management and control information to the switching node 311 via the bus connected to the switching node 311, without needing to forward it through other switching nodes. This enables physical isolation between the management and control information and the forwarding plane, thereby improving the security of the management and control node 200 in managing and controlling the switching node 311.
[0063] In addition, the management node 200 can send management and control information to the compute nodes / switching nodes through a single bus, without having to send management and control information separately based on different buses. This reduces management and control costs while ensuring the security of managing and controlling compute nodes and switching nodes.
[0064] For example, the bus between the control node 200 and the computing node or switching node can be, for example, a Universal Control and Manager Interface (UCMI) bus, a unified bus (UB), a Peripheral Component Interconnect Express (PCIE) bus, or other types of buses, without limitation. The UCMI bus can support relatively lightweight protocols, high bandwidth, and low cost, thereby improving the performance of data interaction based on the UCMI bus. Furthermore, the bus connecting the control node 200 to the computing node and the bus connecting the control node 200 to the switching node can be the same type of bus, such as both being UCMI buses. Alternatively, the bus connecting the control node 200 to the computing node and the bus connecting the control node 200 to the switching node can be different types of buses; for example, the bus connecting the control node 200 to the computing node can be a UCMI bus, while the bus connecting the control node 200 to the switching node can be a PCIE bus, etc.
[0065] In practical applications, the data processing system 20 typically has a large number of computing nodes. In this case, the management node 200 can include multiple sub-nodes, and the management performance for these sub-nodes can be improved by distributing them. For example, in... Figure 3 In the data processing system 30 shown, the control node 200 may include a service sub-node 210, an execution sub-node 201, an execution sub-node 202, and an execution sub-node 203. Furthermore, the service sub-node 210 and each execution sub-node can communicate via a network, such as... Figure 3As shown; in other implementations, the service sub-node 210 and each execution sub-node can also communicate via a bus, and there is no limitation on this. In this case, each sub-node can be implemented by a processor or a device including a processor.
[0066] Service sub-node 210 is used to generate control commands, which are then used to instruct execution sub-nodes to manage or control compute nodes or switching nodes. Each execution sub-node is used to generate management and control information based on the control commands and to distribute the management and control information to the corresponding compute nodes or switching nodes. Specifically, execution sub-node 201 can manage compute nodes 301 and 302 by distributing management and control information to them; execution sub-node 202 can manage compute nodes 303 and 304; and execution sub-node 203 can manage switching nodes 311 and 312.
[0067] Furthermore, the execution sub-node 201 and multiple compute nodes can be deployed separately. For example, multiple compute nodes can be deployed in the same rack, while the execution sub-node 201 can be deployed independently of the rack. In practical applications, a switching node connected to these multiple compute nodes can also be deployed in the rack. Alternatively, the execution sub-node 201 and multiple compute nodes can be deployed integratedly, such as deploying them on the same backplane. The deployment methods for other execution sub-nodes and compute / switching nodes are similar and will not be elaborated here.
[0068] Furthermore, when the number of computing nodes managed by the execution sub-node 201 is large, such as when the execution sub-node 201 manages 16 computing nodes, the execution sub-node 201 can also manage multiple computing nodes through a programmable device. This programmable device can be connected to the bus between the execution sub-node 201 and each computing node, such as... Figure 3 As shown. In this way, the execution sub-node 201 can use a programmable device to drive multiple computing nodes, thereby achieving control over multiple computing nodes and avoiding the limitation of the hardware resources (such as the number of external interfaces) of a single execution sub-node 201 on the number of computing nodes connected to it. Similarly, other execution sub-nodes can also use programmable devices to control computing nodes / switching nodes, such as... Figure 3 As shown. For example, the programmable device may be, for example, an FPGA or a CPLD, or other types of programmable devices.
[0069] It is worth noting that the above Figure 2 as well as Figure 3The data processing system illustrated is for illustrative purposes only and is not intended to limit the scope of the system. For example, other possible data processing systems may include more types of nodes, such as image service nodes and protocol service nodes. Image service nodes can provide an image of the operating system (OS) so that nodes in the data processing system can boot and run based on this OS image. Protocol service nodes can be used to perform network configuration for nodes in the data processing system based on protocols, such as configuring IP addresses for nodes. This protocol could be, for example, Dynamic Host Configuration Protocol (DHCP). Furthermore, in other possible data processing systems, the number of compute nodes and switching nodes can be arbitrary; alternatively, compute nodes can be configured with persistent storage media, such as solid-state drives (SSDs), to support persistent data storage. Moreover, in other possible data processing systems, some compute nodes or some switching nodes may not be connected to the execution child nodes via a bus. In this case, management or control information can be forwarded to those compute nodes or switching nodes through the switching nodes. For example, in other possible data processing systems, some computing nodes can be deployed in the same rack or integrated into the same device. In this case, these computing nodes can communicate directly through a bus or through a switching node.
[0070] For ease of understanding, embodiments of the data processing method provided in this application will be described below with reference to the accompanying drawings.
[0071] See Figure 4 , Figure 4 This is a flowchart illustrating a data processing method provided in an embodiment of this application. This method can be applied to... Figure 2 or Figure 3 The data processing system shown can be applied to other suitable data processing systems. For ease of explanation, this embodiment uses an application... Figure 3 The data processing system 30 shown is used as an example for illustration.
[0072] in, Figure 4 The data processing methods shown may specifically include:
[0073] S401: Service sub-node 210 generates control command 1, which is used to instruct the control of compute node 301.
[0074] S402: Service sub-node 210 sends the control command 1 to execution sub-node 201.
[0075] exist Figure 3 In the data storage system 30 shown, multiple execution sub-nodes can be deployed in a distributed manner to manage and control computing nodes and exchange nodes in multiple sets, thereby improving the overall performance of managing and controlling multiple computing nodes and exchange nodes in the data processing system 30 (avoiding the performance bottleneck caused by a single node managing all nodes).
[0076] Each execution sub-node can be responsible for managing either the compute nodes or the exchange nodes within a set. Each set can contain one or more compute nodes or exchange nodes. For example, execution sub-node 201 can manage compute nodes 301 and 302 in set 1; execution sub-node 202 can manage compute nodes 303 and 304 in set 2; and execution sub-node 203 can manage exchange nodes 311 and 312 in set 3, and so on.
[0077] In this embodiment, when it is necessary to manage and control computing nodes 301 and / or 302 in set 1, the service sub-node 210 can generate a management and control command 1 and send the management and control command 1 to the execution sub-node 201 to instruct the execution sub-node 201 to perform the corresponding management and control process. For example, the management and control command 1 may carry the identifier of the managed computing node and the type of operation to be performed. This operation type is used to instruct the execution of a management operation or a control operation on the computing node, or to instruct the execution of both management and control operations on the computing node simultaneously.
[0078] In practical application scenarios, service sub-node 210 can proactively instruct execution sub-node 201 to manage and control the computing nodes in set 1.
[0079] In the first implementation example, the service sub-node 210 can obtain the running status of each compute node and switching node. For example, compute nodes 301 to 304 and switching nodes 311 to 312 can periodically report their running status information to the management node 200 during operation. The running status information reported by each compute node or switching node can be transmitted to the FPGA via the bus, then from the FPGA to the execution sub-nodes via the bus, and finally forwarded by each execution sub-node to the service sub-node 210 based on the running status of each compute node and switching node. Then, the service sub-node 210 can determine whether there are compute nodes that need to be managed or controlled based on the running status of each compute node and switching node. For example, the service sub-node 210 can determine whether the software in a compute node needs to be upgraded, or whether the routing table in a switching node needs to be updated. Assuming that the service sub-node 210 determines that one or more compute nodes in set 1 need to be managed, the service sub-node 210 can generate a corresponding management command 1 and use this management command 1 to instruct the execution sub-node 201 to manage the compute nodes in set 1.
[0080] In the second implementation example, each compute node and switching node performs fault detection during operation. When a compute node or switching node detects a fault, it can report the fault information to the management node 200. The service sub-node 210 in the management node 200 can then generate a corresponding management command 1 based on the received fault information. This management command 1 is used to control the compute node or switching node, such as instructing it to perform a fault restart or other fault recovery procedures. Alternatively, each execution sub-node can perform fault detection on each compute node or switching node in its assigned set. For example, the execution sub-node can determine whether a compute node or switching node has failed by exchanging heartbeat messages with it. Upon detecting a fault, the execution sub-node can report the fault information to the service sub-node 210, triggering the service sub-node 210 to generate a management command for that compute node or switching node.
[0081] In practical applications, service sub-node 210 can also proactively generate control commands for certain compute nodes or switching nodes based on the operations of technical personnel (such as administrators), so that the execution sub-nodes can be instructed to perform corresponding control operations based on the control commands. For ease of understanding and description, this embodiment takes the control of compute node 301 in set 1 as an example for explanation.
[0082] In a further possible implementation, when the service sub-node 210 communicates with the execution sub-node 201 via Ethernet, the service sub-node 210 can communicate with the execution sub-node 201 based on a preset communication strategy to improve the communication security between the service sub-node 210 and the execution sub-node 201, thereby improving the security of the service sub-node 210's management of the computing nodes in set 1.
[0083] For example, the communication strategy could be an encrypted communication strategy, whereby the service sub-node 210 can encrypt the control command 1 before sending it to the execution sub-node 201, and then send the encrypted control command 1 to the execution sub-node 201. Correspondingly, the execution sub-node 201 can decrypt the received control command 1 before controlling the computing nodes in set 1 according to the decrypted control command 1.
[0084] Alternatively, the communication strategy could be an authentication communication strategy, whereby during the process of the service child node 210 sending the control command 1 to the execution child node 201, the execution child node 201 can first authenticate the service child node 210, and when the service child node 210 passes the authentication, the execution child node 201 will then perform control operations on the computing nodes in set 1 according to the control command 1 sent by the service child node 210.
[0085] In practical applications, communication strategies can also be other types of strategies, such as including both encrypted communication strategies and authentication communication strategies, and there are no restrictions on this.
[0086] S403: Executing sub-node 201 generates management information 1 and control information 1 based on management command 1. The management information 1 is used to manage the communication function of computing node 301, and the control information 1 is used to control the communication function of computing node 301.
[0087] S404: Execution sub-node 201 sends management information 1 and control information 1 to computing node 301 in set 1 based on bus 1 between the execution sub-node 201 and computing node 301 in set 1.
[0088] In this embodiment, assuming that the current instruction of the service sub-node 210 is only to manage the computing node 301 in set 1, the execution sub-node 201 can generate management information 1 and control information 1 for the computing node 301 based on the management command 1, and send the management information 1 and control information 1 to the computing node 301 based on the bus 1 between the service sub-node 210 and the computing node 301.
[0089] For example, each execution sub-node can be configured with a proxy module and a driver module. Figure 3(Not shown in the image), this driver module can drive computing nodes / switching nodes (or programmable devices) connected to the execution sub-nodes via a bus. Furthermore, the execution sub-node can receive control commands sent by the service sub-node 210 through the agent module, generate corresponding management and control information based on these commands, and then use the driver module to send the generated management and control information to the corresponding computing / switching nodes via the bus.
[0090] In this way, after receiving management information 1, computing node 301 can perform corresponding management operations on its communication functions based on management information 1. For example, management information 1 may specifically be information configuring the network protocol, communication method, or communication resources used by computing node 301 when communicating with other nodes, or it may be information used to configure attributes related to the communication functions of computing node 301 (that is, information that can affect the communication functions of computing node 301). For instance, computing node 301 can update the communication strategy used when communicating with other nodes to the communication strategy indicated by management information 1, where the communication strategy indicated by management information 1 may specifically be a strategy for encrypting communication data before transmission. Alternatively, computing node 301 can adjust the amount of resources allocated to some services running on computing node 301 according to management information 1, such as increasing the number of ports that computing node 301 can use when sending data for some services.
[0091] Furthermore, after receiving control information 1, computing node 301 can perform corresponding control operations on its communication functions based on this control information 1. For example, control information 1 may specifically be information setting the network resources, communication format, or forwarding table entries used by computing node 301 when communicating with other nodes, or it may be information configuring attributes related to the communication functions of computing node 301. For instance, computing node 301 may be configured with a forwarding table that records the mapping relationship between the MAC addresses of nodes and the ports on computing node 301. Then, computing node 301 can update the forwarding table according to control information 1, such as adding a mapping relationship between MAC addresses and ports in the forwarding table, or deleting some mapping relationships between MAC addresses and ports.
[0092] In practical application scenarios, management information 1 can be any type of information issued by the control node 200 to the computing node 301 on the management plane, and control information 1 can be any type of information issued by the control node 200 to the computing node 301 on the control plane. In this embodiment, the information content and functions included in the management information and control information are not limited.
[0093] Thus, during the management and control of computing node 301, management information 1 and control information 1 are transmitted through bus 1, which is directly connected to computing node 301 via execution sub-node 201. This allows the transmission channel of management information 1 and control information 1 to be physically isolated from the business data transmission channel in the forwarding plane, thereby ensuring the transmission security of management information 1 and control information 1 and improving the security of management and control node 200 in managing computing node 301.
[0094] In practical applications, the forwarding table in compute node 301 can be configured / modified not only by the bus interface between child node 201 and compute node 301, but also by the compute chip in compute node 301 accessing the forwarding table. Therefore, in a further possible implementation, the compute chip in compute node 301 can be prohibited from modifying the forwarding table.
[0095] In specific implementation, within compute node 301, the compute chip can send an access request for the forwarding table to the communication chip. This access request can be transmitted to the communication chip via the interface between the compute chip and the communication chip, and can be used to request reading or modification of the forwarding table. Upon receiving the access request, the communication chip can parse it, specifically parsing the operation type carried in the request. When the access request indicates reading the forwarding table, the communication chip can send the read result back to the compute chip. Conversely, when the access request indicates modifying the forwarding table, the communication chip can refuse to respond to the access request. Thus, within compute node 301, modification of the forwarding table in the communication chip is prohibited by the compute chip. This ensures that even if a program error occurs in the compute chip or it is attacked, the forwarding table in the communication chip will not be modified by the compute chip, thereby effectively isolating network management and business computing. This prevents business computing from affecting network management and ensures the security of managing compute node 301.
[0096] It should be noted that, for other computing nodes in set 1 and computing nodes in other sets, service sub-node 210 can also manage and control the computing node in a similar manner as described above.
[0097] For example, for compute node 302 in set 1, service sub-node 210 can generate management command 1, which instructs execution sub-node 201 to send management information 1 and control information 1 to compute node 302 via bus 1. In practical applications, execution sub-node 201 can use a programmable device to manage multiple compute nodes in set 1. Specifically, execution sub-node 201 can use a programmable device to send management information 1 and control information 1 to each compute node in set 1 via bus 1, thereby achieving unified management of each compute node in set 1. Alternatively, execution sub-node 201 can use a programmable device to send different management information or different control information to each compute node in set 1 via bus 1, thereby achieving differentiated management of different compute nodes in set 1, such as updating the forwarding table of compute node 301 or updating the port configuration of compute node 302.
[0098] For example, for computing node 303 (or computing node 304) in set 2, service sub-node 210 can generate control command 2 and send it to execution sub-node 202. Execution sub-node 202 generates management information 2 and control information 2 for computing node 303 based on the control command 2, and sends these two information to computing node 303 via the bus between execution sub-node 202 and computing node 303. Accordingly, computing node 303 manages its communication functions based on the received management information 2 and controls its communication functions based on the received control information 2. The management information 2 and control information 2 can be the same as or different from the management information 1 mentioned above.
[0099] In this embodiment, the service sub-node 210 can not only perform security management of computing nodes, but also perform security management of switching nodes. The following continues in conjunction with... Figure 4 This section describes the implementation process of service sub-node 210 managing and switching node 311.
[0100] S405: Service sub-node 210 generates control command 3, which is used to instruct exchange node 311 to perform control.
[0101] S406: Service sub-node 210 sends the control command 3 to execution sub-node 203.
[0102] S407: The execution sub-node 203 generates management information 3 and control information 3 based on the management command 3. The management information 3 is used to manage the data forwarding function of the switching node 311, and the control information 3 is used to control the data forwarding function of the switching node 311.
[0103] S408: The execution sub-node 203 sends management information 3 and control information 3 to the switching node 311 based on the bus 2 between the execution sub-node and the switching node 311.
[0104] exist Figure 3 In the data processing system 30 shown, a separate bus 2 is configured between the execution sub-node 203 and the switching node 311, and the execution sub-node 203 can send management information 3 and control information 3 to the switching node 311 through the bus 2.
[0105] The management information 3 is used to manage the data forwarding function of the switching node 311. For example, management information 3 may specifically be information configuring the network protocol, communication method, or communication resources used by the switching node 311 when forwarding data, or it may be information configuring attributes related to the data forwarding function of the switching node 311. For instance, management information 3 can be used to manage the periodic reporting of performance data by the switching node 311. This performance data may include, for example, the throughput, data forwarding latency, or data forwarding error rate of the switching node 311, so that the execution sub-node 203 can ensure the data forwarding performance of the switching node 311 based on this performance data. As another example, management information 3 can be used to manage firmware upgrades in the switching node 311, so that the switching node 311 can achieve a higher level of performance when forwarding data based on the upgraded firmware.
[0106] Control information 3 is used to control the data forwarding function of switching node 311. For example, control information 3 may specifically be information configuring the network resources, communication format, or routing table entries used by switching node 311 when forwarding data, or it may be information configuring attributes related to the data forwarding function of switching node 311. For instance, control information 3 can be used to configure the routing table in switching node 311, including adding, deleting, or modifying entries in the routing table, thereby controlling switching node 311 to forward data based on the new routing table.
[0107] In practical application scenarios, management information 3 can be any type of information issued by the control node 200 to the exchange node 311 in the management plane, and control information 3 can be any type of information issued by the control node 200 to the exchange node 311 in the control plane. In this embodiment, the information content and functions included in the management information and control information are not limited.
[0108] In this embodiment, the implementation of steps S405 to S408 is similar to that of steps S401 to S404 described above. For details, please refer to the relevant descriptions above, which will not be repeated here.
[0109] In a further possible implementation, during the process of the execution sub-node 203 managing and controlling the exchange node 311, the exchange node 311 can first authenticate the execution sub-node 203. After the execution sub-node 203 passes authentication, the exchange node 311 manages and controls the data forwarding function accordingly based on the received management information 3 and control information 3. Thus, by authenticating the execution sub-node, the exchange node 311 can further improve the security of managing and controlling itself.
[0110] In practical applications, when some switching nodes or computing nodes in the data processing system 30 are not connected to the execution sub-nodes via the bus, any execution sub-node in the control node 200 can send management or control information to the switching node connected to it via the bus. The switching node then forwards the management and control information to the relevant switching or computing nodes. In this way, the control node 200 can achieve normal control over these switching and computing nodes.
[0111] Alternatively, when a link between the execution sub-node and the compute / switching node fails, such as a bus failure or a failure of the interface connecting to the bus, the management node 200 can send management information and switching information to the compute / switching node through the forwarding plane, thereby achieving normal management and control of the compute / switching node.
[0112] In specific implementation, taking the management and control of computing node 301 as an example, when a link failure occurs between execution sub-node 201 and computing node 301, such as execution sub-node 201 determining the link failure through heartbeat detection of computing node 301, service sub-node 210 can send a management and control command 4 to execution sub-node 203. This management and control command 4 is used to instruct the management and control of computing node 301. Then, execution sub-node 203 can generate management information 4 or control information 4 according to the management and control command 4. Since execution sub-node 203 is not directly connected to computing node 301 through the bus, execution sub-node 203 can send management information 4 or control information 4 to switching node 311 based on bus 2. Thus, switching node 311 can forward management information 4 or control information 4 to computing node 301 based on the communication link (communication link in the forwarding plane) between it and computing node 301. Similarly, service sub-node 210 can also manage and control computing node 302 in set 1 in the above manner.
[0113] Similarly, for other switching nodes that are not connected to the execution sub-node 203 via the bus, the management or control information for that switching node can be forwarded to that switching node through the switching node 311, so as to enable the service sub-node 210 to manage and control that switching node.
[0114] Thus, in the event of a link failure, the reliability of managing or controlling the compute or switching nodes can be guaranteed by forwarding management or control information to the managed compute or switching nodes through the forwarding plane.
[0115] It is worth noting that the above implementation method of forwarding management or control information to the managed computing node / switching node through the forwarding plane in the event of a link failure is only an implementation example. When the link does not fail, the service sub-node 210 can also use the forwarding plane to manage the computing node / switching node.
[0116] For example, service sub-node 210 can improve the efficiency of managing multiple computing nodes by simultaneously selecting multiple paths for distributing management and control information. Specifically, when managing computing nodes 301 and 302, service sub-node 210 can send management command 1 to execution sub-node 201 and management command 4 to execution sub-node 203. Then, execution sub-node 201 can generate management information 1 and control information 1 based on management command 1, and send them to computing node 301 via the bus directly connected to it. Simultaneously, execution sub-node 203 can generate management information 4 and control information 4 based on management command 4, and send them to switching node 311 via the bus directly connected to it. Switching node 311 can then forward the management and control information 4 to computing node 302 via the forwarding plane. In this way, the service sub-node 210 can achieve parallel management and control of multiple computing nodes based on the bus and forwarding plane, thereby improving the management and control efficiency of the service sub-node 210 for multiple computing nodes.
[0117] For example, for the same computing node, the service sub-node 210 can also control the execution sub-node 201 to send management information 1 and control information 1 to the computing node 301 via the bus by sending management command 1 to the execution sub-node 201 and management command 4 to the execution sub-node 203, and control the execution sub-node 203 to send management information 4 and control information 4 to the computing node 301 via the forwarding plane. This can improve the management efficiency of the service sub-node 210 for the same computing node. For example, when the service sub-node 210 needs to send a large amount of data when managing a single computing node, the service sub-node 210 can combine the bus and the forwarding plane to send the management information for that computing node in parallel to that computing node, thereby improving the management efficiency for that computing node.
[0118] It is worth noting that this embodiment uses the example of the execution sub-node 201 simultaneously sending both management and control information via bus 1 for illustrative purposes. In actual application scenarios, when the execution sub-node 201 manages and controls the computing nodes 301 in set 1, it can send only management information or only control information via the bus at different time periods. That is, the execution sub-node 201 sends only management information to the computing node 301 via bus 1 in the first time period to manage the communication function of the computing node 301, and sends only control information to the computing node 301 via bus 1 in the second time period to control the communication function of the computing node 301, without needing to send both management and control information to the computing node 301. Similarly, the execution sub-node 203 can also send both management and control information to the computing node 301 via the bus at different time periods.
[0119] and, Figure 4 The execution order of the steps in the illustrated embodiment is only an example. In other embodiments, the control node 200 can execute the control process for the computing node and the switching node in parallel through multiple execution sub-nodes, or the control node 200 can control the switching node first and then control the computing node, etc., without limitation.
[0120] The above Figure 4 The illustrated embodiment mainly describes the process of... Figure 3 The data processing system 30 shown illustrates the method and flow for managing the computing nodes and switching nodes via the service sub-node 210. The startup and operation flow of each node in the data processing system 30 is described below. (See also...) Figure 5 This illustrates a flowchart of the process for starting and running a node in the data processing system 30. For example... Figure 5 As shown, the process may include the following steps.
[0121] S501: The control node 200, each computing node, and the switching node are started and initialized.
[0122] As an implementation example, all nodes (including control nodes, compute nodes, and switching nodes) can be powered on simultaneously. After power-on, each node can load and execute secure boot code locally, such as BootROM secure boot code (BSBC). During the execution of the secure boot code, the node can verify the signature of the HBoot. Once the HBoot passes signature verification, the node can continue loading and executing the HBoot to load and execute subsequent programs. For example, the node can load and execute the high-security information subsystem (HISS), the basic input / output system (BIOS), etc.
[0123] After startup, each node can execute an initialization process. For example, each node can execute the integrated management processor (IMP) firmware to initialize hardware such as SERDES and ports in the node, as well as initialize the configuration of attributes such as the node's MAC address.
[0124] After initializing their ports, compute nodes and switching nodes can negotiate links. For example, the communication chip in a compute node can interact with the switching node via the port to determine supported transmission parameters, such as data transmission speed and mode (full-duplex or half-duplex). Once both compute and switching nodes have completed port initialization and are ready for data transmission, they can report port UP events. Specifically, the communication chip in the compute node can report port UP events to the BIOS. The switching node can report port UP events to the management node 200 via bus 2. Different switching nodes can also negotiate links and report corresponding port UP events for their communication ports. For example, the port UP events reported by the compute and switching nodes can indicate that a port on the compute or switching node changes from a down state to an up state, meaning the compute node can send and receive data through the up port.
[0125] In addition, since the control node is connected to the switching node and the computing node via a bus, the computing node and the switching node can also negotiate links with the control node 200. After initializing the ports connected to the control node 200 and entering a state ready for data transmission, the computing node and the switching node can report port UP events to the control node 200.
[0126] Furthermore, when the computing node and the switching node are connected to the control node 200 via programmable devices, such as Figure 3 As shown, programmable devices can also be initialized.
[0127] For example, after startup, the control node 200 can trigger the programmable device to load and start, and execute the corresponding initialization process. Specifically, the control node 200 can initialize the programmable device as a root complex (RC) and establish a connection with the programmable device via a physical link (bus). Then, the control node 200 can enumerate each programmable device it has established a connection with, and allocate a corresponding base address register (BAR) space for each programmable device according to its device type. Information subsequently sent by the control node 200 to the programmable device can then be cached in this BAR space.
[0128] S502: The control node 200 determines the global topology, which is used to indicate the connection relationships between computing nodes, switching nodes and control nodes in the data processing system 30.
[0129] For example, the control node 200 can determine the ports used when connecting to compute nodes, other switch nodes, and the control node, respectively, based on the port UP events reported by the switch nodes. Therefore, the control node 200 can determine the connection topology between the compute nodes and the switch nodes, and the connection topology between the switch nodes and the control node 200, based on the ports used for connections between the switch nodes and compute nodes, between different switch nodes, and between the switch nodes and the control node 200.
[0130] Furthermore, the control node 200 can determine the ports used when different compute nodes connect to the control node 200 based on the port UP events reported by the compute nodes. Specifically, it can determine the ports used when each compute node connects to each execution sub-node in the control node 200. Thus, the control node 200 can determine the connection topology between the compute nodes and the control node 200 based on the ports used when connecting to each other.
[0131] Thus, the control node 200 can determine a global topology structure that indicates the connection relationships between the computing node, the switching node, and the control node 200 based on the connection topology between the computing node and the switching node, the connection topology between the switching node and the control node 200, and the connection topology between the computing node and the control node 200.
[0132] S503: The control node 200 performs route calculations based on the global topology to obtain a routing table for the switching nodes and a forwarding table for the calculation nodes.
[0133] S504: The control node 200 sends a forwarding table to the computing node based on bus 1 and a routing table to the switching node based on bus 2.
[0134] Among them, the control node 200 distributes routing tables and forwarding tables based on the master line which is physically isolated from the forwarding plane, which can improve the security of distributing forwarding tables and routing tables.
[0135] S505: Compute nodes obtain network configuration parameters.
[0136] For example, the network configuration parameters may include at least one of the following: the IP address of the compute node, the subnet mask, the default gateway, and the domain name server (DNS) address, or they may include other types of parameters.
[0137] In one possible implementation, the compute node may be configured with a network interface card (NIC), and the compute node may first initialize the NIC. Then, the compute node may obtain network configuration parameters based on the DHCP protocol. Specifically, the compute node may send a DHCP discover message to the switching node connected to it. This DHCP discover message can be received by a protocol service node connected to the same physical network, which supports the DHCP protocol. After receiving the DHCP discover message, the protocol service node may respond with a DHCP offer message. This DHCP offer message contains candidate values for network configuration parameters that the protocol service node can provide, such as at least one available IP address, subnet mask, gateway, DNS server address, etc. After receiving the DHCP offer message, the compute node can select the candidate value from the candidate values of the network configuration parameters provided by the protocol service node, such as selecting the IP address used by the compute node from multiple available IP addresses, and send a DHCP request message to the protocol service node based on the selected candidate value of the network configuration parameters. After receiving a DHCP request message, the protocol service node can send back a DHCP acknowledge message. This DHCP acknowledge message carries candidate values for the network configuration parameters provided by the protocol service node to indicate that the compute node has used the correct network configuration parameters.
[0138] S506: The compute node obtains the OS image file and starts the OS based on the OS image file.
[0139] In this embodiment, the data processing system 30 may further include a mirror service node, which can be configured with image files of one or more operating systems. The network configuration parameters obtained by the computing node may also include indication information of the mirror service node, such as the IP address of the mirror service node. The computing node can then access the mirror service node based on this indication information. For example, the computing node can access the mirror service node based on a simple file transfer protocol (TFTP) to download the OS image file from the mirror service node.
[0140] After obtaining the computing OS image file, the computing node can start and run the OS by executing the OS image file, so that the computing node can start running services based on the OS.
[0141] It is worth noting that the implementation method for starting and initializing each node in the data processing system 30 described in this embodiment is only an illustrative example and is not intended to limit the scope. For example, in other possible implementations, the control node 200 may only determine the topology between the computing node and the switching node, and configure the routing table in the switching node based on the topology.
[0142] In a further possible implementation, after each node in the data processing system 30 starts running, each execution sub-node in the control node 200 can also perform connectivity detection on the communication link between the computing node and the switching node, as well as connectivity detection on the connection between different computing nodes. These will be described in detail below.
[0143] 1. Detect the connectivity of the communication link between the compute node and the switching node. For ease of understanding, the following example demonstrates the detection of the connectivity of the communication link between switching node 311 and compute node 301.
[0144] For example, such as Figure 6 As shown, the execution sub-node 203 can be configured with an operation administration and maintenance (OAM) module and a driver module. Figure 3 (Not shown in the diagram), this driver module can drive each switching node that communicates with the execution sub-node 203. The OAM module generates a test message 1 between the switching node 311 and the compute node 301. This test message 1 can carry the output port of the switching node 311, through which the switching node 311 communicates with the compute node 301. Then, the OAM module sends the test message 1 to the switching node 311 via the bus 2 through the driver module. The switching node 311 forwards the test message 1 to the compute node 301 through the output port in the test message 1. After receiving the test message 1, the compute node 301 can generate a response message 1 in response to the test message 1 and send the response message 1 back to the switching node 311. In practical applications, the switching node 311 can receive the response message 1 from the compute node 301 through the output port. Finally, the switching node 311 can forward the response message 1 to the execution sub-node 203 via the bus 2, such as... Figure 6As shown. Thus, the execution sub-node 203 can determine whether the communication link between the switching node 311 and the computing node 301 is connected based on response message 1. For example, when the execution sub-node 203 receives response message 1 within a preset time period, it can determine that the communication link between the switching node 311 and the computing node 301 is connected. Conversely, if the execution sub-node 203 does not receive response message 1 within the preset time period, it can determine that the communication link between the switching node 311 and the computing node 301 is not connected. In practical applications, the switching node 311 and the computing node 301 can communicate via multiple ports. In this case, the execution sub-node 203 can generate test messages for different ports based on the above method to test whether each port between the switching node 311 and the computing node 301 affects the connectivity of the communication link.
[0145] Similarly, for the communication links between the remaining switching nodes and the remaining computing nodes, each execution sub-node can also use the corresponding method to perform connectivity detection, thereby determining the connectivity of the global communication links.
[0146] In practical applications, each execution sub-node in the control node 200 can periodically detect the connectivity of communication links between different computing nodes and switching nodes, so as to promptly identify disconnected communication links and perform maintenance, thereby improving the stability of communication services and the reliability of the data processing system 30.
[0147] 2. Detect the connectivity of communication links between different computing nodes. For ease of understanding, the following example demonstrates the detection of the connectivity of the communication link between computing node 301 and computing node 303.
[0148] For example, such as Figure 7As shown, the execution sub-node 201 can be configured with an OAM module and a driver module. The OAM module can generate a test packet 2 for compute nodes 301 and 303, and send the test packet 2 to compute node 301 via bus 1 through the driver module. The test packet 2 can carry the MAC address of compute node 303. Compute node 301 queries its forwarding table based on the MAC address in the test packet 2, and sends the test packet 2 to the corresponding switching node based on the port obtained from the query. For example, let's assume the test packet 2 is sent to switching node 311. Switching node 311 can query its local routing table based on the MAC address of compute node 301 to determine the interface for forwarding the test packet 2, and then forward the test packet 2 to compute node 303 through that interface. Specifically, it can first forward the test packet 2 to switching node 312, and then switching node 312 forwards the test packet 2 to compute node 303. Then, after receiving the test message 2, the compute node 303 can generate a response message 2 for the test message 2 and send the response message 2 back to the compute node 301 through the switching node 312 and the switching node 311. The compute node 301 can then send the response message 2 back to the execution sub-node 201 through the bus 1.
[0149] In this way, the execution sub-node 201 can determine whether the communication link between computing node 301 and computing node 303 is connected based on the response message 2. For example, when the execution sub-node 201 receives the response message 2 within a preset time period, the execution sub-node 201 can determine that the communication link between computing node 301 and computing node 303 is connected. Conversely, when the execution sub-node 201 does not receive the response message 2 within the preset time period, the execution sub-node 201 can determine that the communication link between computing node 301 and computing node 303 is not connected.
[0150] Similarly, for the communication links between other computing nodes, each execution sub-node can also use corresponding methods to perform connectivity detection, thereby determining the connectivity of the communication links between multiple computing nodes globally.
[0151] In practical applications, each execution sub-node in the control node 200 can periodically detect the connectivity of communication links between different computing nodes in order to promptly identify disconnected communication links and perform maintenance, thereby improving the stability of communication services and the reliability of the data processing system 30.
[0152] In this way, by performing connectivity checks on the communication links between the computing nodes and the switching nodes, as well as the communication links between different computing nodes, the execution sub-nodes can promptly locate and detect communication link failures, thereby improving the operational efficiency of communication links and enhancing the availability and reliability of the data processing system 30.
[0153] It is understood that the above implementation example of connectivity detection is for illustrative purposes only, and other methods may be used for connectivity detection in other embodiments. Furthermore, in practical applications, the connectivity of the communication link between the compute node and the switching node can be detected first. After determining that the communication link between the compute node and the switching node is in a normal connected state, the child node then detects the connectivity of the communication links between different compute nodes.
[0154] It is worth noting that other reasonable combinations of steps that can be conceived by those skilled in the art based on the above description also fall within the scope of protection of this application. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are preferred embodiments, and the actions involved are not necessarily all essential to this application.
[0155] The above combination Figures 2 to 7 The data processing system and data processing method provided in the embodiments of this application will be introduced. Next, the structure of the control node provided in the embodiments of this application will be described with reference to the accompanying drawings.
[0156] See Figure 8 The diagram illustrates the structure of a control node 800, which is connected to multiple computing nodes via a first bus and also connected to at least one switching node via a second bus. Figure 8 As shown, the control node 800 includes:
[0157] The sending module 801 is used to send first management information and first control information to multiple computing nodes based on the first bus. The first management information includes information for managing the communication functions of the computing nodes, and the first control information includes information for controlling the communication functions of the computing nodes.
[0158] The sending module 802 is used to send second management information and second control information to at least one switching node based on the second bus. The second management information includes information for managing the data forwarding function of the switching node, and the second control information includes information for controlling the data forwarding function of the switching node.
[0159] In one possible implementation, the sending module 802 is further configured to send third management information or third control information to at least one switching node based on the second bus. The third management information includes information for managing the communication functions of the computing node, and the third control information includes information for controlling the communication functions of the computing node. The third management information or third control information is forwarded to multiple computing nodes through at least one switching node.
[0160] In one possible implementation, the sending module 802 is specifically used to send third management information or third control information to at least one switching node based on the second bus in the event of a link failure between the management node 800 and multiple computing nodes.
[0161] In one possible implementation, the control node 800 is also connected to a programmable device via a first bus;
[0162] The transmitting module 801 is used to transmit first management information and first control information to multiple computing nodes via a first bus using a programmable device.
[0163] In one possible implementation, the control node 800 further includes a generation module 803:
[0164] The generation module 803 is used to generate a first test message. At this time, the sending module 802 is also used to send the first test message to at least one switching node through the second bus. The first test message is used to test whether the communication link between at least one switching node and multiple computing nodes is connected.
[0165] Alternatively, the generation module 803 is used to generate a second test message. In this case, the sending module 802 is also used to send the second test message to multiple computing nodes through the first bus. The second test message is used to test whether the communication link between the multiple computing nodes is connected.
[0166] In one possible implementation, the plurality of computing nodes includes a second computing node, and the control node 800 further includes a receiving module 804, which is used to receive fault information based on a first bus when a fault is detected.
[0167] because Figure 8 The control node 800 shown corresponds to the above. Figures 2 to 7 The control node 200 in the illustrated embodiment is used to execute the methods executed by the control node 200 in the above embodiments (including the methods executed by the service sub-node 210 and multiple execution sub-nodes). Figure 8 The specific implementation method of the control node 800 shown and its technical effects are described in the relevant parts of the above embodiments, and will not be repeated here.
[0168] Figure 9 This is a schematic diagram of the hardware structure of a control node 900 provided in this application.
[0169] like Figure 9As shown, the control node 900 includes a processor 901, a memory 902, and a communication interface 903. The processor 901, memory 902, and communication interface 903 communicate via a bus 904, or via wireless transmission or other means. The memory 902 stores instructions, and the processor 901 executes the instructions stored in the memory 902. Furthermore, the control node 900 may also include a memory unit 905, which is connected to the processor 901, the storage medium 902, and the communication interface 903 via the bus 904. The memory 902 stores program code, and the processor 901 can call the program code stored in the memory 902 to perform the following operations:
[0170] Based on the first bus, first management information and first control information are sent to the plurality of computing nodes. The first management information includes information for managing the communication functions of the computing nodes, and the first control information includes information for controlling the communication functions of the computing nodes.
[0171] Based on the second bus, second management information and second control information are sent to the at least one switching node. The second management information includes information for managing the data forwarding function of the switching node, and the second control information includes information for controlling the data forwarding function of the switching node.
[0172] It should be understood that in this embodiment, the processor 901 can be a CPU, but it can also be other 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 device assemblies, etc. A general-purpose processor can be a microprocessor or any conventional processor.
[0173] The memory 902 may include read-only memory and random access memory, and provides instructions and data to the processor 901. The memory 902 may also include non-volatile random access memory.
[0174] The memory 902 can be volatile memory or non-volatile memory, or it can include both. The 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. The 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 random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0175] The communication interface 903 is used to communicate with other devices connected to the control node 900. The bus 904 may include a data bus, a power bus, a control bus, and a status signal bus, etc. However, for clarity, all buses are labeled as bus 904 in the figure.
[0176] It should be understood that the control node 900 according to the embodiments of this application can correspond to the control node 200 in the embodiments of this application, and can correspond to the method executed by the control node 200 in the methods shown in the above embodiments (including the method executed by the service sub-node 210 and multiple execution sub-nodes). The above and other operations and / or functions implemented by the control node 900 are respectively to implement the flow of the corresponding method executed by the control node 200 in the above method embodiments. For the sake of brevity, they will not be described in detail here.
[0177] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by at least one computing device, or a data storage device such as a data center containing 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., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct at least one computing device to perform the above-described data processing method.
[0178] This application also provides a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on at least one computing device, all or part of the processes or functions described in this application are generated.
[0179] The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, or data center to another website, computer, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.
[0180] The computer program product can be a software installation package. When any of the aforementioned data processing methods is required, the computer program product can be downloaded and executed on at least one computing device.
[0181] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or 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 website, computer, server, or data center 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 includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. A semiconductor medium can be a solid-state drive.
[0182] The terminology used in the above embodiments is for the purpose of describing specific embodiments only and is not intended to be a limitation of this application. As used in the specification and appended claims of this application, the singular expressions “a,” “an,” “the,” “the,” “the,” and “this” are intended to also include expressions such as “one or more,” unless the context clearly indicates otherwise. It should also be understood that in the embodiments of this application, “one or more” refers to one, two, or more; the character “ / ” generally indicates that the preceding and following objects are in an “or” relationship. In the embodiments of this application, “simultaneously” means within the same time period, including situations where they are at the same moment. The terms “first,” “second,” etc., in the specification, claims, and 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 terms can be used interchangeably where appropriate, and this is merely a way of distinguishing objects with the same attributes in the embodiments of this application.
[0183] References to "one embodiment" or "some embodiments" as described in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless otherwise specifically emphasized.
[0184] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in this application, and these modifications or substitutions should all be covered 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 data processing system, characterized in that, The data processing system includes a control node, multiple computing nodes, and at least one switching node. The control node is connected to the multiple computing nodes via a first bus, and the control node is connected to the at least one switching node via a second bus. The control node is used to send first management information and first control information to the plurality of computing nodes based on the first bus. The first management information includes information for managing the communication functions of the computing nodes, and the first control information includes information for controlling the communication functions of the computing nodes. The control node is further configured to send second management information and second control information to the at least one switching node based on the second bus. The second management information includes information for managing the data forwarding function of the switching node, and the second control information includes information for controlling the data forwarding function of the switching node.
2. The system according to claim 1, characterized in that, The control node is also used to send third management information or third control information to the at least one switching node based on the second bus. The third management information includes information for managing the communication functions of the computing node, and the third control information includes information for controlling the communication functions of the computing node. The at least one switching node is used to forward the third management information or the third control information to the plurality of computing nodes.
3. The system according to claim 2, characterized in that, The control node is specifically used to send the third management information or the third control information to the at least one switching node based on the second bus in the event of a link failure between the control node and the plurality of computing nodes.
4. The system according to any one of claims 1 to 3, characterized in that, The plurality of computing nodes include computing nodes in a first set and computing nodes in a second set, and the control node includes service sub-nodes, a first execution sub-node, and a second execution sub-node; The service sub-node is used to send a first control command to the first execution sub-node and a second control command to the second execution sub-node; The first execution sub-node is configured to send the first management information and the first control information to the computing nodes in the first set based on the first bus, according to the first management command; The second execution sub-node is used to send the first management information and the first control information to the computing nodes in the second set based on the first bus, according to the second management command.
5. The system according to claim 4, characterized in that, The control node also includes a third execution sub-node; The service sub-node is also used to send a third control command to the third execution sub-node; The third execution sub-node is used to send the second management information and the second control information to the at least one switching node based on the second bus, according to the third management command.
6. The system according to claim 4 or 5, characterized in that, The service sub-node is specifically used to send the first control command to the first execution sub-node and the second control command to the second execution sub-node via Ethernet.
7. The system according to any one of claims 1 to 6, characterized in that, The data processing system further includes a programmable device connected to the first bus; The control node is used to send the first management information and the first control information to the plurality of computing nodes via the programmable device based on the first bus.
8. The system according to any one of claims 1 to 7, characterized in that, The plurality of computing nodes includes a first computing node, which includes a computing chip and a communication chip. The first control information is used to configure a forwarding table in the communication chip, and the forwarding table is used to indicate the port used when sending data to different nodes. The computing chip is used to send an access request for the forwarding table to the communication chip; The communication chip is configured to refuse to respond to an access request when the access request is intended to indicate modification of the forwarding table.
9. The system according to any one of claims 1 to 8, characterized in that, The control node is also used for: A first test message is generated and sent to the at least one switching node via the second bus. The first test message is used to test whether the communication link between the at least one switching node and the plurality of computing nodes is connected. Alternatively, a second test message can be generated and sent to the plurality of computing nodes via the first bus. The second test message is used to test whether the communication link between the plurality of computing nodes is connected.
10. The system according to any one of claims 1 to 9, characterized in that, The plurality of computing nodes includes a second computing node; The second computing node is used to send fault information to the control node via the first bus when a fault is detected.
11. A data processing method, characterized in that, The data processing method is applied to a data processing system, which includes a control node, multiple computing nodes, and at least one switching node. The control node is connected to the multiple computing nodes via a first bus and to the at least one switching node via a second bus. The method includes: The control node sends first management information and first control information to the plurality of computing nodes based on the first bus. The first management information includes information for managing the communication functions of the computing nodes, and the first control information includes information for controlling the communication functions of the computing nodes. The control node sends second management information and second control information to the at least one switching node based on the second bus. The second management information includes information for managing the data forwarding function of the switching node, and the second control information includes information for controlling the data forwarding function of the switching node.
12. The method according to claim 11, characterized in that, The method further includes: The control node sends third management information or third control information to the at least one switching node based on the second bus. The third management information includes information for managing the communication functions of the computing node, and the third control information includes information for controlling the communication functions of the computing node. The at least one switching node forwards the third management information or the third control information to the plurality of computing nodes.
13. The method according to claim 12, characterized in that, The control node sends the third management information or the third control information to the at least one switching node based on the second bus, including: In the event of a link failure between the control node and the plurality of computing nodes, the control node sends the third management information or the third control information to the at least one switching node based on the second bus.
14. The method according to any one of claims 11 to 13, characterized in that, The plurality of computing nodes include computing nodes in a first set and computing nodes in a second set, and the control node includes service sub-nodes, a first execution sub-node, and a second execution sub-node; The control node sends first management information and first control information to the plurality of computing nodes based on the first bus, including: The service sub-node sends a first control command to the first execution sub-node and a second control command to the second execution sub-node; The first execution sub-node sends the first management information and the first control information to the computing nodes in the first set based on the first bus, according to the first management command. The second execution sub-node sends the first management information and the first control information to the computing nodes in the second set based on the first bus, according to the second management command.
15. The method according to claim 14, characterized in that, The control node also includes a third execution sub-node; The control node sends second management information and second control information to the at least one switching node based on the second bus, including: The service sub-node sends a third control command to the third execution sub-node; The third execution sub-node sends the second management information and the second control information to the at least one switching node based on the second bus, according to the third management command.
16. The method according to claim 14 or 15, characterized in that, The service sub-node sends a first control command to the first execution sub-node and a second control command to the second execution sub-node, including: The service sub-node sends the first control command to the first execution sub-node and the second control command to the second execution sub-node via Ethernet.
17. The method according to any one of claims 11 to 16, characterized in that, The data processing system further includes a programmable device connected to the first bus; The control node sends first management information and first control information to the plurality of computing nodes based on the first bus, including: The control node uses the programmable device to send the first management information and the first control information to the plurality of computing nodes via the first bus.
18. The method according to any one of claims 11 to 17, characterized in that, The plurality of computing nodes includes a first computing node, which includes a computing chip and a communication chip. The first control information is used to configure a forwarding table in the communication chip, and the forwarding table is used to indicate the port used when sending data to different nodes. The method further includes: The computing chip sends an access request for the forwarding table to the communication chip; When the access request is intended to indicate modification of the forwarding table, the communication chip refuses to respond to the access request.
19. The method according to any one of claims 11 to 18, characterized in that, The method further includes: The control node generates a first test message and sends the first test message to the at least one switching node through the second bus. The first test message is used to test whether the communication link between the at least one switching node and the plurality of computing nodes is connected. Alternatively, the control node generates a second test message and sends the second test message to the plurality of computing nodes through the first bus. The second test message is used to test whether the communication link between the plurality of computing nodes is connected.
20. The method according to any one of claims 11 to 19, characterized in that, The plurality of computing nodes includes a second computing node, and the method further includes: When the second computing node detects a fault, it sends fault information to the control node via the first bus.
21. A control node, characterized in that, The control node is connected to multiple computing nodes via a first bus, and the control node is connected to at least one switching node via a second bus; The control node includes: The first sending module is configured to send first management information and first control information to the plurality of computing nodes based on the first bus. The first management information includes information for managing the communication functions of the computing nodes, and the first control information includes information for controlling the communication functions of the computing nodes. The second sending module is used to send second management information and second control information to the at least one switching node based on the second bus. The second management information includes information for managing the data forwarding function of the switching node, and the second control information includes information for controlling the data forwarding function of the switching node.
22. The control node according to claim 21, characterized in that, The second sending module is further configured to send third management information or third control information to the at least one switching node based on the second bus. The third management information includes information for managing the communication functions of the computing node, and the third control information includes information for controlling the communication functions of the computing node. The third management information or the third control information is forwarded to the plurality of computing nodes through the at least one switching node.
23. The control node according to claim 21 or 22, characterized in that, The control node is also connected to a programmable device via the first bus; The first sending module is used to send the first management information and the first control information to the plurality of computing nodes via the programmable device and the first bus.
24. A computer-readable storage medium, characterized in that, Includes instructions that, when executed on at least one computing device, cause the at least one computing device to perform the steps of the method as described in any one of claims 11 to 20.
25. A computer program product containing instructions, characterized in that, When it is run on at least one computing device, it causes the at least one computing device to perform the steps of the method as described in any one of claims 11 to 20.