EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

smartctl

Введение

smartctl - консольная утилита из состава пакета smartmontools, предназначенная для работы с технологией S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology), реализованной в современных накопителях.

Где и зачем применяется:

  • серверы хостинговых компаний;
  • VPS/VDS-узлы;
  • выделенные серверы;
  • файловые серверы;
  • системы резервного копирования;
  • корпоративные инфраструктуры.

Какие задачи решает:

  • раннее выявление деградации дисков;
  • прогнозирование отказов накопителей;
  • снижение риска потери данных;
  • автоматизация мониторинга состояния HDD, SSD, NVMe;
  • анализ физических проблем дисковой подсистемы.

Info

Проактивный мониторинг SMART позволяет выявить проблему до фактического отказа диска, что критически важно для продакшн-сред.

Требования и подготовка

Поддерживаемые ОС и версии:

Linux:

  • Debian 10+
  • Ubuntu 18.04+
  • RHEL / AlmaLinux / Rocky Linux 8+
  • CentOS 7 (поддерживается, но устарел)
  • FreeBSD 12+

Windows (через smartmontools, ограниченное применение)

Далее примеры приводятся для Linux.

Необходимое ПО и пакеты:

  • пакет smartmontools
  • доступ к /dev/sdX, /dev/nvmeX
  • установленный systemd (для smartd)

Права доступа:

  • обязательны root-права
  • либо доступ через sudo

Предварительные проверки

Просмотр списка дисков в системе:

lsblk -d -o NAME,MODEL

Обзор и базовые понятия

Ключевые термины

  • SMART – встроенная система самодиагностики диска
  • Attributes – атрибуты состояния (Reallocated_Sector_Ct, Pending_Sectors и т.д.)
  • Self-test – встроенные тесты накопителя
  • smartctl – CLI-утилита управления SMART
  • smartd – демон автоматического мониторинга

Принципы работы

  1. Диск самостоятельно собирает статистику
  2. smartctl считывает эти данные
  3. smartd анализирует пороговые значения и события
  4. При проблемах отправляются уведомления

Логика решения

Диск > SMART-атрибуты > smartctl > smartd > лог / email / monitoring

Базовая настройка и использование smartctl

Установка утилиты smartmontools

Работа с SMART невозможна без установленного пакета smartmontools, который включает в себя утилиты smartctl (ручная работа с дисками) и smartd (фоновый демон мониторинга).

Установка выполняется стандартными средствами пакетного менеджера дистрибутива.

Debian / Ubuntu

sudo apt update

sudo apt install smartmontools

RHEL / AlmaLinux / Rocky Linux

sudo dnf install smartmontools

После установки утилиты становятся доступны в системе и готовы к использованию без дополнительной инициализации.

Проверка версии и доступности smartctl

На первом этапе рекомендуется убедиться, что утилита корректно установлена и доступна в системе:

smartctl --version

Команда выводит версию пакета и список поддерживаемых технологий.

Это позволяет:

  • убедиться, что используется актуальная версия;
  • проверить наличие поддержки NVMe, RAID и других типов устройств.

Проверка поддержки SMART конкретным диском

Далее необходимо проверить, поддерживает ли сам накопитель технологию SMART и включена ли она на уровне устройства.

sudo smartctl -i /dev/sda

Пример корректного вывода:

SMART support is: Available - device has SMART capability. SMART support is: Enabled

Available – диск физически поддерживает SMART;
Enabled – сбор SMART-данных включён и доступен для чтения.

Если SMART поддерживается, но отключён, это часто встречается на новых или ранее неиспользуемых дисках. В таком случае его необходимо включить вручную:

sudo smartctl -s on /dev/sda

После этого рекомендуется повторно выполнить команду smartctl -i и убедиться, что SMART активирован.

Просмотр SMART-атрибутов и первичная оценка состояния

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

Для просмотра атрибутов используется команда:

sudo smartctl -A /dev/sda

В выводе содержится таблица атрибутов с текущими значениями и их историей. В первую очередь следует обращать внимание на следующие показатели:

Ключевые поля в выводе:

  • VALUE (Текущее значение): Нормализованное значение атрибута (обычно от 1 до 100, 100 - идеально). Диск считается неисправным, если VALUE ≤ THRESH.
  • WORST (Худшее значение): Наихудшее значение, которое достигалось за время работы диска.
  • THRESH (Порог): Минимальное допустимое значение VALUE. Превышение порога (VALUE ≤ THRESH) - признак критического состояния.
  • RAW_VALUE: "Сырое", ненормализованное значение атрибута. Именно его нужно анализировать для оценки износа и подсчета событий.

Ключевые атрибуты для HDD (традиционные жесткие диски):

  • Reallocated_Sector_Ct: Рост указывает на физическую деградацию поверхности.
  • Current_Pending_Sector (Секторы в ожидании переназначения): Нестабильные сектора. Даже одно ненулевое значение - тревожный сигнал.
  • Offline_Uncorrectable (Невосстановимые ошибки): Сектора, которые не удалось прочитать.
  • Power_On_Hours: Общее время работы диска.

Ключевые атрибуты для SSD:

  • Retired_Block_Count: Аналог Reallocated_Sector_Ct для HDD. Показывает количество блоков, выведенных из эксплуатации. Даже невысокое значение при VALUE=100 может быть нормой.
  • Reallocated_Event_Count: Количество событий переназначения.
  • SSD_Life_Left или Percentage Used/Media Wearout Indicator: Процент оставшегося ресурса (или износа). Низкое значение (например, <10%) - признак скорого отказа.
  • Wear_Range_Delta: Показатель равномерности износа ячеек памяти.
  • Power_On_Hours_and_Msec: Время наработки.
  • Lifetime_Writes_GiB / Lifetime_Reads_GiB (Атрибуты 241, 242): Общий объем записанных/прочитанных данных.

Ключевые атрибуты для NVMe (через smartctl -a /dev/nvme0):

  • Percentage Used: Процент исчерпания ресурса записи. Основной показатель износа.
  • Media and Data Integrity Errors: Ошибки целостности данных.
  • Critical Warning: Флаги критических предупреждений.
  • Temperature: Текущая температура.

На данном этапе администратор получает общее представление о состоянии диска и может выявить явные признаки проблем.

Расширенная настройка и практические сценарии

SMART поддерживает встроенные самотесты, которые выполняются самим накопителем без участия операционной системы.

Короткий тест предназначен для быстрой проверки ключевых компонентов:

sudo smartctl -t short /dev/sda

Длительный тест выполняет полное сканирование поверхности и занимает значительно больше времени:

sudo smartctl -t long /dev/sda

После завершения теста необходимо проверить результаты:

sudo smartctl -l selftest /dev/sda

В выводе указывается:

  • тип теста;
  • статус выполнения;
  • наличие или отсутствие ошибок.

Неуспешный тест – прямое основание для подготовки к замене диска.

Работа с RAID-контроллерами

Аппаратные RAID-контроллеры часто скрывают SMART-данные от системы. В таких случаях необходимо явно указывать тип устройства.

Пример для LSI-контроллера:

smartctl -a -d megaraid,0 /dev/sda

Где:

  • -a – ключ для вывода всей доступной SMART-информации (атрибуты, логи, ошибки, общая оценка здоровья).
  • -d – ключ для указания типа устройства.
  • megaraid – указывает драйверу SMART, что диск находится за контроллером LSI/Broadcom (часто используется в серверах).
  • 0 – физический номер диска (PD, Physical Drive) в массиве RAID. Это не sda, а уникальный ID, который присваивает контроллер. Его можно узнать из утилиты управления контроллером (например, storcli или MegaCLI).
  • /dev/sda – в данном контексте это не реальный диск, а псевдоустройство, представляющее сам RAID-контроллер в системе. Обычно это /dev/sgX (SCSI Generic) или просто /dev/sda, если контроллер создал виртуальный диск.

Типичная ошибка при отсутствии указания типа устройства:

