skip to main content
research-article

Empowering Storage Systems Research with NVMeVirt: A Comprehensive NVMe Device Emulator

Published:31 October 2023Publication History
Skip Abstract Section

Abstract

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.

REFERENCES

  1. [1] Amit Nadav, Ben-Yehuda Muli, Tsafrir Dan, and Schuster Assaf. 2011. vIOMMU: Efficient IOMMU emulation. In Proceedings of the 2011 USENIX Annual Technical Conference (ATC’11). USENIX Association.Google ScholarGoogle Scholar
  2. [2] Axboe Jens. n. d. fio: Flexible I/O Tester. https://github.com/axboe/fioGoogle ScholarGoogle Scholar
  3. [3] Bae Jonghyun, Lee Jongsung, Jin Yunho, Son Sam, Kim Shine, Jang Hakbeom, Ham Tae Jun, and Lee Jae W.. 2021. FlashNeuron: SSD-enabled large-batch training of very deep neural networks. In Proceedings of the 19th USENIX Conference on File and Storage Technologies (FAST’21). USENIX Association.Google ScholarGoogle Scholar
  4. [4] Bjørling Matias, Aghayev Abutalib, Holmberg Hans, Ramesh Aravind, Moal Damien Le, Ganger Gregory R., and Amvrosiadis George. 2021. ZNS: Avoiding the block interface tax for flash-based SSDs. In Proceedings of the 2021 USENIX Annual Technical Conference (ATC’21). USENIX Association.Google ScholarGoogle Scholar
  5. [5] Bjørling Matias, Gonzalez Javier, and Bonnet Philippe. 2017. LightNVM: The Linux open-channel SSD subsystem. In Proceedings of the 15th USENIX Conference on File and Storage Technologies (FAST’17). USENIX Association, 359375.Google ScholarGoogle Scholar
  6. [6] Labs Couchbase. n. d. ForestDB Benchmark. https://github.com/couchbaselabs/ForestDB-BenchmarkGoogle ScholarGoogle Scholar
  7. [7] db ranking. n. d. DB-Engines Ranking. https://db-engines.com/en/rankingGoogle ScholarGoogle Scholar
  8. [8] DeepSpeed. n. d. ZeRO-Inference: Democratizing massive model inference. https://www.deepspeed.ai/2022/09/09/zero-inference.htmlGoogle ScholarGoogle Scholar
  9. [9] Do Jaeyoung, Ferreira Victor C., Bobarshad Hossein, Torabzadehkashi Mahdi, Rezaei Siavash, Heydarigorji Ali, Souza Diego, Goldstien Brunno F., Santiago Leandro, Kim Min Soo, Lima Priscila M. V., França M. G., and Alves Vladimir. 2020. Cost-effective, energy-efficient, and scalable storage computing for large-scale AI applications. ACM Transactions on Storage 16, 4, Article 21 (2020), 37 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. [10] Electronics Samsung. n. d. Samsung Enterprise SSD. https://www.samsung.com/semiconductor/ssd/enterprise-ssd/Google ScholarGoogle Scholar
  11. [11] Express NVM. n. d. NVMe-oF Specification. https://nvmexpress.org/developers/nvme-of-specification/Google ScholarGoogle Scholar
  12. [12] Gao Congming, Ye Min, Xue Chun Jason, Zhang Youtao, Shi Liang, Shu Jiwu, and Yang Jun. 2022. Reprogramming 3D TLC flash memory based solid state drives. ACM Transactions on Storage 18, 9 (May2022), 133 pages.Google ScholarGoogle Scholar
  13. [13] Gouk Donghyun, Kwon Miryeong, Zhang Jie, Koh Sungjoon, Choi Wonil, Kim Nam Sung, Kandemir Mahmut, and Jung Myoungsoo. 2018. Amber: Enabling precise full-system simulation with detailed modeling of all SSD resources. In Proceedings of the 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO’18). 469481.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Gu Boncheol, Yoon Andre S., Bae Duck-Ho, Jo Insoon, Lee Jinyoung, Yoon Jonghyun, Kang Jeong-Uk, Kwon Moonsang, Yoon Chanho, Cho Sangyeun, Jeong Jaeheon, and Chang Duckhyun. 2016. Biscuit: A framework for near-data processing of big data workloads. In Proceedings of the 43rd ACM/IEEE International Symposium on Computer Architecture (ISCA’16). 153165.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. [15] Han Kyuhwa, Gwak Hyunho, Shin Dongkun, and Hwang Jooyoung. 2021. ZNS+: Advanced zoned namespace interface for supporting in-storage zone compaction. In Proceedings of the 15nd USENIX Symposium on Operating Systems Design and Implementation (OSDI’21).Google ScholarGoogle Scholar
  16. [16] Hayden Major. n. d. MySQLTuner. https://github.com/major/MySQLTuner-perlGoogle ScholarGoogle Scholar
  17. [17] Ho Chien-Chung, Li Yung-Chun, Chang Yuan-Hao, and Chang Yu-Ming. 2018. Achieving defect-free multilevel 3D flash memories with one-shot program design. In Proceedings of the 55th ACM/ESDA/IEEE Annual Design Automation Conference (DAC’18). 6 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Im Junsu, Bae Jinwook, Chung Chanwoo, Arvind, and Lee Sungjin. 2020. PinK: High-speed in-storage key-value store with bounded tails. In Proceedings of the 2020 USENIX Annual Technical Conference (ATC’20), 173187.Google ScholarGoogle Scholar
  19. [19] Intel. n. d. Intel I/O Acceleration Technology. https://www.intel.co.kr/content/www/kr/ko/wireless-network/accel-technology.htmlGoogle ScholarGoogle Scholar
  20. [20] Intel. n. d. Intel Optane SSD 9 Series. https://www.intel.com/content/www/us/en/products/details/memory-storage/consumer-ssds/optane-ssd-9-series.htmlGoogle ScholarGoogle Scholar
  21. [21] Izraelevitz Joseph, Yang Jian, Zhang Lu, Kim Juno, Liu Xiao, Memaripour Amirsaman, Soh Yun Joon, Wang Zixuan, Xu Yi, Dulloor Subramanya R., Zhao Jishen, and Swanson Steven. n. d. Basic Performance Measurements of the Intel Optane DC Persistent Memory Module. arxiv:1903.05714 http://arxiv.org/abs/1903.05714Google ScholarGoogle Scholar
  22. [22] Jackson Mike and Budruk Ravi. 2012. PCI Express Technology. MindShare Technology.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. [23] Jin Yanqin, Tseng Hung-Wei, Papakonstantinou Yannis, and Swanson Steven. 2017. KAML: A flexible, high-performance key-value SSD. In Proceedings of the 23rd IEEE Symposium on High Performance Computer Architecture (HPCA’17). IEEE, 373384.Google ScholarGoogle ScholarCross RefCross Ref
  24. [24] Jun Sang-Woo, Wright Andy, Zhang Sizhuo, Xu Shuotao, and Arvind. 2018. GraFBoost: Using accelerated flash storage for external graph analytics. In Proceedings of the 45rd ACM/IEEE International Symposium on Computer Architecture (ISCA’18). Los Angeles, CA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [25] Jung Myoungsoo. 2020. OpenExpress: Fully hardware automated open research framework for future fast NVMe devices. In Proceedings of the 2020 USENIX Annual Technical Conference (ATC’20).Google ScholarGoogle Scholar
  26. [26] Jung Myoungsoo, Zhang Jie, Abulila Ahmed, Kwon Miryeong, Shahidi Narges, Shalf John, Kim Nam Sung, and Kandemir Mahmut. 2017. SimpleSSD: Modeling solid state drives for holistic system simulation. IEEE Computer Architecture Letters 17 (Sept.2017), 3741.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Kang Yangwook, Pitchumani Rekha, Mishra Pratik, Kee Yang-suk, Londono Francisco, Oh Sangyoon, Lee Jongyeol, and Lee Daniel D. G.. 2019. Towards building a high-performance, scale-in key-value storage system. In Proceedings of the 12th ACM International Conference on Systems and Storage (SYSTOR’19). 144154.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Kim Hyeong-Jun, Lee Young-Sik, and Kim Jin-Soo. 2016. NVMeDirect: A user-space I/O framework for application-specific optimization on NVMe SSDs. In Proceedings of the 8th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’16).Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. [29] Kim Joonsung, Choi Kanghyun, Lee Wonsik, and Kim Jangwoo. 2021. Performance modeling and practical use cases for black-box SSDs. ACM Transactions on Storage 17, 2, Article 14 (June2021), 38 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. [30] Kim Sang-Hoon, Kim Jinhong, Jeong Kisik, and Kim Jin-Soo. 2019. Transaction support using compound commands in key-value SSDs. In Proceedings of the 11th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’19).Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. [31] kvceph. n. d. Open memory platform development kit. http://github.com/OpenMPDKGoogle ScholarGoogle Scholar
  32. [32] Kwak Jaewook, Lee Sangjin, Park Kibin, Jeong Jinwoo, and Song Yong Ho. 2020. Cosmos+ OpenSSD: Rapid prototype for flash storage systems. ACM Transactions on Storage 16, 3, Article 15 (Aug.2020), 35 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. [33] Kwon Miryeong, Gouk Donghyun, Lee Sangwon, and Jung Myoungsoo. 2022. Hardware/software co-programmable framework for computational SSDs to accelerate deep learning service on large-scale graphs. In Proceedings of the 20th USENIX Conference on File and Storage Technologies (FAST’22). USENIX Association.Google ScholarGoogle Scholar
  34. [34] Lab Parallel Data. n. d. The DiskSim Simulation Environment v4.0. https://www.pdl.cmu.edu/DiskSim/index.shtmlGoogle ScholarGoogle Scholar
  35. [35] Lee Young-Sik, Quero Luis Cavazos, Kim Sang-Hoon, Kim Jin-Soo, and Maeng Seungryoul. 2016. ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework. Future Generation Computer Systems 65, C (Dec.2016), 7689.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. [36] Li Huaicheng, Hao Mingzhe, Tong Michael Hao, Sundararaman Swaminathan, Bjørling Matias, and Gunawi Haryadi S.. 2018. The CASE of FEMU: Cheap, accurate, scalable and extensible flash emulator. In Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST’18).Google ScholarGoogle Scholar
  37. [37] Liang Shengwen, Wang Ying, Lu Youyou, Yang Zhe, Li Huawei, and Li Xiaowei. 2019. Cognitive SSD: A deep learning engine for in-storage data retrieval. In Proceedings of the 2019 USENIX Annual Technical Conference (ATC’19). USENIX Association.Google ScholarGoogle Scholar
  38. [38] Lu Youyou, Shu Jiwu, and Zheng Weimin. 2013. Extending the lifetime of flash-based storage through reducing write amplification from file systems. In Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST’13). USENIX Association, 257270.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. [39] Malladi Krishna T., Awasthi Manu, and Zheng Hongzhong. 2016. FlexDrive: A framework to explore NVMe storage solutions. In Proceedings of the 2016 IEEE 18th International Conference on High Performance Computing and Communications. 11151122.Google ScholarGoogle ScholarCross RefCross Ref
  40. [40] Malladi Krishna T., Chang Mu-Tien, Niu Dimin, and Zheng Hongzhong. 2017. FlashStorageSim: Performance modeling for SSD architectures. In Proceedings of the 2017 International Conference on Networking, Architecture, and Storage (NAS’17). 12.Google ScholarGoogle ScholarCross RefCross Ref
  41. [41] Microsoft. n. d. Megatron-DeepSpeed. https://github.com/microsoft/Megatron-DeepSpeedGoogle ScholarGoogle Scholar
  42. [42] Noll Landon Curt. n. d. FNV Hash. http://isthe.com/chongo/tech/comp/fnv/Google ScholarGoogle Scholar
  43. [43] NVIDIA. n. d. GPUDirect Storage: A Direct Path Between Storage and GPU Memory. https://developer.nvidia.com/blog/gpudirect-storageGoogle ScholarGoogle Scholar
  44. [44] NVIDIA. n. d. The NVIDIA Magnum IO GPUDIrect Storage Overview Guide. https://docs.nvidia.com/gpudirect-storage/overview-guide/index.htmlGoogle ScholarGoogle Scholar
  45. [45] Ouyang Jian, Lin Shiding, Jiang Song, Hou Zhenyu, Wang Yong, and Wang Yuanzheng. 2014. SDF: Software-defined flash for web-scale internet storage systems. In Proceedings of the 19th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’14).Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. [46] SIG PCI. n. d. PCI SIG. https://pcisig.comGoogle ScholarGoogle Scholar
  47. [47] pgtune. n. d. PGTune: configuration for PostgreSQL based on the maximum performance for a given hardware configuration. https://pgtune.leopard.in.ua/Google ScholarGoogle Scholar
  48. [48] QMEU. n. d. QEMU: A Generic and Open Source Machine Emulator and Virtualizer. https://qemu.orgGoogle ScholarGoogle Scholar
  49. [49] Research Facebook. n. d. Metaseq. https://github.com/facebookresearch/metaseqGoogle ScholarGoogle Scholar
  50. [50] Saha Manoj P., Maruf Adnan, Kim Bryan S., and Bhimani Janki. 2021. KV-SSD: What is it good for? In Proceedings of the 58th ACM/IEEE Annual Design Automation Conference (DAC’21). 11051110.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. [51] Electronics Samsung. n. d. OpenMPDK KVSSD. https://github.com/OpenMPDK/KVSSD/Google ScholarGoogle Scholar
  52. [52] sysbench. n. d. Scriptable database and system performance benchmark. https://github.com/akopytov/sysbenchGoogle ScholarGoogle Scholar
  53. [53] Tavakkol Arash, Gómez-Luna Juan, Sadrosadati Mohammad, Ghose Saugata, and Mutlu Onur. 2018. MQSim: A framework for enabling realistic studies of modern multi-queue SSD devices. In Proceedings of the16th USENIX Conference on File and Storage Technologies (FAST’18).Google ScholarGoogle Scholar
  54. [54] Up Tech Power. n. d. Samsung 970 Pro 512 GB. https://www.techpowerup.com/ssd-specs/samsung-970-pro-512-gb.d54Google ScholarGoogle Scholar
  55. [55] Weiland Michèle, Brunst Holger, Quintino Tiago, Johnson Nick, Iffrig Olivier, Smart Simon, Herold Christian, Bonanni Antonino, Jackson Adrian, and Parsons Mark. 2019. An early evaluation of Intel’s Optane DC persistent memory module and its impact on high-performance scientific applications. In Proceedings of the 2019 International Conference for High Performance Computing, Networking, Storage and Analysis (SC’19).Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Wilkening Mark, Gupta Udit, Hsia Samuel, Trippel Caroline, Wu Carolejean, Brooks David Michael, and Wei Guyeon. 2021. RecSSD: Near data processing for solid state drive based recommendation inference. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’21).Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Wu Kan, Arpaci-Dusseau Andrea, and Arpaci-Dusseau Remzi. 2019. Towards an unwritten contract of Intel Optane SSD. In Proceedings of the 11th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage’19).Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Yang Ziye, Harris James R., Walker Benjamin, Verkamp Daniel, Liu Changpeng, Chang Cunyin, Cao Gang, Stern Jonathan, Verma Vishal, and Paul Luse E.. 2017. SPDK: A development kit to build high performance storage applications. In Proceedings of the 2017 IEEE International Conference on Cloud Computing Technology and Science (CloudCom’17). 154161.Google ScholarGoogle ScholarCross RefCross Ref
  59. [59] Yoo Jinsoo, Won Youjip, Hwang Joongwoo, Kang Sooyong, Choi Jongmoo, Yoon Sungroh, and Cha Jaehyuk. 2013. VSSIM: Virtual machine based SSD simulator. In Proceedings of the 29th IEEE Conference on Massive Data Storage (MSST’13).Google ScholarGoogle ScholarCross RefCross Ref
  60. [60] Zhang Yiying, Arulraj Leo Prasath, Arpaci-Dusseau Andrea C., and Arpaci-Dusseau Remzi H.. 2012. De-indirection for flash-based SSDs with nameless writes. In Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST’12). USENIX Association.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Empowering Storage Systems Research with NVMeVirt: A Comprehensive NVMe Device Emulator

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM Transactions on Storage
          ACM Transactions on Storage  Volume 19, Issue 4
          November 2023
          238 pages
          ISSN:1553-3077
          EISSN:1553-3093
          DOI:10.1145/3626486
          Issue’s Table of Contents

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 31 October 2023
          • Online AM: 21 September 2023
          • Accepted: 12 September 2023
          • Received: 19 May 2023
          Published in tos Volume 19, Issue 4

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
        • Article Metrics

          • Downloads (Last 12 months)526
          • Downloads (Last 6 weeks)107

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Full Text

        View this article in Full Text.

        View Full Text