Function implementation method, device, equipment, system and readable storage medium

CN121014192APending Publication Date: 2025-11-25HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202380097251.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-04-28
Publication Date
2025-11-25

AI Technical Summary

Technical Problem

When existing storage systems offload storage functions to network devices, the method of obtaining specified information is relatively single, resulting in complex information transmission and waste of resources. Different functions require different information transmission methods, resulting in insufficient implementation flexibility.

Method used

The first device sends a subscription request to the second device to obtain the shared information associated with the third device achieving the target function, and utilizes different transmission protocols (such as TCP, LLDP, UDP) and information fragmentation delivery methods to achieve flexible information delivery. sex and accuracy.

Benefits of technology

It improves the flexibility and efficiency of information transfer between storage systems and network devices, enables flexible implementation of different functions, reduces resource waste, and enhances the functional capabilities of network devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121014192A_ABST
    Figure CN121014192A_ABST
Patent Text Reader

Abstract

The invention discloses a function implementation method, device, equipment and system and a readable storage medium, and relates to the technical field of communication. Taking a first device to execute the method as an example, the first device obtains shared information sent by a second device; and realizing the target function based on the shared information, or cooperatively realizing the target function with the third equipment based on the shared information. Wherein the shared information is information associated with the third equipment for realizing the target function, and the type of the third equipment is different from that of the first equipment. According to the method, the first equipment can realize the target function of the third equipment through the shared information, namely, the target function of the third equipment is transferred or unloaded to the first equipment, so that the target function is more flexibly realized. Wherein the shared information is sent by the second device, so that the mode of obtaining the shared information by the first device is more flexible.
Need to check novelty before this filing date? Find Prior Art

Description

Function implementation method, device, equipment, system and readable storage medium Technical Field

[0001] The present application relates to the field of communication technologies, and in particular to function implementation methods, devices, equipment, systems, and readable storage media. Background Art

[0002] As a key component of data storage, the storage system consists of clients and storage services. The storage services are servers with storage capabilities. Clients access the storage services through network devices to read and write data stored there.

[0003] Summary of the Invention

[0004] The present application provides a function implementation method, apparatus, device, system and readable storage medium for implementing a target function based on acquired shared information.

[0005] In a first aspect, a function implementation method is provided. Taking a first device executing the method as an example, the first device obtains shared information sent by a second device and implements a target function based on the shared information, or collaborates with a third device to implement the target function based on the shared information. The shared information is information associated with the third device implementing the target function, and the third device is of a different type than the first device.

[0006] In this method, the first device obtains shared information related to the target function implemented by the third device, enabling the first device to implement the corresponding target function. This achieves the purpose of transferring or offloading the target function of the third device to the first device, making the implementation of the target function more flexible. In addition, the shared information is sent by the second device, making the method for the first device to obtain the shared information more flexible compared to manually configuring the shared information on the first device.

[0007] In one possible implementation, a first device obtains shared information sent by a second device by: sending a subscription request to the second device, the subscription request including at least one of subscription content, an information publishing policy, or a subscription object, where the subscription content indicates the content type of the shared information, the information publishing policy indicates the triggering conditions for sending the shared information, and the subscription object indicates the object for which the shared information is generated; and receiving the shared information sent by the second device based on the subscription request. Obtaining shared information through subscription requests makes obtaining shared information more flexible and accurate.

[0008] In one possible implementation, before sending a subscription request to a second device, the first device may also receive at least one of subscribable content and subscription permissions published by the second device; and generate a subscription request based on the at least one of the subscribable content and subscription permissions. This makes the generated subscription request more accurate and increases the success rate of obtaining shared information based on the subscription request.

[0009] In one possible implementation, the shared information is carried in a message of the Transmission Control Protocol (TCP), the Link Layer Discovery Protocol (LLDP), or the User Datagram Protocol (UDP). Carrying shared information in messages of different transport protocols makes the transmission of shared information more flexible and applicable.

[0010] In one possible implementation, the shared information includes at least one shard information, the at least one shard information is obtained according to the business level division, and the at least one shard information includes at least one of system level information, network level information, protocol level information or business level information. Among them, the system level information may include at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client end, and the software and hardware system information of the network device; the network level information may include the connection relationship between computer devices; the protocol level information may include input / output (IO) storage address information, non-volatile memory express (NVMe) interface specification information, etc.; the business level information may include IO read and write content. The shared information is divided into at least one shard information by the business level, and information is transmitted based on at least one shard information, so that the granularity of information transmission is finer and the efficiency is higher.

[0011] In one possible implementation, the first device obtains shared information sent by the second device, including reading the shared information from the second device through a read operation in an IO storage protocol. In addition to obtaining shared information through the aforementioned subscription request, the shared information can also be obtained through a read operation, thereby providing different ways to obtain shared information and increasing flexibility in obtaining shared information.

[0012] In one possible implementation, the first device is a network device and the second device is a computer device; or, the first device is a computer device and the second device is a network device; or, the first device and the second device are two different network devices; or, the first device is a network device or a computer device and the second device is a control device. The different situations of the first and second devices allow the method to be applied in a variety of scenarios, thereby increasing the scope of applicability of the method.

[0013] In one possible implementation, if the first device is a network device; the shared information includes storage content, and the target function includes a storage function; the network device implements the target function based on the shared information, including: storing the shared content in the network device, so that the storage content can be read and written directly from the network device without accessing a third device.

[0014] Alternatively, the shared information includes a mapping relationship between storage content and storage location, and the target function includes an erasure coding (EC) or a replication function, and the EC or replication function is used to store multiple copies corresponding to the storage content; the network device implements the target function based on the shared information, including: the first device obtains any storage content, and according to the multiple storage locations corresponding to the any storage content in the mapping relationship between the storage content and the storage location, performs EC or replication processing on any storage content to obtain multiple copies corresponding to any storage content, and sends the multiple copies to multiple storage locations.

[0015] Alternatively, the shared information includes device connection information, the target function includes a load sharing function, the device connection information includes the connection relationship between computer devices, and the load sharing function is used to balance the load between multiple connections; the network device implements the target function based on the shared information, including: the network device obtains the entire network connection information according to the device connection information, and selects the transmission path for each connection based on the entire network connection information to balance the load between different connections.

[0016] Therefore, the network device can implement different functions for different shared information, thereby improving the ability of the network device to implement different functions.

[0017] In one possible implementation, if the first device is a computer device; the shared information is fault information; and the target function is a fault recovery function; the computer device implements the target function based on the shared information, including: the computer device performs fault processing and service recovery processing based on the fault information, thereby improving network reliability and implementing the fault recovery function;

[0018] Alternatively, the shared information is network load information or network quality information, and the target function is a routing function, which is used to balance the load between multiple paths; the computer device implements the target function based on the shared information, including: the computer device selects a multi-path strategy based on the network load information or network quality information to balance the load between multiple paths.

[0019] Therefore, the computer device can realize different functions for different shared information, thereby improving the ability of the computer device to realize different functions.

[0020] On the second aspect, a function implementation method is provided. Taking the second device executing the method as an example, the second device sends shared information to the first device. The shared information is information associated with the third device implementing the target function. The third device is of a different type from the first device. The shared information is used by the first device to implement the target function based on the shared information, or the shared information is used by the first device to collaborate with the third device to implement the target function based on the shared information.

[0021] In this method, the second device can send shared information related to the third device's implementation of the target function to the first device, enabling the first device to implement the corresponding target function. This effectively transfers or offloads the target function of the third device to the first device. Furthermore, compared to manually configuring shared information on the first device, the second device sending shared information to the first device allows for more flexible access to the shared information by the first device, thereby enabling more flexible implementation of the target function.

[0022] In one possible implementation, before the second device sends shared information to the first device, it also receives a subscription request sent by the first device, where the subscription request includes at least one of subscription content, information publishing policy, or subscription object, where the subscription content indicates the content type of the shared information, the information publishing policy indicates the triggering conditions for sending the shared information, and the subscription object indicates the object that generates the shared information; and the shared information is sent to the first device based on the subscription request.

[0023] In one possible implementation, if there are multiple subscription requests, the method for sending shared information to the first device based on the subscription requests includes aggregating the multiple subscription requests to obtain an aggregate request, and sending the shared information to the first device based on the aggregate request. This aggregation method improves the efficiency of transmitting shared information.

[0024] In a possible implementation, before sending the shared information to the first device, the second device also publishes at least one of subscribeable content and subscription rights to the first device, where the at least one of the subscribeable content and subscription rights is used by the first device to generate a subscription request.

[0025] In a possible implementation, the shared information may be carried in a TCP, LLDP, or UDP message.

[0026] In one possible embodiment, the shared information includes at least one shard information, and the at least one shard information is obtained according to the business level division. The at least one shard information includes at least one of system level information, network level information, protocol level information or business level information. The system level information includes at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client, and the software and hardware system information of the network device. The network level information includes the connection relationship between computer devices. The protocol level information includes at least one of IO storage address information or NVMe information. The business level information includes IO read and write content.

[0027] In one possible implementation, the first device is a network device, and the second device is a computer device; or, the first device is a computer device, and the second device is a network device; or, the first device and the second device are two different network devices; or, the first device is a network device or a computer device, and the second device is a control device.

[0028] In one possible implementation, the second device is different from the third device; before sending shared information to the first device, the second device receives shared information from the third device. The shared information is obtained by the third device monitoring information about the third device's implementation of a target function. The second device can directly receive shared information from the third device, improving its efficiency in acquiring shared information and, in turn, its efficiency in sending shared information to the first device.

[0029] In one possible implementation, the second device is a network device that is distinct from the third device. Before the second device sends shared information to the first device, the second device receives the shared information from the control device. The shared information is obtained by the third device by monitoring information on the third device's implementation of a target function, and the third device sends the shared information to the control device. The second device can obtain the shared information of the third device through the control device, making the method for the second device to obtain the shared information of the third device more flexible.

[0030] In one possible implementation, the second device is a network device that is distinct from the third device. Before sending shared information to the first device, the second device receives multiple subscription requests from multiple subscribing devices, aggregates the multiple subscription requests to obtain an aggregate request, where the multiple subscribing devices include the first device. The second device then sends the aggregate request to the control device and receives aggregate information issued by the control device based on the aggregate request, where the aggregate information includes shared information. The aggregate information is then split based on the correspondence between the subscribing devices and the subscription requests to obtain shared information corresponding to the first device. By aggregating the requests, the speed of obtaining shared information corresponding to the multiple subscription requests from the control device is accelerated, thereby improving the efficiency of obtaining shared information.

[0031] In one possible implementation, the second device is a network device that is distinct from the third device. Before sending shared information to the first device, the second device receives multiple subscription requests from multiple subscribing devices, including the first device. The second device then sends multiple subscription requests to the control device and receives multiple subscription information, including the shared information, issued by the control device based on the multiple subscription requests. This eliminates the need to consolidate the requests, simplifying the second device's processing of multiple subscription requests from multiple subscribing devices.

[0032] In one possible implementation, the second device is a control device. Before sending shared information to the first device, the second device receives subscribable content from multiple devices. Based on the subscribable content from the multiple devices, the second device performs communication configuration and obtains configuration information corresponding to each of the multiple devices, the configuration information including at least one of network device address information, network segment information, network device routing information, computer device address information, or domain information. The second device then sends the corresponding configuration information to each of the multiple devices, with the configuration information used to transmit the shared information. By transmitting the subscribable content to the control device, the control device can perform communication configuration, thereby improving the efficiency of network communication.

[0033] In a third aspect, a function implementation apparatus is provided, which is applied to a first device and includes:

[0034] a transceiver module, configured to perform operations related to reception and / or transmission performed by the first device in the first aspect or any possible implementation manner of the first aspect;

[0035] The processing module is used to perform other operations besides the reception and / or transmission related operations performed by the first device in the first aspect or any possible implementation manner of the first aspect.

[0036] In a possible implementation, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.

[0037] In one possible implementation, the transceiver module is configured to obtain shared information sent by the second device, where the shared information is information associated with a third device implementing a target function, and the third device is of a different type than the first device;

[0038] The processing module is used to realize the target function based on the shared information, or to realize the target function in collaboration with a third device based on the shared information.

[0039] In one possible embodiment, the transceiver module is used to send a subscription request to the second device, where the subscription request includes at least one of subscription content, information publishing policy, or subscription object, where the subscription content indicates the content type of the shared information, the information publishing policy indicates the triggering conditions for sending the shared information, and the subscription object indicates the object that generates the shared information; and receive the shared information sent by the second device based on the subscription request.

[0040] In a possible implementation, the transceiver module is further configured to receive at least one of subscribeable content and subscription rights published by the second device; and generate a subscription request based on at least one of the subscribeable content and subscription rights.

[0041] In a possible implementation, the transceiver module is configured to read the shared information from the second device through a read operation in an IO storage protocol.

[0042] In one possible implementation, the first device is a network device; the shared information includes storage content, and the target function includes a storage function; or, the shared information includes a mapping relationship between storage content and storage location, and the target function includes an EC or replication function, and the EC or replication function is used to store multiple copies corresponding to the storage content; or, the shared information includes device connection information, and the target function includes a load sharing function, and the device connection information includes a connection relationship between computer devices, and the load sharing function is used to balance the load between multiple connections.

[0043] In one possible implementation, the first device is a computer device; the shared information is fault information, and the target function is a fault recovery function; or, the shared information is network load information or network quality information, and the target function is a routing function, which is used to balance the load between multiple paths.

[0044] In a fourth aspect, a function implementation apparatus is provided, which is applied to a second device and includes:

[0045] a transceiver module, configured to perform operations related to reception and / or transmission performed by the second device in the second aspect or any possible implementation manner of the second aspect;

[0046] The processing module is used to perform other operations besides the reception and / or transmission related operations performed by the second device in the second aspect or any possible implementation manner of the second aspect.

[0047] In a specific embodiment, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.

[0048] In one possible embodiment, the transceiver module is used to send shared information to the first device, where the shared information is information associated with the third device to achieve the target function. The third device is of a different type from the first device. The shared information is used for the first device to achieve the target function based on the shared information, or the shared information is used for the first device to collaborate with the third device to achieve the target function based on the shared information.

[0049] In one possible embodiment, the transceiver module is also used to receive a subscription request sent by the first device, where the subscription request includes at least one of subscription content, information publishing policy, or subscription object, where the subscription content indicates the content type of the shared information, the information publishing policy indicates the triggering conditions for sending the shared information, and the subscription object indicates the object that generates the shared information; and the shared information is sent to the first device based on the subscription request.

[0050] In a possible implementation, there are multiple subscription requests, and the processing module is configured to integrate the multiple subscription requests to obtain an integrated request; and the transceiver module is configured to send the shared information to the first device based on the integrated request.

[0051] In a possible implementation, the transceiver module is further configured to publish at least one of subscribeable content and subscription rights to the first device, and the at least one of the subscribeable content and subscription rights is used by the first device to generate a subscription request.

[0052] In a possible implementation, the second device is different from the third device; the transceiver module is further configured to receive shared information sent by the third device, where the shared information is obtained by the third device monitoring information on the third device implementing a target function.

[0053] In one possible implementation, the second device is a network device, and the second device is different from the third device; the transceiver module is also used to receive shared information sent by the control device, and the shared information is obtained by the third device by monitoring the information of the third device to achieve the target function, and is sent by the third device to the control device.

[0054] In one possible implementation, the second device is a network device, and the second device is different from the third device; the transceiver module is further configured to receive multiple subscription requests sent by multiple subscription devices; the processing module is further configured to integrate the multiple subscription requests to obtain an integrated request, and the multiple subscription devices include the first device;

[0055] The transceiver module is further configured to send an integration request to the control device and receive integration information sent by the control device based on the integration request, where the integration information includes shared information;

[0056] The processing module is further configured to split the integrated information based on the corresponding relationship between the subscription device and the subscription request to obtain the shared information corresponding to the first device.

[0057] In one possible implementation, the second device is a network device, and the second device is different from the third device; the transceiver module is further used to receive multiple subscription requests sent by multiple subscription devices, and the multiple subscription devices include the first device; send multiple subscription requests to the control device, and receive multiple subscription information issued by the control device based on the multiple subscription requests, and the multiple subscription information includes shared information.

[0058] In one possible implementation, the second device is a control device; the transceiver module is further used to receive subscribable content sent by multiple devices; the processing module is further used to perform communication configuration based on the subscribable content of multiple devices, and obtain configuration information corresponding to the multiple devices respectively, the configuration information including at least one of network device address information, network segment information, network device routing information, computer device address information or domain information; the corresponding configuration information is sent to the multiple devices respectively, and the configuration information is used to transmit shared information.

[0059] In any possible implementation manner of the third aspect and the fourth aspect, the shared information is carried in a TCP, LLDP, or UDP message.

[0060] In any possible implementation of the third and fourth aspects above, the shared information includes at least one shard information, the at least one shard information is obtained according to the business level division, and the at least one shard information includes at least one of system level information, network level information, protocol level information or business level information. The system level information includes at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client, and the software and hardware system information of the network device. The network level information includes the connection relationship between computer devices. The protocol level information includes at least one of IO storage address information or NVMe information. The business level information includes IO read and write content.

[0061] In any possible implementation of the third and fourth aspects above, the first device is a network device and the second device is a computer device; or, the first device is a computer device and the second device is a network device; or, the first device and the second device are two different network devices; or, the first device is a network device or a computer device and the second device is a control device.

[0062] In the fifth aspect, a function implementation device is provided, which includes: a processor, the processor is coupled to a memory, the memory stores at least one program instruction or code, and the at least one program instruction or code is loaded and executed by the processor so that the function implementation device implements the function implementation method as described in any one of the first aspect or the second aspect above.

[0063] Optionally, there are one or more processors and one or more memories.

[0064] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.

[0065] In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated on the same chip as the processor or be set on different chips. This application does not limit the type of memory and the setting method of the memory and the processor.

[0066] In a sixth aspect, a communication device is provided, comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path; the memory is configured to store instructions; and the processor is configured to execute the instructions stored in the memory to control the transceiver to receive signals and to control the transceiver to transmit signals. When the processor executes the instructions stored in the memory, the communication device executes the method of the first aspect or any possible implementation of the first aspect, or executes the method of the second aspect or any possible implementation of the second aspect.

[0067] In a seventh aspect, a function implementation system is provided, the function implementation system comprising a first device and a second device;

[0068] The first device is used to execute the method described in the first aspect or any possible implementation of the first aspect, and the second device is used to execute the method described in the second aspect or any possible implementation of the second aspect.

[0069] In an eighth aspect, a computer-readable storage medium is provided, wherein the storage medium stores at least one instruction, and the instruction is loaded and executed by a processor to enable a computer to implement the method in the above-mentioned first aspect or any possible implementation of the first aspect, or to implement the method in the above-mentioned second aspect or any possible implementation of the second aspect.

[0070] In a ninth aspect, a computer program (product) is provided, which includes: computer program code, which, when executed by a computer, enables the computer to execute the methods in the above aspects.

[0071] In a tenth aspect, a chip is provided, comprising a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes the methods in the above aspects.

[0072] In the eleventh aspect, another chip is provided, comprising: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the methods in the above aspects.

[0073] It should be understood that the beneficial effects achieved by the technical solutions of the third to eleventh aspects of this application and the corresponding possible implementation methods can be referred to the technical effects of the first and second aspects and their corresponding possible implementation methods mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0074] FIG1 is a schematic diagram of an implementation environment of a function implementation method provided in an embodiment of the present application;

[0075] FIG2 is a schematic diagram of a module of a device provided in an embodiment of the present application;

[0076] FIG3 is a schematic diagram of a module of another device provided in an embodiment of the present application;

[0077] FIG4 is a flow chart of a function implementation method provided in an embodiment of the present application;

[0078] FIG5 is a schematic diagram of information transmission provided in an embodiment of the present application;

[0079] FIG6 is another schematic diagram of information transmission provided in an embodiment of the present application;

[0080] FIG7 is a schematic diagram of another information transmission method provided in an embodiment of the present application;

[0081] FIG8 is another schematic diagram of information transmission provided in an embodiment of the present application;

[0082] FIG9 is another schematic diagram of information transmission provided in an embodiment of the present application;

[0083] FIG10 is a schematic structural diagram of a function implementation device provided in an embodiment of the present application;

[0084] FIG11 is a schematic structural diagram of another function implementation device provided in an embodiment of the present application;

[0085] FIG12 is a schematic structural diagram of a function implementation device provided in an embodiment of the present application;

[0086] FIG13 is a schematic structural diagram of another function implementation device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0087] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.

[0088] With the rapid growth of data, storage systems have become a key link in carrying data. Storage systems can be divided into various forms such as centralized storage and distributed storage. Regardless of the form of the storage system, the storage system includes a client and a storage service. The client accesses the storage service through a network device to implement operations such as reading and writing data. Among them, the client and the storage service can both be computer devices, and the computer device includes a terminal or a server. For example, the client can be a terminal, and the storage service can be a server with storage capabilities; or, the client and the storage service are both servers. In this case, the network device mainly serves as a forwarding bridge for communication between the client and the storage service, and there is no collaboration between the network device and the storage system other than data forwarding. Therefore, in order to further optimize the storage system, the network device and the storage system can be designed collaboratively, for example, the functions of the storage system can be offloaded to the network device for implementation.

[0089] Taking the replica read and write function on the storage system as an example, the replica read and write function means that the storage system stores multiple copies of a piece of data in multiple storage nodes to ensure high reliability. Among them, the multiple storage nodes include a storage master node and at least one storage backup node. For example, after the storage master node receives the write data, it will write the copy corresponding to the write data to the storage backup node. In the related art, the specified information such as the storage address of the IO data in the storage system is preset in the network device by manual or automatic extraction. When the network device receives the IO data of the client performing a read and write operation to the storage service end, the network device will replicate the IO data in multiple copies according to the specified information such as the storage address of the IO data in the storage system, and send the replicated multiple copies to the corresponding storage addresses, thereby unloading the replica read and write function on the storage system to the network device.

[0090] However, the methods in the related art require pre-installing the specified information of the storage system into the network device. If the specified information changes, it must be re-installed into the network device, which makes the method of obtaining the specified information relatively simple. In addition, because different functions require different information, setting corresponding information transmission methods for different functions will lead to a complex information transmission method. Pre-installing all the information required to implement different functions into the network device will result in a waste of network resources.

[0091] An embodiment of the present application provides a function implementation method that can realize flexible information transmission and function implementation between a storage system and a network device. Referring to Figure 1, Figure 1 is a schematic diagram of an implementation environment of a function implementation method provided by an embodiment of the present application. As shown in Figure 1, the implementation environment includes multiple computer devices (4 are shown in Figure 1 as an example) and multiple network devices (4 are shown in Figure 1 as an example). In an embodiment of the present application, the computer device and the network device can be collaboratively designed so that the network device can realize the function on the computer device, and the computer device can realize the function on the network device, and the computer device includes a terminal or a server.

[0092] Among them, the computer device can be the initiator or recipient of the business, and the computer devices can communicate with each other through the network device. For example, in a storage system, the computer device refers to the client or storage service end, the client is also called the storage host client, and the storage service end is also called the storage server service end. Operations such as IO read and write are performed between the client and the storage service end, and the content targeted by the IO read and write operations can be called IO read and write content or storage content. The network device can be a switch or a router. Optionally, the implementation environment shown in Figure 1 can also include a control device, which is connected to each computer device and each network device for managing and controlling the network device and the computer device.

[0093] Refer to Figure 2, which is a module diagram of a device provided in an embodiment of the present application. The device can be a network device or a computer device. The device includes a monitoring module, an information transmission module and an information processing module. The information processing module can also be called an information optimization execution module. Among them, the monitoring module is used to obtain the hardware and software system information of the device. For example, the hardware and software system information of the network device may include device connection information, network performance information, etc., and the hardware and software system information of the computer device may include storage system health, IO read and write content and other information. The health of the storage system indicates the operating status of the storage system, that is, it indicates how long the storage system can survive. The information transmission module is used to receive hardware and software system information sent by other devices, or to send hardware and software system information to other devices. The information processing module is used to implement corresponding functions according to the hardware and software system information.

[0094] For example, referring to the module diagram of another device shown in FIG3 , the device may be a network device or a computer device, and the device includes a control plane and a forwarding plane, the control plane is mainly software-based, and the forwarding plane is mainly hardware-based. Optionally, the monitoring module may include a software monitoring module, a hardware monitoring module, a local information aggregation module, and an external information aggregation module. The software monitoring module may be deployed on the control plane to monitor and obtain software system information, and the hardware monitoring module may be deployed on the forwarding plane to monitor and obtain hardware system information. Alternatively, the software monitoring module and the hardware monitoring module may also be combined into the same software and hardware monitoring module, and the software and hardware monitoring module is used to monitor and obtain software and hardware system information, which is not limited in the embodiments of the present application. The local information aggregation module is used to collect software system information monitored by the software monitoring module and hardware system information monitored by the hardware monitoring module, and the external information aggregation module is used to collect software and hardware system information of other devices received through the information transmission module.

[0095] Optionally, an information transmission module can be deployed on the control plane to periodically send software and hardware system information to other devices based on information changes in the local information aggregation module or the external information aggregation module, and to receive software and hardware system information sent by other devices. Information processing modules can also be deployed on the control plane and forwarding plane. The information processing module on the control plane is used to process or process the received information, and the information processing module on the forwarding plane is used to parse or process the received or sent IO read and write content. In addition, the information processing module on the control plane and the information processing module on the forwarding plane are both used for function enablement and function execution.

[0096] The embodiments of the present application do not limit the application scenarios of the function implementation method. Optionally, the application scenario of the method can be a data center network, interconnection between multiple data centers, or wide area Internet. The business targeted by the method can be distributed machine learning training, distributed storage, artificial intelligence (AI), high performance computing (HPC) or high-performance business such as containers.

[0097] Referring to Figure 4, Figure 4 is a flowchart of a method for implementing a function provided in an embodiment of the present application, taking the interactive execution of the method by a first device and a second device as an example. For example, the method can be applied to the implementation environment shown in Figure 1, where the first device can be the computer device or network device shown in Figure 1, and the second device can be the computer device, network device, or control device shown in Figure 1, wherein the module structures of the first device and the second device can be as shown in Figure 2 or Figure 3. As shown in Figure 4, the method for implementing a function includes but is not limited to the following steps 401-403.

[0098] 401. The second device sends shared information to the first device. The shared information is information associated with a third device implementing a target function. The third device is of a different type from the first device.

[0099] In an embodiment of the present application, the third device is of a different type from the first device. For example, the third device is a network device and the first device is a computer device, or alternatively, the first device is a network device and the third device is a computer device. Optionally, the present embodiment does not limit the function type of the target function. The target function can be any function that can be implemented by the third device. The second device can be the same device as the third device or a different device. Regardless of whether the second device and the third device are the same device, the first device can obtain information associated with the third device implementing the target function. Optionally, before the second device sends shared information to the first device, the first device can subscribe to information from the second device. For example, the second device will receive a subscription request sent by the first device. The subscription request may include at least one of subscription content, information publishing policy, or subscription object; enabling the second device to send shared information corresponding to the subscription request to the first device based on the subscription request. The subscription content can indicate the content type of the shared information, the information publishing policy can indicate the triggering conditions for sending the shared information, and the subscription object can indicate the object that generates the shared information.

[0100] Exemplarily, the content type of the shared information indicated by the subscription content may include stored content, device connection information, network quality information, etc.; the trigger condition for sending shared information indicated by the information release policy may be to periodically send shared information according to the release cycle, and the release cycle may be set based on experience or flexibly adjusted according to the application scenario, or the information release policy may be to send shared information based on an event trigger, and the event may refer to the update, deletion or addition of shared information; the object for generating shared information indicated by the subscription object may be a third device. When the third device is different from the second device, the first device may subscribe to the shared information of other devices besides the second device to the second device, thereby realizing a method of subscribing to information of indirect objects and saving network transmission resources.

[0101] In the case where the first device sends multiple subscription requests, the second device can send shared information corresponding to each subscription request to the first device multiple times based on multiple subscription requests. Alternatively, the second device can integrate multiple subscription requests to obtain an integrated request, and send shared information to the first device based on the integrated request. In this case, the shared information is the shared information corresponding to the integrated request. This makes the method of the second device sending shared information to the first device based on the subscription request more flexible.

[0102] In one possible implementation, in addition to receiving the subscription request sent by the first device, the second device may also receive subscription requests sent by other devices. For example, the second device may receive multiple subscription requests sent by multiple subscribing devices. This allows the second device to statistically determine the correspondence between the subscribing devices and the subscription requests. A single subscribing device may correspond to one or more subscription requests. The second device then sends corresponding shared information to each subscribing device based on the correspondence between the subscribing device and the subscription request.

[0103] Exemplarily, the second device receives a subscription request sent by the subscribing device, and records the subscription information of the subscribing device according to the subscription request. For example, if the subscribing device is the first device, the subscription information of the first device is recorded. The subscription information of the first device may include the address of the first device, subscription content, information release policy, and subscription object. In this case, the second device may send the subscription content of the subscription object to the address of the first device according to the information release policy. For example, the subscription content is storage content, the information release policy is periodic release, and the subscription object is a third device, that is, the object subscribed by the first device is the third device, then the second device periodically sends the storage content stored on the third device to the first device. The storage content is business-level information, which can also be called IO read and write content.

[0104] In an embodiment of the present application, before the second device receives the subscription request sent by the first device, the second device may first publish at least one of subscribable content and subscription rights to the first device; the first device generates a subscription request to the first device based on at least one of the subscribable content and subscription rights. The subscribable content indicates the range of content that the second device can share, that is, the range of content of shared information that can be subscribed to and obtained from the second device. Exemplarily, after obtaining the subscription rights of the second device, the first device determines the subscription content based on the subscribable content published by the second device, so that the subscription content is within the range of the subscribable content. The subscription request generated by the subscribable content and subscription rights is more accurate, and the success rate of obtaining shared information based on the subscription request is higher.

[0105] Similarly, in addition to publishing at least one of the subscribable content and subscription rights to the first device, the second device can also publish at least one of the subscribable content and subscription rights to other devices other than the first device, so that other devices can also generate corresponding subscription requests based on at least one of the subscribable content and subscription rights. Since the first device actively initiates a subscription request to the second device to obtain shared information, and the second device passively sends the shared information subscribed by the first device to the first device based on the subscription request, the first device can represent the information initiator and the second device can represent the information passive. In an embodiment of the present application, before the information initiator initiates a subscription request to the information passive, the information initiator can establish a transmission channel to the information passive and transmit the subscription request based on the transmission channel.

[0106] The embodiments of the present application do not limit the type of transmission protocol of the established transmission channel. For example, the transmission channel can be established based on TCP, and the subscription request can be carried in a TCP message for transmission, wherein the second device can send the subscription permission to the first device during the process of establishing the TCP connection; or, the transmission channel can be established based on LLDP or UDP, and the subscription request can be carried in an LLDP or UDP message for transmission. Since LLDP or UDP does not require a connection to be established, the subscription permission can be sent to the first device after the second device receives the subscription request. Optionally, the established transmission channel is also used to transmit shared information, and therefore, the shared information can be carried in a TCP, LLDP or UDP message for transmission.

[0107] In one possible implementation, the manner in which the second device sends shared information to the first device includes, but is not limited to, information fragmentation transmission and information overall transmission. Overall information transmission refers to packaging the shared information into a message body for one-time transmission. A message body may include multiple messages, and a message body may be uniformly carried in LLDP, TCP, or storage IO protocols for transmission. Information fragmentation transmission refers to fragmenting the shared information according to different granularities of information, and distinguishing different fragmented information based on fragment identification (ID). The embodiment of this application does not limit the numbering method of the fragment ID, for example, a numerical sequence of 1, 2, 3... is used.

[0108] For example, for newly online devices on the network, since they need to synchronize all sharable information with other devices, the shared information of other devices can be sent to the online device through the method of overall information transmission. For devices that are already online, only the shared information related to the target function needs to be synchronized. Therefore, the specific fragmented information can be sent to the existing devices through the method of information fragmentation, which improves the effectiveness of information transmission, saves resources for transmitting unnecessary fragmented information, and thus improves the efficiency of function implementation.

[0109] In the scenario of information fragmentation transmission, the shared information may include at least one fragmentation information, and each fragmentation information includes a corresponding fragmentation ID. Exemplarily, at least one fragmentation information can be obtained according to the business level division, and then at least one fragmentation information may include system level information, network level information, protocol level information and business level information, etc. Among them, the system level information may include at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client end, and the software and hardware system information of the network device; the network level information may include the connection relationship between computer devices; the protocol level information may include IO storage address information, non-volatile memory express (NVMe) interface specification information, etc.; the business level information may include IO read and write content.

[0110] Optionally, when the shared information includes at least one shard information, the at least one shard information can be transmitted based on different transmission channels, for example, at least one shard information is carried on different transmission protocols for transmission. This can improve transmission efficiency and transmission flexibility, and the transmission protocol can be compatible with the storage system protocol, facilitating deployment. In addition, the at least one shard information can also be transmitted based on the same transmission channel, for example, at least one shard information is carried on the same transmission protocol for transmission, thereby simplifying the deployment of the transmission protocol.

[0111] Taking at least one fragmented information being transmitted over different transmission channels as an example, system-level information and network-level information, since they are irrelevant to the service, can be transmitted via the LLDP Layer 2 protocol. For example, the system-level information or network-level information can be extended and carried in the type, length, and value fields (TLV fields) of the LLDP message, and the second device and the first device encapsulate and parse the LLDP message according to the defined TLVs. In addition, since the LLDP Layer 2 protocol is used for information transmission between adjacent directly connected devices, information transmission between non-adjacent directly connected devices can be transmitted via the TCP protocol. For example, the system-level information or network-level information can be carried in the payload of the TCP message in a format negotiated between the second device and the first device.

[0112] As for protocol layer information and business layer information, since they are related to the business, they can be transmitted through storage protocols, and storage protocols include but are not limited to NVMe (NVMe over fabric) or small computer system interface (SCSI) based on fabric network. Among them, fabric network is a network architecture, and NVMe over fabrics is also called NVMe-oF, which is a protocol specification designed to use NVMe to connect the host to storage through the network structure. For example, in the case where the second device and the third device are the same computer device and the first device is a network device, taking the protocol layer information as IO storage address information as an example, the computer device can carry the IO storage address information in the IO read and write content of the storage protocol and pass it to the network device. The IO storage address information includes the correspondence between the IO identifier and the IO storage address. The network device obtains the protocol layer information by parsing the IO read and write content and records the protocol layer information locally.

[0113] Therefore, in the above-mentioned scenario of information fragment transmission, the subscription request may also include at least one fragment ID, which is used to indicate the identifier corresponding to at least one fragment information included in the shared information. Optionally, the fragment IDs also included in the subscription request are fragment 1 and fragment 2, and the shared information includes the first fragment information corresponding to fragment 1 and the second fragment information corresponding to fragment 2. Taking the example of the second device sending the first fragment information and the second fragment information of the third device to the first device based on the information change event, when one of the fragment information in the first fragment information and the second fragment information changes, the second device can only send the fragment information with the changed information to the first device, thereby reducing the amount of data transmitted.

[0114] Furthermore, for any fragment information in at least one fragment information, any fragment information can be further divided into multiple sub-fragment information, and fragment ID + sub-ID can be used to distinguish different sub-fragment information, for example, fragment 1 + sub-1 represents the first sub-fragment information in the first fragment information. The embodiment of the present application does not limit the method of dividing any fragment information into multiple sub-fragment information, for example, it can be divided according to the granularity of business type. Similarly, if any sub-fragment information in any fragment information changes, only the sub-fragment information with the changed information can be sent to the first device, further reducing the amount of data transmitted.

[0115] In an embodiment of the present application, for multiple network devices in a network, one or more of the multiple network devices can be configured as proxy devices, and the other network devices can be non-proxy devices. In this case, the non-proxy device can be the first device in the embodiment of the present application, and the proxy device can be the second device in the embodiment of the present application. The non-proxy device sends a subscription request to the proxy device, and the proxy device sends shared information corresponding to the subscription request to the non-proxy device. Alternatively, all of the multiple network devices in the network can be configured as proxy devices. In this case, the proxy device can be the first device in the embodiment of the present application, and the computer device or control device can be the second device in the embodiment of the present application.

[0116] Optionally, for complex networks, multiple levels of proxy devices can be configured. For example, in a three-layer network consisting of an access layer, an aggregation layer, and a core layer, the access layer can be configured with at least one level-one proxy device. In this case, the level-three proxy device can be the first device in the embodiment of the present application, and the level-two proxy device can be the second device in the embodiment of the present application. The level-three proxy device then sends a subscription request to the level-two proxy device, and the level-two proxy device then sends shared information corresponding to the subscription request to the level-three proxy device.

[0117] The embodiment of the present application does not limit the manner in which the second device obtains shared information. Since the manner in which the second device obtains shared information is related to the scenario in which the second device sends shared information to the first device, the manner in which the second device obtains shared information in different scenarios is illustrated below with reference to the information transmission diagrams shown in Figures 5-7.

[0118] In scenario 1, the first device is a network device and the second device is a computer device.

[0119] In this scenario, the first device, acting as the information active agent, is a network device, and the second device, acting as the information passive agent, is a computer device. For example, the first device is the network device (proxy) shown in FIG5 , which corresponds to the proxy device in the embodiment of the present application, and the second device is the computer device shown in FIG5 . As shown in FIG5 , the proxy device sends a subscription request to the computer device, and the computer device sends shared information to the proxy device, i.e., information publishing.

[0120] If the third device and the second device are the same device, for example, the computer device shown in Figure 5 , the shared information is information related to the second device's implementation of the target function. The second device can obtain the shared information by monitoring the information related to the second device's implementation of the target function. For example, using the second device shown in Figure 3 as an example, the second device monitors and obtains the shared information through at least one of a software monitoring module and a hardware monitoring module, and stores the shared information in the local information aggregation module.

[0121] If the third device is different from the second device, the third device can be any device other than the second device and the first device. The second device can obtain shared information by receiving shared information sent by the third device, and the shared information is obtained by the third device monitoring the information used by the third device to achieve the target function. For example, taking the second device as shown in Figure 3, the second device receives the shared information through the information transmission module, and the shared information is stored in the external information aggregation module. As a result, the first device can obtain shared information from the third device other than the second device, thus achieving indirect object information transmission.

[0122] In scenario two, the first device is a computer device, and the second device is a network device.

[0123] In this scenario 2, the first device, acting as the information active agent, is a computer device, and the second device, acting as the information passive agent, is a network device. For example, the first device is the computer device shown in FIG6 , and the second device is the network device (proxy) shown in FIG6 , where the network device (proxy) corresponds to the proxy device in the embodiment of the present application. As shown in FIG6 , the computer device sends a subscription request to the proxy device, and the proxy device sends shared information to the computer device, i.e., information publishing.

[0124] Optionally, the manner in which the second device obtains the shared information in scenario 2 may refer to the manner in which the second device obtains the shared information in scenario 1, which will not be described in detail here.

[0125] Scenario three: the first device is a network device or a computer device, and the second device is a control device.

[0126] In this scenario three, a control device is additionally deployed, and the control device is used to manage and control the network devices and computer devices in the network. As a result, the network devices and computer devices can negotiate through the control device, and the control device uniformly initiates operations such as function enabling or function disabling to the network devices and computer devices. Function enabling means that the function implementation method provided in the embodiment of the present application can be executed, and function disabling means that the function implementation method provided in the embodiment of the present application cannot be executed. Among them, the control device can be a network in-band device or a network out-band device. A network in-band device refers to a device that is managed and controlled using the network's communication lines, and a network out-band device refers to a device that is managed and controlled through an independent management channel, and the independent management channel does not belong to the network's communication lines.

[0127] For example, when the function is enabled, each network device and each computer device is configured with information such as the address of the control device. Each network device and each computer device establishes a transmission channel with the control device, allowing each network device and each computer device to transmit subscribing content obtained through monitoring to the control device. When any network device or computer device needs to obtain any subscribed content, it sends a subscription request to the control device. Based on the subscription request, the control device sends corresponding shared information to the network device or computer device.

[0128] As shown in Figure 7, the first device can be a network device (agent) or a computer device as shown in Figure 7, the network device (agent) corresponds to the agent device in the embodiment of the present application, and the second device can be the control device shown in Figure 7. In the case where the second device is a control device, the way for the second device to obtain shared information can be to receive shared information sent by a third device, and the shared information is obtained by the third device monitoring the information of the third device to achieve the target function. For example, taking the third device as the device shown in Figure 3 as an example, the third device obtains shared information through monitoring by at least one module in the software monitoring module or the hardware monitoring module, and the shared information is stored in the local information aggregation module, and the third device sends the shared information to the control device through the information transmission module. Among them, since the third device is of different types from the first device, if the first device is a network device, the third device is a computer device, and if the first device is a computer device, the third device is a network device.

[0129] Because the control device can be used to collect subscribable content from various network devices and computer devices, which can include service attribute information between computer devices or topology information between network devices, the control device can perform communication configuration based on the subscribable content sent by multiple devices to obtain configuration information corresponding to each of the multiple devices. This configuration information can include at least one of network device address information, network segment information, network device routing information, computer device address information, or domain information. The control device then distributes the corresponding configuration information to each of the multiple devices, thereby facilitating service data plane communication and enabling the transfer of shared information based on this configuration information.

[0130] When domain division is required, devices within the same domain can communicate with each other, while device information between different domains is isolated. Control devices can calculate domain information and issue configurations to network devices, ensuring interoperability between devices in different domains and achieving service domain division. Computer devices can belong to different domains based on their ports, enabling information interoperability within the same domain. Network devices can belong to one domain or multiple domains. For example, a network device directly connected to a computer device can belong to the same domain as the computer device, while an indirect network device and the computer device can belong to different domains.

[0131] For scenarios where devices are online, the online device can synchronize the address, business attributes, and other relevant information of the online device to the control device after establishing a link with the control device. The control device will then synchronize and make relevant configuration changes to the network devices and computer devices in the domain based on the relevant information of the online device. For scenarios where devices are offline, the control device can use the heartbeat keep-alive mechanism to detect whether the network device or computer device is offline. If no reply is received after sending the heartbeat message multiple times, it is determined that the corresponding device is offline, and the relevant information and changed configuration of the offline device can be synchronized to the network devices and computer devices in the domain. This enables plug-and-play of devices, and the device can refer to a network device or a computer device. Among them, establishing a link can refer to the establishment of the transmission channel mentioned above.

[0132] Optionally, the control device configures at least one proxy device for each device in the domain, and configures the address and other relevant information of the proxy device to non-proxy devices in the domain. The non-proxy devices in the domain then establish links with the proxy devices in the domain. Subsequently, information is transferred between the non-proxy devices in the domain and the proxy devices, and then the proxy devices collectively transfer information with the control device. If the control device detects that a proxy device has gone offline, it can reconfigure other devices in the domain as proxy devices and send a message update information to the non-proxy devices in the domain. The message update information includes the address and other relevant information of the newly configured proxy device. The other devices in the domain then re-establish links with the newly configured proxy device and delete the links with the offline proxy device.

[0133] In scenario 4, the first device and the second device are two different network devices.

[0134] In this scenario four, the first device as the information initiator is a network device, and the second device as the information passive device is also a network device, and what is realized is the information transmission between the two network devices. For example, the first device is the network device (non-proxy) shown in Figures 5-7, and the network device (non-proxy) corresponds to the non-proxy device in the embodiment of the present application. The second device is the network device (proxy) shown in Figures 5-7, and the network device (proxy) corresponds to the proxy device in the embodiment of the present application. As shown in Figures 5-7, the non-proxy device sends a subscription request to the proxy device, and the proxy device sends shared information to the non-proxy device, that is, information release.

[0135] Because the third device is of a different type than the first device, while the first device is a network device, the third device is a computer device, meaning that the third device is a different device from the second device. In this case, the second device can obtain shared information by receiving shared information sent by the third device, where the shared information is obtained by the third device monitoring information used by the third device to implement a target function. For example, the first device is the non-proxy device shown in FIG5 , the second device is the proxy device shown in FIG5 , and the third device is the computer device shown in FIG5 . The proxy device receives the shared information sent by the computer device through the computer device's information publishing process, and the proxy device then sends the shared information to the non-proxy device through the information publishing process.

[0136] Alternatively, the second device may obtain shared information by receiving shared information sent by the control device, the shared information being obtained by the third device through monitoring information on the third device's implementation of a target function, and then being sent by the third device to the control device. For example, the first device is the non-proxy device shown in FIG7 , the second device is the proxy device shown in FIG7 , and the third device is the computer device shown in FIG7 . The computer device sends the shared information obtained through monitoring to the control device, the control device sends the shared information to the proxy device through an information publishing process, and the proxy device then sends the shared information to the non-proxy device through an information publishing process.

[0137] In one possible implementation, a proxy device may receive multiple subscription requests from multiple subscribing devices, i.e., multiple non-proxy devices, including the first device. This allows the second device to statistically determine the correspondence between the subscribing devices and the subscription requests. In this case, the proxy device may obtain shared information corresponding to the multiple subscription requests by directly sending the multiple subscription requests to the control device and receiving multiple subscription information items issued by the control device based on the multiple subscription requests, the multiple subscription information items also including the shared information.

[0138] Alternatively, the proxy device may obtain shared information corresponding to multiple subscription requests by integrating the multiple subscription requests to obtain an integrated request; sending the integrated request to the control device, and receiving integrated information issued by the control device based on the integrated request, the integrated information including the shared information; and the proxy device splitting the integrated information based on the correspondence between the subscription device and the subscription request to obtain shared information corresponding to the first device. The proxy device splits the integrated information based on the correspondence between the subscription device and the subscription request, and can deliver the shared information to different subscription devices in a differentiated manner according to the different needs of different subscription devices.

[0139] In summary, through the examples described in scenarios one to four, the second device obtains information related to the third device achieving the target function, namely, shared information. For other possible scenarios, this embodiment of the application will not be given one by one. In this embodiment of the application, after obtaining the shared information, the second device can also perform pre-processing on the shared information, such as expiration processing, deduplication processing, or sorting processing, and then send the pre-processed shared information to the first device, thereby improving the accuracy of the transmitted shared information.

[0140] Exemplarily, for expiration processing, the message carrying the shared information may carry a generation time, and the second device may perform expiration processing on the shared information based on the generation time and the sending time or receiving time of the shared information. The generation time may be the time when the shared information is generated. Taking the shared information as load information as an example, the generation time may be the time when the load information is monitored; or, the generation time may be the time when the shared information is encapsulated into a message. For example, when the time difference between the generation time of the message carrying the shared information and the sending time of the shared information is greater than the expiration threshold, it is determined that the shared information is expired information, and the second device may identify the expired information and discard it, and no longer send an expiration message to the first device. The expiration threshold may be set based on experience, or flexibly adjusted according to the application scenario.

[0141] For deduplication processing, shared information can be transmitted based on the information ID. The information ID of shared information with different message contents is different. When the second device sends multiple shared information, it can identify duplicate information based on the information ID of the shared information and discard it, and no longer send duplicate messages to the first device; or, the first device receives shared information sent by multiple devices including the second device, and identifies duplicate information based on the information ID of the received shared information and discards it. For sorting processing, when the second device sends multiple shared information, the second device can adopt a priority queue mode to transmit each shared information in sequence according to the size of the priority, which can achieve the effect of giving priority to the transmission of specified shared information, thereby improving the flexibility of information transmission. The embodiment of the present application does not limit the method for determining the priority. Optionally, the priority can be determined based on the level of the subscribing device, the level of the subscription request, or the level of the subscription content.

[0142] 402. The first device obtains the shared information sent by the second device.

[0143] In an embodiment of the present application, through the above-mentioned step 401, the first device can receive the shared information sent by the second device. In addition, in addition to receiving the shared information sent by the second device, the first device also retains an active read mode in the storage system, and the shared information can also be obtained through the active read mode. That is, the method can enable the first device to obtain the shared information through the retained active read mode without executing step 401, so that the newly online or re-online device can quickly obtain the shared information without going through the subscription or information publishing process. Optionally, the first device reads the shared information from the second device through the read operation of the IO storage protocol.

[0144] For example, referring to the information transmission diagram shown in FIG8 , the first device as the information active party is the network device (proxy) shown in FIG8 , which corresponds to the proxy device in the embodiment of the present application, and the second device as the information passive party is the computer device shown in FIG8 , in which case the proxy device actively reads the shared information from the computer device through a read operation of the IO storage protocol. Alternatively, the first device as the information active party is the network device (non-proxy) shown in FIG8 , in which case the network device (non-proxy) corresponds to the non-proxy device in the embodiment of the present application, and the second device as the information passive party is the network device (proxy) shown in FIG8 , in which case the network device (proxy) corresponds to the proxy device in the embodiment of the present application, and the non-proxy device actively reads the shared information from the proxy device through a read operation of the IO storage protocol.

[0145] Referring to the information transmission diagram shown in FIG9 , the first device as the information active party is the computer device shown in FIG9 , and the second device as the information passive party is the network device (proxy) shown in FIG9 , the network device (proxy) corresponds to the proxy device in the embodiment of the present application, and the computer device actively reads the shared information from the proxy device through the read operation of the IO storage protocol. Alternatively, the first device as the information active party is the network device (non-proxy) shown in FIG9 , the network device (non-proxy) corresponds to the non-proxy device in the embodiment of the present application, and the second device as the information passive party is the network device (proxy) shown in FIG9 , the network device (proxy) corresponds to the proxy device in the embodiment of the present application, and the non-proxy device actively reads the shared information from the proxy device through the read operation of the IO storage protocol.

[0146] In one possible implementation, after the first device obtains the shared information sent by the second device, it can also return a confirmation message corresponding to the shared information to the second device to inform the second device that the shared information has been received, thereby improving the reliability of the transmission of the shared information. The transmission channel for the first device to return the confirmation message to the second device can be the same as the transmission channel for the second device to send the shared information to the first device, or a corresponding reply channel can be established for the transmission of the confirmation message. The reply channel can also be flexibly established based on TCP, LLDP or UDP, that is, the confirmation message can be carried in a TCP, LLDP or UDP message for transmission.

[0147] Optionally, the first device also retains an active write mode, and can also return a confirmation message corresponding to the shared information to the second device through the active write mode. For example, the first device writes a confirmation message to the second device through a write operation of the IO storage protocol. The write operation shown in Figures 8 or 9 will not be repeated here.

[0148] In an embodiment of the present application, on the basis of the first device acting as the information initiator and the second device acting as the information initiator, the second device can also act as the information initiator and the first device can also act as the information passive receiver to realize the two-way transmission of shared information. Optionally, taking the example of the first device obtaining the shared information sent by the second device as the first shared information, the first device can also act as the information passive receiver to send the second shared information subscribed by the second device to the second device. Taking the example of the subscription request sent by the first device to the second device as the first subscription request, the second device can also actively send the second subscription request to the first device, and the first device can passively send the second shared information subscribed by the second device to the second device based on the second subscription request.

[0149] The method for transmitting the second shared information from the first device to the second device is the same as the method for transmitting the first shared information from the second device to the first device described above, and will not be repeated here. In addition, if the first device still retains the active write mode, the method for transmitting the second shared information from the first device to the second device may also be that the first device writes the second shared message to the second device through a write operation of the IO storage protocol.

[0150] 403 : The first device implements the target function based on the shared information, or collaborates with the third device to implement the target function based on the shared information.

[0151] After obtaining the shared information, the first device can implement the corresponding target function based on the shared information. Since the target function was originally implemented by the third device, it is now transferred or offloaded to the first device for implementation, or the first and third devices collaborate to implement it. This allows the first device to assist the third device in implementing the target function, thereby enhancing the target function.

[0152] The following examples illustrate possible scenarios where different target functions can be achieved based on different shared information.

[0153] In case 1, shared information includes stored content.

[0154] In this case, the first device is a network device, and the third device is a computer device, which is, for example, a storage service client in a storage system. The storage content is business-level information, also known as IO read and write content. For example, the storage service client stores the storage content locally, or the storage service client backs up the storage content to other storage nodes to implement a storage function for the storage content. Therefore, the storage content is information associated with the storage function implemented by the storage service client.

[0155] In this case, the target function is achieved based on the shared information, including: storing the shared content in the network device so that the stored content can be read and written directly from the network device without accessing a third device. Among them, the network device adds a memory module for storing hot data, and the network device has IO read and write capabilities and can directly interact with the client for IO read and write. For example, after the network device obtains the storage content sent by the storage service end, the storage functions that can be achieved based on the storage content include but are not limited to the following functions A1-A3.

[0156] Function A1, hot data caching. That is, the network device caches hot data locally on the network device. Therefore, when the network device receives a read operation for hot data sent by the client, it can directly return the locally stored hot data to the client without having to query the storage service for hot data, which speeds up the reading efficiency of hot data; when the network device receives a write operation for hot data sent by the client, the network device can complete the write operation in the locally stored hot data and reply to the client, which speeds up the writing efficiency of hot data. The network device can aggregate the written content in batches and send it to the storage service synchronously. Among them, hot data refers to storage content with an access frequency higher than the frequency threshold. The frequency threshold can be set based on experience or flexibly adjusted according to the application scenario. The access frequency can refer to the frequency of IO reading and writing.

[0157] Function A2, data redundancy protection, means that the network device caches the storage service client's storage data locally. If the storage service client becomes inaccessible, the storage service client can restore the data from the backup cache on the network device, improving the reliability of the storage system.

[0158] Function A3, proxy storage. The network device can monitor the system status of the storage service client, such as garbage collection. When the network device detects that the system status of the storage service client has caused I / O read and write to slow down, for example, when the storage service client is performing garbage collection, the network device can write the client's storage content to the network device's local cache and immediately return a write completion message to the client to improve I / O read and write efficiency. After the storage service client completes garbage collection, the network device writes the cached storage content to the corresponding storage service client.

[0159] In the second case, the shared information includes the mapping relationship between storage content and storage location.

[0160] In the second case, the first device is a network device, and the third device is a computer device. The computer device is, for example, a storage service end in a storage system. The mapping relationship between the storage content and the storage location is protocol level information. The storage content can also be referred to as IO read and write content. The storage location can include the node identifier of the storage service end, the physical address of the storage hard disk in the storage service end, or the logical address. After the network device obtains the mapping relationship between the storage content and the storage location sent by the storage service end, the target functions that can be achieved based on the mapping relationship between the storage content and the storage location include but are not limited to the following functions B1-B4. The network device has the ability to parse round-trip data packets.

[0161] Function B1, intelligent IO routing. The storage controller to which the storage service belongs is responsible for handling the IO routing of the storage service. Based on the mapping relationship between storage content and storage location, the network device can directly send the IO routing corresponding to the storage content to the storage controller to which the storage service belongs to the corresponding storage location, reducing the forwarding of IO routing between storage controllers.

[0162] Function B2, EC or replication. The mapping relationship between storage content and storage locations includes the correspondence between the storage content and multiple backup storage locations. The network device parses the storage content in the round-trip data packet and, based on the mapping relationship between the storage content and the multiple backup storage locations, EC or replicates the storage content into multiple copies. The copies are then sent to the corresponding multiple backup storage locations. This reduces the EC or replication overhead between storage service clients and saves network bandwidth.

[0163] Function B3, sequencing. Network devices use the mapping between storage content and storage location to sequence and maintain the order of past data packets. This allows the storage service receiving the data packets to identify whether the data packets are out of order or lost based on the sequence number tags. If out of order, the storage service can reorder the data packets; if lost, the storage service can retransmit the data packets. This ensures data transmission consistency and reduces the storage service service's overhead in implementing sequencing.

[0164] Function B4, proxy metadata server function.

[0165] In a file storage system, before accessing file data, a client needs to query the metadata server for the storage location corresponding to the file data's metadata. The client then obtains the file data's metadata by accessing that storage location. Metadata is system data used to describe file system and file characteristics, including but not limited to file type, file size, access permissions, and data index information. In this context, the mapping between stored content and storage location refers to the mapping between metadata and storage location.

[0166] In an embodiment of the present application, the metadata server can send the mapping relationship between metadata and storage location as shared information to the network device, so that when the network device receives a read request or write request for accessing file data sent by the client, it directly queries the storage location corresponding to the metadata of the file data based on the mapping relationship between metadata and storage location, without having to query the metadata server, thereby realizing direct query of the access path, simplifying the access process of accessing file data, allowing the network device to proxy the function of the metadata server, and reducing the overhead of the metadata server.

[0167] In addition, the network device's function as a proxy metadata server also includes an order-preserving function. For example, when the network device receives write requests from multiple clients to access file data, it can sort the multiple write requests by reception time, first executing the first received write request. While executing the first received write request, it locks the remaining unexecuted write requests. After the first received write request is executed, it unlocks and executes the second received write request. This implements the metadata server's order-preserving function and further reduces metadata server overhead.

[0168] In case three, the shared information includes device connection information.

[0169] In this third scenario, the first device is a network device, and the third device is a computer device, such as a storage service client in a storage system. The device connection information is network-level information. After the network device obtains the device connection information, the target functions that can be implemented based on the device connection information include, but are not limited to, the following functions C1 through C4.

[0170] Function C1, load balancing. Device connection information includes the connection relationships between computer devices. Network devices can obtain network-wide connection information based on this information. From this, they can globally plan the transmission path for each connection, achieve load balancing between connections, and improve the load balancing capabilities of network devices.

[0171] Function C2, differentiated transmission. Device connection information includes the service attributes corresponding to each connection. Network devices determine the quality of service requirements for different storage contents based on this service attribute information. Based on the quality of service requirements, they configure different bandwidths and queuing priorities for different storage contents. This can be applied in critical security scenarios to achieve differentiated quality transmission.

[0172] Function C3, encryption or compression. Device connection information includes the encryption or compression policy corresponding to each connection. The network device can encrypt or compress past data packets based on this encryption or compression policy, helping the storage service implement the corresponding encryption or compression function. This reduces the encryption and compression processing overhead on the storage service and improves the security of service transmission.

[0173] Function C4, plug-and-play functionality. In the device online scenario, network devices can perform communication configuration based on the device connection information obtained from the online device, directly establishing network communication with the online device, and implementing plug-and-play functionality for the online device.

[0174] Case 4: The shared information is system status information.

[0175] In this fourth scenario, the first device is a network device, and the third device is a computer device, such as a storage service client or client in a storage system. The device connection information is system-level information. After the network device obtains system status information, the target functions that can be implemented based on the system status information include, but are not limited to, the following functions D1-D3.

[0176] Function D1, election or arbitration. The network device elects or arbitrates among multiple storage service clients based on their system status information to determine their roles. This reduces the protocol synchronization required for elections or arbitration between storage service clients, saving storage service client overhead.

[0177] Function D2, load balancing. System status information includes the load status of the storage service client. Network devices perform load balancing based on the load status of the storage service client, improving load balancing capabilities.

[0178] Function D3, system status monitoring. After obtaining system status information, network devices can monitor the health of computer devices through methods such as I / O read and write queue performance. If the health of a computer device deteriorates, appropriate action can be taken to ensure that the health of the computer device does not deteriorate.

[0179] Case 5: The shared information is fault information, network load information or network quality information.

[0180] In this fifth scenario, the first device is a computer device, and the third device is a network device. The network device transmits fault information indicating a network fault to the computer device, which then performs fault processing and service recovery based on the fault information, improving network reliability and implementing fault recovery. Alternatively, the network device transmits network load information or network quality information to the computer device. The network load information includes the load on the network device or the load on the link, and the network quality information includes information such as latency and throughput. The computer device implements routing based on the network load information or network quality information, i.e., selects a multipath strategy to balance the load across multiple paths.

[0181] In addition to the shared information and functions exemplified in Cases 1 to 5 above, the shared information may also be other types of information. Corresponding functions can be implemented based on other types of information, and the embodiments of this application will not be described in detail one by one.

[0182] The function implementation method provided in the embodiment of the present application is that the first device obtains the shared information associated with the target function implemented by the third device, so that the first device can implement the corresponding target function, that is, the target function of the third device is transferred or offloaded to the first device for implementation, making the implementation of the target function more flexible. Among them, the shared information is sent by the second device, making the way for the first device to obtain the shared information more flexible. In addition, different ways of information transmission between devices are provided, making the way for the first device to obtain shared information flexible, thereby improving the flexibility of implementing different functions.

[0183] The above introduces the function implementation method of the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides a function implementation device. Figure 10 is a structural diagram of a function implementation device provided by the embodiment of the present application, and the device is applied to a first device, and the first device is the first device shown in Figure 4 above. Based on the following multiple modules shown in Figure 10, the function implementation device shown in Figure 10 can perform all or part of the operations performed by the first device. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiment of the present application does not limit this. As shown in Figure 10, the device includes:

[0184] The transceiver module 1001 is configured to execute the reception and / or transmission related operations performed by the first device in the function implementation method shown in FIG4 ;

[0185] The processing module 1002 is configured to perform other operations besides the reception and / or transmission related operations performed by the first device in the function implementation method shown in FIG. 4 .

[0186] In a specific embodiment, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.

[0187] In one possible implementation, the transceiver module 1001 is configured to obtain shared information sent by the second device, where the shared information is information associated with a third device implementing a target function, and the third device is of a different type from the first device.

[0188] The processing module 1002 is configured to implement the target function based on the shared information, or to implement the target function in collaboration with a third device based on the shared information.

[0189] In one possible embodiment, the transceiver module 1001 is used to send a subscription request to the second device, where the subscription request includes at least one of subscription content, information publishing policy, or subscription object, where the subscription content indicates the content type of the shared information, the information publishing policy indicates the triggering conditions for sending the shared information, and the subscription object indicates the object that generates the shared information; and receive the shared information sent by the second device based on the subscription request.

[0190] In a possible implementation, the transceiver module 1001 is further configured to receive at least one of subscribeable content and subscription rights published by the second device; and generate a subscription request based on at least one of the subscribeable content and subscription rights.

[0191] In a possible implementation, the shared information is carried in a TCP, LLDP, or UDP message.

[0192] In one possible embodiment, the shared information includes at least one shard information, and the at least one shard information is obtained according to the business level division. The at least one shard information includes at least one of system level information, network level information, protocol level information or business level information. The system level information includes at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client, and the software and hardware system information of the network device. The network level information includes the connection relationship between computer devices. The protocol level information includes at least one of IO storage address information or NVMe information. The business level information includes IO read and write content.

[0193] In a possible implementation, the transceiver module 1001 is configured to read the shared information from the second device through a read operation in an IO storage protocol.

[0194] In one possible implementation, the first device is a network device, and the second device is a computer device; or, the first device is a computer device, and the second device is a network device; or, the first device and the second device are two different network devices; or, the first device is a network device or a computer device, and the second device is a control device.

[0195] In one possible implementation, the first device is a network device; the shared information includes storage content, and the target function includes a storage function; or, the shared information includes a mapping relationship between storage content and storage location, and the target function includes an EC or replication function, and the EC or replication function is used to store multiple copies corresponding to the storage content; or, the shared information includes device connection information, and the target function includes a load sharing function, and the device connection information includes a connection relationship between computer devices, and the load sharing function is used to balance the load between multiple connections.

[0196] In one possible implementation, the first device is a computer device; the shared information is fault information, and the target function is a fault recovery function; or, the shared information is network load information or network quality information, and the target function is a routing function, which is used to balance the load between multiple paths.

[0197] Figure 11 is a schematic diagram of the structure of a function implementation device provided in an embodiment of the present application, which is applied to a second device, which is the second device shown in Figure 4 above. Based on the following multiple modules shown in Figure 11, the function implementation device shown in Figure 11 can perform all or part of the operations performed by the second device. It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown therein, and the embodiment of the present application does not limit this. As shown in Figure 11, the device includes:

[0198] The transceiver module 1101 is configured to execute the reception and / or transmission related operations performed by the second device in the function implementation method shown in FIG4 ;

[0199] The processing module 1102 is configured to perform other operations other than the reception and / or transmission related operations performed by the second device in the function implementation method shown in FIG. 4 .

[0200] In a specific embodiment, the transceiver module includes a receiving module and / or a sending module. The receiving module is used to perform reception-related operations, and the sending module is used to perform sending-related operations.

[0201] In one possible embodiment, the transceiver module 1101 is used to send shared information to the first device, where the shared information is information associated with the third device to achieve the target function. The third device is of a different type from the first device. The shared information is used for the first device to achieve the target function based on the shared information, or the shared information is used for the first device to collaborate with the third device to achieve the target function based on the shared information.

[0202] In one possible embodiment, the transceiver module 1101 is also used to receive a subscription request sent by the first device, where the subscription request includes at least one of subscription content, information publishing strategy or subscription object, where the subscription content indicates the content type of the shared information, the information publishing strategy indicates the triggering conditions for sending the shared information, and the subscription object indicates the object that generates the shared information; and the shared information is sent to the first device based on the subscription request.

[0203] In a possible implementation, there are multiple subscription requests, and the processing module 1102 is configured to integrate the multiple subscription requests to obtain an integrated request; and the transceiver module 1101 is configured to send shared information to the first device based on the integrated request.

[0204] In a possible implementation, the transceiver module 1101 is further configured to publish at least one of subscribeable content and subscription rights to the first device, and the at least one of the subscribeable content and subscription rights is used by the first device to generate a subscription request.

[0205] In a possible implementation, the shared information is carried in a TCP, LLDP, or UDP message.

[0206] In one possible embodiment, the shared information includes at least one shard information, and the at least one shard information is obtained according to the business level division. The at least one shard information includes at least one of system level information, network level information, protocol level information or business level information. The system level information includes at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client, and the software and hardware system information of the network device. The network level information includes the connection relationship between computer devices. The protocol level information includes at least one of IO storage address information or NVMe information. The business level information includes IO read and write content.

[0207] In one possible implementation, the first device is a network device, and the second device is a computer device; or, the first device is a computer device, and the second device is a network device; or, the first device and the second device are two different network devices; or, the first device is a network device or a computer device, and the second device is a control device.

[0208] In a possible implementation, the second device is different from the third device; the transceiver module 1101 is further configured to receive shared information sent by the third device, where the shared information is obtained by the third device monitoring information on the third device implementing a target function.

[0209] In one possible implementation, the second device is a network device, and the second device is different from the third device; the transceiver module is also used to receive shared information sent by the control device, and the shared information is obtained by the third device by monitoring the information of the third device to achieve the target function, and is sent by the third device to the control device.

[0210] In one possible implementation, the second device is a network device, and the second device is different from the third device; the transceiver module 1101 is further configured to receive multiple subscription requests sent by multiple subscription devices; the processing module 1102 is further configured to integrate the multiple subscription requests to obtain an integrated request, and the multiple subscription devices include the first device;

[0211] The transceiver module 1101 is further configured to send an integration request to the control device and receive integration information sent by the control device based on the integration request, where the integration information includes shared information;

[0212] The processing module 1102 is further configured to split the integrated information based on the correspondence between the subscription device and the subscription request to obtain the shared information corresponding to the first device.

[0213] In one possible implementation, the second device is a network device, and the second device is different from the third device; the transceiver module 1101 is also used to receive multiple subscription requests sent by multiple subscription devices, and the multiple subscription devices include the first device; send multiple subscription requests to the control device, and receive multiple subscription information issued by the control device based on the multiple subscription requests, and the multiple subscription information includes shared information.

[0214] In one possible implementation, the second device is a control device; the transceiver module 1101 is further used to receive subscribable content sent by multiple devices; the processing module 1102 is further used to perform communication configuration based on the subscribable content of multiple devices, and obtain configuration information corresponding to the multiple devices, the configuration information including at least one of network device address information, network segment information, network device routing information, computer device address information or domain information; and send corresponding configuration information to the multiple devices respectively, and the configuration information is used to transmit shared information.

[0215] It should be understood that the devices provided in Figures 10 and 11 above are only illustrated by the division of the above functional modules when implementing their functions. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the devices and method embodiments provided in the above embodiments belong to the same concept. The specific implementation process and the effects produced are detailed in the method embodiments and will not be repeated here.

[0216] Referring to Figure 12 , Figure 12 shows a schematic diagram of the structure of a function implementation device 2000 provided in an exemplary embodiment of the present application. The function implementation device 2000 shown in Figure 12 is used to perform the operations involved in the function implementation method shown in Figure 4 . The function implementation device 2000 is, for example, a computer device, a switch, a router, etc., and can be implemented using a general bus architecture.

[0217] As shown in FIG. 12 , the function implementation device 2000 includes at least one processor 2001 , a memory 2003 , and at least one communication interface 2004 .

