Оптимізовані NVMe-сервери

Технологія NVMe стала рушійною силою докорінних змін у зберіганні даних, джерелом високої продуктивності підсистем введення/виводу (I/O). Сервери на NVMe-накопичувачах оптимальні для онлайн-обробки транзакцій (OLTP), онлайн-аналітики (OLAP), веб-сервісів, рішень віртуального робочого столу (VDl), керування потоками відео високої чіткості, зберігання метаданих файлових систем та загалом у програмах з довільним доступом до великої кількості файлів.
Доступ до флеш-пам’яті по шині PCIe без посередників дозволяє NVMe SSD забезпечувати набагато більше операцій введення/виведення за секунду (IOPS) порівняно з SATA/SAS SSD. Обмежені інтерфейсами SATA та SAS стандартні SSD вичерпали свої можливості і не можуть стати набагато швидшими, тоді як NVMe-накопичувачі ще не досягли свого піку продуктивності. Один NVMe SSD стандарту PCIe Gen4 видає потік даних майже 8 ГБ за секунду, з кожним новим стандартом PCIe ця стеля стає вищою.
Збільшення IOPS - лише один з проривів технології NVMe. Однією з ключових характеристик I/O є глибина черги (queue depth). Вона визначає кількість команд, які можуть бути виконані одночасно. SATA SSD обмежені єдиною чергою із глибиною всього 32 команди. Специфікація NVMe підтримує 65 535 черг команд, кожна з яких може містити до 65 536 команд. Нарощують продуктивність, забезпечуючи паралелізм операцій.
Ціни NVMe та SATA SSD зіставні і в цілому помірні. Це покращує можливості обробки даних на серверах за очевидних переваг локального зберігання на NVMe: високої щільності (носії ємністю 30.72ТБ не є екзотикою, тоді як SATA SSD зупинилися на 7.68ТБ), низьких затримок, простоти управління даними, зручності обслуговування.
Технологія є придатною для малих і великомасштабних середовищ зберігання - у мережевому варіанті NVMe-oF.
Платформи NVMe-серверів
Індустріальним стандартом NVMe SSD був і залишається U.2 (2.5” NVMe). Для підтримки U.2 бекплейн дискового кошика серверної платформи має бути оснащений відповідними роз’ємами, з підведенням до кожного відсіку ліній PCIe. Кожному NVMe треба надати чотири лінії PCIe. Як саме, платами комутації, кабелями з материнської плати чи з плат-розгалужувачів, визначає виробник платформи на свій розсуд.
Сервери з підтримкою великої кількості U.2 є у каталогах усіх основних вендорів. Замовник може обирати базову архітектуру між Intel Xeon та AMD EPYC. Відмінності є. За інших рівних (підтримки DDR5 та PCIe Gen 5), процесори сімейства AMD EPYC 9004 мають до 128 ядер/256 потоків проти 64/128 у Intel Xeon 5th Gen, 12 каналів пам’яті проти 8 та 128 ліній PCIe на процесор проти 80.
З таким запасом обчислювальної потужності як у AMD EPYC достатньо його одного для задоволення вимог більшості серверних додатків, двопроцесорні сервери не потрібні. Односокетні сервери AMD EPYC підходять під вирішення найрізноманітніших завдань. В тому числі під NVMe- сховища.
Типовий сервер 2U вміщує 24 x U.2. Якщо обирати Intel Xeon у якості базової платформи такого сервера, потрібні два процесори (або комутатор шини PCIe), 80 ліній PCIe одного CPU недостатньо. Натомість, 128 ліній AMD EPYC дозволяють обcлужити ту же кількість накопичувачів одним процесором, без використання комутаторів PCIe. Ось два приклада платформ, що дозволяють побудувати NVMe-сховище з мінімальними витратами.
ASUS RS500A-E12-RS12U – однопроцесорна платформа 1U під AMD EPYC 9004 Genoa з підтримкою до 24 DIMM, 16 NVMe, двох однослотових GPU:

ASUS RS520A-E12-RS24U – однопроцесорна платформа 2U під AMD EPYC 9004 Genoa з підтримкою до 24 DIMM, до 24 NVMe, до двох двослотових GPU:

На зміну SAS
Наступним за фізичним підключенням великої кількості NVMe SSD є питання організації масивів даних. Носії об’єднують у RAID - для продуктивності, збільшення ємності сховища, доступності (можливості продовжувати роботу після збоїв компонентів зі збереженням цілісності даних), якомога швидкого вiдновлення при заміні накопичувачів.
На відміну від доволі лінійного минулого RAID в екосистемі SAS, сьогодні індустрія переживає революційні часи, опановуючи розбіжні альтернативи традиційним контролерам. Йде боротьба за високий рівень паралелізму, величезну кількість операцій вводу-виводу та пропускну здатність – виклики NVMe.
Апаратний NVMe RAID
Апаратні SAS/SATA RAID-контролери еволюціонували у трирежимні (Tri-mode). Технологія Tri-Mode забезпечує використання SAS, SATA і NVMe в одній інфраструктурі зберігання. Основний гравець на цьому полі Broadcom.
Об'єктивно, NVMe не потрібні контролери з їх стеком SAS та обмеженнями шинного підключення до PCIe. Додавання NVMe до комбінації віртуальних дисків SAS і SATA за одним контролером має мало сенсу: твердотільні накопичувачі NVMe набагато продуктивніші, ніж SAS або SATA, важко уявити собі затребувану модель їх комунального співмешкання.
Звісно, Broadcom не хоче втрачати ринок через ентузіастів низьких затримок і розпаралелювання дискового вводу/виводу. Попит на Tri-mode тримає на плаву консерватизм ринку та прив’язка до віртуалізації VMware (власником якої з недавнього часу теж є Broadcom).
Апаратні RAID вимагають, щоб накопичувачі були підключені безпосередньо до карти RAID через кабелі, що значно обмежує їхню корисність у сучасній інфраструктурі. Масштабування NVMe сховищ, керованих апаратними RAID, лімітовано їх підключенням по 8-16 лініям до PCIe Gen4, максимальна швидкість якої становить 28 ГБ/с. Чотири NVMe Gen4 можуть наситити одну карту RAID. Знадобиться кілька таких карт, щоб вичавити продуктивність з усіх накопичувачів в сервері з 24 відсіками. Напряму до апаратного RAID не підключити більш ніж 8 NVMe SSD, якщо ми хочемо щоб кожному дісталося по 4 законних лінії PCIe. Якщо їх більше – потрібні шасі з комутаторами шини PCIe. Контролер може обслужити 24 комутованих NVMe, але кому потрібен такий «швидкісний» сервер з ускладненим (дорогим) конструктивом, привнесеними затримками на комутаторах та зарізаною смугою на шляху даних?
Програмний NVMe RAID
Групувати NVMe SSD у масив і керувати ними можна засобами ОС i файлових систем: Linux MDADM, Windows Storage Spaces, ZFS, btrfs. Проблемою програмних RAID є споживання ресурсів хоста (СPU, RAM) та не надто висока продуктивність - кодова база більшості програмних RAID народжувалася за часiв HDD. Xinnor просуває інноваційний xiRAID, розроблений з нуля для NVMe. Завдяки глибокому розпаралелюванню обробки вводу/виводу та неблокованому шляху даних масиви xiRAID мають невеликі штрафи RAID і розкривають потенціал флеш-накопичувачів за низького використання процесора та оперативної пам’яті.
Революція GRAID
На відміну від апаратного RAID на основі ASIC та програмного RAID із завантаженням CPU, GRAID Technology використовує унікальну технологію маршрутизації трафіку даних. Рішення GRAID складаються з двох основних елементів: графічного процесора та програмно-визначеного сховища. Подібно до апаратного RAID, графічний процесор знімає з центрального процесора завдання керування дисками, зокрема розрахунок парностей. Проте, на відміну від карти RAID, передача даних відбувається безпосередньо між NVMe SSD і головною пам'яттю. Додаткові кабелі та складні конфігурації шасі не потрібні. Оскільки GPU більш динамічний, ніж RAID ASIC, продуктивність за допомогою GRAID легко масштабується з додаванням NVMe у сервер.
Лінійка SupremeRAID:
- SupremeRAID SR-1010 — карта на основі Nvidia A2000 PCIe Gen 4, підтримує до 32 NVMe, призначена для хмарних і корпоративних серверів 2U
- SupremeRAID SR-1000 —карта на основі Nvidia T1000 PCIe Gen 3, підтримує до 32 NVMe, може встановлюватись у сервери 1U
- SupremeRAID SR-1001 —карта на основі Nvidia T1000 PCIe Gen 3, підтримує до 8 NVMe, ідеальна для зберігання даних телекомунікаційних компаній, CAD, редагування відео, IoT та ігор.

Визнаний експерт з тестування сховищ StorageReview має великий досвід роботи з усіма сучасними варіантами RAID, починаючи від виділених апаратних плат і закінчуючи різноманітними програмними рішеннями. Вони багато разів тестували рішення GRAID на трьох різних графічних процесорах і «завжди були вражені надзвичайною продуктивністю зберігання, яку забезпечує GRAID».
Порівняльні тестування виявляють значні реальні переваги перед конкуруючими апаратними та програмними рішеннями RAID. Проти провідної апаратної RAID-карти від Broadcom SupremeRAID забезпечує у кілька разів більші показники IOPS і послідовної пропускної здатності. Перекладаючи обчислення RAID на графічний процесор, SupremeRAID знижує використання CPU до нуля, тоді як програмний RAID споживає до 30-40% циклів центрального процесора для обчислень парності. Під час реконструкції масиву SupremeRAID підтримує високий рівень продуктивності там, де апаратний і програмний RAID ледве ворушаться.
Рішення SupremeRAID легко інтегруються в сучасну інфраструктуру центру обробки даних. Скрізь, де стають графічні прискорювачі Nvidia T1000 та A2000, можуть бути встановлені карти SupremeRAID. Підтримуються всі типи NVMe, підключені до хоста. Від серверної платформи вимагається хіба що фізична можливість встановлення бажаної кількості носіїв. В типовому сервері 2U на 24 NVMe SupremeRAID (як і будь-який програмний RAID) може підтримувати всі диски в одній системі без ускладнень підключення та без жодних обмежень пропускної здатності по шині.
З боку програмного забезпечення SupremeRAID підтримується Linux (AlmaLinux, CentOS, Rocky Linux, OpenSUSE, Ubuntu, Debian, Oracle Linux і Red Hat Enterprise Linux) та Microsoft (Windows Server 2019/2022, Windows 10/11).
SupremeRAID підтримує такі платформи віртуалізації: Proxmox VE, KVM, Windows Server Hyper-V, Virtuozzo Open VZ і VMware Workstation Pro 17. Підтримка VMware ESXi відсутня. Враховуючи зміни після придбання Broadcom VMware, в найближчому часі кращого чекати не варто, оскільки GRAID є прямим конкурентом Broadcom RAID. Як і інші постачальники, GRAID допомагає клієнтам VMware порадами з міграції на альтернативні платформи.
Від серверів до мереж
Сервери з локальними NVMe-сховищами стають базовими складовими програмно-компонованої інфраструктури, де обчислювальні, мережеві та ресурси зберігання даних абстраговані від їхнього фізичного розташування, ними можна керувати за допомогою програмного забезпечення через веб-інтерфейс. Вони є основою для приватних і гібридних хмарних рішень. Разом із появою технології NVMe та її мережевого втілення NVMe-oF з’явилася можливість підвищити продуктивність серверів та масштабувати сховища без шкоди для продуктивності.
Майбутнiй прогрес у продуктивному зберiганнi даних пов’язаний з дезагрегацією, NVMe-oF- сховищами, блоками обробки даних DPU. Поки що оптимізація серверів з локальними носіями NVMe полягає у використанні таких платформ і супутніх програмно-апаратних засобів, які обходяться без зайвих сутностей.
Дайте дорогу даним.
