Device management method and processing device
By introducing a collaborative management mechanism of at least two nodes in the CXL device management system, the problem of insufficient reliability and stability of CXL device management in the prior art is solved, and the continuous equipment management in the case of node abnormalities is achieved.
Patent Information
- Application Number
- PCT/CN2024/081272
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-27
- Filing Date
- 2024-03-12
- Publication Date
- 2025-04-03
AI Technical Summary
In the prior art, the reliability and stability of CXL equipment management are poor, especially when the management equipment fails, the CXL equipment cannot be effectively managed.
Provided is a device management method to ensure the management reliability of CXL devices through communication between at least two nodes. The specific method includes: the first node sends binding information to the CXL switch to manage the binding status of the CXL device and the computing device; when an exception occurs in the first node, the second node takes over the management task and sends the corresponding binding information to the CXL switch.
Through the collaborative management of at least two nodes, it is ensured that the CXL device can still be effectively managed when an exception occurs on the first node, which improves the reliability and stability of CXL device management.
Smart Images

Figure CN2024081272_03042025_PF_FP_ABST
Abstract
Description
Equipment management method and processing equipment
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on September 27, 2023, with application number 202311271210.X and application name “Equipment Management Method and Processing Equipment”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of computer technology, and in particular to a device management method and processing device. Background Art
[0003] In related technologies, Compute Express Link (CXL) devices are connected to computing devices to improve their capabilities. Furthermore, management devices are introduced to manage CXL devices, ensuring that different computing devices can use CXL devices.
[0004] However, when the management device fails, the CXL device will be unable to be managed, which results in poor reliability and stability of CXL device management.
[0005] Therefore, how to improve the reliability and stability of CXL equipment management has become a technical problem that needs to be solved urgently.
[0006] Summary of the Invention
[0007] The embodiments of the present application provide a device management method and a processing device, which help to improve the reliability and stability of CXL device management.
[0008] To achieve the above objectives, the embodiments of the present application adopt the following technical solutions:
[0009] In a first aspect, a device management method for at least two nodes is provided. The method includes: a first node of the at least two nodes sending first binding information to a Compute Express Link (CXL) switch; the first binding information is used to specify a binding status between a CXL device and a computing device connected via the CXL switch, the binding status including establishing a binding or releasing a binding; and, in the event of an abnormality in the first node, a second node of the at least two nodes sending second binding information to the CXL switch; the second binding information is used to specify a binding status between the CXL device and the computing device connected via the CXL switch.
[0010] In this solution, a first node of at least two nodes can send first binding information to a CXL switch to specify the binding status between a CXL device and a computing device connected via the CXL switch. If an exception occurs on the first node, a second node of the at least two nodes can send second binding information to the CXL switch to specify the binding status between the CXL device and the computing device connected via the CXL switch. Because different nodes among the at least two nodes can manage CXL devices, if an exception occurs on one node managing a CXL device (i.e., the first node), the other node (i.e., the second node) can continue to manage the CXL device. Compared to related art methods in which the binding status between the CXL device and the computing device cannot be managed after the management device goes offline, the device management method of the present embodiment improves the reliability and stability of CXL device management.
[0011] In a possible implementation, the method further includes: the first node establishing a heartbeat connection with each non-first node of the at least one non-first node.
[0012] In this implementation, on the one hand, the first node can understand whether each non-first node has experienced an anomaly, which helps the first node understand the number of available backup nodes and the number of backup nodes that have experienced an anomaly. On the other hand, each non-first node can understand whether the first node has experienced an anomaly, which helps it select a new communication node in a timely manner when an anomaly occurs in the first node.
[0013] In another possible implementation, the method further includes: determining that an abnormality occurs in the first node when each non-first node fails to receive the heartbeat information sent by the first node.
[0014] In this implementation, if each non-first node fails to receive the heartbeat information sent by the first node, it indicates that the first node is offline or faulty. In this case, the first node is determined to be abnormal, so that the second node can manage the CXL device, which helps to ensure the stability and reliability of CXL device management.
[0015] In another possible implementation, the method further includes: determining that an abnormality occurs in the first node when a non-first node fails to receive the heartbeat information sent by the first node.
[0016] In this implementation, when a non-first node fails to receive the heartbeat information sent by the first node, it indicates that the first node may be offline or faulty. In this case, the first node is determined to be abnormal, so that the second node can manage the CXL device, which helps to improve the stability and reliability of CXL device management.
[0017] In another possible implementation, the method further includes: determining that an abnormality occurs in the first node when the first node does not receive heartbeat information sent by the target non-first node and at least some non-first nodes receive signal information sent by the target non-first node.
[0018] In this implementation, if the first node fails to receive the heartbeat information sent by the target non-first node, and at least some of the non-first nodes receive the signal information sent by the target non-first node, it indicates that the first node may be offline or faulty. In this case, the first node is determined to be abnormal, so that the second node can manage the CXL device, which helps to improve the stability and reliability of CXL device management.
[0019] In another possible implementation, the method further includes: the first node creates a first interface; the first interface indicates the format of data transmitted by the processing device to the first node; in the event of an abnormality in the first node, the second node creates a second interface; the second interface indicates the format of data transmitted by the processing device to the second node, and the second interface has the same interface type as the first interface.
[0020] In this implementation, the first interface created by the first node and the second interface created by the second node are of the same interface type, so that the format of data transmitted by the processing device to the first node or the second node is the same, which helps to reduce the impact of replacing the communication node of at least two nodes on the processing device.
[0021] In another possible implementation, the method further includes: the first node sets the IP address of the first node as the target Internet Protocol address IP address; the target IP address is the IP address of a node among at least two nodes that communicates with the processing device; in the event of an abnormality in the first node, the second node sets the IP address of the second node as the target IP address.
[0022] In this implementation, when the first node acts as a communication node, the first node sets its own IP address as the target IP address. When an abnormality occurs in the first node, the second node sets its own IP address as the target IP address. Since the target IP address is the IP address of the node that communicates with the processing device among the at least two nodes, the processing device cannot perceive the node replacement, which helps to reduce the impact of the replacement of the communication node of at least two nodes on the processing device.
[0023] In another possible implementation, the method further includes: the first node reports a first IP address; the first IP address is the IP address of the first node; when the first node is in a fault state, the second node reports a second IP address; the second IP address is the IP address of the second node.
[0024] In this implementation, when the first node acts as a communication node, the first node reports its own IP address (i.e., the first IP address), so that the upper-layer device (such as a processing device) can communicate with the first node based on the first IP address. When the second node acts as a communication node, the second node again reports its own IP address (i.e., the second IP address), so that the upper-layer device can communicate with the second node based on the second IP address. This helps to ensure the communication reliability between the upper-layer device and the communication node in at least two nodes.
[0025] In another possible implementation, at least two nodes form a cluster; the method also includes: the master node of the cluster updates the status of the cluster and / or updates the status of at least one slave node of the cluster; wherein the master node of the cluster is the first node or the second node, and the at least one slave node of the cluster includes nodes in the cluster other than the master node; the status of the cluster includes a normal state, a degraded state or a non-redundant state; the status of a slave node includes an online state or an offline state.
[0026] In this implementation, by updating the state of the cluster and / or the state of the slave node, the stability and reliability of the cluster can be understood through the state of the cluster and / or the state of the slave node.
[0027] In another possible implementation, the master node of the cluster updates the status of at least one slave node of the cluster, including: when an abnormality occurs in a target slave node of the cluster, the master node of the cluster updates the status of the target slave node to an offline state.
[0028] In this implementation, when an exception occurs in a target slave node, the state of the target slave node is updated to an offline state. In this way, the number of nodes currently available in the cluster can be indicated by the states of different nodes.
[0029] In another possible implementation, the method also includes: when the master node does not receive the heartbeat information sent by the target slave node, and some of the slave nodes do not receive the signal information sent by the target slave node, the master node determines that the target slave node is offline; the some of the slave nodes include each slave node in at least one slave node except the target slave node.
[0030] In another possible implementation, the master node of the cluster updates the state of the cluster, including: when the number of online nodes in the cluster is less than or equal to a number threshold, the master node of the cluster updates the state of the cluster to a degraded state;
[0031] In this implementation, if the number of online nodes in the cluster is less than or equal to a number threshold, the cluster state is updated to a degraded state. In this way, the status of the currently available standby nodes can be indicated by the cluster state.
[0032] In another possible implementation, the master node of the cluster updates the state of the cluster, including: when the number of online nodes in the cluster is one, the master node of the cluster updates the state of the cluster to a non-redundant state.
[0033] In this implementation, when only one node is online in the cluster, the cluster state is updated to a non-redundant state. In this way, the status of the currently available standby nodes can be indicated by the cluster state.
[0034] In another possible implementation, the method further includes: the master node of the cluster sending cluster information of the cluster in response to the received acquisition request. The cluster information includes at least one of the following: cluster status, number of nodes in the cluster, number of online slave nodes in the cluster, number of offline slave nodes in the cluster, status of each slave node in the cluster, and IP address of each slave node in the cluster.
[0035] In this implementation, the master node of the cluster reports cluster information of the cluster in response to an acquisition request from an upper-layer device (eg, a processing device). In this way, cluster information can be sent to the upper-layer device only when the upper-layer device needs to use the cluster information.
[0036] In another possible implementation, the method further includes: the master node of the cluster sending cluster information of the cluster to the processing device. In this implementation, the master node of the cluster proactively reports the cluster information, which helps to improve the convenience of upper-layer devices (such as processing devices) in obtaining cluster information.
[0037] In another possible implementation, the method further includes: the cluster master node sending cluster information to the electronic device. In this implementation, the cluster master node proactively sends cluster information to the electronic device used by the user, helping the user to promptly understand the status of the cluster, so that when the cluster status is poor (such as lack of redundancy or degradation), timely processing can be carried out.
[0038] In another possible implementation, the first interface is used to indicate the format of data transmitted by each computing device to the first node; the second interface is used to indicate the format of data transmitted by each computing device to the second node.
[0039] In another possible implementation, the target IP address is an IP address of a node among the at least two nodes that communicates with each computing device.
[0040] In another possible implementation, the first IP address is an IP address used by the first node to communicate with each computing device; and the second IP address is an IP address used by the second node to communicate with each computing device.
[0041] In a second aspect, a device management method is provided for processing a device, the method comprising: sending first binding information to a first node of at least two nodes; the first binding information is used to specify a binding status between a CXL device and a computing device connected via a CXL switch, the binding status including establishing or releasing a binding relationship; and sending second binding information to a second node of the at least two nodes; the second binding information is sent when an abnormality occurs in the first node, the second binding information is used to specify a binding status between the CXL device and the computing device connected via the CXL switch.
[0042] In this solution, a processing device can send first binding information to a CXL switch via a first node of at least two nodes to specify the binding status between a CXL device and a computing device connected via the CXL switch. If an exception occurs at the first node, the processing device can send second binding information to the CXL switch via a second node of at least two nodes to specify the binding status between the CXL device and the computing device connected via the CXL switch. Because different nodes among the at least two nodes can manage CXL devices, if an exception occurs at one node managing a CXL device (i.e., the first node), the processing device can continue to manage the CXL device using another node (i.e., the second node). Compared to related art methods in which the binding status between a CXL device and a computing device cannot be managed after the management device goes offline, the device management method of the present embodiment improves the reliability and stability of CXL device management.
[0043] In one possible implementation, sending first binding information to a first node includes: sending the first binding information to the first node based on a first interface; the first interface is created for the first node, and the first interface is used to indicate the format of data transmitted by the processing device to the first node; sending second binding information to a second node includes: sending second binding information to the second node based on a second interface; the second interface is created for the second node, and the second interface is used to indicate the format of data transmitted to the second node, and the second interface has the same interface type as the interface.
[0044] In another possible implementation, sending first binding information to the first node includes: sending the first binding information to the first node indicated by the target IP address; the target IP address is the IP address of a node among at least two nodes that communicates with the processing device; sending second binding information to the second node includes: sending the second binding information to the second node indicated by the target IP address.
[0045] In another possible implementation, sending first binding information to the first node includes: obtaining a first IP address from a database; sending the first binding information to the first node indicated by the first IP address; sending second binding information to the second node includes: obtaining a second IP address from the database; and sending the second binding information to the second node indicated by the second IP address.
[0046] In another possible implementation, the method also includes: sending an acquisition request to the master node of the cluster, the acquisition request is used to request cluster information of the cluster, the cluster includes at least two nodes, and the master node of the cluster is the first node or the second node; receiving the cluster information sent by the master node of the cluster.
[0047] Cluster information includes at least one of the following: cluster status, number of cluster nodes, number of online slave nodes in the cluster, number of offline slave nodes in the cluster, status of each slave node in the cluster, and IP address of each slave node in the cluster. Cluster status includes normal, degraded, or non-redundant status. Slave nodes are nodes in the cluster other than the master node. The status of a slave node includes online or offline. This helps accurately record the status of the cluster and its nodes.
[0048] In another possible implementation, the method further includes: sending cluster information to the electronic device according to a preset period.
[0049] In this implementation, by setting the cluster information to be sent to the electronic device according to a preset period, it is helpful for the user to accurately understand the cluster information of the cluster.
[0050] In another possible implementation, the method further includes: when the cluster state is a degraded state, a non-redundant state, or an offline state, sending cluster information to the electronic device.
[0051] In this implementation, cluster information is sent to electronic devices when the cluster state changes, such as when it changes from a normal state to a degraded state, a non-redundant state, or an offline state. This not only avoids users from receiving information frequently, but also helps users to understand changes in cluster state in a timely manner.
[0052] In a third aspect, a device management method for a CXL switch is provided. The method includes: receiving first binding information sent by a first node of at least two nodes; the first binding information is used to specify a binding status between a CXL device and a computing device connected via the CXL switch, the binding status including establishing or disabling a binding relationship; and receiving second binding information sent by a second node of the at least two nodes; the second binding information is sent by the second node when an abnormality occurs in the first node, and the second binding information is used to specify a binding status between the CXL device and the computing device connected via the CXL switch.
[0053] In this solution, a CXL switch can receive first binding information from a first node among at least two nodes to specify the binding status between a CXL device and a computing device connected via the CXL switch. If an exception occurs at the first node, the CXL switch can receive second binding information from a second node among at least two nodes to specify the binding status between the CXL device and the computing device connected via the CXL switch. Because the CXL switch can receive binding information from different nodes among the at least two nodes, different nodes among the at least two nodes can manage CXL devices. Thus, if an exception occurs at one node managing a CXL device (i.e., the first node), the other node (i.e., the second node) can continue to manage the CXL device. Compared to related art methods in which the binding status between the CXL device and the computing device cannot be managed after the management device goes offline, the device management method of the present embodiment improves the reliability and stability of CXL device management.
[0054] In a possible implementation, the method further includes: establishing or unbinding a binding relationship between the CXL device and the computing device connected via the CXL switch based on the first binding information; and establishing or unbinding a binding relationship between the CXL device and the computing device connected via the CXL switch based on the second binding information.
[0055] In another possible implementation, the CXL switch is provided with at least two ports, and the at least two ports are used to connect to at least two nodes. In this way, the CXL switch can be connected to each of the at least two nodes.
[0056] In another possible implementation, a CXL switch is connected to a port expansion device, which includes at least two ports for connecting to at least two nodes. This allows the CXL switch to connect to each of the at least two nodes, effectively providing multiple ports on the CXL switch and reducing costs.
[0057] In a fourth aspect, a device management apparatus is provided, comprising: functional units configured to execute any one of the methods provided in the first aspect, wherein the actions executed by each functional unit are implemented in hardware or by hardware executing corresponding software implementations. For example, the device management apparatus may include: a first sending unit configured to send first binding information to a Compute Express Link (CXL) switch; the first binding information specifies the binding status between a CXL device and a computing device connected via the CXL switch, where the binding status may include establishing or unbinding a binding; and, in the event of an abnormality in the first node, the second sending unit configured to send second binding information to the CXL switch; the second binding information specifies the binding status between the CXL device and the computing device connected via the CXL switch.
[0058] In a fifth aspect, a device management apparatus is provided, comprising: functional units configured to execute any one of the methods provided in the first aspect, wherein the actions executed by each functional unit are implemented in hardware or by hardware executing corresponding software implementations. For example, the device management apparatus may include: a sending unit configured to send first binding information to a first node of at least two nodes; the first binding information specifies the binding status between a CXL device and a computing device connected via a CXL switch, where the binding status includes establishing or disabling a binding relationship; and a sending unit configured to send second binding information to a second node of the at least two nodes; the second binding information is sent when an abnormality occurs in the first node, and the second binding information specifies the binding status between the CXL device and the computing device connected via the CXL switch.
[0059] In a sixth aspect, a device management apparatus is provided, comprising: functional units configured to execute any one of the methods provided in the first aspect, wherein the actions executed by each functional unit are implemented in hardware or by hardware executing corresponding software implementations. For example, the device management apparatus may include: a receiving unit configured to receive first binding information sent by a first node of at least two nodes; the first binding information specifies a binding status between a CXL device and a computing device connected via a CXL switch, the binding status including establishing or disabling a binding relationship; and a receiving unit configured to receive second binding information sent by a second node of the at least two nodes; the second binding information is sent by the second node when an abnormality occurs in the first node, and the second binding information specifies a binding status between the CXL device and the computing device connected via the CXL switch.
[0060] In a seventh aspect, a device management method is provided for a computing system, the computing system comprising at least two nodes and a CXL switch, each of the at least two nodes being connected to the CXL switch. The method further comprises: a first node of the at least two nodes sending first binding information to the CXL switch; the first binding information being used to specify a binding status between a CXL device and a computing device connected via the CXL switch, the binding status including establishing or disabling a binding relationship; the CXL switch receiving the first binding information sent by the first node; and, if an abnormality occurs in the first node, a second node of the at least two nodes sending second binding information to the CXL switch; and the CXL switch receiving the second binding information sent by the second node of the at least two nodes.
[0061] In an eighth aspect, a device management method is provided for a computing system. The computing system includes a processing device, at least two nodes, and a CXL switch. The processing device is connected to each of the at least two nodes, and each node is connected to the CXL switch. The method includes: the processing device sending first binding information to a first node of the at least two nodes; the first binding information is used to specify a binding status between a CXL device and a computing device connected via the CXL switch, where the binding status includes establishing or disabling a binding relationship; the first node receives the first binding information sent by the processing device and sends the first binding information to the CXL switch; the CXL switch receives the first binding information sent by the first node; if an abnormality occurs in the first node, the processing device sends second binding information to a second node of the at least two nodes; the second binding information is used to specify a binding status between the CXL device and the computing device connected via the CXL switch; the second node receives the second binding information sent by the processing device and sends the second binding information to the CXL switch; and the CXL switch receives the second binding information sent by the second node.
[0062] In the ninth aspect, a processing device is provided, which includes a processor and a memory, the processor and the memory are connected, the memory stores computer execution instructions, and the processor executes the computer execution instructions, so that the processing device executes any one of the methods provided in the second aspect above.
[0063] In a tenth aspect, a computing system is provided, comprising at least two nodes and a CXL switch, wherein each of the at least two nodes is connected to the CXL switch; the at least two nodes are configured to execute any one of the methods provided in the first aspect, and the CXL switch is configured to execute any one of the methods provided in the third aspect.
[0064] In an eleventh aspect, a computing system is provided, comprising a processing device, at least two nodes, and a CXL switch, wherein the processing device is connected to each of the at least two nodes, and each node is connected to the CXL switch; the at least two nodes are configured to execute any one of the methods provided in the first aspect, the processing device is configured to execute any one of the methods provided in the second aspect, and the CXL switch is configured to execute any one of the methods provided in the third aspect.
[0065] In a twelfth aspect, a CXL switch is provided. The CXL switch includes a processor and a memory, the processor and the memory are connected, the memory stores computer-executable instructions, and the processor executes the computer-executable instructions, so that the CXL switch performs any one of the methods provided in the third aspect.
[0066] In a thirteenth aspect, a computer-readable storage medium is provided, which stores computer execution instructions. When the computer execution instructions are run on a computer, the computer executes any one of the methods provided in the first aspect.
[0067] In a fourteenth aspect, a computer-readable storage medium is provided, which stores computer execution instructions. When the computer execution instructions are run on a computer, the computer executes any one of the methods provided in the second aspect.
[0068] In the fifteenth aspect, a computer-readable storage medium is provided, which stores computer execution instructions. When the computer execution instructions are run on a computer, the computer executes any one of the methods provided in the third aspect above.
[0069] In a sixteenth aspect, a computer program product is provided, comprising: computer execution instructions, which, when the computer execution instructions are run on a computer, enable the computer to execute any one of the methods provided in the first aspect above.
[0070] In the seventeenth aspect, a computer program product is provided, comprising: computer execution instructions, which, when the computer execution instructions are run on a computer, enable the computer to execute any one of the methods provided in the second aspect above.
[0071] In the eighteenth aspect, a computer program product is provided, comprising: computer execution instructions, which, when the computer execution instructions are run on a computer, enable the computer to execute any one of the methods provided in the third aspect above.
[0072] Among them, the technical effects brought about by any implementation method in the second aspect to the eighteenth aspect can refer to the technical effects brought about by different implementation methods in the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0073] FIG1 is a schematic diagram of a one-to-many management structure in a related technology provided by an embodiment of the present application;
[0074] FIG2 is a schematic diagram of a one-to-one management structure in a related technology provided by an embodiment of the present application;
[0075] FIG3A is a schematic diagram of the structure of a computing system provided in an embodiment of the present application;
[0076] FIG3B is a schematic diagram of the structure of another computing system provided in an embodiment of the present application;
[0077] FIG4 is a schematic diagram of the structure of a CXL memory device provided in an embodiment of the present application;
[0078] FIG5 is a flow chart of a device management method provided in an embodiment of the present application;
[0079] FIG6 is a schematic diagram of interaction between different nodes in at least two nodes provided in an embodiment of the present application;
[0080] FIG7 is a flowchart of another device management method provided in an embodiment of the present application;
[0081] FIG8 is a schematic diagram of interaction between a processing device and at least two nodes provided in an embodiment of the present application;
[0082] FIG9 is a flowchart of another device management method provided in an embodiment of the present application;
[0083] FIG10 is an interactive diagram of another device management method provided in an embodiment of the present application;
[0084] FIG11 is a schematic diagram of a device management apparatus provided in an embodiment of the present application;
[0085] FIG12 is a schematic diagram of another device management apparatus provided in an embodiment of the present application;
[0086] FIG13 is a schematic diagram of another device management apparatus provided in an embodiment of the present application. DETAILED DESCRIPTION
[0087] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
[0088] In the description of this application, unless otherwise specified, " / " indicates that the objects associated before and after are in an "or" relationship, for example, A / B can represent A or B; "and / or" in this application is merely a description of the association relationship of associated objects, indicating that three relationships may exist, for example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural.
[0089] Furthermore, in the description of this application, unless otherwise specified, "plurality" means two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or plural.
[0090] In addition, to facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, the words "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that the words "first" and "second" do not limit the quantity or execution order, and the words "first" and "second" do not necessarily mean different.
[0091] At the same time, in the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner to facilitate understanding.
[0092] The following is a brief introduction to the relevant terms involved in the embodiments of this application.
[0093] The CXL protocol is a high-speed serial protocol that enables fast and reliable data transmission between different components within a computing device, such as between the central processing unit (CPU) and accelerators, memory buffers, and smart network interface cards (Smart NICs). The CXL protocol can also be used in scenarios such as artificial intelligence (AI) machine learning and high-performance computing. The CXL protocol includes sub-protocols such as the CXL.io protocol, the CXL.cache protocol, and the CXL.memory protocol.
[0094] CXL device: refers to a device with a Peripheral Component Interconnect Express (PCIE) interface that complies with the CXL protocol. For example, a CXL device can be connected to a CPU via the PCIE interface.
[0095] CXL devices include: Type 1 (CXL Type 1) devices, Type 2 (CXL Type 2) devices, and Type 3 (CXL Type 3) devices. For example, Type 1 devices refer to devices that rely on the CPU, such as network card devices, etc. Type 1 devices support the CXL.io protocol and the CXL.cache protocol. Type 2 devices refer to devices that have independent data storage capabilities and require the use of memory resources on a computing device, such as graphics processing units (GPUs), application-specific integrated circuits (ASICs), and field programmable gate arrays (FPGAs). Type 2 devices support the CXL.io protocol, the CXL.cache protocol, and the CXL.memory protocol. Type 3 devices refer to devices used to increase the memory resources of a computing device, such as memory devices. Type 3 devices support the CXL.io protocol and the CXL.memory protocol.
[0096] CXL switch: refers to a switch with a PCIE interface that complies with the CXL protocol. Exemplarily, the PCIE interface can be a PCIE 5.0 interface, a PCIE 6.0 interface, or an interface of another PCIE version.
[0097] Orchestrator: refers to a device used to orchestrate computing resources, storage resources, memory resources, and other resources across multiple computing devices.
[0098] The following is an illustrative introduction to the application scenarios of the embodiments of the present application.
[0099] In the related art, to enhance computing device capabilities, a CXL device is connected to the computing device, acting as an external device for the computing device to use. For example, a single CXL device can be connected to multiple computing devices, allowing the multiple devices to use the device. Alternatively, multiple CXL devices can be connected to multiple computing devices, allowing the multiple devices to use the devices.
[0100] On this basis, related technologies also introduce management devices to manage CXL devices, such as: allocating CXL devices to computing devices, binding CXL devices with computing devices, and recycling CXL devices that are no longer used by computing devices, etc., to ensure that different computing devices can use CXL devices.
[0101] When using a management device to manage CXL devices, one management device can be used to manage CXL devices connected to multiple CXL switches (hereinafter referred to as one-to-many management), or one management device can be used to manage CXL devices connected to one CXL switch (hereinafter referred to as one-to-one management).
[0102] Figure 1 shows a schematic diagram of one-to-many management. Here, management device a is connected to CXL switch a. Therefore, management device a can manage CXL device a connected to CXL switch a. Furthermore, management device a is also connected to CXL switch b. Therefore, management device a can also manage CXL device b connected to CXL switch b.
[0103] Figure 2 shows a schematic diagram of one-to-one management. Here, management device b is connected to CXL switch c, allowing management device b to manage CXL device c connected to CXL switch c. Management device c is also connected to CXL switch d, allowing management device c to manage CXL device d connected to CXL switch d.
[0104] As can be seen, in the above management approach, if a management device fails, the CXL devices connected to it will become unmanageable. For example, if management device b fails, CXL device c connected to it will become unmanageable. Clearly, this management approach has poor reliability and stability.
[0105] Therefore, how to improve the reliability and stability of CXL equipment management has become a technical problem that needs to be solved urgently.
[0106] In view of this, embodiments of the present application provide a device management method for at least two nodes. A first node of the at least two nodes may send first binding information to a CXL switch to specify the binding status between a CXL device and a computing device connected via the CXL switch, where the binding status may include establishing or unbinding a binding. If an exception occurs in the first node, a second node of the at least two nodes may send second binding information to the CXL switch to specify the binding status between the CXL device and the computing device connected via the CXL switch.
[0107] Because different nodes in the at least two nodes can manage the binding status between the CXL device connected to the CXL switch and the computing device, if one node (i.e., the first node) managing the binding status of the CXL device experiences an abnormality, the other node (i.e., the second node) can continue to manage the binding status of the CXL device. Compared to the related art in which the binding status of the CXL device becomes unmanageable after the management device goes offline, the device management method of the embodiment of the present application improves the reliability and stability of CXL device management.
[0108] The following is an exemplary introduction to the system architecture of the embodiment of the present application.
[0109] FIG3A is a schematic diagram of a computing system according to an embodiment of the present application.
[0110] The computing system may include at least one CXL switch and at least two nodes, wherein each of the at least two nodes is connected to each of the at least one CXL switch, and each node can communicate with each of the CXL switches.
[0111] In the embodiment of the present application, one end of at least one CXL switch is connected to at least two computing devices, and the other end of at least one CXL switch is connected to at least one CXL device. The at least two computing devices can communicate with the at least one CXL device through the at least one CXL switch.
[0112] In an example, a CXL device may be connected to a computing device through a single-layer CXL switch. That is, one port of the single-layer CXL switch is connected to the CXL device, and another port of the single-layer CXL switch is connected to the computing device.
[0113] Exemplarily, at least one CXL switch includes CXL switch a, at least two computing devices include computing device a, and at least one CXL device includes CXL device a, wherein CXL device a is connected to one port of CXL switch a, and computing device a is connected to another port of CXL switch a.
[0114] In another example, a CXL device may be connected to a computing device via a multilayer CXL switch. That is, one CXL switch in the multilayer CXL switch is connected to the CXL device, another CXL switch in the multilayer CXL switch is connected to the computing device, CXL switches on two adjacent layers in the multilayer CXL switch are connected to each other, or any two CXL switches in the multilayer CXL switch are connected to each other.
[0115] Exemplarily, at least one CXL switch includes CXL switch a and CXL switch b, at least two computing devices include computing device a, and at least one CXL device includes CXL device a. CXL device a is connected to a port of CXL switch a, CXL switch a is connected to CXL switch b, and computing device a is connected to a port of CXL switch b.
[0116] It should be noted that a single-layer CXL switch refers to a single-layer CXL switch, and a multi-layer CXL switch may be a CXL switch with two or more layers.
[0117] It should be noted that at least one can be one or more, multiple can be two or more, and at least two can be two or more. The at least two computing devices may or may not form a cluster, and this embodiment of the application does not limit this. Furthermore, the at least one CXL device may or may not form a device pool, and this embodiment of the application does not limit this either.
[0118] For example, a computing device may be connected to a CXL switch via a PCIE bus to access a CXL device connected to the CXL switch. The computing device may access the CXL device connected to the CXL switch based on a CXL protocol.
[0119] For example, referring to FIG. 3A , the computing system includes computing device 1 , computing device 2 , CXL switch 1 , CXL switch 2 , CXL device 0 , . . . , CXL device n, node 1 , node 2 , and node 3 .
[0120] The computing device is provided with a root port (RP), which is used to connect to the CXL switch. For example, referring to FIG3A , computing device 1 is provided with RP#0 and RP#1, and computing device 2 is provided with RP#3 and RP#4.
[0121] In the embodiments of the present application, there is no limitation on the version of the CXL protocol used by the CXL switch. For example, the CXL switch may be a switch using the CXL version 2.0 protocol, or a switch using the CXL version 3.0 protocol.
[0122] When a CXL switch uses the CXL 2.0 protocol, it is equipped with upstream switch ports (USPs) for connecting to computing devices. For example, as shown in FIG3A , CXL switch 1 is equipped with USP#0 and USP#1, while CXL switch 2 is equipped with USP#3 and USP#4. The CXL switch is also equipped with downstream switch ports (DSPs) for connecting to CXL devices. For example, as shown in FIG3A , CXL switch 1 is equipped with DSP#0, ..., DSP#k, while CXL switch 2 is equipped with DSP#k+1, ..., DSP#n.
[0123] The CXL device is provided with a connection control interface (CCI), which is used to connect to a switch. For example, referring to FIG3A , CXL devices 0, ..., and CXL device n are all provided with a CCI.
[0124] For example, referring to FIG3A , RP#0 is connected to USP#0, and DSP#0, ..., and DSP#k are connected to the CCIs on CXL devices 0, ..., and CXL devices k, respectively. This allows computing device 1 to connect to CXL devices 0, ..., and CXL devices k via CXL switch 1. RP#1 is connected to USP#3, and DSP#k+1, ..., and DSP#n are connected to the CCIs on CXL devices k+1, ..., and CXL devices n, respectively. This allows computing device 1 to connect to CXL devices k+1, ..., and CXL devices n via CXL switch 2.
[0125] The principle of connecting computing device 2 with CXL devices 0, ..., and n through CXL switches 1 and 2 is the same as the principle of connecting computing device 1 with CXL devices 0, ..., and n through CXL switches 1 and 2, and is not repeated here.
[0126] When a CXL switch uses the CXL 3.0 protocol, there is no distinction between uplink switching ports and downlink switching ports on the CXL switch. Any port on the CXL switch can be used to connect to a computing device or a CXL device.
[0127] In the embodiment of the present application, the CXL switch is provided with at least two first ports, and the at least two first ports are connected to at least two nodes, wherein one first port is used to connect to one node, so that each node can communicate with the CXL switch.
[0128] Alternatively, a second port is provided on the CXL switch, and the CXL switch is connected to a port expansion device via the second port. The port expansion device includes at least two third ports, and the CXL switch is connected to at least two nodes via the at least two third ports on the port expansion device. One third port is connected to one node.
[0129] For example, referring to FIG3A , CXL switch 1 is connected to port expansion device 1 (referred to as port device 1 for short). Port device 1 includes three ports, for example, port 1, port 2, and port 3. Port 1 is connected to node 1, port 2 is connected to node 2, and port 3 is connected to node 3. CXL switch 2 is connected to port expansion device 2 (referred to as port device 2 for short). Port device 2 includes three ports, for example, port 4, port 5, and port 6. Port 4 is connected to node 1, port 5 is connected to node 2, and port 6 is connected to node 3.
[0130] In the embodiment of the present application, the connection relationship between at least two nodes and at least two computing devices includes multiple situations, which are exemplified below through situations 1 and 2.
[0131] Case 1: Each of the at least two computing devices is connected to each of the at least two nodes.
[0132] That is, each computing device can communicate with each node.
[0133] Exemplarily, referring to FIG3A , computing device 1 is connected to node 1 , node 2 , and node 3 , and computing device 2 is also connected to node 1 , node 2 , and node 3 .
[0134] In scenario 1, a master node (also called a communication node) among the at least two nodes may allocate a CXL device to each computing device and reclaim a CXL device no longer used by each computing device.
[0135] For example, when computing device 1 needs to use a CXL device, it can send a request to the master node to allocate an available CXL device. Upon receiving the request, the master node allocates an idle CXL device to computing device 1. Idle CXL devices are those that are not allocated to any computing device.
[0136] Case 2: The target computing device among the at least two computing devices is connected to each of the at least two nodes.
[0137] The target computing device may be any one of the at least two computing devices, or may be a computing device specified by the user.
[0138] In scenario 2, a master node among the at least two nodes may allocate a CXL device to each computing device and reclaim CXL devices no longer in use by each computing device. Alternatively, a target computing device may allocate a CXL device to each computing device and reclaim CXL devices no longer in use by each computing device.
[0139] For example, computing device 1 is the target computing device. When computing device 2 needs to use a CXL device, it can send a request to computing device 1 to allocate an available CXL device. After receiving the request, computing device 1 allocates an idle CXL device to computing device 2. When computing device 1 needs to use a CXL device, it can directly allocate an idle CXL device to itself.
[0140] FIG3B is a schematic diagram showing the structure of another computing system provided in an embodiment of the present application.
[0141] It should be noted that the computing system shown in FIG3B differs from the computing system shown in FIG3A in that the computing system shown in FIG3B further includes an orchestration device. The following only describes the differences between the computing system shown in FIG3B and the computing system shown in FIG3A, and the similarities are not repeated.
[0142] Referring to FIG. 3B , in an embodiment of the present application, the computing system may further include an orchestration device (Orchestrator).
[0143] The orchestration device is connected to each of the at least two computing devices. For example, referring to FIG3B , the orchestration device is connected to computing device 1 and computing device 2.
[0144] When the computer system includes an orchestration device, a master node among the at least two nodes may allocate a CXL device to each computing device and reclaim CXL devices no longer used by each computing device. Alternatively, the orchestration device may allocate a CXL device to each computing device.
[0145] For example, when computing device 1 needs to use a CXL device, it can send a request to the orchestration device to allocate an available CXL device. After receiving computing device 1's request, the orchestration device can allocate an idle CXL device to the computing device. The orchestration device is connected to each of the at least two nodes. For example, referring to FIG3B , the orchestration device is connected to Node 1, Node 2, and Node 3.
[0146] Illustratively, after the orchestration device allocates the idle CXL device to the computing device for use, the orchestration device sends binding information to one of the at least two nodes, where the binding information is used to instruct the computing device to bind to the idle CXL device so that the computing device can use the idle CXL device.
[0147] Based on the above, in the embodiment of the present application, a processing device or a master node can allocate a CXL device to each computing device, reclaim CXL devices no longer used by computing devices, etc. The processing device can be a target computing device or an orchestration device.
[0148] In one example, a processing device or master node may allocate a CXL device to each computing device based on a request from each computing device.
[0149] In another example, a processing device or master node can proactively assign CXL devices to each computing device based on the needs of each computing device. For example, the processing device determines the CXL devices required by computing devices 1 and 2 based on the tasks currently being performed by computing devices 1 and 2. Based on this determination, the processing device can then assign CXL devices 0, ..., and k to computing device 1, and CXL devices k, ..., and n to computing device 2.
[0150] In the embodiment of the present application, after the processing device or master node assigns a CXL device to a computing device, the master node sends binding information to a CXL switch connecting the CXL device and the computing device. The binding information is used to instruct the CXL switch to bind the CXL device to the computing device so that the computing device can communicate with the CXL device.
[0151] Illustratively, the master node sends binding information 1 to CXL switch 1, instructing CXL switch 1 to establish bindings for CXL devices 0, ..., CXL device k and computing device 1. The master node sends binding information 2 to CXL switch 2, instructing CXL switch 2 to establish bindings for CXL devices k, ..., CXL device n and computing device 2.
[0152] Below, at least two nodes in the embodiments of the present application are exemplarily introduced.
[0153] In the embodiment of the present application, every two nodes of the at least two nodes can be connected, and any two nodes of the at least two nodes can communicate with each other.
[0154] For example, referring to FIG. 3A or FIG. 3B , any two nodes among node 1 , node 2 and node 3 may be connected.
[0155] Exemplarily, any two of the at least two nodes may be directly connected, or may be connected through a switch. The connection method between different nodes in the embodiment of the present application is not limited.
[0156] Exemplarily, the communication content between any two nodes may include: heartbeat information, election of communication nodes, etc.
[0157] It should be noted that, since the structure among computing devices, CXL switches, and CXL devices belongs to a topology structure, the nodes in the embodiments of the present application may also be devices having a topology management (fabric manager, FM) process.
[0158] In the embodiment of the present application, nodes include multiple types, which are exemplarily introduced below through Examples 1 to 3.
[0159] Example 1: A node can be a central processing unit running FM.
[0160] In the embodiments of the present application, a central processing unit (CPU) can be used as a node, and the CPU can implement the device management method provided in the embodiments of the present application by running a FM. For example, the FM run by the CPU can be stored in a storage device of the device where the CPU is located. The CPU can be the CPU of any of the computing devices in FIG. 3A , or the CPU of a computing device other than the computing device in FIG. 3A .
[0161] In Example 1, using a central processing unit as a node helps improve the processing capability of the node, thereby helping to ensure the stability and timeliness of CXL device management.
[0162] Example 2: The node may be a baseboard management controller (BMC) running FM, wherein the BMC may be the BMC of any computing device in FIG3A or the BMC of a computing device other than the computing device in FIG3A .
[0163] It should be noted that different computing devices have different names for BMC. For example, some computing devices call it BMC, some computing devices call it iLO, and others call it iDRAC. Regardless of whether it is called BMC, iLO, or iDRAC, it can be understood as the BMC in the embodiments of the present invention.
[0164] In Example 2, using the BMC as the node helps avoid affecting the service processing capabilities of the device where the node is located and avoids excessive management of the CXL device and occupation of resources of the device where the node is located.
[0165] It should be noted that for other relevant explanations about Example 2, please refer to Example 1 and will not be repeated here.
[0166] Example 3: The node may be a controller of a CXL switch running FM, wherein the controller of the CXL switch may be any controller of the CXL switches in FIG3A .
[0167] In Example 3, using the controller of the CXL switch as a node helps simplify the structure and reduce costs.
[0168] It should be noted that for other relevant explanations about Example 3, please refer to Example 1 and will not be repeated here.
[0169] In the embodiment of the present application, different nodes can be set on different devices. For example, referring to FIG3A or FIG3B , node 1, node 2, and node 3 can be set on different computing devices.
[0170] In the embodiments of this application, different nodes are of the same type. For example, Node 1, Node 2, and Node 3 can all be BMCs, or central processing units, or controllers of a CXL switch. This helps ensure convenient and stable communication between different nodes. It should be noted that the embodiments of this application do not limit the node type; the above description is merely an example.
[0171] It should be noted that the type of node may also be referred to as the form of the node or the device type, etc., and the embodiments of the present application do not impose any restrictions on this.
[0172] The following is an introduction to the CXL device in the embodiments of the present application.
[0173] In the embodiment of the present application, the CXL device may be a CXL Type 1 device, a CXL Type 2 device, or a CXL Type 3 device. In other words, the embodiment of the present application does not limit the type of the CXL device.
[0174] Hereinafter, an embodiment of the present application will be described by way of example, taking a CXL device as a CXL Type 3 device (eg, a CXL memory device). For example, at least one CXL memory device may form a memory pool.
[0175] FIG4 is a schematic diagram showing the structure of a CXL memory device according to an embodiment of the present application.
[0176] As shown in Figure 4, a CXL memory device may include a CXL controller and memory. The CXL controller is connected to the memory. The CXL controller is configured to receive instructions from a computing device and perform read and write operations on the memory based on the instructions from the computing device.
[0177] Exemplarily, the memory may be a random access memory (RAM) such as dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), or a dual inline memory module (DIMM).
[0178] The CXL memory device may further include a substrate, wherein the memory and the memory controller are disposed on the substrate, and the memory and the memory controller are connected via the substrate. For example, a memory slot is disposed on the substrate, and the memory is plugged into the memory slot.
[0179] It should be noted that the embodiment of the present application does not limit the amount of memory on the CXL memory device.
[0180] In the embodiment of the present application, the memory on the CXL memory device can be used as a logical device (LD) and allocated to a computing device for use. This type of CXL memory device can be called a single logic device (SLD).
[0181] Alternatively, the memory on the CXL memory device may be divided into multiple logical devices and allocated to multiple computing devices for use. Such a CXL memory device may be referred to as a multiple logic device (MLD).
[0182] A logical device can be assigned to a computing device for use. A logical device corresponds to at least one memory, and different logical devices correspond to different memories.
[0183] It should be noted that the embodiment of the present application does not limit the number of logical devices of the CXL memory device.
[0184] It should be noted that the system architecture and application scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field can know that with the evolution of the system architecture and the emergence of new application scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0185] For ease of understanding, the device management method provided in the embodiment of the present application is introduced below in combination with the above system architecture.
[0186] Fig. 5 is a flow chart showing a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S501-S504.
[0187] It should be noted that the device management method shown in FIG5 can be used for at least two nodes, and each of the at least two nodes is connected to a CXL switch.
[0188] In an embodiment of the present application, when at least two nodes manage a CXL device, a first node among the at least two nodes may first communicate with the CXL switch, thereby enabling the first node to manage the binding status between the CXL device and the computing device connected via the CXL switch. If an abnormality occurs on the first node, a second node among the at least two nodes may communicate with the CX switch, thereby enabling the second node to continue managing the binding status between the CXL device and the computing device connected via the CXL switch.
[0189] It should be noted that the first node and the second node are two different nodes among the at least two nodes.
[0190] For example, the first node / the second node may manage the binding status of the CXL devices connected through the CXL switch by sending binding information to the CXL switch, where the binding information is used to specify the binding status between the CXL device and the computing device connected through the CXL switch.
[0191] It should be noted that in the embodiments of the present application, the node that communicates with the CXL switch, that is, the node that sends binding information to the CXL switch, in other words, the node that manages the binding status between the CXL device and the computing device connected through the CXL switch, can be referred to as the communication node among the at least two nodes, such as the first node and the second node described below. Furthermore, the node other than the communication node among the at least two nodes can be referred to as a standby node, which will not be further described.
[0192] It should be noted that in the embodiment of the present application, at least two nodes may form a cluster, or may not form a cluster, and the embodiment of the present application does not impose any restrictions on this.
[0193] Optionally, S501: at least two nodes determine a first node.
[0194] The first node is used to manage a binding state between a CXL device and a computing device connected through the CXL switch.
[0195] For example, when the CXL switch is CXL switch 1 shown in FIG. 3A or 3B , the first node can manage the binding states between computing device 1 and CXL devices 0 , . . . , CXL device k, and between computing device 2 and CXL devices 0 , . . . , CXL device k.
[0196] For example, when the CXL switch is the CXL switch 2 shown in FIG. 3A or 3B , the first node may manage the binding states between computing device 1 and CXL devices k+1, ..., and n, and between computing device 2 and CXL devices k+1, ..., and n.
[0197] It should be noted that in the embodiments of the present application, the manner in which at least two nodes determine a node is not limited. For example, the at least two nodes may determine the first node based on a cluster leader election algorithm, or the first node may be determined based on the priority of each of the at least two nodes, for example, the node with the highest priority is determined as the first node.
[0198] Hereinafter, an embodiment of the present application is described by taking at least two nodes including node 1, node 2 and node 3 as an example.
[0199] FIG6 is a schematic diagram showing the interaction between different nodes in at least two nodes.
[0200] As shown in Figure 6, after nodes 1, 2, and 3 successfully start up (also known as coming online), they determine Node 1 as the primary node among the three nodes (e.g., Raft, ZAB, etc.) based on a cluster leader election algorithm. Based on this, Node 1 operates as a communication node, while Nodes 2 and 3 operate as backup nodes. Node 1 then sends a broadcast message to Nodes 2 and 3. This message may include, for example, Node 1's IP address and information about the completion of leader election.
[0201] It should be noted that the embodiment of the present application does not limit the type of cluster leader election algorithm. For example, it can be a competition-based leader election algorithm, or it can be a voting leader election algorithm.
[0202] In the embodiment of the present application, after determining the first node, the device management method may further include: establishing a heartbeat connection between the first node and each non-first node of the at least one non-first node.
[0203] Exemplarily, referring to FIG6 , node 1 (the first node) establishes heartbeat connections with node 2 (a non-first node) and node 3 (a non-first node) respectively.
[0204] It should be noted that the embodiment of the present application does not limit the type of heartbeat connection. For example, the heartbeat connection can be a long connection, or it can also be a short connection.
[0205] In an embodiment of the present application, a heartbeat connection is established between the communication node (i.e., the first node) and the backup node (i.e., the non-first node), and the backup node is set to monitoring mode, so that the backup node can be used to monitor whether there is any abnormality in the communication node.
[0206] In this embodiment, a heartbeat connection is established between the first node and each non-first node (i.e., each backup node). This allows the first node to determine whether each backup node has experienced an anomaly, and thus to determine the number of online and offline backup nodes of at least two nodes. Furthermore, each backup node can also determine whether the first node has experienced an anomaly. This allows the node to promptly identify the second node when an anomaly occurs on the first node, thus preventing the first node from being unable to manage the binding status between the CXL device and the computing device connected via the CXL switch when an anomaly occurs on the first node.
[0207] In the embodiment of the present application, after determining the first node, the device management method may further include: the first node creating a first interface; the first interface is used to indicate the format of data transmitted by the processing device to the first node.
[0208] After the first node creates the first interface, the processing device may send binding information to the first node by calling the first interface to specify a binding state between the CXL device and the computing device connected through the CXL switch.
[0209] Exemplarily, the first interface may be an interface of the hypertext transfer protocol (HTTP), remote procedure call protocol (RPC), or the like.
[0210] It should be noted that the embodiment of the present application does not limit the type of the first interface, and the above is only an exemplary description.
[0211] In the embodiment of the present application, when a master node among at least two nodes allocates a CXL device to each computing device and reclaims CXL devices no longer used by the computing device, the first interface is used to instruct each computing device on the format of data transmitted to the first node.
[0212] In an embodiment of the present application, after determining the first node, the device management method may further include: the first node sending the IP address of the communication node among the at least two nodes to the processing device. In this way, the processing device can send binding information to the communication node among the at least two nodes via the IP address.
[0213] There are multiple implementations for how to send the IP address of the communication node among at least two nodes to the processing device. The following is an illustrative description using Method 1 and Method 2.
[0214] Method 1: Set the IP address of the first node as the target IP address, and send the target IP address to the processing device.
[0215] In Method 1, the first node may include an internal IP address and an external IP address (also called a service IP address). The internal IP address is used to communicate with other nodes, and the external IP address is used to communicate with the processing device. Based on this, the first node can set the address of the external IP address as the target IP address and send the target IP address to the processing device. The processing device can then send binding information to the first node based on the target IP address.
[0216] It should be noted that when the external network IP of the first node is set as the target IP address, it can be considered that the target IP address can indicate the first node.
[0217] In this manner, by reporting the target IP address to the processing device and making the target IP address indicate the first node, the processing device can send binding information to the first node via the target IP address.
[0218] It should be noted that when the IP address for communicating with the communication node (i.e., the target IP address) has been pre-stored in the processing device, the first node only needs to set the address of the external network IP as the target IP address, and there is no need to report the target IP address to the processing device. This helps save communication resources between the first node and the processing device.
[0219] Method 2: The first node writes the first IP address into the database.
[0220] In an embodiment of the present application, a database is used to provide storage services for access addresses to a processing device and at least two nodes. For example, the database service can be provided by the processing device, or by a device where the communication node is located, or by a cloud server. The address in the database is used to indicate the IP address of the communication node. In other words, the database is used to store the IP address of the communication node.
[0221] In addition, the first IP address indicates the first node, or in other words, the first IP address is the IP address of the first node.
[0222] In the embodiment of the present application, after at least two nodes determine the first node, the first node may write the first IP address to the database according to a first preset duration. In other words, the first node writes the first IP address to the database at intervals of the first preset duration. In this way, the processing device can determine whether the communication node is in a normal state, that is, whether it is online, based on the time when the first IP address was written to the database.
[0223] It should be noted that the embodiment of the present application does not limit the specific value of the first preset duration, for example, it can be 5 minutes, 10 minutes, 20 minutes, etc.
[0224] In this manner, a database is set up to indicate the IP addresses of communication nodes, and the first IP address of the first node is written into the database, so that the processing device can obtain the IP address of the communication node among at least two nodes from the database.
[0225] It should be noted that the embodiment of the present application does not limit the method of reporting the IP address of the communication node among the at least two nodes to the processing device, and the above methods 1 and 2 are only exemplary descriptions.
[0226] In the embodiment of the present application, when a master node among at least two nodes allocates a CXL device to each computing device and reclaims CXL devices no longer used by the computing device, the manner in which the first node reports the IP address of the communication node among the at least two nodes to each computing device can refer to the above-mentioned Methods 1 and 2 and will not be repeated here.
[0227] S502: The first node sends first binding information to the CXL switch.
[0228] The first binding information is used to specify a binding state between the CXL device and the computing device connected via the CXL switch, where the binding state includes establishing a binding or releasing a binding.
[0229] In one example, the computing device and the CXL device are connected via a single-layer CXL switch, and the CXL switch in S502 is the single-layer CXL switch.
[0230] In another example, the computing device and the CXL device are connected via a multi-layer CXL switch. The CXL switch in S502 may be a CXL switch connected to the computing device in the multi-layer CXL switch, or a CXL switch connected to the CXL device in the multi-layer CXL switch, or each CXL switch in the multi-layer CXL switch.
[0231] It should be noted that, when the computing device and the CXL device are connected via a multilayer CXL switch, if the CXL switch in S502 is the CXL switch in the multilayer CXL switch connected to the computing device, then after receiving the first binding information, the CXL switch connected to the computing device sends the first binding information to other CXL switches in the multilayer CXL switch, so that the multilayer CXL switch can connect the link between the computing device and the CXL device. If the CXL switch in S502 is the CXL switch in the multilayer CXL switch connected to the CXL device, then after receiving the first binding information, the CXL switch connected to the CXL device sends the first binding information to other CXL switches in the multilayer CXL switch.
[0232] For example, when the CXL switch is CXL switch 1 shown in FIG. 3A or 3B , the first binding information may specify one or more CXL devices among CXL devices 0, ..., and CXL device k to establish a binding with or unbind computing device 1 . Alternatively, the first binding information may specify one or more CXL devices among CXL devices 0, ..., and CXL device k to establish a binding with or unbind computing device 2 .
[0233] In this embodiment of the present application, the current master node among the at least two nodes can allocate a CXL device to each computing device, reclaim CXL devices no longer used by the computing device, and so on. Based on this, after the current master node (i.e., the first node) determines to allocate a CXL device to the computing device, the first node sends first binding information to the CXL device and the CXL switch to which the computing device is connected based on the determination result.
[0234] Alternatively, in an embodiment of the present application, a processing device can allocate a CXL device to each computing device and reclaim CXL devices no longer in use by the computing device. Based on this, after the processing device determines to allocate a CXL device to a computing device, it sends a first binding message to a master node (i.e., the first node) among the at least two nodes. After receiving the first binding message, the first node sends the first binding message to the CXL device and the CXL switch to which the computing device is connected.
[0235] It should be noted that in the following embodiments, the embodiments of the present application are exemplified by taking the example of a processing device allocating a CXL device to each computing device and recycling CXL devices no longer used by the computing device.
[0236] In the embodiment of the present application, the first binding information includes multiple situations, which are explained below through situation 1 to situation 2.
[0237] Case 1: The first binding information may include the identifier of the CXL device and the identifier of the computing device.
[0238] In scenario 1, the first binding information is set to include the identifier of the CXL device and the identifier of the computing device. Thus, the CXL switch can determine the identifier of the first port and the identifier of the second port on the CXL switch to establish or unbind a binding, based on the identifiers of the CXL device and the computing device. The first port is the port on the CXL switch connected to the CXL device, and the second port is the port on the CXL switch connected to the computing device.
[0239] It should be noted that, when the computing device and the CXL device are connected via a multi-layer CXL switch, the first port and the second port are ports on different CXL switches.
[0240] Exemplarily, when the CXL switch is CXL switch 1 shown in FIG. 3A or 3B , and the first binding information includes the identifier of CXL device 0 and the identifier of computing device 1, and specifies establishing a binding between CXL device 0 and computing device 1, CXL switch 1 first determines that the identifier of the first port used by CXL device 0 is DSP#0, and the identifier of the second port used by computing device 1 is USP#0. Then, CXL switch 1 establishes a binding between DSP#0 and USP#0, thereby connecting the PCIE link between computing device 1 and CXL device 0. This allows computing device 1 to discover CXL device 0 based on the device discovery protocol and thereby communicate with CXL device 0.
[0241] In case 1, the CXL device identifier and the computing device identifier are used to specify the CXL device and computing device to be bound or unbound. This helps improve the accuracy of the CXL device and computing device to be bound or unbound, compared to specifying the port identifier of the switch.
[0242] Case 2: the first binding information may include an identifier of the first port and an identifier of the second port.
[0243] In case 2, the first binding information includes the identifier of the first port and the identifier of the second port. In this way, the CXL switch can directly determine the first port and the second port for which a binding relationship needs to be established or released.
[0244] Exemplarily, when the CXL switch is CXL switch 1 shown in FIG. 3A or 3B , and the first binding information includes DSP#0 (i.e., the identifier of the first port) and USP#0 (i.e., the identifier of the second port), and specifies that a binding relationship be established between DSP#0 and USP#0, CXL switch 1 establishes a binding between DSP#0 and USP#0.
[0245] In case 2, by specifying the identifier of the first port and the identifier of the second port for which a binding relationship needs to be established or released, the CXL switch does not need to independently determine the identifier of the first port and the identifier of the second port for establishing or releasing a binding relationship, thereby helping to improve the convenience and efficiency of the CXL switch in performing operations.
[0246] Optionally, S503: when an abnormality occurs in the first node, at least one non-first node determines a second node.
[0247] Exemplarily, referring to FIG6 , after node 1 is elected as the first node (ie, the communication node), node 2 and node 3 are non-first nodes (ie, standby nodes).
[0248] In an embodiment of the present application, when an abnormality occurs in the first node, one of the at least one non-first node is determined as the second node. That is, the at least one non-first node re-determines the communication node among the at least two nodes to manage the binding status between the CXL device and the computing device connected through the CXL switch.
[0249] It should be noted that after the first node is determined, at least one non-first node can be considered to be in standby mode (also called hot standby mode), serving as a backup node (also called hot standby node) for the first node. In this way, if an abnormality occurs in the first node, any of the at least one non-first node can serve as a new communication node for the at least two nodes, used to manage the binding status between the CXL device and the computing device connected via the CXL switch.
[0250] In an embodiment of the present application, when at least one non-first node determines the second node, if the number of at least one non-first node is greater than or equal to a preset threshold, the at least one non-first node can determine the second node based on the master election algorithm.
[0251] Alternatively, if the number of at least one non-first node is less than a preset threshold and at least one non-first node cannot determine the second node based on the master election algorithm, any one of the at least one non-first node can be determined as the second node, or the non-first node with the highest priority among the at least one non-first node can be determined as the second node.
[0252] The priority of each of the at least two nodes may be predetermined, for example, determined by a user.
[0253] It should be noted that in the embodiment of the present application, the first node may also be referred to as the first communication node, and the second node may be referred to as the second communication node, so as to distinguish the communication nodes determined at different stages.
[0254] In the embodiment of the present application, S503 includes multiple implementation methods, which are described below using methods A to C.
[0255] Mode A, S503 includes: when each non-first node does not receive the heartbeat information of the first node, each non-first node determines the second node.
[0256] In the embodiment of the present application, after the first node establishes a heartbeat connection with each non-first node, the first node sends a heartbeat message to each non-first node. If each non-first node does not receive the heartbeat message sent by the first node, it indicates that there is an abnormality in the first node. Based on this, each non-first node determines that there is an abnormality in the first node and re-determines a new communication node.
[0257] For example, referring to Figure 6, Node 1, as the first node (i.e., communication node), establishes heartbeat connections with Node 2 and Node 3. Node 1 then sends heartbeat messages to Node 2 and Node 3. If neither Node 2 nor Node 3 receives the heartbeat message sent by Node 1, it is considered that Node 1 is abnormal, such as being offline or faulty. At this point, Node 2 and Node 3 re-determine a new communication node for at least two nodes.
[0258] Mode B, S503 includes: when a non-first node determines that the first node has not received the heartbeat information sent by the first node, each non-first node determines a second node.
[0259] In the embodiment of the present application, if a non-first node fails to receive the heartbeat information sent by the first node, it may be that the first node is abnormal, or it may be that the non-first node is abnormal. In this case, each non-first node re-determines a new communication node from the at least two nodes, which helps to ensure the reliability of the communication nodes of the at least two nodes, and further helps to ensure the reliability and stability of CXL device management.
[0260] Mode C, S503 includes: when the first node does not receive the heartbeat information sent by the target non-first node and some non-first nodes do not receive the signal information sent by the target non-first node, each non-first node determines the second node.
[0261] The target non-first node may be any non-first node among the at least one non-first node.
[0262] In an embodiment of the present application, after the first node and each non-first node establish a heartbeat connection, each non-first node will send a heartbeat message to the first node. In the case that the first node does not receive the heartbeat message sent by the target non-first node, the first node determines that an abnormality has occurred in the target non-first node. Based on this, the first node sends a broadcast message to at least one third node, and the broadcast message is used to instruct at least one third node to determine whether an abnormality has occurred in the target non-first node. If a part of the third nodes determines that an abnormality has occurred in the target non-first node, and another part of the third nodes determines that the target non-first node is in a normal state (also referred to as an online state or a non-offline state), then at least one non-first node determines the second node.
[0263] The at least one third node refers to a node other than the target non-first node in the at least one non-first node. For example, if the at least two nodes include node 1, node 2, node 3, and node 4, and node 1 is selected as the first node, then nodes 2, 3, and 4 are non-first nodes. If the node is the target non-first node, then nodes 3 and 4 are third nodes, that is, nodes other than the target non-first node in the at least one non-first node.
[0264] Exemplarily, after receiving the broadcast information, at least one third node can send a detection signal to the target non-first node. The detection signal is used to detect whether the target non-first node has an abnormality. If a third node receives the signal information replied by the target non-first node, the third node can determine that the target non-first node is online. If a third node does not receive the signal information replied by the target non-first node, the third slave node can determine that the target non-first node has an abnormality.
[0265] After a third node determines that a target non-first node is abnormal or online, it may send a notification message to the first node, notifying the third node of the determination result. If some third nodes determine that the target non-first node is online, the first node sends a master election notification to each of at least one third node, informing the at least one third node to reselect a communication node.
[0266] It should be noted that the embodiments of the present application do not limit the manner in which the first node determines that the target non-first node has an abnormality. The above-mentioned determination of the abnormality of the target non-first node through heartbeat information is merely illustrative. For example, the first node may also determine whether the target non-first node has an abnormality by sending a detection signal to the target non-first node.
[0267] It should be noted that for the relevant description of "at least one non-first node determines the second node" in S503, reference can be made to the relevant description of "at least two nodes determine the first node" in S501, which will not be repeated here.
[0268] In the embodiment of the present application, when the second node is determined, the device management method may further include: setting the IP address of the second node as the target IP address.
[0269] It should be noted that the method for setting the IP address of the second node as the target IP address can be found in the relevant description of setting the IP address of the first node as the target IP address, which will not be repeated here.
[0270] Based on this, in the embodiment of the present application, the target IP address is an IP address used to indicate a communication node among at least two nodes. Based on this, when the first node is a communication node of at least two nodes, the target IP address indicates the first node. When an abnormality occurs in the first node and the second node is a communication node of at least two nodes, the target IP address indicates the second node.
[0271] In this embodiment, when the second node is determined, the IP address of the second node is set as the target IP address. In this way, the processing device can use a fixed IP address to communicate with the communication node of the at least two nodes. Based on this, after the communication node of the at least two nodes changes, the processing device does not need to change the IP address used to send information to the at least two nodes. This helps avoid using the old IP address to send information to the new communication node of the at least two nodes, thereby helping to avoid communication errors.
[0272] Alternatively, in the case of determining the second node, the device management method may include: the second node writes the second IP address into the database. The second IP address indicates the second node. In this embodiment, in the case of determining the second node, by writing the second IP address into the database, the processing device can obtain the IP address of the new communication node of at least two nodes from the database, so that different communication nodes of at least two nodes can use different IP addresses, which helps the processing device understand that the communication nodes of at least two nodes have changed. In addition, the processing device does not need to record the IP addresses of the communication nodes of at least two nodes. When the IP addresses of the communication nodes of at least two nodes need to be used, it only needs to be obtained from the database, which helps to improve the convenience of the processing device in sending information to the communication nodes of at least two nodes.
[0273] It should be noted that for other relevant descriptions of S503, please refer to the relevant descriptions of S501 mentioned above, which will not be repeated here.
[0274] In the embodiment of the present application, when a master node among at least two nodes allocates a CXL device to each computing device and reclaims CXL devices no longer used by the computing device, the manner in which the second node reports the IP address of the communication node among the at least two nodes to each computing device can be referred to the above description and will not be repeated here.
[0275] In the embodiment of the present application, when the second node is determined, the device management method may further include: the second node creates a second interface; the second interface is used to indicate the format of data transmitted by the processing device to the second node.
[0276] The interface type of the second interface is the same as the interface type of the first interface.
[0277] It should be noted that when the master node among the at least two nodes allocates a CXL device to each computing device and reclaims a CXL device no longer used by the computing device, the first interface is used to instruct each computing device on the format of data transmitted to the first node.
[0278] In this embodiment, the interface type of the second interface created by setting the second node is the same as the interface type of the first interface. In this way, when the processing device or each computing device transmits data to different nodes of at least two nodes, the same format can be used, thereby helping to reduce the impact on the processor device or each computing device when at least two nodes replace the communication node.
[0279] It should be noted that for the relevant description of the second interface, reference can be made to the relevant description of the first interface in S501, which will not be repeated here.
[0280] S504: The second node sends second binding information to the CXL switch.
[0281] The second binding information is used to specify a binding state between the CXL device and the computing device connected through the CXL switch.
[0282] In embodiments of the present application, the second binding information and the first binding information can be used to specify different binding states between the same CXL device and the computing device. In this case, the binding state specified by the second binding information is different from the binding state specified by the first binding information. For example, the binding state of the second binding information is "establishing a binding," while the binding state of the first binding information is "unbinding." Alternatively, the second binding information and the first binding information can be used to specify the same or different binding states between different CXL devices and computing devices. In this case, the second binding information and the first binding information can specify different CXL devices, computing devices, or binding states.
[0283] For example, when the CXL switch is CXL switch 1 shown in FIG. 3A or FIG. 3B , the first binding information may be used to specify the binding state between CXL device 0 and computing device 1, and the second binding information may be used to specify the binding state between CXL device k and computing device 2. Alternatively, the first binding information may be used to specify the binding state between CXL device 0 and computing device 1, for example, specifying the binding state as establishing a binding, and the second binding information may also be used to specify the binding state between CXL device 0 and computing device 1, for example, specifying the binding state as unbinding.
[0284] It should be noted that the relevant description of S504 can be found in S502 mentioned above and will not be repeated here.
[0285] In the above embodiment, a first node can be determined from at least two nodes, and the first node can send first binding information to the CXL switch to specify the binding status between the CXL device and the computing device connected via the CXL switch. Subsequently, if an exception occurs in the first node, a second node can be determined from at least one non-first node, and the second node can send second binding information to the CXL switch to specify the binding status between the CXL device and the computing device connected via the CXL switch. In this way, if an exception occurs in one node (i.e., the first node) responsible for managing the binding status between the CXL device and the computing device, another node (i.e., the second node) can continue to manage the binding status between the CXL device and the computing device, thereby improving the reliability and stability of CXL device management.
[0286] Hereinafter, the embodiments of the present application are described exemplarily by taking at least two nodes to form a cluster, wherein at least two nodes form a cluster, and the cluster includes at least two nodes.
[0287] It should be noted that the communication node among the at least two nodes can be called the master node of the cluster, and the backup node among the at least two nodes can be called the slave node of the cluster, which will not be explained further.
[0288] In the embodiment of the present application, the device management method may further include: the master node of the cluster updates the status of at least one slave node, wherein the status of a slave node includes an online state or an offline state.
[0289] Since the master node of a cluster manages the binding status between CXL devices and computing devices connected via a CXL switch, that is, the first or second node, and the at least one slave node refers to a node in the cluster other than the master node, if the first node is normal, the master node of the cluster refers to the first node, and the at least one slave node refers to a node in the cluster other than the first node. If the first node is abnormal, the master node of the cluster refers to the second node, and the at least one slave node refers to a node in the cluster other than the second node.
[0290] It should be noted that when the second node is the master node of the cluster, at least one slave node may not include a node in the cluster where an abnormality has occurred (such as the first node), or may also include a node in the cluster where an abnormality has occurred. The embodiment of the present application does not impose any restrictions on this.
[0291] For example, referring to Figure 6, node 1 is first selected as the communication node (i.e., the master node of the cluster). When an abnormality occurs in node 1, node 2 is selected as the communication node (i.e., the master node of the cluster). Based on this, when node 2 is the master node of the cluster, at least one slave node may include only node 3, or may also include node 1 and node 3.
[0292] The following describes the process of updating the state of at least one slave node of the cluster by taking the master node of the cluster as the first node and the target slave node as an example, wherein the target slave node can be any one of the at least one slave node.
[0293] When the first node determines that the state of the target slave node has changed, the first node updates the state of the target slave node. For example, if the initial state of the target slave node is online, and the first node determines that the state of the target slave node is abnormal, the first node updates the state of the target slave node to offline.
[0294] In an example, when the first node does not receive the heartbeat information sent by the target slave node and each non-target slave node does not receive the signal information sent by the target slave node, the first node determines that the target slave node is in an offline state.
[0295] It should be noted that when the first node does not receive the heartbeat information sent by the target slave node, the first node determines that the target slave node has an abnormality. Since this situation may also be caused by the first node, the first node does not temporarily determine that the target slave node is in an offline state. Instead, it sends a broadcast message to at least one non-target slave node, instructing at least one non-target slave node to determine whether the target slave node has an abnormality. If each non-target slave node does not receive the signal information sent by the target slave node, it means that it is indeed the target slave node that has an abnormality, not the first node. Based on this, the first node determines that the target slave node is in an offline state.
[0296] In this embodiment, by updating the status of at least one slave node, it is helpful to keep track of the number of nodes in the cluster that are online and the number of nodes that are offline. In this way, when there are no redundant nodes in the cluster that are online, the user can be notified in time to handle the situation, thereby avoiding the situation where all the slave nodes in the cluster are offline, resulting in an abnormality in the master node of the cluster and the inability to manage the binding status between the CXL device and the computing device.
[0297] In the embodiment of the present application, the device management method further includes: the master node of the cluster updates the status of the cluster.
[0298] The status of the cluster includes normal status, degraded status, or no redundancy status.
[0299] The following describes the process of updating the state of the cluster by taking the master node of the cluster as the second node as an example.
[0300] In one example, if the number of online nodes in the cluster is less than or equal to a threshold number, the second node updates the cluster state to a degraded state. The threshold number is less than the number of nodes used when the cluster was created. In other words, the degraded state means that the number of online nodes in the cluster is less than the number of nodes used when the cluster was created.
[0301] It should be noted that the embodiments of the present application do not limit the specific value of the quantity threshold. The quantity threshold can be determined based on the number of nodes used to create the cluster. For example, when the number of nodes used to create the cluster is large, the quantity threshold can be set larger. In other words, the quantity threshold can be set smaller, or the quantity threshold can also be determined by the user.
[0302] For example, referring to Figure 6, nodes 1, 2, and 3 are used when creating a cluster. Node 1 is first elected as the master node of the cluster. If an exception occurs in node 1, node 2 is elected as the master node of the cluster. At this time, the online nodes include nodes 2 and 3. That is, the number of online nodes is 2. If the threshold is 1, node 2 updates the cluster status to a degraded state.
[0303] In another example, if the number of at least one non-first node is less than or equal to a preset threshold, the master node of the cluster updates the cluster state to a non-redundant state. The node in the online state is the master node of the cluster. In other words, the non-redundant state means that there are no slave nodes in the cluster.
[0304] It should be noted that the embodiment of the present application does not limit the specific value of the preset threshold. For example, the specific value of the preset threshold can be determined according to the master election algorithm. For example, the preset threshold can be 2.
[0305] In an embodiment of the present application, when the cluster fails to determine the master node from the nodes in the online state, the nodes in the cluster in the online state update the state of the cluster to the offline state.
[0306] Furthermore, when the difference between the number of online nodes in the cluster and the number of nodes used when the cluster was created is less than a threshold, the cluster can be considered to be in a normal state.
[0307] In this embodiment, by updating the cluster status, it is helpful to keep track of the overall cluster status at any time, so that when the cluster is in a non-redundant state or offline state, the user is promptly notified to handle the situation, thereby avoiding the inability to manage the binding status between the CXL device and the computing device.
[0308] In the embodiment of the present application, the device management method further includes: the master node of the cluster sends cluster information of the cluster to the processing device.
[0309] The cluster information may include cluster status and / or cluster node information.
[0310] The node information of the cluster may include: the number of nodes in the cluster, the number of online slave nodes in the cluster, the number of offline slave nodes in the cluster, the status of each slave node in the cluster, and at least one of the IP addresses of each slave node in the cluster.
[0311] In embodiments of the present application, the master node of a cluster may proactively send cluster information to the processing device, for example, each time the cluster determines a master node, or after the number of slave nodes in the cluster changes. Alternatively, the master node of the cluster may also send cluster information to the processing device based on a received acquisition request.
[0312] In one example, the master node of the cluster actively sends cluster information to the processing device at a preset time interval.
[0313] In another example, the master node of the cluster receives an acquisition request sent by the processing device, where the acquisition request is used to request cluster information; the master node of the cluster sends the cluster information to the processing device in response to the acquisition request.
[0314] In this embodiment, cluster information of the cluster is sent to the processing device, so that the processing device can timely understand the status of the cluster. When the cluster status is poor, such as no redundant nodes or inability to select a master node, the user is promptly notified to handle the situation, thereby avoiding the inability to manage the binding status between the CXL device and the computing device.
[0315] In an embodiment of the present application, when a master node among at least two nodes allocates a CXL device to each computing device and reclaims CXL devices no longer used by the computing device, the device management method may include: the master node of the cluster sends cluster information of the cluster to the electronic device.
[0316] In this embodiment, cluster information is proactively sent to the user's electronic device, which helps the user to promptly understand the status of the cluster. When the cluster status is poor, such as no redundant nodes or inability to select a master node, maintenance can be performed on at least two nodes in a timely manner to avoid the unmanageable binding status between the CXL device and the computing device.
[0317] Fig. 7 is a flow chart showing a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S701-S703.
[0318] It should be noted that the device management method shown in Figure 7 is used for a processing device, which is connected to each of the at least two nodes. The relevant description of the at least two nodes can be found in the embodiment shown in Figure 5 and will not be repeated here.
[0319] In an embodiment of the present application, when a processing device manages a CXL device via at least two nodes, it may first communicate with a CXL switch via a first node of the at least two nodes, thereby using the first node to manage the binding status between the CXL device and the computing device connected via the CXL switch. If an abnormality occurs on the first node, the processing device may communicate with the CXL switch via a second node of the at least two nodes, thereby using the second node to manage the binding status between the CXL device and the computing device connected via the CXL switch.
[0320] It should be noted that in the embodiments of the present application, the node that communicates with the processing device, that is, the node that receives the binding information sent by the processing device, can be referred to as the communication node of the at least two nodes, such as the first node and the second node described below. In addition, the node other than the communication node of the at least two nodes can be referred to as a standby node, which will not be described further below.
[0321] S701: The processing device sends first binding information to the first node.
[0322] It should be noted that for the relevant description of the first binding information, please refer to the above S502 and will not be repeated here.
[0323] Hereinafter, S701 will be exemplarily described by taking at least two nodes including node 1, node 2, ..., and node N as an example, where N is a positive integer greater than 2.
[0324] For example, referring to Figure 8 , nodes 1, 2, ..., and N determine that node 1 is a communication node (i.e., the first node). Based on this, nodes 2, ..., and N are standby nodes (i.e., non-first nodes). The first node is active, and the non-first nodes are in standby. Based on this, the processing device sends a first binding message to node 1. After receiving the first binding message, node 1 sends the first binding message to the CXL switch. In other words, the processing device interacts with the CXL switch through node 1.
[0325] It should be noted that in Figure 8 , when node 1 is a communication node, the "At least two nodes communicating node" column represents node 1. When node 2 is a communication node, the "At least two nodes communicating node" column represents node 2. In other words, the "At least two nodes communicating node" column represents nodes that communicate with the CXL switch.
[0326] In the embodiment of the present application, S701 may include: the processing device sends first binding information to the first node based on the first interface; the first interface is used to indicate the format of data transmitted to the first node.
[0327] Exemplarily, the processing device calls the first interface, generates first binding information based on a data format indicated by the first interface, and sends the first binding information to the first node.
[0328] It should be noted that, for the relevant description of the first interface, please refer to the above S502, which will not be repeated here.
[0329] In the embodiment of the present application, the processing device may send the first binding information to the first node based on the target IP address or the first IP address.
[0330] Exemplarily, the processing device receives the target IP address sent by the first node and sends the first binding information to the first node indicated by the target IP address. Alternatively, the processing device obtains the first IP address from a database and sends the first binding information to the first node indicated by the first IP address.
[0331] It should be noted that for the relevant description of the target IP address and the first IP address, please refer to S502 and will not be repeated here.
[0332] For example, after the first node sends the first binding information to the CXL switch, the CXL switch may send a response message to the first node. The response message may be used to indicate that the first binding information has been received or that the operation indicated by the first binding information has been performed. After receiving the response message, the first node forwards the response message to the processing device so that the processing device can understand the processing status of the first binding information.
[0333] In this embodiment of the present application, when a processing device receives a resource request from a computing device requesting the processing device to allocate CXL device resources, the processing device may send a first request to a first node to obtain status information about the logical devices of each CXL device. The processing device then determines, based on the status information about the logical devices of each CXL device, the logical devices that can be allocated to the computing device.
[0334] In this embodiment of the present application, after receiving the first request sent by the processing device, the first node may send a second request to the CXL switch, where the second request is used to request status information of the logical device of each CXL device connected to the CXL switch.
[0335] Exemplarily, the state information of a logical device may include the state of the logical device, where the state of the logical device includes an idle state or a bound state. The idle state means that the logical device is not assigned to any computing device, that is, no address mapping relationship is established between the logical device and any computing device. The bound state means that the logical device is assigned to a computing device, that is, an address mapping relationship is established between the logical device and the computing device.
[0336] Exemplarily, the state information of the logical device may further include an identifier of the computing device to which the logical device is assigned.
[0337] Illustratively, the state information of the logical device may further include an identifier of a first port used by the CXL device to which the logical device belongs and an identifier of a second port used by a computing device assigned to the logical device.
[0338] In one example, the processing device assigns an idle logical device to a target computing device. For example, assigning logical device 1 of CXL device 0 shown in FIG. 3A or 3B to computing device 1, the first binding information sent by the processing device specifies that a binding relationship be established between CXL device 0 and computing device 1.
[0339] In another example, when no logical devices are idle, the processing device may first send a release request to a non-target computing device to request the release of CXL device resources (i.e., the release of logical devices). For example, computing device 2 shown in FIG3A or 3B may release logical device 2 of CXL device k. After receiving a response from computing device 2, the processing device sends a first binding message specifying the unbinding relationship between CXL device k and the computing device, and then sends a third binding message indicating the establishment of a binding relationship between computing device 1 and CXL device k.
[0340] In the embodiment of the present application, the device management method may further include: the processing device sends an acquisition request to the first node; and the processing device receives cluster information returned by the first node.
[0341] The acquisition request is used to request cluster information of a cluster.
[0342] It should be noted that the processing device may send the acquisition request to the first node at a preset time interval, that is, send the acquisition request in a polling manner. In addition, the specific length of the preset time interval in the embodiment of the present application is not limited.
[0343] Exemplarily, referring to FIG8 , the processing device sends an acquisition request to node 1 . After receiving the acquisition request, node 1 returns cluster information to the processing device. The cluster information indicates that the cluster is in a normal state.
[0344] In this embodiment, the processing device can obtain cluster information in a timely manner by sending an acquisition request to the first node, and thus can promptly understand the status of the cluster. In this way, when the cluster is abnormal, such as: there are no redundant nodes, the master node cannot be selected, etc., the user can be notified in time for processing, avoiding the inability to manage the binding status between the CXL device and the computing device.
[0345] It should be noted that “sending an acquisition request to the first node” can be considered as a specific implementation of “sending an acquisition request to the master node of the cluster”.
[0346] It should be noted that the way in which the processing device sends the acquisition request to the first node can refer to the way in which the processing device sends the first binding information to the first node, such as: sending based on the target IP address or the first IP address, etc., which will not be repeated here.
[0347] S702: When an abnormality occurs in the first node, the processing device sends second binding information to the second node.
[0348] For example, referring to Figure 8 , after node 1 is selected as the communication node (first node), it establishes heartbeat connections with nodes 2, ..., and N. If node 1 experiences an anomaly, node 2 is selected as the communication node (i.e., the second node) from nodes 2, ..., and N. In other words, a new communication node is selected from the nodes in standby mode. Based on this, the processing device sends a second binding message to node 2. After receiving the second binding message, node 2 sends the second binding message to the CXL switch. In other words, the processing device interacts with the CXL switch through node 2.
[0349] Exemplarily, in the case where at least two nodes form a cluster, after node 2 is elected as a communication node (ie, a master node of the cluster), node 2 may update the state of the cluster from a normal state to a degraded state.
[0350] In the embodiment of the present application, S702 may include: the processing device sends second binding information to the second node based on the second interface; the second interface is the same interface type as the interface.
[0351] Exemplarily, the processing device calls the second interface, generates second binding information based on a data format indicated by the second interface, and sends the second binding information to the second node.
[0352] It should be noted that, for the relevant description of the second interface, please refer to the above S502, which will not be repeated here.
[0353] In this embodiment, by setting the second interface to be the same as the interface type of the interface, when at least two nodes replace the communication node, the processing device can still use the original data format to send the binding information, which helps to improve the convenience of communication between the processing device and different communication nodes in the at least two nodes.
[0354] In the embodiment of the present application, the processing device may send the second binding information to the second node based on the target IP address or the second IP address.
[0355] In one example, when an exception occurs in the first node, the second node modifies the IP address of the second node to the target IP address. Therefore, the processing device can send the first binding information to the second node based on the target IP address.
[0356] In another example, because the second node wrote the second IP address to the database when the first node was abnormal, the processing device can obtain the second IP address from the database and send the second binding information to the second node indicated by the second IP address.
[0357] It should be noted that for the relevant description of the second IP address, please refer to S502 and will not be repeated here.
[0358] In the above embodiment, the processing device is connected to each of the at least two nodes. Therefore, the processing device can first send first binding information to the CXL switch via a first node of the at least two nodes to specify the binding status between the CXL device and the computing device, including whether the binding relationship is established or unbound. Subsequently, if an exception occurs in the first node, the processing device can send second binding information to the CXL switch via a second node of the at least two nodes to re-specify the binding status between the CXL device and the computing device. This allows the processing device to continue managing the binding status between the CXL device and the computing device using another node (i.e., the second node) if an exception occurs in one node (i.e., the first node) managing the binding status between the CXL device and the computing device, thereby improving the reliability and stability of CXL device management.
[0359] In an embodiment of the present application, the device management method further includes: when the IP address of the master node fails, the processing device updates the status of the cluster to an offline state.
[0360] In one example, if the difference between the latest write time of the IP address in the database (i.e., the first IP address of the first node or the second IP address of the second node) and the current time is greater than a first preset duration, the processing device determines that the IP address of the master node is invalid. Based on this, the processing device updates the status of the cluster to an offline state.
[0361] In another example, the processing device sends a request to the node indicated by the target IP address (i.e., the first node or the second node) for a second preset duration, wherein the request is used to request the node indicated by the target IP address. If the processing device continuously sends the request a preset number of times and receives a reply from the node indicated by the target IP address, the processing device determines that the IP address of the master node is invalid, and based on this, the processing device updates the status of the cluster to an offline state.
[0362] It should be noted that the embodiment of the present application does not limit the specific duration of the second preset duration. For example, it can be 5 minutes, 10 minutes, 20 minutes, etc. In addition, the embodiment of the present application does not limit the specific value of the preset number of times. For example, it can be 5 times, 10 times, etc.
[0363] In an embodiment of the present application, the device management method may further include: the processing device sending an acquisition request to the second node, where the acquisition request is used to request cluster information; and the processing device receiving the cluster information returned by the second node.
[0364] It should be noted that the processing device may send the acquisition request to the second node at a preset time interval, that is, send the acquisition request in a polling manner. In addition, the specific duration of the preset time interval in the embodiment of the present application is not limited.
[0365] For example, referring to FIG8 , the processing device sends an acquisition request to node 2. After receiving the acquisition request, node 2 returns cluster information to the processing device. Since node 2 updates the cluster status from the normal status to the degraded status, the cluster information indicates that the cluster is in the degraded status.
[0366] It should be noted that “sending an acquisition request to the second node” can be considered as another specific implementation of “sending an acquisition request to the master node of the cluster”.
[0367] Optionally, S703: the processing device sends cluster information of the cluster to the electronic device.
[0368] In an embodiment of the present application, the processing device may send cluster information to the electronic device when the cluster state indicated by the cluster information changes, for example, when the cluster state changes from a normal state to a degraded state. Alternatively, the processing device may send cluster information to the electronic device according to a preset period.
[0369] The term "electronic device" refers to a device used by a user. For example, the electronic device may be a mobile phone, tablet computer, handheld computer, PC, cellular phone, personal digital assistant (PDA), wearable device (such as a smartwatch, smart bracelet, etc.), smart home device (such as a television, etc.), car computer (such as an onboard computer, etc.), smart screen, game console, headset, AI speaker, augmented reality (AR) / virtual reality (VR) device, ultra-mobile personal computer (UMPC), laptop computer, netbook, desktop computer or all-in-one computer, etc.
[0370] It should be noted that the above is only an exemplary description, and the embodiments of the present application do not limit the specific form of the first computing device.
[0371] Exemplarily, referring to FIG. 8 , the processing device sends cluster information of the cluster to the electronic device to notify the user, so that the user can view the cluster information through the electronic device.
[0372] In this embodiment, the processing device can promptly notify the user of cluster status changes by sending cluster information to the electronic device. When the cluster is abnormal, such as no redundant nodes or inability to select a master node, the user can promptly handle it, for example, restarting the device where the node is located, thereby avoiding the inability to manage the binding status between the CXL device and the computing device.
[0373] Fig. 9 is an interactive diagram illustrating a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S901-S904.
[0374] It should be noted that the device management method shown in Figure 9 is used for a CXL switch, which is connected to each of the at least two nodes. For the relevant description of the at least two nodes, refer to the embodiment shown in Figure 5 and will not be repeated here.
[0375] In an embodiment of the present application, the CXL switch may first communicate with a first node among the at least two nodes, thereby establishing or unbinding a binding relationship between a CXL device and a computing device connected through the CXL switch via first binding information sent by the first node. If an abnormality occurs in the first node, the CXL switch may communicate with a second node among the at least two nodes, thereby establishing or unbinding a binding relationship between the CXL device and the computing device connected through the CXL switch via second binding information sent by the second node.
[0376] S901: The CXL switch receives first binding information sent by a first node.
[0377] For example, when the CXL switch is the CXL switch 1 shown in FIG. 3A or FIG. 3B , the first binding information may instruct the CXL switch 1 to establish a binding relationship between the computing device 1 and the CXL device 0 .
[0378] S902: The CXL switch establishes a binding relationship or unbinds a binding relationship between the CXL device and the computing device connected through the CXL switch based on the first binding information.
[0379] Exemplarily, CXL switch 1 establishes a binding relationship between computing device 1 and CXL device 0 based on the first binding information, that is, connects the PCIE link between USP#0 and DSP#0.
[0380] For example, when the CXL device is a CXL memory device, after computing device 1 establishes a binding relationship with CXL memory device 0, computing device 1 can update the CXL memory address that can be used by computing device 1 through the PCIE link between USP#0 and DSP#0 and the discovery protocol based on the CXL memory device (such as the CXL.memory protocol).
[0381] For example, computing device 1 can obtain available memory resources by reading physical address range 1 from the first register of CXL memory device 0. Computing device 1 then writes system address range 1 of the system address space to the second register of CXL memory device 0, establishing a mapping relationship between system address range 1 and physical address range 1. This allows computing device 1 to use the memory resources indicated by physical address range 1 on CXL memory device 0.
[0382] S903: The CXL switch receives the second binding information sent by the second node.
[0383] For example, when the CXL switch is the CXL switch 1 shown in FIG. 3A or FIG. 3B , the second binding information may instruct the CXL switch 1 to establish a binding relationship between the computing device 2 and the CXL device k.
[0384] S904: The CXL switch establishes a binding relationship or releases a binding relationship between the CXL device and the computing device connected through the CXL switch based on the second binding information.
[0385] Exemplarily, CXL switch 1 establishes a binding relationship between computing device 2 and CXL device k based on the second binding information, that is, connects the PCIE link between USP# 1 and DSP#k.
[0386] In the above embodiment, the CXL switch is connected to each of at least two nodes. Therefore, the CXL switch can receive first binding information from a first node of the at least two nodes to specify the binding status between the CXL device and the computing device connected via the CXL switch. Subsequently, if an exception occurs at the first node, the CXL switch can receive second binding information from a second node of the at least two nodes to specify the binding status between the CXL device and the computing device connected via the CXL switch. In this way, if an exception occurs at one node (i.e., the first node) managing the binding status between the CXL device and the computing device, the CXL switch can receive binding information from another node (i.e., the second node) to continue managing the binding status between the CXL device and the computing device, thereby improving the reliability and stability of CXL device management.
[0387] Fig. 10 is an interactive diagram illustrating a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S1001-S1010.
[0388] It should be noted that the device management method shown in FIG10 is used in a computer system, which includes a processing device, at least two nodes, and a CXL switch.
[0389] It should be noted that for the relevant description of the at least two nodes, the processing device and the CXL switch, please refer to the device management method shown in FIG5 , FIG7 and FIG9 , which will not be repeated here.
[0390] S1001: Each of at least two nodes determines a first node.
[0391] S1002: The processing device sends first binding information to the first node.
[0392] S1003: The first node receives first binding information.
[0393] S1004: The first node sends first binding information to the CXL switch.
[0394] S1005: The CXL switch establishes a binding relationship or releases a binding relationship between the CXL device and the computing device connected through the CXL switch based on the received first binding information.
[0395] S1006: When an abnormality occurs in the first node, each non-first node confirms the second node.
[0396] S1007: The processing device sends second binding information to the second node.
[0397] S1008: The second node receives the second binding information.
[0398] S1009: The second node sends second binding information to the CXL switch.
[0399] S1010: The CXL switch establishes a binding relationship or releases a binding relationship between the CXL device and the computing device connected through the CXL switch based on the received second binding information.
[0400] It should be noted that for the relevant descriptions of S1001-S1010, reference can be made to the device management method shown in Figures 5, 7 and 9, which will not be repeated here.
[0401] In an embodiment of the present application, when the computer system is the computing system shown in FIG. 3A or FIG. 3B , that is, when a master node among at least two nodes allocates a CXL device to each computing device and reclaims CXL devices no longer used by the computing device, the method differs from the management method shown in FIG. 10 in that the computer system can manage the binding relationship between the CXL device and each computing device by executing S1001 and S1004-S1010, without having to execute steps S1002-S1003.
[0402] The above mainly introduces the solution provided by the embodiment of the present application from the perspective of the method. In order to realize the above functions, the equipment management device includes a hardware structure and / or software module corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0403] In the embodiment of the present application, the functional modules of the device management device can be divided according to the above method. For example, the device management device can include functional modules corresponding to the functional divisions, or two or more functions can be integrated into one processing module. The above-mentioned integrated modules can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical functional division. There may be other division methods in actual implementation.
[0404] For example, FIG11 illustrates a possible structural diagram of a device management apparatus (denoted as device management apparatus 1100) involved in the above-described embodiments. The actions performed by device management apparatus 1100 are implemented by at least two nodes or by corresponding software executed by at least two nodes, including a first node and a second node. Device management apparatus 1100 may include: a first sending unit 1101 and a second sending unit 1102. The first sending unit 1101 is configured to send first binding information to a computing express link (CXL) switch. The first binding information specifies the binding status between a CXL device and a computing device connected via the CXL switch, including whether a binding is established or unbound. If an exception occurs in the first node, the second sending unit 1102 is configured to send second binding information to the CXL switch. The second binding information specifies the binding status between the CXL device and the computing device connected via the CXL switch.
[0405] Optionally, the first node establishes a heartbeat connection with each non-first node in at least one non-first node; the equipment management device 1100 also includes a determination unit 1103, which is used to determine that an abnormality has occurred in the first node when each non-first node has not received the heartbeat information sent by the first node.
[0406] Optionally, the determining unit 1103 is configured to determine that an abnormality occurs in the first node when a non-first node fails to receive heartbeat information sent by the first node.
[0407] Optionally, the determination unit 1103 is configured to determine that an abnormality occurs in the first node when the first node does not receive heartbeat information sent by the target non-first node and at least some of the non-first nodes receive signal information sent by the target non-first node.
[0408] Optionally, the first sending unit 1101 is also used to create a first interface; the first interface indicates the format of data transmitted by the processing device to the first node; in the event of an abnormality in the first node, the second sending unit is also used to create a second interface; the second interface indicates the format of data transmitted by the processing device to the second node, and the interface type of the second interface is the same as that of the first interface.
[0409] Optionally, the first sending unit 1101 is further used to set the IP address of the first node as the target Internet Protocol address IP address; the target IP address is the IP address of the node that communicates with the processing device among at least two nodes; in the event of an abnormality in the first node, the second sending unit 1102 is further used to set the IP address of the second node as the target IP address.
[0410] Optionally, the first sending unit 1101 is also used to report the first IP address; the first IP address is the IP address of the first node; when the first node is in a faulty state, the second sending unit 1102 is also used to report the second IP address; the second IP address is the IP address of the second node.
[0411] Optionally, at least two nodes form a cluster; the device management device 1100 also includes an update unit 1104, which is used to update the status of the cluster and / or update the status of at least one slave node of the cluster; wherein the master node of the cluster is the first node or the second node, and the at least one slave node of the cluster includes nodes in the cluster other than the master node; the status of the cluster includes a normal state, a degraded state or a non-redundant state; the status of a slave node includes an online state or an offline state.
[0412] Optionally, the updating unit 1104 is specifically configured to: when an abnormality occurs in a target slave node of the cluster, the master node of the cluster updates the state of the target slave node to an offline state.
[0413] Optionally, when the master node does not receive the heartbeat information sent by the target slave node and some of the slave nodes do not receive the signal information sent by the target slave node, the update unit 1104 determines that an abnormality occurs in the target slave node; the some of the slave nodes include each slave node in at least one slave node except the target slave node.
[0414] Optionally, the updating unit 1104 is configured to update the state of the cluster to a degraded state if the number of online nodes in the cluster is less than or equal to a number threshold;
[0415] Optionally, the updating unit 1104 is configured to update the state of the cluster to a non-redundant state when the number of online nodes in the cluster is one.
[0416] Optionally, the device management apparatus 1100 further includes a reporting unit 1105, configured to send cluster information of the cluster in response to the received acquisition request. The cluster information includes at least one of the following: cluster status, number of nodes in the cluster, number of online slave nodes in the cluster, number of offline slave nodes in the cluster, status of each slave node in the cluster, and IP address of each slave node in the cluster.
[0417] Optionally, the reporting unit 1105 is configured to send cluster information of the cluster to the processing device.
[0418] Optionally, the reporting unit 1105 is configured to send cluster status information to an electronic device.
[0419] Optionally, the first interface is used to indicate the format of data transmitted by each computing device to the first node; the second interface is used to indicate the format of data transmitted by each computing device to the second node.
[0420] Optionally, the target IP address is an IP address of a node among the at least two nodes that communicates with each computing device.
[0421] Optionally, the first IP address is an IP address used by the first node to communicate with each computing device; and the second IP address is an IP address used by the second node to communicate with each computing device.
[0422] For the detailed description of the above optional methods, please refer to the above method embodiments, which will not be repeated here. In addition, the explanation and description of the beneficial effects of any of the above-mentioned equipment management devices 1100 can refer to the above-mentioned corresponding method embodiments, which will not be repeated here.
[0423] For example, Figure 12 illustrates a possible structural diagram of a device management apparatus (denoted as device management apparatus 1200) involved in the above-described embodiments. The actions performed by the device management apparatus are implemented by a processing device or by corresponding software executed by the processing device. Device management apparatus 1200 may include a sending unit 1201. Sending unit 1201 is configured to send first binding information to a first node of at least two nodes. The first binding information specifies the binding status between a CXL device and a computing device connected via a CXL switch, where the binding status may include establishing or disabling a binding relationship. Sending unit 1201 is also configured to send second binding information to a second node of the at least two nodes. The second binding information is sent when an abnormality occurs on the first node and specifies the binding status between the CXL device and the computing device connected via the CXL switch.
[0424] Optionally, the sending unit 1201 is specifically used to: send first binding information to the first node based on the first interface; the first interface is created for the first node, and the first interface is used to indicate the format of data transmitted by the processing device to the first node; the sending unit 1201 is specifically used to: send second binding information to the second node based on the second interface; the second interface is created for the second node, and the second interface is used to indicate the format of data transmitted to the second node, and the second interface has the same interface type as the interface.
[0425] Optionally, the sending unit 1201 is specifically used to: send first binding information to the first node indicated by the target IP address; the target IP address is the IP address of the node that communicates with the processing device among at least two nodes; the sending unit 1201 is specifically used to: send second binding information to the second node indicated by the target IP address.
[0426] Optionally, the sending unit 1201 is specifically used to: obtain a first IP address from a database; send first binding information to a first node indicated by the first IP address; the sending unit 1201 is specifically used to: obtain a second IP address from a database; send second binding information to a second node indicated by the second IP address.
[0427] Optionally, the device management device further includes an acquisition unit 1202, which is configured to: send an acquisition request to the master node of the cluster, the acquisition request being used to request cluster information of the cluster, where the cluster includes at least two nodes, and the master node of the cluster is the first node or the second node; and receive cluster information sent by the master node of the cluster. The cluster information includes at least one of the following: the state of the cluster, the number of nodes in the cluster, the number of online slave nodes in the cluster, the number of offline slave nodes in the cluster, the state of each slave node in the cluster, and the IP address of each slave node in the cluster; the state of the cluster includes normal, degraded, or non-redundant; the slave node is a node in the cluster other than the master node; and the state of a slave node includes online or offline. This helps accurately record the state of the cluster and its nodes.
[0428] Optionally, the device management device further includes a reporting unit 1203, and the reporting unit 1203 is configured to send cluster information to the electronic device according to a preset period.
[0429] Optionally, the reporting unit 1203 is configured to send cluster information to the electronic device when the cluster state is a degraded state, a non-redundant state, or an offline state.
[0430] For the detailed description of the above optional methods, please refer to the above method embodiments, which will not be repeated here. In addition, the explanation and description of the beneficial effects of any of the above-mentioned equipment management devices 1200 can refer to the above-mentioned corresponding method embodiments, which will not be repeated here.
[0431] For example, FIG13 illustrates a possible structural diagram of a device management apparatus (denoted as device management apparatus 1300) involved in the above-described embodiments. The actions performed by device management apparatus 1300 are implemented via a CXL switch or by corresponding software implemented via the CXL switch. Device management apparatus 1300 may include a receiving unit 1301. Receiving unit 1301 is configured to receive first binding information sent by a first node among at least two nodes. The first binding information specifies the binding status between a CXL device and a computing device connected via the CXL switch, including establishing or disabling a binding relationship. Receiving unit 1301 is also configured to receive second binding information sent by a second node among the at least two nodes. The second binding information is sent by the second node when an abnormality occurs at the first node, and specifies the binding status between the CXL device and the computing device connected via the CXL switch.
[0432] Optionally, the device management apparatus 1300 further includes a binding unit 1302. The binding unit 1302 is configured to establish or unbind a binding relationship between a CXL device and a computing device connected via the CXL switch based on the first binding information; and the binding unit 1302 is further configured to establish or unbind a binding relationship between the CXL device and the computing device connected via the CXL switch based on the second binding information.
[0433] Optionally, the CXL switch is provided with at least two ports, and the at least two ports are used to connect at least two nodes.
[0434] Optionally, the CXL switch is connected to a port extension device, and the port extension device includes at least two ports, and the at least two ports are used to connect at least two nodes.
[0435] For the detailed description of the above optional methods, please refer to the above method embodiments, which will not be repeated here. In addition, the explanation and description of the beneficial effects of any of the above-mentioned equipment management devices 1300 can refer to the above-mentioned corresponding method embodiments, which will not be repeated here.
[0436] An embodiment of the present application further provides a computer-readable storage medium having a computer program stored thereon. When the computer program is run on a computer, the computer is caused to execute any of the methods executed by the computer devices provided above.
[0437] For explanations of the relevant contents and descriptions of the beneficial effects of any of the computer-readable storage media provided above, reference may be made to the corresponding embodiments described above, and no further details will be given here.
[0438] The embodiment of the present application also provides a chip. The chip integrates a control circuit and one or more ports for implementing the functions of the above-mentioned computer device. Optionally, the functions supported by the chip can be referred to above and will not be repeated here. A person of ordinary skill in the art will understand that all or part of the steps of implementing the above-mentioned embodiment can be completed by instructing the relevant hardware through a program. The program can be stored in a computer-readable storage medium. The storage medium mentioned above can be a read-only memory, a random access memory, etc. The above-mentioned processing unit or processor can be a central processing unit, a general-purpose processor, an application specific integrated circuit (ASIC), a microprocessor (digital signal processor, DSP), a field programmable gate array (FPGA) or other programmable logic device, transistor logic device, hardware component or any combination thereof.
[0439] The present application also provides a computer program product comprising instructions that, when executed on a computer, cause the computer to perform any of the methods described in the above embodiments. The computer program product comprises one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions according to the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
[0440] It should be noted that the above-mentioned devices for storing computer instructions or computer programs provided in the embodiments of the present application, such as but not limited to the above-mentioned memories, computer-readable storage media and communication chips, etc., are all non-transitory.
[0441] In the above embodiments, all or part of the embodiments may be implemented using software, hardware, firmware, or any combination thereof. When implemented using a software program, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions according to the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
[0442] Computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. A computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. Available media can be magnetic media (e.g., floppy disks, hard disks, tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid state drives (SSDs)).
[0443] Although the present application is described herein in conjunction with various embodiments, in the process of implementing the claimed application, those skilled in the art may understand and implement other variations of the disclosed embodiments by reviewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude multiple situations. A single processor or other unit may implement several functions listed in the claims. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.
[0444] Although the present application has been described with reference to specific features and embodiments thereof, it is apparent that various modifications and combinations may be made thereto without departing from the spirit and scope of the present application. Accordingly, this specification and the drawings are merely illustrative of the present application as defined by the appended claims and are deemed to cover any and all modifications, variations, combinations or equivalents within the scope of the present application. Obviously, those skilled in the art may make various modifications and variations to the present application without departing from the spirit and scope of the present application. Thus, the present application is intended to include such modifications and variations as fall within the scope of the claims of the present application and their equivalents.
Claims
1. A device management method, characterized in that: The method comprises: A first node of the at least two nodes sends first binding information to a computing fast link CXL switch; the first binding information is used to specify a binding state between a CXL device and a computing device connected through the CXL switch, the binding state including establishing a binding or releasing a binding; In the case that the first node is abnormal, a second node of the at least two nodes sends second binding information to the CXL switch; the second binding information is used to specify a binding state between a CXL device and a computing device connected through the CXL switch.
2. The method according to claim 1, characterized in that The method further comprises: The first node establishes a heartbeat connection with each non-first node of at least one non-first node; The first node has an abnormality, including: each non-first node has not received the heartbeat information sent by the first node, or, one of the non-first nodes has not received the heartbeat information sent by the first node, or, the first node has not received the heartbeat information sent by the target non-first node, and some non-first nodes have received the signal information sent by the target non-first node.
3. The method according to claim 1 or 2, characterized in that: The method further comprises: The first node creates a first interface; the first interface is used to indicate the format of data transmitted by the processing device to the first node; When an abnormality occurs in the first node, the second node creates a second interface; the second interface is used to indicate the format of data transmitted by the processing device to the second node, and the second interface has the same interface type as the first interface.
4. The method according to any one of claims 1 to 3, characterized in that The method further comprises: The first node sets the IP address of the first node as a target Internet Protocol address IP address; the target IP address is an IP address of a node in the at least two nodes that communicates with the processing device; In the case that an abnormality occurs in the first node, the second node sets the IP address of the second node as the target IP address.
5. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: The first node reports a first IP address; the first IP address is the IP address of the first node; When an abnormality occurs in the first node, the second node reports a second IP address; the second IP address is the IP address of the second node.
6. The method according to any one of claims 1 to 5, characterized in that The at least two nodes form a cluster; the method further comprises: The master node of the cluster updates the state of the cluster and / or updates the state of at least one slave node of the cluster; Among them, the master node of the cluster is the first node or the second node, and at least one slave node of the cluster includes a node in the cluster other than the master node; the state of the cluster includes a normal state, a degraded state or a non-redundancy state; the state of a slave node includes an online state or an offline state.
7. The method according to claim 6, characterized in that The master node of the cluster updates the state of the cluster, including: When the number of online nodes in the cluster is less than or equal to a number threshold, the master node of the cluster updates the state of the cluster to a degraded state; Or, when the number of online slave nodes in the cluster is less than a preset threshold, the master node of the cluster updates the state of the cluster to a non-redundant state.
8. A device management method, characterized in that: For processing equipment; the method comprises: Sending first binding information to a first node of at least two nodes; the first binding information is used to specify a binding state between a CXL device and a computing device connected through the CXL switch, the binding state including establishing a binding relationship or releasing a binding relationship; Sending second binding information to a second node of the at least two nodes; the second binding information is sent when an abnormality occurs in the first node, and the second binding information is used to specify a binding state between a CXL device and a computing device connected through the CXL switch.
9. The method according to claim 8, characterized in that The sending of the first binding information to a first node of the at least two nodes comprises: sending the first binding information to the first node based on a first interface; the first interface is created for the first node, and the first interface is used to indicate a format in which the processing device transmits data to the first node; The sending of the second binding information to the second node of the at least two nodes includes: sending the second binding information to the second node based on a second interface; the second interface is created for the second node, the second interface is used to indicate the format of transmitting data to the second node, and the second interface is the same as the interface type of the interface.
10. The method according to claim 8 or 9, characterized in that: The sending of the first binding information to the first node of the at least two nodes comprises: sending the first binding information to the first node indicated by the target IP address; the target IP address is the IP address of a node in the at least two nodes that communicates with the processing device; The sending the second binding information to the second node of the at least two nodes includes: sending the second binding information to the second node indicated by the target IP address.
11. The method according to any one of claims 8 to 10, characterized in that: The method further comprises: Sending an acquisition request to a master node of a cluster, where the acquisition request is used to request to acquire cluster information of the cluster, where the cluster includes the at least two nodes, and the master node of the cluster is the first node or the second node; Receiving the cluster information sent by the master node of the cluster; The cluster information includes at least one of the state of the cluster, the number of nodes of the cluster, the number of slave nodes in the cluster that are online, the number of slave nodes in the cluster that are offline, the state of each slave node of the cluster, and the IP address of each slave node of the cluster; The state of the cluster includes a normal state, a degraded state or a non-redundancy state; the slave nodes are other nodes in the cluster except the master node; the state of a slave node includes an online state or an offline state.
12. A device management method, characterized in that: For a CXL switch; the method comprises: receiving first binding information sent by a first node of at least two nodes; the first binding information is used to specify a binding state between a CXL device and a computing device connected through the CXL switch, the binding state including establishing a binding relationship or releasing a binding relationship; receiving second binding information sent by a second node of the at least two nodes; the second binding information is sent by the second node when an abnormality occurs in the first node, and the second binding information is used to specify a binding state between a CXL device and a computing device connected through the CXL switch.
13. The method according to claim 12, characterized in that The CXL switch is provided with at least two ports, and the at least two ports are used to connect the at least two nodes; or the CXL switch is connected to a port expansion device, and the port expansion device includes at least two ports, and the at least two ports are used to connect the at least two nodes.
14. A processing device, characterized in that: The processing device includes a processor and a memory, the processor is connected to the memory, the memory stores computer-executable instructions, and the processor executes the computer-executable instructions to implement the method according to any one of claims 8 to 11.
Citation Information
Patent Citations
Method and device for traffic offload forwarding in multi-binding mode, and medium
CN116055426A
Configuration method, equipment and device of host system, computing system and storage medium
CN116781511A
Unlocking computing resources for decomposable data centers
US11601377B1
Compute express link over ethernet in composable data centers
US20230116820A1