Мониторинг жёстких дисков при помощи SMART, часть 1






Так уж вышло, что диски имеют свойство умирать. Но часто выяснить причину смерти накопителя бывает очень легко. Диски современных накопителей вращаются со скоростью в несколько тысяч оборотов в минуту. При этом расстояние от головки до поверхности диска составляет доли микрона. Часто диски круглосуточно  работают в условиях повышенной загрязнённости или при неблагоприятном температурном режиме, в системах с очень высокой нагрузкой или не очень хорошим обслуживанием. Опытные пользователи хорошо знакомы с симптомами умирающего накопителя: система начинает работать нестабильно, зависает, ядро сообщает о каких-то трудно объяснимых ошибках. В большинстве случаев на восстановление утерянных данных может уйти весь день, при условии, конечно, что у вас есть резервные копии. Хотя, даже если у вас и есть копии всех важных данных, внезапный отказ жёсткого диска может показаться вам катастрофой.


Много пользователей и даже системных администраторов понятия не имеют что такое SMART (Self-Monitoring, Analysis and Reporting Technology), которая, тем не менее, присутствует во всех современных жёстких дисках. Диски со SMART самостоятельно наблюдают за своей жизнедеятельностью и работоспособностью. Такие диски,в случае возникновения ошибок, сами могут определить, что что-то работает не так. Такая возможность в большинстве случаев поможет предотвратить сценарий «внезапного» отказа жёсткого диска. Практически все реализации SMART позволяют пользователям запускать самотестирование накопителей и просматривать значения параметров производительности и надёжности.

По профессии автор статьи является физиком. Его исследовательская группа использует в работе кластер из 300 компьютеров и 600 жёстких дисков, хранящих более 50 терабайт информации. Интересоваться SMART он начал несколько лет назад, когда начал думать над тем, каким образом можно уменьшить время простоя и повысить эффективность работы кластера. Для этих целей автор уже около года пользуется набором smartmontools, потомком пакета smartsuite.

В этой статье рассказывается о том, как при помощи утилиты smartctl и сервера smartd наблюдать за состоянием дисков в системе. Со страницы проекта вы сможете загрузить необходимые файлы и инструкции по установке. Обязательно ознакомьтесь с файлом WARNINGS, содержащем перечень проблемных контроллеров/дисков, с которыми утилиты могут работать некорректно. Дополнительную документацию можно найти в man-страницах программ, а также на странице проекта.

Smartmontools имеются в репозитариях Slackware, Debian, SuSE, Mandrake, Gentoo, Conectiva и некоторых других Linux-дистрибутивах, так что скорее всего, вы без проблем сможете установить программы в свою систему традиционным для вашей системы методом.

Чтобы понять принципы работы smartmontools, полезно будет ознакомиться с историей создания и развития SMART. Первая спецификация SMART (SFF-8035i) была разработана группой производителей жёстких дисков. Во второй редакции (апрель 1996-го) диски хранили во  внутреннем списке до 30-ти атрибутов, отражавших состояния различных параметров производительности и надёжности, таких как количество ошибок чтения и поиска. Каждый атрибут имеет однобайтовое нормализованное значение в диапазоне от 1 до 253 и соответствующий однобайтовое пороговое значение. Если одно или более нормализованных значений атрибутов меньше или равны соответствующим пороговым, значит, вероятно, в ближайшие 24 часа жёсткий диск выйдет из строя или же истекает срок его службы, заявленный производителем. Значения некоторых атрибутов обновляются в процессе работы диска, а некоторые — лишь в процессе оффлайн-тестов, которые приостанавливают на время операции чтения вывода, и по этой причине запускаются при помощи специальных команд. Позже, в 1995 году, части спецификации SFF-8035i были включены в стандарт ATA-3.

Начиная со стандарта ATA-4 введено требование удалить внутреннюю таблицу атрибутов. Вместо неё жёсткий диск должен отвечать на запросы о его состоянии ответами OK или NOT OK. Отрицательный ответ на запрос означает, что микропрограмма жёсткого диска определила, что тот скоро выйдет из строя. В стандарте ATA-5 было добавлено ведение протокола ошибок, а также набор команд для запуска самотестирования диска. Для того, чтобы воспользоваться всеми описанными возможностями, вам нужно знать, как при помощи smartmontools получать значения атрибутов SMART (большинство жёстких дисков имеют обратную совместимость с SFF-8035i), узнавать состояние диска, запускать самотестирование и анализировать протокол его работы (результаты последних 21 теста) и анализировать протокол ATA-ошибок жёсткого диска (информация о пяти последних ошибках). Эта статья ориентирована на работу с ATA-дисками, а информацию о работе со SCSI-накопителями вы можете получить на странице проекта smartmontools.

Первым шагом запустите команду

smartctl -a /dev/hda

заменив /dev/hda на путь к файлу устройства вашего диска. Если SMART для вашего накопителя не включён, вам необходимо сначала включить его при помощи команды

smartctl -s on /dev/hda

В приведённой ниже части вывода команды smartctl -a приведена информация о модели и прошивке жесткого диска, в этом примере — IBM/Hitachi GXP-180. Smartmontools имеет собственную базу данных типов дисков. Если модель вашего накопителя присутствует в БД, то вы сможете правильно интерпретировать значения атрибутов SMART.

Device Model:     IC35L120AVV207-0
Serial Number:    VNVD02G4G3R72G
Firmware Version: V24OA63A
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 3a
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

В следующем вывода команды smartctl -Hc /dev/hda отображаются результаты опроса состояния «здоровья» диска. В этом примере показан диск, который успешно прошёл тест. Если в вашем случае первая строка будет содержать результат FAILING — немедленно сделайте резервные копии всех нужных данных! Оставшаяся часть вывода отображает поддерживаемые возможности вашего накопителя, а также примерное время выполнения различных вариантов самотестирования.

SMART overall-health self-assessment test result: PASSED
General SMART Values:
Off-line data collection status: (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Off-line Data Collection:
Enabled.
Self-test execution status:      (   0) The previous self-test routine
                                        completed without error or no
                                        self-test has ever been run.
Total time to complete off-line
data collection:                 (2855) seconds.
Offline data collection
capabilities:                    (0x1b) SMART execute Offline immediate.
                                        Automatic timer ON/OFF support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        No Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        (  48) minutes.

В следующем примере вывода команды smartctl -A /dev/hda показаны значения 30-ти атрибутов SMART (максимум их может быть 255). Имейте ввиду, что атрибуты SMART не являются частью стандарта ATA, хотя многие производители и используют их. Несмотря на то, что SFF-8035i не определяет, как правильно интерпретировать каждый атрибут, многие из них имеют де-факто соответствуют определённым параметрам. В приводимом примере 13-й атрибут (ID #194) отражает внутреннюю температуру диска.

Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate       0x000b   100   100   060    Pre-fail  Always      -       0
2 Throughput_Performance    0x0005   155   155   050    Pre-fail  Offline     -       225
3 Spin_Up_Time              0x0007   097   097   024    Pre-fail  Always      -       293 (Average 270)
4 Start_Stop_Count          0x0012   100   100   000    Old_age   Always      -       10
5 Reallocated_Sector_Ct     0x0033   100   100   005    Pre-fail  Always      -       0
7 Seek_Error_Rate           0x000b   100   100   067    Pre-fail  Always      -       0
8 Seek_Time_Performance     0x0005   125   125   020    Pre-fail  Offline     -       36
9 Power_On_Hours            0x0012   100   100   000    Old_age   Always      -       3548
10 Spin_Retry_Count         0x0013   100   100   060    Pre-fail  Always      -       0
12 Power_Cycle_Count        0x0032   100   100   000    Old_age   Always      -       10
192 Power-Off_Retract_Count 0x0032   100   100   050    Old_age   Always      -       158
193 Load_Cycle_Count        0x0012   100   100   050    Old_age   Always      -       158
194 Temperature_Celsius     0x0002   189   189   000    Old_age   Always      -       29 (Lifetime Min/Max 23/33)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always      -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always      -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline     -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always      -       0

Исследования показали, что снижение рабочей температуры диска всего на 5 градусов Цельсия существенно уменьшают количество возникающих ошибок в его работе. Таким образом, вы можете достаточно простым способом повысить надёжность вашего накопителя, установив для него дополнительный вентилятор.

Каждый Атрибут имеет шестибайтовое значение (RAW_VALUE) и однобайтовое нормализованное значение (VALUE). В нашем примере с параметром температуры мы видим три значения RAW_VALUE: текущую температуру (29), рекомендованную минимальную (23) и рекомендованную максимальную (33). Формат данных RAW_VALUE не определяется никакими стандартами и каждый производитель использует какие-то свои стандарты. Для того, чтобы отслеживать надёжность диска, его прошивка конвертирует raw-значения атрибутов в нормализованные, лежащие в пределах от 1 до 253. Если нормализованное значение меньше или равно пороговому (THRESH), то это сигнализирует об ошибке, что будет отображено в столбце WHEN_FAILED. В приведённом примере эта колонка пуста, поскольку значения всех атрибутов в норме. Также в таблице отображено наименьшее нормализованное значение; оно устанавливается в момент включения в диске SMART. Столбец TYPE показывает, как нужно трактовать значение атрибута, имеющего ошибочное состояние: Old_age — время жизни устройства достигло предела, определённого производителем; Pre-fail — ожидается выход устройства из строя. Например, время работы диска (ID #3) является Pre-fail атрибутом. Если такой атрибут будет иметь значение FAIL, то следует ожидать выхода устройства из строя в течение 24 часов.

Имена атрибутов и их трактовка не определены никакими стандартами. Разные производители используют одни и те же ID атрибутов для различных целей. По этой причине в smartctl предусмотрена возможность переопределять трактовку значений атрибутов при помощи опции -v. Обратитесь к man-странице smartctl за дополнительной информацией. Например, некоторые диски используют 9-й атрибут для хранения времени, в течение которого устройство включено. При помощи опции smartctl -v 9,minutes вы можете настроить корректную интерпретацию значения этого атрибута. Если модель вашего диска присутствует в базе данных smartmontools, то подобные опции устанавливаются автоматически.

По мотивам LinuxJournal.Com




Мониторинг жёстких дисков при помощи SMART, часть 1: 1 комментарий

  1. Неплохой обзор. Вообще, на самом деле программы мониторинга состояния жесткого диска лучше разделять на те, которые хорошо отслеживают здоровье в реальном времени, и на те, которые отлично подходят для тестирования диска. И применять их стоит вместе. Первый тип поможет отслеживать текущее состояние диска. Так что если что-то произойдет, то вы сможете вовремя среагировать. Второй тип стоит применять примерно раз месяц, так вы и диск не будете сильно изнашивать, и реальное состояние будете знать.

    Если интересно, то более подробно вы можете узнать в обзоре по адресу ida-freewares.ru/best-fre...ic-programs.html

Комментарии запрещены.