К основному содержимому

SMART-диагностика дисков сервера: smartctl и NVMe

Выделенные серверы · 24.09.2026
Иллюстрация к статье «SMART-диагностика дисков сервера: smartctl и NVMe»

SMART-диагностика дисков сервера: как читать и что делать

SMART читают утилитой smartctl из пакета smartmontools: smartctl -a /dev/sda для SATA и SAS, smartctl -a /dev/nvme0 для NVMe. Диск меняют не по вердикту «PASSED», а по конкретным счётчикам: переназначенным секторам, ожидающим секторам, ошибкам CRC интерфейса и остатку ресурса записи.

  • Строка SMART overall-health self-assessment test result: PASSED означает лишь то, что ни один атрибут не пересёк порог производителя. Диск с сотней переназначенных секторов её тоже покажет.
  • Опасны три вещи: рост Reallocated_Sector_Ct, ненулевой Current_Pending_Sector и любое значение Offline_Uncorrectable.
  • У NVMe свои поля: percentage_used, media_errors, critical_warning, available_spare.
  • Демон smartd гоняет тесты по расписанию и шлёт письмо, когда счётчик двинулся.

Установка и первое чтение

Пакет одинаков в обоих семействах, для NVMe добавьте nvme-cli.

# Debian/Ubuntu
apt-get install -y smartmontools nvme-cli
# RHEL, AlmaLinux, Rocky
dnf install -y smartmontools nvme-cli

# список устройств, которые видит smartctl
smartctl --scan

# полный отчёт по SATA/SAS диску
smartctl -a /dev/sda

# только атрибуты, без шапки
smartctl -A /dev/sda

# NVMe: журнал здоровья
smartctl -a /dev/nvme0
nvme smart-log /dev/nvme0

Если диски спрятаны за RAID-контроллером, к команде добавляют тип устройства, например -d megaraid,8. Как понять, какая у вас реализация массива, разобрано в статье аппаратный RAID или mdadm.

Какие атрибуты смотреть

АтрибутЧто означаетНормаДействие
5 Reallocated_Sector_Ctсектора, переназначенные из резерва0 и не растётрост за неделю — планировать замену
197 Current_Pending_Sectorсектора, которые не читаются, но ещё не переназначены0любое ненулевое значение — запустить длинный тест
198 Offline_Uncorrectableсектора, не восстановленные при фоновой проверке0менять диск
199 UDMA_CRC_Error_Countошибки передачи по шине0 и не растёткабель, слот бэкплейна, а не диск
187 Reported_Uncorrectошибки, о которых диск сообщил хосту0менять диск

NVMe читается иначе

У NVMe нет классической таблицы атрибутов, вместо неё — журнал здоровья с фиксированными полями. Смотреть стоит четыре: critical_warning (любое значение, кроме нуля, — авария), percentage_used (израсходованный ресурс записи в процентах, 100 означает исчерпание гарантированного TBW), media_errors (неисправимые ошибки носителя) и available_spare вместе с available_spare_threshold.

Самотестирование

Короткий тест проверяет электронику и часть поверхности за 1–2 минуты, длинный читает всю поверхность и идёт часы. Оба выполняются самим диском в фоне, сервер при этом работает.

# короткий тест
smartctl -t short /dev/sda
# длинный тест
smartctl -t long /dev/sda
# прервать текущий тест
smartctl -X /dev/sda

# результаты последних тестов
smartctl -l selftest /dev/sda

# журнал ошибок накопителя
smartctl -l error /dev/sda 2>&1 | head -n 40

Автоматический контроль через smartd

# конфиг: /etc/smartd.conf (RHEL) или /etc/smartmontools/smartd.conf (Debian/Ubuntu)
# одна строка на все найденные диски:
# DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) -W 4,45,55 -m root@localhost

systemctl enable --now smartd        # Debian/Ubuntu
systemctl enable --now smartd        # RHEL, AlmaLinux, Rocky
systemctl status smartd

Расписание в примере означает короткий тест каждую ночь в 02:00 и длинный по субботам в 03:00. Письма приходят только при наличии рабочего почтового транспорта на сервере; на VDS исходящий SMTP по умолчанию закрыт и открывается по запросу, поэтому надёжнее отдавать метрики SMART в систему мониторинга — это описано в статье про мониторинг железа сервера.

Частая ошибка — считать диск исправным, потому что smartctl -H вернул PASSED. Этот вердикт срабатывает только при пересечении заводского порога, а накопитель с сотнями переназначенных секторов до порога ещё не дошёл и продолжает отдавать ошибки чтения. В RAID это выглядит как случайные подвисания ввода-вывода без единого сообщения о деградации массива. Проверяйте иначе: снимайте smartctl -A раз в сутки и сравнивайте RAW_VALUE атрибутов 5, 187, 197 и 198 с предыдущим снимком. Любой прирост — повод вывести диск и заказать замену накопителя в массиве, не дожидаясь полного отказа.

Когда менять диск

  • Немедленно: ненулевой Offline_Uncorrectable, Reported_Uncorrect, critical_warning у NVMe, ошибки чтения в журнале самотестирования.
  • В ближайшие дни: растущий Reallocated_Sector_Ct, Current_Pending_Sector, который не обнуляется после длинного теста.
  • Не меняем: рост только UDMA_CRC_Error_Count — это шлейф или слот корзины, замена диска ничего не даст.

На выделенных серверах ZevsHost диск в массиве заменяет дежурная смена дата-центра по заявке: вы снимаете вывод smartctl -a и серийный номер накопителя, дальше работают инженеры площадки.

Коротко

  • smartctl -a для SATA и SAS, smartctl -a /dev/nvme0 или nvme smart-log для NVMe.
  • Решение принимают по RAW_VALUE атрибутов 5, 187, 197, 198 и по их динамике, а не по строке PASSED.
  • У NVMe следят за percentage_used, media_errors, available_spare и critical_warning.
← Назад в базу знаний Задать вопрос поддержке