Зачем винчестеру журналы, и как ими пользоваться. Extended Comprehensive log.

     В далёкие времена конца 20-го века, разработчики дисковых накопителей сообразили, что имея на борту процессор, память и хранилище данных, можно не только выполнять чтение/запись данных пользователя, но ещё и заниматься самоанализом. Во многом этому способствовала производственная необходимость. Из-за возросшей сложности изготовления, частой смены модельного ряда и расширения функционала жестких дисков — стало важным быстро разбираться в причинах возникающих отказов.
Винчестеры постепенно стали обзаводиться способностью вести протоколы событий, и хранить их внутри себя. Поначалу это были специальные модули в микрокоде, в которые накопители регулярно сбрасывали различные параметры с датчиков: ошибки позиционирования, уровни сигналов, температуру, напряжение, и т.д.. Содержимое этих логов было недоступно ни пользователю, ни массовому прикладному ПО.
Однако, когда винчестеры выходили из строя, и возвращались на завод-изготовитель, то могли быть направлены в отдел анализа отказов при конструкторском бюро — лабораторию Failure Analysis, или сокращённо — FA-отдел. Их сотрудники переводили накопитель в технологический режим, считывали FA-журналы, интерпретировали их, и это облегчало устранение недостатков продукции.
Анализ отказов может спасти деньги, жизни и ресурсы, если его выполнить правильно. Это важная дисциплина во многих отраслях производства, таких как электронная промышленность, где она является жизненно важным инструментом, используемым при разработке новых продуктов и для улучшения существующих продуктовhttps://en.wikipedia.org/wiki/Failure_analysis
Появившаяся в середине 90-х годов технология S.M.A.R.T. (self-monitoring, analysis and reporting technology), по сути, была просто официально стандартизированной частью системы самодиагностики накопителя, использующей часть данных с датчиков и FA-журналов. Ей же она и осталась до настоящего времени. Цель стандартизации — привести показания накопителей разных систем, производителей и возраста, к единому виду, позволяющему интерпретировать их универсальными программами.
У подавляющего большинства пользователей, аббревиатура S.M.A.R.T. ассоциируется со смарт-атрибутами — набором числовых параметров, характеризующих степень физического износа и исправности накопителя. Выглядит это примерно так:
Victoria HDD SMART
Но на самом деле система SMART включает ещё как минимум, две важных составляющих. Это встроенные в накопитель SMART-тесты и… «те самые» журналы.
И если со SMART-тестами всё относительно понятно, возможность их запуска проста в реализации, многократно описана и встроена во многие популярные программы, то с журналами всё гораздо более туманно… Попытки поиска нужной информации по ключевым фразам в поисковиках — оканчиваются неудачей. А значит…
Пришло время немного приоткрыть тайну, и рассказать, что же всё-таки это такое.

Возможность работать с журналами накопителей появилась, начиная с 2000 г, в стандарте ATA/ATAPI-5 от комитета t13. Стандарт носил в основном, рекомендательный характер, и предлагал во всех новых разработках использовать 4 вида журналов:

  • SMART error log или его более распространённый вариант — Comprehensive SMART Error log: журнал ошибок, найденных системой самодиагностики накопителя в процессе обычной работы.
  • SMART self-test log: журнал результатов самотестов накопителя, искусственно запускаемых пользователем.
  • Host vendor specific: журнал, открытый на запись, в котором пользователи или программы могут хранить какие-то свои данные, например результаты работы тестирующего диск ПО.
  • Device vendor specific: специальный журнал, который используется изготовителем винчестера на своё усмотрение как расширение стандарта, но при этом доступен для получения всем желающим.

В первой половине 2000-х годов ёмкости накопителей перешагнули рубеж 128 Гб, и получили 48-битную адресацию. В результате чего в стандарте были пересмотрены форматы журналов, которые получили приставку Ext — от слова Extended, т.е. расширенные.

 - Наибольший практический интерес в настоящее время представляет журнал с названием «Ext Comprehensive SMART Error log». Именно в него большинство накопителей складывают информацию о том, когда, и на каких адресах у них возникли проблемы с чтением-записью, а попросту — бэд-блоки.

Таким образом, посмотрев в этот журнал, можно увидеть, есть ли вообще дефекты на накопителе, где и как они локализованы, без запуска каких-либо тестов и затрат времени. Это может быть особенно полезно перед восстановлением данных, где важна скорость предварительной диагностики и максимально бережное обращение с накопителем.

Рассмотрим работу с Extended Comprehensive SMART Error log в программе Victoria версии 4.75. Для проведения эксперимента важно, чтобы накопитель был НЕ новым, иначе все его логи будут пустыми, и ничего интересного мы в них не увидим. В качестве подопытного кролика был взят изрядно потрёпанный жизнью винчестер USB 3.0 фирмы ADATA. Программа Victoria определила, что на самом деле это накопитель HGST с интерфейсом SATA III, подключенный через USB-SATA мост. А значит, он поддерживает технологию SMART, и всё, что с ней связано.

Victoria USB HDD passport

Переходим на вкладку SMLogs и щёлкаем по заголовку левого окна (или по кнопке Get directory, что равнозначно). Мы получим оглавление журналов — список всех SMART-журналов, которые имеются в накопителе.

Victoria HDD SMART Log

Затем находим журнал под номером 03 с нужным нам названием — Extended Comprehensive log, и щёлкаем по нему. Программа начнёт чтение журнала из накопителя (иногда это может занять несколько секунд). После чего в правом окне появится интерпретация содержимого журнала.
Мы видим список из одинаковых структур, сгруппированных по 5 штук. Это 5 команд, которые принял накопитель перед той командой, что предшествовала ошибке. Если прокрутить список немного вниз, то мы увидим шестую, завершающую структуру. В ней указано время жизни по 9-му атрибуту SMART на момент ошибки, код ошибки и адрес ошибки.
И наконец, в самом конце списка находится суммарное количество ошибок, которые пережил накопитель.

Victoria HDD Smart Log

К сожалению, не у всех накопителей журнал заполняется корректно. В частности, у некоторых экземпляров HDD Seagate вместо адресов могут быть числа, многократно превосходящие объём диска. Причина этого мне пока неизвестна уже известна. Ждите обновление версии до 4.76 =)

Журнал может состоять из множества секторов, а количество записей достигать нескольких тысяч. В таком случае, просматривать его вручную довольно утомительно. Для практического применения его содержимого — в меню, вызываемом по правой кнопке мыши, есть пункт «генерировать скрипт для тестов».

Victoria HDD SMART log menu

Выполнив это действие, мы получим список диапазонов в виде текстового лог-скрипта. Файл сохраняется в папке с названием модели накопителя, с учетом настроек путей к логам, заданных в Setup.

Указанные в файле  участки диска могут быть автоматически проверены сканом поверхности.

  1. Открываем Tests, и на кнопке Scan вызываем меню.
  2. В меню выбираем «Open defect log as script» и открываем файл.
  3. Надпись на кнопке заменится на «Start script»
  4. Запускаем скрипт, нажав кнопку.

Будут автоматически проверены те места, которые были занесены в SMART-журнал.

Victoria HDD Smart Log

Victoria HDD Surface scan from script

Если во время проверки будут найдены ошибки, то по ним будет построен еще один список, который допишется в конец того же файла. И его можно снова подгрузить в скан, включить опции ремонта (например remap), и попытаться вылечить дефектные места. При каждом запуске скрипта будет использована лишь последняя его сессия, а вышестоящие и пустые проигнорированы. 

Файл текстовый, и при необходимости его сессии можно подправить в блокноте.

Victoria HDD Scan script

Формат скрипта следующий:
— 1-я строка: обязательный заголовок «Victoria defects log 1.0».
— Затем через произвольное количество пустых строк — разделительная строка с датой и временем вида «Start: 30.08.2019 17:16:52» (слово «Start» — обязательно).
— Далее идут подряд строки заданий вида: [адрес], [количество секторов], необязательный комментарий.
Несколько идущих подряд строк образуют сессию. Пустая строка означает конец сессии.

В следующих статьях будут рассмотрены другие журналы SMART и их практическое применение.

Сергей Казанский, 06.09.2019г.

Понравилась статья? Поделитесь ей:
Технический центр «Victoria» 2004-2020, Беларусь. © Сергей Казанский.
наверх