Configuração das redes InfiniBand e RDMA
Um guia para configurar as redes InfiniBand e RDMA no Red Hat Enterprise Linux 8
Resumo
Fornecendo feedback sobre a documentação da Red Hat Copiar o linkLink copiado para a área de transferência!
Agradecemos sua contribuição em nossa documentação. Por favor, diga-nos como podemos melhorá-la. Para fazer isso:
Para comentários simples sobre passagens específicas:
- Certifique-se de que você está visualizando a documentação no formato Multi-page HTML. Além disso, certifique-se de ver o botão Feedback no canto superior direito do documento.
- Use o cursor do mouse para destacar a parte do texto que você deseja comentar.
- Clique no pop-up Add Feedback que aparece abaixo do texto destacado.
- Siga as instruções apresentadas.
Para enviar comentários mais complexos, crie um bilhete Bugzilla:
- Ir para o site da Bugzilla.
- Como Componente, use Documentation.
- Preencha o campo Description com sua sugestão de melhoria. Inclua um link para a(s) parte(s) relevante(s) da documentação.
- Clique em Submit Bug.
Capítulo 1. Entendendo InfiniBand e RDMA Copiar o linkLink copiado para a área de transferência!
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.
Capítulo 2. Configuração do RoCE Copiar o linkLink copiado para a área de transferência!
Esta seção explica informações de fundo sobre RDMA sobre Ethernet convergente (RoCE), bem como como alterar a versão padrão RoCE, e como configurar um adaptador de software RoCE.
Observe que existem diferentes fornecedores, tais como Mellanox, Broadcom e QLogic, que fornecem hardware RoCE.
2.1. Visão geral das versões do protocolo RoCE Copiar o linkLink copiado para a área de transferência!
O RoCE é um protocolo de rede que permite o acesso remoto direto à memória (RDMA) via Ethernet.
A seguir são apresentadas as diferentes versões RoCE:
- RoCE v1
O protocolo RoCE versão 1 é um protocolo de camada de link Ethernet com ethertype
0x8915que permite a comunicação entre quaisquer dois hosts no mesmo domínio de transmissão Ethernet.Por default, ao usar um adaptador de rede Mellanox ConnectX-3, o Red Hat Enterprise Linux usa o RoCE v1 para o RDMA Connection Manager (RDMA_CM).
- RoCE v2
O protocolo RoCE versão 2 existe sobre o protocolo UDP sobre IPv4 ou o UDP sobre IPv6. A porta de destino UDP número 4791 é reservada para o RoCE v2.
Por default, ao usar um adaptador de rede Mellanox ConnectX-3 Pro, ConnectX-4 Lx ou ConnectX-5, o Red Hat Enterprise Linux usa o RoCE v2 para o RDMA_CM, mas o hardware suporta tanto o RoCE v1 quanto o RoCE v2.
O RDMA_CM estabelece uma conexão confiável entre um cliente e um servidor para a transferência de dados. O RDMA_CM fornece uma interface RDMA neutra em termos de transporte para estabelecer conexões. A comunicação usa um dispositivo RDMA específico, e as transferências de dados são baseadas em mensagens.
O uso de RoCE v2 no cliente e RoCE v1 no servidor não é suportado. Neste caso, configure tanto o servidor quanto o cliente para se comunicar através da RoCE v1.
Recursos adicionais
2.2. Alteração temporária da versão padrão RoCE Copiar o linkLink copiado para a área de transferência!
O uso do protocolo RoCE v2 no cliente e RoCE v1 no servidor não é suportado. Se o hardware em seu servidor suporta apenas o RoCE v1, configure seus clientes para se comunicar com o servidor usando o RoCE v1. Esta seção descreve como aplicar o RoCE v1 no cliente que usa o driver mlx5_0 para o dispositivo Mellanox ConnectX-5 Infiniband. Observe que as mudanças descritas nesta seção são apenas temporárias até que você reinicialize o host.
Pré-requisitos
- O cliente utiliza um dispositivo InfiniBand que utiliza, por padrão, o protocolo RoCE v2.
- O dispositivo InfiniBand no servidor suporta apenas o RoCE v1.
Procedimento
Criar o
/sys/kernel/config/rdma_cm/mlx5_0/diretório:mkdir /sys/kernel/config/rdma_cm/mlx5_0/
# mkdir /sys/kernel/config/rdma_cm/mlx5_0/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exibir o modo RoCE padrão. Por exemplo, para exibir o modo para a porta 1:
cat /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode RoCE v2# cat /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode RoCE v2Copy to Clipboard Copied! Toggle word wrap Toggle overflow Mude o modo RoCE padrão para a versão 1:
eco {\i1}"IB/RoCE v1}" > /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_mode# eco {\i1}"IB/RoCE v1}" > /sys/kernel/config/rdma_cm/mlx5_0/ports/1/default_roce_modeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. Configurando o Soft-RoCE Copiar o linkLink copiado para a área de transferência!
Soft-RoCE é uma implementação de software de acesso remoto direto à memória (RDMA) sobre Ethernet, que também é chamado de RXE. Esta seção descreve como configurar o Soft-RoCE.
Use Soft-RoCE em hosts sem adaptadores de canal host RoCE (HCA).
Pré-requisitos
- Um adaptador Ethernet é instalado no sistema.
Procedimento
Instale os pacotes
libibverbs,libibverbs-utils, einfiniband-diags:yum instalar libibverbs libibverbs-utils infiniband-diags
# yum instalar libibverbs libibverbs-utils infiniband-diagsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Carregue o módulo do kernel
rdma_rxee exiba a configuração atual:rxe_cfg start
# rxe_cfg start Name Link Driver Speed NMTU IPv4_addr RDEV RMTU enp7s0 yes virtio_net 1500Copy to Clipboard Copied! Toggle word wrap Toggle overflow Acrescentar um novo dispositivo RXE. Por exemplo, para adicionar o dispositivo Ethernet
enp7s0como um dispositivo RXE, entre:rxe_cfg adicionar enp7s0
# rxe_cfg adicionar enp7s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exibir o status do dispositivo RXE:
rxe_cfg status
# rxe_cfg status Name Link Driver Speed NMTU IPv4_addr RDEV RMTU enp7s0 yes virtio_net 1500 rxe0 1024 (3)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Na coluna
RDEV, você vê que oenp7s0está mapeado para o dispositivorxe0.Opcional: liste os dispositivos RDMA disponíveis no sistema:
ibv_devices
# ibv_devices device node GUID ------ ---------------- rxe0 505400fffed5e0fbCopy to Clipboard Copied! Toggle word wrap Toggle overflow Alternativamente, use o utilitário
ibstatpara exibir um status detalhado:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Capítulo 3. Configuração do subsistema central RDMA Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como configurar o serviço rdma e aumentar a quantidade de memória que os usuários têm permissão de fixar no sistema.
3.1. Configurando o serviço rdma Copiar o linkLink copiado para a área de transferência!
O serviço rdma gerencia a pilha RDMA no núcleo. Se o Red Hat Enterprise Linux detectar dispositivos InfiniBand, iWARP, ou RoCE, o gerente do dispositivo udev instrui systemd a iniciar o serviço rdma.
Procedimento
Edite o arquivo
/etc/rdma/rdma.confe defina as variáveis dos módulos que você deseja habilitar parayes. O seguinte é o padrão/etc/rdma/rdma.confno Red Hat Enterprise Linux 8:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reinicie o serviço
rdma:systemctl restart rdma
# systemctl restart rdmaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. Renomeando os dispositivos IPoIB Copiar o linkLink copiado para a área de transferência!
Por padrão, os nomes dos kernel IP sobre dispositivos InfiniBand (IPoIB), por exemplo, ib0, ib1, e assim por diante. Para evitar conflitos, a Red Hat recomenda a criação de uma regra no gerenciador de dispositivos udev para criar nomes persistentes e significativos, tais como mlx4_ib0.
Pré-requisitos
- Um dispositivo InfiniBand é instalado no host.
Procedimento
Mostrar o endereço do hardware do dispositivo. Por exemplo, para exibir o endereço do dispositivo chamado
ib0, digite:ip link show ib0
# ip link show ib0 8: ib0: >BROADCAST,MULTICAST,UP,LOWER_UP< mtu 65520 qdisc pfifo_fast state UP mode DEFAULT qlen 256 link/infiniband 80:00:02:00:fe:80:00:00:00:00:00:00:00:02:c9:03:00:31:78:f2 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ffCopy to Clipboard Copied! Toggle word wrap Toggle overflow Os últimos oito bytes do endereço, marcados em negrito no exemplo, são necessários para criar uma regra
udevna próxima etapa.Edite o arquivo
/etc/udev/rules.d/70-persistent-ipoib.rules, e anexe uma regraACTION. Por exemplo, para configurar uma regra que renomeia o dispositivo com o endereço de hardware00:02:c9:03:00:31:78:f2paramlx4_ib0, anexe a seguinte linha:ACTION==="add==="add==", SUBSYSTEM==="net===="DRIVERS==="?*", ATTR{tipo}=="32=", ATTR{address===="?*00:02:c9:03:00:31:78:f2", NAME="mlx4_ib0"ACTION==="add==="add==", SUBSYSTEM==="net===="DRIVERS==="?*", ATTR{tipo}=="32=", ATTR{address===="?*00:02:c9:03:00:31:78:f2", NAME="mlx4_ib0"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Reiniciar o anfitrião:
reinicialização
# reinicializaçãoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
Para detalhes sobre as regras
udev, consulte a página de manualudev(7). -
Para detalhes, por que os primeiros 12 bytes do endereço de hardware não são utilizados na regra
udev, ver Seção 5.2, “Entendendo os endereços de hardware IPoIB”.
3.3. Aumentar a quantidade de memória que os usuários têm permissão de fixar no sistema Copiar o linkLink copiado para a área de transferência!
As operações RDMA requerem o acionamento da memória física. Isto significa que o kernel não pode gravar memória no espaço swap. Se um usuário pinta muita memória, o sistema pode ficar sem memória, e o kernel encerra os processos para liberar mais memória. Por esta razão, o pino de memória é uma operação privilegiada.
Se os usuários não-rooticiais executam grandes aplicações RDMA, pode ser necessário aumentar a quantidade de memória que esses usuários podem fixar no sistema. Esta seção descreve como configurar uma quantidade ilimitada de memória para o grupo rdma.
Procedimento
Como usuário do
root, crie o arquivo/etc/security/limits.d/rdma.confcom o seguinte conteúdo:@rdma soft memlock unlimited @rdma hard memlock unlimited
@rdma soft memlock unlimited @rdma hard memlock unlimitedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Etapas de verificação
Faça o login como membro do grupo
rdmadepois de editar o arquivo/etc/security/limits.d/rdma.conf.Note que o Red Hat Enterprise Linux aplica as configurações atualizadas do
ulimitquando o usuário faz o login.Use o comando
ulimit -lpara exibir o limite:ulimit -l
$ ulimit -l unlimitedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Se o comando retornar
unlimited, o usuário pode fixar uma quantidade ilimitada de memória.
Recursos adicionais
-
Para mais detalhes sobre a limitação de recursos do sistema, consulte a página de manual
limits.conf(5).
Capítulo 4. Configuração de um gerenciador de sub-rede InfiniBand Copiar o linkLink copiado para a área de transferência!
Todas as redes InfiniBand devem ter um gerenciador de sub-rede em funcionamento para que a rede funcione. Isto é verdade mesmo que duas máquinas estejam conectadas diretamente, sem nenhum switch envolvido.
É possível ter mais de um gerente de sub-rede. Nesse caso, um atua como um master e outro atua como um escravo que assumirá o controle caso o master falhe.
A maioria dos interruptores InfiniBand contém um gerenciador de sub-rede incorporado. Entretanto, se você precisar de um gerenciador de sub-rede mais atualizado ou se precisar de mais controle, use o gerenciador de sub-rede OpenSM fornecido pelo Red Hat Enterprise Linux.
4.1. Instalando o gerenciador de sub-rede OpenSM Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como instalar o gerenciador de sub-rede OpenSM.
Procedimento
Instale o pacote
opensm:yum instalar opensm
# yum instalar opensmCopy to Clipboard Copied! Toggle word wrap Toggle overflow Configure o OpenSM se a instalação padrão não for compatível com seu ambiente.
Se apenas uma porta InfiniBand estiver instalada, o host deverá atuar como o gerente da subrede mestre, e nenhuma mudança personalizada é necessária. A configuração padrão funciona sem nenhuma modificação.
Habilite e inicie o serviço
opensm:systemctl habilitado --agora aberto
# systemctl habilitado --agora abertoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
Para uma lista de opções de linha de comando para o serviço
opensm, bem como descrições adicionais das configurações das partições, Qualidade de Serviço (QoS) e outros tópicos avançados, consulte a página de manualopensm(8).
4.2. Configuração do OpenSM usando o método simples Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como configurar o OpenSM se você não precisar de nenhuma configuração personalizada.
Pré-requisitos
- Uma ou mais portas InfiniBand são instaladas no servidor.
Procedimento
Obter os GUIDs para os portos usando o utilitário
ibstat:Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotaAlguns adaptadores InfiniBand usam o mesmo GUID para o nó, sistema e porta.
Edite o arquivo
/etc/sysconfig/opensme defina os GUIDs no parâmetroGUIDS:GUIDS="GUID_1 GUID_2 "
GUIDS="GUID_1 GUID_2 "Copy to Clipboard Copied! Toggle word wrap Toggle overflow Opcionalmente, defina o parâmetro
PRIORITYse vários gerentes de sub-rede estiverem disponíveis em sua sub-rede. Por exemplo:PRIORIDADE=15
PRIORIDADE=15Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
Para informações adicionais sobre os parâmetros que você pode definir em
/etc/sysconfig/opensm, veja a documentação nesse arquivo.
4.3. Configuração do OpenSM através da edição do arquivo opensm.conf Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como configurar o OpenSM, editando o arquivo /etc/rdma/opensm.conf. Use este método para personalizar a configuração do OpenSM se apenas uma porta InfiniBand estiver disponível.
Pré-requisitos
- Apenas uma porta InfiniBand está instalada no servidor.
Procedimento
-
Edite o arquivo
/etc/rdma/opensm.confe personalize as configurações de acordo com seu ambiente. Reinicie o serviço
opensm:systemctl restart opensm
# systemctl restart opensmCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
Quando você instala um pacote
opensmatualizado, o utilitárioyumarmazena o novo arquivo de configuração do OpenSM como/etc/rdma/opensm.conf.rpmnew. Compare este arquivo com seu arquivo personalizado/etc/rdma/opensm.confe incorpore manualmente as mudanças.
4.4. Configuração de múltiplas instâncias OpenSM Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como configurar múltiplas instâncias de OpenSM.
Pré-requisitos
- Uma ou mais portas InfiniBand são instaladas no servidor.
Procedimento
Opcionalmente, copiar o arquivo
/etc/rdma/opensm.confpara o arquivo/etc/rdma/opensm.conf.orig:cp /etc/rdma/opensm.conf /etc/rdma/opensm.conf.orig
# cp /etc/rdma/opensm.conf /etc/rdma/opensm.conf.origCopy to Clipboard Copied! Toggle word wrap Toggle overflow Quando você instala um pacote
opensmatualizado, o utilitárioyumsubstitui o/etc/rdma/opensm.conf. Com a cópia criada nesta etapa, você pode comparar o arquivo anterior com o novo para identificar as alterações e incorporá-las manualmente nos arquivosopensm.confespecíficos da instância.Crie uma cópia do arquivo
/etc/rdma/opensm.conf:cp /etc/rdma/opensm.conf /etc/rdma/opensm.conf.1
# cp /etc/rdma/opensm.conf /etc/rdma/opensm.conf.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Para cada instância criada, anexe um número único e contínuo à cópia do arquivo de configuração.
-
Edite a cópia que você criou na etapa anterior e personalize as configurações da instância para adequá-la ao seu ambiente. Por exemplo, defina os parâmetros
guid,subnet_prefix, elogdir. -
Opcionalmente, criar um arquivo
partitions.confcom um nome exclusivo especificamente para esta sub-rede e referenciar esse arquivo no parâmetropartition_config_file, na cópia correspondente do arquivoopensm.conf. - Repita os passos anteriores para cada instância que você deseja criar.
Iniciar o serviço
opensm:systemctl start opensm
# systemctl start opensmCopy to Clipboard Copied! Toggle word wrap Toggle overflow O serviço
opensminicia automaticamente uma instância única para cada arquivoopensm.conf.*no diretório/etc/rdma/. Caso existam vários arquivosopensm.conf.*, o serviço ignora as configurações no arquivo/etc/sysconfig/opensm, bem como no arquivo base/etc/rdma/opensm.conf.
Recursos adicionais
-
Quando você instala um pacote
opensmatualizado, o utilitárioyumarmazena o novo arquivo de configuração do OpenSM como/etc/rdma/opensm.conf.rpmnew. Compare este arquivo com seus arquivos personalizados/etc/rdma/opensm.conf.\*e incorpore manualmente as mudanças.
4.5. Criação de uma configuração de partição Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como criar configurações de partição InfiniBand para OpenSM. As partições permitem aos administradores criar sub-redes em InfiniBand similares às VLANs Ethernet.
Se você definir uma partição com uma velocidade específica, como 40 Gbps, todos os hosts dentro desta partição devem suportar pelo menos esta velocidade. Se um host não atender aos requisitos de velocidade, ele não poderá aderir à partição. Portanto, defina a velocidade de uma partição para a velocidade mais baixa suportada por qualquer host com permissão para entrar na partição.
Pré-requisitos
- Uma ou mais portas InfiniBand são instaladas no servidor.
Procedimento
Edite o arquivo
/etc/rdma/partitions.confe configure as partições.NotaTodos os tecidos devem conter a divisória
0x7fff, e todos os interruptores e todos os hospedeiros devem pertencer a esse tecido.Por exemplo, adicione o seguinte conteúdo ao arquivo para criar a partição padrão
0x7fffa uma velocidade reduzida de 10 Gbps, e uma partição0x0002com uma velocidade de 40 Gbps:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Capítulo 5. Configurando o IPoIB Copiar o linkLink copiado para a área de transferência!
Por padrão, o InfiniBand não utiliza o protocolo de Internet (IP) para comunicação. Entretanto, o IP sobre InfiniBand (IPoIB) fornece uma camada de emulação de rede IP sobre as redes de acesso remoto direto à memória (RDMA) InfiniBand. Isto permite que aplicações existentes não modificadas transmitam dados sobre redes InfiniBand, mas o desempenho é menor do que se a aplicação usasse RDMA nativamente.
As redes Internet Wide Area RDMA Protocol (iWARP) e RoCE já são baseadas em IP. Portanto, não se pode criar um dispositivo IPoIB em cima de dispositivos IWARP ou RoCE.
5.1. Os modos de comunicação IPoIB Copiar o linkLink copiado para a área de transferência!
Você pode configurar um dispositivo IPoIB no modo Datagram ou Connected. A diferença é o tipo de par de filas que a camada IPoIB tenta abrir com a máquina na outra extremidade da comunicação:
No modo
Datagram, o sistema abre um par de filas desconectado e não confiável.Este modo não suporta pacotes maiores que a Unidade Máxima de Transmissão (MTU) da camada de ligação InfiniBand. A camada IPoIB adiciona um cabeçalho IPoIB de 4 bytes no topo do pacote IP que está sendo transmitido. Como resultado, a MTU IPoIB deve ser 4 bytes menor do que a MTU da camada de link InfiniBand. Como 2048 é um MTU de camada de link InfiniBand comum, o MTU do dispositivo IPoIB comum no modo
Datagramé 2044.No modo
Connected, o sistema abre um par de filas conectado e confiável.Este modo permite mensagens maiores que a MTU de camada de link InfiniBand, e o adaptador do host trata da segmentação e remontagem de pacotes. Como resultado, não há limite de tamanho imposto ao tamanho das mensagens IPoIB que podem ser enviadas pelos adaptadores InfiniBand no modo
Connected. Entretanto, os pacotes IP são limitados por causa do camposizee dos cabeçalhos TCP/IP. Por este motivo, o MTU IPoIB no modoConnectedé de no máximo65520bytes.O modo
Connectedtem um desempenho superior, mas consome mais memória do kernel.
Se um sistema é configurado para usar o modo Connected, ele ainda envia tráfego multicast no modo Datagram, porque as chaves InfiniBand e o tecido não podem passar tráfego multicast no modo Connected. Além disso, o sistema volta ao modo Datagram, quando se comunica com qualquer host que não esteja configurado no modo Connected.
Ao executar a aplicação que envia dados multicast até o MTU máximo na interface, você deve configurar a interface no modo Datagram ou configurar a aplicação para limitar o tamanho do envio de pacotes a um tamanho que caberá em pacotes do tamanho de datagramas.
5.2. Entendendo os endereços de hardware IPoIB Copiar o linkLink copiado para a área de transferência!
Os dispositivos IPoIB têm um endereço de hardware de 20 bytes que consiste das seguintes partes:
- Os primeiros 4 bytes são bandeiras e números de pares de filas.
Os próximos 8 bytes são o prefixo da sub-rede.
O prefixo padrão da sub-rede é
0xfe:80:00:00:00:00:00:00. Após o dispositivo se conectar ao gerenciador de sub-rede, o dispositivo muda este prefixo para corresponder ao configurado no gerenciador de sub-rede.- Os últimos 8 bytes são o Identificador Global Único (GUID) da porta InfiniBand a que o dispositivo IPoIB está anexado.
Como os primeiros 12 bytes podem mudar, não os utilize nas regras do gerenciador de dispositivos udev.
Recursos adicionais
- Para detalhes sobre como renomear os dispositivos IPoIB, veja Seção 3.2, “Renomeando os dispositivos IPoIB”.
5.3. Configuração de uma conexão IPoIB usando comandos nmcli Copiar o linkLink copiado para a área de transferência!
Este procedimento descreve como configurar uma conexão IPoIB usando os comandos nmcli.
Pré-requisitos
- Um dispositivo InfiniBand é instalado no servidor, e o módulo do kernel correspondente é carregado.
Procedimento
Criar a conexão InfiniBand. Por exemplo, para criar uma conexão que utilize a interface
mlx4_ib0no modo de transporteConnectede o máximo de MTU de65520bytes, entre:nmcli conexão adicionar tipo infiniband con-name mlx4_ib0 ifname mlx4_ib0 modo de transporte Connected mtu 65520
# nmcli conexão adicionar tipo infiniband con-name mlx4_ib0 ifname mlx4_ib0 modo de transporte Connected mtu 65520Copy to Clipboard Copied! Toggle word wrap Toggle overflow Opcional: definir uma interface
P_Key. Por exemplo, para definir0x8002comoP_Keyinterface da conexãomlx4_ib0, entre:nmcli conexão modificar mlx4_ib0 infiniband.p-key 0x8002
# nmcli conexão modificar mlx4_ib0 infiniband.p-key 0x8002Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar as configurações do IPv4. Por exemplo, para configurar um endereço IPv4 estático, máscara de rede, gateway padrão e servidor DNS da conexão
mlx4_ib0, entre:nmcli connection modify mlx4_ib0 ipv4.addresses '192.0.2.1/24' nmcli connection modify mlx4_ib0 ipv4.gateway '192.0.2.254' nmcli connection modify mlx4_ib0 ipv4.dns '192.0.2.253' nmcli connection modify mlx4_ib0 ipv4.method manual
# nmcli connection modify mlx4_ib0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify mlx4_ib0 ipv4.gateway '192.0.2.254' # nmcli connection modify mlx4_ib0 ipv4.dns '192.0.2.253' # nmcli connection modify mlx4_ib0 ipv4.method manualCopy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar as configurações IPv6. Por exemplo, para configurar um endereço IPv6 estático, máscara de rede, gateway padrão e servidor DNS da conexão
mlx4_ib0, entre:nmcli connection modify mlx4_ib0 ipv6.addresses '2001:db8:1::1/32' nmcli connection modify mlx4_ib0 ipv6.gateway '2001:db8:1::fffe' nmcli connection modify mlx4_ib0 ipv6.dns '2001:db8:1::fffd' nmcli connection modify mlx4_ib0 ipv6.method manual
# nmcli connection modify mlx4_ib0 ipv6.addresses '2001:db8:1::1/32' # nmcli connection modify mlx4_ib0 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify mlx4_ib0 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify mlx4_ib0 ipv6.method manualCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ativar a conexão. Por exemplo, para ativar a conexão
mlx4_ib0:nmcli conexão up mlx4_ib0
# nmcli conexão up mlx4_ib0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. Configuração de uma conexão IPoIB usando um editor de nm-conexão Copiar o linkLink copiado para a área de transferência!
Este procedimento descreve como configurar uma conexão IPoIB usando a aplicação nm-connection-editor.
Pré-requisitos
- Um dispositivo InfiniBand é instalado no servidor, e o módulo do kernel correspondente é carregado.
-
O pacote
nm-connection-editorestá instalado.
Procedimento
Abra um terminal, e entre:
Monitor de conexão de $ nm
Monitor de conexão de $ nmCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Clique no botão para adicionar uma nova conexão.
-
Selecione o tipo de conexão
InfiniBand, e clique em . Na aba
InfiniBand:- Opcionalmente, mudar o nome da conexão.
- Selecione o modo de transporte.
- Selecione o dispositivo.
- Opcional: definir uma MTU.
-
Na aba
IPv4 Settings, configure as configurações do IPv4. Por exemplo, defina um endereço IPv4 estático, máscara de rede, gateway padrão e servidor DNS
-
Na aba
IPv6 Settings, configure as configurações IPv6. Por exemplo, configure um endereço IPv6 estático, máscara de rede, gateway padrão e servidor DNS
- Clique em para salvar a conexão da equipe.
-
Fechar
nm-connection-editor. Opcional: definir uma interface
P_Key. Note que você deve definir este parâmetro na linha de comando, pois a configuração não está disponível emnm-connection-editor.Por exemplo, para definir
0x8002comoP_Keyinterface da conexãomlx4_ib0, entre:nmcli conexão modificar mlx4_ib0 infiniband.p-key 0x8002
# nmcli conexão modificar mlx4_ib0 infiniband.p-key 0x8002Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Capítulo 6. Teste de redes InfiniBand Copiar o linkLink copiado para a área de transferência!
Esta seção fornece procedimentos para testar as redes InfiniBand.
6.1. Teste das primeiras operações InfiniBand RDMA Copiar o linkLink copiado para a área de transferência!
Esta seção descreve como testar as operações de acesso remoto direto à memória InfiniBand (RDMA).
Esta seção se aplica apenas aos dispositivos InfiniBand. Se você usa dispositivos iWARP ou RoCE/IBoE, que são baseados em IP, veja:
Pré-requisitos
- O RDMA está configurado.
-
Os pacotes
libibverbs-utilseinfiniband-diagsestão instalados.
Procedimento
Liste os dispositivos InfiniBand disponíveis:
ibv_devices
# ibv_devices device node GUID ------ ---------------- mlx4_0 0002c903003178f0 mlx4_1 f4521403007bcba0Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exibir as informações para um dispositivo InfiniBand específico. Por exemplo, para exibir as informações do dispositivo
mlx4_1, entre:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exibir o status básico de um dispositivo InfiniBand. Por exemplo, para exibir o status do dispositivo
mlx4_1, entre:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use o utilitário
ibpingpara pingar de um cliente para um servidor usando InfiniBand:No host que atua como um servidor, inicie
ibpingno modo servidor:ibping -S -C mlx4_1 -P 1
# ibping -S -C mlx4_1 -P 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Este comando usa os seguintes parâmetros:
-
-S: Habilita o modo servidor. -
-C InfiniBand_CA_name: Definir é o nome CA a ser usado. -
-P port_number: Define o número da porta a ser utilizada, se a InfiniBand fornecer várias portas.
-
No anfitrião que atua como cliente, use
ibpingcomo segue:ibping -c 50 -C mlx4_0 -P 1 -L 2
# ibping -c 50 -C mlx4_0 -P 1 -L 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
-c number: Envia este número de pacotes para o servidor. -
-C InfiniBand_CA_name: Definir é o nome CA a ser usado. -
-P port_number: Define o número da porta a ser utilizada, se a InfiniBand fornecer várias portas. -
-L port_LID: Define o identificador local (LID) a ser utilizado.
-
Recursos adicionais
-
Para mais detalhes sobre os parâmetros
ibping, consulte a página de manualibping(8).
6.2. Teste de um IPoIB usando o utilitário ping Copiar o linkLink copiado para a área de transferência!
Depois de configurar o IPoIB, use o utilitário ping para enviar pacotes ICMP para testar a conexão IPoIB.
Pré-requisitos
- Os dois anfitriões RDMA estão conectados no mesmo tecido InfiniBand com portas RDMA.
- As interfaces IPoIB em ambos os hosts são configuradas com endereços IP dentro da mesma sub-rede.
Procedimento
Use o utilitário
pingpara enviar pacotes ICMP para o adaptador InfiniBand do host remoto:ping -c5 192.0.2.1
# ping -c5 192.0.2.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Este comando envia cinco pacotes ICMP para o endereço IP
192.0.2.1.
6.3. Teste de uma rede RDMA usando qperf após IPoIB ser configurado Copiar o linkLink copiado para a área de transferência!
Este procedimento descreve exemplos de como exibir a configuração do adaptador InfiniBand e medir a largura de banda e a latência entre dois hosts usando o utilitário qperf.
Pré-requisitos
-
O pacote
qperfestá instalado em ambos os hosts. - O IPoIB é configurado em ambos os hosts.
Procedimento
Inicie
qperfem um dos hosts sem nenhuma opção para atuar como servidor:qperf
# qperfCopy to Clipboard Copied! Toggle word wrap Toggle overflow Use os seguintes comandos sobre o cliente. Os comandos utilizam a porta
1do adaptador do canal hostmlx4_0no cliente para conectar ao endereço IP192.0.2.1atribuído ao adaptador InfiniBand no servidor.Para exibir a configuração, entre:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Para exibir a Conexão Confiável (RC) com largura de banda bidirecional, entre:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Para exibir o RC streaming de largura de banda unidirecional, entre:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
Para mais detalhes sobre
qperf, consulte a página de manualqperf(1).