Add NVMe support to the smartmontools
Description (last modified by )
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.
NVMe standard and vendor specific log pages
- Official specifications: http://nvmexpress.org/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)
Hardware and emulation
- 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 NVMe support
- NVMe kernel header linux/nvme.h
- nvme-cli - NVM-Express user space tooling for Linux
- nvme-user - another opensource userspace utility
FreeBSD NVMe support
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
- 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.