Habilitar redes aperfeiçoadas com a interface Intel 82599 VF - Amazon Elastic Compute Cloud

Habilitar redes aperfeiçoadas com a interface Intel 82599 VF

Para instâncias baseadas em Xen, a interface Intel 82599 Virtual Function (VF) fornece recursos de redes aperfeiçoadas. A interface usa o driver Intel ixgbevf.

As guias a seguir mostram como verificar o driver do adaptador de rede instalado no sistema operacional da instância.

Linux
Driver da interface de rede do Linux

Use o comando a seguir para verificar se o módulo está sendo usado em uma interface específica, substituindo o nome da interface que você deseja verificar. Se estiver usando uma única interface (padrão), ela será eth0. Se o sistema operacional oferecer suporte a nomes de rede previsíveis, esse poderá ser um nome como ens5.

No exemplo acima, o módulo ixgbevf não está carregado porque o driver listado é vif.

[ec2-user ~]$ ethtool -i eth0 driver: vif version: firmware-version: bus-info: vif-0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no

Nesse exemplo, o módulo ixgbevf está carregado. Essa instância configurou a rede avançada corretamente.

[ec2-user ~]$ ethtool -i eth0 driver: ixgbevf version: 4.0.3 firmware-version: N/A bus-info: 0000:00:03.0 supports-statistics: yes supports-test: yes supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
Windows
Adaptador de rede do Windows

Para verificar se o driver está instalado, conecte-se à instância e abra o Gerenciador de dispositivos. Você deve ver Intel(R) 82599 Virtual Function listado em Adaptadores de rede.

Preparar a instância para redes aperfeiçoadas

Para se preparar para a rede avançada com a interface Intel 82599 VF, configure a instância da seguinte forma:

  • Verifique se o tipo de instância é um dos seguintes: C3, C4, D2, I2, M4 (excetom4.16xlarge) e R3.

  • Verifique se a instância tem conectividade com a Internet.

  • Se houver dados importantes na instância que deseja preservar, você deverá fazer backup desses dados agora criando uma AMI na instância. A atualização de kernels e módulos de kernel e a habilitação do atributo sriovNetSupport podem renderizar instâncias incompatíveis ou sistemas operacionais inacessíveis. Se você tiver um backup recente, seus dados ainda serão retidos, caso isso ocorra.

  • Instâncias do Linux: inicie a instância usando uma AMI de HVM com a versão 2.6.32 ou com versões posteriores do kernel do Linux. As AMIs HVM do Amazon Linux mais recentes têm os módulos necessários para a rede avançada instalada e também têm os atributos necessários definidos. Portanto, se você executar uma instância compatível com redes avançadas com Amazon EBS que usa uma AMI de HVM do Amazon Linux, a rede avançada já estará habilitada para a instância.

    Atenção

    A rede avançada é compatível apenas com instâncias de HVM. A habilitação da rede avançada com uma instância PV pode torná-la inacessível. A configuração desse atributo sem o módulo ou a versão do módulo adequados também pode tornar a instância inacessível.

  • Instâncias do Windows: inicie a instância usando uma AMI de HVM de 64 bits. Não é possível habilitar as redes aperfeiçoadas no Windows Server 2008. A rede avançada já está habilitada para AMIs do Windows Server 2012 R2 e do Windows Server 2016 e posterior. O Windows Server 2012 R2 inclui o driver 1.0.15.3 da Intel e recomendamos atualizar esse driver para a versão mais recente usando o utilitário Pnputil.exe.

  • Use o AWS CloudShell do AWS Management Console ou instale e configure a AWS CLI ou o AWS Tools for Windows PowerShell em qualquer computador que desejar, de preferência em seu desktop ou notebook local. Para obter mais informações sobre o ACM, consulte Acessar o Amazon EC2 ou o Guia do usuário do AWS CloudShell. A rede avançada não pode ser gerenciada no console do Amazon EC2.

