Как SSD достигает выравнивания износа, когда диск почти заполнен?

1949
dotNET

Я пытаюсь понять это. Скажем, у меня есть SSD на 256 ГБ, 180 ГБ которого уже заняты постоянными файлами (ОС, установленные программы и т. Д.). Оставшиеся 70 ГБ или около того получают новые файлы, созданные и удаленные. Не означает ли это, что чипы NAND этой части будут изнашиваться раньше, чем область, файлы которой не изменены? Или SSD перемещает неизменяемые файлы с течением времени?

5
Короткий ответ: твердотельные накопители постоянно перемещают блоки, и им все равно, активно ли на них ссылаются данные. Учтите, что удаление файлов обычно только удаляет указатель на блоки из файловой системы, но фактически не очищает блоки данных. У меня нет достаточно времени, чтобы составить правильный ответ прямо сейчас, но это, скорее всего, будет суть ответа также со ссылками. a CVn 9 лет назад 0
Если ваша ОС время от времени использует команду TRIM, она обязательно очистит блоки данных после того, как вы удалили файл. По крайней мере, периодически. И даже если это не так: блоки должны быть очищены в следующий раз, когда вы захотите написать в него. Slizzered 9 лет назад 0
Точно так же, как и в случае с ячейками, которые не помечены файловой системой как данные на них. Ramhound 9 лет назад 0
Я бы сказал, что правильный ответ «это зависит» ... в основном от SSD или, точнее, от его контроллера и прошивки. Алгоритмы износа будут отличаться для разных марок и разных производителей. Fox 9 лет назад 0

1 ответ на вопрос

3
Wes Sayeed

SSD перемещает неизменяемые файлы с течением времени.

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

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

Допустим, у вас есть SSD на 500 ГБ, который заполнен на 100%. Теперь предположим, что 499 ГБ этих данных - это файл, который никогда не изменяется, но у вас есть файл 1 ГБ, который постоянно меняется. Если вы удалите этот файл объемом 1 ГБ, а затем скопируете другой файл объемом 1 ГБ, контроллер флэш-памяти в этот момент выполнит одно из двух действий:

  • Все или некоторые новые данные будут выделены для запасных ячеек, оставляя старые ячейки в урезанном состоянии.
  • Ячейки объемом 1 ГБ из 499 ГБ данных, которые никогда не изменятся, будут скопированы в другие доступные ячейки. Старые ячейки будут стерты и переписаны с новыми данными.

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

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

«SSD перемещает неизменяемые файлы с течением времени». Или, по крайней мере, они должны, но это, конечно, зависит от контроллера. Если бы твердотельные накопители * всегда * перемещали устаревшие данные (например, установленные ОС и файлы программ), то мы никогда не сталкивались с проблемой замедления Samsung 840 Evo. Karan 9 лет назад 0
Не обязательно. Это зависит от контроллера, но мы никогда не узнаем подробности о том, как прошивка принимает решения о перераспределении. Если накопитель проводит большую часть своего времени за чтением (как в случае с диском ОС), требуется очень небольшое выравнивание износа. Предположительно, встроенному программному обеспечению известно число циклов каждой ячейки, и логично предположить, что встроенное ПО предпочло бы использовать «свежую» ячейку, а не использованную, но урезанную. Для больших твердотельных накопителей вполне возможно, что могут пройти годы, прежде чем потребуется перераспределение, в зависимости от использования, конечно. Wes Sayeed 9 лет назад 0
Проблема 840 EVO была вызвана ошибкой прошивки. Как мы обнаружили, дрейф напряжения со временем вызывает ослабление ячеек, и их необходимо периодически обновлять, независимо от того, есть ли данные для записи или нет. Проблема Samsung заключалась в том, что алгоритм выравнивания износа * не * перераспределял элементы, когда это было необходимо, - вероятно, потому, что дрейф напряжения происходил быстрее, чем предсказывал Samsung. Конечно, это предположение, потому что Samsung не вникает в мелкие детали ошибки и влияет только на эту модель накопителя (другие накопители на основе TLC не затрагиваются). Wes Sayeed 9 лет назад 0