Данные с диска в обмен на скорость чтения

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

Ниже будет рассмотрен чуть подробнее один из аспектов процесса восстановления данных, применительно к современным моделям жестких дисков. Это лишь один аспект задачи восстановления (которая намного обширнее, включает в себя примерно 10 - 20 блоков сравнимого размера или сложности) он кажется интересным и в некотором смысле универсальным.

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

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

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

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

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

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

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

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


* Сектор - минимальный кусочек данных диска; в большинстве дисков он имеет размер 512 байт.




© www.b-base.ru, 2014.
(при цитировании ссылка обязательна,
полная перепечатка запрещена)