мониторинг состояния дисков smartd
Применимость: Linux
Слова для поиска: smart, смарт, smartmontools
Задача:
Как заранее узнать что диск скоро умрет?
Решение:
Для таких задач можно использовать утилиты производителя контроллера дисков или универсальное средство - smartmontools
Пакет smartmontools состоит из двух утилит
- smartctl — просмотр текущих значений S.M.A.R.T., запуск тестов самодиагностики диска вручную;
- smartd — демон для записи в системный журнал изменений в значениях S.M.A.R.T., уведомления по электронной почте об ошибках, запуска тестов самодиагностики по расписанию
Информация о диске /dev/sda
smartctl -i /dev/sda
Поддержка S.M.A.R.T. может быть отключена, для включения нужна команда
smartctl -s on /dev/sda
Просмотр устройства /dev/sda
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 - частота ошибок при позиционировании блока головок;
Установка
Debian / Ubuntu
apt-get install smartmontools -y --force-yes
/etc/default/smartmontools
enable_smart="/dev/sda /dev/sdb" start_smartd=yes
/etc/init.d/smartmontools restart
Centos / Fedora Core / RHEL
yum install -y smartmontools
активировать smartd в /etc/smartd.conf
Отредактировать /etc/smartd.conf, закоментировать строку с DEVICESCAN; Для каждого диска добавить строчку, вида:
/dev/sda -a -s (S/../../(1|3|6)/01|L) -m myname@example.com -M diminishing
Значения параметров:
-a - включение большинства возможностей мониторинга: проверка «здоровья» диска, отслеживание изменений всех атрибутов, отслеживание неудачных тестов диагностики;
-s(S/../../(1|3|6)/01|L) - расписание запуска тестов диагностики диска в виде регулярного выражения. В данном случае: в 1 час ночи в понедельник, среду, субботу будет запускаться краткий тест диска;
-m root@example.com - email пользователя, который будет получать сообщения о ошибках дисков. Для функционирования должен быть настроен почтовый сервер;
-M diminishing - периодически повторять отправку письма с сообщениями об ошибке;
/etc/init.d/smartd start
Adaptec RAID
RAID Adaptec создаст массив с именем /dev/sda, но получить от этого устройства данные smart не получится средствами smartmonutils. Однако smartmonutils можно использовать указывая имена дисков вида /dev/sgX . sg0 - это сам контроллер, а вот sg1…sgN - это SAS жесткие диски
Использование smartd на LSI Megaraid
Получить список id
megacli -PDlist -a0 | grep '^Device Id:'| awk '{print $3}'
Получить данные смарт по диску с ID=9
smartctl /dev/sda -d megaraid,9 -a
для диска с интерфейсом sata
smartctl /dev/sda -d sat+megaraid,9 -a
пример срипта для получения данных о всех дисках
#!/bin/sh for arg in `megacli -PDlist -a0 | grep '^Device Id:'| awk '{print $3}'` do smartctl /dev/sda -d sat+megaraid,${arg} -l devstat #smartctl /dev/sda -d sat+megaraid,${arg} -a done
Для контроля состояния дисков с помощью демона smartd нужно закомментировать DEVICESCAN в /etc/smartd.conf и добавить:
/dev/sda -d sat+megaraid,0 -a -s L/../../3/02 /dev/sda -d sat+megaraid,1 -a -s L/../../3/03 /dev/sda -d sat+megaraid,2 -a -s L/../../3/04 /dev/sda -d sat+megaraid,3 -a -s L/../../3/05
Смотрите также:
Актуальность: 2012/11/19 11:43
<!–