IB-protocol en transport: lagen, QP’s, RDMA, subnetmanager · InfiniBand · Technologieën · Documentatie · CodingBox
CodingBox Documentatie

IB-protocol en transport: lagen, QP’s, RDMA, subnetmanager

InfiniBand is vanaf het begin ontworpen als een fabric waarin computers met elkaars geheugen communiceren, niet voor pakketten tussen onbekenden. De lagen, adressering en het beheer zijn voor Ethernet-engineers misschien ongewoon, maar worden eenvoudig zodra de terminologie bekend is. Ze verklaren ook waarom de fysieke laag aan zulke strenge normen moet voldoen. Deze pagina beschrijft het protocol; de optiek staat in InfiniBand-optiek.

Lagen

LaagInhoudOpmerkingen
Fysieklanes (1x, 4x, 8x, 12x), signaaloverdracht per lane (NRZ tot PAM4 van HDR… zie snelheden), codering (8B/10B tot QDR, 64B/66B vanaf FDR), FEC (vanaf FDR optioneel, RS-FEC bij HDR/NDR)de wereld van de transceiver
Linklocal routing header (LRH) met LID's, virtuele lanes (VL0–VL14-data, VL15-beheer), flow control op basis van credits per VL, CRC op linklaag (ICRC/VCRC)verliesloos ontworpen
Netwerkglobal routing header (GRH) met 128-bit GID's voor routering tussen meerdere subnetszelden gebruikt binnen één cluster
Transportqueue pairs (QP's) met verzend-/ontvangstwachtrijen, servicetypen RC/UC/UD/XRC, segmentatie tot MTU, ACK/NAK voor betrouwbare servicehier werkt RDMA
Bovenlaagverbs API, MPI, NCCL (via UCX/SHARP), opslag (SRP, iSER, NVMe/IB), IPoIBwat applicaties gebruiken

Adressering en identiteit

IdentificatieGrootteToegekend doorBetekenis
GUID64-bitfabrikantpermanente identiteit van een poort, node of systeem (zoals een MAC)
LID (local identifier)16-bitsubnet manageradres binnen een subnet; forwardingtabellen gebruiken LID's
GID128-bitSM (prefix) + GUIDsubnetprefix + GUID; gebruikt tussen subnets en door RoCE
PKey (partition key)16-bitSMlidmaatschap van een partitie (zoals een VLAN); volledige/beperkte leden
QPN24-bitHCAqueue pair-nummer, het eindpunt binnen een poort

Queue pairs en transportdiensten

Een queue pair bestaat uit één verzendwachtrij en één ontvangstwachtrij in de HCA, in bezit van een applicatie. Werkverzoeken die erop worden geplaatst, voert de hardware uit; voltooiingen komen in een completion queue terecht. Servicetypen:

TypeBetrouwbaarVerbondenGebruik
RC: reliable connectedja (ACK/NAK, hertransmissie)ja, één QP per peermeeste RDMA-verkeer; MPI, NCCL, opslag
UC: unreliable connectedneejazelden
UD: unreliable datagramneenee, één QP voor alle peersbeheer, IPoIB, multicast
XRC: extended reliable connectedjagedeelde ontvangstwachtrijen tussen processengrote MPI-taken om het aantal QP's te beperken
RD: reliable datagramjaneein wezen ongebruikt

RDMA-bewerkingen (READ, WRITE, atomair) verplaatsen gegevens rechtstreeks tussen applicatiebuffers op twee hosts zonder dat een CPU ze kopieert; SEND/RECEIVE verstuurt berichten. Geheugen moet eerst worden geregistreerd (vastgezet en van een sleutel voorzien) voordat de HCA het mag aanraken. GPUDirect RDMA breidt dit uit naar GPU-geheugen (GPU-fabrics).

Flow control en MTU

Elke link gebruikt flow control op basis van credits per virtuele lane: de ontvanger adverteert bufferruimte, de zender verstuurt nooit meer dan de ontvanger kan opnemen. Bij congestie valt geen frame weg; in plaats daarvan plant back-pressure zich voort. Dat is dezelfde afweging als bij de credits van Fibre Channel en verklaart waarom één trage of foutieve link een hele taak vertraagt. Link-MTU is 256–4096 bytes (meestal 4096); path- MTU wordt end-to-end onderhandeld. Service levels (SL) worden op VL's afgebeeld om verkeersklassen te scheiden en adaptive routing kan flows rond overbelaste links sturen.

De subnet manager

Precies één subnet manager (SM) is actief per subnet (andere staan stand-by). Die:

  1. Ontdekt de topologie door de fabric te doorlopen met managementpakketten met een directed route (SMP's op VL15/QP0), langs elke switch- en HCA-poort.
  2. Wijst LID's toe en configureert poorten (snelheid, breedte, MTU, VL-arbitrage, PKeys).
  3. Berekent routes (min-hop, up-down, fat-tree, dragonfly+, adaptive routing) en programmeert de linear forwarding table van elke switch.
  4. Scant periodiek en bij traps (poort omhoog/omlaag), en routeert rond storingen.
  5. Beheert de subnet administrator (SA) die padvragen van hosts beantwoordt.

OpenSM (open source) en fabric managers van fabrikanten (UFM) voeren dit uit; de fabric manager verzamelt ook poortfouten, onderhandelingsresultaten voor linksnelheid/-breedte en DDM van optiek voor het hele cluster (Linkbetrouwbaarheid en monitoring).

Linkonderhandeling

Wanneer een link actief wordt, onderhandelen beide uiteinden over breedte (1x/2x/4x) en snelheid (snelheid per lane) tot de hoogste gemeenschappelijke waarde. Een link die op 2x of één generatie langzamer dan verwacht actief wordt, is het InfiniBand-equivalent van Ethernet “linkt op 10G, niet op 25G”: de glasvezel of laser van één lane, een kabel op de grens van de specificatie of een niet-passende transceivermodulegeneratie kan de oorzaak zijn (Snelheid en rate). De fabric manager meldt de onderhandelde toestand; ibstat / ibportstate tonen die op een host.

Tools voor beheer en diagnostiek

ToolDoel
ibstat, ibstatuslokale poorttoestand, snelheid, breedte, LID
ibnetdiscovertopologiedump
ibdiagnetfabricbrede controle: fouten, snelheids-/breedtemismatches, dubbele GUID's, kabelinformatie
perfquery, ibqueryerrorstellers per poort: symboolfouten, link downed, link recovery, port rcv errors, excessive buffer overrun, VL15 dropped, FEC-tellers
mlxlink, mlxcablesPHY-details per poort en EEPROM, DDM, FEC-histogram van kabel/transceiver
ibportstatesnelheid/breedte forceren, een poort resetten

Symboolfouten en linkherstel zijn de tellers van de fysieke laag: de tegenhangers van Ethernet CRC/FEC, gekoppeld aan Rx-vermogen en reinheid (Fabric).

InfiniBand versus RoCE in één alinea

RoCE v2 draagt hetzelfde verbs/RDMA-transport over UDP/IP/Ethernet; het vervangt de subnet manager door IP-routering en PKeys door VLAN's, en vervangt flow control op basis van credits door PFC/ECN (DCQCN), dat correct moet zijn geconfigureerd om verliesloos te zijn (Verliesloos Ethernet, Interconnects). De transceivers zijn fysiek hetzelfde; alleen de identiteitscodering en het beleid op de host verschillen.

In CodingBox

InfiniBand-modules worden gelezen zoals elke QSFP/OSFP-module: identiteit (inclusief de InfiniBand-ratebits in SFF-8636 byte 164 of CMIS-applicaties), DDM per lane en checksums in Check transceiver en DDM. Als een poort onder de nominale snelheid onderhandelt, is het de moeite waard beide uiteinden op de werkbank uit te lezen.


Vindt u een onjuistheid of fout in dit materiaal? Selecteer het betreffende fragment en druk op Ctrl+Enter om .