Testar se a rede avançada está habilitada

Verifique se o atributo sriovNetSupport está definido.

Atributo de instância (sriovNetSupport)

Para verificar se uma instância tem o atributo sriovNetSupport de rede avançada definido, use um dos seguintes comandos. Se o atributo estiver definido, o valor será simple.

  • describe-instance-attribute (AWS CLI) (AWS CLI/AWS CloudShell)

    aws ec2 describe-instance-attribute --instance-id instance_id --attribute sriovNetSupport
  • Get-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

    Get-EC2InstanceAttribute -InstanceId instance-id -Attribute sriovNetSupport
Atributo de imagem (sriovNetSupport)

Para verificar se uma AMI já tem o conjunto de atributos de redes aperfeiçoadas sriovNetSupport, use um dos comandos apresentados a seguir. Se o atributo estiver definido, o valor será simple.

  • describe-images (AWS CLI)

    aws ec2 describe-images --image-id ami_id --query "Images[].SriovNetSupport"
  • Get-EC2Image (AWS Tools for Windows PowerShell)

    (Get-EC2Image -ImageId ami-id).SriovNetSupport

Habilitar redes avançadas na instância

O procedimento usado dependerá do sistema operacional da instância.

Atenção

Não há nenhuma maneira de desabilitar o atributo de rede avançada depois de ele ser habilitado.

As AMIs de HVM do Amazon Linux têm o módulo ixgbevf necessário para a rede avançada instalado e também têm o atributo necessário sriovNetSupport definido. Portanto, se você executar um tipo de instância que use uma AMI de HVM do Amazon Linux, a rede avançada já estará habilitada para a instância. Para obter mais informações, consulte Testar se a rede avançada está habilitada.

Se você executou a instância usando uma AMI do Amazon Linux mais antiga e ela ainda não tiver a rede avançada habilitada, use o seguinte procedimento para habilitar a rede avançada.

Para habilitar a rede avançada
  1. Conecte-se à sua instância.

  2. Na instância, execute o seguinte comando para atualizar a instância com o kernel e os módulos de kernel mais recentes incluindo ixgbevf:

    [ec2-user ~]$ sudo yum update
  3. No computador local, reinicialize a instância usando o console do Amazon EC2 ou um dos seguintes comandos: reboot-instances (AWS CLI), Restart-EC2Instance (AWS Tools for Windows PowerShell).

  4. Conecte-se à instância novamente e verifique se o módulo ixgbevf está instalado e na versão mínima recomendada usando o comando modinfo ixgbevf em Testar se a rede avançada está habilitada.

  5. [Instância com EBS] No computador local, interrompa a instância usando o console do Amazon EC2 ou um dos seguintes comandos: stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell). Se sua instância for gerenciada por AWS OpsWorks, é necessário parar a instância no console do AWS OpsWorks de modo que o estado da instância permaneça sincronizado.

    [Instância baseada em armazenamento de instâncias] Você não pode parar a instância para modificar o atributo. Em vez disso, pule o próximo procedimento.

  6. No computador local, ative o atributo de rede avançada usando um dos seguintes comandos:

    AWS CLI

    modify-instance-attribute (AWS CLI)

    aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    PowerShell

    Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

    Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  7. (Opcional) Crie uma AMI na instância, conforme descrito em Criação de uma AMI baseada no Amazon EBS. A AMI herda o atributo da rede avançada da instância. Portanto, é possível usar essa AMI para executar outra instância com a rede avançada habilitada por padrão.

  8. No computador local, inicie a instância usando o console do Amazon EC2 ou um dos seguintes comandos: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). Se sua instância for gerenciada por AWS OpsWorks, é necessário iniciar a instância no console do AWS OpsWorks de modo que o estado da instância permaneça sincronizado.

  9. Conecte-se à instância e verifique se o módulo ixgbevf está instalado e carregado na interface de rede usando o comando ethtool -i ethn em Testar se a rede avançada está habilitada.

