Збільшення продуктивності та ресурсу NVMe SSD за допомогою просторів імен

10.10.2024 | Сховища

 

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

«Блендер» вводу/виводу

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

Підсилення запису

Запис у комірки флеш-пам'яті влаштований так, що зменшення вільної ємності призводить до ефекту підсилення (write amplification, WA), коли одна операція запису ОС викликає ланцюжок переносів даних між комірками. На відміну від HDD, флеш-пам'ять не дозволяє перезаписати блок даних по місцю. Потрібно кудись зчитати вміст всього блоку стирання, потім стерти блок і записати дані заново. Виникає мультиплікаційний ефект залучення набагато більшої частини флеш-пам’яті, ніж насправді вимагає об’єм нових даних. Множинний перезапис даних користувача і метаданих збільшує затримку (latency), знижує продуктивність запиcу в 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 свідомо. «Ріжте», якщо це корисно для справи.