15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
08.10.2024

smartctl та smartmontools: Повний посібник з моніторингу стану дисків у Linux

smartctl — це основний інтерфейс командного рядка пакета smartmontools, призначений для запиту, тестування та інтерпретації даних S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology), вбудованих у прошивку HDD, SSD та NVMe-накопичувачів. Він безпосередньо взаємодіє з прошивкою накопичувача через інтерфейси ATA, SCSI або NVMe, щоб отримати необроблену діагностичну телеметрію, яку операційна система не надає через стандартні шляхи введення/виведення.

Для будь-якого Linux-адміністратора, який керує фізичним або віртуальним сховищем — чи то на виділеному сервері, Виділеному Сервері, чи то на локально підключеному дисковому масиві — smartctl є найнадійнішим інструментом для виявлення неминучого відмови накопичувача до того, як це призведе до невідновної втрати даних.

Що таке S.M.A.R.T. і чому це важливо

S.M.A.R.T. — це система моніторингу, вбудована практично в кожен споживчий та корпоративний пристрій зберігання даних, виготовлений після 1996 року. Вона працює на рівні прошивки, безперервно відстежуючи десятки внутрішніх параметрів: швидкість помилок читання/запису, показники механічного навантаження, рівні зносу NAND, кількість перерозподілених секторів та показники температури.

Критична відмінність, яку більшість посібників упускає: дані S.M.A.R.T. є прогностичними, а не реактивними. Накопичувач може пройти перевірку файлової системи та нормально обслуговувати введення/виведення, одночасно накопичуючи перерозподілені сектори зі швидкістю, яка статистично передбачає відмову протягом кількох тижнів. smartctl виявляє цей прихований стан деградації.

S.M.A.R.T. працює в трьох сімействах інтерфейсів зберігання:

  • ATA/SATA — оригінальна специфікація S.M.A.R.T., найбагатша за атрибутами
  • SCSI/SAS — використовує іншу модель атрибутів (сторінки журналу інформаційних винятків)
  • NVMe — надає дані про стан через журнал інформації про стан NVMe (Log Page 0x02), з такими показниками, як доступна резервна ємність, відсоток використання та небезпечні вимкнення

Встановлення smartmontools на Linux

Пакет smartmontools доступний в офіційних репозиторіях кожного основного дистрибутива Linux. Встановіть версію, відповідну для вашого середовища:

Debian / Ubuntu:

“`bash

sudo apt-get update && sudo apt-get install smartmontools

“`

CentOS / RHEL 7:

“`bash

sudo yum install smartmontools

“`

CentOS Stream / RHEL 8+ / AlmaLinux / Rocky Linux:

“`bash

sudo dnf install smartmontools

“`

Fedora:

“`bash

sudo dnf install smartmontools

“`

Arch Linux:

“`bash

sudo pacman -S smartmontools

“`

openSUSE:

“`bash

sudo zypper install smartmontools

“`

Після встановлення перевірте версію та підтвердьте наявність підтримки NVMe:

“`bash

smartctl –version

“`

Знайдіть `NVMe` у списку підтримуваних типів пристроїв. Версії до 6.6 мають неповну підтримку NVMe — на сучасних серверах з NVMe SSD переконайтеся, що ви використовуєте smartmontools 7.x або новішу версію.

Визначення пристроїв зберігання даних

Перед виконанням будь-якої команди smartctl визначте правильний вузол пристрою. Переплутати ідентифікатори пристроїв у багатодисковій системі — поширена та дорога помилка.

“`bash

lsblk -d -o NAME,SIZE,MODEL,TRAN

“`

Це виводить імена пристроїв разом із типом транспорту (sata, nvme, usb), що безпосередньо визначає, які прапорці smartctl вам знадобляться. Для NVMe-пристроїв вузол відображатиметься як `/dev/nvme0`, `/dev/nvme1` тощо — а не `/dev/sdX`.

Для апаратних RAID-контролерів (LSI MegaRAID, Adaptec, HP Smart Array) накопичувачі приховані за контролером і потребують явних прапорців наскрізного доступу, які розглядаються в розширеному розділі нижче.

Основні команди smartctl

Перегляд інформації про ідентифікацію пристрою

“`bash

sudo smartctl -i /dev/sda

“`

