GRAID перехватывает инициативу на поле NVMe RAID

Непрерывную доступность данных (устойчивость к ошибкам и отказам накопителей) в серверах обеспечивает RAID, программный или аппаратный. Программный требует значительного ресурса центрального процессора для уровней RAID с четностью. Система ввода-вывода, потребляющая значительную часть процессорного времени, ухудшает общую эффективность сервера. При всей универсальности по носителям (HDD, SSD) и нейтральности к протоколам (SATA, SAS, NVMe), программному RAID не хватает необходимой производительности, когда нужно сполна использовать возможности NVMe SSD.
Аппаратный RAID является мозговым центром экосистемы SAS, сформировавшейся при механических дисках. Традиционные контроллеры на специализированных интегральных микросхемах ASIC легко справлялись с нагрузками HDD – максимальная производительность одного жесткого диска составляет около 200 IOPS и 150 МБ/с пропускной способности. Их позиции пошатнуло появление SATA/SAS SSD, приход же NVMe вынес им окончательный приговор. Один современный NVMe SSD может обеспечить около 1 млн операций ввода-вывода в секунду и пропускную способность 7 Гбит/с. Пара таких съест ресурсы самого мощного RAID-контроллера. К тому же, путь данных лежит через узкое горло его подключения к шине PCIe. Современные контроллеры стали трехрежимными SATA/SAS/NVMe, однако универсальность не добавляет производительности. Ожидания от NVMe SSD гораздо выше, чем возможности Tri-mode RAID.
Тайваньская компания GRAID Technology (далее – просто GRAID) предложила третий вариант – программный RAID с ускорителем на графическом процессоре, обеспечив высокую производительность, необходимую для флеш-хранилища.
Программный RAID с аппаратным ускорением на основе GPU
RAID-5 и 6 распределяют блоки данных между дисками группы, используя четности для защиты от сбоя одного-двух дисков. Чтение происходит быстро, а запись медленно, из-за вычисления четностей. Традиционные RAID-контроллеры пропускают все данные через себя, выполняя большой объем вычислительной работы «на лету».
Для раскрытия потенциала NVMe требуется высокая параллелизация обработки ввода-вывода на неблокированном пути данных. Механизмы обеспечения параллельных вычислений имеются. К примеру, Xinnor в своем программном xiRAID использует векторные расширения системы команд x86 центральных процессоров Intel и AMD. Другой путь – задействовать графические процессоры, тысячи ядер которых выполняют векторные операции параллельно.
Карты GRAID построены на Nvidia GPU, подходящих для расчета парностей и восстановления 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, вероятно из-за архитектуры реализации драйвера виртуального устройства.
Какой ценой
Накладные расходы по расчетам RAID всегда на кого-то ложатся: контроллер RAID, центральный или графический процессор. SupremeRAID SR-1000 стоит от $1500 до примерно $3000 в зависимости от количества лицензированных подключений NVMe. SupremeRAID SR-1010 обойдется в полтора-два раза дороже.
SupremeRAID требует отключения у BIOS сервера IOMMU – блока управления памятью для операций ввода/вывода. Так же как традиционный процессорный блок управления памятью, переводящий виртуальные адреса, видимые процессором, в физические, этот блок транслирует виртуальные адреса, видимые аппаратным устройством, в физические адреса. Это может быть проблемой для некоторых виртуальных сред с пробросом шины PCIe. Кроме того, (пока) нет драйвера VMware.
Но механизм разгрузки RAID без пропускания данных через себя является элегантным решением – подключение к шине PCI Express не создает узких мест. Это добавляет преимуществ GRAID в масштабировании производительности ввода-вывода через добавление NVMe SSD или подключение внешних хранилищ по NVMe-oF.
С использованием материалов Graid Technology
