Проверка состояния SSD и HDD в Linux с помощью smartctl

Если вы системный администратор и отвечаете за Linux-серверы в дата‑центре, регулярно проверять состояние SSD и HDD обязательно. Раннее обнаружение проблем позволяет заменить диск до возникновения потерь данных. Для диагностики в Linux обычно применяют smartctl (из пакета smartmontools) и графические утилиты вроде gnome-disks. smartctl даёт подробные данные: ошибки, температуру, самотесты и общий статус.
Кому это нужно
- Системным администраторам
- Операторам дата‑центра
- DevOps‑инженерам, которые отвечают за доступность хранилища
Пререквизиты
- Сервер или рабочая станция под управлением Linux.
- Доступ root или возможность запускать команды через sudo.
- Рекомендуется наличие регулярного бэкапа перед вмешательствами.
Установка smartctl
Smartctl входит в репозитории большинства дистрибутивов. Команды выполняются от root; если вы в обычном аккаунте, добавьте sudo к командам.
Для Debian/Ubuntu:
apt install smartmontools -yДля RHEL/CentOS/Fedora:
dnf install smartmontoolsПосле установки включите и запустите демон smartd:
systemctl start smartdПроверить статус службы:
systemctl status smartdПример вывода, который стоит ожидать (сохранён оригинальный формат):
? smartmontools.service - Self Monitoring and Reporting Technology (SMART) Daemon
Loaded: loaded (/lib/systemd/system/smartmontools.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-07-02 08:58:33 UTC; 11s ago
Docs: man:smartd(8)
man:smartd.conf(5)
Main PID: 1042 (smartd)
Status: "Next check of 0 devices will start at 09:28:33"
Tasks: 1 (limit: 2353)
Memory: 1.2M
CGroup: /system.slice/smartmontools.service
??1042 /usr/sbin/smartd -n
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Device: /dev/sda, opened
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Device: /dev/sda, [QEMU QEMU HARDDISK 2.5+], 53.6 GB
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Device: /dev/sda, IE (SMART) not enabled, skip device
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Try 'smartctl -s on /dev/sda' to turn on SMART features
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Device: /dev/sdb, opened
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Device: /dev/sdb, [AN Volume 2.5+], S/N: sdb, 53.6 GB
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Device: /dev/sdb, IE (SMART) not enabled, skip device
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Try 'smartctl -s on /dev/sdb' to turn on SMART features
Jul 02 08:58:33 ubuntu2404 smartd[1042]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 0 NVMe devices
Jul 02 08:58:33 ubuntu2404 systemd[1]: Started Self Monitoring and Reporting Technology (SMART) Daemon.Important: перед любыми тестами убедитесь, что на диске есть актуальная резервная копия. Некоторые тесты могут увеличивать нагрузку на диск.
Включение SMART на диске
Прежде чем запускать тесты, включите SMART для устройства (пример для /dev/sda):
smartctl -s on /dev/sdaДля NVMe или специфичных контроллеров могут понадобиться другие параметры - smartctl поддерживает ключ -d для указания драйвера (например, -d nvme).
Получение общей информации о диске
Чтобы получить основные сведения о диске:
smartctl -i /dev/sdaПример вывода показывает модель, серийный номер, ёмкость, поддержку SMART и текущий статус.
Быстрый (short) тест
Короткий тест проверяет электрические и базовые механические свойства, чтение и верификацию небольших блоков:
smartctl -t short -a /dev/sdaВывод будет содержать секцию READ SMART DATA и строку:
SMART overall-health self-assessment test result: PASSEDЧтобы увидеть журнал самотестов:
smartctl -l selftest /dev/sdaДлинный (extended) тест
Длинный тест проверяет всё, что входит в короткий тест, плюс полное сканирование поверхности (время зависит от размера диска):
smartctl -t long -a /dev/sdaВ выводе будет указано рекомендуемое время выполнения (например, “Please wait 107 minutes for test to complete”).
Остановить запущенный тест можно так:
smartctl -X /dev/sdaБыстрые команды для операторов
- Проверить общий статус:
smartctl -d ata -H /dev/sda- Уточнить оценки времени и возможности:
smartctl -c /dev/sda- Показать журнал ошибок:
smartctl -l error /dev/sda- Справка по smartctl:
smartctl --helpКак интерпретировать результаты
- “PASSED” в строке overall-health обычно означает, что SMART не зарегистрировал критических сбоев. Это не гарантия будущей надёжности.
- Обратите внимание на показания атрибутов (Reallocated_Sector_Ct, Current_Pending_Sector, Wear_Leveling_Count для SSD). Рост переаллокаций или ожидающих секторов — повод планировать замену.
- Проверяйте температуру — постоянный перегрев ускоряет деградацию.
Когда SMART может не помочь
- SMART не всегда предсказывает внезапные аппаратные отказы.
- Повреждения электроники контроллера диска могут происходить без явных SMART‑атрибутов.
- RAID‑контроллеры иногда скрывают физические устройства; проверяйте доступность SMART через контроллер (или используйте vendor‑утилиты).
Мини‑методология для регулярных проверок
- Еженедельно: запускать smartctl -H для всех дисков и проверять температуру и ключевые атрибуты.
- Ежемесячно: запускать короткие тесты (smartctl -t short) и проверять журнал самотестов.
- Ежеквартально или при подозрении: запускать полный тест (smartctl -t long) в окно обслуживания.
- На событие: при росте ошибок — незамедлительно извлечь диск, восстановить данные из бэкапа и заменить носитель.
Чеклист для системного администратора
- Установлен smartmontools на всех серверах с локальными дисками.
- Демон smartd запущен и настроен для оповещений (mail или syslog).
- Регулярные проверки SMART включены в план мониторинга (Zabbix/Prometheus/остальные).
- Документированы действия при обнаружении ухудшения атрибутов.
Роли и обязанности
- Системный администратор: установка, планирование тестов, проверка логов и замена дисков.
- Оператор: мониторинг оповещений и передача инцидента на администрирование.
- DevOps: интеграция проверки в CI/CD и панель мониторинга, автоматизация оповещений.
Краткий глоссарий
- SMART: технология самоконтроля, диагностики и отчётности дисков.
- smartd: демон, который периодически опрашивает устройства SMART.
- smartctl: утилита командной строки для взаимодействия с SMART.
- ATA/NVMe: интерфейсы для подключения дисков; для NVMe используйте -d nvme при необходимости.
Примерная логика принятия решения (flowchart)
flowchart TD
A[Получено оповещение или плановая проверка] --> B{SMART overall-health}
B -->|PASSED| C[Проверить ключевые атрибуты]
B -->|FAILED| D[Планировать замену и восстановление из бэкапа]
C --> E{Критичные атрибуты в норме}
E -->|Да| F[Отметить как проверено]
E -->|Нет| D
D --> G[Извлечь диск, заменить, восстановить]
G --> H[Документировать инцидент]Примеры конфигурации smartd (быстро)
Добавьте в /etc/smartd.conf правило для оповещений по почте (пример без конкретных адресов):
/dev/sda -a -o on -S on -s (S/../.././04|L/../../6/03) -m rootЭто пример; настройте в соответствии с локальными политиками и почтовой инфраструктурой.
Note: smartd.conf поддерживает гибкие расписания и фильтры. Тестируйте конфигурацию в тестовой среде прежде чем разворачивать в проде.
Заключение
В этой инструкции вы узнали, как установить и использовать smartctl для проверки состояния SSD и HDD в Linux: включить SMART, получить информацию о диске, запустить короткие и длинные тесты, читать журналы ошибок и принимать решения о замене дисков. Настройте регулярные проверки и интегрируйте оповещения в вашу систему мониторинга, чтобы уменьшить риск неожиданных отказов.
Краткие рекомендации: регулярно проверяйте диски, автоматизируйте оповещения, имейте свежие бэкапы и план выхода из инцидента.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента