Simple Science

Ciência de ponta explicada de forma simples

# Informática# Arquitetura de redes e da Internet# Computação distribuída, paralela e em cluster

TSoR: Uma Nova Vantagem pra Rede em Nuvem

TSoR melhora o desempenho da rede para aplicações containerizadas usando RDMA.

― 9 min ler


Impulsionando oImpulsionando oDesempenho de Aplicativosna Nuvemcom a tecnologia RDMA.O TSoR acelera a rede de contêineres
Índice

Aplicativos nativos de nuvem geralmente precisam de formas rápidas e eficientes de se comunicar através de redes. Um método promissor é usar RDMA (Acesso Direto à Memória Remota), que pode oferecer velocidades mais altas e menores latências em comparação com métodos tradicionais de rede. No entanto, existem alguns problemas a serem resolvidos ao usar RDMA com aplicativos em containers.

Problemas com RDMA em Containers

  1. Sem Mudanças no Código: Os desenvolvedores normalmente não querem mudar suas aplicações só para que elas funcionem melhor com uma nova rede. Muitas aplicações já usam sockets padrão para comunicação, e as mudanças podem ser muito difíceis ou demoradas.

  2. Integração com Ferramentas de Gerenciamento: Ferramentas que ajudam a gerenciar containers, como Kubernetes, precisam funcionar de forma tranquila com novos métodos de rede. Se o novo método não for compatível, isso dá mais trabalho para configurar e executar as aplicações.

  3. Utilização de Desempenho: Para aproveitar ao máximo a velocidade do RDMA, é importante projetar uma rede que possa usar o potencial do RDMA sem criar gargalos.

TCP Socket sobre RDMA (TSoR)

Para lidar com esses desafios, uma nova solução de rede chamada TSoR foi proposta. TSoR cria uma conexão entre comunicações tradicionais de sockets TCP e redes RDMA, mantendo tudo simples para os desenvolvedores.

Como Funciona o TSoR

TSoR permite que aplicações existentes se comuniquem via RDMA sem necessidade de mudanças no código. Ele se integra com runtimes de containers e ferramentas de orquestração como Kubernetes, tornando a utilização bem fácil. O TSoR também constrói um stack de rede especial para transferir comunicações TCP eficientemente através do RDMA.

Avaliação do TSoR

O TSoR foi testado usando diversas aplicações populares como Redis e Node.js para medir seu desempenho em comparação com redes de containers tradicionais. Os resultados mostraram que o TSoR ofereceu taxas de Transferência de Dados muito mais altas e reduziu as latências, permitindo que as aplicações rodassem muito mais rápido sem precisar de mudanças no código.

Principais Vantagens

  • Aceleração Transparente: As aplicações podem se beneficiar da rede RDMA sem precisar mudar como funcionam.
  • Integração Fácil: Compatível com Kubernetes e outras ferramentas de gerenciamento de containers, facilitando a adoção pelos usuários.
  • Alto Desempenho: Capaz de aumentar significativamente a taxa de transferência de dados e reduzir a latência para aplicações em containers.

O Papel dos Containers

Containers são as unidades básicas de aplicações nativas de nuvem. Eles oferecem várias vantagens, como facilidade de movimentação entre diferentes plataformas, eficiência no uso de recursos e melhor gerenciamento de falhas. Com sistemas de orquestração de containers, esses containers podem ser automatizados para implantação, escalonamento e rede.

A Importância da Rede em Containers

A rede é essencial para o funcionamento eficaz das orquestrações de containers. Ela ajuda os containers a se comunicarem entre si e permite a integração sem costura com vários serviços. Soluções populares de rede para containers usam protocolos padrão TCP/IP; no entanto, podem apresentar limitações de desempenho devido a sobrecarga adicional.

Entendendo o RDMA

O RDMA permite que uma aplicação acesse a memória de outra aplicação em uma máquina diferente diretamente, sem precisar interromper a CPU de nenhuma das máquinas. Isso resulta em latências muito menores e velocidades mais altas em comparação com métodos tradicionais de rede. O RDMA está cada vez mais sendo usado em ambientes que requerem alto processamento de dados, como aprendizado de máquina e computação de alto desempenho.

Desafios com Soluções Existentes

Muitas soluções existentes para transferir tráfego TCP sobre redes RDMA não atendem todas as necessidades dos modernos ambientes em containers. Enquanto algumas soluções ajudam a interceptar tráfego TCP, frequentemente falham em se integrar bem com sistemas de orquestração como Kubernetes.

Características do TSoR

O TSoR vem com várias características importantes:

  1. Suporte a Sockets POSIX: O TSoR suporta a interface padrão de sockets POSIX, então as aplicações podem se comunicar pela rede RDMA sem modificações.

  2. Integração com Kubernetes: O TSoR se adapta ao modelo de rede do Kubernetes. Isso significa que pode se encaixar facilmente nas infraestruturas existentes e utilizar as capacidades embutidas do Kubernetes.

  3. Transferência de Dados de Alto Desempenho: O design do TSoR permite que ele utilize eficientemente o potencial do RDMA para comunicação de rede rápida e responsiva.

Arquitetura do TSoR

A arquitetura do TSoR envolve diferentes componentes que trabalham juntos:

  • Serviço TSoR: Esta é a parte principal que gerencia a comunicação entre aplicações em containers rodando em diferentes nós e redes RDMA.

  • Cliente TSoR: Cada container ou gateway no cluster TSoR possui um cliente que interage com o Serviço TSoR para transferências de dados.

  • Gateway TSoR: O gateway conecta o tráfego interno da rede RDMA ao tráfego TCP externo, permitindo que os containers interajam com serviços fora de sua rede.

Detalhes do Serviço TSoR

O Serviço TSoR lida com várias tarefas:

  • Gerenciamento de Clientes: Acompanha os clientes e gerencia sua comunicação.

  • Gerenciamento de Conexões: Estabelece e gerencia conexões RDMA entre diferentes nós.

  • Processamento de Transferência de Dados: Cuida do envio e recebimento de tráfego de dados pela rede RDMA.

Passos para Estabelecer Conexões

Quando um novo nó entra no sistema TSoR, os seguintes passos ocorrem para configurar conexões:

  1. Iniciação do Servidor TCP: O serviço inicia um servidor TCP para ouvir por conexões de nós novos.

  2. Solicitação de Conexão: O novo nó contata nós existentes para configurar as conexões.

  3. Configuração da Conexão RDMA: Os nós trocam informações para estabelecer conexões RDMA.

Processo de Transmissão de Dados

A transmissão de dados pelo TSoR envolve várias etapas:

  1. A aplicação envia uma solicitação de dados para o Cliente TSoR.
  2. O cliente coloca a solicitação em uma fila para processamento.
  3. O Serviço TSoR recupera a solicitação e envia os dados via RDMA.
  4. O Serviço notifica o cliente assim que os dados estiverem prontos para serem processados.
  5. O cliente recupera os dados para a aplicação.

Otimizações na Transmissão de Dados

Para melhorar a eficiência, várias otimizações foram feitas:

  • Pipeline: Isso permite o envio e recebimento simultâneo de dados, aumentando a taxa geral de transferência.

  • Coalescência de Sinais: Reduz a comunicação desnecessária entre clientes e serviços quando os dados estão sendo transferidos.

  • Sleep Inativo: Minimiza o uso da CPU durante períodos de espera colocando o serviço em modo de espera até ser notificado de novas solicitações.

Integração com Kubernetes e Modelo de Rede

O TSoR funciona bem com a rede do Kubernetes, apoiando vários tipos de comunicação:

  1. Pod para Pod: Permite que containers se comuniquem entre si de forma tranquila.

  2. Pod para Serviço: Expõe aplicações rodando em Pods para outros serviços.

  3. Externo para Serviço: Habilita clientes externos a acessar serviços no cluster TSoR.

  4. Pod para Externo: Permite que Pods acessem recursos fora do cluster.

Solução de Roteamento para TSoR

O TSoR possui um sistema de roteamento sofisticado que garante comunicação eficiente:

  • Atribuição de IP: Cada Pod recebe um IP único, simplificando o roteamento.

  • Múltiplas Tabelas de Consulta: O TSoR utiliza diversas tabelas para gerenciar e roteirizar diferentes tipos de tráfego de rede.

Avaliação de Desempenho do TSoR

Em testes de desempenho, o TSoR mostrou resultados impressionantes:

  • Taxa de Transferência: O TSoR alcançou taxas de transferência de dados significativamente mais altas, superando outros métodos de rede.

  • Latência: As latências experimentadas durante as transferências de dados foram notavelmente menores, tornando as aplicações mais responsivas.

  • Escalabilidade: O TSoR manteve alto desempenho mesmo sob cargas de trabalho aumentadas, demonstrando sua capacidade de lidar com muitas conexões simultâneas.

Testes de Aplicação no Mundo Real

O desempenho do TSoR foi avaliado usando várias aplicações do mundo real como Redis, Node.js e etcd.

Redis

Para o Redis, o TSoR forneceu tempos de resposta mais baixos e maior taxa de transferência do que soluções tradicionais, mostrando sua eficácia para operações de armazenamento de dados.

Node.js

Nos testes com Node.js, o TSoR demonstrou consistentemente tempos de resposta mais rápidos ao lidar com requisições web, especialmente para tamanhos de dados maiores.

etcd

Os testes com etcd mostraram que o TSoR podia gerenciar requisições de forma eficiente, provando ainda mais sua compatibilidade com vários tipos de aplicações distribuídas.

Trabalho Futuro e Desenvolvimentos

À medida que o TSoR continua a evoluir, existem várias áreas para mais desenvolvimentos:

  • Suporte para sockets UDP: Construir em cima da infraestrutura existente para também lidar com tráfego UDP.

  • Melhorando a Comunicação Intra-Pod: Otimizar a comunicação no mesmo host para um desempenho ainda melhor.

  • Descarregamento para SmartNIC: Descarregar alguns serviços do TSoR para SmartNICs pode economizar recursos da CPU e melhorar o desempenho.

Conclusão

O TSoR representa um forte avanço em soluções de rede para aplicações nativas de nuvem. Ao combinar os benefícios dos sockets TCP e RDMA, oferece um caminho para que aplicações existentes ganhem melhor desempenho sem exigir mudanças significativas. O TSoR não só atende às demandas dos ambientes modernos em containers, mas também se integra perfeitamente com ferramentas de orquestração existentes como Kubernetes. Como demonstrado através de testes extensivos, o TSoR mostra grande potencial para aplicações futuras em computação de alto desempenho e operações intensivas em dados.

Fonte original

Título: TSoR: TCP Socket over RDMA Container Network for Cloud Native Computing

Resumo: Cloud-native containerized applications constantly seek high-performance and easy-to-operate container network solutions. RDMA network is a potential enabler with higher throughput and lower latency than the standard TCP/IP network stack. However, several challenges remain in equipping containerized applications with RDMA network: 1) How to deliver transparent improvements without modifying application code; 2) How to integrate RDMA-based network solutions with container orchestration systems; 3) How to efficiently utilize RDMA for container networks. In this paper, we present an RDMA-based container network solution, TCP Socket over RDMA (TSoR), which addresses all the above challenges. To transparently accelerate applications using POSIX socket interfaces without modifications, we integrate TSoR with a container runtime that can intercept system calls for socket interfaces. To be compatible with orchestration systems like Kubernetes, TSoR implements a container network following the Kubernetes network model and satisfies all requirements of the model. To leverage RDMA benefits, TSoR designs a high-performance network stack that efficiently transfers TCP traffic using RDMA network. Thus, TSoR provides a turn-key solution for existing Kubernetes clusters to adopt the high-performance RDMA network with minimal effort. Our evaluation results show that TSoR provides up to 2.3x higher throughput and 64\% lower latency for existing containerized applications, such as Redis key-value store and Node.js web server, with no code changes. TSoR code will be open-sourced.

Autores: Yulin Sun, Qingming Qu, Chenxingyu Zhao, Arvind Krishnamurthy, Hong Chang, Ying Xiong

Última atualização: 2023-05-17 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2305.10621

Fonte PDF: https://arxiv.org/pdf/2305.10621

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes