nvme —
Intel NVMe compliant storage driver
The
nvme driver uses the
blkdev(7D) framework to provide access to Intel
NVMe compliant solid-state storage devices.
NVMe devices supporting multiple namespaces will present each namespace as its
own
blkdev(7D) instance in the system.
The
nvme driver can be configured by defining
properties in the
nvme.conf file. The
parameters are considered an unstable interface, subject to change without
notice. The following properties are currently supported:
-
-
- strict-version
- This can be set to 0 to allow
nvme to
attach to devices supporting newer version of the NVMe specification. The
default value is 1, limiting nvme to
work with devices that support major version 1.
-
-
- ignore-unknown-vendor-status
- This can be set to 1 to allow
nvme to
continue operating even if it receives an unknown vendor command
status.
-
-
- admin-queue-len
- This is the number of entries in the admin command queue. Legal values are
between 16 and 4096, the default value is 256.
-
-
- io-queue-len
- This is the number of entries in each I/O command queue. Legal values are
between 16 and 65536, the default value is 1024.
-
-
- async-event-limit
- This is the maximum number of asynchronous event requests issued by the
driver. Asynchronous events are used to report error conditions. The
driver will never use more asynchronous events than this value, or what
the hardware supports if it is less, or 1/10th of the admin queue length
if it is less.
-
-
- volatile-write-cache-enable
- This property can be set to 0 to disable the volatile write cache, if the
hardware supports it. The default setting is 1, which enables the volatile
write cache.
-
-
- min-phys-block-size
- This is the minimum physical block size that is reported to
blkdev(7d). This value must be a power of 2
greater than or equal to 512. If the device reports a best block size
larger than what is specified here the driver will ignore the value
specified here.
- /dev/dsk/cntnd0sn
- Block device minor nodes.
- /dev/rdsk/cntnd0sn
- Raw block device minor nodes.
In the device minor nodes, the following substitutions may occur:
-
-
- cn
- A controller number, typically one for each
nvme device found. Controller numbers
are dynamically assigned by the system.
-
-
- tn
- The target number. This is the namespace EUI64 if available, or the
namespace ID used by the hardware. Namespace ID 0 is reserved, hence
target numbers start with 1.
-
-
- sn
- This is the slice number, representing a
subset of the disk. See dkio(7I).
blkdev(7D)