Como faço para instalar e ativar o driver do ENA mais recente para melhorar o suporte de rede na minha instância do EC2 que executa o RHEL?
Quero usar o driver mais recente do Adaptador de Rede Elástica (ENA) para melhorar o suporte de rede. Minha instância do Amazon Elastic Compute Cloud (Amazon EC2) é executada em um Red Hat Enterprise Linux (RHEL).
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Algumas versões anteriores do sistema operacional (SO) RHEL não incluem um driver do ENA. Para instâncias Nitro, você deve atualizar o driver do ENA se alterar o tipo de instância do EC2 para conectividade de rede. Para instalar o driver do ENA mais recente em sua instância do EC2, conclua as etapas a seguir com base na sua versão do RHEL.
Antes de instalar ou atualizar um driver do ENA, é uma prática recomendada criar um snapshot do volume do Amazon Elastic Block Store (Amazon EBS) da sua instância.
Para obter mais informações sobre como atualizar drivers do Linux, consulte as Práticas recomendadas de drivers do ENA Linux e o guia de otimização de desempenho no site do GitHub.
Importante: quando você interrompe uma instância, o Amazon EC2 exclui todos os dados nos volumes de armazenamento de instâncias. Para verificar o tipo de dispositivo raiz, consulte Determinar o tipo de dispositivo raiz da sua AMI. Você deve fazer backup dos dados armazenados em um volume de armazenamento de instâncias se quiser manter esses dados.
RHEL versão 7.4 e posteriores
Por padrão, o RHEL versão 7.4 e posteriores da imagem de máquina da Amazon (AMIs) têm o driver do ENA para redes aprimoradas instalado. Para obter mais informações, consulte Ativar redes aprimoradas com ENA em suas instâncias do EC2.
Versões do RHEL anteriores à 7.4
Para instalar o driver do ENA, conclua as seguintes etapas:
-
Execute o comando a seguir para atualizar o kernel para a versão mais recente:
sudo yum upgrade kernel -y -
Para atualizar a instância, execute o seguinte comando modify-instance-attribute da AWS CLI:
aws ec2 modify-instance-attribute --instance-id exampleID --ena-support --region exampleRegionObservação: substitua exampleID pelo ID da instância e exampleRegion pela região da AWS.
-
Para validar se você instalou corretamente o driver do ENA na instância, execute o seguinte comando:
ethtool -i eth0Observação: substitua eth0 pelo nome da interface que você deseja verificar. Se o sistema operacional usa nomes de rede previsíveis, o nome da rede pode ser diferente. Para obter mais informações, consulte Compreendendo os nomes previsíveis dos dispositivos da interface de rede no site da Red Hat.
RHEL 6
Observação: o RHEL 6 não inclui drivers do NVMe prontos para produção do Amazon EC2, e não é possível fazer o upgrade para drivers do NVMe. Para usar uma instância baseada em Nitro, ou qualquer tipo de instância com volumes de armazenamento de instâncias NVMe, atualize para o RHEL 7.4 ou superior.
Baixe e instale o driver do ENA
Conclua as etapas a seguir:
-
Para atualizar o kernel e reinicializar o sistema para usar o kernel mais recente, execute o seguinte comando:
sudo yum upgrade kernel -y && sudo reboot -
Para instalar o pacote de desenvolvimento para criar módulos do kernel que correspondam ao kernel, execute os seguintes comandos:
sudo yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget -ycd /usr/src/ sudo wget https://github.com/amzn/amzn-drivers/archive/master.zip sudo unzip master.zip cd amzn-drivers-master/kernel/linux/ena sudo make -
Para copiar o módulo para o diretório do módulo, execute o seguinte comando:
sudo cp ena.ko /lib/modules/$(uname -r)/ -
Para regenerar os arquivos do mapa de dependência do módulo kernel, execute o seguinte comando:
sudo depmod -
Para confirmar se o módulo ENA está presente, execute o seguinte comando:
modinfo enaQuando você compila e instala o driver do ENA em seu sistema, a versão pode ser posterior à 2.2.11g. A saída do comando mostra as informações do driver do ENA.
Exemplo de saída:filename: /lib/modules/2.6.32-754.33.1.el6.x86_64/ena.koversion: 2.2.11g license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates retpoline: Y srcversion: 17C7CD1CEAD3F0ADB3A5E5E alias: pci:v00001D0Fd0000EC21sv*sd*bc*sc*i* alias: pci:v00001D0Fd0000EC20sv*sd*bc*sc*i* alias: pci:v00001D0Fd00001EC2sv*sd*bc*sc*i* alias: pci:v00001D0Fd00000EC2sv*sd*bc*sc*i* alias: pci:v00001D0Fd00000051sv*sd*bc*sc*i* depends: vermagic: 2.6.32-754.33.1.el6.x86_64 SMP mod_unload modversions parm: debug:Debug level (0=none,...,16=all) (int) parm: rx_queue_size:Rx queue size. The size should be a power of 2. Max value is 8K (int) parm: force_large_llq_header:Increases maximum supported header size in LLQ mode to 224 bytes, while reducing the maximum TX queue size by half. (int) parm: num_io_queues:Sets number of RX/TX queues to allocate to device. The maximum value depends on the device and number of online CPUs. (int) -
Para adicionar net.ifnames=0 ao /boot/grub/grub.conf e desativar a nomenclatura da interface de rede, execute o seguinte comando:
sudo sed -i '/kernel/s/$/ net.ifnames=0/' /boot/grub/grub.conf -
Para ativar o suporte de rede aprimorado no nível da instância, execute o seguinte comando modify-instance-attribute:
aws ec2 modify-instance-attribute --instance-id exampleID --ena-support --region exampleRegionObservação: substitua exampleID pelo ID da instância e exampleRegion pela região.
-
Altere o tipo de instância para um tipo de instância compatível com ENA.
-
Use o SSH para se conectar à instância e, em seguida, execute o seguinte comando para validar se você instalou corretamente o driver do ENA:
ethtool -i eth0
Exemplo de saída:
driver: enaversion: 2.2.11g firmware-version: bus-info: 0000:00:05.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
(Opcional) Configurar o programa DKMS
Se sua aplicação depender diretamente da versão ENA, configure o programa Dynamic Kernel Module Support (DKMS). Isso garante que o Amazon EC2 inclua o driver em futuras atualizações do kernel.
Observação: é possível usar o repositório Extra Packages for Enterprise Linux (EPEL) em uma instância do RHEL.
Para configurar o programa DKMS, conclua as seguintes etapas:
-
Para instalar o arquivo Red Hat Package Manager (rpm), execute o seguinte comando:
sudo yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm -yObservação: para obter uma lista dos pacotes .rpm mais recentes, consulte Pacotes disponíveis no EPEL no site do Projeto Fedora.
-
Para instalar o DKMS, execute o seguinte comando:
sudo yum install dkms -y -
Para excluir o kernel existente, execute o seguinte comando:
VER=$( grep ^VERSION /usr/src/amzn-drivers-master/kernel/linux/rpm/Makefile | cut -d' ' -f2 ) -
Para copiar os arquivos de origem no diretório de origem, execute o seguinte comando:
sudo cp -a /usr/src/amzn-drivers-master /usr/src/amzn-drivers-${VER} -
Para criar o arquivo de configuração do DKMS e criar e instalar o módulo ENA, execute o seguinte comando:
sudo cat <<EOM | sudo tee /usr/src/amzn-drivers-${VER}/dkms.confPACKAGE_NAME="ena" PACKAGE_VERSION="$VER" CLEAN="make -C kernel/linux/ena clean" MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=\${kernelver}" BUILT_MODULE_NAME[0]="ena" BUILT_MODULE_LOCATION="kernel/linux/ena" DEST_MODULE_LOCATION[0]="/updates" DEST_MODULE_NAME[0]="ena" AUTOINSTALL="yes" EOM sudo dkms add -m amzn-drivers -v $VER sudo dkms build -m amzn-drivers -v $VER sudo dkms install -m amzn-drivers -v $VER
- Tópicos
- Compute
- Tags
- LinuxAmazon EC2
- Idioma
- Português

Conteúdo relevante
feita há um ano
feita há 7 meses
feita há 2 anos