Что такое RRL (уровень восстановления чтения) на SSD и для чего он нужен?

Здесь нет носитель данных который полностью невосприимчив к повреждение данных , но по мере развития технологий появляется все больше и больше механизмов для смягчения его неблагоприятных последствий. Теперь с NVMe 1.4 спецификация, представленная в SSD, которые используют этот протокол, новую функцию, называемую RRL или Прочитать уровень восстановления был включен, механизм, который помогает SSD для автоматического восстановления после ошибок из-за поврежденных данных. И в этой статье мы собираемся объяснить, что это такое и как работает.

Существует множество факторов, которые могут повлиять на то, что поврежденные данные возникают на устройстве хранения, и одно из преимуществ твердотельных накопителей заключается в том, что механизмы защиты и даже механизмы разрешения могут быть интегрированы в сам контроллер, как в случае с протоколом NVMe 1.4. это было недавно выпущено. Сегодня мы подробно рассмотрим один из этих механизмов, возможно, самый важный для предотвращения повреждения данных.

Что такое RRL (Read Recovery Level)

Чтение уровня восстановления (RRL) на твердотельных накопителях NVMe 1.4

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

Твердотельный накопитель Capas ECC

Функция Read Recovery Level позволяет хост-системе (по сути, контроллеру) настраивать, насколько сильно SSD должен пытаться восстановить поврежденные данные при возникновении проблем. Твердотельные накопители обычно имеют несколько уровней коррекции ошибок (ECC), как вы можете видеть на изображении выше, и каждый из уровней более надежен, но в то же время медленнее (снижает производительность) и потребляет больше энергии, выделяя больше тепла. в то же время.

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

NVMe уже поддерживает восстановление после ошибок с ограничением по времени (TLER), но это позволяет хост-системе ограничивать время обработки ошибок только с шагом 100 мс. Уровни восстановления при чтении позволяют дискам обеспечивать до 16 различных уровней стратегий обработки ошибок, но диски, которые реализуют эту функцию, должны фактически реализовать как минимум два уровня, чтобы соответствовать стандарту. Стандарт NVMe 1.4. Эта функция устанавливается на уровне сборки с помощью NVM.

Неустранимые ошибки чтения на SSD

Для упреждающего предотвращения неисправимых ошибок чтения в спецификацию NVMe 1.4 также добавлены команды «Проверить» и «Получить статус LBA». Команда Verify проста: она делает все, что делает обычная команда чтения, за исключением возврата данных в хост-систему, но за исключением того, что если команда чтения возвращает ошибку, команда проверки возвращает ту же ошибку. Если команда чтения прошла успешно, то же самое произойдет и с командой Проверить.

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

Со своей стороны, функция Get LBA Status позволяет устройству предоставить хосту список блоков, которые могут привести к неисправимым ошибкам чтения, если на них будет предпринята команда чтения или проверки; Другими словами, контроллер может составить список данных, которые являются кандидатами на сбой и / или проблемы, заранее, до того, как возникнут ошибки.

SSD, возможно, уже обнаружил ошибки ECC во время фонового автосканирования или в тяжелых случаях может сообщить, на какие LBA повлиял сбой канала или полный кристалл NAND. Функцию Get LBA Status также можно использовать для запроса SSD на выполнение сканирования выбранных диапазонов данных перед возвратом списка потенциально невосстановимых блоков.

Когда хост-система обнаруживает поврежденные или отсутствующие данные, либо с помощью функции Get LBA Status, либо с помощью обычных команд чтения, либо с помощью функции Verify, она может записать эти данные обратно в тот же LBA, используя копию, полученную откуда-то. else (например, в системе RAID или в резервной копии), а затем продолжайте использовать эти логические блоки как обычно, в то время как твердотельный накопитель при необходимости удалит все неисправные физические блоки.

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