Ethernet sem perdas para armazenamento: DCB, PFC, ECN
O Ethernet descarta quadros quando está congestionado; protocolos de armazenamento construídos para Fibre Channel ou RDMA presumem que nada nunca é descartado. O Data Center Bridging (DCB) fecha essa lacuna com controle de fluxo por prioridade e alocação de largura de banda, e o RoCE acrescenta sinalização de congestionamento por cima. O resultado é sem perdas apenas na medida do seu pior enlace: uma óptica no limite que descarta um quadro em um milhão já é um incidente de armazenamento. Esta página explica os mecanismos e os traduz em requisitos de camada física.
O conjunto de ferramentas do DCB
| Padrão | Nome | O que faz |
|---|---|---|
| IEEE 802.1Qbb | PFC — controle de fluxo baseado em prioridade | quadros de pausa por classe de tráfego (0–7): um receptor congestionado para uma classe sem parar a porta |
| IEEE 802.1Qaz | ETS — seleção de transmissão aprimorada | parcelas de largura de banda garantidas por classe (por exemplo, 50% armazenamento, 50% LAN) |
| IEEE 802.1Qaz | DCBX — troca de DCB | negociação baseada em LLDP das configurações de PFC/ETS entre switch e NIC |
| IEEE 802.1Qau | CN — notificação de congestionamento | raramente implantado |
| RFC 3168 + DCQCN | marcação ECN + controle de taxa | o switch marca pacotes quando as filas começam a crescer; as NICs RoCE reduzem o fluxo antes que o PFC seja necessário |
Como o RoCE permanece sem perdas
- O tráfego de armazenamento/RDMA é marcado com uma prioridade dedicada (geralmente 3 ou 4) via DSCP ou 802.1p.
- O PFC é ativado apenas para essa prioridade em cada porta ao longo do caminho, com headroom de buffer dimensionado para a velocidade do enlace e o comprimento do cabo (bytes em trânsito).
- Os limiares de ECN marcam os pacotes cedo; as NICs executam DCQCN para reduzir sua taxa, de modo que o PFC só atue como último recurso.
- O ETS garante à classe de armazenamento sua largura de banda sob carga de LAN.
- O DCBX mantém as configurações da NIC e do switch consistentes; incompatibilidades comprometem, de forma silenciosa, a operação sem perdas.
O FC e o InfiniBand alcançam o mesmo resultado com créditos em cada enlace por padrão; o Ethernet exige que isso seja configurado, verificado e monitorado (Fundamentos de protocolo de FC, Transporte do InfiniBand).
O que pode dar errado
| Problema | Efeito | Detecção |
|---|---|---|
| PFC não ativado em um salto / prioridade errada | descartes sob carga; o RDMA retransmite; picos de latência | contadores de pausa zerados onde não deveriam estar; descartes na classe |
| Tempestade de PFC | um receptor travado pausa o fluxo a montante indefinidamente; o congestionamento se espalha por toda a fabric | quadros de pausa inundando; contadores de watchdog |
| Deadlock de PFC | dependência cíclica de buffer em fabrics Clos; todo o tráfego da classe para | exige detecção de deadlock / watchdog para desfazer |
| Headroom pequeno demais para cabos/ópticas longos | descartes apesar do PFC | descartes com contadores de pausa ativos |
| Limiares de ECN errados | cedo demais: perda de throughput; tarde demais: inundações de PFC | contadores de marcação de ECN, contadores de CNP nas NICs |
| Erros físicos em um enlace (CRC, FEC não corrigível) | quadros perdidos que nenhum controle de fluxo consegue recuperar | contadores de erro de porta, contadores de FEC — Métricas de VDM e FEC |
iSCSI sem DCB
O iSCSI roda sobre TCP e sobrevive a perdas, mas paga o preço em latência e retransmissão. Boas práticas independentemente do DCB:
- VLANs/sub-redes dedicadas por fabric, duas fabrics, MPIO nos hosts;
- quadros jumbo (MTU 9000) de ponta a ponta;
- sem oversubscription entre iniciadores e alvos; uplinks de 25G/100G dimensionados para o array;
- FEC ativado em todo enlace de 25G ou mais; contadores de CRC em zero;
- opcionalmente, PFC na classe do iSCSI para suavizar microbursts (muitos arrays recomendam isso).
Requisitos de camada física
| Requisito | Por quê | Prática |
|---|---|---|
| FEC ativado e compatível em todo enlace de 25G ou mais | o RoCE não tolera o BER bruto de lanes de 25G/50G desprotegidas | FEC e treinamento de enlace |
| CRC e FEC não corrigível = 0 | cada quadro perdido trava uma fila | alertar a qualquer incremento |
| Potência Rx dentro da janela, com margem | ópticas no limite produzem rajadas de erros com a variação de temperatura | Potência Rx e orçamento de potência |
| Velocidade/duplex/AN consistentes | o DAC exige AN + treinamento de enlace nas duas pontas | Cobre e DAC |
| Comprimento de cabo dentro das premissas de headroom | o headroom é calculado a partir dos bytes em trânsito | preferir DAC no rack, SR/AOC na fileira, DR/LR entre salas |
| Identidade aceita pela NIC e pelo switch | ópticas rejeitadas ficam sem enlace ou com velocidade reduzida | Bloqueio do fabricante |
Lista de verificação de monitoramento
- Por porta: quadros de pausa enviados/recebidos por prioridade, marcações de ECN, descartes por classe, CRC, FEC corrigido/não corrigível, flaps de enlace.
- Por NIC: CNPs enviados/recebidos, retransmissões, fora de sequência, timeouts.
- Por óptica: tendências de potência Rx/Tx e temperatura (Monitoramento).
- Correlacione picos de latência de cauda do armazenamento com o que foi listado acima — a camada física é a culpada mais frequentemente do que o array.
No CodingBox
Uma fabric sem perdas é construída com ópticas comuns que simplesmente são mantidas sob um padrão mais alto. A inspeção de entrada na bancada — identidade, somas de verificação, DDM em tempo real comparado aos valores típicos, com a linha de base registrada — é o que mantém módulos no limite fora de uma fabric onde um enlace ruim custa a uma aplicação seu SLA de latência (Check transceiver, DDM).
Onde o PFC e o ECN se encaixam entre os demais mecanismos de encaminhamento, e como os erros de camada física aparecem neles: Fundamentos de encaminhamento.