Bezstratny Ethernet dla pamięci masowej: DCB, PFC, ECN
Ethernet odrzuca ramki, gdy jest przeciążony; protokoły storage zbudowane pod Fibre Channel albo RDMA zakładają, że nic nigdy nie jest odrzucane. Data Center Bridging (DCB) zamyka tę lukę sterowaniem przepływem dla każdego priorytetu i przydziałem pasma, a RoCE dokłada do tego sygnalizację przeciążenia. Wynik jest bezstratny tylko w takim stopniu, w jakim bezstratne jest jego najgorsze łącze: optyka na granicy parametrów, która gubi jedną ramkę na milion, to już incydent storage. Ta strona wyjaśnia te mechanizmy i przekłada je na wymagania warstwy fizycznej.
Zestaw narzędzi DCB
| Standard | Nazwa | Co robi |
|---|---|---|
| IEEE 802.1Qbb | PFC — priority-based flow control | ramki pauzy dla każdej klasy ruchu (0–7): przeciążony odbiornik zatrzymuje jedną klasę bez zatrzymywania portu |
| IEEE 802.1Qaz | ETS — enhanced transmission selection | gwarantowany udział pasma dla każdej klasy (np. 50 % storage, 50 % LAN) |
| IEEE 802.1Qaz | DCBX — DCB exchange | negocjacja ustawień PFC/ETS między przełącznikiem a kartą NIC oparta na LLDP |
| IEEE 802.1Qau | CN — congestion notification | rzadko wdrażane |
| RFC 3168 + DCQCN | znakowanie ECN + kontrola przepływności | przełącznik znakuje pakiety, gdy narastają kolejki; karty NIC RoCE zwalniają strumień, zanim potrzebny będzie PFC |
Jak RoCE pozostaje bezstratny
- Ruch storage/RDMA jest znakowany dedykowanym priorytetem (często 3 albo 4) przez DSCP albo 802.1p.
- PFC jest włączony tylko dla tego priorytetu na każdym porcie wzdłuż trasy, z headroomem bufora dobranym do szybkości łącza i długości kabla (bajtów w locie).
- Progi ECN znakują pakiety wcześnie; karty NIC uruchamiają DCQCN, by zmniejszyć swoją przepływność, dzięki czemu PFC uruchamia się tylko w ostateczności.
- ETS gwarantuje klasie storage jej pasmo pod obciążeniem LAN.
- DCBX utrzymuje spójność ustawień NIC i przełącznika; niezgodności po cichu psują bezstratność.
FC i InfiniBand osiągają to samo domyślnie, dzięki kredytom na każdym łączu; w Ethernet trzeba to skonfigurować, zweryfikować i monitorować (Podstawy protokołu FC, Transport InfiniBand).
Co może pójść nie tak
| Problem | Skutek | Wykrywanie |
|---|---|---|
| PFC niewłączony na jednym przeskoku / zły priorytet | odrzucenia pod obciążeniem; RDMA retransmituje; skoki opóźnień | liczniki pauzy zerowe tam, gdzie nie powinny być; odrzucenia w danej klasie |
| Sztorm PFC | zablokowany odbiornik wstrzymuje ruch w górę bez końca; przeciążenie rozchodzi się na cały fabric | zalew ramek pauzy; liczniki watchdog |
| Zakleszczenie PFC | cykliczna zależność buforów w strukturach fabric Clos; cały ruch danej klasy się zatrzymuje | wymaga wykrywania zakleszczeń / watchdog, by je przerwać |
| Zbyt mały headroom dla długich kabli/optyki | odrzucenia mimo PFC | odrzucenia przy aktywnych licznikach pauzy |
| Złe progi ECN | zbyt wcześnie: utrata przepustowości; zbyt późno: zalew PFC | liczniki znakowań ECN, liczniki CNP na kartach NIC |
| Błędy fizyczne na łączu (CRC, FEC niekorygowalny) | utracone ramki, których nie odzyska żadne sterowanie przepływem | liczniki błędów portu, liczniki FEC — Metryki VDM i FEC |
iSCSI bez DCB
iSCSI działa po TCP i przeżywa utratę pakietów, ale płaci za to opóźnieniem i retransmisją. Dobre praktyki niezależnie od DCB:
- dedykowane VLAN-y/podsieci dla każdego fabric, dwa fabric, MPIO na hostach;
- ramki jumbo (MTU 9000) od końca do końca;
- brak nadsubskrypcji między inicjatorami a targetami; uplinki 25G/100G dobrane do macierzy;
- FEC włączony na każdym łączu 25G i wyżej; liczniki CRC na zerze;
- opcjonalnie PFC na klasie iSCSI, by wygładzić mikro-bursty (wiele macierzy to zaleca).
Wymagania warstwy fizycznej
| Wymaganie | Dlaczego | Praktyka |
|---|---|---|
| FEC włączony i dopasowany na każdym łączu 25G i wyżej | RoCE nie toleruje surowego BER niezabezpieczonych linii 25G/50G | FEC i trening łącza |
| CRC i niekorygowalny FEC = 0 | każda utracona ramka blokuje kolejkę | alarm przy każdym przyroście |
| Moc Rx w oknie, z zapasem | optyka na granicy parametrów generuje wybuchy błędów pod wpływem temperatury | Moc Rx i budżet mocy łącza |
| Spójna szybkość/dupleks/AN | DAC wymaga AN + treningu łącza po obu stronach | Miedź i DAC |
| Długość kabla w granicach założeń headroomu | headroom liczony jest z bajtów w locie | preferuj DAC w szafie, SR/AOC w rzędzie, DR/LR między pomieszczeniami |
| Dane identyfikacyjne akceptowane przez NIC i przełącznik | odrzucona optyka kończy się brakiem łącza albo obniżoną szybkością | Blokada producenta |
Lista kontrolna monitorowania
- Na port: wysłane/odebrane ramki pauzy dla każdego priorytetu, znakowania ECN, odrzucenia dla każdej klasy, CRC, FEC skorygowany/niekorygowalny, przełączenia stanu łącza.
- Na kartę NIC: wysłane/odebrane CNP, retransmisje, pakiety poza kolejnością, przekroczenia czasu.
- Na optykę: trendy mocy Rx/Tx i temperatury (Monitorowanie).
- Zestawiaj skoki skrajnych opóźnień storage z powyższymi danymi — warstwa fizyczna jest winna częściej niż macierz.
W CodingBox
Bezstratny fabric budowany jest ze zwykłej optyki, którą po prostu trzyma się w wyższym standardzie. Kontrola wejściowa na stanowisku — dane identyfikacyjne, sumy kontrolne, DDM na żywo zestawiony z typowymi wartościami, zapisana wartość bazowa — to sposób, by moduły na granicy parametrów nie trafiały do fabric, w którym jedno złe łącze kosztuje aplikację jej SLA opóźnienia (Check transceiver, DDM).
Gdzie PFC i ECN sytuują się wśród innych mechanizmów przekazywania i jak przejawiają się w nich błędy warstwy fizycznej: Podstawy przekazywania.