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:
- O núcleo deve receber os dados.
- O núcleo deve determinar que os dados pertencem à aplicação.
- O núcleo acorda a aplicação.
- O núcleo espera que a aplicação execute uma chamada de sistema para o núcleo.
- 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
- Para detalhes sobre a implementação de um software RoCE, veja Capítulo 2, Configuração do RoCE.