Equipment management method and processing equipment
By introducing a multi-node management mechanism in the CXL device management system, it ensures that when managing device failures, CXL devices can still be managed through other nodes, solving the problem of insufficient reliability and stability of CXL device management.
Patent Information
- Application Number
- CN202311271210.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-27
- Publication Date
- 2025-03-28
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 CXL device; when an exception occurs in the first node, the second node takes over the management of the CXL device and sends corresponding binding information to the CXL switch.
Through multi-node management, the reliability and stability of CXL device management are improved, and the problem of CXL device being unable to manage when management equipment failure is avoided.
Smart Images

Figure CN119728399A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a device management method and a processing device. Background Art
[0002] In the related art, in order to improve the capability of computing devices, Compute ExpressLink (CXL) devices are connected to computing devices for use by the computing devices. On this basis, management devices are introduced to manage CXL devices to ensure that different computing devices can use CXL devices.
[0003] However, when the management device fails, the CXL device cannot be managed, which results in poor reliability and stability of CXL device management.
[0004] Therefore, how to improve the reliability and stability of CXL equipment management has become a technical problem that needs to be solved urgently. Summary of the invention
[0005] The embodiments of the present application provide a device management method and a processing device, which are helpful to improve the reliability and stability of CXL device management.
[0006] To achieve the above objectives, the embodiments of the present application adopt the following technical solutions:
[0007] In a first aspect, a device management method is provided for at least two nodes, the method comprising: 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 event of an abnormality in the first node, 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 the CXL device and the computing device connected through the CXL switch.
[0008] In this solution, the first node of at least two nodes can send first binding information to the CXL switch to specify the binding state between the CXL device and the computing device connected through the CXL switch. In the case of an abnormality in the first node, the second node of at least two nodes can send second binding information to the CXL switch to specify the binding state between the CXL device and the computing device connected through the CXL switch. Since different nodes in the at least two nodes can manage CXL devices, when an abnormality occurs in one node (i.e., the first node) that manages the CXL device, another node (i.e., the second node) can be used to continue to manage the CXL device. Compared with the related art in which the binding state between the CXL device and the computing device cannot be managed after the management device is offline, the device management method of the embodiment of the present application improves the reliability and stability of CXL device management.
[0009] In a possible implementation manner, the method further includes: the first node establishing a heartbeat connection with each non-first node of the at least one non-first node.
[0010] In this implementation, on the one hand, the first node can understand whether each non-first node has an abnormality, which helps the first node to grasp the number of available backup nodes and the number of backup nodes with abnormalities. On the other hand, each non-first node can understand whether the first node has an abnormality, which helps to select a new communication node in time when the first node has an abnormality.
[0011] 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.
[0012] In this implementation, each non-first node has not received the heartbeat information sent by the first node, indicating that the first node has been offline or failed. At this time, 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.
[0013] In another possible implementation, the method further includes: determining that an abnormality occurs in the first node when a non-first node does not receive the heartbeat information sent by the first node.
[0014] In this implementation, when a non-first node does not receive the heartbeat information sent by the first node, it indicates that there is a possibility that the first node is offline or fails. At this time, 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.
[0015] 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 of the non-first nodes receive signal information sent by the target non-first node.
[0016] In this implementation, if the first node does not 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 there is a possibility that the first node is offline or fails. At this time, 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 also 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; when an abnormality occurs 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.
[0018] 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.
[0019] In another possible implementation, the method also 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; when an abnormality occurs in the first node, the second node sets the IP address of the second node as the target IP address.
[0020] In this implementation, when the first node acts as a communication node, the first node sets its own IP address to the target IP address. When an abnormality occurs in the first node, the second node sets its own IP address to the target IP address. Since the target IP address is the IP address of a node among at least two nodes that communicates with the processing device, the processing device cannot perceive the replacement of the node, which helps to reduce the impact of the replacement of the communication node of at least two nodes on the processing device.
[0021] 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 faulty state, the second node reports a second IP address; the second IP address is the IP address of the second node.
[0022] 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.
[0023] In another possible implementation, at least two nodes form a cluster; the method also includes: 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; 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 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.
[0024] 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.
[0025] In another possible implementation, the master node of the cluster updates the state 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 state of the target slave node to an offline state.
[0026] In this implementation, when an abnormality occurs in a target slave node, the state of the target slave node is updated to an offline state, so that the number of nodes currently available in the cluster can be indicated by the states of different nodes.
[0027] 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.
[0028] In another possible implementation, the master node of the cluster updates the state of the cluster, including: when the number of nodes in the cluster that are online 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;
[0029] 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, so that the status of the currently available standby nodes can be indicated by the cluster state.
[0030] In another possible implementation manner, the master node of the cluster updates the state of the cluster, including: when the number of online nodes in the cluster is 1, the master node of the cluster updates the state of the cluster to a non-redundant state.
[0031] In this implementation, when only one node is online in the cluster, the state of the cluster is updated to a non-redundant state, so that the status of the currently available standby nodes can be indicated by the state of the cluster.
[0032] In another possible implementation, the method further includes: the master node of the cluster sends cluster information of the cluster in response to the received acquisition request, wherein the cluster information includes at least one of the state of the cluster, the number of nodes in 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 in the cluster, and the IP address of each slave node in the cluster.
[0033] In this implementation, the master node of the cluster responds to the acquisition request of the upper layer device (such as the processing device) and reports the cluster information of the cluster. In this way, the cluster information can be sent to the upper layer device only when the upper layer device needs to use the cluster information.
[0034] In another possible implementation, the method further includes: the master node of the cluster sends cluster information of the cluster to the processing device. In this implementation, the master node of the cluster actively reports the cluster information, which helps to improve the convenience of the upper layer device (such as: processing device) to obtain the cluster information.
[0035] In another possible implementation, the method further includes: the master node of the cluster sends cluster information of the cluster to the electronic device. In this implementation, the master node of the cluster actively sends cluster information to the electronic device used by the user, which helps the user to understand the status of the cluster in a timely manner, so as to handle it in a timely manner when the cluster status is poor (such as no redundancy, degradation).
[0036] In another possible implementation, the first interface is used to indicate the format in which each computing device transmits data to the first node; the second interface is used to indicate the format in which each computing device transmits data to the second node.
[0037] 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.
[0038] 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.
[0039] 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 state between a CXL device and a computing device connected through a CXL switch, the binding state including establishing a binding relationship or releasing a binding relationship; sending second binding information to a second node of 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 the CXL device and the computing device connected through the CXL switch.
[0040] In this solution, the processing device can send first binding information to the CXL switch through the first node of at least two nodes to specify the binding state between the CXL device and the computing device connected through the CXL switch. In the case of an abnormality in the first node, the processing device can send second binding information to the CXL switch through the second node of at least two nodes to specify the binding state of the CXL device and the computing device connected through the CXL switch. Since different nodes in the at least two nodes can manage CXL devices, when an abnormality occurs in one node (i.e., the first node) that manages the CXL device, the processing device can use another node (i.e., the second node) to continue to manage the CXL device. Compared with the related art in which the binding state of the CXL device and the computing device cannot be managed after the management device is offline, the device management method of the embodiment of the present application improves the reliability and stability of the CXL device management.
[0041] 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.
[0042] In another possible implementation, sending first binding information to a first node includes: sending the first binding information to the first node indicated by a target IP address; the target IP address is an IP address of a node among at least two nodes that communicates with the processing device; sending second binding information to a second node includes: sending the second binding information to the second node indicated by the target IP address.
[0043] In another possible implementation, sending first binding information to a 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 a second node includes: obtaining a second IP address from a database; and sending the second binding information to the second node indicated by the second IP address.
[0044] 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.
[0045] 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 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 in the cluster, and the IP address of each slave node in the cluster; the state of the cluster includes normal state, degraded state, or non-redundant state; the slave node is a node other than the master node in the cluster; the state of a slave node includes online state or offline state. This helps to accurately record the state of the cluster and nodes.
[0046] In another possible implementation manner, the method further includes: sending cluster information to the electronic device according to a preset period.
[0047] In this implementation, by setting to send cluster information to the electronic device according to a preset period, it is helpful for the user to accurately understand the cluster information of the cluster.
[0048] In another possible implementation manner, 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.
[0049] In this implementation, cluster information is sent to the electronic device 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 the user from receiving information frequently, but also helps the user to understand the changes in the cluster state in a timely manner.
[0050] In a third aspect, a device management method is provided for a CXL switch, the method comprising: 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 the CXL device and the computing device connected through the CXL switch.
[0051] In this solution, the CXL switch can receive first binding information sent by the first node of at least two nodes to specify the binding state between the CXL device and the computing device connected through the CXL switch. In the case of an abnormality in the first node, the CXL switch can receive second binding information sent by the second node of at least two nodes to the CXL switch to specify the binding state of the CXL device and the computing device connected through the CXL switch. Since the CXL switch can receive binding information sent by different nodes of at least two nodes, different nodes of at least two nodes can manage the CXL device. In this way, when an abnormality occurs in one node (i.e., the first node) managing the CXL device, another node (i.e., the second node) can be used to continue to manage the CXL device. Compared with the related art in which the binding state of the CXL device and the computing device cannot be managed after the management device is offline, the device management method of the embodiment of the present application improves the reliability and stability of the CXL device management.
[0052] 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.
[0053] In another possible implementation, at least two ports are provided on the CXL switch, and the at least two ports are used to connect at least two nodes. In this way, the CXL switch can be connected to each of the at least two nodes.
[0054] In another possible implementation, the CXL switch is connected to a port extension device, the port extension device includes at least two ports, and the at least two ports are used to connect at least two nodes. In this way, the CXL switch can be connected to each of the at least two nodes, which is equivalent to setting multiple ports on the CXL switch, which helps to reduce costs.
[0055] In a fourth aspect, a device management apparatus is provided, the apparatus comprising: a functional unit for executing any one of the methods provided in the first aspect, the actions executed by each functional unit being implemented by hardware or by hardware executing corresponding software. For example, the device management apparatus may include: a first sending unit and a second sending unit; the first sending unit is used to send 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 unbinding; in the event of an abnormality in the first node, the second sending unit is used to send 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.
[0056] In a fifth aspect, a device management apparatus is provided, the apparatus comprising: a functional unit for executing any one of the methods provided in the first aspect, the actions executed by each functional unit being implemented by hardware or by hardware executing corresponding software implementations. For example, the device management apparatus may include: a sending unit; the sending unit is configured to send 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 a CXL switch, the binding state including establishing a binding relationship or releasing a binding relationship; the sending unit is further configured to send second binding information to a second node of 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 a CXL switch.
[0057] In a sixth aspect, a device management apparatus is provided, the apparatus comprising: a functional unit for executing any one of the methods provided in the first aspect, the actions executed by each functional unit being implemented by hardware or by executing corresponding software implementations through hardware. For example, the device management apparatus may include: a receiving unit; the receiving unit is configured to receive 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 a CXL switch, the binding state including establishing a binding relationship or releasing a binding relationship; the receiving unit is further configured to receive second binding information sent by a second node of 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 a CXL switch.
[0058] 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 comprising: 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 state between a CXL device and a computing device connected via the CXL switch, the binding state comprising establishing a binding relationship or releasing a binding relationship; the CXL switch receiving the first binding information sent by the first node; 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; and the CXL switch receiving the second binding information sent by the second node of the at least two nodes.
[0059] In an eighth aspect, a device management method is provided, which is used in 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 sends first binding information to a first node of the at least two nodes; the first binding information is used to specify a binding state between a CXL device connected through the CXL switch and a computing device, and the binding state includes establishing a binding relationship or releasing 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; when 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 state between the CXL device connected through the CXL switch and the computing device; the second node receives the second binding information sent by the processing device, and sends the second binding information to the CXL switch; the CXL switch receives the second binding information sent by the second node.
[0060] In the ninth aspect, a processing device is provided, which includes a processor and a memory, wherein the processor and the memory are connected, computer execution instructions are stored in the memory, 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.
[0061] In a tenth aspect, a computing system is provided, 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 at least two nodes being used to execute any one of the methods provided in the first aspect, and the CXL switch being used to execute any one of the methods provided in the third aspect.
[0062] In an eleventh aspect, a computing system is provided, the computing system comprising a processing device, at least two nodes and a CXL switch, the processing device being connected to each of the at least two nodes, and each node being connected to the CXL switch; the at least two nodes being used to execute any one of the methods provided in the first aspect, the processing device being used to execute any one of the methods provided in the second aspect, and the CXL switch being used to execute any one of the methods provided in the third aspect.
[0063] 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. The processor executes the computer-executable instructions, so that the CXL switch performs any one of the methods provided in the third aspect.
[0064] In a thirteenth aspect, a computer-readable storage medium is provided, which stores computer execution instructions. When the computer execution instructions are executed on a computer, the computer executes any one of the methods provided in the first aspect.
[0065] In a fourteenth aspect, a computer-readable storage medium is provided, storing computer execution instructions, which, when executed on a computer, enable the computer to execute any one of the methods provided in the second aspect.
[0066] In a fifteenth aspect, a computer-readable storage medium is provided, storing computer execution instructions, which, when executed on a computer, enable the computer to execute any one of the methods provided in the third aspect.
[0067] In a sixteenth aspect, a computer program product is provided, comprising: computer execution instructions, which, when executed on a computer, cause the computer to execute any one of the methods provided in the first aspect.
[0068] In the seventeenth aspect, a computer program product is provided, comprising: computer execution instructions, which, when executed on a computer, cause the computer to execute any one of the methods provided in the second aspect.
[0069] In an eighteenth aspect, a computer program product is provided, comprising: computer execution instructions, which, when executed on a computer, cause the computer to execute any one of the methods provided in the third aspect.
[0070] 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
[0071] Figure 1A schematic diagram of a one-to-many management structure in a related technology provided in an embodiment of the present application;
[0072] Figure 2 A schematic diagram of a one-to-one management structure in a related technology provided in an embodiment of the present application;
[0073] Figure 3A A schematic diagram of the structure of a computing system provided in an embodiment of the present application;
[0074] Figure 3B A schematic diagram of the structure of another computing system provided in an embodiment of the present application;
[0075] Figure 4 A schematic diagram of the structure of a CXL memory device provided in an embodiment of the present application;
[0076] Figure 5 A flow chart of a device management method provided in an embodiment of the present application;
[0077] Figure 6 A schematic diagram of interaction between different nodes in at least two nodes provided in an embodiment of the present application;
[0078] Figure 7 A flowchart of another device management method provided in an embodiment of the present application;
[0079] Figure 8 A schematic diagram of interaction between a processing device and at least two nodes provided in an embodiment of the present application;
[0080] Fig. 9 A flowchart of another device management method provided in an embodiment of the present application;
[0081] Fig.10 An interactive schematic diagram of another device management method provided in an embodiment of the present application;
[0082] Fig.11 A schematic diagram of a device management apparatus provided in an embodiment of the present application;
[0083] Fig.12 A schematic diagram of another device management device provided in an embodiment of the present application;
[0084] Fig.13 A schematic diagram of another device management apparatus provided in an embodiment of the present application. DETAILED DESCRIPTION
[0085] 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.
[0086] In the description of this application, unless otherwise specified, " / " indicates that the objects associated with each other 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 between 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.
[0087] 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 items 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 multiple.
[0088] In addition, in order to clearly describe the technical solutions of the embodiments of the present application, in the embodiments of the present application, words such as "first" and "second" are used to distinguish the same items or similar items with substantially the same functions and effects. Those skilled in the art can understand that words such as "first" and "second" do not limit the quantity and execution order, and words such as "first" and "second" do not necessarily limit the difference.
[0089] Meanwhile, in the embodiments of the present 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 the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete manner for ease of understanding.
[0090] The following is a brief introduction to the relevant terms involved in the embodiments of the present application.
[0091] CXL protocol: is a high-speed serial protocol that enables fast and reliable data transmission between different components inside a computing device. For example, between the central processing unit (CPU) and the accelerator, memory buffer, and smart network interface card (Smart NIC). In addition, the CXL protocol can also be used in scenarios such as artificial intelligence machine learning (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.
[0092] CXL device: refers to a device having a peripheral component interconnect express (PCIE) interface, which complies with the CXL protocol. Exemplarily, the CXL device can be connected to the CPU through the PCIE interface.
[0093] 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 need to use memory resources on computing devices, such as graphics processing units (GPUs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), etc. 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 computing devices, such as memory devices. Type 3 devices support the CXL.io protocol and the CXL.memory protocol.
[0094] CXL switch: refers to a switch with a PCIE interface, which complies with the CXL protocol. Exemplarily, the PCIE interface can be a PCIE5.0 interface, a PCIE6.0 interface, or an interface of other versions of PCIE.
[0095] Orchestrator: refers to a device used to orchestrate computing resources, storage resources, memory resources and other resources of multiple computing devices.
[0096] The following is an exemplary introduction to the application scenarios of the embodiments of the present application.
[0097] In the related art, in order to improve the capability of a computing device, a CXL device is connected to the computing device as an external device of the computing device for use by the computing device. For example, one CXL device is connected to multiple computing devices, and the one CXL device is used by the multiple computing devices, or multiple CXL devices are connected to multiple computing devices, and the multiple CXL devices are used by the multiple computing devices.
[0098] On this basis, related technologies also introduce management devices to manage CXL devices, such as: allocating CXL devices to computing devices, binding CXL devices to computing devices, recycling CXL devices that are no longer used by computing devices, etc., to ensure that different computing devices can use CXL devices.
[0099] 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).
[0100] like Figure 1 The figure is a schematic diagram of a one-to-many management structure, wherein the management device a is connected to the CXL switch a, so the management device a can manage the CXL device a connected to the CXL switch a, and in addition, the management device a is also connected to the CXL switch b, so the management device can also manage the CXL device b connected to the CXL switch b.
[0101] like Figure 2 As shown, it is a schematic diagram of the structure of one-to-one management. In which, the management device b is connected to the CXL switch c, so the management device b can manage the CXL device c connected to the CXL switch c. The management device c is connected to the CXL switch d, so the management device c can manage the CXL device d connected to the CXL switch d.
[0102] It can be seen that in the above management mode, when the management device fails, the CXL device connected to the failed management device cannot be managed. For example, when the management device b fails, the CXL device c connected to the management device b cannot be managed. Obviously, the reliability and stability of this management mode are relatively poor.
[0103] Therefore, how to improve the reliability and stability of CXL equipment management has become a technical problem that needs to be solved urgently.
[0104] In view of this, an embodiment of the present application provides a device management method for at least two nodes, wherein a first node of the at least two nodes may send first binding information to a CXL switch to specify a binding state between a CXL device and a computing device connected through the CXL switch, wherein the binding state includes establishing a binding or unbinding a binding. When an abnormality 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 a binding state between the CXL device and the computing device connected through the CXL switch.
[0105] Since different nodes among the at least two nodes can manage the binding status between the CXL device connected to the CXL switch and the computing device, when a node (i.e., the first node) managing the binding status of the CXL device is abnormal, another node (i.e., the second node) can be used to continue managing the binding status of the CXL device. Compared with the related art in which the binding status of the CXL device cannot be managed after the management device is offline, the device management method of the embodiment of the present application improves the reliability and stability of the CXL device management.
[0106] The following is an exemplary introduction to the system architecture of the embodiments of the present application.
[0107] like Figure 3A , which is a schematic diagram of a computing system provided in an embodiment of the present application.
[0108] The computing system may include at least one CXL switch and at least two nodes. Each of the at least two nodes is connected to each of the at least one CXL switch, and each node may communicate with each of the CXL switches.
[0109] 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.
[0110] 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.
[0111] 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.
[0112] In another example, a CXL device may be connected to a computing device via a multi-layer CXL switch, that is, one CXL switch in the multi-layer CXL switch is connected to the CXL device, another CXL switch in the multi-layer CXL switch is connected to the computing device, two adjacent layers of CXL switches in the multi-layer CXL switch are connected to each other, or any two CXL switches in the multi-layer CXL switch are connected to each other.
[0113] 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.
[0114] 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.
[0115] It should be noted that, among them, at least one may be one or more, and multiple may be two or more; at least two may be two or more. At least two computing devices may form a cluster, or may not form a cluster, and the embodiment of the present application does not limit this. In addition, at least one CXL device may form a device pool, or may not form a device pool, and the embodiment of the present application does not limit this.
[0116] 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. A computing device may access the CXL device connected to the CXL switch based on a CXL protocol.
[0117] For example, see Figure 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.
[0118] A root port (RP) is provided on the computing device, and the root port is used to connect to the CXL switch. Figure 3A RP#0 and RP#1 are set on computing device 1, and RP#3 and RP#4 are set on computing device 2.
[0119] In the embodiment 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 may be a switch using the CXL version 3.0 protocol.
[0120] When the CXL switch is a switch using the CXL 2.0 version protocol, an upstream switch port (USP) is provided on the CXL switch. The USP is used to connect a computing device. For example, see Figure 3A, USP#0 and USP#1 are provided on CXL switch 1, and USP#3 and USP#4 are provided on CXL switch 2. A downstream switch port (DSP) is also provided on the CXL switch, and the DSP is used to connect to the CXL device. For example, see Figure 3A , CXL switch 1 is provided with DSP#0, ....., DSP#k, and CXL switch 2 is provided with DSP#k+1, ....., DSP#n.
[0121] A connection control interface (CCI) is provided on the CXL device, and the CCI is used to connect to the switch. Figure 3A , CCI is set on CXL devices 0, ..., CXL devices n.
[0122] For example, see Figure 3A RP#0 is connected to USP#0, DSP#0, ....., DSP#k are connected to CCI on CXL device 0, ..., CXL device k respectively, so that computing device 1 is connected to CXL device 0, ..., CXL device k through CXL switch 1. RP#1 is connected to USP#3, DSP#k+1, ....., DSP#n are connected to CCI on CXL device k+1, ..., CXL device n respectively, so that computing device 1 is connected to CXL device k+1, ..., CXL device n through CXL switch 2.
[0123] The principle of connecting computing device 2 with CXL device 0, ..., CXL device n through CXL switch 1, CXL switch 2 is the same as the principle of connecting computing device 1 with CXL device 0, ..., CXL device n through CXL switch 1, CXL switch 2, and will not be repeated here.
[0124] When the CXL switch is a switch using the CXL 3.0 version protocol, the CXL switch does not distinguish between an uplink switching port and a downlink switching port, and any port on the CXL switch can be used to connect a computing device or a CXL device.
[0125] In the embodiment of the present application, at least two first ports are provided on the CXL switch, and the at least two first ports are connected to at least two nodes, wherein one first port is used to connect one node, so that each node can communicate with the CXL switch.
[0126] Alternatively, a second port is provided on the CXL switch, the CXL switch is connected to the port extension device through the second port, the port extension device includes at least two third ports, the CXL switch is connected to at least two nodes through the at least two third ports on the port extension device, wherein one third port is connected to one node.
[0127] For example, see Figure 3A CXL switch 1 is connected to port extension 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 extension 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.
[0128] In the embodiment of the present application, the connection relationship between at least two nodes and at least two computing devices includes multiple situations, and the following is exemplified by situation 1 to situation 2.
[0129] Case 1: Each of the at least two computing devices is connected to each of the at least two nodes.
[0130] That is, each computing device can communicate with each node.
[0131] For example, see Figure 3A , 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.
[0132] In scenario 1, a master node (also referred to as a communication node) among the at least two nodes may allocate a CXL device to each computing device, and recycle a CXL device no longer used by each computing device.
[0133] For example, when computing device 1 needs to use a CXL device, it can send a request to the master node to request the master node to allocate an available CXL device. After receiving the request from computing device 1, the master node allocates an idle CXL device to computing device 1. An idle CXL device refers to a CXL device that is not allocated to any computing device.
[0134] Case 2: The target computing device among the at least two computing devices is connected to each of the at least two nodes.
[0135] The target computing device may be any one of the at least two computing devices, or may be a computing device specified by a user.
[0136] In case 2, the master node among the at least two nodes may allocate a CXL device to each computing device, and recycle the CXL device no longer used by each computing device, etc. Alternatively, the target computing device may allocate a CXL device to each computing device, and recycle the CXL device no longer used by each computing device, etc.
[0137] 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 request computing device 1 to allocate an available CXL device. After receiving the request from the computing device, 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.
[0138] like Figure 3B , which is a schematic diagram of the structure of another computing system provided in an embodiment of the present application.
[0139] Need to explain, Figure 3B The computing system shown is Figure 3A The differences in the computing systems shown are: Figure 3B The computing system shown also includes an orchestration device. Figure 3B The computing system shown is Figure 3A The differences between the computing systems shown are described below, and the similarities are not repeated here.
[0140] See also Figure 3B In the embodiment of the present application, the computing system may further include an orchestration device (Orchestrator).
[0141] Wherein, the arrangement device is connected to each computing device of at least two computing devices. Figure 3B , the orchestration device is connected to computing device 1 and computing device 2.
[0142] 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 a CXL device no longer used by each computing device, etc. Alternatively, the orchestration device may allocate a CXL device to each computing device.
[0143] For example, when computing device 1 needs to use a CXL device, it can send a request to the orchestration device to request the orchestration device to allocate an available CXL device. After receiving the request from computing device 1, the orchestration device can allocate an idle CXL device to the computing device for use. The orchestration device is connected to each of the at least two nodes. For example, see Figure 3B, the orchestration device is connected to Node 1, Node 2, and Node 3.
[0144] Exemplarily, 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 indicate that the computing device is bound to the idle CXL device so that the computing device can use the idle CXL device.
[0145] Based on the above, in the embodiment of the present application, a processing device or a master node may allocate a CXL device to each computing device, recycle a CXL device no longer used by a computing device, etc. The processing device may be a target computing device or an orchestration device.
[0146] 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.
[0147] In another example, the processing device or the master node may proactively allocate CXL devices to each computing device based on the needs of each computing device. Exemplarily, the processing device determines the CXL devices required to be used by computing device 1 and computing device 2 based on the tasks currently executed by computing device 1 and computing device 2. Then, the processing device may allocate CXL devices 0, ..., and CXL device k to computing device 1 for use, and allocate CXL devices k, ..., and CXL device n to computing device 2 for use based on the determination result.
[0148] In the embodiment of the present application, after the processing device or the master node assigns the CXL device to the computing device, the master node sends binding information to the CXL switch connecting the CXL device and the computing device, and 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.
[0149] Exemplarily, 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.
[0150] In the following, at least two nodes in the embodiments of the present application are exemplarily introduced.
[0151] 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.
[0152] For example, see Figure 3A or Figure 3B , any two nodes among node 1, node 2 and node 3 can be connected.
[0153] Exemplarily, any two of the at least two nodes may be directly connected, or may be connected through a switch, and the connection method between different nodes in the embodiment of the present application is not limited.
[0154] Exemplarily, the communication content between any two nodes may include: heartbeat information, election of communication nodes, etc.
[0155] It should be noted that, since the structure among the computing device, the CXL switch, and the CXL device belongs to the topological structure, the node in the embodiment of the present application may also be a device having a topology management (fabric manager, FM) process.
[0156] In the embodiment of the present application, nodes include multiple types, which are exemplarily introduced below through Examples 1 to 3.
[0157] Example 1, a node can be a central processor running FM.
[0158] In the embodiment of the present application, a central processing unit can be used as a node, and the central processing unit implements the device management method provided in the embodiment of the present application by running FM. For example, the FM run by the central processing unit can be stored in a storage device of the device where the central processing unit is located. The central processing unit can be Figure 3A The central processing unit of any computing device in Figure 3A The central processing unit of a computing device other than a computing device in the system.
[0159] 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.
[0160] Example 2: The node may be a baseboard management controller (BMC) running FM. The BMC may be Figure 3A The BMC of any computing device in Figure 3A The BMC of a computing device other than the computing device in the system.
[0161] It should be noted that different computing devices have different names for BMC, for example, some computing devices are called BMC, some computing devices are called iLO, and another computing device is called iDRAC. Whether it is called BMC, iLO or iDRAC, it can be understood as the BMC in the embodiment of the present invention.
[0162] In Example 2, using BMC as a node helps avoid affecting the service processing capability of the device where the node is located, avoiding the management of CXL devices and excessive occupation of resources of the device where the node is located.
[0163] It should be noted that for other related explanations about Example 2, please refer to Example 1, which will not be repeated here.
[0164] Example 3: The node may be a controller of a CXL switch running FM. The controller of the CXL switch may be Figure 3A The controller of any CXL switch.
[0165] In Example 3, using the controller of the CXL switch as a node helps to simplify the structure and reduce costs.
[0166] It should be noted that for other related explanations about Example 3, please refer to Example 1, which will not be repeated here.
[0167] In the embodiment of the present application, different nodes can be set on different devices. For example, see Figure 3A or Figure 3B , Node 1, Node 2, and Node 3 can be set on different computing devices.
[0168] In the embodiment of the present application, different nodes are of the same type. Exemplarily, Node 1, Node 2, and Node 2 may all be BMCs, or may all be central processing units, or may all be controllers of CXL switches. This helps to ensure the convenience and stability of communication between different nodes. It should be noted that the embodiment of the present application does not limit the type of nodes, and the above is only an exemplary description.
[0169] 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.
[0170] The following is an introduction to the CXL device in the embodiment of the present application.
[0171] 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. That is, the embodiment of the present application does not limit the type of the CXL device.
[0172] Hereinafter, the embodiments of the present application are described by way of example, taking the CXL device as a CXL Type 3 device (eg, a CXL memory device). Exemplarily, at least one CXL memory device may form a memory pool.
[0173] like Figure 4 , which is a schematic diagram of the structure of a CXL memory device provided in an embodiment of the present application.
[0174] See also Figure 4 The CXL memory device may include a CXL controller and a memory, wherein the CXL controller is connected to the memory, and the CXL controller is used to receive instructions from a computing device and perform read and write operations on the memory based on the instructions from the computing device.
[0175] 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).
[0176] The CXL memory device may further include a substrate, the memory and the memory controller are disposed on the substrate, and the memory and the memory controller are connected via the substrate. Exemplarily, a memory slot is disposed on the substrate, and the memory is plugged into the memory slot.
[0177] It should be noted that the embodiment of the present application does not limit the amount of memory on the CXL memory device.
[0178] In the embodiment of the present application, the memory on the CXL memory device can be used as a logic device (logic device, LD) and allocated to a computing device for use. This type of CXL memory device can be called a single logic device (single logic device, SLD).
[0179] Alternatively, the memory on the CXL memory device may be divided into multiple logical devices and allocated to multiple computing devices for use. Such CXL memory devices may be referred to as multiple logic devices (MLD).
[0180] A logical device can be allocated to a computing device for use. A logical device corresponds to at least one memory, and different logical devices correspond to different memories.
[0181] It should be noted that the embodiment of the present application does not limit the number of logical devices of the CXL memory device.
[0182] 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.
[0183] 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.
[0184] Figure 5 FIG. 5 is a flow chart of a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S501-S504.
[0185] Need to explain, Figure 5 The device management method shown may be used for at least two nodes, each of the at least two nodes being connected to a CXL switch.
[0186] In the embodiment of the present application, when at least two nodes manage a CXL device, a first node among the at least two nodes may communicate with the CXL switch first, so that the first node can manage the binding state between the CXL device and the computing device connected through the CXL switch. In the event of an abnormality in the first node, a second node among the at least two nodes communicates with the CX switch, so that the second node can continue to manage the binding state between the CXL device and the computing device connected through the CXL switch.
[0187] It should be noted that the first node and the second node are two different nodes among the at least two nodes.
[0188] For example, the first node / the second node may manage the binding state of the CXL device connected through the CXL switch by sending binding information to the CXL switch, where the binding information is used to specify the binding state between the CXL device and the computing device connected through the CXL switch.
[0189] It should be noted that in the embodiment 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 used to manage the binding status between the CXL device and the computing device connected through the CXL switch, can be called a communication node among 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 among the at least two nodes can be called a standby node, which will not be described later.
[0190] 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.
[0191] Optionally, S501: at least two nodes determine a first node.
[0192] The first node is used to manage a binding state between a CXL device and a computing device connected through the CXL switch.
[0193] For example, in a CXL switch Figure 3A or Figure 3B In the illustrated CXL exchange 1 , the first node may manage the binding states between computing device 1 and CXL devices 0 , . . . , CXL device k, and the binding states between computing device 2 and CXL devices 0 , . . . , CXL device k.
[0194] For example, in a CXL switch Figure 3A or Figure 3B In the case of the CXL switch 2 shown, the first node may manage the binding states between the computing device 1 and the CXL devices k+1, . . . , CXL device n, and the binding states between the computing device 2 and the CXL devices k+1, . . . , CXL device n.
[0195] It should be noted that in the embodiment of the present application, the method of determining a node by at least two nodes is not limited. Exemplarily, at least two nodes can determine the first node based on the cluster leader election algorithm, or the first node can be determined according to the priority of each node in the at least two nodes, for example, the node with the highest priority is determined as the first node.
[0196] In the following, 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.
[0197] like Figure 6 As shown, it is a schematic diagram of the interaction between different nodes in at least two nodes.
[0198] See also Figure 6 After nodes 1, 2, and 3 are successfully started (also called online), nodes 1, 2, and 3 determine node 1 as the first node from nodes 1, 2, and 3 based on the cluster leader election algorithm (such as Raft algorithm, ZAB algorithm, etc.). Based on this, node 1 operates as a communication node, and nodes 2 and 3 operate as standby nodes. On this basis, node 1 sends broadcast information to nodes 2 and 3. For example, the broadcast information may include information such as the IP address of node 1 and the end of leader election.
[0199] 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.
[0200] 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 in at least one non-first node.
[0201] For example, see Figure 6 , node 1 (the first node) establishes heartbeat connections with node 2 (not the first node) and node 3 (not the first node) respectively.
[0202] 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.
[0203] In an embodiment of the present application, a heartbeat connection is established between the communication node (ie, the first node) and the backup node (ie, the non-first node), and the backup node is set to a monitoring mode, so that the backup node can be used to monitor whether an abnormality occurs in the communication node.
[0204] In this embodiment, a heartbeat connection is established between the first node and each non-first node (i.e., each standby node), so that the first node can understand whether each standby node is abnormal, and then understand the number of standby nodes in an online state and the number of standby nodes in an offline state of at least two nodes. In addition, each standby node can also understand whether the first node is abnormal, so that when the first node is abnormal, the second node is determined in time, so as to avoid the inability to manage the binding state between the CXL device and the computing device connected through the CXL switch when the first node is abnormal.
[0205] In the embodiment of the present application, after determining the first node, the device management method may further include: 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.
[0206] 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.
[0207] Exemplarily, the first interface may be an interface of the hypertext transfer protocol (HTTP), remote procedure call protocol (RPC), or the like.
[0208] 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.
[0209] 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 a CXL device no longer used by the computing device, the first interface is used to indicate the format of data transmitted by each computing device to the first node.
[0210] In the embodiment of the present application, after determining the first node, the device management method may further include: the first node sends the IP address of the communication node of the at least two nodes to the processing device. In this way, the processing device can send binding information to the communication node of the at least two nodes through the IP address.
[0211] There are multiple implementation methods for how to send the IP address of the communication node of at least two nodes to the processing device. The following is an exemplary description through Method 1 and Method 2.
[0212] Mode 1: Set the IP address of the first node as the target IP address, and send the target IP address to the processing device.
[0213] In mode 1, the first node may include an intranet IP and an extranet IP (also referred to as a service IP), wherein the intranet IP is used to communicate with other nodes, and the extranet IP is used to communicate with the processing device. Based on this, the first node may set the address of the extranet IP as the target IP address, and send the target IP address to the processing device. The processing device may send binding information to the first node based on the target IP address.
[0214] 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.
[0215] In this manner, the target IP address is reported to the processing device, and the target IP address indicates the first node. In this way, the processing device can send binding information to the first node through the target IP address.
[0216] 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.
[0217] Mode 2: The first node writes the first IP address into the database.
[0218] In an embodiment of the present application, a database is used to provide storage services of access addresses for a processing device and at least two nodes. Exemplarily, the database service may be provided by a processing device, or the database service may be provided by a device where a communication node is located, or a cloud server may provide the database service. 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.
[0219] 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.
[0220] In the embodiment of the present application, after at least two nodes determine the first node, the first node can write the first IP address into the database according to the first preset duration. That is, the first node writes the first IP address into the database at intervals of the first preset duration, so that the processing device can determine whether the communication node is in a normal state, that is, whether it is online, according to the writing time of the first IP address in the database.
[0221] 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 may be 5 minutes, 10 minutes, 20 minutes, etc.
[0222] 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.
[0223] 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 at least two nodes to the processing device, and the above methods 1 and 2 are only exemplary descriptions.
[0224] 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 recycles a CXL device no longer used by the computing device, the manner in which the first node reports the IP address of the communication node among at least two nodes to each computing device can refer to the above-mentioned manner 1 to manner 2, which will not be repeated here.
[0225] S502: The first node sends first binding information to the CXL switch.
[0226] The first binding information is used to specify a binding state between a CXL device and a computing device connected via a CXL switch, where the binding state includes establishing a binding or releasing a binding.
[0227] In one example, the computing device is connected to the CXL device via a single-layer CXL switch, and the CXL switch in S502 is the single-layer CXL switch.
[0228] 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.
[0229] It should be noted that, in the case where the computing device and the CXL device are connected via a multi-layer CXL switch, if the CXL switch in S502 is a CXL switch in the multi-layer CXL switch that is 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 multi-layer CXL switch, so that the multi-layer CXL switch connects the link between the computing device and the CXL device. If the CXL switch in S502 is a CXL switch in the multi-layer CXL switch that is 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 multi-layer CXL switch.
[0230] For example, in a CXL switch Figure 3A or Figure 3B In the CXL exchange 1 shown, the first binding information may specify that one or more CXL devices among CXL devices 0, ..., CXL devices k establish a binding or unbinding with computing device 1, or the first binding information may specify that one or more CXL devices among CXL devices 0, ..., CXL devices k establish a binding or unbinding with computing device 2.
[0231] In the embodiment of the present application, the current master node among the at least two nodes may allocate a CXL device to each computing device, reclaim a CXL device no longer used by the computing device, etc. Based on this, after the current master node (i.e., the first node) determines to allocate the CXL device to the computing device for use, 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.
[0232] Alternatively, in the embodiment of the present application, the processing device may allocate a CXL device to each computing device and recycle the CXL device no longer used by the computing device. Based on this, after the processing device determines to allocate the CXL device to the computing device for use, the processing device sends the first binding information to the master node (i.e., the first node) among the at least two nodes, and after receiving the first binding information, the first node sends the first binding information to the CXL device and the CXL switch to which the computing device is connected.
[0233] It should be noted that in the following embodiments, the processing device allocates a CXL device to each computing device, and recycles the CXL devices no longer used by the computing device, etc., to exemplify the embodiments of the present application.
[0234] In the embodiment of the present application, the first binding information includes multiple situations, which are explained below through situation 1 to situation 2.
[0235] Case 1: The first binding information may include the identifier of the CXL device and the identifier of the computing device.
[0236] In case 1, the first binding information is set to include the identifier of the CXL device and the identifier of the computing device, so that the CXL switch can determine the identifier of the first port and the identifier of the second port on the CXL switch that need to be bound or unbound according to the identifier of the CXL device and the identifier of 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.
[0237] 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.
[0238] Exemplarily, the CXL switch is Figure 3A or Figure 3B In the case where the CXL switch 1 shown in the figure, and the first binding information includes the identifier of the CXL device 0 and the identifier of the computing device 1, and specifies to establish a binding between the CXL device 0 and the computing device 1, the CXL switch 1 first determines that the identifier of the first port used by the CXL device 0 is DSP#0, and the identifier of the second port used by the computing device 1 is USP#0. Then, the CXL switch 1 establishes a binding for DSP#0 and USP#0, so that the PCIE link between the computing device 1 and the CXL device 0 is connected, so that the computing device 1 can discover the CXL device 0 based on the device discovery protocol, and then can communicate with the CXL device 0.
[0239] In case 1, the CXL device and computing device to be bound or unbound are specified by using the CXL device identifier and the computing device identifier, which helps to improve the accuracy of the CXL device and computing device to be bound or unbound relative to the port identifier of the specified switch.
[0240] Case 2: the first binding information may include an identifier of the first port and an identifier of the second port.
[0241] In case 2, the first binding information includes the identifier of the first port and the identifier of the second port, so that the CXL switch can directly determine the first port and the second port for which a binding relationship needs to be established or released.
[0242] For example, in a CXL switch Figure 3A or Figure 3B In the CXL switch 1 shown, if 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 to establish a binding relationship between DSP#0 and USP#0, the CXL switch 1 establishes a binding between DSP#0 and USP#0.
[0243] 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 determine the identifier of the first port and the identifier of the second port for which a binding relationship needs to be established or released by itself, which helps to improve the convenience and efficiency of the CXL switch in performing operations.
[0244] Optionally, S503: when an abnormality occurs in the first node, at least one non-first node determines the second node.
[0245] For example, see Figure 6 ,After node 1 is elected as the first node (i.e. the communication node), node 2 and node 3 are non-first nodes (i.e. the backup nodes).
[0246] In the 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 redetermines the communication node among the at least two nodes, so as to manage the binding state between the CXL device and the computing device connected through the CXL switch.
[0247] It should be noted that after determining the first node, at least one non-first node can be considered to be in a standby mode (also called a hot standby mode) and serve as a standby node (also called a hot standby node) of the first node. In this way, in the event of an abnormality in the first node, any one of the at least one non-first node can serve as a new communication node for at least two nodes, for managing the binding state between the CXL device and the computing device connected through the CXL switch.
[0248] In an embodiment of the present application, when at least one non-first node determines a 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 a master election algorithm.
[0249] 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.
[0250] The priority of each of the at least two nodes may be predetermined, for example, determined by a user.
[0251] It should be noted that in the embodiment of the present application, the first node may also be referred to as a first communication node, and the second node may be referred to as a second communication node, so as to distinguish the communication nodes determined at different stages.
[0252] In the embodiment of the present application, S503 includes multiple implementation methods, which are described below through methods A to C.
[0253] Mode A, S503 includes: when each non-first node has not received the heartbeat information of the first node, each non-first node determines the second node.
[0254] 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 the first node is abnormal. Based on this, each non-first node determines that the first node is abnormal and re-determines a new communication node.
[0255] For example, see Figure 6 Node 1, as the first node (i.e., communication node), establishes heartbeat connections with node 2 and node 3. After that, node 1 sends heartbeat information to node 2 and node 3. If both node 2 and node 3 do not receive the heartbeat information sent by node 1, it is considered that node 1 is abnormal, such as: node 1 is offline or fails. At this time, node 2 and node 3 re-determine the new communication node of at least two nodes.
[0256] 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.
[0257] In the embodiment of the present application, when 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 among 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 the CXL device management.
[0258] 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.
[0259] The target non-first node may be any non-first node among the at least one non-first node.
[0260] 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 where the first node does not receive the heartbeat message sent by the target non-first node, the first node determines that the target non-first node is abnormal. Based on this, the first node sends a broadcast message to at least one third node, and the broadcast message is used to indicate at least one third node to determine whether the target non-first node is abnormal. If a part of the third nodes determines that the target non-first node is abnormal, 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.
[0261] Among them, at least one third node refers to a node other than the target non-first node in at least one non-first node. For example, at least two nodes include node 1, node 2, node 3 and node 4, wherein node 1 is selected as the first node, and node 2, node 3 and node 4 are non-first nodes. If the node is the target non-first node, node 3 and node 4 are third nodes, that is, nodes other than the target non-first node in at least one non-first node.
[0262] 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.
[0263] After a third node determines that the target non-first node is abnormal or online, a notification message can be sent to the first node, and the notification message is used to notify a third node of the determination result. If the determination result of some third nodes is that the target non-first node is online, the first node sends a master selection notification to each of at least one third node to notify at least one third node to reselect a communication node.
[0264] It should be noted that the embodiment of the present application does not limit the way in which the first node determines that the target non-first node is abnormal, and the above-mentioned determination of the abnormality of the target non-first node by means of heartbeat information is only an exemplary description. For example, the first node can also determine whether the target non-first node is abnormal by sending a detection signal to the target non-first node.
[0265] It should be noted that, for the relevant description of "at least one non-first node determines the second node" in S503, reference may be made to the relevant description of "at least two nodes determine the first node" in S501, which will not be repeated here.
[0266] 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.
[0267] It should be noted that the method of setting the IP address of the second node as the target IP address refers to the relevant instructions for setting the IP address of the first node as the target IP address, which will not be repeated here.
[0268] Based on this, in the embodiment of the present application, the target IP address is an IP address for indicating 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 indicates the second node.
[0269] In this embodiment, when the second node is determined, the IP address of the second node is set as the target IP address, so that 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 is changed, the processing device does not need to change the IP address for sending information to the at least two nodes, which helps to 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.
[0270] 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 to 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 sending information to the communication nodes of at least two nodes.
[0271] It should be noted that for other related instructions of S503, please refer to the related instructions of S501 mentioned above, which will not be repeated here.
[0272] 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 a CXL device no longer used by the computing device, the manner in which the second node reports the IP address of the communication node among at least two nodes to each computing device can refer to the above description and will not be repeated here.
[0273] 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; and the second interface is used to indicate the format of data transmitted by the processing device to the second node.
[0274] The interface type of the second interface is the same as the interface type of the first interface.
[0275] 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 indicate the format of data transmitted by each computing device to the first node.
[0276] 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, so that the processing device or each computing device can use the same format when transmitting data to different nodes of at least two nodes, thereby helping to reduce the impact on the processor device or each computing device when at least two nodes replace the communication node.
[0277] It should be noted that, for the relevant description about the second interface, reference can be made to the relevant description about the first interface in S501, which will not be repeated here.
[0278] S504: The second node sends second binding information to the CXL switch.
[0279] The second binding information is used to specify a binding state between the CXL device and the computing device connected through the CXL switch.
[0280] In the embodiment 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 to establish a binding, and the binding state of the first binding information is to unbind. Alternatively, the second binding information and the first binding information can also be used to specify the same binding state or different binding states between different CXL devices and computing devices. In this case, any one of the CXL device, computing device, and binding state indicated by the second binding information and the first binding information can be different.
[0281] For example, in a CXL switch Figure 3A or Figure 3B In the CXL exchange 1 shown, 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.
[0282] It should be noted that the relevant description of S504 can be found in S502 mentioned above and will not be repeated here.
[0283] In the above embodiment, since the first node can be determined from at least two nodes, and the first node sends the first binding information to the CXL switch to specify the binding state between the CXL device connected through the CXL switch and the computing device. Afterwards, if the first node is abnormal, the second node can be determined from at least one non-first node, and the second node sends the second binding information to the CXL switch to specify the binding state between the CXL device connected through the CXL switch and the computing device. In this way, if a node (i.e., the first node) used to manage the binding state between the CXL device and the computing device is abnormal, another node (i.e., the second node) can be used to continue to manage the binding state between the CXL device and the computing device, which helps to improve the reliability and stability of the CXL device management.
[0284] Hereinafter, the embodiment of the present application is exemplarily introduced 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.
[0285] It should be noted that the communication node among at least two nodes can be called the master node of the cluster, and the standby node among at least two nodes can be called the slave node of the cluster, which will not be explained later.
[0286] In the embodiment of the present application, the device management method may further include: the master node of the cluster updates the state of at least one slave node, wherein the state of a slave node includes an online state or an offline state.
[0287] Since the master node of the cluster is a node that manages the binding status between the CXL device and the computing device connected through the CXL switch, that is, the first node or the second node, at least one slave node refers to other nodes in the cluster except the master node. Therefore, when there is no abnormality in the first node, the master node of the cluster refers to the first node, and at least one slave node refers to a node in the cluster except the first node. When an abnormality occurs in the first node, the master node of the cluster refers to the second node, and at least one slave node refers to a node in the cluster except the second node.
[0288] 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 embodiments of the present application do not impose any restrictions on this.
[0289] For example, see 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 include node 1 and node 3.
[0290] In the following, the process of updating the state of at least one slave node of the cluster is exemplified 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 slave node of the at least one slave node.
[0291] 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, the initial state of the target slave node is an online state, and when 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 an offline state.
[0292] In one 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.
[0293] 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 is abnormal. Since in this case, it is also possible that the first node is abnormal, the first node does not temporarily determine the target slave node as offline, but 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 is abnormal. 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 is abnormal, not the first node. Based on this, the first node determines that the target slave node is offline.
[0294] In this embodiment, by updating the status of at least one slave node, it is helpful to know the number of nodes in the cluster that are online and the number of nodes that are offline at any time, so that when there are no redundant nodes in the cluster that are online, the user can be notified in time to handle it, avoiding that all the slave nodes in the cluster are offline, resulting in the inability to manage the binding status between the CXL device and the computing device when the master node of the cluster is abnormal.
[0295] 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.
[0296] The status of the cluster includes a normal status, a degraded status, or a non-redundancy status.
[0297] In the following, the process of updating the state of the cluster is exemplarily described by taking the master node of the cluster as the second node as an example.
[0298] In one example, when the number of nodes in the cluster that are online is less than or equal to a quantity threshold, the second node updates the state of the cluster to a degraded state, wherein the quantity threshold is less than the number of nodes used when the cluster was created, that is, the degraded state means that the number of nodes currently online in the cluster is less than the number of nodes used when the cluster was created.
[0299] It should be noted that the embodiment of the present application does not limit the specific value of the quantity threshold. The quantity threshold can be determined according to 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 any case, the quantity threshold can be set smaller, or the quantity threshold can also be determined by the user.
[0300] For example, see Figure 6, when creating a cluster, nodes 1, 2, and 3 are used. Node 1 is first elected as the master node of the cluster. When node 1 is abnormal, 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 status of the cluster to a degraded state.
[0301] In another example, when 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 state of the cluster 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.
[0302] 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.
[0303] In the 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.
[0304] Furthermore, when the difference between the number of nodes in the cluster that are online and the number of nodes used when the cluster is created is less than a threshold, the cluster can be considered to be in a normal state.
[0305] In this embodiment, by updating the status of the cluster, it is helpful to understand the overall status of the cluster at any time, so that when the cluster is in a non-redundant state or offline state, the user is notified in time to handle it, avoiding the inability to manage the binding status between the CXL device and the computing device.
[0306] 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.
[0307] The cluster information may include the state of the cluster and / or the node information of the cluster.
[0308] The node information of the cluster may include: at least one of 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 the IP address of each slave node in the cluster.
[0309] In the embodiment of the present application, the master node of the cluster may actively send cluster information to the processing device, for example, after the cluster determines the master node each time, or after the number of slave nodes of the cluster changes. Alternatively, the master node of the cluster may also send cluster information to the processing device based on the received acquisition request.
[0310] In one example, the master node of the cluster actively sends cluster information to the processing device at a preset time interval.
[0311] 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 to acquire cluster information; the master node of the cluster sends the cluster information to the processing device in response to the acquisition request.
[0312] 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 status of the cluster is poor, such as no redundant nodes, inability to select a master node, etc., 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.
[0313] 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 device management method may include: the master node of the cluster sends cluster information of the cluster to the electronic device.
[0314] In this embodiment, cluster information is actively sent to the user's electronic device, which helps the user to understand the status of the cluster in a timely manner. When the status of the cluster is poor, such as no redundant nodes, inability to select a master node, etc., at least two nodes can be maintained in time to avoid the unmanageable binding status between the CXL device and the computing device.
[0315] Figure 7 FIG. 1 is a flow chart of a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S701-S703.
[0316] Need to explain, Figure 7 The device management method shown is used for a processing device, and the processing device is connected to each of the at least two nodes. For the description of the at least two nodes, see Figure 5 The embodiments shown will not be described in detail here.
[0317] In the embodiment of the present application, when the processing device manages the CXL device through at least two nodes, the processing device can first communicate with the CXL switch through a first node of the at least two nodes, so as to use the first node to manage the binding state between the CXL device and the computing device connected through the CXL switch. In the event of an abnormality in the first node, the processing device communicates with the CXL switch through a second node of the at least two nodes, so as to use the second node to manage the binding state between the CXL device and the computing device connected through the CXL switch.
[0318] It should be noted that in the embodiment 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 later.
[0319] S701: The processing device sends first binding information to the first node.
[0320] It should be noted that for the relevant description of the first binding information, please refer to the above-mentioned S502, which will not be repeated here.
[0321] In the following, S701 is exemplarily described by taking the at least two nodes including node 1, node 2, ..., node N as an example, where N is a positive integer greater than 2.
[0322] For example, see Figure 8 , node 1, node 2, ..., node N determine that node 1 is a communication node (i.e., the first node), based on which, node 2, ..., node N are standby nodes (i.e., non-first nodes). Among them, the first node is in an active state, and the non-first node is in a standby state. On this basis, the processing device sends the first binding information to node 1, and after node 1 receives the first binding information, it sends the first binding information to the CXL switch. In other words, the processing device interacts with the CXL switch through node 1.
[0323] Need to explain, Figure 8 In the example, when node 1 is a communication node, the column where "the communication node among at least two nodes" is located represents node 1, and when node 2 is a communication node, the column where "the communication node among at least two nodes" is located represents node 2. In other words, the column where "the communication node among at least two nodes" is located is used to represent the nodes communicating with the CXL switch.
[0324] 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.
[0325] 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.
[0326] It should be noted that, for the relevant description of the first interface, please refer to the above-mentioned S502, which will not be repeated here.
[0327] 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.
[0328] 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.
[0329] It should be noted that for the relevant description of the target IP address and the first IP address, please refer to S502, which will not be repeated here.
[0330] Exemplarily, 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, where 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.
[0331] In the embodiment of the present application, when the processing device receives a resource request sent by the computing device, the resource request is used to request the processing device to allocate CXL device resources, and the processing device can send a first request to the first node to request to obtain the state information of the logical device of each CXL device. Then, based on the state information of the logical device of each CXL device, the logical device that can be allocated to the computing device is determined.
[0332] In the 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 the state information of the logical device of each CXL device connected to the CXL switch.
[0333] Exemplarily, the state information of the logical device may include the state of the logical device, and 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, the logical device does not establish an address mapping relationship with any computing device. The bound state means that the logical device has been assigned to a computing device, that is, the logical device has established an address mapping relationship with the computing device.
[0334] Exemplarily, the state information of the logical device may further include an identifier of a computing device to which the logical device is assigned.
[0335] Exemplarily, 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.
[0336] In one example, the processing device allocates the idle logical device to the target computing device. Figure 3A or Figure 3BAs shown, the logical device 1 of the CXL device 0 is assigned the computing device 1 , and the first binding information sent by the processing device specifies to establish a binding relationship between the CXL device 0 and the computing device 1 .
[0337] In another example, when there is no logical device in an idle state, the processing device may first send a release request to the non-target computing device to request the release of CXL device resources (ie, release of the logical device). For example: Figure 3A or Figure 3B The computing device 2 shown can release the logical device 2 of the CXL device k. After receiving the reply from the computing device 2, the processing device sends a first binding message to specify that the binding relationship between the CXL device k and the computing device is untied, and then sends a third binding message to indicate that a binding relationship is established between the computing device 1 and the CXL device k.
[0338] 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.
[0339] The acquisition request is used to request to acquire cluster information of a cluster.
[0340] 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 by polling. In addition, the specific duration of the preset time interval in the embodiment of the present application is not limited.
[0341] For example, see Figure 8 , 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.
[0342] In this embodiment, the processing device can obtain cluster information in time by sending an acquisition request to the first node, and then can timely understand the status of the cluster. In this way, when the cluster is abnormal, such as: there is no redundant node, the main node cannot be selected, etc., the user can be notified in time to handle it, avoiding the inability to manage the binding status between the CXL device and the computing device.
[0343] It should be noted that “sending an acquisition request to the first node” can be considered as a specific implementation method of “sending an acquisition request to the master node of the cluster”.
[0344] 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.
[0345] S702: When an abnormality occurs in the first node, the processing device sends second binding information to the second node.
[0346] For example, see Figure 8 After node 1 is selected as the communication node (first node), it establishes heartbeat connections with node 2, ..., and node N respectively. In the case of an abnormality in node 1, node 2 is determined as the communication node (i.e., the second node) from nodes 2, ..., and node N, that is, a new communication node is selected from the nodes in the standby state. On this basis, the processing device sends the second binding information to node 2, and after node 2 receives the second binding information, it sends the second binding information to the CXL switch. In other words, the processing device interacts with the CXL switch through node 2.
[0347] 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.
[0348] 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.
[0349] 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.
[0350] It should be noted that, for the relevant description of the second interface, please refer to the above-mentioned S502, which will not be repeated here.
[0351] 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, for the processing device, the original data format can still be used 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.
[0352] 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.
[0353] 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.
[0354] In another example, because the second node writes the second IP address to the database when the first node is 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.
[0355] It should be noted that for the relevant description of the second IP address, please refer to S502, which will not be repeated here.
[0356] In the above embodiment, the processing device is connected to each of the at least two nodes, so the processing device can first send first binding information to the CXL switch through the first node of the at least two nodes to specify the binding state between the CXL device and the computing device, and the binding state includes establishing a binding relationship or releasing a binding relationship. Afterwards, in the case of an abnormality in the first node, the processing device can send second binding information to the CXL switch through the second node of the at least two nodes to re-specify the binding state of the CXL device and the computing device. In this way, when an abnormality occurs in one node (i.e., the first node) that manages the binding state of the CXL device and the computing device, another node (i.e., the second node) can be used to continue to manage the binding state between the CXL device and the computing device, which helps to improve the reliability and stability of the management of the CXL device.
[0357] In the 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.
[0358] 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, and based on this, the processing device updates the status of the cluster to an offline status.
[0359] 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) according to the second preset duration, and the request is used to request to obtain the node indicated by the target IP address. If the processing device sends the preset number of times in succession and receives the information replied by 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 the offline status.
[0360] 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.
[0361] In the embodiment of the present application, the device management method may further include: the processing device sends an acquisition request to the second node, where the acquisition request is used to request to obtain cluster information; and the processing device receives the cluster information returned by the second node.
[0362] 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 by polling. In addition, the specific duration of the preset time interval in the embodiment of the present application is not limited.
[0363] For example, see Figure 8 , 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 state of the cluster from the normal state to the degraded state, the cluster information indicates that the cluster is in the degraded state.
[0364] It should be noted that “sending an acquisition request to the second node” can be considered as another specific implementation method of “sending an acquisition request to the master node of the cluster”.
[0365] Optionally, S703: the processing device sends cluster information of the cluster to the electronic device.
[0366] In the 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 normal state changes to the degraded state. Alternatively, the cluster information may be sent to the electronic device according to a preset period.
[0367] The electronic device is a device used by a user. For example, the electronic device may be a mobile phone, a tablet computer, a handheld computer, a PC, a cellular phone, a personal digital assistant (PDA), a wearable device (such as a smart watch, a smart bracelet, etc.), a smart home device (such as a TV, etc.), a car computer (such as a car computer, etc.), a smart screen, a game console, a headset, an AI speaker, an augmented reality (AR) / virtual reality (VR) device, an ultra-mobile personal computer (UMPC), a laptop, a netbook, a desktop computer or an all-in-one computer, etc.
[0368] 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.
[0369] For example, see Figure 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.
[0370] In this embodiment, the processing device can promptly notify the user of cluster status changes by sending cluster information of the cluster to the electronic device, so that when the cluster is abnormal, such as: there is no redundant node, the master node cannot be selected, etc., the user can promptly handle it, for example, restart the device where the node is located, etc., thereby avoiding the inability to manage the binding status between the CXL device and the computing device.
[0371] Fig. 9 This is an interactive schematic diagram of a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S901-S904.
[0372] Need to explain, Fig. 9 The device management method shown is used for a CXL switch, and the CXL switch is connected to each of the at least two nodes. For instructions on the at least two nodes, see Figure 5 The embodiments shown will not be described in detail here.
[0373] In the embodiment of the present application, the CXL switch may first communicate with a first node among the at least two nodes, thereby establishing a binding relationship or releasing a binding relationship between the CXL device and the computing device connected through the CXL switch through first binding information sent by the first node. In the event that an abnormality occurs in the first node, the CXL switch may communicate with a second node among the at least two nodes, thereby establishing a binding relationship or releasing a binding relationship between the CXL device and the computing device connected through the CXL switch through second binding information sent by the second node.
[0374] S901: The CXL switch receives first binding information sent by a first node.
[0375] Exemplarily, the CXL switch is Figure 3A or Figure 3B In the case of CXL switch 1 shown, the first binding information may instruct CXL switch 1 to establish a binding relationship between computing device 1 and CXL device 0 .
[0376] S902: 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 first binding information.
[0377] 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.
[0378] 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 based on the discovery protocol of the CXL memory device (such as: CXL.memory protocol).
[0379] For example, the computing device 1 can obtain the available memory resources by reading the physical address range 1 in the first register of the CXL memory device 0. Afterwards, the computing device 1 writes the system address range 1 of the system address space into the second register of the CXL memory device 0, and establishes a mapping relationship between the system address range 1 and the physical address range 1, so that the computing device 1 can use the memory resources indicated by the physical address range 1 on the CXL memory device 0.
[0380] S903: The CXL switch receives the second binding information sent by the second node.
[0381] Exemplarily, the CXL switch is Figure 3A or Figure 3B In the case of the CXL switch 1 shown, 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.
[0382] 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.
[0383] 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.
[0384] In the above embodiment, the CXL switch is connected to each of the at least two nodes, so the CXL switch can receive the first binding information sent by the first node of the at least two nodes to specify the binding state between the CXL device connected through the CXL switch and the computing device. Afterwards, in the case that an abnormality occurs in the first node, the CXL switch can receive the second binding information sent by the second node of the at least two nodes to specify the binding state between the CXL device connected through the CXL switch and the computing device. In this way, when an abnormality occurs in a node (i.e., the first node) that manages the binding state between the CXL device and the computing device, the CXL switch can receive the binding information sent by another node (i.e., the second node) to continue to manage the binding state between the CXL device and the computing device, which helps to improve the reliability and stability of the management of the CXL device.
[0385] Fig.10This is an interactive schematic diagram of a device management method according to an exemplary embodiment. Exemplarily, the device management method may include S1001-S1010.
[0386] Need to explain, Fig.10 The device management method is used in a computer system, which includes a processing device, at least two nodes and a CXL switch.
[0387] For instructions on at least two nodes, processing devices, and CXL switches, see Figure 5 , Figure 7 as well as Fig. 9 The device management method shown will not be repeated here.
[0388] S1001: Each of at least two nodes determines a first node.
[0389] S1002: The processing device sends first binding information to the first node.
[0390] S1003: The first node receives first binding information.
[0391] S1004: The first node sends first binding information to the CXL switch.
[0392] 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.
[0393] S1006: When an abnormality occurs in the first node, each non-first node confirms a second node.
[0394] S1007: The processing device sends second binding information to the second node.
[0395] S1008: The second node receives the second binding information.
[0396] S1009: The second node sends second binding information to the CXL switch.
[0397] 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.
[0398] For details about S1001-S1010, please refer to Figure 5 , Figure 7 as well as Fig. 9 The device management method shown will not be repeated here.
[0399] In the embodiment of the present application, when the computer system is the computing system shown in FIG. 3 , that is, when the master node among at least two nodes allocates a CXL device to each computing device and reclaims the CXL device no longer used by the computing device, Fig.10 The difference between the management method shown is 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 .
[0400] 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 exceed the scope of this application.
[0401] The embodiment of the present application can exemplarily divide the functional modules of the equipment management device according to the above method. For example, the equipment management device can include various functional modules corresponding to the various functional divisions, or two or more functions can be integrated into one processing module. The above 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.
[0402] For example, Fig.11A possible structural diagram of a device management device (referred to as device management device 1100) involved in the above embodiment is shown. The actions performed by the device management device 1100 are implemented by at least two nodes or by executing corresponding software by at least two nodes. The at least two nodes include a first node and a second node. The device management device 1100 may include: a first sending unit 1101 and a second sending unit 1102; the first sending unit 1101 is used to send first binding information to a computing fast link CXL switch; the first binding information is used to specify the binding state between the CXL device connected through the CXL switch and the computing device, and the binding state includes establishing a binding or releasing a binding; when an abnormality occurs in the first node, the second sending unit 1102 is used to send second binding information to the CXL switch; the second binding information is used to specify the binding state between the CXL device connected through the CXL switch and the computing device.
[0403] 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.
[0404] Optionally, the determination unit 1103 is used to determine that an abnormality occurs in the first node when a non-first node does not receive heartbeat information sent by the first node.
[0405] Optionally, the determination unit 1103 is used 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.
[0406] 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; when an abnormality occurs 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.
[0407] Optionally, the first sending unit 1101 is also used to set the IP address of the first node to 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; when an abnormality occurs in the first node, the second sending unit 1102 is also used to set the IP address of the second node to the target IP address.
[0408] 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.
[0409] Optionally, at least two nodes form a cluster; the equipment management device 1100 also includes an update unit 1104, which is used to update the state of the cluster and / or update the state 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 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.
[0410] 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.
[0411] 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.
[0412] Optionally, the updating unit 1104 is configured to update the state of the cluster to a degraded state when the number of online nodes in the cluster is less than or equal to a number threshold;
[0413] 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.
[0414] Optionally, the device management apparatus 1100 further includes a reporting unit 1105, which is used to send cluster information of the cluster in response to the received acquisition request. The cluster information includes at least one of the state of the cluster, the number of nodes in 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 in the cluster, and the IP address of each slave node in the cluster.
[0415] Optionally, the reporting unit 1105 is configured to send cluster information of the cluster to the processing device.
[0416] Optionally, the reporting unit 1105 is configured to send cluster status information to an electronic device.
[0417] 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.
[0418] Optionally, the target IP address is an IP address of a node among the at least two nodes that communicates with each computing device.
[0419] 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.
[0420] 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 of any of the above equipment management devices 1100 and the description of the beneficial effects can refer to the above corresponding method embodiments, which will not be repeated here.
[0421] For example, Fig.12 A possible structural diagram of the device management device (referred to as device management device 1200) involved in the above embodiment is shown, and the actions performed by the device management device are implemented by a processing device or by executing corresponding software by the processing device. The device management device 1200 may include: a sending unit 1201; the sending unit 1201 is used to send first binding information to a first node of at least two nodes; the first binding information is used to specify the binding state between the CXL device and the computing device connected through the CXL switch, and the binding state includes establishing a binding relationship or releasing a binding relationship. The sending unit 1201 is also used to send second binding information to a second node of 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 the binding state between the CXL device and the computing device connected through the CXL switch.
[0422] 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.
[0423] Optionally, the sending unit 1201 is specifically used to: send first binding information to a first node indicated by a target IP address; the target IP address is an IP address of a node among at least two nodes that communicates with the processing device; the sending unit 1201 is specifically used to: send second binding information to a second node indicated by the target IP address.
[0424] 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.
[0425] Optionally, the device management device further includes an acquisition unit 1202, which is used to: send an acquisition request to the master node of the cluster, the acquisition request is used to request to obtain 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; receive cluster information sent by the master node of the cluster. The cluster information includes at least one of the status of the cluster, the number of nodes in 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 status of each slave node in the cluster, and the IP address of each slave node in the cluster; the status of the cluster includes normal status, degraded status, or non-redundancy status; the slave node is a node other than the master node in the cluster; the status of a slave node includes online status or offline status. In this way, it is helpful to accurately record the status of the cluster and the nodes.
[0426] Optionally, the device management device further includes a reporting unit 1203, and the reporting unit 1203 is used to send cluster information to the electronic device according to a preset period.
[0427] 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.
[0428] 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 of any of the above equipment management devices 1200 and the description of the beneficial effects can refer to the above corresponding method embodiments, which will not be repeated here.
[0429] For example, Fig.13A possible structural diagram of a device management device (referred to as device management device 1300) involved in the above embodiment is shown. The actions performed by the device management device 1300 are implemented by a CXL switch or by executing corresponding software through the CXL switch. The device management device 1300 may include: a receiving unit 1301. The receiving unit 1301 is used to receive first binding information sent by a first node of at least two nodes; the first binding information is used to specify the binding state between the CXL device and the computing device connected through the CXL switch, and the binding state includes establishing a binding relationship or releasing a binding relationship; the receiving unit 1301 is also used to receive second binding information sent by a second node of 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 the binding state between the CXL device and the computing device connected through the CXL switch.
[0430] Optionally, the device management apparatus 1300 further includes a binding unit 1302. The binding unit 1302 is configured to establish a binding relationship or unbind a binding relationship between a CXL device and a computing device connected via the CXL switch based on the first binding information; the binding unit 1302 is further configured to establish a binding relationship or unbind a binding relationship between a CXL device and a computing device connected via the CXL switch based on the second binding information.
[0431] 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.
[0432] Optionally, the CXL switch is connected to a port extension device, the port extension device includes at least two ports, and the at least two ports are used to connect at least two nodes.
[0433] 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 of any of the above equipment management devices 1300 and the description of the beneficial effects can refer to the above corresponding method embodiments, which will not be repeated here.
[0434] An embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed on a computer, the computer is enabled to execute any of the methods executed by the computer devices provided above.
[0435] For the explanation of the relevant contents and description of the beneficial effects of any of the above-mentioned computer-readable storage media, reference may be made to the above-mentioned corresponding embodiments, which will not be repeated here.
[0436] The embodiment of the present application also provides a chip. The chip integrates a control circuit and one or more ports for realizing 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 can 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 (field programmable gatearray, FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof.
[0437] The present application embodiment also provides a computer program product including instructions, when the instructions are run on a computer, the computer performs any one of the methods in the above embodiments. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
[0438] 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.
[0439] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using a software program, it can be implemented in whole or in part 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 process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
[0440] 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 wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. Computer-readable storage media can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes one or more available media integrated therein. 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)).
[0441] 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 changes to the disclosed embodiments by viewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "one" 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.
[0442] Although the present application has been described in conjunction with specific features and embodiments thereof, it is obvious 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 exemplary illustrations of the present application as defined by the appended claims, and are deemed to have covered 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, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
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, wherein the processor and the A memory is connected, the memory stores computer-executable instructions, and the processor executes the computer-executable instructions. To implement the method as described in any one of claims 8-11.