Skip to content

hustliyilin/nvmedirect

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NVMeDirect

NVMeDirect is a user-space I/O framework for NVMe SSDs, which allows user applications to access the storage device directly. This will enable various application-specific optimizations on NVMe SSDs. For further details on the design and implementation of NVMeDirect, please refer to the following paper.

  • Hyeong-Jun Kim, Young-Sik Lee, and Jin-Soo Kim, "NVMeDirect: A user-space I/O Framework for Application-specific Optimization on NVMe SSDs," Proceedings of the 8th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage), Denver, Colorado, USA, June 2016.

How to build and run

To build the kernel module and shared library,

$ make

To install the kernel module, shared library, and header file,

$ sudo make install

This will install the following files:

  • nvmed.ko in /lib/modules/$(shell uname -r)/extra

  • lib_nvmed.h in /usr/local/include

  • libnvmed.so in /usr/local/lib

  • nvmed_admin in /usr/local/bin

To load the NVMeDirect module into the kernel,

$ sudo modprobe nvmed

The root can restrict the users of the NVMeDirect framework and the number of I/O queues per user using the user-space tool, nvmed_admin.

$ sudo nvmed_admin /dev/nvme[device id]n[namespace id] set [user name] [queue count]

Finally, link your program with the NVMeDirect library and run!

How to use NVMeDirect APIs

Please refer to the NVMeDirect-APIs.txt file and examples in the exmaple/nvmed_example directory.

Contacts

The NVMeDirect framework is being currently maintained by Computer Systems Laboratory in Sungkyunkwan University, South Korea. NVMeDirect is an on-going work and we welcome your contribution and feedback. If you have any questions or suggestions, please contact the following people.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 91.5%
  • Roff 4.4%
  • Python 1.1%
  • C++ 0.9%
  • Makefile 0.8%
  • Shell 0.7%
  • Other 0.6%