Пакет smartmontools состоит из двух утилит (smartctl и smartd), которые контролируют и следят за системными накопителями используя самопроверку, анализ и систему технологического отчёта (S.M.A.R.T.), встроенную в большинство современных ATA и SCSI жёстких дисков. Этот пакет основан на коде пакета smartsuite и включает поддержку ATA/ATAPI6 дисков.
Smartmontools состоит из двух утилит:
- smartctl — Control and Monitor Utility for SMART Disks. Поддерживает многие ATA-3 и более поздние ATA, IDE, SATA и SCSI-3 диски. Представляет собой консоль для просмотра параметров SMART диска и запуска тестов в ручную. Используется для однократного тестирования жестких дисках.
- smartd — пытается включить SMART monitoring на ATA устройствах (аналогично smartctl -s on) и будет опрашивать устройства каждые 30 минут (это конфигурируемо), логирует ошибки дисков и изменения атрибутов. Используется для автономного мониторинга.
Пакет smartmontools присутствует в стандартных репозиториях Ubuntu/Mint и устанавливается очень просто:
$ sudo apt-get install smartmontools
Утилита smartctl
Информация о диске /dev/sda
# smartctl -i /dev/sda
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-97-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate Barracuda 7200.8 Device Model: ST3400832A Serial Number: 5NF14NZ3 Firmware Version: 3.03 User Capacity: 400 088 457 216 bytes [400 GB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: ATA/ATAPI-7 (minor revision not indicated) Local Time is: Tue Oct 31 17:43:46 2017 MSK SMART support is: Available - device has SMART capability. SMART support is: Enabled
Если S.M.A.R.T. отключен (SMART support is: Disabled), то для включения нужно выполнить команду
# smartctl -s on /dev/sda
Но при этом нужно убедиться, что диск поддерживает технологию SMART:
SMART support is: Available - device has SMART capability.
Просмотр значений S.M.A.R.T. для устройства /dev/sda
# smartctl -A /dev/sda
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-97-generic] (local build) Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 047 045 006 Pre-fail Always - 215938486 3 Spin_Up_Time 0x0003 097 097 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 099 099 020 Old_age Always - 1612 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 073 060 030 Pre-fail Always - 22295258 9 Power_On_Hours 0x0032 025 025 000 Old_age Always - 66274 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 099 099 020 Old_age Always - 1651 194 Temperature_Celsius 0x0022 062 064 000 Old_age Always - 62 (0 17 0 0 0) 195 Hardware_ECC_Recovered 0x001a 047 045 000 Old_age Always - 215938486 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 202 Data_Address_Mark_Errs 0x0032 100 253 000 Old_age Always - 0
Существует 2 типа атрибутов (колонка TYPE)
- критичные атрибуты (pre-fail);
- некритичные атрибуты (old_age);
Критичные атрибуты:
- Raw Read Error Rate — частота ошибок при чтении данных с диска;
- Reallocated Sector Count — число операций переназначения секторов;
- Spin Up Time — время раскрутки пакета дисков из состояния покоя до рабочей скорости;
- Spin Up Retry Count — число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной;
- Seek Error Rate — частота ошибок при позиционировании блока головок;
Быстрый опрос диска на предмет живучести, с предсказанием отказа диска в ближайшие 24 часа
$sudo smartctl -H /dev/sda
Список поддерживаемых тестов и примерное время на каждый текст
$sudo smartctl -c /dev/sda
Запуск теста на проверку читаемости секторов
$sudo smartctl -t /dev/sda
Провести быстрый тест здоровья жесткого диска
# smartctl -H /dev/sda
Выполнить расширенные встроенные тесты для диска /dev/sda.
$sudo smartctl --test=long /dev/sda
Команду можно использовать на работающей системе. Для просмотра результатов выполнения тестов используется команда вывода внутреннего журнала после завершения теста
$sudo smartctl -l selftest /dev/sda
Для просмотра всех возможностей
$sudo smartctl -h
Утилита (демон) smartd
Для периодического тестирования дисков настроим демон smartd, для этого нужно: активировать smartd в /etc/default/smartmontools, задать настройки в /etc/smartd.conf, перезапустить демон sudo /etc/init.d/smartmontools restart;
Отредактируем файл /etc/default/smartmontools, удалив # перед start_smartd. Параметр smartd_opts отвечает за дополнительные опции для smartd, —interval говорит о периодичности проведения самодиагностики.
Настройка списка дисков для проверки и периодичности проверки: отредактируем /etc/smartd.conf, закоментировав строку с DEVICESCAN
для каждого диска добавить строчку, вида:
# sudo nano /etc/smartd.conf /dev/sda -a -s (S/../../(1|3|6)/01|L) -m root@example.com -M diminishing
Описание используемых опций
- -a — включение большинства возможностей мониторинга: проверка «здоровья» диска, отслеживание изменений всех атрибутов, отслеживание неудачных тестов диагностики;
- -s (S/../../(1|3|6)/01|L) — расписание запуска тестов диагностики диска в виде регулярного выражения. В данном случае: в 1 час ночи в понедельник, среду, субботу будет запускаться краткий тест диска;
- -m root@example.com — email пользователя, который будет получать сообщения о ошибках дисков. Для функционирования должен быть настроен почтовый сервер;
- -M diminishing — периодически повторять отправку письма с сообщениями об ошибке;
После внесения правок в /etc/smartd.conf перезапустим демон, под ubuntu
$sudo service smartmontools restart
Если возникли ошибки, то нужно смотреть лог /var/log/daemon.log.
Для проверки работы email-оповещения нужно в /etc/smartd.conf, вместо -M diminishing поставить -M test.