Node Interconnection Method and Device for Storage Cluster

By using virtual Ethernet ports in the storage cluster to resolve media access control addresses and forward messages using high-speed interconnect links, the problem of low message transmission efficiency in cross-frame connections is solved, and efficient and reliable inter-node communication is achieved.

CN119383157BActive Publication Date: 2025-07-18INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In a storage cluster, as the number of devices increases, cross-frame interconnection has not been effectively solved.

Method used

By using the virtual Ethernet port to resolve the media access control address information of Ethernet packets in nodes in the storage cluster, obtain the target node identification, and forward the message to the virtual Ethernet port of the target node through a high-speed interconnection link, efficient connection between nodes is achieved.

Benefits of technology

It improves packet transmission efficiency, reduces network complexity, reduces system costs and deployment complexity, and enhances communication reliability and efficiency between nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119383157B_ABST
    Figure CN119383157B_ABST
Patent Text Reader

Abstract

An embodiment of the present application provides a method and device for node interconnection in a storage cluster. The storage cluster is composed of nodes distributed in multiple physical frameworks. The method includes: using the virtual Ethernet port of the first node to parse the received Ethernet packet to obtain the corresponding media access control address information. The first node is a node in the storage cluster, and each node in the storage cluster is interconnected through a high-speed interconnection link, and the identifiers corresponding to each node are configured in the same network segment; obtaining the target node identifier according to the media access control address information, where 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 frameworks; forwarding the Ethernet packet to the virtual Ethernet port of the second node through the high-speed interconnection link. Through the present application, the problem of low packet transmission efficiency is solved, and the effect of improving the packet 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 field of computers, and in particular, to a method and device for interconnecting nodes of a storage cluster. Background Art

[0002] In the related art, when the scale of a storage cluster expands and the number of devices to be connected increases, a single frame may not be able to accommodate all devices, and 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] In view of the above 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 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 method for interconnecting nodes of a storage cluster is provided. The storage cluster is composed of nodes distributed in multiple physical frames, and includes:

[0006] Using the virtual Ethernet port of the first node to parse the received Ethernet message to obtain the corresponding media access control address information, where the first node is a node in the storage cluster, and the nodes in the storage cluster are interconnected through a high-speed interconnection link, and the identifiers corresponding to the nodes are configured in the same network segment; according to the media access control address information, obtain the target node identifier, where 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 through the high-speed interconnection link.

[0007] According to another embodiment of the present application, a device for interconnecting nodes of a storage cluster is provided. The storage cluster is composed of nodes distributed in multiple physical frames, and includes:

[0008] A parsing unit, which is used to parse the received Ethernet packet by using the virtual Ethernet port of the first node to obtain the corresponding media access control address information. Here, the first node is a node in the storage cluster, and each node in the storage cluster is interconnected through a high-speed interconnection link. The identifiers corresponding to the respective nodes are configured in the same network segment; an obtaining unit, which is used to obtain a target node identifier according to the media access control address information. Here, 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 frameworks; a forwarding unit, which is used to forward the Ethernet packet to the virtual Ethernet port of the second node through the high-speed interconnection link.

[0009] As an optional solution, the parsing unit includes: a parsing module, which is used to parse the Ethernet packet by using the virtual Ethernet port of the first node to obtain the first source media access control address of the Ethernet packet. Here, the first source media access control address is the physical address of the network device that sends the Ethernet packet and is used to identify the source of the Ethernet packet. The media access control address information includes the first source media access control address.

[0010] As an optional solution, the obtaining unit includes: a matching module, which is used to match the first source media access control address with the media access control addresses corresponding to the virtual Ethernet ports of the respective nodes to obtain the virtual Ethernet port identifier of the second node that is matched.

[0011] As an optional solution, the matching module includes: an updating sub-module, which is used to update the media access control address mapping table. Here, 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.

[0012] As an optional solution, the updating sub-module includes: a broadcasting sub-unit, which is used to periodically broadcast the updated media access control address mapping table to the respective nodes.

[0013] As an optional solution, the updating sub-module includes: a first updating sub-unit, which is used to update the media access control address mapping table according to the packet content of the Ethernet packet when the Ethernet packet belongs to an interconnection control packet; a second updating sub-unit, which is used to update the media access control address mapping table according to the target media access control address of the Ethernet packet when the Ethernet packet belongs to a network application packet. Here, the target media access control address is used to determine the sending target of the Ethernet packet.

[0014] As an alternative solution, the above matching module includes: a matching sub-module, configured to use the above second source media access control address to match with the media access control addresses corresponding to the virtual Ethernet ports of the above respective nodes to obtain a matching result; a discarding sub-module, configured to discard the above target Ethernet packet when the above matching result indicates that the matching of the above second source media access control address fails.

[0015] As an alternative solution, the above parsing unit includes: a connection module, configured to connect to the nodes that have been started in the above storage cluster through the above high-speed interconnection link when the above first node is started, where the started first node is set to send a startup packet to the above started nodes, and periodically send its own node information and heartbeat packets to the above started nodes, so that the above started nodes can sense the existence and status of the above first node.

[0016] As an alternative solution, the above connection module includes: an adding sub-module, configured to add the above started first node to the online node list of the above started second node when the above started second node receives the startup packet sent by the above started first node; a deleting sub-module, configured to delete the above started first node from the online node list when the above started second node does not receive the above started first node's own node information and heartbeat packets within a preset period.

[0017] As an alternative solution, the above parsing unit includes: a configuration module, configured to configure an identity tag for the above Ethernet packet, where the above identity tag is used to distinguish the above Ethernet packet from other packets, and Ethernet packets with the same above identity tag are set to be prohibited from being processed.

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

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

[0020] According to another embodiment of the present application, an electronic device is further provided, including a memory and a processor. 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 method embodiments described above.

[0021] According to another embodiment of the present application, a computer program product is further provided, including a computer program. The computer program is configured to execute the steps in any one of the method embodiments described above when being executed by a processor.

[0022] Through the present application, by using the virtual Ethernet port of the first node, an Ethernet packet received is parsed to obtain corresponding media access control address information. Herein, 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; according to the media access control address information, a target node identifier is obtained, where the target node identifier is the identifier corresponding to the second node, the first node and the second node are distributed in different physical frameworks, and the identifiers corresponding to each node are configured in the same network segment; through the high-speed interconnection link, the Ethernet packet is forwarded to the virtual Ethernet port of the second node.

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

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

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

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

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

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

[0029] Figure 6 is a structural block diagram of a device for interconnecting nodes of a storage cluster according to an embodiment of the present application. Detailed implementation manners

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

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

[0032] The method embodiments provided in the embodiments of the present application can be executed on a server device or a similar computing device. Taking running on a server device as an example, Figure 1 is a hardware structural block diagram of a server device for a method of interconnecting nodes of a storage cluster according to an embodiment of the present application. As Figure 1 shown, the server device may include one or more ( Figure 1 only one is shown in the figure) processors 102 (the processors 102 may include, but are not limited to, processing devices such as a microprocessor MCU or a programmable logic device FPGA) and a memory 104 for storing data. Among them, the above-mentioned server device may further include a transmission device 106 for communication functions and an input / output device 108. Those of ordinary skill in the art can understand that Figure 1 the structure shown in the figure is only schematic and does not limit the structure of the above-mentioned server device. For example, the server device may further include more or fewer components than those shown in Figure 1 the figure, or have a different configuration from that shown in Figure 1 the figure.

[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 method for interconnecting nodes of a storage cluster in the embodiments 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, implements the above-mentioned method. 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 memories, or other non-volatile solid-state memories. In some instances, the memory 104 may further include a memory remotely provided relative to the processor 102, and these remote memories can be connected to the server device through a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an enterprise internal network, 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. Specific examples of the above network may include a wireless network provided by a communication provider of a server device. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, abbreviated 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 frameworks. Figure 2 It is a flowchart of the method for interconnecting nodes of a storage cluster according to an embodiment of the present application, as Figure 2 shown. The process includes the following steps:

[0036] Step S202: Use the virtual Ethernet port of the first node to parse the received Ethernet packet to obtain the corresponding Media Access Control address information. Here, 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 interconnect link, and the representations corresponding to each node are configured in the same network segment;

[0037] In an optional embodiment, the Media Access Control address (abbreviated as MAC address) can be but is not limited to being the unique identifier of a network interface card, and can be but is not limited to being used to identify a device in a layer 2 network.

[0038] In an optional embodiment, the virtual Ethernet port can be but is not limited to referring to a network interface virtually created on a physical node, and can be but is not limited to being used to receive and send network data packets inside the node.

[0039] In an optional embodiment, the high-speed interconnect link can be but is not limited to referring to a link used for high-speed data exchange between multi-control nodes in a storage system, and can be but is not limited to being at least one of, such as, Fibre Channel, non-transparent bridging, and Remote Direct Memory Access.

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

[0041] Step S204: Obtain the target node identifier according to the Media Access Control address information. Here, 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 frameworks;

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

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

[0044] In an alternative embodiment, the Ethernet packet may, but is not limited to, be the basic unit for carrying network data transmission in network communication, and may, but is not limited to, include information such as source address, destination address, type field, and data field.

[0045] In an alternative embodiment, create a virtual Ethernet port on the first node in the storage cluster. 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 packet, it parses the media access control address information in the packet to determine the target node to which the packet should be sent. The target node identifier is configured in the same network segment as the first node, thus ensuring the direct communication ability between nodes at the data link layer. The parsed target node identifier is the unique identifier corresponding to the second node, so that even if the target nodes are distributed in different physical frameworks, the first node can determine the final destination of the packet according to the media access control address information.

[0047] Finally, since the packet forwarding is directly carried out inside the storage cluster, the intervention of external network devices is avoided, thereby reducing the system cost 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 packet to the virtual Ethernet port of the second node, thus making full use of the high bandwidth and low latency characteristics of the high-speed link and effectively improving the efficiency of data transmission between nodes.

[0048] For further illustration, assume there is a storage cluster consisting of four nodes, and the nodes are connected by high-speed interconnection links. 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 packet request sent by the kernel protocol stack, for example, the source media access control address is xx:xx:00:00:00:01 and the destination media access control address is xx:xx:00:00:00:02, it then parses the media access control address information of the packet. By looking up the media access control address mapping table, it determines that the target node identifier is 00000002, which is node 02. Then, it directly forwards the packet to the virtual Ethernet port of node 02 through the high-speed interconnection link, rather than through a physical Ethernet switch. After receiving the packet, node 02 writes it to its virtual Ethernet port and pushes it to the upper-layer application for processing, realizing the interconnection of layer-2 Ethernet services between cluster nodes.

[0049] Through the above steps, use the virtual Ethernet port of the first node to parse the received Ethernet packet to obtain the corresponding media access control address information, where the first node is a node in the storage cluster, and the nodes in the storage cluster are connected to each other through high-speed interconnection links; according to the media access control address information, obtain the target node identifier, where the target node identifier is the identifier corresponding to the second node, the first node and the second node are distributed in different physical frameworks, and the identifiers corresponding to each node are configured in the same network segment; through the high-speed interconnection link, forward the Ethernet packet to the virtual Ethernet port of the second node.

[0050] Specifically, when the first node and the second node are distributed in different physical frameworks, by obtaining the virtual Ethernet port of the first node, parsing the received Ethernet packet to obtain the media access control address information, then obtaining the target node identifier of the second node according to the media access control information, then configuring the node identifiers of the first node and the second node in the same network segment, and then through the high-speed interconnection link, forwarding the Ethernet packet to the virtual Ethernet port of the second node. 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, reducing network complexity, and thus achieving the technical effect of improving data transmission efficiency. Since it can solve the problem of low data transmission efficiency, it thus achieves the technical purpose of making full use of the multi-core processors and parallel computing capabilities of the server, and further achieves the technical effect of improving data transmission efficiency.

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

[0052] As an alternative solution, the virtual Ethernet port of the first node is used to parse the received Ethernet packet to obtain the corresponding media access control address information, including:

[0053] The virtual Ethernet port of the first node is used to parse the Ethernet packet to obtain the first source media access control address of the Ethernet packet. The first source media access control address is the physical address of the network device that sends the Ethernet packet and is used to identify the source of the Ethernet packet. The media access control address information includes the first source media access control address.

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

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

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

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

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

[0059] It should be noted that this is a process of using the first source media access control address to match the virtual Ethernet port identifiers between nodes. When the first node receives an Ethernet packet, it parses the source media access control address information in the packet, 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 packet. If the match is successful, it indicates that the packet comes from a specific second node. This matching process is based on the 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 packets can be transmitted between the correct nodes and improving the communication efficiency and reliability between nodes.

[0060] Through the embodiments of the present application, the first source media access control address is used to match the media access control addresses corresponding to the virtual Ethernet ports of each node, and the virtual Ethernet port identifier of the matched second node is obtained. Thus, the technical effect of ensuring that packets can be transmitted between the correct nodes is achieved, and further the technical effect of improving the communication efficiency and reliability between nodes is realized.

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

[0062] Updating the media access control address mapping table, where the media access control address mapping table is used to record the mapping relationship of 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 packet and parses out the first source media access control address, the node checks 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 embodiments of the present application, the media access control address mapping table is updated, where the media access control address mapping table is used to record the mapping relationship of media access control addresses in the current storage cluster. Thus, the technical effect of reflecting the latest node status is achieved, and further the accuracy and timeliness of communication between nodes in the cluster are ensured.

[0065] As an alternative solution, after updating the Media Access Control (MAC) address mapping table, the method further includes:

[0066] Periodically broadcast the updated MAC address mapping table to each node.

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

[0068] In an alternative embodiment, the periodic broadcast can be a fixed period or a dynamic period. When it is a dynamic period, the period can be dynamically changed according to the frequency of MAC address updates.

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

[0070] It should be noted that in a storage system multi-control node cluster, the efficient forwarding of network packets depends on accurate and real-time MAC address mapping information of each node. Since node states (such as going online and offline) and MAC address information may change over time, there must be a mechanism to ensure that the mapping table information of all nodes conforms to the current cluster state. Periodically broadcasting the updated mapping table is designed to address this requirement. When a node receives a packet from another node and updates its local mapping table, it broadcasts this updated mapping table information to all other nodes in the cluster via a high-speed interconnect link. Nodes receiving this broadcast will update their own mapping tables accordingly, thus ensuring the consistency of mapping information.

[0071] Through the embodiments of the present application, the updated MAC address mapping table is periodically broadcast to each node. Thus, the technical objective that the nodes receiving the periodic broadcast will update their own mapping tables accordingly is achieved, and furthermore, the technical effect of ensuring the consistency of mapping information is realized.

[0072] As an alternative solution, updating the MAC address mapping table includes:

[0073] S1-1, when the Ethernet packet belongs to an interconnection control packet, update the MAC address mapping table according to the packet content of the Ethernet packet;

[0074] S1-2. When the Ethernet packet belongs to a network application packet, update the Media Access Control (MAC) address mapping table according to the destination MAC address of the Ethernet packet, where the destination MAC address is used to determine the sending destination of the Ethernet packet.

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

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

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

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

[0079] For further illustration, in a storage cluster, assume that node 01 receives an interconnection control packet from node 05 for the first time, and the packet contains the node identification and MAC address information of node 05. Node 01 will update its local MAC address mapping table according to this information and add an entry for 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 is consistent.

[0080] Meanwhile, Node 01 receives a network application message with a destination 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 identifier of Node 04. If the mapping does not exist or the information is outdated in the mapping table, 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 the efficiency and accuracy of 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 performance of the multi-control node cluster of the storage system 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. For the processing of network application messages, it ensures that the messages can be accurately and quickly sent to the target node, reduces unnecessary broadcast communication, improves the efficiency of data transmission, and at the same time reduces network load and latency, improving the overall performance of the system.

[0082] Through the embodiments of the present application, when the Ethernet message belongs to an 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 a network application message, the media access control address mapping table is updated according to the destination media access control address of the Ethernet message, where the destination media access control address is used to determine the sending target of the Ethernet message. Thus, the technical purpose of reducing unnecessary broadcast communication is achieved, and further the technical effect of improving the efficiency of data transmission is realized.

[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 addresses corresponding to the virtual Ethernet ports 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, discarding the target Ethernet message.

[0086] In an alternative embodiment, the system needs to first verify the second source media access control address of the packet. This verification process involves matching the received source media access control address with the media access control addresses in the media access control address mapping table maintained by the node to determine the legality and validity of the packet. If the matching result indicates that the second source media access control address does not match any of the media access control addresses in the mapping table, i.e., the matching fails, the system will take measures to discard the target Ethernet packet to prevent packets from unknown nodes 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-control node cluster, ensuring the accurate forwarding and security of layer 2 network packets is crucial. When a node receives a target Ethernet packet, it first parses out the second source media access control address of the packet, and then matches it with the media access control address mapping table maintained locally to check the validity and legality of the source node. This process is carried out at an early stage of packet reception, aiming to quickly identify and exclude illegal or invalid packets, 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 packet is considered legal and will be processed normally or forwarded to the target node. However, if the source media access control address does not match any of the media access control addresses in the mapping table, i.e., the matching fails, this may mean that the packet comes from outside the cluster or a node that has gone offline. In this case, the system will discard the target Ethernet packet to ensure the communication security and stability of the cluster.

[0088] Through the embodiments of the present application, the second source media access control address is used to match the media access control addresses corresponding to the virtual Ethernet ports of each node to obtain a matching result; in the case where the matching result indicates that the second source media access control address fails to match, the target Ethernet packet is discarded. Thus, the technical purpose of discarding the target Ethernet packet is achieved, and furthermore, the technical effect of ensuring the communication security and stability of the cluster is realized.

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

[0090] When the first node starts up, it is connected to the nodes that have already started up in the storage cluster through a high-speed interconnect link. Among them, the started first node is set to send startup packets to the started nodes, and periodically send its own node information and heartbeat packets to the started nodes, so that the started nodes can sense the presence and status of the first node.

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

[0092] In an alternative embodiment, the heartbeat message can be, but is not limited to, a message periodically sent by a node, and can be used, but is not limited to, to confirm the online status of itself to other nodes in the cluster, and is an important means to maintain communication between nodes and monitor the health of the cluster.

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

[0094] It should be noted that in the environment of a multi-control node cluster of a storage system, the startup, joining, or re-online of a node is an important event, which directly affects the scale and performance of the cluster. When the first node starts up for the first time or rejoins the cluster, it needs to establish a connection with the already-started nodes through a high-speed interconnect link, which can not only quickly join the cluster but also synchronize its own node information, including the node identifier and media access control address, etc., to other nodes in the cluster. This process is achieved by sending startup messages, and the startup messages contain the startup status and core information of the first node, enabling the cluster to timely sense the addition of a new node and perform corresponding configuration and adjustment.

[0095] Through the embodiments of the present application, when the first node starts up, it is connected to the already-started nodes in the storage cluster through a high-speed interconnect link. Among them, the started first node is set to send startup messages to the already-started nodes, and periodically send its own node information and heartbeat messages to the already-started nodes, so that the already-started nodes can sense the presence and status of the first node. Thus, the technical purpose of helping other nodes confirm the online status of the first node is achieved, and further the technical effect of improving the fault tolerance and stability of the cluster is realized.

[0096] As an alternative solution, in the case where the already-started nodes include the started second node, after the first node starts up and is connected to the already-started nodes in the storage cluster through a high-speed interconnect link, the method includes:

[0097] S3-1. When the second node after startup receives the startup message sent by the first node after startup, add the first node after startup to the online node list of the second node after startup;

[0098] S3-2. When the second node after startup does not receive the self-node information and heartbeat message sent by the first node after startup within a preset period, delete the first node after startup from the online node list.

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

[0100] In an alternative embodiment, when the second node receives the startup message sent by the first node, it will identify the node identifier and media access control address information of the first node and add them to its own online node list, thereby confirming that the first node has joined the cluster and is in an online state. This operation ensures that the second node can communicate through the virtual Ethernet port of the first node, enhancing the communication ability 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 of the second node, 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 own online node list, update the list status in a timely manner to avoid potential communication errors and data loss. This mechanism is an important part of the dynamic management of the cluster, ensuring that each node can perceive the dynamic changes of the cluster in real time, improving the fault tolerance and response speed of the system.

[0102] It should be noted that in a storage system cluster, the online and offline of nodes are common events, which are crucial for 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 information such as the node identifier and media access control address of the first node. This information will be added to the online node list of the second node, enabling the second node to be aware of the existence of the first node and communicate through the virtual Ethernet port of the first node. This process is the basis for synchronization and initialization between cluster nodes, ensuring that the new node can quickly integrate into the cluster, start providing services, and support the dynamic expansion of the cluster scale. At the same time, to maintain the stable operation of the system, each node also needs to be able to detect and respond to the offline or failure of other nodes in a timely manner. By receiving heartbeat messages within a preset period, a 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 latency and communication errors caused by node state changes in the system, and enhances the overall response ability and data processing efficiency of the cluster.

[0103] Through the embodiments 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 the self-node information and heartbeat message sent by the first node after startup within the preset period, the first node after startup is deleted from the online node list. Thus, the technical effect of reducing network latency and communication errors caused by node state changes in the system is achieved, and further, the technical effect of enhancing the overall response ability and data processing efficiency of the cluster is realized.

[0104] As an optional solution, 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:

[0105] Configuring an identity tag for the Ethernet message, where the identity tag is used to distinguish the 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, an identification information assigned to the Ethernet message, and may be, but is not limited to, used to distinguish the Ethernet message from other messages, and Ethernet messages with the same identity tag are set to be prohibited from being processed.

[0107] In an alternative embodiment, the configuration of the identity tag enables a node to distinguish whether a received packet is an Ethernet packet and whether to process the packet. Once a packet is identified as an Ethernet packet, its identity tag is used to determine whether the packet has been processed. If it is found that the identity tag of the packet is the same as that of a processed packet, it indicates that the packet is a duplicate packet, and the system will set it to a prohibited processing state to avoid duplicate processing of the same packet.

[0108] It should be noted that in the communication environment of a storage system cluster, there are various types of packets, including Ethernet packets, control packets, management packets, etc. These packets carry different types of communication tasks and information. To ensure that nodes can accurately and efficiently process packets, identity tags are configured for Ethernet packets. If a received packet is identified as an Ethernet packet, the node will further check its identity tag. The existence of the identity tag not only helps the node distinguish Ethernet packets from other types of packets but also enables the identification of the uniqueness of the packet, preventing the processing of duplicate packets. This mechanism is based on a key assumption: the identity tag of each Ethernet packet should be unique. Thus, if a node discovers a packet with the same identity tag during the processing, it can determine that the packet is a duplicate transmission and set it to a prohibited processing state, avoiding duplicate processing of the same packet and ensuring the rational utilization of system resources and the smoothness of network communication.

[0109] Through the embodiments of the present application, an identity tag is configured for Ethernet packets, where the identity tag is used to distinguish Ethernet packets from other packets, and Ethernet packets with the same identity tag are set to prohibited processing. Thus, the technical objective of avoiding duplicate processing of the same packet is achieved, and furthermore, the technical effect of ensuring the rational utilization of system resources and the smoothness of network communication is realized.

[0110] As an alternative solution, forwarding an Ethernet packet to a virtual Ethernet port of a second node through a high-speed interconnect link includes:

[0111] S4-1, forwarding the Ethernet packet to the virtual Ethernet port of the second node through a first high-speed interconnect link to obtain a packet transmission result;

[0112] S4-2, in the case where the packet transmission result indicates that the transmission of the Ethernet packet through the first high-speed interconnect link fails, re-forwarding the Ethernet packet to the virtual Ethernet port of the second node through a second high-speed interconnect link.

[0113] In an alternative embodiment, the packet transmission result can, but is not limited to, indicating the result of sending an Ethernet packet to a target node through a high-speed interconnect link.

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

[0115] Furthermore, at this time, the node will immediately switch to another pre-configured high-speed interconnection link for re-sending the packet. This link can be the backup link configured in the cluster to provide continuous communication capabilities when the primary link has problems. By re-sending through the second high-speed interconnection link, the system can avoid communication interruptions caused by a single link failure, ensure that the packet can reach the target node accurately and in a timely manner, and thus guarantee the efficiency of packet transmission.

[0116] Through the embodiment of the present application, the Ethernet packet is forwarded to the virtual Ethernet port of the second node through the first high-speed interconnection link to obtain the packet sending result; in the case where the packet sending result indicates that the first high-speed interconnection link fails to send the Ethernet packet, the Ethernet packet 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 packet can reach the target node accurately and in a timely manner is achieved, and further the technical effect of guaranteeing the efficiency of packet transmission is realized.

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

[0118] In an optional embodiment, this embodiment designs a method for realizing virtual Ethernet layer 2 interconnection based on the high-speed interconnection links of multiple control nodes of the storage system. A unified communication interface is encapsulated based on the existing dedicated high-speed interconnection links of the storage system to shield the hardware link differences; a virtual network card is created in the node based on the virtual network interface technology and exposed to the system application service; the network packet requests received in the virtual network card are listened to, and based on the source address and target address of the packet, the MCA address mapping table is established by combining the cluster node IDs and forwarded to the corresponding cluster node through the high-speed interconnection link to realize the forwarding of layer 2 network packets between cluster nodes.

[0119] In an optional embodiment, through the existing high-speed interconnection links of the storage multi-control cluster system and combining the virtual network interface technology to realize layer 2 Ethernet network interconnection between cluster nodes, it can effectively save the system hardware cost, simplify the complexity of the network deployment of the multi-control cluster system, make full use of the fault tolerance ability of the existing interconnection links, and avoid the inability of the node to access normally due to a single port failure.

[0120] In an optional embodiment, a method for implementing virtual Ethernet layer 2 interconnection is based on the high-speed interconnection link of multi-control nodes in a storage system. The system is schematically shown as Figure 3 shown. There is a storage cluster composed of four controllers. The physical links of the cluster form a dedicated high-speed interconnection link of the cluster through high-speed interconnection links to achieve high-speed interconnection between Node 01, Node 02, Node 03, and Node 04. There are also physical network interface 0 and physical network interface 1, as well as virtual network interfaces. There is a virtual network device file in the virtual network, and they provide services to upper-layer applications through the kernel protocol stack. This embodiment is mainly reflected in the virtual network management module of the cluster. By obtaining the packets of the virtual network interface, and then forwarding the packets to other nodes in the cluster through the high-speed interconnection link, the packets sent by other nodes in the cluster will be sent to the Ethernet application / service through the virtual network interface.

[0121] In an optional embodiment, a method for implementing virtual Ethernet layer 2 interconnection is based on the high-speed interconnection link of multi-control nodes in a storage system. The main components of the system are as Figure 4 shown, and it includes a total of 7 important parts, specifically as follows:

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

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

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

[0125] 4) Online node identity (ID) maintenance, responsible for recording the information of all online nodes in the network to confirm the validity of the nodes sending the packets;

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

[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 the key information during the operation of each module.

[0129] In an optional embodiment, a method for implementing virtual Ethernet layer 2 interconnection is based on the high-speed interconnection link of multi-control nodes in a storage system. The main process of system packet processing includes 3 processing threads, specifically as follows:

[0130] 1) Virtual network interface packet listening thread. This thread is responsible for creating a virtual network interface and listening for network packets received by this interface. Once a network packet is received, it will parse its source MAC address and destination MAC address. The received network packets mainly come from the upper-layer application services of this node. It records the source MAC address and node ID, updates the mapping table of MAC address and node ID, queries the MAC address mapping table according to the destination MAC address to find the target node ID. If the node ID cannot be found in the MAC address mapping table, the packet will be broadcast to all nodes in the cluster, and the kernel protocol stack of the corresponding node will filter the packet.

[0131] 2) High-speed dedicated interconnection link message receiving and listening thread. It is responsible for listening for virtual network packets sent by other nodes to this machine. The packet header will encapsulate our custom header information to confirm whether it is a network message sent by the application or a special packet message between clusters. If it is a special packet between clusters, it is mainly used to notify the event of a node going online. Once it is confirmed that a node goes online, the node ID list will be refreshed. At the same time, nodes will periodically send keep-alive packets through the high-speed interconnection channel. Once the packet is not received after 3 timeouts, the node will be removed from the online ID list. After receiving a packet sent by other nodes through the high-speed interconnection link, it will be put into the FIFO queue and trigger the message processing thread to process the message.

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

[0133] For further illustration by example, optionally as Figure 5 shown, the specific steps are as follows:

[0134] 1) In the virtual network packet listening thread, first create a virtual network interface, then listen for the virtual network device. When a network packet message is received, it will block and wait for the network packet, then read eth_virtual to obtain the network packet content into the send buffer, then parse the source MAC address and destination MAC address from the network packet, update the MAC address table according to the source MAC address and node ID, confirm whether the destination MAC address is legal, if illegal, directly return. Then confirm whether the destination MAC address is a broadcast address. If it is a broadcast address, send it to all nodes. Query the MAC address table according to the destination MAC address, judge the target node ID, send it to different nodes through the high-speed dedicated interconnection link message interface, and return to the stage of blocking and waiting for network packets.

[0135] 2) In the high-speed dedicated interconnection link message receiving monitoring thread, first register the message reception callback function, and trigger the callback processing after the message is received. Put the message into the fifo. If the fifo is full, directly discard it, record the log, and then judge the message type. If it is a control message, update the user ID list and return to the callback processing stage after the message is received. If it is an ordinary network message, parse the source MAC address of the message, update the MAC address table together with the node ID of the sending node, then add it to the receiving fifo, then trigger the receiving processing thread, and return to the callback processing stage after the message is received.

[0136] 3) In the high-speed dedicated interconnection link message receiving processing thread, in the initial stage of being blocked by the semaphore and waiting for the thread to be awakened, after the receiving processing thread is triggered in the high-speed dedicated interconnection link message receiving monitoring thread, read the receiving queue of the high-speed interconnection channel, obtain the message forwarded by the node, then write the message to the virtual_eth interface and send it to the virtual network card. Then the message enters the kernel protocol stack, and the upper-layer network service processes the message. Then the response message is sent back to the virtual network port and returns to the stage of being blocked by the semaphore and waiting for the thread to be awakened. If the message is actively initiated by the network application, it will enter the stage of receiving network message in the virtual network message monitoring thread.

[0137] It should be noted that the method for implementing 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) Each node of the storage multi-control cluster is connected together through dedicated high-speed interconnection links such as FC, NTB, and RDMA. Any one or a combination of the three types of connections can be selected.

[0139] (2) Each node of the storage multi-control cluster configures unique node ID information. After establishing the 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 message sending and receiving interfaces of the FC, NTB, and RDMA message sending and receiving interfaces of the storage multi-control cluster uniformly encapsulate the message sending and receiving interfaces. Other modules do not need to pay attention to the protocol type when sending messages. Once the message sending fails, the message will be automatically sent through other links. At the same time, each message will be marked with a unique tag. 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 process of creating and configuring virtual Ethernet ports. During the creation process, the MAC address encoding of the virtual network interface contains the unique ID information of the node, which facilitates verifying the correctness of packet forwarding processing. All IP configurations are in the same network segment and can be interconnected through a layer 2 network. For example, in a four-control cluster, if the ID information of node 1 is 00000001, then the MAC address of the virtual network interface of node1 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, then the MAC address of the virtual network interface of node2 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, then the MAC address of the virtual network interface 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, then the MAC address of the virtual network interface of node 4 is xx:xx:00:00:00:04, and the IP configuration is 192.168.3.4.

[0142] (5) After the node starts, the high-speed interconnection link will complete the hardware connection and report the connection completion. The node will periodically send its own information together with the keep-alive packets to all the nodes connected to it, so that other nodes can automatically sense the online information of other nodes in the cluster. After receiving the node online packet, update the node ID to the online node ID list. If no message is received after 3 timeouts, delete the node ID from the list.

[0143] (6) When the upper-layer Ethernet service or application initiates an Ethernet connection request, if the target IP is a virtual network interface, the virtual network packet listening process will read the network packet request sent by the kernel protocol stack from the virtual network interface. The initial packet should be an address resolution packet such as ARP.

[0144] (7) For layer 2 network packets, this embodiment will determine whether the target of the packet sending is a certain node in the cluster or all nodes based on the target MAC address. If the target address is a broadcast address, this embodiment will send the packet to all nodes based on the online node ID list. If the target address matches a specific node ID, it will only be sent to the target node.

[0145] (8) After receiving the packet of 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 it does not match, the packet should be a forwarded packet. To avoid network storms, directly discard the unmatched packet; if it matches, update the MAC address and node ID mapping table.

[0146] After each node updates its own node ID list and MAC address - node ID mapping table, it periodically broadcasts this information to other nodes. Eventually, after the network stabilizes, all node information is consistent.

[0147] (10)When receiving a message sent by other nodes on the storage high - speed interconnection link, in this embodiment, it is first determined whether it is an ordinary network application message or an interconnection - type control message. If it is an interconnection - type control message, update the MAC address mapping table and node ID list according to the message content; if it is a network application message, resolve the destination MAC address, and together with the node ID of the node sending the message, update the MAC address mapping table, and at the same time send the message to the virtual network port to promote the upper - layer application processing.

[0148] Through the embodiments of the present application, by using the existing high - speed interconnection link of the storage system and based on the virtual network interface technology, the Ethernet network interconnection between multi - controller storage node clusters is realized. By software, the forwarding of layer - two network messages between cluster nodes can be completed without adding additional network hardware devices, saving costs and making the deployment simpler and more reliable.

[0149] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software plus a necessary general - purpose hardware platform. Of course, it can also be implemented 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, in essence, or the part that contributes to the prior art can be embodied in the form of a software product or a program product. The computer software product or program product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disc), and includes several instructions to enable a terminal device (which can be a mobile phone, a computer, a server, or a network device, etc.) to execute the methods of the various embodiments of the present application.

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

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

[0152] The parsing unit 602 is configured to parse the received Ethernet packet by using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, where the first node is a node in the storage cluster, and each node in the storage cluster is interconnected through a high-speed interconnection link, and the identifiers corresponding to the nodes are configured in the same network segment; the obtaining unit 604 is configured to obtain the target node identifier according to the media access control address information, where 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 frameworks; the forwarding unit 606 is configured to forward the Ethernet packet to the virtual Ethernet port of the second node through the high-speed interconnection link.

[0153] For specific embodiments, reference can be made to the examples shown in the node interconnection method of the above storage cluster, and details are not described herein again.

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

[0155] For specific embodiments, reference can be made to the examples shown in the node interconnection method of the above storage cluster, and details are not described herein again.

[0156] As an optional solution, the obtaining unit 604 includes: a matching module configured to match the first source media access control address with the media access control addresses corresponding to the virtual Ethernet ports of the nodes to obtain the virtual Ethernet port identifier of the second node that is matched.

[0157] For specific embodiments, reference can be made to the examples shown in the node interconnection method of the above storage cluster, and details are not described herein again.

[0158] As an optional solution, the matching module includes: an updating sub-module configured to update the media access control address mapping table, where 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.

[0159] For specific embodiments, reference can be made to the examples shown in the node interconnection method of the above storage cluster, and details are not described herein again.

[0160] As an alternative solution, the above update sub-module includes: a broadcast sub-unit, configured 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 node interconnection method of the storage cluster, and details are not described herein again in this example.

[0162] As an alternative solution, the above update sub-module includes: a first update sub-unit, configured to update the media access control address mapping table according to the content of the above Ethernet packet when the above Ethernet packet belongs to an interconnection control packet; a second update sub-unit, configured to update the media access control address mapping table according to the destination media access control address of the above Ethernet packet when the above Ethernet packet belongs to a network application packet, where the destination media access control address is used to determine the sending destination of the above Ethernet packet.

[0163] For specific embodiments, reference may be made to the examples shown in the above node interconnection method of the storage cluster, and details are not described herein again in this example.

[0164] As an alternative solution, the above matching module includes: a matching sub-module, configured to match the above second source media access control address with the media access control addresses corresponding to the virtual Ethernet ports of each of the above nodes to obtain a matching result; a discard sub-module, configured to discard the above target Ethernet packet when the matching result indicates that the matching of the above second source media access control address fails.

[0165] For specific embodiments, reference may be made to the examples shown in the above node interconnection method of the storage cluster, and details are not described herein again in this example.

[0166] As an alternative solution, the above parsing unit 602 includes: a connection module, configured to connect to the nodes that have been started in the above storage cluster through the above high-speed interconnection link when the above first node is started, where the started first node is set to send a start packet to the above started nodes, and periodically send its own node information and heartbeat packets to the above started nodes, so that the above started nodes can sense the existence and status of the above first node.

[0167] For specific embodiments, reference may be made to the examples shown in the above node interconnection method of the storage cluster, and details are not described herein again in this example.

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

[0169] For specific embodiments, reference may be made to the examples shown in the above method for interconnecting nodes of the storage cluster, and details are not described herein again in this example.

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

[0171] For specific embodiments, reference may be made to the examples shown in the above method for interconnecting nodes of the storage cluster, and details are not described herein again in this example.

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

[0173] For specific embodiments, reference may be made to the examples shown in the above method for interconnecting nodes of the storage cluster, and details are not described herein again in this example.

[0174] It should be noted that the above various 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 thereto: the above virtual devices are all located in the same processor; or, the above various virtual devices are respectively located in different processors in any combination form.

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

[0176] In an exemplary embodiment, the above computer-readable storage medium may include, but is not limited to: various media that can store computer programs, such as USB flash drives, read-only memories (ROMs), random access memories (RAMs), mobile hard disks, magnetic disks, or optical discs.

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

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

[0179] Specific examples in this embodiment may refer to the examples described in the above embodiments and exemplary embodiments, and will not be repeated here.

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

[0181] Specific examples in this embodiment may refer to the examples described in the above embodiments and exemplary embodiments, and will not be repeated here.

[0182] Obviously, those skilled in the art should understand that the above virtual devices or steps of the present application can be implemented by a general-purpose 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 program codes executable by the computing device. Thus, 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 here, or they can be separately made into individual integrated circuit modules, or multiple modules or steps among them can be made into a single integrated circuit module to implement. In this way, the present application is not limited to any specific combination of hardware and software.

[0183] The above are only the preferred embodiments of the present application and are not used to limit the present application. For those skilled in the art, the present application can have various changes and modifications. Any modification, equivalent replacement, improvement, etc. made within the principle of the present application shall be included in the protection scope of the present application.

Claims

1. A node interconnection method for a storage cluster, characterized in that The storage cluster consists of nodes distributed in multiple physical frameworks, and the method includes: Using the virtual Ethernet port of the first node to parse the received Ethernet packet to obtain the corresponding media access control address information, including: using the virtual Ethernet port of the first node to parse the Ethernet packet to obtain the first source media access control address, where the first source media access control address is the physical address of the network device that sent the Ethernet packet and is used to identify the source of the Ethernet packet; the first node is a node in the storage cluster, and each node in the storage cluster is interconnected through a high-speed interconnection link, and the identifiers corresponding to each node are configured in the same network segment; Using the first source media access control address to match the media access control addresses corresponding to the virtual Ethernet ports of each node to obtain the virtual Ethernet port identifier of the second node that is matched, where the first node and the second node are distributed in different physical frameworks; In the case where the Ethernet packet belongs to an interconnection control packet, updating the media access control address mapping table according to the content of the Ethernet packet, where the media access control address information includes the first source media access control address; In the case where the Ethernet packet belongs to a network application packet, updating the media access control address mapping table according to the destination media access control address of the Ethernet packet, where the destination media access control address is used to determine the sending target of the Ethernet packet, and 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; Forwarding the Ethernet packet to the virtual Ethernet port of the second node through the high-speed interconnection link.

2. The method according to claim 1, wherein After updating the media access control address mapping table, the method further includes: Periodically broadcasting the updated media access control address mapping table to each node.

3. The method according to claim 1, characterized in that, In the case of obtaining the second source media access control address corresponding to the target Ethernet packet, the method further includes: Using the second source media access control address to match the media access control addresses corresponding to the virtual Ethernet ports of each node to obtain a matching result; In the case where the matching result indicates that the second source media access control address fails to match, discarding the target Ethernet packet.

4. The method according to claim 1, wherein Before using the virtual Ethernet port of the first node to parse the received Ethernet packet to obtain the corresponding media access control address information, the method further includes: When the first node starts up, connecting to the nodes that have started up in the storage cluster through the high-speed interconnection link, where the first node after startup is set to send startup packets to the nodes that have started up and periodically send its own node information and heartbeat packets to the nodes that have started up, so that the nodes that have started up can sense the existence and status of the first node.

5. The method according to claim 4, wherein When the started nodes include the second node after startup, after the first node is started and connected to the started nodes in the storage cluster through the high-speed interconnection link, the method includes: When the second node after startup receives the startup message sent by the first node after startup, adding the first node after startup to the online node list of the second node after startup; When the second node after startup does not receive the self-node information and heartbeat message sent by the first node after startup within a preset period, deleting the first node after startup from the online node list.

6. The method according to any one of claims 1 to 5, characterized in that, Before parsing the received Ethernet packet using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, the method further includes: Configuring an identity tag for the Ethernet packet, where the identity tag is used to distinguish the Ethernet packet from other packets, and Ethernet packets with the same identity tag are set to be prohibited from being processed.

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

8. A node interconnection device for a storage cluster, characterized in that, The storage cluster is composed of nodes distributed in multiple physical frameworks, and the device includes: A parsing unit for parsing the received Ethernet packet using the virtual Ethernet port of the first node to obtain the corresponding media access control address information, where the first node is a node in the storage cluster, each node in the storage cluster is interconnected through a high-speed interconnection link, and the identifiers corresponding to each node are configured in the same network segment; A matching module for matching the first source media access control address with the media access control addresses corresponding to the virtual Ethernet ports of each node to obtain the virtual Ethernet port identifier of the second node that is matched, where the first node and the second node are distributed in different physical frameworks; A first update subunit for updating the media access control address mapping table according to the packet content of the Ethernet packet when the Ethernet packet belongs to an interconnection control packet, where the media access control address information includes the first source media access control address; A second update subunit for updating the media access control address mapping table according to the destination media access control address of the Ethernet packet when the Ethernet packet belongs to a network application packet, where the destination media access control address is used to determine the sending target of the Ethernet packet, and 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; A forwarding unit, configured to forward the Ethernet packet to a virtual Ethernet port of the second node through the high-speed interconnect link; The parsing unit includes: a parsing module, configured to parse the Ethernet packet by using the virtual Ethernet port of the first node to obtain the first source media access control address, where the first source media access control address is the physical address of the network device that sends the Ethernet packet and is used to identify the source of the Ethernet packet.

9. A computer-readable storage medium, characterized in that A computer program is stored in the computer-readable storage medium, where when the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

10. An electronic device, including a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.

11. A computer program product, including 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 7 are implemented.

Citation Information

Patent Citations

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

    CN114050998A

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

    CN116208658A