Version 2 (modified by Alex Samorukov, 4 years ago) (diff)

Put all info about OS support to the table

Smartmontools NVMe support

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:

NVMe support in the different OS

OS and driverSupported by OSSupported by SmartmontoolsNative management toolsNotes
Linux, since kernel version 3.3nvme-cli, nvme-user
FreeBSD 9.2 or laternvmecontrol
OSX 10.10.3 native NVMe support Only Apple-branded NVMe devices are supported, monitoring API is implemented (NVMeSMARTClient) but not documented
OSX with MacVidCards NVMe driver nvme-cli tool distributed with the driver IOCTL format is not documented
Solaris NVMe supportnvmeadm Interface is not documented
IllumOS NVMe supportnot yet implemented no management interface/tool yet implemented
Windows with OpenFabric based driver ?? Devices are accessed via NVME_PASS_THROUGH I/O-control. This should work (at least) with NVMe drivers from Intel, OCZ and Samsung.
Windows with a Microsoft NVMe driver ?? ??

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.