Por que há tanto buzz sobre os SmartNICs? Um dos motivos pode ser o anúncio do Projeto Monterey pela VMware. O Projeto Monterey é uma colaboração de todo o setor para integrar SmartNICs ao VMware Cloud Foundation. SmartNICs já existem há algum tempo, estamos apenas vendo-os surgindo como uma plataforma. Para começar, vamos definir alguns termos!
Definição Rápida
Tradicionalmente, usamos NICs (Network Interface Connectors) como um tubo. Eles trazem dados para um servidor e, em seguida, levam os dados do servidor para outro destino. O servidor era responsável por realizar cálculos em qualquer um dos dados.
Como veremos na próxima seção, nossos componentes de infraestrutura evoluíram. Os desenvolvedores precisam dessas ferramentas modernas para criar aplicativos que não seriam possíveis cinco ou dez anos atrás. Construir aplicativos de dados modernos requer algo mais do que um canal de dados passivo! É aí que entram os SmartNICs.
Aqui está a definição de um SmartNIC da PC Magazine:
Uma placa de interface de rede (adaptador de rede) que descarrega as tarefas de processamento que a CPU do sistema normalmente faria. Usando seu próprio processador on-board, o smartNIC pode ser capaz de realizar qualquer combinação de criptografia / descriptografia, firewall, TCP / IP e processamento HTTP.
A Postagem do blog de anúncio da VMware escrito por Kit Colbert tem uma ótima imagem de um SmartNIC.
Por que existe tanto buzz sobre placas de rede inteligentes?
SmartNICs são necessários agora devido à necessidade de melhor desempenho de rede e computação para alimentar aplicativos modernos. O princípio principal é que os SmartNICs podem descarregar tudo, desde recursos de rede a muitas funções de plano de dados e plano de controle. Felizmente, os engenheiros de hardware começaram a pensar nisso alguns anos atrás. Aqui estão as principais razões comerciais para usar SmartNICs.
1. Lei de Moore e o custo dos núcleos
lei de Moore está finalmente alcançando os servidores. O desempenho da CPU não está mais dobrando a cada dois anos, provavelmente porque, conforme as geometrias ficam menores, é mais difícil dobrar o desempenho.
Os núcleos são uma resposta, mas são caros. Como você equilibra a compra de um servidor com uma contagem de núcleo mais alta com o desempenho que os aplicativos que você executará naquele servidor podem precisar?
2. O desempenho da rede está mais complexo do que nunca
De acordo com esta Artigo NextPlatform patrocinado pela Mellanox (2019), em 2018 mais de 70% das portas Ethernet fornecidas com velocidades de cerca de 10 G / s. De acordo com eles:
Nesse nível de desempenho, “a sobrecarga de processamento necessária para servir a interface de rede começa a se tornar um problema - um fato exacerbado pela crescente complexidade das redes de data center modernos que agora podem incluir suporte para técnicas de aceleração de desempenho, virtualização e sobreposição redes. Uma resposta passou a ser o de descarregar parte do processamento no controlador de interface de rede (NIC), os custos da CPU estão aumentando ”.
Além disso, SDN (rede definida por software) mudou o jogo quando se trata de rede. As pessoas não querem esperar por novos recursos quando as empresas de hardware finalmente puderem defini-los. Os clientes desejam uma NIC que possa ser programada para oferecer suporte a funções e protocolos assim que estiverem disponíveis.
3. Utilizando Totalmente Servidores Multi-Socket
A maioria dos servidores hospeda 2 ou 4 soquetes, mas esses soquetes são bem utilizados? Muitas vezes, o segundo soquete é usado para uma expansão de memória, deixando vários núcleos poderosos ociosos. Além disso, a interconexão entre os soquetes (via barramento PCI) terá um impacto no desempenho. Por exemplo, os dados podem entrar em um soquete em uma determinada velocidade. Por fim, a latência é introduzida à medida que os dados fluem do primeiro soquete para o segundo. O armazenamento em particular pode ser afetado por essa latência.
4. Domínios de falha de armazenamento
De acordo com o Fazil Osman da Broadcom, muitos clientes usam esses servidores poderosos para construir sistemas de armazenamento de expansão. Com sistemas de armazenamento, o domínio da falha é sempre importante. Por exemplo, quantas unidades estão atrás de um nó? O pessoal de armazenamento sempre pensa: o que acontece se esse nó falhar? Quantos dados vou perder? Os dados podem ser replicados? A questão é: pode um SmartNIC ser programado para aliviar problemas comuns de armazenamento em um sistema de scale-out?
A apresentação de Osman sobre SmartNICs é bastante abrangente. Usei-o para começar a me familiarizar com esse tópico e o recomendaria como uma cartilha.
Diferentes tipos de SmartNICs
Até agora, cobrimos a definição de um SmartNIC e o que está causando o burburinho sobre os SmartNICs.
Vamos falar brevemente sobre os diferentes tipos de SmartNICs. Eles foram agrupados de maneiras diferentes, com base no fornecedor. Se houver uma definição para isso em toda a indústria, eu adoraria ver! Deixe-me saber nos comentários.
1. SmartNICs multicore
Multicore SmartNICs são baseados em ASICs contendo múltiplos núcleos de CPU. Esses núcleos são geralmente processadores Arm. De acordo com este guia Achronix, esses SmartNICs “também podem incorporar mecanismos de hardware de função fixa que podem descarregar tarefas bem definidas, como segurança padronizada e protocolos de armazenamento”.
É assim que as nuvens públicas estão usando SmartNICs. Esses SmartNICs mais novos têm um ambiente operacional baseado em Linux, então você não precisa saber como programar uma linguagem de processador de função específica.
2. FPGA + NICs
FPGA significa Matriz de porta programável em campo. Isso permite que você programe qualquer função do plano de dados que deseja descarregar da NIC. Ele também permite que você altere a programação conforme necessário, o que significa que você não precisa esperar que o fornecedor forneça a programação para algo que você precisa atualizar.
Essa arquitetura tem um desempenho muito bom. No entanto, a pessoa que o projeta deve ter experiência na linguagem de programação para obter o desempenho correto. Além disso, dispositivos maiores podem ser caros.
3. Processador de função de rede
Os processadores de função de rede são usados principalmente por empresas de telecomunicações. É necessário alguém que conheça essas linguagens de processador de função específicas para programá-las.
Conversa real
SmartNICs não são novos, os provedores de nuvem pública os usam há anos. No entanto, essa também é uma metodologia que pode ser usada em datacenters locais. Precisamos apenas compreender as possibilidades. Os fornecedores de SmartNIC incluem Broadcom, Ethernity Networks, Intel, Marvell, Mellanox (agora Nvidia), Napatech, Netronome, Pensando e Xilinx. Procure essas empresas no Dia de Campo Tecnológico arquivos para ouvir diretamente deles.
Ainda estou nos primeiros dias da minha curva de aprendizado sobre SmartNICs. As primeiras informações que encontrei são de 2018. Isso significa que os SmartNICs são uma tecnologia relativamente nascente. Certifique-se de mergulhar na realidade desta nova tecnologia. Não confie apenas no buzz sobre os SmartNICs!
Eu também usei essas fontes enquanto escrevia esta postagem:
- https://www.design-reuse.com/articles/46833/how-to-design-smartnics-using-fpgas-to-increase-server-compute-capacity.html
- https://searchnetworking.techtarget.com/tip/An-introduction-to-smart-NICs-and-their-benefits
Trackbacks / Pingbacks