NVMeVirt: A Versatile Software-defined Virtual NVMe Device - Kim, Sang Hoon; Shim, Jaehoon; Lee, Euidong; Jeong, Seongyeop; Kang, Ilkueon; Kim, Jin Soo (Proceedings of the 21st USENIX Conference on File and Storage Technologies, FAST 2023, 2023)
There have been drastic changes in the storage device landscape recently. At the center of the diverse storage landscape lies the NVMe interface, which allows high-performance and flexible communication models required by these next-generation device types. However, its hardware-oriented definition and specification are bottlenecking the development and evaluation cycle for new revolutionary storage devices. In this paper, we present NVMeVirt, a novel approach to facilitate software-defined NVMe devices. A user can define any NVMe device type with custom features, and NVMeVirt allows it to bridge the gap between the host I/O stack and the virtual NVMe device in software. We demonstrate the advantages and features of NVMeVirt by realizing various storage types and configurations, such as conventional SSDs, low-latency high-bandwidth NVM SSDs, zoned namespace SSDs, and key-value SSDs with the support of PCI peer-to-peer DMA and NVMe-oF target offloading. We also make cases for storage research with NVMeVirt, such as studying the performance characteristics of database engines and extending the NVMe specification for the improved key-value SSD performance.
Keywords: Communications modeling; Database engine; Flexible communication; High bandwidth; High performance communication; Key values; Low latency; Namespaces; Peer to peer; Performance characteristics