Para habilitar a rede avançada (instâncias compatíveis com o armazenamento de instâncias)

Siga o procedimento anterior até a etapa onde você para a instância. Crie uma nova AMI como descrito em Criar uma AMI baseada em armazenamento de instância, habilitando o atributo de rede avançada ao registrar a AMI.

AWS CLI

register-image (AWS CLI/AWS CloudShell)

aws ec2 register-image --sriov-net-support simple ...
PowerShell

Register-EC2Image (AWS Tools for Windows PowerShell)

Register-EC2Image -SriovNetSupport "simple" ...

Antes de começar, o verifica se a rede avançada já está habilitada em sua instância.

As AMIs do Ubuntu HVM Quick Start incluem os drivers necessários para redes aprimoradas. Se você tiver uma versão de ixgbevf anterior a 2.16.4, poderá instalar o linux-aws pacote do kernel para obter os drivers de rede aprimorados mais recentes.

O procedimento a seguir fornece as etapas gerais para compilar o módulo ixgbevf em uma instância do Ubuntu.

Para instalar o pacote do kernel linux-aws
  1. Conecte-se à sua instância.

  2. Atualize o cache de pacotes e os pacotes.

    ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y linux-aws
    Importante

    Se, durante o processo de atualização, for solicitada a instalação do grub, use o /dev/xvda para instalar o grub e, em seguida, escolha manter a versão atual do /boot/grub/menu.lst.

Antes de começar, o verifica se a rede avançada já está habilitada em sua instância. As AMIs do HVM Quick Start mais recentes incluem os drivers necessários para rede avançada, portanto, você não precisa executar etapas adicionais.

O procedimento a seguir fornece as etapas gerais se precisar habilitar a rede avançada com a interface Intel 82599 VF em uma distribuição do Linux diferente do Amazon Linux ou do Ubuntu. Para obter mais informações, como a sintaxe detalhada dos comandos, os locais dos arquivos ou suporte para o pacote e a ferramenta, consulte a documentação específica à sua distribuição do Linux.

Para habilitar a rede avançada no Linux
  1. Conecte-se à sua instância.

  2. Faça download da fonte para o módulo ixgbevf na instância do Sourceforge em https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/.

    Versões do ixgbevf anteriores à 2.16.4, incluindo a versão 2.14.2, não são compiladas adequadamente em algumas distribuições do Linux, incluindo certas versões do Ubuntu.

  3. Compile e instale o módulo ixgbevf na instância.

    Atenção

    Se você compilar o módulo ixgbevf para o kernel atual e, depois, atualizar o kernel sem recompilar o driver para o novo kernel, o sistema poderá reverter o módulo ixgbevf específico à distribuição na próxima reinicialização. Isso poderá tornar o sistema inacessível se a versão específica à distribuição for incompatível com a rede avançada.

  4. Execute o comando sudo depmod para atualizar as dependências do módulo.

  5. Atualize o initramfs na instância para garantir que o novo módulo seja carregado na hora da inicialização.

  6. Determine se o sistema usa nomes previsíveis de interface de rede por padrão. Os sistemas que usam as versões 197 ou superiores do systemd ou udev podem renomear dispositivos de Ethernet e não garantem que uma única interface de rede será nomeada eth0. Esse comportamento pode causar problemas para conexão à instância. Para mais informações e ver outras opções de configuração, consulte Nomes previsíveis de interface de rede no site freedesktop.org.

    1. É possível verificar as versões do systemd ou udev em sistemas baseados em RPM com o seguinte comando:

      [ec2-user ~]$ rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+' systemd-208-11.el7_0.2.x86_64

      No exemplo do Red Hat Enterprise Linux 7 acima, a versão do systemd é a 208, portanto, os nomes previsíveis de interface de rede devem ser desativados.

    2. Desabilite nomes previsíveis de interface de rede adicionando a opção net.ifnames=0 à linha GRUB_CMDLINE_LINUX no /etc/default/grub.

      [ec2-user ~]$ sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
    3. Recompile o arquivo de configuração do grub.

      [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. [Instância com EBS] No computador local, interrompa a instância usando o console do Amazon EC2 ou um dos seguintes comandos: stop-instances (AWS CLI/AWS CloudShell), Stop-EC2Instance (AWS Tools for Windows PowerShell). Se sua instância for gerenciada por AWS OpsWorks, é necessário parar a instância no console do AWS OpsWorks de modo que o estado da instância permaneça sincronizado.

    [Instância baseada em armazenamento de instâncias] Você não pode parar a instância para modificar o atributo. Em vez disso, pule o próximo procedimento.

  8. No computador local, ative o atributo de rede avançada usando um dos seguintes comandos:

    AWS CLI

    modify-instance-attribute (AWS CLI/AWS CloudShell)

    aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    PowerShell

    Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

    Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  9. (Opcional) Crie uma AMI na instância, conforme descrito em Criação de uma AMI baseada no Amazon EBS. A AMI herda o atributo da rede avançada da instância. Portanto, é possível usar essa AMI para executar outra instância com a rede avançada habilitada por padrão.

    Se o sistema operacional da instância contiver um arquivo /etc/udev/rules.d/70-persistent-net.rules, você deverá excluí-lo antes de criar a AMI. Esse arquivo contém o endereço MAC do adaptador de Ethernet da instância original. Se outra instância for iniciada com esse arquivo, o sistema operacional será incapaz de localizar o dispositivo e o eth0 poderá falhar causando problemas de inicialização. Esse arquivo é gerado novamente no próximo ciclo de inicialização, e todas as instâncias executadas na AMI criam sua própria versão do arquivo.

  10. No computador local, inicie a instância usando o console do Amazon EC2 ou um dos seguintes comandos: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). Se sua instância for gerenciada por AWS OpsWorks, é necessário iniciar a instância no console do AWS OpsWorks de modo que o estado da instância permaneça sincronizado.

  11. (Opcional) Conecte-se à instância e verifique se o módulo está instalado.

Para habilitar as redes avançadas (instâncias compatíveis com o armazenamento de instância)

Siga o procedimento anterior até a etapa onde você para a instância. Crie uma nova AMI como descrito em Criar uma AMI baseada em armazenamento de instância, habilitando o atributo de rede avançada ao registrar a AMI.

AWS CLI

register-image (AWS CLI/AWS CloudShell)

aws ec2 register-image --sriov-net-support simple ...
PowerShell

Register-EC2Image (AWS Tools for Windows PowerShell)

Register-EC2Image -SriovNetSupport "simple" ...

Se você executou a instância e ela ainda não tiver a rede avançada habilitada, você deverá fazer download e instalar o driver do adaptador de rede necessário na instância e, em seguida, definir o atributo sriovNetSupport da instância para ativar a rede avançada. Você só pode habilitar esse atributo em tipos de instâncias compatíveis. Para ter mais informações, consulte Redes aperfeiçoadas para instâncias do Amazon EC2.

Importante

Para ver as atualizações de driver mais recentes nas AMIs do Windows, consulte o histórico de versões da AMI do Windows na Referência da AMI do AWS Windows.

