Факторы выносливости SSD, простые и сложные

26.12.2024 | Хранилища

 

SSD-накопители представляются хостовой ОС как обычные блочные устройства с размером сектора 512 байт или 4 КБ. Флэш-память NAND по своей природе имеет размеры страниц более 4 КБ и размеры блоков стирания, измеряемые в мегабайтах. Это несоответствие является источником большей части сложности адресации. Сложность влечет за собой накладные расходы.

 

"Ахиллесова пята" SSD

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

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

Типичным ресурсом серверных SSD под приложения с преимущественно чтением (RI) считается 1 DWPD. Условному стандарту 3 DWPD соответствуют SSD для смешанного использования (MU) в серверах баз данных, кэширования, рабочих нагрузок с высокой производительностью записи. К сожалению, из-за большой себестоимости и узкого круга применения ушла в небытие технология памяти Intel Optane, которая не использовала NAND, с гораздо лучшими показателями выносливости. Intel Optane SSD имел ресурс 30, 60 и даже 100 DWPD.

 

Усиление записи

В отличие от HDD, флэш-память NAND не позволяет просто взять и перезаписать блок данных, его сначала надо стереть. А поскольку блок стирания по размерам существенно больше блока записи, то по мере заполнения емкости контроллеру SSD приходится высвобождать место: куда-то считывать содержимое всего блока стирания, затем модифицировать в нем данные, затем стирать блок, возвращая его в состояние готовых под новые записи. Это приводит к появлению такого нежелательного явления, как усиление записи (Write amplification, WA). Фактически, на диск записывается гораздо больше данных, чем их посылает хост. Чем меньше на SSD свободного места, тем интенсивнее WA.

Усиление записи имеет два недостатка: падение скорости и ускорение износа.

 

Избыточное выделение ( overprovisioning , OP )

Естественный путь улучшения производительности случайной записи и выносливости SSD – резервирование емкости NAND, выделение избытка ячеек. Недоступная хосту служебная область содержит резервные или запасные блоки, необходимые на случай дефектов и сбоев, для сбора мусора и выравнивания износа. Контроллер SSD использует OP как маневровое пространство. Это обычный метод уменьшения усиления записи, пусть и за счет потери части полезной емкости. Чем ближе коэффициент WA к единице, тем SSD эффективнее и дольше прослужит. Серверные накопители снабжаются заводским объемом избыточного обеспечения 6-7% и выше. Пользователь может его увеличить, указав диапазон логических адресов LBA для записи меньше общего размера диска.

Увидеть последствия чрезмерного выделения можно на примере тестов и исследований . Резервирование дополнительных 20% емкости SSD приводит к удвоению производительности записи. Выносливость при этом возрастает примерно втрое. Именно поэтому накопители 1.6/3.2/6.8… ТВ имеют паспортный ресурс 3 DWPD – против 1 DWPD в 1.92/3.84/7.68… ТВ.

 

Источник

Дело интеллекта

Оставим физику перезаписи флэш-памяти в стороне. За долголетие SSD можно сразиться изменением логики их работы. Проблемы ранней или повышенной смертности HDD обладали исключительно механической природой. Поначалу на смену им в серверах и хранилищах данных пришли SATA и SAS SSD, с унаследованными протоколами ACHI и SAS. Хотя последствия интенсивной перезаписи SSD можно смягчить за счет OP, посредники мешают полноценному интеллектуальному вмешательству в управление данными. Другое дело NVMe.

Спецификация NVMe разработана из чистого листа под носители прямого доступа по шине PCIe. Каждый последующий стандарт PCIe улучшает скоростные характеристики SSD, каждая последующая редакция протокола NVMe придает новую функциональность. Обновление спецификации не распространяется автоматически на все SSD: некоторые функции имеют смысл только для встроенных систем или гипермасштабируемых развертываний, интенсивно используют сетевой доступ NVMe-oF и виртуализацию. Нужно обновлять прошивки SSD и драйверы NVMe в операционных системах – без поддержки с обеих сторон доступны будут только старые наборы функций. Разработка системного программного обеспечения требует больше времени, чем соответствующие изменения прошивки SSD, поэтому реализации заложенных в новые стандарты опций будут появляться в специализированных средах. Появятся ли они в дистрибутивах ОС общего назначения, большой вопрос. Может быть и нет.

 

Пространства имен ( namespaces ) и OP

Пространство имен NVMe – это набор адресов логических блоков (LBA), доступных для программного обеспечения хоста, доступ к которому предоставляет контроллер SSD. Если partition – это раздел диска на уровне хоста, то пространство имен является логическим разделом на уровне контроллера, с которым хост работает как с блочным устройством.

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

 

Потоки ( streams )

Потоки – функция, добавленная в спецификации NVMe 1.3. Она позволяет хосту помечать и классифицировать данные с помощью идентификатора потока, который может использовать SSD для интеллектуального размещения данных. Цель этой функции – передавать данные с разной скоростью (например, горячие, теплые, холодные) в разные физические места для повышения эффективности сбора мусора и уменьшения WA. Затем прошивка SSD может решить, куда на NAND физически разместить данные, замеченные тем же идентификатором потока в том же наборе блоков истирания на NAND, чтобы во время сбора мусора повысилась эффективность и уменьшилось количество записей.

 

Зонированные пространства имен ( ZNS )

В последней версии NVMe 2.0 появились зонированные пространства имен (ZNS) — набор команд, позволяющий группировать данные на основе их использования и частоты доступа и сохранять их последовательно в независимых зонах на SSD. Без необходимости перемещать и изменять данные, твердотельные накопители ZNS могут значительно снизить количество операций записи, снижая коэффициент усиления записи WA накопителя.

Источник: Samsung

ZNS устраняет потребность в избыточном обеспечении, собирая мусор на уровне зоны и заставляя усиление записи быть близкой к 1. Компромисс этого улучшения стоимости и долговечности SSD заключается в более сложном управлении со стороны хоста. Диск, хост, файловая система и программное обеспечение должны поддерживать ZNS, чтобы все работало должным образом.

 

Гибкое размещение данных

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

В отличие от ZNS FDP позволяет записывать данные как последовательно, так и случайно. В большей степени, чем Streams или ZNS, FDP предлагает информацию обратной связи от накопителя через канал для опроса событий и сбора статистики привода. Для многих программ эти комбинированные функции делают FDP более практичным выбором для размещения данных, чем другие варианты.

Поддержка FDP должна быть интегрирована в ядро операционной системы, библиотеки и сопутствующие инструменты.

 

Домашние задания разработчиков

Новые наборы команд NVMe бьют по нескольким целям: снижению задержек, увеличению выносливости носителей, управляемости ими. Все они выглядят привлекательно на бумаге, но требуют значительных изменений в программном обеспечении серверов и хранилищ (уже не говоря о выборочном следовании вендорам спецификациям NVMe, мешающим появлению универсальных инструментов). Быстрых внедрений не будет, разве что в вертикальных сегментах рынка с контролируемой разработкой продуктов «с нуля».

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

 

По мотивам SNIA