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

Сколько жить осталось диску, и не пора ли его заменить?... Этот вопрос рано или поздно (лучше рано чем поздно) задает себе каждый сисадмин и "продвинутый" пользователь ПК. К моему удивлению, многие про 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/
Оцени публикацию:
  • 0,0
Оценили человек: 0

Похожие статьи:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » Unix »