A communication method, apparatus and storage medium

By installing data processing units on compute and storage nodes, encapsulating VirtIO-BLK messages into UDP messages, and processing them using internal modules of the DPU, the bottleneck problem of the DPU's onboard SoC storage client was solved, improving storage performance and system computing power while controlling power consumption.

CN120881177BActive Publication Date: 2026-01-23CHINA MOBILE (SUZHOU) SOFTWARE TECH CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511373937.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-24
Publication Date
2026-01-23
Estimated Expiration
2045-09-24

AI Technical Summary

Technical Problem

The power consumption limit, limited number of cores, and restricted memory capacity of the DPU onboard SoC create bottlenecks in the operation of storage clients, affecting storage performance.

Method used

By installing data processing units on both compute and storage nodes, VirtIO-BLK messages are encapsulated into UDP messages for transmission. The DPU's internal CRC calculation module and lossless IO module ensure data consistency and reliability, and VirtIO-BLK messages are processed directly, avoiding delays caused by multiple software processing steps.

Benefits of technology

It eliminates the bottleneck of the onboard SoC running storage client, improves storage performance, reduces overall IO latency, frees up CPU resources of the host machine, improves system computing power, and controls the power consumption of the DPU board within the PCIe power supply limit.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120881177B_ABST
    Figure CN120881177B_ABST
Patent Text Reader

Abstract

The application provides a communication method, device and storage medium, which are applied to a first data processing unit in a computing node. The method comprises the following steps: obtaining a first message sent by a first host in the computing node, and encapsulating the first message into a second message, wherein the first message is a VirtIO-BLK message, and the second message is a UDP message; and sending the second message to a second data processing unit in a storage node, wherein the second message is used for the second data processing unit to extract the first message from the second message, and send the first message to a second host in the storage node, so that the second host calls a client in the second host to communicate with a storage cluster. The bottleneck of running the storage client by the on-board SoC can be eliminated.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of communication, and particularly relates to a communication method and device and storage medium. BACKGROUND

[0002] A method for accelerating a storage protocol stack by a data processing unit (DPU) hardware exists a bottleneck when a storage client runs on a system on chip (SoC) on board. SUMMARY

[0003] Embodiments of the present application provide a communication method, device and storage medium, which can eliminate the bottleneck when a storage client runs on a SoC on board.

[0004] To achieve the above object, the technical scheme of the embodiments of the present application is as follows:

[0005] In a first aspect, the present application provides a communication method applied to a first data processing unit in a computing node, and the method comprises the following steps:

[0006] obtaining a first packet sent by a first host in the computing node, and encapsulating the first packet into a second packet; the first packet is a virtual input output block (VirtIO-BLK) packet, and the second packet is a user datagram protocol (UDP) packet;

[0007] sending the second packet to a second data processing unit in a storage node, so that the second data processing unit extracts the first packet from the second packet, and sends the first packet to a second host in the storage node, so that the second host calls a client in the second host to communicate with a storage cluster.

[0008] In a second aspect, the present application provides a communication method applied to a second data processing unit in a storage node, and the method comprises the following steps:

[0009] receiving a second packet sent by a first data unit in a computing node;

[0010] extract the first message from the second message, and send the first message to a second host in the storage node, so that the second host calls a client in the second host to communicate with the storage cluster; the first message is a VirtIO-BLK message, and the second message is a UDP message.

[0011] In a third aspect, the present application provides a communication device applied to a first data processing unit in a computing node, and the device comprises:

[0012] a packaging unit configured to obtain a first message sent by a first host in the computing node, and package the first message into a second message; the first message is a VirtIO-BLK message, and the second message is a UDP message;

[0013] a first sending unit configured to send the second message to a second data processing unit in a storage node, so that the second data processing unit extracts the first message from the second message, and sends the first message to a second host in the storage node, so that the second host calls a client in the second host to communicate with the storage cluster.

[0014] In a fourth aspect, the present application provides a communication device applied to a second data processing unit in a storage node, and the device comprises:

[0015] a receiving unit configured to receive a second message sent by a first data unit in a computing node;

[0016] a second sending unit configured to extract a first message from the second message, and send the first message to a second host in the storage node, so that the second host calls a client in the second host to communicate with the storage cluster; the first message is a VirtIO-BLK message, and the second message is a UDP message.

[0017] In a fifth aspect, the present application provides a storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the steps of any one of the methods on the first data processing unit side of the computing node, or the computer program, when executed by a processor, implements the steps of any one of the methods on the second data processing unit side of the storage node.

[0018] The application provides a communication method, device and storage medium, which are applied to a first data processing unit in a computing node. The method comprises the following steps: obtaining a first message sent by a first host in the computing node, and encapsulating the first message into a second message; the first message is a VirtIO-BLK message, and the second message is a UDP message; sending the second message to a second data processing unit in a storage node; the second message is used for the second data processing unit to extract the first message from the second message, and send the first message to a second host in the storage node, so that the second host calls a client in the second host to communicate with a storage cluster. By installing the data processing units on both sides of the computing node and the storage node, and sending the message from the computing node to the storage node through the data processing units, the client can be called to communicate with the storage cluster, that is, the transmission of the message is realized through the first data processing unit and the second data processing unit (hardware device), and the bottleneck of running the storage client by the on-board SoC can be eliminated. BRIEF DESCRIPTION OF DRAWINGS

[0019] Figure 1 An exemplary data processing unit provided by the embodiment of the application is used to simulate a hardware device.

[0020] Figure 2 A flowchart of a communication method provided by the embodiment of the application is shown.

[0021] Figure 3 A flowchart of another communication method provided by the embodiment of the application is shown.

[0022] Figure 4 An exemplary VirtIO-BLK offload acceleration based on DPU provided by the embodiment of the application is shown.

[0023] Figure 5 A structural diagram of a communication device provided by the embodiment of the application is shown.

[0024] Figure 6 A structural diagram of another communication device provided by the embodiment of the application is shown.

[0025] Figure 7 A structural diagram of a first data processing unit provided by the embodiment of the application is shown.

[0026] Figure 8 A structural diagram of a second data processing unit provided by the embodiment of the application is shown. DETAILED DESCRIPTION

[0027] In order to enable more detailed understanding of the features and technical contents of the embodiments of the present application, the implementation of the embodiments of the present application is described in detail below, and the attached drawings are only used for reference and are not used to limit the embodiments of the present application.

[0028] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used in the specification herein is for describing the embodiments of the present application only and is not intended to limit the present application.

[0029] In the following description, “some embodiments” are related to a subset of all possible embodiments, but it can be understood that “some embodiments” can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict. It should also be noted that the terms “first\second” and the like related to the embodiments of the present application are only used to distinguish similar objects, and do not represent a specific order of the objects. It can be understood that “first\second” and the like can be interchanged in a specific order or sequence as allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0030] DPU is a dedicated processor focusing on accelerating network, storage and security services. In addition to the network data forwarding capability of a standard network card, it also has storage service acceleration capability, supports offloading storage input output (Input Output, IO) operations that originally need to occupy a large amount of CPU processing to hardware chips for execution, improves service processing performance, reduces IO latency, and fully releases CPU computing power resources.

[0031] DPU usually uses VirtIO-BLK or Non-Volatile Memory (NVMe) protocol to realize hardware device simulation, and runs various storage protocol clients through the on-board CPU, and communicates with the remote storage cluster through the Media Access Control (MAC) port of the DPU. Figure 1 An exemplary data processing unit provided by the embodiments of the present application for realizing hardware device simulation is shown in the schematic diagram as follows: Figure 1As shown, it includes a computing node and a storage node, the computing node side includes a host and a data processing unit, the host includes a virtual machine, a physical machine, a container, a virtual input / output block and a non-volatile storage, the data processing unit includes a virtual input / output block backend, a non-volatile storage backend, a system on chip and a media access control interface, the system on chip includes a distributed storage system / small computer system interface / non-volatile storage client, the host and the data processing unit communicate through a peripheral component interconnect express interface, and the storage node side includes a distributed storage system cluster and a non-volatile storage cluster, and the data processing unit can communicate with the distributed storage system cluster and / or the non-volatile storage cluster through the media access control interface.

[0032] The above scheme realizes hardware simulation of a storage device, offloads CPU overhead of a storage protocol client relative to a Host host, but the storage client still needs to run on a board-mounted SoC, and the following limitations exist:

