CodingBox Documentação

Protocolo e transporte IB: camadas, QPs, RDMA, gerenciador de sub-rede

O InfiniBand foi projetado desde o início como uma fabric para computadores conversarem com a memória uns dos outros, não para pacotes entre desconhecidos. Suas camadas, endereçamento e gerenciamento parecem estranhos para engenheiros de Ethernet, mas são simples uma vez que o vocabulário está estabelecido — e explicam por que a camada física é mantida sob padrões tão rígidos. Esta página é a visão de protocolo; a óptica está em óptica do InfiniBand.

Camadas

CamadaConteúdoNotas
Físicalanes (1x, 4x, 8x, 12x), sinalização por lane (NRZ até o PAM4 do HDR… veja velocidades), codificação (8B/10B até QDR, 64B/66B a partir de FDR), FEC (opcional a partir de FDR, RS-FEC em HDR/NDR)o mundo do transceptor
Enlacecabeçalho de roteamento local (LRH) com LIDs, lanes virtuais (VL0–VL14 dados, VL15 gerenciamento), controle de fluxo baseado em créditos por VL, CRC de camada de enlace (ICRC/VCRC)sem perdas por projeto
Redecabeçalho de roteamento global (GRH) com GIDs de 128 bits para roteamento multi-sub-rederaramente usado dentro de um único cluster
Transportequeue pairs (QPs) com fila de envio/recebimento, tipos de serviço RC/UC/UD/XRC, segmentação até o MTU, ACK/NAK para serviço confiávelé aqui que vive o RDMA
Superiorverbs API, MPI, NCCL (via UCX/SHARP), armazenamento (SRP, iSER, NVMe/IB), IPoIBo que as aplicações usam

Endereçamento e identidade

IdentificadorTamanhoAtribuído porSignificado
GUID64 bitsfabricanteidentidade permanente de uma porta, nó ou sistema (como um MAC)
LID (identificador local)16 bitssubnet managerendereço dentro de uma sub-rede; as tabelas de encaminhamento usam LIDs
GID128 bitsSM (prefixo) + GUIDprefixo de sub-rede + GUID; usado entre sub-redes e pelo RoCE
PKey (chave de partição)16 bitsSMassociação a uma partição (como uma VLAN); membros completos/limitados
QPN24 bitsHCAnúmero de queue pair — o ponto de extremidade dentro de uma porta

Queue pairs e serviços de transporte

Um queue pair é uma fila de envio e uma fila de recebimento na HCA, pertencente a uma aplicação. As solicitações de trabalho postadas nele são executadas pelo hardware; as conclusões chegam a uma fila de conclusão. Tipos de serviço:

TipoConfiávelConectadoUso
RC — conexão confiávelsim (ACK/NAK, retransmissão)sim, um QP por peera maior parte do tráfego RDMA; MPI, NCCL, armazenamento
UC — conexão não confiávelnãosimraro
UD — datagrama não confiávelnãonão, um QP para todos os peersgerenciamento, IPoIB, multicast
XRC — conexão confiável estendidasimfilas de recebimento compartilhadas entre processosjobs grandes de MPI para reduzir o número de QPs
RD — datagrama confiávelsimnãopraticamente sem uso

As operações de RDMA (READ, WRITE, atomic) movem dados diretamente entre buffers de aplicação em dois hosts sem que nenhuma das CPUs precise copiá-los; SEND/RECEIVE transporta mensagens. A memória precisa ser registrada (fixada e receber uma chave) antes que a HCA possa acessá-la. O GPUDirect RDMA estende isso à memória de GPU (fabrics de GPU).

Controle de fluxo e MTU

Todo enlace executa controle de fluxo baseado em créditos por lane virtual: o receptor anuncia o espaço de buffer disponível, e o transmissor nunca envia mais do que o outro lado pode absorver. Nenhum quadro é descartado por congestionamento; em vez disso, a contrapressão se propaga — a mesma relação de compromisso dos créditos do Fibre Channel, e o motivo pelo qual um único enlace lento ou com erros degrada um job inteiro. O MTU do enlace é de 256–4096 bytes (4096 típico); o MTU do caminho é negociado de ponta a ponta. Os níveis de serviço (SL) são mapeados para as VLs para separar classes de tráfego, e o roteamento adaptativo pode desviar fluxos de enlaces congestionados.

O subnet manager

Exatamente um subnet manager (SM) está ativo por sub-rede (os demais ficam em espera). Ele:

  1. Descobre a topologia percorrendo a fabric com pacotes de gerenciamento de rota direcionada (SMPs na VL15/QP0) — cada switch e porta de HCA.
  2. Atribui LIDs e configura as portas (velocidade, largura, MTU, arbitragem de VL, PKeys).
  3. Calcula rotas — min-hop, up-down, fat-tree, dragonfly+, roteamento adaptativo — e programa a tabela de encaminhamento linear de cada switch.
  4. Varre periodicamente e em traps (porta up/down), refazendo o roteamento para contornar falhas.
  5. Executa o subnet administrator (SA), que responde a consultas de caminho dos hosts.

O OpenSM (código aberto) e os fabric managers de fabricantes (UFM) o implementam; o fabric manager também é onde os erros de porta, os resultados de negociação de velocidade/largura de enlace e o DDM óptico são coletados em toda a frota (Confiabilidade e monitoramento de enlace).

Negociação de enlace

Na subida do enlace, as duas pontas negociam largura (1x/2x/4x) e velocidade (taxa por lane) até o maior valor comum. Um enlace que sobe em 2x, ou uma geração mais lento do que o esperado, é o equivalente, no InfiniBand, ao “enlaces em 10G, não 25G” do Ethernet: a fibra ou o laser de uma lane, um cabo no limite, ou uma geração de transceptor incompatível (Velocidade e taxa). O fabric manager informa o estado negociado; ibstat / ibportstate mostram isso em um host.

Ferramentas de gerenciamento e diagnóstico

FerramentaFinalidade
ibstat, ibstatusestado local da porta, taxa, largura, LID
ibnetdiscoverdump da topologia
ibdiagnetverificação em toda a fabric: erros, incompatibilidades de velocidade/largura, GUIDs duplicados, informações de cabo
perfquery, ibqueryerrorscontadores por porta: erros de símbolo, enlace desativado, recuperação de enlace, erros de recepção de porta, estouro excessivo de buffer, VL15 descartado, contadores de FEC
mlxlink, mlxcablesdetalhes de PHY por porta e EEPROM de cabo/transceptor, DDM, histograma de FEC
ibportstateforçar velocidade/largura, reiniciar uma porta

Erros de símbolo e recuperações de enlace são os contadores de camada física — o equivalente ao CRC/FEC do Ethernet, relacionados à potência Rx e à limpeza (Fabric).

InfiniBand vs RoCE em um parágrafo

O RoCE v2 transporta o mesmo verbs/RDMA sobre UDP/IP/Ethernet; ele substitui o subnet manager por roteamento IP e os PKeys por VLANs, e substitui o controle de fluxo por créditos por PFC/ECN (DCQCN) — que precisa estar configurado corretamente para ser sem perdas (Ethernet sem perdas, Interconexões). Os transceptores são fisicamente os mesmos; apenas a codificação de identidade e as políticas de host diferem.

No CodingBox

Os módulos InfiniBand são lidos como qualquer QSFP/OSFP: identidade (incluindo os bits de taxa do InfiniBand no byte 164 do SFF-8636 ou nas aplicações do CMIS), DDM por lane e somas de verificação em Check transceiver e DDM. Uma porta que negocia abaixo da velocidade nominal justifica uma leitura de bancada em ambas as pontas.


Se você encontrar uma imprecisão ou um erro neste artigo, selecione o trecho correspondente e pressione Ctrl+Enter para .