/
githubmirror
/
nvme-cli
Обзор
Документация
Войти
/
githubmirror
/
nvme-cli
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Documentation/nvme-connect.html
1 308 строк
28 KB
Daniel Wagner
doc: Regenerate all docs for v3.0-b.5
07 авг 2026, 18:03
07 авг 2026, 18:03
8c9e089
Код
Авторство
О чём код?
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> <meta name="generator" content="AsciiDoc 10.2.0" /> <title>nvme-connect(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ /* Default font. */ body { font-family: Georgia,serif; } /* Title font. */ h1, h2, h3, h4, h5, h6, div.title, caption.title, thead, p.table.header, #toctitle, #author, #revnumber, #revdate, #revremark, #footer { font-family: Arial,Helvetica,sans-serif; } body { margin: 1em 5% 1em 5%; } a { color: blue; text-decoration: underline; } a:visited { color: fuchsia; } em { font-style: italic; color: navy; } strong { font-weight: bold; color: #083194; } h1, h2, h3, h4, h5, h6 { color: #527bbd; margin-top: 1.2em; margin-bottom: 0.5em; line-height: 1.3; } h1, h2, h3 { border-bottom: 2px solid silver; } h2 { padding-top: 0.5em; } h3 { float: left; } h3 + * { clear: left; } h5 { font-size: 1.0em; } div.sectionbody { margin-left: 0; } hr { border: 1px solid silver; } p { margin-top: 0.5em; margin-bottom: 0.5em; } ul, ol, li > p { margin-top: 0; } ul > li { color: #aaa; } ul > li > * { color: black; } .monospaced, code, pre { font-family: "Courier New", Courier, monospace; font-size: inherit; color: navy; padding: 0; margin: 0; } pre { white-space: pre-wrap; } #author { color: #527bbd; font-weight: bold; font-size: 1.1em; } #email { } #revnumber, #revdate, #revremark { } #footer { font-size: small; border-top: 2px solid silver; padding-top: 0.5em; margin-top: 4.0em; } #footer-text { float: left; padding-bottom: 0.5em; } #footer-badges { float: right; padding-bottom: 0.5em; } #preamble { margin-top: 1.5em; margin-bottom: 1.5em; } div.imageblock, div.exampleblock, div.verseblock, div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, div.admonitionblock { margin-top: 1.0em; margin-bottom: 1.5em; } div.admonitionblock { margin-top: 2.0em; margin-bottom: 2.0em; margin-right: 10%; color: #606060; } div.content { /* Block element content. */ padding: 0; } /* Block element titles. */ div.title, caption.title { color: #527bbd; font-weight: bold; text-align: left; margin-top: 1.0em; margin-bottom: 0.5em; } div.title + * { margin-top: 0; } td div.title:first-child { margin-top: 0.0em; } div.content div.title:first-child { margin-top: 0.0em; } div.content + div.title { margin-top: 0.0em; } div.sidebarblock > div.content { background: #ffffee; border: 1px solid #dddddd; border-left: 4px solid #f0f0f0; padding: 0.5em; } div.listingblock > div.content { border: 1px solid #dddddd; border-left: 5px solid #f0f0f0; background: #f8f8f8; padding: 0.5em; } div.quoteblock, div.verseblock { padding-left: 1.0em; margin-left: 1.0em; margin-right: 10%; border-left: 5px solid #f0f0f0; color: #888; } div.quoteblock > div.attribution { padding-top: 0.5em; text-align: right; } div.verseblock > pre.content { font-family: inherit; font-size: inherit; } div.verseblock > div.attribution { padding-top: 0.75em; text-align: left; } /* DEPRECATED: Pre version 8.2.7 verse style literal block. */ div.verseblock + div.attribution { text-align: left; } div.admonitionblock .icon { vertical-align: top; font-size: 1.1em; font-weight: bold; text-decoration: underline; color: #527bbd; padding-right: 0.5em; } div.admonitionblock td.content { padding-left: 0.5em; border-left: 3px solid #dddddd; } div.exampleblock > div.content { border-left: 3px solid #dddddd; padding-left: 0.5em; } div.imageblock div.content { padding-left: 0; } span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { margin-top: 0.8em; margin-bottom: 0.8em; } dt { margin-top: 0.5em; margin-bottom: 0; font-style: normal; color: navy; } dd > *:first-child { margin-top: 0.1em; } ul, ol { list-style-position: outside; } ol.arabic { list-style-type: decimal; } ol.loweralpha { list-style-type: lower-alpha; } ol.upperalpha { list-style-type: upper-alpha; } ol.lowerroman { list-style-type: lower-roman; } ol.upperroman { list-style-type: upper-roman; } div.compact ul, div.compact ol, div.compact p, div.compact p, div.compact div, div.compact div { margin-top: 0.1em; margin-bottom: 0.1em; } tfoot { font-weight: bold; } td > div.verse { white-space: pre; } div.hdlist { margin-top: 0.8em; margin-bottom: 0.8em; } div.hdlist tr { padding-bottom: 15px; } dt.hdlist1.strong, td.hdlist1.strong { font-weight: bold; } td.hdlist1 { vertical-align: top; font-style: normal; padding-right: 0.8em; color: navy; } td.hdlist2 { vertical-align: top; } div.hdlist.compact tr { margin: 0; padding-bottom: 0; } .comment { background: yellow; } .footnote, .footnoteref { font-size: 0.8em; } span.footnote, span.footnoteref { vertical-align: super; } #footnotes { margin: 20px 0 20px 0; padding: 7px 0 0 0; } #footnotes div.footnote { margin: 0 0 5px 0; } #footnotes hr { border: none; border-top: 1px solid silver; height: 1px; text-align: left; margin-left: 0; width: 20%; min-width: 100px; } div.colist td { padding-right: 0.5em; padding-bottom: 0.3em; vertical-align: top; } div.colist td img { margin-top: 0.3em; } @media print { #footer-badges { display: none; } } #toc { margin-bottom: 2.5em; } #toctitle { color: #527bbd; font-size: 1.1em; font-weight: bold; margin-top: 1.0em; margin-bottom: 0.1em; } div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } div.toclevel2 { margin-left: 2em; font-size: 0.9em; } div.toclevel3 { margin-left: 4em; font-size: 0.9em; } div.toclevel4 { margin-left: 6em; font-size: 0.9em; } span.aqua { color: aqua; } span.black { color: black; } span.blue { color: blue; } span.fuchsia { color: fuchsia; } span.gray { color: gray; } span.green { color: green; } span.lime { color: lime; } span.maroon { color: maroon; } span.navy { color: navy; } span.olive { color: olive; } span.purple { color: purple; } span.red { color: red; } span.silver { color: silver; } span.teal { color: teal; } span.white { color: white; } span.yellow { color: yellow; } span.aqua-background { background: aqua; } span.black-background { background: black; } span.blue-background { background: blue; } span.fuchsia-background { background: fuchsia; } span.gray-background { background: gray; } span.green-background { background: green; } span.lime-background { background: lime; } span.maroon-background { background: maroon; } span.navy-background { background: navy; } span.olive-background { background: olive; } span.purple-background { background: purple; } span.red-background { background: red; } span.silver-background { background: silver; } span.teal-background { background: teal; } span.white-background { background: white; } span.yellow-background { background: yellow; } span.big { font-size: 2em; } span.small { font-size: 0.6em; } span.underline { text-decoration: underline; } span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } div.unbreakable { page-break-inside: avoid; } /* * xhtml11 specific * * */ div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; } div.tableblock > table { border: 3px solid #527bbd; } thead, p.table.header { font-weight: bold; color: #527bbd; } p.table { margin-top: 0; } /* Because the table frame attribute is overridden by CSS in most browsers. */ div.tableblock > table[frame="void"] { border-style: none; } div.tableblock > table[frame="hsides"] { border-left-style: none; border-right-style: none; } div.tableblock > table[frame="vsides"] { border-top-style: none; border-bottom-style: none; } /* * html5 specific * * */ table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; } thead, p.tableblock.header { font-weight: bold; color: #527bbd; } p.tableblock { margin-top: 0; } table.tableblock { border-width: 3px; border-spacing: 0px; border-style: solid; border-color: #527bbd; border-collapse: collapse; } th.tableblock, td.tableblock { border-width: 1px; padding: 4px; border-style: solid; border-color: #527bbd; } table.tableblock.frame-topbot { border-left-style: hidden; border-right-style: hidden; } table.tableblock.frame-sides { border-top-style: hidden; border-bottom-style: hidden; } table.tableblock.frame-none { border-style: hidden; } th.tableblock.halign-left, td.tableblock.halign-left { text-align: left; } th.tableblock.halign-center, td.tableblock.halign-center { text-align: center; } th.tableblock.halign-right, td.tableblock.halign-right { text-align: right; } th.tableblock.valign-top, td.tableblock.valign-top { vertical-align: top; } th.tableblock.valign-middle, td.tableblock.valign-middle { vertical-align: middle; } th.tableblock.valign-bottom, td.tableblock.valign-bottom { vertical-align: bottom; } /* * manpage specific * * */ body.manpage h1 { padding-top: 0.5em; padding-bottom: 0.5em; border-top: 2px solid silver; border-bottom: 2px solid silver; } body.manpage h2 { border-style: none; } body.manpage div.sectionbody { margin-left: 3em; } @media print { body.manpage div#toc { display: none; } } </style> <script type="text/javascript"> /*<+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). var iterate = function (el) { for (var i = el.firstChild; i != null; i = i.nextSibling) { if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { var mo = re.exec(i.tagName); if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") { result[result.length] = new TocEntry(i, getText(i), mo[1]-1); } iterate(i); } } } iterate(el); return result; } var toc = document.getElementById("toc"); if (!toc) { return; } // Delete existing TOC entries in case we're reloading the TOC. var tocEntriesToRemove = []; var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); } for (i = 0; i < tocEntriesToRemove.length; i++) { toc.removeChild(tocEntriesToRemove[i]); } // Rebuild TOC entries. var entries = tocEntries(document.getElementById("content"), toclevels); for (var i = 0; i < entries.length; ++i) { var entry = entries[i]; if (entry.element.id == "") entry.element.id = "_toc_" + i; var a = document.createElement("a"); a.href = "#" + entry.element.id; a.appendChild(document.createTextNode(entry.text)); var div = document.createElement("div"); div.appendChild(a); div.className = "toclevel" + entry.toclevel; toc.appendChild(div); } if (entries.length == 0) toc.parentNode.removeChild(toc); }, ///////////////////////////////////////////////////////////////////// // Footnotes generator ///////////////////////////////////////////////////////////////////// /* Based on footnote generation code from: * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html */ footnotes: function () { // Delete existing footnote entries in case we're reloading the footnodes. var i; var noteholder = document.getElementById("footnotes"); if (!noteholder) { return; } var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { noteholder.removeChild(entriesToRemove[i]); } // Rebuild footnote entries. var cont = document.getElementById("content"); var spans = cont.getElementsByTagName("span"); var refs = {}; var n = 0; for (i=0; i<spans.length; i++) { if (spans[i].className == "footnote") { n++; var note = spans[i].getAttribute("data-note"); if (!note) { // Use [\s\S] in place of . so multi-line matches work. // Because JavaScript has no s (dotall) regex flag. note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1]; spans[i].innerHTML = "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n + "' title='View footnote' class='footnote'>" + n + "</a>]"; spans[i].setAttribute("data-note", note); } noteholder.innerHTML += "<div class='footnote' id='_footnote_" + n + "'>" + "<a href='#_footnoteref_" + n + "' title='Return to text'>" + n + "</a>. " + note + "</div>"; var id =spans[i].getAttribute("id"); if (id != null) refs["#"+id] = n; } } if (n == 0) noteholder.parentNode.removeChild(noteholder); else { // Process footnoterefs. for (i=0; i<spans.length; i++) { if (spans[i].className == "footnoteref") { var href = spans[i].getElementsByTagName("a")[0].getAttribute("href"); href = href.match(/#.*/)[0]; // Because IE return full URL. n = refs[href]; spans[i].innerHTML = "[<a href='#_footnote_" + n + "' title='View footnote' class='footnote'>" + n + "</a>]"; } } } }, install: function(toclevels) { var timerId; function reinstall() { asciidoc.footnotes(); if (toclevels) { asciidoc.toc(toclevels); } } function reinstallAndRemoveTimer() { clearInterval(timerId); reinstall(); } timerId = setInterval(reinstall, 500); if (document.addEventListener) document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false); else window.onload = reinstallAndRemoveTimer; } } asciidoc.install(); /*]]>*/ </script> </head> <body class="manpage"> <div id="header"> <h1> nvme-connect(1) Manual Page </h1> <h2>NAME</h2> <div class="sectionbody"> <p>nvme-connect - Connect to a Fabrics controller. </p> </div> </div> <div id="content"> <div class="sect1"> <h2 id="_synopsis">SYNOPSIS</h2> <div class="sectionbody"> <div class="verseblock"> <pre class="content"><em>nvme</em> [<global-options>] <em>connect</em> [--config=<filename>] [--devid-file=<filename>] [--idempotent] [--owner=<NAME>] [<fabrics-options>]</pre> <div class="attribution"> </div></div> </div> </div> <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>Create a transport connection to a remote system (specified by --traddr and --trsvcid) and create a NVMe over Fabrics controller for the NVMe subsystem specified by the --nqn option.</p></div> </div> </div> <div class="sect1"> <h2 id="_options">OPTIONS</h2> <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> --config=<filename> </dt> <dd> <p> Use the specified JSON configuration file instead of the default. </p> </dd> <dt class="hdlist1"> --devid-file=<filename> </dt> <dd> <p> Write the kernel-assigned device name (for example, nvme0) to <filename>. If the controller is already connected, the existing device name is written. Otherwise, the device name is written after the controller is connected. </p> <div class="literalblock"> <div class="content"> <pre><code>When used with --idempotent, the existing device name is written before the command exits successfully. This allows a supervising process, such as a systemd service, to identify the device for a later disconnect operation.</code></pre> </div></div> <div class="literalblock"> <div class="content"> <pre><code>The output file is created before attempting the connection. If the file cannot be created, for example because the parent directory does not exist, the command fails without attempting the connection.</code></pre> </div></div> </dd> <dt class="hdlist1"> --idempotent </dt> <dd> <p> Exit with status 0 if the requested controller is already connected instead of reporting an error. </p> </dd> <dt class="hdlist1"> --owner=<NAME> </dt> <dd> <p> Record NAME as the owner of the connected controller in the NVMe ownership registry, so other orchestrators (and nvme-disconnect-all) leave it alone. See nvme-disconnect-all(1). </p> </dd> </dl></div> </div> </div> <div class="sect1"> <h2 id="_fabrics_options">FABRICS OPTIONS</h2> <div class="sectionbody"> <div class="paragraph"><p>The following options are common to NVMe over Fabrics commands such as <code>nvme connect</code>:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -a <traddr> </dt> <dt class="hdlist1"> --traddr=<traddr> </dt> <dd> <p> Specify the network address of the controller. For transports using IP addressing (e.g. rdma, tcp), this should be an IP address. </p> </dd> <dt class="hdlist1"> --concat </dt> <dd> <p> Enable secure concatenation (TCP). </p> </dd> <dt class="hdlist1"> -c <#> </dt> <dt class="hdlist1"> --reconnect-delay=<#> </dt> <dd> <p> Set the delay in seconds before reconnect is attempted after a connection loss. </p> </dd> <dt class="hdlist1"> -C <secret> </dt> <dt class="hdlist1"> --kxchap-ctrl-secret=<secret> </dt> <dd> <p> Controller authentication secret for bi-directional authentication. If not specified, bi-directional authentication is not attempted. </p> </dd> <dt class="hdlist1"> -S <secret> </dt> <dt class="hdlist1"> --kxchap-secret=<secret> </dt> <dd> <p> Host authentication secret (KX-HMAC-CHAP). Must be provided in ASCII format as defined in the NVMe specification. </p> </dd> <dt class="hdlist1"> -C <secret> </dt> <dt class="hdlist1"> --dhchap-ctrl-secret=<secret> </dt> <dd> <p> Controller authentication secret for bi-directional authentication. If not specified, bi-directional authentication is not attempted. (deprecated, see --kxchap-ctrl-secret) </p> </dd> <dt class="hdlist1"> -S <secret> </dt> <dt class="hdlist1"> --dhchap-secret=<secret> </dt> <dd> <p> Host authentication secret (DH-HMAC-CHAP). Must be provided in ASCII format as defined in the NVMe specification. (deprecated, see --kxchap-secret) </p> </dd> <dt class="hdlist1"> --disable-sqflow </dt> <dd> <p> Disable submission queue flow control. </p> </dd> <dt class="hdlist1"> -G </dt> <dt class="hdlist1"> --data-digest </dt> <dd> <p> Enable data digest generation/verification (TCP). </p> </dd> <dt class="hdlist1"> -D </dt> <dt class="hdlist1"> --duplicate-connect </dt> <dd> <p> Allow duplicate connections to the same subsystem. </p> </dd> <dt class="hdlist1"> -g </dt> <dt class="hdlist1"> --hdr-digest </dt> <dd> <p> Enable header digest generation/verification (TCP). </p> </dd> <dt class="hdlist1"> -f <iface> </dt> <dt class="hdlist1"> --host-iface=<iface> </dt> <dd> <p> Specify the network interface to use for the connection. </p> </dd> <dt class="hdlist1"> -I <hostid> </dt> <dt class="hdlist1"> --hostid=<hostid> </dt> <dd> <p> Specify the host UUID. </p> </dd> <dt class="hdlist1"> -q <hostnqn> </dt> <dt class="hdlist1"> --hostnqn=<hostnqn> </dt> <dd> <p> Override the default host NQN. </p> </dd> <dt class="hdlist1"> -w <traddr> </dt> <dt class="hdlist1"> --host-traddr=<traddr> </dt> <dd> <p> Specify the source address on the host side of the connection. </p> </dd> <dt class="hdlist1"> -k <#> </dt> <dt class="hdlist1"> --keep-alive-tmo=<#> </dt> <dd> <p> Set the keep-alive timeout in seconds. </p> </dd> <dt class="hdlist1"> --keyring=<keyring> </dt> <dd> <p> Keyring to use for TLS key lookup. </p> </dd> <dt class="hdlist1"> -n <subnqn> </dt> <dt class="hdlist1"> --nqn=<subnqn> </dt> <dd> <p> Specify the NVMe subsystem NQN to connect to. </p> </dd> <dt class="hdlist1"> -i <#> </dt> <dt class="hdlist1"> --nr-io-queues=<#> </dt> <dd> <p> Number of I/O queues to create. </p> </dd> <dt class="hdlist1"> -P <#> </dt> <dt class="hdlist1"> --nr-poll-queues=<#> </dt> <dd> <p> Number of polling queues to create. </p> </dd> <dt class="hdlist1"> -W <#> </dt> <dt class="hdlist1"> --nr-write-queues=<#> </dt> <dd> <p> Number of write queues to create. </p> </dd> <dt class="hdlist1"> -Q <#> </dt> <dt class="hdlist1"> --queue-size=<#> </dt> <dd> <p> Queue depth for I/O queues. </p> </dd> <dt class="hdlist1"> -l <#> </dt> <dt class="hdlist1"> --ctrl-loss-tmo=<#> </dt> <dd> <p> Maximum time in seconds to retry reconnect attempts after controller loss. </p> </dd> <dt class="hdlist1"> -s <trsvcid> </dt> <dt class="hdlist1"> --trsvcid=<trsvcid> </dt> <dd> <p> Transport service identifier (e.g. TCP/rdma port). Default is 4420 for RDMA. </p> </dd> <dt class="hdlist1"> -T <#> </dt> <dt class="hdlist1"> --tos=<#> </dt> <dd> <p> Type of service value for the connection (TCP). </p> </dd> <dt class="hdlist1"> -t <trtype> </dt> <dt class="hdlist1"> --transport=<trtype> </dt> <dd> <p> Specify the transport type. Supported values include: </p> </dd> </dl></div> <div class="paragraph"><p>+</p></div> <div class="tableblock"> <table rules="all" width="100%" frame="border" cellspacing="0" cellpadding="4"> <col width="50%" /> <col width="50%" /> <tbody> <tr> <td align="left" valign="top"><p class="table">Value</p></td> <td align="left" valign="top"><p class="table">Description</p></td> </tr> <tr> <td align="left" valign="top"><p class="table">rdma</p></td> <td align="left" valign="top"><p class="table">RDMA (RoCE, iWARP, InfiniBand)</p></td> </tr> <tr> <td align="left" valign="top"><p class="table">tcp</p></td> <td align="left" valign="top"><p class="table">TCP/IP</p></td> </tr> <tr> <td align="left" valign="top"><p class="table">fc</p></td> <td align="left" valign="top"><p class="table">Fibre Channel (<strong>experimental</strong>)</p></td> </tr> <tr> <td align="left" valign="top"><p class="table">loop</p></td> <td align="left" valign="top"><p class="table">Local loopback transport</p></td> </tr> </tbody> </table> </div> <div class="dlist"><dl> <dt class="hdlist1"> --tls </dt> <dd> <p> Enable TLS encryption (TCP). </p> </dd> <dt class="hdlist1"> --tls-key=<tls-key> </dt> <dd> <p> TLS key for the connection. It is recommended to preload keys into the system keyring instead of passing them via the command line. </p> </dd> <dt class="hdlist1"> --tls-key-identity=<identity> </dt> <dd> <p> Identity associated with the TLS key. </p> </dd> </dl></div> </div> </div> <div class="sect1"> <h2 id="_global_options">GLOBAL OPTIONS</h2> <div class="sectionbody"> <div class="paragraph"><p>The following options are defined at the top-level <code>nvme</code> command and are available to this subcommand:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> --dry-run </dt> <dd> <p> Print the command that would be executed, but do not actually execute it. </p> </dd> <dt class="hdlist1"> --no-ioctl-probing </dt> <dd> <p> Disable probing for 64-bit IOCTL support. </p> </dd> <dt class="hdlist1"> --no-retries </dt> <dd> <p> Disable retry logic on transient errors. </p> </dd> <dt class="hdlist1"> -o <fmt> </dt> <dt class="hdlist1"> --output-format=<fmt> </dt> <dd> <p> Set the reporting format to <em>normal</em>, <em>tabular, 'json</em>, or <em>binary</em>. Only one output format may be used at a time. </p> </dd> <dt class="hdlist1"> --output-format-version=<version> </dt> <dd> <p> Select the output format version. Version <em>1</em> uses the original field naming, while version <em>2</em> (default) provides more consistent and script-friendly field names. </p> </dd> <dt class="hdlist1"> --timeout=<ms> </dt> <dd> <p> Set the timeout for the command in milliseconds. </p> </dd> <dt class="hdlist1"> -v </dt> <dt class="hdlist1"> --verbose </dt> <dd> <p> Increase the level of detail in the output. May be specified multiple times to further increase verbosity. </p> </dd> </dl></div> <div class="paragraph"><p>These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file.</p></div> </div> </div> <div class="sect1"> <h2 id="_examples">EXAMPLES</h2> <div class="sectionbody"> <div class="ulist"><ul> <li> <p> Connect to a subsystem named nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 on the IP4 address 192.168.1.3. Port 4420 is used by default: </p> <div class="listingblock"> <div class="content"> <pre><code># nvme connect --transport=rdma --traddr=192.168.1.3 \ --nqn=nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432</code></pre> </div></div> </li> </ul></div> </div> </div> <div class="sect1"> <h2 id="_see_also">SEE ALSO</h2> <div class="sectionbody"> <div class="paragraph"><p>nvme-discover(1) nvme-connect-all(1)</p></div> </div> </div> <div class="sect1"> <h2 id="_authors">AUTHORS</h2> <div class="sectionbody"> <div class="paragraph"><p>This was co-written by <a href="mailto:james.p.freyensee@intel.com">Jay Freyensee</a> and <a href="mailto:hch@lst.de">Christoph Hellwig</a></p></div> </div> </div> <div class="sect1"> <h2 id="_nvme">NVME</h2> <div class="sectionbody"> <div class="paragraph"><p>Part of the nvme-user suite</p></div> </div> </div> </div> <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> Last updated 2026-08-07 17:02:06 CEST </div> </div> </body> </html>