NVMe storage network joining methods, apparatus and communication equipment
The mDNS service module enables automatic discovery and dynamic adjustment of NVMe storage networks, solving the problems of manual configuration and dependence on central control nodes in existing technologies, and improving the intelligence and system stability of NVMe storage networks.
Patent Information
- Application Number
- CN202411668856.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-21
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2044-11-21
AI Technical Summary
The existing methods for adding NVMe storage networks rely on manual configuration or a central control node, which leads to high complexity, error-proneness, and increased costs, making it difficult to adapt to the dynamic changes in large-scale storage networks.
The mDNS service module is used to realize the automatic broadcasting and updating of device information. Through the dynamic management of the device information table and the intelligent adjustment of configuration parameters, the automatic discovery and networking of devices are realized, and dynamic joining and leaving are supported, reducing the dependence on administrators and central control nodes.
It improves the intelligence of NVMe storage network joining, simplifies the configuration process, enhances system scalability and stability, supports dynamic changes in devices, and reduces the risk of single points of failure.
Smart Images

Figure CN119496687B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to an NVMe storage network joining method, apparatus, communication device, computer-readable storage medium, and computer program product. Background Technology
[0002] With the development of communication technology, a storage network technology has emerged that uses multiple NVMe storage devices connected via the NVMe-oF transmission protocol. This network can significantly improve storage performance and reduce latency between devices. Traditionally, NVMe storage devices connect and communicate using two main methods: one is a static network topology configuration where network topology is planned in advance, connection paths between storage devices are determined, and then network parameters such as IP addresses, subnet masks, and gateways are manually configured. Adding network nodes requires manual intervention by the administrator. The other method involves centralized management and configuration of storage devices through a central control node. This primarily includes configuring network parameters and operating policies through a centralized management platform, and discovering storage devices in the network using SNMP (Simple Network Management Protocol) or other protocols to enable network integration.
[0003] However, among the aforementioned methods for connecting and communicating NVMe storage devices, the administrator-configured method requires detailed network planning and configuration, which is not only complex and time-consuming but also prone to human error. Furthermore, the complexity and difficulty of manual configuration increase significantly in large-scale storage networks. The centralized management and configuration method via a central control node relies on proprietary protocols and software, increasing system complexity and cost. It also requires management and configuration by the central control node, and its failure can exacerbate the problem. Therefore, current methods for joining NVMe storage networks are not intelligent enough. Summary of the Invention
[0004] Therefore, it is necessary to provide an NVMe storage network joining method, apparatus, communication device, computer-readable storage medium, and computer program product that can improve the intelligence of NVMe storage network joining methods in response to the above-mentioned technical problems.
[0005] In a first aspect, this application provides an NVMe storage network joining method, applied to a first device, comprising:
[0006] In response to a device join request for the first device to join the target NVMe storage network, obtain the device information of the first device;
[0007] The first device broadcasts a first mDNS broadcast message carrying the device information to a second device that has joined the target NVMe storage network via the mDNS service module on the first device. The second device, upon receiving the first mDNS broadcast message, updates its device information table based on the device information and establishes a communication connection with the first device if the device information meets preset conditions, so that the first device joins the target NVMe storage network.
[0008] In one embodiment, after the first device joins the target NVMe storage network, the method further includes: in response to a configuration parameter adjustment request for adjusting configuration parameters, receiving second mDNS broadcast information carrying real-time status parameters of each of the second devices; extracting the real-time status parameters of each of the second devices from the second mDNS broadcast information, and generating a configuration parameter adjustment strategy for the first device based on the real-time status parameters of the first device; broadcasting third mDNS broadcast information carrying the configuration parameter adjustment strategy to each of the second devices through the mDNS service module, and updating the configuration parameters of the first device based on the configuration parameter adjustment strategy.
[0009] In one embodiment, after the first device joins the target NVMe storage network, the method further includes: if the fourth mDNS broadcast information carrying the heartbeat signal of the target second device is interrupted, updating the device information table of the first device according to the device information of the target second device; disconnecting the device connection with the target second device, and initiating the configuration parameter adjustment request for adjusting configuration parameters.
[0010] In one embodiment, the NVMe storage network joining method may further include: obtaining real-time status parameters of the first device, and broadcasting a fifth mDNS broadcast message carrying the real-time status parameters of the first device to each of the second devices through the mDNS service module; the fifth mDNS broadcast message is used by each of the second devices to update the configuration parameters of each of the second devices; broadcasting a sixth mDNS broadcast message carrying the heartbeat signal of the first device to each of the second devices through the mDNS service module; the sixth mDNS broadcast message is used by each of the second devices to disconnect the device connection with the first device when the sixth mDNS broadcast message is detected to be interrupted.
[0011] In one embodiment, the target NVMe storage network is a multi-region NVMe-oF storage network. The first device is a gateway device for a first region, used to manage NVMe devices in the first region. Each second device is a gateway device for a second region other than the first region, used to manage NVMe devices in each second region. The NVMe storage network joining method may further include: receiving a seventh mDNS broadcast message broadcast by each second device; the seventh mDNS broadcast message carries network status information of each NVMe device in each second region; obtaining network status information of each NVMe device in the target NVMe storage network based on the network status information of each NVMe device in each second region carried in the seventh mDNS broadcast message; obtaining a global configuration adjustment strategy for the first region using the network status information of each NVMe device in the target NVMe storage network; and broadcasting an eighth mDNS broadcast message carrying the global configuration adjustment strategy of the first region to each NVMe device in the first region through the mDNS service module, so that each NVMe device in the first region adjusts its configuration parameters based on the global configuration adjustment strategy of the first region.
[0012] In one embodiment, the NVMe storage network joining method may further include: obtaining network status information of each NVMe device in the first region; broadcasting a ninth mDNS broadcast message carrying the network status information of each NVMe device in the first region to each of the second devices through the mDNS service module; and each of the second devices being used to obtain a global configuration adjustment strategy for each of the second regions based on the ninth mDNS broadcast message.
[0013] Secondly, this application also provides an NVMe storage network joining method, applied to a second device, comprising:
[0014] Upon detecting the first mDNS broadcast information, the device information table of the second device is updated based on the device information carried in the first mDNS broadcast information; the device information is obtained by the first device in response to a device join request for the first device to join the target NVMe storage network, and the first mDNS broadcast information is used by the first device to broadcast the device information to the second device; the second device is a device that has already joined the target NVMe storage network.
[0015] If the device information meets the preset conditions, a communication connection is established with the first device so that the first device can join the target NVMe storage network.
[0016] Thirdly, this application also provides an NVMe storage network joining device, applied to a first device, comprising:
[0017] The device information acquisition module is used to acquire device information of the first device in response to a device join request for the first device to join the target NVMe storage network.
[0018] The first information broadcasting module is used to broadcast first mDNS broadcast information carrying the device information to a second device that has joined the target NVMe storage network through the mDNS service module on the first device; the second device is used to update the device information table of the second device based on the device information when it hears the first mDNS broadcast information, and to establish a communication connection with the first device when the device information meets preset conditions, so that the first device joins the target NVMe storage network.
[0019] Fourthly, this application also provides an NVMe storage network joining device, applied to a second device, comprising:
[0020] The device information table update module is used to update the device information table of the second device based on the device information carried in the first mDNS broadcast information when the first mDNS broadcast information is detected; the device information is obtained by the first device in response to a device join request for the first device to join the target NVMe storage network; the first mDNS broadcast information is used by the first device to broadcast the device information to the second device; the second device is a device that has already joined the target NVMe storage network.
[0021] A communication connection building module is used to build a communication connection with the first device when the device information meets preset conditions, so that the first device can join the target NVMe storage network.
[0022] Fifthly, this application also provides a communication device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps of the method described in any one of the embodiments of the first or second aspect.
[0023] In a sixth aspect, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method described in any one of the embodiments of the first or second aspect.
[0024] In a seventh aspect, this application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the method described in any one of the embodiments of the first or second aspect.
[0025] The aforementioned NVMe storage network joining method, apparatus, communication device, computer-readable storage medium, and computer program product, in response to a device joining request for a first device to join a target NVMe storage network, acquire device information of the first device; broadcast first mDNS broadcast information carrying device information to a second device that has already joined the target NVMe storage network through the mDNS service module mounted on the first device; the second device, upon receiving the first mDNS broadcast information, updates its device information table based on the device information, and establishes a communication connection with the first device if the device information meets preset conditions, thereby enabling the first device to join the target NVMe storage network. In this embodiment, when the first device responds to a device joining request to join the target NVMe storage network, the first device can obtain its device information as device information. Then, through the mDNS service module on the first device, it can broadcast first mDNS broadcast information carrying device information to the second devices that have already joined the target NVMe storage network. Each second device can update the corresponding device information table using the device information when it hears the broadcast information. When the device information meets the preset device joining conditions, each second device can establish a communication connection with the first device, thereby completing the joining of the first device to the target NVMe storage network. Compared with the prior art, which requires the administrator to manually configure the first device to join the target NVMe storage network or requires the central control node to discover the first device to complete the device joining, the NVMe storage network joining method provided in this application does not require manual configuration by the administrator or centralized control through a central control node. Therefore, it can improve the intelligence of the NVMe storage network joining method. Attached Figure Description
[0026] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the description of the embodiments of this application or related technologies will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0027] Figure 1 This is a flowchart illustrating the NVMe storage network joining method in one embodiment;
[0028] Figure 2 This is a schematic diagram of the process for updating the configuration parameters of the first device in one embodiment;
[0029] Figure 3 This is a flowchart illustrating the process of adjusting the configuration parameters of each NVMe device in the first region in one embodiment;
[0030] Figure 4 A flowchart illustrating the NVMe storage network joining method in another embodiment;
[0031] Figure 5 This is a flowchart illustrating an automatic discovery and networking method for NVMe storage devices in one embodiment;
[0032] Figure 6 This is a structural block diagram of an NVMe storage network joining device in one embodiment;
[0033] Figure 7 A structural block diagram of an NVMe storage network addition device in another embodiment;
[0034] Figure 8 This is an internal structural diagram of a communication device in one embodiment. Detailed Implementation
[0035] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0036] In one embodiment, such as Figure 1 As shown, a method for joining an NVMe storage network is provided. This embodiment illustrates the application of this method to a first device. In this embodiment, the method includes the following steps:
[0037] Step S101: In response to the device join request for the first device to join the target NVMe storage network, obtain the device information of the first device.
[0038] The first device can refer to the terminal device that is preparing to join the target NVMe storage network, such as an NVMe device. The target NVMe storage network refers to the NVMe storage network that the first device needs to join. The device join request is triggered by the user to the first device, which is used to make the first device join the target NVMe storage network. The device information refers to the service information of the first device itself, which may include information such as IP address, port number, device ID, and available storage capacity.
[0039] Specifically, when the first device needs to join the target NVMe storage network, the user can send a device join request to the first device to enable the first device to join the target NVMe storage network. At this time, the first device can respond to the request to obtain the device information of the first device.
[0040] In step S102, the first device broadcasts a first mDNS broadcast message carrying device information to the second device that has joined the target NVMe storage network through the mDNS service module on the first device. The second device is used to update the device information table of the second device based on the device information when it hears the first mDNS broadcast message, and to establish a communication connection with the first device when the device information meets the preset conditions, so that the first device joins the target NVMe storage network.
[0041] The mDNS service module refers to the module used to provide mDNS services. The second device refers to the device that has joined the target NVMe storage network, such as an NVMe device that has joined the target NVMe storage network. The device information table refers to the information table carried by the second device used to record the device information of each device in the target NVMe storage network.
[0042] Specifically, after obtaining its corresponding device information, the first device can use the mDNS service module on the first device to broadcast first mDNS broadcast information carrying the device information of the first device to each second device that has joined the target NVMe storage network via the mDNS protocol.
[0043] If the second device subsequently detects the first mDNS broadcast information, it can use the device information of the first device carried in the first mDNS broadcast information to update its local device information table, thereby recording the detailed information of the newly added first device. Furthermore, the second device can determine whether the device information of the newly added first device meets the pre-defined device joining conditions. If it does, a communication connection can be established with the newly added first device. This method enables communication connections between the first device and all second devices already joined in the NVMe storage network, thus completing the joining of the first device to the target NVMe storage network.
[0044] In the above-described NVMe storage network joining method, in response to a device joining request for a first device to join a target NVMe storage network, device information of the first device is obtained; through the mDNS service module on the first device, a first mDNS broadcast message carrying device information is broadcast to a second device that has already joined the target NVMe storage network; the second device is used to update its device information table based on the device information when it hears the first mDNS broadcast message, and to establish a communication connection with the first device when the device information meets preset conditions, so that the first device joins the target NVMe storage network. In this embodiment, when the first device responds to a device joining request to join the target NVMe storage network, the first device can obtain its device information as device information. Then, through the mDNS service module on the first device, it can broadcast first mDNS broadcast information carrying device information to the second devices that have already joined the target NVMe storage network. Each second device can update the corresponding device information table using the device information when it hears the broadcast information. When the device information meets the preset device joining conditions, each second device can establish a communication connection with the first device, thereby completing the joining of the first device to the target NVMe storage network. Compared with the prior art, which requires the administrator to manually configure the first device to join the target NVMe storage network or requires the central control node to discover the first device to complete the device joining, the NVMe storage network joining method provided in this application does not require manual configuration by the administrator or centralized control through a central control node. Therefore, it can improve the intelligence of the NVMe storage network joining method.
[0045] In one embodiment, such as Figure 2 As shown, after the first device joins the target NVMe storage network, it may also include:
[0046] Step S201: In response to a configuration parameter adjustment request for adjusting configuration parameters, receive second mDNS broadcast information carrying real-time status parameters of each second device broadcast by each second device.
[0047] The configuration parameter adjustment request refers to the request from the first device to adjust its network configuration parameters. After the first device joins the target NVMe storage network, dynamic adjustment of configuration parameters can also be achieved. For example, the request can be triggered when other new devices join or leave the target NVMe storage network. These configuration parameters can include NVMe IO queue depth and bandwidth allocation optimization, etc. Real-time status parameters refer to the real-time network status data of each second device, such as available storage capacity, IOPS, throughput, bandwidth, and latency. These real-time status parameters can be carried through second mDNS broadcast information. For example, the mDNS service module on the second device can broadcast the collected real-time status parameters via the mDNS protocol, allowing the first device to receive the second mDNS broadcast information.
[0048] Specifically, when dynamic adjustment of configuration parameters is required, the first device can also initiate a configuration parameter adjustment request to adjust the configuration parameters. The first device can then respond to the request and listen for the second mDNS broadcast information broadcast by each second device through the mDNS protocol, which carries the real-time status parameters of each second device.
[0049] Step S202: Extract the real-time status parameters of each second device from the second mDNS broadcast information, and generate a configuration parameter adjustment strategy for the first device based on the real-time status parameters of the first device.
[0050] The configuration parameter adjustment strategy refers to the strategy used to adjust the configuration parameters of the first device. After the first device receives the second mDNS broadcast information broadcast by each second device, it can extract the corresponding real-time status parameters of each second device from each second mDNS broadcast information, and it can also obtain the real-time status parameters of the first device itself. In this way, the real-time status parameters of each device in the target NVMe storage network are summarized. Then, the first device can generate a configuration parameter adjustment strategy for itself based on the summarized real-time status parameters of each device.
[0051] Step S203: Broadcast third mDNS broadcast information carrying configuration parameter adjustment policies to each second device through the mDNS service module, and update the configuration parameters of the first device based on the configuration parameter adjustment policies.
[0052] The third mDNS broadcast message is used to carry the configuration parameter adjustment policy of the first device. After the configuration parameter adjustment policy is generated, it is also necessary to broadcast the configuration parameter adjustment policy to each second device in the target NVMe storage network. It can also be broadcast through the mDNS protocol.
[0053] Specifically, after the first device generates the configuration parameter adjustment policy, it can also use the mDNS service module to broadcast third mDNS broadcast information carrying the configuration parameter adjustment policy to each second device based on the mDNS protocol, so as to realize the sharing of the configuration parameter adjustment policy. Afterwards, the configuration parameters of the first device can be updated using the configuration parameter adjustment policy, thereby completing the dynamic adjustment of the configuration parameters.
[0054] In this embodiment, after the first device joins the target NVMe storage network, it can also receive second mDNS broadcast information carrying real-time status parameters broadcast by each second device to integrate the real-time status parameters of each device in the target NVMe storage network, thereby generating a configuration parameter adjustment strategy for the first device and updating the configuration parameters. This method enables dynamic adjustment of the storage network, adapting to dynamic changes in the network environment and storage requirements, and further improving the communication stability of the NVMe storage network.
[0055] Additionally, after the first device joins the target NVMe storage network, the process may further include: if the fourth mDNS broadcast information carrying the heartbeat signal of the target second device is interrupted, updating the device information table of the first device according to the device information of the target second device; disconnecting the device connection with the target second device; and initiating a configuration parameter adjustment request for adjusting configuration parameters.
[0056] The fourth mDNS broadcast message is used to carry a heartbeat signal, which is used to report the online status of the device. If the heartbeat signal broadcast by a device is interrupted, i.e., the fourth mDNS broadcast message is interrupted, it indicates that the device may have left the target NVMe storage network or has failed. In this case, other devices need to disconnect from the device.
[0057] Specifically, after the first device joins the target NVMe storage network, it can periodically detect the fourth mDNS broadcast information carrying heartbeat signals broadcast by each second device in the target NVMe storage network. If the fourth mDNS broadcast information of one of the second devices, i.e., the target second device, is interrupted, the device information table of the first device can be updated using the device information of the target second device. For example, the device information table of the first device can be deleted from the device information table of the first device. Afterwards, the first device can further disconnect from the target second device and initiate a configuration parameter adjustment request to perform a dynamic adjustment process, updating the configuration parameters according to the new adjustment strategy. In this way, if one device in the target NVMe storage network exits or fails, other devices can also disconnect and update the network configuration in real time, ensuring that the exit of a storage device does not affect the overall stability and performance of the network, thus improving the scalability and stability of the system.
[0058] In this embodiment, when a target second device leaves the target NVMe storage network or fails, other devices can also disconnect from the target second device and update the network configuration in real time, ensuring that the exit of the storage device will not affect the overall stability and performance of the network, thus improving the scalability and stability of the system.
[0059] Furthermore, the NVMe storage network joining method may also include: obtaining the real-time status parameters of the first device, and broadcasting a fifth mDNS broadcast message carrying the real-time status parameters of the first device to each second device through the mDNS service module; the fifth mDNS broadcast message is used by each second device to update the configuration parameters of each second device; broadcasting a sixth mDNS broadcast message carrying the heartbeat signal of the first device to each second device through the mDNS service module; the sixth mDNS broadcast message is used by each second device to disconnect the device connection with the first device when the sixth mDNS broadcast message is detected to be interrupted.
[0060] The fifth mDNS broadcast message carries the real-time status parameters of the first device. Similar to the second device broadcasting the second mDNS broadcast message, after the first device joins the NVMe storage network, it also needs to broadcast its corresponding real-time status parameters to the second devices so that the second devices can update their configuration parameters. Specifically, the first device can obtain its corresponding real-time status parameters, such as available storage capacity, IOPS, throughput, bandwidth, and latency, and then broadcast these real-time status parameters of the first device to each of the second devices through the fifth mDNS broadcast message via the mDNS protocol.
[0061] The sixth mDNS broadcast message carries the heartbeat signal of the first device. Similar to the fourth mDNS broadcast message from the second device, after the first device joins the NVMe storage network, it also needs to broadcast its heartbeat signal to the second devices to inform other devices of its online status. Specifically, the first device can also broadcast the sixth mDNS broadcast message carrying the heartbeat signal to each of the second devices in real time via the mDNS protocol to inform each of the online status of the first device. If a second device detects an interruption in the sixth mDNS broadcast message, it indicates that the first device may have left the target NVMe storage network or has experienced a failure. In this case, the second device can disconnect from the first device and initiate a configuration parameter adjustment request to update the configuration parameters of each second device.
[0062] In this embodiment, after the first device joins the target NVMe storage network, it can also broadcast a fifth mDNS broadcast message carrying the real-time status parameters of the first device, and a sixth mDNS broadcast message carrying the heartbeat signal of the first device. This method can ensure that the second device can dynamically adjust the storage network and ensure that the overall stability and performance of the network will not be affected when the first device leaves. This method can improve the scalability and stability of the system.
[0063] In one embodiment, the target NVMe storage network is a multi-region NVMe-oF storage network, the first device is a gateway device for a first region, used to manage NVMe devices in the first region, and each second device is a gateway device for a second region other than the first region, used to manage NVMe devices in their respective second regions; Figure 3 As shown, the methods for joining an NVMe storage network may also include:
[0064] Step S301: Receive the seventh mDNS broadcast information broadcast by each second device; the seventh mDNS broadcast information carries the network status information of each NVMe device in each second area.
[0065] In this embodiment, the target NVMe storage network can be a multi-region NVMe-oF storage network, and the first device can be a gateway device corresponding to the first region. The gateway device can be used to manage the various NVMe devices contained in the first region, while the second device can be a gateway device corresponding to the second region. The second region refers to other regions in the multi-region network besides the first region, and the second device is mainly used to manage the NVMe devices in the corresponding region.
[0066] For example, a multi-region NVMe-oF storage network can consist of NVMe devices in regions A, B, and C. Taking region A as the first region, the first device can be gateway device A in region A. This region can contain NVMe devices A1, A2, and A3. The second region can be regions B and C, where the second devices can be gateway device B in region B and gateway device C in region C. Region B can contain NVMe devices B1, B2, and B3, while region C can contain NVMe devices C1, C2, and C3. In other words, gateway device A can manage NVMe devices A1, A2, and A3; gateway device B can manage NVMe devices B1, B2, and B3; and gateway device C can manage NVMe devices C1, C2, and C3.
[0067] The seventh mDNS broadcast message carries network status information for each NVMe device in each second zone. Specifically, each second device can also broadcast the network status information of each NVMe device in the second zone it manages via the mDNS protocol, forming the seventh mDNS broadcast message. For example, gateway device B, acting as a second device, can collect the network status information of NVMe devices B1, B2, and B3 to form the seventh mDNS broadcast message, which is then broadcast. Gateway device A can then receive this seventh mDNS broadcast message.
[0068] Step S302: Based on the network status information of each NVMe device in each second region carried in each seventh mDNS broadcast message, obtain the network status information of each NVMe device in the target NVMe storage network.
[0069] Then the first device can obtain the network status information of each NVMe device in each second region from the seventh mDNS broadcast information. Since the first device itself can obtain the network status information of each NVMe device in the first region, the network status information of all NVMe devices in the target NVMe storage network can be integrated in this way to obtain the network status information of each NVMe device in the target NVMe storage network.
[0070] Step S303: Using the network status information of each NVMe device in the target NVMe storage network, a global configuration adjustment strategy for the first region is obtained.
[0071] The global configuration adjustment strategy refers to the strategy for adjusting the configuration parameters of each NVMe device in the first region. In this embodiment, after the first device obtains the network status information of each NVMe device in the target NVMe storage network, it can formulate a global configuration adjustment strategy for the first region based on the above network status information and through an intelligent scheduling algorithm.
[0072] Step S304: Broadcast the eighth mDNS broadcast information carrying the global configuration adjustment policy of the first area to each NVMe device in the first area through the mDNS service module, so that each NVMe device in the first area can adjust its configuration parameters based on the global configuration adjustment policy of the first area.
[0073] The eighth mDNS broadcast message is used to broadcast the global configuration adjustment policy. After the first device receives the global configuration adjustment policy, it can broadcast the eighth mDNS broadcast message carrying the global configuration adjustment policy of the first region to each NVMe device in the first region through the mDNS service module. Then, each NVMe device in the first region adjusts its configuration parameters based on the global configuration adjustment policy of the first region. In this way, the optimization and adjustment of the NVMe-oF storage network in multiple regions is realized, thereby ensuring the high efficiency of cross-region storage data transmission.
[0074] In this embodiment, the first device can also be a gateway device in a first region of a multi-region NVMe-oF storage network. It can be used to manage NVMe devices in the first region and can receive the seventh mDNS broadcast information broadcast by gateway devices in other second regions through the first device to optimize and adjust the multi-region NVMe-oF storage network, thereby ensuring the high efficiency of cross-region storage data transmission.
[0075] In addition, the NVMe storage network joining method may also include: obtaining network status information of each NVMe device in the first region; broadcasting the ninth mDNS broadcast information carrying the network status information of each NVMe device in the first region to each second device through the mDNS service module; and each second device using the ninth mDNS broadcast information to obtain a global configuration adjustment strategy for each second region.
[0076] The ninth mDNS broadcast message is used to carry the network status information of each NVMe device in the first region. Similar to the second device broadcasting the seventh mDNS broadcast message, the first device also needs to broadcast the network status information of each NVMe device it manages to the second device so that the second device can generate a global configuration adjustment policy for the second region to adjust the configuration parameters of each NVMe device in the second region.
[0077] Specifically, the first device can also obtain the network status information of each NVMe device in the first area, and broadcast the network status information of each NVMe device to each second device through the ninth mDNS broadcast information.
[0078] In this embodiment, the first device can also broadcast a ninth mDNS broadcast message carrying network status information of each NVMe device in the first region. This method can ensure that the second device can generate a global configuration adjustment policy for the second region to adjust the configuration parameters of each NVMe device in the second region, thereby ensuring the optimized adjustment of the NVMe-oF storage network in the second region and ensuring the high efficiency of cross-region storage data transmission.
[0079] In one embodiment, such as Figure 4 As shown, a method for joining an NVMe storage network is also provided. This embodiment uses the application of this method to a second device as an example for illustration. In this embodiment, the method includes the following steps:
[0080] Step S401: Upon detecting the first mDNS broadcast information, update the device information table of the second device based on the device information carried in the first mDNS broadcast information; the device information is obtained by the first device in response to a device join request for the first device to join the target NVMe storage network, and the first mDNS broadcast information is used by the first device to broadcast the device information to the second device; the second device is a device that has already joined the target NVMe storage network.
[0081] Specifically, when a first device needs to join a target NVMe storage network, the user can initiate a device join request to the first device to join the target NVMe storage network. The first device can then respond to this request to obtain its device information. After obtaining the corresponding device information, the first device can use its built-in mDNS service module to broadcast a first mDNS broadcast message carrying the first device's device information to each second device already joined in the target NVMe storage network via the mDNS protocol.
[0082] Subsequently, if the second device listens to the first mDNS broadcast information, it can use the device information of the first device carried in the first mDNS broadcast information to update its local device information table, thereby recording the detailed information of the newly added first device.
[0083] Step S402: If the device information meets the preset conditions, establish a communication connection with the first device so that the first device can join the target NVMe storage network.
[0084] Furthermore, the second device can also determine whether the device information of the newly added first device meets the pre-set device joining conditions. If it does, a communication connection can be established with the newly added first device. In this way, the communication connection between the first device and each second device that has joined the NVMe storage network can be realized, thereby completing the joining of the first device to the target NVMe storage network.
[0085] In the above NVMe storage network joining method, upon detecting the first mDNS broadcast information, the device information table of the second device is updated based on the device information carried in the first mDNS broadcast information; the device information is obtained by the first device in response to a device joining request for the first device to join the target NVMe storage network, and the first mDNS broadcast information is used by the first device to broadcast the device information to the second device; the second device is a device that has already joined the target NVMe storage network; if the device information meets preset conditions, a communication connection is established with the first device to enable the first device to join the target NVMe storage network. In this embodiment, when the first device responds to a device joining request to join the target NVMe storage network, the first device can obtain its device information as device information. Then, through the mDNS service module on the first device, it can broadcast first mDNS broadcast information carrying device information to the second devices that have already joined the target NVMe storage network. Each second device can update the corresponding device information table using the device information when it hears the broadcast information. When the device information meets the preset device joining conditions, each second device can establish a communication connection with the first device, thereby completing the joining of the first device to the target NVMe storage network. Compared with the prior art, which requires the administrator to manually configure the first device to join the target NVMe storage network or requires the central control node to discover the first device to complete the device joining, the NVMe storage network joining method provided in this application does not require manual configuration by the administrator or centralized control through a central control node. Therefore, it can improve the intelligence of the NVMe storage network joining method.
[0086] In one embodiment, a method for dynamically adjusting an NVMe-oF storage network based on mDNS is also provided, addressing the following technical problems in existing technologies: 1. Manually configuring static network topology is complex, relies on manual operation, is inefficient and prone to errors, and has low automation; 2. Existing solutions cannot quickly respond to dynamic changes in NVMe-oF network storage devices, affecting system real-time performance and flexibility, resulting in low NVMe device networking efficiency; 3. Existing systems struggle to effectively manage device addition and removal, impacting system scalability and stability. Furthermore, it achieves the following technical effects: 1. Automatic device discovery and networking via mDNS eliminates the complexity and potential errors of manual configuration, simplifying operation and maintenance; 2. Supports dynamic device addition and removal, enabling the system to automatically adjust the network topology, ensuring stable system operation when devices change, and enhancing system resilience; 3. Distributed management system reduces the impact of single points of failure, etc.
[0087] The method provided in this embodiment is applicable to storage networks composed of multiple NVMe storage devices using NVMe-oF as the transmission protocol. It includes SSDs or other types of high-performance storage hardware supporting the NVMe-oF protocol. Each storage device is equipped with mDNS service to broadcast its own service information, including IP address, port number, device ID, available storage capacity, etc. The method can be divided into three parts: automatic discovery and networking of NVMe storage devices, dynamic adjustment of the storage network, and a dynamic exit mechanism.
[0088] The specific implementation process for automatic discovery and networking of NVMe storage devices may include the following steps, such as... Figure 5 As shown: First, after the storage device connects to the storage network, it starts its built-in mDNS service module. Through mDNS, it generates information packets and broadcasts its service information within the NVMe-oF storage network, making the device visible to other devices. Second, the NVMe storage devices within the network continuously listen for mDNS broadcast information. Upon receiving a broadcast from a new device, they parse the received mDNS information and update their local device information table to record the new device's detailed information. Third, if the new device's information meets the preset joining conditions, a connection is established, and network formation and data transmission operations are performed.
[0089] Dynamic adjustment of the storage network can include the following process: First, after connecting to the NVMe-oF storage network, NVMe storage devices register with mDNS management software (such as Avahi) to monitor NVMe storage metrics such as available storage capacity, IOPS, throughput, bandwidth and latency, and IO queue depth, as well as corresponding configuration parameters. This information is then broadcast throughout the NVMe-oF storage network via mDNS. Second, other devices exchange status information through the registered services to obtain real-time status data of the NVMe-oF storage network, providing data support for dynamic adjustment. Third, after collecting network status data, each NVMe storage device formulates a dynamic adjustment plan based on the collected data and pre-defined adjustment strategies (such as load balancing), generating an adjustment strategy that includes the device nodes, connections, and NVMe-oF configuration parameters to be adjusted. Fourth, once the adjustment strategy is formulated, it is broadcast to all NVMe device nodes within the NVMe-oF storage network via mDNS. Upon receiving the strategy, each node updates its configuration parameters according to the strategy, such as NVMe IO queue depth and bandwidth allocation optimization.
[0090] The dynamic exit mechanism may include the following process: First, the storage devices periodically broadcast heartbeat signals via mDNS to report their online status. Second, when one device exits or fails, the heartbeat is interrupted. Other devices, upon detecting the interruption of the heartbeat information from the mDNS broadcast, update their device information tables, disconnect from the device, and perform a dynamic adjustment process, updating their configuration parameters according to the new adjustment strategy.
[0091] This embodiment can also be extended to multi-region NVMe-oF storage networks. The process steps are as follows: First, NVMe device discovery is performed across multiple regions. NVMe devices in each region are discovered, networked, and have their NVMe-oF network status information collected via mDNS. Gateway devices in each region broadcast NVMe-oF network status information for their respective regions via mDNS, thus supporting multi-region NVMe-oF storage networks and expanding network scale. Then, regions are interconnected via gateway devices. The gateway devices aggregate the NVMe-oF network status information collected within each region via mDNS. Based on the aggregated information, a global configuration adjustment strategy is formulated using an intelligent scheduling algorithm. Subsequently, each region's gateway device broadcasts the global adjustment strategy to the NVMe devices within its respective region via mDNS, updating its configuration parameters accordingly to achieve cross-regional optimization and adjustment of the storage network. Finally, adjustment strategies are periodically formulated based on the global network status to ensure efficient cross-regional storage data transmission.
[0092] This embodiment introduces the mDNS protocol to achieve automatic discovery, networking, dynamic adjustment, and exit mechanisms for NVMe storage devices. This enables automatic discovery and networking of NVMe storage devices without manual configuration, significantly improving configuration efficiency and accuracy, and enhancing automation. Furthermore, it supports the dynamic addition and removal of NVMe storage devices, improving system scalability and stability. Continuous monitoring information broadcast by mDNS can optimize the configuration parameters of NVMe storage devices in real time, ensuring efficient and stable data transmission. The distributed automatic discovery and monitoring mechanism improves system reliability and reduces the risk of single points of failure.
[0093] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.
[0094] Based on the same inventive concept, this application also provides an NVMe storage network joining device for implementing the NVMe storage network joining method described above. The solution provided by this device is similar to the solution described in the above method; therefore, the specific limitations in one or more NVMe storage network joining device embodiments provided below can be found in the limitations of the NVMe storage network joining method described above, and will not be repeated here.
[0095] In one embodiment, such as Figure 6 As shown, an NVMe storage network joining device is provided, applied to a first device, including: a device information acquisition module 601 and a first information broadcasting module 602, wherein:
[0096] The device information acquisition module 601 is used to acquire device information of the first device in response to a device join request for the first device to join the target NVMe storage network.
[0097] The first information broadcast module 602 is used to broadcast first mDNS broadcast information carrying device information to a second device that has joined the target NVMe storage network through the mDNS service module on the first device; the second device is used to update the device information table of the second device based on the device information when it hears the first mDNS broadcast information, and to establish a communication connection with the first device when the device information meets preset conditions, so that the first device joins the target NVMe storage network.
[0098] In one embodiment, the NVMe storage network joining device may further include: a first parameter update module, configured to, in response to a configuration parameter adjustment request for adjusting configuration parameters, receive second mDNS broadcast information carrying real-time status parameters of each second device broadcast by each second device; extract the real-time status parameters of each second device from the second mDNS broadcast information, and generate a configuration parameter adjustment strategy for the first device based on the real-time status parameters of the first device; broadcast third mDNS broadcast information carrying the configuration parameter adjustment strategy to each second device through the mDNS service module, and update the configuration parameters of the first device based on the configuration parameter adjustment strategy.
[0099] In one embodiment, the NVMe storage network joining device may further include: a device connection disconnection module, configured to, upon detecting an interruption of the fourth mDNS broadcast information carrying the heartbeat signal of the target second device, update the device information table of the first device according to the device information of the target second device; disconnect the device connection with the target second device; and initiate a configuration parameter adjustment request for adjusting configuration parameters.
[0100] In one embodiment, the NVMe storage network joining device may further include: a second information broadcasting module, configured to acquire real-time status parameters of the first device and broadcast a fifth mDNS broadcast message carrying the real-time status parameters of the first device to each second device via the mDNS service module; the fifth mDNS broadcast message is used by each second device to update its configuration parameters; and a sixth mDNS broadcast message carrying the heartbeat signal of the first device is broadcast to each second device via the mDNS service module; the sixth mDNS broadcast message is used by each second device to disconnect from the first device if it detects an interruption in the sixth mDNS broadcast message.
[0101] In one embodiment, the target NVMe storage network is a multi-region NVMe-oF storage network, the first device is a gateway device for the first region, used to manage NVMe devices in the first region, and each second device is a gateway device for each second region other than the first region, used to manage NVMe devices in each second region respectively; the NVMe storage network joining device may further include: a second parameter update module, used to receive seventh mDNS broadcast information broadcast by each second device; the seventh mDNS broadcast information carries network status information of each NVMe device in each second region; based on the network status information of each NVMe device in each second region carried in each seventh mDNS broadcast information, the network status information of each NVMe device in the target NVMe storage network is obtained; using the network status information of each NVMe device in the target NVMe storage network, a global configuration adjustment strategy for the first region is obtained; and an eighth mDNS broadcast information carrying the global configuration adjustment strategy of the first region is broadcast to each NVMe device in the first region through the mDNS service module, so that each NVMe device in the first region adjusts its configuration parameters based on the global configuration adjustment strategy of the first region.
[0102] In one embodiment, the NVMe storage network joining device may further include: a third information broadcasting module, used to obtain network status information of each NVMe device in the first region; broadcasting a ninth mDNS broadcast message carrying the network status information of each NVMe device in the first region to each second device through the mDNS service module; and each second device is used to obtain a global configuration adjustment strategy for each second region based on the ninth mDNS broadcast message.
[0103] In one embodiment, such as Figure 7 As shown, an NVMe storage network joining device is provided, applied to a second device, including: a device information table update module 701 and a communication connection construction module 702, wherein:
[0104] The device information table update module 701 is used to update the device information table of the second device based on the device information carried in the first mDNS broadcast information when the first mDNS broadcast information is detected; the device information is obtained by the first device in response to a device join request for the first device to join the target NVMe storage network; the first mDNS broadcast information is used by the first device to broadcast the device information to the second device; the second device is a device that has already joined the target NVMe storage network.
[0105] The communication connection construction module 702 is used to construct a communication connection with the first device when the device information meets the preset conditions, so that the first device can join the target NVMe storage network.
[0106] The modules in the aforementioned NVMe storage network joining device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in hardware or independent of the processor in the communication device, or stored in software within the memory of the communication device, so that the processor can call and execute the corresponding operations of each module.
[0107] In one exemplary embodiment, a communication device is provided, which may be a terminal, and its internal structure diagram may be as follows. Figure 8 As shown, the communication device includes a processor, memory, input / output interface, communication interface, display unit, and input device. The processor, memory, and input / output interface are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interface. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage media. The input / output interface is used for exchanging information between the processor and external devices. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, Near Field Communication (NFC), or other technologies. When the computer program is executed by the processor, it implements an NVMe storage network joining method. The display unit is used to form a visually visible image and can be a display screen, projection device, or virtual reality imaging device. The display screen can be an LCD screen or an e-ink screen. The input device of the communication device can be a touch layer covering the display screen, or buttons, trackballs, or touchpads set on the casing of the communication device, or external keyboards, touchpads, or mice, etc.
[0108] Those skilled in the art will understand that Figure 8 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the communication device to which the present application is applied. Specific communication devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0109] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.
[0110] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps in the above method embodiments.
[0111] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above method embodiments.
[0112] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.
[0113] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.
[0114] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.
[0115] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A method for joining an NVMe storage network, characterized in that, Applied to a first device, the method includes: In response to a device join request for the first device to join the target NVMe storage network, obtain the device information of the first device; The first device broadcasts a first mDNS broadcast message carrying the device information to a second device that has joined the target NVMe storage network via the mDNS service module on the first device. The second device, upon receiving the first mDNS broadcast message, updates its device information table based on the device information and establishes a communication connection with the first device if the device information meets preset conditions, so that the first device joins the target NVMe storage network.
2. The method according to claim 1, characterized in that, After the first device joins the target NVMe storage network, the following is also included: In response to a configuration parameter adjustment request for adjusting configuration parameters, receive second mDNS broadcast information carrying real-time status parameters of each of the second devices broadcast by each of the second devices; Extract the real-time status parameters of each of the second devices from the second mDNS broadcast information, and generate a configuration parameter adjustment strategy for the first device based on the real-time status parameters of the first device; The mDNS service module broadcasts a third mDNS broadcast message carrying the configuration parameter adjustment policy to each of the second devices, and updates the configuration parameters of the first devices based on the configuration parameter adjustment policy.
3. The method according to claim 2, characterized in that, After the first device joins the target NVMe storage network, the following is also included: If the fourth mDNS broadcast information carrying the heartbeat signal of the target second device is interrupted, the device information table of the first device is updated according to the device information of the target second device. Disconnect the device connection with the target second device and initiate the configuration parameter adjustment request for adjusting the configuration parameters.
4. The method according to claim 3, characterized in that, The method further includes: The real-time status parameters of the first device are obtained, and the fifth mDNS broadcast information carrying the real-time status parameters of the first device is broadcast to each of the second devices through the mDNS service module; the fifth mDNS broadcast information is used by each of the second devices to update the configuration parameters of each of the second devices. The mDNS service module broadcasts a sixth mDNS broadcast message carrying the heartbeat signal of the first device to each of the second devices; the sixth mDNS broadcast message is used by each of the second devices to disconnect from the first device when the sixth mDNS broadcast message is detected to be interrupted.
5. The method according to claim 1, characterized in that, The target NVMe storage network is a multi-region NVMe-oF storage network. The first device is a gateway device for a first region, used to manage NVMe devices in the first region. Each second device is a gateway device for a second region other than the first region, used to manage NVMe devices in each of the second regions. The method further includes: Receive the seventh mDNS broadcast information broadcast by each of the second devices; the seventh mDNS broadcast information carries the network status information of each NVMe device in each of the second regions; Based on the network status information of each NVMe device in each of the second regions carried in each of the seventh mDNS broadcast messages, the network status information of each NVMe device in the target NVMe storage network is obtained; Using the network status information of each NVMe device in the target NVMe storage network, a global configuration adjustment strategy for the first region is obtained; The mDNS service module broadcasts an eighth mDNS broadcast message carrying the global configuration adjustment policy of the first region to each NVMe device in the first region, so that each NVMe device in the first region can adjust its configuration parameters based on the global configuration adjustment policy of the first region.
6. The method according to claim 5, characterized in that, The method further includes: Obtain the network status information of each NVMe device in the first region; The mDNS service module broadcasts a ninth mDNS broadcast message carrying network status information of each NVMe device in the first region to each of the second devices; each of the second devices is used to obtain a global configuration adjustment strategy for each of the second regions based on the ninth mDNS broadcast message.
7. A method for joining an NVMe storage network, characterized in that, Applied to a second device, the method includes: Upon detecting the first mDNS broadcast information, the device information table of the second device is updated based on the device information carried in the first mDNS broadcast information; the device information is obtained by the first device in response to a device join request for the first device to join the target NVMe storage network, and the first mDNS broadcast information is used by the first device to broadcast the device information to the second device; the second device is a device that has already joined the target NVMe storage network. If the device information meets the preset conditions, a communication connection is established with the first device so that the first device can join the target NVMe storage network.
8. An NVMe storage network joining device, characterized in that, Applied to a first device, the device includes: The device information acquisition module is used to acquire device information of the first device in response to a device join request for the first device to join the target NVMe storage network. The first information broadcasting module is used to broadcast first mDNS broadcast information carrying the device information to a second device that has joined the target NVMe storage network through the mDNS service module on the first device; the second device is used to update the device information table of the second device based on the device information when it hears the first mDNS broadcast information, and to establish a communication connection with the first device when the device information meets preset conditions, so that the first device joins the target NVMe storage network.
9. An NVMe storage network joining device, characterized in that, Applied to a second device, the device includes: The device information table update module is used to update the device information table of the second device based on the device information carried in the first mDNS broadcast information when the first mDNS broadcast information is detected; the device information is obtained by the first device in response to a device join request for the first device to join the target NVMe storage network; the first mDNS broadcast information is used by the first device to broadcast the device information to the second device; the second device is a device that has already joined the target NVMe storage network. A communication connection building module is used to build a communication connection with the first device when the device information meets preset conditions, so that the first device can join the target NVMe storage network.
10. A communication device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Distributed block storage system based on NVMe-oF
CN117857417A
Message processing method, and gateway device and storage system
WO2023143103A1