Проверка NVMe дисков с помощью nvme-cli
12 Jul 2026, 03:48:14
nvme-cli - утилита, предназначенная для диагностики и работы с NVMe SSD напрямую через интерфейс NVMe. Несмотря на то, что популярная утилита для тестирования дисков - smartctl начиная с версии 7.0 успешно выводит информацию о многих современных NVMe накопителях, она выводит лишь малую часть основных данных. Для большинства пользователей её будет достаточно, но если нужна полная информация о NVMe диске, не обойтись без nvme-cli.Многие производители оборудования предоставляют свои фирменные утилиты для диагностики устройств (Intel MAS, Samsung Magician и т.д.), однако не все они доступны для Linux-систем. nvme-cli является их полноценной заменой, так как реализует почти все возможности диагностики интерфейса NVMe и работает со всеми популярными моделями NVMe SSD.
Установка nvme-cli
Утилита nvme-cli уже стала стандартом индустрии и доступна в репозиториях многих современных дистрибутивов Linux. Все команды в этой статье выполняются на выделенном сервере под пользователем root. Если вы работаете под обычным пользователем, вам может понадобиться использовать sudo перед основной командой.Debian и Ubuntu
apt install nvme-cliRHEL, AlmaLinux, CentOS
dnf install nvme-cliArch Linux
pacman -S nvme-cliЕсли установка прошла успешно, выполнив эту команду вы увидите версию программы:
nvme version
Вывод NVMe дисков
Для просмотра информации обо всех NVMe устройствах на сервере воспользуйтесь командой:nvme list
Разберём поля:
| Node | имя NVMe носителя |
| SN | серийный номер |
| Model | модель накопителя |
| Namespace | номер namespace |
| Usage | объём использованного пространства |
| Format | размер логического сектора |
| FW Rev | версия прошивки |
Что такое Namespace у NVMe дисков
В классическом понимании архитектура дисковой системы на сервере состоит из дисков, которые делятся на разделы, на которые устанавливаются файловые системы. Но в случае с NVMe накопителями появляется новый слой между диском и разделом, управляемый самим контроллером NVMe диска. Это позволяет создать из одного устройства несколько независимых носителей, операционная система будет видеть их как отдельные диски. Реализуется полноценный уровень изоляции.Каждый namespace имеет свой:
- объём;
- размер сектора;
- логическое адресное пространство;
- форматирование;
- идентификатор NSID.
Информация о контроллере
Вывести полную информацию о спецификациях контроллера NVMe диска можно с помощью команды:nvme id-ctrl -H /dev/nvme0- /dev/nvme0 - имя NVMe устройства.

Однако не стоит ожидать здесь увидеть модель контроллера. Эту информацию необходимо искать в документации производителя.
Получение данных SMART
Диагностика NVMe накопителя начинается с просмотра данных SMART, собранных контроллером. Для их отображения воспользуйтесь командой:nvme smart-log /dev/nvme0- /dev/nvme0 - имя NVMe диска.

Разберём значения всех полей вывода утилиты:
| critical_warning | битовая маска, отображающая текущее состояние диска (0 - критическое состояние не активно) |
| temperature | температура диска (50-70°C - норма для большинства устройств) |
| available_spare | процент доступных резервных блоков |
| available_spare_threshold | лимит для предупреждения (контроллер сообщит о проблеме если процент свободных резервных блоков будет ниже) |
| percentage_used | предполагаемый износ диска (0% - диск как новый) |
| data_units_read | сколько данных прочитано с диска за всё время его работы (в специальных единицах - Data Units (512 КБ)) |
| data_units_written | сколько записано данных (по аналогии с data_units_read) |
| host_read_commands | количество выполненных команд чтения |
| host_write_commands | количество выполненных команд записи |
| controller_busy_time | общее время затраченное контроллером на обработку запросов |
| power_cycles | количество включений |
| power_on_hours | количество часов работы |
| unsafe_shutdowns | количество аварийных выключений |
| media_errors | количество необратимых ошибок чтения/записи носителя и целостности данных |
| num_err_log_entries | количество записей добавленных в журнал ошибок диска |
| Warning Temperature Time | сколько времени температура диска превышала порог предупреждения |
| Critical Composite Temperature Time | сколько времени температура диска превышала критический порог |
| Temperature Sensor 1, 2, 3 | показания датчиков температуры |
| Thermal Management Trans Count | количество включений температурного троттлинга разных уровней |
| Thermal Management Total Time | сколько SSD проработал на разных уровнях троттлинга |
Вывод лога ошибок NVMe диска
Вывести лог ошибок диска можно с помощью команды:nvme error-log /dev/nvme0В зависимости от производителя устройства, может сложиться ситуация когда вы получите много информации в логе, но при этом никаких ошибок там не будет:
Вывод будет полон подобными записями, но все они будут иметь error_count: 0 и status_field: SUCCESS. Это не является показателем проблемы, даже несмотря на то, что num_err_log_entries может не быть равен 0, как в примере. Это означает, что за время работы диска были зафиксированы какие-то ошибки, но вероятно они были давно и журнал за это время был уже очищен. Если все записи в логе имеют error_count равным 0, можно считать что актуальных ошибок у NVMe устройства нет.
Запуск Self-Test на NVMe SSD
Утилита nvme-cli позволяет инициировать два варианта Self-Test, по аналогии со smartctl: Short self-test и Extended self-test. Short self-test выполняет проверку выборочных блоков NAND памяти, механизма ECC, работу контроллера. Extended self-test проверяет все каналы памяти, большее количество блоков NAND, ECC и многое другое. Механизм и узлы для диагностики определяет производитель устройства, nvme-cli только даёт команду на запуск тестирования, само тестирование выполняется контроллером накопителя.Для запуска быстрого теста воспользуйтесь командой:
nvme device-self-test /dev/nvme0 -s 1- /dev/nvme0 - имя вашего NVMe устройства;
- -s - self-test код (1 для short теста).
nvme device-self-test /dev/nvme0 -s 2В результате уведомление о запуске теста:
Для остановки теста используется команда:
nvme device-self-test /dev/nvme0 -s 15Просмотреть результаты тестов можно в self-test логе:nvme self-test-log /dev/nvme0Формат вывода журналов
nvme-cli может отобразить любой запрашиваемый лог в трёх форматах: человекочитаемом (по умолчанию), JSON и бинарном. Последний поддерживается не для всех типов команд. Для определения формата вывода используйте опцию -o:nvme smart-log /dev/nvme0 -o json- -o - формат вывода (normal, json и binary).

Заключение
nvme-cli является специализированной программой для работы с NVMe устройствами по спецификациям стандарта NVMe. smartctl - универсальная утилита, работающая с разными типами накопителей. Оба инструмента являются являются базовыми инструментами в администрировании выделенных серверов. Понимание их возможностей поможет вам произвести диагностику ваших устройств и, возможно, спасти данные.Если вы являетесь клиентом Virterion.com, вам не обязательно разбираться с вопросами работы nvme-cli. Вы можете обратиться с запросом в нашу техническую поддержку для проверки дисков на вашем выделенном сервере.