Умная диагностика

Умная диагностика

S.M.A.R.T. - профилактика сбоев жесткого диска

Объемы винчестеров растут, но одновременно с этим падает их надежность - это подтвержденный статистикой факт. О технологии мониторинга и диагностики потенциальных неисправностей жестких дисков S.M.A.R.T. слышали все, но при этом далеко не все ее действительно используют. Попробуем исправить этот недочет и обратить внимание пользователей на необходимость тщательно следить за сохранностью своей информации...

Немного истории

Предпосылками разработки S.M.A.R.T. (Self-Monitoring Analysis and Reporting Technology) являлись технологии компании IBM - PFA (Predictive Failure Analysis) и компании Compaq -IntelliSafe, предназначенные, прежде всего, для слежения за состоянием элементов серверных дисковых массивов. Суть PFA заключалась в том, что винчестер измерял несколько параметров (таких, как, например, высота полета головок над поверхностью пластин, количество ошибок чтения / записи и т. п.), чтобы предсказать приближающийся сбой, и в случае их деградации (ухудшения) посылал хост-системе сообщение о возможной аварийной ситуации. Compaq использовала несколько дополнительных возможностей - пороговые значения параметров, сообщение хост-системе названий, вызвавших тревогу показателей, и т. п. IntelliSafe (в создании которой участвовали: Quantum, имеющая и свои наработки в этой области, Seagate и Conner) сначала была регламентирована на уровне комитета Small Form Factor Com-mitee (документ SFF-8035), а потом при посильном участии практически всех производителей жестких дисков переросла в первую версию S.M.A.R.T.. введенную в качестве необходимого компонента модификации АТА-3 IDE-интерфейса. S.M.A.R.T. первой версии точно так же как и предшественники, обеспечивала предсказание ошибок, производя мониторинг нескольких физических параметров диска во время его активности. S.M.A.R.T. II добавила к этому автоматическое офлайн-сканирование поверхности, a S.M.A.R.T. Ill не только анализирует состояние диска, но и производит действия по определению и восстановлению проблемных секторов (прежде всего методом их переназначения). В данный момент всеми производителями жестких дисков поддерживается и используется третья версия стандарта.

Общая характеристика

Принцип работы S.M.A.R.T. достаточно прост и идет еще от ее предшественников: в процессе функционирования винчестер отслеживает состояние некоторых параметров своей работы (например, количество перемещений головок, количество оборотов двигателя за время работы, скорость обмена данными между дисками и кэш-памятью и тому подобные параметры) и отражает их текущее состояние в специальных характеристиках - атрибутах, которые можно обобщенно разделить на критические и некритические, в зависимости от их влияния на качество работы накопителя. Атрибут представляет собой определенную ячейку данных, имеющую несколько полей, из них наиболее важное значение -Value (обычно от 0 до 100 или до 253), которое изначально установлено на максимум (разный для производителей) и уменьшается в случае ухудшения параметров функционирования диска. Каждому атрибуту сопоставляется нижняя его граница - поле Threshold, являющееся, по сути, минимальным значением характеристики, при которой производитель гарантирует безотказную работу устройства. При падении значения атрибута ниже порогового наступает Т.Е.С. (Threshold Exceeded Condition - условный выход накопителя из строя), что означает серьезные проблемы в функционировании (хотя реально проработать винчестер может еще долго), а в случае достижения Т.Е.С. сразу несколькими атрибутами - большую вероятность скорой смерти жесткого диска. Помимо пороговых значений для каждого атрибута определено дополнительное битовое (то есть имеющее значение "0" или "1") поле pre-failure/advizory, которое также характеризует предаварийное состояние жесткого диска. Изначально pre-failure/ advizory имеет значение "0", которое сохраняется даже при достижении атрибутом своего threshold, а в значении "1" он устанавливается только когда ситуация (с точки зрения встроенной микропрограммы накопителя) становится уже критической и все данные с вашего жесткого диска необходимо переносить в другое место. Сами атрибуты (включая их названия и идентификаторы), их пороговые значения и значения pre-failure/advisory хранятся в энергонезависимой памяти жесткого диска, который, кроме того, в процессе своей работы ведет журнал, отслеживая, например, кроме текущих значений еще и значение worst (то есть наихудшее за все время функционирования) каждого параметра. Стоит подчеркнуть, что все цифры, которые можно видеть в параметpax атрибутов, - это просто результат синтетического анализа прошивкой накопителя качества его работы, и к реальным параметрам устройства они относятся только опосредованно. При этом у многих атрибутов есть поле RAW, то есть конкретное значение измеряемого параметра. Это более чем полезно, так как позволяет, например, увидеть такую важную при покупке подержанного жесткого диска информацию, как количество запусков и общее время работы. S.M.A.R.T. описывает только самые общие принципы организации слежения за состоянием накопителя. Каждый производитель волен сам выбирать (и выбирает) характеристики, за которыми ведется наблюдение, их количество и правила вычисления значений, что, с одной стороны, создавало в первое время проблемы для интерпретации получаемых при помощи S.M.A.R.T. данных (например, популярная в свое время утилита SmartVision не показывала названия атрибутов, а только их идентификаторы и значения, так что пользователь вынужден был смотреть на голые таблицы с цифрами, не понимая, что они значат), а с другой стороны, дало возможность без проблем вводить со временем новые атрибуты - для поддержки слежения за температурным датчиком диска, количеством ошибок высокоскоростных интерфейсов Ultra DMA, параметрами GMR-головок привода... А если учесть тот факт, что S.M.A.R.T. не является прерогативой только IDE-интерфейса и реализована также на SCSI, SSA и FibreChannel (с характерным для этих интерфейсов уклоном именно в серверный вариант использования дисков - для слежжения за винчестером не требуется внешних приложений, он сам принимает решение о своей "профпригодности" и лишь извещает администратора или пользователя о неполадке), то становится очевидным, что создать универсальный жесткий и конкретный стандарт было бы просто невозможно. В приложении к обычному использованию в рамках интерфейса IDE требуется подчеркнуть, что S.M.A.R.T. - не более чем функция наблюдения, и в большинстве случаев она может спрогнозировать только предсказуемые сбои - те, которые характеризуются деградацией того или иного параметра в течение какого-то времени (а таковыми, например, не являются броски напряжения питания). Кроме того, пользовательская реализация S.M.A.R.T. обычно не предполагает никаких самостоятельных действий накопителя (типа отключения и тому подобных) - это просто средство информирования о возможных проблемах.

Средства наблюдения

В минимальном объеме анализ показателей S.M.A.R.T. обеспечивает BIOS при инициализации винчестера: в списке подключенных устройств обычно пишется что-то типа "S.M.A.R.T. capable and status OK". Естественно, необходимо, чтобы BIOS вообще поддерживал слежение за показателями S.M.A.R.T. и оно было включено в его параметрах (опция "S.M.A.R.T.: Disable/Enable"). Существует мнение, что при отключении данной опции в BIOS полностью отключается и внутренняя работа S.M.A.R.T. в самом винчестере, и при этом скорость его работы немного увеличивается (так как исчезают накладные расходы на лишние проверки и запись значений). На самом деле это не так: отключаться может слежение только за частью атрибутов (а может и вообще не отключаться, что зависит опять же от прошивки привода), наименее важными и, как показал опыт, никакого прироста скорости при выключении в BIOS S.M.A.R.T. нет. Да и в любом случае потенциально большая надежность стоит того, чтобы пожертвовать ради нее процентом производительности. О чтении значений атрибутов из MS DOS подробно говорить уже нет смысла, но на всякий случай стоит упомянуть программы HDDSpeed (www.xponik.spb.ru) и SMARTUDM HDD S.M.A.R.T. Viewer ( www.susinfolab.com) -обе они отлично справляются с просмотром показателей S.M.A.R.T., но, конечно же, не могут обеспечить постоянное за ними наблюдение, что необходимо для полноценного контроля состояния жесткого диска. Под Windows же (любых версий) подобных программ - десятки. Достаточно ввести в строчке любого поисковика аббревиатуру S.M.A.R.T., чтобы получить ссылки на все наиболее популярные продукты, среди которых есть, в том числе, и бесплатные (например, утилита SpeedFan - www.aimico.com). Одной из наиболее удобных (пусть и shareware) представляется Helexis Drive Health (www.drivehealth.com), где мониторинг состояния S.M.A.R.T. осуществляется фоновым сервисом (занимающим, соответственно, совсем не много памяти), который выводит предупреждающее окно в случае ухудшения атрибутов. Можно запустить и непосредственно утилиту просмотра состояния диска (внешний вид и функциональность которой примерно аналогичны всем другим программам подобного типа). Главное в ней - список атрибутов, для которых отображается название каждого, идентификатор, текущее, худшее и пороговое значения, поле RAW и его расшифровка для некоторых атрибутов (уже упоминаемый Start/Stop count - количество включений / выключений диска и прочие), тип атрибута (в зависимости от его функциональной нагрузки: PR - Performance-related, ER -Error rate, EC - Events count, SP -Self-preserve) и Nearest Т.Е.С -прогнозируемая дата достижения порогового значения атрибута и, соответственно, возможный выход диска из строя. Вопрос анализа значений (и их изменений) различных атрибутов достаточно объемен, поэтому можно дать на эту тему лишь несколько общих рекомендаций. Так, например, ухудшение атрибута Spin Up Time зачастую свидетельствует о некачественном источнике питания; Spin Up Retry Count и Seek Error Rate - о возможных механических проблемах, а последний - еще и о температурных (расширение пластин); Reallocated Sector Count и Current Pending Sector Count, a также Seek Time Performance и Recalibration Retries опять же говорят о проблемах с механикой (в общем-то, именно механические проблемы являются наиболее предсказуемыми, и на них в основном и нацелена S.M.A.R.T.)... Снижение значений атрибута Soft Read Error Rate свидетельствует обычно о некачественной прошивке или проблемах с электроникой, ухудшение значений (а точнее, увеличение значения поля RAW) UltraDMA CRC Error Count зачастую является следствием разгона (а именно завышения частоты шины PCI по сравнению с номинальной), неправильно проложенных (сильно перекрученных) шлейфов IDE или вообще - ошибками драйверов операционной системы. Отдельно стоит отметить атрибут Drive temperature, появившийся только в последних версиях S.M.A.R.T., назначение которого заключено в его названии -текущая температура жесткого диска, оборудованного термодатчиком. Измеряется она той же Drive Health или, например, широко распространенной и полезной MotherBoardMonitor, в последних версиях которой также появились датчики температуры дисков (надо только включить их в меню настроек General на вкладке Basic), которые выводятся на панель Dashboard или в системный трей.

В итоге

Резюмируя, можно сказать, что тщательное наблюдение за состоянием параметров S.M.A.R.T. жесткого диска и его температурой в частности позволяет избежать многих проблем и заранее диагностировать выход накопителя из строя. Конечно, есть масса примеров, когда накопители выходили из строя с отличными показателями S.M.A.R.T., но это не нивелирует смысла контроля состояния жесткого диска и говорит лишь о том, что никто и никогда не застрахован от неприятных неожиданностей. Пожалуй, действительно полноценному использованию технологии препятствует только отсутствие ее поддержки встроенными средствами операционной системы: если пользователю не придется искать и устанавливать дополнительные утилиты, то куда больше вероятность, что в нужный момент он будет заранее предупрежден о надвигающейся на его жесткий диск опасности. Но, это уже, как говорится, дело совести разработчиков ОС.


Описание некоторых атрибутов S.M.A.R.T.

  • Spin Up Time - среднее время раскрутки шпинделя диска до рабочей скорости, В поле RAW содержится время в миллисекундах.
  • Spin Retry Counx - количество повторов попыток раскрутки шпинделя диска и его выхода на рабочую скорость, при условии, что первая попытка была неудачной.
  • Reallocated Sector Count - количество переназначенных при ошибках чтения / записи / верификации секторов. Поле RAW содержит общее количество этих секторов.
  • Reallocation Event Count - количество операций переназначения секторов. Поле RAW этого атрибута показывает общее количество попыток (успешных и неуспешных) переназначения сбойных секторов в резервную область.
  • Current Pending Sector Count - текущее количество нестабильных секторов, в случае повторной ошибки чтения которых произойдет их переназначение в резервную область. Постоянно ненулевое значение RAW этого атрибута говорит о низком качестве поверхности диска.
  • Seek Time Performance - средняя производительность операций позиционирования головок привода на указанный сектор.
  • Seek Error Rate - частота появления ошибок позиционирования головок.
  • Recalibration Retries - количество повторов попыток рекалибровки накопителя (сброса состояния и установки головок на нулевую дорожку), если первая попытка была неудачной.
  • Throughput Performance - средняя пропускная способность диска.
  • Power Cycle Count - количество полных циклов запуска / остановки жесткого диска.
  • Start/Stop Count - количество циклов запуска / остановки шпинделя. Поле RAW хранит общее количество включений / выключений диска.
  • Power-On Hours - количество отработанных часов во включенном состоянии. Поле RAW этого атрибута показывает количество часов (возможно, минут или секунд - в зависимости от производителя), отработанных жестким диском. Достижение этим атрибутом порогового значения указывает на выработку диском ресурса MTBF (Mean Time Between Failures), что, в общем-то, обычно совершенно не мешает накопителю работать дальше.
  • Drive Temperature - температура. Данный параметр отражает в поле RAW показание встроенного температурного сенсора в градусах Цельсия.
  • Raw Read Error Rate - частота появления ошибок при чтении данных с диска по вине аппаратной части накопителя.
  • Soft Read Error Rate - частота появления "программных" ошибок при чтении данных с жесткого диска.
  • Uncorrectable Sector Count - количество нескорректированных ошибок при чтении / записи сектора. В поле RAW - точное количество этих ошибок.
  • UltraDMA CRC Error Count - общее количество ошибок CRC в режиме Ultra DMA. Поле RAW содержит количество ошибок, возникших в режиме передачи данных Ultra DMA в контрольной сумме (ICRC - Interface CRC).
  • Write Error Rate (Multi Zone Error Rate) - частота появления ошибок при записи данных. Поле RAW показывает общее количество ошибок, обнаруженных во время записи сектора.
  • Loaded Hours - нагрузка на привод головок, вызванная общей наработкой "трудочасов" накопителем.
  • Load/Unload Cycle Count - количество циклов вывода головок в специальную парковочную зону / в рабочее положение.
  • Load/Unload Retry Count - количество повторов попыток вывода головок в специальную парковочную зону / в рабочее положение, при условии, что первая попытка была неудачной.
  • Load Friction - нагрузка на привод головок, вызванная трением в механических частях жесткого диска.
  • Load-in Time - общее время нагрузки на привод головок, когда они находятся в рабочем состоянии вне парковочной зоны.
  • Torque Amplification Count - количество усилий вращающего момента привода. i Power-Off Retract Count - количество зафиксированных повторов выключения питания накопителя.
  • GMR Head Amplitude - амплитуда дрожания GMR-головок в рабочем состоянии.
Категория: