CodingBox Документация

Протокол и транспорт IB: уровни, QP, RDMA, менеджер подсети

InfiniBand с самого начала проектировался как фабрика для компьютеров, обращающихся к памяти друг друга, а не для пакетов между незнакомцами. Его уровни, адресация и управление непривычны инженерам Ethernet, но просты, как только словарь на месте, — и объясняют, почему к физическому уровню такие жёсткие требования. Здесь — взгляд со стороны протокола; оптика — в Оптике InfiniBand.

Уровни

УровеньСодержимоеПримечания
Физическийканалы (1x, 4x, 8x, 12x), сигнал канала (от NRZ до PAM4 в HDR… см. скорости), кодирование (8B/10B до QDR, 64B/66B с FDR), FEC (с FDR опционально, RS-FEC на HDR/NDR)мир трансивера
Канальныйлокальный заголовок маршрутизации (LRH) с LID, виртуальные каналы (VL0–VL14 данные, VL15 управление), кредитное управление потоком по VL, CRC канального уровня (ICRC/VCRC)без потерь по замыслу
Сетевойглобальный заголовок (GRH) со 128-битными GID для маршрутизации между подсетямивнутри одного кластера редко
Транспортныйпары очередей (QP) с очередями отправки/приёма, типы сервиса RC/UC/UD/XRC, сегментация до MTU, ACK/NAK для надёжного сервисаздесь живёт RDMA
ВерхнийAPI verbs, MPI, NCCL (через UCX/SHARP), хранение (SRP, iSER, NVMe/IB), IPoIBчто используют приложения

Адресация и идентичность

ИдентификаторРазмерНазначаетСмысл
GUID64 битпроизводительпостоянная идентичность порта, узла или системы (как MAC)
LID (локальный идентификатор)16 битменеджер подсетиадрес внутри подсети; таблицы пересылки используют LID
GID128 битSM (префикс) + GUIDпрефикс подсети + GUID; используется между подсетями и в RoCE
PKey (ключ раздела)16 битSMчленство в разделе (как VLAN); полные/ограниченные члены
QPN24 битHCAномер пары очередей — конечная точка внутри порта

Пары очередей и транспортные сервисы

Пара очередей — одна очередь отправки и одна очередь приёма в HCA, принадлежащие приложению. Помещённые в неё рабочие запросы исполняет железо; завершения попадают в очередь завершений. Типы сервиса:

ТипНадёжныйС соединениемПрименение
RC — reliable connectedда (ACK/NAK, повтор)да, одна QP на партнёрабольшая часть RDMA-трафика; MPI, NCCL, хранение
UC — unreliable connectedнетдаредко
UD — unreliable datagramнетнет, одна QP на всех партнёровуправление, IPoIB, многоадресность
XRC — extended reliable connectedдаобщие очереди приёма между процессамибольшие задачи MPI ради сокращения числа QP
RD — reliable datagramданетпрактически не используется

Операции RDMA (READ, WRITE, атомарные) переносят данные напрямую между буферами приложений на двух хостах без копирования ЦП; SEND/RECEIVE несёт сообщения. Память должна быть зарегистрирована (закреплена и снабжена ключом), прежде чем HCA сможет её трогать. GPUDirect RDMA распространяет это на память GPU (GPU-фабрики).

Управление потоком и MTU

Каждая линия работает с кредитным управлением потоком по виртуальным каналам: приёмник объявляет буферное пространство, отправитель никогда не передаёт больше, чем тот может принять. Ни один кадр не отбрасывается из-за перегрузки; вместо этого распространяется обратное давление — тот же компромисс, что кредиты Fibre Channel, и причина, по которой одна медленная или ошибочная линия деградирует всю задачу. MTU линии 256–4096 байт (обычно 4096); MTU пути согласуется из конца в конец. Уровни сервиса (SL) отображаются на VL для разделения классов трафика, а адаптивная маршрутизация может уводить потоки от перегруженных линий.

Менеджер подсети

В подсети активен ровно один менеджер подсети (SM) (остальные в резерве). Он:

  1. Обнаруживает топологию, обходя фабрику направленно маршрутизируемыми пакетами управления (SMP на VL15/QP0) — каждый порт коммутатора и HCA.
  2. Назначает LID и настраивает порты (скорость, ширина, MTU, арбитраж VL, PKey).
  3. Вычисляет маршруты — min-hop, up-down, fat-tree, dragonfly+, адаптивная маршрутизация — и программирует линейную таблицу пересылки каждого коммутатора.
  4. Периодически обходит фабрику и реагирует на трапы (порт up/down), перемаршрутизируя в обход отказов.
  5. Запускает администратора подсети (SA), отвечающего на запросы путей от хостов.

Его реализуют OpenSM (open source) и вендорские менеджеры фабрики (UFM); менеджер фабрики — также место, где по всему парку собираются ошибки портов, результаты согласования скорости/ширины и DDM оптики (Надёжность линков и мониторинг).

Согласование линии

При поднятии линии оба конца согласуют ширину (1x/2x/4x) и скорость (на канал) до старшего общего значения. Линия, поднявшаяся на 2x или на поколение медленнее ожидаемого, — InfiniBand-эквивалент «линкуется на 10G, а не 25G» в Ethernet: волокно или лазер одного канала, маргинальный кабель или несовпадение поколений трансиверов (Скорость и режимы). Менеджер фабрики сообщает согласованное состояние; ibstat / ibportstate показывают его на хосте.

Инструменты управления и диагностики

ИнструментНазначение
ibstat, ibstatusсостояние локального порта, скорость, ширина, LID
ibnetdiscoverдамп топологии
ibdiagnetпроверка всей фабрики: ошибки, несовпадения скорости/ширины, дубликаты GUID, сведения о кабелях
perfquery, ibqueryerrorsсчётчики по портам: символьные ошибки, падения линии, восстановления линии, ошибки приёма порта, переполнения буфера, отброшенные VL15, счётчики FEC
mlxlink, mlxcablesдетали PHY по портам и EEPROM кабеля/трансивера, DDM, гистограмма FEC
ibportstateпринудительная скорость/ширина, сброс порта

Символьные ошибки и восстановления линии — счётчики физического уровня, эквиваленты CRC/FEC Ethernet, связанные с мощностью Rx и чистотой (Фабрика).

InfiniBand против RoCE в одном абзаце

RoCE v2 несёт тот же транспорт verbs/RDMA поверх UDP/IP/Ethernet; он заменяет менеджера подсети IP-маршрутизацией, PKey — VLAN, а кредитное управление потоком — PFC/ECN (DCQCN), которые должны быть правильно настроены, чтобы быть без потерь (Lossless Ethernet, Интерконнекты). Трансиверы физически те же; отличаются только кодирование идентификации и политики хостов.

В CodingBox

Модули InfiniBand читаются как любые QSFP/OSFP: идентификация (включая биты скоростей InfiniBand в байте 164 SFF-8636 или применения CMIS), поканальный DDM и контрольные суммы на Check transceiver и DDM. Порт, согласовавшийся ниже номинальной скорости, стоит столового чтения обоих концов.