CodingBox Documentação

NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE e sua óptica

O NVMe substituiu o SCSI dentro do servidor porque a flash é rápida o suficiente para expor o overhead do protocolo; o NVMe over Fabrics (NVMe-oF) transporta o mesmo conjunto de comandos através de uma rede, para que o armazenamento compartilhado consiga acompanhar o ritmo. Ele roda sobre três transportes que correspondem a três tipos de rede — e, portanto, três tipos de óptica e três conjuntos de regras de camada física. Esta página os compara e explica o que cada um exige dos enlaces.

Por que NVMe-oF

AspectoEra SCSI (FCP, iSCSI)NVMe-oF
Filas de comandouma fila, ~32–256 comandosaté 64k filas × 64k comandos; paralelo por projeto
Overhead de protocolo por I/Odezenas de µs de tempo de CPUpoucos µs; os transportes RDMA contornam a CPU
Latência adicionada pela fabric100–200 µs típico10–30 µs (RDMA/FC), 30–80 µs (TCP)
Melhor paraHDD e arrays de flash iniciaisall-flash, armazenamento desagregado, pipelines de dados de GPU

Os transportes

TransporteRedeSem perdas?LatênciaNotas
FC-NVMe (FC-NVMe-2)Fibre Channel 16/32/64GFCsim, por créditosmuito baixaroda junto com o SCSI FCP na mesma fabric e nos mesmos SFPs; zoning e name server inalterados (Fundamentos de protocolo de FC)
NVMe/RoCE v2Ethernet 25/100/200/400G com NICs RDMAexige PFC/ECN (DCQCN)muito baixaverbs/RDMA sobre UDP/IP; exige configuração sem perdas de ponta a ponta (Ethernet sem perdas)
NVMe/TCPqualquer Ethernet/IPnão — o TCP lida com a perdabaixa–médiasem NICs ou recursos de switch especiais; roteável; a escolha de maior volume para empresas
NVMe/IBInfiniBandsim, por créditosmuito baixaarmazenamento para HPC/IA (InfiniBand)

Os quatro compartilham a arquitetura do NVMe-oF: um controlador de descoberta informa aos hosts quais subsistemas existem; os hosts conectam filas a controladores de I/O; o ANA (acesso assimétrico a namespace) trata o multipath.

O que cada um exige da camada física

TransporteRequisito de enlaceÓptica
FC-NVMeenlaces de FC limpos — CRC/ITW perto de zero, créditos não esgotadosSFPs de FC 16/32/64GFC, validados pelo fabricante (Óptica de FC)
NVMe/RoCEperda zero: FEC ativado, PFC na classe do RoCE, sem erros de CRC (cada quadro perdido trava a fila de RDMA com retransmissão go-back-N)25G SFP28 / 100G QSFP28 / 400G; DAC no rack, SR/AOC na fileira, LR/DR entre salas; FEC por PMD
NVMe/TCPcomum; a perda custa latência, não corretudequalquer óptica Ethernet
NVMe/IBcomo nas fabrics InfiniBandcabos e ópticas de IB (Cabeamento de IB)

O RoCE é o mais sensível: um enlace com potência Rx no limite ou um conector sujo produz erros de CRC que o TCP absorveria silenciosamente, mas que travam as filas de RDMA de forma visível. Picos de latência de armazenamento que acompanham os contadores de erro de uma porta são o indício (Potência Rx e orçamento de potência, Métricas de VDM e FEC).

Escolhendo

SituaçãoTransporte adequado
SAN de FC existente, arrays all-flashFC-NVMe — mesma fabric, mesma óptica, ativar por alvo
Armazenamento Ethernet greenfield, fabricantes variados, roteamento entre sitesNVMe/TCP
Crítico em latência, Ethernet de fabricante único, com expertise interna em sem perdasNVMe/RoCE
Cluster de HPC/IA com fabric IBNVMe/IB ou sistemas de arquivos paralelos sobre IB
Clusters de GPU com scale-out em EthernetNVMe/RoCE ou NVMe/TCP em uma rede de armazenamento separada (Fabrics de GPU)

Notas operacionais

  • Redes separadas para armazenamento e computação sempre que possível — ou, ao menos, classes de tráfego separadas; o RoCE precisa da sua própria classe sem perdas.
  • MTU: 9000 nos transportes Ethernet; consistente de ponta a ponta.
  • Multipath: duas fabrics ou duas VLANs/leaves; iniciadores com suporte a ANA.
  • Monitoramento: contadores de CRC/FEC e de pausa por porta, além de tendências de DDM — uma óptica em degradação aparece como latência de cauda bem antes de falhar (Monitoramento).
  • Firmware: as matrizes de compatibilidade de firmware de NIC/HBA e do array importam tanto quanto a compatibilidade das ópticas (Ópticas na SAN).

No CodingBox

A óptica de uma fabric NVMe-oF é feita de módulos comuns de FC, Ethernet ou IB; a diferença é quão pouco erro o transporte tolera. Ler a identidade e o DDM de referência na bancada antes da instalação (Check transceiver, DDM) e codificar identidades que os fabricantes do array e do switch aceitem (Bloqueio do fabricante) são as partes do trabalho que envolvem o programador.

Os adaptadores sobre os quais essas fabrics rodam — NICs de 100G/200G, suas gaiolas (cages), limites de PCIe e políticas de módulo: NICs com portas ópticas.


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