Что такое RDMA?
2026-04-23

RDMA (Remote Direct Memory Access) - это технология сетевых коммуникаций, основанная на DMA (Direct Memory Access). Она позволяет пользовательским приложениям обходить ядро операционной системы (CPU) и напрямую взаимодействовать с сетевыми интерфейсными картами (NIC) для передачи данных, обеспечивая сверхвысокую пропускную способность и сверхнизкую задержку. Изначально разработанная для высокопроизводительных вычислений (HPC), RDMA теперь широко применяется в центрах обработки данных。

1. Технические принципы RDMA

Основной принцип RDMA заключается в использовании специализированного оборудования в сетевых адаптерах (например, RDMA-движков в сетевых картах) для обхода ядра операционной системы и выполнения прямой передачи данных в память ниже транспортного уровня сети. Этот механизм минимизирует задержки и накладные расходы процессора, повышая эффективность сети.


В RDMA обмен данными между отправителем и получателем осуществляется через адаптер RDMA. Сначала отправитель регистрирует буфер данных для отправки в памяти адаптера RDMA и отправляет его дескриптор (содержащий адрес, размер и другую информацию о данных) получателю. Получатель регистрирует буфер приема в RDMA-адаптере и сообщает ему адрес буфера приема. Затем отправитель передает данные непосредственно из буфера отправки в буфер получения через адаптер RDMA без вмешательства операционной системы. Этот процесс называется операцией записи RDMA. Получатель также может считывать данные непосредственно из памяти отправителя с помощью операции чтения RDMA.


RDMA поддерживает три основных типа операций: операции записи, операции чтения и атомарные операции. Операции записи позволяют узлу записывать данные непосредственно в память другого узла. Операции чтения позволяют узлу напрямую считывать данные из памяти другого узла. Атомарные операции - это специальные операции, которые могут выполнять некоторые атомарные операции на удаленных узлах, такие как сравнение и замена (CAS).


Принцип работы RDMA заключается в основном в уменьшении задержки передачи данных и нагрузки на центральный процессор за счет прямого доступа к памяти на аппаратном уровне. По сравнению с традиционным методом связи TCP/IP, RDMA не нужно устанавливать соединение между отправителем и получателем, а также выполнять сложную обработку протокола, поэтому он обладает более высокой производительностью и меньшей задержкой. Кроме того, RDMA поддерживает такие функции, как нулевое копирование и обход ядра, что позволяет еще больше повысить эффективность передачи данных.


В целом, технический принцип RDMA заключается в использовании выделенного аппаратного обеспечения сетевого адаптера через прямой доступ к памяти, в обход ядра операционной системы, и достижении эффективного сетевого взаимодействия с низкой задержкой и малой загрузкой процессора.


2. Технические характеристики RDMA в основном включают следующие аспекты:


* Не требуется вмешательство процессора: Одна из основных характеристик технологии RDMA заключается в том, что она не требует вмешательства центрального процессора. Приложения могут напрямую обращаться к памяти удаленного узла, не потребляя ресурсов ЦП на удаленном узле. Это значительно снижает задержку и загрузку ЦП при передаче данных и повышает общую производительность.


* Обход ядра: RDMA поддерживает технологию обхода ядра, то есть приложения могут напрямую выполнять передачу данных в пользовательском режиме без контекстного переключения между режимом ядра и пользовательским режимом. Это еще больше сокращает задержку при передаче данных и повышает эффективность.


* Нулевое копирование: Технология RDMA обладает свойством нулевого копирования, что позволяет избежать процесса копирования процессором данных из одного хранилища в другое. При коммуникации по TCP/IP передача данных между хостами требует частых операций копирования, а RDMA сокращает эти ненужные операции копирования за счет прямого доступа к памяти, повышая тем самым эффективность передачи данных.


* Высокая пропускная способность и низкая задержка: Поскольку RDMA обходит стек протоколов, предоставляемый операционной системой, и напрямую выполняет передачу данных на транспортном уровне сети, он имеет более высокую пропускную способность и низкую задержку. Это делает RDMA очень подходящим для сценариев сетевого взаимодействия, требующих высокой производительности и низкой задержки.


* Аппаратная поддержка: RDMA требует специальной аппаратной поддержки сетевой карты, которая обычно имеет специальный RDMA-движок для обработки RDMA-коммуникаций. Эта аппаратная поддержка позволяет RDMA достичь высокой производительности и низкой задержки.


В целом, технические особенности RDMA включают отсутствие вмешательства процессора, обход ядра, нулевое копирование, высокую пропускную способность и низкую задержку, а также аппаратную поддержку. Эти особенности делают RDMA эффективной технологией сетевых коммуникаций с низкой задержкой, особенно подходящей для сценариев, требующих обработки больших объемов данных и высокопроизводительных сетевых коммуникаций.


3. Сценарии применения RDMA


Сценарии применения технологии RDMA очень широки. Ниже перечислены основные сценарии применения:


* Центр обработки данных: В центре обработки данных серверы должны часто передавать и обмениваться большими объемами данных. Высокая производительность и низкая задержка RDMA делают его очень подходящим для сетевых коммуникаций в центрах обработки данных, что позволяет повысить эффективность передачи данных, уменьшить задержку и улучшить общую производительность.


* Высокопроизводительные вычисления (HPC): Область высокопроизводительных вычислений требует обработки больших объемов данных и выполнения сложных вычислений. Прямой доступ к памяти и технология нулевого копирования RDMA позволяют снизить накладные расходы на передачу данных и повысить эффективность вычислений. В то же время RDMA поддерживает крупномасштабную параллельную обработку и очень подходит для многоузловых параллельных вычислений в средах HPC.


* Распределенная система хранения данных: В распределенной системе хранения узлы должны часто выполнять операции чтения и записи данных. Эффективная передача данных и прямой доступ к памяти, реализованные в RDMA, позволяют повысить эффективность чтения и записи данных между узлами и улучшить общую производительность распределенных систем хранения.


* Облачные вычисления: В среде облачных вычислений связь и передача данных между виртуальными машинами (ВМ) являются общими требованиями. RDMA может использоваться для обеспечения эффективной связи между виртуальными машинами и повышения общей производительности среды облачных вычислений.


В целом, хотя RDMA имеет ряд недостатков и ограничений, это по-прежнему очень эффективная технология сетевого взаимодействия во многих высокопроизводительных сценариях с низкой задержкой. Выбирая, использовать ли RDMA, необходимо оценить ее применимость и производительность, исходя из конкретных требований приложения и среды.

联系我们