nvme命令详解
NVMe命令的功能和作用的详细解析
list
功能:列出机器上所有的NVMe设备和命名空间。
使用用例:在终端中执行以下命令,会显示系统上所有NVMe设备的详细信息,包括设备名称、命名空间、容量等。
nvme list
list-subsys
功能:列出NVMe子系统。
使用用例:此命令会显示所有NVMe子系统的信息,包括每个子系统的NQN(NVMe Qualified Name)。
nvme list-subsys
id-ctrl
功能:发送NVMe Identify Controller命令,识别控制器并显示其结构。
使用用例:此命令用于获取NVMe控制器的详细信息,如制造商、型号、版本号等。
nvme id-ctrl /dev/nvme0
id-ns
功能:发送NVMe Identify Namespace命令,识别命名空间并显示其结构。 使用用例:此命令用于获取指定命名空间的详细信息,如大小、容量、格式等。
nvme id-ns /dev/nvme0n1
id-ns-granularity
功能:发送NVMe Identify Namespace Granularity List命令,显示命名空间粒度列表结构。 使用用例:此命令用于获取命名空间的粒度属性,这些属性定义了对命名空间的操作可以多精细。
nvme id-ns-granularity /dev/nvme0n1
list-ns
功能:发送NVMe Identify List命令,显示命名空间列表结构。
使用用例:此命令用于列出控制器上所有命名空间的列表。
nvme list-ns /dev/nvme0
list-ctrl
功能:发送NVMe Identify Controller List命令,显示控制器列表结构。
使用用例:此命令用于列出所有可见的控制器,通常用于多控制器配置。
nvme list-ctrl /dev/nvme0
nvm-id-ctrl
功能:发送NVMe Identify Controller NVM Command Set命令,显示NVM命令集的控制器结构。
使用用例:此命令用于获取支持的NVM命令集特定信息。
nvme nvm-id-ctrl /dev/nvme0
primary-ctrl-caps
功能:发送NVMe Identify Primary Controller Capabilities命令,识别主控制器的能力。
使用用例:此命令用于获取主控制器的能力和属性。
nvme primary-ctrl-caps /dev/nvme0
list-secondary:
功能:列出与主控制器关联的次级控制器。
使用用例:此命令用于列出与主控制器相关联的所有次级控制器,这在复杂的多控制器环境中非常有用。
nvme list-secondary /dev/nvme0
cmdset-ind-id-ns
功能:发送独立于I/O命令集的Identify Namespace命令。
用例:此命令用于获取命名空间的信息,这些信息独立于其使用的I/O命令集。
nvme cmdset-ind-id-ns /dev/nvme0n1
ns-descs
功能:发送NVMe Namespace Descriptor List命令,显示命名空间描述符列表结构。
使用用例:此命令用于列出命名空间的描述符,这些描述符为命名空间提供额外的标识信息。
nvme ns-descs /dev/nvme0n1
id-nvmset
功能:发送NVMe Identify NVM Set List命令,显示NVM集列表结构。
用例:此命令用于获取NVM集的详细信息,NVM集是组织NVMe设备内部存储的一种方式。
nvme id-nvmset /dev/nvme0
id-uuid
功能:发送NVMe Identify UUID List命令,显示UUID列表结构
用例:此命令用于列出分配给命名空间的UUID,UUID是命名空间的全球唯一标识符。
nvme id-uuid /dev/nvme0n1
id-iocs
功能:发送NVMe Identify I/O Command Set命令,识别I/O命令集并显示结构。
用例:此命令用于获取设备支持的I/O命令集的详细信息。
nvme id-iocs /dev/nvme0
id-domain
功能:发送NVMe Identify Domain List命令,显示域列表结构。
用例:此命令用于列出NVMe设备相关的域的信息,域是NVMe设备管理资源的逻辑分区。
nvme id-domain /dev/nvme0
list-endgrp
功能:发送NVMe Identify Endurance Group List命令,显示耐久性组列表结构。
用例:此命令用于获取耐久性组的信息,耐久性组是NVMe设备用来报告和管理设备寿命和耐久性信息的方法。
nvme list-endgrp /dev/nvme0
create-ns
功能:创建具有指定参数的命名空间。
用例:此命令用于在NVMe设备上创建一个新的命名空间,可以指定大小等参数。
nvme create-ns /dev/nvme0 --nsze=1000000 --ncap=1000000
delete-ns
功能:从控制器删除命名空间。
用例:此命令用于删除指定的命名空间,通常需要指定命名空间的ID。
nvme delete-ns /dev/nvme0 -n 1
attach-ns
功能:将命名空间附加到请求的控制器。
用例:此命令用于将现有的命名空间附加到一个或多个控制器。
nvme attach-ns /dev/nvme0 -n 1 -c 0x1
detach-ns
功能:将命名空间从请求的控制器分离
用例:此命令用于将现有的命名空间从一个或多个控制器上分离。
nvme detach-ns /dev/nvme0 -n 1 -c 0x1
get-ns-id
功能:检索打开的块设备的命名空间ID。
用例:此命令用于获取打开的块设备对应的命名空间的ID。
bash nvme get-ns-id /dev/nvme0n1
get-log
功能:此命令用于获取指定的 NVMe 设备的日志页面,可以返回各种类型的日志,例如SMART/健康信息、错误信息等。
用例:如果您需要检查 NVMe 设备的SMART日志,可以执行以下命令:
nvme get-log /dev/nvme0 --log-id=0x02 --log-len=512
telemetry-log
功能:此命令用于检索 NVMe 设备的固件遥测数据并将其写
入到文件中。这些数据可以用于故障分析和性能监控。
用例:当需要收集固件的遥测数据以供进一步分析时,可以执行以下命令:
nvme telemetry-log /dev/nvme0 --output-file=telemetry.bin
fw-log
功能:用于检索并显示 NVMe 设备的固件日志,其中可能包含关于固件操作的信息。
用例:若要查看 NVMe 设备的固件相关的日志,可以使用如下命令:
nvme fw-log /dev/nvme0
changed-ns-list-log
功能:此命令用来检索和显示自上次主机重启以来发生变更的命名空间列表。
用例:如果需要知道哪些命名空间最近发生了变化,可以使用以下命令:
nvme changed-ns-list-log /dev/nvme0
smart-log
功能:检索并显示 NVMe 设备的SMART/健康信息日志,包括设备温度、运行时间、数据读写统计等。
用例:若要查看 NVMe 设备的健康状态,可以使用以下命令:
nvme smart-log /dev/nvme0
ana-log
功能:检索并显示 NVMe 设备的异步名称空间访问(ANA)日志,这些日志提供了关于命名空间访问状态的信息。
用例:若要获取有关命名空间异步访问状态的信息,可以使用以下命令:
nvme ana-log /dev/nvme0
error-log
功能:检索并显示 NVMe 设备的错误日志,通常包括最近的错误记录。
用例:若要检查设备的错误记录,可以使用以下命令:
nvme error-log /dev/nvme0
effects-log
功能:检索并显示 NVMe 命令效果日志,这些日志说明了不同命令对设备状态的影响。
用例:若要了解不同命令如何影响设备状态,可以使用以下命令:
nvme effects-log /dev/nvme0
endurance-log
功能:检索并显示 NVMe 设备耐久性组的日志,通常包括耐久性相关的统计信息。
用例:若要查看设备的耐久性数据,可以使用以下命令:
nvme endurance-log /dev/nvme0
predictable-lat-log
功能:检索并显示 NVMe 设备每个 NVM 集的可预测延迟日志。
用例:若要分析设备延迟的预测性,可以使用以下命令:
nvme predictable-lat-log /dev/nvme0
persistent-event-log
功能:检索并显示 NVMe 设备的持久事件日志,这些日志记录了设备的长期事件和统计信息。
用例:若要查看设备的长期事件记录,可以使用以下命令:
nvme persistent-event-log /dev/nvme0
lba-status-log
功能:检索并显示 NVMe 设备的 LBA(逻辑块地址)状态信息日志。
用例:若要获取 LBA 状态信息,可以使用以下命令:
nvme lba-status-log /dev/nvme0
resv-notif-log
功能:检索并显示预留通知日志,这些日志包含了关于 NVMe 命名空间预留状态改变的通知。 用例:如果您需要查看关于预留状态改变的通知,可以执行以下命令:
nvme resv-notif-log /dev/nvme0
boot-part-log
功能:检索并显示引导分区日志,这些日志包含了关于 NVMe 设备引导分区的信息。
用例:若要查看 NVMe 设备的引导分区日志,可以使用以下命令:
nvme boot-part-log /dev/nvme0
get-feature
功能:获取并显示 NVMe 设备的特定功能的当前设置值。
用例:若要获取特定功能的当前设置,例如队列深度,可以使用以下命令:
nvme get-feature /dev/nvme0 --feature-id=0x07
device-self-test
功能:执行 NVMe 设备的自我测试以检查性能和可靠性。
用例:如果您想对 NVMe 设备进行自我测试,可以执行以下命令:
nvme device-self-test /dev/nvme0
self-test-log
功能:检索并显示 NVMe 设备的自我测试日志。
用例:若要查看设备的自我测试结果,可以使用以下命令:
nvme self-test-log /dev/nvme0
supported-log-pages
功能:检索并显示 NVMe 设备支持的日志页的详细信息。
用例:若要了解设备支持哪些日志页,可以使用以下命令:
nvme supported-log-pages /dev/nvme0
set-feature
功能:设置 NVMe 设备的特定功能,并显示操作的结果。
用例:若要更改特定功能的设置,例如设置写缓存,可以使用以下命令:
nvme set-feature /dev/nvme0 --feature-id=0x06 --value=0x1
set-property
功能:设置 NVMe 控制器的属性,并显示结果值。
用例:若要更改控制器的属性,如故障指示灯,可以使用以下命令:
nvme set-property /dev/nvme0 --property-id=0x01 --value=0x1
get-property
功能:获取 NVMe 控制器的属性值,并显示
用例:若要查看控制器的属性,如温度阈值,可以使用以下命令:
nvme get-property /dev/nvme0 --property-id=0x02
format
功能:对 NVMe 命名空间执行格式化操作,可以指定新的块大小和容量。
用例:若要格式化命名空间,使用以下命令:
nvme format /dev/nvme0n1 --lbaf=0
fw-commit
功能:提交新下载的固件,使之在下次重启时生效。
用例:若要提交固件更新,使用以下命令:
nvme fw-commit /dev/nvme0 --slot=1 --action=2
fw-download
功能:向 NVMe 设备下载新固件。
用例:若要下载新固件到设备,使用以下命令:
nvme fw-download /dev/nvme0 --fw=/path/to/firmware.bin
admin-passthru
功能:发送任意管理命令到 NVMe 设备。
用例:若要发送自定义管理命令,使用以下命令:
nvme admin-passthru /dev/nvme0 --opcode=0x09 --cdw10=0x1234
io-passthru
功能:发送任意 I/O 命令到 NVMe 设备。
用例:若要发送自定义 I/O 命令,使用以下命令:
nvme io-passthru /dev/nvme0 --opcode=0x02 --namespace-id=1 --data-len=4096 --read
security-send
功能:向 NVMe 设备发送安全发送命令,用于执行如设定密码、擦除数据等安全操作。
用例:如果您需要设置密码保护您的 NVMe 设备,可以使用以下命令:
nvme security-send /dev/nvme0 --secp=0x01 --spsp=0x1 --data=/path/to/payload.bin
security-recv
功能:从 NVMe 设备接收安全接收命令的结果,用于获取如安全状态等信息。
用例:如果您需要获取 NVMe 设备的安全状态,可以使用以下命令:
nvme security-recv /dev/nvme0 --secp=0x02 --spsp=0x1 --data-len=512
get-lba-status
功能:获取 NVMe 设备的逻辑块地址(LBA)的状态,这可以用于了解设备的空闲、已使用等状态信息。
用例:如果您需要获取特定 LBA 范围的状态,可以使用以下命令:
nvme get-lba-status /dev/nvme0 --range=0x0 --len=100
capacity-mgmt
功能:对 NVMe 设备进行容量管理操作,如容量扩展或缩减。
用例:若要改变 NVMe 设备的容量配置,可以使用以下命令:
nvme capacity-mgmt /dev/nvme0 --cdw11=0x1
resv-acquire
功能:获取 NVMe 设备上的预留实例,用于独占访问或与其他主机协同访问。
用例:若要获取设备上的预留实例,可以使用以下命令:
nvme resv-acquire /dev/nvme0 --rtype=1
resv-register
功能:在 NVMe 设备上注册一个预留键,用于标识预留的主机。
用例:若要为预留注册一个新的键,可以使用以下命令:
nvme resv-register /dev/nvme0 --cptpl=1
resv-release
功能:释放在 NVMe 设备上的预留实例,以允许其他主机访问
用例:若要释放预留实例,可以使用以下命令:
nvme resv-release /dev/nvme0 --rtype=1
resv-report
功能:报告 NVMe 设备上的预留实例信息,如预留的类型和注册的主机。
用例:若要查看设备的预留报告,可以使用以下命令:
nvme resv-report /dev/nvme0 --numd=0
dsm
功能:提交数据集管理(DSM)命令,用于指示 NVMe 设备进行如块擦除、写入等操作。
用例:若要标记指定的块范围为无效,以便擦除,可以使用以下命令:
nvme dsm /dev/nvme0 --slbas=0x0 --nlb=0x1 --attr=0x1
copy
功能:提交简单复制命令,用于在 NVMe 设备内部进行数据复制操作。
用例:若要在设备内部复制数据,可以使用以下命令:
nvme copy /dev/nvme0 --src=0x0 --dst=0x1 --nblocks=0x1
flush
功能:提交刷新命令,确保所有暂存的写操作被永久保存到 NVMe 设备。
用例:若要确保所有数据被刷新到设备,可以使用以下命令:
nvme flush /dev/nvme0
compare
功能:比较指定的数据块与 NVMe 存储设备中存储的数据是否一致。
用例:如果想要验证写入的数据块与原始数据块是否完全一致,可以使用以下命令:
nvme compare /dev/nvme0n1 --start-block=0 --data-len=512 --data=/path/to/data.bin
read
功能:从 NVMe 存储设备的指定位置读取数据。
用例:若要从设备读取特定数据块,可以使用以下命令:
nvme read /dev/nvme0n1 --start-block=0 --block-count=1 --data=/path/to/output.bin
write
功能:向 NVMe 存储设备的指定位置写入数据。
用例:若要向设备写入数据块,可以使用以下命令:
nvme write /dev/nvme0n1 --start-block=0 --data=/path/to/data.bin
write-zeroes
功能:向 NVMe 存储设备的指定位置写入零,可用于清除数据块。
用例:若要将特定数据块设置为零,可以使用以下命令:
nvme write-zeroes /dev/nvme0n1 --start-block=0 --block-count=1
write-uncor
功能:标记 NVMe 存储设备上的指定数据块为不可纠正错误。
用例:若要标记块为不可纠正错误,可以使用以下命令:
nvme write-uncor /dev/nvme0n1 --start-block=0 --block-count=1
verify
功能:校验 NVMe 存储设备上的数据块内容。
用例:若要校验特定数据块,可以使用以下命令:
nvme verify /dev/nvme0n1 --start-block=0 --block-count=1
sanitize
功能:执行 NVMe 存储设备的数据清理操作,彻底删除存储的数据。
用例:若要进行数据清理,可以使用以下命令:
nvme sanitize /dev/nvme0 --sanact=1
sanitize-log
功能:检索并显示 NVMe 存储设备的清理操作日志。
用例:若要查看数据清理操作的结果,可以使用以下命令:
nvme sanitize-log /dev/nvme0
reset
功能:对 NVMe 控制器执行硬重置操作。
用例:若要重置控制器,可以使用以下命令:
nvme reset /dev/nvme0
subsystem-reset
功能:重置整个 NVMe 子系统。
用例:若要重置子系统,可以使用以下命令:
nvme subsystem-reset /dev/nvme0
ns-rescan
功能:重新扫描 NVMe 控制器的所有命名空间。
用例:若要更新系统中的命名空间信息,可以使用以下命令:
nvme ns-rescan /dev/nvme0
show-regs
功能:显示 NVMe 控制器的寄存器或属性。
用例:若要查看控制器寄存器信息,可以使用以下命令:
nvme show-regs /dev/nvme0 --reg=0xcc
discover
功能:此命令用于发现 NVMe over Fabrics (NVMeoF) 子系统。
用例:如果您想要发现可用的 NVMeoF 目标,可以执行以下命令:
nvme discover -t rdma -a 192.168.1.100 -s 4420
其中 -t rdma 表示使用 RDMA 传输层,-a 后面跟的是目标地址,-s 是端口号。
connect-all
功能:自动发现并连接到所有可用的 NVMeoF 子系统
用例:这个命令通常用在客户端,用于连接到所有发现的 NVMeoF 目标:
nvme connect-all
connect
功能:连接到一个指定的 NVMeoF 子系统。
用例:当您知道 NVMeoF 目标的具体参数,并想要建立连接时,可以使用以下命令:
nvme connect -t rdma -n nqn.2016-06.io.spdk:cnode -a 192.168.1.100 -s 4420
disconnect
功能:断开与特定 NVMeoF 子系统的连接。
用例:如果您需要断开当前与某个 NVMeoF 目标的连接,可以执行以下命令:
nvme disconnect -n nqn.2016-06.io.spdk:cnode
disconnect-all
功能:断开与所有已连接的 NVMeoF 子系统的连接。
用例:这个命令通常用于断开客户端与所有 NVMeoF 目标的连接:
nvme disconnect-all
gen-hostnqn
功能:生成一个 NVMeoF 主机的唯一限定名 (NQN)。
用例:当需要为 NVMeoF 主机生成一个新的 NQN 时,可以使用以下命令:
nvme gen-hostnqn
show-hostnqn
功能:显示当前主机的 NVMeoF NQN。
用例:若要查看主机的 NQN,可以使用以下命令:
nvme show-hostnqn
dir-receive
功能:提交指令接收命令并返回结果,该命令用于 NVMe 指令集
用例:如果需要接收来自 NVMe 设备的指令集,可以使用以下命令:
nvme dir-receive /dev/nvme0 --opcode=0x0D --nsid=1 --doper=0x1 --dtype=0x1 --dsize=0x100
dir-send
功能:提交指令发送命令并返回结果,用于发送指令到 NVMe 设备。
用例:若要向 NVMe 设备发送指令集,可以使用以下命令:
nvme dir-send /dev/nvme0 --opcode=0x0E --nsid=1 --doper=0x1 --dtype=0x1 --dsize=0x100 --data=/path/to/data.bin
virt-mgmt
功能:在主控制器和次级控制器之间管理灵活资源,如创建和删除次级控制器。
用例:如果需要在控制器之间管理资源,可以使用以下命令:
nvme virt-mgmt /dev/nvme0 --opcode=0x1 --cdw10=0x1234
rpmb
功能:执行回放保护存储块(Replay Protection Memory Block, RPMB)相关的操作。RPMB 用于存储受保护的数据,如硬件密钥或其他敏感数据,通常用于加强安全性。
用例:若要执行与 RPMB 相关的操作,例如读取 RPMB 数据,可以使用以下命令:
nvme rpmb /dev/nvme0 --opcode=0x1 --blocks=1 --addr=0x0001 --data-len=256 --data=/path/to/output.bin
fid-support-effects-log
功能:获取特性 ID 支持和效果日志,以了解不同命令对 NVMe 设备可能产生的影响。
用例:若要查看设备对不同特性 ID 的支持情况及其效果,可以使用以下命令:
nvme fid-support-effects-log /dev/nvme0
lockdown
功能:执行锁定命令,锁定 NVMe 设备以防止未授权的固件更新或配置更改。
用例:如果需要锁定设备以增强安全性,可以使用以下命令:
nvme lockdown /dev/nvme0
version
功能:显示 nvme 命令行工具的版本信息。
用例:若要查看当前 nvme 工具的版本,可以使用以下命令:
nvme version
help
功能:显示 nvme 命令的帮助信息,包括所有子命令的列表和描述。
用例:若要获得关于 nvme 命令及其子命令的帮助信息,可以使用以下命令:
nvme help
或者,若要获得特定子命令的帮助信息,可以使用:
nvme help
替换 为您想要了解的具体子命令,如 list 或 read 等。
注意
-n(NQN) 等需要替换为您环境中实际的参数值。另外,路径参数(如/path/to/data.bin`)也需要根据实际情况进行替换。在执行这些命令时,要确保具备适当的权限和对命令影响的充分理解。错误的命令执行可能会导致数据丢失或服务中断。
这些命令用于管理和维护 NVMe 设备的不同方面,包括安全、日志记录和固件管理。在使用这些命令之前,请确保您了解每个命令的具体作用,并且在生产环境中慎重使用,特别是涉及到安全和固件操作的命令,因为它们可能会对设备的正常运行造成影响。
请确保在执行这些命令时,/dev/nvme0 和 /dev/nvme0n1 需要替换为实际的设备路径,而路径到固件的 /path/to/firmware.bin 也需替换为固件文件的实际路径。在执行这些命令之前,应仔细阅读相关文档,以防不必要的数据损失。
https://zhuanlan.zhihu.com/p/667230252https://zhuanlan.zhihu.com/p/667230252
更多推荐
所有评论(0)