Solarflare Onload — программно-аппаратный RDMA для ускорения Ethernet-сетей
Введение
Мы подходим к концу нашего марафона по RDMA технологиям и за это время были подробно раскрыты такие популярные реализации, как InfiniBand, RoCE и iWARP, а также менее известная технология Omni-Path. Однако, существует еще одна, не менее интересная RDMA-технология, которая обеспечивает минимальные задержки и высокую пропускную способность не только на аппаратном, но и на программном уровне — Solarflare/AMD Onload. В этой статье мы поговорим о том, что из себя представляет Onload, как технология переходила из одних руки в другие, где она используется, а также сравним ее с другими RDMA-реализациями.
Что такое Solarflare Onload?
В отличие от традиционных RDMA-технологий с поддержкой традиционных Ethernet-сетей, Onload не просто переносит обработку сетевых протоколов на NIC с ASIC/FPGA-чипом, а фокусируется на обходе ядра операционной системы (kernel bypass) благодаря программной библиотеке OpenOnload или EnterpriseOnload. Эти библиотеки работают в пользовательском пространстве (user-space) и перехватывают все сетевые запросы приложений, направляя их на NIC вместо ядра ОС. Другими словами, Onload обеспечивает RDMA-функционал с помощью комбинирования аппаратных и программных решений. Результатом такого подхода является значительное улучшение ключевых сетевых показателей — задержка снижается до показателей менее 1 мс, а также снижается джиттер (вариативность задержки) и возрастает пропускная способность (свыше 100 Гбит/с). При этом, Onload способна работать поверх существующего сетевого стека TCP/IP/UDP и совместима с сокетами POSIX, не требует какой-либо замены сетевой инфраструктуры (как у InfiniBand) или настройки сетевых функций, а также не чувствительна к потерям пакетов (как у RoCE). Кроме того, у технологии Onload нет каких-либо фиксированных значений по пропускной способности, поскольку она зависит от комбинации аппаратного и программного обеспечения, а также конфигурации системы. По сути, Onload устраняет многие недостатки других RDMA-протоколов, однако технология имеет определенные минусы.

В частности, главным минусом Onload является увеличение нагрузки на центральный процессор. Дело в том, что CPU, несмотря на наличие умной сетевой карты, все равно участвует в копировании данных, а также используется для переноса обработки сетевых стеков (TCP/IP) в User-Space. Кроме того, для обеспечения минимальных задержек, технология Onload часто переходит в режим Busy Polling вместо традиционной модели на основе прерываний. Это означает, что процессор постоянно обращается к сетевой карте на предмет поступления новых пакетов или возможности отправить новые данные, вследствие чего нагрузка растет даже при небольших объемах трафика. Из-за этого фактора Onload теряет функцию Offloading (как у InfiniBand/RoCE), но из-за специализации технологии, увеличение нагрузки на CPU не критично — с самого начала Onload позиционировалась как решение для высокочастотного трейдинга (HFT), где задержки в 5-10 микросекунд могут означать разницу между прибылью и убытком. Onload активно используется на крупнейших мировых биржах, например Нью-Йоркской фондовой бирже и Чикагской бирже опционов.
История появления Solarflare Onload
Технология Onload была разработана компанией Solarflare Communications в середине 2000-х годов, а ее первые версии, совместимые с сетевыми картами Solarflare XtremeScale, стали доступны рынку HFT и HPC примерно в 2007–2008 годах. В 2010–2012 годах Solarflare представила OpenOnload — открытую реализацию стека Onload для Linux-приложений, что расширило ее применение на массовом рынке. К 2012 году Solarflare заявляла, что их сетевые адаптеры с Onload занимают около 90% рынка сетевых карт среди фирм высокочастотной торговли. Например, ведущая тайваньская брокерская компания Yuanta Securities (занимает ~15% рынка Тайваня) в 2012 году выбрала адаптеры Solarflare, чтобы обеспечить “минимальную задержку и максимальную производительность” в своих торговых системах. Onload также активно исследовалась в академической среде как инструмент ускорения сетевой обработки. В США, например, Клемсонский университет (South Carolina) совместно с Solarflare в 2012–2013 гг. проводил проект по созданию системы сетевого обнаружения вторжений вредоносного ПО (NIDS) на базе Snort, использующей FPGA-адаптер Solarflare SFA6902F с технологией Onload. Кроме того, Колумбийский университет (США) использовал Onload-адаптеры для обучения студентов алгоритмам сетевого программирования и работе с сетью в финансовом контексте. Технология оказалась настолько успешной, что к 2016 году она стала основным стандартом в секторе высокочастотного трейдинга, поэтому Solarflare была намерена и дальше развивать Onload, благодаря чему в 2019 году была анонсировала система Cloud Onload — платформа для ускорения облачных приложений (NGINX, Redis, Kubernetes).

Поскольку подход программно-аппаратного обеспечения низких задержек Solarflare Onload был очень перспективен, он заинтересовал крупнейшие компании, специализирующиеся на производстве программируемого железа (ASIC/FPGA), в результате чего Solarflare уже в 2019 году была поглощена Xilinx. Компания Xilinx, мировой лидер в производстве программируемых логических интегральных схем (FPGA) и адаптивных SoC, увидела в Solarflare ключевой актив для усиления своих позиций на быстрорастущем рынке интеллектуальных сетевых адаптеров (SmartNIC) и ускорения сетей дата-центров. Технологии Solarflare, особенно Onload и их высокопроизводительные адаптеры XtremeScale, идеально дополнили портфель решений Xilinx для обработки данных на уровне сети, предоставив заказчикам аппаратно-программную платформу для разгрузки и ускорения сетевых функций с беспрецедентно низкой задержкой.
Однако, в 2022 году технология Onload снова перешла в новые руки, поскольку Xilinx была приобретена компанией AMD для усиления своего влияния в секторе программируемых чипов, а заодно получив доступ к RDMA-реализации со сверхнизкой задержкой. Onload перестал быть продуктом отдельной нишевой компании и превратился в ключевой компонент стратегии AMD для сетей со сверхнизкой задержкой в передовых дата-центрах. В настоящее время технология Onload активно развивается и используется в сетевых адаптерах AMD Alveo X3, AMD Solarflare X2 и AMD Solarflare 8000, которые оптимизированы для работы с процессорами AMD EPYC и ускорителями AMD Instinct.

Сферы применения Solarflare Onload
Рассмотрим несколько направлений, где технология Solarflare Onload наиболее эффективно интегрируется в сетевую инфраструктуру.
- High-Frequency Trading (HFT). Поскольку Onload изначально разрабатывалась для интеграции в сектор HFT, технология демонстрирует наибольшую эффективность в нише высокочастотного трейдинга, позволяя биржевым брокерам практически моментально обновлять биржевые котировки, минимизируя риски убытков. В этом направлении Onload обеспечивает абсолютную доминацию над RoCE, а поскольку Onload считается давним стандартом в HFT, технология также не дает InfiniBand масштабно выйти на этот рынок. Например, Onload можно встретить в таких авторитетных финансовых системах, как CME Globex, LSE (London Stock Exchange), Deutsche Börse Xetra. Примечательно, что технологией Onload интересуются компании, занимающиеся финансовой аналитикой (финансовая математика и анализ рынков), а также она применяется для создания арбитражных торговых ботов.
- Чувствительные к задержкам задачи HPC. Технология Onload также может быть крайне полезна HPC-кластерах на базе Ethernet-сетей, специализирующихся на обработке огромных объемов данных (геномика, сверхточное моделирование, разработка LLM), поскольку минимальные показатели задержки позволяют обрабатывать эти данные в кратчайшее время. А совместимость Onload с существующим оборудованием открывает возможность к бюджетному и эффективному масштабированию инфраструктуры. Например, Onload совместим суперкомпьютером HPE Cray EX который был разработан AMD при сотрудничестве с HPE и в 2022 году занял первое место в рейтинге лучших суперкомпьютеров TOP500. Совместимость обеспечивается возможностью интеграции сетевых карт AMD Alveo для смены сценариев использования на финансовый сектор.
- Высоконагруженные сервисы и виртуализация. В более коммерческих сферах применения, таких как виртуализация и высоконагруженные сервисы, Onload позволяет значительно ускорить работу Ethernet-совместимых приложений (веб-хостинг, базы данных), а также снизить нагрузку на программный сетевой коммутатор vSwitch для подключения виртуальных машин.

! Интересно, что существуют специальные процессоры от разных крупнейших чипмейкеров, предназначенные для работы в системах сектора высокочастотного трейдинга. Например, компания Intel предлагает особые CPU с индексом N (4-5 поколение Intel Xeon Scalable).
Экосистема Solarflare Onload
Поскольку Solarflare Onload принадлежит AMD, все аппаратные и программные решения технологии так или иначе входят в экосистему технологий этой IT-корпорации. Вот какие устройства и программные стеки относятся к платформе Solarflare Onload:
Аппаратные решения
Аппаратные решения Onload представлены тремя линейками сетевых адаптеров от AMD на базе программируемых FPGA Xilinx UltraScale+, унаследованные через поглощение Solarflare. Флагманские модели — Alveo U25 (25 Гбит/с) и Alveo U50/U55 (100 Гбит/с) — оснащены аппаратными ускорителями для обработки сетевых операций на уровне чипа. Их особенность — глубокая интеграция с экосистемой AMD: поддержка PCIe 4.0/5.0 для прямой связи с процессорами EPYC, реализация функций SmartNIC (аппаратное шифрование TLS/SSL, балансировка нагрузки, Precision Time Protocol с точностью менее 100 нс), а также оптимизация для передачи Jumbo Frames (MTU 9000) и SR-IOV. Эти адаптеры полностью берут на себя обработку пакетов, исключая обращение драйвера к ядру ОС из пути сетевого трафика.

Программные решения
Программная реализация Onload представлена двумя ветками: OpenOnload (open-source, GPLv2) для базового ускорения сокетов и Enterprise Onload с расширенными возможностями — мониторингом задержек, интеграцией с Kubernetes/VMware и аппаратным ускорением TLS. Технология внедряется через перелинковку приложений (gcc -lonload app.c) или динамическую загрузку (LD_PRELOAD=libonload.so ./app), перехватывая системные вызовы (socket/send/recv) и направляя трафик напрямую к адаптеру через DMA. Поддержка ОС ограничена платформами на базе ядра Linux (RHEL, Ubuntu, SLES), где Onload обеспечивает задержки <1 мкс и пропускную способность до 100 Гбит/с, сохраняя глубокую совместимость со стеком сетевых протоколов TCP/IP. Для работы требуется установка пакета onload и активация команды (onload_tool reload), которая заменяет ранее загруженный сетевой драйвер sfc на драйвер из дистрибутива Onload.

Onload vs RoCE/InfiniBand
Подводя итоги, кратко рассмотрим основные отличия технологии Onload от традиционных и популярных реализаций RDMA в лице RoCE и InfiniBand:
|
Параметр |
InfiniBand/RoCE |
Onload |
|
Сеть |
Проприетарная сеть./Lossless Ethernet |
Стандартный стек Ethernet |
|
Задержка |
<1-5 мкс |
<1 мкс |
|
Протокол |
Проприетарный стек / UDP/IP |
TCP/IP |
|
Внедрение |
Сложное |
Относительно проще |
|
Совместимость |
Низкая/Средняя |
Высокая |
|
Нагрузка CPU |
Низкая |
Высокая |
|
Зависимость |
Спец. оборуд./настройки |
Спец. адаптеры AMD Solarflare |
Выводы
Несмотря на то, что в данный момент технология Onload занимает лишь очень узкую нишу высокочастотного трейдинга и некоторых HPC-кластеров, спрос на экстремально низкую задержку постоянно растет и все большим инфраструктурам требуется максимально быстрая передача пакетов данных. Кроме того, крупнейшие компании, такие как AMD, активно популяризируют нишу SmartNIC, внедряя RDMA-функционал не только в сектор HPC, но и в коммерческие системы на базе собственных устройств EPYC/Instinct, а особенно в инфраструктуры для разработки ИИ. Ввиду этого, не исключено, что уже в ближайшем будущем роль технологии Onload станет еще более значимой и мы увидим, как эта платформа внедряется даже в частные вычислительные системы, обеспечивая беспрецедентную задержку и высочайшую совместимость.
Рекомендуемые товары
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: SF-00003249
Нет в наличии
Видеокарта AMD Radeon Instinct MI50 32GB HBM2 [100-506194] [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
29 800 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: SF-00001431
Нет в наличии
Видеокарта NVIDIA A100 OEM 40GB HBM2 [900-21001-0000-000] [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
529 800 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: 285
Нет в наличии
SSD-накопитель Intel (HP) S3700 400GB 2.5" 6Gb/s [SSDSC2BA400G3P] [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
13 100 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: 1350
Нет в наличии
HBA адаптер Broadcom 9500-16i (NVMe/SAS/SATA 12GB/s, no cache) [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
53 900 ₽
- Цена включает НДС 7%
- Гарантия: 1 год
- Новое
- Выгодно
- Под заказ
- Б/У
Артикул: 5136
Нет в наличии
Кабель Supermicro SFF8643 (NVMe) - SFF8643 (NVMe) 0.7м [Новый]
- Сокет AM4
- Сокет AM4
- Сокет AM4
- Сокет AM4
3 000 ₽
- Цена включает НДС 7%
- Гарантия: 1 год