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

Устройство стандарта и структура атрибута

S.M.A.R.T. появился как часть стандарта ATA и формально представляет собой набор команд, через которые хост запрашивает у накопителя самодиагностические данные. Каждая метрика оформлена как атрибут с числовым идентификатором от 1 до 255, и к любому атрибуту прилагается несколько полей. Поле current показывает нормализованное текущее значение, обычно в шкале от 1 до 100 или до 253, где больше означает лучше. Поле worst фиксирует худшее значение, которое атрибут принимал за всю жизнь устройства, что полезно для обнаружения давно прошедших, но реальных эпизодов перегрева или деградации. Поле threshold задает порог отказа, и когда current опускается до него или ниже, накопитель обязан выставить флаг предотказного состояния, после чего прошивка считает устройство кандидатом на замену. Отдельно хранится raw value, сырое значение, смысл которого производитель определяет самостоятельно. Именно raw обычно содержит настоящие счетчики, то есть часы, циклы, количество секторов и градусы. Нормализованные же поля нужны для единого механизма сравнения с порогом, а не для инженерной интерпретации. Важно помнить, что стандарт жестко фиксирует только формат обмена и набор команд, включая чтение атрибутов, запуск самотестов и чтение журналов ошибок. Семантика большинства идентификаторов остается делом соглашений, и один и тот же номер у разных вендоров может означать разное. Поэтому любые автоматические выводы строят на проверенных таблицах соответствия, а не на предположении, что атрибут с одним номером везде одинаков.

Ключевые предсказатели отказа

Практика эксплуатации больших парков дисков выделила небольшой набор атрибутов, изменение которых действительно коррелирует с близким отказом. Атрибут 05, Reallocated Sector Count, считает секторы, которые накопитель признал нечитаемыми и заменил запасными из резервной области. Небольшое стабильное значение само по себе не приговор, но растущее значение означает, что поверхность деградирует, и темп роста важнее абсолютной цифры. Атрибут C5, Current Pending Sector Count, показывает секторы, которые не читаются прямо сейчас и ждут решения, и при успешном перечитывании сектор возвращается в строй, а при записи поверх него контроллер переназначает его и снимает со счетчика. Pending это живой симптом, требующий немедленной проверки целостности данных. Атрибут C6, Uncorrectable Sector Count, фиксирует ошибки, которые не сумела исправить коррекция ошибок, и его ненулевое значение на диске с данными является серьезным сигналом. Атрибут 09, Power-On Hours, накапливает часы работы и служит основой для сравнения с ресурсом по спецификации. Атрибут 0C, Power Cycle Count, считает включения питания, что актуально для оценки износа механики при частых стартах. Атрибут C0, Power-Off Retract Count, учитывает парковки головок при отключении, включая аварийные, и резкий рост этого счетчика указывает на проблемы с питанием, а не с самим диском. Температурный атрибут 194 заслуживает отдельного внимания. Для жестких дисков длительная работа выше сорока пяти градусов ускоряет деградацию магнитного слоя и механики, а для твердотельных накопителей перегрев ускоряет утечку заряда из ячеек NAND и уменьшает срок хранения данных на отключенном устройстве, тогда как слишком холодная запись сокращает выносливость ячеек при перезаписи.

Специфика твердотельных накопителей и нормализация

У SSD механика отсутствует, и телеметрия смещается к износу флэш-памяти. Ключевые показатели здесь производительские, Percentage Used оценивает израсходованную долю ресурса записи, а Available Spare показывает остаток резервных блоков, доступных для замены изношенных. Эти атрибуты не входят в общий набор ATA и реализуются через вендорские идентификаторы, а у NVMe-накопителей через структуру журнала здоровья, где поля Percentage Used и Available Spare определены уже самим стандартом NVMe. Из этого следует важное правило, интерпретировать SSD-атрибуты можно только с таблицей конкретного производителя. Сырое поле при этом зачастую нечитаемо напрямую. Вендор упаковывает в шесть байт raw несколько величин сразу, смешивает единицы измерения, кодирует температуру вместе со статистическими счетчиками или вовсе выводит счетчик в неочевидной шкале. Два накопителя разных марок с одинаковым номером атрибута могут показывать raw, отличающееся на порядки при одинаковом физическом состоянии. Нормализованное значение компенсирует эту свободу, но ценой потери деталей, поэтому самой надежной метрикой остается динамика, рост сырых счетчиков ошибок у конкретного устройства со временем читается однозначно, даже если абсолютная шкала неизвестна. Полезно при первом запуске нового диска снять эталонный снимок всех атрибутов, чтобы потом сравнивать не с чужими образцами из сети, а с собственной историей устройства.

Почему S.M.A.R.T. не является гарантией

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

Самотесты и фоновый сбор данных

Помимо пассивных атрибутов, стандарт предусматривает активные процедуры. Короткий самотест занимает пару минут и проверяет электронику, служебные механизмы и малую часть поверхности. Расширенный тест последовательно читает всю поверхность или всё адресное пространство и может идти часами, зато именно он выявляет слабые секторы, которые в обычной работе не читаются месяцами. Расширенный тест разумно запускать по расписанию, например ежемесячно, фиксируя результаты в журнале устройства. Фоновая процедура offline data collection выполняется самим накопителем в периоды простоя и обновляет атрибуты без команды хоста, поэтому свежесть значений не зависит от того, опрашивал ли кто-то диск. Журналы ошибок и журналы самотестов читаются отдельными командами и дают контекст, когда именно и при каких условиях произошел сбой. Если расширенный тест завершается с ошибкой чтения на определенном адресе, локализация известна и решение о перезаписи или замене принимается сразу.

Чтение телеметрии в Windows и правила реагирования

В Windows историческая утилита wmic признана устаревшей и выводится из состава системы, поэтому опираться на неё в новых сценариях нельзя. Штатный современный путь это командлет Get-PhysicalDisk из PowerShell, который возвращает HealthStatus и OperationalStatus по данным подсистемы хранения, а для детальных счетчиков используются командлеты из модуля Storage, например Get-StorageReliabilityCounter, выдающий температуру, часы наработки, ошибки чтения и записи. Класс программ графического мониторинга с открытым отображением всех атрибутов, к которому относится CrystalDiskInfo и ему подобные средства, остается удобным способом видеть сырые значения и историю без написания скриптов. Для серверного парка атрибуты снимают агентами мониторинга и заводят алерты на пороги, любое ненулевое Current Pending, любой рост Reallocated за интервал наблюдения, превышение температурного лимита, падение Available Spare ниже десяти процентов. Порядок реакции стоит формализовать заранее.

  1. При появлении или росте Current Pending Sector Count немедленно проверить целостность данных, выполнить расширенный тест и инициировать перезапись проблемных областей, после чего счетчик должен обнулиться через переназначение.
  2. При устойчивом росте Reallocated Sector Count скопировать данные и заменить накопитель, не дожидаясь пересечения заводского порога.
  3. При росте Uncorrectable считать диск непригодным для ответственных данных и менять его вне зависимости от остальных показателей.
  4. При перегреве исправлять охлаждение до любых других действий, затем неделю наблюдать динамику ошибок.
  5. Для SSD при Percentage Used выше девяноста процентов планировать замену по расписанию и проверять, не упирается ли запись в деградировавший резерв.

Отдельно стоит сказать о распространенных заблуждениях. Оценка здоровья в виде одного процента, напоминающая «здоровье 99 процентов», обычно выводится из единственного атрибута вроде остатка ресурса записи и игнорирует переназначенные секторы, ошибки интерфейса и температурную историю, поэтому доверять такой сводной цифре нельзя. Мнение о том, что ноль в pending означает идеальный диск, разбивается о статистику внезапных отказов. Мнение о том, что диск с низким здоровьем обязательно умрет завтра, тоже неверно, стабильный, не растущий счетчик переназначений у старого диска может годами оставаться неизменным, и решение принимается по динамике, а не по цвету индикатора. Дисциплина здесь простая, снимать атрибуты регулярно, хранить историю, реагировать на изменения, не верить сводным процентам и помнить, что резервная копия остается единственной настоящей страховкой от любого отказа, предсказанного или внезапного.

Как встроенная медицина врёт молчанием. Самая коварная оплошность SMART - не в атрибуте, а в его нормализации: поле Current представляет собой балл по шкале сто, который производитель придумывает сам - и порог FAILURE тоже выбирается на заводе. Два диска с одинаковым числом переназначенных секторов могут давать диаметрально противоположные баллы в зависимости от того, как пожелал завод посчитать: некоторые производители позволяют себе рейтинг, близкий к пределу, при десятках сбойных областей. Привычка читать прежде всего сырые значения raw, которые в большинстве вендорских реализаций содержат истинное количество явлений, и лишь затем - нормализованный балл, относится к числу тех навыков, которые отличают мастера диагностики от того, кто привык полагаться на цветную табличку утилиты. Расшифровка равных атрибутов у конкретных серий хранится в технических бюллетенях производителя, и ветераны спокойно выносят за скобки всё, что приходит в баланс без них.