Несколько слов о селфскане

В настоящей статье не будут рассматриваться, обсуждаться или описываться способы запуска селфсканов на НЖМД — у нее другие цели. Цели настоящей статьи — обсуждение теоретических вопросов понятия «селфскан», а также некоторые практические советы по его применению. Автор ориентирует настоящую статью, прежде всего, тем читателям, которые обладают программно-аппаратными комплексами для ремонта HDD и желают знать и понимать о селфскане немного больше, чем написано в документации к ПАК.

Что такое селфскан?

Селфскан, или сэлфтест (русифицированное написание английских слов selfscan, selftest) — это часть процесса производства НЖМД, как правило, завершающая, производящая подготовку накопителя к эксплуатации конечным пользователем. Обычно селфскан — это запрограммированная последовательность действий, выполняемых накопителем самостоятельно с целью его юстировки, дефектоскопии и т.п. Для устройства, основным логическим узлом которого является микроконтроллер, это вполне естественно — дешевле использовать в производстве этот самый микроконтроллер, чем внешние устройства. Как правило, программа для выполнения селфскана сохраняется в накопителях, однако имеются семейства, в которых по окончании процедур самотестирования эта программа, или ее часть, стираются. Причиной тому обычно бывает небольшой объем микросхем ROM.

Селфскан принято делить на калибровочную часть и часть дефектоскопическую. Калибровочная часть, или калибратор — это набор процедур, призванных рассчитать оптимальные параметры БМГ (коэффициенты усиления, токи и т.п.), адаптивы поверхности пользовательской и служебной зон, и т.п. Как правило, калибровочная часть предшествует дефектоскопической, и может как включаться в общую процедуру селфскана (например, накопители Seagate и Maxtor), так и запускаться отдельно (к примеру, IBM или Western Digital).

Дефектоскопическая составляющая селфскана — это многопроходовые внутренние тесты, призванные выявить области нестабильностей или дефектов поверхности, и скрыть их. Дефектоскопическую часть можно условно разбить на следующие группы тестов: стресс-тесты, тесты поверхности, тесты позиционирования, тесты-заполнители. Стресс-тесты — это группы тестов, моделирующие определенные стрессовые ситуации в работе HDD (например, запуск и немедленный останов шпиндельного двигателя, разогрев НЖМД до критических температур и т.п.). Эти тесты могут приводить к выходу из строя накопителей, имеющих плохо пропаянную электронику, плохо сбалансированные пластины и т.п.

Тесты поверхности — это группа тестов, предназначенных для поиска и скрытия дефектных или нестабильных секторов. Как правило, работают в одном из трех режимов. В первом режиме таблицы дефектов строятся в памяти селфсканящегося накопителя, и по окончании теста записываются в служебную зону. Второй режим пишет дефекты непосредственно в таблицы дефектов служебной зоны; третий режим наиболее продвинут, записи о дефектах делаются в файлы логов, и таблицы дефектов заполняются уже по окончании тестирования, на основании этих самых логов. При таком подходе таблицы формируются сразу с учетом всех обнаруженных дефектов, уменьшая время селфскана.

Тесты позиционирования призваны выявить слабые места в системе позиционирования накопителя и по возможности подстроить необходимые ее константы. Как правило, разогрев накопителей до определенных температур также производится с использованием тестов позиционирования. Обычно в процедуру селфскана включаются тест-бабочка, случайное позиционирование и позиционирование в определенном наборе границ.

Тесты-заполнители — в принципе, можно назвать внутренним форматированием HDD. Они необходимы для того, чтобы исключить попадание в таблицы дефектов так называемых софт-бэдов — секторов, при записи которых неправильно рассчиталась контрольная сумма.

Коротко о главном

Для запуска селфскана нужно соблюдение как минимум двух условий — наличия в накопителе или его памяти правильной прошивки и наличие правильного задания. Задание — это список тех тестов, которые накопитель должен пройти в процессе самотестирования. Как правило, задание хранится в специализированном модуле, подгружается во время инициализации селфскана и имеет вид скрипта или таблицы. В этом скрипте, обычно в унифицированном формате, приводятся номера (ID) тестов, которые необходимо выполнить, и параметры каждого теста. Вполне естественно, что для параметров в поле скрипта или таблицы зарезервировано определенное количество байт, которые могут либо использоваться, либо не использоваться (в этом случае поле будет заполнено определенным паттерном — например, 00h или FFh). Как пример, приведу фрагмент скрипта селфскана накопителя Maxtor Romulus:

0x0000   F5 00 E0 10 00 00 00 00 03 00 02 00 01 02 01 05   o.a............. 0x0010   36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   6............... 0x0020   81 00 00 02 00 00 00 00 00 00 00 00 14 00 00 00   ?............... 0x0030   11 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

В данном случае запись об одном тесте в скрипте составляет 8 слов, первые два байта — это ID теста (например, F5 00 — это пропуск теста), следующие 7 слов — это его параметры. В принципе, задания можно изменять вручную, однако стоит помнить, что часто модули служебной зоны НЖМД защищены контрольной суммой.

Правильная прошивка — это краеугольный камень селфскана. Существует огромное количество обстоятельств, благодаря которым прошивка может оказаться непригодной для успешного самотестирования HDD. В первую очередь, стоит учитывать возможность физического разрушения прошивки (к примеру, дефекты в служебной зоне, или испортившаяся контрольная сумма модуля). Затем — возможность модификации прошивки программами для ее обновления. Ну и, наконец, возможность несоответствия имеющейся прошивки с необходимой, хотя и маловероятная, но, все-таки, имеется.

Таким образом, прежде, чем производить инициализацию процедур самотестирования НЖМД, необходимо проверить целостность прошивки и убедиться в правильности задания (скрипта). Например, это можно сделать, используя ПАК PC-3000 или HRT.

Как правило, последовательность тестов селфскана (рис. 1) подчиняется определенной закономерности. Вначале происходит калибровка накопителя, после чего — форматирование пользовательской зоны, стресс-тестирование и калибровка констант позиционирования, а уже затем — дефектоскопия.

Общая схема последовательности отработки процедур селфскана

Рис. 1. Общая схема последовательности отработки процедур селфскана

Однако, существует ряд накопителей, для которых селфскан — это не только подготовка пользовательской зоны, но и подготовка служебной. В частности, при запуске селфскана для накопителей Seagate Barracuda, по окончании второго теста, в служебную зону записывается определенная область памяти, в которой должны находиться оверлей АТА-режима, паспорт и таблицы SMART. Накопители Maxtor Calypso, Sabre и N40P при запуске селфскана из альтернативной служебной зоны полностью формируют рабочую служебную зону, и после ее формирования передают управление селфсканом ей. Таким образом, в блок-схему можно ввести элемент «Формирование рабочей служебной области» (рис. 2).

Общая блок-схема отработки процедур селфскана на накопителях Seagate Barracuda и Maxtor N40P, Sabre, Calypso

Рис. 2. Общая блок-схема отработки процедур селфскана на накопителях Seagate Barracuda и Maxtor N40P, Sabre, Calypso

Как производить мониторинг селфскана

Существует три способа производить мониторинг процедуры самотестирования:

  • мониторинг регистров устройства
  • мониторинг светового индикатора
  • мониторинг в терминале устройства

1. Мониторинг регистров устройства

Может производиться с помощью таких программ, как HDDL, viewregs, Victoria и т.п. Как правило, во время прохождения операций селфскана в регистрах накопителя наблюдаются определенные значения. К примеру, при прохождении селфскана на накопителях Maxtor (рис. 3), регистр 0х07h содержит значение 10h, которое по окончании его или при ошибке сменится на 50h; значения в других регистрах несут информационный характер — номер теста, его ID, координаты тестирования и т.п. в зависимости от НЖМД.

Показания в регистрах накопителя Maxtor в состоянии селфскана (программа HDDL)

Рис. 3. Показания в регистрах накопителя Maxtor в состоянии селфскана (программа HDDL)

2. Мониторинг светового индикатора

Наиболее удобный способ мониторинга селфскана, так как не требует дополнительного оборудования кроме индикатора. Накопители Quantum и старые накопители Samsung уже имеют индикатор на плате электроники — состояние селфскана очень удобно оценивать по ним (рис. 4, 5).

Современные накопители, как правило, не имеют индикатора активности, однако его можно смонтировать на накопитель, либо воспользоваться установленными в стандартный корпус индикаторами. Смонтировать индикатор на накопитель Maxtor очень просто: необходимо всего лишь прикрепить выводы светодиода к ножкам 39 и 40 разъема IDE накопителя (рис. 6). Для других накопителей придется воспользоваться принципом, реализованным в материнских платах — между 39 ножкой разъема IDE и 5 V через резистор.

Индикатор активности на плате накопителя Samsung (WNR-310601A)

Рис. 4. Индикатор активности на плате накопителя Samsung (WNR-310601A)

Индикатор активности на плате накопителя Quantum Fireball TM

Рис. 5. Индикатор активности на плате накопителя Quantum Fireball TM

Схема подключения индикатора активности к ножкам разъема IDE накопителя

Рис. 6. Схема подключения индикатора активности к ножкам разъема IDE накопителя

Подключение внешнего индикатора активности к HDD Maxtor Romulus

Подключение внешнего индикатора активности к HDD Maxtor Romulus

Рис. 7, 8. Подключение внешнего индикатора активности к HDD Maxtor Romulus

3. Мониторинг в терминале

Наиболее известными объектами мониторинга селфскана в терминале являются накопители Seagate и Samsung. Однако, мониторить в терминале можно также селфскан накопителей Maxtor некоторых семейств и Samsung (рис. 9).

Часть терминального лога селфскана накопителя Seagate Barracuda IV

Рис. 9. Часть терминального лога селфскана накопителя Seagate Barracuda IV

Терминал удобен тем, что все происходящие события мы видим наглядно, накопитель сам пишет нам, что он делает.

Заключение

В заключение я хотел бы дать несколько советов.

Первое — перед запуском селфскана необходимо убедиться в целостности служебной информации HDD. Если какие-то модули служебной области не читаются или читаются с ошибкой — это может привести к зависанию селфскана или к неправильному его старту.

Второе — от начала селфскана и до его завершения не выключать питание накопителя. Для некоторых из них очень важно содержимое буферного ОЗУ, и если его сбросить, селфскан продолжится с неверными параметрами и в итоге закончится ошибкой.

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

Селфскан как инструмент ремонта — очень мощный, но использовать его нужно крайне осторожно. Ни в коем случае не стоит запускать селфскан на накопителе, с которого нужны данные — селфскан полностью разрушит пользовательскую информацию, часто — уже на первых секундах работы. Неудачно прерванный селфскан может навсегда испортить накопитель — поэтому блоки питания, от которых запитаны накопители, следует подключать через источники бесперебойного питания.


Автор: Станислав К. Корб
Опубликовано 20 февраля 2006г.
© 2005—2006 HDDGURU.COM, iHDD.RU