vSphere As versões 6.5 e posteriores oferecem suporte à comunicação de acesso remoto direto à memória (RDMA) entre máquinas virtuais que têm adaptadores de rede RDMA paravirtualizados (PVRDMA) .
Visão geral do RDMA
O RDMA permite o acesso direto à memória da memória de um computador para a memória de outro computador sem envolver o sistema operacional ou a CPU. A transferência de memória é transferida para os adaptadores de canal do host (HCA) compatíveis com RDMA . Um adaptador de rede PVRDMA fornece acesso remoto direto à memória em um ambiente virtual.
Usando RDMA em vSphere
Em vSphere, uma máquina virtual pode usar um adaptador de rede PVRDMA para se comunicar com outras máquinas virtuais que tenham dispositivos PVRDMA. As máquinas virtuais devem estar conectadas ao mesmo vSphere Distributed Switch.
O dispositivo PVRDMA seleciona automaticamente o método de comunicação entre as máquinas virtuais. Para máquinas virtuais executadas no mesmo host ESXi com ou sem um dispositivo RDMA físico, a transferência de dados é um memcpy entre as duas máquinas virtuais. O hardware RDMA físico não é usado nesse caso.
Para máquinas virtuais que residem em hosts ESXi diferentes e que têm uma conexão RDMA física, os dispositivos RDMA físicos devem ser uplinks no comutador distribuído. Nesse caso, a comunicação entre as máquinas virtuais por meio de PVRDMA usa os dispositivos RDMA físicos subjacentes.
Para duas máquinas virtuais executadas em hosts ESXi diferentes, quando pelo menos um dos hosts não tem um dispositivo RDMA físico, a comunicação retorna a um canal baseado em TCP e o desempenho é reduzido.
Atribuir um adaptador PVRDMA a uma máquina virtual
Para habilitar uma máquina virtual para trocar dados usando RDMA, você deve associar a máquina virtual a um adaptador de rede PVRDMA.
Pré-requisitos
- Verifique se o host no qual a máquina virtual está em execução está configurado para RDMA. Consulte Configurar um host ESXi para PVRDMA.
- Verifique se o host está conectado a um vSphere Distributed Switch.
- Verifique se a máquina virtual usa hardware virtual versão 13 e superior.
- Verifique se o sistema operacional convidado é uma distribuição Linux de 64 bits.
Procedimento
Configurar uma máquina virtual para usar endpoints nativos de PVRDMA
Os endpoints nativos do PVRDMA estão disponíveis como uma configuração avançada de máquina virtual.
Os endpoints nativos do PVRDMA são compatíveis com o hardware da máquina virtual versão 18 e posterior, começando com o vSphere 7.0 Update 1 e versões posteriores. Para usar endpoints nativos do PVRDMA, você deve habilitar os namespaces do PVRDMA. Para saber como habilitar namespaces PVRDMA no hardware específico do seu ambiente, consulte a documentação do fornecedor.
Você pode usar o vSphere Client para configurar endpoints nativos ou editar o arquivo VMX da máquina virtual. Se estiver editando o arquivo VMX diretamente, adicione o parâmetro vrdmax.nativeEndpointSupport = "TRUE"
, em que x
é o índice do adaptador PVRDMA. O procedimento a seguir usa o vSphere Client para configurar endpoints nativos.
Pré-requisitos
Verifique se o seu ambiente oferece suporte a PVRDMA. Consulte Suporte a PVRDMA.
Procedimento
Configurar uma máquina virtual para usar o modo assíncrono PVRDMA
Saiba como configurar uma máquina virtual para usar o modo assíncrono PVRDMA. Ele está disponível como uma configuração avançada de máquina virtual.
O modo assíncrono de PVRDMA está disponível em máquinas virtuais em execução no vSphere 8.0 e posterior. O modo assíncrono pode melhorar a taxa de transferência e a latência para cargas de trabalho RDMA em execução na máquina virtual. Quando o modo assíncrono está habilitado, um maior uso da CPU pode ser observado no host. Quando o modo assíncrono está em uso, é recomendável que a máquina virtual seja configurada para alta sensibilidade de latência.
Pré-requisitos
Verifique se o seu ambiente oferece suporte a PVRDMA. Consulte Suporte a PVRDMA.
Procedimento
- Localize a máquina virtual no vSphere Client.
- Selecione um centro de dados, uma pasta, um cluster, um pool de recursos ou um host e clique na guia VMs.
- Clique em Máquinas virtuais (Virtual Machines) e clique na máquina virtual na lista.
- Clique com o botão direito do mouse na máquina virtual e selecione Editar configurações (Edit Settings).
- Clique em Opções de VM (VM Options).
- Expanda Avançado (Advanced).
- Em Parâmetros de configuração, clique no botão Editar configuração (Edit Configuration ).
- Na caixa de diálogo exibida, clique em Adicionar linha (Add Row) para inserir um novo parâmetro e seu valor.
- Insira o parâmetro vrdma.asyncMode e defina o valor como TRUE.
Requisitos de rede para RDMA sobre Ethernet convergente
O RDMA sobre Ethernet Convergente garante comunicação RDMA de baixa latência, leveza e alto rendimento em uma rede Ethernet. O RoCE requer uma rede configurada para tráfego de informações sem perdas somente na camada 2 ou na camada 2 e na camada 3.
RDMA sobre Ethernet Convergente (RoCE) é um protocolo de rede que usa RDMA para fornecer transferência de dados mais rápida para aplicativos com uso intenso de rede. O RoCE permite a transferência direta de memória entre hosts sem envolver as CPUs dos hosts.
Há duas versões do protocolo RoCE. O RoCE v1 opera na camada de rede de link (camada 2). O RoCE v2 opera na camada de rede da Internet (camada 3) . O RoCE v1 e o RoCE v2 exigem uma configuração de rede sem perdas. O RoCE v1 requer uma rede de camada 2 sem perdas, e o RoCE v2 requer que a camada 2 e a camada 3 estejam configuradas para operação sem perdas.
Rede de camada 2 sem perdas
Para garantir um ambiente de camada 2 sem perdas, você deve ser capaz de controlar os fluxos de tráfego. O controle de fluxo é obtido ativando a pausa global na rede ou usando o protocolo Priority Flow Control (PFC) definido pelo grupo Data Center Bridging (DCB). O PFC é um protocolo de camada 2 que usa o campo classe de serviços da etiqueta 802.1Q VLAN para definir prioridades de tráfego individuais. Ele coloca em pausa a transferência de pacotes para um receptor de acordo com a classe individual de prioridades de serviço. Dessa forma, um único link transporta o tráfego RoCE sem perdas e outro tráfego com perdas e de melhor esforço. Com o congestionamento do fluxo de tráfego, o tráfego com perdas importantes pode ser afetado. Para isolar fluxos diferentes uns dos outros, use o RoCE em uma VLAN habilitada para prioridade PFC.
Rede de camada 3 sem perdas
O RoCE v2 requer que a transferência de dados sem perdas seja preservada nos dispositivos de roteamento da camada 3. Para habilitar a transferência de prioridades sem perdas de PFC de camada 2 entre roteadores de camada 3, configure o roteador para mapear a configuração de prioridade recebida de um pacote para a configuração de QoS do Differentiated Serviced Code Point (DSCP) correspondente que opera na camada 3. Os pacotes RDMA transferidos são marcados com DSCP de camada 3, Pontos de Código de Prioridade de camada 2 (PCP) ou com ambos. Para extrair informações de prioridade dos roteadores de pacote, use DSCP ou PCP. Caso o PCP seja usado, o pacote deve ser marcado com uma VLAN e o roteador deve copiar os bits PCP da etiqueta e encaminhá-los para a próxima rede. Se o pacote estiver marcado com DSCP, o roteador deverá manter os bits DSCP inalterados.
Como o RoCE v1, o RoCE v2 deve ser executado em uma VLAN habilitada para prioridade de PFC.
Para obter informações de configuração específicas do fornecedor, consulte a documentação oficial do respectivo dispositivo ou o fornecedor do switch.