nvmf —
NVM Express over Fabrics host
driver
To compile the driver into the kernel, place the following line in
the kernel configuration file:
device nvmf
Alternatively, to load the driver as a module at boot time, place
the following line in
loader.conf(5):
The nvmf driver provides the kernel
component of an NVM Express over Fabrics host. The NVMeoF host is the client
which provides local access to namespaces exported by a remote
controller.
Associations between the local host and remote controllers are
managed using
nvmecontrol(8). New associations are created via the
connect command and destroyed via the
disconnect command. If an association's connection
is interrupted, the reconnect command creates a new
association to replace the interrupted association.
Similar to
nvme(4), nvmf creates controller
device nodes using the format /dev/nvmeX and
namespace device nodes using the format
/dev/nvmeXnsY. nvmf also
exports remote namespaces via the CAM
nda(4) peripheral driver. Unlike
nvme(4), nvmf does not support the
nvd(4) disk driver.
Associations require a supported transport such as
nvmf_tcp(4) for associations using TCP/IP.
The following variables are available as both
sysctl(8) variables and
loader(8) tunables:
- kern.nvmf.fail_on_disconnection
- Determines the behavior when an association's connection is interrupted.
By default, input/output operations are suspended while a host is
disconnected. This includes operations pending at the time the
association's connection was interrupted as well as new requests submitted
while the host is disconnected. Once a new association is established,
suspended I/O requests are retried. When set to 1, input/output operations
fail with
EIO while a host is disconnected and
nda(4) peripherals are destroyed after the first failed I/O
request. Note that any destroyed
nda(4) peripherals will be recreated after a new
association is established.
The nvmf module first appeared in
FreeBSD 15.0.
The nvmf driver was developed by
John Baldwin
<jhb@FreeBSD.org>
under sponsorship from Chelsio Communications, Inc.