База знаний по Open Source
Авторизация
Поиск по базе знаний

S.M.A.R.T.-LogoПакет 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.