Como faço para instalar e ativar o driver do ENA mais recente para melhorar o suporte de rede em uma instância do Amazon EC2 que executa o RHEL?
Quero usar o driver mais recente do Adaptador de Rede Elástica (ENA) para melhorar o suporte de rede em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) do Red Hat Enterprise Linux (RHEL).
Resolução
Para instalar o driver do ENA mais recente em sua instância do Amazon EC2, consulte a seção que se aplica à sua versão do RHEL. Algumas versões anteriores do sistema operacional (SO) RHEL não incluem um driver do ENA. Para instâncias Nitro, o driver do ENA deve alterar seu tipo de instância EC2 para conectividade de rede.
Observação: antes de instalar ou atualizar um driver do ENA, é uma prática recomendada criar um instantâneo da sua instância.
Para obter mais informações sobre como atualizar drivers do Linux, consulte as melhores práticas de drivers do ENA Linux e o guia de otimização de desempenho no site do GitHub.
RHEL versão 7.4 e posterior
O módulo para redes aprimoradas com um ENA está pré-instalado no Amazon Machine Images (AMIs) do RHEL versão 7.4 e em todas as versões posteriores do RHEL. Para obter mais informações, consulte Ativar redes aprimoradas com o Adaptador de Rede Elástica (ENA) em instâncias Linux.
Versões do RHEL anteriores à 7.4
-
Execute o comando a seguir para atualizar o kernel para a versão mais recente:
sudo yum upgrade kernel -y
-
Interrompa a instância.
Observação: quando você interrompe uma instância, os dados nos volumes de armazenamento de instâncias são perdidos. Para mais informações, consulte Determinar o tipo de dispositivo raiz da sua instância. Faça backup de todos os dados que você deseja manter no volume de armazenamento da instância. -
Execute o seguinte comando da AWS Command Line Interface (AWS CLI):
aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --ena-support --region xx-xxxxx-x
Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
-
Execute o comando a seguir para validar se o driver do ENA está carregado na instância. Substitua o nome da interface padrão 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.
$ ethtool -i eth0
RHEL 6
Observação: o RHEL 6 não inclui drivers do NVMe prontos para produção do Amazon EC2, e você não pode 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.
Baixar e instalar o driver do ENA
-
Atualize o kernel e, em seguida, reinicie o sistema para que o kernel mais recente entre em vigor:
sudo yum upgrade kernel -y && sudo reboot
-
Instale o pacote de desenvolvimento para criar módulos do kernel que correspondam ao kernel:
sudo yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget -y cd /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
-
Copie o módulo para o diretório do módulo:
sudo cp ena.ko /lib/modules/$(uname -r)/
-
Regenere os arquivos do mapa de dependência do módulo kernel:
sudo depmod
-
Use o comando modinfo para confirmar se o módulo ENA está presente:
modinfo ena
A saída do comando modinfo mostra as informações do driver do ENA.
Observação: quando você está compilando e instalando o driver do ENA em seu sistema, a versão pode ser posterior à 2.2.11g.filename: /lib/modules/2.6.32-754.33.1.el6.x86_64/ena.ko version: 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)
-
Anexe net.ifnames=0 a /boot/grub/grub.conf para desativar a nomenclatura da interface de rede:
sudo sed -i '/kernel/s/$/ net.ifnames=0/' /boot/grub/grub.conf
-
Interrompa a instância. Em seguida, ative o suporte de rede aprimorado no nível da instância. O exemplo a seguir modifica o atributo da instância a partir da AWS CLI:
aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --ena-support --region xx-xxxxx-x
-
Altere o tipo de instância para um dos tipos de instância compatíveis com ENA.
-
Inicie a instância, use SSH para conectar-se à instância e, em seguida, execute o comando ethtool:
ethtool -i eth0
O exemplo de saída a seguir inclui a versão do driver do ENA:
driver: ena version: 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
Configurar o programa DKMS para garantir que o driver seja incluído em futuras atualizações do kernel
Observação: a AWS e o RHEL não oferecem suporte a software do repositório EPEL. Se você usar o Dynamic Kernel Module Support (DKMS), anulará o contrato de suporte da sua assinatura.
Para configurar o programa DKMS:
-
Instale o seguinte arquivo do Red Hat Package Manager (rpm):
sudo yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm -y
Observação: para obter uma lista dos pacotes.rpm mais recentes, consulte Pacotes extras para Enterprise Linux (EPEL) no site do Projeto Fedora.
-
Execute o comando install:
sudo yum install dkms -y
-
Detecte a versão atual:
VER=$( grep ^VERSION /usr/src/amzn-drivers-master/kernel/linux/rpm/Makefile | cut -d' ' -f2 )
-
Copie os arquivos de origem no diretório de origem:
sudo cp -a /usr/src/amzn-drivers-master /usr/src/amzn-drivers-${VER}
-
Crie o arquivo de configuração do DKMS e crie e instale o módulo ENA:
sudo cat <<EOM | sudo tee /usr/src/amzn-drivers-${VER}/dkms.conf PACKAGE_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
Conteúdo relevante
- feita há 7 diaslg...
- Resposta aceitafeita há 4 diaslg...
- feita há 7 diaslg...
- feita há 20 diaslg...
- AWS OFICIALAtualizada há 7 meses
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos