smartctl та smartd: моніторинг стану дисків через S.M.A.R.T. | INTROSERV
EUR
european

EUR

usa

USD

Ukraine Ua
Ex. VAT Ex. VAT 0%

smartctl та smartd: моніторинг стану дисків через S.M.A.R.T.

Вступ

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 / моніторинг

Базова налаштування та використання 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