[0218] The processor 2001 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application. For example, the processor 2001 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. The PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present invention. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.

[0219] Optionally, function implementation device 2000 further includes a bus. The bus is used to transmit information between the components of function implementation device 2000. The bus may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, for example. Buses can be classified as address buses, data buses, control buses, and the like. For ease of illustration, FIG12 shows only one line, but this does not imply that there is only one bus or only one type of bus.

[0220] The memory 2003 is, for example, a read-only memory (ROM) or other type of static storage device that can store static information and instructions, or a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 2003 is, for example, independent and connected to the processor 2001 via a bus. The memory 2003 can also be integrated with the processor 2001.

[0221] The communication interface 2004 uses any transceiver-like device to communicate with other devices or communication networks. The communication network can be Ethernet, a radio access network (RAN), or a wireless local area network (WLAN). The communication interface 2004 can include a wired communication interface and a wireless communication interface. Specifically, the communication interface 2004 can be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, an Asynchronous Transfer Mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In the embodiment of the present application, the communication interface 2004 can be used for the function implementation device 2000 to communicate with other devices.

[0222] In a specific implementation, as an embodiment, the processor 2001 may include one or more CPUs, such as CPU0 and CPU1 shown in FIG12 . Each of these processors may be a single-core CPU processor or a multi-core CPU processor. The processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).

[0223] In a specific implementation, as an embodiment, the function implementation device 2000 may include multiple processors, such as processor 2001 and processor 2005 shown in Figure 12. Each of these processors can be a single-core processor (single-core CPU) or a multi-core processor (multi-core CPU). The processor here can refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0224] In a specific implementation, as an embodiment, the function implementation device 2000 may further include an output device and an input device. The output device communicates with the processor 2001 and can display information in a variety of ways. For example, the output device can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 2001 and can receive user input in a variety of ways. For example, the input device can be a mouse, a keyboard, a touch screen device, or a sensor device.

[0225] In some embodiments, the memory 2003 is used to store program code 2010 for executing the solution of the present application, and the processor 2001 can execute the program code 2010 stored in the memory 2003. In other words, the function implementation device 2000 can implement the function implementation method provided by the method embodiment through the processor 2001 and the program code 2010 in the memory 2003. The program code 2010 may include one or more software modules. Optionally, the processor 2001 itself may also store program code or instructions for executing the solution of the present application.

[0226] In a specific embodiment, the function implementation device 2000 of the embodiment of the present application may correspond to the first network device in the above-mentioned method embodiments. The processor 2001 in the function implementation device 2000 reads the instructions in the memory 2003, so that the function implementation device 2000 shown in Figure 12 can execute all or part of the operations performed by the first device.

[0227] Specifically, the processor 2001 is configured to obtain shared information sent by the second device; implement a target function based on the shared information, or collaborate with a third device to implement the target function based on the shared information. The shared information is information associated with implementing the target function on the third device, and the third device is of a different type than the first device.

[0228] For the sake of brevity, other optional implementations will not be described here in detail.

[0229] For another example, the function implementation device 2000 of an embodiment of the present application may correspond to the second device in each of the above-mentioned method embodiments. The processor 2001 in the function implementation device 2000 reads the instructions in the memory 2003, so that the function implementation device 2000 shown in Figure 12 can execute all or part of the operations performed by the second device.

[0230] Specifically, processor 2001 is used to send shared information to the first device, where the shared information is information associated with the third device to achieve the target function. The third device is of a different type from the first device. The shared information is used by the first device to achieve the target function based on the shared information, or the shared information is used by the first device to collaborate with the third device to achieve the target function based on the shared information.

[0231] For the sake of brevity, other optional implementations will not be described here in detail.

[0232] The function implementation device 2000 may also correspond to the function implementation apparatus shown in FIG10 and FIG11 , and each functional module in the function implementation apparatus is implemented using the software of the function implementation apparatus 2000. In other words, the functional modules included in the function implementation apparatus are generated by the processor 2001 of the function implementation apparatus 2000 after reading the program code 2010 stored in the memory 2003.

[0233] Among them, each step of the function implementation method shown in Figure 4 is completed by the hardware integrated logic circuit or software instructions in the processor of the function implementation device 2000. The steps of the method disclosed in conjunction with the embodiment of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.

[0234] Referring to Figure 13 , Figure 13 shows a schematic structural diagram of a function implementation device 2100 provided in another exemplary embodiment of the present application. The function implementation device 2100 shown in Figure 13 is used to perform all or part of the operations involved in the function implementation method shown in Figure 4 . The function implementation device 2100 is, for example, a switch, a router, etc., and can be implemented using a general bus architecture.

[0235] As shown in FIG. 13 , the function implementation device 2100 includes a main control board 2110 and an interface board 2130 .

[0236] The main control board (MCB), also known as the main processing unit (MPU) or route processor card, is used to control and manage the various components in the function implementation device 2100, including routing calculations, device management, device maintenance, and protocol processing. MCB 2110 includes a central processing unit (CPU) 2111 and memory 2112.

[0237] Interface board 2130 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET / SDH) interfaces. Ethernet interfaces, for example, are Flexible Ethernet Clients (FlexE Clients) interfaces. Interface board 2130 includes a central processing unit (CPU) 2131, a network processor (NPU) 2132, a forwarding table memory 2134, and a physical interface card (PIC) 2133.

[0238] The central processing unit 2131 on the interface board 2130 is used to control and manage the interface board 2130 and communicate with the central processing unit 2111 on the main control board 2110 .

[0239] The network processor 2132 is used to implement message forwarding processing. The network processor 2132 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Specifically, the network processor 2132 is used to forward received messages based on the forwarding table stored in the forwarding entry memory 2134. If the destination address of the message is the address of the function implementation device 2100, the message is sent to the CPU (such as the central processing unit 2131) for processing. If the destination address of the message is not the address of the function implementation device 2100, the next hop and outgoing interface corresponding to the destination address are searched in the forwarding table based on the destination address, and the message is forwarded to the outgoing interface corresponding to the destination address. The processing of uplink messages may include processing the message inbound interface and forwarding table lookup; the processing of downlink messages may include forwarding table lookup, etc. In some embodiments, the central processing unit may also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, thereby eliminating the need for a forwarding chip in the interface board.

[0240] Physical interface card 2133 implements physical layer interconnection. Raw traffic enters interface board 2130 through this card, and processed packets are sent out from this physical interface card 2133. Physical interface card 2133, also known as a daughter card, can be installed on interface board 2130. It converts optical and electrical signals into packets, performs a validity check on these packets, and then forwards them to network processor 2132 for processing. In some embodiments, central processing unit 2131 can also perform the functions of network processor 2132, such as implementing software forwarding based on a general-purpose CPU, thus eliminating the need for network processor 2132 in physical interface card 2133.

[0241] Optionally, the function implementation device 2100 includes multiple interface boards. For example, the function implementation device 2100 further includes an interface board 2140. The interface board 2140 includes a central processing unit 2141, a network processor 2142, a forwarding table entry memory 2144, and a physical interface card 2143. The functions and implementation methods of the components in the interface board 2140 are the same as or similar to those of the interface board 2130 and are not described in detail here.

[0242] Optionally, function implementation device 2100 further includes a switch fabric board 2120. Switch fabric board 2120 may also be referred to as a switch fabric unit (SFU). If function implementation device 2100 includes multiple interface boards, switch fabric board 2120 is used to exchange data between the interface boards. For example, interface board 2130 and interface board 2140 can communicate via switch fabric board 2120.

[0243] The main control board 2110 is coupled to the interface board. For example, the main control board 2110, the interface board 2130, the interface board 2140, and the switching network board 2120 are connected to the system backplane via a system bus to achieve intercommunication. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 2110 and the interface boards 2130 and 2140, and communication is performed between the main control board 2110 and the interface boards 2130 and 2140 via the IPC channel.

[0244] Logically, the function implementation device 2100 includes a control plane and a forwarding plane. The control plane includes a main control board 2110 and a central processing unit 2111. The forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 2134, a physical interface card 2133, and a network processor 2132. The control plane performs functions such as routing, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining network device status. The control plane sends the generated forwarding tables to the forwarding plane. On the forwarding plane, the network processor 2132 forwards messages received by the physical interface card 2133 based on the forwarding tables sent by the control plane. The forwarding tables sent by the control plane can be stored in the forwarding table entry memory 2134. In some embodiments, the control plane and forwarding plane can be completely separate and not located on the same network device.

[0245] It's worth noting that there may be one or more main control boards (SPUs), which can include both active and standby SPUs. There may also be one or more interface boards. The higher the network device's data processing capabilities, the more interface boards it provides. Interface boards can also have one or more physical interface cards. There may be no SPUs, one or more SPUs, and multiple SPUs can provide load balancing and redundancy. In a centralized forwarding architecture, network devices may not require SPUs; the interface boards handle service data processing for the entire system. In a distributed forwarding architecture, network devices may have at least one SPU, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, network devices with distributed architectures have greater data access and processing capabilities than those with centralized architectures. Alternatively, a network device can consist of a single card, without a switching fabric board (SFB), integrating the functions of the interface board and the main control board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU on this card, performing the combined functions of the two. This type of network device has lower data exchange and processing capabilities (for example, low-end network devices such as switches or routers). The specific architecture used depends on the specific network deployment scenario and is not specified here.

[0246] In a specific embodiment, the function implementation device 2100 corresponds to the function implementation apparatus applied to the first device shown in Figure 10. In some embodiments, the transceiver module 1001 in the function implementation apparatus shown in Figure 10 corresponds to the physical interface card 2133 in the function implementation device 2100, and the processing module 1002 corresponds to the central processing unit 2111 or the network processor 2132 in the function implementation device 2100.

[0247] In some embodiments, the function implementation device 2100 further corresponds to the function implementation apparatus applied to the second device shown in FIG11 . In some embodiments, the transceiver module 1101 in the function implementation apparatus shown in FIG11 corresponds to the physical interface card 2133 in the function implementation device 2100 , and the processing module 1102 corresponds to the central processing unit 2111 or the network processor 2132 in the function implementation device 2100 .

[0248] The present application also provides a function implementation system, comprising a first device and a second device. Optionally, the first device is the function implementation device 2000 shown in FIG. 12 or the function implementation device 2100 shown in FIG. 13 , and the second device is the function implementation device 2000 shown in FIG. 12 or the function implementation device 2100 shown in FIG. The function implementation methods performed by the first and second devices can be found in the description of the embodiment shown in FIG. 4 above, and will not be further elaborated here.

[0249] An embodiment of the present application further provides a communication device, comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path. The memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals. When the processor executes the instructions stored in the memory, the processor executes the method required to be executed by the first device.

[0250] An embodiment of the present application further provides a communication device, comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path. The memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals. When the processor executes the instructions stored in the memory, the processor executes the method required to be executed by the second device.

[0251] It should be understood that the processor may be a CPU, or other general-purpose processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor that supports the Advanced Reduced Instruction Set Machine (ARM) architecture.

[0252] Furthermore, in an optional embodiment, the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. The memory may also include a non-volatile random access memory. For example, the memory may also store device type information.

[0253] The memory may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. Non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may be random access memory (RAM), which is used as an external cache memory. By way of example and not limitation, many forms of RAM are available. For example, static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronized dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0254] An embodiment of the present application also provides a computer-readable storage medium, in which at least one instruction is stored. The instruction is loaded and executed by a processor to enable a computer to implement any of the above function implementation methods.

[0255] The embodiments of the present application further provide a computer program (product), which, when executed by a computer, can enable a processor or computer to execute the corresponding steps and / or processes in the above method embodiments.

[0256] An embodiment of the present application also provides a chip, including a processor, for calling and executing instructions stored in a memory, so that a communication device equipped with the chip executes any of the above function implementation methods.

[0257] An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute any of the above function implementation methods.

[0258] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions according to the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive).

[0259] Those skilled in the art will appreciate that the various method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0260] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or may be accomplished by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0261] When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or split between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.

[0262] The computer program code for realizing the method for the embodiment of the application can be written in one or more programming languages.These computer program codes can be provided to the processor of general-purpose computer, special-purpose computer or other programmable data processing device, so that program code, when being executed by computer or other programmable data processing device, causes the function / operation specified in flow chart and / or block diagram to be implemented.Program code can be executed completely on computer, partly on computer, as independent software package, partly on computer and partly on remote computer or completely on remote computer or server.

[0263] In the context of the embodiments of the present application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.

[0264] Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.

[0265] A machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.

[0266] Those skilled in the art will clearly understand that, for the sake of convenience and brevity of description, the specific working processes of the above-described systems, devices, and modules can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0267] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or can be electrical, mechanical or other forms of connection.

[0268] The modules described as separate components may or may not be physically separate, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0269] In addition, the functional modules in the various embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into a single module. The above-mentioned integrated modules may be implemented in the form of hardware or software functional modules.

[0270] If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0271] In this application, the terms "first", "second", etc. are used to distinguish between identical or similar items that have substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there any limitation on quantity or execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. The first image and the second image may both be images, and in some cases, may be separate and different images.

[0272] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0273] In this application, the term "at least one" means one or more, and the term "plurality" means two or more. For example, "plurality of second messages" means two or more second messages. The terms "system" and "network" are often used interchangeably herein.

[0274] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.

[0275] It should also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the listed items. The term "and / or" describes an association between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character " / " in this application generally indicates that the associated objects are in an "or" relationship.

[0276] It will also be understood that the term “comprise” (also known as “includes,” “including,” “comprises,” and / or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0277] It should also be understood that the terms “if” and “if” may be interpreted to mean “when” or “upon” or “in response to determining” or “in response to detecting.” Similarly, the phrases “if it is determined that ” or “if [stated condition or event] is detected” may be interpreted to mean “upon determining ” or “in response to determining ” or “upon detecting [stated condition or event]” or “in response to detecting [stated condition or event],” depending on the context.

[0278] It should be understood that determining B based on A does not mean determining B based solely on A. B can also be determined based on A and / or other information.

[0279] It should also be understood that references throughout this specification to "one embodiment," "an embodiment," or "one possible implementation" mean that specific features, structures, or characteristics associated with that embodiment or implementation are included in at least one embodiment of the present application. Therefore, the appearance of "in one embodiment," "in an embodiment," or "one possible implementation" throughout this specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0280] The above description is only an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the principles of the present application should be included in the scope of protection of the present application.

Claims

1. A method for realizing a function, It is characterized in that Applied to a first device, the method includes: Acquire shared information sent by the second device, where the shared information is information associated with a third device implementing a target function, and the third device is of a different type from the first device; The target function is implemented based on the shared information, or the target function is implemented in collaboration with the third device based on the shared information.

2. The method according to claim 1, It is characterized in that The obtaining the shared information sent by the second device includes: Sending a subscription request to the second device, the subscription request including at least one of subscription content, information publishing policy, or subscription object, the subscription content indicating the content type of the shared information, the information publishing policy indicating the triggering condition for sending the shared information, and the subscription object indicating the object generating the shared information; Receive the shared information sent by the second device based on the subscription request.

3. The method according to claim 2, It is characterized in that Before sending the subscription request to the second device, the method further includes: receiving at least one of subscribeable content and subscription rights published by the second device; The subscription request is generated based on at least one of the subscribable content and the subscription right.

4. The method according to any one of claims 1 to 3, It is characterized in that The shared information is carried in a message of the Transmission Control Protocol TCP, the Link Layer Discovery Protocol LLDP or the User Datagram Protocol UDP.

5. The method according to any one of claims 1 to 4, It is characterized in that The shared information includes at least one shard information, and the at least one shard information is obtained according to the business level division. The at least one shard information includes at least one of system level information, network level information, protocol level information or business level information. The system level information includes at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client end, and the software and hardware system information of the network device. The network level information includes the connection relationship between computer devices. The protocol level information includes at least one of the input / output IO storage address information or the non-volatile memory interface specification NVMe information. The business level information includes IO read and write content.

6. The method according to claim 1, It is characterized in that The obtaining the shared information sent by the second device includes: The shared information is read from the second device through a read operation in an input / output (IO) storage protocol.

7. The method according to any one of claims 1 to 6, It is characterized in that The first device is a network device, and the second device is a computer device; or, the first device is a computer device, and the second device is a network device; or, the first device and the second device are two different network devices; or, the first device is a network device or a computer device, and the second device is a control device.

8. The method according to any one of claims 1 to 7, It is characterized in that The first device is a network device; The shared information includes storage content, and the target function includes a storage function; Alternatively, the shared information includes a mapping relationship between storage content and storage location, and the target function includes an erasure code EC or a replication function, and the EC or replication function is used to store multiple copies corresponding to the storage content; Alternatively, the shared information includes device connection information, the target function includes a load sharing function, the device connection information includes a connection relationship between computer devices, and the load sharing function is used to balance the load between multiple connections.

9. The method according to any one of claims 1 to 7, It is characterized in that The first device is a computer device; The shared information is fault information, and the target function is a fault recovery function; Alternatively, the shared information is network load information or network quality information, and the target function is a routing function, and the routing function is used to balance the load between multiple paths.

10. A method for realizing a function, It is characterized in that Applied to the second device, the method includes: Sending shared information to a first device, where the shared information is information associated with a third device realizing a target function, where the third device is of a different type from the first device, and the shared information is used by the first device to realize the target function based on the shared information, or the shared information is used by the first device to collaboratively realize the target function with the third device based on the shared information.

11. The method according to claim 10, It is characterized in that Before sending the shared information to the first device, the method further includes: receiving a subscription request sent by the first device, the subscription request including at least one of subscription content, information publishing policy, or subscription object, the subscription content indicating a content type of the shared information, the information publishing policy indicating a triggering condition for sending the shared information, and the subscription object indicating an object generating the shared information; The shared information is sent to the first device based on the subscription request.

12. The method according to claim 11, It is characterized in that The number of the subscription requests is multiple, and the sending the shared information to the first device based on the subscription requests includes: A plurality of subscription requests are integrated to obtain an integrated request, and the shared information is sent to the first device based on the integrated request.

13. The method according to claim 11 or 12, It is characterized in that Before sending the shared information to the first device, the method further includes: At least one of subscribeable content and subscription rights is published to the first device, where the at least one of the subscribeable content and the subscription rights is used by the first device to generate the subscription request.

14. The method according to any one of claims 10 to 13, It is characterized in that The shared information is carried in a message of the Transmission Control Protocol TCP, the Link Layer Discovery Protocol LLDP or the User Datagram Protocol UDP.

15. The method according to any one of claims 10 to 14, It is characterized in that The shared information includes at least one shard information, and the at least one shard information is obtained according to the business level division. The at least one shard information includes at least one of system level information, network level information, protocol level information or business level information. The system level information includes at least one of the software and hardware system information of the storage service end, the software and hardware system information of the client end, and the software and hardware system information of the network device. The network level information includes the connection relationship between computer devices. The protocol level information includes at least one of the input / output IO storage address information or the non-volatile memory interface specification NVMe information. The business level information includes IO read and write content.

16. The method according to any one of claims 10 to 15, It is characterized in that The first device is a network device, and the second device is a computer device; or, the first device is a computer device, and the second device is a network device; or, the first device and the second device are two different network devices; or, the first device is a network device or a computer device, and the second device is a control device.

17. The method according to any one of claims 10 to 15, It is characterized in that The second device is different from the third device; before sending the shared information to the first device, the method further includes: The shared information sent by the third device is received, where the shared information is obtained by the third device monitoring information of the third device implementing the target function.

18. The method according to any one of claims 10 to 15, It is characterized in that The second device is a network device, and the second device is different from the third device; before sending the shared information to the first device, the method further includes: The shared information sent by the control device is received, where the shared information is obtained by the third device monitoring the information of the third device implementing the target function, and is sent by the third device to the control device.

19. The method according to any one of claims 10 to 15, It is characterized in that The second device is a network device, and the second device is different from the third device; before sending the shared information to the first device, the method further includes: receiving a plurality of subscription requests sent by a plurality of subscription devices, and integrating the plurality of subscription requests to obtain an integrated request, wherein the plurality of subscription devices include the first device; Sending the integration request to the control device, and receiving integration information sent by the control device based on the integration request, wherein the integration information includes the shared information; The integrated information is split based on the correspondence between the subscription device and the subscription request to obtain the shared information corresponding to the first device.

20. The method according to any one of claims 10 to 15, It is characterized in that The second device is a network device, and the second device is different from the third device; before sending the shared information to the first device, the method further includes: receiving a plurality of subscription requests sent by a plurality of subscription devices, the plurality of subscription devices including the first device; The multiple subscription requests are sent to the control device, and multiple subscription information respectively issued by the control device based on the multiple subscription requests is received, where the multiple subscription information includes the shared information.

21. The method according to any one of claims 10 to 15, It is characterized in that The second device is a control device; before sending the shared information to the first device, the method further includes: Receive subscribing content sent by multiple devices; Perform communication configuration based on the subscribable contents of the multiple devices, and obtain configuration information corresponding to the multiple devices respectively, wherein the configuration information includes at least one of network device address information, network segment information, network device routing information, computer device address information, or domain information; Corresponding configuration information is respectively issued to the multiple devices, where the configuration information is used to transmit the shared information.

22. A function realization device, It is characterized in that The device is applied to a first device, and includes: A transceiver module, used to perform the reception and / or transmission related operations performed by the first device in the function implementation method according to any one of claims 1 to 9; A processing module, used to perform other operations besides the receiving and / or sending related operations performed by the first device in the function implementation method described in any one of claims 1-9.

23. A function realization device, It is characterized in that The device is applied to a second device, and includes: A transceiver module, used to perform the reception and / or transmission related operations performed by the second device in the function implementation method according to any one of claims 10 to 21; A processing module, used to perform other operations besides the receiving and / or sending related operations performed by the second device in the function implementation method described in any one of claims 10-21.

24. A function implementation device, It is characterized in that The function implementation device includes: a processor, the processor is coupled to a memory, the memory stores at least one program instruction or code, and the at least one program instruction or code is loaded and executed by the processor so that the function implementation device implements the function implementation method described in any one of claims 1-9, or so that the function implementation device implements the function implementation method described in any one of claims 10-21.

25. A function realization system, It is characterized in that The function implementation system includes a first device and a second device; The first device is used to execute the function implementation method described in any one of claims 1-9, and the second device is used to execute the function implementation method described in any one of claims 10-21.

26. A computer-readable storage medium, It is characterized in that The computer storage medium stores at least one instruction, and the at least one instruction is loaded and executed by the processor so that the computer implements the function implementation method as described in any one of claims 1-21.

27. A computer program product, It is characterized in that The computer program product includes: computer program code, which is loaded and executed by a computer to enable the computer to implement the function implementation method described in any one of claims 1-21.

Citation Information

Patent Citations

  • Traffic offload method, traffic offload function entities and traffic offload system

    CN102118789A

  • Information processing device, information processing method, and information processing system

    CN105190575A

  • Storage management method, node, computer storage medium and system

    CN113971167A

  • Apparatus, method and computer program product for efficient software-defined network accelerated processing using storage devices which are local relative to a host

    US20220334989A1