SMART support is: Unavailable

Это не означает, что SMART недоступен – лишь то, что smartctl не смог автоматически определить путь к физическому диску. Решение – корректно указать параметр -d.

Диагностика и поиск проблем

Признаки возможных неисправностей:

  • рост значения Reallocated_Sector_Ct;
  • ненулевой Current_Pending_Sector;
  • ошибки программ/стираний (Program_Fail_Count, Erase_Fail_Count);
  • ошибки самотестов;
  • увеличение задержек ввода-вывода;
  • сообщения об ошибках в системных логах.

Анализ логов:

journalctl -u smartd

dmesg | grep -i error

Пояснение:
Pending Sectors > 0 – высокий риск отказа;
Reallocated Sectors увеличиваются – прогрессирующая деградация;
Self-test FAILED – диск подлежит замене.

Определение источников проблем

Для исключения ложных срабатываний важно сопоставлять SMART-данные с реальной нагрузкой.

iostat -x 1

iotop

Проверка, куда примонтирован диск:

lsblk -o NAME,SERIAL,MOUNTPOINT

Выявление контроллеров:

lspci | grep -i raid

Дополнительные метрики:

  • температура выше 50 °C;
  • рост CRC-ошибок;
  • нестабильные SMART-значения.

Настройка отправки уведомлений администратору при приближении SMART-показателей к пороговым значениям

Само по себе наличие SMART-данных ещё не гарантирует безопасности инфраструктуры. Ключевым элементом мониторинга является своевременное уведомление администратора в момент, когда состояние диска начинает ухудшаться, но отказ ещё не произошёл.

Механизм уведомлений позволяет:

  • обнаружить деградацию накопителя на ранней стадии;
  • заранее спланировать замену диска;
  • избежать аварийного простоя и потери данных;
  • действовать в рамках регламентных окон обслуживания.

В smartmontools за отправку уведомлений отвечает демон smartd, который автоматически отслеживает изменения SMART-атрибутов и реагирует на отклонения от нормы.

Принцип работы уведомлений smartd

Демон smartd функционирует как фоновый сервис и выполняет следующие задачи:

  1. Периодически опрашивает SMART-атрибуты дисков.
  2. Сравнивает текущие значения с: заводскими порогами, предыдущими значениями (динамика изменений).
  3. Выявляет: рост критичных атрибутов, появление новых ошибок, сбои самотестов.
  4. Формирует уведомление и отправляет его администратору.

Требования для работы уведомлений

Перед настройкой необходимо убедиться в следующем:

  • в системе установлен и корректно настроен MTA (Postfix, Exim, Sendmail, ssmtp);
  • сервер способен отправлять исходящую почту;
  • определён адрес администратора для получения уведомлений.

Пример настройки ssmtp – легкого и простого MTA для отправки почты из системы.

Установка:

Debian/Ubuntu:

sudo apt update && sudo apt install ssmtp mailutils -y

RHEL:

sudo dnf install ssmtp mailx

Создайте файл конфигурации:

sudo nano /etc/ssmtp/ssmtp.conf

и отредактируйте содержимое:

# Default sender address [email protected] # SMTP server and port of your email provider mailhub=smtp.your-domain.com:587 # Alternative example: # mailhub=smtp.gmail.com:587 # For Gmail # Authentication credentials [email protected] AuthPass=your-password # Encryption settings UseSTARTTLS=YES # Use STARTTLS UseTLS=YES # Use TLS FromLineOverride=YES # Allow overriding the sender address # Hostname (specify your server's name) hostname=server1.your-domain.com # you can use hostname=localhost or specify the system's actual hostname

Сохраните файл и настройте права доступа:

sudo chmod 640 /etc/ssmtp/ssmtp.conf

sudo chown root:mail /etc/ssmtp/ssmtp.conf

Настройте отправителей (revaliases):

sudo nano /etc/ssmtp/revaliases

root:[email protected]:smtp.your-domain.com:587 www-data:[email protected]:smtp.your-domain.com:587

Для успешной отправки сообщений на сервере должны быть открыты порты: 587 (основной для отправки с шифрованием STARTTLS), или 25 (стандартный SMTP), 465 (защищенный SMTP с SSL), если они будут предусмотрены конфигурацией.

Базовая проверка отправки почты:

echo "SMART test message" | mail -s "SMART notification test" [email protected]

Можно явно указать от кого:

echo "SMART test message" | mail -s "SMART notification test" -a "From: [email protected]" [email protected]

Или через ssmtp напрямую:

echo "SMART test message" | ssmtp [email protected]

[email protected] – адрес получателя, куда будет отправлено сообщение.

Info

Если письмо не доставляется, дальнейшая настройка smartd не имеет смысла до устранения проблем с работой почты.

Конфигурация уведомлений SMART выполняется в файле:

/etc/smartd.conf

Пример простой рабочей конфигурации:

/dev/sda -a -o on -S on -m [email protected]

Параметры:

  • /dev/sda – диск, который находится под наблюдением;
  • -a – полный набор проверок;
  • -S on – включено сохранение атрибутов между перезагрузками;
  • -o on – активирован автоматический сбор офлайн-данных;
  • -m – уведомления отправляются на указанный email.

С этого момента smartd начнёт отслеживать состояние диска в фоновом режиме.

Уведомления при приближении к пороговым значениям

Ключевая особенность smartd заключается в том, что он отслеживает изменение значений атрибутов, а не только их критическое превышение.

На практике это означает, что уведомление может быть отправлено:

  • при первом появлении Current_Pending_Sector;
  • при увеличении Reallocated_Sector_Ct, даже если порог ещё не достигнут;
  • при обнаружении ошибок самотестов;
  • при деградации NVMe-параметров.

Наиболее значимые атрибуты раннего отказа:

  • Reallocated_Sector_Ct
  • Current_Pending_Sector
  • Offline_Uncorrectable
  • Media and Data Integrity Errors (NVMe)
  • Percentage Used (SSD/NVMe)

Даже минимальные изменения этих параметров должны рассматриваться как повод для внимания.

Использование самотестов как источника уведомлений

Для повышения информативности рекомендуется сочетать мониторинг атрибутов с регулярными самотестами.

Пример конфигурации с расписанием:

/dev/sda -a -o on -S on \ -s (S/../.././02|L/../../6/03) \ -m [email protected]

Логика работы:

  • ежедневно выполняется короткий тест;
  • раз в неделю – полный тест;
  • при любом сбое теста администратор получает уведомление.

Управление частотой и объёмом уведомлений

Чтобы избежать избыточных оповещений используется параметр -M once:

/dev/sda -a -m [email protected] -M once

В этом режиме:

  • уведомление отправляется при первом обнаружении проблемы;
  • повторные сообщения не дублируются до устранения причины.

Для тестирования системы уведомлений можно использовать -M test. Это позволяет убедиться, что smartd способен отправлять сообщения без ожидания реальной ошибки.

Заключение

В рамках данного мануала был последовательно рассмотрен полный цикл внедрения и эксплуатации smartctl и демона smartd как инструмента проактивного мониторинга состояния дисков. Были разобраны базовые принципы работы SMART, практические способы анализа атрибутов, запуск и интерпретация самотестов, особенности работы с NVMe-накопителями и RAID-контроллерами, а также методы диагностики и выявления первопричин проблем. Отдельное внимание уделено настройке уведомлений, позволяющих выявлять деградацию накопителей на ранних стадиях, ещё до наступления критического отказа.

Корректно настроенный мониторинг SMART является неотъемлемой частью надёжной серверной инфраструктуры и должен рассматриваться как обязательный эксплуатационный стандарт. Использование smartctl и smartd позволяет системному администратору перейти от реактивного устранения аварий к осознанному, управляемому обслуживанию дисковой подсистемы, снижая риски простоев, потери данных и внеплановых инцидентов, а также создавая прочную основу для дальнейшей автоматизации и интеграции с системами централизованного мониторинга.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA