= Smartmontools NVMe support = [[TOC]] == 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: - [http://nvmexpress.org/specifications/ Official specifications] - [http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/ssd-dc-p3608-spec.pdf Intel NVMe documentation] with Intel-specific log pages (CAh, C5h, DDh, C1h/C2h). - [http://ocz.com/enterprise/download/guides/ZDrive_6000_Series_Datasheet.pdf OCZ Z-Drive] specification, with vendor-specific smart log page (E0h) == NVMe support in the different OS == ||=OS and driver=||=Supported by OS=||=Supported by Smartmontools=||=Native management tools=||=Notes=|| ||Linux, since kernel version 3.3|| ✓ || ✓ ||[https://github.com/linux-nvme/nvme-cli nvme-cli], [https://github.com/xnox/nvme-user nvme-user] || || ||FreeBSD 9.2 or later|| ✓ || ✓ ||[https://www.freebsd.org/cgi/man.cgi?query=nvmecontrol nvmecontrol]|| || ||OSX 10.10.3 native NVMe support || ✓ || ✗ || ||Only Apple-branded NVMe devices are supported, monitoring API is implemented (NVMeSMARTClient) but not documented || ||OSX with [http://www.macvidcards.com/nvme-driver1.html MacVidCards NVMe driver] || ✓ || ✗ || nvme-cli tool distributed with the driver ||IOCTL format is not documented || ||Solaris NVMe support|| ✓ || ✗ ||[https://docs.oracle.com/cd/E36784_01/html/E36871/nvmeadm-1m.html nvmeadm] ||Interface is not documented || ||IllumOS NVMe support|| ✓ || ✗ ||not yet implemented ||[https://www.illumos.org/issues/6235 no management interface/tool] yet implemented || ||Windows with [https://www.openfabrics.org/index.php/windows-nvm-express.html 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 [https://github.com/OpenChannelSSD/qemu-nvme/ 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 [https://github.com/OpenChannelSSD/qemu-nvme/blob/master/hw/block/nvme.c source code].