PCIe implementation of NVMe over Fabrics (NVMe-oF)

NVMe over Fabrics (NVMe-oF) is an industry-standard for providing fast access to remote storage devices. By relying on remote direct memory access (RDMA), devices can read and write directly to remote memory over a network (“fabric”) with very little overhead. Dolphin’s PCIe technology allows devices to use native DMA to remote memory directly, without relying on an RDMA transport protocol.
Master

The Storage Performance Development Kit (SPDK) is an open-source implementation of NVMe-based storage solutions, including an NVMe-oF driver implementation with support for various RDMA technologies. We want to extend this implementation with support for Dolphin’s PCIe technology and use PCIe for transport.

The task for the master project will be to:

  • Getting familiar with DMA and NVMe storage devices
  • Explore the possibilities for, and if possible implement, a generic VFIO interface for Dolphin’s PCIe technology
  • Implement support for PCIe transport in SDPK, using either VFIO or Dolphin’s SISCI API if VFIO is not feasible
  • Survey state of the art RDMA transport APIs, and run performance comparisons with RDMA transports, for example, RoCE and Infiniband

Goal

Implement support for NVMe-oF over a PCIe “fabric” for SPDK, using native DMA. Run performance benchmarks and analysis of implementation and compare it to state of the art RDMA solutions.

Learning outcome

In-depth knowledge of NVMe-based storage solutions, NVMe-oF and memory architectures in distributed systems. The student will also gain knowledge about state-of-the-art RDMA solutions.

Qualifications

Good understanding of C programming. The student should have completed INF3151 or equivalent. IN5050 is recommended in the degree.

Supervisors

  • Håkon Kvale Stensland
  • Jonas Markussen, Dolphin Interconnect Solutions
  • Hugo Kohmann, Dolphin Interconnect Solutions

Collaboration partners

Dolphin Interconnect Solutions

Contact person