Version 1 (modified by 9 years ago) ( diff ) | ,
---|
Smartmontools NVMe support
Table of Contents
About NVMe
VM Express, NVMe, or Non-Volatile Memory Host Controller Interface Specification (NVMHCI), is a logical device interface specification for accessing non-volatile storage media attached via PCI Express (PCIe) bus. Some links related to the standard and vendor-specific implementations provided below:
- Official specifications
- Intel NVMe documentation with Intel-specific log pages (CAh, C5h, DDh, C1h/C2h).
- OCZ Z-Drive specification, with vendor-specific smart log page (E0h)
Development notes
Development and debugging could be performed using QEMU fork which can emulates NVMe device with most of the features supported, including SMART log pages, namespaces, etc. Tested with Linux and FreeBSD, full list of the options could be found in the source code.
Linux OS NVMe support
Smartmontools supports NVMe in Linux OS using using standard ioctl API. Other utilities to manage NVMe devices in Linux:
- nvme-cli - NVM-Express user space tool for Linux
- nvme-user - another open source user space NVMe management utility
FreeBSD NVMe support
Smartmontools supports NVMe in the FreeBSD using ioctl API. NVMe devices in the FreeBSD can be managed using nvmecontrol utility.
Windows NVMe support
- OpenFabrics NVMe driver for Windows. It provides a NVME_PASS_THROUGH I/O-control which is reportedly also supported by the NVMe Windows drivers from Intel and OCZ.
- IOCTL_STORAGE_PROTOCOL_COMMAND - NVMe pass-through I/O-control supported by the generic NVMe driver for Windows (Stornvme.sys). Requires Windows 10.
- Naraeon NVMe Tools windows open source NVMe SMART / Health Information Log Viewer on Windows
- Intel® Solid-State Drive Data Center Tool
OS X NVMe support
Smartmontools currently not is not supporting monitoring of the NVMe devices on OSX/Darwin.
- Kind of official support added from 10.10.3, closes source, not documented, only apple-branded NVMe devices are supported. Implements NVMeSMARTClient library, however API is not documented.
- MacVidCards NVMe driver - third party closed-source driver, coming with closed-source nvme-cli management utility, which is based on open-source one.
Solaris NVMe support
Smartmontools currently not is not supporting monitoring of the NVMe devices on Solaris.
- nvmeadm - NVM Express controller command line interface, interface is unknown
- Illumos NVMe driver, no management interface/tool yet implemented