Мониторинг жёстких дисков при помощи 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.

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

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

Исследования показали, что снижение рабочей температуры диска всего на 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

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