Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Работа современного винчестера (ликбез).

Работа современного винчестера (ликбез).

Современный винчестер является сложным устройством со встроенными микропроцессорами (микроконтроллерами), Контроллер винчестера, расположенный на плате электроники накопителя, отрабатывает команды, поступающие в его программно-доступные регистры из внешнего интерфейса. При подаче питания и по сигналу аппаратного сброса контроллер выполняет процедуру самодиагностирования, сначала проверяя собственное оборудование (ОЗУ, ПЗУ, регистры), а затем и остальные блоки. Далее инициируется запуск шпиндельного двигателя, и когда он наберет номинальные обороты, дается управление на вывод головок из зоны парковки и начинается управление их перемещением с помощью сервосистемы. Микроконтроллер загружает со служебных треков диска необходимую ему управляющую информацию. С диска считывается таблица трансляции секторов, списки дефектных блоков, паспорт диска и часть программ микроконтроллера. Для повышения надежности служебная информация обычно записывается с несколькими копиями, поскольку невозможность ее считывания приведет к потере работоспособности устройства. Служебная информация может храниться и в энергонезависимой электронной памяти EEPROM или флэш-памяти.

На основании служебной информации контроллер конфигурируется под характеристики конкретного гермоблока жесткого диска, с которым он работает (определяет списки рабочих головок, число цилиндров, число секторов в треках каждой зоны и т, п.). Обычно один и тот же тип блока электроники может использоваться для ряда моделей винчестеров, отличающихся числом рабочих поверхностей, причем физически у них в «пакете» может быть даже одно число дисков, но не все их поверхности работоспособны и используются. Обычно у таких накопителей может совпадать и «микропрограммное обеспечение» записанное в ПЗУ или флэш-памяти. После успешного завершения конфигурирования, подсистема жесткого диска становится готова к исполнению команд, поступающих по внешнему интерфейсу. Теперь винчестер способен предъявить паспорт диска (набор данных, описывающих все внешне доступные возможности накопителя).

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

Со временем, хранение данных на магнитном носителе всегда сопровождается появлением «сбоев», причин у которых может быть множество. Появляются дефекты на магнитной поверхности носителя, происходит случайное перемагничивание участка носителя, попадание посторонней частицы под головку, наблюдается неточность позиционирования головки над треком, колебания головки по высоте, вызванные внешней вибрацией или ударом по корпусу накопителя, уходят за допустимые пределы различные параметры (из-за изменения температуры, старения, давления и т. п.). Ошибки должны быть обнаружены и по возможности немедленно исправлены.

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

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

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

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

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

Резервная область, как правило, выделяется на внутренних цилиндрах, которые пользователю не показывают (в паспорте диска указывается объем диска без учета резервных цилиндров). Это переназначение делается на основе ведения таблиц переназначения треков, при этом уже потребуется дополнительное время на изменение позиционирования головок. Когда все резервные блоки будут использованы, тогда и появятся видимые дефектные блоки. Это является серьезным поводом для замены накопителя или к попытке его «исправления» за счет уменьшения его емкости. Возможны два основных метода скрытия дефектных участков.

При использовании механизма переназначения (assign) накопитель прописывает в поле идентификации дефектного сектора флаг перемещенного сектора и далее в поле данных этого сектора - номер резервного сектора, к которому необходимо обратиться для записи или чтения данных. Как правило, резервным сектором является первый сектор после рабочей области данных пользователя. При обращении к сбойному сектору во время операции чтения-записи данных контроллер читает флаг и адрес переназначения и производит позиционирование в резервную зону, чтобы осуществить чтение-запись данных в хорошем секторе. Дефектные сектора в этом случае «пропадают», но накопитель каждый раз, наткнувшись на сбойный сектор, позиционирует головки в резервную область. Этот процесс сопровождается щелчками и некоторым замедлением работы. При помощи процедуры «assign» можно скрыть только дефекты, находящиеся в полях данных. Если ошибки связаны с разрушением полей идентификации или поврежденной сервометкой, то такие дефекты методом переназначения скрыть нельзя.

Второй механизм скрытия дефектных секторов, реализуемый на заводе-изготовителе, заключается в пропуске дефектного сектора. При использовании такого метода, дефектный сектор игнорируется, а следующему за резервным сектором присваивается номер дефектного (и так далее, по цепочке), а самый последний сектор сдвигается в резервную зону. Естественно, такой метод скрытия, нарушает целостность последовательности форматирования нижнего уровня, т.е. система трансляции логической структуры диска LBA (logical block addressing - логическая адресация блоков) в физическую структуру CHS (cylinder, head, sector - физические цилиндр, головка, сектор) должна учитывать дефектные сектора, чтобы избежать обращения к ним. Метод пропуска требует пересчета таблиц транслятора и выполнения команды низкоуровневого форматирования, что делает невозможным его использование без потери данных пользователя. Именно по этой причине данный метод скрытия дефектов выполняется только в специальном (технологическом) режиме работы накопителя, например, утилитой FUJFMT.EXE, которая предназначена для скрытия дефектов в накопителях фирмы Fujitsu.

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

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

Списки дефектных блоков (треков) хранятся, как правило, в двух таблицах. Одна из них (P-list) считается постоянной и формируется при выпуске винчестера. Другая, растущая (G-list), формируется во время эксплуатации автоматически. У нового винчестера она пустая. Пользователю эти таблицы могут быть доступны лишь при использовании специальных низкоуровневых утилит обслуживания дисков. Когда штатные резервные треки тоже будут исчерпаны, диску можно продлить жизнь, выполнив его низкоуровневое переформатирование на меньшую емкость и изменив паспорт диска с помощью специальных утилит, работающих с внутренними таблицами дефектов и конфигурации. У диска можно исключить плохие поверхности - либо чисто пpoграммным путем, либо путем физической перекоммутации головок. Все эти действия должны быть отражены в паспорте диска.

Надежность считывания в большой степени зависит от точности позиционирования головок относительно продольной оси трека. Позиционирование, обеспечиваемое сервоприводом с выделенной сервоповерхностью, может и не быть оптимальным для каждой головки и требовать коррекции. Главным образом, эта коррекция необходима из-за изменения рабочей температуры. «Интеллектуальный» контроллер современного жесткого диска хранит карту отклонений для цилиндров и головок, которую он создает и периодически корректирует в процессе работы. Этот процесс автоматической термокалибровки накопителя запускается встроенным контроллером автоматически, а для системы, в которую он установлен, момент запуска этого процесса случаен.

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

Существует еще один процесс, асинхронно запускаемый контроллером диска - так называемое свипирование (если к диску долгое время отсутствуют обращения, он перемещает головки в новое, случайным образом определенное положение). Этот процесс предназначен для выравнивания степени износа поверхности диска.

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

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

Кроме того, в новые диски вводится и мониторинг температуры. Термодатчики, расположенные в устройстве, следят за температурой, о превышении первого порога (по умолчанию 60°С) устройство сообщает кодами ошибки 01/0B/01. Температура первого порога может программироваться. Если слежение за температурой в S.M.A.R.T. разрешено, то каждые 25 минут значение температуры записывается в журнале S.M.A.R.T. (страница 2F, ее чтение вызывает немедленное обновление записи замера температуры). По превышению порога частота обновления повышается (раз в 15 минут). По достижении второго порога (65°С) появляется предупреждение о необходимости отключения кодами 01/0B/80. Если разрешено автоматическое отключение, то шпиндельный двигатель будет выключен. Его последующий запуск может быть выполнен с помощью команды «Sterf Unit».

Отказ дисковых накопителей часто приводит к самыми крупными убытками, если потерянные данные не имеют копии. Поэтому их надежность стремятся повышать всеми возможными способами, но отказы все-таки случаются.  

 


Лицензия