Capítulo 1. Entendendo InfiniBand e RDMA

InfiniBand se refere a duas coisas distintas:

  • O protocolo de camada de ligação física para redes InfiniBand
  • O InfiniBand Verbs API, que é uma implementação da tecnologia de acesso remoto direto à memória (RDMA)

RDMA fornece acesso à memória de um computador para a memória de outro computador sem envolver o sistema operacional de nenhum dos computadores. Esta tecnologia permite uma rede de alto rendimento e baixa latência com baixa utilização da CPU.

Em uma típica transferência de dados IP, quando uma aplicação em uma máquina envia dados para uma aplicação em outra máquina, o seguinte acontece no lado do receptor:

  1. O núcleo deve receber os dados.
  2. O núcleo deve determinar que os dados pertencem à aplicação.
  3. O núcleo acorda a aplicação.
  4. O núcleo espera que a aplicação execute uma chamada de sistema para o núcleo.
  5. A aplicação copia os dados do próprio espaço de memória interna do kernel para o buffer fornecido pela aplicação.

Este processo significa que a maioria do tráfego de rede é copiada através da memória principal do sistema se o adaptador host usar acesso direto à memória (DMA), ou pelo menos duas vezes. Além disso, o computador executa uma série de trocas de contexto para alternar entre o kernel e o contexto da aplicação. Ambas as trocas de contexto podem causar uma alta carga de CPU com altas taxas de tráfego e diminuir a velocidade de outras tarefas.

A comunicação RDMA ultrapassa a intervenção do kernel no processo de comunicação, ao contrário da comunicação IP normal. Isto reduz a sobrecarga da CPU. O protocolo RDMA permite que o adaptador host saiba quando um pacote chega da rede, qual aplicação deve recebê-lo e onde, no espaço de memória da aplicação, o pacote deve ser armazenado. Em vez de enviar o pacote para o kernel para ser processado e depois copiado na memória da aplicação do usuário, com InfiniBand, o adaptador host coloca o conteúdo do pacote diretamente no buffer da aplicação. Este processo requer uma API separada, a InfiniBand Verbs API, e as aplicações devem suportar esta API antes de poderem usar o RDMA.

O Red Hat Enterprise Linux 8 suporta tanto o hardware InfiniBand quanto o InfiniBand Verbs API. Além disso, o Red Hat Enterprise Linux suporta as seguintes tecnologias que permitem o uso da API InfiniBand Verbs em hardware não InfiniBand:

  • Internet Wide Area RDMA Protocol (iWARP): Um protocolo de rede que implementa o RDMA sobre redes IP.
  • RDMA sobre Ethernet convergente (RoCE), também conhecida como InfiniBand over Ethernet (IBoE): Um protocolo de rede que implementa as redes RDMA sobre Ethernet.

Recursos adicionais