RDMA – Tecnologia chave para redes aritméticas

A rede aritmética é para resolver o problema de fornecer energia aritmética, e várias tecnologias-chave de energia aritmética, incluindo acesso remoto direto a dados (RDMA), estão intimamente relacionadas aos indicadores de desempenho da rede.

RDMA é a abreviação de Remote Direct Memory Access, criado para resolver o atraso do processamento de dados no lado do servidor na transmissão da rede.

O RDMA transfere dados diretamente para a área de armazenamento de um computador pela rede, movendo os dados rapidamente de um sistema para a memória do sistema remoto sem nenhum impacto no sistema operacional, de modo que não há necessidade de usar muitas funções de processamento de computação. Ele elimina a sobrecarga de replicação de memória externa e troca de contexto, liberando assim largura de banda de memória e ciclos de CPU para melhorar o desempenho do sistema de aplicativos.

DMA no Sentido Tradicional

Direct Memory Access (DMA) é um modo de operação no qual a troca de E/S é realizada inteiramente por hardware. Neste modo, o controlador DMA assume o controle completo do barramento da CPU e a troca de dados ocorre diretamente entre a memória e os dispositivos IO sem passar pela CPU. O controlador DMA envia sinais de endereço e controle para a memória, modifica o endereço, conta o número de palavras transferidas e relata o fim da operação de transferência para a CPU em uma interrupção.

O objetivo de usar o método DMA é reduzir a sobrecarga da CPU durante grandes transferências de dados usando um controlador DMA dedicado (DMAC) para gerar endereços de acesso e controlar o processo de acesso. As vantagens são que as operações são implementadas por circuitos de hardware, a velocidade de transferência é rápida, a CPU não interfere, mas apenas participa durante a inicialização e finalização, e a CPU trabalha em paralelo com os dispositivos periféricos para alta eficiência.

DMA no Sentido Tradicional

Princípio de Funcionamento do RDMA

NICs comuns integram suporte de verificação de hardware e melhorias de software para reduzir o número de cópias de dados enviados, mas não o número de cópias de dados recebidos, que ocupam um grande número de ciclos de computação da CPU.

O processo de trabalho de uma NIC normal

  1. O remetente de dados precisa copiar os dados do buffer do espaço do usuário para o buffer do soquete no espaço do kernel.
  2. O remetente de dados precisa adicionar cabeçalhos de pacote no espaço do kernel para encapsulamento de dados.
  3. Os dados são copiados do buffer de soquete no espaço do kernel para o buffer NIC para transmissão de rede.
  4. O receptor de dados recebe o pacote enviado da máquina remota e copia o pacote do NIC Buffer para o Socket Buffer no espaço do kernel.
  5. Após uma série de protocolos de rede multicamada para analisar os pacotes, os dados analisados ​​são copiados do Socket Buffer do espaço do kernel para o Buffer do espaço do usuário.
  6. Nesse ponto, a troca de contexto do sistema é executada e o aplicativo do usuário é chamado.

Os pacotes recebidos são primeiro armazenados em cache no sistema, onde são processados ​​e os dados correspondentes são atribuídos a uma conexão TCP. O sistema receptor então associa os dados TCP não solicitados com o aplicativo correspondente e copia os dados do buffer do sistema para o endereço de armazenamento de destino. Assim, surgem restrições de velocidade de rede: a intensidade crescente da comunicação do aplicativo e a pesada tarefa da CPU do host no processamento de dados entre o kernel e a memória do aplicativo exigem que o sistema adicione continuamente recursos da CPU do host, configure software eficiente e aprimore o gerenciamento de carga do sistema.

A chave para o problema é eliminar transferências de dados frequentes e desnecessárias na CPU do host e reduzir a latência de mensagens entre sistemas.

RDMA é a transferência direta de informações para o armazenamento do computador pela rede, movendo os dados rapidamente de um sistema para a memória do sistema remoto sem nenhum impacto no sistema operacional, de modo que não seja usado muito do poder de processamento do computador. Ele elimina as operações de cópia de memória externa e troca de texto, liberando assim espaço de barramento e ciclos de CPU para melhorar o desempenho do aplicativo. A prática comum exige que o sistema analise e marque as informações recebidas antes de armazená-las na área correta.

O processo de trabalho do RDMA

  • Quando um aplicativo executa uma solicitação de leitura ou gravação RDMA, ele não executa nenhuma replicação de dados. Sem qualquer envolvimento da memória do kernel, a solicitação RDMA é enviada do aplicativo em execução no espaço do usuário para o NIC local ( NIC=Placa de interface de rede).
  • A NIC lê o conteúdo do buffer e os transmite pela rede para a NIC remota.
  • As informações RDMA transmitidas pela rede contêm o endereço virtual de destino, a chave de memória e os próprios dados. A conclusão da solicitação pode ser tratada inteiramente no espaço do usuário (pesquisando o alinhamento de conclusão no nível do usuário) ou por meio da memória do kernel se o aplicativo for suspenso até que a solicitação seja concluída. As operações RDMA permitem que o aplicativo leia ou grave dados na memória de um aplicativo remoto.
  • O NIC de destino reconhece a chave de memória e grava os dados diretamente no cache do aplicativo. O endereço de memória virtual remota usado para a operação está contido nas informações RDMA.

Tecnologia de cópia zero em RDMA

A tecnologia de rede de cópia zero permite que o NIC transfira dados diretamente de e para a memória do aplicativo, eliminando assim a necessidade de copiar dados entre a memória do aplicativo e a memória do kernel. O desvio de memória do kernel permite que os aplicativos enviem comandos para o NIC sem executar chamadas de memória do kernel. Sem qualquer envolvimento da memória do kernel, as solicitações RDMA são enviadas do espaço do usuário para o NIC local e pela rede para o NIC remoto, o que reduz o número de alternâncias de ambiente entre o espaço de memória do kernel e o espaço do usuário ao processar fluxos de transferência de rede.

Tecnologia de cópia zero em RDMA

No lado esquerdo, podemos ver o protocolo TCP/IP tradicional e o processo de comunicação realizado por uma NIC normal. Obviamente, quando a camada de aplicação deseja obter a mensagem de dados da NIC, ela precisa passar por dois buffers e pela pilha de protocolo TCP/IP normal, onde a interrupção suave é responsável por ler a mensagem de dados do primeiro buffer da fila de recebimento, em seguida, copiando-o para MSGBuff e, finalmente, a camada de aplicativo lê a mensagem de dados para o estado do usuário por meio de uma chamada do sistema. Por outro lado, o lado direito é um processo de cópia zero usando RDMA com as seguintes regras.

1) RDMA e seu LLP (Protocolo de Camada Inferior) podem ser implementados no NIC chamado RNIC (RNIC é RDMA Network Interface Card).

2) As duas implementações mencionadas em 1) passam pelas seguintes etapas: os dados enviados e recebidos são armazenados em cache em um espaço de memória marcado e, em seguida, esse espaço de memória é mapeado diretamente para o espaço do aplicativo de acordo com as regras negociadas entre as duas partes de LLP e RDMA, reduzindo assim pelo menos duas cópias de memória no método de implementação tradicional, ou seja, obtendo cópia zero. A linha fina indica a direção do fluxo de dados, na verdade, o cache do marcador é mapeado diretamente para o espaço do cache do usuário via RDMA.

Composição do RDMA

O RDMA é implementado por três protocolos, RDMA, DDP e MPA, que constituem a família de protocolos iWARP e são usados ​​para garantir a interoperabilidade de redes de alta velocidade. O DDP deve encapsular as mensagens RDMA em pacotes DDP e encaminhá-los para a camada inferior baseada em marcador, Protocol-data-unit-Aligned (MPA), que insere o identificador, comprimento e verificações CRC nos pacotes DDP para formar os dados MPA segmento. A camada IP adiciona os dados de roteamento de rede necessários ao pacote.

Métodos de operação de dados

O protocolo RDMA fornece sete tipos de operações de controle para o buffer de dados direto remoto. Cada operação de controle RDMA, exceto para a operação de leitura do buffer remoto, gera apenas uma mensagem RDMA correspondente.

  1. Send: A operação Send usa a mensagem Send para enviar os dados do aplicativo remetente diretamente para um buffer que não foi explicitamente declarado pelo aplicativo receptor de dados. Portanto, a mensagem de envio usa o modelo de transferência de dados do buffer não marcado DDP para transferir a mensagem do aplicativo superior para o buffer em fila com metatags do aplicativo receptor.
  2. Enviar com invalidar: adicione um veado para enviar. Depois que a mensagem é armazenada em cache no buffer do aplicativo par especificado pelo Stag e a notificação de chegada da mensagem é comunicada ao aplicativo receptor, o aplicativo receptor não permite que o aplicativo remetente acesse o buffer até que o aplicativo receptor declare novamente o buffer disponível para que o aplicativo do remetente continue usando.
  3. Enviar com Evento Solicitado (Enviar com SE): Esta mensagem é usada para enviar os dados do aplicativo remetente diretamente para o buffer de fila não marcado do aplicativo receptor de dados, com todos os recursos de Enviar e feedback adicionado à mensagem.
  4. Enviar com Evento Solicitado e Invalidar (Enviar com SE e Invalidar): A ação correspondente a esta mensagem é enviar os dados da aplicação remetente diretamente para o buffer ainda não explicitamente declarado pela aplicação receptora de dados, que possui todas as funções de Enviar com SE e adiciona feedback à mensagem. Possui todos os recursos do Send with SE e adiciona feedback à mensagem.
  5. Remote Direct Memory Access Write: Corresponde à operação de gravação RDMA e é usado para passar os dados do aplicativo remetente para o buffer declarado pelo aplicativo receptor. Nesta operação, o aplicativo receptor deve ter alocado um buffer de recebimento de aplicativo marcado com antecedência e permitir que o aplicativo emissor execute a gravação do buffer diretamente. Ao mesmo tempo, o aplicativo remetente também obtém as informações sobre a localização, tamanho e Stag correspondente do referido buffer na declaração. O aplicativo remetente então inicia uma operação de gravação RDMA, que usa o modelo de transferência de dados do buffer marcado do DDP para transferir a mensagem do aplicativo remetente diretamente para o buffer marcado declarado pelo aplicativo receptor.
  6. Leitura de acesso direto à memória remota: Corresponde à operação de leitura RDMA, que passa os dados do buffer de aplicativo marcado no lado oposto (correspondente à fonte de dados) para o buffer de aplicativo marcado no lado local (correspondente ao receptor de dados). O aplicativo da camada superior da fonte de dados primeiro precisa alocar o buffer de aplicativo marcado com antecedência e permitir operações de leitura direta no conteúdo desse buffer. Ao mesmo tempo, o aplicativo da camada superior da fonte de dados deve passar informações como localização, tamanho e Stag correspondente do buffer da fonte de dados a ser declarado para o aplicativo da camada superior local. Depois de obter a declaração acima, o aplicativo superior do receptor de dados aloca o buffer de aplicativo marcado correspondente e começa a ler os dados do outro lado.
  7. Encerrar: A operação de encerramento usa uma mensagem de encerramento para notificar o aplicativo local da mensagem de erro que ocorreu para encerrar a operação de cache direto de dados atual. A operação Terminate usa o modelo de buffer meta-marcado do DDP para passar Terminate para o buffer não marcado do outro lado.

Processo de transmissão de dados RDMA

Aplicações de RDMA

O RDMA tem a vantagem de usar hardware de rede tradicional para construir a Internet usando os padrões TCP/IP e Ethernet e será usado para conectar pequenos servidores em um cluster que pode lidar com os grandes bancos de dados que os servidores high-end de hoje com mais de uma dúzia de processadores podem lidar. Quando você coloca RDMA, TOE e Ethernet de 10 GB juntos, é uma tecnologia bastante impressionante.

TOE (TCP Offmecanismo de carregamento, processamento do protocolo TCP/IP da CPU para a NIC)

Durante a comunicação do host pela rede, a CPU precisa gastar muitos recursos no processamento de pacotes de protocolos de rede multicamada, incluindo replicação de dados, processamento de protocolo e processamento de interrupção. A tecnologia TOE libera a CPU dessas operações e transfere o trabalho mencionado acima do processador host para a NIC. A tecnologia TOE requer um NIC específico que suporte Offcarregamento, que é capaz de encapsular pacotes de protocolos de rede multicamadas. Enquanto os NICs comuns acionam uma interrupção para cada pacote, os TOE NICs permitem que cada aplicativo conclua um processo completo de processamento de dados antes de acionar uma interrupção, reduzindo significativamente a carga de resposta do servidor às interrupções.

O TOE NIC executa o processamento de protocolo dentro do NIC à medida que recebe os dados. Portanto, ele não precisa copiar os dados para o buffer de espaço do kernel, mas diretamente para o buffer de espaço do usuário. Essa abordagem de “cópia zero” evita cópias desnecessárias de dados entre a NIC e o servidor.

RDMA nativo

O RDMA está rapidamente se tornando um recurso fundamental de clusters de alta velocidade e redes de área de servidor. Redes InfiniBand e redes baseadas em arquitetura de interface virtual suportam RDMA, enquanto RDMA sobre TCP/IP para uso com transporte offplacas de rede do mecanismo de carga está atualmente em desenvolvimento. Os protocolos que suportam alto desempenho usando RDMA incluem Sockets Direct Protocol, SCSI RDMA Protocol (SRP) e Direct Access File System (DAFS). As bibliotecas de comunicação que usam RDMA incluem Direct Access Provider Library (DAPL), Message Passing Interface (MPI) e Virtual Interface Provider Library (VIPL). Os clusters que executam aplicativos distribuídos são uma das áreas em que o RDMA pode se destacar, pois pode fornecer maior desempenho e melhor escalabilidade em comparação com outros aplicativos RDMA anteriores com o mesmo número de nós quando usado com DAPL ou VIPL e software de banco de dados em execução no cluster. Além disso, a tecnologia RDMA está rapidamente se tornando um recurso fundamental de sistemas de cluster de alta velocidade e redes de área de armazenamento, onde o iWARP/RDMA é um bloco de construção básico. iWARP (Internet Wide Area RDMA Protocol) é uma tecnologia RDMA baseada no protocolo TCP/IP, que implementa a tecnologia RDMA no topo da pilha de protocolo TCP/IP existente adicionando uma camada de DDP no topo do TCP. Ele suporta o uso da tecnologia RDMA na infraestrutura Ethernet padrão sem exigir transmissão Ethernet sem perdas suportada por switches, mas os servidores devem usar placas de rede que suportem iWARP. No entanto, seu desempenho é um pouco pior devido à influência do TCP. Além disso, iSER, uma extensão iSCSI para RDMA, faz pleno uso dos recursos RDMA. Os primeiros aplicativos RDMA incluem acesso remoto ao servidor de arquivos por meio de DAFS e acesso a dispositivos de armazenamento por meio de SRP. O RDMA está rapidamente se tornando um recurso fundamental de clusters de alta velocidade e redes de área de servidor.

Aplicações em NAS e SAN

O armazenamento de conexão direta (DAS) tradicional é uma estrutura de armazenamento centrada no servidor com limitações, como restrições de capacidade, distâncias de conexão limitadas e dificuldades de compartilhamento e gerenciamento. Ele não pode atender às necessidades de aplicativos da era da rede. A chegada da era da rede trouxe grandes mudanças na tecnologia de armazenamento. O armazenamento conectado à rede (NAS) e as redes de área de armazenamento (SAN) podem fornecer recursos de armazenamento avançados, rápidos e convenientes para sistemas de aplicativos na rede, ao mesmo tempo em que permitem recursos de armazenamento compartilhado e gerenciamento centralizado, tornando-se um modelo de aplicativo e gerenciamento de armazenamento ideal atualmente. No entanto, as estruturas NAS têm alguns problemas difíceis de resolver, como capacidade limitada de transferência, escalabilidade limitada, recursos limitados de backup e suporte ineficaz para serviços de banco de dados. O DAFS integra as vantagens dos recursos de armazenamento RDMA e NAS, com todas as operações de leitura e gravação executadas diretamente pelo driver RDMA, reduzindo assim a carga do sistema causada pelos protocolos de arquivo de rede. No futuro, os sistemas de armazenamento NAS adotarão a tecnologia DAFS para melhorar o desempenho do sistema e competir fortemente com os sistemas de armazenamento SAN em termos de desempenho e preço.

banda infinita

As quatro principais vantagens do InfiniBand são baseadas em protocolos padrão, desempenho de 10 GB/s, RDMA e transporte offcarregar. Sua vantagem reside na transmissão de alta velocidade de RDMA e transporte offmotores de carga. Redes InfiniBand e redes baseadas em arquitetura de interface virtual suportam o uso de RDMA, enquanto RDMA sobre TCP/IP com transporte offNICs de mecanismo de carga suportam servidores InfiniBand. Os adaptadores de canal de host (HCA) convertem protocolos no barramento PCI-X ou PCI-Express interno do servidor, e os HCAs com funcionalidade RDMA às vezes são chamados de desvio de kernel. InfiniBand (IB) é uma tecnologia RDMA baseada no InfiniBand arquitetura que requer placas de rede IB dedicadas e switches IB. Em termos de desempenho, as redes InfiniBand são claramente as melhores, mas os preços das placas de rede e dos switches também são muito altos.

RoCE, ou RDMA over Ethernet, é uma tecnologia RDMA baseada em Ethernet e também foi proposta pelo IBTA. O RoCE suporta o uso da tecnologia RDMA na infraestrutura Ethernet padrão, mas requer suporte de switch para transmissão Ethernet sem perdas, e as placas de rede devem ser NICs especiais que suportam RoCE.

À medida que a tecnologia continua a evoluir, as principais tecnologias RDMA podem ser divididas em dois campos: tecnologia IB e IBoE, ou IB sobre Ethernet, que suporta tecnologias RDMA baseadas em Ethernet. RoCE e iWARP pertencem a esta tecnologia. IBoE, ou IB over Ethernet, pode ser propagado em Ethernet e usado com switches Ethernet, enquanto o protocolo IB requer hardware e roteadores dedicados.

Com o desenvolvimento contínuo de redes de poder de computação, a tecnologia DMA originalmente usada para aplicações de uma única máquina ou de área local será aplicada a espaços de maior escala e se tornará uma tecnologia chave em redes de poder de computação.

RDM

Deixe um comentário

Voltar ao Topo