26 июл. 2012 г.

Проблема TRIMM в SSD жестких дисках

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

Поддержка низкоуровневой команды TRIMM появилась в Windows 7. Теперь при любом удалении данных (необратимом, а не простом перемещении в Корзину) вместе с адресами нахождения удаляемых файлов посылается и команда TRIM.

Она "объясняет" SSD, что указанные области более не содержат действительных данных, и поддерживать их состояние не следует. При первом же стирании блока в такие ячейки не будут возвращаться хранившиеся в них значения, они останутся очищенными. Теперь данные в заранее обнуленные ячейки будут записываться немедленно!

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

Если операционная система и сам твердотельный диск работают с инструкцией TRIM, все происходит иначе. Фактическое обнуление неиспользуемых ячеек выполняется при каждом удобном случае, например, когда изменяются любые данные, расположенные в одном с ними блоке стирания. Если учитывать, что размер стираемого блока составляет 512 Кбайт для одного чипа флеш-памяти, на реальном диске с 4, 8 или 16 чипами удаленные данные уничтожаются без возможности восстановления очень быстро.

Простые эксперименты с удалением данных и попытками их восстановления различными программами показали, что на современных дисках SSD в Windows 7 так и происходит. Более того, программы восстановления вроде бы находят некоторые удаленные файлы, но после их извлечения выясняется, что содержимое безнадежно испорчено. Из-за чередования чипов какие-то фрагменты файла, возможно, сохранились, но остальные давно уже были переписаны нулями.

Если пользователь удаляет файлы и папки с SSD, нужно быть готовым к тому, что "раз умерла — значит умерла!". Поскольку микропрограмма накопителя очищает не используемые файловой системой ячейки при первой же возможности, восстановить эти данные не поможет ни одно средство.