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-администратора, управляющего физическим или виртуальным хранилищем — будь то на bare-metal сервере, выделенном сервере или локально подключённом дисковом массиве — 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. гостевым виртуальным машинам зависит от конфигурации гипервизора. В среде 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 vs. SSD vs. 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)Н/Д (управляется контроллером)
**Тепловой мониторинг**Temperature_Celsius (ID 194)Temperature_Celsius (ID 194)Temperature Sensor 1/2
**Резервная ёмкость**Н/ДAvailable_Reservd_Space (ID 232)Available Spare
**Ресурс записи**Н/ДTotal_LBAs_Written (ID 241)Data Units Written
**Механическое состояние**Spin_Retry_Count (ID 10)Н/ДН/Д
**Поддерживаемые типы тестов**Короткий, длинный, транспортировочный, выборочныйКороткий, длинный, выборочныйКороткий, длинный (зависит от производителя)
**Интерфейс для доступа к данным**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 vs. контроллер: Используйте `/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. на уровне гипервизора/хоста, а не внутри гостевых виртуальных машин
  • Сочетайте мониторинг 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
Начать