Node interconnection method and device of storage cluster

By using the virtual Ethernet port and high -speed interconnecting links in the storage cluster, analysis and forwarding the Ethernet packets solve the problem of low transmission efficiency in the storage cluster, and achieve efficient data transmission.

CN119383157AActive Publication Date: 2025-01-28INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Application Number
CN202411967245.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-30
Publication Date
2025-01-28
Estimated Expiration
2044-12-30

AI Technical Summary

Technical Problem

When the storage cluster scale expands, the number of devices increases, resulting in a single framework being unable to accommodate all devices, resulting in low packet transmission efficiency.

Method used

By using the virtual Ethernet port of the first node, analysis of the receiving Ethernet messages, obtaining the media access control address information, obtaining the target node logo according to the information, and forwarding the message to the second via high -speed interconnection link to the second second to the second The virtual Ethernet port of the node.

Benefits of technology

Achieve efficient and direct message transmission mechanisms, reduce network complexity, and improve the efficiency of message transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119383157A_ABST
    Figure CN119383157A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a node interconnection method and device of a storage cluster, the storage cluster is composed of nodes distributed in a plurality of physical frameworks, the method comprises the following steps: analyzing a received Ethernet message by using a virtual Ethernet port of a first node to obtain corresponding media access control address information, the first node is a node in a storage cluster, the nodes in the storage cluster are mutually connected through a high-speed interconnection link, and identifiers corresponding to the nodes are configured in the same network segment; according to the media access control address information, a target node identifier is obtained, the target node identifier is an identifier corresponding to a second node, and the first node and the second node are distributed in different physical frameworks; and forwarding the Ethernet message to the virtual Ethernet port of the second node through the high-speed interconnection link. According to the message transmission method and device, the problem that the message transmission efficiency is low is solved, and then the effect of improving the message transmission efficiency is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the computer field, and more specifically, to a method and device for interconnecting nodes of a storage cluster. Background Art

[0002] In the related art, when the scale of the storage cluster expands, the number of devices that need to be connected increases, and a single frame may not be able to accommodate all devices. At this time, cross-frame interconnection is required. Since these devices are distributed in different physical frames, they cannot be directly connected through the backplane physical link, which leads to the problem of low message transmission efficiency. Therefore, there is a problem of low message transmission efficiency.

[0003] To address the above-mentioned problems, no effective solution has been proposed yet. Summary of the invention

[0004] The embodiments of the present application provide a method and device for interconnecting nodes of a storage cluster, so as to at least solve the problem of low message transmission efficiency in the related art.

[0005] According to an embodiment of the present application, a node interconnection method of a storage cluster is provided, wherein the storage cluster is composed of nodes distributed in multiple physical frames, including:

[0006] Utilize the virtual Ethernet port of the first node to parse the received Ethernet message and obtain the corresponding media access control address information, wherein the first node is a node in the storage cluster, the nodes in the storage cluster are interconnected via a high-speed interconnection link, and the identifiers corresponding to the nodes are configured in the same network segment; obtain the target node identifier based on the media access control address information, wherein the target node identifier is the identifier corresponding to the second node, and the first node and the second node are distributed in different physical frames; forward the Ethernet message to the virtual Ethernet port of the second node via the high-speed interconnection link.

[0007] According to another embodiment of the present application, a node interconnection device of a storage cluster is provided, wherein the storage cluster is composed of nodes distributed in multiple physical frames, including:

[0008] A parsing unit is used to parse the received Ethernet message using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, wherein the first node is a node in the storage cluster, the nodes in the storage cluster are interconnected via a high-speed interconnection link, and the identifiers corresponding to the nodes are configured in the same network segment; an acquisition unit is used to acquire a target node identifier based on the media access control address information, wherein the target node identifier is an identifier corresponding to the second node, and the first node and the second node are distributed in different physical frames; a forwarding unit is used to forward the Ethernet message to the virtual Ethernet port of the second node via the high-speed interconnection link.

[0009] As an optional solution, the above-mentioned parsing unit includes: a parsing module, used to use the virtual Ethernet port of the above-mentioned first node to parse the above-mentioned Ethernet message to obtain the first source media access control address of the above-mentioned Ethernet message, wherein the above-mentioned first source media access control address is the physical address of the network device that sends the above-mentioned Ethernet message, and is used to identify the source of the above-mentioned Ethernet message, and the above-mentioned media access control address information includes the above-mentioned first source media access control address.

[0010] As an optional solution, the acquisition unit includes: a matching module, which is used to use the first source media access control address to match the media access control address corresponding to the virtual Ethernet port of each node to obtain the matched virtual Ethernet port identifier of the second node.

[0011] As an optional solution, the matching module includes: an updating submodule, which is used to update a media access control address mapping table, wherein the media access control address mapping table is used to record the mapping relationship of the media access control address in the current storage cluster.

[0012] As an optional solution, the updating submodule includes: a broadcasting subunit, which is used to periodically broadcast the updated media access control address mapping table to each of the above nodes.

[0013] As an optional solution, the above-mentioned update submodule includes: a first update subunit, which is used to update the media access control address mapping table according to the message content of the above-mentioned Ethernet message when the above-mentioned Ethernet message belongs to an interconnection control message; a second update subunit, which is used to update the media access control address mapping table according to the target media access control address of the above-mentioned Ethernet message when the above-mentioned Ethernet message belongs to a network application message, wherein the above-mentioned target media access control address is used to determine the sending target of the above-mentioned Ethernet message.

[0014] As an optional solution, the above-mentioned matching module includes: a matching submodule, used to use the above-mentioned second source media access control address to match the media access control address corresponding to the virtual Ethernet port of each of the above-mentioned nodes to obtain a matching result; and a discarding submodule, used to discard the above-mentioned target Ethernet message when the above-mentioned matching result indicates that the above-mentioned second source media access control address fails to match.

[0015] As an optional solution, the above-mentioned parsing unit includes: a connection module, which is used to connect to the started node in the above-mentioned storage cluster through the above-mentioned high-speed interconnection link when the above-mentioned first node is started, wherein the first node after startup is configured to send a startup message to the above-mentioned started node, and periodically send its own node information and heartbeat message to the above-mentioned started node, so that the above-mentioned started node can perceive the existence and status of the above-mentioned first node.

[0016] As an optional solution, the above-mentioned connection module includes: an adding sub-module, which is used to add the above-mentioned first node after startup to the online node list of the above-mentioned second node after startup when the above-mentioned second node after startup receives the startup message sent by the above-mentioned first node after startup; and a deleting sub-module, which is used to delete the above-mentioned first node after startup from the above-mentioned online node list when the above-mentioned second node after startup does not receive its own node information and heartbeat message sent by the above-mentioned first node after startup within a preset period.

[0017] As an optional solution, the above-mentioned parsing unit includes: a configuration module, which is used to configure an identity tag for the above-mentioned Ethernet message, wherein the above-mentioned identity tag is used to distinguish the above-mentioned Ethernet message from other messages, and the Ethernet messages with the same above-mentioned identity tag are set to be prohibited from processing.

[0018] As an optional solution, the forwarding unit includes: a first forwarding module, used to forward the Ethernet message to the virtual Ethernet port of the second node through the first high-speed interconnection link to obtain a message sending result; a second forwarding module, used to re-forward the Ethernet message to the virtual Ethernet port of the second node through the second high-speed interconnection link when the message sending result indicates that the first high-speed interconnection link fails to send the Ethernet message.

[0019] According to another embodiment of the present application, a computer-readable storage medium is provided, in which a computer program is stored, wherein the computer program is configured to execute the steps of any one of the above method embodiments when running.

[0020] According to another embodiment of the present application, an electronic device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0021] According to another embodiment of the present application, a computer program product is provided, including a computer program, wherein when the computer program is configured to be executed by a processor, the steps in any one of the above method embodiments are performed.

[0022] Through the present application, the received Ethernet message is parsed using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, wherein the first node is a node in a storage cluster, and each node in the storage cluster is interconnected through a high-speed interconnection link; based on the media access control address information, a target node identifier is obtained, wherein the target node identifier is an identifier corresponding to the second node, the first node and the second node are distributed in different physical frames, and the identifiers corresponding to each node are configured in the same network segment; and the Ethernet message is forwarded to the virtual Ethernet port of the second node through the high-speed interconnection link.

[0023] Specifically, when the first node and the second node are distributed in different physical frames, the received Ethernet message is parsed to obtain the media access control address information by obtaining the virtual Ethernet port of the first node, and then the target node identifier of the second node is obtained according to the media access control information, and then the node identifiers of the first node and the second node are configured in the same network segment, and then the Ethernet message is forwarded to the virtual Ethernet port of the second node through the high-speed interconnection link, that is, through the combination of the internal high-speed interconnection link and the virtual Ethernet port, an efficient and direct message transmission mechanism is provided, which reduces the network complexity and achieves the technical effect of improving the message transmission efficiency. Since the problem of low message transmission efficiency can be solved, the technical effect of improving the message transmission efficiency is achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0024] Figure 1 is a schematic diagram of an application environment of a node interconnection method of a storage cluster according to an embodiment of the present application;

[0025] Figure 2 is a flow chart of a node interconnection method of a storage cluster according to an embodiment of the present application;

[0026] Figure 3 is a schematic diagram of a node interconnection method of a storage cluster according to an embodiment of the present application;

[0027] Figure 4 is a schematic diagram of a node interconnection method of a storage cluster according to an embodiment of the present application;

[0028] Figure 5 is a schematic diagram of a node interconnection method of a storage cluster according to an embodiment of the present application;

[0029] Figure 6 It is a structural block diagram of a node interconnection device of a storage cluster according to an embodiment of the present application. DETAILED DESCRIPTION

[0030] The embodiments of the present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0031] It should be noted that the terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0032] The method embodiments provided in the embodiments of the present application can be executed in a server device or a similar computing device. Taking running on a server device as an example, Figure 1 1 is a hardware structure block diagram of a server device of a node interconnection method of a storage cluster in an embodiment of the present application. Figure 1 As shown, the server device may include one or more ( Figure 1 Only one is shown in the figure) a processor 102 (the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a memory 104 for storing data, wherein the above-mentioned server device may also include a transmission device 106 and an input / output device 108 for communication functions. It can be understood by those skilled in the art that Figure 1 The structure shown is only for illustration and does not limit the structure of the above server device. Figure 1 More or fewer components as shown, or with Figure 1 Different configurations are shown.

[0033] The memory 104 can be used to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the node interconnection method of the storage cluster in the embodiment of the present application. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, the above method is implemented. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include a memory remotely arranged relative to the processor 102, and these remote memories can be connected to the server device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0034] The transmission device 106 is used to receive or send data via a network. The specific example of the above network may include a wireless network provided by a communication provider of the server device. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 106 can be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.

[0035] In this embodiment, a method for interconnecting nodes of a storage cluster is provided. The storage cluster is composed of nodes distributed in multiple physical frames. Figure 2 is a flow chart of a node interconnection method of a storage cluster according to an embodiment of the present application, such as Figure 2 As shown, the process includes the following steps:

[0036] Step S202, using the virtual Ethernet port of the first node, parsing the received Ethernet message to obtain corresponding media access control address information, wherein the first node is a node in the storage cluster, each node in the storage cluster is connected to each other through a high-speed interconnection link, and each node corresponds to a configuration in the same network segment;

[0037] In an optional embodiment, a Media Access Control Address (MAC address for short) may be, but is not limited to, a unique identifier of a network interface card, and may be, but is not limited to, used to identify a device in a Layer 2 network.

[0038] In an optional embodiment, the virtual Ethernet port may refer to, but is not limited to, a network interface virtually created on a physical node, and may be used for, but is not limited to, receiving and sending network data packets within the node.

[0039] In an optional embodiment, the high-speed interconnection link may be, but is not limited to, a link used for high-speed data exchange between multiple control nodes in a storage system, and may be, but is not limited to, at least one of Fibre Channel, non-transparent bridging, and remote direct memory access.

[0040] In an optional embodiment, the storage cluster may be, but is not limited to, composed of nodes distributed in multiple physical frameworks, and may be, but is not limited to, used to provide high-availability, high-performance, and high-scalability data storage services.

[0041] Step S204, obtaining a target node identifier according to the media access control address information, wherein the target node identifier is an identifier corresponding to the second node, and the first node and the second node are distributed in different physical frames;

[0042] In an optional embodiment, the target node identifier may be, but is not limited to, the corresponding identifier of the second node, and may be, but is not limited to, the ID (Identity document, ID for short) of the second node. The node identifier may be, but is not limited to, understood as a node ID, and the node ID may be, but is not limited to, a unique identifier for each node in the cluster, and may be, but is not limited to, used for positioning and identification of inter-node communication.

[0043] Step S206: forward the Ethernet message to the virtual Ethernet port of the second node through the high-speed interconnection link.

[0044] In an optional embodiment, an Ethernet message may be, but is not limited to, a basic unit for carrying network data transmission in network communications, and may be, but is not limited to, contain information such as a source address, a destination address, a type field, and a data field.

[0045] In an optional embodiment, a virtual Ethernet port is created on the first node in the storage cluster, and the created virtual Ethernet port has a media access control address associated with the node identifier, so that in a multi-controller cluster environment, the node can accurately identify and forward network packets to the target node.

[0046] Furthermore, when the first node receives an Ethernet message, it parses the media access control address information in the message to determine the target node to which the message should be sent. The target node identifier is configured in the same network segment as the first node, thereby ensuring the direct communication capability between nodes on the Layer 2 network. The target node identifier obtained by parsing is a unique identifier corresponding to the second node, thereby allowing the first node to determine the final destination of the message based on the media access control address information even if the target nodes are distributed in different physical frames.

[0047] Finally, since the message forwarding is directly carried out within the storage cluster, the intervention of external network devices is avoided, thus reducing system costs and deployment complexity. In addition, after determining the target node, the first node uses the high-speed interconnection link in the storage system to forward the message to the virtual Ethernet port of the second node, thereby making full use of the high bandwidth and low latency characteristics of the high-speed link, effectively improving the efficiency of data transmission between nodes.

[0048] To further illustrate, assume that there is a storage cluster consisting of four nodes, and the nodes are connected through a high-speed interconnection link. Each node has a unique node identifier, for example, the identifier of node 01 is 00000001, and the media access control address of its virtual Ethernet port is xx:xx:00:00:00:01. The virtual Ethernet ports of all nodes are configured in the same network segment to support Layer 2 network communication. When node 01 receives a network message request sent by the kernel protocol stack, for example, the source media access control address is xx:xx:00:00:00:01 and the target media access control address is xx:xx:00:00:00:02, then the media access control address information of the message is parsed, and by looking up the media access control address mapping table, it is determined that the target node identifier is 00000002, that is, node 02. Then, the high-speed interconnection link is used to directly forward the message to the virtual Ethernet port of node 02, instead of through the physical Ethernet switch. After receiving the message, node 02 will write it into its own virtual Ethernet port and push it to the upper-layer application for processing, thus realizing the interconnection of Layer 2 Ethernet services between cluster nodes.

[0049] Through the above steps, the received Ethernet message is parsed using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, wherein the first node is a node in the storage cluster, and each node in the storage cluster is connected to each other through a high-speed interconnection link; according to the media access control address information, the target node identifier is obtained, wherein the target node identifier is the identifier corresponding to the second node, the first node and the second node are distributed in different physical frames, and the identifiers corresponding to each node are configured in the same network segment; and the Ethernet message is forwarded to the virtual Ethernet port of the second node through the high-speed interconnection link.

[0050] Specifically, when the first node and the second node are distributed in different physical frames, the received Ethernet message is parsed to obtain the media access control address information by obtaining the virtual Ethernet port of the first node, and then the target node identifier of the second node is obtained according to the media access control information, and then the node identifiers of the first node and the second node are configured in the same network segment, and then the Ethernet message is forwarded to the virtual Ethernet port of the second node through the high-speed interconnection link, that is, through the combination of the internal high-speed interconnection link and the virtual Ethernet port, an efficient and direct data transmission mechanism is provided, which reduces the network complexity and achieves the technical effect of improving the data transmission efficiency. Since the problem of low data transmission efficiency can be solved, the technical purpose of making full use of the multi-core processor and parallel computing capabilities of the server is achieved, and the technical effect of improving the data transmission efficiency is achieved.

[0051] The execution subject of the above steps may be a server, a terminal, etc., but is not limited thereto.

[0052] As an optional solution, the received Ethernet message is parsed using the virtual Ethernet port of the first node to obtain corresponding media access control address information, including:

[0053] The Ethernet message is parsed using the virtual Ethernet port of the first node to obtain a first source media access control address of the Ethernet message, wherein the first source media access control address is a physical address of a network device that sends the Ethernet message and is used to identify a source of the Ethernet message, and the media access control address information includes the first source media access control address.

[0054] In an optional embodiment, the first source media access control address may be, but is not limited to, a physical address of a network device that sends an Ethernet message, and may be, but is not limited to, used to identify a source of the Ethernet message.

[0055] It should be noted that by utilizing the virtual Ethernet port of the first node to parse the Ethernet message and extract the first source media access control address therein, in this process, the first source media access control address becomes the unique identifier of the source of the message between nodes, which can help the receiving node determine the sender of the message, thereby providing a basis for subsequent message forwarding and processing decisions, ensuring that the source of the message can be accurately identified between nodes, and through the dynamic update of the media access control address mapping table, efficient data forwarding is achieved, reducing the delay in message processing, and thereby improving the efficiency of message processing.

[0056] Through the embodiment of the present application, the virtual Ethernet port of the first node is used to parse the Ethernet message to obtain the first source media access control address of the Ethernet message, wherein the first source media access control address is the physical address of the network device that sends the Ethernet message, and is used to identify the source of the Ethernet message, and the media access control address information includes the first source media access control address. Thus, the technical purpose of reducing the delay of message processing is achieved, and then the technical effect of improving the efficiency of message processing is achieved.

[0057] As an optional solution, the target node identifier is obtained according to the media access control address information, including:

[0058] The first source media access control address is used to match the media access control address corresponding to the virtual Ethernet port of each node to obtain the matched virtual Ethernet port identifier of the second node.

[0059] It should be noted that the first source media access control address is used to match the virtual Ethernet port identifiers between nodes. When the first node receives an Ethernet message, it parses the source media access control address information in the message, that is, the first source media access control address. Subsequently, the node compares this address with the media access control addresses of the virtual Ethernet ports of all nodes in the storage cluster to determine the sending node of the message. If the match is successful, it indicates that the message comes from a specific second node. This matching process is based on a media access control address mapping table, which records the relationship between the virtual Ethernet port identifiers of all nodes in the cluster and the corresponding media access control addresses, ensuring that the message can be transmitted between the correct nodes, thereby improving the communication efficiency and reliability between nodes.

[0060] Through the embodiment of the present application, the first source media access control address is used to match the media access control address corresponding to the virtual Ethernet port of each node to obtain the virtual Ethernet port identifier of the matched second node. This achieves the technical effect of ensuring that the message can be transmitted between the correct nodes, thereby achieving the technical effect of improving the communication efficiency and reliability between nodes.

[0061] As an optional solution, after using the first source media access control address to match the media access control address corresponding to the virtual Ethernet port of each node to obtain the matched virtual Ethernet port identifier of the second node, the method further includes:

[0062] The media access control address mapping table is updated, wherein the media access control address mapping table is used to record the mapping relationship of the media access control addresses in the current storage cluster.

[0063] It should be noted that updating the media access control address mapping table ensures that the communication information of each node in the storage cluster can be kept up to date. When a node receives an Ethernet message and parses the first source media access control address, the node will check whether this address already exists in the media access control address mapping table it maintains. If this media access control address corresponds to a new node identifier, or the mapping relationship with the existing node identifier changes, the mapping table will be updated to reflect the latest node status to ensure the accuracy and timeliness of communication between nodes in the cluster.

[0064] Through the embodiment of the present application, the media access control address mapping table is updated, wherein the media access control address mapping table is used to record the mapping relationship of the media access control address in the current storage cluster, thereby achieving the technical effect of reflecting the latest node status, and further ensuring the accuracy and timeliness of communication between nodes in the cluster.

[0065] As an optional solution, after updating the media access control address mapping table, the method further includes:

[0066] The updated media access control address mapping table is broadcasted to each node periodically.

[0067] In an optional embodiment, the periodic broadcast may be, but is not limited to, a process in which a node sends an updated media access control address mapping table to other nodes in the cluster at a predetermined time interval.

[0068] In an optional embodiment, the periodic broadcast may be a fixed period or a dynamic period. When it is a dynamic period, the period may be dynamically changed according to the frequency of the media access address update.

[0069] To further illustrate, if the frequency of data media access address updates is high, the frequency of periodic broadcasts can be increased by shortening the predetermined time interval between broadcasts to improve the timeliness of broadcasts. Conversely, if the frequency of data media access address updates is low, the frequency of periodic broadcasts can be reduced by increasing the predetermined time interval between broadcasts, thereby reducing the waste of resources.

[0070] It should be noted that in a storage system multi-controller node cluster, the efficient forwarding of network messages depends on the accurate and real-time media access control address mapping information of each node. Since the node status (such as online, offline) and media access control address information may change over time, there must be a mechanism to ensure that the mapping table information of all nodes is consistent with the current cluster status. The periodic broadcast of updated mapping tables is designed to address this requirement. When a node receives a message from another node and updates its local mapping table, it broadcasts the updated mapping table information to all other nodes in the cluster through a high-speed interconnect link. The nodes receiving this broadcast will update their own mapping tables accordingly to ensure the consistency of the mapping information.

[0071] Through the embodiment of the present application, the updated media access control address mapping table is periodically broadcast to each node, thereby achieving the technical purpose that the node receiving the periodic broadcast will update its own mapping table accordingly, thereby achieving the technical effect of ensuring the consistency of mapping information.

[0072] As an optional solution, update the media access control address mapping table, including:

[0073] S1-1, when the Ethernet message belongs to an interconnection control message, updating the media access control address mapping table according to the message content of the Ethernet message;

[0074] S1-2, when the Ethernet message belongs to a network application message, the media access control address mapping table is updated according to the target media access control address of the Ethernet message, wherein the target media access control address is used to determine the sending target of the Ethernet message.

[0075] In an optional embodiment, the interconnection control message may be, but is not limited to, a message used for communication control between clusters in a storage system cluster, and may include, but is not limited to, node status notifications, link keep-alive information, etc. Through the interconnection control message, the node can perceive the online status and abnormal events of other nodes in the cluster to maintain the stable operation of the entire cluster.

[0076] In an optional embodiment, the network application message may be, but is not limited to, a message directly related to an external network application, and may include, but is not limited to, data requests, file transfers, etc. Processing of network application messages directly affects the quality and efficiency of services provided by the cluster to the outside world.

[0077] In an optional embodiment, when receiving an interconnection control message, the node will update the mapping table according to the message content to reflect the change of node status or network topology. When receiving a network application message, the node will update the mapping table according to the target media access control address of the message to ensure that the destination of the message can be correctly identified and located. This process is dynamic, and as network messages are received, the mapping table will continue to be updated to adapt to real-time changes in the cluster.

[0078] It should be noted that in the operation of a multi-controller node cluster of a storage system, communication between nodes involves not only data transmission, but also the perception and maintenance of cluster status. Interconnection control messages are crucial for real-time feedback of node status. Once a node receives such a message, it will parse its content, such as node identification and media access control address information, as well as node status (online, offline, etc.), and then update the local media access control address mapping table to ensure that the information in the table is consistent with the current cluster status. This enables nodes to accurately identify cluster members, adjust message forwarding strategies in a timely manner, and enhance the cluster's fault tolerance and communication efficiency between cluster nodes.

[0079] To further illustrate, in a storage cluster, suppose that node 01 receives an interconnection control message from node 05 for the first time, and the message contains the node identifier and media access control address information of node 05. Node 01 will update its local media access control address mapping table based on this information and add the entry of node 05. Subsequently, node 01 will periodically broadcast the updated mapping table to all nodes in the cluster, including nodes 02, 03, and 04, to ensure that the mapping table information of all nodes remains consistent.

[0080] At the same time, node 01 receives a network application message with a target media access control address of xx:xx:00:00:00:04, indicating that the message should be sent to node 04. Node 01 checks its mapping table to confirm the mapping relationship between xx:xx:00:00:00:04 and the node 04 identifier. If the mapping table does not exist or the information is outdated, node 01 will update the media access control address information of node 04 to the mapping table to reflect the latest communication relationship. Subsequently, the message will be correctly forwarded to the virtual Ethernet port of node 04, ensuring efficient and accurate data transmission.

[0081] It should be noted that by distinguishing between interconnection control messages and network application messages and adopting different mapping table update strategies, the communication efficiency and reliability of the storage system multi-control node cluster are significantly improved. For the processing of interconnection control messages, the update of the mapping table ensures the real-time synchronization of node status information and enhances the dynamic adaptability and fault tolerance of the cluster. The processing of network application messages ensures that the messages can be sent to the target node accurately and quickly, reducing unnecessary broadcast communications, improving the efficiency of data transmission, and also reducing network load and latency, improving the overall performance of the system.

[0082] Through the embodiment of the present application, when the Ethernet message belongs to the interconnection control message, the media access control address mapping table is updated according to the message content of the Ethernet message; when the Ethernet message belongs to the network application message, the media access control address mapping table is updated according to the target media access control address of the Ethernet message, wherein the target media access control address is used to determine the sending target of the Ethernet message. Thus, the technical purpose of reducing unnecessary broadcast communications is achieved, and the technical effect of improving the efficiency of data transmission is achieved.

[0083] As an optional solution, when the second source media access control address corresponding to the target Ethernet message is obtained, the method further includes:

[0084] S2-1, using the second source media access control address to match the media access control address corresponding to the virtual Ethernet port of each node to obtain a matching result;

[0085] S2-2: When the matching result indicates that the second source media access control address fails to match, the target Ethernet message is discarded.

[0086] In an optional embodiment, the system needs to first verify the second source media access control address of the message. This verification process involves matching the received source media access control address with the media access control address in the media access control address mapping table maintained by the node to determine the legitimacy and validity of the message. If the matching result indicates that the second source media access control address does not match any media access control address in the mapping table, that is, the match fails, the system will take measures to discard the target Ethernet message to prevent the unknown node's message from interfering with the normal operation of the cluster or suffering from unknown network attacks.

[0087] It should be noted that in a storage system multi-controller node cluster, it is crucial to ensure the accurate forwarding and security of Layer 2 network messages. When a node receives a target Ethernet message, it first parses the second source media access control address of the message, and then matches it with the locally maintained media access control address mapping table to check the validity and legitimacy of the source node. This process is performed at the early stage of message reception, aiming to quickly identify and exclude illegal or invalid messages, thereby protecting the cluster from network attacks or abnormal communications. If the source media access control address exists in the mapping table and matches the online node identifier, the message is considered legitimate and will be processed normally or forwarded to the target node. However, if the source media access control address does not match any media access control address in the mapping table, that is, the match fails, this may mean that the message comes from outside the cluster or a node that has been offline. In this case, the system will discard the target Ethernet message to ensure the communication security and stability of the cluster.

[0088] Through the embodiment of the present application, the second source media access control address is used to match the media access control address corresponding to the virtual Ethernet port of each node to obtain a matching result; when the matching result indicates that the second source media access control address fails to match, the target Ethernet message is discarded. Thus, the technical purpose of discarding the target Ethernet message is achieved, and the technical effect of ensuring the communication security and stability of the cluster is achieved.

[0089] As an optional solution, before using the virtual Ethernet port of the first node to parse the received Ethernet message to obtain the corresponding media access control address information, the method further includes:

[0090] When the first node is started, it is connected to the started nodes in the storage cluster through a high-speed interconnection link, wherein the started first node is configured to send a startup message to the started node, and periodically send its own node information and heartbeat message to the started node, so that the started node can perceive the existence and status of the first node.

[0091] In an optional embodiment, the startup message may be, but is not limited to, a special message sent when a node starts up, and may be, but is not limited to, used to notify other nodes in the cluster of the startup status and related information of the node, such as a node identifier, a media access control address, etc.

[0092] In an optional embodiment, the heartbeat message may be, but is not limited to, a message periodically sent by a node, and may be, but is not limited to, used to confirm its own online status to other nodes in the cluster. It is an important means of maintaining inter-node communication and cluster health monitoring.

[0093] In an optional embodiment, when the first node starts or rejoins the cluster, a connection is established with the started node through a high-speed interconnect link. In this process, the first node will send a startup message to periodically inform other nodes in the cluster of its own node information, so that other nodes can sense the existence of the first node and update the information to their respective media access control address mapping tables to identify the newly joined node. In addition, the first node will also periodically send heartbeat messages, which not only contain node status information, but also help other nodes confirm the online status of the first node, thereby improving the fault tolerance and stability of the cluster.

[0094] It should be noted that in the environment of a storage system multi-controller node cluster, the startup, joining or re-online of a node is an important event that directly affects the scale and performance of the cluster. When the first node is started or rejoins the cluster for the first time, it needs to establish a connection with the started node through a high-speed interconnection link, so that it can not only quickly join the cluster, but also synchronize its own node information, including node identification and media access control address, to other nodes in the cluster. This process is achieved by sending a startup message, which contains the startup status and core information of the first node, so that the cluster can promptly perceive the joining of the new node and make corresponding configurations and adjustments.

[0095] Through the embodiment of the present application, when the first node is started, it is connected to the started node in the storage cluster through a high-speed interconnection link, wherein the first node after startup is set to send a startup message to the started node, and periodically send its own node information and heartbeat message to the started node, so that the started node can perceive the existence and status of the first node. Thus, the technical purpose of helping other nodes to confirm the online status of the first node is achieved, and then the technical effect of improving the fault tolerance and stability of the cluster is achieved.

[0096] As an optional solution, in the case where the started nodes include a started second node, when the first node is started, after being connected to the started nodes in the storage cluster through a high-speed interconnection link, the method includes:

[0097] S3-1, when the started second node receives the startup message sent by the started first node, adding the started first node to the online node list of the started second node;

[0098] S3-2, when the started second node does not receive its own node information and heartbeat message sent by the started first node within a preset period, the started first node is deleted from the online node list.

[0099] In an optional embodiment, the online node list may be, but is not limited to, a data structure for recording node identifications, media access control addresses, and status information of all online nodes in the current cluster.

[0100] In an optional embodiment, when the second node receives the startup message sent by the first node, it identifies the node identification and media access control address information of the first node and adds it to its own online node list, thereby confirming that the first node has joined the cluster and is online. This operation ensures that the second node can communicate through the virtual Ethernet port of the first node, enhancing the communication capability and stability of the cluster.

[0101] Furthermore, if the second node does not receive the heartbeat message from the first node within the preset period, this may indicate that the first node has gone offline or encountered a communication failure. In this case, the second node will delete the first node from its online node list and update the list status in time to avoid potential communication errors and data loss. This mechanism is an important part of cluster dynamic management, ensuring that each node can perceive the dynamic changes of the cluster in real time, improving the system's fault tolerance and response speed.

[0102] It should be noted that in a storage system cluster, the online and offline of nodes are common events, which are crucial to maintaining system stability and service continuity. When a new node starts and sends a startup message, other nodes in the cluster will receive and parse this message to obtain the node identification, media access control address and other information of the first node. This information will be added to the online node list of the second node, so that the second node is aware of the existence of the first node and can communicate through the virtual Ethernet port of the first node. This process is the basis for synchronization and initialization between cluster nodes, ensuring that new nodes can quickly integrate into the cluster, start to provide services, and support dynamic expansion of cluster size. At the same time, in order to maintain the stable operation of the system, each node also needs to be able to promptly discover and respond to the offline or fault conditions of other nodes. By receiving heartbeat messages within a preset period, the node can continuously monitor the online status of other nodes in the cluster. Once the heartbeat message of the first node is not received within the preset period, the second node will mark the first node as offline and remove the entry of the first node from the online node list. This removal operation avoids invalid communication attempts, reduces network delays and communication errors caused by node status changes in the system, and enhances the overall responsiveness and data processing efficiency of the cluster.

[0103] Through the embodiment of the present application, when the second node after startup receives the startup message sent by the first node after startup, the first node after startup is added to the online node list of the second node after startup; when the second node after startup does not receive its own node information and heartbeat message sent by the first node after startup within a preset period, the first node after startup is deleted from the online node list. This achieves the technical effect of reducing network delays and communication errors caused by node status changes in the system, thereby achieving enhanced overall responsiveness and data processing efficiency of the cluster.

[0104] As an optional solution, before using the virtual Ethernet port of the first node to parse the received Ethernet message to obtain the corresponding media access control address information, the method further includes:

[0105] An identity tag is configured for an Ethernet message, wherein the identity tag is used to distinguish an Ethernet message from other messages, and Ethernet messages with the same identity tag are set to be prohibited from being processed.

[0106] In an optional embodiment, the identity tag may be, but is not limited to, a type of identification information assigned to an Ethernet message, and may be, but is not limited to, used to distinguish an Ethernet message from other messages. Ethernet messages with the same identity tag are set to be prohibited from processing.

[0107] In an optional embodiment, the configuration of the identity tag can help the node distinguish whether the received message is an Ethernet message and whether to process the message. Once the message is identified as an Ethernet message, its identity tag will be used to determine whether the message has been processed. If the identity tag of the message is found to be the same as the identity tag of the processed message, it means that the message is a duplicate message, and the system will set it to a processing-prohibited state to avoid repeated processing of the same message.

[0108] It should be noted that in the communication environment of the storage system cluster, there are many types of messages, including Ethernet messages, control messages, management messages, etc. These messages carry communication tasks and information of different natures. In order to ensure that nodes can process messages accurately and efficiently, identity tags are configured for Ethernet messages. If the received message is identified as an Ethernet message, the node will further check its identity tag. The existence of identity tags not only helps nodes distinguish Ethernet messages from other types of messages, but also can be used to identify the uniqueness of messages and prevent the processing of duplicate messages. This mechanism is based on a key assumption: the identity tag of each Ethernet message should be unique. In this way, if a node finds a message with the same identity tag during processing, it can determine that the message is sent repeatedly, and thus set it to a processing-prohibited state, avoiding repeated processing of the same message, and ensuring the rational use of system resources and smooth network communication.

[0109] Through the embodiment of the present application, an identity tag is configured for an Ethernet message, wherein the identity tag is used to distinguish an Ethernet message from other messages, and Ethernet messages with the same identity tag are set to be prohibited from processing. Thus, the technical purpose of avoiding repeated processing of the same message is achieved, and further the technical effect of ensuring the rational use of system resources and smooth network communication is achieved.

[0110] As an optional solution, the Ethernet message is forwarded to the virtual Ethernet port of the second node through the high-speed interconnection link, including:

[0111] S4-1, forwarding the Ethernet message to the virtual Ethernet port of the second node through the first high-speed interconnection link, and obtaining a message sending result;

[0112] S4-2: When the message sending result indicates that the first high-speed interconnection link fails to send the Ethernet message, the Ethernet message is re-forwarded to the virtual Ethernet port of the second node through the second high-speed interconnection link.

[0113] In an optional embodiment, the message sending result may be, but is not limited to, a result indicating that the Ethernet message is sent to the target node via a high-speed interconnection link.

[0114] It should be noted that when a node needs to send an Ethernet message to another node in the cluster, it will first select a high-speed interconnect link to forward the message. This link may be a pre-configured primary link in the cluster, which is used for most message transmissions. The node sends the message to the virtual Ethernet port of the target node through the selected link and waits for feedback on the sending result. If the sending result indicates that the message failed to be sent, this may mean that the first high-speed interconnect link has encountered a failure or performance bottleneck, affecting the normal transmission of the message.

[0115] Furthermore, at this time, the node will immediately switch to another preset high-speed interconnection link to resend the message. This link can be a backup link configured in the cluster, which is used to provide continuous communication capabilities when the main link has problems. By resending the second high-speed interconnection link, the system can avoid communication interruptions caused by a single link failure, ensuring that the message can reach the target node accurately and in a timely manner, thereby ensuring the efficiency of message transmission.

[0116] Through the embodiment of the present application, the Ethernet message is forwarded to the virtual Ethernet port of the second node through the first high-speed interconnection link to obtain the message sending result; when the message sending result indicates that the first high-speed interconnection link fails to send the Ethernet message, the Ethernet message is re-forwarded to the virtual Ethernet port of the second node through the second high-speed interconnection link. Thus, the technical purpose of ensuring that the message can reach the target node accurately and timely is achieved, and the technical effect of ensuring the efficiency of message transmission is achieved.

[0117] As an optional solution, for ease of understanding, the node interconnection method of the storage cluster is applied to the Ethernet network scenario.

[0118] In an optional embodiment, this embodiment designs a method for realizing virtual Ethernet Layer 2 interconnection based on a high-speed interconnection link of multiple control nodes of a storage system, encapsulating a unified communication interface based on an existing dedicated high-speed interconnection link of the storage system to shield hardware link differences; creating a virtual network card in the node based on virtual network interface technology and exposing it to system application services; monitoring network message requests received in the virtual network card, and establishing an MCA address mapping table based on the source address and destination address of the message and the collection of cluster node IDs, and forwarding it to the corresponding cluster node through a high-speed interconnection link to realize forwarding of Layer 2 network messages between cluster nodes.

[0119] In an optional embodiment, this embodiment realizes Layer 2 Ethernet network interconnection between cluster nodes by storing the existing high-speed interconnection links of the multi-control cluster system and combining virtual network interface technology, which can effectively save system hardware costs, simplify the complexity of network deployment of the multi-control cluster system, and make full use of the fault tolerance capabilities of the existing interconnection links to avoid the inability to access nodes normally due to a single port failure.

[0120] In an optional embodiment, a virtual Ethernet layer 2 interconnection method is implemented based on a storage system multi-control node high-speed interconnection link. The system is schematically shown as follows: Figure 3 As shown, there is a storage cluster composed of four controllers, and the cluster physical link forms a cluster-specific high-speed interconnection link through a high-speed interconnection link to realize high-speed interconnection between nodes 01, 02, 03, and 04. There are also physical network ports 0 and 1, as well as virtual network interfaces. There are virtual network device files in the virtual network, which provide services to upper-layer applications through the kernel protocol stack. This embodiment is mainly embodied in the virtual network management module of the cluster, which obtains the message of the virtual network interface and then forwards the message to other nodes in the cluster through the high-speed interconnection link. The messages sent by other nodes in the cluster will be sent to the Ethernet application / service through the virtual network port interface.

[0121] In an optional embodiment, a virtual Ethernet layer 2 interconnection method is implemented based on a storage system multi-control node high-speed interconnection link. The system mainly comprises the following components: Figure 4 As shown, it includes 7 important parts, as follows:

[0122] 1) Virtual network port management, including the creation of virtual network interfaces and IP configuration management;

[0123] 2) Cluster event processing, responsible for subscribing to node joining and exiting events in the cluster and forwarding them to other modules for processing;

[0124] 3) Virtual network port message sending and receiving, used to monitor the virtual network interface, receive and forward network messages from other nodes, and push messages sent to this node by other nodes in the cluster to the virtual network interface;

[0125] 4) Online node identity (ID) maintenance, responsible for recording the information of all online nodes in the network, used to confirm the validity of the node to which the message is sent;

[0126] 5) Cluster message sending and receiving data frames, used to subscribe to messages sent by other nodes in the cluster, and provide an interface for forwarding messages to the cluster's high-speed interconnection link;

[0127] 6) Media access control address (Mac address) mapping table, used to record the mapping relationship of Mac addresses;

[0128] 7) Log module, used to record key information during the operation of each module.

[0129] In an optional embodiment, a virtual Ethernet layer 2 interconnection method is implemented based on a storage system multi-control node high-speed interconnection link, and the main process of system message processing includes three processing threads, as follows:

[0130] 1) Virtual network interface message monitoring thread. This thread is responsible for creating a virtual network port and monitoring the network messages received by the network port. Once a network message is received, its source MAC address and target MAC address will be parsed. The received network message mainly comes from the upper-layer application service of this node. The source MAC address and node ID are recorded, and the mapping table of MAC address and node ID is updated. The MAC address mapping table is queried according to the target MAC address to find the target node ID. If the node ID cannot be found in the MAC address mapping table, the message will be broadcast to all nodes in the cluster, and the kernel protocol stack of the corresponding node will filter the message.

[0131] 2) The high-speed dedicated interconnect link message receiving and monitoring thread is responsible for monitoring virtual network messages sent to the local machine by other nodes. The message header will encapsulate our customized header information to confirm whether it is a network message sent by the application or a special message between clusters. If it is a special message between clusters, it is mainly used to notify the event of the node going online. Once the node is confirmed to be online, the node ID list will be refreshed. At the same time, keep-alive messages will be sent periodically between nodes through the high-speed interconnect channel. Once the message is not received for three times after the timeout, the node will be removed from the online ID list. After receiving the message sent by other nodes through the high-speed interconnect link, it will be placed in the FIFO queue and trigger the message processing thread to process the message;

[0132] 3) High-speed dedicated interconnect link message receiving and processing thread, used to parse the network message sent by the cluster node through the high-speed dedicated link, parse the source MAC address and record the node ID of the sending message, update the mapping table between MAC address and node ID, write the network message to the virtual network port interface, and push it to the upper-layer application of the system for processing.

[0133] To further illustrate, the optional Figure 5 As shown, the specific steps are as follows:

[0134] 1) In the virtual network message monitoring thread, first create a virtual network port, then monitor the virtual network device. When receiving a network message, it will block and wait for the network message, then read eth_virtual to obtain the network message content to the sending buffer, then parse the source MAC address and target MAC address from the network message, update the MAC address table according to the source MAC address and node ID, confirm whether the target MAC address is legal, and return it directly if it is illegal. Then confirm whether the target MAC address is a broadcast address. If it is a broadcast address sent to all nodes, query the MAC address table according to the target MAC address, determine the target node ID, and send it to different nodes through the high-speed dedicated interconnect link message interface, and return to the blocking and waiting for network messages stage;

[0135] 2) In the high-speed dedicated interconnect link message receiving monitoring thread, first register the message acceptance callback function, and trigger the callback processing after the message is received, put the message into the fifo, if the fifo is full, discard it directly, record the log, and then determine the message type. If it is a control message, update the user ID list and return to the callback processing stage triggered after the message is received. If it is a normal network message, parse the message source MAC address, update the MAC address table together with the node ID that sends the message, and then add it to the receiving fifo, then trigger the receiving processing thread, and return to the callback processing stage triggered after the message is received.

[0136] 3) In the high-speed dedicated interconnect link message receiving and processing thread, it is initially in the stage of semaphore blocking and waiting for thread wake-up. After the receiving processing thread is triggered in the high-speed dedicated interconnect link message receiving and listening thread, the high-speed interconnect channel receiving queue is read to obtain the message forwarded by the node, and then the message is written to the virtual_eth interface and sent to the virtual network card. Then the message enters the kernel protocol stack, the upper-layer network service processes the message, and then the response message is sent back to the virtual network port, and returns to the semaphore blocking and waiting for thread wake-up stage. If the message is actively initiated by the network application, it will enter the stage of receiving network message messages in the virtual network message listening thread.

[0137] It should be noted that the method for realizing virtual Ethernet layer 2 interconnection based on the high-speed interconnection link of multiple control nodes of the storage system designed in this embodiment includes the following steps:

[0138] (1) The nodes of the storage multi-control cluster are connected together through dedicated high-speed interconnection links such as FC, NTB, and RDMA. You can select one of the three types of connections or configure a combination of them.

[0139] (2) Each node in the storage multi-control cluster is configured with unique node ID information. After establishing interconnection through FC, NTB, and RDMA, the node will actively report its own ID information and other attribute information, including software version, protocol type, etc.

