Для управления накопителями SSD M.2 NVME выпускается набор утилит
nvme-cliПосле установки в Matuntu-J пакета nvme-cli в терминале ввёл команду:
sudo nvme list
Node SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 202101010716 Reletech P400 SSD 256GB 1 256,06 GB / 256,06 GB 512 B + 0 B ECFM32.1
На опеннете в апреле
сообщалось, что опубликован значительный выпуск набора утилит
nvme-cli 2.0, предоставляющего интерфейс командной строки для управления SSD-накопителями с интерфейсом NVM-Express (NVMe) в Linux. При помощи nvme-cli можно оценить состояние накопителя, посмотреть лог ошибок, вывести статистику по операциям, управлять пространствами имён, отправлять низкоуровневые команды контроллеру, активировать расширенные возможности и т.п. Код написан на языке Си и распространяется под лицензией GPLv2.
Наиболее значительные изменения, из-за которых осуществлено формирование ветки 2.0, связаны с реорганизацией кодовой базы - из пакета выделена библиотека
libnvme, которая теперь будет развиваться в отдельном репозитории и может использоваться в произвольных проектах для вызова функциональности, доступной в nvme-cli. Одновременно с nvme-cli 2.0 сформирован выпуск libnvme 1.0, в котором стабилизирован библиотечный API. Из функциональных изменений nvme-cli 2.0 можно отметить добавление новых команд "nvme config", "nvme dim", "nvme media-unit-stat-log", "nvme gen-tls-key" и "nvme check-tls-key".
Из репозитория Ubuntu доступны пакеты
nvme-cli более младшей версии 1.16.
При попытке почитать man получил длиннющий вывод:
nvme-1.16
usage: nvme <command> [<device>] [<args>]
The '<device>' may be either an NVMe character device (ex: /dev/nvme0) or an
nvme block device (ex: /dev/nvme0n1).
The following are all implemented sub-commands:
list List all NVMe devices and namespaces on machine
list-subsys List nvme subsystems
id-ctrl Send NVMe Identify Controller
id-ns Send NVMe Identify Namespace, display structure
id-ns-granularity Send NVMe Identify Namespace Granularity List, display structure
list-ns Send NVMe Identify List, display structure
list-ctrl Send NVMe Identify Controller List, display structure
nvm-id-ctrl Send NVMe Identify Controller NVM Command Set, display structure
primary-ctrl-caps Send NVMe Identify Primary Controller Capabilities
list-secondary List Secondary Controllers associated with a Primary Controller
cmdset-ind-id-ns I/O Command Set Independent Identify Namespace
ns-descs Send NVMe Namespace Descriptor List, display structure
id-nvmset Send NVMe Identify NVM Set List, display structure
id-uuid Send NVMe Identify UUID List, display structure
id-iocs Send NVMe Identify I/O Command Set, display structure
id-domain Send NVMe Identify Domain List, display structure
list-endgrp Send NVMe Identify Endurance Group List, display structure
create-ns Creates a namespace with the provided parameters
delete-ns Deletes a namespace from the controller
attach-ns Attaches a namespace to requested controller(s)
detach-ns Detaches a namespace from requested controller(s)
get-ns-id Retrieve the namespace ID of opened block device
get-log Generic NVMe get log, returns log in raw format
telemetry-log Retrieve FW Telemetry log write to file
fw-log Retrieve FW Log, show it
changed-ns-list-log Retrieve Changed Namespace List, show it
smart-log Retrieve SMART Log, show it
ana-log Retrieve ANA Log, show it
error-log Retrieve Error Log, show it
effects-log Retrieve Command Effects Log, show it
endurance-log Retrieve Endurance Group Log, show it
predictable-lat-log Retrieve Predictable Latency per Nvmset Log, show it
pred-lat-event-agg-log Retrieve Predictable Latency Event Aggregate Log, show it
persistent-event-log Retrieve Presistent Event Log, show it
endurance-event-agg-log Retrieve Endurance Group Event Aggregate Log, show it
lba-status-log Retrieve LBA Status Information Log, show it
resv-notif-log Retrieve Reservation Notification Log, show it
boot-part-log Retrieve Boot Partition Log, show it
get-feature Get feature and show the resulting value
device-self-test Perform the necessary tests to observe the performance
self-test-log Retrieve the SELF-TEST Log, show it
supported-log-pages Retrieve the Supported Log pages details, show it
set-feature Set a feature and show the resulting value
set-property Set a property and show the resulting value
get-property Get a property and show the resulting value
format Format namespace with new block format
fw-commit Verify and commit firmware to a specific slot (fw-activate in old version < 1.2)
fw-download Download new firmware
admin-passthru Submit an arbitrary admin command, return results
io-passthru Submit an arbitrary IO command, return results
security-send Submit a Security Send command, return results
security-recv Submit a Security Receive command, return results
get-lba-status Submit a Get LBA Status command, return results
capacity-mgmt Submit Capacity Management Command, return results
resv-acquire Submit a Reservation Acquire, return results
resv-register Submit a Reservation Register, return results
resv-release Submit a Reservation Release, return results
resv-report Submit a Reservation Report, return results
dsm Submit a Data Set Management command, return results
copy Submit a Simple Copy command, return results
flush Submit a Flush command, return results
compare Submit a Compare command, return results
read Submit a read command, return results
write Submit a write command, return results
write-zeroes Submit a write zeroes command, return results
write-uncor Submit a write uncorrectable command, return results
verify Submit a verify command, return results
sanitize Submit a sanitize command
sanitize-log Retrieve sanitize log, show it
reset Resets the controller
subsystem-reset Resets the subsystem
ns-rescan Rescans the NVME namespaces
show-regs Shows the controller registers or properties. Requires character device
discover Discover NVMeoF subsystems
connect-all Discover and Connect to NVMeoF subsystems
connect Connect to NVMeoF subsystem
disconnect Disconnect from NVMeoF subsystem
disconnect-all Disconnect from all connected NVMeoF subsystems
gen-hostnqn Generate NVMeoF host NQN
show-hostnqn Show NVMeoF host NQN
dir-receive Submit a Directive Receive command, return results
dir-send Submit a Directive Send command, return results
virt-mgmt Manage Flexible Resources between Primary and Secondary Controller
rpmb Replay Protection Memory Block commands
fid-support-effects-log Submit Feature ID Support and Effects Log, Return result
lockdown Submit a Lockdown command,return result
version Shows the program version
help Display this help
See 'nvme help <command>' for more information on a specific command
The following are all installed plugin extensions:
ymtc Ymtc vendor specific extensions
nvidia NVIDIA vendor specific extensions
zns Zoned Namespace Command Set
transcend Transcend vendor specific extensions
sfx ScaleFlux vendor specific extensions
dera Dera vendor specific extensions
shannon Shannon vendor specific extensions
virtium Virtium vendor specific extensions
seagate Seagate vendor specific extensions
micron Micron vendor specific extensions
toshiba Toshiba NVME plugin
netapp NetApp vendor specific extensions
huawei Huawei vendor specific extensions
wdc Western Digital vendor specific extensions
memblaze Memblaze vendor specific extensions
lnvm LightNVM specific extensions
amzn Amazon vendor specific extensions
intel Intel vendor specific extensions
See 'nvme <plugin> help' for more information on a plugin
Пока изучаю возможности nvme-cli, тема в сети освещена недостаточно.