Почему SSD выходят из строя: кто виноват и что делать?

24 декабря, 2018, Oleg Afonin
Рубрика: «Аппаратное обеспечение», «Полезные советы», «Программное обеспечение»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Искренняя благодарность Роману Морозову, руководителю техподдержки ACELab, рассказавшему о многих тонкостях жизненного цикла твердотельных накопителей.

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

В то же время фактический жизненный цикл современных микросхем TLC может быть ограничен всего 20-50 циклами перезаписи. Этот параметр может быть лучше или хуже в зависимости от типа памяти, норм технологического производства и уровня брака на китайском заводе-производителе. Использование таких технологий, как SLC кэш с пониженным напряжением записи в ячейку позволяет заметно увеличить ресурс, в то время как наличие умножающего коэффициента записи (write amplification) снижает эффективный ресурс накопителя.

Как жизненный цикл современных TLC микросхем в 20-50 циклов соотносится с декларацией производителей и действительно впечатляющими гарантийными сроками и насколько на самом деле надёжны современные SSD? Попробуем разобраться.

Для начала определимся с тем, что именно мы понимаем под жизненным циклом накопителя. Каждая операция записи на твердотельный накопитель постепенно разрушает ячейку. Запись в «однобитном» режиме SLC требует значительно меньшего напряжения для того, чтобы поместить заряд в ячейку; соответственно, износ микросхем в этом режиме будет ниже, чем в «двухбитном» режиме MLC и значительно ниже, чем в «трёхбитном» TLC. Надёжность «четырёхбитных» QLC накопителей мы боимся себе представить.

Спустя определённое количество циклов перезаписи ячейки перестают удерживать заряд. Начинается медленная, постепенная утечка заряда. В ячейку по-прежнему можно что-то записать, но ячейка, являющаяся маленьким конденсатором, со временем перестанет держать заряд. Так, изношенная ячейка может успешно принять заряд и успешно пройти верификацию сразу после записи. Однако с течением времени он начнет утекать. Как пример, мы записали в ячейку TLC заряд, соответствующий значению 1 0 0. Сразу после записи мы успешно прочитали ячейку; заряд по-прежнему соответствует 1 0 0. Мы обесточили накопитель, а через два дня снова считали данные из ячейки. Данные не изменились. Вновь обесточив накопитель, мы вернулись к нему две недели спустя. Теперь заряд в ячейке соответствовал значению 0 1 0, а ещё через две недели – уже 0 0 1 или 0 0 0 – т.е. ячейка полностью разрядится.

Именно срок, в течение которого ячейка способна удерживать заряд, и является одним из основных параметров жизненного цикла SSD. В технических спецификациях большинства производителей микросхем указывается, что ячейки должны удерживать заряд в течение как минимум двух недель после обесточивания накопителя (при фиксированной высокой температуре; при комнатной температуре это время должно быть выше). При этом количество и распределение ячеек, которые за этот период потеряют заряд, не должно выходить за рамки, справиться с которыми способен алгоритм коррекции ошибок на основе данных ECC. Разумеется, две недели – это очень мало, поэтому большинство производителей предпочитает подстраховаться: микросхемы памяти, которые устанавливают в свои диски именитые производители (Samsung, Crucial и т.п.), намного превосходят формальные спецификации.

Изображение из статьи The Truth about SSD Data Retention (c) AnandTech

А что происходит с микросхемами, тестирование которых показало несоответствие внутренним (повышенным) стандартам именитого производителя, но которые не выходят за рамки, с которых начинается брак? С ними можно поступить несколькими способами. Например, их можно продать производителям бюджетных SSD, к которым относится, к примеру, Silicon Power. Можно увеличить резервный пул и продавать SSD пониженной ёмкости (скажем, 480 ГБ вместо 500). Можно сделать ход конём, и микросхемы, не прошедшие тестирование по стандартам TLC, использовать в качестве MLC памяти для производства опять же бюджетных SSD (яркий пример – модель Crucial BX300 объемом в 480 ГБ, в которой использованы сразу оба подхода.)

Интересно влияние окружающей температуры на срок удержания заряда. В лаборатории ACE Lab несколько лет назад провели тестирование по определению влияния высокой температуры на битовые ошибки при чтении SLC микросхемы, выполненной по старому техпроцессу. В проведённом 9 лет назад тестировании серьёзный рост битовых ошибок начинался после 420 градусов под горячим воздухом. При достижении температуры в +480С и у микросхемы лопнул корпус, но ячейки при этом сохраняли заряд, и данные можно было восстановить. Современные TLC микросхемы, выполненные по современным техпроцессам, демонстрируют критическое количество битовых ошибок при существенно меньшем нагревании. Для избежания влияния высокой температуры на данные некоторые криминалистические лаборатории предпочитают не отпаивать микросхемы, а срезать их либо раскаленной струной, либо стачиванием PCB, к которой припаяна микросхема.