[0140] (3) The FC, NTB, and RDMA message sending and receiving interfaces of the storage multi-control cluster are uniformly encapsulated into message sending and receiving interfaces. Messages sent by other modules do not need to pay attention to the protocol type. Once a message fails to be sent, the message will be automatically sent through other links. At the same time, each message will be marked with a unique label. If the received message has a duplicate tag, the message can be directly ignored, thereby improving the fault tolerance of the cluster interconnection link.

[0141] (4) Each node starts the creation and configuration process of the virtual Ethernet port. During the creation process, the MAC address encoding of the virtual network port contains the node's unique ID information, which is convenient for verifying the correctness of message forwarding processing. All IPs are configured in the same network segment and can be interconnected through the Layer 2 network. For example, if the ID information of node 1 in a four-controller cluster is 00000001, the mac address of the virtual network port of node 1 is xx:xx:00:00:00:01, and the IP configuration is 192.168.3.1; if the ID information of node 2 is 00000002, the mac address of the virtual network port of node 2 is xx:xx:00:00:00:02, and the IP configuration is 192.168.3.2; if the ID information of node 3 is 00000003, the mac address of the virtual network port of node 3 is xx:xx:00:00:00:03, and the IP configuration is 192.168.3.3; if the ID information of node 4 is 00000004, the mac address of the virtual network port of node 4 is xx:xx:00:00:00:04, and the IP configuration is 192.168.3.4.

[0142] (5) After the node is started, the high-speed interconnection link will complete the hardware connection and report the connection completion. The node will periodically send its own information and keep-alive messages to all nodes connected to it, so that other nodes will automatically perceive the online information of other nodes in the cluster. After receiving the node online message, the node ID is updated to the online node ID list. If no message is received after three timeouts, the node ID will be deleted from the list.

[0143] (6) The upper-layer Ethernet service or application initiates an Ethernet connection request. If the target IP is a virtual network port, the virtual network message monitoring process will read the network message request sent by the kernel protocol stack from the virtual network port. The first message should be an address resolution message such as ARP.

[0144] (7) For Layer 2 network messages, this embodiment determines whether the message is sent to a certain node in the cluster or to all nodes based on the target MAC address. If the target address is a broadcast address, this embodiment sends the message to all nodes based on the online node ID list. If the target address matches a specific node ID, it is only sent to the target node.

[0145] (8) After receiving the message from the virtual network interface, parse the source MAC address. The source MAC address should match the MAC address set in step (4) of this embodiment. If they do not match, the message should be a forwarding message. Network storms are not avoided and the non-matching message is directly discarded. If they match, update the MAC address and node ID mapping table.

[0146] (9) After each node updates its own node ID list and MAC address node ID mapping table, it will periodically broadcast this information to other nodes. Finally, after the network is stable, all node information will be kept consistent.

[0147] (10) When a message is received from other nodes on the storage high-speed interconnection link, this embodiment first determines whether it is an ordinary network application message or an interconnection control message. If it is an interconnection control message, the MAC address mapping table and node ID list are updated according to the message content; if it is a network application message, the target MAC address is parsed, and the MAC address mapping table is updated together with the node ID that sent the message. At the same time, the message is sent to the virtual network port to promote upper-layer application processing.

[0148] Through the embodiments of the present application, the existing high-speed interconnection links of the storage system are utilized, and the Ethernet network interconnection between multi-control storage node clusters is realized based on the virtual network interface technology. The forwarding of Layer 2 network messages between cluster nodes is realized through software. The Ethernet network interconnection between storage nodes can be completed by adding additional network hardware equipment, which saves costs and makes deployment simpler and more reliable.

[0149] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product or a program product, which is stored in a storage medium (such as ROM / RAM, a disk, or an optical disk), and includes a number of instructions for a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the methods of each embodiment of the present application.

[0150] In this embodiment, a node interconnection device for a storage cluster is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware for a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.

[0151] Figure 6 is a structural block diagram of a node interconnection device of a storage cluster according to an embodiment of the present application. The storage cluster is composed of nodes distributed in multiple physical frames, such as Figure 6 As shown, the device comprises:

[0152] The parsing unit 602 is used to parse the received Ethernet message using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, wherein the above-mentioned first node is a node in the storage cluster, and the nodes in the above-mentioned storage cluster are interconnected through a high-speed interconnection link, and the identifiers corresponding to the nodes are configured in the same network segment; the acquisition unit 604 is used to obtain the target node identifier according to the above-mentioned media access control address information, wherein the above-mentioned target node identifier is the identifier corresponding to the second node, and the above-mentioned first node and the above-mentioned second node are distributed in different physical frames; the forwarding unit 606 is used to forward the above-mentioned Ethernet message to the virtual Ethernet port of the above-mentioned second node through the above-mentioned high-speed interconnection link.

[0153] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0154] As an optional solution, the parsing unit 602 includes: a parsing module, used to utilize the virtual Ethernet port of the first node to parse the Ethernet message to obtain the first source media access control address of the Ethernet message, wherein the first source media access control address is the physical address of the network device that sends the Ethernet message, and is used to identify the source of the Ethernet message, and the media access control address information includes the first source media access control address.

[0155] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0156] As an optional solution, the acquisition unit 604 includes: a matching module, which is used to use the first source media access control address to match the media access control address corresponding to the virtual Ethernet port of each node to obtain the matched virtual Ethernet port identifier of the second node.

[0157] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0158] As an optional solution, the matching module includes: an updating submodule, which is used to update a media access control address mapping table, wherein the media access control address mapping table is used to record the mapping relationship of the media access control address in the current storage cluster.

[0159] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0160] As an optional solution, the updating submodule includes: a broadcasting subunit, which is used to periodically broadcast the updated media access control address mapping table to each of the above nodes.

[0161] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0162] As an optional solution, the above-mentioned update submodule includes: a first update subunit, which is used to update the media access control address mapping table according to the message content of the above-mentioned Ethernet message when the above-mentioned Ethernet message belongs to an interconnection control message; a second update subunit, which is used to update the media access control address mapping table according to the target media access control address of the above-mentioned Ethernet message when the above-mentioned Ethernet message belongs to a network application message, wherein the above-mentioned target media access control address is used to determine the sending target of the above-mentioned Ethernet message.

[0163] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0164] As an optional solution, the above-mentioned matching module includes: a matching submodule, used to use the above-mentioned second source media access control address to match the media access control address corresponding to the virtual Ethernet port of each of the above-mentioned nodes to obtain a matching result; and a discarding submodule, used to discard the above-mentioned target Ethernet message when the above-mentioned matching result indicates that the above-mentioned second source media access control address fails to match.

[0165] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0166] As an optional solution, the above-mentioned parsing unit 602 includes: a connection module, which is used to connect to the started node in the above-mentioned storage cluster through the above-mentioned high-speed interconnection link when the above-mentioned first node is started, wherein the first node after startup is configured to send a startup message to the above-mentioned started node, and periodically send its own node information and heartbeat message to the above-mentioned started node, so that the above-mentioned started node can perceive the existence and status of the above-mentioned first node.

[0167] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0168] As an optional solution, the above-mentioned connection module includes: an adding sub-module, which is used to add the above-mentioned first node after startup to the online node list of the above-mentioned second node after startup when the above-mentioned second node after startup receives the startup message sent by the above-mentioned first node after startup; and a deleting sub-module, which is used to delete the above-mentioned first node after startup from the above-mentioned online node list when the above-mentioned second node after startup does not receive its own node information and heartbeat message sent by the above-mentioned first node after startup within a preset period.

[0169] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0170] As an optional solution, the parsing unit 602 includes: a configuration module, used to configure an identity tag for the Ethernet message, wherein the identity tag is used to distinguish the Ethernet message from other messages, and the Ethernet messages with the same identity tag are set to be prohibited from processing.

[0171] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0172] As an optional solution, the forwarding unit 606 includes: a first forwarding module, used to forward the Ethernet message to the virtual Ethernet port of the second node through the first high-speed interconnection link to obtain a message sending result; a second forwarding module, used to re-forward the Ethernet message to the virtual Ethernet port of the second node through the second high-speed interconnection link when the message sending result indicates that the first high-speed interconnection link fails to send the Ethernet message.

[0173] For specific embodiments, reference may be made to the examples shown in the above-mentioned method for interconnecting nodes in a storage cluster, which will not be described in detail in this example.

[0174] It should be noted that the above-mentioned virtual devices (modules, units, sub-modules, sub-units, components, etc.) can be implemented by software or hardware. For the latter, it can be implemented in the following ways, but not limited to this: the above-mentioned virtual devices are all located in the same processor; or, the above-mentioned virtual devices are located in different processors in any combination.

[0175] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when run.

[0176] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk.

[0177] An embodiment of the present application further provides an electronic device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0178] In an exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.

[0179] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail herein.

[0180] An embodiment of the present application further provides a computer program product, including a computer program, wherein when the computer program is configured to be executed by a processor, the computer program performs the steps in any of the above method embodiments.

[0181] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail herein.

[0182] Obviously, those skilled in the art should understand that the above-mentioned virtual devices or steps of the present application can be implemented by a general computing device, they can be concentrated on a single computing device, or distributed on a network composed of multiple computing devices, they can be implemented by a program code executable by a computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, the steps shown or described can be executed in a different order from that herein, or they can be made into individual integrated circuit modules, or multiple modules or steps therein can be made into a single integrated circuit module for implementation. Thus, the present application is not limited to any specific combination of hardware and software.

[0183] The above description is only the preferred embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the principles of the present application shall be included in the protection scope of the present application.

Claims

1. A method for interconnecting nodes of a storage cluster, characterized in that: The storage cluster is composed of nodes distributed in multiple physical frames, and the method further includes: Using the virtual Ethernet port of the first node, parsing the received Ethernet message to obtain corresponding media access control address information, wherein the first node is a node in the storage cluster, each node in the storage cluster is connected to each other through a high-speed interconnection link, and the identifiers corresponding to each node are configured in the same network segment; Acquire a target node identifier according to the media access control address information, wherein the target node identifier is an identifier corresponding to the second node, and the first node and the second node are distributed in different physical frames; The Ethernet message is forwarded to the virtual Ethernet port of the second node through the high-speed interconnection link.

2. The method according to claim 1, characterized in that The method of parsing the received Ethernet message by using the virtual Ethernet port of the first node to obtain the corresponding media access control address information includes: The Ethernet message is parsed using the virtual Ethernet port of the first node to obtain a first source media access control address of the Ethernet message, wherein the first source media access control address is a physical address of a network device that sends the Ethernet message and is used to identify a source of the Ethernet message, and the media access control address information includes the first source media access control address.

3. The method according to claim 2, characterized in that The step of acquiring a target node identifier according to the media access control address information includes: The first source media access control address is used to match the media access control addresses corresponding to the virtual Ethernet ports of the respective nodes to obtain the matched virtual Ethernet port identifier of the second node.

4. The method according to claim 3, characterized in that After using the first source media access control address to match the media access control address corresponding to the virtual Ethernet port of each node to obtain the matched virtual Ethernet port identifier of the second node, the method further includes: The media access control address mapping table is updated, wherein the media access control address mapping table is used to record the mapping relationship of the media access control address in the current storage cluster.

5. The method according to claim 4, characterized in that After the updating of the media access control address mapping table, the method further includes: The updated media access control address mapping table is periodically broadcast to each of the nodes.

6. The method according to claim 4, characterized in that The updating of the media access control address mapping table includes: In the case where the Ethernet message belongs to an interconnection control message, updating the media access control address mapping table according to the message content of the Ethernet message; In the case that the Ethernet message belongs to a network application message, the media access control address mapping table is updated according to the target media access control address of the Ethernet message, wherein the target media access control address is used to determine the sending target of the Ethernet message.

7. The method according to claim 3, characterized in that In the case of obtaining the second source media access control address corresponding to the target Ethernet message, the method further includes: Using the second source media access control address, matching with the media access control address corresponding to the virtual Ethernet port of each node to obtain a matching result; When the matching result indicates that the second source media access control address fails to match, the target Ethernet packet is discarded.

8. The method according to claim 1, characterized in that Before parsing the received Ethernet message using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, the method further includes: When the first node is started, it is connected to the started node in the storage cluster through the high-speed interconnection link, wherein the started first node is configured to send a startup message to the started node, and periodically send its own node information and heartbeat message to the started node, so that the started node can perceive the existence and status of the first node.

9. The method according to claim 8, characterized in that In the case where the started node includes the started second node, when the first node is started, after being connected to the started node in the storage cluster through the high-speed interconnection link, the method includes: When the started second node receives the startup message sent by the started first node, adding the started first node to the online node list of the started second node; When the started second node does not receive its own node information and heartbeat message sent by the started first node within a preset period, the started first node is deleted from the online node list.

10. The method according to any one of claims 1 to 9, characterized in that Before parsing the received Ethernet message using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, the method further includes: An identity tag is configured for the Ethernet message, wherein the identity tag is used to distinguish the Ethernet message from other messages, and the Ethernet messages with the same identity tag are set to be prohibited from processing.

11. The method according to any one of claims 1 to 9, characterized in that The step of forwarding the Ethernet message to the virtual Ethernet port of the second node through the high-speed interconnection link includes: Forwarding the Ethernet message to the virtual Ethernet port of the second node through the first high-speed interconnection link to obtain a message sending result; When the message sending result indicates that the first high-speed interconnection link fails to send the Ethernet message, the Ethernet message is re-forwarded to the virtual Ethernet port of the second node through a second high-speed interconnection link.

12. A node interconnection device for a storage cluster, characterized in that: The storage cluster is composed of nodes distributed in multiple physical frames, including: A parsing unit, configured to parse a received Ethernet message using a virtual Ethernet port of a first node to obtain corresponding media access control address information, wherein the first node is a node in the storage cluster, each node in the storage cluster is interconnected via a high-speed interconnection link, and identifiers corresponding to each node are configured in the same network segment; an acquiring unit, configured to acquire a target node identifier according to the media access control address information, wherein the target node identifier is an identifier corresponding to the second node, and the first node and the second node are distributed in different physical frames; A forwarding unit is used to forward the Ethernet message to the virtual Ethernet port of the second node through the high-speed interconnection link.

13. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program implements the steps of the method described in any one of claims 1 to 11 when executed by a processor.

14. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method described in any one of claims 1 to 11 are implemented.

15. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 11 are implemented.

Citation Information

Patent Citations

  • Method for setting FCoE virtual link and system

    CN102111395A

  • Method and device for managing FPGA heterogeneous accelerator card cluster and medium

    CN110768907A

  • Method and device for realizing remote direct memory access, electronic equipment and medium

    CN114050998A

  • Traffic mirroring method, device and equipment and computer storage medium

    CN114884905A

  • Communication method, gateway, management method and device in hybrid cloud environment

    CN116208658A

Cited By

  • Node online and offline control method and device

    CN121125746A