smartd: мониторинг состояния жесткого диска
Размещено: 21-04-2015, 21:52 | Просмотров: 2314 | Комментариев: 0
S.M.A.R.T. — технология самодиагностики и предсказания возможного отказа жесткого диска.

Установка под ubuntu
sudo apt-get install smartmontools

# добавление в автозагрузку
sudo update-rc.d smartmontools defaults


Установка под CentOS
sudo yum install smartmontools

# добавление в автозагрузку
sudo chkconfig smartmontools on

Пакет smartmontools состоит из двух утилит командной строки

smartctl — просмотр текущих значений S.M.A.R.T., запуск тестов самодиагностики диска вручную;
smartd — демон для записи в системный журнал изменений в значениях S.M.A.R.T., уведомления по электронной почте об ошибках, запуска тестов самодиагностики по расписанию;
Информация о диске /dev/sda
sudo smartctl -i /dev/sda

Если S.M.A.R.T. отключен, то для включения нужно выполнить команду
sudo smartctl -s on /dev/sda

Просмотр значений S.M.A.R.T. для устройства /dev/sda
sudo smartctl -A /dev/sda


Существует 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 short /dev/sda

Т.к. тест запускается в фоне, то статус проверки можно узнать с помощью
sudo smartctl -l selftest /dev/sda

Журнал ошибок, произошедших во время работы диска
sudo smartctl -l error /dev/sda

Журнал тестов самодиагностики
sudo smartctl -l selftest /dev/sda


Для периодического тестирования дисков настроим демон smartd, для этого нужно
под Ubuntu: активировать smartd в /etc/default/smartmontools, задать настройки в /etc/smartd.conf, перезапустить демон sudo /etc/init.d/smartmontools restart;
под CentOS: активировать smartd в /etc/smartd.conf, задать настройки в /etc/smartd.conf, перезапустить демон sudo /etc/init.d/smartd restart;
Отредактируем файл /etc/default/smartmontools, удалив # перед start_smartd. Параметр smartd_opts отвечает за дополнительные опции для smartd, --interval говорит о периодичности проведения самодиагностики.

Настройка списка дисков для проверки и периодичности проверки:

отредактируем /etc/smartd.conf, закоментировав строку с DEVICESCAN;
для каждого диска добавить строчку, вида:
# sudo vim /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 /etc/init.d/smartmontools restart

Если возникли ошибки, то нужно смотреть лог /var/log/daemon.log.

Для проверки работы email-оповещения нужно в /etc/smartd.conf, вместо -M diminishing поставить -M test.

Для установки GUI нужно выполнить

sudo apt-get install gsmartcontrol