CN114285676A - Intelligent network card, network storage method and medium for intelligent network card - Google Patents

Intelligent network card, network storage method and medium for intelligent network card Download PDF

Info

Publication number
CN114285676A
CN114285676A CN202111405158.3A CN202111405158A CN114285676A CN 114285676 A CN114285676 A CN 114285676A CN 202111405158 A CN202111405158 A CN 202111405158A CN 114285676 A CN114285676 A CN 114285676A
Authority
CN
China
Prior art keywords
request
module
data
network card
intelligent network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111405158.3A
Other languages
Chinese (zh)
Other versions
CN114285676B (en
Inventor
鄢贵海
张宇
侯普
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yusur Technology Co ltd
Original Assignee
Yusur Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yusur Technology Co ltd filed Critical Yusur Technology Co ltd
Priority to CN202111405158.3A priority Critical patent/CN114285676B/en
Publication of CN114285676A publication Critical patent/CN114285676A/en
Application granted granted Critical
Publication of CN114285676B publication Critical patent/CN114285676B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present disclosure relates to an intelligent network card, a network storage method of the intelligent network card and a medium; wherein, this intelligent network card includes: the device comprises a receiving module, a request processing module, a storage control module and a reply module; the receiving module is used for receiving the request sent by the client and sending the request to the request processing module; the request processing module is used for analyzing the request, obtaining the type of the request and the content of the request and sending the type and the content to the storage control module; the storage control module is used for processing the request according to the type and the content to obtain a processing result and sending the processing result to the reply module; and the reply module is used for returning the processing result to the client. The embodiment of the disclosure can improve the speed of network storage, reduce the delay of data reading and writing and avoid the waste of resources in the CPU.

Description

Intelligent network card, network storage method and medium for intelligent network card
Technical Field
The present disclosure relates to the field of data storage technologies, and in particular, to an intelligent network card, a network storage method for the intelligent network card, and a medium.
Background
The network card is computer hardware for communicating on a computer network, and data transmission between the computer and a local area network can be realized through the network card.
In the prior art, network storage is mainly performed in a client and a server, and when a server processes a request of the client, participation of a Central Processing Unit (CPU) of the server is required, for example, after the client initiates a write request, the CPU of the server obtains data from a Random Access Memory (RAM) of the client by controlling a network card of the server and according to the network card of the client, the obtained data is cached in the RAM of the server, and then the data is written into a corresponding Solid State Disk (SSD) from the RAM of the server, that is: data needs to be transferred in the RAM in the server, which causes delay in data reading and writing and waste of resources in the CPU.
Disclosure of Invention
To solve the above technical problem or at least partially solve the above technical problem, the present disclosure provides an intelligent network card, a network storage method of the intelligent network card, and a medium.
In a first aspect, the present disclosure provides an intelligent network card, including: the device comprises a receiving module, a request processing module, a storage control module and a reply module;
the receiving module is used for receiving a request sent by a client and sending the request to the request processing module;
the request processing module is used for analyzing the request, obtaining the type of the request and the content of the request, and sending the type and the content to the storage control module;
the storage control module is used for processing the request according to the type and the content to obtain a processing result and sending the processing result to the reply module;
and the reply module is used for returning the processing result to the client.
Optionally, when the type of the request is a write request, the content of the request includes a first data start block address of data to be written, the number of first data blocks of the data to be written, a first remote direct storage access RDMA address, and a first KEY, and the intelligent network card further includes a high-speed remote direct storage access edrma module;
correspondingly, the storage control module is configured to send the write request and the content to the edram module;
the eRDMA module is configured to:
performing identity authentication on the intelligent network card according to the first KEY, and after the authentication is passed, initiating a data acquisition request to a corresponding network card in the client according to the first data starting block address, the first data block number and the first RDMA address;
acquiring corresponding data from the client according to the data acquisition request, and caching the data into a memory of the client;
after the cache is finished, writing the data in the memory into the corresponding storage unit;
and after the data writing is finished, sending a message that the data writing is successful to the storage control module.
Optionally, when the type of the request is a read request, the content of the request includes a second data start block address of data to be read, a second data block number of the data to be read, a second RDMA address, a second KEY, and a target storage unit, and the intelligent network card further includes an edrma module;
correspondingly, the storage control module is configured to send the read request and the content to the edram module;
the eRDMA module is configured to:
performing identity authentication on the client according to the second KEY, and acquiring corresponding target data from the target storage unit according to the second data starting block address and the second data block number after the authentication is passed;
caching the target data into a memory of the target data;
according to the second RDMA address, sending target data in the memory to a corresponding position in the client;
and after the target data is sent, sending a message that the target data is successfully sent to the storage control module.
Optionally, the edram module includes an error handling unit;
and the error processing unit is used for correspondingly processing the error according to a corresponding error processing strategy when the error occurs in the operation process of the eRDMA module.
Optionally, the intelligent network card further includes a configuration module;
the configuration module is used for carrying out initialization configuration on the intelligent network card and configuring the error processing strategy.
Optionally, the edram module is configured to: when the size of the write request exceeds a preset threshold value, dividing the write request into a plurality of sub-write requests according to the size of the write request, and carrying out corresponding processing on the sub-write requests.
Optionally, the intelligent network card and the client communicate with each other through a non-volatile memory storage transfer NVME over RDMA protocol based on a remote direct storage access technology or a small computer interface iSER protocol based on a remote direct storage access technology.
Optionally, the intelligent network card is implemented based on a field programmable gate array FPGA or an application specific integrated circuit ASIC.
In a second aspect, the present disclosure provides a network storage method for an intelligent network card, which is applied to the intelligent network card, where the intelligent network card includes: the method comprises a receiving module, a request processing module, a storage control module and a reply module, and comprises the following steps:
the receiving module receives a request sent by a client and sends the request to the request processing module;
the request processing module analyzes the request to obtain the type of the request and the content of the request, and sends the type and the content to the storage control module;
the storage control module processes the request according to the type and the content to obtain a processing result, and sends the processing result to the reply module;
and the reply module returns the processing result to the client.
Optionally, when the type of the request is a write request, the content of the request includes a first data start block address of data to be written, the number of first data blocks of the data to be written, a first remote direct storage access RDMA address, and a first KEY, and the intelligent network card further includes a high-speed remote direct storage access edrma module;
correspondingly, the storage control module sends the write request and the content to the eRDMA module;
the eRDMA module carries out identity authentication on the intelligent network card according to the first KEY, and initiates a data acquisition request to a corresponding network card in the client according to the first data starting block address, the first data block number and the first RDMA address after the authentication is passed;
acquiring corresponding data from the client according to the data acquisition request, and caching the data into a memory of the client;
after the cache is finished, writing the data in the memory into the corresponding storage unit;
and after the data writing is finished, sending a message that the data writing is successful to the storage control module.
Optionally, when the type of the request is a read request, the content of the request includes a second data start block address of data to be read, a second data block number of the data to be read, a second RDMA address, a second KEY, and a target storage unit, and the intelligent network card further includes an edrma module;
correspondingly, the storage control module sends the read request and the content to the eRDMA module;
the eRDMA module carries out identity authentication on the client according to the second KEY and acquires corresponding target data from the target storage unit according to the second data starting block address and the second data block number after the client passes the authentication;
caching the target data into a memory of the target data;
according to the second RDMA address, sending target data in the memory to a corresponding position in the client;
and after the target data is sent, sending a message that the target data is successfully sent to the storage control module.
Optionally, the edram module includes an error handling unit;
and when an error occurs in the operation process of the eRDMA module, the error processing unit correspondingly processes the error according to a corresponding error processing strategy.
Optionally, the intelligent network card further includes a configuration module;
the configuration module performs initialization configuration on the intelligent network card and configures the error processing strategy.
Optionally, when the size of the write request exceeds a preset threshold, the edram module divides the write request into a plurality of sub-write requests according to the size of the write request, and performs corresponding processing on the sub-write requests.
Optionally, the intelligent network card and the client communicate with each other through a non-volatile memory storage transfer NVME over RDMA protocol based on a remote direct storage access technology or a small computer interface iSER protocol based on a remote direct storage access technology.
Optionally, the intelligent network card is implemented based on a field programmable gate array FPGA or an application specific integrated circuit ASIC.
In a third aspect, the present disclosure also provides a computer-readable storage medium, on which a computer program is stored, where the computer program, when executed by a processor, implements the network storage method of the intelligent network card according to any one of the embodiments of the present disclosure.
Compared with the prior art, the technical scheme provided by the embodiment of the disclosure has the following advantages: the receiving module is used for receiving the request sent by the client and sending the request to the request processing module; the request processing module is used for analyzing the request, obtaining the type of the request and the content of the request and sending the type and the content to the storage control module; the storage control module is used for processing the request according to the type and the content to obtain a processing result and sending the processing result to the reply module; and the reply module is used for returning the processing result to the client, and the intelligent network card can improve the speed of network storage, reduce the delay of data reading and writing and avoid the waste of resources in the CPU.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and together with the description, serve to explain the principles of the disclosure.
In order to more clearly illustrate the embodiments or technical solutions in the prior art of the present disclosure, the drawings used in the description of the embodiments or prior art will be briefly described below, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without inventive exercise.
Fig. 1 is an application scenario diagram of an intelligent network card in the embodiment of the present disclosure;
fig. 2 is a schematic structural diagram of an intelligent network card provided in the embodiment of the present disclosure;
fig. 3A is a schematic structural diagram of another intelligent network card provided in the embodiment of the present disclosure;
FIG. 3B is a schematic diagram of the internal structure of an eRDMA module in an implementation of the present disclosure;
fig. 4 is a schematic flowchart of a network storage method of an intelligent network card according to an embodiment of the present disclosure.
Detailed Description
In order that the above objects, features and advantages of the present disclosure may be more clearly understood, aspects of the present disclosure will be further described below. It should be noted that the embodiments and features of the embodiments of the present disclosure may be combined with each other without conflict.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure, but the present disclosure may be practiced in other ways than those described herein; it is to be understood that the embodiments disclosed in the specification are only a few embodiments of the present disclosure, and not all embodiments.
The intelligent network card provided by the application can be applied to the application scene shown in fig. 1. The intelligent network card is applied to the network storage process, and the network storage is mainly carried out in a client side and a server side. As shown in fig. 1, the CPU100, the RAM101 and the preset network card 102 belong to a client, the intelligent network card belongs to a server, the CPU100 and the RAM101 can communicate with each other, the RAM101 and the preset network card 102 can communicate with each other, and the preset network card 102 and the intelligent network card 103 can communicate with each other. The type of the preset network card 102 may be a common network card or an intelligent network card, and this embodiment is not particularly limited. The common network card can not directly read data, but can execute corresponding reading operation after receiving the instruction of the CPU, and the intelligent network card can directly process the request initiated by the client.
Compared with the prior art, after the client initiates the request, the intelligent network card of the server can directly process the request, for example, after the client initiates the write request, the intelligent network card of the server can acquire data from the RAM of the client according to the preset network card in the client after processing the write request, and cache the acquired data into the corresponding memory in the intelligent network card, so that the acquired data does not need to be transferred in the RAM in the server, and delay of data reading and writing and waste of resources in the CPU are avoided.
It should be noted that: the client and the server may further include other modules and devices, and this embodiment is not particularly limited.
Fig. 2 is a schematic structural diagram of an intelligent network card provided in an embodiment of the present disclosure, where the intelligent network card is applied to a network storage method of the intelligent network card. As shown in fig. 2, the intelligent network card includes: a receiving module 110, a request processing module 120, a storage control module 130, and a reply module 140.
After the client sends a request to the server, the receiving module 110 of the smart network card of the server receives the request sent by the client and sends the request to the request processing module, so that the request processing module 120 performs corresponding processing on the request.
The client may SEND the request to the server through a POST-SEND operation in a Remote Direct Memory Access (RDMA for short) protocol. RDMA is generated for solving the delay of server-side data processing in network transmission, and is characterized in that a network card can directly transmit data in RAM to the other end of a network without transmission of a CPU.
After receiving the request sent by the receiving module 110, the request processing module 120 needs to parse the request, and after parsing the request, the type of the request and the content included in the request can be obtained, where the content is specific information carried in the request. And the request processing module 120 also sends the type of request and the content of the request to the storage control module 130.
After receiving the type of the request and the content of the request sent by the request processing module 120, the storage control module 130 can process the request according to the type of the request and the content of the request, so as to obtain a processing result of the request, and send the processing result to the reply module 140. The specific processing result may be that the request processing is successful, or may also be that the request processing is failed, and this embodiment is not limited in particular.
After receiving the processing result sent by the storage control module 130, the reply module 140 returns the processing result to the client, so that the client can obtain the processing result of the request in time, and determine the subsequent operation according to the processing result.
In this embodiment, the receiving module is configured to receive a request sent by a client, and send the request to the request processing module; the request processing module is used for analyzing the request, obtaining the type of the request and the content of the request and sending the type and the content to the storage control module; the storage control module is used for processing the request according to the type and the content to obtain a processing result and sending the processing result to the reply module; and the reply module is used for returning the processing result to the client, and the intelligent network card can improve the speed of network storage, reduce the delay of data reading and writing and avoid the waste of resources in the CPU.
In this embodiment, optionally, the intelligent network card further includes a sending module; communication can be performed between the sending module and the reply module 140.
A sending module configured to: and receiving the processing result sent by the reply module 140, and sending the processing result to the client. If the request is successfully processed, the sending module sends a message that the request is successfully processed to the client; and if the request processing fails, the sending module sends a message of the request processing failure to the client, and can carry the reason of the error.
In this embodiment, optionally, the intelligent network card and the client communicate with each other through a nonvolatile memory storage transfer NVME over RDMA protocol based on a remote direct memory access technology or a small computer interface iSER protocol based on a remote direct memory access technology.
The Non-Volatile Memory storage and transmission (referred to as "Non-Volatile Memory storage Express") protocol may be understood as a storage protocol based on a high-speed serial Computer extended bus (PCIE) device, and the performance of the storage protocol is higher than that of a Small Computer System Interface (SCSI), and a Solid State Disk (SSD) is usually used in a Computer to connect the storage protocol to the SSD. SCSI is understood to be a standard protocol for connecting a computer to peripheral devices, and is generally used to connect storage devices, such as Hard Disk Drives (HDDs) or SSDs. The non-volatile memory storage transfer (NVME over RDMA) protocol of the remote direct memory access technology may be understood as a protocol that wraps the NVME protocol inside the RDMA protocol so that the NVME protocol may be transferred inside the RDMA network. The Small Computer Interface (Internet Small Computer System Interface Extensions for Remote Direct Memory Access (iSER) protocol of the Remote Direct Memory Access technology can be understood as packaging the SCSI protocol on the RDMA protocol upper layer, and has the advantages of good performance, low delay and low CPU utilization rate.
In this embodiment, because the intelligent network card and the client communicate based on the NVME over RDMA protocol or the iSER protocol, the interaction process between the intelligent network card and the client does not need the participation of the CPU of the server where the intelligent network card is located, thereby saving resources and improving the efficiency of data transmission.
In this embodiment, optionally, the intelligent network card is implemented based on a field programmable gate array FPGA or an application specific integrated circuit ASIC.
The Field Programmable Gate Array (FPGA for short) can not only solve the disadvantages of the custom circuit, but also overcome the defect of the limited number of Gate circuits of the original Programmable device, and is widely applied in the communication industry. An Application Specific Integrated Circuit (ASIC) is understood to be an Integrated Circuit that is manufactured for a Specific user or a Specific electronic system. The intelligent network card can also be realized based on the FPAG + CPU, and the embodiment does not specifically limit the realization mode of the intelligent network card.
In this embodiment, the intelligent network card is implemented based on an FPGA or an ASIC, so that the intelligent network card can process operations of NVMe over RDMA logic, RDMA transport layer logic, a storage control module, and the like.
Fig. 3A is a schematic flowchart of a network storage method of an intelligent network card according to an embodiment of the present disclosure. The embodiment is optimized on the basis of the embodiment. Optionally, this embodiment further explains the intelligent network card. As shown in fig. 3A, the intelligent network card includes: a receiving module 110, a request processing module 120, a storage control module 130, a reply module 140, a sending module 150, and an enhanced Remote Direct Memory Access (edram) module 160.
The sending module 150 has already been described in the previous embodiment, and is not described herein again.
The eRDMA module 160 is configured to: receiving a command sent by the storage control module 130, where the command is determined according to the type of the request and the content of the request, executing a corresponding operation according to the command, and after the operation is completed, sending an operation completed message to the storage control module 130, that is: sending the processing result to the storage control module 130, so that the storage control module 130 sends the processing result to the reply module 140, and facilitating the reply module 140 to return the processing result to the client.
In this embodiment, optionally, when the type of the request is a write request, the content of the request includes a first data start block address of data to be written, a first data block number of the data to be written, a first RDMA address, and a first KEY, and the intelligent network card further includes a high-speed remote direct storage access edram module 160;
accordingly, the storage control module 130 is configured to send the write request and the content to the edram module 160;
the eRDMA module 160, configured to:
performing identity authentication on the intelligent network card according to the first KEY, and after the authentication is passed, initiating a data acquisition request to a corresponding network card in the client according to the first data starting block address, the first data block number and the first RDMA address;
acquiring corresponding data from the client according to the data acquisition request, and caching the data into a memory of the client;
after the cache is finished, writing the data in the memory into the corresponding storage unit;
after the data writing is completed, a message that the data writing is successful is sent to the storage control module 130.
The write request may be understood as a request for writing some data in the RAM of the client into the server, where some data is data to be written. The first data start block address may be understood as a specific location of the data to be written in the client. The number of the first data blocks can be understood as the length of data to be written in the storage mode stored by the network block. Assuming that the write request is a 4k write request and the size of one data block is 4k, the number of data blocks corresponding to the request is 1. The first RDMA address may be understood as an address where the corresponding network card in the client accesses data in the RAM (or other memory). The type of the corresponding network card in the client may be a common network card or an intelligent network card, and this embodiment is not particularly limited. The first KEY is mainly used for authenticating the intelligent network card. The storage unit is a device connected to the edram module 160 and used for storing data, and may be a Flash Memory (Flash Memory) or other memories, which is not limited in this embodiment.
Specifically, when the type of the request is a write request, the storage control module 130 sends the write request and the content corresponding to the write request to the edram module 160. After receiving the write request and the content corresponding to the write request, the edram module 160 performs identity authentication on the intelligent network card according to the first KEY, and determines the validity of the identity of the intelligent network card, so as to avoid that the illegal intelligent network card performs illegal acquisition on data of the client and causes loss to the user. The edram module 160 can determine the position and length of data to be written according to the first data start block address and the number of the first data blocks after the verification passes, so as to initiate a data acquisition request to a corresponding network card in the client according to the first RDMA address, acquire corresponding data (i.e., data to be written) from the client according to the data acquisition request, cache the data in a memory of the edram module after the data is acquired, write the data in the memory into a corresponding storage unit after the cache is completed, avoid the loss of the data, and finally send a message that the data is successfully written to the storage control module 130 after the data is written, so that the storage control module 130 can send the message to the reply module 140, and notify the client in time through the reply module 140.
In the embodiment, the write request is realized through the process, the safety of the data write process is improved, the participation of a server-side CPU is not needed, delay fluctuation caused by scheduling of an operating system is avoided, the average delay and the long tail delay can be reduced, and the resources of the server-side CPU can be saved.
In this embodiment, optionally, when the type of the request is a read request, the content of the request includes a second data start block address of data to be read, a second data block number of the data to be read, a second RDMA address, a second KEY, and a target storage unit, and the intelligent network card further includes an edram module 160;
accordingly, the storage control module 130 is configured to send the read request and the content to the edram module 160;
the eRDMA module 160, configured to:
performing identity authentication on the client according to the second KEY, and acquiring corresponding target data from the target storage unit according to the second data starting block address and the second data block number after the authentication is passed;
caching the target data into a memory of the target data;
according to the second RDMA address, sending target data in the memory to a corresponding position in the client;
after the target data is sent, a message that the target data is successfully sent is sent to the storage control module 130.
The read request can be understood as a request for reading data of the server and storing the data to the client, where the data is to-be-read data and also target data. The second data start block address can be understood as the specific position of the data to be read in the server side. The number of the second data blocks can be understood as the length of the data to be read in the storage mode stored in the network block. The second RDMA address may be understood as an address that sends data to a corresponding location in the client. The corresponding location may be a RAM in the client, or may be other locations, which is not specifically limited in this embodiment. The second KEY is mainly used for authenticating the client. The target storage unit is a device connected to the edram module 160 and used for storing data, and may be a Flash Memory (Flash Memory) or other memories, which is not limited in this embodiment.
Specifically, when the type of the request is a read request, the storage control module 130 sends the read request and the content corresponding to the read request to the edram module 160. After receiving the read request and the content corresponding to the read request, the edram module 160 performs identity authentication on the client according to the second KEY, and determines the validity of the identity of the client, thereby avoiding the data of the server from being illegally read by an illegal client, which causes loss. The edram module 160 may determine, after the verification passes, a position and a length of data to be read from the target storage unit according to the second data start block address and the number of the second data blocks, so as to obtain target data according to the position and the length, after the target data is obtained, the target data is cached in a memory of the edram module, then the target data in the memory is sent to a corresponding position in the client, for example, a RAM, according to the second RDMA address, and finally, after the target data is sent, a message that the target data is successfully sent is sent to the storage control module 130, so that the storage control module 130 may send the message to the reply module 140, so as to notify the client in time through the reply module 140.
In this embodiment, the read request is realized through the above process, the security of the data reading process is improved, the server-side CPU does not need to participate, the average delay and the long tail delay can be reduced, and the resources of the server-side CPU are saved.
In this embodiment, optionally, the edram module 160 includes an error handling unit;
the error processing unit is configured to, when an error occurs in the operation process of the edram module 160, perform corresponding processing on the error according to a corresponding error processing policy.
The error handling policy may be a preconfigured error handling policy, and may also be determined according to a specific situation, which is not specifically limited in this embodiment.
Specifically, the error handling unit may generate an error during the internal operation of the edrma module 160, and perform different processing according to the corresponding error handling policy, for example, retry for a preset number of times (e.g., 3, which may be other values), reset the relevant module, wait for or immediately send a message that the rdma module 160 has an error to the client, and the like.
In this embodiment, when an error occurs in the internal operation process of the edram module 160 through the error processing unit, the error is processed in time, so that a long-time waiting of a user is avoided, and the working efficiency and the user experience can be improved.
Illustratively, fig. 3B is a schematic diagram of an internal structure of the edrma module 160 in the implementation of the present disclosure, and an exemplary implementation is given as shown in fig. 3B:
the eRDMA module 160 includes: edram controller 1601, network transceiver 1602, memory 1603, and storage unit controller 1604.
If the type of request is a write request, the work process of eRDMA module 160 may be: the storage control module 130 issues a write command to the edram controller 1601, where the write command is determined according to the write request and the content of the write request, and the content of the write request may include a data start block address of data to be written, a data block number of the data to be written, and a target storage unit location to be written. The edram controller 1601 initiates a data acquisition request to a network card corresponding to the client by the network transceiver 1602 according to a data start block address of the data to be written and the number of data blocks of the data to be written, and stores the acquired data in the memory 1603, where the memory 1603 may be a cache or a memory of another cache type, and this embodiment is not particularly limited. After the caching is completed, a message of the caching is sent to storage unit controller 1604, and storage unit controller 1604 writes the data in memory 1603 into the target storage unit. After the write is complete, the eRDMA module 160 sends a message to the storage control module 130 that the data write was successful, and the entire operation is complete. If an error occurs during the above operation, the error handling unit may handle the error, and the error handling unit may perform data interaction with the edram controller 1601, the network transceiver 1602, the memory 1603, and the storage unit controller 1604, respectively.
If the type of request is a read request, the work process of eRDMA module 160 may be: the storage control module 130 issues a read command to the edram controller 1601, where the read command is determined according to the read request and the content of the read request, and the content of the read request may include a data start block address of data to be read, the number of data blocks of the data to be read, and a location of a target storage unit to be read. The eRDMA controller 1601 controls the storage unit controller 1604 to read the data stored in the target storage unit into the memory 1603 according to the data start block address of the data to be read, the number of the data blocks of the data to be read and the position of the target storage unit, and the eRDMA controller 1601 sends the data in the memory 1603 to the network card corresponding to the client by the network transceiver 1602 according to the data start block address of the data to be read and the number of the data blocks of the data to be read. After the operation is completed, a message that the data transmission is successful is sent to the storage control module 130. If an error occurs in the operation process, the error processing unit can process the error.
In this embodiment, optionally, the intelligent network card further includes a configuration module;
the configuration module is used for carrying out initialization configuration on the intelligent network card and configuring the error processing strategy.
Specifically, the configuration module performs initialization configuration on the intelligent network card, is connected to the host through the PCIE interface, performs configuration through the PCIE interface, may configure, for example, an Internet Protocol (Internet Protocol, abbreviated as IP) address of the intelligent network card, a name of the server, some information of NVME over RDMA, including the number of queues supported at the maximum, the maximum queue depth, and the like, and may also configure an error handling policy, for example, may configure behaviors after an error occurs in the edrma module 160, including the number of retries, a retry time interval, whether to retry or not, and the like.
In this embodiment, the normal use of the intelligent network card can be ensured by performing corresponding configuration through the configuration module.
In this embodiment, optionally, the edrma module 160 is configured to: when the size of the write request exceeds a preset threshold value, dividing the write request into a plurality of sub-write requests according to the size of the write request, and carrying out corresponding processing on the sub-write requests.
The preset threshold may be preset, or may be determined according to a specific situation, and the embodiment is not particularly limited.
Specifically, when the size of the write request exceeds a preset threshold, the edram module 160 divides the write request into a plurality of sub-write requests according to the size of the write request (i.e., the size of the data to be written), and performs corresponding processing on all the sub-write requests. For example, when 1024k of data is written at a time, the data may be written 512k before, 512k after, depending on the actual situation.
In the embodiment, the processing speed of the write request can be increased and the working efficiency can be improved by the method.
In this embodiment, optionally, the edrma module 160 is configured to: when the size of the read request exceeds a target threshold, dividing the read request into a plurality of sub read requests according to the size of the read request, and carrying out corresponding processing on the sub read requests.
The target threshold may be preset, or may be determined according to specific situations, and the determining manner of the target threshold and the sizes of the preset threshold and the target threshold are not specifically limited in this embodiment.
Specifically, when the size of the read request (i.e., the size of the data to be read) exceeds the target threshold, the edram module 160 divides the read request into a plurality of sub-read requests according to the size of the read request, and performs corresponding processing on all the sub-read requests.
In this embodiment, the processing speed of the read request can be increased and the working efficiency can be improved by the method.
Fig. 4 is a schematic flow chart of a network storage method of an intelligent network card according to an embodiment of the present disclosure, and this embodiment is applied to an intelligent network card and is applicable to a network storage process of the intelligent network card. As shown in fig. 4, the smart network card includes: the method specifically comprises the following steps:
s410, the receiving module receives the request sent by the client and sends the request to the request processing module.
And S420, the request processing module analyzes the request to obtain the type of the request and the content of the request, and sends the type and the content to the storage control module.
And S430, the storage control module processes the request according to the type and the content to obtain a processing result, and sends the processing result to the reply module.
S440, the reply module returns the processing result to the client.
In this embodiment, optionally, when the type of the request is a write request, the content of the request includes a first data start block address of data to be written, the number of first data blocks of the data to be written, a first remote direct storage access RDMA address, and a first KEY, and the intelligent network card further includes a high-speed remote direct storage access edrma module;
correspondingly, the storage control module sends the write request and the content to the eRDMA module;
the eRDMA module carries out identity authentication on the intelligent network card according to the first KEY, and initiates a data acquisition request to a corresponding network card in the client according to the first data starting block address, the first data block number and the first RDMA address after the authentication is passed;
acquiring corresponding data from the client according to the data acquisition request, and caching the data into a memory of the client;
after the cache is finished, writing the data in the memory into the corresponding storage unit;
and after the data writing is finished, sending a message that the data writing is successful to the storage control module.
In this embodiment, optionally, when the type of the request is a read request, the content of the request includes a second data start block address of data to be read, a second data block number of the data to be read, a second RDMA address, a second KEY, and a target storage unit, and the intelligent network card further includes an edrma module;
correspondingly, the storage control module sends the read request and the content to the eRDMA module;
the eRDMA module carries out identity authentication on the client according to the second KEY and acquires corresponding target data from the target storage unit according to the second data starting block address and the second data block number after the client passes the authentication;
caching the target data into a memory of the target data;
according to the second RDMA address, sending target data in the memory to a corresponding position in the client;
and after the target data is sent, sending a message that the target data is successfully sent to the storage control module.
In this embodiment, optionally, the edram module includes an error handling unit;
and when an error occurs in the operation process of the eRDMA module, the error processing unit correspondingly processes the error according to a corresponding error processing strategy.
In this embodiment, optionally, the intelligent network card further includes a configuration module;
the configuration module performs initialization configuration on the intelligent network card and configures the error processing strategy.
In this embodiment, optionally, when the size of the write request exceeds a preset threshold, the edram module divides the write request into a plurality of sub-write requests according to the size of the write request, and performs corresponding processing on the sub-write requests.
In this embodiment, optionally, the intelligent network card and the client communicate with each other through a nonvolatile memory storage transfer NVME over RDMA protocol based on a remote direct memory access technology or a small computer interface iSER protocol based on a remote direct memory access technology.
In this embodiment, optionally, the intelligent network card is implemented based on a field programmable gate array FPGA or an application specific integrated circuit ASIC.
According to the network storage method of the intelligent network card, firstly, the receiving module receives a request sent by a client, the request is sent to the request processing module, then the request processing module analyzes the request to obtain the type of the request and the content of the request, the type and the content of the request are sent to the storage control module, then the storage control module processes the request according to the type and the content to obtain a processing result, the processing result is sent to the replying module, and finally the replying module returns the processing result to the client.
The embodiment of the present disclosure also provides a storage medium containing computer executable instructions, which are used for implementing the network storage method of the intelligent network card provided by the embodiment of the present disclosure when being executed by a computer processor.
Of course, the storage medium provided by the embodiments of the present disclosure contains computer-executable instructions, and the computer-executable instructions are not limited to the operations of the method described above, and may also perform related operations in the network storage method of the intelligent network card provided by any embodiments of the present disclosure.
From the above description of the embodiments, it is obvious for a person skilled in the art that the present disclosure can be implemented by software and necessary general hardware, and certainly can be implemented by hardware, but in many cases, the former is a better embodiment. Based on such understanding, the technical solutions of the present disclosure may be embodied in the form of a software product, which may be stored in a computer-readable storage medium, such as a floppy disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a FLASH Memory (FLASH), a hard disk or an optical disk of a computer, and includes several instructions for enabling a computer device (which may be a personal computer, a server, or a network device) to execute the methods according to the embodiments of the present disclosure.
It is to be noted that, in the embodiment of the intelligent network card, each included unit and module are only divided according to functional logic, but are not limited to the above division, as long as the corresponding function can be realized; in addition, specific names of the functional units are only used for distinguishing one functional unit from another, and are not used for limiting the protection scope of the present disclosure.
It is noted that, in this document, relational terms such as "first" and "second," and the like, may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
The foregoing are merely exemplary embodiments of the present disclosure, which enable those skilled in the art to understand or practice the present disclosure. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (10)

1. An intelligent network card, comprising: the device comprises a receiving module, a request processing module, a storage control module and a reply module;
the receiving module is used for receiving a request sent by a client and sending the request to the request processing module;
the request processing module is used for analyzing the request, obtaining the type of the request and the content of the request, and sending the type and the content to the storage control module;
the storage control module is used for processing the request according to the type and the content to obtain a processing result and sending the processing result to the reply module;
and the reply module is used for returning the processing result to the client.
2. The intelligent network card of claim 1, wherein when the type of the request is a write request, the content of the request comprises a first data start block address of data to be written, a first data block number of the data to be written, a first remote direct storage access (RDMA) address and a first KEY KEY, and the intelligent network card further comprises a high-speed remote direct storage access (eRDMA) module;
correspondingly, the storage control module is configured to send the write request and the content to the edram module;
the eRDMA module is configured to:
performing identity authentication on the intelligent network card according to the first KEY, and after the authentication is passed, initiating a data acquisition request to a corresponding network card in the client according to the first data starting block address, the first data block number and the first RDMA address;
acquiring corresponding data from the client according to the data acquisition request, and caching the data into a memory of the client;
after the cache is finished, writing the data in the memory into the corresponding storage unit;
and after the data writing is finished, sending a message that the data writing is successful to the storage control module.
3. The intelligent network card of claim 1, wherein when the type of the request is a read request, the content of the request comprises a second data start block address of data to be read, a second number of data blocks of the data to be read, a second RDMA address, a second KEY, and a target storage unit, and the intelligent network card further comprises an edrma module;
correspondingly, the storage control module is configured to send the read request and the content to the edram module;
the eRDMA module is configured to:
performing identity authentication on the client according to the second KEY, and acquiring corresponding target data from the target storage unit according to the second data starting block address and the second data block number after the authentication is passed;
caching the target data into a memory of the target data;
according to the second RDMA address, sending target data in the memory to a corresponding position in the client;
and after the target data is sent, sending a message that the target data is successfully sent to the storage control module.
4. The intelligent network card of any one of claims 2 or 3, wherein the eRDMA module includes an error handling unit therein;
and the error processing unit is used for correspondingly processing the error according to a corresponding error processing strategy when the error occurs in the operation process of the eRDMA module.
5. The intelligent network card of claim 4, further comprising a configuration module;
the configuration module is used for carrying out initialization configuration on the intelligent network card and configuring the error processing strategy.
6. The intelligent network card of claim 2, wherein the eRDMA module is to: when the size of the write request exceeds a preset threshold value, dividing the write request into a plurality of sub-write requests according to the size of the write request, and carrying out corresponding processing on the sub-write requests.
7. The intelligent network card of claim 1, wherein the intelligent network card and the client communicate with each other via a non-volatile memory storage over NVME RDMA protocol based on remote direct storage access technology or a mini-computer interface iSER protocol based on remote direct storage access technology.
8. The intelligent network card of claim 1, wherein the intelligent network card is implemented based on a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC).
9. A network storage method of an intelligent network card is applied to the intelligent network card, and the intelligent network card comprises the following steps: the method comprises a receiving module, a request processing module, a storage control module and a reply module, and comprises the following steps:
the receiving module receives a request sent by a client and sends the request to the request processing module;
the request processing module analyzes the request to obtain the type of the request and the content of the request, and sends the type and the content to the storage control module;
the storage control module processes the request according to the type and the content to obtain a processing result, and sends the processing result to the reply module;
and the reply module returns the processing result to the client.
10. A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the method as claimed in claim 9.
CN202111405158.3A 2021-11-24 2021-11-24 Intelligent network card, network storage method and medium of intelligent network card Active CN114285676B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111405158.3A CN114285676B (en) 2021-11-24 2021-11-24 Intelligent network card, network storage method and medium of intelligent network card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111405158.3A CN114285676B (en) 2021-11-24 2021-11-24 Intelligent network card, network storage method and medium of intelligent network card

Publications (2)

Publication Number Publication Date
CN114285676A true CN114285676A (en) 2022-04-05
CN114285676B CN114285676B (en) 2023-10-20

Family

ID=80869915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111405158.3A Active CN114285676B (en) 2021-11-24 2021-11-24 Intelligent network card, network storage method and medium of intelligent network card

Country Status (1)

Country Link
CN (1) CN114285676B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991781A (en) * 2023-09-25 2023-11-03 京东科技信息技术有限公司 Request processing device, method, chip, storage medium and electronic equipment
WO2024060934A1 (en) * 2022-09-22 2024-03-28 北京火山引擎科技有限公司 Data processing method and apparatus

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124059A1 (en) * 2001-02-28 2002-09-05 Hiroharu Takahashi Network interface apparatus, image processing apparatus, data providing method, and program
US20030200315A1 (en) * 2002-04-23 2003-10-23 Mellanox Technologies Ltd. Sharing a network interface card among multiple hosts
CN1705269A (en) * 2004-05-25 2005-12-07 中国科学院计算技术研究所 Remote page access method for use in shared virtual memory system and network interface card
US20060018330A1 (en) * 2004-06-30 2006-01-26 Intel Corporation Method, system, and program for managing memory requests by devices
US7222150B1 (en) * 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
CN103248467A (en) * 2013-05-14 2013-08-14 中国人民解放军国防科学技术大学 In-chip connection management-based RDMA communication method
CN105450588A (en) * 2014-07-31 2016-03-30 华为技术有限公司 RDMA-based data transmission method and RDMA network cards
CN106210041A (en) * 2016-07-05 2016-12-07 杭州华为数字技术有限公司 A kind of method for writing data and server end network interface card
EP3382548A1 (en) * 2017-03-31 2018-10-03 Intel Corporation Shared memory for intelligent network interface cards
CN109564502A (en) * 2016-08-19 2019-04-02 华为技术有限公司 Treating method and apparatus applied to the access request in storage equipment
CN110647480A (en) * 2018-06-26 2020-01-03 华为技术有限公司 Data processing method, remote direct memory access network card and equipment
US20200274832A1 (en) * 2019-02-22 2020-08-27 Microsoft Technology Licensing, Llc Rdma transport with hardware integration and out of order placement
WO2020259418A1 (en) * 2019-06-24 2020-12-30 华为技术有限公司 Data access method, network card and server
CN113076280A (en) * 2019-12-18 2021-07-06 华为技术有限公司 Data transmission method and related equipment
CN113383531A (en) * 2019-12-25 2021-09-10 华为技术有限公司 Forwarding equipment, network card and message forwarding method
CN113688072A (en) * 2020-05-19 2021-11-23 华为技术有限公司 Data processing method and device

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222150B1 (en) * 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
US20020124059A1 (en) * 2001-02-28 2002-09-05 Hiroharu Takahashi Network interface apparatus, image processing apparatus, data providing method, and program
US20030200315A1 (en) * 2002-04-23 2003-10-23 Mellanox Technologies Ltd. Sharing a network interface card among multiple hosts
CN1705269A (en) * 2004-05-25 2005-12-07 中国科学院计算技术研究所 Remote page access method for use in shared virtual memory system and network interface card
US20060018330A1 (en) * 2004-06-30 2006-01-26 Intel Corporation Method, system, and program for managing memory requests by devices
CN103248467A (en) * 2013-05-14 2013-08-14 中国人民解放军国防科学技术大学 In-chip connection management-based RDMA communication method
CN105450588A (en) * 2014-07-31 2016-03-30 华为技术有限公司 RDMA-based data transmission method and RDMA network cards
CN106210041A (en) * 2016-07-05 2016-12-07 杭州华为数字技术有限公司 A kind of method for writing data and server end network interface card
CN109564502A (en) * 2016-08-19 2019-04-02 华为技术有限公司 Treating method and apparatus applied to the access request in storage equipment
EP3382548A1 (en) * 2017-03-31 2018-10-03 Intel Corporation Shared memory for intelligent network interface cards
CN110647480A (en) * 2018-06-26 2020-01-03 华为技术有限公司 Data processing method, remote direct memory access network card and equipment
US20200274832A1 (en) * 2019-02-22 2020-08-27 Microsoft Technology Licensing, Llc Rdma transport with hardware integration and out of order placement
WO2020259418A1 (en) * 2019-06-24 2020-12-30 华为技术有限公司 Data access method, network card and server
CN113076280A (en) * 2019-12-18 2021-07-06 华为技术有限公司 Data transmission method and related equipment
CN113383531A (en) * 2019-12-25 2021-09-10 华为技术有限公司 Forwarding equipment, network card and message forwarding method
CN113688072A (en) * 2020-05-19 2021-11-23 华为技术有限公司 Data processing method and device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
R. AMMENDOLA; A. BIAGIONI; O. FREZZA; G. LAMANNA; F. LO CICERO; A. LONARDO; M. MARTINELLI; P. S. PAOLUCCI; E. PASTORELLI; L. PONTI: "NaNet: Design of FPGA-based network interface cards for real-time trigger and data acquisition systems in HEP experiments", 《2015 IEEE NUCLEAR SCIENCE SYMPOSIUM AND MEDICAL IMAGING CONFERENCE (NSS/MIC)》 *
侯志春: "基于PCIE接口的网卡硬件设计", 《CNKI》 *
魏星达;陈榕;陈海波;: "基于RDMA高速网络的高性能分布式系统", 大数据, no. 04 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024060934A1 (en) * 2022-09-22 2024-03-28 北京火山引擎科技有限公司 Data processing method and apparatus
CN116991781A (en) * 2023-09-25 2023-11-03 京东科技信息技术有限公司 Request processing device, method, chip, storage medium and electronic equipment
CN116991781B (en) * 2023-09-25 2024-02-06 京东科技信息技术有限公司 Request processing device, method, chip, storage medium and electronic equipment

Also Published As

Publication number Publication date
CN114285676B (en) 2023-10-20

Similar Documents

Publication Publication Date Title
US10394723B2 (en) Data accessing method and PCIe storage device
CN114285676B (en) Intelligent network card, network storage method and medium of intelligent network card
CN111078607B (en) Network access programming framework deployment method and system for RDMA (remote direct memory access) and nonvolatile memory
US20150378888A1 (en) Controller, flash memory apparatus, and method for writing data into flash memory apparatus
CN111813584A (en) Memory sharing method and device, electronic equipment and storage medium
US9594696B1 (en) Systems and methods for automatic generation of parallel data processing code
CN116527593B (en) Network traffic congestion control method and related device
US20230152978A1 (en) Data Access Method and Related Device
CN114201268B (en) Data processing method, device and equipment and readable storage medium
US8639840B2 (en) Processing unit, chip, computing device and method for accelerating data transmission
CN104317716B (en) Data transmission method and distributed node equipment between distributed node
WO2015196378A1 (en) Method, device and user equipment for reading/writing data in nand flash
CN113360077B (en) Data storage method, computing node and storage system
CN113794764A (en) Request processing method and medium for server cluster and electronic device
KR102526104B1 (en) Data storage device and operating method thereof
CN111258932A (en) Method for accelerating UFS protocol processing and storage controller
CN114706531A (en) Data processing method, device, chip, equipment and medium
US9733988B1 (en) Systems and methods to achieve load balancing among a plurality of compute elements accessing a shared memory pool
CN113596010A (en) Data processing method and device, node equipment and computer storage medium
CN114078497A (en) System, apparatus and method for memory interface including reconfigurable channel
CN110990313B (en) Method, equipment and storage medium for processing clock stretching of I3C bus
WO2017173844A1 (en) Directory reading method, apparatus and system
CN116032498A (en) Memory area registration method, device and equipment
WO2020034080A1 (en) Dma-based data processing method and related product
CN108733583A (en) Improve the pre-head method and system of NVMe SSD alphabetic data reading performances

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant