Главная » Блог » Технологии » Особенности работы SSD накопителей

Особенности работы SSD накопителей

29 июня 2013

У Кулера увидел ссылку на статью в журнале Компьютерра – “Кивино гнездо: Закон Мёрфи для хранения данных”. Статья интересная, а в конце даже веселая.

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

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

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

Теперь о гарантированном удалении данных. Для магнитного накопителя специальная программа вначале перезаписывает все сектора файла случайным мусором, затем он удаляется. А вот с продвинутыми SSD накопителями это не сработает. Вспомним, что ячейки flash памяти имеют ограниченное количество циклов перезаписи. Далее, операционная система может перезаписывать одни блоки информации очень часто, а другие – очень редко. Чтобы избежать “затирания” одних и тех же ячеек, производители SSD придумали алгоритмы прозрачной для системы и пользователя перетасовки ячеек памяти. Система думает, что перезаписывает одну и ту же ячейку, а на самом деле накопитель может выполнять новые операции записи в различные ячейки, для их равномерного использования.

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

И еще один момент. В стате Компьютерры написано о двух группах, которые провели соответствующие исследования. Вначале я хмыкнул про себя, мол чего там такого исследовать? Подумаешь – записал, сравнил… Но потом сообразил, что вся эта логика выполняется процессором SSD, абсолютно прозрачно для операционной системы. То есть, для того, чтобы провести исследования, надо было как минимум выпаять микросхемы flash-памяти, установить их в панельки и после каждой перезаписи извлекать и считывать программатором. Или использовать более сложные способы подключения прямо в электрическую схему для перехвата “на лету” управляющих сигналов. Можно спросить у производителей SSD, но вряд ли они захотят раскрывать свои технологические секреты. :)