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

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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

Service
联系我们