Smart HDD мониторинг

Автор: Aport Понедельник, Февраль 2nd, 2015 Нет комментариев

Рубрика: MySQL

Сколько жить осталось диску, и не пора ли его заменить?… Этот вопрос рано или поздно (лучше рано чем поздно) задает себе каждый сисадмин и «продвинутый» пользователь ПК. К моему удивлению, многие про SMART вообще никогда не слышали.

Рассмотрим атрибуты SMART и как мониторить cостояние жестких дисков.

Smart — Self Monitoring Analysing and Reporting Technology. Уже давно Смарт поддерживают жесткие диски практически всех производителей .

Какие проблемы позволяет выявить эта технология:

  1. Проблемы блока магнитных головок
  2. Повреждения дисков (физичесские повреждения, логичесские ошибки и т.п.)
  3. Проблемы механики (Привода, системы позиционирования)
  4. Проблемы электронной части (платы)
  5. Температура

Сейчас дисками поддерживается smart 3-го поколения. Но мониторинг не панацея про Raid забывать нельзя.

Вероятность предсказания выхода из строя дисков:

   Smart I- 	20% (древняя сильно)
   Smart II - 	50%
   Smart III -	не знаю :) думаю около 50 %

Лучше перестраховаться, и если начались сбои в работе заменить диск. Стоимость накопителей сейчас копейки. А информация зачастую бесценна.

Приступим к установке и настройке. Я использую дистрибутив linux — gentoo, что не критично.

ставим пакет smartmontools ( поддерживаемые ОС Linux/Solaris/FreeBSD/NetBSD/OpenBSD/Cygwin, и Windows )

Компилируются 2 приложения:

smartctl — Control and Monitor Utility for SMART Disks. Поддерживает многие ATA-3 и более поздние ATA, IDE, SATA и SCSI-3 диски. И демон smartd.

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

Выясняем, поддерживает ли диск SMART.

       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)

Некритичные атрибуты: (Old_age) (величина value отведенная вендором до наработки на отказ (ресурс)).

Если 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 И температура не радует совсем, хотя проверка overall-health — PASSED

       smartctl -H  /dev/hdd

Уточнение: если возникли проблемы с SATA дисками — проверьте версию smartctl: smartctl version 5.37 нормально работает с SATA дисками. А версия 5.36 писала, что ST3160815AS Device does not support SMART. Кстати, не рекомендую пользовать ST3160815AS летят часто…

smartd

Теперь займемся демоном: Редактируем /etc/smartd.conf

По-умолчанию там только одна опция DEVICESCAN Рекомендуется закомментировать ее и просто перечислить список устройств, которые мы хотим мониторить.

/etc/smartd.conf config file

       /dev/hda -S on -o on -a -I 194 -m mon@host123.ru
       /dev/hdc -S on -o on -a -I 194 -m mon@host123.ru

Первая колонка — устройство, которое мы собираемся мониторить.

Директива -o включает автоматическое off-line тестирование. Директива -S включает автозапись атрибутов. Директива -m за которой следует e-mail указывает куда warning сообщения отсылать. Директива -a указывает smartd мониторить все SMART параметры диска

smartd по умолчанию логирует изменение значений всех атрибутов.

Директива -I 194 означает игнорировать атрибут #194, (т.е. температуру), т.к. температура диска часто меняется и нет смысла ее логировать.

       /etc/init.d/smartd start
       rc-update add smartd default

Теперь мал-мало теории: Смарт атрибуты:

Каждый атрибут имеет величину — Value. Value Изменяется в диапазоне от 0 до 255 (задается производителем).

Низкое значение говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше значение Value атрибута, тем лучше.

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 - число часов проведенных во включенном состоянии.
     В качестве порогового значения для него выбирается паспортное время
     наработки на отказ (MBTF). Обычно величина MBTF огромна, и
     маловероятно, что этот параметр достигнет критического порога. Но
     даже в этом случае выход из строя диска совершенно не обязателен.

 

   * 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.

Замечания и неточности: пожалуйста присылайте на ksi_korobanov@mail.ru

Источник: 1

Ссылки:

http://www.linuxjournal.com/article/6983
http://smartmontools.sourceforge.net/
http://www.3dnews.ru/storage/smart/

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты