S.M.A.R.T. (англ. Self Monitoring Analysing and Reporting Technology) —
технология оценки состояния жёсткого диска встроенной аппаратурой
самодиагностики, а также механизм предсказания времени выхода его из
строя.
Мне было необходимо контролировать работу 4х SATA дисков на одном из
серверов с заблаговременным предупреждением о проблемах. Я
воспользовался замечательной утилитой
smartmontools.
Содержание:
Установка
# pkg_info |grep smartmontools
smartmontools-5.38_7 S.M.A.R.T. disk monitoring tools
bsd# make search name=smartmontools
Port: smartmontools-5.38_8
Path: /usr/ports/sysutils/smartmontools
Info: S.M.A.R.T. disk monitoring tools
Maint:
[email protected]
B-deps: gettext-0.17_1 gmake-3.81_3 libiconv-1.13.1
R-deps:
WWW: _
http://smartmontools.sourceforge.net
# cd /usr/ports/sysutils/smartmontools;make install clean
~~~~
smartmontools has been installed
To check the status of drives, use the following:
/usr/local/sbin/smartctl -a /dev/ad0 for first ATA drive
/usr/local/sbin/smartctl -a /dev/da0 for first SCSI drive
To include drive health information in your daily status reports,
add a line like the following to /etc/periodic.conf:
daily_status_smart_devices="/dev/ad0 /dev/da0"
substituting the appropriate device names for your SMART-capable disks.
To enable drive monitoring, you can use /usr/local/sbin/smartd.
A sample configuration file has been installed as
/usr/local/etc/smartd.conf.sample
Copy this file to /usr/local/etc/smartd.conf and edit appropriately
To have smartd start at boot
echo 'smartd_enable="YES"' >> /etc/rc.conf
===> Installing rc.d startup script(s)
===> Compressing manual pages for smartmontools-5.38_8
===> Registering installation for smartmontools-5.38_8
===> Cleaning for smartmontools-5.38_8
Диагностика SMART
Сначала вы убедитесь включен ли у вас SMART в BIOS и существует ли
поддержка этой технологии у нужного жесткого диска. Возьмем для примера
мой жеский диск
ad4. У вас наименование может быть
другим смотрите свой
dmesg -a.
# atacontrol cap ad4
Protocol SATA revision 2.x
device model SAMSUNG HD120IJ
serial number S0AEJ1OA103537
firmware revision ZL100-33
cylinders 16383
heads 16
sectors/track 63
lba supported 234441648 sectors
lba48 supported 234441648 sectors
dma supported
overlap not supported
Feature Support Enable Value Vendor
write cache yes yes
read ahead yes yes
Native Command Queuing (NCQ) yes - 31/0x1F
Tagged Command Queuing (TCQ) no no 31/0x1F
SMART yes yes
microcode download yes yes
security yes no
power management yes yes
advanced power management no no 0/0x00
automatic acoustic management yes no 0/0x00 254/0xFE
Как мы видим SMART включен. Теперь проверим данные жеского диска этой
утилитой.
# /usr/local/sbin/smartctl -a /dev/ad4
smartctl version 5.38 [i386-portbld-freebsd7.2] Copyright (C) 2002-8 Bruce Allen
Home page is _
http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Model Family: SAMSUNG SpinPoint P80 SD series
Device Model: SAMSUNG HD120IJ
Serial Number: S0AEJ1OA103537
Firmware Version: ZL100-33
User Capacity: 120 034 123 776 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 4a
Local Time is: Wed Oct 14 13:48:08 2009 MSD
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (2729) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 45) minutes.
SCT capabilities: (0x003f) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
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 0x000f 100 100 051 Pre-fail Always - 0
3 Spin_Up_Time 0x0007 100 100 025 Pre-fail Always - 6080
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 197
5 Reallocated_Sector_Ct 0x0033 253 253 010 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 253 253 051 Pre-fail Always - 0
8 Seek_Time_Performance 0x0025 253 253 015 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 24004
10 Spin_Retry_Count 0x0033 253 253 051 Pre-fail Always - 0
11 Calibration_Retry_Count 0x0012 253 002 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 177
190 Airflow_Temperature_Cel 0x0022 130 067 000 Old_age Always - 36
194 Temperature_Celsius 0x0022 130 067 000 Old_age Always - 36
195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 16044483
196 Reallocated_Event_Count 0x0032 253 253 000 Old_age Always - 0
197 Current_Pending_Sector 0x0012 253 253 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 253 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x000a 100 100 000 Old_age Always - 0
201 Soft_Read_Error_Rate 0x000a 100 100 000 Old_age Always - 0
202 TA_Increase_Count 0x0032 253 253 000 Old_age Always - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective Self-Test Log Data Structure Revision Number (0) should be 1
SMART Selective self-test log data structure revision number 0
Warning: ATA Specification requires selective self-test log data structure revision number = 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
Атрибуты SMART
Много информации, но вам необходимо внимательно изучить таблицу
Vendor
Specific SMART Attributes with Thresholds.
Для разбора, что к чему изучите вот этот документ:
Главным образом на работу жесткого диска влияют несколько важных
параметров в которых вы должны сразу определять проблему.
- Raw Read Error Rate - Частота появления ошибок при
чтении данных с диска. Данный параметр показывает частоту появления
ошибок при операциях чтения с поверхности диска по вине аппаратной части
накопителя.
- Reallocated Sectors Count - Количество
переназначенных секторов. Когда жесткий диск встречает ошибку
чтения/записи/верификации он пытается переместить данные из него в
специальную резервную область (spare area) и, в случае успеха, помечает
сектор как "переназначенный". Также, этот процесс называют remapping, а
переназначенный сектор - remap. Благодаря этой возможности, на
современных жестких дисках очень редко видны [при тестировании
поверхности] так называемые bad block. Однако, при большом количестве
ремапов, на графике чтения с поверхности будут заметны "провалы" -
резкое падение скорости чтения (до 10% и более). Поле raw value содержит
общее количество переназначенных секторов.
- UltraDMA CRC Error Count - Число ошибок,
возникающих при передаче данных по внешнему интерфейсу. (Менять шлейф)
Типы атрибутов:
- Pre-failure (PF). Если атрибут имеет этот тип, то
поле threshold атрибута содержит минимально допустимое значение
атрибута, ниже которого не гарантируется работоспособность накопителя и
резко увеличивается вероятность его выхода из строя.
- On-line collection (OC). Указывает, что значение
данного атрибута обновляется (вычисляется) во время выполнения on-line
тестов S.M.A.R.T. или же во время обоих видов тестов (on-line/off-line).
В противном случае, значение атрибута обновляется только при выполнении
off-line тестов.
- Performance related (PR). Указывает на то, что
значение этого атрибута напрямую зависит от производительности
накопителя по отдельным показателям (seek/throughput/etc. performance).
Обычно обновляется после выполнения self-test`ов SMART.
- Error rate (ER). Указывает на то, что значение
атрибута отражает относительную частоту ошибок по данному параметру (raw
read/write, seek, etc.).
- Events count (EC). Указывает на то, что атрибут
является счетчиком событий.
- Self-preserve (SP). Указывает на то, что значение
атрибута обновляется и сохраняется автоматически (обычно при каждом
старте накопителя и при выполнении тестов SMART).
Конфигурационный файл
Приступим к созданию конфигурационного файла:
# cd /usr/local/etc/
# cp smartd.conf.sample smartd.conf
# cat smartd.conf
# cat smartd.conf
Пример файла конфигурации для smartd. См. man smartd.conf.
# Домашняя страница: _
http://smartmontools.sourceforge.net
# $Id: smartd.conf,v 1.45 2006/11/12 23:39:04 dpgilbert Exp $
# smartd будет перечитывать конфигурационный файл, если он получает сигнал HUP
# signal
# Файл предоставляет список устройств для мониторинга используемого smartd,
# с одним устройством в каждой строке. Текст после решетки (#) игнорируется,
# и вы можете использовать пробелы и табуляцию для свободного пространства.
# Вы можете использовать '\' для продолжения линии.
# Вы можете определить, какие обычно жесткие дискови есть на компьютере,
# Заглянув в /proc/ide и /proc/scsi. (повеяло линусячиной =) )
# Переменная DEVICESCAN заставит игнорировать оставшиеся линий в этом
# конфигурационном файле: и укажет для smartd сканировать все
# ATA и SCSI устройств. DEVICESCAN может следовать любое из
# Для найденных устройств будут применены нижеперечисленные директивы.
# Для большинства пользователей рекомендуется закомментировать DEVICESCAN
# и четко вывести список устройств, которые вы хотели бы контролировать.
#DEVICESCAN
# Альтернативные настройки для игнорирования температуры и включения числа
# часов, проведённых во включенном состоянии записываемых отчетов в syslog.
#DEVICESCAN -I 194 -I 231 -I 9
# Альтернативные настройки отчетов с более полезным значений температуры
# записываемого в syslog
#DEVICESCAN -R 194 -R 231 -I 9
# Альтернативные настройки для отчетов значения изменения
# температуры >= 5 по Цельсию и мин/макс температуры.
#DEVICESCAN -I 194 -I 231 -I 9 -W 5
# Первый (primary) ATA/IDE жесткий диск. Следить за всеми атрибутами, позволяющие
# автоматически онлайново собирать данные, автоматическое автосохранение
# атрибутов, и запуском короткой самодиагностики каждый день с 2-3 утра
# , и полный тест в субботам с 3-4 утра.
#/dev/hda -a -o on -S on -s (S/../.././02|L/../../6/03)
# Мониторинг SMART статуса, ATA журнала ошибок, Self-Test
# (короткой самодиагностики) журнала, а также отслеживать
# изменения всех атрибутов, за исключением атрибута 194
#/dev/hdb -H -l error -l selftest -t -I 194
# Мониторинг всех атрибутов, кроме нормированной температуры (обычно 194),
# но отслеживать изменения температуры >= 4 по Цельсию, отчет температуры
# >= 45 по Цельсию, а изменения в Raw значения Reallocated_Sector_Ct (5).
# И отправлять письмо об отказах SMART или при температуре >= 55 по Цельсию.
#/dev/hdc -a -I 194 -W 4,45,55 -R 5 -m
[email protected]
# Диск ATA может выглядеть как устройства SCSI в операционной системе.
# Если к SCSI ATA перевода (SAT) слой между ОС и устройство, а затем
# Это может быть помечено "-d sat 'опцией. Эта ситуация может
# стать общей с дисками SATA в SAS и FC среды.
# /dev/sda -a -d sat
# Тихий тест. Рапортует лишь в случае, если SMART выдает
# ошибку. И шлёт рапорт на почту.
#/dev/hdc -H -C 0 -U 0 -m
[email protected]
# Первых два SCSI диска. Это будет следить за всем, что может smartd
# проверить. Начать расширенный тест по средам с 6-7 вечера и
# воскресенье 1-2.
#/dev/sda -d scsi -s L/../../3/18
#/dev/sdb -d scsi -s L/../../7/01
# Мониторинг 4х ATA дисков, подключенных к контроллеру 3Ware 6/7/8000 которая
# использует 3W-XXXX драйвер. Начало длинного теста по воскресеньям с 1-2,
# 2-3, 3-4 и 4-5 часов утра.
#/dev/sdc -d 3ware,0 -a -s L/../../7/01
#/dev/sdc -d 3ware,1 -a -s L/../../7/02
#/dev/sdc -d 3ware,2 -a -s L/../../7/03
#/dev/sdc -d 3ware,3 -a -s L/../../7/04
# Мониторинг 4х ATA дисков, подключенных к контроллеру 3Ware 9000, который
# использует 3W-9xxx драйвера (Linux, FreeBSD)
# Начало длинного теста по вторникам с 1-2 и 3-4 утра.
#/dev/twa0 -d 3ware,0 -a -s L/../../2/01
#/dev/twa0 -d 3ware,1 -a -s L/../../2/03
# То же самое для Windows. Опция "-d 3ware,N 'не является необходимым,
# Диск (порт) номер, указанный в имени устройства.
# ПРИМЕЧАНИЕ: В Windows DEVICESCAN работает также для контроллеров 3Ware.
#/dev/hdc,0 -a -s L/../../2/01
#/dev/hdc,1 -a -s L/../../2/03
# Мониторинг 3 ATA диски напрямую связано с HighPoint RocketRAID.
# Начало долгого теста по воскресеньям с 1-2, 2-3 и 3-4 утра.
#/dev/sdd -d hpt,1/1 -a -s L/../../7/01
#/dev/sdd -d hpt,1/2 -a -s L/../../7/02
#/dev/sdd -d hpt,1/3 -a -s L/../../7/03
# Мониторинг 2х ATA дисках, подключенных к той же PMPort которые связаны с
# HighPoint RocketRAID. Начало большого теста по вторникам между 1-2 и 3-4 м.
#/dev/sdd -d hpt,1/4/1 -a -s L/../../2/01
#/dev/sdd -d hpt,1/4/2 -a -s L/../../2/03
# Добавляем свои диски
/dev/ad0 -a -m
[email protected] -o on -S on -s (S/../.././22|L/../../6/23)
/dev/ad1 -a -m
[email protected] -o on -S on -s (S/../.././22|L/../../6/23)
# Вот список директив в этом файле конфигурации.
# См. smartd.conf и man для деталей
#
# -d TYPE Тип устройства: ata, scsi, marvell, removable, 3ware,N, hpt,L/M/N
# -T TYPE допустимое отклонение: normal, permissive
# -o VAL Включает/выключает автоматические оффлайн тесты (on/off)
# -S VAL Включает/выключает автосохранение атрибутов (on/off)
# -n MODE Не проверять. Один из режимов: never, sleep, standby, idle
# -H Мониторить SMART статус, уведомлять только при ошибках.
# -l TYPE Мониторить SMART логи. Режимы: error, selftest
# -f Монитор отказа для любых атрибутов 'Usage'
# -m ADD Письмо с варнингами на ADD для -H, -l error, -l selftest, and -f
# -M TYPE Изменение поведения отсыла е-майлов (см. ман)
# -s REGE Запустить тест когда дата совпадает с регулярным выражением (см. ман)
# -p Сообщать о изменениях в 'Prefailure' атрибутах
# -u ообщать о изменениях в 'Usage' атрибутах
# -t Эквивалентно -p и -u директивам
# -r ID Также сообщать 'RAW' значения атрибутов ID с -p, -u или -t
# -R ID Следить за изменениями в атрибуте ID 'Raw' значения -p, -u or -t
# -i ID Игнорировать атрибут ID для -f директивы
# -I ID Игнорировать атрибут ID для -p, -u или -t директивы
# -C ID Рапортовать если счётчик `ждущих` секторов не равен нулю
# -U ID Рапортовать если счётчик `некорректируемых` секторов не равен нулю
# -W D,I,C Monitor Temperature D)ifference, I)nformal limit, C)ritical limit
# -v N,ST Mодифицировать метку для атрибута N (для нестандартных атрибутов)
# -a Дефолт: эквивалентно -H -f -t -l error -l selftest -C 197 -U 198
# -F TYPE Для ошибок в прошивке. Значения: none, samsung
# -P TYPE Предустановки для диска: use, ignore, show, showall
# # Комментарии: текст после него игнорируется
# \ Продолжения строки
# Идентификатор атрибута является десятичное целое число 1 <= ID <= 255
# за исключением -C и -U, где ID = 0 выключает их.
# Все биты -d, -m и -M директивы реализуются только для устройств ATA.
Syslog и запуск
Настроим syslog:
# cat /etc/syslog.conf |grep smart
!smartd
*.* /var/log/smartd.log
Создадим лог файл:
# touch /var/log/smartd.log
Перезапустим syslog:
# killall -1 syslogd
Запустим smartmontools:
# /usr/local/etc/rc.d/smartd start
Starting smartd.
Проверим работу:
# ps -ax | grep smart
664 ?? I 0:00,02 /usr/local/sbin/smartd -p /var/run/smartd.pid --interval=400
3790 ?? I 0:00,01 smartd
9597 p0 S+ 0:00,00 grep smart
Включим запуск демона при запуски системы и включением проверки с
частотой опроса через 400 секунд:
# echo 'smartd_enable="YES"' >> /etc/rc.conf
# echo 'smartd_flags="--interval=400"' >> /etc/rc.conf
Посмотрим лог файл:
# tail -10 /var/log/smartd.log
Oct 14 14:21:35 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 130 to 124
Oct 14 14:26:35 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 124 to 130
Oct 14 14:26:35 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 124 to 130
Oct 14 14:30:54 bsd smartd[3790]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 124 to 130
Oct 14 14:30:54 bsd smartd[3790]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 124 to 130
Oct 14 14:30:54 bsd smartd[3790]: Device: /dev/ad6, SMART Usage Attribute: 194 Temperature_Celsius changed from 107 to 108
Oct 14 14:56:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 130 to 124
Oct 14 14:56:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 130 to 124
Oct 14 15:01:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 124 to 130
Oct 14 15:01:34 bsd smartd[664]: Device: /dev/ad4, SMART Usage Attribute: 194 Temperature_Celsius changed from 124 to 130
Заключение
Ну вот и все. Теперь жеские диски контролируются. И самое главное
поменьше вам писем от smartmontools ;).
специально для троллллеееейййй )
предыдущая статейка для вас , после чего переходите к этой )))
если что-то непонятно гугл в помощь и вики тоже помочь должна , товарищи привыкаем решать проблемы самостоятельно , как говорится хочешь кататься люби и саночки возить ))))
специально для дебилов пишу это копипаст )))))