Введение

Система мониторинга компьютерных накопителей

Технология самоконтроля, анализа и отчетов (S. M. A. R. T., часто записывается как SMART) — это система мониторинга, встроенная в компьютерные жесткие диски (HDD) и твердотельные накопители (SSD). Её основная функция — обнаруживать и сообщать о различных показателях надежности накопителя с целью прогнозирования возможных аппаратных сбоев. Когда данные S. M. A. R. T. указывают на вероятный скорый выход накопителя из строя, программное обеспечение, работающее в системе, может уведомить пользователя, чтобы он мог предпринять действия для предотвращения потери данных, заменить неисправный накопитель и сохранить целостность данных.

Точность

Полевое исследование Google, охватывающее более 100 000 потребительских дисков с декабря 2005 года по август 2006 года, выявило корреляцию между определенными данными S.M.A.R.T. и годовым уровнем отказов: в течение 60 дней после первой необратимой ошибки на диске (атрибут S.M.A.R.T. 0xC6 или 198), обнаруженной в результате автономной проверки, вероятность отказа диска в среднем была в 39 раз выше, чем у аналогичного диска, на котором такая ошибка не возникала. Первые ошибки при переназначении секторов, переназначение секторов в автономном режиме (атрибуты S.M.A.R.T. 0xC4 и 0x05 или 196 и 5) и количество зон ожидания (атрибут S.M.A.R.T. 0xC5 или 197) также были тесно связаны с повышенной вероятностью отказа. Напротив, незначительная корреляция была обнаружена с повышением температуры, а корреляции с уровнем использования не выявлено. Однако исследование показало, что большая часть (56%) вышедших из строя дисков не зафиксировали никаких значений в "четырех основных предупреждениях S.M.A.R.T." – ошибках сканирования, количестве переназначенных секторов, переназначении секторов в автономном режиме и количестве зон ожидания. Более того, 36% вышедших из строя дисков не зафиксировали никаких ошибок S.M.A.R.T., за исключением температуры, что указывает на ограниченную полезность данных S.M.A.R.T. для прогнозирования отказов.

История и предшественники

Ранняя технология мониторинга жестких дисков была представлена компанией IBM в 1992 году в составе IBM 9337 Disk Arrays для серверов AS/400 с использованием дисковых накопителей IBM 0662 SCSI 2. Позже она получила название технология прогнозирующего анализа отказов (PFA). Она измеряла несколько ключевых параметров состояния устройства и оценивала их в прошивке накопителя. Коммуникация между физическим устройством и программным обеспечением для мониторинга ограничивалась двоичным результатом: а именно, "устройство исправно" или "накопитель, вероятно, скоро выйдет из строя". Впоследствии другая версия, названная IntelliSafe, была разработана производителем компьютеров Compaq и производителями дисковых накопителей Seagate, Quantum и Conner. Дисковые накопители измеряли "параметры состояния" диска, а значения передавались в операционную систему и программное обеспечение для мониторинга, работающее в пользовательском пространстве. Каждый производитель накопителей имел право самостоятельно определять, какие параметры следует включать в мониторинг и какие должны быть их пороговые значения. Унификация достигалась на уровне протокола взаимодействия с хостом. В начале 1995 года компания Compaq представила IntelliSafe комитету по стандартизации Small Form Factor (SFF). Его поддержали IBM, партнеры Compaq по разработке – Seagate, Quantum и Conner, а также Western Digital, у которой в то время не было системы прогнозирования отказов. Комитет выбрал подход IntelliSafe, поскольку он обеспечивал большую гибкость. Компания Compaq передала IntelliSafe в общественное достояние 12 мая 1995 года. В результате был разработан совместный стандарт, получивший название S.M.A.R.T.

Этот стандарт SFF описывал протокол связи для хоста ATA, позволяющий использовать и контролировать мониторинг и анализ в жестком диске, но не определял конкретные метрики или методы анализа. Позже "S.M.A.R.T." стало пониматься (хотя и без формальной спецификации) как обозначение различных конкретных метрик и методов и применяться к протоколам, не связанным с ATA, для передачи аналогичной информации.

Предоставленная информация

Техническая документация для S.M.A.R.T. содержится в стандарте AT Attachment (ATA). Впервые представленный в 1994 году, стандарт ATA претерпел множество редакций. Некоторые части оригинальной спецификации S.M.A.R.T., разработанной Комитетом малых форм-факторов (SFF), были добавлены в ATA 3, опубликованную в 1997 году. В 1998 году ATA 4 отменил требование о поддержании дисками внутренней таблицы атрибутов, вместо этого потребовав возврата только значения "OK" или "NOT OK". Стандарт регулярно пересматривался, последний раз – в 2011 году. Стандартизация аналогичных функций в SCSI встречается реже и не называется так в стандартах, хотя как производители, так и потребители также называют эти аналогичные функции S.M.A.R.T. Наиболее базовая информация, предоставляемая S.M.A.R.T., – это статус S.M.A.R.T. Он предоставляет только два значения: "порог не превышен" и "порог превышен". Часто они представляются как "диск исправен" или "диск неисправен" соответственно. Значение "порог превышен" предназначено для указания на относительно высокую вероятность того, что диск не сможет соответствовать своим спецификациям в будущем: то есть диск "близок к отказу". Прогнозируемый отказ может быть катастрофическим или проявляться в виде неспособности записи в определенные секторы, либо в снижении производительности по сравнению с минимальными значениями, заявленными производителем. Статус S.M.A.R.T. не обязательно отражает прошлую или текущую надежность диска. Если диск уже вышел из строя, статус S.M.A.R.T. может быть недоступен. В противном случае, если диск ранее испытывал проблемы, но датчики больше не обнаруживают их, статус S.M.A.R.T., в зависимости от программирования производителя, может указывать на то, что диск теперь исправен. Невозможность чтения некоторых секторов не всегда свидетельствует о скором отказе диска. Один из способов появления нечитаемых секторов, даже если диск работает в пределах спецификаций, – это внезапное отключение питания во время записи. Кроме того, даже если физический диск поврежден в определенном месте, делая определенный сектор нечитаемым, диск может использовать резервное пространство для замены поврежденной области, чтобы сектор можно было перезаписать. Более подробную информацию о состоянии диска можно получить, изучив атрибуты S.M.A.R.T. Атрибуты S.M.A.R.T. были включены в некоторые проекты стандарта ATA, но были удалены до окончательной версии стандарта. Значение и интерпретация атрибутов различаются у разных производителей и иногда считаются коммерческой тайной. Атрибуты рассматриваются подробнее ниже. Диск, реализующий S.M.A.R.T., может дополнительно реализовывать ряд процедур самотестирования или обслуживания, а результаты тестов хранятся в журнале самотестирования. Рутины самотестирования могут использоваться для обнаружения любых нечитаемых секторов на диске, чтобы их можно было восстановить из резервных источников (например, с других дисков в RAID-массиве). Это помогает снизить риск безвозвратной потери данных.

Отсутствие общего толкования

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

Предельный порог

Условие превышения порогового значения (TEC) – это прогнозируемая дата, когда критический атрибут статистики накопителя достигнет своего порогового значения. Когда программное обеспечение Drive Health сообщает о "Ближайшем T.E.C.", это следует рассматривать как "Предполагаемую дату отказа". В некоторых случаях дата не указывается, и можно ожидать, что накопитель будет работать без ошибок. Для прогнозирования даты накопитель отслеживает скорость изменения атрибута. Важно отметить, что даты TEC являются лишь оценками; жесткие диски могут и действительно выходят из строя раньше или позже указанной даты TEC.

В NVMe

Спецификация NVMe определила унифицированные атрибуты S.M.A.R.T. для различных производителей накопителей. Данные представлены на лог-странице длиной 512 байт.

Известные атрибуты NVMe S.M.A.R.T.

Офсет Длина Название атрибута Описание 00x001 Критическое предупреждение Критические предупреждения о состоянии контроллера. Определение битов: Бит 00, значение 1: Доступный резерв ниже порогового значения. Бит 01, значение 1: Температура превышает пороговое значение. Бит 02, значение 1: Надежность накопителя снижена. Бит 03, значение 1: Накопитель находится в режиме только для чтения. 10x012 Композитная температура Температура в кельвинах, представляющая текущую композитную температуру контроллера и его пространств имен. 30x03 1 Доступный резерв Процент доступного резервного пространства (пространства для избыточности). 40x04 1 Порог доступного резерва Процент порогового значения доступного резервного пространства. 50x05 1 Процент использования Процент износа накопителя. 70x0725 Зарезервировано 320x20 16 Единиц данных, прочитанных Количество 512-байтных единиц данных, прочитанных хостом с контроллера. Это значение не включает метаданные. Это значение указывается в тысячах (т.е. значение 1 соответствует 1000 единицам по 512 байт) и округляется в большую сторону. 480x30 16 Единиц данных, записанных Количество 512-байтных единиц данных, записанных хостом на контроллер. Это значение не включает метаданные. Это значение указывается в тысячах (т.е. значение 1 соответствует 1000 единицам по 512 байт) и округляется в большую сторону. 640x40 16 Команд чтения хостом Количество команд чтения, выполненных контроллером. 800x50 16 Команд записи хостом Количество команд записи, выполненных контроллером. 960x60 16 Время занятости контроллера Время, в течение которого контроллер занят обработкой команд ввода-вывода. 1120x70 16 Циклов питания Количество циклов включения/выключения питания. 1280x80 16 Часов работы Количество часов работы контроллера, исключая время работы в нерабочем состоянии питания. 1440x90 16 Некорректных отключений Количество некорректных отключений питания. Увеличивается, если уведомление об отключении не получено до потери питания. 1600xA0 16 Ошибок среды Количество случаев, когда контроллер обнаружил необратимую ошибку целостности данных, включая некорректируемые ошибки ECC, сбои контрольной суммы CRC или несоответствие тегов LBA. 1760xB0 16 Количество записей в журнале информации об ошибках Количество записей в журнале информации об ошибках за время эксплуатации контроллера. 1920xC04 Предупреждение, время композитной температуры Время в минутах, в течение которого контроллер работает, а композитная температура больше или равна пороговому значению предупреждения о композитной температуре и меньше критического порогового значения композитной температуры. 1960xC44 Критическое время композитной температуры Время в минутах, в течение которого контроллер работает, а композитная температура больше или равна критическому пороговому значению композитной температуры. 2000xC82×8 Датчик температуры 1–8 2160xD84×2 Температурное управление, переход температуры 1/2 2240xE04×2 Общее время для температурного управления 1/2 2320xE8280 Зарезервировано