GRAID перехоплює ініціативу на полi NVMe RAID

09.10.2023 | Сховища

 

Безперервну доступність даних (стійкість до помилок та відмов накопичувачів) в серверах забезпечує RAID, програмний чи апаратний. Програмний потребує значного ресурсу центрального процесора для рівнів RAID з парністю. Така система вводу-виводу, що споживає значну частину процесорного часу, погіршує загальну ефективність сервера. При всій універсальності по носіях (HDD, SSD) i нейтральності до протоколів (SATA, SAS, NVMe), програмному RAID бракує необхідної продуктивності, коли треба сповна використовувати можливості NVMe SSD.

Апаратний RAID є мозковим центром екосистеми SAS, яка сформувалася за часів механічних дисків. Традиційні контролери на спеціалізованих інтегральних мікросхемах ASIC легко справлялися із навантаженнями HDD – максимальна продуктивність одного жорсткого диска становить близько 200 IOPS і 150 МБ/с пропускної здатності. Їх позиції похитнула поява SATA/SAS SSD, прихiд же NVMe виніс їм остаточний вирок. Один сучасний NVMe SSD може забезпечити близько 1 млн операцій вводу-виводу за секунду та пропускну здатність 7 Гбіт/с. Пара таких з'їсть ресурси найпотужнішого RAID-контролеру. До того ж на шляху даних стоїть вузьке горло його підключення до шини PCIe. Сучасні контролери стали трирежимними SATA/SAS/NVMe, проте універсальність не додає продуктивності. Очікування від NVMe SSD набагато вищi за можливостi Tri-mode RAID.

Тайванська компанія GRAID Technology (далі – просто GRAID) запропонувала третій варіант -  програмний RAID з прискорювачем на графічному процесорі, забезпечивши високу продуктивність, необхідну для флеш-сховища.

Програмний RAID з апаратним прискоренням на основі GPU

RAID-5 і 6 розподіляють блоки даних між дисками групи, використовуючи парності для захисту від збою одного-двох дисків. Читання відбувається швидко, а запис повільно, через обчислення парностей. Традиційні RAID-контролери пропускають всі дані крізь себе, виконуючи великий обсяг обчислювальної роботи «на льоту».

Для розкриття потенціалу NVMe потрібна висока паралелізація обробки вводу-виводу на неблокованому шляху даних. Механізми забезпечення паралельних обчислень є. Наприклад, Xinnor в своєму програмному xiRAID використовує векторні розширення системи команд x86 центральних процесорів Intel та AMD. Інший шлях – задіяти графічні процесори, тисячі ядер яких виконують векторні операції паралельно.

Карти GRAID побудовані на Nvidia GPU, що придатнi для розрахунку парностей та відновлення RAID після збоїв SSD. Додане програмне забезпечення віртуального контролера NVMe спрямовує трафік даних від центрального процесора безпосередньо на накопичувачі, по шині PCIe. Перебування за межами потоку даних спрощує фізичну реалізацію прискорювачів -  диски не потрібно підключати до самих карт, кабельне господарство зайве. Також не потрібна система резервного живлення від батарей - на картах немає кешу DRAM. Твердотільні накопичувачі можуть бути формату U.2, M.2 або AIC.

Що може  GRAID

Наразі існує два продукти GRAID. SupremeRAID SR-1000 на основі Nvidia T1000 PCIe 3-го покоління забезпечує 16 мільйонів IOPS і 110 ГБ/с при послідовному читанні і 11 ГБ/с при послідовному запису. SR-1010 на основі Nvidia A2000 PCIe 4 здатен на 19 мільйонів IOPS, маючи таку саму пропускну здатність послідовного читання 110 ГБ/с.

Програмне забезпечення підтримує рівні RAID 0/1/10/5/6/JBOD, до 32 дисків NVMe, до 8 дискових груп. Підтримуються такі ОС: Windows Server 2022, Linux (CentOS 8.3, RHEL 8.4, Ubuntu 20.04, openSUSE Leap 15.2 і SLES 15 SP2).

Заявлені показники продуктивності вражають:

Продуктивність під Windows нижча ніж у Linux ймовірно через архітектуру реалізації драйвера віртуального пристрою.

Якою цiною

Накладні витрати розрахунків RAID завжди на когось лягають: контролер RAID, центральний або графічний процесор. SupremeRAID SR-1000 коштує від $1500 до приблизно $3000 в залежності від кількості ліцензованих підключень NVMe. SupremeRAID SR-1010 обiйдеться в пiвтора-два рази дорожче.

SupremeRAID вимагає відключення в BIOS сервера IOMMU - блоку управління пам'яттю для операцій вводу/виводу. Так само як традиційний, процесорний блок управління пам'яттю, який переводить віртуальні адреси, видимі процесором, в фізичні, цей блок транслює віртуальні адреси, видимі ​​апаратним пристроєм, у фізичні адреси. Це може бути проблемою для деяких віртуальних середовищ із прокиданням шини PCIe. Крім того, (поки що) немає драйвера VMware.

Але механізм розвантаження RAID з усуненням від шляху передачі даних є елегантним рішенням – пiдключення до шини PCI Express не створює вузьких місць. Це додає переваг GRAID у масштабуваннi продуктивностi вводу-виводу через додавання NVMe SSD або пiдключення зовнiшних сховищ по NVMe-o-F.

З використанням матерiалiв Graid Technology