Storage and calculation separated storage system and method for improving network transmission efficiency of system

By sinking network transmission and storage instruction processing to SSD, and using lightweight protocol stack and co-course scheduling mechanism, the performance bottleneck of traditional storage systems in high concurrency scenarios is solved, and a storage system with low latency, high throughput and high scalability is achieved.

CN119835267AActive Publication Date: 2025-04-15SHANDONG UNIV

Patent Information

Application Number
CN202510325051.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-19
Publication Date
2025-04-15
Estimated Expiration
2045-03-19

AI Technical Summary

Technical Problem

Traditional storage systems have performance bottlenecks in high concurrency and large traffic scenarios, especially the data transmission delay and throughput cannot be effectively improved, and the system power consumption and cost are relatively high.

Method used

By sinking network transmission and storage instruction processing to SSD, using the lightweight lwIP protocol stack and co-course scheduling mechanism, the RoCE IP core and DMA module are integrated to realize efficient processing of UDP communication, RDMA chain building and data reading and writing.

Benefits of technology

It reduces system delay and power consumption, improves transmission rate and response speed, realizes linear expansion between the number of SSDs and the total system bandwidth, and improves the system's scalability and high concurrency processing capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119835267A_ABST
    Figure CN119835267A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of network communication, and discloses a storage and calculation separated storage system and a method for improving the network transmission efficiency of the system. The lightweight TCP / IP protocol stack, the RDMA technology, the coroutine scheduling mechanism and the hardware acceleration module are integrated in the Ethernet-SSD, and the performance bottleneck of a traditional storage architecture in a high-concurrency and large-throughput data access scene is effectively solved. By optimizing each link of the storage system, the Ethernet-SSD realizes maximum utilization of task scheduling and resource management while providing efficient data transmission, so that the stability and the high efficiency of the system in a high-load and high-concurrency environment are ensured. An efficient and reliable storage solution is provided for the fields of distributed storage, cloud computing, high-performance computing and the like, and the method has a wide application prospect.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network communication technology, for example, to a storage system with separated storage and computing and a method for improving the network transmission efficiency of the system. Background Art

[0002] Traditional storage systems use a centralized architecture of "network card + CPU + PCIe + SSD" for data interaction, but with the surge in data volume and the increase in real-time requirements, its limitations are gradually becoming apparent. Data transmission needs to go through multiple hardware levels, which increases latency, and the CPU is overloaded in the process of data parsing and protocol conversion, becoming a performance bottleneck in high-concurrency scenarios. In addition, the network card bandwidth is limited and it is difficult to match the performance improvement of the SSD, resulting in the system throughput rate not being able to grow linearly, and even performance degradation. At the same time, the multi-level hardware structure increases power consumption and cost, bringing challenges to the operation of data centers and cloud services.

[0003] In order to break through the limitations of traditional architecture, the concept of storage and computing separation has gradually been accepted and widely used in the industry. In the storage and computing separation architecture, computing nodes and storage nodes are interconnected through a high-speed network. Computing nodes no longer rely on local storage, but directly access remote storage devices through the network. This architecture makes resource allocation more flexible, and storage resources can also be centrally managed and dynamically expanded, thereby improving the overall availability and efficiency of the system. However, although storage and computing separation has obvious advantages in theory, in practical applications, how to achieve low-latency, high-throughput cross-node data transmission is still a major challenge.

[0004] To solve this problem, NVMe over Fabrics (NVMeoF) technology came into being. NVMeoF technology extends the NVMe storage protocol used for local SSDs to remote devices, enabling computing nodes to directly access SSDs, significantly reducing data transmission latency and improving system throughput. Although NVMeoF technology has alleviated the performance bottleneck of cross-node access to a certain extent, its implementation still relies on the CPU for packet processing and protocol conversion, which may still result in high processing overhead in high-concurrency, high-traffic scenarios.

[0005] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present application, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention

[0006] In order to provide a basic understanding of some aspects of the disclosed embodiments, a brief summary is given below. The summary is not an extensive review, nor is it intended to identify key / critical elements or delineate the scope of protection of these embodiments, but rather serves as a prelude to the detailed description that follows.

[0007] The embodiments of the present disclosure provide a storage system with separated storage and computing and a method for improving the network transmission efficiency of the system, aiming to optimize the data transmission efficiency of the storage system, improve throughput, reduce access latency, and enhance the processing capability of high-concurrency storage tasks.

[0008] The core idea of ​​this invention is to sink network transmission and storage instruction processing to SSD, thereby solving the data interaction problem between storage and computing nodes in the storage-computing separation architecture. This method uses the lightweight lwIP protocol stack and coroutine scheduling mechanism to give full play to the advantages of PS and PL in FPGA, and realizes efficient processing of UDP communication, RDMA link establishment and data reading and writing, thereby reducing power consumption, simplifying hardware configuration, and improving transmission rate and response speed.

[0009] The key to sinking the network communication and storage instruction processing functions directly into the SSD is to integrate the network processing unit in the SSD so that each SSD has independent network communication capabilities, thereby reducing or even eliminating the participation of the middle layers such as CPU, PCIe and network card in traditional storage nodes. In this way, not only can the system latency and power consumption be greatly reduced, but also the linear expansion between the number of SSDs and the total bandwidth of the system can be achieved, providing a new technical path for building high-performance storage systems.

[0010] In terms of network communication protocols, the traditional complete TCP / IP protocol stack is difficult to apply directly in embedded systems or environments without operating systems due to its complex functions and large size. For this reason, lightweight TCP / IP protocol stacks such as lwIP (LightWeight IP) came into being. lwIP achieves complete network functions with relatively small resource usage, and its modular and streamlined design enables it to run efficiently on resource-constrained embedded platforms. lwIP not only supports common network protocols such as TCP and UDP, but also has a high response speed and flexible interface, providing a strong guarantee for systems with high real-time requirements.

[0011] In addition, to meet the requirements of low-latency and high-throughput data transmission, high-speed network communication technology is also constantly developing. Among them, Remote Direct Memory Access (RDMA) technology has attracted widespread attention because it can directly access the memory of remote devices in the network without CPU intervention, thereby achieving low-latency and high-speed data transmission. RDMA-based solutions, such as RoCE (RDMA over Converged Ethernet), achieve transmission effects similar to dedicated high-speed networks (such as Infiniband) in an Ethernet environment. Through RDMA, data can be transferred directly from the sender to the memory area of ​​the receiver, reducing the multiple data copies and intermediate processing overhead in traditional data transmission, and significantly improving the overall system performance.

[0012] At the software design level, multi-task scheduling technology is also an important part of achieving high-concurrency data processing. In traditional operating systems, task scheduling often relies on thread or process mechanisms, but in embedded systems or environments without operating systems, these mechanisms are difficult to meet real-time and lightweight requirements due to their large resource overhead. As a lightweight concurrent programming model, coroutines greatly reduce the overhead of context switching by implementing task switching in user mode. Coroutines can manage multiple tasks within a single thread, ensuring efficient and fast switching between tasks, thereby meeting the needs of task scheduling in high-concurrency scenarios. With the help of coroutines, multi-task scheduling not only achieves efficient use of resources, but also provides technical support for the stable operation of the system.

[0013] Based on the above analysis, the present invention proposes a storage system with storage and computing separation and a method for improving the network transmission efficiency of the system. The storage and computing separation system includes an Ethernet IP core, a RoCE IP core, a DMA IP core, a MAC address encapsulation IP core, a message shunting IP core, an address application unit, an ARM core and a flash memory. The Ethernet IP core is used to establish a network connection with a computing node. After the network connection is established, communication begins. The data packet is shunted by the message shunting IP core, one part of which is transmitted to the ARM core for processing, and the other part flows to the RoCE IP core for RDMA message processing. The RoCE IP core is responsible for processing and replying to the Ack message. At the same time, the MAC address encapsulation IP core adds a MAC header to the Ack message replied by the ROCE IP. The DMA IP core is used to process the data interaction between the PL and the PS. The address application unit is responsible for the LWIP protocol, the distributed hash table DHT, the RDMA link establishment processing and the address mapping module during the Flash operation. The flash memory chip realizes the non-volatile storage of data. The ARM core is responsible for the control and verification functions when reading and writing flash memory data.

