Search

CN-122018808-A - Dynamic queue binding method and system based on NVMe over Fabrics (NVMeoF)

CN122018808ACN 122018808 ACN122018808 ACN 122018808ACN-122018808-A

Abstract

A dynamic queue binding method and system based on NVMe over Fabrics (NVMeoF) is applied to a protocol processing unit at a storage device side; the method comprises the steps of distributing Unique identifier Unique ID for each I/O command, and maintaining a mapping table of the Unique ID and a physical NVMe queue in RAM; when an I/O command is received, if mapping is missing, dynamically selecting a target queue according to the occupation condition of a physical queue and establishing mapping, so as to realize the on-demand binding of the logic context and the physical queue; the system comprises a protocol conversion module, a unique identification processing module, a RAM mapping table module, a queue scheduling module and a physical NVMe controller; the invention supports multiple initiator sharing limited physical queues, reduces SSD resource overhead, improves load balance and system expansibility, is compatible with the existing NVMe drive, and can be deployed on an FPGA or an intelligent network card; complete decoupling of NVMeoF queues from physical NVMe queues is achieved while maintaining protocol transparency to the Initiator.

Inventors

  • ZENG ZHIBIN
  • DENG JIAWEN
  • JIN GANG
  • LIU WEIFENG
  • TANG HUALIAN
  • BAO JUNLIN
  • LI ZHENRONG

Assignees

  • 西安电子科技大学

Dates

Publication Date
20260512
Application Date
20260203

Claims (10)

  1. 1. A dynamic queue binding method based on NVMe over Fabrics (NVMeoF), applied to a protocol processing unit at a storage device side, comprising the following steps: Step 1, receiving an I/O command sent by at least one host-side initiator through NVMeoF protocol, wherein the I/O command carries a Unique identifier Unique ID; Step 2, based on the Unique ID in step 1, searching corresponding physical NVMe queue information in a mapping table maintained in RAM; Step 3, when no corresponding record exists in the mapping table in step 2, dynamically selecting a target physical NVMe queue from a plurality of available physical NVMe queues according to the occupation condition of the physical NVMe queue which is currently pre-created by the physical NVMe controller, and establishing a mapping relation between the Unique ID and the target physical NVMe queue in the mapping table; Step 4, packaging the I/O command in the step 1 into a command conforming to a local NVMe protocol format, and submitting the command to the target physical NVMe queue for execution in the step 3; And step 5, after receiving the completion response of the I/O command, returning the completion status to the corresponding host initiator through NVMeoF protocol.
  2. 2. The dynamic queue binding method of claim 1, wherein the physical NVMe queue is a queue pair consisting of a commit queue SQ and a corresponding completion queue CQ.
  3. 3. The dynamic queue binding method of claim 1, wherein the Unique ID is generated by a host side initiator and sent with each I/O command to uniquely identify the logical context to which the I/O command belongs.
  4. 4. The method of claim 1, wherein dynamically selecting the target physical NVMe queue based on occupancy of the physical NVMe queue currently pre-created by the physical NVMe controller includes employing any one of a minimum load priority, a poll allocation, or a historical access heat based allocation policy.
  5. 5. The dynamic queue binding method of claim 1, wherein the I/O command is encapsulated using a commit queue descriptor SQD when encapsulated in a native NVMe protocol format, the commit queue descriptor SQD comprising a command opcode, a data pointer, a command identifier CID, and a target namespace identifier NSID.
  6. 6. The dynamic queue binding method of claim 5, wherein the command identifier CIDs are virtualized among different host-side initiators such that multiple host-side initiators can multiplex the same command identifier CID value without collision.
  7. 7. A dynamic queue binding system based on NVMe over Fabrics (NVMeoF) for performing the dynamic queue binding method of any one of claims 1 to 6, comprising: The protocol conversion module is used for receiving an I/O command sent by the host end initiator through NVMeoF protocols, converting the I/O command into a local NVMe protocol format and respectively used in the step 1 and the step 3; the Unique identification processing module is used for extracting the Unique ID in the I/O command in the step 2; the RAM mapping table module is stored in the RAM and used for maintaining the mapping relation between the Unique ID and the physical NVMe queue in the step 3; The queue scheduling module is used for dynamically allocating a target physical NVMe queue according to the occupation state of each physical NVMe queue in the physical NVMe controller when the mapping relation is missing in the step 3 and the step 4, and updating the RAM mapping table; The physical NVMe controller is used for containing a plurality of pre-created physical NVMe queues in the step 4, and is used for executing the packaged I/O command and returning a completion response; The protocol conversion module is further configured to return a completion response to the corresponding host initiator through NVMeoF protocols in step 5.
  8. 8. The dynamic queue binding system of claim 7, wherein the system is deployed in an FPGA or smart network card SmartNIC.
  9. 9. The dynamic queue binding system of claim 7, wherein the physical NVMe queue is a queue pair consisting of a commit queue SQ and a corresponding completion queue CQ.
  10. 10. The dynamic queue binding system of claim 7, wherein the queue scheduling module employs minimum load priority, poll allocation, or an allocation policy based on historical access heat for queue selection.

Description

Dynamic queue binding method and system based on NVMe over Fabrics (NVMeoF) Technical Field The invention relates to the technical field of computer storage systems, in particular to a dynamic queue binding method and system based on NVMe over Fabrics (NVMeoF). Background The invention with the application number of CN202510329574.1 and the publication number of CN119854364A, named as a hardware unloading device and method of NVMeoF, discloses an unloading method based on NVMeoF, improves the access performance, reduces the access delay and unloads the CPU computing power of a storage board. When the standard NVMe-oF is used as a middleware, the standard protocol is limited, autonomous management oF each queue pair (including RDMA and NVMe queue pairs) cannot be realized, and the queues cannot be flexibly allocated according to actual application conditions, so that the scheme is not applicable to the complex environment with multiple data. The invention discloses an NVMe-oF-based network storage implementation method, which is disclosed by the invention with the application number oF CN202410160584.2 and the publication number oF CN118101777A and is named as an NVMe-over-RDMA protocol transmission method and electronic equipment, and a modular structure Fabrices connection command containing a subsystem unique identifier is sent to a target terminal by utilizing a pre-established RDMA shared queue. For CN118101777a, interfacing with the mainstream nvmecli or libnvme library is not possible using pre-established RDMA sharing queues that do not meet the NVMe-orf standard. The invention discloses a method for tightly coupling data transmission and NVMeoF response instruction transmission to improve the request processing efficiency of a system, and the application number is CN202411171854.6, the publication number is CN118672953A, and the name is NVMeoF response instruction transmission method based on RDMA completion event. When the data transmission and NVMeoF response command transmission are tightly coupled, when the control command without data transmission is transmitted or the data transmission is temporarily not transmitted, the resources for data transmission cannot be released, which causes high system resource occupation and possible memory management problem. With the widespread deployment of NVMe SSDs in data centers, high performance I/O subsystems based on NVMe protocols are becoming the mainstream. The NVMe-over-Fabrics (NVMeoF) further extends the NVMe access from local PCIe to ethernet (e.g., roCEv, TCP, etc.) environments, enabling remote high performance storage access. In the existing NVMeoF architecture, the initiator establishes a Queue Pair (QP) through RDMA, and each NVMeoF queue (SQ/CQ) is typically bound one-to-one with the physical queues of the underlying NVMe devices. However, this binding has the following problems: A great deal of waste of queue resources Multiple initiators, multiple connection scenarios create a large number NVMeoF of queues, but SSDs can only provide a limited number of high performance physical queues, resulting in low resource utilization. Failure to dynamically schedule queue load The current NVMeoF queue is statically bound with an NVMe queue, so that automatic mapping according to SSD load in the running period cannot be realized, and the I/O concurrency capability is insufficient. Command context is strictly dependent on CID/SQID and does not have cross-layer mapping capability NVMeoF and NVMe share the conventional CID, so that the protocol conversion layer cannot virtualize the queue structure and cannot share the NVMe physical queue resources. Lack of efficient queue virtualization mechanisms In the prior art, the number of NVMeoF queues is strongly related to the number of NVMe queues, so that a framework for sharing SSD resource pools by multiple hosts is difficult to realize. Disclosure of Invention In order to overcome the problems in the prior art, the invention aims to provide a NVMe over Fabrics (NVMeoF) -based dynamic queue binding method and a NVMe over Fabrics-based dynamic queue binding system, wherein a Unique identifier (Unique ID) is distributed for each NVMeoF (NVMe over Fabrics) submitted queue item in a protocol conversion layer, the Unique identifier is bound with an original queue context (SQD) and stored in a RAM mapping table, a physical queue is dynamically selected to issue a command and carry the Unique ID according to a load state of a physical NVMe controller, the context is recovered through a Unique ID table lookup after I/O is completed, and a standard completion queue item is constructed to return to an Initiator. In order to achieve the above purpose, the technical scheme adopted by the invention is as follows: A dynamic queue binding method based on NVMe over Fabrics (NVMeoF) is applied to a protocol processing unit at a storage device side, and comprises the following steps: Step 1, receiving an I/O command sent by a