spdk / spdk.github.io

SPDK organization web pages
8 stars 14 forks source link

NVMF/NVME questions #35

Closed tomzawadzki closed 2 weeks ago

tomzawadzki commented 2 weeks ago
  1. NVMF Target - Persistent Reservation - Asynchronous load and store otherwise it becomes a blocking call. Might be a problem if the load/store is slow.

  2. NVMF Target - Custom discovery filter - There are some pre-defined filter options. Option to provide a custom filter via SPDK_NVMF_TGT_DISCOVERY_MATCH_TRANSPORT_CUSTOM enum value?

  3. NVMF Target - Using SPDK module as a library - TCP server not owned by SPDK. Can it read/write to something else. RDMA memory region setup and ownership?

  4. NVMF Initiator - Persistent Reservation - Should bdev nvme module have a wrapper to reserve paths for the namespace it is managing?

tomzawadzki commented 2 weeks ago
  1. There should be no issues with implementing the reservation store/load as async operation.
  2. Having a custom filter should be fine, there are still details to consider for example how the filter would be configured.
  3. To handle sending the reservation through bdev, a send spdk bdev nvme io command interface can be used.
  4. RDMA should support it, but it would mean doubling up the qpairs and memory regions. Possibly the memory regions could be reused, but not qpairs. SPDK memory register could be used to reuse them.
pkajaria commented 2 weeks ago
  1. spdk_bdev_nvme_passthru_io_cmd to send the raw reserve command

Swap answers to points 3 and 4