Увеличение производительности и ресурса NVMe SSD с помощью пространства имен

10.10.2024 | Хранилища

 

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

«Блендер» ввода/вывода

Трафик хранилища отдельных рабочих нагрузок может быть разным. Например, для сервера баз данных типичное соотношение - 70% чтения и 30% записи. Виртуализация все перекручивает: VDI пишет 70-80%. Одновременная работа большого количества программ в виртуальных машинах или контейнерах смешивает и измельчает потоки ввода-вывода на SSD. Транзакции, которые были бы последовательны в изоляции, становятся рандомными, превращаются в смесь операций произвольного доступа с повышенной долей записи. Следовательно, показатель производительности рандомной записи является ключевым для SSD в корпоративной среде.

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

Запись в ячейки флеш-памяти устроена так, что уменьшение свободной емкости приводит к эффекту усиления (Write amplification, WA), когда одна операция записи ОС вызывает цепочку переносов данных между ячейками. В отличие от HDD, флеш-память не позволяет перезаписать блок данных по месту. Нужно куда-нибудь считать содержимое всего блока, затем стереть блок и записать данные заново. Возникает мультипликационный эффект вовлечения гораздо большей части флэш-памяти, чем требует объем новых данных. Множественная перезапись пользовательских данных и метаданных увеличивает задержку (latency), снижает производительность записи в IOPS, ускоряет износ ячеек.

Для уменьшения WA и улучшения показателей производительности наращивают служебную область ячеек SSD (overprovisioning, OP).

Избыточный резерв

ОС работает с презентованной емкостью накопителя. Сверх нее у SSD есть пул OP, избыток флэш-памяти. Эту дополнительную емкость контроллер SSD использует при выполнении служебных, прозрачных для хоста функций, таких как управление слоем трансляции флэш-памяти (FTL), выравнивание износа и сбор мусора (GC). В частности, GC восстанавливает неиспользованное пространство для хранения.

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

Пространства имен

Пространства имен (namespaces) – одна из ключевых технологий управления NVMe накопителями в системе. Ими делят накопители на логически отдельные, индивидуально адресованные пространства хранения, с которыми хост работает как с блочными устройствами, где каждое имеет свою очередь ввода-вывода. Возникают аналогии с HDD partitions, но те являются разделами диска на уровне хоста, тогда как namespaces – разделы на уровне контроллера SSD.

Часть емкости SSD отводится под пул OP при их производстве. У серий, предназначенных под смешанную нагрузку и интенсивную запись увеличенный размер резервной области. То же самое может сделать пользователь с помощью пространств имен и командной строки (или утилит вендора). Назначение емкости SSD меньше штатной ограничивает потенциальный объем хранения, зато повышает производительность и увеличивает эксплуатационный ресурс накопителя.

Практические последствия

Подробный анализ использования пространств имен для повышения производительности расписан в опытах Kioxia . Там же приводятся примеры параметров командной строки для самостоятельной корректировки рабочей емкости NVMe SSD.

Показательны две диаграммы. На первой – сравнение трех NVMe SSD:

  • Штатная (фабричная) емкость 3.84ТБ
  • Тот же SSD размечен namespace на 3.2ТБ
  • Штатная (фабричная) емкость 3.2ТБ

 

 

Два вывода:

  • "Обрезка" поднимает производительность ввода-вывода в сценарии сервера баз данных примерно в полтора раза;
  • Размеченный вручную NVMe SSD не отличается по показателям от равнобольшого варианта с фабричной разметкой

Вторая показывает повышение производительности случайной записи при использовании пространств имен NVMe разных размеров.

 

 

Все в ваших руках

Пространства имен можно использовать для управления NVMe SSD, устанавливая необходимый уровень производительности случайной записи за счет уменьшения полезной емкости. В погоне за скоростью накопители на 1.6-3.2ТБ лучше 1.92-3.84ТБ.

Выбирайте NVMe SSD сознательно. "Режьте", если это полезно для дела.