Category: Tech articles

  • S.M.A.R.T.

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

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

    Установка:

    sudo apt-get install smartmontools

    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, в случае обнаружения проблемы.

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

    # smartctl -i /dev/hda

    Включаем SMART, если выключен.

    # smartctl -s /dev/hda

    Для получения всей информации о диске:

    # smartctl --all /dev/hda
    smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
    Home page is http://smartmontools.sourceforge.net/
    
    === START OF INFORMATION SECTION ===
    Model Family:     Seagate Barracuda 7200.9 family
    Device Model:     ST3802110A
    Serial Number:    5LR3YW4N
    Firmware Version: 3.AAE
    User Capacity:    80,026,361,856 bytes
    Device is:        In smartctl database [for details use: -P show]
    ATA Version is:   7
    ATA Standard is:  Exact ATA specification draft version not indicated
    Local Time is:    Thu Jul  1 02:58:14 2010 MSD
    SMART support is: Available - device has SMART capability.
    SMART support is: Enabled
    
    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   119   097   006    Pre-fail  Always       -       207323748
      3 Spin_Up_Time            0x0003   099   099   000    Pre-fail  Always       -       0
      4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       192
      5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
      7 Seek_Error_Rate         0x000f   087   060   030    Pre-fail  Always       -       473627314
      9 Power_On_Hours          0x0032   079   079   000    Old_age   Always       -       19192
     10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
     12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       478
    187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
    189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
    190 Airflow_Temperature_Cel 0x0022   057   048   045    Old_age   Always       -       43 (Lifetime Min/Max 35/44)
    194 Temperature_Celsius     0x0022   043   052   000    Old_age   Always       -       43 (0 14 0 0)
    195 Hardware_ECC_Recovered  0x001a   053   046   000    Old_age   Always       -       173144036
    197 Current_Pending_Sector  0x0012   001   001   000    Old_age   Always       -       4294967295
    198 Offline_Uncorrectable   0x0010   001   001   000    Old_age   Offline      -       4294967295
    199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
    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

    Описание параметров таблицы smartctl:

    RAW_VALUE – Каждый атрибут имеет raw value 6-ти байтовое значение
    VALUE – одно байтовое значение усредненное.

    Например в случае параметра \”Temperature_Celsius\” raw value хранит температуру диска (например 43 градуса)+ минимальную и максимальную температуру, при которой сохраняется работоспособность диска (например 33 и 45 градуса).

    Формат raw data определяется производителем и не описан в стандарте. Firmware диска конвертирует raw value в normalized value в диапазоне от 1 до 253. Если это нормализованное значение меньше или равно threshold (THRESH), атрибут считается failed и отображается в столбце WHEN_FAILED. Если этот столбец пуст, все атрибуты в норме.

    Минимальное (WORST) нормализованное значение тоже показано;
    Это минимальное значение которое достигалось с момента включения SMART на диске.

    TYPE – существует 2 типа атрибутов:

    Критичные атрибуты: (Pre-fail)

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

    Если VALUE стало меньше THRESH в случае Pre-fail атрибута – существует большая вероятность, что диск вылетит в ближайшие 24 часа.

    Если VALUE стало меньше THRESH в случае Old_age атрибута – существует большая вероятность, что диск вылетит т.к. выработан ресурс. Вот только когда – науке это неизвестно.

    Названия/значения атрибутов и интерпретация raw values не определена никаким стандартом. Иногда различные производители используют одинаковый Attribute ID для различных целей. Поэтому интерпретация специфических атрибутов smartctl может быть изменена опцией -v.

    Уточнение: если возникли проблемы с SATA дисками – проверьте версию smartctl: для нормальной работы нужна последняя версия, например 5.38 или 5.39.

    Демон smartd:

    Редактируем /etc/smartd.conf

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

    # /etc/smartd.conf config file
    /dev/hda -S on -o on -a -I 194 -m 891rpm@gmailcom
    /dev/hda устройство, которое мы собираемся мониторить
    -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 – число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (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://ksimute.trancom.ru/smart-hdd.shtml
    http://www.linuxjournal.com/article/6983
    http://smartmontools.sourceforge.net/
    http://www.3dnews.ru/storage/smart/