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

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

Мало кто задумывается, почему какие-то DR-компании (DR – Data Recovery, восстановление данных) более известны, какие-то – менее, где-то восстанавливают больше данных, а где-то – меньше. Если задаться этим вопросом, то выяснится интересный факт: более известные DR-фирмы имеют в своем штате исследовательский персонал и немало инвестируют в разработки новых технологий восстановления информации. Те же компании, которые пользуются только коммерческими продуктами для восстановления данных, не проводят исследований и разработок, значительно менее известны; более того, их «известность» обычно не распространяется дальше населенного пункта, в котором они работают.

Почему так происходит, где корни успешности DR-компаний?

Конечно же, нельзя сбрасывать со счетов рекламу. Она делает немало, и намного привлекательнее та реклама, где вам показывают не только стандартные инструменты восстановления данных и обещают достать звезду с пластин почившего в Бозе жесткого диска, но и что-то особенное, собственное, уникальное. Так было много раз: когда компания Action Front анонсировала, а затем и представила публике технологию Signal Trace; когда компания HDD Surgery представила миру свои инструменты для работы в гермозоне; когда компания BVG Group представила систему восстановления данных HRT на базе легендарного программного комплекса hdd.exe; и т.п. Все эти фирмы в настоящее время – лидеры индустрии восстановления данных, они в принципе не нуждаются в рекламе, так как имеют серьезный научный задел и могут решать нетривиальные задачи.

И вот тут возникает закономерный вопрос – а что же такое есть data recovery?

Ответ на этот вопрос не такой простой, как может показаться на первый взгляд.

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

Любая современная наука строится на трех главных принципах: гипотеза, теория, опыт. Древние греки (Аристотель, Сократ, Диоген) заложили основу научного мировоззрения; можно без преувеличения сказать, что именно они и есть отцы современного НТП (научно-технического прогресса). Один создал основы систематики и классификации – наук, без которых просто невозможно представить все многообразие мира, невозможно его охватить одному разуму и невозможно в нем ориентироваться (а следовательно, и оперировать предметами мира, исследовать их, открывать их новые функции). Второй создал атомарную теорию материи – и не важно, что тогда в понятие «атом» вкладывался другой смысл – важно, что зародилось понимание того, что весь мир, любая вещь, состоит из маленьких, неделимых частей. На современном этапе познания мы пришли к тому, что такими частями являются кварки – но и это не конечный вывод. Мы делаем выводы исходя из инструментария – во времена Древней Греции не было ни Большого Адронного Коллайдера, ни синхрофазотронов, ни электронных микроскопов. Греки мыслили категориями, которые могли увидеть глазами. Мы мыслим категориями, которые видим сейчас с помощью тех тонких инструментов, которые имеем. Через 100 лет наши знания будут казаться анахроничными, но здесь и сейчас наши знания конечны.

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

После их рождения началась гонка разных производителей за… клиентами. Да, конечная цель любого бизнеса – это заполучить своего клиента, и стараться его удержать. Именно поэтому первоначальное количество фирм, производящих жесткие диски, было так велико: Teac, Quantum, Maxtor, Seagate, Western Digital, NEC, Fujitsu, Toshiba, Conner Tech., Conner Peripherals, Samsung и другие. И все эти компании вкладывали деньги в исследования: как увеличить емкость жестких дисков и их производительность, надежность; как сделать жесткие диски более компактными; и т.п. Я видел много разных и довольно необычных на сегодняшний взгляд НЖМД: громадные мастодонты весом по 40 килограммов, с десятком магнитных пластин внутри; небольшие устройства с интерфейсом PCMCI, подключавшиеся снаружи к старым ноутбукам; пятидюймовые уплощенные алюминиевые накопители Quantum BigFoot; и т.п. Все они отошли в небытие, но эти неудачные опыты произвели на свет единственную верную концепцию развития технологий цифровой записи: наращивать надо не размер жесткого диска, а плотность записи, сохраняя оптимальный размер пластины. И в этом ключе развитие шло дальше.

Современный жесткий диск – устройство не просто сложное, а высокотехнологичное и очень точное. Плотность записи достигла невиданных величин: до 2 Тбайт на пластину. Это далось нелегко: некоторые производители НЖМД канули в Лету, некоторые были поглощены другими. Ряд громких скандалов (Fujitsu MPG, преставшие работать как по мановению руки невидимого дирижера; Quantum Plus AS, начинавшие стучать головками, как сумасшедшие; Seagate Barracuda 7200.11 и набившая оскомину «муха ЦеЦе»; другие) заставил производителей переосмысливать подходы к производству, заставил развивать технологии и отбрасывать лишнее. Совершенствовались не только пластины, но и головки, и механизмы позиционирования, и возможности управления (микропрограмма, интерфейсы). Появились технологии SMART, Automatic Acoustic Management, HPA и другие – все это было следствием НТП.

Но все это было бы невозможно без фундаментальных исследований коллективов разработчиков крупнейших производителей HDD. Первый тип записи информации – параллельный – является не чем иным, как продолжением «дискетной» технологии. Использовалась только верхняя часть пластины, сектора располагались один за другим последовательно. Это накладывало ограничения на возможности наращивания емкости. Вслед за этим пришла идея использования глубинных слоев магнитных пластин – родилась перпендикулярная запись, потенциально увеличивавшая плотность записи (а значит, и полезную емкость) минимум в 8 раз; вслед за ней появилась крипто-лазерная, а затем и туннельная. Где границы использования магнитного слоя? Этого никто не знает, и я уверен, что потенциал НЖМД еще далеко не исчерпан.

Другие группы исследователей решили вовсе отказаться от магнитного типа записи, а заодно и от вращающихся дисков – так было положено начало технологиям SSD. Имеющие немало плюсов, твердотельные накопители, увы, обладают (пока – это важно подчеркнуть) ограниченным ресурсом и весьма высокой по отношению к традиционным HDD ценой. Однако компактность, энергосбережение и высокая производительность этих устройств делает их весьма перспективными, и исследования в направлении их удешевления и увеличения емкости не останавливаются ни на минуту. Достаточно сказать, что анонсированы (и уже производятся) SSD емкостью 12, 14 и 16 Тбайт (компания Samsung). Конечно, их цена пока невообразимо велика – но ведь и жесткие диски на заре их использования стоили совсем не мало. Так что все впереди.

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

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

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

Но постановка опыта – это не такое простое занятие, как может показаться. У опыта также есть своя методология. У него должны быть цель, предмет и порядок. Понятно, что имея гипотезу, для проверки которой используется опыт, его целью будет – проверить гипотезу. Предметом опыта будет предмет гипотезы. Ну а порядок проверки – это и есть порядок опыта. Пока вроде бы ничего особо сложного, не так ли? Однако как обозначить все эти моменты, имея в голове лишь некоторую мысль (гипотезу?). Давайте рассмотрим все это на примере.

Итак, мы имеем (гипотетически) нетривиальный случай потери данных. Готового решения нет и не предвидится в обозримом будущем. Начинаем размышлять, приходим к определенным выводам – например, для восстановления данных нам потребуется изменить микрокод масочного ПЗУ для того, чтобы ввести в микропрограмму ряд необходимых нам команд. Гипотеза есть – теперь необходимо подтвердить или опровергнуть саму возможность ее реализации. Для этого мы должны провести ряд опытов, целью которых будет изменение кода масочного ПЗУ, предметом – микрокод, а порядок опыта диктуется реализацией самого микрокода. Скажем, в нашем случае порядок опыта будет таким: подключение к линиям данных масочного ПЗУ, чтение его в бинарном виде, дизассемблирование, поиск возможности встроить свой собственный код, разработка этого кода, имплементация его в ПЗУ, отладка, запись в mask ROM, тестирование. На любом из этих этапов эксперимент может дать сбой – поэтому важно вести документирование опыта с тем, чтобы в случае неуспешного исхода найти ошибку и уже на ее основании решить, в каком направлении продолжать опыт и продолжать ли его вообще.

Вы скажете – да ведь ничего сложного, с этим справится любой толковый программист! – и ошибетесь. Прежде всего, существует несколько путей реализации опыта. «Бить» ли микрокод в лоб или идти по пути поиска знакомых частей кода, каким образом отлаживать модифицированную микропрограмму (физически загружая ее в масочное ПЗУ и рискуя «убить» устройство или использовать эмуляторы микроконтроллеров), и т.п. И, что не менее важно – дизассемблирование микропрограммы НЖМД сильно отличается от дизассемблирования компьютерных программ. Все дело в том, что микропрограмма накопителя пишется для совершенно других типов микроконтроллеров, обладающих сильно отличающимися наборами команд, адресуемым пространством, регистрами и другими характеристиками, чем архитектура x86. Кроме того, микропрограммы НЖМД в настоящее время пишутся так же, как и любые другие программы, на языках высокого уровня – а значит, конечный код упакован. Разные сегменты микропрограммы могут быть написаны разными программистами на разных языках (я встречал код, часть которого написана на Delphi, другая – на С, а третья – на машинном ассемблере), упакованы разными упаковщиками, связаны совершенно дикими процедурами. Разобраться во всем этом, встроить свой код и правильно скомпилировать конечную микропрограмму – задача нетривиальная. Именно поэтому так мало людей умеют работать с некоторыми типами накопителей. Хотите пример? Пожалуйста:

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

Таким образом, мы видим, что научный подход в восстановлении данных – краеугольный камень развития всей индустрии в целом. Однако думать, что он касается только опыта – т.е. случаев, когда не существует готового или известного решения проблемы – в корне неверно. Наиболее успешные DR-компании реализуют научный подход к работе с любым накопителем. Это поднимает уровень восстановлений до 80 – 90 % (стандартным уровнем «хорошей» DR-компании считается 60 – 70% успешных восстановлений).

В чем же заключается научный подход? О, на этот вопрос я, как ученый с почти 30-летним стажем, отвечу с удовольствием. Любое научное исследование состоит из трех компонент: цель, предмет и задачи (последние бывают первостепенные и вспомогательные). В случае с конкретным восстановлением данных цель – восстановить данные с конкретного устройства, предмет – уникальные данные пользователя, а задачи – разработать и реализовать алгоритм восстановления данных. При научном подходе к восстановлению данных с каждого заказа неизбежно возникает необходимость документирования этих самых цели и задачи, а также – предмета восстановления. Именно поэтому, прежде чем приступить к работам, мы проводим опрос заказчика: что мы ищем, где это расположено и как сохранялось. Это важные детали, позволяющие решить круг вспомогательных задач: планирование необходимого свободного пространства на накопителях-приемниках, реализация поиска необходимых данных, определение типа их сохранения (отдельные файлы, дамп, полная посекторная копия носителя и т.п. – вариантов масса).

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

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

Анализ присутствует при научном подходе практически на всех этапах восстановления данных. Диагностика – это анализ; построение карт секторов для вычитывания данных – также продукт анализа; проверка пользовательских данных – тоже анализ.

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

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

Вы можете возразить – о какой науке ты говоришь, Станислав, если целью твоей работы является зарабатывание денег? О нет, мой дорогой оппонент, вознаграждение – не цель, и даже не предмет восстановления данных. Деньги – это ресурс. Никакая наука не может существовать без вложений, и главным ресурсом в нашей цивилизации являются деньги. Без них мы не сможем проводить исследования, так как для их реализации требуются опыты, а опыт без материального обеспечения в высокотехнологичной области знания просто невозможен. Целью моей работы являются утерянные в силу тех или иных причин данные. Это очень важно понимать: наука никогда не работала ради денег, ее конечный продукт – Знание, а данные – это как раз и есть то самое знание, записанное на цифровые носители информации.

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

Это должен быть персонал с высшим образованием, поскольку только в высшей школе людей обучают ставить и решать научные проблемы. Не имея специальных знаний, как решать научные задачи? Уж мне-то, выпускнику Нижегородского университета, члену десятка научных обществ, организатору исследовательского коллектива HDD Research Group, специалисту с более чем 20-летним стажем, автору более 300 публикаций, из которых около 200 – научные, это известно доподлинно.

 

Станислав Корб

-5%