SSD и NVMe выходят из строя иначе, чем жёсткие диски: механики нет, зато есть износ ячеек, исчерпание резервной области и тепловой троттлинг. SMART помогает заметить деградацию до потери данных, если знать, какие поля смотреть. Разберём инвентаризацию, журналы NVMe, атрибуты SATA, TRIM, расчёт износа и мониторинг.

Что показывают SMART и журналы NVMe

У SATA-накопителей здоровье описывается набором атрибутов с идентификаторами: часть из них стандартизирована, часть определяется производителем. У NVMe вместо атрибутов используется страница журнала здоровья с полями critical_warning, percentage_used, available_spare и счётчиками ошибок. Показания нельзя сравнивать между разными моделями напрямую, но динамика одного и того же диска информативна.

SMART не предсказывает отказ точно: контроллер, питание и прошивка подводят и при идеальных показателях, поэтому резервная копия обязательна.

Инвентаризация: что установлено

Сначала выясняем тип подключения и модель. Поле TRAN показывает nvme или sata, ROTA равно нулю для твердотельных дисков.

lsblk -o NAME,MODEL,SERIAL,SIZE,TRAN,ROTA
sudo nvme list
sudo smartctl --scan
sudo smartctl -i /dev/nvme0

Если диск подключён через USB-адаптер, SMART может быть недоступен напрямую. Для мостов с поддержкой SAT используйте smartctl -d sat -a /dev/sdb; для некоторых контроллеров нужен тип -d usbjmicron или -d sat,12. Отсутствие ответа чаще означает ограничение адаптера, а не отказ диска.

NVMe: журнал здоровья

Основная команда — nvme smart-log. Флаг -o json удобен для скриптов и систем мониторинга.

sudo nvme smart-log /dev/nvme0
sudo nvme smart-log /dev/nvme0 -o json
sudo nvme error-log /dev/nvme0
sudo nvme id-ctrl /dev/nvme0 | grep -E "mn|sn|fr"

На что смотреть в выводе:

  • critical_warning — битовая маска. Ноль означает норму; бит 0 — резервная область ниже порога, бит 1 — перегрев, бит 2 — деградация надёжности, бит 3 — диск переведён в режим только чтения.
  • percentage_used — оценка израсходованного ресурса в процентах. Значение 100 не означает мгновенную смерть, но диск пора менять.
  • available_spare и available_spare_threshold — запас блоков и порог, ниже которого контроллер начинает действовать агрессивнее.
  • media_errors — ошибки чтения/записи на уровне носителя. Любой рост — повод срочно проверить бэкапы.
  • num_err_log_entries и unsafe_shutdowns — ошибки в журнале и некорректные выключения.
  • data_units_written — объём записанного хостом. Одна единица равна 512 000 байт.

Перевести единицы просто: миллион единиц — примерно 512 ГБ, точный объём равен значению, умноженному на 512000 байт.

SATA SSD: важные атрибуты

У SATA-дисков смотрим не только общий вердикт PASSED, но и конкретные строки. Идентификаторы у разных производителей трактуются по-разному, однако набор ключевых совпадает:

sudo smartctl -a /dev/sda
sudo smartctl -A /dev/sda
sudo smartctl -l selftest /dev/sda
sudo smartctl -t short /dev/sda
  • 5 Reallocated_Sector_Ct — переназначенные секторы. Рост говорит о деградации.
  • 177 Wear_Leveling_Count — остаток ресурса по оценке контроллера (например, у Samsung).
  • 197 Current_Pending_Sector и 198 Offline_Uncorrectable — секторы, которые не читаются; критично.
  • 199 UDMA_CRC_Error_Count — ошибки кабеля или разъёма, а не самого диска.
  • 241 Total_LBAs_Written — записанный объём в логических блоках по 512 байт.
  • 9 Power_On_Hours — наработка, полезная для сопоставления с гарантией.

Пересчёт записанного объёма для SATA:

sudo smartctl -A /dev/sda | awk '/Total_LBAs_Written/ {printf "%.2f TB\n", $10*512/1e12}'
sudo smartctl -A /dev/sda | awk '/Power_On_Hours/ {print "часов:", $10}'

Значение в последнем столбце некоторые производители упаковывают в нестандартный формат. Если число выглядит абсурдно большим, сверьтесь с документацией модели.

TRIM: проверка и включение

TRIM сообщает контроллеру, какие блоки больше не нужны файловой системе. Без него контроллер перезаписывает блоки целиком, растёт усиление записи и износ. Проверяем поддержку и текущее состояние:

lsblk -D
sudo fstrim -av
systemctl status fstrim.timer --no-pager
sudo systemctl enable --now fstrim.timer

Периодический fstrim.timer предпочтительнее опции монтирования discard: он не замедляет удаление файлов и выполняется раз в неделю. Btrfs использует асинхронный discard (discard=async), а в виртуальных машинах проброс TRIM зависит от гипервизора и типа диска.

Для шифрованного раздела LUKS ситуация сложнее: по умолчанию discard не пропускается, иначе по освобождённым блокам можно судить о структуре данных. Опция allow-discards включает проброс ценой этой утечки метаданных.

Температура и троттлинг

NVMe греется заметно сильнее SATA. При перегреве контроллер снижает скорость, и система начинает «задумываться» на ровном месте. Датчики доступны через hwmon и журнал:

grep . /sys/class/nvme/nvme0/hwmon*/temp1_input
sudo nvme smart-log /dev/nvme0 | grep -i temp
dmesg -T | grep -iE "nvme|thermal|throttl"

Значения в sysfs указаны в тысячных долях градуса. Если диск долго держится выше 70 градусов, проверьте радиатор и продув корпуса; в ноутбуке помогает термопрокладка, если конструкция предусматривает место.

Ошибки, прошивка и признаки скорой замены

Рост media_errors, ненулевой critical_warning, ошибки сброса в dmesg и повторяющиеся записи в nvme error-log — плохой сигнал. Прошивку стоит обновлять через fwupdmgr, если производитель публикует обновления для Linux:

sudo nvme fw-log /dev/nvme0
sudo fwupdmgr get-devices
sudo fwupdmgr refresh
sudo fwupdmgr update

Заменяйте накопитель, если выполняются хотя бы два условия: percentage_used выше 90, резервная область приблизилась к порогу, появились неустранимые ошибки чтения. При одном только большом значении записанных терабайт диск может проработать ещё годы.

Мониторинг и обслуживание

Ручные проверки забываются, поэтому настраиваем smartd. Он отслеживает атрибуты, запускает короткие и длинные тесты и отправляет письма при изменениях.

/dev/nvme0 -H -m root
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m root
systemctl restart smartd
sudo smartctl -l selftest /dev/sda

В конфиге /etc/smartd.conf строки располагаются после комментариев. Проверьте, что почтовый агент на машине действительно отправляет письма, иначе уведомления останутся в локальном ящике.

Чек-лист диагностики

  • Модель, интерфейс и прошивка зафиксированы в документации.
  • Снят базовый снимок SMART и настроен еженедельный короткий тест.
  • fstrim.timer активен, вывод fstrim -av не пуст.
  • Температура под нагрузкой не превышает паспортный порог.
  • media_errors и critical_warning остаются нулевыми.
  • Резервная копия проверена восстановлением, а не только созданием.

Итог

Диагностика SSD и NVMe сводится к трём привычкам: смотреть журнал здоровья, а не только общий вердикт; держать TRIM включённым; следить за температурой и динамикой счётчиков. Абсолютные значения мало что говорят, а вот рост ошибок и резкое изменение запаса ячеек — достоверный сигнал. Настройка smartd и регулярный fstrim занимают полчаса и дают время спокойно перенести данные до отказа.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте