Мониторинг S.M.A.R.T. hdd во FreeBSD

Задача мониторить состояние S.M.A.R.T. жестких дисков. Для этой задачи будем использовать пакет «smartmontools».

Собираем smartmontools

cd /usr/ports/sysutils/smartmontools

make install clean

Сообщение в конце установки

To check the status of drives, use the following:

/usr/local/sbin/smartctl -a /dev/ad0 for first ATA/SATA drive
/usr/local/sbin/smartctl -a /dev/da0 for first SCSI drive
/usr/local/sbin/smartctl -a /dev/ada0 for first SATA 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

Проверяем статус жесткого диска:

/usr/local/sbin/smartctl -a /dev/ada0

Если поддержка SMART отключена необходимо её включить командой:

smartctl -s on /dev/ada0

Для автоматического запуска демона при загрузке системы, добавляем соответствующую строку в /etc/rc.conf :

echo ‘smartd_enable=»YES»‘ >> /etc/rc.conf

Устанавливаем интервал проверки каждые 400 секунд:

echo ‘smartd_flags=»—interval=400″‘ >> /etc/rc.conf

Копируем конфигурационный файл smartd.conf

сp /usr/local/etc/smartd.conf.sample /usr/local/etc/smartd.conf

Содержимое smartd.conf :

/dev/ada0 -a -m root@xaxatyxa.ru -o on -S on -s (S/../.././02|L/../../7/03)

описание:

-o on — включает автоматическое off-line тестирование
-S on — включает автозапись атрибутов
-m root@xaxatyxa.ru — e-mail куда отсылать warning сообщения
-a — мониторить все SMART параметры диска
-s (S/…/…/./02|L/…/…/7/03) — короткий тест самодиагностики каждый день с 2-3 утра и полный тест в воскресение с 3-4 утра

настрйки syslog для smartmontools

echo ‘!smartd’ >> /etc/syslog.conf
echo ‘*.* /var/log/smartd.log’ >> /etc/syslog.conf

Создадим для демона smartd лог файл

touch /var/log/smartd.log

Перезапустим syslog:

service syslogd restart

Запускаем smartmontools:

service smartd start

Проверим работу:

ps -ax | grep smart

Для вывода SMART информации диска ada0

smartctl -A /dev/ada0

где критичными параметрами являются «Pre-fail» из колонки «TYPE». Old_age — величина value отведенная вендором до наработки на отказ.

Каждый атрибут имеет величину — «Value», которая изменяется в диапазоне от 0 до 255 (задается производителем). Низкое значение говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше значение Value атрибута, тем лучше.

Raw Value — это значение атрибута во внутреннем формате производителя. Оставим для сервисных центров.

Threshold — минимальное возможное значение атрибута, при котором гарантируется безотказная работа накопителя.

Если VALUE стало меньше THRESH — Атрибут считается failed и отображается в столбце WHEN_FAILED. При значении атрибута меньше Threshold очень вероятен сбой в работе или полный отказ.

WORST — минимальное нормализованное значение, которое достигалось с момента включения SMART на диске.

Выход критически важного параметра (Pre-fail) за пределы Threshold фактический означает выход диска из строя, выход за предел допустимых значений не критически важного параметра свидетельствует о наличии проблемы, но диск может сохранять свою работоспособность.

В итоге получаем два правила, определяющие работоспособность HDD
1.VALUE стало меньше THRESH в Pre-fail — диск скоро вылетит, осталось 24 часа для замены. Время пошло !
2.VALUE стало меньше THRESH в Old_age — выработан ресурс. Рекомендуется замена в ближайшее время !

Описание параметров

Raw_Read_Error_Rate — частота ошибок при чтении данных с диска, от аппаратной части диска
Spin_Up_Time — время раскрутки пакета дисков из состояния покоя до рабочей скорости
Start_Stop_Count — полное число запусков/остановок шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold.
Reallocated_Sector_Ct — число операций переназначения секторов. SMART в современных дисках способен произвести анализ сектора на стабильность работы «на лету» и в случае признания его сбойным, произвести его переназначение.
Seek_Error_Rate — частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др.
Power_On_Hours — число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MTBF).
Spin_Retry_Count — число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной.
Calibration_Retry_Count — счетчик перекалибровки положения головок винта (тож штука не приятная, проявляется в виде постукивание при работе)
Power_Cycle_Count — Количество полных циклов запуска/останова жесткого диска.
Power-Off_Retract_Count — Количество повторов автоматической парковки блока магнитных головок в результате выключения питания.
Load_Cycle_Count — Количество циклов перемещения блока магнитных головок в парковочную область.
Temperature_Celsius — Здесь хранятся показания встроенного термодатчика. Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах).
Reallocated_Event_Count — Число операций переназначения. В поле «raw value» атрибута хранится общее число попыток переноса информации с переназначенных секторов в резервную область. Учитываются как успешные, так и неуспешные попытки.
Current_Pending_Sector — Число секторов, являющихся кандидатами на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.
Offline_Uncorrectable — означает то же самое, что и атрибут Current_Pending_Sector, но отличие в том, что данный атрибут содержит количество секторов-кандидатов, обнаруженных при одном из видов самотестирования диска — оффлайн-тестировании, которое диск запускает в простое в соответствии с параметрами, заданными прошивкой
UDMA_CRC_Error_Count — число ошибок, возникающих при передаче данных по внешнему интерфейсу.
Multi_Zone_Error_Rate — Показывает общее количество ошибок, происходящих при записи сектора. Показывает общее число ошибок записи на диск. Может служить показателем качества поверхности и механики накопителя.

Примеры применения команды smartctl:

Температура жесткого диска

smartctl -a /dev/ada0 | grep «Temperature»

Статус S.M.A.R.T.

smartctl -H /dev/sda

•PASSED — тест прошел, жив.
•FAILED — диск требует срочной замены

частично взято: http://xaxatyxa.ru/_freebsd/monitoring-diagnostika-hdd-smart-freebsd.html