1 | | It would be great to add NVMe support to the smartctl. Probably this task is not very trivial - because smart in NVMe is implemented differently then in SCSI/SAS or SATA. I will leave this ticket open to collect information, links, etc. I dont have access [yet] to NVMe hardware, so for now it is just a "placeholder". |
| 1 | == About |
| 2 | It would be great to add NVMe support to the smartctl. This task is not very trivial - because smart in NVMe is implemented differently then in SCSI/SAS or SATA. This ticket will be used to track changes in smartmontools and to collect important related links. |
| 3 | == NVMe standard |
| 4 | - Official specifications: http://nvmexpress.org/specifications/ |
| 5 | - [http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/ssd-dc-p3608-spec.pdf Intel NVMe documentation] with some Intel-specific pages. |
| 6 | == Hardware and emulation |
| 7 | - [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]. |
| 8 | == Linux NVMe support |
| 9 | - NVMe kernel header [http://lxr.free-electrons.com/source/include/linux/nvme.h linux/nvme.h] |
| 10 | - [https://github.com/linux-nvme/nvme-cli nvme-cli] - NVM-Express user space tooling for Linux |
| 11 | - [https://github.com/xnox/nvme-user nvme-user] - another opensource userspace utility |
| 12 | == FreeBSD NVMe support |
| 13 | - NVMe kernel header [http://fxr.watson.org/fxr/source/dev/nvme/nvme.h dev/nvme/nvme.h] |
| 14 | - [https://www.freebsd.org/cgi/man.cgi?query=nvmecontrol nvmecontrol] utility, [https://github.com/freebsd/freebsd/tree/master/sbin/nvmecontrol opensource]. |
| 15 | == Windows NVMe support |
| 16 | - [https://svn.openfabrics.org/svnrepo/nvmewin/ 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. |
| 17 | - [https://msdn.microsoft.com/en-us/library/windows/hardware/dn932068.aspx IOCTL_STORAGE_PROTOCOL_COMMAND] - NVMe pass-through I/O-control supported by the generic NVMe driver for Windows (Stornvme.sys). Requires Windows 10. |
| 18 | - [http://naraeon.net/en/latest-naraeon-ssd-tools/ Naraeon SSD tools] windows opensource NVMe tool set |
| 19 | == OS X NVMe support |
| 20 | - 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. |
| 21 | - [http://www.macvidcards.com/nvme-driver1.html MacVidCards NVMe driver] - third party closed-source driver, coming with closed-source nvme-cli management utility, which is based on open-source one. |
| 22 | == Solaris NVMe support |
| 23 | - [https://docs.oracle.com/cd/E36784_01/html/E36871/nvmeadm-1m.html nvmeadm] - NVM Express controller command line interface |