NVME-DISCONNECT(1)
π NAME π
nvme-disconnect β disconnect one or more Fabrics controller(s), bestie π
Welcome to the NVME-DISCONNECT(1) page from the NVMe manual. Itβs giving βsay bye to your controllersβ energy, and honestly? Iconic.
β¨ SYNOPSIS β¨
nvme [<global-options>] disconnect [--device=<device> | -d <device>]
[--exclude | -x]
[<fabrics-options>]
π¦ DESCRIPTION π¦
Okay so nvme-disconnect disconnects and removes one or more existing NVMe over Fabrics controllers. Like, pack your bags, controller πΌ
If you use --device, the controller with that name gets removed. If --nqn is given by itself, every controller connected to the subsystem identified by subnqn gets removed. If --nqn is combined with any of the other fabrics options below β the same ones nvme connect accepts, such as --transport, --traddr, --trsvcid, --host-traddr, --host-iface, --hostnqn or --hostid β then only the controller(s) matching all of the specified options are removed. Thatβs lowkey useful for disambiguating between multiple controllers connected to the same subsystem β¨
--device cannot be combined with --nqn or any of the other fabrics options. Periodt.
With--exclude, a matching entry is written to the system-wide NVMe-oF exclusion list before the controller (or subsystem) is torn down, so that a cooperating orchestrator sees the exclusion in place before the removal event fires and does not immediately reconnect. Seenvme-exclusion-add(1)and the exclusion list overview for details π«Ά
π OPTIONS π
-d <device>,--device <device>β Indicates that the controller with the specified name should be removed. Cannot be combined with--nqnor any of the fabrics options below.-x,--excludeβ Write a matching entry to the user exclusion list before disconnecting, so orchestrators do not auto-reconnect the controller. The entry is built from the controllerβs transport parameters (or, with a bare--nqn, from the subsystem NQN).
π FABRICS OPTIONS π
The following options are common to NVMe over Fabrics commands such as nvme connect:
-a <traddr>,--traddr=<traddr>β Specify the network address of the controller. For transports using IP addressing (e.g.rdma,tcp), this should be an IP address.--concatβ Enable secure concatenation (TCP).-c <#>,--reconnect-delay=<#>β Set the delay in seconds before reconnect is attempted after a connection loss.-C <secret>,--kxchap-ctrl-secret=<secret>β Controller authentication secret for bi-directional authentication. If not specified, bi-directional authentication is not attempted.-S <secret>,--kxchap-secret=<secret>β Host authentication secret (KX-HMAC-CHAP). Must be provided in ASCII format as defined in the NVMe specification.-C <secret>,--dhchap-ctrl-secret=<secret>β Controller authentication secret for bi-directional authentication. If not specified, bi-directional authentication is not attempted. (deprecated, see--kxchap-ctrl-secret)-S <secret>,--dhchap-secret=<secret>β Host authentication secret (DH-HMAC-CHAP). Must be provided in ASCII format as defined in the NVMe specification. (deprecated, see--kxchap-secret)--disable-sqflowβ Disable submission queue flow control.-G,--data-digestβ Enable data digest generation/verification (TCP).-D,--duplicate-connectβ Allow duplicate connections to the same subsystem.-g,--hdr-digestβ Enable header digest generation/verification (TCP).-f <iface>,--host-iface=<iface>β Specify the network interface to use for the connection.-I <hostid>,--hostid=<hostid>β Specify the host UUID.-q <hostnqn>,--hostnqn=<hostnqn>β Override the default host NQN.-w <traddr>,--host-traddr=<traddr>β Specify the source address on the host side of the connection.-k <#>,--keep-alive-tmo=<#>β Set the keep-alive timeout in seconds.--keyring=<keyring>β Keyring to use for TLS key lookup.-n <subnqn>,--nqn=<subnqn>β Specify the NVMe subsystem NQN to connect to.-i <#>,--nr-io-queues=<#>β Number of I/O queues to create.-P <#>,--nr-poll-queues=<#>β Number of polling queues to create.-W <#>,--nr-write-queues=<#>β Number of write queues to create.-Q <#>,--queue-size=<#>β Queue depth for I/O queues.-l <#>,--ctrl-loss-tmo=<#>β Maximum time in seconds to retry reconnect attempts after controller loss.-s <trsvcid>,--trsvcid=<trsvcid>β Transport service identifier (e.g. TCP/rdma port). Default is4420for RDMA.-T <#>,--tos=<#>β Type of service value for the connection (TCP).-t <trtype>,--transport=<trtype>β Specify the transport type. Supported values include:rdmaβ RDMA (RoCE, iWARP, InfiniBand)tcpβ TCP/IPfcβ Fibre Channel (experimental)loopβ Local loopback transport
--tlsβ Enable TLS encryption (TCP).--tls-key=<tls-key>β TLS key for the connection. It is recommended to preload keys into the system keyring instead of passing them via the command line.--tls-key-identity=<identity>β Identity associated with the TLS key.
π GLOBAL OPTIONS π
The following options are defined at the top-level nvme command and are available to this subcommand:
--dry-runβ Print the command that would be executed, but do not actually execute it.--no-ioctl-probingβ Disable probing for 64-bit IOCTL support.--no-retriesβ Disable retry logic on transient errors.-o <fmt>,--output-format=<fmt>β Set the reporting format tonormal,tabular,'json, orbinary. Only one output format may be used at a time.--output-format-version=<version>β Select the output format version. Version 1 uses the original field naming, while version 2 (default) provides more consistent and script-friendly field names. Other versions are rejected.--quietβ Suppress informational messages. Errors are still reported, and--quietcancels any--verbosefor the library log level.--set-options=<key=value>[,<key=value>...]β Set libnvme library options for this invocation. Supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir.--timeout=<ms>β Set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff).-v,--verboseβ Increase the level of detail in the output. May be specified multiple times to further increase verbosity.
These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file π
πΈ EXAMPLES πΈ
- Disconnect all controllers for a subsystem named
nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432:
# nvme disconnect --nqn=nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432
- Disconnect the controller
nvme4:
# nvme disconnect --device=nvme4
- Disconnect only the
tcpcontroller for a subsystem at a giventraddr, leaving other controllers of the same subsystem (e.g. over a different transport address) connected:
# nvme disconnect --nqn=nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 \
--transport=tcp --traddr=192.168.1.100
- Disconnect
nvme4and exclude it so orchestrators do not reconnect it:
# nvme disconnect --device=nvme4 --exclude
π§ SEE ALSO π§
nvme-connect(1) nvme-exclusion-add(1)
π NVME π
Part of the nvme-user suite.
Okay thatβs the whole page, bestie! π«Ά Source/version: NVMe; date: 10/30/2026 β NVME-DISCONNECT(1), signing off πβ¨
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms