Thank you for reading this post, don't forget to subscribe!
S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технология самоконтроля, анализа и отчётности) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.
smartctl — утилита для чтения информации SMART;
smartd — демон SMART, постоянно работающий в системе (UNIX-системы) и отслеживающий изменения параметров, умеет отправлять письмо в случае проблем. Про её установку и настройку — в другой статье.
Узнать все возможности:
Если система сообщает, что:
SMART Disabled. Use option -s with argument ‘on’ to enable it.
значит SMART на этом устройстве отключен. Что бы активировать его — выполните:
А если надо наоборот выключить SMART — укажите:
Получить все диски в системе можно с помощью lsblk
:
smartctl
self-test
Утилита smartctl умеет проводить собственное тестирование диска, для получения более точных данных. Тесты бывают 3-х видов:
- Short
- Extended (Long)
- Conveyance
Что бы узнать, сколько времени займёт каждый из них — используйте -c
и путь к диску:
Что бы запустить проверку определённого типа — используем -t
и имя теста (или --test=имятеста
):
Please wait 2 minutes for test to complete — через две минуты можно посмотреть лог выполнения теста командой:
Что бы остановить выполнение проверки — выполняем:
Модель диска
Узнать модель жесткого диска и другую информацию о нём:
Здоровье диска
Быстро получить общую информацию о здоровье диска можно с ключём -H:
Очень полезный ключ -x, который выводит всю имеющуюся информацию, в том числе — о возможных проблемах:
Так же, полезно использовать ключ -a, который выводит всю имеющуюся в SMART-контроллере информацию, среди прочего в ней имеются такие данные, которые помогут определить состояние диска:
Так же, имеется информация об ошибках на старом диске, с которого взяты примеры (кстати, он вскоре умер):
Налицо проблемы с LBA:
LBA (англ. Logical block addressing) — механизм адресации и доступа к блоку данных на жёстком диске, при котором системному контроллеру нет необходимости учитывать геометрию самого жесткого диска (количество цилиндров, сторон, секторов на цилиндре). Контроллеры современных IDE-дисков в качестве основного режима трансляции адреса используют LBA.
Далее этот диск пошёл под тестирование Victoria — но это уже тема другой статьи, хотя лог Victoria можете оценить тут>>> (UPD март 2020: оно того стоит ? ).
Вернёмся к SMART.
Интерпретация результатов тестов
Результаты SMART представлены в виде атрибутов (первая часть таблицы SMART Attributes Data Structure) и их значений — колонки VALUE, WORST, THRESH, TYPE и других.
Последние две колонки — WHEN_FAILED и RAW_VALUE обозначают «Когда выйдет из строя» и «Текущее значение«.
Наиболее важным для нас являются колонки «VALUE» («Normalized Value»), «RAW» («Raw Value») и «THRESH» («Threshold»).
Если значение атрибута Normalized Value меньше или равно значения Threshold — то у диска уже есть или скоро будут большие проблемы в работе и использовать его нежелательно. Максимальное значение (от 1 до 100) атрибута означает максимальную стабильность. Чем значение ниже, тем быстрее текущий параметр деградирует.
Аттрибуты SMART
Threshold — значение, которого должен достигнуть Normalized Value этого же атрибута, чтобы состояние атрибута было признано критическим. Проще говоря, Threshold — это порог: если Normalized Value больше Threshold — атрибут в порядке; если меньше либо равен — с атрибутом проблемы. Именно по такому критерию утилиты, читающие SMART, выдают отчёт о состоянии диска либо отдельного атрибута вроде «Good» или «Bad». При этом они не учитывают, что даже при Normalized Value, большем Threshold, диск на самом деле уже может быть умирающим с точки зрения пользователя, а то и вовсе ходячим мертвецом, поэтому при оценке здоровья диска смотреть стоит всё-таки на другой класс атрибута, а именно — RAW. Однако именно значение Value, опустившееся ниже Threshold, может стать легитимным поводом для замены диска по гарантии. Т. е. при значении Normalized Value, большем Threshold, сам диск считает, что атрибут здоров, а при меньшем либо равном — что болен. Threshold — постоянный параметр, зашитый производителем в диске.
Каждый производитель использует собственные алгоритмы для вычисления параметра Normalized Value исходя из значения Raw Value.
Это относится и к другим атрибутам. К примеру, производитель Hitachi выводит информацию атрибута Power-on hours в минутах, а не часах.
Параметр «WORST» — наименьшее (наиболее близкое к показателю выхода из строя) значение. Можно использовать просто для ознакомления.
Колонка «TYPE» содержит, как правило, два параметра — Pre-fail или Old-age. Ни тот, ни другой не означают что диск скоро «умрёт. Когда параметры действительно опасны — значение колонки «WHEN_FAILED» изменится на «FAILING_NOW».
Если значение «WHEN_FAILED» тире (‘-‘) это означает что с данным атрибутом всё в порядке.
Параметр Raw Value — это текущее значение атрибута. Например, значение Raw Value 365 для Power-cycled значит, что диск включался каждый день в течении последнего года. Вообще — это самый интересный, важный и нужный для оценки показатель. В большинстве случаев он содержит в себе реальные значения, выражаемые в различных единицах измерения, напрямую говорящие о текущем состоянии диска. Основываясь именно на этом показателе, формируется значение Normalized Value. Именно умение читать и анализировать поле Raw Value даёт возможность объективно оценить состояние винчестера.
Значения атрибутов:
Примечание: БМГ — блок магнитных головок, которые производят непосредственно чтение информации с поверхности «блинов» жесткого диска.
Raw Read Error Rate — частота появления ошибок при чтении данных с диска. Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине аппаратной части накопителя;
Spin Up Time — время раскрутки шпинделя. Среднее время раскрутки шпинделя диска от 0 до рабочей скорости (как правило — 7200 об/мин, RPM — Revolution Per Minute). Предположительно, в поле Raw Value содержится время в миллисекундах/секундах;
Reallocated Sector Count — количество переназначенных секторов. Когда жесткий диск встречает ошибку чтения/записи/верификации — он пытается переместить данные из него в специальную резервную область (Spare Area) и, в случае успеха, помечает сектор как «переназначенный». Также, этот процесс называют Remapping, а переназначенный сектор — Remap. Благодаря этой возможности, на современных жестких дисках очень редко видны (при тестировании поверхности) так называемые Bad Block. Однако, при большом количестве Remaps, на графике чтения с поверхности будут заметны «провалы» — резкое падение скорости чтения (до 10% и более). Поле Raw Value содержит общее количество переназначенных секторов;
Throughput Performance — средняя производительность (пропускная способность) диска. Уменьшение значения Normalized Value этого атрибута с большой вероятностью указывает на проблемы в накопителе;
Start/Stop Count — количество циклов запуск/останов шпинделя. Поле Raw Value хранит общее количество включений/выключений диска;
Read Channel Margin — запас канала чтения. Назначение этого атрибута не документировано и в современных накопителях не используется;
Seek Error Rate — частота появления ошибок позиционирования БМГ. В случае сбоя в механической системе позиционирования, повреждения сервометок (Servo), сильного термического расширения дисков и т.п. возникают ошибки позиционирования. Чем их больше — тем хуже механика и/или поверхности жесткого диска;
Seek Time Performance — средняя производительность операций позиционирования БМГ. Данный параметр показывает среднюю скорость позиционирования привода БМГ на указанный сектор. Снижение значения этого атрибута говорит о неполадках в механике привода;
Power-On Hours — количество отработанных часов во включенном состоянии. Поле Raw Value этого атрибута показывает количество часов (минут, секунд — в зависимости от производителя), отработанных жестким диском. Снижение значения (Normalized Value) атрибута до критического уровня (Threshold) указывает на выработку диском ресурса (MTBF — Mean Time Between Failures). На практике, даже падение этого атрибута до нулевого значения не всегда указывает на реальное исчерпывание ресурса и накопитель может продолжать нормально функционировать;
Spin Retry Count — количество повторов попыток старта шпинделя диска. Данный атрибут фиксирует общее количество попыток раскрутки шпинделя и его выхода на рабочую скорость, при условии, что первая попытка была неудачной. Снижение значения этого атрибута говорит о неполадках в механике привода;
Recalibration Retries — количество повторов попыток рекалибровки накопителя. Данный атрибут фиксирует общее количество попыток сброса состояния накопителя и установки головок на нулевую дорожку, при условии, что первая попытка была неудачной. Снижение значения этого атрибута говорит о неполадках в механике привода;
Device Power Cycle Count — количество полных циклов запуска/остановки жесткого диска;
Soft Read Error Rate — частота появления «программных» ошибок при чтении данных с диска. Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине программного обеспечения, а не аппаратной части накопителя;
End-to-End error — данный атрибут-часть технологии HP SMART IV, это означает, что после передачи через кэш памяти буфера данных паритет данных между хостом и жестким диском не совпадают;
Reported UNC Errors — ошибки, которые не могли быть восстановлены, используя методы устранения ошибки аппаратными средствами;
Load/Unload cycle count — количество циклов вывода БМГ в специальную парковочную зону/в рабочее положение. Подробнее — см. описание технологии Head Load/Unload Technology тут>>>;
Drive Temperature — температура. Данный параметр отражает в поле Raw Value показание встроенного температурного сенсора в градусах Цельсия;
Reallocation Event Count — количество операций переназначения (Remapping). Поле Raw Value этого атрибута показывает общее количество попыток переназначения сбойных секторов в резервную область, предпринятых накопителем. При этом, учитываются как успешные, так и неудачные операции;
Current Pending Sector Count — текущее количество нестабильных секторов. Поле Raw Value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает претендентами на переназначение в резервную область (Remap). Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка претендентов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (Remapped). Постоянно ненулевое значение Raw Value этого атрибута говорит о низком качестве (отдельной зоны) поверхности диска;
Uncorrectable Sector Count — количество нескорректированных ошибок. Атрибут показывает общее количество ошибок, возникших при чтении/записи сектора и которые не удалось скорректировать. Рост значения в поле Raw Value этого атрибута указывает на явные дефекты поверхности и/или проблемы в работе механики накопителя;
UltraDMA CRC Error Count — общее количество ошибок CRC в режиме UltraDMA. Поле Raw Value содержит количество ошибок, возникших в режиме передачи данных UltraDMA в контрольной сумме (ICRC — Interface CRC). Практика, собранная статистика и изучение журналов ошибок SMART показывают: в большинстве случаев ошибки CRC возникают при сильном завышении частоты PCI (больше номинальных 33.6 MHz), сильно перекрученом кабеле, а также — по вине драйверов ОС, которые не соблюдают требований к передачи/приему данных в режимах UltraDMA;
Write Error Rate (Multi Zone Error Rate)— частота появления ошибок при записи данных. Показывает общее количество ошибок, обнаруженных во время записи сектора. Чем больше значение в поле Raw Value (и ниже значение Normalized Value), тем хуже состояние поверхности диска и/или механики привода;
Disk Shift — сдвиг пакета дисков относительно оси шпинделя. Актуальное значение атрибута содержится в поле Raw Value. Единицы измерения — не известны. Подробности — см. в описании технологии G-Force Protection, например — тут>>>. Сдвиг пакета дисков возможен в результате сильной ударной нагрузки на накопитель в результате его падения или по иным причинам;
G-Sense Error Rate — частота появления ошибок в результате ударных нагрузок. Данный атрибут хранит показания ударочувствительного сенсора — общее количество ошибок, возникших в результате полученных накопителем внешних ударных нагрузок (при падении, неправильной установки, и т.п.). Подробнее — см. описание технологии G-Force Protection;
Loaded Hours — нагрузка на привод БМГ, вызванная общей наработкой часов накопителем. Учитывается только период, в течении которого головки находились в рабочем положении;
Load/Unload Retry Count — нагрузка на привод БМГ, вызванная многочисленными повторениями операций чтения, записи, позиционирования головок и т.п. Учитывается только период, в течении которого головки находились в рабочем положении;
Load Friction — нагрузка на привод БМГ, вызванная трением в механических частях накопителя. Учитывается только период, в течении которого головки находились в рабочем положении;
Load/Unload Cycle Count — общее количество циклов нагрузки на привод БМГ. Учитывается только период, в течении которого головки находились в рабочем положении;
Load-in Time — общее время нагрузки на привод БМГ. Предположительно — данный атрибут показывает общее время работы накопителя под нагрузкой, при условии, что головки находятся в рабочем состоянии (вне парковочной зоны);
Torque Amplification Count — количество усилий вращающего момента привода;
Power-Off Retract Count — количество зафиксированных повторов включения/выключения питания накопителя;
GMR Head Amplitude — амплитуда дрожания GMR-головок (GMR-Head) в рабочем состоянии.
ВАЖНО: для всех атрибутов лучше меньшее (или уменьшающееся) значение, что можно определить периодически проводя проверки. Исключение — следующие атрибуты:
Throughput Performance — общая производительность диска. Если значение атрибута уменьшается, то велика вероятность, что с диском есть проблемы.
и:
Seek Time Performance — средняя производительность операции позиционирования магнитными головками. Если значение атрибута уменьшается (замедление позиционирования), то велика вероятность проблем с механической частью привода головок.
Критичные атрибуты
Критичные атрибуты, на которые необходимо обращать особое внимание:
* Raw Read Error Rate
* Spin Up Time
* Spin Up Retry Count
* Seek Error Rate
* Reallocated Sector Coun
Для сравнения с результатами SMART, приведёнными в статье выше — результат с диска, который был только что распечатан:
И пара полезных примеров работы утилиты dd.
Быстрый способ проверить HDD на наличие bad-blocks («битых» блоков):
Иногда требуется удалить все данные с диска, для этого — «забьём» диск нулями — например, во время выполнения тестов на нём, или — что бы скрыть информацию: