! Работает с жесткими дисками, которые поддерживают технологию SMART !
smartmontools состоит из двух утилит:
- smartctl — (Control and Monitor Utility for SMART Disks) — так сказать, интерактивная часть;
- smartd — (SMART Disk Monitoring Daemon) — демон.
smartctl
Справка smartctl:
smartctl -h
Сканировать и вывести список дисков и их тип:
smartctl --scan
Получить информацию о диске, такую как модель, серийный номер:
smartctl -i /dev/ada0
Краткая общая информация о здоровье диска:
smartctl -H /dev/ada0
Посмотреть всю информацию об устройстве:
smartctl -x /dev/ada0
Посмотреть всю SMART-информацию:
smartctl -a /dev/ada0
Посмотреть SMART-атрибуты диска:
smartctl -A /dev/ada0
SMART-тесты
Работа с тестами самодиагностики.
В один момент времени может выполняться только один тест. Тесты не пересекаются с деятельностью диска, поэтому можно их запускать на рабочей системе.
Запуск короткого теста (длится пару минут):
smartctl -t short /dev/ada0
Запуск длинного теста (десятки минут, до часа):
smartctl -t long /dev/ada0
Отменить тест:
smartctl -X
Просмотр результата теста:
smartctl -l selftest /dev/ada0
SMART-атрибуты
# smartctl -A /dev/ada0
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0027 100 253 021 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 1
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 121
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 1
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 0
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 2
194 Temperature_Celsius 0x0022 111 109 000 Old_age Always - 32
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0
Поля атрибутов SMART
ID — идентификатор атрибута, однозначно определяет атрибут.
ATTRIBUTE_NAME — имя атрибута, расшифровка ID.
VALUE — текущее значение атрибута. Чем меньше — тем хуже. Измеряется в «попугаях». Сравнивается со значением TRESHOLD:
- VALUE > TRESHOLD — диск считает, что он здоров;
- VALUE < или = TRESHOLD — бьем тревогу;
- VALUE не достиг уровня TRESHOLD, но упорно уменьшается — атрибут деградирует — тоже пора задуматься о замене диска.
WORST — наихудшее значение VALUE атрибута за всю жизнь диска. Измеряется в «попугаях».
TRESHOLD — пороговое (критическое) значение VALUE для атрибута. Измеряется в «попугаях».
TYPE — тип атрибута:
- Pre-fail — критичный
- Old_age — некритичный
WHEN_FAILED — «когда выйдет из строя»:
- «FAILED_NOW» — опасно;
- » — » — с атрибутом все в порядке.
RAW_VALUE — реальное значение атрибута (не в «попугаях») — в зависимости от атрибута значение:
- текущее (например, температура -Temperature_Celsius);
- накапливающее (какой-либо счетчик, например, Power_Cycle_Count).
VALUE вычисляется исходя из RAW_VALUE по определенным алгоритмам, которые задает производитель.
Атрибуты SMART
* жирным шрифтом выделены атрибуты, требующие особого внимания
- (1) Raw_Read_Error_Rate — содержит частоту возникновения ошибок при чтении с диска по вине аппаратной части накопителя;
- (3) Spin_Up_Time — содержит время разгона шпинделя диска из состояния покоя до номинальной скорости (например, от 0 до 7200 об/мин);
- (4) Start_Stop_Count — полное число запусков/остановов диска;
- (5) Reallocated_Sector_Ct — содержит кол-во секторов, переназначенных диском в резервную область — операция Remapping — считаются только удачные попытки. Ключевой параметр в оценке состояния диска;
- (7) Seek_Error_Rate — частота появления ошибок позиционирования БМГ; указывает на проблемы в механике диска;
- (9) Power_On_Hours — число часов проведенных во включенном состоянии (накапливающий);
- (10) Spin_Retry_Count — число попыток старта шпинделя диска, если первая попытка была неудачной;
- (11) Calibration_Retry_Count — число попыток рекалибровки накопителя — сброс состояния диска и установка головок на нулевую дорожку;
- (12) Power_Cycle_Count — число полных циклов включения-отключения диска;
- (192) Power-Off_Retract_Count — для разных винчестеров либо суммарное кол-во парковок БМГ в аварийных ситуациях, либо суммарное кол-во включения-выключения питания диска (в WD, Hitachi);
- (193) Load_Cycle_Count — кол-во полных циклов парковки БМГ;
- (194) Temperature_Celsius — температура диска;
- (196) Reallocated_Event_Count — кол-во операций переназначения — Remapping — учитываются удачные и неудачные попытки;
- (197) Current_Pending_Sector — текущее кол-во нестабильных секторов — кандидаты на Remapping;
- (198) Offline_Uncorrectable — параметр изменяется только при offline-тестировании, которое диск запускает при простое; содержит секторы-кандидаты на Remapping;
- (199) UDMA_CRC_Error_Count — кол-во ошибок при передаче по интерфейсному кабелю в режиме UltraDMA от материнской платы контроллеру диска; Причины — некачественный шлейф, плохой контакт в SATA-разъеме;
- (200) Multi_Zone_Error_Rate — частота появления ошибок при записи данных;
smartd
Конфигурационный файл:
/usr/local/etc/smartd.conf
Автоматическое сканирование системы в поисках ATA и SCSI:
DEVICESCAN
может запускаться с набором нужных директив, которые будут применены ко всем найденым дискам. Например:
DEVICESCAN -I 194 -I 231 -I 9
Описание директив конфигурационного файла smartd можно найти в smartd.conf.sample и в ‘man smartd.conf’.
Многие люди предпочитают вручную указывать диски, которые хочется мониторить. Для этого необходимо закоментировать DEVICESCAN и указать диски.
Пример:
/dev/ada0 -a -o on -S on -s (S/../.././02|L/../../6/03) -I 194 -W 4,45,55 -R 5 -m admin@provoip.in.ua
/dev/ada1 -a -o on -S on -s (S/../.././02|L/../../6/03) -I 194 -W 4,45,55 -R 5 -m admin@provoip.in.ua
В данном примере указаны два жестких диска — ada0 и ada1. Используемые директивы:
-a Default: то же, что и набор директив «-H -f -t -l error -l selftest -C 197 -U 198»:
-H — мониторинг SMART Health Status, сообщает если статус FAILED;
-f — мониторинг на ошибки (FAILED) любого из используемых атрибутов (поле SMART-атрибута WHEN_FAILED);
-t — то же, что и набор директив «-p -u»:
-p рассказывать об изменениях в «Pre-fail»-атрибутах;
-u рассказывать об изменениях в «Old_age»-атрибутах;
-l error — мониторить SMART-логи error;
-l selftest — мониторить SMART-логи selftest;
-C 197 — «197» — это ID атрибута — RAW_VALUE Current_Pending_Sector — сообщать при ненулевом значении;
-U 198 — «198» — это ID атрибута — RAW_VALUE Offline_Uncorrectable — сообщать при ненулевом значении;
-o on — enable автоматические offline-тесты;
-S on — enable attribute autosave;
-s (S/../.././02|L/../../6/03) — стартовать selftest’ы, когда выполняется регулярное выражение. В данном примере заданы несколько выражений, разделенных условием «или», поэтому ставим круглые скобки.
Регулярное выражение представляет собой следующую конструкцию:
T/MM/DD/d/HH
T — тип теста — Short, Long, Conveyance или Offline, MM — месяц, DD — день, d — день недели, HH — час.
S/../.././02 — запускать короткий (S) тест каждый день после 2-х часов ночи;
L/../../6/03 — запускать длинный (L) тест каждую субботу (день недели — 6) после 3-х часов ночи.
-I 194 — игнорировать изменения атрибута 194 — Temperature_Celsius;
-W 4,45,55 — мониторинг изменения температуры на 4 градуса, 45 — informal лимит, 55 — критический лимит;
-R 5 — отследить изменения в атрибуте 5 — Reallocated_Sector_Ct;
-m admin@provoip.in.ua — отправить warning email на admin@provoip.in.ua для -H, -l error, -l selftest, и -f
Другие директивы для smartd.conf:
* взято из /usr/local/etc/smartd.conf.sample
-d TYPE Set the device type: ata, scsi, marvell, removable, 3ware,N, hpt,L/M/N
-T TYPE set the tolerance to one of: normal, permissive
-o VAL Enable/disable automatic offline tests (on/off)
-S VAL Enable/disable attribute autosave (on/off)
-n MODE No check. MODE is one of: never, sleep, standby, idle
-H Monitor SMART Health Status, report if failed
-l TYPE Monitor SMART log. Type is one of: error, selftest
-f Monitor for failure of any 'Usage' Attributes
-m ADD Send warning email to ADD for -H, -l error, -l selftest, and -f
-M TYPE Modify email warning behavior (see man page)
-s REGE Start self-test when type/date matches regular expression (see man page)
-p Report changes in 'Prefailure' Normalized Attributes
-u Report changes in 'Usage' Normalized Attributes
-t Equivalent to -p and -u Directives
-r ID Also report Raw values of Attribute ID with -p, -u or -t
-R ID Track changes in Attribute ID Raw value with -p, -u or -t
-i ID Ignore Attribute ID for -f Directive
-I ID Ignore Attribute ID for -p, -u or -t Directive
-C ID Report if Current Pending Sector count non-zero
-U ID Report if Offline Uncorrectable count non-zero
-W D,I,C Monitor Temperature D)ifference, I)nformal limit, C)ritical limit
-v N,ST Modifies labeling of Attribute N (see man page)
-a Default: equivalent to -H -f -t -l error -l selftest -C 197 -U 198
-F TYPE Use firmware bug workaround. Type is one of: none, samsung
-P TYPE Drive-specific presets: use, ignore, show, showall
# Comment: text after a hash sign is ignored
# \ Line continuation character
# Attribute ID is a decimal integer 1 <= ID <= 255
# except for -C and -U, where ID = 0 turns them off.
# All but -d, -m and -M Directives are only implemented for ATA devices
#
# If the test string DEVICESCAN is the first uncommented text
# then smartd will scan for devices /dev/hd[a-l] and /dev/sd[a-z]
# DEVICESCAN may be followed by any desired Directives.
Sources:
man smartctl
man smartd.conf
http://www.ixbt.com/storage/hdd-smart-testing.shtml
http://rtfm.co.ua/s-m-a-r-t-proverka-hdd-opisanie-atributov-znachenie-atributov-utility-parametry/
http://www.wandmagic.ru/news/178.html
http://www.lexpr.ru/node/336