[0033] 1. Due to power supply and heat dissipation conditions, there is an upper limit to the power consumption of the SoC mounted on the DPU (in the case of no external power supply, the power consumption of the DPU board card is usually less than the upper limit of the peripheral component interconnect express (PCIe) power supply, which is 75 watts);

[0034] 2. The number of SoC cores mounted on the DPU is limited, and compared with the CPU mounted on the Host host, there is a reduction in functional features and a decline in performance;

[0035] 3. The memory capacity of the SoC mounted on the DPU is also limited, and in the DPU storage offload scheme, in order to improve storage performance, the SoC is usually configured with large page memory to save storage messages and call the storage client for processing, and the limited memory capacity will cause a decline in performance.

[0036] Based on this, the embodiment of the application provides a communication method, Figure 2 A flowchart of a communication method provided by the embodiment of the application is shown in the figure. Figure 2 As shown, the method is applied to a first data processing unit in a computing node, and the method includes the following steps:

[0037] S201, a first message sent by a first host in the computing node is acquired, and the first message is encapsulated into a second message, the first message being a VirtIO-BLK message, and the second message being a UDP message.

[0038] It should be noted that the first data processing unit is installed in the compute node, and the second data processing unit is installed in the storage node. In actual application, the first data processing unit can be denoted as a first DPU, and the second data processing unit can be denoted as a second DPU; the structures of the first DPU and the second DPU can be the same or different, which is not limited here.

[0039] It should be noted that the first host includes a virtual machine, a physical machine, a container, and a virtual input and output block. Obtaining the first message sent by the first host in the compute node can be understood as that the first DPU receives the VirtIO-BLK message issued by the first host through PCIe. The first host issues the VirtIO-BLK message according to the VirtIO specification.

[0040] In the embodiment of the present application, the process of encapsulating the first message into the second message specifically includes: determining a first check value corresponding to the first message, adding the first check value to the first message to obtain a third message, and encapsulating the third message into the second message.

[0041] It should be noted that the first check value can be understood as a cyclic redundancy check (CRC) value corresponding to the first message. Determining the first check value corresponding to the first message can be understood as determining the first check value corresponding to the first message through a CRC calculation module in the first data processing unit. Adding the first check value to the first message to obtain the third message can be understood as adding the first check value to the metadata field in the header of the first message to obtain the third message.

[0042] It should be noted that encapsulating the third message into the second message can be understood as encapsulating the third message into the second message through a UDP message engine module in the first data processing unit.

[0043] The scheme of the embodiment of the present application ensures the consistency and integrity of the VirtIO-BLK message in the transmission process through the CRC calculation module inside the DPU, avoiding data damage.

[0044] In the embodiment of the present application, before the first message is encapsulated into the second message, the method further includes: storing transceiving information corresponding to the first message; the transceiving information at least includes count information, queue identification information, and transceiving device identification information corresponding to the first message.

[0045] It should be noted that storing the transceiving information corresponding to the first message can be understood as storing the transceiving information corresponding to the first message through a lossless input and output (Lossless IO) module of the first data processing unit, or can be understood as recording the transceiving information corresponding to the first message through the lossless input and output module of the first data processing unit. The message queue identifier information can be exemplified as a message queue identity (Identity, ID); the transceiving device identifier information can be understood as a message transceiving device ID.

[0046] The scheme of the embodiment of the application can improve the reliability and performance of data transmission by recording the transceiving information of the VirtIO-BLK message through the lossless input and output module inside the DPU.

[0047] S202, send the second message to the second data processing unit in the storage node, the second message being used for the second data processing unit to extract the first message from the second message and send the first message to the second host in the storage node, so that the second host calls the client in the second host to communicate with the storage cluster.

[0048] It should be noted that sending the second message to the second data processing unit in the storage node can be understood as sending the second message through a media access control interface in the first data processing unit to a media access control interface in the second data processing unit. The second message is used for the second data processing unit to extract the first message from the second message, which can be understood as that the second message received by the media access control interface in the second data processing unit is parsed by a UDP message engine module to extract the first message. It should be noted that the storage cluster can be any storage cluster, which is not limited herein. As an example, the storage cluster at least includes a distributed storage system (Ceph) storage cluster and an enhanced SSD (Enhanced SSD, ESSD) storage cluster.

