NVMe over TCP vs RDMA: Desempenho ou Simplicidade no Data Center?
NVMe/TCP ou RoCE v2? Descubra qual protocolo NVMe-oF vence a batalha entre latência ultra-baixa e facilidade de implementação para seu storage em 2025.
Você investiu uma fortuna em um All-Flash Array repleto de drives NVMe de última geração. O armazenamento local voa, entregando milhões de IOPS. Mas no momento em que você tenta compartilhar esse armazenamento pela rede, a performance despenca. O culpado? Provavelmente o protocolo de transporte.
Durante anos, o Fibre Channel foi o rei do data center, e o iSCSI, o cavalo de batalha barato. Mas nenhum dos dois foi feito para a era do NVMe. É aqui que entra o NVMe over Fabrics (NVMe-oF), a tecnologia que estende o protocolo NVMe através da rede, mantendo a latência em níveis microscópicos.
A guerra atual não é mais "se" vamos usar NVMe-oF, mas "como". De um lado, temos o RDMA (RoCE v2), focado em performance bruta e latência zero. Do outro, o NVMe over TCP, que promete democratizar a velocidade usando a infraestrutura que você já tem.
Qual deles merece o lugar no seu rack? Vamos desmontar essa arquitetura.
Resumo em 30 segundos
- RDMA (RoCE v2): Oferece a menor latência possível e baixo uso de CPU ao pular o kernel do sistema operacional, mas exige switches caros e configuração de rede complexa (Lossless Ethernet).
- NVMe over TCP: Funciona na infraestrutura Ethernet padrão existente. É mais barato e simples de implementar, mas consome mais ciclos de CPU do host e tem uma latência ligeiramente maior.
- O Veredito: Use RDMA para cargas de trabalho de HPC e IA onde cada microssegundo conta. Use TCP para virtualização geral, bancos de dados convencionais e ambientes onde a simplicidade operacional supera o ganho marginal de performance.
O gargalo mudou de lugar
Antigamente, o disco mecânico (HDD) era o elo mais fraco. O protocolo de rede (TCP/IP ou Fibre Channel) era muito mais rápido que a agulha lendo o prato magnético. Com o advento do Flash e do protocolo NVMe, a situação se inverteu. O disco agora é capaz de responder mais rápido do que a pilha de rede consegue processar a solicitação.
O NVMe-oF resolve isso encapsulando comandos NVMe em pacotes de rede, eliminando a tradução pesada do SCSI. Mas o "veículo" que transporta esses pacotes define a experiência final.
Figura: Comparação visual entre a pilha de protocolos legada (SCSI) cheia de traduções e a via expressa direta do NVMe over Fabrics.
RDMA e RoCE v2: A busca pela latência zero
O RDMA (Remote Direct Memory Access) é o padrão ouro para performance. A ideia é simples e genial: permitir que uma máquina leia ou escreva diretamente na memória de outra, sem envolver a CPU do sistema operacional remoto.
No contexto de Ethernet, a implementação dominante é o RoCE v2 (RDMA over Converged Ethernet).
Como funciona o "Kernel Bypass"
Em uma transferência de rede normal, a CPU precisa interromper o que está fazendo, copiar os dados do buffer da rede para o kernel, e depois para o espaço do usuário. Isso gera latência e queima ciclos de processamento.
O RDMA usa uma técnica chamada Kernel Bypass (ou Zero Copy). A placa de rede (NIC) conversa diretamente com a memória da aplicação. A CPU fica livre para rodar suas VMs ou bancos de dados, enquanto os dados fluem.
💡 Dica Pro: Para usar RoCE v2, tanto o Initiator (servidor) quanto o Target (storage) precisam de placas de rede compatíveis com RDMA. Não tente fazer isso com NICs genéricas de 1GbE.
O custo oculto: Ethernet sem perdas
Aqui está a pegadinha. O protocolo RDMA odeia perda de pacotes. Se um pacote se perde, o mecanismo de retransmissão é doloroso e a performance cai de um penhasco.
Para evitar isso, você precisa implementar uma Lossless Ethernet (Ethernet sem perdas). Isso exige configurar PFC (Priority Flow Control) e ECN (Explicit Congestion Notification) nos seus switches.
Basicamente, o switch precisa dizer ao servidor: "Pare de mandar dados agora ou vou dropar pacotes!". Configurar PFC corretamente em uma rede grande é notoriamente difícil e propenso a erros humanos que podem paralisar o tráfego.
Figura: O ecossistema complexo do RoCE v2: Switches com controle de fluxo (PFC) ativo para garantir uma rede 'Lossless'.
NVMe over TCP: A revolução da simplicidade
Enquanto o mundo de HPC (High Performance Computing) brigava com configurações de switches, gigantes como a Meta (Facebook) e a Intel impulsionaram o desenvolvimento do NVMe over TCP.
A premissa é: O TCP/IP é a linguagem universal da internet. Ele é robusto, escalável e, o mais importante, sabe lidar com perda de pacotes e congestionamento nativamente.
Por que o TCP está ganhando a guerra
Hardware Padrão: Funciona com qualquer switch e qualquer placa de rede Ethernet moderna. Não precisa de suporte a DCB (Data Center Bridging) ou PFC.
Roteamento Fácil: Como usa o protocolo TCP padrão (porta 4420 ou 8009 geralmente), ele atravessa roteadores e sub-redes sem a dor de cabeça do RoCE, que é mais sensível a saltos de Camada 3.
Custo: Elimina a necessidade de switches "Enterprise Plus" dedicados apenas para o tráfego de storage.
O mito da "CPU alta"
A principal crítica ao NVMe/TCP sempre foi o uso excessivo da CPU para processar a pilha TCP (cálculo de checksums, reordenamento de pacotes).
Isso era verdade em 2018. Hoje, a realidade mudou.
CPUs Modernas: Têm instruções dedicadas e muito poder de sobra.
SmartNICs e Offload: Placas de rede modernas (como as baseadas em chips Broadcom ou NVIDIA ConnectX) fazem "TCP Offload", assumindo parte do trabalho pesado, aproximando a eficiência do TCP à do RDMA.
Figura: A evolução do processamento: Como o TCP Offload nas placas de rede modernas alivia a carga da CPU no NVMe over TCP.
Batalha de Especificações: Lado a Lado
Para quem gosta de dados concretos, aqui está a comparação direta entre as tecnologias no cenário atual de 2025/2026.
| Característica | NVMe over RDMA (RoCE v2) | NVMe over TCP |
|---|---|---|
| Latência Adicional | Extremamente Baixa (< 5 µs) | Baixa (10-20 µs típicos) |
| Uso de CPU (Host) | Mínimo (Offload total) | Médio (Depende da NIC) |
| Complexidade de Rede | Alta (Exige PFC/ECN/Lossless) | Baixa (Plug & Play) |
| Custo de Hardware | Alto (Switches e NICs específicos) | Baixo (Hardware Commodity) |
| Escalabilidade | Limitada pela complexidade da L2/L3 | Infinita (Roteável como a Web) |
| Tolerância a Perdas | Baixa (Performance degrada rápido) | Alta (TCP retransmite bem) |
⚠️ Perigo: Não subestime a complexidade do PFC (Priority Flow Control) no RoCE. Uma configuração errada pode causar o efeito "Head-of-Line Blocking", onde um fluxo congestionado trava todo o tráfego do switch, derrubando não só o storage, mas outras aplicações.
Cenários de Uso: Qual escolher?
A decisão não é sobre qual é "melhor", mas qual resolve seu problema sem criar novos.
Quando escolher RDMA (RoCE v2):
HPC e Supercomputação: Onde simulações científicas exigem latência absoluta mínima.
Treinamento de IA/ML: Clusters de GPU (como NVIDIA DGX) usam RDMA intensivamente para alimentar dados nas GPUs sem gargalos.
Storage Back-end: Comunicação entre controladoras de um mesmo storage array (East-West traffic).
Quando escolher NVMe over TCP:
Virtualização Geral (VMware/Hyper-V): A diferença de 10µs é imperceptível para 99% das VMs corporativas.
Cloud Pública e Privada: A facilidade de automação e a robustez do TCP vencem a complexidade do RDMA em escala.
Edge Computing: Onde você não tem engenheiros de rede especializados para debugar configurações de switch PFC.
Bancos de Dados Convencionais: SQL Server, Oracle e NoSQL rodam perfeitamente bem sobre TCP com latências muito inferiores ao iSCSI antigo.
Figura: Árvore de decisão visual: Escolhendo entre a complexidade de alta performance do RDMA e a universalidade do NVMe/TCP.
O futuro é híbrido (mas tende ao TCP)
A indústria de armazenamento está votando com a carteira. Grandes fabricantes como Dell, NetApp e Pure Storage já tratam o NVMe over TCP como cidadão de primeira classe. O suporte nativo no VMware vSphere 7.0 Update 3 e versões posteriores solidificou o TCP como o sucessor espiritual do iSCSI para a era Flash.
Enquanto o RDMA continuará sendo a Fórmula 1 para nichos específicos, o TCP é o veículo que levará o NVMe para as massas. A simplicidade operacional quase sempre vence a performance bruta no longo prazo. Se você não tem uma equipe de rede dedicada apenas para monitorar fluxos de prioridade nos switches, a escolha segura e performática é o TCP.
Perguntas Frequentes (FAQ)
Preciso de placas de rede especiais para usar NVMe over TCP?
Não. O NVMe/TCP funciona com qualquer placa de rede Ethernet padrão (NIC) e switches comuns, o que reduz drasticamente o custo inicial em comparação ao RDMA. No entanto, placas com recursos de offload podem melhorar a performance.O NVMe over RoCE é sempre mais rápido que o TCP?
Em latência pura e throughput máximo, sim. O RoCE v2 oferece latências próximas ao armazenamento local (sub-10µs adicionais). Porém, para muitas cargas de trabalho generalistas, a diferença prática pode ser imperceptível para o usuário final.Qual a maior desvantagem de implementar RoCE v2?
A complexidade da rede. O RoCE exige uma configuração de 'Lossless Ethernet' (PFC e ECN) nos switches para evitar perda de pacotes. Manter essa configuração estável em escala é difícil e propenso a erros que podem paralisar a rede.
Arthur Costas
Especialista em FinOps
"Transformo infraestrutura em números. Meu foco é reduzir TCO, equilibrar CAPEX vs OPEX e garantir que cada centavo investido no datacenter traga ROI real."