Smart-hdd-monitoring-linux
Материал из Ksimute
Коробанов СергейДекабрь 07, 2007
Содержание |
Сколько жить осталось диску, и не пора ли его заменить?...
Этот вопрос рано или поздно (лучше рано чем поздно) задает себе каждый сисадмин и
"продвинутый" пользователь ПК.
К моему удивлению, многие про SMART вообще никогда не слышали.
Рассмотрим атрибуты SMART и как мониторить cостояние жестких дисков.
Smart - Self
Monitoring Analysing and Reporting
Technology.
Какие проблемы позволяет выявить эта технология:
- Проблемы блока магнитных головок
- Повреждения дисков (физичесские повреждения, логичесские ошибки и т.п.)
- Проблемы механики (Привода, системы позиционирования)
- Проблемы электронной части (платы)
- Температура
Сейчас дисками поддерживается smart 3-го поколения.
Но мониторинг не панацея про <a href="http://ksimute.trancom.ru/linux-software-raid.shtml">Raid</a> не забывать нельзя.
Вероятность предсказания выхода из строя дисков:
Smart I- | 20% (древняя сильно) |
Smart II - | 50% |
Smart III - | не знаю :) думаю около 50 % |
Лучше перестраховаться, и если начались сбои в работе заменить диск. Стоимость накопителей сейчас копейки. А информация зачастую бесценна.
Приступим к установке и настройке.
Я использую дистрибутив linux - gentoo, что не критично.
ставим пакет <a href="http://smartmontools.sourceforge.net/">smartmontools</a> ( поддерживаемые ОС
Linux/Solaris/FreeBSD/NetBSD/OpenBSD/Cygwin, и Windows )
smartctl - Control and Monitor Utility for SMART Disks.
Поддерживает многие ATA-3 и более поздние ATA, IDE, SATA и SCSI-3 диски.
smartd - пытается включить SMART monitoring на ATA устройствах (аналогично smartctl -s on) и будет опрашивать устройства каждые 30 минут (это конфигурируемо), логирует ошибки дисков и изменения атрибутов через SYSLOG интерфейс.
Лог по-умолчанию /var/log/messages.В дополнение к логированию в файл, smartd может быть сконфигурирован для отсылки предупреждений на email в случае обнаружения проблемы.
Если вы пошлете USR1 сигнал smartd (для тех, кто в танке - команда kill) он немедленно проверит статус диска и вернется к состоянию "опроса диска каждые 30 минут"
Читаем дальше: man smartctl, man smartd, man smartd.conf
~ #smartctl -i /dev/hda
Включаем SMART, если выключен.
~ #smartctl -s /dev/hda
Для получения всей информации о диске:
~ # smartctl --all /dev/hda
=== START OF INFORMATION SECTION === Device Model: SAMSUNG SP0802N Serial Number: S00JJ10X732974 Firmware Version: TK200-04 User Capacity: 80,060,424,192 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 7 ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0 Local Time is: Fri Dec 7 22:45:11 2007 MSK ==> WARNING: May need -F samsung or -F samsung2 enabled; see manual for details. SMART support is: Available - device has SMART capability. SMART support is: Enabled SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 100 100 051 Pre-fail Always - 1 3 Spin_Up_Time 0x0007 100 001 025 Pre-fail Always In_the_past 4160 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 648 5 Reallocated_Sector_Ct 0x0033 100 100 011 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 100 100 051 Pre-fail Always - 0 8 Seek_Time_Performance 0x0025 100 100 015 Pre-fail Offline - 0 9 Power_On_Hours 0x0032 098 098 000 Old_age Always - 1405464 10 Spin_Retry_Count 0x0033 100 100 051 Pre-fail Always - 0 11 Calibration_Retry_Count 0x0012 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 412 194 Temperature_Celsius 0x0022 124 100 000 Old_age Always - 38 195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 15821016 196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 1 200 Multi_Zone_Error_Rate 0x000a 100 100 051 Old_age Always - 0 201 Soft_Read_Error_Rate 0x000a 100 100 051 Old_age Always - 0
Жить этому самсунгу еще и жить... Вот только был сбой Spin_Up_Time (время раскрутки пакета дисков из состояния покоя до рабочей скорости.) что может быть вызвано рядом причин. И, если текущее значение
велико - Единичный сбой не повод для беспокойства.Разберем детально вывод smartctl:
RAW_VALUE - Каждый атрибут имеет raw value 6-ти байтовое значениеVALUE - одно байтовое значение "нормализованное" :).
Например в случае параметра "температура" raw value хранит температуру диска (например 29 градусов)+ минимальную и максимальную температуру, при которой сохраняется работоспособность диска (например 23 и 33 градуса).
Формат raw data определяется производителем и не описан в стандарте. firmware диска конвертирует raw value в normalized value в диапазоне от 1 до 253. Если это нормализованное значение меньше или равно threshold (THRESH), Атрибут считается failed и отображается в столбце WHEN_FAILED. В нашем случае был сбой Spin_Up_Time. Если этот столбец пуст, все атрибуты в норме.
Минимальное (WORST) нормализованное значение тоже показано;
Это минимальное значение которое достигалось с момента включения SMART на диске.
TYPE - существует 2 типа атрибутов:
Критичные атрибуты: (Pre-fail)
Если VALUE стало меньше THRESH в случае Pre-fail атрибута - существует большая вероятность,
что диск вылетит в ближайшие 24 часа.
Если VALUE стало меньше THRESH в случае Old_age атрибута - существует большая вероятность,
Названия/значения атрибутов и интерпретация raw values не определена никаким стандартом. Иногда различные производители используют одинаковый Attribute ID для различных целей. Поэтому интерпретация специфических атрибутов smartctl может быть изменена опцией -v.
Итак просветились, и смотрим параметры второго диска:~ # smartctl -i /dev/hdd smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Model Family: Seagate Barracuda 7200.7 and 7200.7 Plus family Device Model: ST3160021A Serial Number: 5JS1W1TZ Firmware Version: 3.04 User Capacity: 160,041,885,696 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 6 ATA Standard is: ATA/ATAPI-6 T13 1410D revision 2 Local Time is: Fri Dec 7 22:55:55 2007 MSK SMART support is: Available - device has SMART capability. SMART support is: Enabled
Смотрим атрибуты:
~ # smartctl -A /dev/hdd === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 056 049 006 Pre-fail Always - 144758668 3 Spin_Up_Time 0x0003 097 096 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 11 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 081 060 030 Pre-fail Always - 140845722 9 Power_On_Hours 0x0032 073 073 000 Old_age Always - 24186 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 136 194 Temperature_Celsius 0x0022 044 063 000 Old_age Always - 44 195 Hardware_ECC_Recovered 0x001a 056 049 000 Old_age Always - 144758668 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 182 000 Old_age Always - 42 200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0
А этот диск уже ресурс подвыработал...
Raw_Read_Error_Rate (частота ошибок при чтении данных с диска, происхождение которых
обусловлено аппаратной частью диска) - 049
Seek_Error_Rate (частота ошибок при позиционировании блока головок.) - 060
~# smartctl -H /dev/hdd
Уточнение: если возникли проблемы с SATA дисками - проверьте версию smartctl: smartctl version 5.37 нормально работает с SATA дисками. А версия 5.36 писала, что ST3160815AS Device does not support SMART. Кстати, не рекомендую пользовать ST3160815AS летят часто...
Теперь займемся демоном:
Редактируем /etc/smartd.conf
По-умолчанию там только одна опция DEVICESCAN
Рекомендуется закомментировать ее и просто перечислить список устройств, которые мы
# /etc/smartd.conf config file /dev/hda -S on -o on -a -I 194 -m ksi_korobanov@mail.ru /dev/hdc -S on -o on -a -I 194 -m ksi_korobanov@mail.ru
Первая колонка | - устройство, которое мы собираемся мониторить. |
Директива -o | включает автоматическое off-line тестирование. |
Директива -S | включает автозапись атрибутов. |
Директива -m | за которой следует e-mail указывает куда warning сообщения отсылать. |
Директива -a | указывает smartd мониторить все SMART параметры диска |
smartd по умолчанию логирует изменение значений всех атрибутов.
Директива -I 194 означает игнорировать атрибут #194, (т.е. температуру), т.к. температура диска часто меняется и нет смысла ее логировать.
ksi etc # /etc/init.d/smartd start ksi etc # rc-update add smartd default
Теперь мал-мало теории:
Смарт атрибуты:Каждый атрибут имеет величину - Value.
Value Изменяется в диапазоне от 0 до 255 (задается производителем).
Низкое значение говорит о быстрой деградации диска или о возможном скором сбое.
Raw Value - это значение атрибута во внутреннем формате производителя значение малоинформативно для всех кроме сервисманов.
Threshold. - минимальное возможное значение атрибута, при котором гарантируется безотказная
работа накопителя.
При Значении атрибута меньше Threshold очень вероятен сбой в работе или полный отказ.
Атрибуты бывают критически важными (Pre-fail) и некритически
важными (Old_age).
Выход критически важного параметра за пределы Threshold фактический означает выход диска из строя,
выход за переделы допустимых значений некритически важного параметра свидетельствует о наличии
проблемы, но диск может сохранять свою работоспособность.
Критичные атрибуты:
- Raw Read Error Rate - частота ошибок при чтении данных с диска, происхождение которых
обусловлено аппаратной частью диска.
- Spin Up Time - время раскрутки пакета дисков из состояния покоя до рабочей скорости.
При расчете нормализованного значения (Value) практическое время сравнивается с некоторой
эталонной величиной, установленной на заводе. Не ухудшающееся немаксимальное значение при
Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом.
Отличие времени от эталонного может быть вызвано рядом причин, например просадка по вольтажу блока питания.
- Spin Up Retry Count - число повторных попыток раскрутки дисков до рабочей скорости, в случае
если первая попытка была неудачной. Ненулевое значение Raw (соответственно немаксимальное Value)
свидетельствует о проблемах в механической части накопителя.
- Seek Error Rate - частота ошибок при позиционировании блока головок. Высокое значение Raw
свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное
термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное
высокое значение Value говорит о том, что все хорошо.
- Reallocated Sector Count - число операций переназначения секторов. SMART в современных дисках способен
произвести анализ сектора на стабильность работы "на лету" и в случае признания его сбойным,
произвести его переназначение.
Некритичные атрибуты:
- Start/Stop Count - полное число запусков/остановов шпинделя. Гарантировано мотор диска
способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.
- Power On Hours - число часов проведенных во включенном состоянии. В качестве порогового значения
для него выбирается паспортное время наработки на отказ (MTBF). Обычно величина MTBF огромна, и маловероятно, что этот параметр достигнет
критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.
- Drive Power Cycle Count - количество полных циклов включения-выключения диска. По этому и
предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.
- Temperatue - Здесь хранятся показания встроенного термодатчика.
Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах). Вернее имеет влияние не на срок службы диска а на частоту возникновения некоторых типов ошибок, которые влияют на срок службы.
- Current Pending Sector Count - Число секторов, являющихся кандидатами
на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения
стабильного сектора, так называемые подозрительные или нестабильные сектора.
- Uncorrectable Sector Count - число ошибок при обращении к сектору, которые не были
скорректированы. Возможными причинами возникновения могут быть сбои механики или порча
поверхности.
- UDMA CRC Error Rate - число ошибок, возникающих при передаче данных по внешнему интерфейсу.
Могут быть вызваны некачественными кабелями, нештатными режимами работы.
- Write Error Rate - показывает частоту ошибок происходящих при записи на диск. Может служить показателем качества поверхности и механики накопителя.
В SMART III появилась функция, позволяющая прозрачно для пользователя переназначать BAD сектора.
Работает механизм следующим образом: при неустойчивом чтении сектора, или же ошибки его чтения,
SMART заносит его в список нестабильных и увеличит их счетчик (Current Pending Sector Count).
Если при повторном обращении сектор будет прочитан без проблем, он будет выброшен из этого списка.
Если же нет, то при представившейся возможности - при отсутствии обращений к диску, диск начнет
самостоятельную проверку поверхности, в первую очередь подозрительных секторов. Если сектор будет
признан сбойным, то он будет переназначен на сектор из резервной поверхности (соответственно RSC
увеличиться). Такое фоновое переназначение приводит к тому, что на современных винчестерах сбойные
секторы практически никогда не видны при проверке поверхности сервисными программами. В тоже время,
при большом числе плохих секторов их переназначение не может происходить до бесконечности.
Первый ограничитель очевиден - это объем резервной поверхности.
У современных винчестеров есть два дефект-листа P-list (Primary, заводской) и G-list (Growth, формируется непосредственно во время эксплуатации). И при большом числе переназначений может оказаться так, что в G-list не оказывается места для записи о новом переназначении. Эта ситуация может быть выявлена по высокому показателю переназначенных секторов в SMART.
Ссылки:
http://www.linuxjournal.com/article/6983
http://smartmontools.sourceforge.net/
http://www.3dnews.ru/storage/smart/