Remote Direct Memory Access¶
Remote Direct Memory Access (RDMA) — это технология прямого доступа к памяти удалённого компьютера без участия операционной системы и процессора принимающей стороны, позволяющая передавать данные между узлами сети с минимальными задержками и высокой пропускной способностью. RDMA реализуется на уровне сетевого адаптера (Host Channel Adapter, HCA), который обрабатывает запросы на чтение и запись напрямую в память приложения, минуя буферизацию в ядре ОС и копирование данных между пользовательским и системным пространствами. Технология применяется в высокопроизводительных вычислительных кластерах (HPC), центрах обработки данных (ЦОД), распределённых базах данных и системах хранения данных.
¶История
Первые разработки в области прямого доступа к памяти удалённых узлов относятся к 1980-м годам, когда в рамках проекта InfiniBand (изначально Next Generation I/O и Future I/O) была предложена архитектура для высокоскоростной межсоединительной сети. В 1999 году организации InfiniBand Trade Association (IBTA) был опубликован стандарт InfiniBand Architecture Specification, который заложил основы RDMA. В 2000-х годах технология получила распространение в суперкомпьютерных системах, где требовалась минимальная задержка при обмене данными между тысячами процессоров.
В 2010-х годах RDMA была адаптирована для сетей Ethernet: появились протоколы iWARP (Internet Wide Area RDMA Protocol) и RoCE (RDMA over Converged Ethernet). RoCE, особенно версия RoCEv2, стал доминирующим стандартом в ЦОД благодаря совместимости с существующей инфраструктурой Ethernet. В 2020-х годах развитие RDMA продолжается в рамках технологий Compute Express Link (CXL) и Gen-Z, которые расширяют концепцию прямого доступа на память внутри сервера и между серверами.
¶Принцип работы
RDMA основана на модели «протокола с нулевым копированием» (zero-copy). В традиционной сетевой передаче данные проходят несколько этапов: приложение копирует данные в буфер ядра, сетевая карта передаёт их, принимающая сторона копирует в буфер ядра, затем в память приложения. RDMA устраняет эти копирования, позволяя сетевому адаптеру напрямую читать из памяти отправителя и писать в память получателя.
¶Ключевые компоненты
- HCA (Host Channel Adapter) — сетевой адаптер, поддерживающий RDMA. Он обрабатывает запросы на передачу данных без участия процессора.
- QP (Queue Pair) — пара очередей (отправки и приёма), через которые приложение взаимодействует с HCA. Каждый QP идентифицируется адресом (LID в InfiniBand или IP-адресом в RoCE).
- MR (Memory Region) — область памяти, зарегистрированная для RDMA-операций. При регистрации HCA получает доступ к физическим адресам этой области.
- CQ (Completion Queue) — очередь завершения, в которую HCA помещает уведомления о выполненных операциях.
¶Операции RDMA
- RDMA Read — чтение данных из памяти удалённого узла. Инициатор отправляет запрос, содержащий адрес памяти на удалённой стороне, и получает данные напрямую в свой буфер.
- RDMA Write — запись данных в память удалённого узла. Инициатор отправляет данные и адрес назначения; удалённый HCA записывает их в указанную область.
- Send/Receive — традиционная модель отправки сообщений, где отправитель посылает данные, а получатель заранее подготавливает буфер для приёма. В отличие от Read/Write, данные не записываются в произвольный адрес, а передаются через очередь.
¶Протоколы и стандарты
¶InfiniBand
InfiniBand — это изначальная среда для RDMA, использующая собственную физическую и канальную архитектуру. Скорости передачи достигают 400 Гбит/с (HDR) и выше. InfiniBand применяется в суперкомпьютерах (например, в системах Top500) и в высокопроизводительных ЦОД.
¶RoCE (RDMA over Converged Ethernet)
RoCE — это протокол, инкапсулирующий RDMA-трафик в кадры Ethernet. Версия RoCEv1 работает на уровне 2 (MAC-адреса), RoCEv2 — на уровне 3 (IP-адреса и UDP-порты). RoCEv2 требует настройки управления перегрузками (Priority Flow Control, PFC) для предотвращения потерь пакетов, так как RDMA чувствительна к потерям. RoCE широко используется в ЦОД благодаря дешевизне Ethernet-оборудования.
¶iWARP (Internet Wide Area RDMA Protocol)
iWARP — это протокол RDMA поверх TCP/IP, стандартизированный IETF (RFC 5040–5044). Он использует SCTP или TCP как транспортный уровень, что позволяет работать через обычные сети Ethernet без специальных настроек PFC. Однако iWARP имеет более высокие задержки по сравнению с RoCE из-за накладных расходов TCP.
¶CXL (Compute Express Link)
CXL — это открытый стандарт для когерентного доступа к памяти между процессорами, ускорителями и памятью, основанный на PCIe. CXL поддерживает протоколы, близкие к RDMA, но на уровне межсоединений внутри сервера или между серверами через CXL-коммутаторы. CXL активно развивается с 2020 года.
¶Применение
¶Высокопроизводительные вычисления (HPC)
В суперкомпьютерах RDMA используется для передачи данных между узлами при выполнении параллельных задач (MPI, OpenSHMEM). Задержка RDMA (менее 1 микросекунды) критична для масштабируемости приложений, работающих с тысячами процессоров.
¶Системы хранения данных
Распределённые файловые системы (Lustre, GPFS, Ceph) и системы хранения на основе NVMe-oF (NVMe over Fabrics) используют RDMA для доступа к удалённым дискам с минимальной задержкой. RDMA позволяет реализовать протоколы NVMe-oF, где команды NVMe передаются напрямую в память контроллера.
¶Базы данных
Распределённые базы данных (Oracle RAC, SAP HANA, Apache Cassandra) применяют RDMA для ускорения межсерверного обмена данными, репликации и синхронизации кэшей. RDMA снижает накладные расходы на сетевое взаимодействие, что особенно важно для OLTP-нагрузок.
¶Облачные вычисления
Виртуализация RDMA (SR-IOV, VirtIO) позволяет предоставлять гостевые виртуальные машины прямой доступ к RDMA-адаптерам. Это используется в облачных платформах (AWS, Microsoft Azure, Google Cloud) для ускорения сетевых операций.
¶Преимущества и недостатки
¶Преимущества
- Низкая задержка — время передачи данных может составлять менее 1 микросекунды, что на порядок меньше, чем у традиционного TCP/IP.
- Высокая пропускная способность — до 400 Гбит/с и выше.
- Нулевое копирование — исключение операций копирования данных между буферами.
- Низкая нагрузка на процессор — обработка сетевых операций выполняется HCA, освобождая CPU для прикладных задач.
¶Недостатки
- Сложность настройки — требуется конфигурация PFC (для RoCE) или специализированное оборудование (InfiniBand).
- Чувствительность к потерям пакетов — даже единичные потери могут привести к значительному снижению производительности.
- Совместимость — не все сетевые адаптеры и коммутаторы поддерживают RDMA, особенно в старых сетях Ethernet.
- Безопасность — прямой доступ к памяти требует строгих механизмов изоляции и аутентификации, чтобы предотвратить несанкционированный доступ.
¶Критика
RDMA критикуется за сложность внедрения в существующих сетях Ethernet, особенно в условиях, где не поддерживается PFC. Альтернативные подходы, такие как TCP/IP с ускорением (например, DPDK), предлагают сопоставимую производительность при меньшей сложности. Кроме того, RDMA-протоколы (особенно RoCE) могут вызывать проблемы с перегрузкой сети из-за отсутствия встроенных механизмов управления потоком на уровне IP. В ответ на это разрабатываются протоколы с улучшенным контролем перегрузок (DCQCN, TIMELY).
¶Интересные факты
- Технология RDMA лежит в основе работы суперкомпьютера «Ломоносов-2» (МГУ) и других российских HPC-систем.
- В 2023 году компания NVIDIA представила технологию NVLink Switch, которая использует принципы RDMA для соединения GPU внутри одного сервера.
- Протокол iWARP был стандартизирован IETF, но не получил широкого распространения из-за более высокой задержки по сравнению с InfiniBand и RoCE.
¶Источники
- InfiniBand Trade Association. InfiniBand Architecture Specification, Volume 1. 2015.
- Mellanox Technologies. RDMA over Converged Ethernet (RoCE). White Paper, 2014.
- IETF RFC 5040: A Remote Direct Memory Access Protocol Specification. 2007.
- CXL Consortium. Compute Express Link Specification, Revision 3.0. 2022.
- Топ-500 суперкомпьютеров. Список ноябрь 2023 года.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