Para habilitar a rede avançada
  1. Conecte-se à instância e faça login como administrador local.

  2. [Windows Server 2016 e posterior] Execute o seguinte script PowerShell do EC2 Launch para configurar a instância depois de instalar o driver.

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
    Importante

    A senha do administrador será redefinida quando você habilitar o script de inicialização do EC2 da instância. É possível modificar o arquivo de configuração para desabilitar a redefinição da senha do administrador especificando-a nas configurações das tarefas de inicialização.

  3. Na instância, faça download do driver do adaptador de rede da Intel para seu sistema operacional:

    • Windows Server 2022

      Visite a página de download e faça download do Wired_driver_version_x64.zip.

    • Windows Server 2019, inclusive para a versão de servidor 1809 e posterior*

      Visite a página de download e faça download do Wired_driver_version_x64.zip.

    • Windows Server 2016, inclusive para a versão de servidor 1803 e anterior*

      Visite a página de download e faça download do Wired_driver_version_x64.zip.

    • Windows Server 2012 R2

      Visite a página de download e faça download do Wired_driver_version_x64.zip.

    • Windows Server 2012

      Visite a página de download e faça download do Wired_driver_version_x64.zip.

    • Windows Server 2008 R2

      Visite a página de download e faça download do PROWinx64Legacy.exe.

    *As versões de servidor 1803 e anteriores, bem como a 1809 e posterior, não são especificamente abordadas nas páginas de Drivers e Software da Intel.

  4. Instale o driver do adaptador de rede da Intel para seu sistema operacional:

    • Windows Server 2008 R2

      1. Na pasta Downloads, localize o arquivo PROWinx64Legacy.exe e renomeie-o como PROWinx64Legacy.zip.

      2. Extraia o conteúdo do arquivo PROWinx64Legacy.zip.

      3. Abra a linha de comando, navegue até a pasta com os arquivos extraídos e execute o comando a seguir a fim de usar o utilitário pnputil para adicionar e instalar o arquivo INF no armazenamento de drivers.

        C:\> pnputil -a PROXGB\Winx64\NDIS62\vxn62x64.inf
    • Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

      1. Na pasta Downloads, extraia o conteúdo do arquivo Wired_driver_version_x64.zip.

      2. Na pasta com arquivos extraídos, localize o arquivo Wired_driver_version_x64.exe e renomeie-o como Wired_driver_version_x64.zip.

      3. Extraia o conteúdo do arquivo Wired_driver_version_x64.zip.

      4. Abra a linha de comando, navegue até a pasta com os arquivos extraídos e execute os comandos a seguir a fim de usar o utilitário pnputil para adicionar e instalar o arquivo INF no armazenamento de drivers.

        • Windows Server 2022

          C:\> pnputil -i -a PROXGB\Winx64\WS2022\vxs.inf
        • Windows Server 2019

          C:\> pnputil -i -a PROXGB\Winx64\NDIS68\vxn68x64.inf
        • Windows Server 2016

          C:\> pnputil -i -a PROXGB\Winx64\NDIS65\vxn65x64.inf
        • Windows Server 2012 R2

          C:\> pnputil -i -a PROXGB\Winx64\NDIS64\vxn64x64.inf
        • Windows Server 2012

          C:\> pnputil -i -a PROXGB\Winx64\NDIS63\vxn63x64.inf
  5. No computador local, ative o atributo de rede avançada usando um dos seguintes comandos:

    AWS CLI

    modify-instance-attribute (AWS CLI/AWS CloudShell)

    aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    PowerShell

    Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

    Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  6. (Opcional) Crie uma AMI na instância, conforme descrito em Criação de uma AMI baseada no Amazon EBS. A AMI herda o atributo da rede avançada da instância. Portanto, é possível usar essa AMI para executar outra instância com a rede avançada habilitada por padrão.

  7. No computador local, inicie a instância usando o console do Amazon EC2 ou um dos seguintes comandos: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). Se sua instância for gerenciada por AWS OpsWorks, é necessário iniciar a instância no console do AWS OpsWorks de modo que o estado da instância permaneça sincronizado.

Solucionar problemas de conectividade

Se você perder a conectividade ao habilitar a rede avançada, o módulo ixgbevf talvez seja incompatível com o kernel. Tente instalar a versão do módulo ixgbevf incluída com a distribuição do Linux para a instância.

Se você habilitar a rede avançada para uma instância de PV ou de AMI, poderá tornar a instância inatingível.

Para obter mais informações, consulte Como faço para ativar e configurar a rede aprimorada em minhas instâncias do EC2?