📌 RDMA

RDMA (Remote Direct Memory Access) — технология, позволяющая одному компьютеру напрямую обращаться к памяти другого, минуя CPU и OS Kernel. Используется для передачи данных с минимальной задержкой и высокой пропускной способностью.

🧠 Как работает

В традиционных системах сетевой стек требует участия CPU и копирования данных между буферами. RDMA работает иначе:

  • Сетевой адаптер (RNIC) напрямую читает/записывает данные в RAM удалённой машины
  • Обходит IP стек и системные вызовы
  • Использует специализированные протоколы: InfiniBand, RoCE (RDMA over Converged Ethernet), iWARP

Основные компоненты:

  • RNIC (RDMA NIC) — с аппаратной поддержкой доступа к памяти
  • Queue Pairs — пары очередей отправки/приёма
  • Memory Region — заранее зарегистрированная область памяти
  • Completion Queue — сигнал завершения операции

Режимы:

  • Write — удалённая запись
  • Read — удалённое чтение
  • Send/Recv — семантика сообщений

⚙️ Где применяется

ОбластьПрименение
HPCОбмен данными между узлами без нагрузки на CPU
storageNVMe over Fabrics, кластерные ФС
AI / MLБыстрый обмен тензорами между GPU/CPU
CloudРаспределённые In-Memory Database, MPI
Financial TradingLow-latency обмен между системами

✅ Преимущества

  • Низкая задержка (микросекунды)
  • Высокая пропускная способность
  • Минимальная загрузка CPU и Memory Bus
  • Ускорение распределённых вычислений

❌ Недостатки

  • Требуется поддержка на уровне оборудования (RNIC)
  • Сложность настройки и отладки
  • Безопасность требует строгой изоляции регионов памяти
  • Ограниченная совместимость с обычным стеком IP