segunda-feira, 23 de abril de 2012

Você sabe o que é um switch FPGA? Talvez seja a próxima grande evolução da rede.

De maneira simplista, podemos dizer que um FPGA (Field-Programmable Gate Array) é um circuito integrado que pode ser reprogramado. Para entender melhor esse conceito, vamos rapidamente comparar "hardware" de "software".

Normalmente um "hardware" é aquela parte do sistema que vem de fábrica pronta e nada (ou quase nada) se muda. Ela tem uma performance excelente, mas pouca flexibilidade. Já o "software" é aquilo que se coloca sobre o hardware para detalhar melhor o que se deseja.

Uma impressora, por exemplo, tem o seu hardware (processador, memória, cartucho, etc.) e nele se carrega um software que vai definir as funcionalidades. Assim o software é flexível porém tem menos performance do que as tarefas realizadas em hardware. Porém o fabricante da impressora não pode fabricar o equipamento apenas com funcionalidades em hardware, pois se houver algum bug ou necessidade de adicionar um novo recurso, a impressora teria que ser trocada.

Dessa forma cada fabricante deve definir que recursos realiza em hardware (melhor performance, porém menos flexível) ou em software. É um equilíbrio delicado.

Muito bem, o FPGA é um conceito misto. Ele é hardware e tem a performance de hardware, porém ele pode ser reprogramado. Então ele consegue o melhor dos mundos.

Repare que quando você faz uma atualização de um switch ou roteador, você está realizando a troca do software que fica armazenado na memória não volátil (normalmente, uma memória flash). Assim quando você liga o switch ou roteador ele carrega esse software (o tempo de boot) e começa a trabalhar. O FPGA é algo totalmente diferente disso.

No FGPA efetivamente temos um processador, um circuito integrado, que pode ter seu comportamento alterado e com alta performance.

Para que serve um switch com FPGA?

O conceito que está surgindo é ter FPGA dentro de switchs, principalmente para desafogar tarefas de servidores, firewalls, etc.

Ou seja, o switch seria programado para fazer parte das tarefas do servidor. Por exemplo processamento de SSL, decodificação de vídeo, etc. Assim parte do processamento seria realizado no servidor e outra parte no switch.

Uma outra aplicação seria integração com firewalls, no qual parte do processamento das regras sejam realizadas pelo switch.

Em todos esses casos o FPGA dentro do switch teria uma performance muito melhor do que utilizando os mecanismos tradicionais de ASIC e/ou software.

Mas ai surge a questão: porque colocar o FPGA no switch e não diretamente no servidor, firewall ou roteador? Isso é possível, porém existem algumas vantagens em se fazer isso no switch, tais como:
  • o switch se conecta com todos os elementos da rede. Assim várias soluções diferentes (roteador, firewall, servidor, etc.) podem usar o mesmo FGPA.
  • o switch está na frente de todo o tráfego. Dessa forma ele sempre terá acesso aos pacotes que necessita da maneira mais eficiente possível.
Resumo

Eu não creio que os switchs FPGA  sejam capazes de substituir a flexibilidade dos servidores ou a complexidade dos firewalls, mas é bem provável que sejam parte integrante dos data-centers do futuro, desafogando um pouco do trabalho e aumentando a performance desses equipamentos.

Twitter

Me siga para ser informado dos próximos posts:
http://www.twitter.com/mlrodrig
Postar um comentário