xnvme¶
Usage: xnvme <command> [<args>]
Where <command> is one of:
list | List devices on the system
enum | Enumerate devices on the system
info | Retrieve derived information for given device
idfy | Execute an User-defined Identify Command
idfy-ns | Identify the given Namespace
idfy-ctrlr | Identify the given Controller
idfy-cs | Identify the Command Sets supported by the controller
log | Retrieve a User-defined Log
log-erri | Retrieve the error-information log
log-health | Retrieve the S.M.A.R.T. / Health information log
feature-get | Execute a Get-Features Command
feature-set | Execute a Set-Features Command
format | Format a NVM namespace
sanitize | Sanitize...
pioc | Pass a used-defined IO Command through
padc | Pass a user-defined ADmin Command through
library-info | Produce information about the library
See 'xnvme <command> --help' for the description of [<args>]
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
Enumerate devices¶
Enumerate devices, that is, controllers and namespaces available to the system:
xnvme enum --help
Usage: xnvme enum [<args>]
Enumerate devices on the system
Where <args> include:
[ --uri uri ] ; System URI e.g. '10.9.8.1:8888'
[ --flags 0xNUM ] ; Command flags
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
Device Information¶
Device information:
xnvme info --help
Usage: xnvme info <uri> [<args>]
Retrieve derived information for given device
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
Controller Identification¶
Controller identification:
xnvme idfy-ctrlr --help
Usage: xnvme idfy-ctrlr <uri> [<args>]
Identify the given Controller
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
Namespace Identification¶
Namespace identification:
xnvme idfy-ns --help
Usage: xnvme idfy-ns <uri> [<args>]
Identify the given Namespace
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
User-defined Identification¶
User-defined identification:
xnvme idfy --help
Usage: xnvme idfy <uri> [<args>]
Execute an User-defined Identify Command
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
--cns 0xNUM ; Controller or Namespace Struct
[ --cntid 0xNUM ] ; Controller Identifier
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --setid 0xNUM ] ; NVM Set Identifier
[ --uuid 0xNUM ] ; Universally Unique Identifier
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
logs: Error-Information¶
Retrieving the error-information log:
xnvme log-erri --help
Usage: xnvme log-erri <uri> [<args>]
Retrieve and print log
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --limit NUM ] ; Restrict amount to 'NUM'
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
logs: Health-Information¶
Retrieving the S.M.A.R.T. / health information log:
xnvme log-health --help
Usage: xnvme log-health <uri> [<args>]
Retrieve and print log
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
logs: User-Defined Log¶
Retrieve a log as defined by you:
xnvme log --help
Usage: xnvme log <uri> [<args>]
Retrieve and print log
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
--lid 0xNUM ; Log-page IDentifier
[ --lsp 0xNUM ] ; Log-SPecific parameters
[ --lpo-nbytes NUM ] ; Log-Page Offset (in bytes)
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --rae 0xNUM ] ; Reset Async. Events
[ --data-nbytes NUM ] ; Data size in bytes
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --subnqn STRING ] ; Subsystem NQN of the NVMe over Fabrics endpoint e.g. 'nqn.2022-06.io.xnvme:ctrlnode1'
[ --hostnqn STRING ] ; The host NQN to use when connecting to NVMe over Fabrics controllers
[ --be STRING ] ; xNVMe backend, e.g. 'linux', 'spdk', 'fbsd', 'macos', 'posix', 'windows'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'xnvme --help' for other commands
xNVMe - Cross-platform NVMe utility -- ver: {major: 0, minor: 6, patch: 0}
Library Information¶
Retrieve information about the library which xnvme
is linked with:
xnvme library-info
# xNVMe Library Information
ver: {major: 0, minor: 6, patch: 0}
xnvme_libconf:
- '3p: fio;git-describe:fio-3.32'
- '3p: libvfn;git-describe:v1.0.0-rc0'
- '3p: spdk;git-describe:v22.09;+patches'
- 'conf: XNVME_BE_RAMDISK_ENABLED'
- 'conf: XNVME_BE_LINUX_ENABLED'
- 'conf: XNVME_BE_LINUX_BLOCK_ENABLED'
- 'conf: XNVME_BE_LINUX_BLOCK_ZONED_ENABLED'
- 'conf: XNVME_BE_LINUX_LIBAIO_ENABLED'
- 'conf: XNVME_BE_LINUX_LIBURING_ENABLED'
- 'conf: XNVME_BE_LINUX_VFIO_ENABLED'
- 'conf: XNVME_BE_POSIX_ENABLED'
- 'conf: XNVME_BE_SPDK_ENABLED'
- 'conf: XNVME_BE_SPDK_TRANSPORT_PCIE_ENABLED'
- 'conf: XNVME_BE_SPDK_TRANSPORT_TCP_ENABLED'
- 'conf: XNVME_BE_SPDK_TRANSPORT_RDMA_ENABLED'
- 'conf: XNVME_BE_SPDK_TRANSPORT_FC_ENABLED'
- 'conf: XNVME_BE_ASYNC_ENABLED'
- 'conf: XNVME_BE_ASYNC_EMU_ENABLED'
- 'conf: XNVME_BE_ASYNC_THRPOOL_ENABLED'
- '3p: linux;LINUX_VERSION_CODE-UAPI/332555-5.19.11'
- '3p: NVME_IOCTL_IO64_CMD'
- '3p: NVME_IOCTL_IO64_CMD_VEC'
- '3p: NVME_IOCTL_ADMIN64_CMD'
xnvme_be_attr_list:
count: 8
capacity: 8
items:
- name: 'spdk'
enabled: 1
- name: 'linux'
enabled: 1
- name: 'fbsd'
enabled: 0
- name: 'posix'
enabled: 1
- name: 'macos'
enabled: 0
- name: 'windows'
enabled: 0
- name: 'ramdisk'
enabled: 1
- name: 'vfio'
enabled: 1