SSD действительно хранит данные без питания, но заряд в ячейке не остается неизменным
NAND относится к энергонезависимой памяти. После отключения SSD записанная информация остается в ячейках, поэтому накопитель можно извлечь из компьютера и через несколько месяцев снова прочитать.
Однако энергонезависимость не означает бесконечное хранение.
Внутри NAND информация кодируется состоянием ячейки, которое контроллер определяет по пороговому напряжению транзистора. Электрический заряд со временем меняется из-за утечек и других процессов в структуре памяти.
Пока изменение небольшое, контроллер без проблем определяет правильное состояние.
Если распределение напряжений слишком сильно сместилось, вероятность битовых ошибок растет. Сначала их исправляет ECC. Затем контроллеру приходится использовать более сложные процедуры повторного чтения. Если число ошибок превышает возможности коррекции, часть данных становится нечитаемой.
У обычного жесткого диска механизм хранения другой. SSD способен годами лежать совершенно бесшумно и выглядеть исправным, пока при следующем подключении не выяснится, что определенные страницы NAND читаются с большим количеством ошибок.
Откуда появилась история про один год хранения SSD
В интернете регулярно встречается утверждение: "SSD без питания хранит данные всего один год".
Источник у этой цифры действительно существует, но ее часто вырывают из контекста.
Отраслевой стандарт JEDEC JESD218 задает требования к ресурсу и сохранности данных SSD. Для клиентского накопителя используется требование хранения данных в выключенном состоянии в течение одного года при температуре 30 °C.
Но речь идет не о новом SSD.
Условие применяется к накопителю, который уже достиг своего заявленного ресурса записи. То есть NAND предварительно подверглась нагрузке, соответствующей полной endurance rating накопителя.
Именно в таком состоянии клиентский SSD должен сохранять данные в заданных стандартом условиях.
Для enterprise SSD в таблице фигурируют три месяца при 40 °C. На первый взгляд получается абсурд: серверный SSD якобы хранит данные хуже потребительского.
Причина находится в условиях тестирования, а не в качестве накопителя.
Enterprise SSD рассчитывается на гораздо более тяжелую запись и достигает своей точки окончания ресурса после значительно большей нагрузки на NAND. Кроме того, сценарий его эксплуатации предполагает практически постоянное питание.
Требования JEDEC для клиентских и серверных SSD с соответствующими температурами и сроками приводит Kingston в разборе классов SSD.
Поэтому один год нельзя использовать как таймер, после которого фотографии на домашнем SSD должны исчезнуть.
Это минимальное требование для определенного класса устройства, определенной температуры и SSD на границе заявленного ресурса.
Новый SSD и SSD после полного TBW находятся в разных условиях
Представим два одинаковых накопителя.
Первый почти новый. На него записали 3 ТБ, затем положили на полку.
Второй несколько лет использовался как рабочий диск, пережил сотни терабайт записи и приблизился к заявленному TBW. После этого на него скопировали архив и тоже отключили.
Одинаковый контроллер и одинаковая модель еще не означают одинаковую сохранность данных.
Каждый цикл программирования и стирания постепенно изменяет структуру NAND. По мере накопления Program/Erase cycles увеличивается число дефектов, а характеристики ячеек становятся менее стабильными.
Поэтому data retention зависит от износа.
Это одна из причин, по которым ресурс SSD нельзя обсуждать исключительно как вероятность внезапной смерти контроллера. Даже если накопитель продолжает прекрасно работать, физическое состояние NAND после большой записи уже отличается от состояния нового устройства.
И именно крайний случай такого износа используется в стандартных испытаниях endurance.
Что на самом деле хранится внутри ячейки NAND
Проще всего представить SLC.
Одна ячейка хранит один бит. Контроллеру нужно различить два состояния.
У MLC в одной ячейке находятся два бита, поэтому требуется четыре состояния.
TLC хранит три бита и использует восемь состояний.
QLC хранит четыре бита, поэтому контроллеру приходится различать уже 16 уровней.
Micron наглядно показывает эту разницу в материалах по устройству NAND: два состояния у SLC, четыре у MLC, восемь у TLC и шестнадцать у QLC.
Чем больше состояний необходимо поместить в доступный диапазон пороговых напряжений, тем меньше расстояние между соседними диапазонами.
Представим шкалу, на которой требуется определить, в какой зоне находится сигнал.
Если зон всего две, между ними можно оставить большой запас.
Если зон шестнадцать, границы располагаются значительно плотнее.
Именно поэтому контроллеры современных QLC SSD нуждаются в развитой системе коррекции ошибок, точном управлении NAND и сложных алгоритмах чтения.

Почему QLC не означает, что данные обязательно исчезнут раньше
Из предыдущего раздела легко сделать слишком прямой вывод: SLC надежна, TLC терпима, QLC опасна для данных.
В реальном SSD все сложнее.
Пользователь работает не с отдельной голой NAND-ячейкой. Между файловой системой и флеш-памятью находится контроллер.
Он выполняет ECC-коррекцию, управляет блоками, отслеживает ошибки, использует запасную область, меняет параметры чтения и может переносить данные.
Производители NAND одновременно совершенствуют саму структуру памяти.
Samsung прямо указывает, что QLC из-за более узких диапазонов напряжений потенциально имеет менее выгодные характеристики retention по сравнению с TLC. При этом современные SSD компенсируют ограничения алгоритмами управления ошибками. Разницу между TLC и QLC компания описывает на своей странице технологий SSD.
Поэтому тип NAND дает представление о физических ограничениях, но не позволяет по одной надписи TLC или QLC определить реальный срок хранения конкретного SSD.
Хороший QLC SSD с современным контроллером может оказаться предсказуемее плохо спроектированного дешевого TLC-накопителя.
Почему SSD вообще начинает читать одну ячейку неправильно
Контроллер не спрашивает ячейку: "какие четыре бита были записаны три года назад?"
Он измеряет ее электрическое состояние.
Затем сравнивает результат с набором порогов.
Если состояние попадает в ожидаемый диапазон, значение определяется правильно.
Со временем распределение может смещаться и расширяться. Соседние состояния начинают хуже отделяться друг от друга.
Контроллер располагает инструментами, позволяющими работать с этим.
Первый уровень защиты дает ECC.
В современных SSD применяется мощная коррекция ошибок, включая LDPC в ряде поколений контроллеров. Она позволяет восстановить исходные данные, даже если часть прочитанных битов ошибочна.
Контроллер может также повторять чтение с другими reference voltages.
Поэтому появление отдельных физических ошибок в NAND еще не означает повреждения пользовательского файла.
Проблема начинается, когда число ошибок в конкретной области превышает возможности системы коррекции.
Износ NAND ухудшает запас до этой границы
Program/Erase cycle состоит из программирования страниц NAND и последующего стирания блока.
Стирание происходит блоками, а не отдельными пользовательскими файлами. Контроллер поэтому постоянно перемещает данные, выполняет garbage collection и распределяет нагрузку между ячейками.
Каждый P/E cycle понемногу изнашивает изолирующую структуру транзистора.
В результате меняются характеристики программирования и хранения заряда.
Производитель учитывает это при назначении endurance rating.
Когда в спецификации SSD указано 600 TBW, это не означает, что на отметке 599 ТБ все ячейки исправны, а после следующего терабайта NAND одновременно выходит из строя.
TBW является заявленным ресурсным показателем накопителя при заданных условиях и гарантийной политике производителя.
SSD может пережить значительно больше записи.
Но после большого количества циклов использовать его как холодный архив менее разумно, чем свежий накопитель с небольшой историей записи.
Почему TBW и срок хранения нельзя переводить друг в друга
Например, два SSD имеют одинаковые 600 TBW.
Один за пять лет записал 50 ТБ.
Другой использовался для интенсивной обработки видео и записал 550 ТБ.
По гарантийному лимиту оба накопителя пока находятся внутри 600 TBW.
С точки зрения retention состояние NAND отличается.
На срок хранения влияют число циклов, температура использования, температура хранения и конкретная память.
Поэтому нельзя вычислить что-то вроде:
600 TBW = пять лет хранения;
300 TBW остатка = еще два года;
100% SMART Health = данные гарантированно пролежат десять лет.
Таких зависимостей нет.
SMART показывает состояние накопителя по параметрам, которые предоставляет его прошивка. Он не умеет предсказывать точную дату, когда конкретный выключенный блок NAND перестанет корректно читаться.
Почему исправный SSD может сам поддерживать данные, пока получает питание
Работающий SSD находится в намного более выгодном положении, чем отключенный накопитель в шкафу.
Контроллер может обнаруживать области с растущим числом ошибок и переносить данные в другие блоки.
В индустрии применяются фоновые механизмы контроля и refresh. Конкретная реализация зависит от накопителя и прошивки.
Western Digital в техническом документе по ресурсу SSD прямо пишет, что современные накопители могут использовать фоновые задачи для наблюдения за давностью записи NAND-блоков и обновлять области с повышенной частотой ошибок или приближающиеся к пределу retention.
Именно здесь проходит фундаментальная разница между SSD в работающем NAS и тем же SSD, который три года лежит в коробке.
Отключенный контроллер ничего не контролирует.
Он не считывает ECC.
Не переносит стареющие страницы.
Не видит изменение распределения напряжений.
Все механизмы поддержки начинаются только после подачи питания.
Значит ли это, что SSD достаточно раз в год включать в розетку
Не обязательно.
Популярный совет звучит примерно так: "Раз в полгода подключайте SSD на несколько часов, и контроллер все освежит".
Такой универсальной гарантии нет.
Алгоритмы firmware различаются. Производитель конкретного потребительского SSD обычно не обещает, что простое присутствие питания в течение двух часов обязательно приведет к чтению и перезаписи каждого холодного блока.
Контроллер может запускать фоновые процессы. Но считать неизвестный внутренний алгоритм полноценной стратегией резервного копирования нельзя.
Если данные действительно ценны, надежнее периодически проверять сам архив.
Считать файлы.
Проверить контрольные суммы.
При необходимости скопировать данные на новый носитель.
Так вы не надеетесь на то, что firmware незаметно выполнила нужный refresh, а подтверждаете читаемость информации на уровне самих файлов.
Почему чтение архива полезнее, чем просто включение SSD
Допустим, накопитель пролежал два года.
После подключения Windows показывает раздел, папки открываются, SMART не сообщает ничего необычного.
Это хороший знак, но проверены пока только структуры, к которым система обратилась.
На диске может находиться 2 ТБ фотографий, из которых компьютер прочитал несколько мегабайт метаданных и пару каталогов.
Полная проверка заставляет SSD физически читать гораздо большую часть NAND.
Контроллер получает возможность обнаружить корректируемые ошибки в реально прочитанных областях.
Если использовать файловые контрольные суммы, можно проверить еще и соответствие содержимого исходному состоянию.
Для больших фотоархивов удобнее хранить checksum-файл, созданный при записи архива.
Тогда через несколько лет можно определить не субъективное "фотографии вроде открываются", а совпадает ли каждый проверенный файл с исходной версией.
Почему ошибка SSD может годами оставаться незаметной
Большая часть архива обычно не читается постоянно.
Семейная фотография лежит в каталоге с 2018 года. Ее записали один раз и больше никогда не открывали.
Если конкретный блок постепенно ухудшается, операционная система об этом не знает.
SMART тоже не обязан заранее показать пользовательский файл, который скоро станет нечитаемым.
Проблема обнаружится только при обращении.
Поэтому для архивов существует понятие data scrubbing: хранилище периодически читает данные, проверяет их целостность и при наличии избыточности может восстановить поврежденную копию.
Так работают некоторые серверные и NAS-сценарии.
Один внешний SSD в ящике такой защиты не имеет.

Температура влияет на retention намного сильнее, чем кажется
Память стареет химически и электрически, поэтому температура влияет на скорость процессов внутри NAND.
Высокая температура хранения ухудшает retention.
SSD, лежащий в прохладной комнате, и такой же накопитель в раскаленном бардачке автомобиля находятся в совершенно разных условиях.
Именно поэтому отраслевые требования всегда указывают температуру рядом со сроком хранения.
Фраза "один год retention" без температуры неполна.
То же относится к результатам ускоренных лабораторных испытаний. Производитель может использовать повышенную температуру, чтобы за значительно меньшее реальное время получить эффект, соответствующий более длительному хранению при нормальных условиях.
За этим стоят модели температурного ускорения.
Превращать результат такого теста в бытовую формулу до дня нельзя, но общая зависимость однозначна: жаркое место является плохим архивом для NAND.
Есть интересный парадокс с температурой использования SSD
В обсуждениях retention часто приводят таблицы, из которых делают вывод: чем горячее SSD работал перед отключением, тем дольше он потом хранит данные.
Это требует пояснения.
Температура влияет сразу на разные процессы. В JEDEC-моделях учитывается температура во время endurance stressing и последующая температура хранения.
Это часть ускоренной модели старения NAND, а не бытовой совет прогреть NVMe до 70 °C перед тем, как убрать его в шкаф.
Для реального владельца практический вывод проще.
Не нужно намеренно нагревать SSD.
Для длительного отключенного хранения желательно избегать высокой температуры.
А для повседневной эксплуатации накопитель должен работать в диапазоне, предусмотренном производителем, без постоянного перегрева.