[0049] The scheme of the embodiment of the application can eliminate the bottleneck of the on-board SoC running the storage client, and can avoid the delay of multiple software processing by directly processing the VirtIO-BLK message through the first data processing unit, thereby reducing the overall IO latency.

[0050] The embodiment of the application also provides a communication method, Figure 3 The flowchart of another communication method provided by the embodiment of the application is shown in FIG. 4. Figure 3 As shown in FIG. 4, the method is applied to the second data processing unit in the storage node, and the method comprises the following steps.

[0051] S301, receiving the second message sent by the first data processing unit in the computing node.

[0052] It should be noted that the first data processing unit is installed in the computing node, and the second data processing unit is installed in the storage node. In actual application, the first data processing unit can be denoted as a first DPU, and the second data processing unit can be denoted as a second DPU; the structures of the first data processing unit and the second data processing unit can be the same or different, which is not limited herein.

[0053] It should be noted that receiving the second packet sent by the first data processing unit in the computing node can be understood as that the media access control interface of the second data unit receives the second packet sent by the first data processing unit in the computing node through the media access control interface.

[0054] S302, extract the first packet from the second packet, and send the first packet to the second host in the storage node, so that the second host calls the client in the second host to communicate with the storage cluster; the first packet is a VirtIO-BLK packet, and the second packet is a UDP packet.

[0055] It should be noted that extracting the first packet from the second packet can be understood as that the second packet is parsed by the UDP packet engine module in the second data processing unit to obtain the first packet.

[0056] In the embodiment of the application, the process of sending the first packet to the second host in the storage node specifically includes: determining a second check value corresponding to the first packet; and in a case where the second check value is the same as a first check value extracted from the second packet, sending the first packet to the second host in the storage node.

[0057] It should be noted that determining the second check value corresponding to the first packet can be understood as that the second check value corresponding to the first packet is determined by the CRC calculation module in the second data unit. In a case where the second check value is the same as the first check value extracted from the second packet, the first packet is sent to the second host in the storage node, which can be understood as that the second check value corresponding to the first packet determined by the CRC calculation module in the second data unit is compared with the first check value determined by the CRC calculation module in the first data unit in the computing node, and in a case where the second check value and the first check value are the same, the first packet is sent to the second host.

[0058] The scheme of the embodiment of the application determines the check value of the extracted VirtIO-BLK packet by the CRC calculation module in the second data processing unit, compares the check value of the VirtIO-BLK packet determined by the CRC calculation in the first data processing unit in the computing node, and determines the consistency of the VirtIO-BLK packet.

[0059] In the implementation of the present application, before the first message is sent to the second host in the storage node, the method further comprises: storing the transceiving information corresponding to the first message; the transceiving information at least comprises the count information, the queue identification information and the transceiving device identification information corresponding to the first message.

[0060] It should be noted that the transceiving information corresponding to the first message can be understood as storing the transceiving information corresponding to the first message through the lossless input and output module of the second data processing unit, or can be understood as recording the transceiving information corresponding to the first message through the lossless input and output module of the first data processing unit. The message queue identification information can be exemplified as a message queue ID; the transceiving device identification information can be understood as a message transceiving device ID.

[0061] The scheme of the embodiment of the present application records the transceiving information of the VirtIO-BLK message through the lossless input and output module inside the DPU, which can improve the reliability and performance of data transmission.

[0062] In the embodiment of the present application, the first message is sent to the second host in the storage node, so that the second host calls the client in the second host to communicate with the storage cluster. The process specifically comprises: sending the first message to a first service process in the second host, so that the first service process calls the client to communicate with the storage cluster according to the mapping relationship between the first message and one or more devices corresponding to the first service process.

[0063] It should be noted that the first service process can be understood as a Storage Plane Development Kit (SPDK) service process in the second host. The one or more devices corresponding to the first service process can be understood as one or more SPDK block devices (Block Device, bdev) corresponding to the SPDK service process. The specific number and type of the SPDK block device can be determined according to actual conditions, which is not limited here, and as an example, the one or more SPDK block devices corresponding to the SPDK service process include but are not limited to: local NVMe, local Hard Disk Drive (HDD), Raw Block Device (RBD) and ESSD block device. The mapping relationship between the first message and the one or more devices corresponding to the first service process can be pre-configured.

[0064] It should be noted that the storage cluster can be any storage cluster, which is not limited herein. As an example, the storage cluster at least includes a Ceph storage cluster and an ESSD storage cluster. The first service process calls the client to communicate with the storage cluster according to the mapping relationship between the first message and one or more devices corresponding to the first service process, which can be exemplarily illustrated as follows: if the VirtIO-BLK message maps the RBD block device or the ESSD block device, the corresponding RBD Client or ESSD Client is called by the SPDK to communicate with the remote Ceph storage cluster / ESSD storage cluster.

[0065] The scheme of the embodiment of the present application realizes the transmission of the message through the first data processing unit and the second data processing unit (hardware device), which can eliminate the bottleneck of the on-board SoC running the storage client. Moreover, the VirtIO-BLK message is directly processed by the first data processing unit, avoiding the delay of multiple software processing and reducing the overall IO latency.

[0066] For the convenience of understanding, the above scheme is exemplarily illustrated herein, and a networking scheme of installing the DPU acceleration card at both ends of the computing node and the storage node is adopted, the VirtIO-BLK message is accelerated by hardware, and the interconnection between the computing node and the storage cluster in the cloud computing data center is realized by using the lossy Ethernet supplemented by the hardware lossless IO module.

[0067] For the convenience of understanding, Figure 4 An exemplary DPU-based VirtIO-BLK offload acceleration diagram provided by the embodiment of the present application is shown in the following figure. Figure 4 As shown in the figure, the computing node includes a first host and a first data processing unit, and the storage node includes a second host, a second data processing unit, a distributed storage system cluster and an enhanced SSD cluster. The first host includes a virtual machine, a physical machine, a container and a virtual input / output block. The first data processing unit includes a lossless input / output module, a CRC calculation module, a UDP engine module, a system on chip and a media access control interface. The system on chip includes a storage agent. The first host and the first data processing unit communicate through a peripheral component interconnect express interface. The second host includes a virtual input / output block, a storage plane development kit, a local non-volatile storage, a local hard disk drive, a raw block device client and an enhanced SSD client. The second data processing unit includes a lossless input / output module, a CRC calculation module, a UDP engine module, a system on chip and a media access control interface. The system on chip includes a storage agent. The second host and the second data processing unit communicate through a peripheral component interconnect express interface. The first data processing unit and the second data processing unit communicate through their respective media access control interfaces.

[0068] The above scheme can be described in detail as follows.

[0069] The storage read-write flow is initiated at the computing node side:

[0070] 1. The DPU presents a VirtIO-BLK device to the Host host computer through hardware simulation, and the Host host computer issues read-write instructions according to the VirtIO (Virtual Input Output) specification;

[0071] 2. The VirtIO-BLK packet enters the lossless IO module inside the DPU through the PCIe interface. This module is used to record the VirtIO-BLK packet transmission information, including packet count, packet queue ID, and packet transmission device ID;

[0072] 3. The VirtIO-BLK packet enters the CRC calculation module inside the DPU. This module is used to calculate the CRC check value of the packet and add the calculation result to the VirtIO-BLK packet header metadata field;

[0073] 4. The VirtIO-BLK packet enters the UDP packet engine module inside the DPU. This module is used to assemble the VirtIO-BLK packet into a UDP packet and send it to the MAC port.

[0074] The storage packet processing flow is processed at the storage node side:

[0075] 1. The UDP packet received from the MAC port is parsed by the UDP packet engine module. This module is used to extract the VirtIO-BLK packet from the UDP packet;

[0076] 2. The VirtIO-BLK packet enters the CRC check module. This module is used to calculate the CRC check value of the packet and compare it with the CRC check value added by the DPU on the computing node side in the VirtIO-BLK packet header metadata field to ensure packet consistency;

[0077] 3. The checked VirtIO-BLK packet enters the lossless IO module. This module is used to record the VirtIO-BLK packet transmission information, including packet count, packet queue ID, and packet transmission device ID;

[0078] 4. The VirtIO-BLK packet is sent to the SPDK service process on the storage node through the PCIe interface, and data processing is performed according to the pre-configured mapping of VirtIO-BLK and SPDK block devices. The block devices supported by SPDK include but are not limited to local NVMe, local HDD, RBD block device, and ESSD block device;

[0079] 5. If VirtIO-BLK maps the RBD block device or the ESSD block device, the corresponding RBD Client or ESSD Client is called by SPDK to communicate with the remote Ceph storage cluster / ESSD storage cluster.

[0080] The scheme of the embodiment of the application realizes offloading and acceleration of the storage protocol stack through the DPU hardware, avoids the performance bottleneck of running the storage client on the on-board SoC, and significantly improves the storage performance and processing efficiency; the lossless IO module inside the DPU is used to record the transmission information of the VirtIO-BLK message, thereby improving the reliability and performance of data transmission. The VirtIO-BLK message is directly processed by the DPU, thereby avoiding the delay caused by multiple software processing in the traditional scheme and reducing the overall IO latency; the UDP protocol is used for data transmission, thereby reducing the processing overhead and latency of the transmission layer. By offloading the storage protocol processing to the DPU hardware, the CPU resources of the Host host computer are released, so that more computing tasks can be processed, and the computing capacity of the overall system is improved; the high-load storage client running on the on-board SoC of the DPU is avoided, and the computing pressure of the SoC is reduced. The CRC calculation module inside the DPU ensures the consistency and integrity of the VirtIO-BLK message during transmission, thereby avoiding data damage; the CRC check is performed bidirectionally at both ends of the computing node and the storage node, thereby ensuring the reliability and consistency of the data. Through the SPDK service process, various storage device types such as the local NVMe, the local HDD, the RBD block device, and the ESSD block device are supported, and a flexible storage solution is provided; communication with the remote Ceph storage cluster and the ESSD storage cluster is supported, thereby expanding the application range of the storage network. Through the hardware acceleration mode, the power consumption demand of the on-board SoC is reduced, and the energy efficiency ratio of the overall system is optimized; while ensuring high-performance processing, the total power consumption of the DPU board card is controlled to be within the upper limit of 75 watts of the PCIe gold finger power supply, thereby adapting to the limitations of the power supply and heat dissipation conditions.

[0081] The embodiment of the application provides a communication device, Figure 5 A structural schematic diagram of a communication device provided by the embodiment of the application is shown in the figure. Figure 5 As shown in the figure, the first data processing unit applied to the computing node, the communication device 500 comprises:

[0082] The packaging unit 501 is configured to obtain a first message transmitted by a first host in the computing node, and package the first message into a second message; the first message is a VirtIO-BLK message, and the second message is a UDP message;

[0083] The first sending unit 502 is configured to send the second packet to a second data processing unit in the storage node, the second packet being used for the second data processing unit to extract the first packet from the second packet and send the first packet to a second host in the storage node, so that the second host invokes a client in the second host to communicate with the storage cluster.

[0084] Optionally, the packaging unit 501 is further configured to determine a first check value corresponding to the first packet, add the first check value to the first packet to obtain a third packet, and package the third packet into the second packet.

[0085] Optionally, before the first packet is packaged into the second packet, the communication apparatus 500 further comprises a storage unit configured to store transceiving information corresponding to the first packet, the transceiving information at least including count information, queue identification information and transceiving device identification information corresponding to the first packet.

[0086] The embodiment of the application further provides a communication apparatus, Figure 6 Another structural schematic diagram of a communication apparatus provided by the embodiment of the application is shown in FIG. 6. Figure 6 As shown in FIG. 6, the communication apparatus 600 is applied to a second data processing unit in a storage node and comprises:

[0087] The receiving unit 601 is configured to receive a second packet sent by a first data unit in a computing node.

[0088] The second sending unit 602 is configured to extract a first packet from the second packet and send the first packet to a second host in the storage node, so that the second host invokes a client in the second host to communicate with the storage cluster; the first packet is a VirtIO-BLK packet, and the second packet is a UDP packet.

[0089] Optionally, the second sending unit 602 is further configured to determine a second check value corresponding to the first packet, and send the first packet to the second host in the storage node in a case where the second check value is the same as a first check value extracted from the second packet.

[0090] Optionally, before the first packet is sent to the second host in the storage node, the communication apparatus 600 further comprises a storage unit configured to store transceiving information corresponding to the first packet, the transceiving information at least including count information, queue identification information and transceiving device identification information corresponding to the first packet.

[0091] Optionally, the second sending unit 602 is further configured to send the first packet to a first service process in the second host, so that the first service process invokes the client in the second host to communicate with the storage cluster according to a mapping relationship between the first packet and one or more devices corresponding to the first service process.

[0092] The embodiment of the present application provides a first data unit in a computing node, Figure 7 A structural diagram of a first data processing unit is provided in the embodiment of the present application. Figure 7 As shown in the figure, the first data processing unit 700 comprises a first processor 701 and a first memory 702. Optionally, the first data processing unit 700 can further comprise a first communication bus 703.

[0093] In the process of the specific embodiment, the first processor 701 can be at least one of an application specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing image processing device (DSPD), a programmable logic image processing device (PLD), a field programmable gate array (FPGA), a CPU, a controller, a microcontroller, and a microprocessor. It can be understood that, for different devices, the electronic device used to realize the function of the processor can also be other devices, and the embodiment is not limited in this regard.

[0094] In the embodiment of the present application, the first communication bus 703 is used to realize the connection and communication between the first processor 701 and the first memory 702. When the first processor 701 executes the running program stored in the first memory 702, the following communication method is realized.

[0095] The first packet sent by the first host in the computing node is obtained, and the first packet is encapsulated into a second packet; the first packet is a VirtIO-BLK packet, and the second packet is a UDP packet; the second packet is sent to a second data processing unit in a storage node, and the second packet is used for the second data processing unit to extract the first packet from the second packet and send the first packet to a second host in the storage node, so that the second host invokes a client in the second host to communicate with a storage cluster.

[0096] Further, the first processor 701 is further configured to determine a first check value corresponding to the first packet, add the first check value to the first packet to obtain a third packet, and encapsulate the third packet into the second packet.

[0097] Further, before the first packet is encapsulated into the second packet, the first processor 701 stores transceiving information corresponding to the first packet, wherein the transceiving information at least includes count information, queue identification information and transceiving device identification information corresponding to the first packet.

[0098] The embodiment of the present application provides a second data processing unit in a storage node, Figure 8 A structural diagram of a second data processing unit is provided in the embodiment of the present application. Figure 8 As shown in the figure, the second data processing unit 800 includes a second processor 801 and a second memory 802, and optionally, the second data processing unit 800 can further include a second communication bus 803.

[0099] In the process of the specific embodiment, the second processor 801 can be at least one of an application specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing image processing device (DSPD), a programmable logic image processing device (PLD), a field programmable gate array (FPGA), a CPU, a controller, a microcontroller, and a microprocessor. It can be understood that for different devices, the electronic device used to realize the function of the processor can also be other devices, and the embodiment is not limited in detail.

[0100] In the embodiment of the present application, the second communication bus 803 is used to realize the connection and communication between the second processor 801 and the second memory 802; and when the second processor 801 executes the running program stored in the second memory 802, the following communication method is realized:

[0101] receive a second packet sent by a first data unit in a computing node; extract a first packet from the second packet, and send the first packet to a second host in the storage node, so that the second host calls a client in the second host to communicate with a storage cluster; the first packet is a VirtIO-BLK packet, and the second packet is a UDP packet.

[0102] Further, the second processor 801 is further configured to determine a second check value corresponding to the first packet, and send the first packet to a second host in the storage node in a case where the second check value is same as a first check value extracted from the second packet.

[0103] Further, before the first packet is sent to the second host in the storage node, the second processor 801 is further configured to store transceiving information corresponding to the first packet, wherein the transceiving information at least includes count information, queue identification information and transceiving device identification information corresponding to the first packet.

[0104] Further, the second processor 801 is further configured to send the first packet to a first service process in the second host, so that the first service process invokes the client to communicate with the storage cluster according to a mapping relationship between the first packet and one or more devices corresponding to the first service process.

[0105] Embodiments of the present application provide a storage medium having a computer program stored thereon, the computer readable storage medium stores one or more programs, and the one or more programs are executable by one or more processors. The computer program implements the communication method described from the perspective of the first data processing unit in the computing node, or implements the communication method described from the perspective of the second data processing unit in the storage node.

[0106] Based on the above embodiments, the present application provides a computer program product, which includes a computer program executable by one or more processors. The computer program implements the communication method described from the perspective of the first data processing unit in the computing node, or implements the communication method described from the perspective of the second data processing unit in the storage node.

[0107] It should be noted that in this document, the terms "comprising", "including", or any other variant thereof are intended to cover non-exclusive inclusion, so that processes, methods, articles or devices including a series of elements not only include those elements, but also include other elements not explicitly listed, or further include elements inherent to such processes, methods, articles or devices. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article or device including the element.

[0108] Those skilled in the art can clearly understand the above-mentioned embodiment method can be realized by means of software and the necessary general hardware platform, of course, can also be realized by hardware, but in many cases, the former is a better embodiment. Based on such understanding, the technical solutions of the present disclosure essentially or say the part of the related art that contributes to the part can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes a plurality of instructions for causing an image display device (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the method described in various embodiments of the present disclosure.

[0109] The above merely describes preferred embodiments of the present application, but is not intended to limit the scope of protection of the present application.

Claims

1. A communication method, characterized in that, The method, applied to a first data processing unit in a computing node, includes: The system acquires a first message sent by a first host in the computing node and encapsulates the first message into a second message; the first message is a Virtual Input / Output Block (VirtIO-BLK) message and the second message is a User Datagram Protocol (UDP) message. The second message is sent to the second data processing unit in the storage node. The second message is used by the second data processing unit to extract the first message from the second message and send the first message to the second host in the storage node, so that the second host can call the client in the second host to communicate with the storage cluster.

2. The method according to claim 1, characterized in that, The step of encapsulating the first message into a second message includes: Determine the first checksum corresponding to the first message; The first check value is added to the first message to obtain the third message; and the third message is encapsulated into the second message.

3. The method according to claim 1, characterized in that, Before encapsulating the first message into the second message, the method further includes: Store the send and receive information corresponding to the first message; the send and receive information includes at least the count information, queue identification information and transceiver device identification information corresponding to the first message.

4. A communication method, characterized in that, The method, applied to a second data processing unit in a storage node, includes: Receive the second message sent by the first data unit in the computing node; The first message is extracted from the second message and sent to the second host in the storage node so that the second host can call the client in the second host to communicate with the storage cluster; the first message is a Virtual Input / Output Block (VirtIO-BLK) message and the second message is a User Datagram Protocol (UDP) message.

5. The method according to claim 4, characterized in that, Sending the first message to the second host in the storage node includes: Determine the second checksum corresponding to the first message; If the second check value is the same as the first check value extracted from the second message, the first message is sent to the second host in the storage node.

6. The method according to claim 4, characterized in that, Before sending the first message to the second host in the storage node, the method further includes: Store the send and receive information corresponding to the first message; the send and receive information includes at least the count information, queue identification information and transceiver device identification information corresponding to the first message.

7. The method according to claim 4, characterized in that, Sending the first message to the second host in the storage node, so that the second host can invoke a client in the second host to communicate with the storage cluster, includes: The first message is sent to the first service process in the second host, so that the first service process calls the client to communicate with the storage cluster according to the mapping relationship between the first message and one or more devices corresponding to the first service process.

8. A communication device, characterized in that, A first data processing unit applied in a computing node, the apparatus comprising: An encapsulation unit is used to obtain a first message sent by a first host in the computing node and encapsulate the first message into a second message; the first message is a Virtual Input / Output Block (VirtIO-BLK) message and the second message is a User Datagram Protocol (UDP) message; The first sending unit is used to send the second message to the second data processing unit in the storage node. The second message is used by the second data processing unit to extract the first message from the second message and send the first message to the second host in the storage node, so that the second host can call the client in the second host to communicate with the storage cluster.

9. A communication device, characterized in that, A second data processing unit applied in a storage node, the device comprising: The receiving unit is used to receive the second message sent by the first data unit in the computing node; The second sending unit is used to extract the first message from the second message and send the first message to the second host in the storage node, so that the second host can call the client in the second host to communicate with the storage cluster; the first message is a Virtual Input / Output Block (VirtIO-BLK) message and the second message is a User Datagram Protocol (UDP) message.

10. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 3; or, when the computer program is executed by a processor, it implements the steps of the method according to any one of claims 4 to 7.

Citation Information

Patent Citations

  • Cross-network card forwarding method and system based on DPU, medium, CPU processor and intelligent network card

    CN115941630A

  • Task acceleration method based on DPU chip, DPU chip, electronic equipment and computer storage medium

    CN118656208A