[0014] As a further improvement, the storage system further includes a cache module, which is used to cache read and write data.

[0015] In some embodiments, the method is implemented based on the above storage system, including: Integrate the network protocol stack and storage instruction processing into Ethernet-SSD, so that SSD has independent network communication capabilities, and use a lightweight TCP / IP protocol stack as the network protocol stack of Ethernet-SSD to optimize UDP or TCP communication; The Ethernet-SSD integrates the RoCE IP core and DMA module for remote direct memory access. The RoCE IP core is responsible for protocol parsing and data packaging. The processed data is sent to the memory or storage medium through the DMA module. In the case of high concurrent storage requests, Ethernet-SSD introduces a coroutine-based task scheduling method to manage and schedule multiple tasks. When receiving multiple storage requests, Ethernet-SSD dynamically creates concurrent tasks through the coroutine pool. After the task is completed, the system automatically recycles related resources.

[0016] As a further improvement, the network protocol stack is integrated into Ethernet-SSD and the protocol stack is initialized. Ethernet-SSD automatically configures the IP address, subnet mask and default gateway of the device, completes the initialization of the network adapter, and establishes a network connection between Ethernet-SSD and the computing node. After the network connection is established, Ethernet-SSD starts to receive data packets from the computing node, parses the data packets, extracts key information and passes it to the storage management module inside Ethernet-SSD. The storage management module performs corresponding storage operations based on the extracted key information and dynamically schedules tasks based on the priority of the storage request, the storage area and the data size.

[0017] As a further improvement, the key information includes storage operation type, target address, and data length.

[0018] As a further improvement, during the data transmission process of remote direct access to memory, the Ethernet-SSD and the computing node first exchange link establishment request and confirmation information through the network to establish a transmission channel for storage data, and then perform data transmission. The process of establishing a transmission channel for storage data is as follows: The computing node sends a link establishment request message containing the local QPN and PSN to the storage node; After receiving the link establishment request message, the storage node Ethernet-SSD extracts the QPN and PSN of the computing node; The storage node Ethernet-SSD extracts the transaction ID that identifies the connection from the link establishment request message, fills the transaction ID and the QPN and PSN of the storage node into the reply message, and sends the reply message to the computing node; The computing node extracts the QPN and PSN of the storage node from the reply message so as to form the RDMA message later; The computing node composes an RTU message and sends it to the storage node, indicating that a connection is established and RDMA communication can be performed; After receiving the RTU message, the storage node establishes a connection and performs RDMA communication.

[0019] As a further improvement, after data transmission is completed, Ethernet-SSD generates an ACK confirmation packet and feeds back the transmission status to the computing node to ensure the integrity and reliability of data transmission; the computing node actively disconnects when it does not need RDMA communication. The disconnection process is as follows: The computing node initiates a disconnection request message to disconnect the specified QPN connection with the storage node; After receiving the disconnect request message, the storage node assembles a reply message, keeps the transaction id consistent with the disconnect request message, and replies to the computing node; The computing node receives the reply, destroys the QPN, and disconnects.

[0020] As a further improvement, the messages between the computing node and the storage node are sent via the CM message in the UDP callback function. After the storage node receives the message sent by the computing node, it parses the Attribute ID and Opcode fields in the message, determines the message type and performs corresponding operations.

[0021] As a further improvement, the coroutine-based task scheduling method realizes switching between coroutines by saving and restoring the context information of the coroutine. The scheduling process includes coroutine creation, state management, context switching, coroutine switching condition checking and task scheduling.

[0022] The storage system with separated storage and computing and the method for improving the network transmission efficiency of the system provided by the embodiments of the present disclosure can achieve the following technical effects: (1) Fusion of storage and network protocols to optimize data paths. By integrating the network protocol stack and storage instruction processing into Ethernet-SSD, the SSD is equipped with independent network communication capabilities, reducing CPU and PCIe dependence, reducing latency, and improving scalability.

[0023] (2) Lightweight protocol stack optimization and efficient data communication. The lwIP lightweight TCP / IP protocol stack is used to optimize UDP communication, reduce protocol conversion and redundant data interaction, and improve storage request response speed.

[0024] (3) Efficient transmission based on RDMA to reduce CPU load. The RoCE protocol is used to implement RDMA zero-copy data transmission without CPU intervention, which greatly improves throughput and reduces storage access latency.

[0025] (4) Coroutine multi-task scheduling to improve concurrent performance. The coroutine mechanism is used to optimize task scheduling, reduce context switching overhead, and enable Ethernet-SSD to run efficiently under high concurrent requests, thereby improving throughput.

[0026] (5) Co-optimization of software and hardware to reduce system overhead. Combining the PS and PL resources of FPGA, integrating hardware modules such as RoCE IP core and DMAIP core, achieving end-to-end optimization, reducing intermediate links, and improving energy efficiency.

[0027] The above general description and the following description are exemplary and explanatory only and are not intended to limit the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] One or more embodiments are exemplarily described by corresponding drawings, which do not limit the embodiments. Elements with the same reference numerals in the drawings are shown as similar elements, and the drawings do not constitute a scale limitation, and wherein: Figure 1 This is a schematic diagram of the RDMA link establishment process; Figure 2 This is a schematic diagram of the RDMA disconnection process; Figure 3 This is a schematic diagram of the modular Ethernet-SSD architecture. DETAILED DESCRIPTION

[0029] In order to be able to understand the features and technical contents of the embodiments of the present disclosure in more detail, the implementation of the embodiments of the present disclosure is described in detail below in conjunction with the accompanying drawings. The attached drawings are for reference only and are not used to limit the embodiments of the present disclosure. In the following technical description, for the convenience of explanation, a full understanding of the disclosed embodiments is provided through multiple details. However, one or more embodiments can still be implemented without these details. In other cases, to simplify the drawings, well-known structures and devices can be simplified for display.

[0030] The terms "first", "second", etc. in the embodiments of the present disclosure are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the terms used in this way can be interchanged where appropriate, so as to describe the embodiments of the present disclosure described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions.

[0031] Unless otherwise stated, the term "plurality" means two or more.

[0032] In the embodiment of the present disclosure, the character " / " indicates that the preceding and following objects are in an "or" relationship. For example, A / B indicates: A or B.

[0033] The term "and / or" is a description of the association relationship between objects, indicating that three relationships can exist. For example, A and / or B means: A or B, or, A and B.

[0034] The term "correspondence" may refer to an association relationship or a binding relationship. The correspondence between A and B means that there is an association relationship or a binding relationship between A and B.

[0035] Example 1 This embodiment discloses a storage system with separated storage and computing, which is specifically implemented as a modular Ethernet-SSD, that is, an SSD that integrates a network protocol stack and storage instruction processing functions, such as Figure 3 As shown, it includes the following modules: Ethernet IP core, RoCE IP core, DMA IP core, MAC address encapsulation IP core, message diversion IP core, address application unit, ARM core, flash memory and cache. The Ethernet IP core provides high-speed network connection through the 10G Ethernet network card IP and sfp+ interface, so as to establish a network connection between the storage node (i.e., the storage system described in this embodiment) and the computing node. After the network connection is established, communication begins. The data packet is diverted through the message diversion IP core. One part is transmitted to the ARM core for processing, and the other part flows to the RoCE IP core for RDMA message processing. The RoCE IP core is responsible for processing and replying the Ack message. At the same time, the MAC address encapsulation IP core adds a MAC header to the Ack message replied by the ROCE IP. The DMA IP core is used to process the data interaction between PL (programmable logic) and PS (processing system). The address application unit is responsible for the LWIP protocol, the distributed hash table DHT, the RDMA link establishment processing and the address mapping module during the Flash operation. In order to improve the efficiency of data reading and writing, the system also includes a cache module, as part of the DDR, to reduce the reading and writing of the Flash flash memory and reduce the delay. The flash memory realizes the non-volatile storage of data. Finally, the ARM core is equipped with a real-time processing module, which is responsible for the control and verification functions when reading and writing flash memory data, including an error checking module to ensure data integrity and reliability.

[0036] Example 2 This embodiment discloses a method for improving the network transmission efficiency of a storage-computation separation system. The method is implemented based on the system described in claim 1, and includes: 1. Integrate the network protocol stack and storage instruction processing into Ethernet-SSD, so that SSD has independent network communication capabilities, and use lightweight TCP / IP protocol stack as the network protocol stack of Ethernet-SSD to optimize UDP or TCP communication. The lightweight TCP / IP protocol stack avoids the complexity and performance loss brought by the traditional protocol stack. This simplified TCP / IP protocol stack is specially optimized for embedded environments, allowing Ethernet-SSD to run independently without an operating system.

[0037] Second, the RoCE IP core and DMA module for remote direct memory access are integrated in Ethernet-SSD. The RoCE IP core is responsible for protocol parsing and data packaging, and the processed data is sent to the memory or storage medium through the DMA module. Remote direct memory access (RDMA) technology can further improve data transmission efficiency, avoid the data transmission in traditional storage systems often relying on the CPU for protocol conversion and data handling, reduce latency and resource consumption, and greatly improve system throughput.

[0038] 3. In the case of high concurrent storage requests, Ethernet-SSD needs to efficiently manage and schedule multiple tasks. This embodiment introduces a coroutine-based task scheduling method to manage and schedule multiple tasks, thereby optimizing the concurrent processing capabilities of the system. Compared with traditional multi-threaded or multi-process scheduling, the coroutine mechanism can significantly reduce the overhead of context switching, thereby improving the overall performance of the system. When multiple storage requests are received, Ethernet-SSD dynamically creates concurrent tasks through the coroutine pool. After the task is completed, the system automatically recycles related resources, avoiding the high overhead in traditional thread or process management. Coroutine scheduling can not only improve the concurrent execution efficiency of storage tasks, but also realize the intelligent allocation and execution of tasks by combining the RDMA data stream scheduling strategy, thereby improving the system's throughput and load balancing capabilities.

[0039] After the network protocol stack is integrated into Ethernet-SSD, the protocol stack is initialized. Ethernet-SSD automatically configures the IP address, subnet mask and default gateway of the device, completes the initialization of the network adapter, and establishes a network connection between Ethernet-SSD and the computing node. After the network connection is established, Ethernet-SSD begins to receive data packets from the computing node, parses the data packets, extracts key information, including storage operation type, target address, and data length, and then passes the key information to the storage management module inside Ethernet-SSD. The storage management module performs corresponding storage operations based on the extracted key information and dynamically schedules tasks based on the priority, storage area, and data size of the storage request. High-priority requests will be processed first, and low-priority requests will be delayed, thereby achieving efficient allocation of system resources. This scheduling mechanism can ensure that the system maintains low latency and high throughput in a high-concurrency environment.

[0040] In the data transmission process of remote direct access memory, Ethernet-SSD and computing nodes first exchange link establishment request and confirmation information through the network to establish a transmission channel for storage data, and then perform data transmission, such as Figure 1 As shown in the figure, the process of establishing a transmission channel for storing data is as follows: The computing node sends a link establishment request message containing the local QPN and PSN to the storage node; After receiving the link establishment request message, the storage node Ethernet-SSD extracts the QPN and PSN of the computing node; The storage node Ethernet-SSD extracts the transaction ID that identifies the connection from the link establishment request message, fills the transaction ID and the QPN and PSN of the storage node into the reply message, and sends the reply message to the computing node; The computing node extracts the QPN and PSN of the storage node from the reply message to form the RDMA message later; The computing node composes an RTU message and sends it to the storage node, indicating that a connection is established and RDMA communication can be performed; After receiving the RTU message, the storage node establishes a connection and performs RDMA communication.

[0041] After the data transmission is completed, Ethernet-SSD generates an ACK confirmation packet and feeds back the transmission status to the computing node to ensure the integrity and reliability of data transmission; the computing node actively disconnects when it does not need RDMA communication, such as Figure 2 As shown, the disconnection process is: The computing node initiates a disconnection request message to disconnect the specified QPN connection with the storage node; After receiving the disconnect request message, the storage node assembles a reply message, keeps the transaction id consistent with the disconnect request message, and replies to the computing node; The computing node receives the reply, destroys the QPN, and disconnects.

[0042] In this embodiment, the message between the computing node and the storage node is sent through the CM (Communication Management) message in the UDP callback function. After receiving the message sent by the computing node, the storage node parses the Attribute ID and Opcode fields in the message, determines the message type and performs the corresponding operation. After the connection is successful, the key information such as the QPN and PSN of the Client is extracted, and combined with the QPN and PSN information of the local end, it is sent to the RoCE IP core to process the subsequent RDMA Read / Write operation.

[0043] The following is the process of the UDP callback function processing the CM message: UDP callback function processing CM message strategy: Requirements: Extract and use key metadata when receiving CM messages, and handle successful connection establishment or disconnection; Input: CM message; Output: Reply message or connection status; Step 1: Extract the Attribute ID and Opcode fields in the CM message attribute_id = CM message.AttributeID opcode = CM message.Opcode Step 2: Determine the message type based on the Attribute ID and Opcode fields if attribute_id == 0x0010&&opcode == 0x64: CM Req message processing Extract the client's QPN, PSN and other information Fill in the local QPN and PSN, and reply to the reply Reply (CM message) else if attribute_id == 0x0012&&opcode == 0x64: CM Rej message processing Refusing to establish a connection else if attribute_id == 0x0014&&opcode == 0x64: CM Rtu message processing Connection successful else if attribute_id == 0x0015&&opcode == 0x64: CM Disconnect message processing Disconnect and destroy related resources else: Unknown message type, ignore or handle error end if.

[0044] In this embodiment, the coroutine-based task scheduling method is used to efficiently manage the execution order and switching of multiple coroutines. The method saves and restores the context information of the coroutine to achieve switching between coroutines and ensure efficient execution of concurrent tasks. The scheduling process includes coroutine creation, state management, context switching, coroutine switching condition check and task scheduling to ensure that tasks are executed on demand. The specific process is as follows: Coroutine task scheduling strategy: Requirements: Switch between coroutines by saving and restoring the context information of the coroutine, and schedule tasks according to the status of the coroutine (such as running, blocking, exiting, etc.); Input: Coroutine control block, including the status, ID, stack attributes, context information, etc. of each coroutine; Output: execution order and status of all coroutines; while (with runnable coroutine): Step 1: Get the next coroutine to be executed Next coroutine = Get the next runnable coroutine Step 2: If the current coroutine state is runnable, switch to the coroutine if current coroutine status == runnable: Save the context of the current coroutine Switch to the context of the next coroutine else if current coroutine status == exiting: Destroying coroutines Return to the scheduler to continue scheduling other coroutines else if current coroutine status == blocked: Waiting for resources Set the coroutine state to runnable Add to the runnable queue else if current coroutine status == dead: continue end while.

[0045] The technical solution of the embodiment of the present disclosure can be embodied in the form of a software product, which is stored in a storage medium and includes one or more instructions for enabling a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in the embodiment of the present disclosure. The aforementioned storage medium may be a non-transient storage medium, including: a USB flash drive, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a disk or an optical disk, and other media that can store program codes, or a transient storage medium.

[0046] The invention effectively solves the performance bottleneck of traditional storage architecture in high-concurrency, high-throughput data access scenarios by integrating lightweight TCP / IP protocol stack, RDMA technology, coroutine scheduling mechanism and hardware acceleration module into Ethernet-SSD. By optimizing each link of the storage system, Ethernet-SSD not only provides efficient data transmission, but also maximizes the utilization of task scheduling and resource management, ensuring the stability and efficiency of the system in high-load and high-concurrency environments. This innovative solution provides an efficient and reliable storage solution for distributed storage, cloud computing and high-performance computing, and has broad application prospects.

[0047] The above description and the accompanying drawings fully illustrate the embodiments of the present disclosure so that those skilled in the art can practice them. Other embodiments may include structural, logical, electrical, process and other changes. The embodiments represent only possible changes. Unless explicitly required, separate components and functions are optional, and the order of operation may vary. The parts and features of some embodiments may be included in or replace the parts and features of other embodiments. Moreover, the words used in this application are only used to describe the embodiments and are not used to limit the scope of protection. As used in the description in the text, unless the context clearly indicates, the singular forms of "a", "an" and "the" are intended to include plural forms as well. Similarly, the term "and / or" as used in this application refers to any and all possible combinations of one or more associated listings. In addition, when used in this application, the term "comprise" and its variants "comprises" and / or comprising refer to the presence of stated features, wholes, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or groups thereof. In the absence of further restrictions, the elements defined by the sentence "including one..." do not exclude the presence of other identical elements in the process, method or device including the elements. In this article, each embodiment may focus on the differences from other embodiments, and the same and similar parts between the embodiments may refer to each other. For the methods, products, etc. disclosed in the embodiments, if they correspond to the method part disclosed in the embodiments, then the relevant parts can refer to the description of the method part.

[0048] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software may depend on the specific application and design constraints of the technical solution. The technicians 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 the embodiments of the present disclosure. The technicians may clearly understand that for the convenience and simplicity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments, and will not be repeated here.

[0049] In the embodiments disclosed herein, the disclosed methods and products (including but not limited to devices, equipment, etc.) can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units can be only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between each other shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms. The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to implement this embodiment. In addition, each functional unit in the embodiment of the present disclosure may be integrated in a processing unit, or each unit may exist physically separately, or two or more units may be integrated in one unit.

Claims

1. A storage system with separated storage and computing, characterized in that: It includes Ethernet IP core, RoCE IP core, DMA IP core, MAC address encapsulation IP core, message diversion IP core, address application unit, ARM core and flash memory. The Ethernet IP core is used to establish a network connection with the computing node. Communication starts after the network connection is established. The data packet is diverted through the message diversion IP core. One part is transmitted to the ARM core for processing, and the other part flows to the RoCE IP core for RDMA message processing. The RoCE IP core is responsible for processing and replying the Ack message. At the same time, the MAC address encapsulation IP core adds a MAC header to the Ack message replied by the ROCE IP. The DMA IP core is used to process the data interaction between PL and PS. The address application unit is responsible for the LWIP protocol, distributed hash table DHT, RDMA link establishment processing and address mapping during Flash operation. The flash chip realizes non-volatile storage of data. The ARM core is responsible for the control and verification functions when reading and writing flash memory data.

2. The storage system with separated storage and computation according to claim 1 is characterized in that: It also includes a cache module, which is used to cache read and write data.

3. A method for improving the network transmission efficiency of a storage system with storage and computing separation, characterized in that: This method is implemented based on the storage system described in claim 1 or 2, and includes: Integrate the network protocol stack and storage instruction processing into Ethernet-SSD, so that SSD has independent network communication capabilities, and use a lightweight TCP / IP protocol stack as the network protocol stack of Ethernet-SSD to optimize UDP or TCP communication; The Ethernet-SSD integrates the RoCE IP core and DMA module for remote direct memory access. The RoCE IP core is responsible for protocol parsing and data packaging. The processed data is sent to the memory or storage medium through the DMA module. In the case of high concurrent storage requests, Ethernet-SSD introduces a coroutine-based task scheduling method to manage and schedule multiple tasks. When receiving multiple storage requests, Ethernet-SSD dynamically creates concurrent tasks through the coroutine pool and automatically recycles related resources after the tasks are completed.

4. The method for improving the network transmission efficiency of the storage system with storage and computation separation according to claim 3 is characterized in that: After the network protocol stack is integrated into Ethernet-SSD, the protocol stack is initialized. Ethernet-SSD automatically configures the IP address, subnet mask and default gateway of the device, completes the initialization of the network adapter, and enables Ethernet-SSD to establish a network connection with the computing node. After the network connection is established, Ethernet-SSD begins to receive data packets from the computing node, parses the data packets, extracts key information from them and passes them to the storage management module inside Ethernet-SSD. The storage management module performs corresponding storage operations based on the extracted key information.

5. The method for improving the network transmission efficiency of the storage system with storage and computation separation according to claim 4 is characterized in that: After receiving key information, the storage management module dynamically schedules tasks based on the priority of the storage request, the storage area, and the data size; it prioritizes high-priority requests and postpones low-priority requests.

6. The method for improving the network transmission efficiency of the storage system with storage and computation separation according to claim 4 or 5, characterized in that: The key information includes storage operation type, target address, and data length.

7. The method for improving the network transmission efficiency of the storage system with storage and computation separation according to claim 3 is characterized in that: In the data transmission process of remote direct access to memory, the Ethernet-SSD and the computing node first exchange link establishment request and confirmation information through the network to establish a transmission channel for storing data, and then perform data transmission. The process of establishing the transmission channel is as follows: The computing node sends a link establishment request message containing the local QPN and PSN to the storage node; After receiving the link establishment request message, the storage node Ethernet-SSD extracts the QPN and PSN of the computing node; The storage node Ethernet-SSD extracts the transaction ID that identifies the connection from the link establishment request message, fills the transaction ID and the QPN and PSN of the storage node into the reply message, and sends the reply message to the computing node; The computing node extracts the QPN and PSN of the storage node from the reply message so as to form the RDMA message later; The computing node composes an RTU message and sends it to the storage node, indicating that a connection is established and RDMA communication can be performed; After receiving the RTU message, the storage node establishes a connection and performs RDMA communication; The above OPN represents the queue number, and PSN represents the packet sequence number.

8. The method for improving the network transmission efficiency of the storage system with storage and computation separation according to claim 7 is characterized in that: After data transmission is completed, Ethernet-SSD generates an ACK confirmation packet and feeds back the transmission status to the computing node to ensure the integrity and reliability of data transmission; The computing node actively disconnects when it does not need RDMA communication. The disconnection process is as follows: The computing node initiates a disconnection request message to disconnect the specified QPN connection with the storage node; After receiving the disconnect request message, the storage node assembles a reply message, keeps the transaction id consistent with the disconnect request message, and replies to the computing node; The computing node receives the reply, destroys the QPN, and disconnects.

9. The method for improving the network transmission efficiency of the storage system with storage and computation separation according to claim 7 or 8, characterized in that: The messages between the computing node and the storage node are sent through the CM message in the UDP callback function. After receiving the message sent by the computing node, the storage node parses the Attribute ID and Opcode fields in the message, determines the message type and performs the corresponding operation.

10. The method for improving the network transmission efficiency of the storage system with storage and computation separation according to claim 3 is characterized in that: The coroutine-based task scheduling method realizes switching between coroutines by saving and restoring the context information of the coroutine. The scheduling process includes coroutine creation, state management, context switching, coroutine switching condition checking and task scheduling.

Citation Information

Patent Citations

  • RPC communication method based on RDMA

    CN110177118A

  • Distributed storage system for NVMe and RDMA and lightweight synchronous communication method

    CN110262754A

  • Data reading method, data storage method, device and system

    CN117311596A

  • Storage and calculation separation type hardware unloading serial acceleration system based on RoCE

    CN118132262A

  • Storage system, cluster node, system, storage resource scheduling method and device

    CN119045750A

Cited By

  • Remote management method of computing card with built-in network communication unit and computing card

    CN121173854A