При считывании данных на ячейку подаётся напряжение в 3.3 В. При записи или перезаписи – до 12 В, чтобы преодолеть изоляционный слой и поместить заряд внутрь. Из-за этого изоляционный слой между ячейками начинает деградировать, и чем тоньше техпроцесс, тем тоньше изоляция, и тем меньше циклов перезаписи может выдержать память. Так, в одном из первых SSD, построенных на технологии TLC — Samsung Evo 840, — производитель допустил колоссальный просчёт, который приводил к печальным последствиям. В результате деградации NAND памяти (которая у пользователей наступала гораздо раньше, чем через 20-30 циклов перезаписи) катастрофически падала скорость записи, а срок удержания заряда в обесточенном накопителе сокращался до порядка 30 дней при комнатной температуре. Samsung выпустили исправление прошивки, которое не помогло решить проблему. В скором времени вышло второе исправление, которое «помогало» ячейкам удерживать заряд, периодически «обновляя» (фактически — перезаписывая) их содержимое с соответствующим сокращением срока службы накопителя. Модель получила заслуженную репутацию худшего SSD в истории.

Производители, безусловно, приняли к сведению неудачу Samsung и учли возможные проблемы в следующих моделях. Про один из способов увеличить ресурс ячеек мы уже писали – это использование MLC/TLC ячеек в режиме SLC. Другой вариант – трёхмерная компоновка ячеек, при этом сами ячейки выполняются по более грубому техпроцессу (память 3D TLC NAND, 3D MLC NAND). Постоянное совершенствование прошивок позволило добиться существенного сокращения повышающего коэффицента записи, а операционные системы (в первую очередь — Windows 10) научились корректно оперировать блоками и «экономить» операции записи.

Почему SSD выходят из строя, если в SMART всё хорошо

Казалось бы, даже 20-30 циклов перезаписи – вполне приличная цифра, а уж 1000-1500 – и вовсе величина, для обычного пользователя запредельная. Если умножить на ёмкость накопителя в 512 ГБ, на него нужно записать 10-15 ТБ до того, как начнётся хоть сколько-нибудь заметная деградация ячеек. Если же брать цифру производителя, то данные и вовсе можно писать сплошным потоком в течение многих лет. Однако даже с учетом использования специальных алгоритмов «равномерности записи», проблемы наступают гораздо раньше.

Узким местом каждого накопителя является так называемая служебная область. Служебная область – это ограниченная фиксированная область, выделенная для хранения прошивки (управляющей микропрограммы) и служебных структур. Эта область постоянна и имеет ёмкость порядка 4-12 Гбайт. В ней хранятся все служебные структуры — модули (таблицы переназначенных блоков, части микрокода, отвечающие за хранение пароля, атрибуты SMART и т.д.)

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

В результате в определённых сценариях использования (к примеру, SSD используется для активной работы базы данных с огромным числом транзакций, которые изменяют буквально несколько байт данных – но перезаписывают всё равно целый блок) уже через несколько месяцев (а не лет!) современные SSD начинают приходить в негодность. Закончиться всё может печально: совершенно неожиданно, при отличных показателях диагностики SMART и параметре износа порядка единиц процентов («оставшийся ресурс: 99%») SSD может просто пропасть из системы. Связано это с тем, что количество неисправных ячеек в служебной области увеличивается настолько, то коды ЕСС коррекции контроллера уже не могут их скорректировать, и SSD прекращает определяться в BIOS или показывать полную емкость.

Происходит следующий циклический процесс. Контроллер подгружает микропрограмму с NAND микросхем; микропрограмма содержит критическое количество ошибок; контроллер получает ошибку о невозможности считать микропрограмму; контроллер пробует прочитать ее снова и подгрузить в ОЗУ; снова получает ошибку; и так до бесконечности.

Как правило, наиболее частой неисправностью является выход из строя самого важного модуля – «транслятора», который транслирует адреса физических блоков в логические. С точки зрения пользователя это может выглядеть как катастрофическое падение определяемой ёмкости накопителя – к примеру, видны 2 МБ или 980 МБ вместо полноценных 512 ГБ.

Можно ли восстановить данные?

Можно ли восстановить данные с SSD накопителя, который вышел из строя по описанному сценарию – то есть, не определяется системой или отображает неправильную ёмкость (а система предлагает отформатировать накопитель)? К сожалению, в домашних условиях это сделать невозможно: в обычном режиме накопитель просто не может загрузить управляющую программу или считать необходимые для работы данные.

Выход – использование технологического режима. Технологический режим всегда доступен производителю диска. Соответственно, диск можно сдать в авторизованный сервисный центр производителя, указав необходимость восстановления информации. Восстановить данные сможет не каждый сервисный центр; во многих случаях диск придётся отправить в более крупный центр или на завод. Более того, далеко не каждый производитель осуществляет гарантийное обслуживание и ремонт своих дисков; производство современных SSD обходится настолько дёшево, что диск проще заменить на новый, утилизировав вышедший из строя накопитель.

Если вы оказались в такой ситуации, вы можете обратиться в одну из компаний, специализирующихся на восстановлении данных. Если же вы работаете в одной из таких компаний или являетесь экспертом по извлечению информации, рекомендуем обратить внимание на комплекс PC-3000 отечественной компании ACELab. Этот комплекс поддерживает технологические режимы множества различных моделей SSD и контроллеров. С его помощью эксперт сможет прочитать отдельные модули (с информацией о переназначенных блоках, неисправных блоках и т.д.) и пересобрать транслятор из частей нужных модулей. После этого появляется возможность загрузить новый транслятор непосредственно в ОЗУ накопителя минуя неисправные ячейки на микросхемах памяти, и получить доступ к данным.

 


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