Ir para o conteúdo

Por que minha instância do Linux do Amazon EC2 não inicia depois que eu a alterei para uma instância baseada em Nitro?

6 minuto de leitura
0

Alterei minha instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) para uma instância baseada no AWS Nitro System. No entanto, agora a instância não inicia.

Breve descrição

Uma instância do Linux do EC2 pode não iniciar após você alterá-la para uma instância baseada em Nitro pelos seguintes motivos:

  • Você não ativou o atributo de rede aprimorada enaSupport na instância.
  • Você não instalou o driver do Adaptador de rede elástica (ENA) na instância.
  • Você não instalou o driver NVMe na instância. Ou você não carregou o módulo NVMe na imagem initramfs da instância.
  • Você usou um nome de dispositivo para montar os sistemas de arquivos no arquivo /etc/fstab na inicialização, em vez de um UUID.<br id=hardline_break/> Observação: os volumes do Amazon Elastic Block Store (Amazon EBS) aparecem como dispositivos NVMe para instâncias baseadas em Nitro. Essa configuração altera os nomes dos dispositivos.

Para resolver problemas de inicialização, altere o tipo de instância de volta para uma instância Xen. Em seguida, use o runbook AWSSupport-MigrateXenToNitroLinux para preparar automaticamente sua instância para migração. Ou verifique e corrija manualmente os pré-requisitos ausentes. Por fim, altere o tipo de instância para uma instância Nitro.

Resolução

Observação: se você receber mensagens de erro 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.

Altere o tipo de instância de volta para Xen

Importante: para alterar os tipos de instância, você precisa interromper e iniciar a instância.

Configure sua instância para uma interrupção e um início

Observação: além disso, quando você interrompe e inicia uma instância, o endereço IP público da instância muda. É uma prática recomendada usar um endereço IP elástico para rotear tráfego externo para sua instância em vez de um endereço IP público. Se você usa o Amazon Route 53, talvez seja necessário atualizar os registros DNS do Route 53 quando o endereço IP público mudar.

Antes de interromper e iniciar sua instância, realize as seguintes ações:

Altere o tipo de instância

Altere a instância de volta para o tipo de instância Xen para garantir que a instância possa ser iniciada.

Prepare automaticamente sua instância para migração

Para atualizar automaticamente sua instância para atender aos pré-requisitos de migração para o Nitro, execute o runbook AWSSupport-MigrateXenToNitroLinux.

Verifique os pré-requisitos antes de migrar

Ou execute o script nitro_check_script.sh para verificar os pré-requisitos antes de alterar o tipo de instância para Nitro. Para acessar o script, consulte nitro_check_script.sh no site do GitHub. Para obter mais informações sobre o que o script verifica, consulte NitroInstanceChecks no site do GitHub.

Para baixar o script nitro_check_script.sh, execute o seguinte comando:

sudo wget https://raw.githubusercontent.com/awslabs/aws-support-tools/refs/heads/master/EC2/NitroInstanceChecks/nitro_check_script.sh -O /tmp/nitro_check_script.sh

Para dar permissão ao seu ambiente para executar o script, execute o seguinte comando:

sudo chmod +x /tmp/nitro_check_script.sh

Para executar o script com permissões de inicialização, execute o seguinte comando:

sudo bash /tmp/nitro_check_script.sh

Observação: execute o script como usuário-raiz ou sudo. Caso contrário, você receberá a mensagem de erro "This script must be run as root".

Com base na saída do script, realize as seguintes ações.

Verifique se você ativou a rede aprimorada e instalou o driver do ENA

Teste se você ativou a rede aprimorada em sua instância. Se a rede aprimorada não estiver ativada, ative a rede aprimorada.

Para verificar se você instalou o driver do ENA, execute o seguinte comando:

sudo modinfo ena |grep -i '^version:' || echo "ENA module not available, try modprobe ena"

Se você não instalou o driver do ENA, instale o driver mais recente. Para obter instruções, consulte Linux kernel driver for Elastic Network Adapter (ENA) family (Driver do kernel do Linux para a família do Adaptador de rede elástica (ENA)) no site do GitHub.

Instale o driver NVMe

Para acessar os volumes NVMe, você deve instalar os drivers NVMe.

Verifique se você usou um nome de dispositivo para pontos de montagem no arquivo /etc/fstab

Conclua as etapas a seguir:

  1. Para verificar se você usou um UUID, execute o seguinte comando:

    cat /etc/fstab |grep -iP 'uuid|dev/'

    Exemplo de saída:

    /dev/nvme0n1p1 / xfs defaults,noatime 1 1

    Observação: o exemplo de saída usa um nome de dispositivo em vez de um UUID.

  2. Se você não usou um UUID, execute o seguinte comando para recuperar o UUID para o nome do dispositivo:

    lsblk -f device_name |tail -n 1 |awk '{print $4}'

    Observação: substitua device_name pelo nome do seu dispositivo.

  3. (Opcional) Antes de editar o arquivo /etc/fstab, é uma prática recomendada executar o seguinte comando para fazer uma cópia do arquivo:

    sudo cp /etc/fstab /etc/fstab-`date +%d%m%Y`
  4. Execute o comando a seguir para abrir o arquivo /etc/fstab:

    cat /etc/fstab
  5. Em seguida, substitua o nome do dispositivo pelo UUID.<br id=hardline_break/> Arquivo de exemplo:

    /dev/nvme0n1p1 / xfs defaults,noatime 1 1

    Observação: substitua /dev/nvme0n1p1 pelo UUID. Certifique-se de substituir todos os nomes de dispositivos no arquivo /etc/fstab pelo UUID.

  6. Para verificar se você atualizou corretamente o arquivo, execute novamente o seguinte comando:

    cat /etc/fstab

    Na saída, verifique se o UUID mostra o UUID.<br id=hardline_break/> Exemplo de saída:

    UUID=123456-1234-1234-acbd-1234abc1234 / xfs defaults,noatime 1 1

Altere o tipo de instância de volta para Nitro

Altere a instância para uma instância baseada em Nitro.

Observação: se você fizer o upgrade para a instância mais recente do Nitro e usar um kernel ou driver desatualizado, a instância pode falhar na verificação de status. Como resultado, você recebe falhas de inicialização e erros "kernel panic", ou sua instância fica inacessível. Para solucionar esse problema, consulte Como resolvo o erro "Kernel panic - not syncing" na minha instância do EC2?

AWS OFICIALAtualizada há 6 meses