time

smartd: мониторинг состояния жесткого диска

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 говорит о периодичности проведения самодиагностики.

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

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

Дополнительное чтиво

blog comments powered by Disqus