
Пакет 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
Информация о диске /dev/sda
# smartctl -i /dev/sdasmartctl 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/sdasmartctl 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 в /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.