iWARP RDMA para Ethernet Intel

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 de ambos os computadores, aumentando, assim, a velocidade e a taxa de transferência da rede. iWARP é um protocolo para implementar o RDMA através das rede de IP (Internet Protocol).

O Microsoft* Windows* disponibiliza duas modalidades de RDMA: Network Direct Kernel (NDK) e Network Direct (ND).

iWARP RDMA para recursos do NDK, como SMB Direct (Server Message Block)

O NDK permite que os componentes do Windows (como o armazenamento do SMB Direct) utilizem recursos do iWARP.

Configuração do iWARP NDK

A funcionalidade do NDK está incluída nos drivers básicos de rede da Intel e não exige a instalação de recursos adicionais.

Verificação da operação do iWARP RDMA

Verifique se o RDMA está instalado nas interfaces de rede

Get-NetAdapterRDMA

Verifique se as interfaces de rede indicam capacidade para RDMA e se o multicanal está ativado

Get-SmbClientNetworkInterface

Network Direct está ativado no SO

Get-NetOffloadGlobalSetting | Selecione NetworkDirect

Cada interface de rede com capacidade para RDMA deve ter um ouvinte na porta 445 (os SOs Cliente Windows compatíveis com RDMA podem não postar ouvintes)

netstat.exe -xan | ? {$_ -match "445"}

Roteamento do iWARP através das sub-redes de IP

Para permitir o recurso 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).

iWARP para ambientes virtualizados

Para ativar o recurso RDMA em um adaptador (ou adaptadores) virtual(is) conectado(s) 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 - Filas de Máquina Virtual) devem estar ativadas em cada driver de porta. Em certas circunstâncias, essas configurações podem ser desativadas, como padrão. É possível definir essas opções manualmente na guia Avançado da caixa de diálogo de propriedades do adaptador, ou emitir os seguintes comandos do Powershell:

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

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

Testando o iWARP NDK: SMB Direct do Microsoft* Windows* com DiskSPD

Esta seção descreve uma recomendação para testar a funcionalidade e o desempenho do iWARP RDMA para Ethernet Intel nos sistemas operacionais Microsoft* Windows*.

Convém observar que, como o SMB Direct é uma carga de trabalho de armazenamento, o desempenho do parâmetro de comparação pode estar limitado à velocidade do dispositivo de armazenamento, em vez da interface de rede submetida ao teste. A Intel recomenda usar o armazenamento mais veloz possível para testar as reais capacidades do(s) dispositivo(s) de rede sob teste.

Instruções do teste:

  1. Configure pelo menos dois servidores do Microsoft* Windows* Server 2012 R2 ou Microsoft* Windows* Server 2016, com pelo menos uma interface de rede da Ethernet Intel® com capacidade para iWARP conectada em cada servidor.
  2. No sistema designado como servidor SMB, configure um compartilhamento SMB. Convém observar que o desempenho do parâmetro de comparação pode estar limitado à velocidade do dispositivo de armazenamento, em vez da interface de rede submetida ao teste. A instalação do armazenamento está fora do âmbito deste documento.
    Comando do PowerShell (PS):
    New-SmbShare -Name <SMBsharename> -Path <SMBsharefilepath> -FullAccess <domainname>\Administrator,Everyone

    Exemplo:
    New-SmbShare -Name RAMDISKShare -Path R:\RAMDISK -FullAccess group\Administrator,Everyone

  3. Baixe e instale o utilitário Diskspd da Microsoft, a partir daqui: https://gallery.technet.microsoft.com/DiskSpd-a-robust-storage-6cd2f223
  4. Usando o CMD ou Powershell, passe para o diretório da pasta DiskSpd e execute os testes. (Consulte a documentação do Diskspd para obter mais detalhes sobre os parâmetros)

    Exemplo: defina o tamanho do bloco com 4K, execute o teste durante 60 segundos, desative todo o cache do hardware e software, avalie e exiba os dados estatísticos da latência, utilize 16 E/S's sobrepostas e 16 threads por destino, gravações de 0% aleatórias e leituras de 100%, e crie um arquivo de teste de 10 GB em “\\<SMBserverX722IP>\<SMBsharename>\test.dat” :
    .\diskspd.exe –b4K -d60 -h -L –o16 -t16 –r –w0 -c10G \\<SMBserverX722IP>\<SMBsharename>\test.dat

  5. Verifique se o tráfego do RDMA está operando, usando contadores perfmon, como “RDMA Activity” e “SMB Direct Connection”. Consulte a documentação da Microsoft para obter mais detalhes.

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

iWARP RDMA para aplicativos do ND Modo Usuário

O ND permite que os aplicativos no modo usuário utilizem recursos do iWARP. Para utilizar os recursos do iWARP em aplicativos do modo usuário que você estiver desenvolvendo, será necessário instalar o recurso Network Direct (ND), ao instalar os drivers.

Instalação do modo usuário do iWARP

O recurso Provedor de iWARP em Modo de Usuário Ethernet Intel® é compatível com o Microsoft* Windows Server* 2012 R2 ou posterior.

NOTAS:

  • Para instalação no Windows Server 2016 Nano Server, consulte Instalando no Nano Server, abaixo.
  • Os aplicativos no modo usuário podem ter pré-requisitos, como o Microsoft HPC Pack ou Biblioteca Intel MPI, consulte a documentação de seu aplicativo para obter mais detalhes.

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.

Instalação do iWARP no Modo Usuário, no Microsoft Windows Server 2016 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.

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.