S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технология самоконтроля, анализа и отчётности) — технология оценки состояния жёсткого диска, а также механизм предсказания времени выхода его из строя.
В FreeBSD для этого есть smartmontools
1. Обновляем порты, как это сделать, читаем здесь…
2. Устанавливаем:
# cd /usr/ports/sysutils/smartmontools/ && make install clean
3. Для запуска демона, вносим следующие строки в /etc/rc.conf:
smartd_enable="YES" smartd_flags="--interval=300"
Флаг указывает на логирование и интервал опроса.
4. Настраиваем логирование, для этого ближе к началу /etc/syslog.conf, добавляем следующую строку:
# ee /etc/syslog.conf
!smartd *.* /var/log/smartd.log
Создаем файл лога:
# touch /var/log/smartd.log
Перезапускаем:
# /etc/rc.d/syslogd restart
Настроим ротацию лога, для этого правим /etc/newsyslog.conf:
# ee /etc/newsyslog.conf
/var/log/smartd.log 644 2 500 * JC
5. Смотрим дефолтовый файл на предмет примеров и основных параметров:
# less /usr/local/etc/smartd.conf.sample
Подробности смотрим в # man smartd и # man smartd.conf. Ниже приведены ключи и значения: -d задать тип устройства: ata, scsi, marvell, removable, 3ware,N, hpt,L/M/N -T задать тип допустимых отклонений: normal, permissive -o VAL включить/выключить автоматические автономные тесты (on/off) -S VAL включить/выключить атрибуты автосохранения (on/off) -n MODE Без проверок. MODE может принимать значения: never, sleep, standby, idle -H Наблюдать за статусом SMART, сообщать о возникших проблемах -l TYPE Наблюдение за логом SMART. Значения: error, selftest -f Наблюдение за отказами в любых значениях 'Usage' атрибутов -m ADD Отправить предупреждение по e-mail для опций -H, -l error, -l selftest, и -f -M TYPE Изменить способы отправки e-mail предупреждений (man) -s REGE Начать самотестирование когда тип/дата соответствуют регулярному выражению (man) -p Сообщать об изменениях в атрибутах 'Prefailure' -u Сообщать об изменениях в атрибутах 'Usage' -t Равнозначно опциям -p и -u -r ID Так же сообщать Raw значение атрибута ID включая -p, -u или -t -R ID Отслеживать изменения в ID Raw значения включая -p, -u или -t -i ID Игнорировать значения ID для -f опции -I ID Игнорировать значения ID для -p, -u или -t опций -C ID Сообщать о том, что текущий (счетчик ждущих секторов) Pending Sector count не равен 0 -U ID Сообщать если (счетчик неисправленных секторов) Uncorrectable count не равен 0 -W D,I,C Наблюдение за температурой D)ifference , I)nformal limit, C)ritical limit -v N,ST измененить метку для параметра N (man) -a по умолчанию: эквивалентно параметрам -H -f -t -l error -l selftest -C 197 -U 198 -F TYPE для ошибок в прошивке. Значение одно из: none, samsung -P TYPE Представление специфических устройств: use, ignore, show, showall
Создаем свой конфиг:
# touch /usr/local/etc/smartd.conf
Смотрим, какие HDD есть в системе
# fdisk -v
После того, как определили, какие HDD присутствуют в системе указываем их в /usr/local/etc/smartd.conf:
/dev/ada0 -a -I 194 -W 4,45,55 -R 5 -H -l error -l selftest -m [email protected] -o on -S on -s (S/../.././02|L/../../6/03)
Расшифровка:
-s (S/../.././02|L/../../6/03)
Запуск короткого теста самодиагностики каждый день между 2-3 ночи, и запуск полного теста в субботу между 3-4 часами ночи.
-I 194 -W 4,45,55 -R 5
Отслеживать все параметры кроме температуры (194). Но отслеживать изменения температуры на величину больше или равно 4 градуса Цельсия, сообщать о температуре больше или равно 45 градусов Цельсия и изменении значения Reallocated_Sector_Ct (Очень важный параметр, показывает, сколько на диске переназначенных секторов. Исправный накопитель имеет raw-значение, равное 0. Если значение более 50 — явные проблемы и диск необходимо заменить.) Отправлять e-mail сообщение, когда температура больше или равна 55 градусов Цельсия.
6. Сохраняем файл и запускаем:
# /usr/local/etc/rc.d/smartd start
Смотрим, запустился ли он:
# ps waux | grep smart root 96914 0.0 0.0 30528 0 - IW - 0:00.00 /usr/local/sbin/smartd --interval=300 -c /usr/local/etc/smartd.conf -p /var/run/smartd.pid
Проверяем лог:
# tail -f /var/log/smartd.log
Должны быть записи, примерно такие:
Jan 3 10:13:29 alexnettm smartd[67754]: Device: /dev/ada0, opened Jan 3 10:13:29 alexnettm smartd[67754]: Device: /dev/ada0, WDC WD3000JS-00PDB0, S/N:WD-WCAPD2008297, FW:21.00M21, 300 GB Jan 3 10:13:29 alexnettm smartd[67754]: Device: /dev/ada0, found in smartd database: Western Digital Caviar SE Serial ATA Jan 3 10:13:29 alexnettm smartd[67754]: Device: /dev/ada0, enabled SMART Attribute Autosave. Jan 3 10:13:29 alexnettm smartd[67754]: Device: /dev/ada0, enabled SMART Automatic Offline Testing. Jan 3 10:13:29 alexnettm smartd[67754]: Device: /dev/ada0, is SMART capable. Adding to "monitor" list. Jan 3 10:13:29 alexnettm smartd[67754]: Monitoring 1 ATA and 0 SCSI devices Jan 3 10:13:29 alexnettm smartd[67754]: Device: /dev/ada0, initial Temperature is 42 Celsius (Min/Max ??/42) Jan 3 10:13:29 alexnettm smartd[67756]: smartd has fork()ed into background mode. New PID=67756. Jan 3 10:13:29 alexnettm smartd[67756]: file /var/run/smartd.pid written containing PID 67756
7. Еще пара моментов, FreeBSD присылает ежедневные отчеты состояния на почту, чтобы добавить сообщения о SMART HDD, нужно прописать в /etc/periodic.conf (если нет файла, то нужно создать и дать права 444) следующую строку:
daily_status_smart_devices="/dev/ada0"
Ну и последний момент, речь выше шла о настройке демона, но ни что не мешает просмотреть состояние SMART HDD вручную, на текущий момент, делается это следующей командой:
smartctl -a /dev/ada0
Если выдает сообщение, что SMART выключен, включаем его
smartctl -s on /dev/ada0
и повторяем предыдущую команду. Вывод приводить не буду, он слишком большой, следует обратить внимание на строку:
SMART overall-health self-assessment test result: PASSED
которая говорит о том, что тест прошел. Смотрим значения важных атрибутов, сравниваются столбцы VALUE (низкое число, говорит о высокой вероятности выхода из строя) и THRESH (пороговое значение, сравнивается с value).
Источник http://unixa.ru/software/kontroliruem-smart-hdd-s-otchetom-na-e-mail.-na-primere-freebsd-i-debian-ubuntu.html