Protokół i transport IB: warstwy, QP, RDMA, menedżer podsieci · InfiniBand · Technologie · Dokumentacja · CodingBox
CodingBox Dokumentacja

Protokół i transport IB: warstwy, QP, RDMA, menedżer podsieci

InfiniBand od początku projektowano jako fabric dla komputerów rozmawiających z pamięcią innych komputerów, a nie do przesyłania pakietów między obcymi sobie urządzeniami. Jego warstwy, adresowanie i zarządzanie wyglądają obco dla inżynierów Ethernet, ale po opanowaniu słownictwa okazują się proste — i tłumaczą, dlaczego warstwa fizyczna podlega tak rygorystycznym normom. Ta strona przedstawia widok protokołu; optyka jest opisana w optyce InfiniBand.

Warstwy

WarstwaZawartośćUwagi
Fizycznalinie (1x, 4x, 8x, 12x), sygnalizacja na linię (od NRZ do PAM4 w HDR… zobacz szybkości), kodowanie (8B/10B do QDR, 64B/66B od FDR), FEC (opcjonalny od FDR, RS-FEC przy HDR/NDR)świat transceivera
Łączalokalny nagłówek trasowania (LRH) z LID-ami, linie wirtualne (VL0–VL14 dane, VL15 zarządzanie), sterowanie przepływem na bazie kredytów dla każdej VL, CRC warstwy łącza (ICRC/VCRC)bezstratna z założenia
Sieciowaglobalny nagłówek trasowania (GRH) ze 128-bitowymi GID-ami do trasowania między podsieciamirzadko używana w obrębie jednego klastra
Transportowapary kolejek (QP) z kolejkami nadawczymi/odbiorczymi, typy usług RC/UC/UD/XRC, segmentacja do MTU, ACK/NAK dla usługi niezawodnejtu działa RDMA
GórnaAPI verbs, MPI, NCCL (przez UCX/SHARP), storage (SRP, iSER, NVMe/IB), IPoIBto, z czego korzystają aplikacje

Adresowanie i identyfikacja

IdentyfikatorRozmiarNadawany przezZnaczenie
GUID64-bitowyproducentstała identyfikacja portu, węzła lub systemu (jak adres MAC)
LID (identyfikator lokalny)16-bitowymenedżer podsieciadres w obrębie podsieci; tablice trasowania korzystają z LID-ów
GID128-bitowySM (prefiks) + GUIDprefiks podsieci + GUID; używany między podsieciami i przez RoCE
PKey (klucz partycji)16-bitowySMprzynależność do partycji (jak VLAN); członkowie pełni/ograniczeni
QPN24-bitowyHCAnumer pary kolejek — punkt końcowy w obrębie portu

Pary kolejek i usługi transportowe

Para kolejek to jedna kolejka nadawcza i jedna kolejka odbiorcza w HCA, należąca do aplikacji. Żądania pracy zgłoszone do niej wykonuje sprzęt; zakończenia trafiają do kolejki zakończeń. Typy usług:

TypNiezawodnaPołączeniowaZastosowanie
RC — niezawodna połączeniowatak (ACK/NAK, retransmisja)tak, jedna QP na partnerawiększość ruchu RDMA; MPI, NCCL, storage
UC — zawodna połączeniowanietakrzadkie
UD — zawodna datagramowanienie, jedna QP dla wszystkich partnerówzarządzanie, IPoIB, multicast
XRC — rozszerzona niezawodna połączeniowatakkolejki odbiorcze współdzielone między procesamiduże zadania MPI, by ograniczyć liczbę QP
RD — niezawodna datagramowatakniepraktycznie nieużywana

Operacje RDMA (READ, WRITE, atomowe) przenoszą dane bezpośrednio między buforami aplikacji na dwóch hostach bez kopiowania ich przez którykolwiek CPU; SEND/RECEIVE przenosi komunikaty. Zanim HCA uzyska dostęp do pamięci, musi ona zostać zarejestrowana (przypięta i opatrzona kluczem). GPUDirect RDMA rozszerza to na pamięć GPU (fabric GPU).

Sterowanie przepływem i MTU

Każde łącze działa w oparciu o sterowanie przepływem na bazie kredytów, dla każdej linii wirtualnej: odbiornik ogłasza dostępne miejsce w buforze, a nadajnik nigdy nie wysyła więcej, niż odbiornik jest w stanie przyjąć. Żadna ramka nie jest odrzucana z powodu przeciążenia; zamiast tego rozchodzi się przeciwciśnienie (back-pressure) — ten sam kompromis co przy kredytach Fibre Channel i powód, dla którego jedno wolne lub błędne łącze degraduje całe zadanie. MTU łącza wynosi 256–4096 bajtów (typowo 4096); MTU ścieżki negocjowane jest od końca do końca. Poziomy usług (SL) mapowane są na VL, by rozdzielić klasy ruchu, a trasowanie adaptacyjne może kierować strumienie z dala od przeciążonych łączy.

Menedżer podsieci

Dokładnie jeden menedżer podsieci (SM) jest aktywny w każdej podsieci (pozostałe pozostają w rezerwie). Menedżer:

  1. Odkrywa topologię, przemierzając fabric za pomocą pakietów zarządzających o trasowaniu bezpośrednim (SMP na VL15/QP0) — każdy przełącznik i port HCA.
  2. Przydziela LID-y i konfiguruje porty (szybkość, szerokość, MTU, arbitraż VL, PKey).
  3. Wylicza trasy — min-hop, up-down, fat-tree, dragonfly+, trasowanie adaptacyjne — i programuje liniową tablicę trasowania każdego przełącznika.
  4. Skanuje sieć okresowo i po zdarzeniach trap (port up/down), przekierowując trasy wokół awarii.
  5. Uruchamia administratora podsieci (SA), który odpowiada na zapytania hostów o ścieżki.

Realizują go OpenSM (open source) oraz menedżery fabric producentów (UFM); menedżer fabric to również miejsce, gdzie w skali całej floty gromadzone są błędy portów, wyniki negocjacji szybkości/szerokości łącza oraz DDM optyki (Niezawodność łącza i monitorowanie).

Negocjacja łącza

Przy podnoszeniu łącza obie strony negocjują szerokość (1x/2x/4x) i szybkość (szybkość na linię) do najwyższej wspólnej wartości. Łącze, które podnosi się na 2x albo o jedną generację wolniej, niż oczekiwano, jest odpowiednikiem sytuacji Ethernet „łącza na 10G zamiast 25G”: światłowód lub laser jednej linii, kabel na granicy parametrów albo niedopasowana generacja transceivera (Szybkość i przepływność). Menedżer fabric raportuje wynegocjowany stan; na hoście pokazują go ibstat / ibportstate.

Narzędzia zarządzania i diagnostyki

NarzędziePrzeznaczenie
ibstat, ibstatuslokalny stan portu, szybkość, szerokość, LID
ibnetdiscoverzrzut topologii
ibdiagnetkontrola całego fabric: błędy, niezgodności szybkości/szerokości, zduplikowane GUID-y, informacje o kablu
perfquery, ibqueryerrorsliczniki dla każdego portu: błędy symboli, zerwania łącza, odzyskania łącza, błędy odbioru portu, nadmierne przepełnienie bufora, odrzucenia VL15, liczniki FEC
mlxlink, mlxcablesszczegóły PHY dla każdego portu oraz EEPROM kabla/transceivera, DDM, histogram FEC
ibportstatewymuszenie szybkości/szerokości, reset portu

Błędy symboli i odzyskania łącza to liczniki warstwy fizycznej — odpowiedniki CRC/FEC z Ethernet, powiązane z mocą Rx i czystością złączy (Fabric).

InfiniBand kontra RoCE w jednym akapicie

RoCE v2 przenosi ten sam transport verbs/RDMA po UDP/IP/Ethernet; zastępuje menedżera podsieci trasowaniem IP, a PKey — VLAN-ami, oraz zastępuje sterowanie przepływem na bazie kredytów mechanizmem PFC/ECN (DCQCN) — który musi być poprawnie skonfigurowany, by zapewnić bezstratność (Ethernet bezstratny, Połączenia międzysystemowe). Transceivery są fizycznie takie same; różni się tylko kodowanie tożsamości i polityki hosta.

W CodingBox

Moduły InfiniBand odczytuje się tak samo jak każdy QSFP/OSFP: dane identyfikacyjne (w tym bity szybkości InfiniBand w bajcie 164 SFF-8636 lub w aplikacjach CMIS), DDM dla każdej linii i sumy kontrolne w Check transceiver oraz DDM. Port negocjujący poniżej znamionowej szybkości warto sprawdzić na stanowisku po obu stronach.


Jeśli znajdziesz nieścisłość lub błąd w tym materiale, zaznacz odpowiedni fragment i naciśnij Ctrl+Enter, aby .