Empowering Storage Systems Research with NVMeVirt: A Comprehensive NVMe Device Emulator - Kim, Sang Hoon; Shim, Jaehoon; Lee, Euidong; Jeong, Seongyeop; Kang, Ilkueon; Kim, Jin Soo (ACM Transactions on Storage, 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. Furthermore, existing emulators lack the capability to support the advanced storage configurations that are currently in the spotlight.In this article, 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: Emulator; High performance communication; Key values; Key-value SSD; NVMe device; SSD; Storage systems; Systems research; Virtual devices; ZNS SSD; emulator; key-value SSD; NVMe device; SSD; Virtual device; ZNS SSD