Це запитує сторінку IDENTIFY DATA пристрою та повертає номер моделі, серійний номер, версію прошивки, ємність, розмір сектора (512-байтний логічний проти 4096-байтного фізичного — важливо для вирівнювання) та прапорці можливостей S.M.A.R.T. Для NVMe-пристроїв:

“`bash

sudo smartctl -i /dev/nvme0

“`

Виконання повної оцінки стану

“`bash

sudo smartctl -H /dev/sda

“`

Повертає однорядковий вердикт: `PASSED` або `FAILED`. Результат `FAILED` означає, що власна прошивка накопичувача визначила, що один або кілька критичних порогів було перевищено. Накопичувач, що повідомляє FAILED, слід вважати несправним — не чекайте подальшого підтвердження.

Однак результат `PASSED` не означає, що накопичувач справний. Це лише означає, що жоден поріг формально не перевищено. Саме тому аналіз необроблених атрибутів є необхідним.

Відображення всіх атрибутів S.M.A.R.T.

“`bash

sudo smartctl -A /dev/sda

“`

Це найбільш інформативна команда в повсякденному використанні. Таблиця виводу містить кілька стовпців, які потребують точної інтерпретації:

СтовпецьЗначення
**ID#**Ідентифікатор атрибута (залежить від виробника, але багато стандартизовано)
**ATTRIBUTE_NAME**Зрозуміла людині назва
**FLAG**Бітова маска, що вказує тип атрибута (передвідмовний або інформаційний)
**VALUE**Нормалізоване значення (зазвичай 0–253); нижче — гірше для більшості атрибутів
**WORST**Найнижче значення VALUE, зафіксоване за весь час роботи накопичувача
**THRESH**Поріг, нижче якого накопичувач оголошує відмову
**TYPE**Передвідмовний (критичний) або Old_age (інформаційний)
**RAW_VALUE**Фактично виміряна величина в рідних одиницях

RAW_VALUE — це те, що слід аналізувати насамперед. Нормалізована система VALUE/WORST/THRESH корисна для автоматичного виявлення порогів, але може вводити в оману — деякі виробники використовують нестандартні криві нормалізації.

Повний вивід: комбінування прапорців

Для повної картини в одній команді об’єднайте прапорці інформації, стану та атрибутів:

“`bash

sudo smartctl -a /dev/sda

“`

Прапорець у нижньому регістрі `-a` еквівалентний `-H -i -c -A -l error -l selftest`. Це стандартна команда для діагностики незнайомого накопичувача.

Для ще більш детального виводу, включаючи всі сторінки журналу:

“`bash

sudo smartctl -x /dev/sda

“`

Критичні атрибути S.M.A.R.T. та їх інтерпретація

Не всі атрибути S.M.A.R.T. мають однакову діагностичну вагу. Нижче наведено атрибути, які досвідчені інженери зі зберігання даних розглядають як основні індикатори відмови:

Індикатори відмови високого пріоритету

Reallocated_Sector_Ct (ID 5)

Кількість секторів, які накопичувач перемістив до резервної зони через помилки читання/запису/перевірки. Будь-яке ненульове значення на накопичувачі віком до двох років потребує негайної уваги. Постійно зростаюча кількість — навіть від 1 до 5 протягом місяця — є сильним предиктором неминучої відмови. На корпоративних накопичувачах невелика кількість може бути прийнятною залежно від специфікації виробника.

Current_Pending_Sector (ID 197)

Сектори, позначені як нестабільні та очікуючі на перерозподіл. Ці сектори виробляли помилки під час читання, але ще не були успішно перерозподілені. Ненульове значення тут означає, що накопичувач активно намагається прочитати дані. Якщо очікуючий сектор згодом успішно записується, він може бути перерозподілений або очищений — але базовий носій є підозрілим.

Uncorrectable_Sector_Count (ID 198) / Offline_Uncorrectable

Сектори, які не вдалося виправити за допомогою ECC та не вдалося перерозподілити. Це найсерйозніший атрибут. Ненульове значення тут означає, що дані вже були втрачені з цих секторів. Негайне резервне копіювання та заміна накопичувача — єдина відповідна реакція.

Reported_Uncorrect (ID 187)

На сучасних накопичувачах це підраховує помилки, які внутрішній ECC накопичувача не зміг виправити. Високі значення вказують на серйозну деградацію носія.

Spin_Retry_Count (ID 10)

Для HDD — повторні невдачі при розкручуванні пластин до робочої швидкості. Вказує на механічне навантаження на шпиндельний двигун або підшипники. Будь-яке ненульове значення на накопичувачі під великим навантаженням є тривожним сигналом.

Command_Timeout (ID 188)

Кількість команд, що перервалися через тайм-аут. Підвищені значення часто вказують на проблеми з інтерфейсом (кабель, контролер або подача живлення), а не на відмову носія — але вони також можуть передувати повній відмові накопичувача.

Атрибути вторинного моніторингу

Raw_Read_Error_Rate (ID 1)

Часто неправильно інтерпретується: на накопичувачах Seagate цей атрибут має дуже високе необроблене значення за задумом, оскільки він представляє відношення, закодоване в 48-бітному полі. Необроблене значення кількох мільйонів на накопичувачі Seagate є нормальним. На накопичувачах Western Digital та інших виробників необроблене значення має бути близьким до нуля. Завжди звіряйтеся з документацією виробника, перш ніж бити тривогу за цим атрибутом.

Power_On_Hours (ID 9)

Загальна кількість годин роботи. Споживчі HDD зазвичай розраховані на 20 000–25 000 годин (приблизно 2–3 роки безперервної роботи). Корпоративні накопичувачі розраховані на 55 000+ годин. Використовуйте це для контекстуалізації інших значень атрибутів.

Temperature_Celsius (ID 194)

Поточна температура накопичувача. Оптимальний діапазон робочих температур для більшості HDD становить 25–45°C. Тривала температура вище 55°C прискорює знос підшипників та деградацію магнітного носія. Для SSD теплова стійкість загалом вища, але тривала температура вище 70°C прискорить знос NAND. На серверах без належного повітряного потоку — поширена проблема в щільних стійкових розгортаннях — теплове дроселювання може маскуватися як затримка введення/виведення до того, як атрибут температури перетне будь-який формальний поріг.

Wear_Leveling_Count (ID 177) / Media_Wearout_Indicator (ID 233)

Атрибути, специфічні для SSD, що відстежують споживання ресурсу NAND. Коли нормалізоване значення VALUE наближається до значення THRESH, SSD наближається до свого номінального ресурсу запису. Плануйте заміну завчасно.

Power_Cycle_Count (ID 12)

Часте циклічне вмикання/вимикання живлення спричиняє механічне навантаження на HDD (паркування/розпаркування головок, навантаження на шпиндельний двигун) і, меншою мірою, електричне навантаження на SSD. Незвично висока кількість відносно Power_On_Hours може вказувати на нестабільне середовище живлення.

Виконання діагностичних самотестів

Самотести S.M.A.R.T. виконуються власною прошивкою накопичувача, а не операційною системою. Накопичувач продовжує обслуговувати введення/виведення під час тестування (з незначним впливом на продуктивність), що робить ці тести безпечними для запуску на виробничих системах.

Короткий самотест

“`bash

sudo smartctl -t short /dev/sda

“`

Тривалість: зазвичай 1–5 хвилин. Тестує електричні та механічні компоненти та невеликий відсоток поверхні диска. Корисний для швидкої перевірки. Перегляньте результати після завершення:

“`bash

sudo smartctl -l selftest /dev/sda

“`

Довгий самотест (розширений тест)

“`bash

sudo smartctl -t long /dev/sda

“`

Тривалість: пропорційна ємності накопичувача — очікуйте 1 годину на терабайт для типового HDD зі швидкістю 7200 RPM та 20–60 хвилин для більшості SSD. Виконує повне сканування поверхні кожного сектора. Це остаточний тест для виявлення поганих секторів по всій поверхні носія.

Відстежуйте прогрес без очікування завершення:

“`bash

sudo smartctl -c /dev/sda

“`

Вивід включає відсоток завершення та розрахунковий час закінчення.

Конвеєрний самотест

“`bash

sudo smartctl -t conveyance /dev/sda

“`

Доступний на більшості ATA-накопичувачів. Призначений для виявлення пошкоджень, отриманих під час транспортування або фізичного поводження. Перевіряє наявність проблем, спричинених механічним ударом. Тривалість зазвичай становить 5 хвилин. Цей тест недооцінений — він особливо цінний при введенні в експлуатацію нового обладнання або після фізичного переміщення сервера.

Вибірковий самотест

“`bash

sudo smartctl -t select,0-1000000 /dev/sda

“`

Дозволяє тестувати конкретний діапазон LBA, а не весь накопичувач. Незамінний, коли перевірки файлової системи виявили помилки в конкретній області, і вам потрібно підтвердити, чи відповідальний за це базовий носій.

Моніторинг стану NVMe

NVMe-накопичувачі використовують принципово іншу модель атрибутів. Основна команда перевірки стану:

“`bash

sudo smartctl -a /dev/nvme0

“`

Ключові поля, специфічні для NVMe, які слід відстежувати:

  • Available Spare: Відсоток залишкових резервних блоків NAND. Нижче 10% потребує планування заміни.
  • Available Spare Threshold: Визначений виробником поріг, нижче якого накопичувач може повідомляти про знижену надійність.
  • Percentage Used: Розрахунковий відсоток використаного номінального ресурсу запису. При 100% накопичувач досяг свого номінального TBW (Terabytes Written) — він може продовжувати функціонувати, але гарантії надійності більше не діють.
  • Data Units Read / Written: Сукупний обсяг введення/виведення в одиницях по 512 000 байт. Корисно для розрахунку фактичного навантаження порівняно з номінальним TBW.
  • Media and Data Integrity Errors: Невиправлені помилки носія або помилки цілісності даних, виявлені контролером NVMe. Будь-яке ненульове значення є серйозним.
  • Number of Error Information Log Entries: Кількість записів у журналі помилок. Швидко зростаюча кількість вказує на постійні проблеми.
  • Power State: Поточний стан живлення NVMe — актуально для навантажень, чутливих до затримки, де накопичувач може перебувати в режимі глибокого енергозбереження.

Апаратний RAID та наскрізний доступ

Коли накопичувачі підключені через апаратний RAID-контролер, ОС бачить віртуальний диск контролера, а не фізичні накопичувачі. smartctl вимагає явного наскрізного доступу для безпосереднього звернення до прошивки накопичувача.

LSI MegaRAID:

“`bash

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

sudo smartctl -a /dev/sda -d megaraid,1

“`

HP Smart Array (драйвер hpsa):

“`bash

sudo smartctl -a /dev/sda -d cciss,0

“`

3ware RAID:

“`bash

sudo smartctl -a /dev/twa0 -d 3ware,0

“`

Якщо ви не впевнені, який тип наскрізного доступу використовувати, smartctl може спробувати автоматичне визначення:

“`bash

sudo smartctl –scan

“`

Це сканує всі виявлені пристрої зберігання та виводить рекомендований шлях до пристрою та прапорець типу для кожного.

Увімкнення та вимкнення S.M.A.R.T.

S.M.A.R.T. увімкнено за замовчуванням практично на всіх сучасних накопичувачах. У рідкісних випадках — зазвичай на старих накопичувачах або в певних віртуалізованих середовищах — він може бути вимкнений:

“`bash

sudo smartctl -s on /dev/sda

“`

Для вимкнення (не рекомендується, крім конкретних сценаріїв тестування):

“`bash

sudo smartctl -s off /dev/sda

“`

Примітка: у віртуалізованих середовищах, таких як KVM або VMware, наскрізна передача S.M.A.R.T. до гостьових VM залежить від конфігурації гіпервізора. У середовищі VPS Хостингу гіпервізор зазвичай абстрагує фізичний накопичувач, і smartctl всередині гостьової системи може повертати обмежені дані або не повертати їх взагалі. Для повного доступу до S.M.A.R.T. потрібен моніторинг на рівні фізичного хоста або Виділений Сервер.

Автоматизований моніторинг за допомогою smartd

Демон smartd є компонентом виробничого рівня пакета smartmontools. Він працює у фоновому режимі, періодично опитуючи накопичувачі та виконуючи заплановані тести, а потім сповіщаючи адміністраторів про перевищення порогів або виникнення помилок тестування.

Налаштування /etc/smartd.conf

Конфігурація за замовчуванням відстежує всі виявлені накопичувачі з базовими налаштуваннями. Конфігурація, загартована для виробничого середовища, виглядає так:

“`

Monitor all ATA/SCSI/NVMe drives with full attribute checking

Run short test every day at 02:00, long test every Saturday at 03:00

Email alert on any failure or attribute change

DEVICESCAN -a -o on -S on

-s (S/../.././02|L/../../6/03)

-m admin@yourdomain.com

-M exec /usr/share/smartmontools/smartd-runner

“`

Пояснення ключових директив:

ДирективаФункція
`DEVICESCAN`Автоматичне виявлення всіх підтримуваних накопичувачів
`-a`Увімкнути всі перевірки S.M.A.R.T.
`-o on`Увімкнути автоматичний збір офлайн-даних
`-S on`Увімкнути автозбереження атрибутів
`-s (S/../.././HHL/../../D/HH)`Планування коротких (S) та довгих (L) тестів
`-m email@domain`Надсилати сповіщення електронною поштою на цю адресу
`-M exec script`Виконати скрипт при сповіщенні (для власних сповіщень)
`-d removable`Не генерувати помилку, якщо пристрій відсутній під час запуску

Увімкнення та запуск smartd

“`bash

sudo systemctl enable smartd

sudo systemctl start smartd

sudo systemctl status smartd

“`

Перевірте, що демон активно здійснює моніторинг:

“`bash

sudo journalctl -u smartd -f

“`

Налаштування сповіщень електронною поштою

Для роботи сповіщень smartd електронною поштою система потребує працюючого MTA (агента передачі пошти). На мінімальних серверних інсталяціях встановіть та налаштуйте `postfix` або `msmtp` для ретрансляції. Якщо ви використовуєте виділену поштову інфраструктуру, розгляньте можливість поєднання сповіщень smartd з належно налаштованим сервісом Хостингу Електронної Пошти, щоб забезпечити доставку сповіщень без блокування спам-фільтрами.

Порівняння атрибутів S.M.A.R.T.: HDD проти SSD проти NVMe

Категорія атрибутаHDD (SATA)SSD (SATA)NVMe SSD
**Основний індикатор відмови**Reallocated_Sector_Ct (ID 5)Reallocated_Sector_Ct (ID 5)Media and Data Integrity Errors
**Відстеження ресурсу**Power_On_Hours (ID 9)Wear_Leveling_Count (ID 177)Percentage Used
**Очікуючі погані сектори**Current_Pending_Sector (ID 197)Current_Pending_Sector (ID 197)N/A (керується контролером)
**Тепловий моніторинг**Temperature_Celsius (ID 194)Temperature_Celsius (ID 194)Temperature Sensor 1/2
**Резервна ємність**N/AAvailable_Reservd_Space (ID 232)Available Spare
**Ресурс запису**N/ATotal_LBAs_Written (ID 241)Data Units Written
**Механічний стан**Spin_Retry_Count (ID 10)N/AN/A
**Підтримувані типи тестів**Short, Long, Conveyance, SelectiveShort, Long, SelectiveShort, Long (залежить від виробника)
**Інтерфейс для доступу до даних**ATA SMART READ DATAATA SMART READ DATANVMe Log Page 0x02

Практичний робочий процес: діагностика підозрілого накопичувача

Коли накопичувач виявляє симптоми — помилки введення/виведення в `dmesg`, пошкодження файлової системи, незвична затримка — дотримуйтесь цієї діагностичної послідовності:

Крок 1: Підтвердьте доступність S.M.A.R.T.

“`bash

sudo smartctl -i /dev/sda | grep -i "SMART support"

“`

Крок 2: Перевірте загальний вердикт стану

“`bash

sudo smartctl -H /dev/sda

“`

Крок 3: Перегляньте журнал помилок

“`bash

sudo smartctl -l error /dev/sda

“`

Журнал помилок записує останні 5 помилок ATA з мітками часу та адресами LBA. Зіставте адреси LBA з картами блоків файлової системи за допомогою `debugfs` або `xfs_db`, щоб визначити, чи впливають помилки на критичні структури файлової системи.

Крок 4: Проаналізуйте критичні атрибути

“`bash

sudo smartctl -A /dev/sda | grep -E "Reallocated|Pending|Uncorrectable|Command_Timeout"

“`

Крок 5: Запустіть короткий тест для негайного підтвердження

“`bash

sudo smartctl -t short /dev/sda

sleep 120

sudo smartctl -l selftest /dev/sda

“`

Крок 6: Якщо короткий тест пройдено, а симптоми зберігаються, запустіть довгий тест під час вікна технічного обслуговування

“`bash

sudo smartctl -t long /dev/sda

“`

Крок 7: Перегляньте журнал самотестування на наявність адрес LBA з помилками

“`bash

sudo smartctl -l selftest /dev/sda

“`

Невдалі тести повідомляють LBA першої виявленої помилки. Це точно визначає місце пошкодження носія.

Поширені помилки та граничні випадки

Накопичувачі, підключені через USB: smartctl часто не може зв’язатися з накопичувачами, підключеними через адаптери USB-to-SATA, оскільки мікросхема USB-моста не пересилає команди ATA. Використовуйте прапорець `-d sat` або `-d usb`, або явно вкажіть тип моста (наприклад, `-d usb,0x0bc2,0x2312`). Прапорець `–scan` спробує автоматично визначити правильний тип.

Віртуалізовані середовища: Всередині гостьової системи KVM або VMware `/dev/sda` є віртуальним диском. smartctl може повертати `Device does not support SMART` або синтезовані дані, передані гіпервізором. Не покладайтеся на вивід smartctl всередині гостьової системи для оцінки стану фізичного накопичувача на інфраструктурі спільного хостингу.

Хибні спрацьовування для Raw_Read_Error_Rate: Як зазначено вище, кодування цього атрибута Seagate призводить до тривожних необроблених значень, які є цілком нормальними. Завжди перевіряйте документацію виробника щодо атрибутів, перш ніж діяти на основі цього значення.

Накопичувачі за програмним RAID (mdadm): smartctl звертається безпосередньо до компонентних накопичувачів (`/dev/sda`, `/dev/sdb`), а не до пристрою RAID (`/dev/md0`). Відстежуйте кожен накопичувач-член окремо.

Простір імен NVMe проти контролера: Використовуйте `/dev/nvme0` (контролер) для даних про стан, а не `/dev/nvme0n1` (простір імен/блоковий пристрій). Деякі версії smartctl приймають обидва, але вузол контролера є авторитетним для доступу до журналу стану.

Накопичувачі, що «брешуть»: Деякі споживчі SSD, зокрема накопичувачі з NAND нижчого рівня QLC, задокументовано повідомляють про справні атрибути S.M.A.R.T. аж до повної та раптової відмови. S.M.A.R.T. є сильним індикатором, але не гарантією — він не замінює регулярне резервне копіювання.

Розгортання smartmontools у серверних середовищах

Для адміністраторів, які керують кількома фізичними серверами — наприклад, тими, що запускають навантаження на Виділених Серверах — централізація моніторингу S.M.A.R.T. є необхідною. Розгляньте таку архітектуру:

  • Prometheus + node_exporter: `node_exporter` включає скрипт збирача текстових файлів `smartmon`, який експортує атрибути S.M.A.R.T. як метрики Prometheus. Це дозволяє налаштувати сповіщення через Alertmanager та візуалізацію на дашбордах Grafana.
  • Nagios / Icinga2: Плагін `check_smart` забезпечує інтеграцію моніторингу S.M.A.R.T. для традиційних стеків моніторингу.
  • Власні скрипти smartd: Директива `-M exec` у smartd.conf може запускати будь-який скрипт при сповіщенні — корисно для інтеграції з PagerDuty, вебхуками Slack або власними системами обробки заявок.
  • Агрегація журналів: Налаштуйте smartd для запису в syslog, а потім пересилайте до централізованого агрегатора журналів (стек ELK, Loki) для аналізу історичних тенденцій по всьому парку.

Для середовищ веб-хостингу з використанням панелей керування розгортання VPS з cPanel виграють від моніторингу S.M.A.R.T. на рівні хоста, налаштованого постачальником інфраструктури, оскільки cPanel сам по собі не надає дані про стан накопичувача.

Контрольний список ключових висновків

Використовуйте це як довідник перед розгортанням та для поточної операційної діяльності:

  • Встановіть smartmontools 7.x або новішу версію, щоб забезпечити повну підтримку NVMe та сучасних SSD
  • Запустіть `smartctl –scan` на новому обладнанні для визначення всіх накопичувачів та необхідних прапорців інтерфейсу
  • Спочатку перевірте вердикт стану `-H` — результат `FAILED` вимагає негайних дій незалежно від інших атрибутів
  • Розглядайте будь-яке ненульове значення Reallocated_Sector_Ct, Current_Pending_Sector або Uncorrectable_Sector_Count як сигнал відмови — не чекайте зростання кількості
  • Не покладайтеся виключно на Raw_Read_Error_Rate — перевіряйте документацію виробника перед тим, як бити тривогу
  • Плануйте автоматизовані довгі тести щотижня через smartd для всіх виробничих накопичувачів; короткі тести — щодня
  • Налаштуйте сповіщення smartd електронною поштою та перевірте доставку перед тим, як покладатися на них
  • Для апаратного RAID завжди використовуйте відповідний прапорець наскрізного доступу — моніторинг віртуального диска не є еквівалентом моніторингу фізичних накопичувачів
  • У віртуалізованих середовищах виконуйте моніторинг S.M.A.R.T. на рівні гіпервізора/хоста, а не всередині гостьових VM
  • Поєднуйте моніторинг S.M.A.R.T. зі стратегією резервного копіювання — S.M.A.R.T. передбачає відмову, але не запобігає втраті даних
  • Для NVMe-накопичувачів відстежуйте Available Spare та Percentage Used на додаток до кількості помилок
  • На серверах з кількома накопичувачами інтегруйте smartd з централізованою платформою сповіщень, а не покладайтеся на локальну доставку електронної пошти

Часті запитання

Чи працює smartctl всередині VPS або хмарного екземпляра?

У більшості середовищ VPS гіпервізор надає гостьовій системі віртуальний блоковий пристрій. smartctl всередині гостьової системи або не поверне даних, або поверне дані, синтезовані гіпервізором, які не відображають фактичний стан фізичного накопичувача. Значущий моніторинг S.M.A.R.T. вимагає доступу до фізичного хоста. Для повної видимості на рівні накопичувача Виділений Сервер є відповідним рішенням.

У чому різниця між `smartctl -a` та `smartctl -x`?

Прапорець `-a` виводить стандартний набір даних S.M.A.R.T.: інформацію про пристрій, вердикт стану, прапорці можливостей, всі атрибути, журнал помилок та журнал самотестування. Прапорець `-x` виводить все, що надає `-a`, плюс додаткові сторінки журналу, включаючи журнал вибіркового самотестування, журнал статистики пристрою, журнал очікуваних дефектів та статистику пристрою ATA — надаючи більш повну картину історії накопичувача. Використовуйте `-x` для ретельної діагностики; `-a` — для рутинних перевірок.

Скільки часу займає довгий самотест і чи безпечно його запускати на виробничому накопичувачі?

Тривалість залежить від ємності та швидкості накопичувача: приблизно 1 година на терабайт для HDD зі швидкістю 7200 RPM та 20–60 хвилин для більшості SSD. Тест виконується у фоновому режимі прошивки накопичувача, і накопичувач продовжує обслуговувати введення/виведення під час тесту. Вплив на продуктивність зазвичай незначний (зниження пропускної здатності на 5–15%). Його безпечно запускати на виробничих системах у періоди низького трафіку, але для навантажень, чутливих до затримки, рекомендується планувати під час вікна технічного обслуговування.

Що означає, коли Current_Pending_Sector ненульовий, але Reallocated_Sector_Ct не збільшився?

Накопичувач виявив сектори, які виробляють помилки читання, але ще не перерозподілив їх успішно. Перерозподіл відбувається, коли накопичувач може записати в сектор — або через операцію запису, або через офлайн-сканування. Якщо кількість залишається незмінною, сектори можуть знаходитися в регіоні лише для читання, або накопичувач може не мати доступних резервних секторів для перерозподілу. Ненульова та зростаюча кількість Current_Pending_Sector при незмінному Reallocated_Sector_Ct часто вказує на те, що накопичувач вичерпав свій пул резервних секторів — критичний стан відмови.

Чи може smartctl виявити знос SSD до відмови накопичувача?

Так, для SATA SSD атрибути Wear_Leveling_Count (ID 177), Media_Wearout_Indicator (ID 233) та Available_Reservd_Space (ID 232) відстежують споживання ресурсу NAND. Для NVMe SSD поля Percentage Used та Available Spare в журналі інформації про стан NVMe слугують тій самій меті. Коли Available Spare опускається нижче свого порогу або Percentage Used досягає 100%, накопичувач вичерпав свій номінальний ресурс запису. На відміну від раптових механічних відмов, деградація зносу SSD є поступовою та добре передбачуваною — що робить її одним із найсильніших варіантів використання проактивного моніторингу S.M.A.R.T.

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати