iWARP (Internet Wide Area RDMA Protocol)

O Acesso Remoto Direto à Memória (RDMA — Remote Direct Memory Access) permite que um computador acesse a memória de outro computador, sem interagir com os buffers de dados do sistema operacional do computador, aumentando, assim, a velocidade e a taxa de transferência das operações em rede. Internet Wide Area RDMA Protocol (iWARP) é um protocolo que implementa o RDMA através de redes de IP (Internet Protocol).

O Microsoft* Windows* disponibiliza duas modalidades de RDMA: Network Direct (ND) e Network Direct Kernel (NDK). O ND permite que os aplicativos no modo usuário utilizem recursos do iWARP. O NDK permite que os componentes do Windows do modo kernel (como o Gerenciador de arquivos) usem recursos do iWARP. A funcionalidade NDK está incluída nos drivers básicos de rede da Intel. A funcionalidade ND é uma opção separada, disponível durante a instalação do software de rede e driver da Intel. Para utilizar os recursos do iWARP nos aplicativos sendo desenvolvidos, será necessário instalar o recurso Network Direct (ND) do modo usuário, ao instalar os drivers. (Consulte Instalação, abaixo.)

NOTAS:

  • Embora a funcionalidade NDK conste nos drivers básicos, se você quiser permitir os recursos RDMA do NDK através das sub-redes, selecione "Ativar o roteamento do iWARP através das sub-redes de IP" na tela de opções de configuração do iWARP, durante a instalação do driver básico (consulte a Instalação, abaixo).
  • Para habilitar a capacidade RDMA em um adaptador virtual conectado a um comutador de máquina virtual, as propriedades avançadas *SRIOV (Single Root IO Virtualization [Virtualização de E/S de raiz única]) e *VMQ (Virtual Machine Queues [Fila de Máquina Virtual]) devem estar habilitadas em cada no driver de cada porta. Use a guia Avançado do diálogo de propriedades do adaptador ou os seguintes comandos do Windows PowerShell para definir essas opções.
    Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV
    -RegistryValue 1

    Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ
    -RegistryValue 1

Requisitos

O recurso Provedor de iWARP em modo de usuário Ethernet Intel® é compatível com os sistemas operacionais Linux* e Microsoft* Windows Server* 2012 R2 ou posterior(es). Para instalações do Windows, é necessário instalar o Microsoft* HPC Pack ou a Biblioteca Intel® MPI.

Instalação dos recursos iWARP ND (Network Direct) do modo usuário

NOTA: para instalar o recurso Provedor de iWARP em Modo de Usuário Ethernet Intel® no Microsoft Windows Server 2016 Nano Server, consulte a seção Instalando no Nano Server, abaixo.

Os recursos NDK (Network Direct Kernel) constam nos drivers básicos da Intel. Para instalar os recursos iWARP ND (Network Direct) do modo usuário, siga as etapas abaixo.

  1. Na mídia de instalação, execute o Autorun.exe para iniciar o instalador, selecione "Instalar drivers e software" e aceite o contrato de licença.
  2. Na tela Opções de Instalação, selecione "Provedor de iWARP em modo de usuário Ethernet Intel®".
  3. Na tela Opções de configuração do iWARP, selecione "Ativar o roteamento do iWARP através das sub-redes de IP", se necessário. Convém observar que essa opção é exibida durante a instalação do driver básico, mesmo que o iWARP do modo de usuário não esteja selecionado, porque esta opção também se aplica à funcionalidade Network Direct Kernel.
  4. Se o Firewall do Windows estiver instalado e ativo, selecione "Criar uma regra de serviço de mapeamento de portas do Intel® Ethernet iWARP no Windows Firewall" e as redes às quais a regra será aplicada. Se o Firewall do Windows estiver desativado ou se você estiver usando um firewall de terceiros, será necessário adicionar manualmente esta regra.
  5. Continue a instalação do driver e software.

Instalando no Nano Server

Siga as etapas abaixo para instalar o recurso Provedor de iWARP em Modo de Usuário Ethernet Intel® no Microsoft Windows Server 2016 Nano Server.

  1. Crie um diretório a partir do qual os arquivos do iWARP serão instalados. Por exemplo, C:\Nano\iwarp.
  2. Copie os seguintes arquivos no novo diretório:
  3. Execute o comando DISM para injetar os arquivos iWARP em sua imagem do Nano Server, usando o diretório criado na etapa 1 para o parâmetro do caminho AddDriver. Por exemplo, "DISM .../Add-Driver C:\Nano\Drivers"
  4. Crie uma regra de firewall de entrada para a porta UDP 3935.
  5. Se desejar, use os comando do Windows PowerShell abaixo, para ativar o roteamento do iWARP através das sub-redes de IP.

Configurando o suporte para convidados do iWARP (Modo NDK 3)

O Modo NDK 3 permite que os componentes do Windows no modo kernel usem os recursos do iWARP dentro das partições convidadas do Hyper-V. Para ativar o Modo NDK 3 em um dispositivo Ethernet Intel, faça o seguinte:

  1. Ative o SR-IOV no BIOS de seu sistema ou no UEFI.
  2. Ative a opção avançada SR-IOV no dispositivo.
  3. Configure o dispositivo, com o SR-IOV ativado no comutador. Execute essa etapa para todas as funções existentes no mesmo dispositivo:
    New-VMSwitch -Name <switch_name> -NetAdapterName <device_name>
    -EnableIov $true
  4. Configure o número de funções virtuais (VFs — Virtual Functions) do RDMA no dispositivo, definindo a opção avançada "RDMAMaxVfsEnabled". Todas as funções físicas devem ser definidas com o mesmo valor. O valor é o número máximo de VFs com capacidade de RDMA, de uma só vez, para o dispositivo inteiro. A ativação de mais VFs restringirá recursos do RDMA das funções físicas (PFs — Physical Functions) e outras VFs.
    Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <Value: 0 – 32>
  5. Desative todos os adaptadores de PF no host e reative-os. Isso é necessário quando a palavra-chave “RdmaMaxVfsEnabled” é alterada ou ao criar ou destruir um VMSwitch.
    Get-NetAdapterRdma | Disable-NetAdapter
    Get-NetAdapterRdma | Enable-NetAdapter
  6. Crie adaptadores de rede de VM para as VMs que exigem suporte para VFs do RDMA.
    Add-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -SwitchName <switch_name>
  7. Para utilizar o Microsoft Windows 10 Creators Update (RS2) ou posterior em uma partição convidada, defina o peso do RDMA em um adaptador de rede de VM, inserindo o seguinte comando no host:
    Set-VMNetworkAdapterRdma -VMName <vm_name> -VMNetworkAdapterName <device_name> -RdmaWeight 100
  8. Defina o peso do SR-IOV no adaptador de rede VM (Nota: o peso do SR-IOV deve ser definido como 0 antes de definir o RdmaWeight como 0):
    Set-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -IovWeight 100
  9. Instale o adaptador de rede de VF com o Instalador PROSET na VM.
  10. Ative o RDMA no driver de VF e o adaptador de rede do Hyper-V, usando o PowerShell na VM:
    Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaVfEnabled -RegistryValue 1
    Get-NetAdapterRdma | Enable-NetAdapterRdma

Verifique o campo "RDMA Capable" para saber se o RDMA foi ativado com êxito. Execute:
Get-SmbServerNetworkInterface

Se o campo "RDMA Capable" informar um falso, tente desativar e reativar as capacidades do RDMA na VM:
Get-NetAdapterRdma | Disable-NetAdapterRdma
Get-NetAdapterRdma | Enable-NetAdapterRdma

Se o campo "RDMA Capable" continuar informando um falso, tente desativar e reativar as funções físicas no host:Get-NetAdapterRdma | Disable-NetAdapter
Get-NetAdapterRdma | Enable-NetAdapter

Suporte técnico

Assuntos legais / Isenções de responsabilidade

Copyright (C) 2018, Intel Corporation. Todos os direitos reservados.

A Intel Corporation não assume nenhuma responsabilidade por erros ou omissões neste documento. A Intel também não assume nenhum compromisso de atualizar as informações aqui contidas.

Intel é marca comercial da Intel Corporation nos EUA e/ou em outros países.

* Outras marcas e nomes podem ser propriedade de outras empresas.

Este software é fornecido sob licença e só pode ser usado ou copiado de acordo com os termos da licença. As informações contidas neste manual são fornecidas apenas para fins informativos, estão sujeitas a alterações sem aviso prévio e não devem ser interpretadas como compromisso da Intel Corporation. A Intel Corporation não assume nenhuma responsabilidade por quaisquer erros ou imprecisões que possam aparecer neste documento ou em qualquer software que possa ser fornecido em associação com este documento. Exceto conforme permitido por tal licença, nenhuma parte deste documento pode ser reproduzida, armazenada em um sistema de recuperação nem transmitida por qualquer meio sem a permissão expressa por escrito da Intel Corporation.